Advertisement
Guest User

Untitled

a guest
Dec 14th, 2016
234
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 157.16 KB | None | 0 0
  1.  
  2. Initialize();
  3. beginFunction(4294967295);
  4. //currSp();//SP[4]
  5. incSp();
  6. Set(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(0)));
  7. //currSp();//SP[8]
  8. incSp();
  9. auto tmp1 = genTemporary(BCType(BCTypeEnum.String));//SP[12]
  10. Set(tmp1, BCValue(Imm32(4)));
  11. auto tmp2 = genTemporary(BCType(BCTypeEnum.String));//SP[16]
  12. Set(tmp2, BCValue(Imm32(8)));
  13. auto tmp3 = genTemporary(BCType(BCTypeEnum.String));//SP[20]
  14. Set(tmp3, BCValue(Imm32(12)));
  15. auto tmp4 = genTemporary(BCType(BCTypeEnum.i32));//SP[24]
  16. auto tmp5 = genTemporary(BCType(BCTypeEnum.i32));//SP[28]
  17. Set(tmp4, BCValue(Imm32(0)));
  18. auto tmp6 = genTemporary(BCType(BCTypeEnum.i32));//SP[32]
  19. auto tmp7 = genTemporary(BCType(BCTypeEnum.i32));//SP[36]
  20. Load32(tmp7, tmp2);
  21. auto tmp8 = genTemporary(BCType(BCTypeEnum.i32));//SP[40]
  22. Load32(tmp8, tmp3);
  23. Eq3(tmp6, tmp7, tmp8);
  24. auto cndJmp1 = beginCndJmp(tmp6);
  25. auto label1 = genLabel();
  26. Set(tmp4, BCValue(Imm32(1)));
  27. Load32(tmp5, tmp2);
  28. auto label2 = genLabel();
  29. auto tmp9 = genTemporary(BCType(BCTypeEnum.i32));//SP[44]
  30. Set(tmp9, tmp5);
  31. Sub3(tmp5, tmp5, BCValue(Imm32(1)));
  32. auto cndJmp2 = beginCndJmp(tmp9);
  33. auto label3 = genLabel();
  34. auto tmp10 = genTemporary(BCType(BCTypeEnum.i32));//SP[48]
  35. auto tmp11 = genTemporary(BCType(BCTypeEnum.i32));//SP[52]
  36. Add3(tmp11, tmp2, BCValue(Imm32(1)));
  37. auto tmp12 = genTemporary(BCType(BCTypeEnum.Char));//SP[56]
  38. auto tmp13 = genTemporary(BCType(BCTypeEnum.i32));//SP[60]
  39. auto tmp14 = genTemporary(BCType(BCTypeEnum.i32));//SP[64]
  40. Mod3(tmp14, tmp5, BCValue(Imm32(4)));
  41. Div3(tmp13, tmp5, BCValue(Imm32(4)));
  42. Add3(tmp11, tmp11, tmp13);
  43. Load32(tmp12, tmp11);
  44. Byte3(tmp12, tmp12, tmp14);
  45. auto tmp15 = genTemporary(BCType(BCTypeEnum.i32));//SP[68]
  46. Add3(tmp15, tmp3, BCValue(Imm32(1)));
  47. auto tmp16 = genTemporary(BCType(BCTypeEnum.Char));//SP[72]
  48. auto tmp17 = genTemporary(BCType(BCTypeEnum.i32));//SP[76]
  49. auto tmp18 = genTemporary(BCType(BCTypeEnum.i32));//SP[80]
  50. Mod3(tmp18, tmp5, BCValue(Imm32(4)));
  51. Div3(tmp17, tmp5, BCValue(Imm32(4)));
  52. Add3(tmp15, tmp15, tmp17);
  53. Load32(tmp16, tmp15);
  54. Byte3(tmp16, tmp16, tmp18);
  55. Neq3(tmp10, tmp12, tmp16);
  56. auto cndJmp3 = beginCndJmp(tmp10);
  57. auto label4 = genLabel();
  58. Set(tmp4, BCValue(Imm32(0)));
  59. auto jmp1 = beginJmp();
  60. auto label5 = genLabel();
  61. endJmp(jmp1, label5);
  62. auto jmp2 = beginJmp();
  63. auto label6 = genLabel();
  64. endJmp(jmp2, label6);
  65. endCndJmp(cndJmp3, label6);
  66. auto label7 = genLabel();
  67. genJump(label2);
  68. auto label8 = genLabel();
  69. endCndJmp(cndJmp2, label8);
  70. auto label9 = genLabel();
  71. endCndJmp(cndJmp1, label9);
  72. Eq3(BCValue.init, tmp4, BCValue(Imm32(1)));
  73. auto cndJmp4 = beginCndJmp();
  74. auto label10 = genLabel();
  75. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(1)));
  76. auto jmp3 = beginJmp();
  77. auto label11 = genLabel();
  78. auto jmp4 = beginJmp();
  79. auto label12 = genLabel();
  80. endCndJmp(cndJmp4, label12);
  81. auto tmp19 = genTemporary(BCType(BCTypeEnum.String));//SP[84]
  82. Set(tmp19, BCValue(Imm32(16)));
  83. auto tmp20 = genTemporary(BCType(BCTypeEnum.i32));//SP[88]
  84. auto tmp21 = genTemporary(BCType(BCTypeEnum.i32));//SP[92]
  85. Set(tmp20, BCValue(Imm32(0)));
  86. auto tmp22 = genTemporary(BCType(BCTypeEnum.i32));//SP[96]
  87. auto tmp23 = genTemporary(BCType(BCTypeEnum.i32));//SP[100]
  88. Load32(tmp23, tmp2);
  89. auto tmp24 = genTemporary(BCType(BCTypeEnum.i32));//SP[104]
  90. Load32(tmp24, tmp19);
  91. Eq3(tmp22, tmp23, tmp24);
  92. auto cndJmp5 = beginCndJmp(tmp22);
  93. auto label13 = genLabel();
  94. Set(tmp20, BCValue(Imm32(1)));
  95. Load32(tmp21, tmp2);
  96. auto label14 = genLabel();
  97. auto tmp25 = genTemporary(BCType(BCTypeEnum.i32));//SP[108]
  98. Set(tmp25, tmp21);
  99. Sub3(tmp21, tmp21, BCValue(Imm32(1)));
  100. auto cndJmp6 = beginCndJmp(tmp25);
  101. auto label15 = genLabel();
  102. auto tmp26 = genTemporary(BCType(BCTypeEnum.i32));//SP[112]
  103. auto tmp27 = genTemporary(BCType(BCTypeEnum.i32));//SP[116]
  104. Add3(tmp27, tmp2, BCValue(Imm32(1)));
  105. auto tmp28 = genTemporary(BCType(BCTypeEnum.Char));//SP[120]
  106. auto tmp29 = genTemporary(BCType(BCTypeEnum.i32));//SP[124]
  107. auto tmp30 = genTemporary(BCType(BCTypeEnum.i32));//SP[128]
  108. Mod3(tmp30, tmp21, BCValue(Imm32(4)));
  109. Div3(tmp29, tmp21, BCValue(Imm32(4)));
  110. Add3(tmp27, tmp27, tmp29);
  111. Load32(tmp28, tmp27);
  112. Byte3(tmp28, tmp28, tmp30);
  113. auto tmp31 = genTemporary(BCType(BCTypeEnum.i32));//SP[132]
  114. Add3(tmp31, tmp19, BCValue(Imm32(1)));
  115. auto tmp32 = genTemporary(BCType(BCTypeEnum.Char));//SP[136]
  116. auto tmp33 = genTemporary(BCType(BCTypeEnum.i32));//SP[140]
  117. auto tmp34 = genTemporary(BCType(BCTypeEnum.i32));//SP[144]
  118. Mod3(tmp34, tmp21, BCValue(Imm32(4)));
  119. Div3(tmp33, tmp21, BCValue(Imm32(4)));
  120. Add3(tmp31, tmp31, tmp33);
  121. Load32(tmp32, tmp31);
  122. Byte3(tmp32, tmp32, tmp34);
  123. Neq3(tmp26, tmp28, tmp32);
  124. auto cndJmp7 = beginCndJmp(tmp26);
  125. auto label16 = genLabel();
  126. Set(tmp20, BCValue(Imm32(0)));
  127. auto jmp5 = beginJmp();
  128. auto label17 = genLabel();
  129. endJmp(jmp5, label17);
  130. auto jmp6 = beginJmp();
  131. auto label18 = genLabel();
  132. endJmp(jmp6, label18);
  133. endCndJmp(cndJmp7, label18);
  134. auto label19 = genLabel();
  135. genJump(label14);
  136. auto label20 = genLabel();
  137. endCndJmp(cndJmp6, label20);
  138. auto label21 = genLabel();
  139. endCndJmp(cndJmp5, label21);
  140. Eq3(BCValue.init, tmp20, BCValue(Imm32(1)));
  141. auto cndJmp8 = beginCndJmp();
  142. auto label22 = genLabel();
  143. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(2)));
  144. auto jmp7 = beginJmp();
  145. auto label23 = genLabel();
  146. auto jmp8 = beginJmp();
  147. auto label24 = genLabel();
  148. endCndJmp(cndJmp8, label24);
  149. auto tmp35 = genTemporary(BCType(BCTypeEnum.String));//SP[148]
  150. Set(tmp35, BCValue(Imm32(20)));
  151. auto tmp36 = genTemporary(BCType(BCTypeEnum.i32));//SP[152]
  152. auto tmp37 = genTemporary(BCType(BCTypeEnum.i32));//SP[156]
  153. Set(tmp36, BCValue(Imm32(0)));
  154. auto tmp38 = genTemporary(BCType(BCTypeEnum.i32));//SP[160]
  155. auto tmp39 = genTemporary(BCType(BCTypeEnum.i32));//SP[164]
  156. Load32(tmp39, tmp2);
  157. auto tmp40 = genTemporary(BCType(BCTypeEnum.i32));//SP[168]
  158. Load32(tmp40, tmp35);
  159. Eq3(tmp38, tmp39, tmp40);
  160. auto cndJmp9 = beginCndJmp(tmp38);
  161. auto label25 = genLabel();
  162. Set(tmp36, BCValue(Imm32(1)));
  163. Load32(tmp37, tmp2);
  164. auto label26 = genLabel();
  165. auto tmp41 = genTemporary(BCType(BCTypeEnum.i32));//SP[172]
  166. Set(tmp41, tmp37);
  167. Sub3(tmp37, tmp37, BCValue(Imm32(1)));
  168. auto cndJmp10 = beginCndJmp(tmp41);
  169. auto label27 = genLabel();
  170. auto tmp42 = genTemporary(BCType(BCTypeEnum.i32));//SP[176]
  171. auto tmp43 = genTemporary(BCType(BCTypeEnum.i32));//SP[180]
  172. Add3(tmp43, tmp2, BCValue(Imm32(1)));
  173. auto tmp44 = genTemporary(BCType(BCTypeEnum.Char));//SP[184]
  174. auto tmp45 = genTemporary(BCType(BCTypeEnum.i32));//SP[188]
  175. auto tmp46 = genTemporary(BCType(BCTypeEnum.i32));//SP[192]
  176. Mod3(tmp46, tmp37, BCValue(Imm32(4)));
  177. Div3(tmp45, tmp37, BCValue(Imm32(4)));
  178. Add3(tmp43, tmp43, tmp45);
  179. Load32(tmp44, tmp43);
  180. Byte3(tmp44, tmp44, tmp46);
  181. auto tmp47 = genTemporary(BCType(BCTypeEnum.i32));//SP[196]
  182. Add3(tmp47, tmp35, BCValue(Imm32(1)));
  183. auto tmp48 = genTemporary(BCType(BCTypeEnum.Char));//SP[200]
  184. auto tmp49 = genTemporary(BCType(BCTypeEnum.i32));//SP[204]
  185. auto tmp50 = genTemporary(BCType(BCTypeEnum.i32));//SP[208]
  186. Mod3(tmp50, tmp37, BCValue(Imm32(4)));
  187. Div3(tmp49, tmp37, BCValue(Imm32(4)));
  188. Add3(tmp47, tmp47, tmp49);
  189. Load32(tmp48, tmp47);
  190. Byte3(tmp48, tmp48, tmp50);
  191. Neq3(tmp42, tmp44, tmp48);
  192. auto cndJmp11 = beginCndJmp(tmp42);
  193. auto label28 = genLabel();
  194. Set(tmp36, BCValue(Imm32(0)));
  195. auto jmp9 = beginJmp();
  196. auto label29 = genLabel();
  197. endJmp(jmp9, label29);
  198. auto jmp10 = beginJmp();
  199. auto label30 = genLabel();
  200. endJmp(jmp10, label30);
  201. endCndJmp(cndJmp11, label30);
  202. auto label31 = genLabel();
  203. genJump(label26);
  204. auto label32 = genLabel();
  205. endCndJmp(cndJmp10, label32);
  206. auto label33 = genLabel();
  207. endCndJmp(cndJmp9, label33);
  208. Eq3(BCValue.init, tmp36, BCValue(Imm32(1)));
  209. auto cndJmp12 = beginCndJmp();
  210. auto label34 = genLabel();
  211. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(4)));
  212. auto jmp11 = beginJmp();
  213. auto label35 = genLabel();
  214. auto jmp12 = beginJmp();
  215. auto label36 = genLabel();
  216. endCndJmp(cndJmp12, label36);
  217. auto tmp51 = genTemporary(BCType(BCTypeEnum.String));//SP[212]
  218. Set(tmp51, BCValue(Imm32(24)));
  219. auto tmp52 = genTemporary(BCType(BCTypeEnum.i32));//SP[216]
  220. auto tmp53 = genTemporary(BCType(BCTypeEnum.i32));//SP[220]
  221. Set(tmp52, BCValue(Imm32(0)));
  222. auto tmp54 = genTemporary(BCType(BCTypeEnum.i32));//SP[224]
  223. auto tmp55 = genTemporary(BCType(BCTypeEnum.i32));//SP[228]
  224. Load32(tmp55, tmp2);
  225. auto tmp56 = genTemporary(BCType(BCTypeEnum.i32));//SP[232]
  226. Load32(tmp56, tmp51);
  227. Eq3(tmp54, tmp55, tmp56);
  228. auto cndJmp13 = beginCndJmp(tmp54);
  229. auto label37 = genLabel();
  230. Set(tmp52, BCValue(Imm32(1)));
  231. Load32(tmp53, tmp2);
  232. auto label38 = genLabel();
  233. auto tmp57 = genTemporary(BCType(BCTypeEnum.i32));//SP[236]
  234. Set(tmp57, tmp53);
  235. Sub3(tmp53, tmp53, BCValue(Imm32(1)));
  236. auto cndJmp14 = beginCndJmp(tmp57);
  237. auto label39 = genLabel();
  238. auto tmp58 = genTemporary(BCType(BCTypeEnum.i32));//SP[240]
  239. auto tmp59 = genTemporary(BCType(BCTypeEnum.i32));//SP[244]
  240. Add3(tmp59, tmp2, BCValue(Imm32(1)));
  241. auto tmp60 = genTemporary(BCType(BCTypeEnum.Char));//SP[248]
  242. auto tmp61 = genTemporary(BCType(BCTypeEnum.i32));//SP[252]
  243. auto tmp62 = genTemporary(BCType(BCTypeEnum.i32));//SP[256]
  244. Mod3(tmp62, tmp53, BCValue(Imm32(4)));
  245. Div3(tmp61, tmp53, BCValue(Imm32(4)));
  246. Add3(tmp59, tmp59, tmp61);
  247. Load32(tmp60, tmp59);
  248. Byte3(tmp60, tmp60, tmp62);
  249. auto tmp63 = genTemporary(BCType(BCTypeEnum.i32));//SP[260]
  250. Add3(tmp63, tmp51, BCValue(Imm32(1)));
  251. auto tmp64 = genTemporary(BCType(BCTypeEnum.Char));//SP[264]
  252. auto tmp65 = genTemporary(BCType(BCTypeEnum.i32));//SP[268]
  253. auto tmp66 = genTemporary(BCType(BCTypeEnum.i32));//SP[272]
  254. Mod3(tmp66, tmp53, BCValue(Imm32(4)));
  255. Div3(tmp65, tmp53, BCValue(Imm32(4)));
  256. Add3(tmp63, tmp63, tmp65);
  257. Load32(tmp64, tmp63);
  258. Byte3(tmp64, tmp64, tmp66);
  259. Neq3(tmp58, tmp60, tmp64);
  260. auto cndJmp15 = beginCndJmp(tmp58);
  261. auto label40 = genLabel();
  262. Set(tmp52, BCValue(Imm32(0)));
  263. auto jmp13 = beginJmp();
  264. auto label41 = genLabel();
  265. endJmp(jmp13, label41);
  266. auto jmp14 = beginJmp();
  267. auto label42 = genLabel();
  268. endJmp(jmp14, label42);
  269. endCndJmp(cndJmp15, label42);
  270. auto label43 = genLabel();
  271. genJump(label38);
  272. auto label44 = genLabel();
  273. endCndJmp(cndJmp14, label44);
  274. auto label45 = genLabel();
  275. endCndJmp(cndJmp13, label45);
  276. Eq3(BCValue.init, tmp52, BCValue(Imm32(1)));
  277. auto cndJmp16 = beginCndJmp();
  278. auto label46 = genLabel();
  279. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(8)));
  280. auto jmp15 = beginJmp();
  281. auto label47 = genLabel();
  282. auto jmp16 = beginJmp();
  283. auto label48 = genLabel();
  284. endCndJmp(cndJmp16, label48);
  285. auto tmp67 = genTemporary(BCType(BCTypeEnum.String));//SP[276]
  286. Set(tmp67, BCValue(Imm32(28)));
  287. auto tmp68 = genTemporary(BCType(BCTypeEnum.i32));//SP[280]
  288. auto tmp69 = genTemporary(BCType(BCTypeEnum.i32));//SP[284]
  289. Set(tmp68, BCValue(Imm32(0)));
  290. auto tmp70 = genTemporary(BCType(BCTypeEnum.i32));//SP[288]
  291. auto tmp71 = genTemporary(BCType(BCTypeEnum.i32));//SP[292]
  292. Load32(tmp71, tmp2);
  293. auto tmp72 = genTemporary(BCType(BCTypeEnum.i32));//SP[296]
  294. Load32(tmp72, tmp67);
  295. Eq3(tmp70, tmp71, tmp72);
  296. auto cndJmp17 = beginCndJmp(tmp70);
  297. auto label49 = genLabel();
  298. Set(tmp68, BCValue(Imm32(1)));
  299. Load32(tmp69, tmp2);
  300. auto label50 = genLabel();
  301. auto tmp73 = genTemporary(BCType(BCTypeEnum.i32));//SP[300]
  302. Set(tmp73, tmp69);
  303. Sub3(tmp69, tmp69, BCValue(Imm32(1)));
  304. auto cndJmp18 = beginCndJmp(tmp73);
  305. auto label51 = genLabel();
  306. auto tmp74 = genTemporary(BCType(BCTypeEnum.i32));//SP[304]
  307. auto tmp75 = genTemporary(BCType(BCTypeEnum.i32));//SP[308]
  308. Add3(tmp75, tmp2, BCValue(Imm32(1)));
  309. auto tmp76 = genTemporary(BCType(BCTypeEnum.Char));//SP[312]
  310. auto tmp77 = genTemporary(BCType(BCTypeEnum.i32));//SP[316]
  311. auto tmp78 = genTemporary(BCType(BCTypeEnum.i32));//SP[320]
  312. Mod3(tmp78, tmp69, BCValue(Imm32(4)));
  313. Div3(tmp77, tmp69, BCValue(Imm32(4)));
  314. Add3(tmp75, tmp75, tmp77);
  315. Load32(tmp76, tmp75);
  316. Byte3(tmp76, tmp76, tmp78);
  317. auto tmp79 = genTemporary(BCType(BCTypeEnum.i32));//SP[324]
  318. Add3(tmp79, tmp67, BCValue(Imm32(1)));
  319. auto tmp80 = genTemporary(BCType(BCTypeEnum.Char));//SP[328]
  320. auto tmp81 = genTemporary(BCType(BCTypeEnum.i32));//SP[332]
  321. auto tmp82 = genTemporary(BCType(BCTypeEnum.i32));//SP[336]
  322. Mod3(tmp82, tmp69, BCValue(Imm32(4)));
  323. Div3(tmp81, tmp69, BCValue(Imm32(4)));
  324. Add3(tmp79, tmp79, tmp81);
  325. Load32(tmp80, tmp79);
  326. Byte3(tmp80, tmp80, tmp82);
  327. Neq3(tmp74, tmp76, tmp80);
  328. auto cndJmp19 = beginCndJmp(tmp74);
  329. auto label52 = genLabel();
  330. Set(tmp68, BCValue(Imm32(0)));
  331. auto jmp17 = beginJmp();
  332. auto label53 = genLabel();
  333. endJmp(jmp17, label53);
  334. auto jmp18 = beginJmp();
  335. auto label54 = genLabel();
  336. endJmp(jmp18, label54);
  337. endCndJmp(cndJmp19, label54);
  338. auto label55 = genLabel();
  339. genJump(label50);
  340. auto label56 = genLabel();
  341. endCndJmp(cndJmp18, label56);
  342. auto label57 = genLabel();
  343. endCndJmp(cndJmp17, label57);
  344. Eq3(BCValue.init, tmp68, BCValue(Imm32(1)));
  345. auto cndJmp20 = beginCndJmp();
  346. auto label58 = genLabel();
  347. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(16)));
  348. auto jmp19 = beginJmp();
  349. auto label59 = genLabel();
  350. auto jmp20 = beginJmp();
  351. auto label60 = genLabel();
  352. endCndJmp(cndJmp20, label60);
  353. auto tmp83 = genTemporary(BCType(BCTypeEnum.String));//SP[340]
  354. Set(tmp83, BCValue(Imm32(32)));
  355. auto tmp84 = genTemporary(BCType(BCTypeEnum.i32));//SP[344]
  356. auto tmp85 = genTemporary(BCType(BCTypeEnum.i32));//SP[348]
  357. Set(tmp84, BCValue(Imm32(0)));
  358. auto tmp86 = genTemporary(BCType(BCTypeEnum.i32));//SP[352]
  359. auto tmp87 = genTemporary(BCType(BCTypeEnum.i32));//SP[356]
  360. Load32(tmp87, tmp2);
  361. auto tmp88 = genTemporary(BCType(BCTypeEnum.i32));//SP[360]
  362. Load32(tmp88, tmp83);
  363. Eq3(tmp86, tmp87, tmp88);
  364. auto cndJmp21 = beginCndJmp(tmp86);
  365. auto label61 = genLabel();
  366. Set(tmp84, BCValue(Imm32(1)));
  367. Load32(tmp85, tmp2);
  368. auto label62 = genLabel();
  369. auto tmp89 = genTemporary(BCType(BCTypeEnum.i32));//SP[364]
  370. Set(tmp89, tmp85);
  371. Sub3(tmp85, tmp85, BCValue(Imm32(1)));
  372. auto cndJmp22 = beginCndJmp(tmp89);
  373. auto label63 = genLabel();
  374. auto tmp90 = genTemporary(BCType(BCTypeEnum.i32));//SP[368]
  375. auto tmp91 = genTemporary(BCType(BCTypeEnum.i32));//SP[372]
  376. Add3(tmp91, tmp2, BCValue(Imm32(1)));
  377. auto tmp92 = genTemporary(BCType(BCTypeEnum.Char));//SP[376]
  378. auto tmp93 = genTemporary(BCType(BCTypeEnum.i32));//SP[380]
  379. auto tmp94 = genTemporary(BCType(BCTypeEnum.i32));//SP[384]
  380. Mod3(tmp94, tmp85, BCValue(Imm32(4)));
  381. Div3(tmp93, tmp85, BCValue(Imm32(4)));
  382. Add3(tmp91, tmp91, tmp93);
  383. Load32(tmp92, tmp91);
  384. Byte3(tmp92, tmp92, tmp94);
  385. auto tmp95 = genTemporary(BCType(BCTypeEnum.i32));//SP[388]
  386. Add3(tmp95, tmp83, BCValue(Imm32(1)));
  387. auto tmp96 = genTemporary(BCType(BCTypeEnum.Char));//SP[392]
  388. auto tmp97 = genTemporary(BCType(BCTypeEnum.i32));//SP[396]
  389. auto tmp98 = genTemporary(BCType(BCTypeEnum.i32));//SP[400]
  390. Mod3(tmp98, tmp85, BCValue(Imm32(4)));
  391. Div3(tmp97, tmp85, BCValue(Imm32(4)));
  392. Add3(tmp95, tmp95, tmp97);
  393. Load32(tmp96, tmp95);
  394. Byte3(tmp96, tmp96, tmp98);
  395. Neq3(tmp90, tmp92, tmp96);
  396. auto cndJmp23 = beginCndJmp(tmp90);
  397. auto label64 = genLabel();
  398. Set(tmp84, BCValue(Imm32(0)));
  399. auto jmp21 = beginJmp();
  400. auto label65 = genLabel();
  401. endJmp(jmp21, label65);
  402. auto jmp22 = beginJmp();
  403. auto label66 = genLabel();
  404. endJmp(jmp22, label66);
  405. endCndJmp(cndJmp23, label66);
  406. auto label67 = genLabel();
  407. genJump(label62);
  408. auto label68 = genLabel();
  409. endCndJmp(cndJmp22, label68);
  410. auto label69 = genLabel();
  411. endCndJmp(cndJmp21, label69);
  412. Eq3(BCValue.init, tmp84, BCValue(Imm32(1)));
  413. auto cndJmp24 = beginCndJmp();
  414. auto label70 = genLabel();
  415. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(32)));
  416. auto jmp23 = beginJmp();
  417. auto label71 = genLabel();
  418. auto jmp24 = beginJmp();
  419. auto label72 = genLabel();
  420. endCndJmp(cndJmp24, label72);
  421. auto tmp99 = genTemporary(BCType(BCTypeEnum.String));//SP[404]
  422. Set(tmp99, BCValue(Imm32(36)));
  423. auto tmp100 = genTemporary(BCType(BCTypeEnum.i32));//SP[408]
  424. auto tmp101 = genTemporary(BCType(BCTypeEnum.i32));//SP[412]
  425. Set(tmp100, BCValue(Imm32(0)));
  426. auto tmp102 = genTemporary(BCType(BCTypeEnum.i32));//SP[416]
  427. auto tmp103 = genTemporary(BCType(BCTypeEnum.i32));//SP[420]
  428. Load32(tmp103, tmp2);
  429. auto tmp104 = genTemporary(BCType(BCTypeEnum.i32));//SP[424]
  430. Load32(tmp104, tmp99);
  431. Eq3(tmp102, tmp103, tmp104);
  432. auto cndJmp25 = beginCndJmp(tmp102);
  433. auto label73 = genLabel();
  434. Set(tmp100, BCValue(Imm32(1)));
  435. Load32(tmp101, tmp2);
  436. auto label74 = genLabel();
  437. auto tmp105 = genTemporary(BCType(BCTypeEnum.i32));//SP[428]
  438. Set(tmp105, tmp101);
  439. Sub3(tmp101, tmp101, BCValue(Imm32(1)));
  440. auto cndJmp26 = beginCndJmp(tmp105);
  441. auto label75 = genLabel();
  442. auto tmp106 = genTemporary(BCType(BCTypeEnum.i32));//SP[432]
  443. auto tmp107 = genTemporary(BCType(BCTypeEnum.i32));//SP[436]
  444. Add3(tmp107, tmp2, BCValue(Imm32(1)));
  445. auto tmp108 = genTemporary(BCType(BCTypeEnum.Char));//SP[440]
  446. auto tmp109 = genTemporary(BCType(BCTypeEnum.i32));//SP[444]
  447. auto tmp110 = genTemporary(BCType(BCTypeEnum.i32));//SP[448]
  448. Mod3(tmp110, tmp101, BCValue(Imm32(4)));
  449. Div3(tmp109, tmp101, BCValue(Imm32(4)));
  450. Add3(tmp107, tmp107, tmp109);
  451. Load32(tmp108, tmp107);
  452. Byte3(tmp108, tmp108, tmp110);
  453. auto tmp111 = genTemporary(BCType(BCTypeEnum.i32));//SP[452]
  454. Add3(tmp111, tmp99, BCValue(Imm32(1)));
  455. auto tmp112 = genTemporary(BCType(BCTypeEnum.Char));//SP[456]
  456. auto tmp113 = genTemporary(BCType(BCTypeEnum.i32));//SP[460]
  457. auto tmp114 = genTemporary(BCType(BCTypeEnum.i32));//SP[464]
  458. Mod3(tmp114, tmp101, BCValue(Imm32(4)));
  459. Div3(tmp113, tmp101, BCValue(Imm32(4)));
  460. Add3(tmp111, tmp111, tmp113);
  461. Load32(tmp112, tmp111);
  462. Byte3(tmp112, tmp112, tmp114);
  463. Neq3(tmp106, tmp108, tmp112);
  464. auto cndJmp27 = beginCndJmp(tmp106);
  465. auto label76 = genLabel();
  466. Set(tmp100, BCValue(Imm32(0)));
  467. auto jmp25 = beginJmp();
  468. auto label77 = genLabel();
  469. endJmp(jmp25, label77);
  470. auto jmp26 = beginJmp();
  471. auto label78 = genLabel();
  472. endJmp(jmp26, label78);
  473. endCndJmp(cndJmp27, label78);
  474. auto label79 = genLabel();
  475. genJump(label74);
  476. auto label80 = genLabel();
  477. endCndJmp(cndJmp26, label80);
  478. auto label81 = genLabel();
  479. endCndJmp(cndJmp25, label81);
  480. Eq3(BCValue.init, tmp100, BCValue(Imm32(1)));
  481. auto cndJmp28 = beginCndJmp();
  482. auto label82 = genLabel();
  483. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(64)));
  484. auto jmp27 = beginJmp();
  485. auto label83 = genLabel();
  486. auto jmp28 = beginJmp();
  487. auto label84 = genLabel();
  488. endCndJmp(cndJmp28, label84);
  489. auto tmp115 = genTemporary(BCType(BCTypeEnum.String));//SP[468]
  490. Set(tmp115, BCValue(Imm32(40)));
  491. auto tmp116 = genTemporary(BCType(BCTypeEnum.i32));//SP[472]
  492. auto tmp117 = genTemporary(BCType(BCTypeEnum.i32));//SP[476]
  493. Set(tmp116, BCValue(Imm32(0)));
  494. auto tmp118 = genTemporary(BCType(BCTypeEnum.i32));//SP[480]
  495. auto tmp119 = genTemporary(BCType(BCTypeEnum.i32));//SP[484]
  496. Load32(tmp119, tmp2);
  497. auto tmp120 = genTemporary(BCType(BCTypeEnum.i32));//SP[488]
  498. Load32(tmp120, tmp115);
  499. Eq3(tmp118, tmp119, tmp120);
  500. auto cndJmp29 = beginCndJmp(tmp118);
  501. auto label85 = genLabel();
  502. Set(tmp116, BCValue(Imm32(1)));
  503. Load32(tmp117, tmp2);
  504. auto label86 = genLabel();
  505. auto tmp121 = genTemporary(BCType(BCTypeEnum.i32));//SP[492]
  506. Set(tmp121, tmp117);
  507. Sub3(tmp117, tmp117, BCValue(Imm32(1)));
  508. auto cndJmp30 = beginCndJmp(tmp121);
  509. auto label87 = genLabel();
  510. auto tmp122 = genTemporary(BCType(BCTypeEnum.i32));//SP[496]
  511. auto tmp123 = genTemporary(BCType(BCTypeEnum.i32));//SP[500]
  512. Add3(tmp123, tmp2, BCValue(Imm32(1)));
  513. auto tmp124 = genTemporary(BCType(BCTypeEnum.Char));//SP[504]
  514. auto tmp125 = genTemporary(BCType(BCTypeEnum.i32));//SP[508]
  515. auto tmp126 = genTemporary(BCType(BCTypeEnum.i32));//SP[512]
  516. Mod3(tmp126, tmp117, BCValue(Imm32(4)));
  517. Div3(tmp125, tmp117, BCValue(Imm32(4)));
  518. Add3(tmp123, tmp123, tmp125);
  519. Load32(tmp124, tmp123);
  520. Byte3(tmp124, tmp124, tmp126);
  521. auto tmp127 = genTemporary(BCType(BCTypeEnum.i32));//SP[516]
  522. Add3(tmp127, tmp115, BCValue(Imm32(1)));
  523. auto tmp128 = genTemporary(BCType(BCTypeEnum.Char));//SP[520]
  524. auto tmp129 = genTemporary(BCType(BCTypeEnum.i32));//SP[524]
  525. auto tmp130 = genTemporary(BCType(BCTypeEnum.i32));//SP[528]
  526. Mod3(tmp130, tmp117, BCValue(Imm32(4)));
  527. Div3(tmp129, tmp117, BCValue(Imm32(4)));
  528. Add3(tmp127, tmp127, tmp129);
  529. Load32(tmp128, tmp127);
  530. Byte3(tmp128, tmp128, tmp130);
  531. Neq3(tmp122, tmp124, tmp128);
  532. auto cndJmp31 = beginCndJmp(tmp122);
  533. auto label88 = genLabel();
  534. Set(tmp116, BCValue(Imm32(0)));
  535. auto jmp29 = beginJmp();
  536. auto label89 = genLabel();
  537. endJmp(jmp29, label89);
  538. auto jmp30 = beginJmp();
  539. auto label90 = genLabel();
  540. endJmp(jmp30, label90);
  541. endCndJmp(cndJmp31, label90);
  542. auto label91 = genLabel();
  543. genJump(label86);
  544. auto label92 = genLabel();
  545. endCndJmp(cndJmp30, label92);
  546. auto label93 = genLabel();
  547. endCndJmp(cndJmp29, label93);
  548. Eq3(BCValue.init, tmp116, BCValue(Imm32(1)));
  549. auto cndJmp32 = beginCndJmp();
  550. auto label94 = genLabel();
  551. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(128)));
  552. auto jmp31 = beginJmp();
  553. auto label95 = genLabel();
  554. auto jmp32 = beginJmp();
  555. auto label96 = genLabel();
  556. endCndJmp(cndJmp32, label96);
  557. auto tmp131 = genTemporary(BCType(BCTypeEnum.String));//SP[532]
  558. Set(tmp131, BCValue(Imm32(44)));
  559. auto tmp132 = genTemporary(BCType(BCTypeEnum.i32));//SP[536]
  560. auto tmp133 = genTemporary(BCType(BCTypeEnum.i32));//SP[540]
  561. Set(tmp132, BCValue(Imm32(0)));
  562. auto tmp134 = genTemporary(BCType(BCTypeEnum.i32));//SP[544]
  563. auto tmp135 = genTemporary(BCType(BCTypeEnum.i32));//SP[548]
  564. Load32(tmp135, tmp2);
  565. auto tmp136 = genTemporary(BCType(BCTypeEnum.i32));//SP[552]
  566. Load32(tmp136, tmp131);
  567. Eq3(tmp134, tmp135, tmp136);
  568. auto cndJmp33 = beginCndJmp(tmp134);
  569. auto label97 = genLabel();
  570. Set(tmp132, BCValue(Imm32(1)));
  571. Load32(tmp133, tmp2);
  572. auto label98 = genLabel();
  573. auto tmp137 = genTemporary(BCType(BCTypeEnum.i32));//SP[556]
  574. Set(tmp137, tmp133);
  575. Sub3(tmp133, tmp133, BCValue(Imm32(1)));
  576. auto cndJmp34 = beginCndJmp(tmp137);
  577. auto label99 = genLabel();
  578. auto tmp138 = genTemporary(BCType(BCTypeEnum.i32));//SP[560]
  579. auto tmp139 = genTemporary(BCType(BCTypeEnum.i32));//SP[564]
  580. Add3(tmp139, tmp2, BCValue(Imm32(1)));
  581. auto tmp140 = genTemporary(BCType(BCTypeEnum.Char));//SP[568]
  582. auto tmp141 = genTemporary(BCType(BCTypeEnum.i32));//SP[572]
  583. auto tmp142 = genTemporary(BCType(BCTypeEnum.i32));//SP[576]
  584. Mod3(tmp142, tmp133, BCValue(Imm32(4)));
  585. Div3(tmp141, tmp133, BCValue(Imm32(4)));
  586. Add3(tmp139, tmp139, tmp141);
  587. Load32(tmp140, tmp139);
  588. Byte3(tmp140, tmp140, tmp142);
  589. auto tmp143 = genTemporary(BCType(BCTypeEnum.i32));//SP[580]
  590. Add3(tmp143, tmp131, BCValue(Imm32(1)));
  591. auto tmp144 = genTemporary(BCType(BCTypeEnum.Char));//SP[584]
  592. auto tmp145 = genTemporary(BCType(BCTypeEnum.i32));//SP[588]
  593. auto tmp146 = genTemporary(BCType(BCTypeEnum.i32));//SP[592]
  594. Mod3(tmp146, tmp133, BCValue(Imm32(4)));
  595. Div3(tmp145, tmp133, BCValue(Imm32(4)));
  596. Add3(tmp143, tmp143, tmp145);
  597. Load32(tmp144, tmp143);
  598. Byte3(tmp144, tmp144, tmp146);
  599. Neq3(tmp138, tmp140, tmp144);
  600. auto cndJmp35 = beginCndJmp(tmp138);
  601. auto label100 = genLabel();
  602. Set(tmp132, BCValue(Imm32(0)));
  603. auto jmp33 = beginJmp();
  604. auto label101 = genLabel();
  605. endJmp(jmp33, label101);
  606. auto jmp34 = beginJmp();
  607. auto label102 = genLabel();
  608. endJmp(jmp34, label102);
  609. endCndJmp(cndJmp35, label102);
  610. auto label103 = genLabel();
  611. genJump(label98);
  612. auto label104 = genLabel();
  613. endCndJmp(cndJmp34, label104);
  614. auto label105 = genLabel();
  615. endCndJmp(cndJmp33, label105);
  616. Eq3(BCValue.init, tmp132, BCValue(Imm32(1)));
  617. auto cndJmp36 = beginCndJmp();
  618. auto label106 = genLabel();
  619. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(256)));
  620. auto jmp35 = beginJmp();
  621. auto label107 = genLabel();
  622. auto jmp36 = beginJmp();
  623. auto label108 = genLabel();
  624. endCndJmp(cndJmp36, label108);
  625. auto tmp147 = genTemporary(BCType(BCTypeEnum.String));//SP[596]
  626. Set(tmp147, BCValue(Imm32(48)));
  627. auto tmp148 = genTemporary(BCType(BCTypeEnum.i32));//SP[600]
  628. auto tmp149 = genTemporary(BCType(BCTypeEnum.i32));//SP[604]
  629. Set(tmp148, BCValue(Imm32(0)));
  630. auto tmp150 = genTemporary(BCType(BCTypeEnum.i32));//SP[608]
  631. auto tmp151 = genTemporary(BCType(BCTypeEnum.i32));//SP[612]
  632. Load32(tmp151, tmp2);
  633. auto tmp152 = genTemporary(BCType(BCTypeEnum.i32));//SP[616]
  634. Load32(tmp152, tmp147);
  635. Eq3(tmp150, tmp151, tmp152);
  636. auto cndJmp37 = beginCndJmp(tmp150);
  637. auto label109 = genLabel();
  638. Set(tmp148, BCValue(Imm32(1)));
  639. Load32(tmp149, tmp2);
  640. auto label110 = genLabel();
  641. auto tmp153 = genTemporary(BCType(BCTypeEnum.i32));//SP[620]
  642. Set(tmp153, tmp149);
  643. Sub3(tmp149, tmp149, BCValue(Imm32(1)));
  644. auto cndJmp38 = beginCndJmp(tmp153);
  645. auto label111 = genLabel();
  646. auto tmp154 = genTemporary(BCType(BCTypeEnum.i32));//SP[624]
  647. auto tmp155 = genTemporary(BCType(BCTypeEnum.i32));//SP[628]
  648. Add3(tmp155, tmp2, BCValue(Imm32(1)));
  649. auto tmp156 = genTemporary(BCType(BCTypeEnum.Char));//SP[632]
  650. auto tmp157 = genTemporary(BCType(BCTypeEnum.i32));//SP[636]
  651. auto tmp158 = genTemporary(BCType(BCTypeEnum.i32));//SP[640]
  652. Mod3(tmp158, tmp149, BCValue(Imm32(4)));
  653. Div3(tmp157, tmp149, BCValue(Imm32(4)));
  654. Add3(tmp155, tmp155, tmp157);
  655. Load32(tmp156, tmp155);
  656. Byte3(tmp156, tmp156, tmp158);
  657. auto tmp159 = genTemporary(BCType(BCTypeEnum.i32));//SP[644]
  658. Add3(tmp159, tmp147, BCValue(Imm32(1)));
  659. auto tmp160 = genTemporary(BCType(BCTypeEnum.Char));//SP[648]
  660. auto tmp161 = genTemporary(BCType(BCTypeEnum.i32));//SP[652]
  661. auto tmp162 = genTemporary(BCType(BCTypeEnum.i32));//SP[656]
  662. Mod3(tmp162, tmp149, BCValue(Imm32(4)));
  663. Div3(tmp161, tmp149, BCValue(Imm32(4)));
  664. Add3(tmp159, tmp159, tmp161);
  665. Load32(tmp160, tmp159);
  666. Byte3(tmp160, tmp160, tmp162);
  667. Neq3(tmp154, tmp156, tmp160);
  668. auto cndJmp39 = beginCndJmp(tmp154);
  669. auto label112 = genLabel();
  670. Set(tmp148, BCValue(Imm32(0)));
  671. auto jmp37 = beginJmp();
  672. auto label113 = genLabel();
  673. endJmp(jmp37, label113);
  674. auto jmp38 = beginJmp();
  675. auto label114 = genLabel();
  676. endJmp(jmp38, label114);
  677. endCndJmp(cndJmp39, label114);
  678. auto label115 = genLabel();
  679. genJump(label110);
  680. auto label116 = genLabel();
  681. endCndJmp(cndJmp38, label116);
  682. auto label117 = genLabel();
  683. endCndJmp(cndJmp37, label117);
  684. Eq3(BCValue.init, tmp148, BCValue(Imm32(1)));
  685. auto cndJmp40 = beginCndJmp();
  686. auto label118 = genLabel();
  687. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(512)));
  688. auto jmp39 = beginJmp();
  689. auto label119 = genLabel();
  690. auto jmp40 = beginJmp();
  691. auto label120 = genLabel();
  692. endCndJmp(cndJmp40, label120);
  693. auto tmp163 = genTemporary(BCType(BCTypeEnum.String));//SP[660]
  694. Set(tmp163, BCValue(Imm32(52)));
  695. auto tmp164 = genTemporary(BCType(BCTypeEnum.i32));//SP[664]
  696. auto tmp165 = genTemporary(BCType(BCTypeEnum.i32));//SP[668]
  697. Set(tmp164, BCValue(Imm32(0)));
  698. auto tmp166 = genTemporary(BCType(BCTypeEnum.i32));//SP[672]
  699. auto tmp167 = genTemporary(BCType(BCTypeEnum.i32));//SP[676]
  700. Load32(tmp167, tmp2);
  701. auto tmp168 = genTemporary(BCType(BCTypeEnum.i32));//SP[680]
  702. Load32(tmp168, tmp163);
  703. Eq3(tmp166, tmp167, tmp168);
  704. auto cndJmp41 = beginCndJmp(tmp166);
  705. auto label121 = genLabel();
  706. Set(tmp164, BCValue(Imm32(1)));
  707. Load32(tmp165, tmp2);
  708. auto label122 = genLabel();
  709. auto tmp169 = genTemporary(BCType(BCTypeEnum.i32));//SP[684]
  710. Set(tmp169, tmp165);
  711. Sub3(tmp165, tmp165, BCValue(Imm32(1)));
  712. auto cndJmp42 = beginCndJmp(tmp169);
  713. auto label123 = genLabel();
  714. auto tmp170 = genTemporary(BCType(BCTypeEnum.i32));//SP[688]
  715. auto tmp171 = genTemporary(BCType(BCTypeEnum.i32));//SP[692]
  716. Add3(tmp171, tmp2, BCValue(Imm32(1)));
  717. auto tmp172 = genTemporary(BCType(BCTypeEnum.Char));//SP[696]
  718. auto tmp173 = genTemporary(BCType(BCTypeEnum.i32));//SP[700]
  719. auto tmp174 = genTemporary(BCType(BCTypeEnum.i32));//SP[704]
  720. Mod3(tmp174, tmp165, BCValue(Imm32(4)));
  721. Div3(tmp173, tmp165, BCValue(Imm32(4)));
  722. Add3(tmp171, tmp171, tmp173);
  723. Load32(tmp172, tmp171);
  724. Byte3(tmp172, tmp172, tmp174);
  725. auto tmp175 = genTemporary(BCType(BCTypeEnum.i32));//SP[708]
  726. Add3(tmp175, tmp163, BCValue(Imm32(1)));
  727. auto tmp176 = genTemporary(BCType(BCTypeEnum.Char));//SP[712]
  728. auto tmp177 = genTemporary(BCType(BCTypeEnum.i32));//SP[716]
  729. auto tmp178 = genTemporary(BCType(BCTypeEnum.i32));//SP[720]
  730. Mod3(tmp178, tmp165, BCValue(Imm32(4)));
  731. Div3(tmp177, tmp165, BCValue(Imm32(4)));
  732. Add3(tmp175, tmp175, tmp177);
  733. Load32(tmp176, tmp175);
  734. Byte3(tmp176, tmp176, tmp178);
  735. Neq3(tmp170, tmp172, tmp176);
  736. auto cndJmp43 = beginCndJmp(tmp170);
  737. auto label124 = genLabel();
  738. Set(tmp164, BCValue(Imm32(0)));
  739. auto jmp41 = beginJmp();
  740. auto label125 = genLabel();
  741. endJmp(jmp41, label125);
  742. auto jmp42 = beginJmp();
  743. auto label126 = genLabel();
  744. endJmp(jmp42, label126);
  745. endCndJmp(cndJmp43, label126);
  746. auto label127 = genLabel();
  747. genJump(label122);
  748. auto label128 = genLabel();
  749. endCndJmp(cndJmp42, label128);
  750. auto label129 = genLabel();
  751. endCndJmp(cndJmp41, label129);
  752. Eq3(BCValue.init, tmp164, BCValue(Imm32(1)));
  753. auto cndJmp44 = beginCndJmp();
  754. auto label130 = genLabel();
  755. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(1024)));
  756. auto jmp43 = beginJmp();
  757. auto label131 = genLabel();
  758. auto jmp44 = beginJmp();
  759. auto label132 = genLabel();
  760. endCndJmp(cndJmp44, label132);
  761. auto tmp179 = genTemporary(BCType(BCTypeEnum.String));//SP[724]
  762. Set(tmp179, BCValue(Imm32(56)));
  763. auto tmp180 = genTemporary(BCType(BCTypeEnum.i32));//SP[728]
  764. auto tmp181 = genTemporary(BCType(BCTypeEnum.i32));//SP[732]
  765. Set(tmp180, BCValue(Imm32(0)));
  766. auto tmp182 = genTemporary(BCType(BCTypeEnum.i32));//SP[736]
  767. auto tmp183 = genTemporary(BCType(BCTypeEnum.i32));//SP[740]
  768. Load32(tmp183, tmp2);
  769. auto tmp184 = genTemporary(BCType(BCTypeEnum.i32));//SP[744]
  770. Load32(tmp184, tmp179);
  771. Eq3(tmp182, tmp183, tmp184);
  772. auto cndJmp45 = beginCndJmp(tmp182);
  773. auto label133 = genLabel();
  774. Set(tmp180, BCValue(Imm32(1)));
  775. Load32(tmp181, tmp2);
  776. auto label134 = genLabel();
  777. auto tmp185 = genTemporary(BCType(BCTypeEnum.i32));//SP[748]
  778. Set(tmp185, tmp181);
  779. Sub3(tmp181, tmp181, BCValue(Imm32(1)));
  780. auto cndJmp46 = beginCndJmp(tmp185);
  781. auto label135 = genLabel();
  782. auto tmp186 = genTemporary(BCType(BCTypeEnum.i32));//SP[752]
  783. auto tmp187 = genTemporary(BCType(BCTypeEnum.i32));//SP[756]
  784. Add3(tmp187, tmp2, BCValue(Imm32(1)));
  785. auto tmp188 = genTemporary(BCType(BCTypeEnum.Char));//SP[760]
  786. auto tmp189 = genTemporary(BCType(BCTypeEnum.i32));//SP[764]
  787. auto tmp190 = genTemporary(BCType(BCTypeEnum.i32));//SP[768]
  788. Mod3(tmp190, tmp181, BCValue(Imm32(4)));
  789. Div3(tmp189, tmp181, BCValue(Imm32(4)));
  790. Add3(tmp187, tmp187, tmp189);
  791. Load32(tmp188, tmp187);
  792. Byte3(tmp188, tmp188, tmp190);
  793. auto tmp191 = genTemporary(BCType(BCTypeEnum.i32));//SP[772]
  794. Add3(tmp191, tmp179, BCValue(Imm32(1)));
  795. auto tmp192 = genTemporary(BCType(BCTypeEnum.Char));//SP[776]
  796. auto tmp193 = genTemporary(BCType(BCTypeEnum.i32));//SP[780]
  797. auto tmp194 = genTemporary(BCType(BCTypeEnum.i32));//SP[784]
  798. Mod3(tmp194, tmp181, BCValue(Imm32(4)));
  799. Div3(tmp193, tmp181, BCValue(Imm32(4)));
  800. Add3(tmp191, tmp191, tmp193);
  801. Load32(tmp192, tmp191);
  802. Byte3(tmp192, tmp192, tmp194);
  803. Neq3(tmp186, tmp188, tmp192);
  804. auto cndJmp47 = beginCndJmp(tmp186);
  805. auto label136 = genLabel();
  806. Set(tmp180, BCValue(Imm32(0)));
  807. auto jmp45 = beginJmp();
  808. auto label137 = genLabel();
  809. endJmp(jmp45, label137);
  810. auto jmp46 = beginJmp();
  811. auto label138 = genLabel();
  812. endJmp(jmp46, label138);
  813. endCndJmp(cndJmp47, label138);
  814. auto label139 = genLabel();
  815. genJump(label134);
  816. auto label140 = genLabel();
  817. endCndJmp(cndJmp46, label140);
  818. auto label141 = genLabel();
  819. endCndJmp(cndJmp45, label141);
  820. Eq3(BCValue.init, tmp180, BCValue(Imm32(1)));
  821. auto cndJmp48 = beginCndJmp();
  822. auto label142 = genLabel();
  823. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(2048)));
  824. auto jmp47 = beginJmp();
  825. auto label143 = genLabel();
  826. auto jmp48 = beginJmp();
  827. auto label144 = genLabel();
  828. endCndJmp(cndJmp48, label144);
  829. auto tmp195 = genTemporary(BCType(BCTypeEnum.String));//SP[788]
  830. Set(tmp195, BCValue(Imm32(60)));
  831. auto tmp196 = genTemporary(BCType(BCTypeEnum.i32));//SP[792]
  832. auto tmp197 = genTemporary(BCType(BCTypeEnum.i32));//SP[796]
  833. Set(tmp196, BCValue(Imm32(0)));
  834. auto tmp198 = genTemporary(BCType(BCTypeEnum.i32));//SP[800]
  835. auto tmp199 = genTemporary(BCType(BCTypeEnum.i32));//SP[804]
  836. Load32(tmp199, tmp2);
  837. auto tmp200 = genTemporary(BCType(BCTypeEnum.i32));//SP[808]
  838. Load32(tmp200, tmp195);
  839. Eq3(tmp198, tmp199, tmp200);
  840. auto cndJmp49 = beginCndJmp(tmp198);
  841. auto label145 = genLabel();
  842. Set(tmp196, BCValue(Imm32(1)));
  843. Load32(tmp197, tmp2);
  844. auto label146 = genLabel();
  845. auto tmp201 = genTemporary(BCType(BCTypeEnum.i32));//SP[812]
  846. Set(tmp201, tmp197);
  847. Sub3(tmp197, tmp197, BCValue(Imm32(1)));
  848. auto cndJmp50 = beginCndJmp(tmp201);
  849. auto label147 = genLabel();
  850. auto tmp202 = genTemporary(BCType(BCTypeEnum.i32));//SP[816]
  851. auto tmp203 = genTemporary(BCType(BCTypeEnum.i32));//SP[820]
  852. Add3(tmp203, tmp2, BCValue(Imm32(1)));
  853. auto tmp204 = genTemporary(BCType(BCTypeEnum.Char));//SP[824]
  854. auto tmp205 = genTemporary(BCType(BCTypeEnum.i32));//SP[828]
  855. auto tmp206 = genTemporary(BCType(BCTypeEnum.i32));//SP[832]
  856. Mod3(tmp206, tmp197, BCValue(Imm32(4)));
  857. Div3(tmp205, tmp197, BCValue(Imm32(4)));
  858. Add3(tmp203, tmp203, tmp205);
  859. Load32(tmp204, tmp203);
  860. Byte3(tmp204, tmp204, tmp206);
  861. auto tmp207 = genTemporary(BCType(BCTypeEnum.i32));//SP[836]
  862. Add3(tmp207, tmp195, BCValue(Imm32(1)));
  863. auto tmp208 = genTemporary(BCType(BCTypeEnum.Char));//SP[840]
  864. auto tmp209 = genTemporary(BCType(BCTypeEnum.i32));//SP[844]
  865. auto tmp210 = genTemporary(BCType(BCTypeEnum.i32));//SP[848]
  866. Mod3(tmp210, tmp197, BCValue(Imm32(4)));
  867. Div3(tmp209, tmp197, BCValue(Imm32(4)));
  868. Add3(tmp207, tmp207, tmp209);
  869. Load32(tmp208, tmp207);
  870. Byte3(tmp208, tmp208, tmp210);
  871. Neq3(tmp202, tmp204, tmp208);
  872. auto cndJmp51 = beginCndJmp(tmp202);
  873. auto label148 = genLabel();
  874. Set(tmp196, BCValue(Imm32(0)));
  875. auto jmp49 = beginJmp();
  876. auto label149 = genLabel();
  877. endJmp(jmp49, label149);
  878. auto jmp50 = beginJmp();
  879. auto label150 = genLabel();
  880. endJmp(jmp50, label150);
  881. endCndJmp(cndJmp51, label150);
  882. auto label151 = genLabel();
  883. genJump(label146);
  884. auto label152 = genLabel();
  885. endCndJmp(cndJmp50, label152);
  886. auto label153 = genLabel();
  887. endCndJmp(cndJmp49, label153);
  888. Eq3(BCValue.init, tmp196, BCValue(Imm32(1)));
  889. auto cndJmp52 = beginCndJmp();
  890. auto label154 = genLabel();
  891. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(4096)));
  892. auto jmp51 = beginJmp();
  893. auto label155 = genLabel();
  894. auto jmp52 = beginJmp();
  895. auto label156 = genLabel();
  896. endCndJmp(cndJmp52, label156);
  897. auto label157 = genLabel();
  898. AssertError(BCValue(Imm32(0)), Imm32(1)/*Error*/);
  899. auto label158 = genLabel();
  900. endJmp(jmp3, label158);
  901. endJmp(jmp4, label158);
  902. endJmp(jmp7, label158);
  903. endJmp(jmp8, label158);
  904. endJmp(jmp11, label158);
  905. endJmp(jmp12, label158);
  906. endJmp(jmp15, label158);
  907. endJmp(jmp16, label158);
  908. endJmp(jmp19, label158);
  909. endJmp(jmp20, label158);
  910. endJmp(jmp23, label158);
  911. endJmp(jmp24, label158);
  912. endJmp(jmp27, label158);
  913. endJmp(jmp28, label158);
  914. endJmp(jmp31, label158);
  915. endJmp(jmp32, label158);
  916. endJmp(jmp35, label158);
  917. endJmp(jmp36, label158);
  918. endJmp(jmp39, label158);
  919. endJmp(jmp40, label158);
  920. endJmp(jmp43, label158);
  921. endJmp(jmp44, label158);
  922. endJmp(jmp47, label158);
  923. endJmp(jmp48, label158);
  924. endJmp(jmp51, label158);
  925. endJmp(jmp52, label158);
  926. //currSp();//SP[852]
  927. incSp();
  928. auto tmp211 = genTemporary(BCType(BCTypeEnum.String));//SP[856]
  929. Set(tmp211, BCValue(Imm32(64)));
  930. auto tmp212 = genTemporary(BCType(BCTypeEnum.String));//SP[860]
  931. Set(tmp212, BCValue(Imm32(68)));
  932. auto tmp213 = genTemporary(BCType(BCTypeEnum.String));//SP[864]
  933. Set(tmp213, BCValue(Imm32(72)));
  934. auto tmp214 = genTemporary(BCType(BCTypeEnum.i32));//SP[868]
  935. auto tmp215 = genTemporary(BCType(BCTypeEnum.i32));//SP[872]
  936. Set(tmp214, BCValue(Imm32(0)));
  937. auto tmp216 = genTemporary(BCType(BCTypeEnum.i32));//SP[876]
  938. auto tmp217 = genTemporary(BCType(BCTypeEnum.i32));//SP[880]
  939. Load32(tmp217, tmp212);
  940. auto tmp218 = genTemporary(BCType(BCTypeEnum.i32));//SP[884]
  941. Load32(tmp218, tmp213);
  942. Eq3(tmp216, tmp217, tmp218);
  943. auto cndJmp53 = beginCndJmp(tmp216);
  944. auto label159 = genLabel();
  945. Set(tmp214, BCValue(Imm32(1)));
  946. Load32(tmp215, tmp212);
  947. auto label160 = genLabel();
  948. auto tmp219 = genTemporary(BCType(BCTypeEnum.i32));//SP[888]
  949. Set(tmp219, tmp215);
  950. Sub3(tmp215, tmp215, BCValue(Imm32(1)));
  951. auto cndJmp54 = beginCndJmp(tmp219);
  952. auto label161 = genLabel();
  953. auto tmp220 = genTemporary(BCType(BCTypeEnum.i32));//SP[892]
  954. auto tmp221 = genTemporary(BCType(BCTypeEnum.i32));//SP[896]
  955. Add3(tmp221, tmp212, BCValue(Imm32(1)));
  956. auto tmp222 = genTemporary(BCType(BCTypeEnum.Char));//SP[900]
  957. auto tmp223 = genTemporary(BCType(BCTypeEnum.i32));//SP[904]
  958. auto tmp224 = genTemporary(BCType(BCTypeEnum.i32));//SP[908]
  959. Mod3(tmp224, tmp215, BCValue(Imm32(4)));
  960. Div3(tmp223, tmp215, BCValue(Imm32(4)));
  961. Add3(tmp221, tmp221, tmp223);
  962. Load32(tmp222, tmp221);
  963. Byte3(tmp222, tmp222, tmp224);
  964. auto tmp225 = genTemporary(BCType(BCTypeEnum.i32));//SP[912]
  965. Add3(tmp225, tmp213, BCValue(Imm32(1)));
  966. auto tmp226 = genTemporary(BCType(BCTypeEnum.Char));//SP[916]
  967. auto tmp227 = genTemporary(BCType(BCTypeEnum.i32));//SP[920]
  968. auto tmp228 = genTemporary(BCType(BCTypeEnum.i32));//SP[924]
  969. Mod3(tmp228, tmp215, BCValue(Imm32(4)));
  970. Div3(tmp227, tmp215, BCValue(Imm32(4)));
  971. Add3(tmp225, tmp225, tmp227);
  972. Load32(tmp226, tmp225);
  973. Byte3(tmp226, tmp226, tmp228);
  974. Neq3(tmp220, tmp222, tmp226);
  975. auto cndJmp55 = beginCndJmp(tmp220);
  976. auto label162 = genLabel();
  977. Set(tmp214, BCValue(Imm32(0)));
  978. auto jmp53 = beginJmp();
  979. auto label163 = genLabel();
  980. endJmp(jmp53, label163);
  981. auto jmp54 = beginJmp();
  982. auto label164 = genLabel();
  983. endJmp(jmp54, label164);
  984. endCndJmp(cndJmp55, label164);
  985. auto label165 = genLabel();
  986. genJump(label160);
  987. auto label166 = genLabel();
  988. endCndJmp(cndJmp54, label166);
  989. auto label167 = genLabel();
  990. endCndJmp(cndJmp53, label167);
  991. Eq3(BCValue.init, tmp214, BCValue(Imm32(1)));
  992. auto cndJmp56 = beginCndJmp();
  993. auto label168 = genLabel();
  994. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(1)));
  995. auto jmp55 = beginJmp();
  996. auto label169 = genLabel();
  997. auto jmp56 = beginJmp();
  998. auto label170 = genLabel();
  999. endCndJmp(cndJmp56, label170);
  1000. auto tmp229 = genTemporary(BCType(BCTypeEnum.String));//SP[928]
  1001. Set(tmp229, BCValue(Imm32(76)));
  1002. auto tmp230 = genTemporary(BCType(BCTypeEnum.i32));//SP[932]
  1003. auto tmp231 = genTemporary(BCType(BCTypeEnum.i32));//SP[936]
  1004. Set(tmp230, BCValue(Imm32(0)));
  1005. auto tmp232 = genTemporary(BCType(BCTypeEnum.i32));//SP[940]
  1006. auto tmp233 = genTemporary(BCType(BCTypeEnum.i32));//SP[944]
  1007. Load32(tmp233, tmp212);
  1008. auto tmp234 = genTemporary(BCType(BCTypeEnum.i32));//SP[948]
  1009. Load32(tmp234, tmp229);
  1010. Eq3(tmp232, tmp233, tmp234);
  1011. auto cndJmp57 = beginCndJmp(tmp232);
  1012. auto label171 = genLabel();
  1013. Set(tmp230, BCValue(Imm32(1)));
  1014. Load32(tmp231, tmp212);
  1015. auto label172 = genLabel();
  1016. auto tmp235 = genTemporary(BCType(BCTypeEnum.i32));//SP[952]
  1017. Set(tmp235, tmp231);
  1018. Sub3(tmp231, tmp231, BCValue(Imm32(1)));
  1019. auto cndJmp58 = beginCndJmp(tmp235);
  1020. auto label173 = genLabel();
  1021. auto tmp236 = genTemporary(BCType(BCTypeEnum.i32));//SP[956]
  1022. auto tmp237 = genTemporary(BCType(BCTypeEnum.i32));//SP[960]
  1023. Add3(tmp237, tmp212, BCValue(Imm32(1)));
  1024. auto tmp238 = genTemporary(BCType(BCTypeEnum.Char));//SP[964]
  1025. auto tmp239 = genTemporary(BCType(BCTypeEnum.i32));//SP[968]
  1026. auto tmp240 = genTemporary(BCType(BCTypeEnum.i32));//SP[972]
  1027. Mod3(tmp240, tmp231, BCValue(Imm32(4)));
  1028. Div3(tmp239, tmp231, BCValue(Imm32(4)));
  1029. Add3(tmp237, tmp237, tmp239);
  1030. Load32(tmp238, tmp237);
  1031. Byte3(tmp238, tmp238, tmp240);
  1032. auto tmp241 = genTemporary(BCType(BCTypeEnum.i32));//SP[976]
  1033. Add3(tmp241, tmp229, BCValue(Imm32(1)));
  1034. auto tmp242 = genTemporary(BCType(BCTypeEnum.Char));//SP[980]
  1035. auto tmp243 = genTemporary(BCType(BCTypeEnum.i32));//SP[984]
  1036. auto tmp244 = genTemporary(BCType(BCTypeEnum.i32));//SP[988]
  1037. Mod3(tmp244, tmp231, BCValue(Imm32(4)));
  1038. Div3(tmp243, tmp231, BCValue(Imm32(4)));
  1039. Add3(tmp241, tmp241, tmp243);
  1040. Load32(tmp242, tmp241);
  1041. Byte3(tmp242, tmp242, tmp244);
  1042. Neq3(tmp236, tmp238, tmp242);
  1043. auto cndJmp59 = beginCndJmp(tmp236);
  1044. auto label174 = genLabel();
  1045. Set(tmp230, BCValue(Imm32(0)));
  1046. auto jmp57 = beginJmp();
  1047. auto label175 = genLabel();
  1048. endJmp(jmp57, label175);
  1049. auto jmp58 = beginJmp();
  1050. auto label176 = genLabel();
  1051. endJmp(jmp58, label176);
  1052. endCndJmp(cndJmp59, label176);
  1053. auto label177 = genLabel();
  1054. genJump(label172);
  1055. auto label178 = genLabel();
  1056. endCndJmp(cndJmp58, label178);
  1057. auto label179 = genLabel();
  1058. endCndJmp(cndJmp57, label179);
  1059. Eq3(BCValue.init, tmp230, BCValue(Imm32(1)));
  1060. auto cndJmp60 = beginCndJmp();
  1061. auto label180 = genLabel();
  1062. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(2)));
  1063. auto jmp59 = beginJmp();
  1064. auto label181 = genLabel();
  1065. auto jmp60 = beginJmp();
  1066. auto label182 = genLabel();
  1067. endCndJmp(cndJmp60, label182);
  1068. auto tmp245 = genTemporary(BCType(BCTypeEnum.String));//SP[992]
  1069. Set(tmp245, BCValue(Imm32(80)));
  1070. auto tmp246 = genTemporary(BCType(BCTypeEnum.i32));//SP[996]
  1071. auto tmp247 = genTemporary(BCType(BCTypeEnum.i32));//SP[1000]
  1072. Set(tmp246, BCValue(Imm32(0)));
  1073. auto tmp248 = genTemporary(BCType(BCTypeEnum.i32));//SP[1004]
  1074. auto tmp249 = genTemporary(BCType(BCTypeEnum.i32));//SP[1008]
  1075. Load32(tmp249, tmp212);
  1076. auto tmp250 = genTemporary(BCType(BCTypeEnum.i32));//SP[1012]
  1077. Load32(tmp250, tmp245);
  1078. Eq3(tmp248, tmp249, tmp250);
  1079. auto cndJmp61 = beginCndJmp(tmp248);
  1080. auto label183 = genLabel();
  1081. Set(tmp246, BCValue(Imm32(1)));
  1082. Load32(tmp247, tmp212);
  1083. auto label184 = genLabel();
  1084. auto tmp251 = genTemporary(BCType(BCTypeEnum.i32));//SP[1016]
  1085. Set(tmp251, tmp247);
  1086. Sub3(tmp247, tmp247, BCValue(Imm32(1)));
  1087. auto cndJmp62 = beginCndJmp(tmp251);
  1088. auto label185 = genLabel();
  1089. auto tmp252 = genTemporary(BCType(BCTypeEnum.i32));//SP[1020]
  1090. auto tmp253 = genTemporary(BCType(BCTypeEnum.i32));//SP[1024]
  1091. Add3(tmp253, tmp212, BCValue(Imm32(1)));
  1092. auto tmp254 = genTemporary(BCType(BCTypeEnum.Char));//SP[1028]
  1093. auto tmp255 = genTemporary(BCType(BCTypeEnum.i32));//SP[1032]
  1094. auto tmp256 = genTemporary(BCType(BCTypeEnum.i32));//SP[1036]
  1095. Mod3(tmp256, tmp247, BCValue(Imm32(4)));
  1096. Div3(tmp255, tmp247, BCValue(Imm32(4)));
  1097. Add3(tmp253, tmp253, tmp255);
  1098. Load32(tmp254, tmp253);
  1099. Byte3(tmp254, tmp254, tmp256);
  1100. auto tmp257 = genTemporary(BCType(BCTypeEnum.i32));//SP[1040]
  1101. Add3(tmp257, tmp245, BCValue(Imm32(1)));
  1102. auto tmp258 = genTemporary(BCType(BCTypeEnum.Char));//SP[1044]
  1103. auto tmp259 = genTemporary(BCType(BCTypeEnum.i32));//SP[1048]
  1104. auto tmp260 = genTemporary(BCType(BCTypeEnum.i32));//SP[1052]
  1105. Mod3(tmp260, tmp247, BCValue(Imm32(4)));
  1106. Div3(tmp259, tmp247, BCValue(Imm32(4)));
  1107. Add3(tmp257, tmp257, tmp259);
  1108. Load32(tmp258, tmp257);
  1109. Byte3(tmp258, tmp258, tmp260);
  1110. Neq3(tmp252, tmp254, tmp258);
  1111. auto cndJmp63 = beginCndJmp(tmp252);
  1112. auto label186 = genLabel();
  1113. Set(tmp246, BCValue(Imm32(0)));
  1114. auto jmp61 = beginJmp();
  1115. auto label187 = genLabel();
  1116. endJmp(jmp61, label187);
  1117. auto jmp62 = beginJmp();
  1118. auto label188 = genLabel();
  1119. endJmp(jmp62, label188);
  1120. endCndJmp(cndJmp63, label188);
  1121. auto label189 = genLabel();
  1122. genJump(label184);
  1123. auto label190 = genLabel();
  1124. endCndJmp(cndJmp62, label190);
  1125. auto label191 = genLabel();
  1126. endCndJmp(cndJmp61, label191);
  1127. Eq3(BCValue.init, tmp246, BCValue(Imm32(1)));
  1128. auto cndJmp64 = beginCndJmp();
  1129. auto label192 = genLabel();
  1130. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(4)));
  1131. auto jmp63 = beginJmp();
  1132. auto label193 = genLabel();
  1133. auto jmp64 = beginJmp();
  1134. auto label194 = genLabel();
  1135. endCndJmp(cndJmp64, label194);
  1136. auto tmp261 = genTemporary(BCType(BCTypeEnum.String));//SP[1056]
  1137. Set(tmp261, BCValue(Imm32(84)));
  1138. auto tmp262 = genTemporary(BCType(BCTypeEnum.i32));//SP[1060]
  1139. auto tmp263 = genTemporary(BCType(BCTypeEnum.i32));//SP[1064]
  1140. Set(tmp262, BCValue(Imm32(0)));
  1141. auto tmp264 = genTemporary(BCType(BCTypeEnum.i32));//SP[1068]
  1142. auto tmp265 = genTemporary(BCType(BCTypeEnum.i32));//SP[1072]
  1143. Load32(tmp265, tmp212);
  1144. auto tmp266 = genTemporary(BCType(BCTypeEnum.i32));//SP[1076]
  1145. Load32(tmp266, tmp261);
  1146. Eq3(tmp264, tmp265, tmp266);
  1147. auto cndJmp65 = beginCndJmp(tmp264);
  1148. auto label195 = genLabel();
  1149. Set(tmp262, BCValue(Imm32(1)));
  1150. Load32(tmp263, tmp212);
  1151. auto label196 = genLabel();
  1152. auto tmp267 = genTemporary(BCType(BCTypeEnum.i32));//SP[1080]
  1153. Set(tmp267, tmp263);
  1154. Sub3(tmp263, tmp263, BCValue(Imm32(1)));
  1155. auto cndJmp66 = beginCndJmp(tmp267);
  1156. auto label197 = genLabel();
  1157. auto tmp268 = genTemporary(BCType(BCTypeEnum.i32));//SP[1084]
  1158. auto tmp269 = genTemporary(BCType(BCTypeEnum.i32));//SP[1088]
  1159. Add3(tmp269, tmp212, BCValue(Imm32(1)));
  1160. auto tmp270 = genTemporary(BCType(BCTypeEnum.Char));//SP[1092]
  1161. auto tmp271 = genTemporary(BCType(BCTypeEnum.i32));//SP[1096]
  1162. auto tmp272 = genTemporary(BCType(BCTypeEnum.i32));//SP[1100]
  1163. Mod3(tmp272, tmp263, BCValue(Imm32(4)));
  1164. Div3(tmp271, tmp263, BCValue(Imm32(4)));
  1165. Add3(tmp269, tmp269, tmp271);
  1166. Load32(tmp270, tmp269);
  1167. Byte3(tmp270, tmp270, tmp272);
  1168. auto tmp273 = genTemporary(BCType(BCTypeEnum.i32));//SP[1104]
  1169. Add3(tmp273, tmp261, BCValue(Imm32(1)));
  1170. auto tmp274 = genTemporary(BCType(BCTypeEnum.Char));//SP[1108]
  1171. auto tmp275 = genTemporary(BCType(BCTypeEnum.i32));//SP[1112]
  1172. auto tmp276 = genTemporary(BCType(BCTypeEnum.i32));//SP[1116]
  1173. Mod3(tmp276, tmp263, BCValue(Imm32(4)));
  1174. Div3(tmp275, tmp263, BCValue(Imm32(4)));
  1175. Add3(tmp273, tmp273, tmp275);
  1176. Load32(tmp274, tmp273);
  1177. Byte3(tmp274, tmp274, tmp276);
  1178. Neq3(tmp268, tmp270, tmp274);
  1179. auto cndJmp67 = beginCndJmp(tmp268);
  1180. auto label198 = genLabel();
  1181. Set(tmp262, BCValue(Imm32(0)));
  1182. auto jmp65 = beginJmp();
  1183. auto label199 = genLabel();
  1184. endJmp(jmp65, label199);
  1185. auto jmp66 = beginJmp();
  1186. auto label200 = genLabel();
  1187. endJmp(jmp66, label200);
  1188. endCndJmp(cndJmp67, label200);
  1189. auto label201 = genLabel();
  1190. genJump(label196);
  1191. auto label202 = genLabel();
  1192. endCndJmp(cndJmp66, label202);
  1193. auto label203 = genLabel();
  1194. endCndJmp(cndJmp65, label203);
  1195. Eq3(BCValue.init, tmp262, BCValue(Imm32(1)));
  1196. auto cndJmp68 = beginCndJmp();
  1197. auto label204 = genLabel();
  1198. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(8)));
  1199. auto jmp67 = beginJmp();
  1200. auto label205 = genLabel();
  1201. auto jmp68 = beginJmp();
  1202. auto label206 = genLabel();
  1203. endCndJmp(cndJmp68, label206);
  1204. auto tmp277 = genTemporary(BCType(BCTypeEnum.String));//SP[1120]
  1205. Set(tmp277, BCValue(Imm32(88)));
  1206. auto tmp278 = genTemporary(BCType(BCTypeEnum.i32));//SP[1124]
  1207. auto tmp279 = genTemporary(BCType(BCTypeEnum.i32));//SP[1128]
  1208. Set(tmp278, BCValue(Imm32(0)));
  1209. auto tmp280 = genTemporary(BCType(BCTypeEnum.i32));//SP[1132]
  1210. auto tmp281 = genTemporary(BCType(BCTypeEnum.i32));//SP[1136]
  1211. Load32(tmp281, tmp212);
  1212. auto tmp282 = genTemporary(BCType(BCTypeEnum.i32));//SP[1140]
  1213. Load32(tmp282, tmp277);
  1214. Eq3(tmp280, tmp281, tmp282);
  1215. auto cndJmp69 = beginCndJmp(tmp280);
  1216. auto label207 = genLabel();
  1217. Set(tmp278, BCValue(Imm32(1)));
  1218. Load32(tmp279, tmp212);
  1219. auto label208 = genLabel();
  1220. auto tmp283 = genTemporary(BCType(BCTypeEnum.i32));//SP[1144]
  1221. Set(tmp283, tmp279);
  1222. Sub3(tmp279, tmp279, BCValue(Imm32(1)));
  1223. auto cndJmp70 = beginCndJmp(tmp283);
  1224. auto label209 = genLabel();
  1225. auto tmp284 = genTemporary(BCType(BCTypeEnum.i32));//SP[1148]
  1226. auto tmp285 = genTemporary(BCType(BCTypeEnum.i32));//SP[1152]
  1227. Add3(tmp285, tmp212, BCValue(Imm32(1)));
  1228. auto tmp286 = genTemporary(BCType(BCTypeEnum.Char));//SP[1156]
  1229. auto tmp287 = genTemporary(BCType(BCTypeEnum.i32));//SP[1160]
  1230. auto tmp288 = genTemporary(BCType(BCTypeEnum.i32));//SP[1164]
  1231. Mod3(tmp288, tmp279, BCValue(Imm32(4)));
  1232. Div3(tmp287, tmp279, BCValue(Imm32(4)));
  1233. Add3(tmp285, tmp285, tmp287);
  1234. Load32(tmp286, tmp285);
  1235. Byte3(tmp286, tmp286, tmp288);
  1236. auto tmp289 = genTemporary(BCType(BCTypeEnum.i32));//SP[1168]
  1237. Add3(tmp289, tmp277, BCValue(Imm32(1)));
  1238. auto tmp290 = genTemporary(BCType(BCTypeEnum.Char));//SP[1172]
  1239. auto tmp291 = genTemporary(BCType(BCTypeEnum.i32));//SP[1176]
  1240. auto tmp292 = genTemporary(BCType(BCTypeEnum.i32));//SP[1180]
  1241. Mod3(tmp292, tmp279, BCValue(Imm32(4)));
  1242. Div3(tmp291, tmp279, BCValue(Imm32(4)));
  1243. Add3(tmp289, tmp289, tmp291);
  1244. Load32(tmp290, tmp289);
  1245. Byte3(tmp290, tmp290, tmp292);
  1246. Neq3(tmp284, tmp286, tmp290);
  1247. auto cndJmp71 = beginCndJmp(tmp284);
  1248. auto label210 = genLabel();
  1249. Set(tmp278, BCValue(Imm32(0)));
  1250. auto jmp69 = beginJmp();
  1251. auto label211 = genLabel();
  1252. endJmp(jmp69, label211);
  1253. auto jmp70 = beginJmp();
  1254. auto label212 = genLabel();
  1255. endJmp(jmp70, label212);
  1256. endCndJmp(cndJmp71, label212);
  1257. auto label213 = genLabel();
  1258. genJump(label208);
  1259. auto label214 = genLabel();
  1260. endCndJmp(cndJmp70, label214);
  1261. auto label215 = genLabel();
  1262. endCndJmp(cndJmp69, label215);
  1263. Eq3(BCValue.init, tmp278, BCValue(Imm32(1)));
  1264. auto cndJmp72 = beginCndJmp();
  1265. auto label216 = genLabel();
  1266. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(16)));
  1267. auto jmp71 = beginJmp();
  1268. auto label217 = genLabel();
  1269. auto jmp72 = beginJmp();
  1270. auto label218 = genLabel();
  1271. endCndJmp(cndJmp72, label218);
  1272. auto tmp293 = genTemporary(BCType(BCTypeEnum.String));//SP[1184]
  1273. Set(tmp293, BCValue(Imm32(92)));
  1274. auto tmp294 = genTemporary(BCType(BCTypeEnum.i32));//SP[1188]
  1275. auto tmp295 = genTemporary(BCType(BCTypeEnum.i32));//SP[1192]
  1276. Set(tmp294, BCValue(Imm32(0)));
  1277. auto tmp296 = genTemporary(BCType(BCTypeEnum.i32));//SP[1196]
  1278. auto tmp297 = genTemporary(BCType(BCTypeEnum.i32));//SP[1200]
  1279. Load32(tmp297, tmp212);
  1280. auto tmp298 = genTemporary(BCType(BCTypeEnum.i32));//SP[1204]
  1281. Load32(tmp298, tmp293);
  1282. Eq3(tmp296, tmp297, tmp298);
  1283. auto cndJmp73 = beginCndJmp(tmp296);
  1284. auto label219 = genLabel();
  1285. Set(tmp294, BCValue(Imm32(1)));
  1286. Load32(tmp295, tmp212);
  1287. auto label220 = genLabel();
  1288. auto tmp299 = genTemporary(BCType(BCTypeEnum.i32));//SP[1208]
  1289. Set(tmp299, tmp295);
  1290. Sub3(tmp295, tmp295, BCValue(Imm32(1)));
  1291. auto cndJmp74 = beginCndJmp(tmp299);
  1292. auto label221 = genLabel();
  1293. auto tmp300 = genTemporary(BCType(BCTypeEnum.i32));//SP[1212]
  1294. auto tmp301 = genTemporary(BCType(BCTypeEnum.i32));//SP[1216]
  1295. Add3(tmp301, tmp212, BCValue(Imm32(1)));
  1296. auto tmp302 = genTemporary(BCType(BCTypeEnum.Char));//SP[1220]
  1297. auto tmp303 = genTemporary(BCType(BCTypeEnum.i32));//SP[1224]
  1298. auto tmp304 = genTemporary(BCType(BCTypeEnum.i32));//SP[1228]
  1299. Mod3(tmp304, tmp295, BCValue(Imm32(4)));
  1300. Div3(tmp303, tmp295, BCValue(Imm32(4)));
  1301. Add3(tmp301, tmp301, tmp303);
  1302. Load32(tmp302, tmp301);
  1303. Byte3(tmp302, tmp302, tmp304);
  1304. auto tmp305 = genTemporary(BCType(BCTypeEnum.i32));//SP[1232]
  1305. Add3(tmp305, tmp293, BCValue(Imm32(1)));
  1306. auto tmp306 = genTemporary(BCType(BCTypeEnum.Char));//SP[1236]
  1307. auto tmp307 = genTemporary(BCType(BCTypeEnum.i32));//SP[1240]
  1308. auto tmp308 = genTemporary(BCType(BCTypeEnum.i32));//SP[1244]
  1309. Mod3(tmp308, tmp295, BCValue(Imm32(4)));
  1310. Div3(tmp307, tmp295, BCValue(Imm32(4)));
  1311. Add3(tmp305, tmp305, tmp307);
  1312. Load32(tmp306, tmp305);
  1313. Byte3(tmp306, tmp306, tmp308);
  1314. Neq3(tmp300, tmp302, tmp306);
  1315. auto cndJmp75 = beginCndJmp(tmp300);
  1316. auto label222 = genLabel();
  1317. Set(tmp294, BCValue(Imm32(0)));
  1318. auto jmp73 = beginJmp();
  1319. auto label223 = genLabel();
  1320. endJmp(jmp73, label223);
  1321. auto jmp74 = beginJmp();
  1322. auto label224 = genLabel();
  1323. endJmp(jmp74, label224);
  1324. endCndJmp(cndJmp75, label224);
  1325. auto label225 = genLabel();
  1326. genJump(label220);
  1327. auto label226 = genLabel();
  1328. endCndJmp(cndJmp74, label226);
  1329. auto label227 = genLabel();
  1330. endCndJmp(cndJmp73, label227);
  1331. Eq3(BCValue.init, tmp294, BCValue(Imm32(1)));
  1332. auto cndJmp76 = beginCndJmp();
  1333. auto label228 = genLabel();
  1334. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(32)));
  1335. auto jmp75 = beginJmp();
  1336. auto label229 = genLabel();
  1337. auto jmp76 = beginJmp();
  1338. auto label230 = genLabel();
  1339. endCndJmp(cndJmp76, label230);
  1340. auto tmp309 = genTemporary(BCType(BCTypeEnum.String));//SP[1248]
  1341. Set(tmp309, BCValue(Imm32(96)));
  1342. auto tmp310 = genTemporary(BCType(BCTypeEnum.i32));//SP[1252]
  1343. auto tmp311 = genTemporary(BCType(BCTypeEnum.i32));//SP[1256]
  1344. Set(tmp310, BCValue(Imm32(0)));
  1345. auto tmp312 = genTemporary(BCType(BCTypeEnum.i32));//SP[1260]
  1346. auto tmp313 = genTemporary(BCType(BCTypeEnum.i32));//SP[1264]
  1347. Load32(tmp313, tmp212);
  1348. auto tmp314 = genTemporary(BCType(BCTypeEnum.i32));//SP[1268]
  1349. Load32(tmp314, tmp309);
  1350. Eq3(tmp312, tmp313, tmp314);
  1351. auto cndJmp77 = beginCndJmp(tmp312);
  1352. auto label231 = genLabel();
  1353. Set(tmp310, BCValue(Imm32(1)));
  1354. Load32(tmp311, tmp212);
  1355. auto label232 = genLabel();
  1356. auto tmp315 = genTemporary(BCType(BCTypeEnum.i32));//SP[1272]
  1357. Set(tmp315, tmp311);
  1358. Sub3(tmp311, tmp311, BCValue(Imm32(1)));
  1359. auto cndJmp78 = beginCndJmp(tmp315);
  1360. auto label233 = genLabel();
  1361. auto tmp316 = genTemporary(BCType(BCTypeEnum.i32));//SP[1276]
  1362. auto tmp317 = genTemporary(BCType(BCTypeEnum.i32));//SP[1280]
  1363. Add3(tmp317, tmp212, BCValue(Imm32(1)));
  1364. auto tmp318 = genTemporary(BCType(BCTypeEnum.Char));//SP[1284]
  1365. auto tmp319 = genTemporary(BCType(BCTypeEnum.i32));//SP[1288]
  1366. auto tmp320 = genTemporary(BCType(BCTypeEnum.i32));//SP[1292]
  1367. Mod3(tmp320, tmp311, BCValue(Imm32(4)));
  1368. Div3(tmp319, tmp311, BCValue(Imm32(4)));
  1369. Add3(tmp317, tmp317, tmp319);
  1370. Load32(tmp318, tmp317);
  1371. Byte3(tmp318, tmp318, tmp320);
  1372. auto tmp321 = genTemporary(BCType(BCTypeEnum.i32));//SP[1296]
  1373. Add3(tmp321, tmp309, BCValue(Imm32(1)));
  1374. auto tmp322 = genTemporary(BCType(BCTypeEnum.Char));//SP[1300]
  1375. auto tmp323 = genTemporary(BCType(BCTypeEnum.i32));//SP[1304]
  1376. auto tmp324 = genTemporary(BCType(BCTypeEnum.i32));//SP[1308]
  1377. Mod3(tmp324, tmp311, BCValue(Imm32(4)));
  1378. Div3(tmp323, tmp311, BCValue(Imm32(4)));
  1379. Add3(tmp321, tmp321, tmp323);
  1380. Load32(tmp322, tmp321);
  1381. Byte3(tmp322, tmp322, tmp324);
  1382. Neq3(tmp316, tmp318, tmp322);
  1383. auto cndJmp79 = beginCndJmp(tmp316);
  1384. auto label234 = genLabel();
  1385. Set(tmp310, BCValue(Imm32(0)));
  1386. auto jmp77 = beginJmp();
  1387. auto label235 = genLabel();
  1388. endJmp(jmp77, label235);
  1389. auto jmp78 = beginJmp();
  1390. auto label236 = genLabel();
  1391. endJmp(jmp78, label236);
  1392. endCndJmp(cndJmp79, label236);
  1393. auto label237 = genLabel();
  1394. genJump(label232);
  1395. auto label238 = genLabel();
  1396. endCndJmp(cndJmp78, label238);
  1397. auto label239 = genLabel();
  1398. endCndJmp(cndJmp77, label239);
  1399. Eq3(BCValue.init, tmp310, BCValue(Imm32(1)));
  1400. auto cndJmp80 = beginCndJmp();
  1401. auto label240 = genLabel();
  1402. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(64)));
  1403. auto jmp79 = beginJmp();
  1404. auto label241 = genLabel();
  1405. auto jmp80 = beginJmp();
  1406. auto label242 = genLabel();
  1407. endCndJmp(cndJmp80, label242);
  1408. auto tmp325 = genTemporary(BCType(BCTypeEnum.String));//SP[1312]
  1409. Set(tmp325, BCValue(Imm32(100)));
  1410. auto tmp326 = genTemporary(BCType(BCTypeEnum.i32));//SP[1316]
  1411. auto tmp327 = genTemporary(BCType(BCTypeEnum.i32));//SP[1320]
  1412. Set(tmp326, BCValue(Imm32(0)));
  1413. auto tmp328 = genTemporary(BCType(BCTypeEnum.i32));//SP[1324]
  1414. auto tmp329 = genTemporary(BCType(BCTypeEnum.i32));//SP[1328]
  1415. Load32(tmp329, tmp212);
  1416. auto tmp330 = genTemporary(BCType(BCTypeEnum.i32));//SP[1332]
  1417. Load32(tmp330, tmp325);
  1418. Eq3(tmp328, tmp329, tmp330);
  1419. auto cndJmp81 = beginCndJmp(tmp328);
  1420. auto label243 = genLabel();
  1421. Set(tmp326, BCValue(Imm32(1)));
  1422. Load32(tmp327, tmp212);
  1423. auto label244 = genLabel();
  1424. auto tmp331 = genTemporary(BCType(BCTypeEnum.i32));//SP[1336]
  1425. Set(tmp331, tmp327);
  1426. Sub3(tmp327, tmp327, BCValue(Imm32(1)));
  1427. auto cndJmp82 = beginCndJmp(tmp331);
  1428. auto label245 = genLabel();
  1429. auto tmp332 = genTemporary(BCType(BCTypeEnum.i32));//SP[1340]
  1430. auto tmp333 = genTemporary(BCType(BCTypeEnum.i32));//SP[1344]
  1431. Add3(tmp333, tmp212, BCValue(Imm32(1)));
  1432. auto tmp334 = genTemporary(BCType(BCTypeEnum.Char));//SP[1348]
  1433. auto tmp335 = genTemporary(BCType(BCTypeEnum.i32));//SP[1352]
  1434. auto tmp336 = genTemporary(BCType(BCTypeEnum.i32));//SP[1356]
  1435. Mod3(tmp336, tmp327, BCValue(Imm32(4)));
  1436. Div3(tmp335, tmp327, BCValue(Imm32(4)));
  1437. Add3(tmp333, tmp333, tmp335);
  1438. Load32(tmp334, tmp333);
  1439. Byte3(tmp334, tmp334, tmp336);
  1440. auto tmp337 = genTemporary(BCType(BCTypeEnum.i32));//SP[1360]
  1441. Add3(tmp337, tmp325, BCValue(Imm32(1)));
  1442. auto tmp338 = genTemporary(BCType(BCTypeEnum.Char));//SP[1364]
  1443. auto tmp339 = genTemporary(BCType(BCTypeEnum.i32));//SP[1368]
  1444. auto tmp340 = genTemporary(BCType(BCTypeEnum.i32));//SP[1372]
  1445. Mod3(tmp340, tmp327, BCValue(Imm32(4)));
  1446. Div3(tmp339, tmp327, BCValue(Imm32(4)));
  1447. Add3(tmp337, tmp337, tmp339);
  1448. Load32(tmp338, tmp337);
  1449. Byte3(tmp338, tmp338, tmp340);
  1450. Neq3(tmp332, tmp334, tmp338);
  1451. auto cndJmp83 = beginCndJmp(tmp332);
  1452. auto label246 = genLabel();
  1453. Set(tmp326, BCValue(Imm32(0)));
  1454. auto jmp81 = beginJmp();
  1455. auto label247 = genLabel();
  1456. endJmp(jmp81, label247);
  1457. auto jmp82 = beginJmp();
  1458. auto label248 = genLabel();
  1459. endJmp(jmp82, label248);
  1460. endCndJmp(cndJmp83, label248);
  1461. auto label249 = genLabel();
  1462. genJump(label244);
  1463. auto label250 = genLabel();
  1464. endCndJmp(cndJmp82, label250);
  1465. auto label251 = genLabel();
  1466. endCndJmp(cndJmp81, label251);
  1467. Eq3(BCValue.init, tmp326, BCValue(Imm32(1)));
  1468. auto cndJmp84 = beginCndJmp();
  1469. auto label252 = genLabel();
  1470. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(128)));
  1471. auto jmp83 = beginJmp();
  1472. auto label253 = genLabel();
  1473. auto jmp84 = beginJmp();
  1474. auto label254 = genLabel();
  1475. endCndJmp(cndJmp84, label254);
  1476. auto tmp341 = genTemporary(BCType(BCTypeEnum.String));//SP[1376]
  1477. Set(tmp341, BCValue(Imm32(104)));
  1478. auto tmp342 = genTemporary(BCType(BCTypeEnum.i32));//SP[1380]
  1479. auto tmp343 = genTemporary(BCType(BCTypeEnum.i32));//SP[1384]
  1480. Set(tmp342, BCValue(Imm32(0)));
  1481. auto tmp344 = genTemporary(BCType(BCTypeEnum.i32));//SP[1388]
  1482. auto tmp345 = genTemporary(BCType(BCTypeEnum.i32));//SP[1392]
  1483. Load32(tmp345, tmp212);
  1484. auto tmp346 = genTemporary(BCType(BCTypeEnum.i32));//SP[1396]
  1485. Load32(tmp346, tmp341);
  1486. Eq3(tmp344, tmp345, tmp346);
  1487. auto cndJmp85 = beginCndJmp(tmp344);
  1488. auto label255 = genLabel();
  1489. Set(tmp342, BCValue(Imm32(1)));
  1490. Load32(tmp343, tmp212);
  1491. auto label256 = genLabel();
  1492. auto tmp347 = genTemporary(BCType(BCTypeEnum.i32));//SP[1400]
  1493. Set(tmp347, tmp343);
  1494. Sub3(tmp343, tmp343, BCValue(Imm32(1)));
  1495. auto cndJmp86 = beginCndJmp(tmp347);
  1496. auto label257 = genLabel();
  1497. auto tmp348 = genTemporary(BCType(BCTypeEnum.i32));//SP[1404]
  1498. auto tmp349 = genTemporary(BCType(BCTypeEnum.i32));//SP[1408]
  1499. Add3(tmp349, tmp212, BCValue(Imm32(1)));
  1500. auto tmp350 = genTemporary(BCType(BCTypeEnum.Char));//SP[1412]
  1501. auto tmp351 = genTemporary(BCType(BCTypeEnum.i32));//SP[1416]
  1502. auto tmp352 = genTemporary(BCType(BCTypeEnum.i32));//SP[1420]
  1503. Mod3(tmp352, tmp343, BCValue(Imm32(4)));
  1504. Div3(tmp351, tmp343, BCValue(Imm32(4)));
  1505. Add3(tmp349, tmp349, tmp351);
  1506. Load32(tmp350, tmp349);
  1507. Byte3(tmp350, tmp350, tmp352);
  1508. auto tmp353 = genTemporary(BCType(BCTypeEnum.i32));//SP[1424]
  1509. Add3(tmp353, tmp341, BCValue(Imm32(1)));
  1510. auto tmp354 = genTemporary(BCType(BCTypeEnum.Char));//SP[1428]
  1511. auto tmp355 = genTemporary(BCType(BCTypeEnum.i32));//SP[1432]
  1512. auto tmp356 = genTemporary(BCType(BCTypeEnum.i32));//SP[1436]
  1513. Mod3(tmp356, tmp343, BCValue(Imm32(4)));
  1514. Div3(tmp355, tmp343, BCValue(Imm32(4)));
  1515. Add3(tmp353, tmp353, tmp355);
  1516. Load32(tmp354, tmp353);
  1517. Byte3(tmp354, tmp354, tmp356);
  1518. Neq3(tmp348, tmp350, tmp354);
  1519. auto cndJmp87 = beginCndJmp(tmp348);
  1520. auto label258 = genLabel();
  1521. Set(tmp342, BCValue(Imm32(0)));
  1522. auto jmp85 = beginJmp();
  1523. auto label259 = genLabel();
  1524. endJmp(jmp85, label259);
  1525. auto jmp86 = beginJmp();
  1526. auto label260 = genLabel();
  1527. endJmp(jmp86, label260);
  1528. endCndJmp(cndJmp87, label260);
  1529. auto label261 = genLabel();
  1530. genJump(label256);
  1531. auto label262 = genLabel();
  1532. endCndJmp(cndJmp86, label262);
  1533. auto label263 = genLabel();
  1534. endCndJmp(cndJmp85, label263);
  1535. Eq3(BCValue.init, tmp342, BCValue(Imm32(1)));
  1536. auto cndJmp88 = beginCndJmp();
  1537. auto label264 = genLabel();
  1538. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(256)));
  1539. auto jmp87 = beginJmp();
  1540. auto label265 = genLabel();
  1541. auto jmp88 = beginJmp();
  1542. auto label266 = genLabel();
  1543. endCndJmp(cndJmp88, label266);
  1544. auto tmp357 = genTemporary(BCType(BCTypeEnum.String));//SP[1440]
  1545. Set(tmp357, BCValue(Imm32(108)));
  1546. auto tmp358 = genTemporary(BCType(BCTypeEnum.i32));//SP[1444]
  1547. auto tmp359 = genTemporary(BCType(BCTypeEnum.i32));//SP[1448]
  1548. Set(tmp358, BCValue(Imm32(0)));
  1549. auto tmp360 = genTemporary(BCType(BCTypeEnum.i32));//SP[1452]
  1550. auto tmp361 = genTemporary(BCType(BCTypeEnum.i32));//SP[1456]
  1551. Load32(tmp361, tmp212);
  1552. auto tmp362 = genTemporary(BCType(BCTypeEnum.i32));//SP[1460]
  1553. Load32(tmp362, tmp357);
  1554. Eq3(tmp360, tmp361, tmp362);
  1555. auto cndJmp89 = beginCndJmp(tmp360);
  1556. auto label267 = genLabel();
  1557. Set(tmp358, BCValue(Imm32(1)));
  1558. Load32(tmp359, tmp212);
  1559. auto label268 = genLabel();
  1560. auto tmp363 = genTemporary(BCType(BCTypeEnum.i32));//SP[1464]
  1561. Set(tmp363, tmp359);
  1562. Sub3(tmp359, tmp359, BCValue(Imm32(1)));
  1563. auto cndJmp90 = beginCndJmp(tmp363);
  1564. auto label269 = genLabel();
  1565. auto tmp364 = genTemporary(BCType(BCTypeEnum.i32));//SP[1468]
  1566. auto tmp365 = genTemporary(BCType(BCTypeEnum.i32));//SP[1472]
  1567. Add3(tmp365, tmp212, BCValue(Imm32(1)));
  1568. auto tmp366 = genTemporary(BCType(BCTypeEnum.Char));//SP[1476]
  1569. auto tmp367 = genTemporary(BCType(BCTypeEnum.i32));//SP[1480]
  1570. auto tmp368 = genTemporary(BCType(BCTypeEnum.i32));//SP[1484]
  1571. Mod3(tmp368, tmp359, BCValue(Imm32(4)));
  1572. Div3(tmp367, tmp359, BCValue(Imm32(4)));
  1573. Add3(tmp365, tmp365, tmp367);
  1574. Load32(tmp366, tmp365);
  1575. Byte3(tmp366, tmp366, tmp368);
  1576. auto tmp369 = genTemporary(BCType(BCTypeEnum.i32));//SP[1488]
  1577. Add3(tmp369, tmp357, BCValue(Imm32(1)));
  1578. auto tmp370 = genTemporary(BCType(BCTypeEnum.Char));//SP[1492]
  1579. auto tmp371 = genTemporary(BCType(BCTypeEnum.i32));//SP[1496]
  1580. auto tmp372 = genTemporary(BCType(BCTypeEnum.i32));//SP[1500]
  1581. Mod3(tmp372, tmp359, BCValue(Imm32(4)));
  1582. Div3(tmp371, tmp359, BCValue(Imm32(4)));
  1583. Add3(tmp369, tmp369, tmp371);
  1584. Load32(tmp370, tmp369);
  1585. Byte3(tmp370, tmp370, tmp372);
  1586. Neq3(tmp364, tmp366, tmp370);
  1587. auto cndJmp91 = beginCndJmp(tmp364);
  1588. auto label270 = genLabel();
  1589. Set(tmp358, BCValue(Imm32(0)));
  1590. auto jmp89 = beginJmp();
  1591. auto label271 = genLabel();
  1592. endJmp(jmp89, label271);
  1593. auto jmp90 = beginJmp();
  1594. auto label272 = genLabel();
  1595. endJmp(jmp90, label272);
  1596. endCndJmp(cndJmp91, label272);
  1597. auto label273 = genLabel();
  1598. genJump(label268);
  1599. auto label274 = genLabel();
  1600. endCndJmp(cndJmp90, label274);
  1601. auto label275 = genLabel();
  1602. endCndJmp(cndJmp89, label275);
  1603. Eq3(BCValue.init, tmp358, BCValue(Imm32(1)));
  1604. auto cndJmp92 = beginCndJmp();
  1605. auto label276 = genLabel();
  1606. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(512)));
  1607. auto jmp91 = beginJmp();
  1608. auto label277 = genLabel();
  1609. auto jmp92 = beginJmp();
  1610. auto label278 = genLabel();
  1611. endCndJmp(cndJmp92, label278);
  1612. auto tmp373 = genTemporary(BCType(BCTypeEnum.String));//SP[1504]
  1613. Set(tmp373, BCValue(Imm32(112)));
  1614. auto tmp374 = genTemporary(BCType(BCTypeEnum.i32));//SP[1508]
  1615. auto tmp375 = genTemporary(BCType(BCTypeEnum.i32));//SP[1512]
  1616. Set(tmp374, BCValue(Imm32(0)));
  1617. auto tmp376 = genTemporary(BCType(BCTypeEnum.i32));//SP[1516]
  1618. auto tmp377 = genTemporary(BCType(BCTypeEnum.i32));//SP[1520]
  1619. Load32(tmp377, tmp212);
  1620. auto tmp378 = genTemporary(BCType(BCTypeEnum.i32));//SP[1524]
  1621. Load32(tmp378, tmp373);
  1622. Eq3(tmp376, tmp377, tmp378);
  1623. auto cndJmp93 = beginCndJmp(tmp376);
  1624. auto label279 = genLabel();
  1625. Set(tmp374, BCValue(Imm32(1)));
  1626. Load32(tmp375, tmp212);
  1627. auto label280 = genLabel();
  1628. auto tmp379 = genTemporary(BCType(BCTypeEnum.i32));//SP[1528]
  1629. Set(tmp379, tmp375);
  1630. Sub3(tmp375, tmp375, BCValue(Imm32(1)));
  1631. auto cndJmp94 = beginCndJmp(tmp379);
  1632. auto label281 = genLabel();
  1633. auto tmp380 = genTemporary(BCType(BCTypeEnum.i32));//SP[1532]
  1634. auto tmp381 = genTemporary(BCType(BCTypeEnum.i32));//SP[1536]
  1635. Add3(tmp381, tmp212, BCValue(Imm32(1)));
  1636. auto tmp382 = genTemporary(BCType(BCTypeEnum.Char));//SP[1540]
  1637. auto tmp383 = genTemporary(BCType(BCTypeEnum.i32));//SP[1544]
  1638. auto tmp384 = genTemporary(BCType(BCTypeEnum.i32));//SP[1548]
  1639. Mod3(tmp384, tmp375, BCValue(Imm32(4)));
  1640. Div3(tmp383, tmp375, BCValue(Imm32(4)));
  1641. Add3(tmp381, tmp381, tmp383);
  1642. Load32(tmp382, tmp381);
  1643. Byte3(tmp382, tmp382, tmp384);
  1644. auto tmp385 = genTemporary(BCType(BCTypeEnum.i32));//SP[1552]
  1645. Add3(tmp385, tmp373, BCValue(Imm32(1)));
  1646. auto tmp386 = genTemporary(BCType(BCTypeEnum.Char));//SP[1556]
  1647. auto tmp387 = genTemporary(BCType(BCTypeEnum.i32));//SP[1560]
  1648. auto tmp388 = genTemporary(BCType(BCTypeEnum.i32));//SP[1564]
  1649. Mod3(tmp388, tmp375, BCValue(Imm32(4)));
  1650. Div3(tmp387, tmp375, BCValue(Imm32(4)));
  1651. Add3(tmp385, tmp385, tmp387);
  1652. Load32(tmp386, tmp385);
  1653. Byte3(tmp386, tmp386, tmp388);
  1654. Neq3(tmp380, tmp382, tmp386);
  1655. auto cndJmp95 = beginCndJmp(tmp380);
  1656. auto label282 = genLabel();
  1657. Set(tmp374, BCValue(Imm32(0)));
  1658. auto jmp93 = beginJmp();
  1659. auto label283 = genLabel();
  1660. endJmp(jmp93, label283);
  1661. auto jmp94 = beginJmp();
  1662. auto label284 = genLabel();
  1663. endJmp(jmp94, label284);
  1664. endCndJmp(cndJmp95, label284);
  1665. auto label285 = genLabel();
  1666. genJump(label280);
  1667. auto label286 = genLabel();
  1668. endCndJmp(cndJmp94, label286);
  1669. auto label287 = genLabel();
  1670. endCndJmp(cndJmp93, label287);
  1671. Eq3(BCValue.init, tmp374, BCValue(Imm32(1)));
  1672. auto cndJmp96 = beginCndJmp();
  1673. auto label288 = genLabel();
  1674. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(1024)));
  1675. auto jmp95 = beginJmp();
  1676. auto label289 = genLabel();
  1677. auto jmp96 = beginJmp();
  1678. auto label290 = genLabel();
  1679. endCndJmp(cndJmp96, label290);
  1680. auto tmp389 = genTemporary(BCType(BCTypeEnum.String));//SP[1568]
  1681. Set(tmp389, BCValue(Imm32(116)));
  1682. auto tmp390 = genTemporary(BCType(BCTypeEnum.i32));//SP[1572]
  1683. auto tmp391 = genTemporary(BCType(BCTypeEnum.i32));//SP[1576]
  1684. Set(tmp390, BCValue(Imm32(0)));
  1685. auto tmp392 = genTemporary(BCType(BCTypeEnum.i32));//SP[1580]
  1686. auto tmp393 = genTemporary(BCType(BCTypeEnum.i32));//SP[1584]
  1687. Load32(tmp393, tmp212);
  1688. auto tmp394 = genTemporary(BCType(BCTypeEnum.i32));//SP[1588]
  1689. Load32(tmp394, tmp389);
  1690. Eq3(tmp392, tmp393, tmp394);
  1691. auto cndJmp97 = beginCndJmp(tmp392);
  1692. auto label291 = genLabel();
  1693. Set(tmp390, BCValue(Imm32(1)));
  1694. Load32(tmp391, tmp212);
  1695. auto label292 = genLabel();
  1696. auto tmp395 = genTemporary(BCType(BCTypeEnum.i32));//SP[1592]
  1697. Set(tmp395, tmp391);
  1698. Sub3(tmp391, tmp391, BCValue(Imm32(1)));
  1699. auto cndJmp98 = beginCndJmp(tmp395);
  1700. auto label293 = genLabel();
  1701. auto tmp396 = genTemporary(BCType(BCTypeEnum.i32));//SP[1596]
  1702. auto tmp397 = genTemporary(BCType(BCTypeEnum.i32));//SP[1600]
  1703. Add3(tmp397, tmp212, BCValue(Imm32(1)));
  1704. auto tmp398 = genTemporary(BCType(BCTypeEnum.Char));//SP[1604]
  1705. auto tmp399 = genTemporary(BCType(BCTypeEnum.i32));//SP[1608]
  1706. auto tmp400 = genTemporary(BCType(BCTypeEnum.i32));//SP[1612]
  1707. Mod3(tmp400, tmp391, BCValue(Imm32(4)));
  1708. Div3(tmp399, tmp391, BCValue(Imm32(4)));
  1709. Add3(tmp397, tmp397, tmp399);
  1710. Load32(tmp398, tmp397);
  1711. Byte3(tmp398, tmp398, tmp400);
  1712. auto tmp401 = genTemporary(BCType(BCTypeEnum.i32));//SP[1616]
  1713. Add3(tmp401, tmp389, BCValue(Imm32(1)));
  1714. auto tmp402 = genTemporary(BCType(BCTypeEnum.Char));//SP[1620]
  1715. auto tmp403 = genTemporary(BCType(BCTypeEnum.i32));//SP[1624]
  1716. auto tmp404 = genTemporary(BCType(BCTypeEnum.i32));//SP[1628]
  1717. Mod3(tmp404, tmp391, BCValue(Imm32(4)));
  1718. Div3(tmp403, tmp391, BCValue(Imm32(4)));
  1719. Add3(tmp401, tmp401, tmp403);
  1720. Load32(tmp402, tmp401);
  1721. Byte3(tmp402, tmp402, tmp404);
  1722. Neq3(tmp396, tmp398, tmp402);
  1723. auto cndJmp99 = beginCndJmp(tmp396);
  1724. auto label294 = genLabel();
  1725. Set(tmp390, BCValue(Imm32(0)));
  1726. auto jmp97 = beginJmp();
  1727. auto label295 = genLabel();
  1728. endJmp(jmp97, label295);
  1729. auto jmp98 = beginJmp();
  1730. auto label296 = genLabel();
  1731. endJmp(jmp98, label296);
  1732. endCndJmp(cndJmp99, label296);
  1733. auto label297 = genLabel();
  1734. genJump(label292);
  1735. auto label298 = genLabel();
  1736. endCndJmp(cndJmp98, label298);
  1737. auto label299 = genLabel();
  1738. endCndJmp(cndJmp97, label299);
  1739. Eq3(BCValue.init, tmp390, BCValue(Imm32(1)));
  1740. auto cndJmp100 = beginCndJmp();
  1741. auto label300 = genLabel();
  1742. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(2048)));
  1743. auto jmp99 = beginJmp();
  1744. auto label301 = genLabel();
  1745. auto jmp100 = beginJmp();
  1746. auto label302 = genLabel();
  1747. endCndJmp(cndJmp100, label302);
  1748. auto tmp405 = genTemporary(BCType(BCTypeEnum.String));//SP[1632]
  1749. Set(tmp405, BCValue(Imm32(120)));
  1750. auto tmp406 = genTemporary(BCType(BCTypeEnum.i32));//SP[1636]
  1751. auto tmp407 = genTemporary(BCType(BCTypeEnum.i32));//SP[1640]
  1752. Set(tmp406, BCValue(Imm32(0)));
  1753. auto tmp408 = genTemporary(BCType(BCTypeEnum.i32));//SP[1644]
  1754. auto tmp409 = genTemporary(BCType(BCTypeEnum.i32));//SP[1648]
  1755. Load32(tmp409, tmp212);
  1756. auto tmp410 = genTemporary(BCType(BCTypeEnum.i32));//SP[1652]
  1757. Load32(tmp410, tmp405);
  1758. Eq3(tmp408, tmp409, tmp410);
  1759. auto cndJmp101 = beginCndJmp(tmp408);
  1760. auto label303 = genLabel();
  1761. Set(tmp406, BCValue(Imm32(1)));
  1762. Load32(tmp407, tmp212);
  1763. auto label304 = genLabel();
  1764. auto tmp411 = genTemporary(BCType(BCTypeEnum.i32));//SP[1656]
  1765. Set(tmp411, tmp407);
  1766. Sub3(tmp407, tmp407, BCValue(Imm32(1)));
  1767. auto cndJmp102 = beginCndJmp(tmp411);
  1768. auto label305 = genLabel();
  1769. auto tmp412 = genTemporary(BCType(BCTypeEnum.i32));//SP[1660]
  1770. auto tmp413 = genTemporary(BCType(BCTypeEnum.i32));//SP[1664]
  1771. Add3(tmp413, tmp212, BCValue(Imm32(1)));
  1772. auto tmp414 = genTemporary(BCType(BCTypeEnum.Char));//SP[1668]
  1773. auto tmp415 = genTemporary(BCType(BCTypeEnum.i32));//SP[1672]
  1774. auto tmp416 = genTemporary(BCType(BCTypeEnum.i32));//SP[1676]
  1775. Mod3(tmp416, tmp407, BCValue(Imm32(4)));
  1776. Div3(tmp415, tmp407, BCValue(Imm32(4)));
  1777. Add3(tmp413, tmp413, tmp415);
  1778. Load32(tmp414, tmp413);
  1779. Byte3(tmp414, tmp414, tmp416);
  1780. auto tmp417 = genTemporary(BCType(BCTypeEnum.i32));//SP[1680]
  1781. Add3(tmp417, tmp405, BCValue(Imm32(1)));
  1782. auto tmp418 = genTemporary(BCType(BCTypeEnum.Char));//SP[1684]
  1783. auto tmp419 = genTemporary(BCType(BCTypeEnum.i32));//SP[1688]
  1784. auto tmp420 = genTemporary(BCType(BCTypeEnum.i32));//SP[1692]
  1785. Mod3(tmp420, tmp407, BCValue(Imm32(4)));
  1786. Div3(tmp419, tmp407, BCValue(Imm32(4)));
  1787. Add3(tmp417, tmp417, tmp419);
  1788. Load32(tmp418, tmp417);
  1789. Byte3(tmp418, tmp418, tmp420);
  1790. Neq3(tmp412, tmp414, tmp418);
  1791. auto cndJmp103 = beginCndJmp(tmp412);
  1792. auto label306 = genLabel();
  1793. Set(tmp406, BCValue(Imm32(0)));
  1794. auto jmp101 = beginJmp();
  1795. auto label307 = genLabel();
  1796. endJmp(jmp101, label307);
  1797. auto jmp102 = beginJmp();
  1798. auto label308 = genLabel();
  1799. endJmp(jmp102, label308);
  1800. endCndJmp(cndJmp103, label308);
  1801. auto label309 = genLabel();
  1802. genJump(label304);
  1803. auto label310 = genLabel();
  1804. endCndJmp(cndJmp102, label310);
  1805. auto label311 = genLabel();
  1806. endCndJmp(cndJmp101, label311);
  1807. Eq3(BCValue.init, tmp406, BCValue(Imm32(1)));
  1808. auto cndJmp104 = beginCndJmp();
  1809. auto label312 = genLabel();
  1810. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(4096)));
  1811. auto jmp103 = beginJmp();
  1812. auto label313 = genLabel();
  1813. auto jmp104 = beginJmp();
  1814. auto label314 = genLabel();
  1815. endCndJmp(cndJmp104, label314);
  1816. auto label315 = genLabel();
  1817. AssertError(BCValue(Imm32(0)), Imm32(2)/*Error*/);
  1818. auto label316 = genLabel();
  1819. endJmp(jmp55, label316);
  1820. endJmp(jmp56, label316);
  1821. endJmp(jmp59, label316);
  1822. endJmp(jmp60, label316);
  1823. endJmp(jmp63, label316);
  1824. endJmp(jmp64, label316);
  1825. endJmp(jmp67, label316);
  1826. endJmp(jmp68, label316);
  1827. endJmp(jmp71, label316);
  1828. endJmp(jmp72, label316);
  1829. endJmp(jmp75, label316);
  1830. endJmp(jmp76, label316);
  1831. endJmp(jmp79, label316);
  1832. endJmp(jmp80, label316);
  1833. endJmp(jmp83, label316);
  1834. endJmp(jmp84, label316);
  1835. endJmp(jmp87, label316);
  1836. endJmp(jmp88, label316);
  1837. endJmp(jmp91, label316);
  1838. endJmp(jmp92, label316);
  1839. endJmp(jmp95, label316);
  1840. endJmp(jmp96, label316);
  1841. endJmp(jmp99, label316);
  1842. endJmp(jmp100, label316);
  1843. endJmp(jmp103, label316);
  1844. endJmp(jmp104, label316);
  1845. //currSp();//SP[1696]
  1846. incSp();
  1847. auto tmp421 = genTemporary(BCType(BCTypeEnum.String));//SP[1700]
  1848. Set(tmp421, BCValue(Imm32(124)));
  1849. auto tmp422 = genTemporary(BCType(BCTypeEnum.String));//SP[1704]
  1850. Set(tmp422, BCValue(Imm32(128)));
  1851. auto tmp423 = genTemporary(BCType(BCTypeEnum.String));//SP[1708]
  1852. Set(tmp423, BCValue(Imm32(132)));
  1853. auto tmp424 = genTemporary(BCType(BCTypeEnum.i32));//SP[1712]
  1854. auto tmp425 = genTemporary(BCType(BCTypeEnum.i32));//SP[1716]
  1855. Set(tmp424, BCValue(Imm32(0)));
  1856. auto tmp426 = genTemporary(BCType(BCTypeEnum.i32));//SP[1720]
  1857. auto tmp427 = genTemporary(BCType(BCTypeEnum.i32));//SP[1724]
  1858. Load32(tmp427, tmp422);
  1859. auto tmp428 = genTemporary(BCType(BCTypeEnum.i32));//SP[1728]
  1860. Load32(tmp428, tmp423);
  1861. Eq3(tmp426, tmp427, tmp428);
  1862. auto cndJmp105 = beginCndJmp(tmp426);
  1863. auto label317 = genLabel();
  1864. Set(tmp424, BCValue(Imm32(1)));
  1865. Load32(tmp425, tmp422);
  1866. auto label318 = genLabel();
  1867. auto tmp429 = genTemporary(BCType(BCTypeEnum.i32));//SP[1732]
  1868. Set(tmp429, tmp425);
  1869. Sub3(tmp425, tmp425, BCValue(Imm32(1)));
  1870. auto cndJmp106 = beginCndJmp(tmp429);
  1871. auto label319 = genLabel();
  1872. auto tmp430 = genTemporary(BCType(BCTypeEnum.i32));//SP[1736]
  1873. auto tmp431 = genTemporary(BCType(BCTypeEnum.i32));//SP[1740]
  1874. Add3(tmp431, tmp422, BCValue(Imm32(1)));
  1875. auto tmp432 = genTemporary(BCType(BCTypeEnum.Char));//SP[1744]
  1876. auto tmp433 = genTemporary(BCType(BCTypeEnum.i32));//SP[1748]
  1877. auto tmp434 = genTemporary(BCType(BCTypeEnum.i32));//SP[1752]
  1878. Mod3(tmp434, tmp425, BCValue(Imm32(4)));
  1879. Div3(tmp433, tmp425, BCValue(Imm32(4)));
  1880. Add3(tmp431, tmp431, tmp433);
  1881. Load32(tmp432, tmp431);
  1882. Byte3(tmp432, tmp432, tmp434);
  1883. auto tmp435 = genTemporary(BCType(BCTypeEnum.i32));//SP[1756]
  1884. Add3(tmp435, tmp423, BCValue(Imm32(1)));
  1885. auto tmp436 = genTemporary(BCType(BCTypeEnum.Char));//SP[1760]
  1886. auto tmp437 = genTemporary(BCType(BCTypeEnum.i32));//SP[1764]
  1887. auto tmp438 = genTemporary(BCType(BCTypeEnum.i32));//SP[1768]
  1888. Mod3(tmp438, tmp425, BCValue(Imm32(4)));
  1889. Div3(tmp437, tmp425, BCValue(Imm32(4)));
  1890. Add3(tmp435, tmp435, tmp437);
  1891. Load32(tmp436, tmp435);
  1892. Byte3(tmp436, tmp436, tmp438);
  1893. Neq3(tmp430, tmp432, tmp436);
  1894. auto cndJmp107 = beginCndJmp(tmp430);
  1895. auto label320 = genLabel();
  1896. Set(tmp424, BCValue(Imm32(0)));
  1897. auto jmp105 = beginJmp();
  1898. auto label321 = genLabel();
  1899. endJmp(jmp105, label321);
  1900. auto jmp106 = beginJmp();
  1901. auto label322 = genLabel();
  1902. endJmp(jmp106, label322);
  1903. endCndJmp(cndJmp107, label322);
  1904. auto label323 = genLabel();
  1905. genJump(label318);
  1906. auto label324 = genLabel();
  1907. endCndJmp(cndJmp106, label324);
  1908. auto label325 = genLabel();
  1909. endCndJmp(cndJmp105, label325);
  1910. Eq3(BCValue.init, tmp424, BCValue(Imm32(1)));
  1911. auto cndJmp108 = beginCndJmp();
  1912. auto label326 = genLabel();
  1913. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(1)));
  1914. auto jmp107 = beginJmp();
  1915. auto label327 = genLabel();
  1916. auto jmp108 = beginJmp();
  1917. auto label328 = genLabel();
  1918. endCndJmp(cndJmp108, label328);
  1919. auto tmp439 = genTemporary(BCType(BCTypeEnum.String));//SP[1772]
  1920. Set(tmp439, BCValue(Imm32(136)));
  1921. auto tmp440 = genTemporary(BCType(BCTypeEnum.i32));//SP[1776]
  1922. auto tmp441 = genTemporary(BCType(BCTypeEnum.i32));//SP[1780]
  1923. Set(tmp440, BCValue(Imm32(0)));
  1924. auto tmp442 = genTemporary(BCType(BCTypeEnum.i32));//SP[1784]
  1925. auto tmp443 = genTemporary(BCType(BCTypeEnum.i32));//SP[1788]
  1926. Load32(tmp443, tmp422);
  1927. auto tmp444 = genTemporary(BCType(BCTypeEnum.i32));//SP[1792]
  1928. Load32(tmp444, tmp439);
  1929. Eq3(tmp442, tmp443, tmp444);
  1930. auto cndJmp109 = beginCndJmp(tmp442);
  1931. auto label329 = genLabel();
  1932. Set(tmp440, BCValue(Imm32(1)));
  1933. Load32(tmp441, tmp422);
  1934. auto label330 = genLabel();
  1935. auto tmp445 = genTemporary(BCType(BCTypeEnum.i32));//SP[1796]
  1936. Set(tmp445, tmp441);
  1937. Sub3(tmp441, tmp441, BCValue(Imm32(1)));
  1938. auto cndJmp110 = beginCndJmp(tmp445);
  1939. auto label331 = genLabel();
  1940. auto tmp446 = genTemporary(BCType(BCTypeEnum.i32));//SP[1800]
  1941. auto tmp447 = genTemporary(BCType(BCTypeEnum.i32));//SP[1804]
  1942. Add3(tmp447, tmp422, BCValue(Imm32(1)));
  1943. auto tmp448 = genTemporary(BCType(BCTypeEnum.Char));//SP[1808]
  1944. auto tmp449 = genTemporary(BCType(BCTypeEnum.i32));//SP[1812]
  1945. auto tmp450 = genTemporary(BCType(BCTypeEnum.i32));//SP[1816]
  1946. Mod3(tmp450, tmp441, BCValue(Imm32(4)));
  1947. Div3(tmp449, tmp441, BCValue(Imm32(4)));
  1948. Add3(tmp447, tmp447, tmp449);
  1949. Load32(tmp448, tmp447);
  1950. Byte3(tmp448, tmp448, tmp450);
  1951. auto tmp451 = genTemporary(BCType(BCTypeEnum.i32));//SP[1820]
  1952. Add3(tmp451, tmp439, BCValue(Imm32(1)));
  1953. auto tmp452 = genTemporary(BCType(BCTypeEnum.Char));//SP[1824]
  1954. auto tmp453 = genTemporary(BCType(BCTypeEnum.i32));//SP[1828]
  1955. auto tmp454 = genTemporary(BCType(BCTypeEnum.i32));//SP[1832]
  1956. Mod3(tmp454, tmp441, BCValue(Imm32(4)));
  1957. Div3(tmp453, tmp441, BCValue(Imm32(4)));
  1958. Add3(tmp451, tmp451, tmp453);
  1959. Load32(tmp452, tmp451);
  1960. Byte3(tmp452, tmp452, tmp454);
  1961. Neq3(tmp446, tmp448, tmp452);
  1962. auto cndJmp111 = beginCndJmp(tmp446);
  1963. auto label332 = genLabel();
  1964. Set(tmp440, BCValue(Imm32(0)));
  1965. auto jmp109 = beginJmp();
  1966. auto label333 = genLabel();
  1967. endJmp(jmp109, label333);
  1968. auto jmp110 = beginJmp();
  1969. auto label334 = genLabel();
  1970. endJmp(jmp110, label334);
  1971. endCndJmp(cndJmp111, label334);
  1972. auto label335 = genLabel();
  1973. genJump(label330);
  1974. auto label336 = genLabel();
  1975. endCndJmp(cndJmp110, label336);
  1976. auto label337 = genLabel();
  1977. endCndJmp(cndJmp109, label337);
  1978. Eq3(BCValue.init, tmp440, BCValue(Imm32(1)));
  1979. auto cndJmp112 = beginCndJmp();
  1980. auto label338 = genLabel();
  1981. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(2)));
  1982. auto jmp111 = beginJmp();
  1983. auto label339 = genLabel();
  1984. auto jmp112 = beginJmp();
  1985. auto label340 = genLabel();
  1986. endCndJmp(cndJmp112, label340);
  1987. auto tmp455 = genTemporary(BCType(BCTypeEnum.String));//SP[1836]
  1988. Set(tmp455, BCValue(Imm32(140)));
  1989. auto tmp456 = genTemporary(BCType(BCTypeEnum.i32));//SP[1840]
  1990. auto tmp457 = genTemporary(BCType(BCTypeEnum.i32));//SP[1844]
  1991. Set(tmp456, BCValue(Imm32(0)));
  1992. auto tmp458 = genTemporary(BCType(BCTypeEnum.i32));//SP[1848]
  1993. auto tmp459 = genTemporary(BCType(BCTypeEnum.i32));//SP[1852]
  1994. Load32(tmp459, tmp422);
  1995. auto tmp460 = genTemporary(BCType(BCTypeEnum.i32));//SP[1856]
  1996. Load32(tmp460, tmp455);
  1997. Eq3(tmp458, tmp459, tmp460);
  1998. auto cndJmp113 = beginCndJmp(tmp458);
  1999. auto label341 = genLabel();
  2000. Set(tmp456, BCValue(Imm32(1)));
  2001. Load32(tmp457, tmp422);
  2002. auto label342 = genLabel();
  2003. auto tmp461 = genTemporary(BCType(BCTypeEnum.i32));//SP[1860]
  2004. Set(tmp461, tmp457);
  2005. Sub3(tmp457, tmp457, BCValue(Imm32(1)));
  2006. auto cndJmp114 = beginCndJmp(tmp461);
  2007. auto label343 = genLabel();
  2008. auto tmp462 = genTemporary(BCType(BCTypeEnum.i32));//SP[1864]
  2009. auto tmp463 = genTemporary(BCType(BCTypeEnum.i32));//SP[1868]
  2010. Add3(tmp463, tmp422, BCValue(Imm32(1)));
  2011. auto tmp464 = genTemporary(BCType(BCTypeEnum.Char));//SP[1872]
  2012. auto tmp465 = genTemporary(BCType(BCTypeEnum.i32));//SP[1876]
  2013. auto tmp466 = genTemporary(BCType(BCTypeEnum.i32));//SP[1880]
  2014. Mod3(tmp466, tmp457, BCValue(Imm32(4)));
  2015. Div3(tmp465, tmp457, BCValue(Imm32(4)));
  2016. Add3(tmp463, tmp463, tmp465);
  2017. Load32(tmp464, tmp463);
  2018. Byte3(tmp464, tmp464, tmp466);
  2019. auto tmp467 = genTemporary(BCType(BCTypeEnum.i32));//SP[1884]
  2020. Add3(tmp467, tmp455, BCValue(Imm32(1)));
  2021. auto tmp468 = genTemporary(BCType(BCTypeEnum.Char));//SP[1888]
  2022. auto tmp469 = genTemporary(BCType(BCTypeEnum.i32));//SP[1892]
  2023. auto tmp470 = genTemporary(BCType(BCTypeEnum.i32));//SP[1896]
  2024. Mod3(tmp470, tmp457, BCValue(Imm32(4)));
  2025. Div3(tmp469, tmp457, BCValue(Imm32(4)));
  2026. Add3(tmp467, tmp467, tmp469);
  2027. Load32(tmp468, tmp467);
  2028. Byte3(tmp468, tmp468, tmp470);
  2029. Neq3(tmp462, tmp464, tmp468);
  2030. auto cndJmp115 = beginCndJmp(tmp462);
  2031. auto label344 = genLabel();
  2032. Set(tmp456, BCValue(Imm32(0)));
  2033. auto jmp113 = beginJmp();
  2034. auto label345 = genLabel();
  2035. endJmp(jmp113, label345);
  2036. auto jmp114 = beginJmp();
  2037. auto label346 = genLabel();
  2038. endJmp(jmp114, label346);
  2039. endCndJmp(cndJmp115, label346);
  2040. auto label347 = genLabel();
  2041. genJump(label342);
  2042. auto label348 = genLabel();
  2043. endCndJmp(cndJmp114, label348);
  2044. auto label349 = genLabel();
  2045. endCndJmp(cndJmp113, label349);
  2046. Eq3(BCValue.init, tmp456, BCValue(Imm32(1)));
  2047. auto cndJmp116 = beginCndJmp();
  2048. auto label350 = genLabel();
  2049. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(4)));
  2050. auto jmp115 = beginJmp();
  2051. auto label351 = genLabel();
  2052. auto jmp116 = beginJmp();
  2053. auto label352 = genLabel();
  2054. endCndJmp(cndJmp116, label352);
  2055. auto tmp471 = genTemporary(BCType(BCTypeEnum.String));//SP[1900]
  2056. Set(tmp471, BCValue(Imm32(144)));
  2057. auto tmp472 = genTemporary(BCType(BCTypeEnum.i32));//SP[1904]
  2058. auto tmp473 = genTemporary(BCType(BCTypeEnum.i32));//SP[1908]
  2059. Set(tmp472, BCValue(Imm32(0)));
  2060. auto tmp474 = genTemporary(BCType(BCTypeEnum.i32));//SP[1912]
  2061. auto tmp475 = genTemporary(BCType(BCTypeEnum.i32));//SP[1916]
  2062. Load32(tmp475, tmp422);
  2063. auto tmp476 = genTemporary(BCType(BCTypeEnum.i32));//SP[1920]
  2064. Load32(tmp476, tmp471);
  2065. Eq3(tmp474, tmp475, tmp476);
  2066. auto cndJmp117 = beginCndJmp(tmp474);
  2067. auto label353 = genLabel();
  2068. Set(tmp472, BCValue(Imm32(1)));
  2069. Load32(tmp473, tmp422);
  2070. auto label354 = genLabel();
  2071. auto tmp477 = genTemporary(BCType(BCTypeEnum.i32));//SP[1924]
  2072. Set(tmp477, tmp473);
  2073. Sub3(tmp473, tmp473, BCValue(Imm32(1)));
  2074. auto cndJmp118 = beginCndJmp(tmp477);
  2075. auto label355 = genLabel();
  2076. auto tmp478 = genTemporary(BCType(BCTypeEnum.i32));//SP[1928]
  2077. auto tmp479 = genTemporary(BCType(BCTypeEnum.i32));//SP[1932]
  2078. Add3(tmp479, tmp422, BCValue(Imm32(1)));
  2079. auto tmp480 = genTemporary(BCType(BCTypeEnum.Char));//SP[1936]
  2080. auto tmp481 = genTemporary(BCType(BCTypeEnum.i32));//SP[1940]
  2081. auto tmp482 = genTemporary(BCType(BCTypeEnum.i32));//SP[1944]
  2082. Mod3(tmp482, tmp473, BCValue(Imm32(4)));
  2083. Div3(tmp481, tmp473, BCValue(Imm32(4)));
  2084. Add3(tmp479, tmp479, tmp481);
  2085. Load32(tmp480, tmp479);
  2086. Byte3(tmp480, tmp480, tmp482);
  2087. auto tmp483 = genTemporary(BCType(BCTypeEnum.i32));//SP[1948]
  2088. Add3(tmp483, tmp471, BCValue(Imm32(1)));
  2089. auto tmp484 = genTemporary(BCType(BCTypeEnum.Char));//SP[1952]
  2090. auto tmp485 = genTemporary(BCType(BCTypeEnum.i32));//SP[1956]
  2091. auto tmp486 = genTemporary(BCType(BCTypeEnum.i32));//SP[1960]
  2092. Mod3(tmp486, tmp473, BCValue(Imm32(4)));
  2093. Div3(tmp485, tmp473, BCValue(Imm32(4)));
  2094. Add3(tmp483, tmp483, tmp485);
  2095. Load32(tmp484, tmp483);
  2096. Byte3(tmp484, tmp484, tmp486);
  2097. Neq3(tmp478, tmp480, tmp484);
  2098. auto cndJmp119 = beginCndJmp(tmp478);
  2099. auto label356 = genLabel();
  2100. Set(tmp472, BCValue(Imm32(0)));
  2101. auto jmp117 = beginJmp();
  2102. auto label357 = genLabel();
  2103. endJmp(jmp117, label357);
  2104. auto jmp118 = beginJmp();
  2105. auto label358 = genLabel();
  2106. endJmp(jmp118, label358);
  2107. endCndJmp(cndJmp119, label358);
  2108. auto label359 = genLabel();
  2109. genJump(label354);
  2110. auto label360 = genLabel();
  2111. endCndJmp(cndJmp118, label360);
  2112. auto label361 = genLabel();
  2113. endCndJmp(cndJmp117, label361);
  2114. Eq3(BCValue.init, tmp472, BCValue(Imm32(1)));
  2115. auto cndJmp120 = beginCndJmp();
  2116. auto label362 = genLabel();
  2117. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(8)));
  2118. auto jmp119 = beginJmp();
  2119. auto label363 = genLabel();
  2120. auto jmp120 = beginJmp();
  2121. auto label364 = genLabel();
  2122. endCndJmp(cndJmp120, label364);
  2123. auto tmp487 = genTemporary(BCType(BCTypeEnum.String));//SP[1964]
  2124. Set(tmp487, BCValue(Imm32(148)));
  2125. auto tmp488 = genTemporary(BCType(BCTypeEnum.i32));//SP[1968]
  2126. auto tmp489 = genTemporary(BCType(BCTypeEnum.i32));//SP[1972]
  2127. Set(tmp488, BCValue(Imm32(0)));
  2128. auto tmp490 = genTemporary(BCType(BCTypeEnum.i32));//SP[1976]
  2129. auto tmp491 = genTemporary(BCType(BCTypeEnum.i32));//SP[1980]
  2130. Load32(tmp491, tmp422);
  2131. auto tmp492 = genTemporary(BCType(BCTypeEnum.i32));//SP[1984]
  2132. Load32(tmp492, tmp487);
  2133. Eq3(tmp490, tmp491, tmp492);
  2134. auto cndJmp121 = beginCndJmp(tmp490);
  2135. auto label365 = genLabel();
  2136. Set(tmp488, BCValue(Imm32(1)));
  2137. Load32(tmp489, tmp422);
  2138. auto label366 = genLabel();
  2139. auto tmp493 = genTemporary(BCType(BCTypeEnum.i32));//SP[1988]
  2140. Set(tmp493, tmp489);
  2141. Sub3(tmp489, tmp489, BCValue(Imm32(1)));
  2142. auto cndJmp122 = beginCndJmp(tmp493);
  2143. auto label367 = genLabel();
  2144. auto tmp494 = genTemporary(BCType(BCTypeEnum.i32));//SP[1992]
  2145. auto tmp495 = genTemporary(BCType(BCTypeEnum.i32));//SP[1996]
  2146. Add3(tmp495, tmp422, BCValue(Imm32(1)));
  2147. auto tmp496 = genTemporary(BCType(BCTypeEnum.Char));//SP[2000]
  2148. auto tmp497 = genTemporary(BCType(BCTypeEnum.i32));//SP[2004]
  2149. auto tmp498 = genTemporary(BCType(BCTypeEnum.i32));//SP[2008]
  2150. Mod3(tmp498, tmp489, BCValue(Imm32(4)));
  2151. Div3(tmp497, tmp489, BCValue(Imm32(4)));
  2152. Add3(tmp495, tmp495, tmp497);
  2153. Load32(tmp496, tmp495);
  2154. Byte3(tmp496, tmp496, tmp498);
  2155. auto tmp499 = genTemporary(BCType(BCTypeEnum.i32));//SP[2012]
  2156. Add3(tmp499, tmp487, BCValue(Imm32(1)));
  2157. auto tmp500 = genTemporary(BCType(BCTypeEnum.Char));//SP[2016]
  2158. auto tmp501 = genTemporary(BCType(BCTypeEnum.i32));//SP[2020]
  2159. auto tmp502 = genTemporary(BCType(BCTypeEnum.i32));//SP[2024]
  2160. Mod3(tmp502, tmp489, BCValue(Imm32(4)));
  2161. Div3(tmp501, tmp489, BCValue(Imm32(4)));
  2162. Add3(tmp499, tmp499, tmp501);
  2163. Load32(tmp500, tmp499);
  2164. Byte3(tmp500, tmp500, tmp502);
  2165. Neq3(tmp494, tmp496, tmp500);
  2166. auto cndJmp123 = beginCndJmp(tmp494);
  2167. auto label368 = genLabel();
  2168. Set(tmp488, BCValue(Imm32(0)));
  2169. auto jmp121 = beginJmp();
  2170. auto label369 = genLabel();
  2171. endJmp(jmp121, label369);
  2172. auto jmp122 = beginJmp();
  2173. auto label370 = genLabel();
  2174. endJmp(jmp122, label370);
  2175. endCndJmp(cndJmp123, label370);
  2176. auto label371 = genLabel();
  2177. genJump(label366);
  2178. auto label372 = genLabel();
  2179. endCndJmp(cndJmp122, label372);
  2180. auto label373 = genLabel();
  2181. endCndJmp(cndJmp121, label373);
  2182. Eq3(BCValue.init, tmp488, BCValue(Imm32(1)));
  2183. auto cndJmp124 = beginCndJmp();
  2184. auto label374 = genLabel();
  2185. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(16)));
  2186. auto jmp123 = beginJmp();
  2187. auto label375 = genLabel();
  2188. auto jmp124 = beginJmp();
  2189. auto label376 = genLabel();
  2190. endCndJmp(cndJmp124, label376);
  2191. auto tmp503 = genTemporary(BCType(BCTypeEnum.String));//SP[2028]
  2192. Set(tmp503, BCValue(Imm32(152)));
  2193. auto tmp504 = genTemporary(BCType(BCTypeEnum.i32));//SP[2032]
  2194. auto tmp505 = genTemporary(BCType(BCTypeEnum.i32));//SP[2036]
  2195. Set(tmp504, BCValue(Imm32(0)));
  2196. auto tmp506 = genTemporary(BCType(BCTypeEnum.i32));//SP[2040]
  2197. auto tmp507 = genTemporary(BCType(BCTypeEnum.i32));//SP[2044]
  2198. Load32(tmp507, tmp422);
  2199. auto tmp508 = genTemporary(BCType(BCTypeEnum.i32));//SP[2048]
  2200. Load32(tmp508, tmp503);
  2201. Eq3(tmp506, tmp507, tmp508);
  2202. auto cndJmp125 = beginCndJmp(tmp506);
  2203. auto label377 = genLabel();
  2204. Set(tmp504, BCValue(Imm32(1)));
  2205. Load32(tmp505, tmp422);
  2206. auto label378 = genLabel();
  2207. auto tmp509 = genTemporary(BCType(BCTypeEnum.i32));//SP[2052]
  2208. Set(tmp509, tmp505);
  2209. Sub3(tmp505, tmp505, BCValue(Imm32(1)));
  2210. auto cndJmp126 = beginCndJmp(tmp509);
  2211. auto label379 = genLabel();
  2212. auto tmp510 = genTemporary(BCType(BCTypeEnum.i32));//SP[2056]
  2213. auto tmp511 = genTemporary(BCType(BCTypeEnum.i32));//SP[2060]
  2214. Add3(tmp511, tmp422, BCValue(Imm32(1)));
  2215. auto tmp512 = genTemporary(BCType(BCTypeEnum.Char));//SP[2064]
  2216. auto tmp513 = genTemporary(BCType(BCTypeEnum.i32));//SP[2068]
  2217. auto tmp514 = genTemporary(BCType(BCTypeEnum.i32));//SP[2072]
  2218. Mod3(tmp514, tmp505, BCValue(Imm32(4)));
  2219. Div3(tmp513, tmp505, BCValue(Imm32(4)));
  2220. Add3(tmp511, tmp511, tmp513);
  2221. Load32(tmp512, tmp511);
  2222. Byte3(tmp512, tmp512, tmp514);
  2223. auto tmp515 = genTemporary(BCType(BCTypeEnum.i32));//SP[2076]
  2224. Add3(tmp515, tmp503, BCValue(Imm32(1)));
  2225. auto tmp516 = genTemporary(BCType(BCTypeEnum.Char));//SP[2080]
  2226. auto tmp517 = genTemporary(BCType(BCTypeEnum.i32));//SP[2084]
  2227. auto tmp518 = genTemporary(BCType(BCTypeEnum.i32));//SP[2088]
  2228. Mod3(tmp518, tmp505, BCValue(Imm32(4)));
  2229. Div3(tmp517, tmp505, BCValue(Imm32(4)));
  2230. Add3(tmp515, tmp515, tmp517);
  2231. Load32(tmp516, tmp515);
  2232. Byte3(tmp516, tmp516, tmp518);
  2233. Neq3(tmp510, tmp512, tmp516);
  2234. auto cndJmp127 = beginCndJmp(tmp510);
  2235. auto label380 = genLabel();
  2236. Set(tmp504, BCValue(Imm32(0)));
  2237. auto jmp125 = beginJmp();
  2238. auto label381 = genLabel();
  2239. endJmp(jmp125, label381);
  2240. auto jmp126 = beginJmp();
  2241. auto label382 = genLabel();
  2242. endJmp(jmp126, label382);
  2243. endCndJmp(cndJmp127, label382);
  2244. auto label383 = genLabel();
  2245. genJump(label378);
  2246. auto label384 = genLabel();
  2247. endCndJmp(cndJmp126, label384);
  2248. auto label385 = genLabel();
  2249. endCndJmp(cndJmp125, label385);
  2250. Eq3(BCValue.init, tmp504, BCValue(Imm32(1)));
  2251. auto cndJmp128 = beginCndJmp();
  2252. auto label386 = genLabel();
  2253. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(32)));
  2254. auto jmp127 = beginJmp();
  2255. auto label387 = genLabel();
  2256. auto jmp128 = beginJmp();
  2257. auto label388 = genLabel();
  2258. endCndJmp(cndJmp128, label388);
  2259. auto tmp519 = genTemporary(BCType(BCTypeEnum.String));//SP[2092]
  2260. Set(tmp519, BCValue(Imm32(156)));
  2261. auto tmp520 = genTemporary(BCType(BCTypeEnum.i32));//SP[2096]
  2262. auto tmp521 = genTemporary(BCType(BCTypeEnum.i32));//SP[2100]
  2263. Set(tmp520, BCValue(Imm32(0)));
  2264. auto tmp522 = genTemporary(BCType(BCTypeEnum.i32));//SP[2104]
  2265. auto tmp523 = genTemporary(BCType(BCTypeEnum.i32));//SP[2108]
  2266. Load32(tmp523, tmp422);
  2267. auto tmp524 = genTemporary(BCType(BCTypeEnum.i32));//SP[2112]
  2268. Load32(tmp524, tmp519);
  2269. Eq3(tmp522, tmp523, tmp524);
  2270. auto cndJmp129 = beginCndJmp(tmp522);
  2271. auto label389 = genLabel();
  2272. Set(tmp520, BCValue(Imm32(1)));
  2273. Load32(tmp521, tmp422);
  2274. auto label390 = genLabel();
  2275. auto tmp525 = genTemporary(BCType(BCTypeEnum.i32));//SP[2116]
  2276. Set(tmp525, tmp521);
  2277. Sub3(tmp521, tmp521, BCValue(Imm32(1)));
  2278. auto cndJmp130 = beginCndJmp(tmp525);
  2279. auto label391 = genLabel();
  2280. auto tmp526 = genTemporary(BCType(BCTypeEnum.i32));//SP[2120]
  2281. auto tmp527 = genTemporary(BCType(BCTypeEnum.i32));//SP[2124]
  2282. Add3(tmp527, tmp422, BCValue(Imm32(1)));
  2283. auto tmp528 = genTemporary(BCType(BCTypeEnum.Char));//SP[2128]
  2284. auto tmp529 = genTemporary(BCType(BCTypeEnum.i32));//SP[2132]
  2285. auto tmp530 = genTemporary(BCType(BCTypeEnum.i32));//SP[2136]
  2286. Mod3(tmp530, tmp521, BCValue(Imm32(4)));
  2287. Div3(tmp529, tmp521, BCValue(Imm32(4)));
  2288. Add3(tmp527, tmp527, tmp529);
  2289. Load32(tmp528, tmp527);
  2290. Byte3(tmp528, tmp528, tmp530);
  2291. auto tmp531 = genTemporary(BCType(BCTypeEnum.i32));//SP[2140]
  2292. Add3(tmp531, tmp519, BCValue(Imm32(1)));
  2293. auto tmp532 = genTemporary(BCType(BCTypeEnum.Char));//SP[2144]
  2294. auto tmp533 = genTemporary(BCType(BCTypeEnum.i32));//SP[2148]
  2295. auto tmp534 = genTemporary(BCType(BCTypeEnum.i32));//SP[2152]
  2296. Mod3(tmp534, tmp521, BCValue(Imm32(4)));
  2297. Div3(tmp533, tmp521, BCValue(Imm32(4)));
  2298. Add3(tmp531, tmp531, tmp533);
  2299. Load32(tmp532, tmp531);
  2300. Byte3(tmp532, tmp532, tmp534);
  2301. Neq3(tmp526, tmp528, tmp532);
  2302. auto cndJmp131 = beginCndJmp(tmp526);
  2303. auto label392 = genLabel();
  2304. Set(tmp520, BCValue(Imm32(0)));
  2305. auto jmp129 = beginJmp();
  2306. auto label393 = genLabel();
  2307. endJmp(jmp129, label393);
  2308. auto jmp130 = beginJmp();
  2309. auto label394 = genLabel();
  2310. endJmp(jmp130, label394);
  2311. endCndJmp(cndJmp131, label394);
  2312. auto label395 = genLabel();
  2313. genJump(label390);
  2314. auto label396 = genLabel();
  2315. endCndJmp(cndJmp130, label396);
  2316. auto label397 = genLabel();
  2317. endCndJmp(cndJmp129, label397);
  2318. Eq3(BCValue.init, tmp520, BCValue(Imm32(1)));
  2319. auto cndJmp132 = beginCndJmp();
  2320. auto label398 = genLabel();
  2321. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(64)));
  2322. auto jmp131 = beginJmp();
  2323. auto label399 = genLabel();
  2324. auto jmp132 = beginJmp();
  2325. auto label400 = genLabel();
  2326. endCndJmp(cndJmp132, label400);
  2327. auto tmp535 = genTemporary(BCType(BCTypeEnum.String));//SP[2156]
  2328. Set(tmp535, BCValue(Imm32(160)));
  2329. auto tmp536 = genTemporary(BCType(BCTypeEnum.i32));//SP[2160]
  2330. auto tmp537 = genTemporary(BCType(BCTypeEnum.i32));//SP[2164]
  2331. Set(tmp536, BCValue(Imm32(0)));
  2332. auto tmp538 = genTemporary(BCType(BCTypeEnum.i32));//SP[2168]
  2333. auto tmp539 = genTemporary(BCType(BCTypeEnum.i32));//SP[2172]
  2334. Load32(tmp539, tmp422);
  2335. auto tmp540 = genTemporary(BCType(BCTypeEnum.i32));//SP[2176]
  2336. Load32(tmp540, tmp535);
  2337. Eq3(tmp538, tmp539, tmp540);
  2338. auto cndJmp133 = beginCndJmp(tmp538);
  2339. auto label401 = genLabel();
  2340. Set(tmp536, BCValue(Imm32(1)));
  2341. Load32(tmp537, tmp422);
  2342. auto label402 = genLabel();
  2343. auto tmp541 = genTemporary(BCType(BCTypeEnum.i32));//SP[2180]
  2344. Set(tmp541, tmp537);
  2345. Sub3(tmp537, tmp537, BCValue(Imm32(1)));
  2346. auto cndJmp134 = beginCndJmp(tmp541);
  2347. auto label403 = genLabel();
  2348. auto tmp542 = genTemporary(BCType(BCTypeEnum.i32));//SP[2184]
  2349. auto tmp543 = genTemporary(BCType(BCTypeEnum.i32));//SP[2188]
  2350. Add3(tmp543, tmp422, BCValue(Imm32(1)));
  2351. auto tmp544 = genTemporary(BCType(BCTypeEnum.Char));//SP[2192]
  2352. auto tmp545 = genTemporary(BCType(BCTypeEnum.i32));//SP[2196]
  2353. auto tmp546 = genTemporary(BCType(BCTypeEnum.i32));//SP[2200]
  2354. Mod3(tmp546, tmp537, BCValue(Imm32(4)));
  2355. Div3(tmp545, tmp537, BCValue(Imm32(4)));
  2356. Add3(tmp543, tmp543, tmp545);
  2357. Load32(tmp544, tmp543);
  2358. Byte3(tmp544, tmp544, tmp546);
  2359. auto tmp547 = genTemporary(BCType(BCTypeEnum.i32));//SP[2204]
  2360. Add3(tmp547, tmp535, BCValue(Imm32(1)));
  2361. auto tmp548 = genTemporary(BCType(BCTypeEnum.Char));//SP[2208]
  2362. auto tmp549 = genTemporary(BCType(BCTypeEnum.i32));//SP[2212]
  2363. auto tmp550 = genTemporary(BCType(BCTypeEnum.i32));//SP[2216]
  2364. Mod3(tmp550, tmp537, BCValue(Imm32(4)));
  2365. Div3(tmp549, tmp537, BCValue(Imm32(4)));
  2366. Add3(tmp547, tmp547, tmp549);
  2367. Load32(tmp548, tmp547);
  2368. Byte3(tmp548, tmp548, tmp550);
  2369. Neq3(tmp542, tmp544, tmp548);
  2370. auto cndJmp135 = beginCndJmp(tmp542);
  2371. auto label404 = genLabel();
  2372. Set(tmp536, BCValue(Imm32(0)));
  2373. auto jmp133 = beginJmp();
  2374. auto label405 = genLabel();
  2375. endJmp(jmp133, label405);
  2376. auto jmp134 = beginJmp();
  2377. auto label406 = genLabel();
  2378. endJmp(jmp134, label406);
  2379. endCndJmp(cndJmp135, label406);
  2380. auto label407 = genLabel();
  2381. genJump(label402);
  2382. auto label408 = genLabel();
  2383. endCndJmp(cndJmp134, label408);
  2384. auto label409 = genLabel();
  2385. endCndJmp(cndJmp133, label409);
  2386. Eq3(BCValue.init, tmp536, BCValue(Imm32(1)));
  2387. auto cndJmp136 = beginCndJmp();
  2388. auto label410 = genLabel();
  2389. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(128)));
  2390. auto jmp135 = beginJmp();
  2391. auto label411 = genLabel();
  2392. auto jmp136 = beginJmp();
  2393. auto label412 = genLabel();
  2394. endCndJmp(cndJmp136, label412);
  2395. auto tmp551 = genTemporary(BCType(BCTypeEnum.String));//SP[2220]
  2396. Set(tmp551, BCValue(Imm32(164)));
  2397. auto tmp552 = genTemporary(BCType(BCTypeEnum.i32));//SP[2224]
  2398. auto tmp553 = genTemporary(BCType(BCTypeEnum.i32));//SP[2228]
  2399. Set(tmp552, BCValue(Imm32(0)));
  2400. auto tmp554 = genTemporary(BCType(BCTypeEnum.i32));//SP[2232]
  2401. auto tmp555 = genTemporary(BCType(BCTypeEnum.i32));//SP[2236]
  2402. Load32(tmp555, tmp422);
  2403. auto tmp556 = genTemporary(BCType(BCTypeEnum.i32));//SP[2240]
  2404. Load32(tmp556, tmp551);
  2405. Eq3(tmp554, tmp555, tmp556);
  2406. auto cndJmp137 = beginCndJmp(tmp554);
  2407. auto label413 = genLabel();
  2408. Set(tmp552, BCValue(Imm32(1)));
  2409. Load32(tmp553, tmp422);
  2410. auto label414 = genLabel();
  2411. auto tmp557 = genTemporary(BCType(BCTypeEnum.i32));//SP[2244]
  2412. Set(tmp557, tmp553);
  2413. Sub3(tmp553, tmp553, BCValue(Imm32(1)));
  2414. auto cndJmp138 = beginCndJmp(tmp557);
  2415. auto label415 = genLabel();
  2416. auto tmp558 = genTemporary(BCType(BCTypeEnum.i32));//SP[2248]
  2417. auto tmp559 = genTemporary(BCType(BCTypeEnum.i32));//SP[2252]
  2418. Add3(tmp559, tmp422, BCValue(Imm32(1)));
  2419. auto tmp560 = genTemporary(BCType(BCTypeEnum.Char));//SP[2256]
  2420. auto tmp561 = genTemporary(BCType(BCTypeEnum.i32));//SP[2260]
  2421. auto tmp562 = genTemporary(BCType(BCTypeEnum.i32));//SP[2264]
  2422. Mod3(tmp562, tmp553, BCValue(Imm32(4)));
  2423. Div3(tmp561, tmp553, BCValue(Imm32(4)));
  2424. Add3(tmp559, tmp559, tmp561);
  2425. Load32(tmp560, tmp559);
  2426. Byte3(tmp560, tmp560, tmp562);
  2427. auto tmp563 = genTemporary(BCType(BCTypeEnum.i32));//SP[2268]
  2428. Add3(tmp563, tmp551, BCValue(Imm32(1)));
  2429. auto tmp564 = genTemporary(BCType(BCTypeEnum.Char));//SP[2272]
  2430. auto tmp565 = genTemporary(BCType(BCTypeEnum.i32));//SP[2276]
  2431. auto tmp566 = genTemporary(BCType(BCTypeEnum.i32));//SP[2280]
  2432. Mod3(tmp566, tmp553, BCValue(Imm32(4)));
  2433. Div3(tmp565, tmp553, BCValue(Imm32(4)));
  2434. Add3(tmp563, tmp563, tmp565);
  2435. Load32(tmp564, tmp563);
  2436. Byte3(tmp564, tmp564, tmp566);
  2437. Neq3(tmp558, tmp560, tmp564);
  2438. auto cndJmp139 = beginCndJmp(tmp558);
  2439. auto label416 = genLabel();
  2440. Set(tmp552, BCValue(Imm32(0)));
  2441. auto jmp137 = beginJmp();
  2442. auto label417 = genLabel();
  2443. endJmp(jmp137, label417);
  2444. auto jmp138 = beginJmp();
  2445. auto label418 = genLabel();
  2446. endJmp(jmp138, label418);
  2447. endCndJmp(cndJmp139, label418);
  2448. auto label419 = genLabel();
  2449. genJump(label414);
  2450. auto label420 = genLabel();
  2451. endCndJmp(cndJmp138, label420);
  2452. auto label421 = genLabel();
  2453. endCndJmp(cndJmp137, label421);
  2454. Eq3(BCValue.init, tmp552, BCValue(Imm32(1)));
  2455. auto cndJmp140 = beginCndJmp();
  2456. auto label422 = genLabel();
  2457. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(256)));
  2458. auto jmp139 = beginJmp();
  2459. auto label423 = genLabel();
  2460. auto jmp140 = beginJmp();
  2461. auto label424 = genLabel();
  2462. endCndJmp(cndJmp140, label424);
  2463. auto tmp567 = genTemporary(BCType(BCTypeEnum.String));//SP[2284]
  2464. Set(tmp567, BCValue(Imm32(168)));
  2465. auto tmp568 = genTemporary(BCType(BCTypeEnum.i32));//SP[2288]
  2466. auto tmp569 = genTemporary(BCType(BCTypeEnum.i32));//SP[2292]
  2467. Set(tmp568, BCValue(Imm32(0)));
  2468. auto tmp570 = genTemporary(BCType(BCTypeEnum.i32));//SP[2296]
  2469. auto tmp571 = genTemporary(BCType(BCTypeEnum.i32));//SP[2300]
  2470. Load32(tmp571, tmp422);
  2471. auto tmp572 = genTemporary(BCType(BCTypeEnum.i32));//SP[2304]
  2472. Load32(tmp572, tmp567);
  2473. Eq3(tmp570, tmp571, tmp572);
  2474. auto cndJmp141 = beginCndJmp(tmp570);
  2475. auto label425 = genLabel();
  2476. Set(tmp568, BCValue(Imm32(1)));
  2477. Load32(tmp569, tmp422);
  2478. auto label426 = genLabel();
  2479. auto tmp573 = genTemporary(BCType(BCTypeEnum.i32));//SP[2308]
  2480. Set(tmp573, tmp569);
  2481. Sub3(tmp569, tmp569, BCValue(Imm32(1)));
  2482. auto cndJmp142 = beginCndJmp(tmp573);
  2483. auto label427 = genLabel();
  2484. auto tmp574 = genTemporary(BCType(BCTypeEnum.i32));//SP[2312]
  2485. auto tmp575 = genTemporary(BCType(BCTypeEnum.i32));//SP[2316]
  2486. Add3(tmp575, tmp422, BCValue(Imm32(1)));
  2487. auto tmp576 = genTemporary(BCType(BCTypeEnum.Char));//SP[2320]
  2488. auto tmp577 = genTemporary(BCType(BCTypeEnum.i32));//SP[2324]
  2489. auto tmp578 = genTemporary(BCType(BCTypeEnum.i32));//SP[2328]
  2490. Mod3(tmp578, tmp569, BCValue(Imm32(4)));
  2491. Div3(tmp577, tmp569, BCValue(Imm32(4)));
  2492. Add3(tmp575, tmp575, tmp577);
  2493. Load32(tmp576, tmp575);
  2494. Byte3(tmp576, tmp576, tmp578);
  2495. auto tmp579 = genTemporary(BCType(BCTypeEnum.i32));//SP[2332]
  2496. Add3(tmp579, tmp567, BCValue(Imm32(1)));
  2497. auto tmp580 = genTemporary(BCType(BCTypeEnum.Char));//SP[2336]
  2498. auto tmp581 = genTemporary(BCType(BCTypeEnum.i32));//SP[2340]
  2499. auto tmp582 = genTemporary(BCType(BCTypeEnum.i32));//SP[2344]
  2500. Mod3(tmp582, tmp569, BCValue(Imm32(4)));
  2501. Div3(tmp581, tmp569, BCValue(Imm32(4)));
  2502. Add3(tmp579, tmp579, tmp581);
  2503. Load32(tmp580, tmp579);
  2504. Byte3(tmp580, tmp580, tmp582);
  2505. Neq3(tmp574, tmp576, tmp580);
  2506. auto cndJmp143 = beginCndJmp(tmp574);
  2507. auto label428 = genLabel();
  2508. Set(tmp568, BCValue(Imm32(0)));
  2509. auto jmp141 = beginJmp();
  2510. auto label429 = genLabel();
  2511. endJmp(jmp141, label429);
  2512. auto jmp142 = beginJmp();
  2513. auto label430 = genLabel();
  2514. endJmp(jmp142, label430);
  2515. endCndJmp(cndJmp143, label430);
  2516. auto label431 = genLabel();
  2517. genJump(label426);
  2518. auto label432 = genLabel();
  2519. endCndJmp(cndJmp142, label432);
  2520. auto label433 = genLabel();
  2521. endCndJmp(cndJmp141, label433);
  2522. Eq3(BCValue.init, tmp568, BCValue(Imm32(1)));
  2523. auto cndJmp144 = beginCndJmp();
  2524. auto label434 = genLabel();
  2525. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(512)));
  2526. auto jmp143 = beginJmp();
  2527. auto label435 = genLabel();
  2528. auto jmp144 = beginJmp();
  2529. auto label436 = genLabel();
  2530. endCndJmp(cndJmp144, label436);
  2531. auto tmp583 = genTemporary(BCType(BCTypeEnum.String));//SP[2348]
  2532. Set(tmp583, BCValue(Imm32(172)));
  2533. auto tmp584 = genTemporary(BCType(BCTypeEnum.i32));//SP[2352]
  2534. auto tmp585 = genTemporary(BCType(BCTypeEnum.i32));//SP[2356]
  2535. Set(tmp584, BCValue(Imm32(0)));
  2536. auto tmp586 = genTemporary(BCType(BCTypeEnum.i32));//SP[2360]
  2537. auto tmp587 = genTemporary(BCType(BCTypeEnum.i32));//SP[2364]
  2538. Load32(tmp587, tmp422);
  2539. auto tmp588 = genTemporary(BCType(BCTypeEnum.i32));//SP[2368]
  2540. Load32(tmp588, tmp583);
  2541. Eq3(tmp586, tmp587, tmp588);
  2542. auto cndJmp145 = beginCndJmp(tmp586);
  2543. auto label437 = genLabel();
  2544. Set(tmp584, BCValue(Imm32(1)));
  2545. Load32(tmp585, tmp422);
  2546. auto label438 = genLabel();
  2547. auto tmp589 = genTemporary(BCType(BCTypeEnum.i32));//SP[2372]
  2548. Set(tmp589, tmp585);
  2549. Sub3(tmp585, tmp585, BCValue(Imm32(1)));
  2550. auto cndJmp146 = beginCndJmp(tmp589);
  2551. auto label439 = genLabel();
  2552. auto tmp590 = genTemporary(BCType(BCTypeEnum.i32));//SP[2376]
  2553. auto tmp591 = genTemporary(BCType(BCTypeEnum.i32));//SP[2380]
  2554. Add3(tmp591, tmp422, BCValue(Imm32(1)));
  2555. auto tmp592 = genTemporary(BCType(BCTypeEnum.Char));//SP[2384]
  2556. auto tmp593 = genTemporary(BCType(BCTypeEnum.i32));//SP[2388]
  2557. auto tmp594 = genTemporary(BCType(BCTypeEnum.i32));//SP[2392]
  2558. Mod3(tmp594, tmp585, BCValue(Imm32(4)));
  2559. Div3(tmp593, tmp585, BCValue(Imm32(4)));
  2560. Add3(tmp591, tmp591, tmp593);
  2561. Load32(tmp592, tmp591);
  2562. Byte3(tmp592, tmp592, tmp594);
  2563. auto tmp595 = genTemporary(BCType(BCTypeEnum.i32));//SP[2396]
  2564. Add3(tmp595, tmp583, BCValue(Imm32(1)));
  2565. auto tmp596 = genTemporary(BCType(BCTypeEnum.Char));//SP[2400]
  2566. auto tmp597 = genTemporary(BCType(BCTypeEnum.i32));//SP[2404]
  2567. auto tmp598 = genTemporary(BCType(BCTypeEnum.i32));//SP[2408]
  2568. Mod3(tmp598, tmp585, BCValue(Imm32(4)));
  2569. Div3(tmp597, tmp585, BCValue(Imm32(4)));
  2570. Add3(tmp595, tmp595, tmp597);
  2571. Load32(tmp596, tmp595);
  2572. Byte3(tmp596, tmp596, tmp598);
  2573. Neq3(tmp590, tmp592, tmp596);
  2574. auto cndJmp147 = beginCndJmp(tmp590);
  2575. auto label440 = genLabel();
  2576. Set(tmp584, BCValue(Imm32(0)));
  2577. auto jmp145 = beginJmp();
  2578. auto label441 = genLabel();
  2579. endJmp(jmp145, label441);
  2580. auto jmp146 = beginJmp();
  2581. auto label442 = genLabel();
  2582. endJmp(jmp146, label442);
  2583. endCndJmp(cndJmp147, label442);
  2584. auto label443 = genLabel();
  2585. genJump(label438);
  2586. auto label444 = genLabel();
  2587. endCndJmp(cndJmp146, label444);
  2588. auto label445 = genLabel();
  2589. endCndJmp(cndJmp145, label445);
  2590. Eq3(BCValue.init, tmp584, BCValue(Imm32(1)));
  2591. auto cndJmp148 = beginCndJmp();
  2592. auto label446 = genLabel();
  2593. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(1024)));
  2594. auto jmp147 = beginJmp();
  2595. auto label447 = genLabel();
  2596. auto jmp148 = beginJmp();
  2597. auto label448 = genLabel();
  2598. endCndJmp(cndJmp148, label448);
  2599. auto tmp599 = genTemporary(BCType(BCTypeEnum.String));//SP[2412]
  2600. Set(tmp599, BCValue(Imm32(176)));
  2601. auto tmp600 = genTemporary(BCType(BCTypeEnum.i32));//SP[2416]
  2602. auto tmp601 = genTemporary(BCType(BCTypeEnum.i32));//SP[2420]
  2603. Set(tmp600, BCValue(Imm32(0)));
  2604. auto tmp602 = genTemporary(BCType(BCTypeEnum.i32));//SP[2424]
  2605. auto tmp603 = genTemporary(BCType(BCTypeEnum.i32));//SP[2428]
  2606. Load32(tmp603, tmp422);
  2607. auto tmp604 = genTemporary(BCType(BCTypeEnum.i32));//SP[2432]
  2608. Load32(tmp604, tmp599);
  2609. Eq3(tmp602, tmp603, tmp604);
  2610. auto cndJmp149 = beginCndJmp(tmp602);
  2611. auto label449 = genLabel();
  2612. Set(tmp600, BCValue(Imm32(1)));
  2613. Load32(tmp601, tmp422);
  2614. auto label450 = genLabel();
  2615. auto tmp605 = genTemporary(BCType(BCTypeEnum.i32));//SP[2436]
  2616. Set(tmp605, tmp601);
  2617. Sub3(tmp601, tmp601, BCValue(Imm32(1)));
  2618. auto cndJmp150 = beginCndJmp(tmp605);
  2619. auto label451 = genLabel();
  2620. auto tmp606 = genTemporary(BCType(BCTypeEnum.i32));//SP[2440]
  2621. auto tmp607 = genTemporary(BCType(BCTypeEnum.i32));//SP[2444]
  2622. Add3(tmp607, tmp422, BCValue(Imm32(1)));
  2623. auto tmp608 = genTemporary(BCType(BCTypeEnum.Char));//SP[2448]
  2624. auto tmp609 = genTemporary(BCType(BCTypeEnum.i32));//SP[2452]
  2625. auto tmp610 = genTemporary(BCType(BCTypeEnum.i32));//SP[2456]
  2626. Mod3(tmp610, tmp601, BCValue(Imm32(4)));
  2627. Div3(tmp609, tmp601, BCValue(Imm32(4)));
  2628. Add3(tmp607, tmp607, tmp609);
  2629. Load32(tmp608, tmp607);
  2630. Byte3(tmp608, tmp608, tmp610);
  2631. auto tmp611 = genTemporary(BCType(BCTypeEnum.i32));//SP[2460]
  2632. Add3(tmp611, tmp599, BCValue(Imm32(1)));
  2633. auto tmp612 = genTemporary(BCType(BCTypeEnum.Char));//SP[2464]
  2634. auto tmp613 = genTemporary(BCType(BCTypeEnum.i32));//SP[2468]
  2635. auto tmp614 = genTemporary(BCType(BCTypeEnum.i32));//SP[2472]
  2636. Mod3(tmp614, tmp601, BCValue(Imm32(4)));
  2637. Div3(tmp613, tmp601, BCValue(Imm32(4)));
  2638. Add3(tmp611, tmp611, tmp613);
  2639. Load32(tmp612, tmp611);
  2640. Byte3(tmp612, tmp612, tmp614);
  2641. Neq3(tmp606, tmp608, tmp612);
  2642. auto cndJmp151 = beginCndJmp(tmp606);
  2643. auto label452 = genLabel();
  2644. Set(tmp600, BCValue(Imm32(0)));
  2645. auto jmp149 = beginJmp();
  2646. auto label453 = genLabel();
  2647. endJmp(jmp149, label453);
  2648. auto jmp150 = beginJmp();
  2649. auto label454 = genLabel();
  2650. endJmp(jmp150, label454);
  2651. endCndJmp(cndJmp151, label454);
  2652. auto label455 = genLabel();
  2653. genJump(label450);
  2654. auto label456 = genLabel();
  2655. endCndJmp(cndJmp150, label456);
  2656. auto label457 = genLabel();
  2657. endCndJmp(cndJmp149, label457);
  2658. Eq3(BCValue.init, tmp600, BCValue(Imm32(1)));
  2659. auto cndJmp152 = beginCndJmp();
  2660. auto label458 = genLabel();
  2661. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(2048)));
  2662. auto jmp151 = beginJmp();
  2663. auto label459 = genLabel();
  2664. auto jmp152 = beginJmp();
  2665. auto label460 = genLabel();
  2666. endCndJmp(cndJmp152, label460);
  2667. auto tmp615 = genTemporary(BCType(BCTypeEnum.String));//SP[2476]
  2668. Set(tmp615, BCValue(Imm32(180)));
  2669. auto tmp616 = genTemporary(BCType(BCTypeEnum.i32));//SP[2480]
  2670. auto tmp617 = genTemporary(BCType(BCTypeEnum.i32));//SP[2484]
  2671. Set(tmp616, BCValue(Imm32(0)));
  2672. auto tmp618 = genTemporary(BCType(BCTypeEnum.i32));//SP[2488]
  2673. auto tmp619 = genTemporary(BCType(BCTypeEnum.i32));//SP[2492]
  2674. Load32(tmp619, tmp422);
  2675. auto tmp620 = genTemporary(BCType(BCTypeEnum.i32));//SP[2496]
  2676. Load32(tmp620, tmp615);
  2677. Eq3(tmp618, tmp619, tmp620);
  2678. auto cndJmp153 = beginCndJmp(tmp618);
  2679. auto label461 = genLabel();
  2680. Set(tmp616, BCValue(Imm32(1)));
  2681. Load32(tmp617, tmp422);
  2682. auto label462 = genLabel();
  2683. auto tmp621 = genTemporary(BCType(BCTypeEnum.i32));//SP[2500]
  2684. Set(tmp621, tmp617);
  2685. Sub3(tmp617, tmp617, BCValue(Imm32(1)));
  2686. auto cndJmp154 = beginCndJmp(tmp621);
  2687. auto label463 = genLabel();
  2688. auto tmp622 = genTemporary(BCType(BCTypeEnum.i32));//SP[2504]
  2689. auto tmp623 = genTemporary(BCType(BCTypeEnum.i32));//SP[2508]
  2690. Add3(tmp623, tmp422, BCValue(Imm32(1)));
  2691. auto tmp624 = genTemporary(BCType(BCTypeEnum.Char));//SP[2512]
  2692. auto tmp625 = genTemporary(BCType(BCTypeEnum.i32));//SP[2516]
  2693. auto tmp626 = genTemporary(BCType(BCTypeEnum.i32));//SP[2520]
  2694. Mod3(tmp626, tmp617, BCValue(Imm32(4)));
  2695. Div3(tmp625, tmp617, BCValue(Imm32(4)));
  2696. Add3(tmp623, tmp623, tmp625);
  2697. Load32(tmp624, tmp623);
  2698. Byte3(tmp624, tmp624, tmp626);
  2699. auto tmp627 = genTemporary(BCType(BCTypeEnum.i32));//SP[2524]
  2700. Add3(tmp627, tmp615, BCValue(Imm32(1)));
  2701. auto tmp628 = genTemporary(BCType(BCTypeEnum.Char));//SP[2528]
  2702. auto tmp629 = genTemporary(BCType(BCTypeEnum.i32));//SP[2532]
  2703. auto tmp630 = genTemporary(BCType(BCTypeEnum.i32));//SP[2536]
  2704. Mod3(tmp630, tmp617, BCValue(Imm32(4)));
  2705. Div3(tmp629, tmp617, BCValue(Imm32(4)));
  2706. Add3(tmp627, tmp627, tmp629);
  2707. Load32(tmp628, tmp627);
  2708. Byte3(tmp628, tmp628, tmp630);
  2709. Neq3(tmp622, tmp624, tmp628);
  2710. auto cndJmp155 = beginCndJmp(tmp622);
  2711. auto label464 = genLabel();
  2712. Set(tmp616, BCValue(Imm32(0)));
  2713. auto jmp153 = beginJmp();
  2714. auto label465 = genLabel();
  2715. endJmp(jmp153, label465);
  2716. auto jmp154 = beginJmp();
  2717. auto label466 = genLabel();
  2718. endJmp(jmp154, label466);
  2719. endCndJmp(cndJmp155, label466);
  2720. auto label467 = genLabel();
  2721. genJump(label462);
  2722. auto label468 = genLabel();
  2723. endCndJmp(cndJmp154, label468);
  2724. auto label469 = genLabel();
  2725. endCndJmp(cndJmp153, label469);
  2726. Eq3(BCValue.init, tmp616, BCValue(Imm32(1)));
  2727. auto cndJmp156 = beginCndJmp();
  2728. auto label470 = genLabel();
  2729. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(4096)));
  2730. auto jmp155 = beginJmp();
  2731. auto label471 = genLabel();
  2732. auto jmp156 = beginJmp();
  2733. auto label472 = genLabel();
  2734. endCndJmp(cndJmp156, label472);
  2735. auto label473 = genLabel();
  2736. AssertError(BCValue(Imm32(0)), Imm32(3)/*Error*/);
  2737. auto label474 = genLabel();
  2738. endJmp(jmp107, label474);
  2739. endJmp(jmp108, label474);
  2740. endJmp(jmp111, label474);
  2741. endJmp(jmp112, label474);
  2742. endJmp(jmp115, label474);
  2743. endJmp(jmp116, label474);
  2744. endJmp(jmp119, label474);
  2745. endJmp(jmp120, label474);
  2746. endJmp(jmp123, label474);
  2747. endJmp(jmp124, label474);
  2748. endJmp(jmp127, label474);
  2749. endJmp(jmp128, label474);
  2750. endJmp(jmp131, label474);
  2751. endJmp(jmp132, label474);
  2752. endJmp(jmp135, label474);
  2753. endJmp(jmp136, label474);
  2754. endJmp(jmp139, label474);
  2755. endJmp(jmp140, label474);
  2756. endJmp(jmp143, label474);
  2757. endJmp(jmp144, label474);
  2758. endJmp(jmp147, label474);
  2759. endJmp(jmp148, label474);
  2760. endJmp(jmp151, label474);
  2761. endJmp(jmp152, label474);
  2762. endJmp(jmp155, label474);
  2763. endJmp(jmp156, label474);
  2764. //currSp();//SP[2540]
  2765. incSp();
  2766. auto tmp631 = genTemporary(BCType(BCTypeEnum.String));//SP[2544]
  2767. Set(tmp631, BCValue(Imm32(184)));
  2768. auto tmp632 = genTemporary(BCType(BCTypeEnum.String));//SP[2548]
  2769. Set(tmp632, BCValue(Imm32(188)));
  2770. auto tmp633 = genTemporary(BCType(BCTypeEnum.String));//SP[2552]
  2771. Set(tmp633, BCValue(Imm32(192)));
  2772. auto tmp634 = genTemporary(BCType(BCTypeEnum.i32));//SP[2556]
  2773. auto tmp635 = genTemporary(BCType(BCTypeEnum.i32));//SP[2560]
  2774. Set(tmp634, BCValue(Imm32(0)));
  2775. auto tmp636 = genTemporary(BCType(BCTypeEnum.i32));//SP[2564]
  2776. auto tmp637 = genTemporary(BCType(BCTypeEnum.i32));//SP[2568]
  2777. Load32(tmp637, tmp632);
  2778. auto tmp638 = genTemporary(BCType(BCTypeEnum.i32));//SP[2572]
  2779. Load32(tmp638, tmp633);
  2780. Eq3(tmp636, tmp637, tmp638);
  2781. auto cndJmp157 = beginCndJmp(tmp636);
  2782. auto label475 = genLabel();
  2783. Set(tmp634, BCValue(Imm32(1)));
  2784. Load32(tmp635, tmp632);
  2785. auto label476 = genLabel();
  2786. auto tmp639 = genTemporary(BCType(BCTypeEnum.i32));//SP[2576]
  2787. Set(tmp639, tmp635);
  2788. Sub3(tmp635, tmp635, BCValue(Imm32(1)));
  2789. auto cndJmp158 = beginCndJmp(tmp639);
  2790. auto label477 = genLabel();
  2791. auto tmp640 = genTemporary(BCType(BCTypeEnum.i32));//SP[2580]
  2792. auto tmp641 = genTemporary(BCType(BCTypeEnum.i32));//SP[2584]
  2793. Add3(tmp641, tmp632, BCValue(Imm32(1)));
  2794. auto tmp642 = genTemporary(BCType(BCTypeEnum.Char));//SP[2588]
  2795. auto tmp643 = genTemporary(BCType(BCTypeEnum.i32));//SP[2592]
  2796. auto tmp644 = genTemporary(BCType(BCTypeEnum.i32));//SP[2596]
  2797. Mod3(tmp644, tmp635, BCValue(Imm32(4)));
  2798. Div3(tmp643, tmp635, BCValue(Imm32(4)));
  2799. Add3(tmp641, tmp641, tmp643);
  2800. Load32(tmp642, tmp641);
  2801. Byte3(tmp642, tmp642, tmp644);
  2802. auto tmp645 = genTemporary(BCType(BCTypeEnum.i32));//SP[2600]
  2803. Add3(tmp645, tmp633, BCValue(Imm32(1)));
  2804. auto tmp646 = genTemporary(BCType(BCTypeEnum.Char));//SP[2604]
  2805. auto tmp647 = genTemporary(BCType(BCTypeEnum.i32));//SP[2608]
  2806. auto tmp648 = genTemporary(BCType(BCTypeEnum.i32));//SP[2612]
  2807. Mod3(tmp648, tmp635, BCValue(Imm32(4)));
  2808. Div3(tmp647, tmp635, BCValue(Imm32(4)));
  2809. Add3(tmp645, tmp645, tmp647);
  2810. Load32(tmp646, tmp645);
  2811. Byte3(tmp646, tmp646, tmp648);
  2812. Neq3(tmp640, tmp642, tmp646);
  2813. auto cndJmp159 = beginCndJmp(tmp640);
  2814. auto label478 = genLabel();
  2815. Set(tmp634, BCValue(Imm32(0)));
  2816. auto jmp157 = beginJmp();
  2817. auto label479 = genLabel();
  2818. endJmp(jmp157, label479);
  2819. auto jmp158 = beginJmp();
  2820. auto label480 = genLabel();
  2821. endJmp(jmp158, label480);
  2822. endCndJmp(cndJmp159, label480);
  2823. auto label481 = genLabel();
  2824. genJump(label476);
  2825. auto label482 = genLabel();
  2826. endCndJmp(cndJmp158, label482);
  2827. auto label483 = genLabel();
  2828. endCndJmp(cndJmp157, label483);
  2829. Eq3(BCValue.init, tmp634, BCValue(Imm32(1)));
  2830. auto cndJmp160 = beginCndJmp();
  2831. auto label484 = genLabel();
  2832. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(1)));
  2833. auto jmp159 = beginJmp();
  2834. auto label485 = genLabel();
  2835. auto jmp160 = beginJmp();
  2836. auto label486 = genLabel();
  2837. endCndJmp(cndJmp160, label486);
  2838. auto tmp649 = genTemporary(BCType(BCTypeEnum.String));//SP[2616]
  2839. Set(tmp649, BCValue(Imm32(196)));
  2840. auto tmp650 = genTemporary(BCType(BCTypeEnum.i32));//SP[2620]
  2841. auto tmp651 = genTemporary(BCType(BCTypeEnum.i32));//SP[2624]
  2842. Set(tmp650, BCValue(Imm32(0)));
  2843. auto tmp652 = genTemporary(BCType(BCTypeEnum.i32));//SP[2628]
  2844. auto tmp653 = genTemporary(BCType(BCTypeEnum.i32));//SP[2632]
  2845. Load32(tmp653, tmp632);
  2846. auto tmp654 = genTemporary(BCType(BCTypeEnum.i32));//SP[2636]
  2847. Load32(tmp654, tmp649);
  2848. Eq3(tmp652, tmp653, tmp654);
  2849. auto cndJmp161 = beginCndJmp(tmp652);
  2850. auto label487 = genLabel();
  2851. Set(tmp650, BCValue(Imm32(1)));
  2852. Load32(tmp651, tmp632);
  2853. auto label488 = genLabel();
  2854. auto tmp655 = genTemporary(BCType(BCTypeEnum.i32));//SP[2640]
  2855. Set(tmp655, tmp651);
  2856. Sub3(tmp651, tmp651, BCValue(Imm32(1)));
  2857. auto cndJmp162 = beginCndJmp(tmp655);
  2858. auto label489 = genLabel();
  2859. auto tmp656 = genTemporary(BCType(BCTypeEnum.i32));//SP[2644]
  2860. auto tmp657 = genTemporary(BCType(BCTypeEnum.i32));//SP[2648]
  2861. Add3(tmp657, tmp632, BCValue(Imm32(1)));
  2862. auto tmp658 = genTemporary(BCType(BCTypeEnum.Char));//SP[2652]
  2863. auto tmp659 = genTemporary(BCType(BCTypeEnum.i32));//SP[2656]
  2864. auto tmp660 = genTemporary(BCType(BCTypeEnum.i32));//SP[2660]
  2865. Mod3(tmp660, tmp651, BCValue(Imm32(4)));
  2866. Div3(tmp659, tmp651, BCValue(Imm32(4)));
  2867. Add3(tmp657, tmp657, tmp659);
  2868. Load32(tmp658, tmp657);
  2869. Byte3(tmp658, tmp658, tmp660);
  2870. auto tmp661 = genTemporary(BCType(BCTypeEnum.i32));//SP[2664]
  2871. Add3(tmp661, tmp649, BCValue(Imm32(1)));
  2872. auto tmp662 = genTemporary(BCType(BCTypeEnum.Char));//SP[2668]
  2873. auto tmp663 = genTemporary(BCType(BCTypeEnum.i32));//SP[2672]
  2874. auto tmp664 = genTemporary(BCType(BCTypeEnum.i32));//SP[2676]
  2875. Mod3(tmp664, tmp651, BCValue(Imm32(4)));
  2876. Div3(tmp663, tmp651, BCValue(Imm32(4)));
  2877. Add3(tmp661, tmp661, tmp663);
  2878. Load32(tmp662, tmp661);
  2879. Byte3(tmp662, tmp662, tmp664);
  2880. Neq3(tmp656, tmp658, tmp662);
  2881. auto cndJmp163 = beginCndJmp(tmp656);
  2882. auto label490 = genLabel();
  2883. Set(tmp650, BCValue(Imm32(0)));
  2884. auto jmp161 = beginJmp();
  2885. auto label491 = genLabel();
  2886. endJmp(jmp161, label491);
  2887. auto jmp162 = beginJmp();
  2888. auto label492 = genLabel();
  2889. endJmp(jmp162, label492);
  2890. endCndJmp(cndJmp163, label492);
  2891. auto label493 = genLabel();
  2892. genJump(label488);
  2893. auto label494 = genLabel();
  2894. endCndJmp(cndJmp162, label494);
  2895. auto label495 = genLabel();
  2896. endCndJmp(cndJmp161, label495);
  2897. Eq3(BCValue.init, tmp650, BCValue(Imm32(1)));
  2898. auto cndJmp164 = beginCndJmp();
  2899. auto label496 = genLabel();
  2900. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(2)));
  2901. auto jmp163 = beginJmp();
  2902. auto label497 = genLabel();
  2903. auto jmp164 = beginJmp();
  2904. auto label498 = genLabel();
  2905. endCndJmp(cndJmp164, label498);
  2906. auto tmp665 = genTemporary(BCType(BCTypeEnum.String));//SP[2680]
  2907. Set(tmp665, BCValue(Imm32(200)));
  2908. auto tmp666 = genTemporary(BCType(BCTypeEnum.i32));//SP[2684]
  2909. auto tmp667 = genTemporary(BCType(BCTypeEnum.i32));//SP[2688]
  2910. Set(tmp666, BCValue(Imm32(0)));
  2911. auto tmp668 = genTemporary(BCType(BCTypeEnum.i32));//SP[2692]
  2912. auto tmp669 = genTemporary(BCType(BCTypeEnum.i32));//SP[2696]
  2913. Load32(tmp669, tmp632);
  2914. auto tmp670 = genTemporary(BCType(BCTypeEnum.i32));//SP[2700]
  2915. Load32(tmp670, tmp665);
  2916. Eq3(tmp668, tmp669, tmp670);
  2917. auto cndJmp165 = beginCndJmp(tmp668);
  2918. auto label499 = genLabel();
  2919. Set(tmp666, BCValue(Imm32(1)));
  2920. Load32(tmp667, tmp632);
  2921. auto label500 = genLabel();
  2922. auto tmp671 = genTemporary(BCType(BCTypeEnum.i32));//SP[2704]
  2923. Set(tmp671, tmp667);
  2924. Sub3(tmp667, tmp667, BCValue(Imm32(1)));
  2925. auto cndJmp166 = beginCndJmp(tmp671);
  2926. auto label501 = genLabel();
  2927. auto tmp672 = genTemporary(BCType(BCTypeEnum.i32));//SP[2708]
  2928. auto tmp673 = genTemporary(BCType(BCTypeEnum.i32));//SP[2712]
  2929. Add3(tmp673, tmp632, BCValue(Imm32(1)));
  2930. auto tmp674 = genTemporary(BCType(BCTypeEnum.Char));//SP[2716]
  2931. auto tmp675 = genTemporary(BCType(BCTypeEnum.i32));//SP[2720]
  2932. auto tmp676 = genTemporary(BCType(BCTypeEnum.i32));//SP[2724]
  2933. Mod3(tmp676, tmp667, BCValue(Imm32(4)));
  2934. Div3(tmp675, tmp667, BCValue(Imm32(4)));
  2935. Add3(tmp673, tmp673, tmp675);
  2936. Load32(tmp674, tmp673);
  2937. Byte3(tmp674, tmp674, tmp676);
  2938. auto tmp677 = genTemporary(BCType(BCTypeEnum.i32));//SP[2728]
  2939. Add3(tmp677, tmp665, BCValue(Imm32(1)));
  2940. auto tmp678 = genTemporary(BCType(BCTypeEnum.Char));//SP[2732]
  2941. auto tmp679 = genTemporary(BCType(BCTypeEnum.i32));//SP[2736]
  2942. auto tmp680 = genTemporary(BCType(BCTypeEnum.i32));//SP[2740]
  2943. Mod3(tmp680, tmp667, BCValue(Imm32(4)));
  2944. Div3(tmp679, tmp667, BCValue(Imm32(4)));
  2945. Add3(tmp677, tmp677, tmp679);
  2946. Load32(tmp678, tmp677);
  2947. Byte3(tmp678, tmp678, tmp680);
  2948. Neq3(tmp672, tmp674, tmp678);
  2949. auto cndJmp167 = beginCndJmp(tmp672);
  2950. auto label502 = genLabel();
  2951. Set(tmp666, BCValue(Imm32(0)));
  2952. auto jmp165 = beginJmp();
  2953. auto label503 = genLabel();
  2954. endJmp(jmp165, label503);
  2955. auto jmp166 = beginJmp();
  2956. auto label504 = genLabel();
  2957. endJmp(jmp166, label504);
  2958. endCndJmp(cndJmp167, label504);
  2959. auto label505 = genLabel();
  2960. genJump(label500);
  2961. auto label506 = genLabel();
  2962. endCndJmp(cndJmp166, label506);
  2963. auto label507 = genLabel();
  2964. endCndJmp(cndJmp165, label507);
  2965. Eq3(BCValue.init, tmp666, BCValue(Imm32(1)));
  2966. auto cndJmp168 = beginCndJmp();
  2967. auto label508 = genLabel();
  2968. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(4)));
  2969. auto jmp167 = beginJmp();
  2970. auto label509 = genLabel();
  2971. auto jmp168 = beginJmp();
  2972. auto label510 = genLabel();
  2973. endCndJmp(cndJmp168, label510);
  2974. auto tmp681 = genTemporary(BCType(BCTypeEnum.String));//SP[2744]
  2975. Set(tmp681, BCValue(Imm32(204)));
  2976. auto tmp682 = genTemporary(BCType(BCTypeEnum.i32));//SP[2748]
  2977. auto tmp683 = genTemporary(BCType(BCTypeEnum.i32));//SP[2752]
  2978. Set(tmp682, BCValue(Imm32(0)));
  2979. auto tmp684 = genTemporary(BCType(BCTypeEnum.i32));//SP[2756]
  2980. auto tmp685 = genTemporary(BCType(BCTypeEnum.i32));//SP[2760]
  2981. Load32(tmp685, tmp632);
  2982. auto tmp686 = genTemporary(BCType(BCTypeEnum.i32));//SP[2764]
  2983. Load32(tmp686, tmp681);
  2984. Eq3(tmp684, tmp685, tmp686);
  2985. auto cndJmp169 = beginCndJmp(tmp684);
  2986. auto label511 = genLabel();
  2987. Set(tmp682, BCValue(Imm32(1)));
  2988. Load32(tmp683, tmp632);
  2989. auto label512 = genLabel();
  2990. auto tmp687 = genTemporary(BCType(BCTypeEnum.i32));//SP[2768]
  2991. Set(tmp687, tmp683);
  2992. Sub3(tmp683, tmp683, BCValue(Imm32(1)));
  2993. auto cndJmp170 = beginCndJmp(tmp687);
  2994. auto label513 = genLabel();
  2995. auto tmp688 = genTemporary(BCType(BCTypeEnum.i32));//SP[2772]
  2996. auto tmp689 = genTemporary(BCType(BCTypeEnum.i32));//SP[2776]
  2997. Add3(tmp689, tmp632, BCValue(Imm32(1)));
  2998. auto tmp690 = genTemporary(BCType(BCTypeEnum.Char));//SP[2780]
  2999. auto tmp691 = genTemporary(BCType(BCTypeEnum.i32));//SP[2784]
  3000. auto tmp692 = genTemporary(BCType(BCTypeEnum.i32));//SP[2788]
  3001. Mod3(tmp692, tmp683, BCValue(Imm32(4)));
  3002. Div3(tmp691, tmp683, BCValue(Imm32(4)));
  3003. Add3(tmp689, tmp689, tmp691);
  3004. Load32(tmp690, tmp689);
  3005. Byte3(tmp690, tmp690, tmp692);
  3006. auto tmp693 = genTemporary(BCType(BCTypeEnum.i32));//SP[2792]
  3007. Add3(tmp693, tmp681, BCValue(Imm32(1)));
  3008. auto tmp694 = genTemporary(BCType(BCTypeEnum.Char));//SP[2796]
  3009. auto tmp695 = genTemporary(BCType(BCTypeEnum.i32));//SP[2800]
  3010. auto tmp696 = genTemporary(BCType(BCTypeEnum.i32));//SP[2804]
  3011. Mod3(tmp696, tmp683, BCValue(Imm32(4)));
  3012. Div3(tmp695, tmp683, BCValue(Imm32(4)));
  3013. Add3(tmp693, tmp693, tmp695);
  3014. Load32(tmp694, tmp693);
  3015. Byte3(tmp694, tmp694, tmp696);
  3016. Neq3(tmp688, tmp690, tmp694);
  3017. auto cndJmp171 = beginCndJmp(tmp688);
  3018. auto label514 = genLabel();
  3019. Set(tmp682, BCValue(Imm32(0)));
  3020. auto jmp169 = beginJmp();
  3021. auto label515 = genLabel();
  3022. endJmp(jmp169, label515);
  3023. auto jmp170 = beginJmp();
  3024. auto label516 = genLabel();
  3025. endJmp(jmp170, label516);
  3026. endCndJmp(cndJmp171, label516);
  3027. auto label517 = genLabel();
  3028. genJump(label512);
  3029. auto label518 = genLabel();
  3030. endCndJmp(cndJmp170, label518);
  3031. auto label519 = genLabel();
  3032. endCndJmp(cndJmp169, label519);
  3033. Eq3(BCValue.init, tmp682, BCValue(Imm32(1)));
  3034. auto cndJmp172 = beginCndJmp();
  3035. auto label520 = genLabel();
  3036. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(8)));
  3037. auto jmp171 = beginJmp();
  3038. auto label521 = genLabel();
  3039. auto jmp172 = beginJmp();
  3040. auto label522 = genLabel();
  3041. endCndJmp(cndJmp172, label522);
  3042. auto tmp697 = genTemporary(BCType(BCTypeEnum.String));//SP[2808]
  3043. Set(tmp697, BCValue(Imm32(208)));
  3044. auto tmp698 = genTemporary(BCType(BCTypeEnum.i32));//SP[2812]
  3045. auto tmp699 = genTemporary(BCType(BCTypeEnum.i32));//SP[2816]
  3046. Set(tmp698, BCValue(Imm32(0)));
  3047. auto tmp700 = genTemporary(BCType(BCTypeEnum.i32));//SP[2820]
  3048. auto tmp701 = genTemporary(BCType(BCTypeEnum.i32));//SP[2824]
  3049. Load32(tmp701, tmp632);
  3050. auto tmp702 = genTemporary(BCType(BCTypeEnum.i32));//SP[2828]
  3051. Load32(tmp702, tmp697);
  3052. Eq3(tmp700, tmp701, tmp702);
  3053. auto cndJmp173 = beginCndJmp(tmp700);
  3054. auto label523 = genLabel();
  3055. Set(tmp698, BCValue(Imm32(1)));
  3056. Load32(tmp699, tmp632);
  3057. auto label524 = genLabel();
  3058. auto tmp703 = genTemporary(BCType(BCTypeEnum.i32));//SP[2832]
  3059. Set(tmp703, tmp699);
  3060. Sub3(tmp699, tmp699, BCValue(Imm32(1)));
  3061. auto cndJmp174 = beginCndJmp(tmp703);
  3062. auto label525 = genLabel();
  3063. auto tmp704 = genTemporary(BCType(BCTypeEnum.i32));//SP[2836]
  3064. auto tmp705 = genTemporary(BCType(BCTypeEnum.i32));//SP[2840]
  3065. Add3(tmp705, tmp632, BCValue(Imm32(1)));
  3066. auto tmp706 = genTemporary(BCType(BCTypeEnum.Char));//SP[2844]
  3067. auto tmp707 = genTemporary(BCType(BCTypeEnum.i32));//SP[2848]
  3068. auto tmp708 = genTemporary(BCType(BCTypeEnum.i32));//SP[2852]
  3069. Mod3(tmp708, tmp699, BCValue(Imm32(4)));
  3070. Div3(tmp707, tmp699, BCValue(Imm32(4)));
  3071. Add3(tmp705, tmp705, tmp707);
  3072. Load32(tmp706, tmp705);
  3073. Byte3(tmp706, tmp706, tmp708);
  3074. auto tmp709 = genTemporary(BCType(BCTypeEnum.i32));//SP[2856]
  3075. Add3(tmp709, tmp697, BCValue(Imm32(1)));
  3076. auto tmp710 = genTemporary(BCType(BCTypeEnum.Char));//SP[2860]
  3077. auto tmp711 = genTemporary(BCType(BCTypeEnum.i32));//SP[2864]
  3078. auto tmp712 = genTemporary(BCType(BCTypeEnum.i32));//SP[2868]
  3079. Mod3(tmp712, tmp699, BCValue(Imm32(4)));
  3080. Div3(tmp711, tmp699, BCValue(Imm32(4)));
  3081. Add3(tmp709, tmp709, tmp711);
  3082. Load32(tmp710, tmp709);
  3083. Byte3(tmp710, tmp710, tmp712);
  3084. Neq3(tmp704, tmp706, tmp710);
  3085. auto cndJmp175 = beginCndJmp(tmp704);
  3086. auto label526 = genLabel();
  3087. Set(tmp698, BCValue(Imm32(0)));
  3088. auto jmp173 = beginJmp();
  3089. auto label527 = genLabel();
  3090. endJmp(jmp173, label527);
  3091. auto jmp174 = beginJmp();
  3092. auto label528 = genLabel();
  3093. endJmp(jmp174, label528);
  3094. endCndJmp(cndJmp175, label528);
  3095. auto label529 = genLabel();
  3096. genJump(label524);
  3097. auto label530 = genLabel();
  3098. endCndJmp(cndJmp174, label530);
  3099. auto label531 = genLabel();
  3100. endCndJmp(cndJmp173, label531);
  3101. Eq3(BCValue.init, tmp698, BCValue(Imm32(1)));
  3102. auto cndJmp176 = beginCndJmp();
  3103. auto label532 = genLabel();
  3104. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(16)));
  3105. auto jmp175 = beginJmp();
  3106. auto label533 = genLabel();
  3107. auto jmp176 = beginJmp();
  3108. auto label534 = genLabel();
  3109. endCndJmp(cndJmp176, label534);
  3110. auto tmp713 = genTemporary(BCType(BCTypeEnum.String));//SP[2872]
  3111. Set(tmp713, BCValue(Imm32(212)));
  3112. auto tmp714 = genTemporary(BCType(BCTypeEnum.i32));//SP[2876]
  3113. auto tmp715 = genTemporary(BCType(BCTypeEnum.i32));//SP[2880]
  3114. Set(tmp714, BCValue(Imm32(0)));
  3115. auto tmp716 = genTemporary(BCType(BCTypeEnum.i32));//SP[2884]
  3116. auto tmp717 = genTemporary(BCType(BCTypeEnum.i32));//SP[2888]
  3117. Load32(tmp717, tmp632);
  3118. auto tmp718 = genTemporary(BCType(BCTypeEnum.i32));//SP[2892]
  3119. Load32(tmp718, tmp713);
  3120. Eq3(tmp716, tmp717, tmp718);
  3121. auto cndJmp177 = beginCndJmp(tmp716);
  3122. auto label535 = genLabel();
  3123. Set(tmp714, BCValue(Imm32(1)));
  3124. Load32(tmp715, tmp632);
  3125. auto label536 = genLabel();
  3126. auto tmp719 = genTemporary(BCType(BCTypeEnum.i32));//SP[2896]
  3127. Set(tmp719, tmp715);
  3128. Sub3(tmp715, tmp715, BCValue(Imm32(1)));
  3129. auto cndJmp178 = beginCndJmp(tmp719);
  3130. auto label537 = genLabel();
  3131. auto tmp720 = genTemporary(BCType(BCTypeEnum.i32));//SP[2900]
  3132. auto tmp721 = genTemporary(BCType(BCTypeEnum.i32));//SP[2904]
  3133. Add3(tmp721, tmp632, BCValue(Imm32(1)));
  3134. auto tmp722 = genTemporary(BCType(BCTypeEnum.Char));//SP[2908]
  3135. auto tmp723 = genTemporary(BCType(BCTypeEnum.i32));//SP[2912]
  3136. auto tmp724 = genTemporary(BCType(BCTypeEnum.i32));//SP[2916]
  3137. Mod3(tmp724, tmp715, BCValue(Imm32(4)));
  3138. Div3(tmp723, tmp715, BCValue(Imm32(4)));
  3139. Add3(tmp721, tmp721, tmp723);
  3140. Load32(tmp722, tmp721);
  3141. Byte3(tmp722, tmp722, tmp724);
  3142. auto tmp725 = genTemporary(BCType(BCTypeEnum.i32));//SP[2920]
  3143. Add3(tmp725, tmp713, BCValue(Imm32(1)));
  3144. auto tmp726 = genTemporary(BCType(BCTypeEnum.Char));//SP[2924]
  3145. auto tmp727 = genTemporary(BCType(BCTypeEnum.i32));//SP[2928]
  3146. auto tmp728 = genTemporary(BCType(BCTypeEnum.i32));//SP[2932]
  3147. Mod3(tmp728, tmp715, BCValue(Imm32(4)));
  3148. Div3(tmp727, tmp715, BCValue(Imm32(4)));
  3149. Add3(tmp725, tmp725, tmp727);
  3150. Load32(tmp726, tmp725);
  3151. Byte3(tmp726, tmp726, tmp728);
  3152. Neq3(tmp720, tmp722, tmp726);
  3153. auto cndJmp179 = beginCndJmp(tmp720);
  3154. auto label538 = genLabel();
  3155. Set(tmp714, BCValue(Imm32(0)));
  3156. auto jmp177 = beginJmp();
  3157. auto label539 = genLabel();
  3158. endJmp(jmp177, label539);
  3159. auto jmp178 = beginJmp();
  3160. auto label540 = genLabel();
  3161. endJmp(jmp178, label540);
  3162. endCndJmp(cndJmp179, label540);
  3163. auto label541 = genLabel();
  3164. genJump(label536);
  3165. auto label542 = genLabel();
  3166. endCndJmp(cndJmp178, label542);
  3167. auto label543 = genLabel();
  3168. endCndJmp(cndJmp177, label543);
  3169. Eq3(BCValue.init, tmp714, BCValue(Imm32(1)));
  3170. auto cndJmp180 = beginCndJmp();
  3171. auto label544 = genLabel();
  3172. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(32)));
  3173. auto jmp179 = beginJmp();
  3174. auto label545 = genLabel();
  3175. auto jmp180 = beginJmp();
  3176. auto label546 = genLabel();
  3177. endCndJmp(cndJmp180, label546);
  3178. auto tmp729 = genTemporary(BCType(BCTypeEnum.String));//SP[2936]
  3179. Set(tmp729, BCValue(Imm32(216)));
  3180. auto tmp730 = genTemporary(BCType(BCTypeEnum.i32));//SP[2940]
  3181. auto tmp731 = genTemporary(BCType(BCTypeEnum.i32));//SP[2944]
  3182. Set(tmp730, BCValue(Imm32(0)));
  3183. auto tmp732 = genTemporary(BCType(BCTypeEnum.i32));//SP[2948]
  3184. auto tmp733 = genTemporary(BCType(BCTypeEnum.i32));//SP[2952]
  3185. Load32(tmp733, tmp632);
  3186. auto tmp734 = genTemporary(BCType(BCTypeEnum.i32));//SP[2956]
  3187. Load32(tmp734, tmp729);
  3188. Eq3(tmp732, tmp733, tmp734);
  3189. auto cndJmp181 = beginCndJmp(tmp732);
  3190. auto label547 = genLabel();
  3191. Set(tmp730, BCValue(Imm32(1)));
  3192. Load32(tmp731, tmp632);
  3193. auto label548 = genLabel();
  3194. auto tmp735 = genTemporary(BCType(BCTypeEnum.i32));//SP[2960]
  3195. Set(tmp735, tmp731);
  3196. Sub3(tmp731, tmp731, BCValue(Imm32(1)));
  3197. auto cndJmp182 = beginCndJmp(tmp735);
  3198. auto label549 = genLabel();
  3199. auto tmp736 = genTemporary(BCType(BCTypeEnum.i32));//SP[2964]
  3200. auto tmp737 = genTemporary(BCType(BCTypeEnum.i32));//SP[2968]
  3201. Add3(tmp737, tmp632, BCValue(Imm32(1)));
  3202. auto tmp738 = genTemporary(BCType(BCTypeEnum.Char));//SP[2972]
  3203. auto tmp739 = genTemporary(BCType(BCTypeEnum.i32));//SP[2976]
  3204. auto tmp740 = genTemporary(BCType(BCTypeEnum.i32));//SP[2980]
  3205. Mod3(tmp740, tmp731, BCValue(Imm32(4)));
  3206. Div3(tmp739, tmp731, BCValue(Imm32(4)));
  3207. Add3(tmp737, tmp737, tmp739);
  3208. Load32(tmp738, tmp737);
  3209. Byte3(tmp738, tmp738, tmp740);
  3210. auto tmp741 = genTemporary(BCType(BCTypeEnum.i32));//SP[2984]
  3211. Add3(tmp741, tmp729, BCValue(Imm32(1)));
  3212. auto tmp742 = genTemporary(BCType(BCTypeEnum.Char));//SP[2988]
  3213. auto tmp743 = genTemporary(BCType(BCTypeEnum.i32));//SP[2992]
  3214. auto tmp744 = genTemporary(BCType(BCTypeEnum.i32));//SP[2996]
  3215. Mod3(tmp744, tmp731, BCValue(Imm32(4)));
  3216. Div3(tmp743, tmp731, BCValue(Imm32(4)));
  3217. Add3(tmp741, tmp741, tmp743);
  3218. Load32(tmp742, tmp741);
  3219. Byte3(tmp742, tmp742, tmp744);
  3220. Neq3(tmp736, tmp738, tmp742);
  3221. auto cndJmp183 = beginCndJmp(tmp736);
  3222. auto label550 = genLabel();
  3223. Set(tmp730, BCValue(Imm32(0)));
  3224. auto jmp181 = beginJmp();
  3225. auto label551 = genLabel();
  3226. endJmp(jmp181, label551);
  3227. auto jmp182 = beginJmp();
  3228. auto label552 = genLabel();
  3229. endJmp(jmp182, label552);
  3230. endCndJmp(cndJmp183, label552);
  3231. auto label553 = genLabel();
  3232. genJump(label548);
  3233. auto label554 = genLabel();
  3234. endCndJmp(cndJmp182, label554);
  3235. auto label555 = genLabel();
  3236. endCndJmp(cndJmp181, label555);
  3237. Eq3(BCValue.init, tmp730, BCValue(Imm32(1)));
  3238. auto cndJmp184 = beginCndJmp();
  3239. auto label556 = genLabel();
  3240. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(64)));
  3241. auto jmp183 = beginJmp();
  3242. auto label557 = genLabel();
  3243. auto jmp184 = beginJmp();
  3244. auto label558 = genLabel();
  3245. endCndJmp(cndJmp184, label558);
  3246. auto tmp745 = genTemporary(BCType(BCTypeEnum.String));//SP[3000]
  3247. Set(tmp745, BCValue(Imm32(220)));
  3248. auto tmp746 = genTemporary(BCType(BCTypeEnum.i32));//SP[3004]
  3249. auto tmp747 = genTemporary(BCType(BCTypeEnum.i32));//SP[3008]
  3250. Set(tmp746, BCValue(Imm32(0)));
  3251. auto tmp748 = genTemporary(BCType(BCTypeEnum.i32));//SP[3012]
  3252. auto tmp749 = genTemporary(BCType(BCTypeEnum.i32));//SP[3016]
  3253. Load32(tmp749, tmp632);
  3254. auto tmp750 = genTemporary(BCType(BCTypeEnum.i32));//SP[3020]
  3255. Load32(tmp750, tmp745);
  3256. Eq3(tmp748, tmp749, tmp750);
  3257. auto cndJmp185 = beginCndJmp(tmp748);
  3258. auto label559 = genLabel();
  3259. Set(tmp746, BCValue(Imm32(1)));
  3260. Load32(tmp747, tmp632);
  3261. auto label560 = genLabel();
  3262. auto tmp751 = genTemporary(BCType(BCTypeEnum.i32));//SP[3024]
  3263. Set(tmp751, tmp747);
  3264. Sub3(tmp747, tmp747, BCValue(Imm32(1)));
  3265. auto cndJmp186 = beginCndJmp(tmp751);
  3266. auto label561 = genLabel();
  3267. auto tmp752 = genTemporary(BCType(BCTypeEnum.i32));//SP[3028]
  3268. auto tmp753 = genTemporary(BCType(BCTypeEnum.i32));//SP[3032]
  3269. Add3(tmp753, tmp632, BCValue(Imm32(1)));
  3270. auto tmp754 = genTemporary(BCType(BCTypeEnum.Char));//SP[3036]
  3271. auto tmp755 = genTemporary(BCType(BCTypeEnum.i32));//SP[3040]
  3272. auto tmp756 = genTemporary(BCType(BCTypeEnum.i32));//SP[3044]
  3273. Mod3(tmp756, tmp747, BCValue(Imm32(4)));
  3274. Div3(tmp755, tmp747, BCValue(Imm32(4)));
  3275. Add3(tmp753, tmp753, tmp755);
  3276. Load32(tmp754, tmp753);
  3277. Byte3(tmp754, tmp754, tmp756);
  3278. auto tmp757 = genTemporary(BCType(BCTypeEnum.i32));//SP[3048]
  3279. Add3(tmp757, tmp745, BCValue(Imm32(1)));
  3280. auto tmp758 = genTemporary(BCType(BCTypeEnum.Char));//SP[3052]
  3281. auto tmp759 = genTemporary(BCType(BCTypeEnum.i32));//SP[3056]
  3282. auto tmp760 = genTemporary(BCType(BCTypeEnum.i32));//SP[3060]
  3283. Mod3(tmp760, tmp747, BCValue(Imm32(4)));
  3284. Div3(tmp759, tmp747, BCValue(Imm32(4)));
  3285. Add3(tmp757, tmp757, tmp759);
  3286. Load32(tmp758, tmp757);
  3287. Byte3(tmp758, tmp758, tmp760);
  3288. Neq3(tmp752, tmp754, tmp758);
  3289. auto cndJmp187 = beginCndJmp(tmp752);
  3290. auto label562 = genLabel();
  3291. Set(tmp746, BCValue(Imm32(0)));
  3292. auto jmp185 = beginJmp();
  3293. auto label563 = genLabel();
  3294. endJmp(jmp185, label563);
  3295. auto jmp186 = beginJmp();
  3296. auto label564 = genLabel();
  3297. endJmp(jmp186, label564);
  3298. endCndJmp(cndJmp187, label564);
  3299. auto label565 = genLabel();
  3300. genJump(label560);
  3301. auto label566 = genLabel();
  3302. endCndJmp(cndJmp186, label566);
  3303. auto label567 = genLabel();
  3304. endCndJmp(cndJmp185, label567);
  3305. Eq3(BCValue.init, tmp746, BCValue(Imm32(1)));
  3306. auto cndJmp188 = beginCndJmp();
  3307. auto label568 = genLabel();
  3308. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(128)));
  3309. auto jmp187 = beginJmp();
  3310. auto label569 = genLabel();
  3311. auto jmp188 = beginJmp();
  3312. auto label570 = genLabel();
  3313. endCndJmp(cndJmp188, label570);
  3314. auto tmp761 = genTemporary(BCType(BCTypeEnum.String));//SP[3064]
  3315. Set(tmp761, BCValue(Imm32(224)));
  3316. auto tmp762 = genTemporary(BCType(BCTypeEnum.i32));//SP[3068]
  3317. auto tmp763 = genTemporary(BCType(BCTypeEnum.i32));//SP[3072]
  3318. Set(tmp762, BCValue(Imm32(0)));
  3319. auto tmp764 = genTemporary(BCType(BCTypeEnum.i32));//SP[3076]
  3320. auto tmp765 = genTemporary(BCType(BCTypeEnum.i32));//SP[3080]
  3321. Load32(tmp765, tmp632);
  3322. auto tmp766 = genTemporary(BCType(BCTypeEnum.i32));//SP[3084]
  3323. Load32(tmp766, tmp761);
  3324. Eq3(tmp764, tmp765, tmp766);
  3325. auto cndJmp189 = beginCndJmp(tmp764);
  3326. auto label571 = genLabel();
  3327. Set(tmp762, BCValue(Imm32(1)));
  3328. Load32(tmp763, tmp632);
  3329. auto label572 = genLabel();
  3330. auto tmp767 = genTemporary(BCType(BCTypeEnum.i32));//SP[3088]
  3331. Set(tmp767, tmp763);
  3332. Sub3(tmp763, tmp763, BCValue(Imm32(1)));
  3333. auto cndJmp190 = beginCndJmp(tmp767);
  3334. auto label573 = genLabel();
  3335. auto tmp768 = genTemporary(BCType(BCTypeEnum.i32));//SP[3092]
  3336. auto tmp769 = genTemporary(BCType(BCTypeEnum.i32));//SP[3096]
  3337. Add3(tmp769, tmp632, BCValue(Imm32(1)));
  3338. auto tmp770 = genTemporary(BCType(BCTypeEnum.Char));//SP[3100]
  3339. auto tmp771 = genTemporary(BCType(BCTypeEnum.i32));//SP[3104]
  3340. auto tmp772 = genTemporary(BCType(BCTypeEnum.i32));//SP[3108]
  3341. Mod3(tmp772, tmp763, BCValue(Imm32(4)));
  3342. Div3(tmp771, tmp763, BCValue(Imm32(4)));
  3343. Add3(tmp769, tmp769, tmp771);
  3344. Load32(tmp770, tmp769);
  3345. Byte3(tmp770, tmp770, tmp772);
  3346. auto tmp773 = genTemporary(BCType(BCTypeEnum.i32));//SP[3112]
  3347. Add3(tmp773, tmp761, BCValue(Imm32(1)));
  3348. auto tmp774 = genTemporary(BCType(BCTypeEnum.Char));//SP[3116]
  3349. auto tmp775 = genTemporary(BCType(BCTypeEnum.i32));//SP[3120]
  3350. auto tmp776 = genTemporary(BCType(BCTypeEnum.i32));//SP[3124]
  3351. Mod3(tmp776, tmp763, BCValue(Imm32(4)));
  3352. Div3(tmp775, tmp763, BCValue(Imm32(4)));
  3353. Add3(tmp773, tmp773, tmp775);
  3354. Load32(tmp774, tmp773);
  3355. Byte3(tmp774, tmp774, tmp776);
  3356. Neq3(tmp768, tmp770, tmp774);
  3357. auto cndJmp191 = beginCndJmp(tmp768);
  3358. auto label574 = genLabel();
  3359. Set(tmp762, BCValue(Imm32(0)));
  3360. auto jmp189 = beginJmp();
  3361. auto label575 = genLabel();
  3362. endJmp(jmp189, label575);
  3363. auto jmp190 = beginJmp();
  3364. auto label576 = genLabel();
  3365. endJmp(jmp190, label576);
  3366. endCndJmp(cndJmp191, label576);
  3367. auto label577 = genLabel();
  3368. genJump(label572);
  3369. auto label578 = genLabel();
  3370. endCndJmp(cndJmp190, label578);
  3371. auto label579 = genLabel();
  3372. endCndJmp(cndJmp189, label579);
  3373. Eq3(BCValue.init, tmp762, BCValue(Imm32(1)));
  3374. auto cndJmp192 = beginCndJmp();
  3375. auto label580 = genLabel();
  3376. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(256)));
  3377. auto jmp191 = beginJmp();
  3378. auto label581 = genLabel();
  3379. auto jmp192 = beginJmp();
  3380. auto label582 = genLabel();
  3381. endCndJmp(cndJmp192, label582);
  3382. auto tmp777 = genTemporary(BCType(BCTypeEnum.String));//SP[3128]
  3383. Set(tmp777, BCValue(Imm32(228)));
  3384. auto tmp778 = genTemporary(BCType(BCTypeEnum.i32));//SP[3132]
  3385. auto tmp779 = genTemporary(BCType(BCTypeEnum.i32));//SP[3136]
  3386. Set(tmp778, BCValue(Imm32(0)));
  3387. auto tmp780 = genTemporary(BCType(BCTypeEnum.i32));//SP[3140]
  3388. auto tmp781 = genTemporary(BCType(BCTypeEnum.i32));//SP[3144]
  3389. Load32(tmp781, tmp632);
  3390. auto tmp782 = genTemporary(BCType(BCTypeEnum.i32));//SP[3148]
  3391. Load32(tmp782, tmp777);
  3392. Eq3(tmp780, tmp781, tmp782);
  3393. auto cndJmp193 = beginCndJmp(tmp780);
  3394. auto label583 = genLabel();
  3395. Set(tmp778, BCValue(Imm32(1)));
  3396. Load32(tmp779, tmp632);
  3397. auto label584 = genLabel();
  3398. auto tmp783 = genTemporary(BCType(BCTypeEnum.i32));//SP[3152]
  3399. Set(tmp783, tmp779);
  3400. Sub3(tmp779, tmp779, BCValue(Imm32(1)));
  3401. auto cndJmp194 = beginCndJmp(tmp783);
  3402. auto label585 = genLabel();
  3403. auto tmp784 = genTemporary(BCType(BCTypeEnum.i32));//SP[3156]
  3404. auto tmp785 = genTemporary(BCType(BCTypeEnum.i32));//SP[3160]
  3405. Add3(tmp785, tmp632, BCValue(Imm32(1)));
  3406. auto tmp786 = genTemporary(BCType(BCTypeEnum.Char));//SP[3164]
  3407. auto tmp787 = genTemporary(BCType(BCTypeEnum.i32));//SP[3168]
  3408. auto tmp788 = genTemporary(BCType(BCTypeEnum.i32));//SP[3172]
  3409. Mod3(tmp788, tmp779, BCValue(Imm32(4)));
  3410. Div3(tmp787, tmp779, BCValue(Imm32(4)));
  3411. Add3(tmp785, tmp785, tmp787);
  3412. Load32(tmp786, tmp785);
  3413. Byte3(tmp786, tmp786, tmp788);
  3414. auto tmp789 = genTemporary(BCType(BCTypeEnum.i32));//SP[3176]
  3415. Add3(tmp789, tmp777, BCValue(Imm32(1)));
  3416. auto tmp790 = genTemporary(BCType(BCTypeEnum.Char));//SP[3180]
  3417. auto tmp791 = genTemporary(BCType(BCTypeEnum.i32));//SP[3184]
  3418. auto tmp792 = genTemporary(BCType(BCTypeEnum.i32));//SP[3188]
  3419. Mod3(tmp792, tmp779, BCValue(Imm32(4)));
  3420. Div3(tmp791, tmp779, BCValue(Imm32(4)));
  3421. Add3(tmp789, tmp789, tmp791);
  3422. Load32(tmp790, tmp789);
  3423. Byte3(tmp790, tmp790, tmp792);
  3424. Neq3(tmp784, tmp786, tmp790);
  3425. auto cndJmp195 = beginCndJmp(tmp784);
  3426. auto label586 = genLabel();
  3427. Set(tmp778, BCValue(Imm32(0)));
  3428. auto jmp193 = beginJmp();
  3429. auto label587 = genLabel();
  3430. endJmp(jmp193, label587);
  3431. auto jmp194 = beginJmp();
  3432. auto label588 = genLabel();
  3433. endJmp(jmp194, label588);
  3434. endCndJmp(cndJmp195, label588);
  3435. auto label589 = genLabel();
  3436. genJump(label584);
  3437. auto label590 = genLabel();
  3438. endCndJmp(cndJmp194, label590);
  3439. auto label591 = genLabel();
  3440. endCndJmp(cndJmp193, label591);
  3441. Eq3(BCValue.init, tmp778, BCValue(Imm32(1)));
  3442. auto cndJmp196 = beginCndJmp();
  3443. auto label592 = genLabel();
  3444. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(512)));
  3445. auto jmp195 = beginJmp();
  3446. auto label593 = genLabel();
  3447. auto jmp196 = beginJmp();
  3448. auto label594 = genLabel();
  3449. endCndJmp(cndJmp196, label594);
  3450. auto tmp793 = genTemporary(BCType(BCTypeEnum.String));//SP[3192]
  3451. Set(tmp793, BCValue(Imm32(232)));
  3452. auto tmp794 = genTemporary(BCType(BCTypeEnum.i32));//SP[3196]
  3453. auto tmp795 = genTemporary(BCType(BCTypeEnum.i32));//SP[3200]
  3454. Set(tmp794, BCValue(Imm32(0)));
  3455. auto tmp796 = genTemporary(BCType(BCTypeEnum.i32));//SP[3204]
  3456. auto tmp797 = genTemporary(BCType(BCTypeEnum.i32));//SP[3208]
  3457. Load32(tmp797, tmp632);
  3458. auto tmp798 = genTemporary(BCType(BCTypeEnum.i32));//SP[3212]
  3459. Load32(tmp798, tmp793);
  3460. Eq3(tmp796, tmp797, tmp798);
  3461. auto cndJmp197 = beginCndJmp(tmp796);
  3462. auto label595 = genLabel();
  3463. Set(tmp794, BCValue(Imm32(1)));
  3464. Load32(tmp795, tmp632);
  3465. auto label596 = genLabel();
  3466. auto tmp799 = genTemporary(BCType(BCTypeEnum.i32));//SP[3216]
  3467. Set(tmp799, tmp795);
  3468. Sub3(tmp795, tmp795, BCValue(Imm32(1)));
  3469. auto cndJmp198 = beginCndJmp(tmp799);
  3470. auto label597 = genLabel();
  3471. auto tmp800 = genTemporary(BCType(BCTypeEnum.i32));//SP[3220]
  3472. auto tmp801 = genTemporary(BCType(BCTypeEnum.i32));//SP[3224]
  3473. Add3(tmp801, tmp632, BCValue(Imm32(1)));
  3474. auto tmp802 = genTemporary(BCType(BCTypeEnum.Char));//SP[3228]
  3475. auto tmp803 = genTemporary(BCType(BCTypeEnum.i32));//SP[3232]
  3476. auto tmp804 = genTemporary(BCType(BCTypeEnum.i32));//SP[3236]
  3477. Mod3(tmp804, tmp795, BCValue(Imm32(4)));
  3478. Div3(tmp803, tmp795, BCValue(Imm32(4)));
  3479. Add3(tmp801, tmp801, tmp803);
  3480. Load32(tmp802, tmp801);
  3481. Byte3(tmp802, tmp802, tmp804);
  3482. auto tmp805 = genTemporary(BCType(BCTypeEnum.i32));//SP[3240]
  3483. Add3(tmp805, tmp793, BCValue(Imm32(1)));
  3484. auto tmp806 = genTemporary(BCType(BCTypeEnum.Char));//SP[3244]
  3485. auto tmp807 = genTemporary(BCType(BCTypeEnum.i32));//SP[3248]
  3486. auto tmp808 = genTemporary(BCType(BCTypeEnum.i32));//SP[3252]
  3487. Mod3(tmp808, tmp795, BCValue(Imm32(4)));
  3488. Div3(tmp807, tmp795, BCValue(Imm32(4)));
  3489. Add3(tmp805, tmp805, tmp807);
  3490. Load32(tmp806, tmp805);
  3491. Byte3(tmp806, tmp806, tmp808);
  3492. Neq3(tmp800, tmp802, tmp806);
  3493. auto cndJmp199 = beginCndJmp(tmp800);
  3494. auto label598 = genLabel();
  3495. Set(tmp794, BCValue(Imm32(0)));
  3496. auto jmp197 = beginJmp();
  3497. auto label599 = genLabel();
  3498. endJmp(jmp197, label599);
  3499. auto jmp198 = beginJmp();
  3500. auto label600 = genLabel();
  3501. endJmp(jmp198, label600);
  3502. endCndJmp(cndJmp199, label600);
  3503. auto label601 = genLabel();
  3504. genJump(label596);
  3505. auto label602 = genLabel();
  3506. endCndJmp(cndJmp198, label602);
  3507. auto label603 = genLabel();
  3508. endCndJmp(cndJmp197, label603);
  3509. Eq3(BCValue.init, tmp794, BCValue(Imm32(1)));
  3510. auto cndJmp200 = beginCndJmp();
  3511. auto label604 = genLabel();
  3512. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(1024)));
  3513. auto jmp199 = beginJmp();
  3514. auto label605 = genLabel();
  3515. auto jmp200 = beginJmp();
  3516. auto label606 = genLabel();
  3517. endCndJmp(cndJmp200, label606);
  3518. auto tmp809 = genTemporary(BCType(BCTypeEnum.String));//SP[3256]
  3519. Set(tmp809, BCValue(Imm32(236)));
  3520. auto tmp810 = genTemporary(BCType(BCTypeEnum.i32));//SP[3260]
  3521. auto tmp811 = genTemporary(BCType(BCTypeEnum.i32));//SP[3264]
  3522. Set(tmp810, BCValue(Imm32(0)));
  3523. auto tmp812 = genTemporary(BCType(BCTypeEnum.i32));//SP[3268]
  3524. auto tmp813 = genTemporary(BCType(BCTypeEnum.i32));//SP[3272]
  3525. Load32(tmp813, tmp632);
  3526. auto tmp814 = genTemporary(BCType(BCTypeEnum.i32));//SP[3276]
  3527. Load32(tmp814, tmp809);
  3528. Eq3(tmp812, tmp813, tmp814);
  3529. auto cndJmp201 = beginCndJmp(tmp812);
  3530. auto label607 = genLabel();
  3531. Set(tmp810, BCValue(Imm32(1)));
  3532. Load32(tmp811, tmp632);
  3533. auto label608 = genLabel();
  3534. auto tmp815 = genTemporary(BCType(BCTypeEnum.i32));//SP[3280]
  3535. Set(tmp815, tmp811);
  3536. Sub3(tmp811, tmp811, BCValue(Imm32(1)));
  3537. auto cndJmp202 = beginCndJmp(tmp815);
  3538. auto label609 = genLabel();
  3539. auto tmp816 = genTemporary(BCType(BCTypeEnum.i32));//SP[3284]
  3540. auto tmp817 = genTemporary(BCType(BCTypeEnum.i32));//SP[3288]
  3541. Add3(tmp817, tmp632, BCValue(Imm32(1)));
  3542. auto tmp818 = genTemporary(BCType(BCTypeEnum.Char));//SP[3292]
  3543. auto tmp819 = genTemporary(BCType(BCTypeEnum.i32));//SP[3296]
  3544. auto tmp820 = genTemporary(BCType(BCTypeEnum.i32));//SP[3300]
  3545. Mod3(tmp820, tmp811, BCValue(Imm32(4)));
  3546. Div3(tmp819, tmp811, BCValue(Imm32(4)));
  3547. Add3(tmp817, tmp817, tmp819);
  3548. Load32(tmp818, tmp817);
  3549. Byte3(tmp818, tmp818, tmp820);
  3550. auto tmp821 = genTemporary(BCType(BCTypeEnum.i32));//SP[3304]
  3551. Add3(tmp821, tmp809, BCValue(Imm32(1)));
  3552. auto tmp822 = genTemporary(BCType(BCTypeEnum.Char));//SP[3308]
  3553. auto tmp823 = genTemporary(BCType(BCTypeEnum.i32));//SP[3312]
  3554. auto tmp824 = genTemporary(BCType(BCTypeEnum.i32));//SP[3316]
  3555. Mod3(tmp824, tmp811, BCValue(Imm32(4)));
  3556. Div3(tmp823, tmp811, BCValue(Imm32(4)));
  3557. Add3(tmp821, tmp821, tmp823);
  3558. Load32(tmp822, tmp821);
  3559. Byte3(tmp822, tmp822, tmp824);
  3560. Neq3(tmp816, tmp818, tmp822);
  3561. auto cndJmp203 = beginCndJmp(tmp816);
  3562. auto label610 = genLabel();
  3563. Set(tmp810, BCValue(Imm32(0)));
  3564. auto jmp201 = beginJmp();
  3565. auto label611 = genLabel();
  3566. endJmp(jmp201, label611);
  3567. auto jmp202 = beginJmp();
  3568. auto label612 = genLabel();
  3569. endJmp(jmp202, label612);
  3570. endCndJmp(cndJmp203, label612);
  3571. auto label613 = genLabel();
  3572. genJump(label608);
  3573. auto label614 = genLabel();
  3574. endCndJmp(cndJmp202, label614);
  3575. auto label615 = genLabel();
  3576. endCndJmp(cndJmp201, label615);
  3577. Eq3(BCValue.init, tmp810, BCValue(Imm32(1)));
  3578. auto cndJmp204 = beginCndJmp();
  3579. auto label616 = genLabel();
  3580. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(2048)));
  3581. auto jmp203 = beginJmp();
  3582. auto label617 = genLabel();
  3583. auto jmp204 = beginJmp();
  3584. auto label618 = genLabel();
  3585. endCndJmp(cndJmp204, label618);
  3586. auto tmp825 = genTemporary(BCType(BCTypeEnum.String));//SP[3320]
  3587. Set(tmp825, BCValue(Imm32(240)));
  3588. auto tmp826 = genTemporary(BCType(BCTypeEnum.i32));//SP[3324]
  3589. auto tmp827 = genTemporary(BCType(BCTypeEnum.i32));//SP[3328]
  3590. Set(tmp826, BCValue(Imm32(0)));
  3591. auto tmp828 = genTemporary(BCType(BCTypeEnum.i32));//SP[3332]
  3592. auto tmp829 = genTemporary(BCType(BCTypeEnum.i32));//SP[3336]
  3593. Load32(tmp829, tmp632);
  3594. auto tmp830 = genTemporary(BCType(BCTypeEnum.i32));//SP[3340]
  3595. Load32(tmp830, tmp825);
  3596. Eq3(tmp828, tmp829, tmp830);
  3597. auto cndJmp205 = beginCndJmp(tmp828);
  3598. auto label619 = genLabel();
  3599. Set(tmp826, BCValue(Imm32(1)));
  3600. Load32(tmp827, tmp632);
  3601. auto label620 = genLabel();
  3602. auto tmp831 = genTemporary(BCType(BCTypeEnum.i32));//SP[3344]
  3603. Set(tmp831, tmp827);
  3604. Sub3(tmp827, tmp827, BCValue(Imm32(1)));
  3605. auto cndJmp206 = beginCndJmp(tmp831);
  3606. auto label621 = genLabel();
  3607. auto tmp832 = genTemporary(BCType(BCTypeEnum.i32));//SP[3348]
  3608. auto tmp833 = genTemporary(BCType(BCTypeEnum.i32));//SP[3352]
  3609. Add3(tmp833, tmp632, BCValue(Imm32(1)));
  3610. auto tmp834 = genTemporary(BCType(BCTypeEnum.Char));//SP[3356]
  3611. auto tmp835 = genTemporary(BCType(BCTypeEnum.i32));//SP[3360]
  3612. auto tmp836 = genTemporary(BCType(BCTypeEnum.i32));//SP[3364]
  3613. Mod3(tmp836, tmp827, BCValue(Imm32(4)));
  3614. Div3(tmp835, tmp827, BCValue(Imm32(4)));
  3615. Add3(tmp833, tmp833, tmp835);
  3616. Load32(tmp834, tmp833);
  3617. Byte3(tmp834, tmp834, tmp836);
  3618. auto tmp837 = genTemporary(BCType(BCTypeEnum.i32));//SP[3368]
  3619. Add3(tmp837, tmp825, BCValue(Imm32(1)));
  3620. auto tmp838 = genTemporary(BCType(BCTypeEnum.Char));//SP[3372]
  3621. auto tmp839 = genTemporary(BCType(BCTypeEnum.i32));//SP[3376]
  3622. auto tmp840 = genTemporary(BCType(BCTypeEnum.i32));//SP[3380]
  3623. Mod3(tmp840, tmp827, BCValue(Imm32(4)));
  3624. Div3(tmp839, tmp827, BCValue(Imm32(4)));
  3625. Add3(tmp837, tmp837, tmp839);
  3626. Load32(tmp838, tmp837);
  3627. Byte3(tmp838, tmp838, tmp840);
  3628. Neq3(tmp832, tmp834, tmp838);
  3629. auto cndJmp207 = beginCndJmp(tmp832);
  3630. auto label622 = genLabel();
  3631. Set(tmp826, BCValue(Imm32(0)));
  3632. auto jmp205 = beginJmp();
  3633. auto label623 = genLabel();
  3634. endJmp(jmp205, label623);
  3635. auto jmp206 = beginJmp();
  3636. auto label624 = genLabel();
  3637. endJmp(jmp206, label624);
  3638. endCndJmp(cndJmp207, label624);
  3639. auto label625 = genLabel();
  3640. genJump(label620);
  3641. auto label626 = genLabel();
  3642. endCndJmp(cndJmp206, label626);
  3643. auto label627 = genLabel();
  3644. endCndJmp(cndJmp205, label627);
  3645. Eq3(BCValue.init, tmp826, BCValue(Imm32(1)));
  3646. auto cndJmp208 = beginCndJmp();
  3647. auto label628 = genLabel();
  3648. Or3(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(StackAddr(4), BCType(BCTypeEnum.i32)), BCValue(Imm32(4096)));
  3649. auto jmp207 = beginJmp();
  3650. auto label629 = genLabel();
  3651. auto jmp208 = beginJmp();
  3652. auto label630 = genLabel();
  3653. endCndJmp(cndJmp208, label630);
  3654. auto label631 = genLabel();
  3655. AssertError(BCValue(Imm32(0)), Imm32(4)/*Error*/);
  3656. auto label632 = genLabel();
  3657. endJmp(jmp159, label632);
  3658. endJmp(jmp160, label632);
  3659. endJmp(jmp163, label632);
  3660. endJmp(jmp164, label632);
  3661. endJmp(jmp167, label632);
  3662. endJmp(jmp168, label632);
  3663. endJmp(jmp171, label632);
  3664. endJmp(jmp172, label632);
  3665. endJmp(jmp175, label632);
  3666. endJmp(jmp176, label632);
  3667. endJmp(jmp179, label632);
  3668. endJmp(jmp180, label632);
  3669. endJmp(jmp183, label632);
  3670. endJmp(jmp184, label632);
  3671. endJmp(jmp187, label632);
  3672. endJmp(jmp188, label632);
  3673. endJmp(jmp191, label632);
  3674. endJmp(jmp192, label632);
  3675. endJmp(jmp195, label632);
  3676. endJmp(jmp196, label632);
  3677. endJmp(jmp199, label632);
  3678. endJmp(jmp200, label632);
  3679. endJmp(jmp203, label632);
  3680. endJmp(jmp204, label632);
  3681. endJmp(jmp207, label632);
  3682. endJmp(jmp208, label632);
  3683. Ret(BCValue(StackAddr(4), BCType(BCTypeEnum.i32)));
  3684. endFunction();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement