func Main() t.3 = HeapAllocZ(24) [t.3+0] = :functable_QS t.4 = t.3 t.5 = t.4 t.6 = [t.5+0] t.7 = [t.6+0] t.8 = 10 t.9 = t.8 t.2 = call t.7(t.5 t.9) t.10 = t.2 t.11 = t.10 PrintIntS(t.11) ret const functable_QS :QS_Start :QS_Sort :QS_Print :QS_Init func QS_Start(this t.0 ) t.3 = this t.4 = [this] t.5 = t.0 t.6 = t.5 t.4 = [t.4+12] t.2 = call t.4(this t.6) t.7 = t.2 t.1 = t.7 t.9 = this t.10 = [this] t.10 = [t.10+8] t.8 = call t.10(this) t.11 = t.8 t.1 = t.11 t.12 = 9999 t.13 = t.12 t.14 = t.13 PrintIntS(t.14) t.16 = [this+20] t.17 = 1 t.15 = Sub(t.16 t.17) t.18 = t.15 t.1 = t.18 t.20 = this t.21 = [this] t.22 = 0 t.23 = t.22 t.24 = t.1 t.25 = t.24 t.21 = [t.21+4] t.19 = call t.21(this t.23 t.25) t.26 = t.19 t.1 = t.26 t.28 = this t.29 = [this] t.29 = [t.29+8] t.27 = call t.29(this) t.30 = t.27 t.1 = t.30 t.31 = 0 t.32 = t.31 t.33 = t.32 ret t.33 func QS_Sort(this t.0 t.1 ) t.3 = 0 t.4 = t.3 t.2 = t.4 t.6 = t.0 t.7 = t.1 t.5 = LtS(t.6 t.7) t.8 = t.5 t.9 = t.8 if0 t.9 goto :if43_else if43_body: t.13 = [this+16] t.12 = t.13 t.15 = t.1 t.14 = MulS(t.15 4) t.14 = Add(t.14 4) t.14 = Add(t.12 t.14) t.11 = [t.14] t.16 = t.11 t.10 = t.16 t.19 = t.0 t.20 = 1 t.18 = Sub(t.19 t.20) t.21 = t.18 t.17 = t.21 t.23 = t.1 t.24 = t.23 t.22 = t.24 t.26 = 1 t.27 = t.26 t.25 = t.27 while62_test: t.28 = t.25 t.29 = t.28 t.30 = t.29 if0 t.30 goto :while62_end while62_body: t.32 = 1 t.33 = t.32 t.31 = t.33 while68_test: t.34 = t.31 t.35 = t.34 t.36 = t.35 if0 t.36 goto :while68_end while68_body: t.38 = t.17 t.39 = 1 t.37 = Add(t.38 t.39) t.40 = t.37 t.17 = t.40 t.44 = [this+16] t.43 = t.44 t.46 = t.17 t.45 = MulS(t.46 4) t.45 = Add(t.45 4) t.45 = Add(t.43 t.45) t.42 = [t.45] t.47 = t.42 t.41 = t.47 t.50 = t.41 t.51 = t.10 t.49 = LtS(t.50 t.51) t.52 = t.49 t.53 = t.52 t.54 = t.53 t.48 = Eq(t.54 0) t.55 = t.48 t.56 = t.55 t.57 = t.56 if0 t.57 goto :if82_else if82_body: t.58 = 0 t.59 = t.58 t.31 = t.59 goto :if82_end if82_else: t.60 = 1 t.61 = t.60 t.31 = t.61 if82_end: goto :while68_test while68_end: t.62 = 1 t.63 = t.62 t.31 = t.63 while98_test: t.64 = t.31 t.65 = t.64 t.66 = t.65 if0 t.66 goto :while98_end while98_body: t.68 = t.22 t.69 = 1 t.67 = Sub(t.68 t.69) t.70 = t.67 t.22 = t.70 t.73 = [this+16] t.72 = t.73 t.75 = t.22 t.74 = MulS(t.75 4) t.74 = Add(t.74 4) t.74 = Add(t.72 t.74) t.71 = [t.74] t.76 = t.71 t.41 = t.76 t.79 = t.10 t.80 = t.41 t.78 = LtS(t.79 t.80) t.81 = t.78 t.82 = t.81 t.83 = t.82 t.77 = Eq(t.83 0) t.84 = t.77 t.85 = t.84 t.86 = t.85 if0 t.86 goto :if112_else if112_body: t.87 = 0 t.88 = t.87 t.31 = t.88 goto :if112_end if112_else: t.89 = 1 t.90 = t.89 t.31 = t.90 if112_end: goto :while98_test while98_end: t.93 = [this+16] t.92 = t.93 t.95 = t.17 t.94 = MulS(t.95 4) t.94 = Add(t.94 4) t.94 = Add(t.92 t.94) t.91 = [t.94] t.96 = t.91 t.2 = t.96 t.97 = [this+16] t.99 = t.17 t.100 = t.99 t.98 = MulS(t.100 4) t.98 = Add(t.98 4) t.98 = Add(t.97 t.98) t.103 = [this+16] t.102 = t.103 t.105 = t.22 t.104 = MulS(t.105 4) t.104 = Add(t.104 4) t.104 = Add(t.102 t.104) t.101 = [t.104] t.106 = t.101 [t.98] = t.106 t.107 = [this+16] t.109 = t.22 t.110 = t.109 t.108 = MulS(t.110 4) t.108 = Add(t.108 4) t.108 = Add(t.107 t.108) t.111 = t.2 t.112 = t.111 [t.108] = t.112 t.114 = t.22 t.116 = t.17 t.117 = 1 t.115 = Add(t.116 t.117) t.118 = t.115 t.119 = t.118 t.113 = LtS(t.114 t.119) t.120 = t.113 t.121 = t.120 if0 t.121 goto :if148_else if148_body: t.122 = 0 t.123 = t.122 t.25 = t.123 goto :if148_end if148_else: t.124 = 1 t.125 = t.124 t.25 = t.125 if148_end: goto :while62_test while62_end: t.126 = [this+16] t.128 = t.22 t.129 = t.128 t.127 = MulS(t.129 4) t.127 = Add(t.127 4) t.127 = Add(t.126 t.127) t.132 = [this+16] t.131 = t.132 t.134 = t.17 t.133 = MulS(t.134 4) t.133 = Add(t.133 4) t.133 = Add(t.131 t.133) t.130 = [t.133] t.135 = t.130 [t.127] = t.135 t.136 = [this+16] t.138 = t.17 t.139 = t.138 t.137 = MulS(t.139 4) t.137 = Add(t.137 4) t.137 = Add(t.136 t.137) t.142 = [this+16] t.141 = t.142 t.144 = t.1 t.143 = MulS(t.144 4) t.143 = Add(t.143 4) t.143 = Add(t.141 t.143) t.140 = [t.143] t.145 = t.140 [t.137] = t.145 t.146 = [this+16] t.148 = t.1 t.149 = t.148 t.147 = MulS(t.149 4) t.147 = Add(t.147 4) t.147 = Add(t.146 t.147) t.150 = t.2 t.151 = t.150 [t.147] = t.151 t.154 = this t.155 = [this] t.156 = t.0 t.157 = t.156 t.159 = t.17 t.160 = 1 t.158 = Sub(t.159 t.160) t.161 = t.158 t.155 = [t.155+4] t.153 = call t.155(this t.157 t.161) t.162 = t.153 t.152 = t.162 t.164 = this t.165 = [this] t.167 = t.17 t.168 = 1 t.166 = Add(t.167 t.168) t.169 = t.166 t.170 = t.1 t.171 = t.170 t.165 = [t.165+4] t.163 = call t.165(this t.169 t.171) t.172 = t.163 t.152 = t.172 goto :if43_end if43_else: t.173 = 0 t.174 = t.173 t.152 = t.174 if43_end: t.175 = 0 t.176 = t.175 t.177 = t.176 ret t.177 func QS_Print(this ) t.1 = 0 t.2 = t.1 t.0 = t.2 while214_test: t.4 = t.0 t.5 = [this+20] t.6 = t.5 t.7 = t.6 t.3 = LtS(t.4 t.7) t.8 = t.3 t.9 = t.8 if0 t.9 goto :while214_end while214_body: t.12 = [this+16] t.11 = t.12 t.14 = t.0 t.13 = MulS(t.14 4) t.13 = Add(t.13 4) t.13 = Add(t.11 t.13) t.10 = [t.13] t.15 = t.10 t.16 = t.15 PrintIntS(t.16) t.18 = t.0 t.19 = 1 t.17 = Add(t.18 t.19) t.20 = t.17 t.0 = t.20 goto :while214_test while214_end: t.21 = 0 t.22 = t.21 t.23 = t.22 ret t.23 func QS_Init(this t.0 ) t.1 = t.0 t.2 = t.1 [this+20] = t.2 t.3 = t.0 t.4 = t.3 t.5 = call :AllocArray(t.4) t.6 = t.5 t.7 = t.6 [this+16] = t.7 t.8 = [this+16] t.10 = 0 t.11 = t.10 t.9 = MulS(t.11 4) t.9 = Add(t.9 4) t.9 = Add(t.8 t.9) t.12 = 20 t.13 = t.12 [t.9] = t.13 t.14 = [this+16] t.16 = 1 t.17 = t.16 t.15 = MulS(t.17 4) t.15 = Add(t.15 4) t.15 = Add(t.14 t.15) t.18 = 7 t.19 = t.18 [t.15] = t.19 t.20 = [this+16] t.22 = 2 t.23 = t.22 t.21 = MulS(t.23 4) t.21 = Add(t.21 4) t.21 = Add(t.20 t.21) t.24 = 12 t.25 = t.24 [t.21] = t.25 t.26 = [this+16] t.28 = 3 t.29 = t.28 t.27 = MulS(t.29 4) t.27 = Add(t.27 4) t.27 = Add(t.26 t.27) t.30 = 18 t.31 = t.30 [t.27] = t.31 t.32 = [this+16] t.34 = 4 t.35 = t.34 t.33 = MulS(t.35 4) t.33 = Add(t.33 4) t.33 = Add(t.32 t.33) t.36 = 2 t.37 = t.36 [t.33] = t.37 t.38 = [this+16] t.40 = 5 t.41 = t.40 t.39 = MulS(t.41 4) t.39 = Add(t.39 4) t.39 = Add(t.38 t.39) t.42 = 11 t.43 = t.42 [t.39] = t.43 t.44 = [this+16] t.46 = 6 t.47 = t.46 t.45 = MulS(t.47 4) t.45 = Add(t.45 4) t.45 = Add(t.44 t.45) t.48 = 6 t.49 = t.48 [t.45] = t.49 t.50 = [this+16] t.52 = 7 t.53 = t.52 t.51 = MulS(t.53 4) t.51 = Add(t.51 4) t.51 = Add(t.50 t.51) t.54 = 9 t.55 = t.54 [t.51] = t.55 t.56 = [this+16] t.58 = 8 t.59 = t.58 t.57 = MulS(t.59 4) t.57 = Add(t.57 4) t.57 = Add(t.56 t.57) t.60 = 19 t.61 = t.60 [t.57] = t.61 t.62 = [this+16] t.64 = 9 t.65 = t.64 t.63 = MulS(t.65 4) t.63 = Add(t.63 4) t.63 = Add(t.62 t.63) t.66 = 5 t.67 = t.66 [t.63] = t.67 t.68 = 0 t.69 = t.68 t.70 = t.69 ret t.70 func AllocArray(size) bytes = MulS(size 4) bytes = Add(bytes 4) v = HeapAllocZ(bytes) [v] = size ret v