1. namespace offsets
    2. {
    3. constexpr auto camera_base = 0x1416B000;
    4. constexpr auto camera_pos = 0x1D8;
    5. constexpr auto game_mode = 0x16BE0BE8;
    6. constexpr auto local_index = 0x501C0;
    7. constexpr auto name_array = 0x16F79F58;
    8. constexpr auto name_array_padding = 0x4C70;
    9. constexpr auto ref_def = 0x16F6ECB0;
    10. constexpr auto weapon_definition = 0x1423E380;
    11. namespace bones
    12. {
    13. constexpr auto bone_base = 0x57CB4;
    14. constexpr auto distribute = 0x195DA9E8;
    15. constexpr auto size = 0x150;
    16. constexpr auto visible = 0x5342240;
    17. }
    18. namespace directx
    19. {
    20. constexpr auto command_queue = 0x189B3D28;
    21. constexpr auto swap_chain = 0x189B90A0;
    22. }
    23. namespace engine
    24. {
    25. constexpr auto get_string = 0x2BD11B0;
    26. constexpr auto begin_event = 0x2AE0DD0;
    27. constexpr auto add_param_string = 0x2AE0DB0;
    28. constexpr auto finish_event = 0x2AE0E60;
    29. constexpr auto get_asset = 0x2D50420;
    30. constexpr auto move_response_to_inventory = 0x54C9C00;
    31. constexpr auto loot_base = 0x9E2EF00;
    32. constexpr auto get_column_value_for_row = 0x2D50460;
    33. }
    34. namespace unlocker
    35. {
    36. constexpr auto entity_list = 0x137B72E0;
    37. constexpr auto sub_entity = 0x150;
    38. constexpr auto entity_size = 0x5A8;
    39. }
    40. namespace other
    41. {
    42. constexpr auto recoil = 0x23824;
    43. }
    44. namespace player
    45. {
    46. constexpr auto dead_1 = 0x14F4;
    47. constexpr auto dead_2 = 0x430;
    48. constexpr auto pos_info = 0x12D0;
    49. constexpr auto size = 0x3AC0;
    50. constexpr auto stance = 0x6A8;
    51. constexpr auto team_id = 0x4B8;
    52. constexpr auto valid = 0x614;
    53. constexpr auto weapon_index = 0xF5A;
    54. }
    55. }
    1. namespace decryption
    2. {
    3. auto get_client_info() -> uint64_t
    4. {
    5. uint64_t RAX = 0, RBX = 0, RCX = 0, RDX = 0, R8 = 0, RDI = 0, R9 = 0, R10 = 0, R11 = 0, R12 = 0, R13 = 0, R14 = 0, RSI = 0, RSP = 0, RBP = 0;
    6. RBX = *(uint64_t*)(global::module_base + 0x16F6C318);
    7. if (!RBX)
    8. return 0;
    9. R8 = global::module_base;
    10. // je short 0000000001A83E9Ch
    11. RCX = global::module_base;
    12. RAX = 0xB1368AA21CC89905;
    13. RBX *= RAX;
    14. RDX = 0xE33EDD45F165A542;
    15. RBX += R8;
    16. RAX = RBX;
    17. RAX >>= 0x18;
    18. RBX ^= RAX;
    19. RAX = global::module_base + 0x988;
    20. RCX -= RAX;
    21. RAX = RBX;
    22. RCX = 0; // Special case
    23. RAX >>= 0x30;
    24. RCX = _rotl64(RCX, 0x10);
    25. RAX ^= RBX;
    26. RCX ^= *(uint64_t*)(global::module_base + 0x6358106);
    27. RAX += RDX;
    28. RCX = (~RCX);
    29. R8 += RAX;
    30. if (is_bad_ptr((void*)(RCX + 0xF))) return 0xFFFFFFFFFFFFFFFF; RBX = *(uint64_t*)(RCX + 0xF);
    31. RBX *= R8;
    32. return RBX;
    33. }
    34. auto get_client_info_base(uint64_t client_info) -> uint64_t
    35. {
    36. uint64_t RAX = global::module_base, RBX = global::module_base, RCX = global::module_base, RDX = global::module_base, R8 = global::module_base, RDI = global::module_base, R9 = global::module_base, R10 = global::module_base, R11 = global::module_base, R12 = global::module_base, R13 = global::module_base, R14 = global::module_base, R15 = global::module_base, RSI = global::module_base, RSP = global::module_base, RBP = global::module_base;
    37. RAX = *(uint64_t*)(client_info + 0x9DC48);
    38. if (!RAX)
    39. return 0;
    40. RBX = global::peb;
    41. // test rax,rax
    42. // je near ptr 0000000001A88BB1h
    43. RCX = RBX;
    44. RCX = _rotr64(RCX, 0xE);
    45. RCX &= 0xF;
    46. switch (RCX)
    47. {
    48. case 0:
    49. {
    50. R10 = *(uint64_t*)(global::module_base + 0x6358146);
    51. RCX = 0x2C4DD10573E87BDF;
    52. RAX -= RCX;
    53. RCX = RAX;
    54. RCX >>= 0xF;
    55. RAX ^= RCX;
    56. RCX = RAX;
    57. RCX >>= 0x1E;
    58. RAX ^= RCX;
    59. RCX = RAX;
    60. RCX >>= 0x3C;
    61. RAX ^= RCX;
    62. RCX = 0x2A7E13A63C0DC12;
    63. RAX += RCX;
    64. RCX = 0x6EA8692AFBE9951D;
    65. RAX *= RCX;
    66. RCX = global::module_base + 0x7B15C6EB;
    67. RCX -= RBX;
    68. RAX += RCX;
    69. RDX = 0; // Special case
    70. RCX = RAX;
    71. RDX = _rotl64(RDX, 0x10);
    72. RAX = global::module_base;
    73. RCX -= RAX;
    74. RDX ^= R10;
    75. RDX = (~RDX);
    76. if (is_bad_ptr((void*)(RDX + 0x9))) return 0xFFFFFFFFFFFFFFFF; RAX = *(uint64_t*)(RDX + 0x9);
    77. RAX *= RCX;
    78. RCX = global::module_base;
    79. RAX += RCX;
    80. return RAX;
    81. }
    82. case 1:
    83. {
    84. R9 = *(uint64_t*)(global::module_base + 0x6358146);
    85. RCX = global::module_base + 0x7A646912;
    86. RCX = (~RCX);
    87. RCX -= RBX;
    88. RAX += RCX;
    89. RCX = RAX;
    90. RCX >>= 0x22;
    91. RAX ^= RCX;
    92. RCX = 0x7D67E1E97C6B2C96;
    93. RAX -= RCX;
    94. RCX = 0; // Special case
    95. RCX = _rotl64(RCX, 0x10);
    96. RCX ^= R9;
    97. RCX = (~RCX);
    98. if (is_bad_ptr((void*)(RCX + 0x9))) return 0xFFFFFFFFFFFFFFFF; RCX = *(uint64_t*)(RCX + 0x9);
    99. RCX *= RAX;
    100. RAX = global::module_base;
    101. RCX -= RAX;
    102. RAX = RBX + 0xFFFFFFFFFFFFF016;
    103. RAX += RCX;
    104. RAX -= RBX;
    105. RCX = global::module_base + 0x2FF05259;
    106. RAX += RCX;
    107. RCX = 0x9A1F338590121263;
    108. RAX *= RCX;
    109. RCX = 0x52BE01F8D7308C;
    110. RAX += RCX;
    111. return RAX;
    112. }
    113. case 2:
    114. {
    115. R14 = global::module_base + 0xABC7;
    116. R15 = global::module_base + 0x329;
    117. R9 = *(uint64_t*)(global::module_base + 0x6358146);
    118. RCX = 0x428FFCC799FD807;
    119. RAX *= RCX;
    120. RCX = global::module_base;
    121. RAX += RCX;
    122. RCX = RBX;
    123. RCX = (~RCX);
    124. RCX += R15;
    125. RAX ^= RCX;
    126. RCX = RAX;
    127. RCX >>= 0x22;
    128. RAX ^= RCX;
    129. RCX = 0x6D47E789FB157961;
    130. RAX *= RCX;
    131. RCX = 0x51EE1309C70ABD7;
    132. RAX *= RCX;
    133. RCX = R14;
    134. RCX = (~RCX);
    135. RCX ^= RBX;
    136. RAX ^= RCX;
    137. RCX = 0; // Special case
    138. RCX = _rotl64(RCX, 0x10);
    139. RCX ^= R9;
    140. RCX = (~RCX);
    141. if (is_bad_ptr((void*)(RCX + 0x9))) return 0xFFFFFFFFFFFFFFFF; RAX *= *(uint64_t*)(RCX + 0x9);
    142. return RAX;
    143. }
    144. case 3:
    145. {
    146. R10 = *(uint64_t*)(global::module_base + 0x6358146);
    147. R15 = global::module_base + 0x4154CA52;
    148. R14 = global::module_base + 0x6B1288FF;
    149. RCX = 0x9AA73C5A44CEFEB;
    150. RAX *= RCX;
    151. RCX = R14;
    152. RCX = (~RCX);
    153. RCX ^= RBX;
    154. RAX -= RCX;
    155. RDX = 0; // Special case
    156. RDX = _rotl64(RDX, 0x10);
    157. RCX = RBX;
    158. RDX ^= R10;
    159. RDX = (~RDX);
    160. RCX *= R15;
    161. if (is_bad_ptr((void*)(RDX + 0x9))) return 0xFFFFFFFFFFFFFFFF; RDX = *(uint64_t*)(RDX + 0x9);
    162. RAX *= RDX;
    163. RAX ^= RCX;
    164. RCX = RAX;
    165. RCX >>= 0x23;
    166. RAX ^= RCX;
    167. RCX = 0x49E1C5A42D1EBB58;
    168. RAX ^= RCX;
    169. RCX = RAX;
    170. RCX >>= 0x15;
    171. RAX ^= RCX;
    172. RCX = RAX;
    173. RCX >>= 0x2A;
    174. RAX ^= RCX;
    175. RCX = 0x3736A546ED043ACA;
    176. RAX += RCX;
    177. return RAX;
    178. }
    179. case 4:
    180. {
    181. R11 = *(uint64_t*)(global::module_base + 0x6358146);
    182. RDX = global::module_base + 0xE83F;
    183. RCX = RAX;
    184. RCX >>= 0x1B;
    185. RAX ^= RCX;
    186. RCX = RAX;
    187. RCX >>= 0x36;
    188. RAX ^= RCX;
    189. RCX = RBX;
    190. RCX *= RDX;
    191. RAX -= RCX;
    192. RCX = 0x310451BB37ED62A0;
    193. RAX ^= RCX;
    194. R8 = 0; // Special case
    195. R8 = _rotl64(R8, 0x10);
    196. RCX = global::module_base + 0x7E687D0C;
    197. R8 ^= R11;
    198. RDX = RBX;
    199. RDX = (~RDX);
    200. RCX = (~RCX);
    201. RDX *= RCX;
    202. R8 = (~R8);
    203. RDX += RAX;
    204. if (is_bad_ptr((void*)(R8 + 0x9))) return 0xFFFFFFFFFFFFFFFF; RAX = *(uint64_t*)(R8 + 0x9);
    205. RAX *= RDX;
    206. R8 = global::module_base + 0xE166;
    207. RBP = 0xB1660B2EB3DEF8A3;
    208. RAX *= RBP;
    209. RCX = RBX;
    210. RCX *= R8;
    211. RAX -= RCX;
    212. RCX = 0x2D4951DFC2EC76;
    213. RAX ^= RCX;
    214. return RAX;
    215. }
    216. case 5:
    217. {
    218. R14 = global::module_base + 0xCE23;
    219. R9 = *(uint64_t*)(global::module_base + 0x6358146);
    220. RCX = 0; // Special case
    221. RCX = _rotl64(RCX, 0x10);
    222. RCX ^= R9;
    223. RCX = (~RCX);
    224. if (is_bad_ptr((void*)(RCX + 0x9))) return 0xFFFFFFFFFFFFFFFF; RAX *= *(uint64_t*)(RCX + 0x9);
    225. RAX += RBX;
    226. RCX = RBX;
    227. RCX ^= R14;
    228. RAX -= RCX;
    229. RAX -= RBX;
    230. RAX -= RBX;
    231. RCX = RAX;
    232. RCX >>= 0xE;
    233. RAX ^= RCX;
    234. RCX = RAX;
    235. RCX >>= 0x1C;
    236. RAX ^= RCX;
    237. RCX = RAX;
    238. RCX >>= 0x38;
    239. RAX ^= RCX;
    240. RCX = 0x722B82C72992DE8D;
    241. RAX += RCX;
    242. RCX = 0x15F1C700407765FB;
    243. RAX *= RCX;
    244. return RAX;
    245. }
    246. case 6:
    247. {
    248. R14 = global::module_base + 0x34DF;
    249. R11 = global::module_base + 0x1C28A0E6;
    250. R9 = *(uint64_t*)(global::module_base + 0x6358146);
    251. RCX = RBX;
    252. RCX *= R14;
    253. RAX += RCX;
    254. RCX = R11;
    255. RCX = (~RCX);
    256. RCX ^= RBX;
    257. RAX += RCX;
    258. RCX = RAX;
    259. RCX >>= 0xC;
    260. RAX ^= RCX;
    261. RCX = RAX;
    262. RCX >>= 0x18;
    263. RAX ^= RCX;
    264. RCX = RAX;
    265. RCX >>= 0x30;
    266. RAX ^= RCX;
    267. RCX = 0xDE4968A1A719FFCB;
    268. RAX *= RCX;
    269. RCX = RBX;
    270. RCX = (~RCX);
    271. RCX -= global::module_base;
    272. RAX += RCX;
    273. RCX = 0xB556BEEBB66DDC7F;
    274. RAX *= RCX;
    275. RCX = 0x4D76CF5D1934D528;
    276. RAX -= RCX;
    277. RCX = 0; // Special case
    278. RCX = _rotl64(RCX, 0x10);
    279. RCX ^= R9;
    280. RCX = (~RCX);
    281. if (is_bad_ptr((void*)(RCX + 0x9))) return 0xFFFFFFFFFFFFFFFF; RCX = *(uint64_t*)(RCX + 0x9);
    282. RAX *= RCX;
    283. RCX = 0x56851AD3B48647AD;
    284. RAX -= RCX;
    285. return RAX;
    286. }
    287. case 7:
    288. {
    289. R10 = *(uint64_t*)(global::module_base + 0x6358146);
    290. R15 = global::module_base + 0x39C4;
    291. RCX = RAX;
    292. RCX >>= 0x16;
    293. RAX ^= RCX;
    294. RCX = RAX;
    295. RCX >>= 0x2C;
    296. RAX ^= RCX;
    297. RCX = global::module_base;
    298. RAX -= RCX;
    299. RCX = RAX;
    300. RCX >>= 0xF;
    301. RAX ^= RCX;
    302. RCX = RAX;
    303. RCX >>= 0x1E;
    304. RAX ^= RCX;
    305. RCX = RAX;
    306. RCX >>= 0x3C;
    307. RAX ^= RCX;
    308. RCX = 0x21FED6E262CAF0A5;
    309. RAX += RBX;
    310. RAX *= RCX;
    311. RCX = 0xC7C713F9414B5D6F;
    312. RAX *= RCX;
    313. RCX = RBX;
    314. RCX *= R15;
    315. RAX -= RCX;
    316. RCX = 0; // Special case
    317. RCX = _rotl64(RCX, 0x10);
    318. RCX ^= R10;
    319. RCX = (~RCX);
    320. if (is_bad_ptr((void*)(RCX + 0x9))) return 0xFFFFFFFFFFFFFFFF; RAX *= *(uint64_t*)(RCX + 0x9);
    321. return RAX;
    322. }
    323. case 8:
    324. {
    325. R11 = *(uint64_t*)(global::module_base + 0x6358146);
    326. RCX = RAX;
    327. RCX >>= 0x1E;
    328. RAX ^= RCX;
    329. RDX = RAX;
    330. RDX >>= 0x3C;
    331. RDX ^= RAX;
    332. RCX = global::module_base + 0x4761EFFA;
    333. RAX = RBX;
    334. RAX = (~RAX);
    335. RAX += RDX;
    336. RAX += RCX;
    337. RDX = global::module_base + 0x4D99E6C7;
    338. RCX = 0x146DB59CC1529DFB;
    339. RAX *= RCX;
    340. R8 = 0; // Special case
    341. RCX = 0x6560D27261FEC3CD;
    342. RAX -= RCX;
    343. R8 = _rotl64(R8, 0x10);
    344. R8 ^= R11;
    345. RCX = RBX;
    346. RCX *= RDX;
    347. RDX = RAX;
    348. R8 = (~R8);
    349. RDX ^= RCX;
    350. if (is_bad_ptr((void*)(R8 + 0x9))) return 0xFFFFFFFFFFFFFFFF; RAX = *(uint64_t*)(R8 + 0x9);
    351. RAX *= RDX;
    352. RCX = global::module_base;
    353. RAX ^= RCX;
    354. RCX = 0x88F7E80C1A3D810D;
    355. RAX ^= RCX;
    356. return RAX;
    357. }
    358. case 9:
    359. {
    360. R10 = *(uint64_t*)(global::module_base + 0x6358146);
    361. R14 = global::module_base + 0x2B3B97D6;
    362. RCX = R14;
    363. RCX = (~RCX);
    364. RCX ^= RBX;
    365. RAX -= RCX;
    366. RCX = RAX;
    367. RCX >>= 0x26;
    368. RAX ^= RCX;
    369. RCX = global::module_base;
    370. RCX += 0x768D9C44;
    371. RCX += RBX;
    372. RAX += RCX;
    373. RCX = global::module_base;
    374. RAX ^= RCX;
    375. RDX = 0; // Special case
    376. RCX = 0xB806EA076004BA03;
    377. RCX += RAX;
    378. RDX = _rotl64(RDX, 0x10);
    379. RDX ^= R10;
    380. RDX = (~RDX);
    381. if (is_bad_ptr((void*)(RDX + 0x9))) return 0xFFFFFFFFFFFFFFFF; RAX = *(uint64_t*)(RDX + 0x9);
    382. RAX *= RCX;
    383. RCX = 0xEDE8FF8B79B50DB9;
    384. RAX ^= RCX;
    385. RCX = 0x6FB6C9522E542E57;
    386. RAX *= RCX;
    387. return RAX;
    388. }
    389. case 10:
    390. {
    391. R14 = global::module_base + 0x30AA903C;
    392. R10 = *(uint64_t*)(global::module_base + 0x6358146);
    393. RDX = 0; // Special case
    394. RCX = global::module_base + 0x94AF;
    395. RDX = _rotl64(RDX, 0x10);
    396. RDX ^= R10;
    397. RDX = (~RDX);
    398. if (is_bad_ptr((void*)(RDX + 0x9))) return 0xFFFFFFFFFFFFFFFF; RDX = *(uint64_t*)(RDX + 0x9);
    399. RDX *= RAX;
    400. RAX = RBX;
    401. RAX = (~RAX);
    402. RAX += RDX;
    403. RAX += RCX;
    404. RCX = RAX;
    405. RCX >>= 0xC;
    406. RAX ^= RCX;
    407. RCX = RAX;
    408. RCX >>= 0x18;
    409. RAX ^= RCX;
    410. RCX = RAX;
    411. RCX >>= 0x30;
    412. RAX ^= RCX;
    413. RCX = 0xACC4BF01026ACA41;
    414. RAX *= RCX;
    415. RCX = 0x7B0FC59EF989D401;
    416. RAX *= RCX;
    417. RCX = RBX;
    418. RCX = (~RCX);
    419. RCX *= R14;
    420. RAX ^= RCX;
    421. RAX += RBX;
    422. RCX = 0xA7FA6EC3B6BE6B3;
    423. RAX *= RCX;
    424. return RAX;
    425. }
    426. case 11:
    427. {
    428. R10 = *(uint64_t*)(global::module_base + 0x6358146);
    429. R15 = global::module_base + 0x83A5;
    430. RAX ^= RBX;
    431. RCX = 0x40C12A8DB56F3975;
    432. RAX ^= RCX;
    433. RCX = 0; // Special case
    434. RCX = _rotl64(RCX, 0x10);
    435. RCX ^= R10;
    436. RCX = (~RCX);
    437. if (is_bad_ptr((void*)(RCX + 0x9))) return 0xFFFFFFFFFFFFFFFF; RAX *= *(uint64_t*)(RCX + 0x9);
    438. RCX = global::module_base + 0x4D9F690F;
    439. RCX = (~RCX);
    440. RCX *= RBX;
    441. RAX += RCX;
    442. RDX = RBX;
    443. RDX = (~RDX);
    444. RCX = global::module_base + 0x209B04FB;
    445. RCX = (~RCX);
    446. RDX *= RCX;
    447. RAX += RDX;
    448. RCX = RAX;
    449. RCX >>= 0x26;
    450. RAX ^= RCX;
    451. RCX = 0xFE5C09AC750B9363;
    452. RAX *= RCX;
    453. RCX = RBX;
    454. RCX *= R15;
    455. RAX -= RCX;
    456. return RAX;
    457. }
    458. case 12:
    459. {
    460. R10 = *(uint64_t*)(global::module_base + 0x6358146);
    461. RCX = RAX;
    462. RCX >>= 0x1;
    463. RAX ^= RCX;
    464. RCX = RAX;
    465. RCX >>= 0x2;
    466. RAX ^= RCX;
    467. RCX = RAX;
    468. RCX >>= 0x4;
    469. RAX ^= RCX;
    470. RCX = RAX;
    471. RCX >>= 0x8;
    472. RAX ^= RCX;
    473. RCX = RAX;
    474. RCX >>= 0x10;
    475. RAX ^= RCX;
    476. RCX = RAX;
    477. RCX >>= 0x20;
    478. RAX ^= RCX;
    479. RDX = RBX;
    480. RDX = (~RDX);
    481. RCX = global::module_base + 0x5871BC1F;
    482. RCX = (~RCX);
    483. RDX += RCX;
    484. RCX = 0x3D71B39825780613;
    485. RAX ^= RDX;
    486. RAX *= RCX;
    487. RCX = 0; // Special case
    488. RCX = _rotl64(RCX, 0x10);
    489. RCX ^= R10;
    490. RCX = (~RCX);
    491. if (is_bad_ptr((void*)(RCX + 0x9))) return 0xFFFFFFFFFFFFFFFF; RAX *= *(uint64_t*)(RCX + 0x9);
    492. RCX = global::module_base + 0x620C;
    493. RCX = (~RCX);
    494. RCX -= RBX;
    495. RAX ^= RCX;
    496. RCX = RAX;
    497. RCX >>= 0x1F;
    498. RAX ^= RCX;
    499. RCX = RAX;
    500. RCX >>= 0x3E;
    501. RAX ^= RCX;
    502. RCX = 0x94CCAF9E67675B86;
    503. RAX ^= RCX;
    504. RCX = 0xEEDDDC399380CB03;
    505. RAX *= RCX;
    506. return RAX;
    507. }
    508. case 13:
    509. {
    510. R10 = *(uint64_t*)(global::module_base + 0x6358146);
    511. R15 = global::module_base + 0x24DDB6C6;
    512. R14 = global::module_base + 0x44386CDB;
    513. RDX = RBX;
    514. RDX = (~RDX);
    515. RCX = R15;
    516. RCX = (~RCX);
    517. RDX += RCX;
    518. RAX ^= RDX;
    519. RCX = 0; // Special case
    520. RCX = _rotl64(RCX, 0x10);
    521. RCX ^= R10;
    522. RCX = (~RCX);
    523. if (is_bad_ptr((void*)(RCX + 0x9))) return 0xFFFFFFFFFFFFFFFF; RAX *= *(uint64_t*)(RCX + 0x9);
    524. RCX = RAX;
    525. RCX >>= 0x1D;
    526. RAX ^= RCX;
    527. RCX = RAX;
    528. RCX >>= 0x3A;
    529. RAX ^= RCX;
    530. RCX = RAX;
    531. RCX >>= 0xA;
    532. RAX ^= RCX;
    533. RCX = RAX;
    534. RCX >>= 0x14;
    535. RAX ^= RCX;
    536. RCX = RAX;
    537. RCX >>= 0x28;
    538. RAX ^= RCX;
    539. RCX = R14;
    540. RCX = (~RCX);
    541. RCX ^= RBX;
    542. RAX -= RCX;
    543. RCX = 0xA425934513878AA5;
    544. RAX ^= RCX;
    545. RCX = 0xEBB297007E6A6869;
    546. RAX *= RCX;
    547. RCX = 0x71D340402BC33382;
    548. RAX += RCX;
    549. return RAX;
    550. }
    551. case 14:
    552. {
    553. R9 = *(uint64_t*)(global::module_base + 0x6358146);
    554. RCX = global::module_base;
    555. RAX += RCX;
    556. RCX = global::module_base;
    557. RAX ^= RCX;
    558. RCX = 0x5B3DE4A99B478B9C;
    559. RAX -= RCX;
    560. RCX = RBX;
    561. RSP = global::module_base + 0x2F3E;
    562. RCX *= RSP;
    563. RAX += RCX;
    564. RCX = 0; // Special case
    565. RCX = _rotl64(RCX, 0x10);
    566. RCX ^= R9;
    567. RCX = (~RCX);
    568. if (is_bad_ptr((void*)(RCX + 0x9))) return 0xFFFFFFFFFFFFFFFF; RAX *= *(uint64_t*)(RCX + 0x9);
    569. RCX = 0xC04FC33339F325BD;
    570. RAX *= RCX;
    571. RCX = RAX;
    572. RCX >>= 0x22;
    573. RAX ^= RCX;
    574. RCX = global::module_base;
    575. RAX ^= RCX;
    576. return RAX;
    577. }
    578. case 15:
    579. {
    580. R11 = *(uint64_t*)(global::module_base + 0x6358146);
    581. R15 = global::module_base + 0x5FEE;
    582. RCX = RBX;
    583. RCX = (~RCX);
    584. RCX ^= R15;
    585. RAX += RCX;
    586. RCX = RAX;
    587. RCX >>= 0x22;
    588. RAX ^= RCX;
    589. RCX = RAX;
    590. RCX >>= 0x26;
    591. RAX ^= RCX;
    592. R8 = 0; // Special case
    593. R8 = _rotl64(R8, 0x10);
    594. RCX = global::module_base;
    595. RAX -= RCX;
    596. R8 ^= R11;
    597. R8 = (~R8);
    598. RDX = 0xD2E4E9A984CB1482;
    599. RDX += RAX;
    600. RDX += RBX;
    601. if (is_bad_ptr((void*)(R8 + 0x9))) return 0xFFFFFFFFFFFFFFFF; RAX = *(uint64_t*)(R8 + 0x9);
    602. RAX *= RDX;
    603. RCX = 0x668190FC03DA69F9;
    604. RAX *= RCX;
    605. RCX = 0x7DCF9F0915447B5B;
    606. RAX -= RCX;
    607. return RAX;
    608. }
    609. default:
    610. return 0;
    611. }
    612. }
    613. auto get_bone() -> uint64_t
    614. {
    615. uint64_t RAX = global::module_base, RBX = global::module_base, RCX = global::module_base, RDX = global::module_base, R8 = global::module_base, RDI = global::module_base, R9 = global::module_base, R10 = global::module_base, R11 = global::module_base, R12 = global::module_base, R13 = global::module_base, R14 = global::module_base, R15 = global::module_base, RSI = global::module_base, RSP = global::module_base, RBP = global::module_base;
    616. R8 = *(uint64_t*)(global::module_base + 0x152FB068);
    617. if (!R8)
    618. return 0;
    619. RBX = global::peb;
    620. // test r8,r8
    621. // je near ptr 0000000001BCDD14h
    622. RAX = RBX;
    623. RAX >>= 0x1F;
    624. RAX &= 0xF;
    625. switch (RAX)
    626. {
    627. case 0:
    628. {
    629. R10 = *(uint64_t*)(global::module_base + 0x6358219);
    630. RAX = global::module_base;
    631. R8 -= RAX;
    632. RAX = 0; // Special case
    633. RAX = _rotl64(RAX, 0x10);
    634. RAX ^= R10;
    635. RAX = _byteswap_uint64(RAX);
    636. if (is_bad_ptr((void*)(RAX + 0x11))) return 0xFFFFFFFFFFFFFFFF; R8 *= *(uint64_t*)(RAX + 0x11);
    637. RAX = R8;
    638. RAX >>= 0x1E;
    639. R8 ^= RAX;
    640. RAX = R8;
    641. RAX >>= 0x3C;
    642. R8 ^= RAX;
    643. RSP = 0x6E33B4D07235DCE1;
    644. R8 *= RSP;
    645. RAX = RBX;
    646. RBP = global::module_base + 0xA176;
    647. RAX *= RBP;
    648. R8 -= RAX;
    649. RAX = 0x1588F6554284D28E;
    650. R8 -= RAX;
    651. RCX = global::module_base;
    652. RAX = 0x4F8498C6B1335BDA;
    653. RAX -= RCX;
    654. R8 += RAX;
    655. return R8;
    656. }
    657. case 1:
    658. {
    659. R10 = *(uint64_t*)(global::module_base + 0x6358219);
    660. RAX = R8;
    661. RAX >>= 0x5;
    662. R8 ^= RAX;
    663. RAX = R8;
    664. RAX >>= 0xA;
    665. R8 ^= RAX;
    666. RAX = R8;
    667. RAX >>= 0x14;
    668. R8 ^= RAX;
    669. RAX = R8;
    670. RAX >>= 0x28;
    671. R8 ^= RAX;
    672. RAX = 0x2A67EE5D220D754A;
    673. R8 -= RAX;
    674. RAX = global::module_base + 0x6B86;
    675. RCX = RBX;
    676. RCX = (~RCX);
    677. RCX *= RAX;
    678. RAX = RBX;
    679. RCX += R8;
    680. R8 = global::module_base;
    681. RAX -= R8;
    682. R8 = RCX;
    683. RAX -= 0x42B8;
    684. R8 ^= RAX;
    685. RAX = R8;
    686. RAX >>= 0x7;
    687. R8 ^= RAX;
    688. RAX = R8;
    689. RAX >>= 0xE;
    690. R8 ^= RAX;
    691. RAX = R8;
    692. RAX >>= 0x1C;
    693. R8 ^= RAX;
    694. RAX = R8;
    695. RAX >>= 0x38;
    696. R8 ^= RAX;
    697. RAX = 0x239437FC18D83A9E;
    698. R8 ^= RAX;
    699. RAX = 0; // Special case
    700. RAX = _rotl64(RAX, 0x10);
    701. RAX ^= R10;
    702. RAX = _byteswap_uint64(RAX);
    703. if (is_bad_ptr((void*)(RAX + 0x11))) return 0xFFFFFFFFFFFFFFFF; RAX = *(uint64_t*)(RAX + 0x11);
    704. RSP = 0x4CB24DAE2BD35C1F;
    705. RAX *= RSP;
    706. R8 *= RAX;
    707. return R8;
    708. }
    709. case 2:
    710. {
    711. R11 = global::module_base + 0x65E6;
    712. R9 = *(uint64_t*)(global::module_base + 0x6358219);
    713. RAX = RBX;
    714. RAX ^= R11;
    715. R8 += RAX;
    716. RAX = 0xA04060743EEEC81;
    717. R8 ^= RAX;
    718. RAX = R8;
    719. RAX >>= 0x20;
    720. R8 ^= RAX;
    721. R8 -= RBX;
    722. RAX = global::module_base;
    723. R8 ^= RAX;
    724. RAX = 0xCAA0FFD0709BBB87;
    725. R8 *= RAX;
    726. RAX = 0x3C1E90309C0BE784;
    727. R8 ^= RAX;
    728. RAX = 0; // Special case
    729. RAX = _rotl64(RAX, 0x10);
    730. RAX ^= R9;
    731. RAX = _byteswap_uint64(RAX);
    732. if (is_bad_ptr((void*)(RAX + 0x11))) return 0xFFFFFFFFFFFFFFFF; R8 *= *(uint64_t*)(RAX + 0x11);
    733. return R8;
    734. }
    735. case 3:
    736. {
    737. R10 = *(uint64_t*)(global::module_base + 0x6358219);
    738. RAX = 0x540D0AF5F4CDB74B;
    739. RAX *= R8;
    740. R8 = global::module_base;
    741. RAX ^= R8;
    742. RCX = 0; // Special case
    743. RCX = _rotl64(RCX, 0x10);
    744. RCX ^= R10;
    745. RCX = _byteswap_uint64(RCX);
    746. if (is_bad_ptr((void*)(RCX + 0x11))) return 0xFFFFFFFFFFFFFFFF; R8 = *(uint64_t*)(RCX + 0x11);
    747. R8 *= RAX;
    748. RAX = global::module_base;
    749. RAX += 0x770D;
    750. RAX += RBX;
    751. R8 ^= RAX;
    752. RAX = global::module_base;
    753. R8 ^= RAX;
    754. RAX = RBX + 0x1;
    755. RSP = global::module_base + 0xEB6C;
    756. RAX *= RSP;
    757. R8 += RAX;
    758. RAX = R8;
    759. RAX >>= 0x5;
    760. R8 ^= RAX;
    761. RAX = R8;
    762. RAX >>= 0xA;
    763. R8 ^= RAX;
    764. RAX = R8;
    765. RAX >>= 0x14;
    766. R8 ^= RAX;
    767. RAX = R8;
    768. RAX >>= 0x28;
    769. R8 ^= RAX;
    770. RAX = R8;
    771. RAX >>= 0x27;
    772. R8 ^= RAX;
    773. return R8;
    774. }
    775. case 4:
    776. {
    777. R10 = *(uint64_t*)(global::module_base + 0x6358219);
    778. RAX = global::module_base;
    779. RAX += R8;
    780. RCX = 0; // Special case
    781. RCX = _rotl64(RCX, 0x10);
    782. RCX ^= R10;
    783. RCX = _byteswap_uint64(RCX);
    784. if (is_bad_ptr((void*)(RCX + 0x11))) return 0xFFFFFFFFFFFFFFFF; R8 = *(uint64_t*)(RCX + 0x11);
    785. R8 *= RAX;
    786. RCX = global::module_base + 0xAD05;
    787. RAX = R8;
    788. RAX >>= 0x1A;
    789. R8 ^= RAX;
    790. RAX = R8;
    791. RAX >>= 0x34;
    792. R8 ^= RAX;
    793. RAX = global::module_base + 0x316BDF41;
    794. RAX -= RBX;
    795. R8 += RAX;
    796. RAX = 0x86DB83FC703A9029;
    797. R8 *= RAX;
    798. R8 ^= RBX;
    799. R8 ^= RCX;
    800. RAX = 0xFAA4F606C5BA248C;
    801. R8 ^= RAX;
    802. RAX = 0x28AE5E481A72B2B3;
    803. R8 *= RAX;
    804. return R8;
    805. }
    806. case 5:
    807. {
    808. R9 = *(uint64_t*)(global::module_base + 0x6358219);
    809. RAX = 0; // Special case
    810. RAX = _rotl64(RAX, 0x10);
    811. RAX ^= R9;
    812. RAX = _byteswap_uint64(RAX);
    813. if (is_bad_ptr((void*)(RAX + 0x11))) return 0xFFFFFFFFFFFFFFFF; R8 *= *(uint64_t*)(RAX + 0x11);
    814. RAX = R8 + RBX;
    815. R8 = 0x1395E21D03239025;
    816. RAX += R8;
    817. R8 = global::module_base;
    818. R8 += RAX;
    819. RAX = global::module_base;
    820. R8 ^= RAX;
    821. RAX = R8;
    822. RAX >>= 0x21;
    823. R8 ^= RAX;
    824. RAX = global::module_base + 0x8A9B;
    825. R8 += RBX;
    826. R8 += RAX;
    827. R8 ^= RBX;
    828. RAX = 0xDFB38FA8F07B7E79;
    829. R8 *= RAX;
    830. return R8;
    831. }
    832. case 6:
    833. {
    834. R10 = *(uint64_t*)(global::module_base + 0x6358219);
    835. RAX = R8;
    836. RAX >>= 0xF;
    837. R8 ^= RAX;
    838. RAX = R8;
    839. RAX >>= 0x1E;
    840. R8 ^= RAX;
    841. RAX = R8;
    842. RAX >>= 0x3C;
    843. R8 ^= RAX;
    844. RAX = global::module_base;
    845. R8 ^= RAX;
    846. RAX = 0x19B16A317394149D;
    847. R8 ^= RAX;
    848. RAX = 0x6E8320546EF271ED;
    849. R8 *= RAX;
    850. RAX = 0x27C46D7702E18107;
    851. R8 *= RAX;
    852. RCX = 0; // Special case
    853. RCX = _rotl64(RCX, 0x10);
    854. RCX ^= R10;
    855. RCX = _byteswap_uint64(RCX);
    856. if (is_bad_ptr((void*)(RCX + 0x11))) return 0xFFFFFFFFFFFFFFFF; RCX = *(uint64_t*)(RCX + 0x11);
    857. RCX *= R8;
    858. R8 = global::module_base + 0xDA3A;
    859. R8 *= RBX;
    860. R8 += RCX;
    861. RAX = global::module_base + 0x1463840C;
    862. RAX -= RBX;
    863. R8 += RAX;
    864. return R8;
    865. }
    866. case 7:
    867. {
    868. R11 = global::module_base + 0x1F57940D;
    869. R9 = *(uint64_t*)(global::module_base + 0x6358219);
    870. RAX = R8;
    871. RAX >>= 0x17;
    872. R8 ^= RAX;
    873. RAX = R8;
    874. RAX >>= 0x2E;
    875. R8 ^= RAX;
    876. RAX = R11;
    877. RAX = (~RAX);
    878. RAX += RBX;
    879. R8 ^= RAX;
    880. RAX = R8;
    881. RAX >>= 0x1C;
    882. R8 ^= RAX;
    883. RAX = R8;
    884. RAX >>= 0x38;
    885. R8 ^= RAX;
    886. RAX = R8;
    887. RAX >>= 0x17;
    888. R8 ^= RAX;
    889. RAX = R8;
    890. RAX >>= 0x2E;
    891. R8 ^= RAX;
    892. RAX = 0; // Special case
    893. RAX = _rotl64(RAX, 0x10);
    894. RAX ^= R9;
    895. RAX = _byteswap_uint64(RAX);
    896. if (is_bad_ptr((void*)(RAX + 0x11))) return 0xFFFFFFFFFFFFFFFF; R8 *= *(uint64_t*)(RAX + 0x11);
    897. RAX = 0xC6F4A95E4EEDD47F;
    898. R8 *= RAX;
    899. RAX = global::module_base;
    900. R8 -= RAX;
    901. RAX = 0xAB801A1C78E324AD;
    902. R8 ^= RAX;
    903. return R8;
    904. }
    905. case 8:
    906. {
    907. R10 = *(uint64_t*)(global::module_base + 0x6358219);
    908. RCX = global::module_base + 0x3C70771D;
    909. RAX = global::module_base + 0x3548;
    910. RAX = (~RAX);
    911. RAX ^= RBX;
    912. R8 ^= RAX;
    913. R8 += RBX;
    914. R8 ^= RBX;
    915. RAX = 0xBD25B6162FFC4A37;
    916. R8 ^= RCX;
    917. R8 *= RAX;
    918. RAX = R8;
    919. RAX >>= 0x8;
    920. R8 ^= RAX;
    921. RAX = R8;
    922. RAX >>= 0x10;
    923. R8 ^= RAX;
    924. RAX = R8;
    925. RAX >>= 0x20;
    926. R8 ^= RAX;
    927. RCX = 0; // Special case
    928. RCX = _rotl64(RCX, 0x10);
    929. RAX = R8;
    930. RCX ^= R10;
    931. RAX -= RBX;
    932. RCX = _byteswap_uint64(RCX);
    933. if (is_bad_ptr((void*)(RCX + 0x11))) return 0xFFFFFFFFFFFFFFFF; R8 = *(uint64_t*)(RCX + 0x11);
    934. RCX = global::module_base + 0x573BDED9;
    935. R8 *= RAX;
    936. RAX = RBX;
    937. RAX *= RCX;
    938. R8 ^= RAX;
    939. return R8;
    940. }
    941. case 9:
    942. {
    943. R9 = *(uint64_t*)(global::module_base + 0x6358219);
    944. RAX = 0; // Special case
    945. RAX = _rotl64(RAX, 0x10);
    946. RAX ^= R9;
    947. RAX = _byteswap_uint64(RAX);
    948. if (is_bad_ptr((void*)(RAX + 0x11))) return 0xFFFFFFFFFFFFFFFF; R8 *= *(uint64_t*)(RAX + 0x11);
    949. RAX = R8;
    950. RAX >>= 0xC;
    951. R8 ^= RAX;
    952. RAX = R8;
    953. RAX >>= 0x18;
    954. R8 ^= RAX;
    955. RAX = R8;
    956. RAX >>= 0x30;
    957. R8 ^= RAX;
    958. RAX = R8;
    959. RAX >>= 0x12;
    960. R8 ^= RAX;
    961. RAX = R8;
    962. RAX >>= 0x24;
    963. R8 ^= RAX;
    964. R8 += RBX;
    965. RAX = R8;
    966. RAX >>= 0x23;
    967. R8 ^= RAX;
    968. RAX = 0x7E3E416EF7F1D741;
    969. R8 *= RAX;
    970. RAX = 0xF617ED5B72E590DE;
    971. R8 ^= RAX;
    972. RAX = 0x818141D2E8EA7F6F;
    973. R8 *= RAX;
    974. return R8;
    975. }
    976. case 10:
    977. {
    978. R10 = *(uint64_t*)(global::module_base + 0x6358219);
    979. RAX = global::module_base;
    980. R8 ^= RAX;
    981. RAX = R8;
    982. RAX >>= 0x28;
    983. R8 ^= RAX;
    984. RAX = global::module_base;
    985. R8 -= RAX;
    986. RCX = 0; // Special case
    987. RAX = R8;
    988. RCX = _rotl64(RCX, 0x10);
    989. RAX >>= 0x20;
    990. RCX ^= R10;
    991. RAX ^= R8;
    992. RCX = _byteswap_uint64(RCX);
    993. if (is_bad_ptr((void*)(RCX + 0x11))) return 0xFFFFFFFFFFFFFFFF; R8 = *(uint64_t*)(RCX + 0x11);
    994. R8 *= RAX;
    995. RAX = 0xF37BC628D4B58CF3;
    996. R8 *= RAX;
    997. RAX = 0x2A8C713B6A73DA4D;
    998. R8 += RAX;
    999. RAX = 0x7122022471FD76A7;
    1000. R8 ^= RAX;
    1001. return R8;
    1002. }
    1003. case 11:
    1004. {
    1005. R10 = *(uint64_t*)(global::module_base + 0x6358219);
    1006. R11 = global::module_base + 0x2E006611;
    1007. RAX = 0xC7B1BEFAE1F9E327;
    1008. R8 *= RAX;
    1009. R8 += R11;
    1010. RCX = RBX;
    1011. RCX = (~RCX);
    1012. R8 += RCX;
    1013. RAX = 0; // Special case
    1014. RAX = _rotl64(RAX, 0x10);
    1015. RAX ^= R10;
    1016. RAX = _byteswap_uint64(RAX);
    1017. if (is_bad_ptr((void*)(RAX + 0x11))) return 0xFFFFFFFFFFFFFFFF; R8 *= *(uint64_t*)(RAX + 0x11);
    1018. R8 -= global::module_base;
    1019. RAX = global::module_base;
    1020. RAX += 0xEEE7;
    1021. RAX += RBX;
    1022. RAX ^= R8;
    1023. R8 = RAX;
    1024. RAX >>= 0x1A;
    1025. R8 ^= RAX;
    1026. RAX = R8;
    1027. RAX >>= 0x34;
    1028. R8 ^= RAX;
    1029. R8 += RBX;
    1030. RAX = global::module_base + 0x1E776935;
    1031. RAX -= RBX;
    1032. R8 ^= RAX;
    1033. return R8;
    1034. }
    1035. case 12:
    1036. {
    1037. R9 = *(uint64_t*)(global::module_base + 0x6358219);
    1038. RAX = R8;
    1039. RAX >>= 0x11;
    1040. R8 ^= RAX;
    1041. RAX = R8;
    1042. RAX >>= 0x22;
    1043. R8 ^= RAX;
    1044. RAX = 0; // Special case
    1045. RAX = _rotl64(RAX, 0x10);
    1046. RAX ^= R9;
    1047. RAX = _byteswap_uint64(RAX);
    1048. if (is_bad_ptr((void*)(RAX + 0x11))) return 0xFFFFFFFFFFFFFFFF; R8 *= *(uint64_t*)(RAX + 0x11);
    1049. RAX = R8;
    1050. RAX >>= 0x8;
    1051. R8 ^= RAX;
    1052. RAX = R8;
    1053. RAX >>= 0x10;
    1054. R8 ^= RAX;
    1055. RAX = R8;
    1056. RAX >>= 0x20;
    1057. R8 ^= RAX;
    1058. RAX = 0xD3A76E77D0439A87;
    1059. R8 ^= RAX;
    1060. RAX = R8;
    1061. RAX >>= 0x17;
    1062. R8 ^= RAX;
    1063. RAX = R8;
    1064. RAX >>= 0x2E;
    1065. R8 ^= RAX;
    1066. RAX = R8;
    1067. RAX >>= 0x27;
    1068. R8 ^= RAX;
    1069. RAX = 0xE7C759589C81E2D1;
    1070. R8 *= RAX;
    1071. RAX = 0x92D8F3E599FB6C55;
    1072. R8 *= RAX;
    1073. return R8;
    1074. }
    1075. case 13:
    1076. {
    1077. R10 = *(uint64_t*)(global::module_base + 0x6358219);
    1078. RAX = 0xEDE0ED52BA16A73B;
    1079. R8 *= RAX;
    1080. RAX = R8;
    1081. RAX >>= 0x1C;
    1082. R8 ^= RAX;
    1083. RAX = R8;
    1084. RAX >>= 0x38;
    1085. R8 ^= RAX;
    1086. R8 += RBX;
    1087. RAX = 0x40F028F390F9B4DB;
    1088. R8 *= RAX;
    1089. R8 ^= RBX;
    1090. RAX = global::module_base;
    1091. R8 -= RAX;
    1092. RAX = 0; // Special case
    1093. RAX = _rotl64(RAX, 0x10);
    1094. RAX ^= R10;
    1095. RAX = _byteswap_uint64(RAX);
    1096. if (is_bad_ptr((void*)(RAX + 0x11))) return 0xFFFFFFFFFFFFFFFF; RAX = *(uint64_t*)(RAX + 0x11);
    1097. R8 *= RAX;
    1098. RAX = global::module_base;
    1099. R8 ^= RAX;
    1100. return R8;
    1101. }
    1102. case 14:
    1103. {
    1104. R9 = *(uint64_t*)(global::module_base + 0x6358219);
    1105. RAX = 0; // Special case
    1106. RAX = _rotl64(RAX, 0x10);
    1107. RAX ^= R9;
    1108. RAX = _byteswap_uint64(RAX);
    1109. if (is_bad_ptr((void*)(RAX + 0x11))) return 0xFFFFFFFFFFFFFFFF; R8 *= *(uint64_t*)(RAX + 0x11);
    1110. RAX = RBX;
    1111. RBP = global::module_base + 0xA494;
    1112. RAX ^= RBP;
    1113. R8 += RAX;
    1114. R8 ^= RBX;
    1115. RAX = 0x44F06411130D8786;
    1116. R8 -= RAX;
    1117. RAX = RBX;
    1118. RAX = (~RAX);
    1119. RBP = global::module_base + 0x1F68E2F6;
    1120. RAX ^= RBP;
    1121. R8 -= RAX;
    1122. RAX = 0x72F146FB8657DB4D;
    1123. R8 *= RAX;
    1124. RAX = R8;
    1125. RAX >>= 0x15;
    1126. R8 ^= RAX;
    1127. RAX = R8;
    1128. RAX >>= 0x2A;
    1129. R8 ^= RAX;
    1130. RAX = 0x25EA3844D16C50F1;
    1131. R8 += RAX;
    1132. return R8;
    1133. }
    1134. case 15:
    1135. {
    1136. R12 = global::module_base + 0x6ED429A4;
    1137. R11 = *(uint64_t*)(global::module_base + 0x6358219);
    1138. RAX = RBX;
    1139. RAX *= R12;
    1140. R8 -= RAX;
    1141. RAX = 0x16E71D0785BF5E85;
    1142. R8 *= RAX;
    1143. RAX = 0x164272E1C98C0650;
    1144. R8 -= RAX;
    1145. RAX = R8;
    1146. RAX >>= 0x26;
    1147. R8 ^= RAX;
    1148. RAX = R8;
    1149. RAX >>= 0x12;
    1150. R8 ^= RAX;
    1151. RAX = R8;
    1152. RAX >>= 0x24;
    1153. RAX ^= R8;
    1154. RDX = 0; // Special case
    1155. RDX = _rotl64(RDX, 0x10);
    1156. R8 = global::module_base + 0x253C;
    1157. RDX ^= R11;
    1158. RCX = RBX;
    1159. RDX = _byteswap_uint64(RDX);
    1160. RCX = (~RCX);
    1161. if (is_bad_ptr((void*)(RDX + 0x11))) return 0xFFFFFFFFFFFFFFFF; RDX = *(uint64_t*)(RDX + 0x11);
    1162. RDX *= RAX;
    1163. R8 += RDX;
    1164. R8 += RCX;
    1165. RAX = R8;
    1166. RAX >>= 0x13;
    1167. R8 ^= RAX;
    1168. RAX = R8;
    1169. RAX >>= 0x26;
    1170. R8 ^= RAX;
    1171. return R8;
    1172. }
    1173. default:
    1174. return 0;
    1175. }
    1176. }
    1177. auto get_bone_index(uint32_t index) -> uint64_t
    1178. {
    1179. uint64_t RAX = 0, RBX = 0, RCX = 0, RDX = 0, R8 = 0, RDI = 0, R9 = 0, R10 = 0, R11 = 0, R12 = 0, R13 = 0, R14 = 0, RSI = 0, RSP = 0, RBP = 0;
    1180. RBX = index;
    1181. RCX = RBX * 0x13C8;
    1182. RAX = 0x4F23479A4BA8FAB5;
    1183. R11 = global::module_base;
    1184. RAX = _umul128(RAX, RCX, &RDX);
    1185. R10 = 0x33B1DA233CBB3105;
    1186. RDX >>= 0xB;
    1187. RAX = RDX * 0x19E1;
    1188. RCX -= RAX;
    1189. RAX = 0xF598CEFB88707C3D;
    1190. R8 = RCX * 0x19E1;
    1191. RAX = _umul128(RAX, R8, &RDX);
    1192. RDX >>= 0xD;
    1193. RAX = RDX * 0x215B;
    1194. R8 -= RAX;
    1195. RAX = 0xEA0EA0EA0EA0EA0F;
    1196. RAX = _umul128(RAX, R8, &RDX);
    1197. RAX = 0x948B0FCD6E9E0653;
    1198. RDX >>= 0x5;
    1199. RCX = RDX * 0x23;
    1200. RAX = _umul128(RAX, R8, &RDX);
    1201. RAX = R8;
    1202. RAX -= RDX;
    1203. RAX >>= 0x1;
    1204. RAX += RDX;
    1205. RAX >>= 0x8;
    1206. RCX += RAX;
    1207. RAX = RCX * 0x288;
    1208. RCX = R8 * 0x28A;
    1209. RCX -= RAX;
    1210. RAX = *(uint16_t*)(RCX + R11 + 0x6362050);
    1211. R8 = RAX * 0x13C8;
    1212. RAX = R10;
    1213. RAX = _umul128(RAX, R8, &RDX);
    1214. RAX = R10;
    1215. RDX >>= 0xA;
    1216. RCX = RDX * 0x13CF;
    1217. R8 -= RCX;
    1218. R9 = R8 * 0x164B;
    1219. RAX = _umul128(RAX, R9, &RDX);
    1220. RDX >>= 0xA;
    1221. RAX = RDX * 0x13CF;
    1222. R9 -= RAX;
    1223. RAX = 0x97B425ED097B425F;
    1224. RAX = _umul128(RAX, R9, &RDX);
    1225. RAX = 0x83C977AB2BEDD28F;
    1226. RDX >>= 0x5;
    1227. RCX = RDX * 0x36;
    1228. RAX = _umul128(RAX, R9, &RDX);
    1229. RAX = R9;
    1230. RAX -= RDX;
    1231. RAX >>= 0x1;
    1232. RAX += RDX;
    1233. RAX >>= 0x7;
    1234. RCX += RAX;
    1235. RAX = RCX * 0x152;
    1236. RCX = R9 * 0x154;
    1237. RCX -= RAX;
    1238. RSI = *(uint16_t*)(RCX + R11 + 0x63678F0);
    1239. return RSI;
    1240. }
    1241. }