func Main() t.3 = HeapAllocZ(4) [t.3+0] = :functable_LL t.4 = t.3 t.5 = t.4 t.6 = [t.5+0] t.7 = [t.6+0] t.2 = call t.7(t.5) t.8 = t.2 t.9 = t.8 PrintIntS(t.9) ret const functable_Element :Element_Init :Element_GetAge :Element_GetSalary :Element_GetMarried :Element_Equal :Element_Compare func Element_Init(this t.0 t.1 t.2 ) t.3 = t.0 t.4 = t.3 [this+24] = t.4 t.5 = t.1 t.6 = t.5 [this+28] = t.6 t.7 = t.2 t.8 = t.7 [this+32] = t.8 t.9 = 1 t.10 = t.9 t.11 = t.10 ret t.11 func Element_GetAge(this ) t.0 = [this+24] t.1 = t.0 t.2 = t.1 ret t.2 func Element_GetSalary(this ) t.0 = [this+28] t.1 = t.0 t.2 = t.1 ret t.2 func Element_GetMarried(this ) t.0 = [this+32] t.1 = t.0 t.2 = t.1 ret t.2 func Element_Equal(this t.0 ) t.2 = 1 t.3 = t.2 t.1 = t.3 t.6 = t.0 t.0 = t.6 t.7 = [t.0+0] t.8 = [t.7+4] t.5 = call t.8(t.0) t.9 = t.5 t.4 = t.9 t.12 = this t.13 = [this] t.14 = t.4 t.15 = t.14 t.16 = [this+24] t.17 = t.16 t.13 = [t.13+20] t.11 = call t.13(this t.15 t.17) t.18 = t.11 t.10 = Eq(t.18 0) t.19 = t.10 t.20 = t.19 t.21 = t.20 if0 t.21 goto :if32_else if32_body: t.22 = 0 t.23 = t.22 t.1 = t.23 goto :if32_end if32_else: t.26 = t.0 t.0 = t.26 t.27 = [t.0+0] t.28 = [t.27+8] t.25 = call t.28(t.0) t.29 = t.25 t.24 = t.29 t.32 = this t.33 = [this] t.34 = t.24 t.35 = t.34 t.36 = [this+28] t.37 = t.36 t.33 = [t.33+20] t.31 = call t.33(this t.35 t.37) t.38 = t.31 t.30 = Eq(t.38 0) t.39 = t.30 t.40 = t.39 t.41 = t.40 if0 t.41 goto :if51_else if51_body: t.42 = 0 t.43 = t.42 t.1 = t.43 goto :if51_end if51_else: t.44 = [this+32] t.45 = t.44 t.46 = t.45 if0 t.46 goto :if65_else if65_body: t.49 = t.0 t.0 = t.49 t.50 = [t.0+0] t.51 = [t.50+12] t.48 = call t.51(t.0) t.52 = t.48 t.47 = Eq(t.52 0) t.53 = t.47 t.54 = t.53 t.55 = t.54 if0 t.55 goto :if68_else if68_body: t.56 = 0 t.57 = t.56 t.1 = t.57 goto :if68_end if68_else: t.59 = 0 t.60 = t.59 t.58 = t.60 if68_end: goto :if65_end if65_else: t.62 = t.0 t.0 = t.62 t.63 = [t.0+0] t.64 = [t.63+12] t.61 = call t.64(t.0) t.65 = t.61 t.66 = t.65 if0 t.66 goto :if81_else if81_body: t.67 = 0 t.68 = t.67 t.1 = t.68 goto :if81_end if81_else: t.69 = 0 t.70 = t.69 t.58 = t.70 if81_end: if65_end: if51_end: if32_end: t.71 = t.1 t.72 = t.71 t.73 = t.72 ret t.73 func Element_Compare(this t.0 t.1 ) t.3 = 0 t.4 = t.3 t.2 = t.4 t.7 = t.1 t.8 = 1 t.6 = Add(t.7 t.8) t.9 = t.6 t.5 = t.9 t.11 = t.0 t.12 = t.1 t.10 = LtS(t.11 t.12) t.13 = t.10 t.14 = t.13 if0 t.14 goto :if100_else if100_body: t.15 = 0 t.16 = t.15 t.2 = t.16 goto :if100_end if100_else: t.19 = t.0 t.20 = t.5 t.18 = LtS(t.19 t.20) t.21 = t.18 t.22 = t.21 t.23 = t.22 t.17 = Eq(t.23 0) t.24 = t.17 t.25 = t.24 t.26 = t.25 if0 t.26 goto :if107_else if107_body: t.27 = 0 t.28 = t.27 t.2 = t.28 goto :if107_end if107_else: t.29 = 1 t.30 = t.29 t.2 = t.30 if107_end: if100_end: t.31 = t.2 t.32 = t.31 t.33 = t.32 ret t.33 const functable_List :List_Init :List_InitNew :List_Insert :List_SetNext :List_Delete :List_Search :List_GetEnd :List_GetElem :List_GetNext :List_Print func List_Init(this ) t.0 = 1 t.1 = t.0 [this+48] = t.1 t.2 = 1 t.3 = t.2 t.4 = t.3 ret t.4 func List_InitNew(this t.0 t.1 t.2 ) t.3 = t.2 t.4 = t.3 [this+48] = t.4 t.5 = t.0 t.6 = t.5 [this+40] = t.6 t.7 = t.1 t.8 = t.7 [this+44] = t.8 t.9 = 1 t.10 = t.9 t.11 = t.10 ret t.11 func List_Insert(this t.0 ) t.3 = this t.4 = t.3 t.2 = t.4 t.6 = HeapAllocZ(52) [t.6+0] = :functable_List t.7 = t.6 t.8 = t.7 t.5 = t.8 t.11 = t.5 t.5 = t.11 t.12 = [t.5+0] t.13 = [t.12+4] t.14 = t.0 t.15 = t.14 t.16 = t.2 t.17 = t.16 t.18 = 0 t.19 = t.18 t.10 = call t.13(t.5 t.15 t.17 t.19) t.20 = t.10 t.9 = t.20 t.21 = t.5 t.22 = t.21 t.23 = t.22 ret t.23 func List_SetNext(this t.0 ) t.1 = t.0 t.2 = t.1 [this+44] = t.2 t.3 = 1 t.4 = t.3 t.5 = t.4 ret t.5 func List_Delete(this t.0 ) t.4 = this t.5 = t.4 t.3 = t.5 t.7 = 0 t.8 = t.7 t.6 = t.8 t.11 = 0 t.12 = 1 t.10 = Sub(t.11 t.12) t.13 = t.10 t.9 = t.13 t.15 = this t.16 = t.15 t.14 = t.16 t.18 = this t.19 = t.18 t.17 = t.19 t.21 = [this+48] t.22 = t.21 t.20 = t.22 t.24 = [this+40] t.25 = t.24 t.23 = t.25 while178_test: t.28 = t.20 t.29 = t.28 t.27 = Eq(t.29 0) t.30 = t.27 t.31 = t.30 t.32 = t.31 t.34 = t.6 t.35 = t.34 t.33 = Eq(t.35 0) t.36 = t.33 t.37 = t.36 t.38 = t.37 t.39 = Eq(1 t.32) t.40 = Eq(1 t.38) t.26 = Eq(t.39 t.40) t.41 = t.26 t.42 = t.41 if0 t.42 goto :while178_end while178_body: t.44 = t.0 t.0 = t.44 t.45 = [t.0+0] t.46 = [t.45+16] t.47 = t.23 t.48 = t.47 t.43 = call t.46(t.0 t.48) t.49 = t.43 t.50 = t.49 if0 t.50 goto :if196_else if196_body: t.51 = 1 t.52 = t.51 t.6 = t.52 t.54 = t.9 t.55 = 0 t.53 = LtS(t.54 t.55) t.56 = t.53 t.57 = t.56 if0 t.57 goto :if206_else if206_body: t.59 = t.14 t.14 = t.59 t.60 = [t.14+0] t.61 = [t.60+32] t.58 = call t.61(t.14) t.62 = t.58 t.3 = t.62 goto :if206_end if206_else: t.64 = 0 t.65 = 555 t.63 = Sub(t.64 t.65) t.66 = t.63 t.67 = t.66 PrintIntS(t.67) t.70 = t.17 t.17 = t.70 t.71 = [t.17+0] t.72 = [t.71+12] t.74 = t.14 t.14 = t.74 t.75 = [t.14+0] t.76 = [t.75+32] t.73 = call t.76(t.14) t.77 = t.73 t.69 = call t.72(t.17 t.77) t.78 = t.69 t.68 = t.78 t.80 = 0 t.81 = 555 t.79 = Sub(t.80 t.81) t.82 = t.79 t.83 = t.82 PrintIntS(t.83) if206_end: goto :if196_end if196_else: t.85 = 0 t.86 = t.85 t.84 = t.86 if196_end: t.88 = t.6 t.89 = t.88 t.87 = Eq(t.89 0) t.90 = t.87 t.91 = t.90 t.92 = t.91 if0 t.92 goto :if238_else if238_body: t.93 = t.14 t.94 = t.93 t.17 = t.94 t.96 = t.14 t.14 = t.96 t.97 = [t.14+0] t.98 = [t.97+32] t.95 = call t.98(t.14) t.99 = t.95 t.14 = t.99 t.101 = t.14 t.14 = t.101 t.102 = [t.14+0] t.103 = [t.102+24] t.100 = call t.103(t.14) t.104 = t.100 t.20 = t.104 t.106 = t.14 t.14 = t.106 t.107 = [t.14+0] t.108 = [t.107+28] t.105 = call t.108(t.14) t.109 = t.105 t.23 = t.109 t.110 = 1 t.111 = t.110 t.9 = t.111 goto :if238_end if238_else: t.112 = 0 t.113 = t.112 t.84 = t.113 if238_end: goto :while178_test while178_end: t.114 = t.3 t.115 = t.114 t.116 = t.115 ret t.116 func List_Search(this t.0 ) t.4 = 0 t.5 = t.4 t.3 = t.5 t.7 = this t.8 = t.7 t.6 = t.8 t.10 = [this+48] t.11 = t.10 t.9 = t.11 t.13 = [this+40] t.14 = t.13 t.12 = t.14 while276_test: t.16 = t.9 t.17 = t.16 t.15 = Eq(t.17 0) t.18 = t.15 t.19 = t.18 t.20 = t.19 if0 t.20 goto :while276_end while276_body: t.22 = t.0 t.0 = t.22 t.23 = [t.0+0] t.24 = [t.23+16] t.25 = t.12 t.26 = t.25 t.21 = call t.24(t.0 t.26) t.27 = t.21 t.28 = t.27 if0 t.28 goto :if283_else if283_body: t.29 = 1 t.30 = t.29 t.3 = t.30 goto :if283_end if283_else: t.32 = 0 t.33 = t.32 t.31 = t.33 if283_end: t.35 = t.6 t.6 = t.35 t.36 = [t.6+0] t.37 = [t.36+32] t.34 = call t.37(t.6) t.38 = t.34 t.6 = t.38 t.40 = t.6 t.6 = t.40 t.41 = [t.6+0] t.42 = [t.41+24] t.39 = call t.42(t.6) t.43 = t.39 t.9 = t.43 t.45 = t.6 t.6 = t.45 t.46 = [t.6+0] t.47 = [t.46+28] t.44 = call t.47(t.6) t.48 = t.44 t.12 = t.48 goto :while276_test while276_end: t.49 = t.3 t.50 = t.49 t.51 = t.50 ret t.51 func List_GetEnd(this ) t.0 = [this+48] t.1 = t.0 t.2 = t.1 ret t.2 func List_GetElem(this ) t.0 = [this+40] t.1 = t.0 t.2 = t.1 ret t.2 func List_GetNext(this ) t.0 = [this+44] t.1 = t.0 t.2 = t.1 ret t.2 func List_Print(this ) t.3 = this t.4 = t.3 t.2 = t.4 t.6 = [this+48] t.7 = t.6 t.5 = t.7 t.9 = [this+40] t.10 = t.9 t.8 = t.10 while328_test: t.12 = t.5 t.13 = t.12 t.11 = Eq(t.13 0) t.14 = t.11 t.15 = t.14 t.16 = t.15 if0 t.16 goto :while328_end while328_body: t.18 = t.8 t.8 = t.18 t.19 = [t.8+0] t.20 = [t.19+4] t.17 = call t.20(t.8) t.21 = t.17 t.22 = t.21 PrintIntS(t.22) t.24 = t.2 t.2 = t.24 t.25 = [t.2+0] t.26 = [t.25+32] t.23 = call t.26(t.2) t.27 = t.23 t.2 = t.27 t.29 = t.2 t.2 = t.29 t.30 = [t.2+0] t.31 = [t.30+24] t.28 = call t.31(t.2) t.32 = t.28 t.5 = t.32 t.34 = t.2 t.2 = t.34 t.35 = [t.2+0] t.36 = [t.35+28] t.33 = call t.36(t.2) t.37 = t.33 t.8 = t.37 goto :while328_test while328_end: t.38 = 1 t.39 = t.38 t.40 = t.39 ret t.40 const functable_LL :LL_Start func LL_Start(this ) t.3 = HeapAllocZ(52) [t.3+0] = :functable_List t.4 = t.3 t.5 = t.4 t.2 = t.5 t.8 = t.2 t.2 = t.8 t.9 = [t.2+0] t.10 = [t.9+0] t.7 = call t.10(t.2) t.11 = t.7 t.6 = t.11 t.13 = t.2 t.14 = t.13 t.12 = t.14 t.16 = t.12 t.12 = t.16 t.17 = [t.12+0] t.18 = [t.17+0] t.15 = call t.18(t.12) t.19 = t.15 t.6 = t.19 t.21 = t.12 t.12 = t.21 t.22 = [t.12+0] t.23 = [t.22+36] t.20 = call t.23(t.12) t.24 = t.20 t.6 = t.24 t.26 = HeapAllocZ(36) [t.26+0] = :functable_Element t.27 = t.26 t.28 = t.27 t.25 = t.28 t.30 = t.25 t.25 = t.30 t.31 = [t.25+0] t.32 = [t.31+0] t.33 = 25 t.34 = t.33 t.35 = 37000 t.36 = t.35 t.37 = 0 t.38 = t.37 t.29 = call t.32(t.25 t.34 t.36 t.38) t.39 = t.29 t.6 = t.39 t.41 = t.12 t.12 = t.41 t.42 = [t.12+0] t.43 = [t.42+8] t.44 = t.25 t.45 = t.44 t.40 = call t.43(t.12 t.45) t.46 = t.40 t.12 = t.46 t.48 = t.12 t.12 = t.48 t.49 = [t.12+0] t.50 = [t.49+36] t.47 = call t.50(t.12) t.51 = t.47 t.6 = t.51 t.52 = 10000000 t.53 = t.52 t.54 = t.53 PrintIntS(t.54) t.55 = HeapAllocZ(36) [t.55+0] = :functable_Element t.56 = t.55 t.57 = t.56 t.25 = t.57 t.59 = t.25 t.25 = t.59 t.60 = [t.25+0] t.61 = [t.60+0] t.62 = 39 t.63 = t.62 t.64 = 42000 t.65 = t.64 t.66 = 1 t.67 = t.66 t.58 = call t.61(t.25 t.63 t.65 t.67) t.68 = t.58 t.6 = t.68 t.70 = t.25 t.71 = t.70 t.69 = t.71 t.73 = t.12 t.12 = t.73 t.74 = [t.12+0] t.75 = [t.74+8] t.76 = t.25 t.77 = t.76 t.72 = call t.75(t.12 t.77) t.78 = t.72 t.12 = t.78 t.80 = t.12 t.12 = t.80 t.81 = [t.12+0] t.82 = [t.81+36] t.79 = call t.82(t.12) t.83 = t.79 t.6 = t.83 t.84 = 10000000 t.85 = t.84 t.86 = t.85 PrintIntS(t.86) t.87 = HeapAllocZ(36) [t.87+0] = :functable_Element t.88 = t.87 t.89 = t.88 t.25 = t.89 t.91 = t.25 t.25 = t.91 t.92 = [t.25+0] t.93 = [t.92+0] t.94 = 22 t.95 = t.94 t.96 = 34000 t.97 = t.96 t.98 = 0 t.99 = t.98 t.90 = call t.93(t.25 t.95 t.97 t.99) t.100 = t.90 t.6 = t.100 t.102 = t.12 t.12 = t.102 t.103 = [t.12+0] t.104 = [t.103+8] t.105 = t.25 t.106 = t.105 t.101 = call t.104(t.12 t.106) t.107 = t.101 t.12 = t.107 t.109 = t.12 t.12 = t.109 t.110 = [t.12+0] t.111 = [t.110+36] t.108 = call t.111(t.12) t.112 = t.108 t.6 = t.112 t.114 = HeapAllocZ(36) [t.114+0] = :functable_Element t.115 = t.114 t.116 = t.115 t.113 = t.116 t.118 = t.113 t.113 = t.118 t.119 = [t.113+0] t.120 = [t.119+0] t.121 = 27 t.122 = t.121 t.123 = 34000 t.124 = t.123 t.125 = 0 t.126 = t.125 t.117 = call t.120(t.113 t.122 t.124 t.126) t.127 = t.117 t.6 = t.127 t.129 = t.12 t.12 = t.129 t.130 = [t.12+0] t.131 = [t.130+20] t.132 = t.69 t.133 = t.132 t.128 = call t.131(t.12 t.133) t.134 = t.128 t.135 = t.134 PrintIntS(t.135) t.137 = t.12 t.12 = t.137 t.138 = [t.12+0] t.139 = [t.138+20] t.140 = t.113 t.141 = t.140 t.136 = call t.139(t.12 t.141) t.142 = t.136 t.143 = t.142 PrintIntS(t.143) t.144 = 10000000 t.145 = t.144 t.146 = t.145 PrintIntS(t.146) t.147 = HeapAllocZ(36) [t.147+0] = :functable_Element t.148 = t.147 t.149 = t.148 t.25 = t.149 t.151 = t.25 t.25 = t.151 t.152 = [t.25+0] t.153 = [t.152+0] t.154 = 28 t.155 = t.154 t.156 = 35000 t.157 = t.156 t.158 = 0 t.159 = t.158 t.150 = call t.153(t.25 t.155 t.157 t.159) t.160 = t.150 t.6 = t.160 t.162 = t.12 t.12 = t.162 t.163 = [t.12+0] t.164 = [t.163+8] t.165 = t.25 t.166 = t.165 t.161 = call t.164(t.12 t.166) t.167 = t.161 t.12 = t.167 t.169 = t.12 t.12 = t.169 t.170 = [t.12+0] t.171 = [t.170+36] t.168 = call t.171(t.12) t.172 = t.168 t.6 = t.172 t.173 = 2220000 t.174 = t.173 t.175 = t.174 PrintIntS(t.175) t.177 = t.12 t.12 = t.177 t.178 = [t.12+0] t.179 = [t.178+16] t.180 = t.69 t.181 = t.180 t.176 = call t.179(t.12 t.181) t.182 = t.176 t.12 = t.182 t.184 = t.12 t.12 = t.184 t.185 = [t.12+0] t.186 = [t.185+36] t.183 = call t.186(t.12) t.187 = t.183 t.6 = t.187 t.188 = 33300000 t.189 = t.188 t.190 = t.189 PrintIntS(t.190) t.192 = t.12 t.12 = t.192 t.193 = [t.12+0] t.194 = [t.193+16] t.195 = t.25 t.196 = t.195 t.191 = call t.194(t.12 t.196) t.197 = t.191 t.12 = t.197 t.199 = t.12 t.12 = t.199 t.200 = [t.12+0] t.201 = [t.200+36] t.198 = call t.201(t.12) t.202 = t.198 t.6 = t.202 t.203 = 44440000 t.204 = t.203 t.205 = t.204 PrintIntS(t.205) t.206 = 0 t.207 = t.206 t.208 = t.207 ret t.208 func AllocArray(size) bytes = MulS(size 4) bytes = Add(bytes 4) v = HeapAllocZ(bytes) [v] = size ret v