LuaBridgeCtl_SetXXTEAKeyGM_impl.c 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300
  1. // callconv: x0 arm64 (x0, x1, x2, x3, x4, x5, x6, x7, stack);
  2. void sym.func.100044b88 (int64_t arg1, int64_t arg2) {
  3. sp -= 0x140
  4. [var_100h] = (x28, 2)
  5. [var_110h] = (x22, 2)
  6. [var_120h] = (x20, 2)
  7. [var_130h] = (x29, 2)
  8. x29 = sp + 0x130
  9. x19 = x1 // arg2
  10. x20 = x0 // arg1
  11. [x29 - 0x48] = (0, 2)
  12. [x29 -0x38] = 0
  13. [x29 - 0x60] = (0, 2)
  14. [x29 -0x50] = 0
  15. w8 = (byte) [x1 + 0x17] // arg2
  16. w9 = (char) w8
  17. (x10, 2) = 3 // arg2
  18. v = w9 - 0
  19. x1 = (lt)? x10 : x1
  20. x2 = (lt)? x11 : x8
  21. try { // cleanup at 0x100044f04
  22. x0 = x29 - 0x48
  23. method.std::__1::basic_string_char__std::__1::char_traits_char___std::__1::allocator_char___.append_char_const__unsigned_long_ () // method.std::__1::basic_string_char__std::__1::char_traits_char___std::__1::allocator_char___.append_char_const__unsigned_long_(0x177fa8, -1, -1, 0x0)
  24. x1 = 0x1006c6000
  25. x1 += 0x11e // u"2Gm\u5722\u475d\u5675\u697c\u4600\u5723\u475d\u5675\u697c\u4100\u7474\u6361\u6d68\u6e65\u4c74\u616f\u6564r\u6974\u656c\u6353\u6e65\u4d65\u6e61\u6761\u7265\u4c3a\u616f" str.2Gmr
  26. x0 = x29 - 0x48
  27. method.std::__1::basic_string_char__std::__1::char_traits_char___std::__1::allocator_char___.append_char_const_ () // method.std::__1::basic_string_char__std::__1::char_traits_char___std::__1::allocator_char___.append_char_const_(0x177fa8, 0x1006c611e, -1, 0x0)
  28. x1 = 0x1006c6000
  29. x1 += 0x120 // u"Gm\u5722\u475d\u5675\u697c\u4600\u5723\u475d\u5675\u697c\u4100\u7474\u6361\u6d68\u6e65\u4c74\u616f\u6564r\u6974\u656c\u6353\u6e65\u4d65\u6e61\u6761\u7265\u4c3a\u616f\u4d64"
  30. x0 = x29 - 0x48
  31. method.std::__1::basic_string_char__std::__1::char_traits_char___std::__1::allocator_char___.append_char_const_ () // method.std::__1::basic_string_char__std::__1::char_traits_char___std::__1::allocator_char___.append_char_const_(0x177fa8, 0x1006c6120, -1, 0x0)
  32. x1 = 0x1006c6000
  33. x1 += 0x122 // "m"
  34. x0 = x29 - 0x48
  35. method.std::__1::basic_string_char__std::__1::char_traits_char___std::__1::allocator_char___.append_char_const_ () // method.std::__1::basic_string_char__std::__1::char_traits_char___std::__1::allocator_char___.append_char_const_(0x177fa8, 0x1006c6122, -1, 0x0)
  36. w8 = (byte) [x19 + 0x17]
  37. w9 = (char) w8
  38. (x10, 2) = 3
  39. v = w9 - 0
  40. x1 = (lt)? x10 : x19
  41. x2 = (lt)? x11 : x8
  42. x0 = x29 - 0x48
  43. method.std::__1::basic_string_char__std::__1::char_traits_char___std::__1::allocator_char___.append_char_const__unsigned_long_ () // method.std::__1::basic_string_char__std::__1::char_traits_char___std::__1::allocator_char___.append_char_const__unsigned_long_(0x177fa8, -1, -1, 0x0)
  44. x1 = 0x1006c6000
  45. x1 += 0x124 // "\"W]GuV|i"
  46. x0 = x29 - 0x60
  47. method.std::__1::basic_string_char__std::__1::char_traits_char___std::__1::allocator_char___.assign_char_const_ () // try.849.100044b88.to // method.std::__1::basic_string_char__std::__1::char_traits_char___std::__1::allocator_char___.assign_char_const_(0x177f90, 0x1006c6124, -1, 0x0)
  48. } // end try
  49. ldursb w8, [x29, -0x49]
  50. if (w8 != 0x1f) goto 0x100044c54 // unlikely
  51. goto loc_0x100044c40;
  52. loc_0x100044c54:
  53. (x1, 2) = 3
  54. try { // cleanup at 0x100044e8c
  55. x0 = x29 - 0x90
  56. sym.func.10013aca4 () // try.851.100044b88.from // sym.func.10013aca4(0x177f60, 0x0, 0x0, 0x0)
  57. loc_0x100044c60:
  58. } // end try
  59. try { // cleanup at 0x100044eec
  60. // CODE XREF from sym.func.100044b88 @ 0x100044c50(x)
  61. x8 = x29 - 0x78
  62. x1 = x29 - 0x90
  63. sym.func.100043b34 () // try.851.100044b88.to // sym.func.100043b34(0x177f60, 0x177f60, 0x0, 0x0)
  64. } // end try
  65. x22 = x29 - 0x78
  66. ldursb w8, [x29, -0x49]
  67. if (w8 == 0x1f) goto 0x100044c80 // likely
  68. goto loc_0x100044c78;
  69. loc_0x100044c80: // orphan
  70. q0 = [x22]
  71. [x29 -0x60] = q0
  72. x8 = [x29 -0x68]
  73. [x29 -0x50] = x8
  74. sturb 0, [x29, -0x61]
  75. sturb 0, [x29, -0x78]
  76. ldursb w8, [x29, -0x79]
  77. if (w8 == 0x1f)
  78. try { // cleanup at 0x100044f04
  79. loc_0x100044ca8: // orphan
  80. sym.func.10042ee20 () // sym.func.10042ee20(0x177f60, 0x177f60, 0x0, 0x0)
  81. x21 = x0
  82. ldursb w8, [x29, -0x31]
  83. if (w8 != 0x1f)
  84. loc_0x100044ccc: // orphan
  85. (x1, 2) = 3
  86. x0 = sp + 0x80
  87. sym.func.10013aca4 () // try.852.100044b88.to // sym.func.10013aca4(0x177f40, 0x0, 0x0, 0x0)
  88. goto loc_0x100044cf4;
  89. } // end try
  90. try { // cleanup at 0x100044e84
  91. loc_0x100044cf4: // orphan
  92. (x1, 2) = 3
  93. x0 = sp + 0x60
  94. sym.func.10013aca4 () // try.854.100044b88.from // sym.func.10013aca4(0x177f20, 0x0, 0x0, 0x0)
  95. goto loc_0x100044d20;
  96. } // end try
  97. loc_0x100044d20: // orphan
  98. w8 = (byte) [var_97h]
  99. if (w8 == 0x1f)
  100. try { // cleanup at 0x100044f04
  101. loc_0x100044d30: // orphan
  102. x1 = 0x1006c6000
  103. x1 += 0x12d // "F#W]GuV|i"
  104. x0 = x29 - 0x60
  105. method.std::__1::basic_string_char__std::__1::char_traits_char___std::__1::allocator_char___.assign_char_const_ () // try.855.100044b88.to // method.std::__1::basic_string_char__std::__1::char_traits_char___std::__1::allocator_char___.assign_char_const_(0x177f90, 0x1006c612d, 0x177f20, 0x0)
  106. ldursb w8, [x29, -0x49]
  107. if (w8 != 0x1f)
  108. } // end try
  109. try { // cleanup at 0x100044e80
  110. loc_0x100044d5c: // orphan
  111. (x1, 2) = 3
  112. x0 = sp + 0x40
  113. sym.func.10013aca4 () // try.857.100044b88.from // sym.func.10013aca4(0x177f00, 0x0, 0x0, 0x0)
  114. goto loc_0x100044d84;
  115. } // end try
  116. loc_0x100044d84: // orphan
  117. q0 = [x22]
  118. [x29 -0x60] = q0
  119. x8 = [x29 -0x68]
  120. [x29 -0x50] = x8
  121. sturb 0, [x29, -0x61]
  122. sturb 0, [x29, -0x78]
  123. w8 = (byte) [var_57h]
  124. if (w8 == 0x1f)
  125. try { // cleanup at 0x100044f04
  126. loc_0x100044dac: // orphan
  127. sym.func.10042ee20 () // sym.func.10042ee20(0x177f00, 0x177f00, 0x0, 0x0)
  128. x21 = x0
  129. ldursb w8, [x29, -0x31]
  130. if (w8 != 0x1f)
  131. loc_0x100044dd0: // orphan
  132. (x1, 2) = 3
  133. x0 = sp + 0x20
  134. sym.func.10013aca4 () // try.858.100044b88.to // sym.func.10013aca4(0x177ee0, 0x0, 0x0, 0x0)
  135. goto loc_0x100044df8;
  136. } // end try
  137. try { // cleanup at 0x100044e78
  138. loc_0x100044df8: // orphan
  139. (x1, 2) = 3
  140. x0 = sp
  141. sym.func.10013aca4 () // try.860.100044b88.from // sym.func.10013aca4(0x177ec0, 0x0, 0x0, 0x0)
  142. goto loc_0x100044e24;
  143. } // end try
  144. loc_0x100044e24: // orphan
  145. w8 = (byte) [var_37h]
  146. if (w8 == 0x1f)
  147. try { // cleanup at 0x100044f04
  148. loc_0x100044e34: // orphan
  149. x0 = x20 + 0x138
  150. x1 = x19
  151. method.std::__1::basic_string_char__std::__1::char_traits_char___std::__1::allocator_char___.operator_std::__1::basic_string_char__std::__1::char_traits_char___std::__1::allocator_char____const_ () // try.861.100044b88.to // method.std::__1::basic_string_char__std::__1::char_traits_char___std::__1::allocator_char___.operator_std::__1::basic_string_char__std::__1::char_traits_char___std::__1::allocator_char____const_(0x138, 0x0, 0x177ec0, 0x0)
  152. ldursb w8, [x29, -0x49]
  153. if (w8 == 0x1f)
  154. } // end try
  155. loc_0x100044e50: // orphan
  156. ldursb w8, [x29, -0x31]
  157. if (w8 == 0x1f)
  158. loc_0x100044e60: // orphan
  159. (x29, 2) = 3 // sp
  160. (x20, 2) = 3
  161. (x22, 2) = 3
  162. (x28, 2) = 3
  163. sp += 0x140
  164. loc_0x100044e58: // orphan
  165. x0 = [x29 -0x48]
  166. sym.imp.operator_delete_void_ () // operator delete(void*) // sym.imp.operator_delete_void_(0x0, 0x0, 0x177ec0, 0x0)
  167. goto loc_0x100044e48;
  168. loc_0x100044e48: // orphan
  169. x0 = [x29 -0x60]
  170. sym.imp.operator_delete_void_ () // operator delete(void*) // sym.imp.operator_delete_void_(0x0, 0x0, 0x177ec0, 0x0)
  171. goto loc_0x100044e2c;
  172. loc_0x100044e2c: // orphan
  173. x0 = [var_20h]
  174. sym.imp.operator_delete_void_ () // operator delete(void*) // sym.imp.operator_delete_void_(0x0, 0x177ee0, 0x177ec0, 0x0)
  175. goto loc_0x100044e1c;
  176. loc_0x100044e1c: // orphan
  177. x0 = [sp]
  178. sym.imp.operator_delete_void_ () // operator delete(void*) // sym.imp.operator_delete_void_(0x0, 0x177ee0, 0x177ec0, 0x0)
  179. goto loc_0x100044de4;
  180. loc_0x100044de4: // orphan
  181. q0 = [x29 -0x60]
  182. [sp] = q0
  183. x8 = [x29 -0x50]
  184. [var_10h] = x8
  185. try { // cleanup at 0x100044e90
  186. loc_0x100044e04: // orphan
  187. // CODE XREF from sym.func.100044b88 @ 0x100044df4(x)
  188. x1 = sp + 0x20
  189. x2 = sp
  190. x0 = x21
  191. sym.func.100254bac () // try.860.100044b88.to // sym.func.100254bac(0x177f00, 0x177ee0, 0x177ec0, 0x0)
  192. w8 = (byte) [var_17h]
  193. if (w8 == 0x1f)
  194. goto loc_0x100044dbc;
  195. } // end try
  196. loc_0x100044dbc: // orphan
  197. q0 = [x22 + 0x30]
  198. [var_20h] = q0
  199. x8 = [x29 -0x38]
  200. [var_30h] = x8
  201. loc_0x100044ddc: // orphan
  202. // CODE XREF from sym.func.100044b88 @ 0x100044dcc(x)
  203. ldursb w8, [x29, -0x49]
  204. if (w8 != 0x1f)
  205. goto loc_0x100044da4;
  206. loc_0x100044da4: // orphan
  207. x0 = [var_40h]
  208. sym.imp.operator_delete_void_ () // operator delete(void*) // try.858.100044b88.from // sym.imp.operator_delete_void_(0x0, 0x177f00, 0x0, 0x0)
  209. goto loc_0x100044d7c;
  210. loc_0x100044d7c: // orphan
  211. x0 = [x29 -0x60]
  212. sym.imp.operator_delete_void_ () // operator delete(void*) // sym.imp.operator_delete_void_(0x0, 0x177f00, 0x0, 0x0)
  213. goto loc_0x100044d48;
  214. loc_0x100044d48: // orphan
  215. q0 = [x29 -0x60]
  216. [var_40h] = q0
  217. x8 = [x29 -0x50]
  218. [var_sp_50h] = x8
  219. try { // cleanup at 0x100044eb4
  220. loc_0x100044d68: // orphan
  221. // CODE XREF from sym.func.100044b88 @ 0x100044d58(x)
  222. x8 = x29 - 0x78
  223. x1 = sp + 0x40
  224. sym.func.100043b34 () // try.857.100044b88.to // sym.func.100043b34(0x177f00, 0x177f00, 0x0, 0x0)
  225. ldursb w8, [x29, -0x49]
  226. if (w8 == 0x1f)
  227. goto loc_0x100044d28;
  228. } // end try
  229. loc_0x100044d28: // orphan
  230. x0 = [var_80h]
  231. sym.imp.operator_delete_void_ () // operator delete(void*) // try.855.100044b88.from // sym.imp.operator_delete_void_(0x0, 0x177f40, 0x177f20, 0x0)
  232. goto loc_0x100044d18;
  233. loc_0x100044d18: // orphan
  234. x0 = [var_sp_60h]
  235. sym.imp.operator_delete_void_ () // operator delete(void*) // sym.imp.operator_delete_void_(0x0, 0x177f40, 0x177f20, 0x0)
  236. goto loc_0x100044ce0;
  237. loc_0x100044ce0: // orphan
  238. q0 = [x29 -0x60]
  239. [var_sp_60h] = q0
  240. x8 = [x29 -0x50]
  241. [var_70h] = x8
  242. try { // cleanup at 0x100044ec8
  243. loc_0x100044d00: // orphan
  244. // CODE XREF from sym.func.100044b88 @ 0x100044cf0(x)
  245. x1 = sp + 0x80
  246. x2 = sp + 0x60
  247. x0 = x21
  248. sym.func.10025493c () // try.854.100044b88.to // sym.func.10025493c(0x177f60, 0x177f40, 0x177f20, 0x0)
  249. w8 = (byte) [var_77h]
  250. if (w8 == 0x1f)
  251. goto loc_0x100044cb8;
  252. } // end try
  253. loc_0x100044cb8: // orphan
  254. q0 = [x22 + 0x30]
  255. [var_80h] = q0
  256. x8 = [x29 -0x38]
  257. [var_90h] = x8
  258. loc_0x100044cd8: // orphan
  259. // CODE XREF from sym.func.100044b88 @ 0x100044cc8(x)
  260. ldursb w8, [x29, -0x49]
  261. if (w8 != 0x1f)
  262. goto loc_0x100044ca0;
  263. loc_0x100044ca0: // orphan
  264. x0 = [x29 -0x90]
  265. sym.imp.operator_delete_void_ () // operator delete(void*) // try.852.100044b88.from // sym.imp.operator_delete_void_(0x0, 0x177f60, 0x0, 0x0)
  266. goto loc_0x100044c78;
  267. loc_0x100044c78: // orphan
  268. x0 = [x29 -0x60]
  269. sym.imp.operator_delete_void_ () // operator delete(void*) // sym.imp.operator_delete_void_(0x0, 0x177f60, 0x0, 0x0)
  270. goto loc_0x100044c40;
  271. loc_0x100044c40: // orphan
  272. q0 = [x29 -0x60]
  273. [x29 -0x90] = q0
  274. x8 = [x29 -0x50]
  275. [x29 -0x80] = x8
  276. }