1. uint64_t REFDEF = 0x17364048;
    2. uint64_t NAME_ARRAY = 0x1736F638;
    3. uint64_t NAME_LIST_OFFSET = 0x4C70;
    4. uint64_t CAMERA_POINTER = 0x144AE7E0;
    5. uint64_t CAMERA_OFFSET = 0x1D8;
    6. uint64_t NO_RECOIL = 0x3F7C;
    7. uint64_t GAME_MODE = 0x16F979E8;
    8. ULONG64 COMMAND_QUEUE = 0x18DAED28;
    9. ULONG64 SWAPCHAIN = 0x18DB40A0;
    10. namespace player
    11. {
    12. uint64_t SIZE = 0x3AC0;
    13. uint64_t POS = 0x3A40;
    14. uint64_t STANCE = 0x1B0;
    15. }
    1. uint64_t GetClientInfo(uint64_t peb, uint64_t moduleBase) {
    2. uint64_t rax = 0, rbx = 0, rcx = 0, rdx = 0, rdi = 0, rsi = 0, r8 = 0, r9 = 0, r10 = 0, r11 = 0, r12 = 0, r13 = 0, r14 = 0, r15 = 0, rbp = 0;
    3. rbx = *(ULONG64*)(moduleBase + 0x17361698);
    4. rdx = moduleBase;
    5. rcx = (moduleBase + 0x119);
    6. rax -= rcx;
    7. rcx = 0x80C41CB925669EA9;
    8. rax = 0; // bruh
    9. rax = _rotl64(rax, 0x10);
    10. rax ^= *(ULONG64*)(moduleBase + 0x64F3111);
    11. rax = (~rax);
    12. rax = *(ULONG64*)(rax + 0xf);
    13. rbx *= rax;
    14. rax = rdx;
    15. rbx *= rcx;
    16. rcx = 0xD36DDA3E4AA0BDCA;
    17. rax *= rcx;
    18. rbx += rax;
    19. rax = rbx;
    20. rax >>= 0x15;
    21. rbx ^= rax;
    22. rax = rbx;
    23. rax >>= 0x2A;
    24. rbx ^= rax;
    25. return rbx;
    26. }
    1. ULONG64 GetClientBase(ULONG64 Peb, ULONG64 moduleBase, ULONG64 clientInfo)
    2. {
    3. ULONG64 rax = moduleBase, rcx = moduleBase, rdx = moduleBase, r8 = moduleBase, r9 = moduleBase, r10 = moduleBase, r11 = moduleBase, r12 = moduleBase, r13 = moduleBase, r14 = moduleBase, r15 = moduleBase, rsi = moduleBase, rdi = moduleBase; // hardcoded lol
    4. ULONG64 rbx = Peb;
    5. rax = *(ULONG64*)(clientInfo + 0x9dbf8);
    6. if (!rax)
    7. return 0;
    8. rcx = rbx;
    9. rcx = _rotr64(rcx, 0xc);
    10. rcx &= 0xf;
    11. switch (rcx)
    12. {
    13. case 0:
    14. { r15 = (moduleBase + 0xE073);
    15. r10 = *(ULONG64*)(moduleBase + 0x64F3151);
    16. rcx = 0xC096CF10DE8689D3;
    17. rax *= rcx;
    18. rcx = moduleBase;
    19. rax ^= rcx;
    20. rcx = r15;
    21. rcx = (~rcx);
    22. rcx ^= rbx;
    23. rax += rcx;
    24. rcx = rax;
    25. rcx >>= 0x14;
    26. rax ^= rcx;
    27. rcx = rax;
    28. rcx >>= 0x28;
    29. rax ^= rcx;
    30. rcx = 0x280B03F4B0F3B68F;
    31. rax *= rcx;
    32. rcx = 0; // bruh
    33. rcx = _rotl64(rcx, 0x10);
    34. rcx ^= r10;
    35. rcx = _byteswap_uint64(rcx);
    36. rax *= *(ULONG64*)(rcx + 0x17);
    37. rcx = 0x68A75EAE8934327D;
    38. rax *= rcx;
    39. rcx = rax;
    40. rcx >>= 0xF;
    41. rax ^= rcx;
    42. rcx = rax;
    43. rcx >>= 0x1E;
    44. rax ^= rcx;
    45. rcx = rax;
    46. rcx >>= 0x3C;
    47. rax ^= rcx;
    48. return rax;
    49. }
    50. case 1:
    51. { r9 = *(ULONG64*)(moduleBase + 0x64F3151);
    52. rcx = 0x17DFEB1D2C063EAC;
    53. rax += rcx;
    54. rax += rbx;
    55. rcx = rax;
    56. rcx >>= 0x22;
    57. rax ^= rcx;
    58. rcx = moduleBase;
    59. rcx += 0x3EBC;
    60. rax += rcx;
    61. rcx = 0x71DD72B757A12891;
    62. rax *= rcx;
    63. rcx = rbx;
    64. rcx *= 0x1C451A9150BDAEDE;
    65. rax += rcx;
    66. rcx = 0; // bruh
    67. rcx = _rotl64(rcx, 0x10);
    68. rcx ^= r9;
    69. rcx = _byteswap_uint64(rcx);
    70. rcx = *(ULONG64*)(rcx + 0x17);
    71. rax *= rcx;
    72. rcx = 0xE9613C2AD0CC772;
    73. rax += rcx;
    74. return rax;
    75. }
    76. case 2:
    77. { r15 = (moduleBase + 0xEA02);
    78. r10 = *(ULONG64*)(moduleBase + 0x64F3151);
    79. rcx = 0xD57E253FE20474D7;
    80. rax *= rcx;
    81. rcx = 0x7A73F903F71B0490;
    82. rax += rcx;
    83. rcx = 0x295BF6687EEB48B9;
    84. rax ^= rcx;
    85. rcx = r15;
    86. rcx = (~rcx);
    87. rcx ^= rbx;
    88. rax ^= rcx;
    89. rcx = moduleBase;
    90. rax += rcx;
    91. rcx = 0; // bruh
    92. rcx = _rotl64(rcx, 0x10);
    93. rcx ^= r10;
    94. rcx = _byteswap_uint64(rcx);
    95. rax *= *(ULONG64*)(rcx + 0x17);
    96. rcx = rax;
    97. rcx >>= 0xE;
    98. rax ^= rcx;
    99. rcx = rax;
    100. rcx >>= 0x1C;
    101. rax ^= rcx;
    102. rcx = rax;
    103. rcx >>= 0x38;
    104. rax ^= rcx;
    105. rcx = moduleBase;
    106. rax += rcx;
    107. return rax;
    108. }
    109. case 3:
    110. { r10 = *(ULONG64*)(moduleBase + 0x64F3151);
    111. r11 = (moduleBase + 0x73EF);
    112. rcx = rbx;
    113. rcx ^= rax;
    114. rdx = 0; // bruh
    115. rdx = _rotl64(rdx, 0x10);
    116. rdx ^= r10;
    117. rdx = _byteswap_uint64(rdx);
    118. rax = *(ULONG64*)(rdx + 0x17);
    119. rax *= rcx;
    120. rcx = 0x4F381FE1689D0918;
    121. rax += rcx;
    122. rdx = rbx;
    123. rdx = (~rdx);
    124. rcx = r11;
    125. rcx = (~rcx);
    126. rdx *= rcx;
    127. rcx = 0x864F279963B311D1;
    128. rax += rdx;
    129. rax *= rcx;
    130. rcx = rax;
    131. rcx >>= 0x13;
    132. rax ^= rcx;
    133. rcx = rax;
    134. rcx >>= 0x26;
    135. rax ^= rcx;
    136. rcx = (moduleBase + 0x2C0C8046);
    137. rax += rbx;
    138. rax += rcx;
    139. rcx = moduleBase;
    140. rax ^= rcx;
    141. return rax;
    142. }
    143. case 4:
    144. { r10 = *(ULONG64*)(moduleBase + 0x64F3151);
    145. r15 = (moduleBase + 0xC93C);
    146. rcx = 0x5D021C29E1E1E9F7;
    147. rax *= rcx;
    148. rcx = rax;
    149. rcx >>= 0x9;
    150. rax ^= rcx;
    151. rcx = rax;
    152. rcx >>= 0x12;
    153. rax ^= rcx;
    154. rcx = rax;
    155. rcx >>= 0x24;
    156. rax ^= rcx;
    157. rcx = rbx;
    158. rcx *= r15;
    159. rax -= rcx;
    160. rdx = 0; // bruh
    161. rdx = _rotl64(rdx, 0x10);
    162. rdx ^= r10;
    163. rcx = (moduleBase + 0x1333);
    164. rcx = (~rcx);
    165. rcx += rbx;
    166. rcx ^= rax;
    167. rdx = _byteswap_uint64(rdx);
    168. rax = *(ULONG64*)(rdx + 0x17);
    169. rax *= rcx;
    170. rax += rbx;
    171. rcx = 0x30EC9FDD47A31DAD;
    172. rax *= rcx;
    173. return rax;
    174. }
    175. case 5:
    176. { r10 = *(ULONG64*)(moduleBase + 0x64F3151);
    177. rcx = 0x89E987B7D3FF2349;
    178. rax *= rcx;
    179. rax += rbx;
    180. rcx = (moduleBase + 0x4AA14AC6);
    181. rcx -= rbx;
    182. rax += rcx;
    183. rcx = rax;
    184. rax = 0x4992A224B564EF0F;
    185. rcx ^= rax;
    186. rdx = 0; // bruh
    187. rdx = _rotl64(rdx, 0x10);
    188. rdx ^= r10;
    189. rdx = _byteswap_uint64(rdx);
    190. rax = *(ULONG64*)(rdx + 0x17);
    191. rax *= rcx;
    192. rdx = (moduleBase + 0x1CAA3A3D);
    193. rcx = rbx;
    194. rcx ^= rdx;
    195. rax += rcx;
    196. rcx = 0x6A9371DFE8ECACA3;
    197. rax ^= rcx;
    198. rcx = rax;
    199. rcx >>= 0x9;
    200. rax ^= rcx;
    201. rcx = rax;
    202. rcx >>= 0x12;
    203. rax ^= rcx;
    204. rcx = rax;
    205. rcx >>= 0x24;
    206. rax ^= rcx;
    207. return rax;
    208. }
    209. case 6:
    210. { r10 = *(ULONG64*)(moduleBase + 0x64F3151);
    211. rdx = 0; // bruh
    212. rcx = rax;
    213. rdx = _rotl64(rdx, 0x10);
    214. rdx ^= r10;
    215. rcx >>= 0x24;
    216. rcx ^= rax;
    217. rdx = _byteswap_uint64(rdx);
    218. rax = *(ULONG64*)(rdx + 0x17);
    219. rax *= rcx;
    220. rcx = rax;
    221. rcx >>= 0x21;
    222. rax ^= rcx;
    223. rcx = moduleBase;
    224. rax -= rcx;
    225. rcx = 0x4A833B8C7E7D0F71;
    226. rax *= rcx;
    227. rcx = 0x89847598578DBD8D;
    228. rax *= rcx;
    229. rcx = 0xB517CBA5E92ED78D;
    230. rax *= rcx;
    231. rax -= rbx;
    232. return rax;
    233. }
    234. case 7:
    235. { r9 = *(ULONG64*)(moduleBase + 0x64F3151);
    236. rcx = 0; // bruh
    237. rcx = _rotl64(rcx, 0x10);
    238. rcx ^= r9;
    239. rcx = _byteswap_uint64(rcx);
    240. rax *= *(ULONG64*)(rcx + 0x17);
    241. rcx = rax;
    242. rcx >>= 0x1C;
    243. rax ^= rcx;
    244. rcx = rax;
    245. rcx >>= 0x38;
    246. rax ^= rcx;
    247. rcx = rax;
    248. rcx >>= 0x20;
    249. rax ^= rcx;
    250. rcx = 0xFFFFFFFFFFFF0625;
    251. rcx -= rbx;
    252. rax += rcx;
    253. rcx = 0x9FB04FA859F9BFDD;
    254. rax *= rcx;
    255. rcx = rax;
    256. rcx >>= 0x13;
    257. rax ^= rcx;
    258. rcx = rax;
    259. rcx >>= 0x26;
    260. rax ^= rcx;
    261. rcx = 0xF6D1765B568147FA;
    262. rax ^= rcx;
    263. rcx = 0x64D8BDF4C4807346;
    264. rax ^= rcx;
    265. return rax;
    266. }
    267. case 8:
    268. { r15 = (moduleBase + 0x1D55);
    269. r14 = (moduleBase + 0x3C3D38A5);
    270. r10 = *(ULONG64*)(moduleBase + 0x64F3151);
    271. rdx = rbx;
    272. rdx = (~rdx);
    273. rcx = (moduleBase + 0x476B5F12);
    274. rcx = (~rcx);
    275. rdx += rcx;
    276. rcx = 0x7613B8419A2453D9;
    277. rax ^= rdx;
    278. rdx = (moduleBase + 0x223);
    279. rax *= rcx;
    280. rcx = rbx;
    281. rcx ^= rdx;
    282. rax -= rcx;
    283. rcx = r14;
    284. rcx = (~rcx);
    285. rcx += rbx;
    286. rax += rcx;
    287. rcx = rax;
    288. rcx >>= 0x23;
    289. rax ^= rcx;
    290. rcx = rbx;
    291. rcx = (~rcx);
    292. rcx *= r15;
    293. rax ^= rcx;
    294. rcx = 0; // bruh
    295. rcx = _rotl64(rcx, 0x10);
    296. rcx ^= r10;
    297. rcx = _byteswap_uint64(rcx);
    298. rax *= *(ULONG64*)(rcx + 0x17);
    299. rcx = (moduleBase + 0xF1DC);
    300. rcx = (~rcx);
    301. rcx -= rbx;
    302. rax += rcx;
    303. return rax;
    304. }
    305. case 9:
    306. { r11 = (moduleBase + 0x3E15FB71);
    307. r9 = *(ULONG64*)(moduleBase + 0x64F3151);
    308. rcx = 0; // bruh
    309. rcx = _rotl64(rcx, 0x10);
    310. rcx ^= r9;
    311. rcx = _byteswap_uint64(rcx);
    312. rax *= *(ULONG64*)(rcx + 0x17);
    313. rax ^= rbx;
    314. rcx = 0x70E0519D70D558A7;
    315. rax ^= rcx;
    316. rcx = rax;
    317. rcx >>= 0x21;
    318. rax ^= rcx;
    319. rcx = moduleBase;
    320. rax -= rcx;
    321. rcx = rbx + 0x1;
    322. rcx *= r11;
    323. rax += rcx;
    324. rcx = moduleBase;
    325. rcx += 0x4B8F;
    326. rcx += rbx;
    327. rax ^= rcx;
    328. rcx = 0x914A1F5941B8D72F;
    329. rax *= rcx;
    330. return rax;
    331. }
    332. case 10:
    333. { r15 = (moduleBase + 0x51D442F4);
    334. r10 = *(ULONG64*)(moduleBase + 0x64F3151);
    335. rax -= rbx;
    336. rcx = 0xE861502497847345;
    337. rax ^= rcx;
    338. rcx = rax;
    339. rcx >>= 0xA;
    340. rax ^= rcx;
    341. rcx = rax;
    342. rcx >>= 0x14;
    343. rax ^= rcx;
    344. rcx = rax;
    345. rcx >>= 0x28;
    346. rax ^= rcx;
    347. rcx = 0x564048AB2263C98;
    348. rax -= rcx;
    349. rcx = rbx + 0x1;
    350. rcx *= r15;
    351. rax += rcx;
    352. rcx = rax;
    353. rcx >>= 0x25;
    354. rax ^= rcx;
    355. rcx = 0; // bruh
    356. rcx = _rotl64(rcx, 0x10);
    357. rcx ^= r10;
    358. rcx = _byteswap_uint64(rcx);
    359. rax *= *(ULONG64*)(rcx + 0x17);
    360. rcx = 0x2A67BEF7A9C1C769;
    361. rax *= rcx;
    362. return rax;
    363. }
    364. case 11:
    365. { r11 = *(ULONG64*)(moduleBase + 0x64F3151);
    366. r15 = (moduleBase + 0xB8DA);
    367. rcx = 0x904EFDADB728EB0F;
    368. rax *= rcx;
    369. rcx = rax;
    370. rcx >>= 0x16;
    371. rax ^= rcx;
    372. rdx = rbx;
    373. rcx = moduleBase;
    374. rdx -= rcx;
    375. rcx = rax;
    376. rcx >>= 0x2C;
    377. rdx -= 0x7D4E3BE9;
    378. rdx ^= rcx;
    379. rcx = (moduleBase + 0xD009);
    380. rax ^= rdx;
    381. rcx = (~rcx);
    382. rax -= rbx;
    383. rax += rcx;
    384. rdx = (moduleBase + 0x65949A5B);
    385. r8 = 0; // bruh
    386. r8 = _rotl64(r8, 0x10);
    387. r8 ^= r11;
    388. rcx = rbx;
    389. rcx *= rdx;
    390. rdx = rax;
    391. r8 = _byteswap_uint64(r8);
    392. rdx -= rcx;
    393. rax = *(ULONG64*)(r8 + 0x17);
    394. rax *= rdx;
    395. rax += rbx;
    396. rcx = rbx;
    397. rcx = (~rcx);
    398. rcx *= r15;
    399. rax += rcx;
    400. return rax;
    401. }
    402. case 12:
    403. { r14 = (moduleBase + 0xAD94);
    404. r10 = *(ULONG64*)(moduleBase + 0x64F3151);
    405. rcx = rax;
    406. rdx = 0; // bruh
    407. rcx >>= 0x21;
    408. rcx ^= rax;
    409. rdx = _rotl64(rdx, 0x10);
    410. rdx ^= r10;
    411. rcx += rbx;
    412. rdx = _byteswap_uint64(rdx);
    413. rax = 0x3C3BB30C564EB9C1;
    414. rcx ^= rax;
    415. rax = *(ULONG64*)(rdx + 0x17);
    416. rax *= rcx;
    417. rcx = rax;
    418. rcx >>= 0x1E;
    419. rax ^= rcx;
    420. rcx = rax;
    421. rcx >>= 0x3C;
    422. rax ^= rcx;
    423. rcx = 0xFC8F9DC775D96719;
    424. rax *= rcx;
    425. rcx = r14;
    426. rcx = (~rcx);
    427. rcx ^= rbx;
    428. rax ^= rcx;
    429. rcx = moduleBase;
    430. rax += rcx;
    431. return rax;
    432. }
    433. case 13:
    434. { r14 = (moduleBase + 0x4A10D1D8);
    435. rdx = *(ULONG64*)(moduleBase + 0x64F3151);
    436. rcx = rbx;
    437. rcx = (~rcx);
    438. rax ^= rcx;
    439. rax ^= r14;
    440. rcx = 0; // bruh
    441. rcx = _rotl64(rcx, 0x10);
    442. rcx ^= rdx;
    443. rcx = _byteswap_uint64(rcx);
    444. rax *= *(ULONG64*)(rcx + 0x17);
    445. rcx = 0x73AB7F806587F54D;
    446. rax *= rcx;
    447. rcx = 0x56AD9C9D0047297E;
    448. rax -= rcx;
    449. rcx = rax;
    450. rcx >>= 0x28;
    451. rax ^= rcx;
    452. rcx = (moduleBase + 0x8CA7);
    453. rax += rbx;
    454. rax += rcx;
    455. rcx = 0x57B2AC1A9133B24E;
    456. rax ^= rcx;
    457. rcx = rax;
    458. rcx >>= 0x7;
    459. rax ^= rcx;
    460. rcx = rax;
    461. rcx >>= 0xE;
    462. rax ^= rcx;
    463. rcx = rax;
    464. rcx >>= 0x1C;
    465. rax ^= rcx;
    466. rcx = rax;
    467. rcx >>= 0x38;
    468. rax ^= rcx;
    469. return rax;
    470. }
    471. case 14:
    472. { r11 = *(ULONG64*)(moduleBase + 0x64F3151);
    473. rcx = (moduleBase + 0xD011);
    474. rcx -= rbx;
    475. rax += rcx;
    476. rcx = rax;
    477. rcx >>= 0x26;
    478. rax ^= rcx;
    479. rcx = 0x35B06207AE939BF1;
    480. rax *= rcx;
    481. rcx = 0x58D99333C4EF82F3;
    482. rax += rcx;
    483. rdx = 0; // bruh
    484. rcx = 0x64DE42EA1B63F851;
    485. rdx = _rotl64(rdx, 0x10);
    486. rcx += rax;
    487. rdx ^= r11;
    488. rdx = _byteswap_uint64(rdx);
    489. rax = *(ULONG64*)(rdx + 0x17);
    490. rax *= rcx;
    491. rcx = rbx;
    492. rcx = (~rcx);
    493. rax ^= rcx;
    494. rax += 0xFFFFFFFFFFFF6353;
    495. rcx = rbx;
    496. rcx = (~rcx);
    497. rax += rcx;
    498. return rax;
    499. }
    500. case 15:
    501. { r11 = *(ULONG64*)(moduleBase + 0x64F3151);
    502. r8 = (moduleBase + 0x20B589A3);
    503. rcx = rax;
    504. rcx >>= 0x16;
    505. rax ^= rcx;
    506. rcx = rax;
    507. rcx >>= 0x2C;
    508. rax ^= rcx;
    509. rcx = 0x385FC2775F5F2105;
    510. rax *= rcx;
    511. rcx = 0; // bruh
    512. rcx = _rotl64(rcx, 0x10);
    513. rcx ^= r11;
    514. rcx = _byteswap_uint64(rcx);
    515. rax *= *(ULONG64*)(rcx + 0x17);
    516. rcx = moduleBase;
    517. rax ^= rcx;
    518. rax -= rcx;
    519. rax += rbx;
    520. rcx = (moduleBase + 0x48580B27);
    521. rax += rcx;
    522. rcx = moduleBase;
    523. rax ^= rbx;
    524. rax ^= r8;
    525. rax ^= rcx;
    526. return rax;
    527. }
    528. default:
    529. return 0;
    530. }
    531. }