func Main() t.3 = HeapAllocZ(24) [t.3+0] = :functable_QS t.4 = t.3 t.5 = [t.4+0] t.6 = [t.5+0] t.7 = 10 t.2 = call t.6(t.4 t.7) t.8 = t.2 PrintIntS(t.8) ret const functable_QS :QS_Start :QS_Sort :QS_Print :QS_Init func QS_Start(this t.0 ) t.3 = [this] t.4 = t.0 t.3 = [t.3+12] t.2 = call t.3(this t.4) t.1 = t.2 t.6 = [this] t.6 = [t.6+8] t.5 = call t.6(this ) t.1 = t.5 t.7 = 9999 PrintIntS(t.7) t.9 = [this+20] t.10 = 1 t.8 = Sub(t.9 t.10) t.1 = t.8 t.12 = [this] t.13 = 0 t.14 = t.1 t.12 = [t.12+4] t.11 = call t.12(this t.13 t.14) t.1 = t.11 t.16 = [this] t.16 = [t.16+8] t.15 = call t.16(this ) t.1 = t.15 t.17 = 0 ret t.17 func QS_Sort(this t.0 t.1 ) t.2 = 0 t.4 = t.0 t.5 = t.1 t.3 = LtS(t.4 t.5) t.6 = t.3 if0 t.6 goto :if22_else if22_body: t.9 = [this+16] t.10 = MulS(t.1 4) t.10 = Add(t.10 4) t.10 = Add(t.9 t.10) t.8 = [t.10] t.7 = t.8 t.13 = t.0 t.14 = 1 t.12 = Sub(t.13 t.14) t.11 = t.12 t.15 = t.1 t.16 = 1 while32_test: t.17 = t.16 if0 t.17 goto :while32_end while32_body: t.18 = 1 while34_test: t.19 = t.18 if0 t.19 goto :while34_end while34_body: t.21 = t.11 t.22 = 1 t.20 = Add(t.21 t.22) t.11 = t.20 t.25 = [this+16] t.26 = MulS(t.11 4) t.26 = Add(t.26 4) t.26 = Add(t.25 t.26) t.24 = [t.26] t.23 = t.24 t.29 = t.23 t.30 = t.7 t.28 = LtS(t.29 t.30) t.27 = Eq(t.28 0) t.31 = t.27 if0 t.31 goto :if42_else if42_body: t.18 = 0 goto :if42_end if42_else: t.18 = 1 if42_end: goto :while34_test while34_end: t.18 = 1 while47_test: t.32 = t.18 if0 t.32 goto :while47_end while47_body: t.34 = t.15 t.35 = 1 t.33 = Sub(t.34 t.35) t.15 = t.33 t.37 = [this+16] t.38 = MulS(t.15 4) t.38 = Add(t.38 4) t.38 = Add(t.37 t.38) t.36 = [t.38] t.23 = t.36 t.41 = t.7 t.42 = t.23 t.40 = LtS(t.41 t.42) t.39 = Eq(t.40 0) t.43 = t.39 if0 t.43 goto :if55_else if55_body: t.18 = 0 goto :if55_end if55_else: t.18 = 1 if55_end: goto :while47_test while47_end: t.45 = [this+16] t.46 = MulS(t.11 4) t.46 = Add(t.46 4) t.46 = Add(t.45 t.46) t.44 = [t.46] t.2 = t.44 t.47 = [this+16] t.48 = MulS(t.11 4) t.48 = Add(t.48 4) t.48 = Add(t.47 t.48) t.50 = [this+16] t.51 = MulS(t.15 4) t.51 = Add(t.51 4) t.51 = Add(t.50 t.51) t.49 = [t.51] [t.48] = t.49 t.52 = [this+16] t.53 = MulS(t.15 4) t.53 = Add(t.53 4) t.53 = Add(t.52 t.53) [t.53] = t.2 t.55 = t.15 t.57 = t.11 t.58 = 1 t.56 = Add(t.57 t.58) t.59 = t.56 t.54 = LtS(t.55 t.59) t.60 = t.54 if0 t.60 goto :if70_else if70_body: t.16 = 0 goto :if70_end if70_else: t.16 = 1 if70_end: goto :while32_test while32_end: t.61 = [this+16] t.62 = MulS(t.15 4) t.62 = Add(t.62 4) t.62 = Add(t.61 t.62) t.64 = [this+16] t.65 = MulS(t.11 4) t.65 = Add(t.65 4) t.65 = Add(t.64 t.65) t.63 = [t.65] [t.62] = t.63 t.66 = [this+16] t.67 = MulS(t.11 4) t.67 = Add(t.67 4) t.67 = Add(t.66 t.67) t.69 = [this+16] t.70 = MulS(t.1 4) t.70 = Add(t.70 4) t.70 = Add(t.69 t.70) t.68 = [t.70] [t.67] = t.68 t.71 = [this+16] t.72 = MulS(t.1 4) t.72 = Add(t.72 4) t.72 = Add(t.71 t.72) [t.72] = t.2 t.75 = [this] t.78 = t.11 t.79 = 1 t.77 = Sub(t.78 t.79) t.76 = t.0 t.80 = t.77 t.75 = [t.75+4] t.74 = call t.75(this t.79 t.80) t.73 = t.74 t.82 = [this] t.84 = t.11 t.85 = 1 t.83 = Add(t.84 t.85) t.86 = t.83 t.87 = t.1 t.82 = [t.82+4] t.81 = call t.82(this t.86 t.87) t.73 = t.81 goto :if22_end if22_else: t.73 = 0 if22_end: t.88 = 0 ret t.88 func QS_Print(this ) t.0 = 0 while104_test: t.2 = t.0 t.3 = [this+20] t.1 = LtS(t.2 t.3) t.4 = t.1 if0 t.4 goto :while104_end while104_body: t.6 = [this+16] t.7 = MulS(t.0 4) t.7 = Add(t.7 4) t.7 = Add(t.6 t.7) t.5 = [t.7] t.8 = t.5 PrintIntS(t.8) t.10 = t.0 t.11 = 1 t.9 = Add(t.10 t.11) t.0 = t.9 goto :while104_test while104_end: t.12 = 0 ret t.12 func QS_Init(this t.0 ) [this+20] = t.0 t.1 = call :AllocArray(t.0) [this+16] = t.1 t.2 = [this+16] t.3 = MulS(0 4) t.3 = Add(t.3 4) t.3 = Add(t.2 t.3) [t.3] = 20 t.4 = [this+16] t.5 = MulS(1 4) t.5 = Add(t.5 4) t.5 = Add(t.4 t.5) [t.5] = 7 t.6 = [this+16] t.7 = MulS(2 4) t.7 = Add(t.7 4) t.7 = Add(t.6 t.7) [t.7] = 12 t.8 = [this+16] t.9 = MulS(3 4) t.9 = Add(t.9 4) t.9 = Add(t.8 t.9) [t.9] = 18 t.10 = [this+16] t.11 = MulS(4 4) t.11 = Add(t.11 4) t.11 = Add(t.10 t.11) [t.11] = 2 t.12 = [this+16] t.13 = MulS(5 4) t.13 = Add(t.13 4) t.13 = Add(t.12 t.13) [t.13] = 11 t.14 = [this+16] t.15 = MulS(6 4) t.15 = Add(t.15 4) t.15 = Add(t.14 t.15) [t.15] = 6 t.16 = [this+16] t.17 = MulS(7 4) t.17 = Add(t.17 4) t.17 = Add(t.16 t.17) [t.17] = 9 t.18 = [this+16] t.19 = MulS(8 4) t.19 = Add(t.19 4) t.19 = Add(t.18 t.19) [t.19] = 19 t.20 = [this+16] t.21 = MulS(9 4) t.21 = Add(t.21 4) t.21 = Add(t.20 t.21) [t.21] = 5 t.22 = 0 ret t.22 func AllocArray(size) bytes = MulS(size 4) bytes = Add(bytes 4) v = HeapAllocZ(bytes) [v] = size ret v