Created
December 22, 2017 10:41
-
-
Save iNarcissuss/a8490c91a00697640800ff51748983bf to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* This file has been generated by the Hex-Rays decompiler. | |
Copyright (c) 2007-2017 Hex-Rays <[email protected]> | |
Detected compiler: GNU C++ | |
*/ | |
#include <defs.h> | |
//------------------------------------------------------------------------- | |
// Function declarations | |
__int64 *sub_1800B0000(); | |
void __fastcall __noreturn sub_1800B0390(int a1); | |
__int64 __fastcall sub_1800B041C(__int64, int, int, __int64); // weak | |
void sub_1800B0428(); | |
unsigned __int64 sub_1800B045C(); | |
unsigned __int64 __fastcall sub_1800B0464(unsigned __int64 result); | |
unsigned __int64 __fastcall sub_1800B0488(unsigned __int64 result); | |
unsigned __int64 __fastcall sub_1800B0494(unsigned __int64 result); | |
unsigned __int64 __fastcall sub_1800B04A0(unsigned __int64 result); | |
unsigned __int64 sub_1800B04AC(); | |
unsigned __int64 sub_1800B04C0(); | |
unsigned __int64 __fastcall sub_1800B04CC(unsigned __int64 result); | |
unsigned __int64 sub_1800B04D8(); | |
unsigned __int64 __fastcall sub_1800B04E4(unsigned __int64 result); | |
void sub_1800B04F0(); | |
void sub_1800B0504(); | |
__int64 __fastcall nullsub_22(); // weak | |
__int64 __fastcall nullsub_28(); // weak | |
__int64 __fastcall nullsub_1(_QWORD); // weak | |
__int64 __fastcall nullsub_2(_QWORD); // weak | |
__int64 nullsub_3(void); // weak | |
void sub_1800B0528(); | |
__int64 __fastcall nullsub_4(_QWORD); // weak | |
void sub_1800B0534(); | |
signed __int64 __fastcall sub_1800B053C(__int16 a1); | |
void sub_1800B0594(); | |
void __noreturn sub_1800B05AC(); | |
__int64 __fastcall sub_1800B05CC(__int64); // weak | |
void __noreturn sub_1800B05D4(); | |
__int64 __fastcall nullsub_24(); // weak | |
void sub_1800B05F4(); | |
void __noreturn sub_1800B0604(); | |
signed __int64 sub_1800B060C(); | |
_QWORD *__fastcall sub_1800B0614(_QWORD *result, _QWORD *a2); | |
signed __int64 sub_1800B062C(); | |
// void __usercall sub_1800B1028(_QWORD *a1@<X0>, __int64 a2@<X4>, __int64 a3@<X5>, __int64 a4@<X6>, __int64 a5@<X7>, __int64 a6@<X8>, __n128 q0_0@<Q0>, __n128 q1_0@<Q1>, __n128 q2_0@<Q2>, __n128 q3_0@<Q3>, __n128 q4_0@<Q4>, __n128 a7@<Q5>, __n128 a8@<Q6>, __n128 a9@<Q7>, __int64 a10@<X1>, __int64 a11@<X2>); | |
void __fastcall sub_1800B1064(__int64 a1, __n128 a2, __n128 a3, __n128 a4, __n128 a5, __n128 a6, __n128 a7, __n128 a8, __n128 a9, __int64 a10, __int64 a11); | |
void __noreturn sub_1800B1170(); | |
signed __int64 sub_1800B1188(); | |
void __fastcall sub_1800B11F4(unsigned __int64 a1, unsigned __int64 a2, unsigned __int64 a3, unsigned int a4); | |
void sub_1800B162C(); | |
void sub_1800B1644(); | |
void sub_1800B165C(); | |
void sub_1800B1674(); | |
void __fastcall sub_1800B1724(int a1); | |
unsigned __int64 __fastcall sub_1800B1850(unsigned __int64 result, void *a2, void *a3, void *a4, void *a5, void *a6, void *a7); | |
__int64 __fastcall sub_1800B18F4(int a1); | |
signed __int64 sub_1800B1994(); | |
bool __fastcall sub_1800B1A00(unsigned int a1); | |
void sub_1800B1A44(); | |
// void __usercall sub_1800B1BDC(void *a1@<X0>, void *a2@<X1>, void *a3@<X2>, void *a4@<X3>, void *a5@<X4>, void *a6@<X5>, void *a7@<X6>, signed __int64 a8@<X8>); | |
void __noreturn sub_1800B1D04(); | |
void __fastcall __noreturn sub_1800B1D2C(__int64 a1, void *a2, void *a3, void *a4, void *a5, void *a6, void *a7); | |
signed __int64 sub_1800B1DF4(); | |
__int64 __fastcall sub_1800B1EDC(int a1); | |
__int64 sub_1800B1F18(); | |
signed __int64 __fastcall sub_1800B1F38(int *a1, unsigned int *a2); | |
void sub_1800B1FBC(); | |
__int64 sub_1800B209C(); | |
signed __int64 sub_1800B2134(); | |
__int64 __fastcall sub_1800B2154(__int64 a1); | |
signed __int64 sub_1800B21F8(); | |
signed __int64 __fastcall sub_1800B222C(int a1, _BYTE *a2); | |
signed __int64 sub_1800B2338(); | |
__int64 __fastcall sub_1800B2360(__int64 a1, __int64 a2); | |
signed __int64 sub_1800B272C(); | |
signed __int64 __fastcall sub_1800B27D8(_BYTE *a1, __int64 a2); | |
signed __int64 sub_1800B2884(); | |
void sub_1800B2A84(); | |
void __fastcall sub_1800B2B44(int a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 __fastcall sub_1800B2E1C(unsigned __int8 *a1); | |
signed __int64 sub_1800B2E74(); | |
void __fastcall sub_1800B3520(__int64 a1); | |
void *__fastcall sub_1800B35B0(_BYTE **a1, void *a2); | |
signed __int64 sub_1800B376C(); | |
__int64 __fastcall sub_1800B3A28(__int64 a1, __int64 a2); | |
signed __int64 sub_1800B3A80(); | |
signed __int64 sub_1800B3D44(); | |
void __fastcall sub_1800B3DE4(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 sub_1800B3E64(); | |
__int64 __fastcall sub_1800B4014(unsigned int a1, unsigned __int64 a2, __int64 a3); | |
__int64 __fastcall sub_1800B43E0(unsigned int a1); | |
signed __int64 __fastcall sub_1800B43F8(unsigned int a1, __int64 *a2, unsigned int a3); | |
signed __int64 __fastcall sub_1800B4410(unsigned int a1, __int64 a2, unsigned int a3); | |
signed __int64 __fastcall sub_1800B4428(unsigned int a1, _QWORD *a2, unsigned int a3); | |
signed __int64 __fastcall sub_1800B4440(unsigned int a1, __int64 a2, unsigned int a3); | |
__int64 __fastcall sub_1800B4458(unsigned int a1); | |
__int64 __fastcall sub_1800B45C8(int a1); | |
__int64 __fastcall sub_1800B460C(_QWORD, _QWORD, _QWORD, _QWORD); // weak | |
__int64 __fastcall sub_1800B46D0(_QWORD); // weak | |
__int64 __fastcall sub_1800B48F8(_QWORD); // weak | |
__int64 __fastcall sub_1800B4934(_QWORD); // weak | |
signed __int64 sub_1800B494C(); | |
__int64 __fastcall sub_1800B5688(unsigned int a1, __int64 a2, __int64 a3); | |
__int64 sub_1800B56F4(); | |
void sub_1800B57D0(); | |
void sub_1800B5800(); | |
_DWORD *__fastcall sub_1800B5830(_DWORD *result, unsigned int a2, int a3); | |
_DWORD *__fastcall sub_1800B58B4(_DWORD *result, unsigned int a2, int a3); | |
__int64 __fastcall sub_1800B5938(unsigned int a1); | |
void sub_1800B5A04(); | |
__int64 sub_1800B5A38(); | |
_DWORD *__fastcall sub_1800B5A98(_BYTE *a1, _DWORD *a2, unsigned int a3, int a4); | |
_DWORD *__fastcall sub_1800B5B20(_BYTE *a1, _DWORD *a2, unsigned int a3, int a4); | |
__int64 __fastcall sub_1800B5BA8(unsigned int a1); | |
__int64 sub_1800B5BFC(); | |
void sub_1800B5CC0(); | |
__int64 sub_1800B5CEC(); | |
__int64 sub_1800B5D88(); | |
__int64 __fastcall nullsub_5(_QWORD); // weak | |
__int64 sub_1800B5E28(); | |
__int64 __fastcall sub_1800B5E64(__int64 result); | |
__int64 __fastcall sub_1800B5EF4(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
void sub_1800B5F70(); | |
void sub_1800B5FA0(); | |
__int64 __fastcall nullsub_6(_QWORD); // weak | |
__int64 __fastcall sub_1800B5FC0(unsigned int a1); | |
signed __int64 sub_1800B6010(); | |
__int64 sub_1800B6064(); | |
__int64 sub_1800B60C8(); | |
signed __int64 __fastcall sub_1800B6208(int a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 __fastcall sub_1800B62F8(__int64 a1); | |
signed __int64 __fastcall sub_1800B6F14(int a1, int a2, int a3, unsigned int a4, unsigned int a5); | |
__int64 __fastcall sub_1800B7098(int a1); | |
__int64 *sub_1800B70B4(); | |
__int64 __fastcall sub_1800B70E4(__int64 result, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 __fastcall sub_1800B716C(__int64 result, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 __fastcall sub_1800B72C0(__int64 result, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
bool __fastcall sub_1800B74D4(unsigned __int64 a1); | |
__int64 __fastcall sub_1800B74E8(int a1, __int64 a2, int a3, int a4, _BYTE *a5); | |
__int64 __fastcall sub_1800B75BC(int a1, int a2, int a3); | |
__int64 __fastcall sub_1800B75EC(int a1, __int64 a2, int a3, int a4, _BYTE *a5); | |
__int64 __fastcall sub_1800B78E8(__int64 a1); | |
__int64 __fastcall sub_1800B797C(unsigned int a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 sub_1800B7A10(); | |
_DWORD *__fastcall sub_1800B7B2C(_DWORD *result); | |
void sub_1800B7CF4(); | |
__int64 __fastcall sub_1800B7D30(__int64 a1); | |
__int64 __fastcall sub_1800B7DA4(__int64 result, unsigned int *a2, unsigned int *a3); | |
__int64 __fastcall sub_1800B7E1C(__int64 a1, int a2); | |
__int64 __fastcall sub_1800B7EBC(__int64 result, int a2, unsigned int a3); | |
__int64 __fastcall sub_1800B7F70(__int64 a1, int a2); | |
__int64 __fastcall sub_1800B8090(__int64 a1, signed int a2); | |
__int64 sub_1800B813C(); | |
__int64 sub_1800B81DC(); | |
signed __int64 __fastcall sub_1800B81F4(__int64 a1); | |
__int64 *__fastcall sub_1800B82D4(int a1, int a2, int a3); | |
__int64 __fastcall sub_1800B83FC(int a1, _DWORD *a2); | |
__int64 __fastcall sub_1800B8508(unsigned int a1, int a2); | |
signed __int64 __fastcall sub_1800B85F4(signed __int64 result, int a2, __int64 a3, __int64 a4, __int64 a5); | |
signed __int64 __fastcall sub_1800B87E8(unsigned __int64 a1, int a2, __int64 a3, int a4); | |
signed __int64 __fastcall sub_1800B8874(signed __int64 a1, int a2, __int64 a3); | |
__int64 __fastcall sub_1800B8888(int *a1, int *a2, int *a3); | |
signed __int64 __fastcall sub_1800B88B0(int a1, int **a2); | |
signed __int64 sub_1800B895C(); | |
signed __int64 sub_1800B8990(); | |
__int64 sub_1800B89C4(); | |
signed __int64 __fastcall sub_1800B8AD0(int a1, int a2); | |
signed __int64 sub_1800B8C50(); | |
signed __int64 __fastcall sub_1800B8C84(int a1, int a2); | |
signed __int64 __fastcall sub_1800B8CDC(unsigned int a1, int a2, int a3); | |
signed __int64 __fastcall sub_1800B8E44(int a1, int a2); | |
char *__fastcall sub_1800B8F78(__int64 a1, unsigned int a2, int a3); | |
unsigned __int64 __fastcall sub_1800B9000(__int64 a1, unsigned int a2, unsigned int a3, int a4); | |
signed __int64 __fastcall sub_1800B9074(int a1); | |
void __fastcall sub_1800B9100(__int64 a1, _BYTE *a2, int a3, unsigned int a4); | |
void __fastcall sub_1800B91E0(_BYTE *a1, _BYTE *a2); | |
__int64 __fastcall sub_1800B948C(__int64 a1, _BYTE *a2, int a3, int a4, unsigned int a5, int a6); | |
void __fastcall sub_1800B96DC(__int64 a1, _BYTE *a2, int a3, int a4, unsigned int a5); | |
void sub_1800B98B4(); | |
__int64 __fastcall sub_1800B98C8(__int64 result, int a2); | |
signed __int64 sub_1800B98F8(); | |
__int64 __fastcall sub_1800B9AA4(_BYTE *a1); | |
void __fastcall sub_1800B9C08(int a1, int a2); | |
signed __int64 __fastcall sub_1800BA258(__int64 a1, _BYTE *a2, _QWORD *a3, _DWORD *a4); | |
signed __int64 __fastcall sub_1800BA2A0(unsigned int a1, _QWORD *a2, _QWORD *a3); | |
__int64 __fastcall sub_1800BA39C(__int64 result, unsigned __int64 a2); | |
bool __fastcall sub_1800BA3EC(__int64 a1, unsigned __int64 a2); | |
__int64 __fastcall sub_1800BA43C(unsigned __int16 a1, unsigned __int16 a2); | |
signed __int64 *__fastcall sub_1800BA5EC(signed __int64 *result, unsigned __int64 a2, __int64 a3, int a4); | |
signed __int64 *__fastcall sub_1800BA730(__int64 a1, __int64 a2); | |
__int64 __fastcall sub_1800BA890(signed __int64 *a1, unsigned __int64 a2, __int64 a3, __int64 a4, int a5, int a6); | |
signed __int64 *__fastcall sub_1800BAA6C(signed __int64 *result); | |
__int64 __fastcall sub_1800BAA8C(__int64 result); | |
__int64 __fastcall sub_1800BAB44(signed __int64 *a1, unsigned int a2); | |
__int64 __fastcall sub_1800BAB80(signed __int64 *a1); | |
__int64 __fastcall sub_1800BABD0(signed __int64 *a1, int *a2, unsigned int a3); | |
unsigned __int64 __fastcall sub_1800BAC60(int a1); | |
unsigned __int64 sub_1800BADA0(); | |
__int64 __fastcall sub_1800BAFFC(int a1); | |
signed __int64 __fastcall sub_1800BB0B0(__int64 a1); | |
signed __int64 sub_1800BB34C(); | |
signed __int64 __fastcall sub_1800BB444(__int64 a1, unsigned int a2); | |
signed __int64 __fastcall sub_1800BB5F4(unsigned int a1); | |
__int64 __fastcall sub_1800BB6A0(unsigned __int16 a1, unsigned __int16 a2); | |
void sub_1800BB6C4(); | |
signed __int64 __fastcall sub_1800BB730(unsigned int a1, int a2, __int16 a3, int a4, int a5); | |
signed __int64 __fastcall sub_1800BB818(unsigned int a1, int a2, __int16 a3, _BYTE *a4); | |
signed __int64 __fastcall sub_1800BB884(unsigned int a1, __int16 a2, int a3, int a4); | |
signed __int64 __fastcall sub_1800BB8A4(unsigned int a1, __int16 a2, _BYTE *a3); | |
signed __int64 __fastcall sub_1800BB8BC(__int64 a1); | |
signed __int64 __fastcall sub_1800BB930(__int64 a1); | |
signed __int64 __fastcall sub_1800BB9AC(__int16 a1, _BYTE *a2, __int64 a3); | |
signed __int64 __fastcall sub_1800BBA24(__int16 a1, _QWORD *a2, unsigned __int64 a3); | |
__int64 sub_1800BBAB0(); | |
signed __int64 __fastcall sub_1800BBB20(unsigned __int8 a1, int *a2); | |
signed __int64 __fastcall sub_1800BBC40(char a1, _DWORD *a2); | |
__int64 sub_1800BBD08(); | |
signed __int64 __fastcall sub_1800BBDF4(signed __int64 result, unsigned int a2); | |
__int64 sub_1800BBF1C(); | |
signed __int64 __fastcall sub_1800BBFDC(int a1); | |
signed __int64 __fastcall sub_1800BC0B4(int a1); | |
signed __int64 __fastcall sub_1800BC18C(_BYTE *a1, bool *a2, _BYTE *a3); | |
signed __int64 __fastcall sub_1800BC278(unsigned int a1, _BYTE *a2); | |
signed __int64 __fastcall sub_1800BC320(unsigned int a1, int a2); | |
signed __int64 __fastcall sub_1800BC3A0(int a1); | |
void __noreturn sub_1800BC444(); | |
void __fastcall __noreturn sub_1800BC454(int a1); | |
signed __int64 __fastcall sub_1800BC50C(__int64 a1, unsigned int a2, unsigned int *a3); | |
signed __int64 sub_1800BC6A8(); | |
signed __int64 sub_1800BC6B0(); | |
signed __int64 __fastcall sub_1800BC910(int a1, int a2); | |
signed __int64 __fastcall sub_1800BC9E0(_BYTE *a1, _BYTE *a2); | |
signed __int64 __fastcall sub_1800BCA68(int a1); | |
_QWORD *__fastcall sub_1800BCB2C(__int64 a1, int a2, __int64 *a3, __int64 a4, int a5); | |
__int64 __fastcall sub_1800BCC04(__int64 result, __int64 a2); | |
_QWORD *__fastcall sub_1800BCC2C(__int64 a1, _QWORD *a2); | |
signed __int64 __fastcall sub_1800BCD80(unsigned int a1); | |
signed __int64 __fastcall sub_1800BCDD4(_QWORD *a1, __int64 a2); | |
__int64 __fastcall sub_1800BCF38(__int64 result, char a2, char a3); | |
signed __int64 __fastcall sub_1800BD078(__int64 a1, int a2); | |
void __fastcall sub_1800BD9B0(unsigned int a1); | |
void __fastcall sub_1800BDA6C(__int64 a1); | |
signed __int64 __fastcall sub_1800BDAB8(__int64 a1); | |
void sub_1800BDD34(); | |
signed __int64 __fastcall sub_1800BDD68(unsigned int a1, int a2); | |
signed __int64 __fastcall sub_1800BDE28(__int64 a1); | |
signed __int64 __fastcall sub_1800BDE64(__int64 a1, __int64 a2, unsigned __int64 a3); | |
__int64 __fastcall sub_1800BE038(__int64 result, int a2); | |
__int64 __fastcall sub_1800BE11C(unsigned int a1, int a2, __int64 a3, int a4, __int64 a5); | |
void sub_1800BE3CC(); | |
signed __int64 __fastcall sub_1800BE3D4(unsigned int a1, __int64 a2); | |
signed __int64 __fastcall sub_1800BE4F0(unsigned int a1, unsigned int a2, __int64 a3); | |
__int64 __fastcall sub_1800BE6BC(unsigned int a1); | |
__int64 __fastcall sub_1800BE6D4(unsigned int a1, __int64 a2); | |
signed __int64 __fastcall sub_1800BE85C(__int64 a1, int a2); | |
__int64 __fastcall sub_1800BE998(__int64 result, unsigned int a2, int a3); | |
__int64 __fastcall sub_1800BE9F0(__int64 result, unsigned int a2, __int64 a3); | |
__int64 __fastcall sub_1800BEA58(__int64 a1, unsigned int a2); | |
__int64 __fastcall sub_1800BEAB0(__int64 a1); | |
__int64 __fastcall sub_1800BEB7C(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
signed __int64 __fastcall sub_1800BEE30(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
signed __int64 __fastcall sub_1800BEE60(__int64 a1, __int64 a2, int a3, int a4); | |
void __fastcall sub_1800BEED8(__int64 a1, __int64 a2, int a3); | |
signed __int64 __fastcall sub_1800BEF50(__int64 a1); | |
__int64 sub_1800BEFBC(); | |
bool sub_1800BF02C(); | |
signed __int64 sub_1800BF04C(); | |
signed __int64 __fastcall sub_1800BFA30(signed __int64 result, signed int *a2); | |
__int64 sub_1800BFAA8(); | |
__int64 __fastcall sub_1800BFCA8(unsigned int a1); | |
signed __int64 sub_1800BFCFC(); | |
signed __int64 __fastcall sub_1800BFD64(_DWORD *a1); | |
signed __int64 __fastcall sub_1800BFDB8(__int64 a1, signed int a2); | |
signed __int64 __fastcall sub_1800BFE98(_DWORD *a1); | |
signed __int64 __fastcall sub_1800BFF18(_DWORD *a1, _DWORD *a2, signed int *a3); | |
signed __int64 __fastcall sub_1800BFFF0(char a1, unsigned __int8 a2); | |
__int64 sub_1800C0008(); | |
__int64 nullsub_7(void); // weak | |
signed __int64 sub_1800C0014(); | |
signed __int64 __fastcall sub_1800C005C(int a1, signed __int64 a2, signed __int64 a3); | |
signed __int64 __fastcall sub_1800C0234(__int64 a1, signed __int64 a2); | |
signed __int64 sub_1800C02D8(); | |
__int64 __fastcall sub_1800C032C(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 __fastcall sub_1800C08E4(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
signed __int64 __fastcall sub_1800C0994(int a1); | |
signed __int64 __fastcall sub_1800C0ADC(int a1); | |
__int64 __fastcall sub_1800C0B20(int a1, unsigned __int8 a2, unsigned __int8 a3); | |
signed __int64 __fastcall sub_1800C0B78(int a1, unsigned __int8 *a2, _DWORD *a3); | |
signed __int64 __fastcall sub_1800C0CB4(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
signed __int64 __fastcall sub_1800C0DF4(__int64 a1, __int64 a2, unsigned int *a3, _DWORD *a4); | |
signed __int64 __fastcall sub_1800C0F4C(unsigned __int64 *a1, __int64 a2, unsigned __int64 *a3, int a4); | |
signed __int64 __fastcall sub_1800C0F88(unsigned __int64 *a1, unsigned __int64 *a2); | |
signed __int64 __fastcall sub_1800C100C(unsigned __int64 *a1, _BYTE *a2); | |
signed __int64 __fastcall sub_1800C1108(__int64 a1, __int64 a2, int a3, __int64 a4); | |
signed __int64 __fastcall sub_1800C1698(__int64 a1, __int64 a2); | |
__int64 __fastcall sub_1800C16B0(_QWORD *a1, __int64 a2, unsigned __int64 a3, int a4); | |
void **__fastcall sub_1800C1958(int a1); | |
signed __int64 __fastcall sub_1800C1994(unsigned int *a1, __int64 a2, unsigned int a3, unsigned int *a4, char *a5, unsigned __int64 a6, unsigned __int64 *a7); | |
signed __int64 __fastcall sub_1800C22D4(__int64 a1, _QWORD *a2, unsigned __int64 a3); | |
_QWORD *sub_1800C24D4(); | |
__int64 __fastcall sub_1800C2544(int a1); | |
__int64 __fastcall sub_1800C256C(__int64 result, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 __fastcall sub_1800C25FC(__int64 result, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 __fastcall sub_1800C268C(int a1, __int64 a2, __int64 a3, unsigned __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
_QWORD *__fastcall sub_1800C274C(_QWORD *result); | |
signed __int64 sub_1800C2778(); | |
signed __int64 __fastcall sub_1800C28DC(signed __int64 result, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
signed __int64 __fastcall sub_1800C299C(signed __int64 result, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
signed __int64 __fastcall sub_1800C2A5C(signed __int64 result, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
_QWORD *sub_1800C2B24(); | |
signed __int64 __fastcall sub_1800C2B9C(int a1, __int64 a2, __int64 a3, unsigned __int64 a4); | |
signed __int64 __fastcall sub_1800C2C50(__int64 a1, __int64 a2, int a3); | |
signed __int64 __fastcall sub_1800C2CC8(__int64 a1, __int64 a2, _BYTE *a3, __int64 a4); | |
__int64 __fastcall sub_1800C2D6C(__int64 a1); | |
signed __int64 __fastcall sub_1800C3C68(_BYTE *a1); | |
signed __int64 __fastcall sub_1800C49A8(_BYTE *a1, __int64 a2, int a3); | |
__int64 __fastcall sub_1800C4A74(_QWORD *a1); | |
unsigned __int64 __fastcall sub_1800C4B00(unsigned __int64 a1); | |
signed __int64 __fastcall sub_1800C4B88(__int64 a1, _BYTE *a2, _QWORD *a3, _QWORD *a4); | |
__int64 __fastcall sub_1800C4C1C(unsigned int a1); | |
__int64 __fastcall sub_1800C4C70(__int64 a1); | |
signed __int64 __fastcall sub_1800C4CC8(_BYTE *a1, __int64 a2, __int64 a3); | |
bool __fastcall sub_1800C4D58(_DWORD *a1); | |
signed __int64 __fastcall sub_1800C4D70(__int64 a1, __int64 a2, __int64 a3, _QWORD *a4, unsigned __int64 *a5, _QWORD *a6, _QWORD *a7, __int64 a8); | |
_DWORD *__fastcall sub_1800C5284(__int64 a1); | |
_DWORD *__fastcall sub_1800C52C0(__int64 a1, signed __int64 a2); | |
signed __int64 __fastcall sub_1800C532C(__int64 a1, __int64 a2); | |
__int64 __fastcall sub_1800C5374(__int64 result, __int64 a2); | |
__int64 sub_1800C53DC(); | |
__int64 sub_1800C5534(); | |
__int64 __fastcall sub_1800C5550(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 sub_1800C55A8(); | |
void sub_1800C55C4(); | |
__int64 sub_1800C55E0(); | |
signed __int64 sub_1800C55F8(); | |
__int64 sub_1800C5624(); | |
__int64 sub_1800C5648(); | |
__int64 sub_1800C57D4(); | |
void __fastcall sub_1800C57EC(__int64 a1, void *a2, void *a3, void *a4, void *a5, void *a6, void *a7); | |
unsigned __int64 sub_1800C58E4(); | |
__int64 __fastcall sub_1800C5950(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 sub_1800C59D0(); | |
signed __int64 sub_1800C5A20(); | |
signed __int64 sub_1800C5A64(); | |
signed __int64 sub_1800C5A6C(); | |
__int64 __fastcall sub_1800C5A74(int a1); | |
__int64 __fastcall sub_1800C5B48(int a1); | |
__int64 __fastcall sub_1800C5E08(__int64 result, int a2); | |
__int64 sub_1800C5E80(); | |
__int64 sub_1800C5E98(); | |
void __fastcall sub_1800C5EB0(int a1); | |
__int64 sub_1800C5FF8(); | |
__int64 sub_1800C6014(); | |
void __noreturn sub_1800C6030(); | |
signed __int64 sub_1800C605C(); | |
__int64 sub_1800C6084(); | |
__int64 sub_1800C6708(); | |
__int64 sub_1800C678C(); | |
signed __int64 sub_1800C67A8(); | |
__int64 sub_1800C67B0(); | |
bool sub_1800C6818(); | |
unsigned __int64 sub_1800C6838(); | |
bool sub_1800C6898(); | |
bool sub_1800C68B8(); | |
signed __int64 __fastcall sub_1800C68D8(int a1, _DWORD *a2); | |
bool __fastcall sub_1800C6930(int a1, int a2); | |
__int64 sub_1800C6960(void); // weak | |
__int64 sub_1800C6964(); | |
__int64 sub_1800C696C(); | |
__int64 __fastcall sub_1800C69C4(__int64 result, unsigned __int16 a2, char a3, char a4); | |
signed __int64 sub_1800C6A08(); | |
signed __int64 __fastcall sub_1800C6A18(_DWORD *a1); | |
__int64 __fastcall sub_1800C6A94(int *a1); | |
signed __int64 __fastcall sub_1800C6AF0(_DWORD *a1); | |
__int64 __fastcall sub_1800C6B74(__int64 a1); | |
int *__fastcall sub_1800C6BF4(int *result, __int64 a2); | |
void sub_1800C6CAC(); | |
__int64 sub_1800C6CC8(); | |
__int64 __fastcall sub_1800C6CE0(__int64 result); | |
signed __int64 __fastcall sub_1800C6D08(unsigned int a1, unsigned int a2, unsigned int *a3); | |
signed __int64 __fastcall sub_1800C6D9C(_QWORD *a1, _DWORD *a2); | |
_DWORD *sub_1800C6DE8(); | |
signed __int64 __fastcall sub_1800C6E38(unsigned int a1); | |
signed __int64 sub_1800C6E68(); | |
__int64 sub_1800C6E70(); | |
signed __int64 sub_1800C6E78(); | |
signed __int64 sub_1800C6EB0(); | |
void __fastcall sub_1800C6F10(__int64 a1, _QWORD *a2, _QWORD *a3, _QWORD *a4); | |
__int64 __fastcall sub_1800C6F90(); // weak | |
signed __int64 *__fastcall sub_1800C70F0(__int64 a1); | |
signed __int64 *__fastcall sub_1800C71FC(__int64 a1, signed __int64 *a2, __int64 a3, void (__fastcall *a4)(__int64, signed __int64 *, __int64)); | |
signed __int64 *__fastcall sub_1800C72B0(__int64 a1, __int64 a2, int a3); | |
__int64 __fastcall nullsub_18(); // weak | |
__int64 __fastcall nullsub_19(); // weak | |
__int64 __fastcall nullsub_20(); // weak | |
__int64 __fastcall sub_1800C72C8(__int64 result, signed __int64 *a2, int a3); | |
__int64 __fastcall nullsub_21(); // weak | |
signed __int64 *__fastcall sub_1800C7504(signed __int64 *result, signed __int64 *a2, int a3); | |
__int64 __fastcall sub_1800C783C(int a1, unsigned __int8 a2, unsigned int a3); | |
signed __int64 *__fastcall sub_1800C784C(signed __int64 *a1, int a2); | |
__int64 __fastcall sub_1800C7864(__int64 result); | |
signed __int64 __fastcall sub_1800C787C(__int64 a1); | |
__int64 __fastcall sub_1800C7F30(__int64 result); | |
__int64 sub_1800C7FA4(); | |
__int64 sub_1800C7FC8(); | |
void __fastcall sub_1800C800C(__int64 a1); | |
__int64 sub_1800C81B0(); | |
void __fastcall sub_1800C81C0(__int64 a1); | |
__int64 __fastcall sub_1800C8468(__int64 result); | |
signed __int64 __fastcall sub_1800C8470(unsigned __int64 a1, __int64 a2); | |
bool sub_1800C84D4(); | |
__int64 sub_1800C84F0(); | |
void sub_1800C8520(); | |
__int64 sub_1800C853C(); | |
__int64 sub_1800C8554(); | |
__int64 sub_1800C856C(); | |
__int64 sub_1800C8584(); | |
signed __int64 sub_1800C859C(); | |
__int64 sub_1800C85A4(); | |
unsigned __int64 sub_1800C85C4(); | |
unsigned __int64 sub_1800C85E0(); | |
__int64 sub_1800C85FC(); | |
__int64 __fastcall sub_1800C8614(__int64 result); | |
__int64 sub_1800C8678(); | |
__int64 sub_1800C8690(); | |
__int64 sub_1800C86A8(); | |
__int64 __fastcall sub_1800C86B0(int a1); | |
__int64 __fastcall sub_1800C8744(int a1); | |
__int64 __fastcall nullsub_9(_QWORD, _QWORD); // weak | |
_DWORD *sub_1800C8850(); | |
_DWORD *sub_1800C8E8C(); | |
__int64 *__fastcall sub_1800C8F48(_DWORD *a1); | |
void sub_1800C8F60(); | |
_DWORD *__fastcall sub_1800C9014(_DWORD *result, int a2); | |
signed __int64 *__fastcall sub_1800C9550(unsigned int *a1); | |
signed __int64 *__fastcall sub_1800C959C(unsigned int *a1); | |
__int64 __fastcall sub_1800C9DC8(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 __fastcall nullsub_10(_QWORD); // weak | |
__int64 sub_1800C9E2C(); | |
signed __int64 sub_1800CA218(); | |
__int64 __fastcall sub_1800CA3DC(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 __fastcall sub_1800CAB14(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 __fastcall sub_1800CABF0(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 sub_1800CAD5C(); | |
__int64 __fastcall sub_1800CAF3C(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 sub_1800CAF54(); | |
__int64 __fastcall sub_1800CB1A8(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 sub_1800CB1D4(); | |
__int64 __fastcall nullsub_11(_QWORD); // weak | |
__int64 sub_1800CB318(); | |
__int64 __fastcall sub_1800CB350(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 __fastcall sub_1800CB3A8(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 __fastcall sub_1800CB3E8(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 sub_1800CB430(); | |
__int64 sub_1800CB580(); | |
__int64 __fastcall sub_1800CB5B8(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 __fastcall sub_1800CB610(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 __fastcall sub_1800CB700(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 __fastcall sub_1800CB7C0(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 sub_1800CB814(); | |
__int64 sub_1800CBAD4(); | |
signed __int64 __fastcall sub_1800CBB54(int a1, int a2, int a3); | |
void sub_1800CBDDC(); | |
__int64 __fastcall sub_1800CBE44(__int64 a1, int a2, int a3); | |
__int64 __fastcall sub_1800CBEE8(__int64 a1, int a2, int a3, int a4); | |
__int64 __fastcall sub_1800CBFA0(__int64 a1, unsigned __int16 a2); | |
__int64 __fastcall sub_1800CC038(__int64 a1, unsigned __int16 a2); | |
__int64 __fastcall sub_1800CC0D0(__int64 a1, unsigned __int16 a2); | |
__int64 __fastcall sub_1800CC168(__int64 result, int a2, int a3); | |
__int64 __fastcall sub_1800CC1BC(__int64 result); | |
void sub_1800CC218(); | |
__int64 __fastcall sub_1800CCC0C(__int64 result, int a2); | |
__int64 __fastcall sub_1800CCCD0(__int64 result, int a2); | |
__int64 __fastcall sub_1800CCD74(__int64 a1); | |
__int64 __fastcall sub_1800CCE0C(__int64 result); | |
__int64 __fastcall sub_1800CCE40(__int64 result); | |
__int64 __fastcall sub_1800CCEF8(__int64 a1); | |
__int64 __fastcall sub_1800CCFFC(int a1, unsigned int a2, int a3, int a4); | |
__int64 __fastcall sub_1800CD0A0(__int64 a1); | |
__int64 __fastcall sub_1800CD138(__int64 a1, int a2, int a3, int a4, unsigned int a5); | |
void sub_1800CD8E8(); | |
__int64 __fastcall sub_1800CDA4C(__int64 a1); | |
__int64 __fastcall sub_1800CDB48(__int64 a1); | |
__int64 __fastcall sub_1800CDC54(__int64 result, unsigned int a2); | |
__int64 __fastcall sub_1800CDCD0(__int64 result, int a2); | |
void sub_1800CDD74(); | |
__int64 __fastcall sub_1800CE280(__int64 result, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8, double a9, double a10); | |
__int64 __fastcall sub_1800CF548(__int64 result); | |
void sub_1800CFF00(); | |
__int64 __fastcall sub_1800D0B88(__int64 result, char a2); | |
_DWORD *__fastcall sub_1800D0DF0(_DWORD *result, int a2, int a3, int a4, int a5); | |
_DWORD *__fastcall sub_1800D0E98(_DWORD *result); | |
_DWORD *__fastcall sub_1800D0ED0(__int64 a1, int a2, unsigned int a3, __int64 a4, __int64 a5, int *a6, int *a7, _DWORD *a8, int *a9, int *a10); | |
__int64 __fastcall sub_1800D10AC(__int64 a1, unsigned int a2); | |
__int64 __fastcall sub_1800D1198(__int64 a1, unsigned int a2); | |
__int64 __fastcall sub_1800D1284(__int64 a1, unsigned int a2); | |
__int64 __fastcall sub_1800D13CC(__int64 a1, int a2); | |
__int64 __fastcall sub_1800D14C4(int a1, int a2); | |
__int64 __fastcall sub_1800D1544(unsigned int a1, int a2, __int16 a3, double a4, double a5); | |
__int64 __fastcall sub_1800D1610(__int64 a1); | |
signed __int64 __fastcall sub_1800D16A8(unsigned int a1, unsigned int a2, unsigned int a3, double a4, double a5); | |
__int64 __fastcall sub_1800D1704(unsigned int a1, int a2, __int16 a3, double a4, double a5); | |
__int64 __fastcall sub_1800D17D0(__int64 a1, int a2); | |
__int64 __fastcall sub_1800D1870(__int64 a1, int a2, int a3); | |
__int64 __fastcall sub_1800D1924(__int64 a1, char a2); | |
__int64 __fastcall sub_1800D19D8(__int64 result, char a2, int a3, int a4); | |
signed __int64 __fastcall sub_1800D1A24(char a1, int a2); | |
__int64 __fastcall sub_1800D1B54(__int64 a1, int a2, int a3); | |
__int64 __fastcall sub_1800D1BF0(__int64 result); | |
bool __fastcall sub_1800D1C50(int a1, int a2, unsigned int a3); | |
__int64 __fastcall sub_1800D1CDC(__int64 result, char a2, int a3); | |
bool __fastcall sub_1800D1D78(int a1, int a2, int a3); | |
__int64 __fastcall sub_1800D1E0C(int a1, int a2, int a3, int a4, __int64 a5); | |
__int64 __fastcall sub_1800D1FD0(__int64 a1); | |
void sub_1800D2088(); | |
void sub_1800D2118(); | |
void __noreturn sub_1800D2180(); | |
__int64 sub_1800D21B8(); | |
__int64 sub_1800D21C0(); | |
__int64 __fastcall sub_1800D21D8(int a1); | |
signed __int64 __fastcall sub_1800D2228(int a1, unsigned int a2, __int64 a3, unsigned int a4); | |
__int64 __fastcall sub_1800D2538(int a1, int a2); | |
__int64 __fastcall sub_1800D26D8(int a1, unsigned int a2); | |
signed __int64 __fastcall sub_1800D2938(int a1, unsigned int a2, _DWORD *a3, _DWORD *a4); | |
unsigned __int64 __fastcall sub_1800D2B24(signed int a1); | |
signed __int64 __fastcall sub_1800D2BE0(_BYTE *a1); | |
__int64 __fastcall sub_1800D2CBC(_QWORD); // weak | |
__int64 sub_1800D2CC0(); | |
__int64 sub_1800D2CD8(); | |
__int64 sub_1800D2DF4(); | |
unsigned int *__fastcall sub_1800D3190(int a1); | |
__int64 __fastcall sub_1800D3518(int a1, int a2); | |
unsigned int *__fastcall sub_1800D3668(unsigned int *result, int a2); | |
unsigned int *sub_1800D3684(); | |
signed __int64 __fastcall sub_1800D368C(int a1); | |
__int64 __fastcall sub_1800D37E8(__int64 result, unsigned int a2); | |
_QWORD *__fastcall sub_1800D386C(_QWORD *a1, unsigned int a2); | |
__int64 __fastcall sub_1800D389C(int a1); | |
__int64 __fastcall sub_1800D3988(__int64 result); | |
__int64 __fastcall sub_1800D39CC(__int64 result, int a2); | |
__int64 __fastcall sub_1800D3AEC(__int64 result); | |
void __fastcall sub_1800D3B2C(char a1); | |
__int64 sub_1800D3B48(); | |
__int64 __fastcall sub_1800D3BDC(__int64 result); | |
__int64 __fastcall sub_1800D3C2C(__int64 result, int a2); | |
__int64 sub_1800D3D1C(); | |
__int64 __fastcall sub_1800D4030(); // weak | |
__int64 __fastcall sub_1800D438C(unsigned int a1, unsigned int a2); | |
unsigned int *__fastcall sub_1800D446C(unsigned int *result, unsigned int a2, int a3); | |
__int64 __fastcall sub_1800D44CC(__int64 result, unsigned int a2); | |
// void __usercall __noreturn sub_1800D456C(void *a1@<X0>, void *a2@<X1>, void *a3@<X2>, void *a4@<X3>, void *a5@<X4>, void *a6@<X5>, void *a7@<X6>, signed __int64 a8@<X8>); | |
__int64 sub_1800D46BC(); | |
signed __int64 sub_1800D4728(); | |
signed __int64 __fastcall sub_1800D4788(char a1); | |
__int64 __fastcall sub_1800D47DC(__int64 result); | |
__int64 __fastcall sub_1800D47F0(int a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 __fastcall sub_1800D4848(__int64 a1); | |
__int64 __fastcall nullsub_12(_QWORD); // weak | |
// void __usercall __noreturn sub_1800D489C(const char *a1@<X1>, _BYTE *a2@<X0>, __int64 a3, ...); | |
__int64 sub_1800D49F4(); | |
void __noreturn sub_1800D4A5C(); | |
void __fastcall __noreturn sub_1800D4B0C(__int64 a1, __int64 a2, __int64 a3, unsigned __int64 a4); | |
signed __int64 sub_1800D4B50(); | |
_DWORD *sub_1800D4BA0(); | |
__int64 __fastcall sub_1800D4C18(int a1); | |
_QWORD *__fastcall sub_1800D4CE0(_QWORD *a1, unsigned __int64 a2); | |
unsigned __int64 __fastcall sub_1800D4D34(unsigned __int64 result, __int64 a2, int a3); | |
bool __fastcall sub_1800D4D84(int a1); | |
void sub_1800D4DD8(); | |
signed __int64 __fastcall sub_1800D4DFC(unsigned __int64 a1, __int64 a2); | |
bool sub_1800D4E44(); | |
bool sub_1800D4E54(); | |
__int64 __fastcall sub_1800D4E6C(__int64 result); | |
__int64 __fastcall sub_1800D4E90(int a1); | |
_QWORD *__fastcall sub_1800D4EB8(_QWORD *result); | |
__int64 __fastcall sub_1800D4EF4(__int64 result); | |
void sub_1800D4F18(); | |
__int64 sub_1800D4F30(); | |
signed __int64 sub_1800D4F44(); | |
__int64 __fastcall sub_1800D4FC8(int a1); | |
unsigned __int64 __fastcall sub_1800D50B0(unsigned __int64 result, __int64 a2); | |
__int64 sub_1800D5104(); | |
__int64 sub_1800D5158(); | |
unsigned __int64 __fastcall sub_1800D51AC(unsigned __int64 result, __int64 a2, int a3); | |
void __noreturn sub_1800D522C(); | |
void __noreturn sub_1800D528C(); | |
void sub_1800D52D8(); | |
unsigned __int64 sub_1800D5338(); | |
_DWORD *__fastcall sub_1800D534C(__int64 a1); | |
_DWORD *__fastcall sub_1800D53D4(_DWORD *a1, __int64 a2, __int64 a3, __int64 a4); | |
unsigned __int64 sub_1800D55FC(); | |
_DWORD *__fastcall sub_1800D5648(__int64 a1, __int64 a2, __int64 a3, unsigned __int64 a4); | |
void __fastcall sub_1800D56B8(__int64 a1); | |
_QWORD *__fastcall sub_1800D5758(_QWORD *result); | |
void __fastcall sub_1800D57CC(__int64 a1); | |
_QWORD *__fastcall sub_1800D5904(__int64 a1); | |
void __fastcall sub_1800D5940(__int64 a1); | |
void __fastcall __noreturn sub_1800D5984(int a1); | |
__int64 __fastcall sub_1800D59F0(_QWORD *a1); | |
__int64 __fastcall sub_1800D5A60(__int64 a1); | |
void __fastcall sub_1800D5A94(_QWORD *a1); | |
_QWORD *__fastcall sub_1800D5AD0(_QWORD *result, _QWORD *a2); | |
void __fastcall sub_1800D5B44(__int64 a1); | |
_QWORD *__fastcall sub_1800D5BAC(__int64 a1, __int64 a2); | |
signed __int64 __fastcall sub_1800D5BBC(__int64 a1); | |
__int64 __fastcall sub_1800D5C08(__int64 a1); | |
__int64 __fastcall sub_1800D5C40(__int64 result, int a2, char a3); | |
void __fastcall sub_1800D5C54(_BYTE *a1); | |
_BYTE *__fastcall sub_1800D5CA0(_BYTE *result); | |
void __fastcall sub_1800D5D18(_BYTE *a1); | |
bool __fastcall sub_1800D5D78(__int64 a1, __int64 a2); | |
void sub_1800D5F0C(); | |
unsigned __int64 __fastcall sub_1800D5F1C(__int64 a1); | |
bool __fastcall sub_1800D5F30(__int64 a1, unsigned __int64 a2); | |
__int64 __fastcall sub_1800D5F60(__int64 a1); | |
__int64 sub_1800D60D8(); | |
signed __int64 sub_1800D61EC(); | |
signed __int64 sub_1800D623C(); | |
void sub_1800D63A4(); | |
__int64 sub_1800D63C4(); | |
__int64 sub_1800D64AC(); | |
__int64 nullsub_13(void); // weak | |
__int64 nullsub_14(void); // weak | |
__int64 sub_1800D6570(); | |
signed __int64 sub_1800D6578(); | |
signed __int64 __fastcall sub_1800D6598(_BYTE *a1); | |
__int64 __fastcall sub_1800D65E4(int a1); | |
signed __int64 sub_1800D6614(); | |
__int64 *sub_1800D6648(); | |
signed __int64 sub_1800D66C4(); | |
signed __int64 sub_1800D66CC(); | |
__int64 sub_1800D66D4(); | |
__int64 __fastcall sub_1800D69B8(int a1, __int64 a2); | |
signed __int64 __fastcall sub_1800D6B14(char a1, __int64 a2, __int64 a3, unsigned __int64 a4, int a5, __int64 a6, _QWORD *a7); | |
__int64 __fastcall sub_1800D6C78(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6); | |
signed __int64 __fastcall sub_1800D6D3C(__int64 a1, int a2, __int64 a3); | |
__int64 __fastcall sub_1800D6E3C(__int64 a1); | |
__int64 __fastcall sub_1800D6E70(__int64 result, int a2); | |
__int64 __fastcall sub_1800D6E90(__int64 result, _QWORD *a2, char a3); | |
__int64 __fastcall sub_1800D6F14(__int64 a1); | |
void __fastcall sub_1800D6F74(__int64 a1); | |
void __fastcall sub_1800D6F98(__int64 a1); | |
__int64 __fastcall sub_1800D7274(__int64 a1); | |
void __fastcall sub_1800D72C8(__int64 a1); | |
void __fastcall sub_1800D72F0(__int64 a1); | |
signed __int64 __fastcall sub_1800D7568(unsigned int a1); | |
signed __int64 __fastcall sub_1800D75CC(unsigned int a1); | |
signed __int64 sub_1800D7624(); | |
void sub_1800D7648(); | |
void sub_1800D769C(); | |
void sub_1800D76BC(); | |
signed __int64 sub_1800D7778(); | |
__int64 sub_1800D7790(); | |
void sub_1800D77CC(); | |
__int64 sub_1800D77DC(); | |
__int64 sub_1800D77E8(); | |
signed __int64 __fastcall sub_1800D77F8(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
void sub_1800D7870(); | |
void sub_1800D7880(); | |
void sub_1800D7890(); | |
__int64 __fastcall sub_1800D78D0(_QWORD); // weak | |
void sub_1800D78D4(); | |
void __noreturn sub_1800D79BC(); | |
void __noreturn sub_1800D7A04(); | |
void __noreturn sub_1800D7A34(); | |
__int64 __fastcall sub_1800D7A64(__int64 a1, int a2); | |
signed __int64 sub_1800D7A80(); | |
signed __int64 __fastcall sub_1800D7A9C(char *a1, int a2, __int64 a3, signed int *a4, _DWORD *a5); | |
__int64 __fastcall sub_1800D7B54(unsigned int a1); | |
__int64 __fastcall sub_1800D7BA8(__int64 a1, unsigned __int64 a2, int a3); | |
signed __int64 __fastcall sub_1800D7CA8(unsigned int *a1, unsigned int *a2, unsigned int a3, unsigned int *a4, char *a5, unsigned __int64 a6, unsigned __int64 *a7); | |
__int64 __fastcall sub_1800D7E64(_QWORD); // weak | |
__int64 __fastcall sub_1800D7E68(_QWORD); // weak | |
signed __int64 __fastcall sub_1800D7E6C(__int64 a1, int a2, int a3); | |
signed __int64 __fastcall sub_1800D7EC0(_BYTE *a1, char *a2, unsigned __int64 a3, unsigned __int64 *a4, unsigned int *a5, unsigned int a6, unsigned int *a7, int a8); | |
void __fastcall sub_1800D8014(_QWORD *a1); | |
signed __int64 __fastcall sub_1800D8034(__int64 a1, int a2, char *a3, unsigned __int64 a4, unsigned __int64 *a5, unsigned int *a6, unsigned int a7, unsigned int *a8, int a9); | |
signed __int64 __fastcall sub_1800D80D4(char *a1, unsigned __int64 a2, unsigned __int64 *a3, int a4); | |
__int64 sub_1800D8184(void); // weak | |
__int64 sub_1800D8188(); | |
__int64 __fastcall sub_1800D8198(int a1, int a2, int a3, char a4); | |
__int64 __fastcall sub_1800D834C(__int64 a1, int a2); | |
signed __int64 __fastcall sub_1800D8380(int a1); | |
__int64 sub_1800D83EC(); | |
__int64 sub_1800D8410(); | |
__int64 sub_1800D8634(); | |
signed __int64 sub_1800D863C(); | |
void sub_1800D8644(); | |
__int64 sub_1800D88B8(); | |
bool sub_1800D88D0(); | |
signed __int64 sub_1800D8A88(); | |
signed __int64 sub_1800D8B10(); | |
_DWORD *__fastcall sub_1800D8B1C(_DWORD *result, __int64 a2); | |
__int64 __fastcall sub_1800D8B4C(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 __fastcall sub_1800D8B94(__int64 result); | |
signed __int64 sub_1800D8BAC(); | |
void __noreturn sub_1800D9274(); | |
signed __int64 __fastcall sub_1800D9294(int a1); | |
__int64 sub_1800D9830(); | |
__int64 sub_1800D98B0(); | |
__int64 sub_1800D9918(); | |
signed __int64 sub_1800D9988(); | |
signed __int64 __fastcall sub_1800D99A0(unsigned int a1); | |
__int64 __fastcall sub_1800D99E0(unsigned int a1); | |
signed __int64 sub_1800D9A1C(); | |
signed __int64 sub_1800D9AA4(); | |
signed __int64 sub_1800D9AE4(); | |
signed __int64 __fastcall sub_1800D9B3C(_BYTE *a1, bool *a2, _BYTE *a3); | |
signed __int64 __fastcall sub_1800D9BFC(signed __int64 a1); | |
__int64 __fastcall sub_1800D9C30(__int64 a1); | |
signed __int64 __fastcall sub_1800D9CEC(int a1, signed int a2); | |
void __fastcall sub_1800D9E6C(char a1, unsigned __int64 a2, __int64 a3); | |
__int64 __fastcall sub_1800D9F80(_QWORD); // weak | |
__int64 sub_1800D9F84(); | |
bool sub_1800D9FD0(); | |
bool sub_1800D9FF0(); | |
__int64 sub_1800DA024(); | |
const char *sub_1800DA058(); | |
signed __int64 __fastcall sub_1800DA084(__int64 a1); | |
void __fastcall __noreturn sub_1800DA1F0(__int64 a1, __int64 a2, unsigned __int64 a3); | |
signed __int64 __fastcall sub_1800DA25C(int a1); | |
__int64 sub_1800DA418(); | |
signed __int64 __fastcall sub_1800DA4AC(__int64 a1, __int64 a2, void (__fastcall *a3)(__int64, __int64)); | |
signed __int64 __fastcall sub_1800DA55C(int a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 sub_1800DA63C(); | |
__int64 __fastcall sub_1800DA6B4(unsigned __int64 *a1, _QWORD *a2); | |
void sub_1800DA754(); | |
__int64 sub_1800DA7B8(); | |
void __noreturn sub_1800DA7C0(); | |
bool sub_1800DA7F8(); | |
__int64 __fastcall sub_1800DA8B4(__int64 a1, __int64 a2, unsigned __int64 a3, unsigned __int64 a4); | |
__int64 __fastcall sub_1800DA908(unsigned int *a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
bool __fastcall sub_1800DAB64(__int64 a1, __int64 a2); | |
__int64 __fastcall sub_1800DACD0(__int64 a1, unsigned int *a2, __int64 a3, int a4); | |
signed __int64 __fastcall sub_1800DB0B8(__int64 a1, unsigned __int64 a2, _QWORD *a3, __int64 *a4); | |
signed __int64 __fastcall sub_1800DB3B8(__int64 a1, unsigned __int64 a2, _QWORD *a3); | |
__int64 __fastcall sub_1800DB408(__int64 a1); | |
signed __int64 __fastcall sub_1800DBAE8(__int64 a1, _QWORD *a2, int a3, _QWORD *a4, int a5, _DWORD *a6); | |
void __fastcall sub_1800DBB50(_QWORD *a1); | |
__int64 *__fastcall sub_1800DBB7C(__int64 a1, __int64 a2); | |
signed __int64 __fastcall sub_1800DBEF8(_QWORD *a1, __int64 a2, unsigned int a3, _QWORD *a4, unsigned int a5, signed int *a6); | |
signed __int64 __fastcall sub_1800DC10C(__int64 *a1, __int64 a2, _QWORD *a3); | |
__int64 __fastcall sub_1800DC21C(__int64 a1, __int64 a2, signed __int64 a3); | |
signed __int64 __fastcall sub_1800DC2D8(__int64 a1, __int64 a2, unsigned __int64 a3); | |
signed __int64 __fastcall sub_1800DC3A0(__int64 a1, __int64 a2); | |
signed __int64 __fastcall sub_1800DC3BC(__int64 a1, __int64 a2); | |
signed __int64 __fastcall sub_1800DC3E0(__int64 *a1, const char *a2, __int64 a3, unsigned int a4, _QWORD *a5, __int64 a6); | |
signed __int64 __fastcall sub_1800DC74C(__int64 *a1, __int64 a2, _QWORD *a3, _DWORD *a4); | |
signed __int64 __fastcall sub_1800DC998(__int64 *a1, __int64 a2, _QWORD *a3, unsigned __int64 a4, unsigned __int64 a5); | |
__int64 __fastcall sub_1800DCB40(unsigned int *a1, unsigned int *a2, unsigned __int64 a3, unsigned __int64 a4); | |
__int64 __fastcall sub_1800DCB78(unsigned int *a1, unsigned __int64 a2, unsigned __int64 a3); | |
__int64 __fastcall sub_1800DCC24(unsigned int *a1, int a2); | |
__int64 __fastcall sub_1800DCC7C(__int64 *a1, __int64 a2, unsigned __int64 a3, unsigned __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 __fastcall sub_1800DD2C8(__int64 a1, __int64 a2, __int64 a3, signed __int64 a4, unsigned __int64 a5); | |
signed __int64 __fastcall sub_1800DD39C(__int64 *a1, __int64 a2, int a3, unsigned __int64 a4, signed __int64 a5, unsigned __int64 a6, __int64 a7, __int64 a8); | |
__int64 __fastcall sub_1800DD468(__int64 result, int a2, int a3, int a4, int a5, int a6, int a7, __int64 a8, __int64 a9); | |
signed __int64 __fastcall sub_1800DD480(__int64 a1, _DWORD *a2, __int64 a3, int a4, int a5); | |
signed __int64 __fastcall sub_1800DD5B0(__int64 *a1, __int64 a2, signed __int64 a3, unsigned int a4, _QWORD *a5, unsigned int *a6, unsigned int a7, _QWORD *a8, unsigned int *a9); | |
signed __int64 __fastcall sub_1800DDDAC(__int64 *a1, __int64 a2, signed __int64 a3, unsigned int a4, _QWORD *a5, unsigned int *a6, unsigned int a7, _QWORD *a8, unsigned int *a9); | |
signed __int64 __fastcall sub_1800DE234(__int64 a1, __int64 a2, int a3, _QWORD *a4); | |
signed __int64 __fastcall sub_1800DE2BC(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, int *a6, signed int *a7); | |
signed __int64 __fastcall sub_1800DE3F0(__int64 a1, __int64 a2, int a3, _QWORD *a4, _DWORD *a5); | |
signed __int64 __fastcall sub_1800DE480(__int64 a1, __int64 a2, int a3, signed __int64 *a4, signed int *a5); | |
signed __int64 __fastcall sub_1800DE580(__int64 *a1, _BYTE *a2, char a3); | |
void __fastcall sub_1800DE658(_QWORD ***a1); | |
__int64 __fastcall sub_1800DE68C(__int64 a1, __int64 a2); | |
_QWORD *__fastcall sub_1800DE6A4(__int64 **a1, const char *a2); | |
signed __int64 __fastcall sub_1800DE77C(__int64 a1, _QWORD *a2, unsigned __int64 a3); | |
__int64 __fastcall sub_1800DE7E8(_QWORD *a1, _QWORD *a2); | |
signed __int64 __fastcall sub_1800DE810(__int64 a1, signed __int64 a2, int a3); | |
__int64 __fastcall sub_1800DE85C(__int64 **a1, const char *a2); | |
signed __int64 __fastcall sub_1800DE92C(__int64 a1, __int64 a2); | |
_QWORD *__fastcall sub_1800DEAC4(__int64 a1); | |
void __fastcall sub_1800DEB0C(__int64 a1); | |
_QWORD *__fastcall sub_1800DEB34(_QWORD *result, unsigned int a2); | |
__int64 __fastcall sub_1800DEBCC(__int64 a1, _QWORD *a2, __int64 a3, __int64 a4, int a5); | |
signed __int64 __fastcall sub_1800DED94(__int64 a1); | |
__int64 __fastcall sub_1800DEF6C(unsigned __int8 *a1); | |
unsigned __int64 __fastcall sub_1800DEF90(unsigned __int8 *a1); | |
signed __int64 __fastcall sub_1800DEFD4(__int64 a1, unsigned int a2, int a3, signed __int64 a4, int a5, _QWORD *a6, int a7); | |
signed __int64 __fastcall sub_1800DF25C(unsigned __int8 *a1, __int64 a2); | |
signed __int64 __fastcall sub_1800DF2B8(__int64 a1, __int64 a2, int *a3, _QWORD *a4, unsigned __int64 *a5); | |
signed __int64 __fastcall sub_1800DF330(__int64 a1, int *a2, __int64 a3, int a4, _QWORD *a5, _QWORD *a6, unsigned __int64 *a7); | |
signed __int64 __fastcall sub_1800DF560(__int64 a1, __int64 a2, _QWORD *a3, signed __int64 a4, unsigned __int64 a5); | |
signed __int64 __fastcall sub_1800DF6F4(__int64 a1, __int64 a2, __int64 *a3, _BYTE *a4, __int64 a5, __int64 a6, _QWORD *a7, unsigned __int64 *a8); | |
signed __int64 sub_1800DFA58(); | |
signed __int64 __fastcall sub_1800DFA68(unsigned __int8 *a1, int *a2, _QWORD *a3, unsigned __int64 *a4); | |
signed __int64 __fastcall sub_1800DFBA4(unsigned int a1, __int64 a2, _QWORD *a3, _QWORD *a4); | |
signed __int64 __fastcall sub_1800E0000(unsigned int a1, unsigned __int64 a2, unsigned int a3, _QWORD *a4, unsigned __int64 *a5); | |
signed __int64 __fastcall sub_1800E0084(unsigned __int8 *a1, unsigned __int64 a2); | |
__int64 __fastcall sub_1800E0618(__int64 a1); | |
void __fastcall __noreturn sub_1800E0628(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 sub_1800E06D4(); | |
const char *sub_1800E0704(); | |
signed __int64 __fastcall sub_1800E077C(_QWORD *a1, _DWORD *a2); | |
_DWORD *__fastcall sub_1800E07DC(int a1); | |
signed __int64 __fastcall sub_1800E086C(int a1); | |
void sub_1800E0964(); | |
unsigned __int64 __fastcall sub_1800E096C(int a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 __fastcall sub_1800E0A38(__int64 a1, unsigned int a2); | |
_QWORD *__fastcall sub_1800E0B84(__int64 a1, unsigned int a2, _QWORD *a3, __int64 a4); | |
bool sub_1800E0CBC(); | |
bool sub_1800E0CDC(); | |
bool sub_1800E0D14(); | |
signed __int64 sub_1800E0D64(); | |
__int64 sub_1800E0DB0(); | |
void sub_1800E0DBC(); | |
__int64 __fastcall sub_1800E0DCC(unsigned int a1); | |
__int64 __fastcall sub_1800E0E10(__int64 result); | |
_QWORD *__fastcall sub_1800E0E48(_QWORD *a1, _QWORD *a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8, __int64 a9); | |
unsigned __int64 __fastcall sub_1800E0EDC(unsigned __int64 result); | |
unsigned __int64 sub_1800E0EE4(); | |
unsigned __int64 sub_1800E0F20(); | |
__int64 sub_1800E10FC(); | |
unsigned __int64 sub_1800E1118(); | |
__int64 __fastcall sub_1800E1188(_QWORD); // weak | |
void sub_1800E118C(); | |
__int64 sub_1800E11E8(); | |
__int64 __fastcall sub_1800E129C(__int64 a1); | |
unsigned __int64 __fastcall sub_1800E12C4(unsigned int a1); | |
bool __fastcall sub_1800E1300(int a1); | |
__int64 __fastcall sub_1800E148C(unsigned int a1); | |
signed __int64 __fastcall sub_1800E16CC(int a1); | |
void __noreturn sub_1800E1710(); | |
_QWORD *sub_1800E1780(); | |
signed __int64 sub_1800E17B8(); | |
void sub_1800E1AEC(); | |
__int64 __fastcall sub_1800E1B88(int a1, int a2, __int64 a3, __int64 a4, __int64 a5); | |
__int64 __fastcall sub_1800E1E04(__int64 a1, unsigned int *a2); | |
__int64 sub_1800E1F08(); | |
__int64 __fastcall sub_1800E1F34(int a1); | |
void __fastcall sub_1800E2038(unsigned int a1); | |
__int64 sub_1800E204C(); | |
__int64 __fastcall sub_1800E20C8(unsigned __int8 a1, __int16 a2); | |
__int64 __fastcall sub_1800E20F0(__int64 result, int a2, __int64 a3); | |
__int64 __fastcall sub_1800E2204(__int64 a1, unsigned int a2); | |
signed __int64 __fastcall sub_1800E2268(unsigned int a1, int a2, unsigned __int8 *a3, __int64 a4, _BYTE *a5, __int64 a6, int a7); | |
signed __int64 __fastcall sub_1800E2408(unsigned int a1, char a2, unsigned __int8 *a3, __int64 a4); | |
signed __int64 sub_1800E2550(); | |
__int64 __fastcall sub_1800E267C(unsigned int a1); | |
__int64 __fastcall sub_1800E26D0(unsigned int a1); | |
signed __int64 __fastcall sub_1800E272C(int a1); | |
signed __int64 __fastcall sub_1800E2914(__int64 a1, __int64 a2, __int64 a3); | |
__int64 sub_1800E2E3C(void); // weak | |
__int64 __fastcall sub_1800E2EDC(int a1); | |
signed __int64 sub_1800E2EFC(); | |
signed __int64 __fastcall sub_1800E2F20(unsigned __int8 *a1, __int64 a2, unsigned __int64 a3); | |
signed __int64 __fastcall sub_1800E2FD0(unsigned int a1, int a2, __int16 a3, _BYTE *a4, __int64 a5); | |
void __fastcall sub_1800E3040(__int64 a1, int a2); | |
signed __int64 __fastcall sub_1800E314C(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 __fastcall sub_1800E337C(unsigned int a1); | |
signed __int64 sub_1800E33D0(); | |
signed __int64 __fastcall sub_1800E33E0(int a1); | |
signed __int64 __fastcall sub_1800E3534(char a1, _BYTE *a2); | |
signed __int64 __fastcall sub_1800E35A8(char a1, char a2); | |
signed __int64 __fastcall sub_1800E3608(__int64 a1); | |
signed __int64 __fastcall sub_1800E36D0(int a1); | |
__int64 sub_1800E371C(); | |
signed __int64 __fastcall sub_1800E37A8(__int64 a1); | |
__int64 sub_1800E3990(); | |
__int64 sub_1800E3A20(void); // weak | |
__int64 __fastcall sub_1800E3A24(__int64 a1, unsigned int a2, int a3, int a4, __int64 a5, __int64 a6, __int64 a7); | |
__int64 __fastcall sub_1800E3ABC(__int64 a1, unsigned int a2, unsigned __int64 a3); | |
__int64 __fastcall sub_1800E3DD4(__int64 a1, int a2, int a3); | |
__int64 __fastcall sub_1800E3E3C(__int64 a1, int a2); | |
__int64 __fastcall sub_1800E3E54(__int64 a1, int a2); | |
__int64 __fastcall sub_1800E3EC4(__int64 a1, int a2, int a3); | |
__int64 __fastcall sub_1800E3F30(_WORD *a1, int a2); | |
__int64 __fastcall sub_1800E4028(__int64 a1, int a2); | |
__int64 __fastcall sub_1800E4098(__int64 a1); | |
__int64 __fastcall sub_1800E412C(__int64 a1, int a2, char a3); | |
__int64 __fastcall sub_1800E4198(__int64 a1, int a2); | |
__int64 __fastcall sub_1800E41D8(__int64 a1, int a2, __int16 a3); | |
void __fastcall sub_1800E4244(__int64 a1); | |
__int64 __fastcall sub_1800E4304(__int64 a1); | |
__int64 __fastcall sub_1800E430C(__int64 a1); | |
__int64 __fastcall sub_1800E4314(__int64 a1, int a2); | |
__int64 __fastcall sub_1800E4354(__int64 a1, int a2); | |
__int64 __fastcall sub_1800E4394(__int64 a1, unsigned int a2); | |
unsigned __int64 __fastcall sub_1800E43A0(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
signed __int64 __fastcall sub_1800E4524(__int64 a1, __int64 a2); | |
__int64 __fastcall sub_1800E462C(__int64 a1, int a2, unsigned int a3); | |
__int64 __fastcall sub_1800E46A0(_WORD *a1, char a2); | |
__int64 __fastcall sub_1800E4708(__int64 a1); | |
__int64 __fastcall sub_1800E47F0(__int64 a1); | |
__int64 __fastcall sub_1800E4920(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 __fastcall sub_1800E4BB4(__int64 a1); | |
__int64 __fastcall sub_1800E4E28(signed int a1); | |
signed __int64 __fastcall sub_1800E4E98(signed __int64 *a1, __int64 a2); | |
__int64 __fastcall sub_1800E4EE0(signed int a1, int a2); | |
__int64 __fastcall sub_1800E4F30(signed int a1, int a2); | |
__int64 __fastcall sub_1800E4F84(signed int a1, int a2); | |
__int64 __fastcall sub_1800E51B0(signed int a1, int a2); | |
unsigned __int64 __fastcall sub_1800E5258(signed int a1, char a2); | |
unsigned __int64 __fastcall sub_1800E52AC(signed int a1, __int64 a2, unsigned __int64 a3); | |
signed __int64 __fastcall sub_1800E5384(signed int a1, int a2); | |
__int64 __fastcall sub_1800E5584(signed int a1, int a2); | |
__int64 __fastcall sub_1800E55C0(signed int a1); | |
__int64 __fastcall sub_1800E55E4(__int64 result, char a2); | |
void **sub_1800E5634(); | |
__int64 sub_1800E5640(); | |
void sub_1800E5798(); | |
void __fastcall sub_1800E5898(char a1); | |
bool sub_1800E58D0(); | |
void __fastcall sub_1800E590C(unsigned int a1, int a2, unsigned int a3, int a4); | |
void __fastcall sub_1800E5A64(__int64 a1); | |
void __fastcall sub_1800E5B08(char a1, int a2); | |
void __fastcall sub_1800E5B9C(int a1); | |
__int64 __fastcall sub_1800E5BF8(int a1); | |
void __fastcall sub_1800E5C60(char a1); | |
void __fastcall sub_1800E5C98(__int64 a1); | |
void __fastcall sub_1800E5E48(char a1); | |
signed __int64 sub_1800E5F50(); | |
__int64 __fastcall sub_1800E62B8(__int64 a1); | |
void sub_1800E644C(); | |
void __fastcall sub_1800E6478(unsigned int a1); | |
unsigned __int64 __fastcall sub_1800E64D4(int a1, unsigned int a2); | |
void __fastcall sub_1800E6530(int a1); | |
void sub_1800E65C4(); | |
void __fastcall sub_1800E6938(unsigned int a1); | |
__int64 __fastcall sub_1800E6A44(__int64 result, __int64 a2); | |
__int64 __fastcall sub_1800E6A64(__int64 result); | |
void __fastcall sub_1800E6C50(unsigned int a1); | |
signed __int64 sub_1800E6D44(); | |
signed __int64 __fastcall sub_1800E6F2C(_BYTE *a1); | |
signed __int64 __fastcall sub_1800E6FA4(char a1, _BYTE *a2); | |
signed __int64 sub_1800E7018(); | |
signed __int64 __fastcall sub_1800E707C(char a1, char a2); | |
__int64 sub_1800E70DC(); | |
__int64 sub_1800E7134(); | |
__int64 sub_1800E713C(); | |
signed __int64 sub_1800E7144(); | |
void __fastcall sub_1800E71B8(__int64 a1, unsigned int a2, unsigned int *a3); | |
__int64 __fastcall nullsub_15(_QWORD); // weak | |
signed __int64 sub_1800E7364(); | |
signed __int64 sub_1800E736C(); | |
signed __int64 __fastcall sub_1800E7374(_DWORD *a1); | |
signed __int64 __fastcall sub_1800E7428(int a1); | |
__int64 sub_1800E752C(); | |
signed __int64 __fastcall sub_1800E75D8(char a1, _BYTE *a2, unsigned int a3); | |
__int64 sub_1800E7650(); | |
__int64 __fastcall sub_1800E76E0(_QWORD *a1); | |
__int64 sub_1800E7728(); | |
__int64 sub_1800E7770(); | |
__int64 sub_1800E77BC(); | |
__int64 sub_1800E7808(); | |
__int64 sub_1800E7854(); | |
__int64 sub_1800E78A0(); | |
__int64 sub_1800E7984(); | |
__int64 sub_1800E7B4C(); | |
signed __int64 __fastcall sub_1800E7B58(char a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 sub_1800E7C0C(); | |
void sub_1800E7C40(); | |
__int64 __fastcall sub_1800E7CA0(__int64 a1, int a2, __int64 a3); | |
signed __int64 __fastcall sub_1800E7D08(char *a1); | |
__int64 __fastcall sub_1800E7E28(__int64 result); | |
__int64 __fastcall sub_1800E7E54(__int64 a1); | |
_BYTE *__fastcall sub_1800E7F6C(__int64 a1); | |
__int64 __fastcall sub_1800E8000(__int64 a1); | |
__int64 sub_1800E8050(); | |
__int64 __fastcall sub_1800E8398(__int64 result); | |
__int64 __fastcall sub_1800E83C0(__int64 result, char a2, unsigned int a3, bool *a4); | |
void __fastcall sub_1800E8A54(int a1); | |
bool sub_1800E8B84(); | |
void __fastcall sub_1800E8BA0(__int64 a1); | |
__int64 __fastcall sub_1800E8BD0(int a1, __int64 a2, int a3, __int64 a4); | |
__int64 __fastcall sub_1800E8C54(_QWORD, _QWORD, _QWORD, _QWORD); // weak | |
__int64 __fastcall sub_1800E8C58(_QWORD); // weak | |
__int64 __fastcall sub_1800E8C5C(__int64 a1); | |
__int64 sub_1800E8C80(); | |
void sub_1800E8CE0(); | |
__int64 __fastcall sub_1800E8D78(__int64 a1, int a2); | |
__int64 sub_1800E8DD4(); | |
signed __int64 __fastcall sub_1800E8EEC(char *a1, _QWORD *a2); | |
void __fastcall sub_1800E9130(unsigned int a1); | |
void sub_1800E921C(); | |
signed __int64 sub_1800E9290(); | |
__int64 sub_1800E9320(); | |
signed __int64 sub_1800E9378(); | |
void sub_1800E9440(); | |
signed __int64 __fastcall sub_1800E94A8(int a1); | |
__int64 sub_1800E95A8(); | |
unsigned __int64 __fastcall sub_1800E95B4(char a1); | |
unsigned __int64 __fastcall sub_1800E964C(int a1, unsigned int a2); | |
void __fastcall sub_1800E97BC(_DWORD *a1); | |
__int64 sub_1800E9864(); | |
__int64 sub_1800E98AC(); | |
__int64 sub_1800E994C(); | |
__int64 sub_1800E9954(); | |
signed __int64 __fastcall sub_1800E9984(__int64 a1); | |
__int64 nullsub_16(void); // weak | |
void __fastcall sub_1800E9A24(int a1, __int64 a2, int a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 __fastcall sub_1800E9B5C(unsigned int a1); | |
__int64 sub_1800E9BB0(); | |
void sub_1800E9D58(); | |
signed __int64 __fastcall sub_1800E9DAC(_BYTE *a1); | |
__int64 sub_1800E9DEC(); | |
__int64 __fastcall sub_1800E9DF8(__int64 a1); | |
__int64 __fastcall sub_1800E9E00(_QWORD *a1); | |
__int64 sub_1800E9E18(); | |
__int64 __fastcall sub_1800E9E70(__int64 a1, __int64 a2, __int64 a3, unsigned __int64 a4); | |
__int64 __fastcall sub_1800E9F88(__int64 a1, __int64 a2, unsigned int a3, __int64 a4); | |
signed __int64 __fastcall sub_1800EA0A8(__int64 a1, __int64 a2, __int64 a3); | |
__int64 __fastcall sub_1800EA0D0(__int64 a1, unsigned int a2); | |
__int64 __fastcall sub_1800EA0FC(__int64 a1, __int64 a2, unsigned __int64 a3, unsigned int a4); | |
unsigned __int64 __fastcall sub_1800EA1A8(__int64 a1, unsigned __int64 a2, unsigned __int64 a3, unsigned __int64 a4); | |
signed __int64 __fastcall sub_1800EA4A8(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
unsigned __int64 __fastcall sub_1800EA4E8(__int64 a1, _QWORD *a2, unsigned __int64 a3, unsigned __int64 a4); | |
signed __int64 __fastcall sub_1800EA760(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
signed __int64 __fastcall sub_1800EA7A0(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 __fastcall sub_1800EA7E0(__int64 a1); | |
_QWORD *__fastcall sub_1800EA860(__int64 a1, __int64 a2, __int64 a3, unsigned __int64 a4, unsigned int a5); | |
__int64 __fastcall sub_1800EA8F8(_QWORD *a1, __int64 a2, unsigned __int64 a3, __int64 a4); | |
__int64 __fastcall sub_1800EA968(__int64 a1, __int64 a2, int a3, int a4); | |
__int64 __fastcall sub_1800EA978(_QWORD *a1, __int64 a2, unsigned __int64 a3, unsigned __int64 a4); | |
__int64 __fastcall sub_1800EA9E4(__int64 a1, __int64 a2, int a3, int a4); | |
_QWORD *__fastcall sub_1800EA9F4(__int64 a1, __int64 a2, unsigned __int64 a3, unsigned int a4); | |
unsigned __int64 __fastcall sub_1800EAA68(__int64 a1, _QWORD *a2, unsigned __int64 a3, unsigned __int64 a4); | |
__int64 __fastcall sub_1800EAB00(__int64 a1, _QWORD *a2, unsigned int a3, unsigned int a4); | |
signed __int64 __fastcall sub_1800EAB94(unsigned __int64 a1, __int64 a2); | |
void __fastcall sub_1800EAC14(_QWORD **a1); | |
signed __int64 __fastcall sub_1800EAC4C(__int64 a1, char a2); | |
signed __int64 __fastcall sub_1800EACD4(__int64 a1, _BYTE *a2); | |
__int64 __fastcall sub_1800EAD68(unsigned __int8 *a1, signed __int64 a2); | |
__int64 __fastcall sub_1800EAF28(__int64 a1, __int64 a2, int a3); | |
__int64 __fastcall sub_1800EAFBC(__int64 a1, int a2); | |
__int64 __fastcall sub_1800EAFE4(__int64 a1, __int64 a2, int a3); | |
__int64 __fastcall sub_1800EB06C(__int64 result, int a2); | |
signed __int64 *__fastcall sub_1800EB0A8(signed __int64 *result, _QWORD *a2, __int64 a3, _QWORD *a4); | |
void sub_1800EB418(); | |
void __fastcall sub_1800EB454(_QWORD *a1); | |
__int64 sub_1800EB478(); | |
__int64 *__fastcall sub_1800EB488(__int64 a1, __int64 a2); | |
signed __int64 __fastcall sub_1800EB534(__int64 *a1, _DWORD **a2, __int64 a3); | |
void __fastcall sub_1800EBA74(_QWORD *a1); | |
__int64 __fastcall sub_1800EBB38(__int64 a1, __int64 a2, unsigned __int64 a3); | |
__int64 __fastcall sub_1800EBBE4(__int64 result, _DWORD **a2, unsigned __int64 a3); | |
__int64 sub_1800EBDE4(); | |
signed __int64 __fastcall sub_1800EBDF4(__int64 a1, _BYTE *a2, _QWORD *a3); | |
signed __int64 __fastcall sub_1800EBFC8(__int64 a1, _BYTE **a2, _QWORD *a3, _DWORD *a4); | |
signed __int64 __fastcall sub_1800EC060(__int64 a1, _BYTE *a2, _QWORD *a3); | |
signed __int64 __fastcall sub_1800EC0DC(__int64 a1, _BYTE *a2, _QWORD *a3, _DWORD *a4); | |
signed __int64 __fastcall sub_1800EC160(__int64 a1, _BYTE *a2); | |
signed __int64 __fastcall sub_1800EC16C(__int64 a1, _BYTE *a2, _QWORD *a3, unsigned int a4); | |
signed __int64 __fastcall sub_1800EC320(__int64 a1, _BYTE *a2, int a3); | |
signed __int64 __fastcall sub_1800EC374(__int64 a1, _BYTE *a2, __int64 a3); | |
signed __int64 __fastcall sub_1800EC3C8(__int64 a1, _BYTE *a2, __int64 a3); | |
signed __int64 __fastcall sub_1800EC41C(__int64 a1, _BYTE *a2, __int64 a3); | |
signed __int64 __fastcall sub_1800EC460(__int64 *a1, _BYTE *a2); | |
void sub_1800EC538(); | |
signed __int64 __fastcall sub_1800EC548(__int64 a1, unsigned int a2); | |
signed __int64 sub_1800EC5A0(); | |
__int64 __fastcall sub_1800EC680(unsigned int a1); | |
__int64 sub_1800EC6D4(); | |
signed __int64 __fastcall sub_1800EC730(_BYTE *a1); | |
signed __int64 __fastcall sub_1800EC82C(_BYTE *a1); | |
void **__fastcall sub_1800ECAA0(_BYTE *a1); | |
void **__fastcall sub_1800ECB14(_BYTE *a1); | |
void **__fastcall sub_1800ECB70(_BYTE *a1); | |
void *__fastcall sub_1800ECB8C(_BYTE *a1, void *a2); | |
bool __fastcall sub_1800ECBB8(_BYTE *a1, _BOOL8 a2); | |
signed __int64 __fastcall sub_1800ECC0C(_BYTE *a1, _DWORD *a2); | |
signed __int64 __fastcall sub_1800ECD24(_BYTE *a1, __int64 a2); | |
signed __int64 __fastcall sub_1800ECE44(unsigned __int8 *a1, __int64 a2, int a3); | |
signed __int64 __fastcall sub_1800ECFB0(_BYTE *a1); | |
signed __int64 __fastcall sub_1800ED05C(unsigned __int8 *a1, __int64 a2, int a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
unsigned __int64 __fastcall sub_1800ED0E0(__int64 a1, unsigned __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
__int64 __fastcall sub_1800ED18C(__int64 a1, unsigned __int64 a2); | |
bool __fastcall sub_1800ED2E8(_BYTE *a1); | |
void **__fastcall sub_1800ED47C(_BYTE *a1, const char **a2); | |
__int64 __fastcall sub_1800ED508(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
void __fastcall sub_1800ED6D8(_BYTE *a1); | |
_QWORD *__fastcall sub_1800ED760(_QWORD *result); | |
signed __int64 __fastcall sub_1800ED7D4(_BYTE *a1, __int64 a2); | |
signed __int64 sub_1800ED8A4(); | |
_QWORD *__fastcall sub_1800ED8E4(_QWORD *result); | |
__int64 __fastcall sub_1800ED964(int a1, __int64 a2, __int64 a3); | |
void **__fastcall sub_1800ED9A4(int a1); | |
__int64 __fastcall sub_1800ED9DC(int a1, __int64 a2); | |
__int64 __fastcall sub_1800EDA14(int a1); | |
signed __int64 __fastcall sub_1800EDA60(_BYTE *a1, _QWORD *a2, unsigned __int64 *a3); | |
__int64 __fastcall sub_1800EDBB8(int a1); | |
signed __int64 __fastcall sub_1800EDBF4(unsigned __int64 a1); | |
signed __int64 sub_1800EDD24(); | |
unsigned __int64 __fastcall sub_1800EDD80(unsigned __int64 a1); | |
__int64 __fastcall sub_1800EDDD8(__int64 result, unsigned __int64 a2); | |
signed __int64 *__fastcall sub_1800EDF8C(_QWORD *a1); | |
void __fastcall sub_1800EE010(_QWORD *a1); | |
signed __int64 *__fastcall sub_1800EE248(signed __int64 *a1); | |
signed __int64 __fastcall sub_1800EE264(unsigned __int64 a1, unsigned __int64 a2); | |
signed __int64 __fastcall sub_1800EE538(signed __int64 *a1, unsigned __int64 a2, unsigned __int64 a3); | |
void __noreturn sub_1800EE5C0(); | |
__int64 __fastcall sub_1800EE5F8(__int64 result); | |
signed __int64 *__fastcall sub_1800EE664(signed __int64 *a1); | |
void __fastcall sub_1800EE724(_QWORD *a1, unsigned __int64 a2, int a3); | |
void sub_1800EE938(); | |
__int64 *__fastcall sub_1800EE984(__int64 *result); | |
__int64 sub_1800EE9F0(); | |
bool sub_1800EEA08(); | |
signed __int64 sub_1800EEA28(); | |
__int64 __fastcall sub_1800EEAD0(__int64 result, unsigned __int64 a2); | |
signed __int64 __fastcall sub_1800EED24(unsigned __int64 a1); | |
__int64 __fastcall sub_1800EED2C(_QWORD); // weak | |
_QWORD *__fastcall sub_1800EED30(_QWORD *a1, _QWORD *a2, unsigned __int64 a3, unsigned __int64 a4); | |
signed __int64 *__fastcall sub_1800EED5C(signed __int64 *a1, unsigned __int8 a2, unsigned __int64 a3, unsigned __int64 a4); | |
char *__fastcall sub_1800EED88(_QWORD *a1, __int64 *a2); | |
_QWORD *__fastcall sub_1800EEFCC(_QWORD *result, __int64 a2); | |
char *__fastcall sub_1800EF018(__int64 a1, __int64 *a2); | |
__int64 __fastcall sub_1800EF110(unsigned __int8 a1); | |
unsigned int __fastcall sub_1800EF128(unsigned int a1); | |
unsigned int __fastcall sub_1800EF130(unsigned int a1); | |
__int64 __fastcall sub_1800EF138(unsigned int a1); | |
__int64 __fastcall sub_1800EF150(signed __int64 *a1, unsigned __int64 a2, unsigned __int8 a3, unsigned __int64 a4); | |
__int64 __fastcall sub_1800EF16C(signed __int64 *a1, unsigned __int64 a2, unsigned __int8 a3, unsigned __int64 a4, unsigned __int64 a5); | |
__int64 __fastcall sub_1800EF1F4(__int64 a1, _DWORD *a2); | |
__int64 __fastcall sub_1800EF260(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8, __int64 a9); | |
__int64 __fastcall sub_1800EF2B4(__int64 a1, __int64 a2); | |
__int64 __fastcall sub_1800EF2C4(void (__fastcall **a1)(_QWORD, signed __int64), __int64 a2, _DWORD *a3); | |
__int64 __fastcall sub_1800EFAD0(char *a1, signed __int64 a2, __int64 a3, _DWORD *a4); | |
_QWORD *__fastcall sub_1800EFB50(_QWORD *result, int a2); | |
__int64 __fastcall sub_1800EFB88(__int64 a1, signed __int64 a2, int a3, int a4, int a5); | |
signed __int64 __fastcall sub_1800EFC3C(__int64 a1, unsigned __int64 a2, int a3, int a4); | |
__int64 __fastcall sub_1800EFC74(char *a1, unsigned __int64 a2, __int64 a3, unsigned __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8, __int64 a9); | |
__int64 __fastcall sub_1800EFD00(char *a1, unsigned __int64 a2, __int64 a3, unsigned __int64 a4, __int64 a5, _DWORD *a6); | |
__int64 __fastcall sub_1800EFD4C(_BYTE *a1); | |
__int64 __fastcall sub_1800EFD88(__int64 a1); | |
signed __int64 sub_1800EFDC0(); | |
signed __int64 __fastcall sub_1800EFDE4(__int64 a1, __int64 a2, unsigned __int64 a3, unsigned __int64 a4); | |
signed __int64 __fastcall sub_1800EFE14(__int64 a1, __int64 a2, unsigned __int64 a3, unsigned __int64 a4); | |
unsigned __int64 __fastcall sub_1800EFE44(unsigned __int8 *a1, signed __int64 *a2, signed int a3); | |
unsigned __int64 __fastcall sub_1800F001C(unsigned __int8 *a1, signed __int64 *a2, signed int a3); | |
unsigned __int64 __fastcall sub_1800F01F8(unsigned __int8 *a1, signed __int64 *a2, signed int a3); | |
_QWORD *__fastcall sub_1800F03F0(_QWORD *result, _QWORD *a2, unsigned __int64 a3); | |
_QWORD *__fastcall sub_1800F05A0(_QWORD *result, unsigned __int64 a2); | |
signed __int64 *__fastcall sub_1800F0620(signed __int64 *result, unsigned __int8 a2, unsigned __int64 a3); | |
__int64 __fastcall sub_1800F06C4(__int64 result, __int64 a2); | |
unsigned __int64 __fastcall sub_1800F06E8(__int64 a1, unsigned __int8 a2, unsigned __int64 a3); | |
__int64 __fastcall sub_1800F0718(_BYTE *a1, _BYTE *a2, __int64 a3); | |
_BYTE *__fastcall sub_1800F074C(_BYTE *result, char a2); | |
__int64 __fastcall sub_1800F0770(unsigned __int8 *a1, _BYTE *a2); | |
_QWORD *__fastcall sub_1800F07A0(__int64 a1); | |
signed __int64 __fastcall sub_1800F08E8(__int64 a1); | |
__int64 __fastcall sub_1800F0900(_BYTE *a1, _BYTE *a2, __int64 a3); | |
__int64 __fastcall sub_1800F0938(__int64 a1, __int64 a2); | |
_BYTE *__fastcall sub_1800F095C(signed __int64 *a1, unsigned __int8 *a2); | |
_BYTE *__fastcall sub_1800F09AC(_BYTE *a1, __int64 a2); | |
_BYTE *__fastcall sub_1800F0A2C(_BYTE *a1, __int64 a2, char *a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8, __int64 a9); | |
__int64 __fastcall sub_1800F0B24(unsigned int a1); | |
__int64 __fastcall sub_1800F0B60(unsigned int a1); | |
unsigned int *__fastcall sub_1800F0D2C(unsigned int a1, int a2, _DWORD *a3); | |
signed __int64 __fastcall sub_1800F0DB0(unsigned int *a1, _DWORD *a2); | |
// signed __int64 __usercall sub_1800F0DD0@<X0>(unsigned int *a1@<X0>, int a2@<W1>, _DWORD *a3@<X8>); | |
unsigned int *__fastcall sub_1800F0E34(unsigned int a1, int a2, _DWORD *a3); | |
signed __int64 __fastcall sub_1800F0E80(unsigned int a1, _QWORD *a2, _QWORD *a3, _QWORD *a4); | |
signed __int64 __fastcall sub_1800F0ECC(unsigned int a1, _QWORD *a2, _QWORD *a3, _QWORD *a4); | |
signed __int64 __fastcall sub_1800F0FF4(__int64 a1, __int64 *a2); | |
_QWORD *__fastcall sub_1800F10EC(_QWORD *result, _QWORD *a2, _QWORD *a3, _QWORD *a4); | |
__int64 __fastcall sub_1800F1114(unsigned int a1); | |
__int64 __fastcall sub_1800F11BC(__int64 result, int a2, _DWORD *a3); | |
signed __int64 __fastcall sub_1800F1274(unsigned __int64 *a1); | |
__int64 __fastcall sub_1800F1304(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
void sub_1800F14AC(); | |
__int64 __fastcall sub_1800F1514(__int64 a1, unsigned __int8 *a2); | |
_QWORD *__fastcall sub_1800F156C(_QWORD *result, _QWORD *a2); | |
__int64 __fastcall sub_1800F166C(__int64 a1, int a2); | |
signed __int64 __fastcall sub_1800F1948(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8); | |
signed __int64 __fastcall sub_1800F1A44(__int64 a1, __int64 a2); | |
__int64 __fastcall sub_1800F1BBC(unsigned __int8 *a1); | |
_QWORD *__fastcall sub_1800F1BF8(_QWORD *result, _QWORD *a2); | |
signed __int64 __fastcall sub_1800F1C6C(__int64 a1, __int64 a2, __int64 a3); | |
__int64 __fastcall sub_1800F1CE4(__int16 a1, __int16 a2, __int16 a3); | |
void __fastcall sub_1800F1D3C(__int64 a1); | |
void sub_1800F1D70(); | |
unsigned int *__fastcall sub_1800F1D7C(__int64 a1, int a2, int a3); | |
unsigned __int64 __fastcall sub_1800F1F28(__int64 a1, unsigned __int64 a2); | |
signed __int64 __fastcall sub_1800F1F48(_BYTE *a1, unsigned __int64 a2); | |
signed __int64 __fastcall sub_1800F23D0(_BYTE *a1, int a2); | |
_QWORD *sub_1800F24C8(); | |
__int64 sub_1800F2544(); | |
__int64 __fastcall sub_1800F2980(__int64 a1); | |
__int64 sub_1800F2A74(); | |
__int64 __fastcall sub_1800F2AD0(unsigned int a1); | |
void __fastcall sub_1800F2B24(int a1, __int64 a2, _DWORD *a3, _DWORD *a4, _DWORD *a5); | |
__int64 __fastcall sub_1800F308C(__int64 result, _DWORD *a2, __int64 a3); | |
unsigned __int64 __fastcall sub_1800F3194(_QWORD *a1); | |
__int64 __fastcall sub_1800F31E4(__int64 result, __int64 a2, __int64 a3, unsigned int a4, int a5, __int64 a6); | |
signed __int64 __fastcall sub_1800F32AC(unsigned int a1); | |
__int64 __fastcall sub_1800F36B4(int a1); | |
__int64 __fastcall sub_1800F36C4(char a1); | |
__int64 sub_1800F36E0(); | |
__int64 sub_1800F36F0(); | |
__int64 sub_1800F3700(); | |
void __fastcall sub_1800F371C(__int64 a1, __int64 a2, __int64 a3, int a4, int a5, int a6, int a7); | |
__int64 __fastcall sub_1800F3B0C(); // weak | |
__int64 __fastcall sub_1800F3B7C(); // weak | |
__int64 __fastcall sub_1800F3BD0(); // weak | |
__int64 __fastcall sub_1800F3C20(); // weak | |
__int64 __fastcall sub_1800F3CC4(); // weak | |
__int64 __fastcall sub_1800F3D40(); // weak | |
__int64 __fastcall sub_1800F3DC4(); // weak | |
__int64 __fastcall sub_1800F3DF0(); // weak | |
__int64 __fastcall sub_1800F3E08(); // weak | |
__int64 __fastcall sub_1800F3E44(); // weak | |
signed __int64 __fastcall sub_1800F3E88(__int64 a1); | |
__int64 __fastcall sub_1800F3F74(__int64 result); | |
__int64 __fastcall sub_1800F3F9C(__int64 a1); | |
void __fastcall sub_1800F3FE4(unsigned __int8 a1); | |
__int64 sub_1800F40D8(); | |
__int64 sub_1800F4130(); | |
__int64 sub_1800F4188(); | |
signed __int64 sub_1800F44F0(); | |
__int64 __fastcall sub_1800F4518(__int64 a1, __int64 a2); | |
signed __int64 __fastcall sub_1800F4788(__int64 a1); | |
__int64 __fastcall sub_1800F4B08(__int64 a1, __int64 a2, __int64 a3); | |
__int64 sub_1800F4DC0(); | |
__int64 __fastcall sub_1800F4F4C(unsigned int a1); | |
__int64 sub_1800F4FA0(); | |
signed __int64 __fastcall sub_1800F4FFC(_BYTE *a1); | |
__int64 __fastcall sub_1800F50D0(unsigned int a1); | |
signed __int64 __fastcall sub_1800F5124(_QWORD *a1, _QWORD *a2); | |
__int64 __fastcall sub_1800F520C(__int64 result, unsigned __int64 a2); | |
void __fastcall sub_1800F5240(__int64 a1, unsigned __int64 a2); | |
__int64 sub_1800F53E8(); | |
void sub_1800F5440(); | |
__int64 __fastcall sub_1800F5490(_QWORD *a1, unsigned __int64 a2, __int64 a3, unsigned __int64 a4); | |
__int64 __fastcall sub_1800F5684(_QWORD *a1, unsigned __int64 a2); | |
signed __int64 __fastcall sub_1800F56A4(__int64 a1, _DWORD *a2); | |
void __noreturn sub_1800F594C(); | |
__int64 __fastcall sub_1800F598C(__int64 result); | |
__int64 sub_1800F5A54(); | |
__int64 __fastcall sub_1800F5AC0(__int64 result); | |
void sub_1800F5B8C(); | |
__int64 __fastcall sub_1800F5BF4(__int64 result, int a2); | |
void __fastcall sub_1800F5CAC(unsigned __int8 *a1); | |
void __fastcall sub_1800F5CF0(unsigned __int8 *a1); | |
void __fastcall sub_1800F5E68(_QWORD *a1, __int64 a2, __int64 a3, __int64 a4); | |
signed __int64 __fastcall sub_1800F5F30(_QWORD *a1); | |
signed __int64 __fastcall sub_1800F5F40(_QWORD *a1); | |
_QWORD *__fastcall sub_1800F5F64(_QWORD *result, _QWORD *a2); | |
unsigned __int64 sub_1800F5FD8(); | |
signed __int64 __fastcall sub_1800F6010(_QWORD *a1); | |
void __fastcall sub_1800F6044(__int64 a1); | |
_QWORD *__fastcall sub_1800F60B8(_QWORD *result); | |
unsigned __int64 sub_1800F612C(); | |
void sub_1800F61B4(); | |
unsigned __int64 sub_1800F6220(); | |
unsigned __int64 sub_1800F62F0(); | |
unsigned __int64 sub_1800F6364(); | |
__int64 *__fastcall sub_1800F63C0(unsigned __int64 a1, _QWORD *a2); | |
__int64 __fastcall sub_1800F6434(unsigned __int64 a1); | |
void sub_1800F6498(); | |
signed __int64 __fastcall sub_1800F64C8(_BYTE *a1); | |
unsigned __int64 __fastcall sub_1800F661C(int a1, _QWORD *a2, unsigned __int64 a3); | |
signed __int64 __fastcall sub_1800F66A4(int a1, _QWORD *a2); | |
signed __int64 __fastcall sub_1800F67C8(int a1, _QWORD *a2, _DWORD *a3); | |
__int64 __fastcall nullsub_25(_QWORD); // weak | |
__int64 sub_1800F6850(void); // weak | |
__int64 sub_1800F6854(void); // weak | |
__int64 sub_1800F6858(void); // weak | |
__int64 __fastcall sub_1800F685C(_QWORD); // weak | |
signed __int64 sub_1800F6860(); | |
__int64 __fastcall sub_1800F6884(_QWORD); // weak | |
__int64 __fastcall sub_1800F6888(_QWORD); // weak | |
__int64 __fastcall sub_1800F688C(_QWORD); // weak | |
__int64 sub_1800F6890(void); // weak | |
__int64 sub_1800F6894(void); // weak | |
__int64 __fastcall sub_1800F6898(_QWORD); // weak | |
__int64 sub_1800F689C(void); // weak | |
signed __int64 sub_1800F68A0(); | |
const char *sub_1800F68B0(); | |
__int64 sub_1800F68BC(); | |
__int64 nullsub_17(void); // weak | |
__int64 sub_1800F68C8(); | |
__int64 sub_1800F68D0(); | |
__int64 sub_1800F68D8(); | |
__int64 sub_1800F68E0(); | |
__int64 __fastcall sub_1800F68E8(_QWORD); // weak | |
__int64 __fastcall sub_1800F68EC(_QWORD); // weak | |
__int64 sub_1800F68F0(); | |
signed __int64 sub_1800F68F8(); | |
__int64 sub_1800F6904(); | |
signed __int64 sub_1800F690C(); | |
long double __fastcall sub_1800F6914(__int64 a1, __int64 a2, __int64 a3, long double *a4); | |
long double __fastcall sub_1800F6968(__int64 *a1, __int64 a2, long double *a3); | |
signed __int64 __fastcall sub_1800F69AC(__int64 a1, unsigned int a2); | |
signed __int64 __fastcall sub_1800F6A1C(unsigned __int64 *a1, _QWORD *a2); | |
signed __int64 __fastcall sub_1800F6ADC(unsigned __int64 *a1, _QWORD *a2); | |
signed __int64 __fastcall sub_1800F6BA4(unsigned __int64 *a1, _QWORD *a2); | |
unsigned __int64 *__fastcall sub_1800F6C40(unsigned __int64 *result, _QWORD *a2); | |
signed __int64 __fastcall sub_1800F6CB8(unsigned __int64 *a1, __int64 a2, __int64 a3); | |
void __fastcall sub_1800F6DAC(__int64 *a1, __int64 a2, __int64 a3, char **a4); | |
void __fastcall sub_1800F6E84(__int64 a1, unsigned __int64 a2, unsigned __int64 a3); | |
signed __int64 __fastcall sub_1800F6F60(__int64 a1, __int64 a2); | |
signed __int64 __fastcall sub_1800F6FA4(__int64 a1, _DWORD *a2); | |
signed __int64 __fastcall sub_1800F7004(__int64 a1, __int64 a2); | |
signed __int64 __fastcall sub_1800F7048(__int64 a1, bool *a2); | |
signed __int64 __fastcall sub_1800F7080(_QWORD *a1, _DWORD *a2, _DWORD *a3); | |
__int64 __fastcall sub_1800F714C(__int64 a1, _QWORD *a2, unsigned __int64 a3, __int64 (__fastcall **a4)(_QWORD, _QWORD, char *, unsigned __int64, _QWORD)); | |
signed __int64 __fastcall sub_1800F724C(__int64 a1, bool *a2); | |
__int64 __fastcall sub_1800F7274(__int64 a1, _QWORD *a2, unsigned __int64 a3, __int64 (**a4)(void)); | |
signed __int64 __fastcall sub_1800F735C(_QWORD *a1, unsigned int a2, char *a3); | |
void __fastcall sub_1800F73BC(_QWORD *a1, __int64 a2, _QWORD *a3, _QWORD *a4); | |
void __fastcall sub_1800F7468(_QWORD *a1, unsigned int a2, __int64 a3, __int64 a4, __int64 a5); | |
signed __int64 __fastcall sub_1800F753C(__int64 a1, __int64 a2, unsigned __int64 *a3); | |
signed __int64 __fastcall sub_1800F75B8(__int64 a1, __int64 a2, bool *a3); | |
signed __int64 __fastcall sub_1800F7624(__int64 a1, __int64 a2, _QWORD *a3, _DWORD *a4); | |
void __fastcall sub_1800F76CC(__int64 a1); | |
__int64 __fastcall sub_1800F78BC(__int64 *a1, __int64 a2, __int64 (__fastcall *a3)(unsigned __int64, __int64 *, __int64, __int64), __int64 a4); | |
long double __fastcall sub_1800F79B4(__int64 a1, __int64 a2, _QWORD *a3); | |
void __fastcall sub_1800F7A70(unsigned int a1, __int64 a2, __int64 (__fastcall **a3)(unsigned __int64, __int64 *, __int64, __int64), __int64 a4, __int64 a5); | |
signed __int64 __fastcall sub_1800F7CD0(__int64 a1, unsigned __int8 *a2, __int64 a3, __int64 a4, __int64 a5); | |
signed __int64 __fastcall sub_1800F7E44(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7); | |
signed __int64 __fastcall sub_1800F7ED8(unsigned __int64 *a1, unsigned __int64 a2, unsigned __int64 *a3, _QWORD *a4, signed __int64 *a5, _QWORD *a6); | |
__int64 __fastcall sub_1800F809C(_QWORD *a1, _QWORD *a2, _QWORD *a3); | |
signed __int64 __fastcall sub_1800F8358(__int64 a1, __int64 a2, _QWORD *a3, _QWORD *a4, _QWORD *a5, _QWORD *a6, _QWORD *a7); | |
signed __int64 __fastcall sub_1800F8364(__int128 *a1, _QWORD *a2, unsigned __int64 a3); | |
__int64 __fastcall sub_1800F8398(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5); | |
// __int64 __usercall sub_1800F83E4@<X0>(__int64 a1@<X0>, unsigned __int64 a2@<X1>, __int64 a3@<X8>); | |
signed __int64 __fastcall sub_1800F840C(__int128 *a1, __int64 a2, unsigned __int64 a3); | |
signed __int64 __fastcall sub_1800F84BC(__int64 a1, _QWORD *a2); | |
signed __int64 __fastcall sub_1800F85F4(unsigned __int64 *a1, unsigned __int64 *a2); | |
signed __int64 __fastcall sub_1800F85FC(unsigned __int64 *a1, unsigned __int64 *a2, unsigned __int64 *a3); | |
signed __int64 __fastcall sub_1800F8754(unsigned __int64 *a1, unsigned __int64 *a2, int a3); | |
__int64 __fastcall sub_1800F887C(__int64 a1, signed __int64 *a2, _BYTE *a3); | |
signed __int64 __fastcall sub_1800F88BC(unsigned __int8 **a1, bool *a2); | |
signed __int64 __fastcall sub_1800F88F8(char **a1, _DWORD *a2); | |
signed __int64 __fastcall sub_1800F8944(char **a1, unsigned __int64 *a2); | |
signed __int64 __fastcall sub_1800F89C8(unsigned __int64 *a1, unsigned __int64 *a2, _QWORD *a3); | |
__int64 __fastcall sub_1800F8A3C(__int64 *a1, __int64 *a2); | |
signed __int64 __fastcall sub_1800F8A58(unsigned __int64 *a1, unsigned __int64 *a2); | |
signed __int64 __fastcall sub_1800F8AC0(unsigned __int64 *a1, unsigned __int64 a2, __int64 a3, _QWORD *a4, unsigned __int64 a5); | |
signed __int64 __fastcall sub_1800F8B40(__int64 *a1, unsigned __int64 a2, __int64 a3, _QWORD *a4, unsigned __int64 a5); | |
bool __fastcall sub_1800F8D28(__int64 a1, __int64 a2); | |
// bool __usercall sub_1800F8D48@<W0>(_BYTE **a1@<X1>, __int64 a2@<X2>, _BYTE **a3@<X8>); | |
signed __int64 __fastcall sub_1800F8D80(unsigned __int8 *a1); | |
signed __int64 __fastcall sub_1800F8F84(_WORD *a1, __int64 a2, __int64 a3); | |
signed __int64 __fastcall sub_1800F90A4(__int64 a1, __int64 a2, unsigned __int64 a3, __int64 a4); | |
signed __int64 __fastcall sub_1800F93C4(_QWORD *a1, __int64 a2); | |
char **__fastcall sub_1800F94FC(char **result); | |
__int64 __fastcall sub_1800F9A40(__int64 a1, __int64 a2, _QWORD *a3, __int64 a4); | |
signed __int64 __fastcall sub_1800FA140(char **a1, unsigned __int64 a2, unsigned __int64 a3, unsigned __int8 **a4, unsigned __int64 a5); | |
signed __int64 __fastcall sub_1800FA300(int8x16_t **a1, unsigned __int64 a2, unsigned __int64 a3, unsigned __int8 **a4, unsigned __int64 a5); | |
signed __int64 __fastcall sub_1800FA710(__int64 a1); | |
double __fastcall sub_1800FA9A0(_QWORD *a1); | |
signed __int64 __fastcall sub_1800FAA10(_DWORD *a1, __int64 a2, __int64 a3, __int64 a4, struct _TEB **a5, void *a6, double a7); | |
_QWORD *__fastcall sub_1800FADC0(_QWORD *result, signed int a2); | |
signed __int64 __fastcall sub_1800FB8E0(_QWORD **a1); | |
signed __int64 __fastcall sub_1800FC6DC(signed int a1); | |
__int64 __fastcall sub_1800FC728(_QWORD, _QWORD, _QWORD, _QWORD, _QWORD, _QWORD); // weak | |
__int64 __fastcall sub_1800FC788(__int64 a1, __int64 a2, __int64 a3, _QWORD *a4, __int64 a5, __int64 a6, __int64 a7); | |
__int64 *sub_1800FCFEC(); | |
__int64 *sub_1800FCFF8(); | |
__int64 *sub_1800FD004(); | |
__int64 *sub_1800FD010(); | |
signed __int64 __fastcall sub_1800FD01C(signed __int64 result, unsigned __int64 *a2, unsigned __int64 *a3); | |
__int64 __fastcall nullsub_26(_QWORD); // weak | |
__int64 __fastcall sub_1800FD060(__int64 result, __int64 a2, __int64 a3, __int64 a4); | |
__int64 __fastcall sub_1800FD108(__int64 a1, unsigned __int8 *a2, unsigned __int8 *a3); | |
__int64 __fastcall sub_1800FD13C(__int64 a1, unsigned __int64 a2, _QWORD *a3, __int64 a4); | |
_QWORD *__fastcall sub_1800FD434(__int64 a1, _QWORD *a2); | |
_QWORD *__fastcall sub_1800FD478(_QWORD *result, _QWORD *a2, unsigned __int64 a3, _QWORD *a4); | |
__int64 __fastcall sub_1800FD5AC(__int64 a1, unsigned __int64 a2, _QWORD *a3, __int64 a4, __int64 a5, __int64 a6); | |
__int64 __fastcall sub_1800FD68C(__int64 a1, _QWORD *a2, __int64 a3); | |
__int64 __fastcall sub_1800FD70C(__int64 a1, _QWORD *a2, unsigned __int64 a3, _QWORD *a4); | |
__int64 __fastcall sub_1800FD8D0(_QWORD, _QWORD, _QWORD, _QWORD); // weak | |
__int64 __fastcall sub_1800FD8D4(__int64 result, signed __int64 *a2, signed __int64 *a3, __int64 a4, __int64 a5); | |
__int64 __fastcall sub_1800FDC6C(__int64 result, __int64 *a2, __int64 *a3, __int64 *a4); | |
__int64 __fastcall sub_1800FDD20(__int64 a1, __int64 *a2); | |
__int64 __fastcall sub_1800FDD58(unsigned __int64 **a1, unsigned __int64 a2, unsigned __int64 *a3, unsigned __int64 *a4, __int64 a5); | |
__int64 __fastcall sub_1800FE00C(unsigned __int64 a1, __int64 a2, unsigned __int64 a3, unsigned __int8 *a4); | |
// __int64 __usercall sub_1800FE034@<X0>(__int64 a1@<X1>, __int64 a2@<X8>); | |
_QWORD *__fastcall sub_1800FE0DC(__int64 a1, _QWORD *a2, _QWORD *a3); | |
__int64 __fastcall sub_1800FE100(__int64 result, unsigned __int64 *a2, unsigned __int64 *a3, unsigned __int64 *a4); | |
unsigned __int64 __fastcall sub_1800FE1B4(__int64 a1, __int64 *a2); | |
__int64 __fastcall sub_1800FE1D0(unsigned __int64 a1, signed __int64 *a2); | |
signed __int64 __fastcall sub_1800FE1E8(unsigned __int64 a1, unsigned __int8 *a2, __int64 a3, unsigned __int8 *a4, unsigned __int8 *a5); | |
_QWORD *__fastcall sub_1800FE354(unsigned __int64 **a1, __int64 a2, _QWORD *a3, __int64 *a4); | |
signed __int64 __fastcall sub_1800FE72C(__int64 *a1, unsigned __int64 *a2, unsigned __int64 *a3); | |
signed __int64 __fastcall sub_1800FE7D0(__int64 *a1, unsigned __int8 *a2, __int64 a3, unsigned __int8 *a4, unsigned __int64 a5, unsigned __int8 *a6, _BYTE *a7); | |
__int64 *sub_1800FE934(); | |
__int64 __fastcall sub_1800FED80(__int64 result, int8x16_t *a2, int8x16_t *a3, __int64 a4); | |
__int64 __fastcall sub_1800FEEB0(signed __int64 a1, unsigned __int64 *a2, unsigned __int64 *a3, unsigned __int64 *a4); | |
__int64 __fastcall sub_1800FF1C4(); // weak | |
__int64 __fastcall sub_1800FF2C0(); // weak | |
__int64 __fastcall sub_1800FF330(); // weak | |
__int64 __fastcall sub_1800FF498(); // weak | |
_QWORD *__fastcall sub_1800FF4A8(_QWORD *result, __int64 a2); | |
signed __int64 __fastcall sub_1800FF4DC(signed __int64 *a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7); | |
signed __int64 __fastcall sub_1800FF7B4(__int64 *a1); | |
_QWORD *__fastcall sub_1800FF7D4(unsigned __int64 **a1, unsigned __int64 *a2, _QWORD *a3, unsigned __int64 *a4); | |
__int64 __fastcall sub_1800FF99C(unsigned __int64 **a1, unsigned __int64 *a2, __int64 a3, unsigned __int64 *a4, __int64 a5); | |
__int64 __fastcall sub_1800FFA10(_QWORD *a1, unsigned __int64 *a2, __int64 a3, unsigned __int64 *a4); | |
__int64 *sub_180100E94(); | |
_QWORD *__fastcall sub_180100EA0(_QWORD *result, unsigned __int64 a2, _QWORD *a3, unsigned __int64 *a4); | |
signed __int64 __fastcall sub_180100FE4(int a1, __int64 a2, __int64 a3); | |
__int64 __fastcall sub_180101004(__int64 result, __int64 *a2); | |
//------------------------------------------------------------------------- | |
// Data declarations | |
_UNKNOWN sub_1800B0800; // weak | |
_UNKNOWN loc_1800B11FC; // weak | |
_UNKNOWN loc_1800B498C; // weak | |
_UNKNOWN loc_1800B49A4; // weak | |
_UNKNOWN loc_1800B49CC; // weak | |
_UNKNOWN loc_1800B4B54; // weak | |
_UNKNOWN loc_1800B4EC0; // weak | |
_UNKNOWN loc_1800B52A0; // weak | |
_UNKNOWN loc_1800B5534; // weak | |
_UNKNOWN loc_1800B55B0; // weak | |
_UNKNOWN loc_1800B55EC; // weak | |
_UNKNOWN loc_1800B562C; // weak | |
_UNKNOWN loc_1800B5644; // weak | |
_UNKNOWN loc_1800BC5F8; // weak | |
_UNKNOWN loc_1800BC81C; // weak | |
_UNKNOWN loc_1800BE124; // weak | |
_UNKNOWN loc_1800BE748; // weak | |
_UNKNOWN loc_1800BF090; // weak | |
_UNKNOWN loc_1800BF0D0; // weak | |
_UNKNOWN loc_1800BF248; // weak | |
_UNKNOWN loc_1800BF254; // weak | |
_UNKNOWN loc_1800BF934; // weak | |
_UNKNOWN loc_1800BF9AC; // weak | |
_UNKNOWN loc_1800C3DEC; // weak | |
_UNKNOWN loc_1800C3F48; // weak | |
_UNKNOWN loc_1800D4A94; // weak | |
_UNKNOWN locret_1800D4E68; // weak | |
_UNKNOWN loc_1800D54FC; // weak | |
_UNKNOWN loc_1800D5CA8; // weak | |
_UNKNOWN loc_1800D5E8C; // weak | |
_UNKNOWN loc_1800D76CC; // weak | |
_UNKNOWN loc_1800D7860; // weak | |
_UNKNOWN locret_1800D7A98; // weak | |
_UNKNOWN loc_1800DA014; // weak | |
_UNKNOWN loc_1800DA880; // weak | |
_UNKNOWN loc_1800DB120; // weak | |
_UNKNOWN loc_1800DB174; // weak | |
_UNKNOWN loc_1800DB2E8; // weak | |
_UNKNOWN loc_1800E0874; // weak | |
_UNKNOWN loc_1800E0D08; // weak | |
_UNKNOWN loc_1800E1120; // weak | |
_UNKNOWN loc_1800E2B04; // weak | |
_UNKNOWN loc_1800E5030; // weak | |
_UNKNOWN loc_1800E7938; // weak | |
_UNKNOWN loc_1800E79D0; // weak | |
_UNKNOWN loc_1800E7A1C; // weak | |
_UNKNOWN loc_1800E7A68; // weak | |
_UNKNOWN loc_1800E7AB4; // weak | |
_UNKNOWN loc_1800E9758; // weak | |
_UNKNOWN loc_1800E9C0C; // weak | |
__int64 qword_1800EB3F0[4] = | |
{ | |
1808788007904223008LL, | |
1230066625199609624LL, | |
651345242494996240LL, | |
72623859790382856LL | |
}; // weak | |
_UNKNOWN loc_1800EDE2C; // weak | |
_UNKNOWN loc_1800EDE80; // weak | |
_UNKNOWN loc_1800EE72C; // weak | |
_UNKNOWN loc_1800EEB08; // weak | |
_UNKNOWN loc_1800EEB7C; // weak | |
_UNKNOWN loc_1800EEC04; // weak | |
_UNKNOWN loc_1800F069C; // weak | |
_UNKNOWN loc_1800F0C78; // weak | |
_UNKNOWN loc_1800F1DC8; // weak | |
_UNKNOWN loc_1800F3314; // weak | |
_UNKNOWN sub_1800F3A2C; // weak | |
_UNKNOWN sub_1800F3A64; // weak | |
_UNKNOWN sub_1800F3A9C; // weak | |
_UNKNOWN sub_1800F3AD4; // weak | |
_UNKNOWN sub_1800F3B44; // weak | |
_UNKNOWN sub_1800F3C8C; // weak | |
_UNKNOWN loc_1800F4A58; // weak | |
_UNKNOWN loc_1800F6294; // weak | |
_UNKNOWN locret_1800F8400; // weak | |
_UNKNOWN locret_1800F8D68; // weak | |
__int64 qword_1800F9D40[64] = | |
{ | |
-184368922991985296LL, | |
-134826664211186320LL, | |
-184368922991985296LL, | |
-134829516069470864LL, | |
-184368922991985296LL, | |
-134829516069470864LL, | |
-184368922991985296LL, | |
-134826612671578768LL, | |
-184368922991985296LL, | |
-134826612671578768LL, | |
-184368922991985296LL, | |
-134826612671578768LL, | |
-184368922991985296LL, | |
-134826612671578768LL, | |
-184368922991985296LL, | |
-134826612671578768LL, | |
-184368922991985296LL, | |
-134828777335095952LL, | |
-184368922991985296LL, | |
-134828777335095952LL, | |
-184368922991985296LL, | |
-134828777335095952LL, | |
-184368922991985296LL, | |
-134828777335095952LL, | |
-184368922991985296LL, | |
-134828777335095952LL, | |
-184368922991985296LL, | |
-134828777335095952LL, | |
-6474023250100248LL, | |
-6474023250100248LL, | |
-6474023250100248LL, | |
-6474023250100248LL, | |
-184368922991985296LL, | |
-134828777335095952LL, | |
-184368922991985296LL, | |
-134828777335095952LL, | |
-184368922991985296LL, | |
-134828777335095952LL, | |
-184368922991985296LL, | |
-134828777335095952LL, | |
-116813897773547936LL, | |
-116813897773547936LL, | |
-116813897773547936LL, | |
-116813897773547936LL, | |
-116813897773547936LL, | |
-116813897773547936LL, | |
-116813897773547936LL, | |
-116813897773547936LL, | |
-184368922991985296LL, | |
-134828777335095952LL, | |
-184368922991985296LL, | |
-134828777335095952LL, | |
-6474023250100248LL, | |
-6474023250100248LL, | |
-6474023250100248LL, | |
-6474023250100248LL, | |
-71777214294589680LL, | |
-71777214294589696LL, | |
-71777214294589696LL, | |
-71777214294589696LL, | |
-98799224381964592LL, | |
-98799224381964640LL, | |
-98799224381964640LL, | |
-98799224381964640LL | |
}; // weak | |
__int64 qword_1800FA500[8] = { 0LL, 0LL, 0LL, 0LL, 0LL, 0LL, 0LL, 0LL }; // weak | |
__int64 qword_1800FA700[2] = { 2026089936937033760LL, 2169637811238345488LL }; // weak | |
__int64 qword_1800FAB10[] = { 0LL }; // weak | |
char byte_180101040 = '\0'; // weak | |
int dword_180103A68[] = { 1634495855 }; // weak | |
__int64 qword_180104640[2] = { 8623816704LL, 8624865280LL }; // weak | |
__int64 qword_180104650[4] = { 25769803780LL, 51539607560LL, 103079215120LL, 32LL }; // weak | |
__int64 qword_180104670[4] = { 8842641408LL, 208LL, 8859353088LL, 88LL }; // weak | |
int dword_180104690[] = { 0 }; // weak | |
int dword_180104890[] = { 0 }; // weak | |
__int64 qword_180104C10[35] = | |
{ | |
-17179868995500LL, | |
-15032385391710LL, | |
-12884901776670LL, | |
-10737418153440LL, | |
-8589934524210LL, | |
-6442450890540LL, | |
-4294967253550LL, | |
-2147483614070LL, | |
27280LL, | |
2147483670070LL, | |
4294967313960LL, | |
6442450958700LL, | |
8589934604090LL, | |
10737418250000LL, | |
12884901896310LL, | |
15032385542940LL, | |
17179869189830LL, | |
19327352836910LL, | |
21474836484160LL, | |
23622320131540LL, | |
25769803779020LL, | |
27917287426590LL, | |
30064771074230LL, | |
32212254721920LL, | |
34359738369670LL, | |
36507222017450LL, | |
38654705665270LL, | |
40802189313110LL, | |
42949672960980LL, | |
45097156608860LL, | |
47244640256760LL, | |
49392123904670LL, | |
51539607552600LL, | |
53687091200530LL, | |
0LL | |
}; // weak | |
char byte_180104D28[] = { '\0' }; // weak | |
int dword_180104D44 = 33619983; // weak | |
char byte_180104D70[] = { '\0' }; // weak | |
int dword_180104D8C[] = { 4278520160 }; // weak | |
__int64 qword_180104F30[2] = { 12884901888LL, 0LL }; // weak | |
__int64 qword_180104FA0[16] = | |
{ | |
1407443838369919LL, | |
7078000LL, | |
8758493184LL, | |
936302870579LL, | |
8758509568LL, | |
940597837876LL, | |
8758525952LL, | |
944892805173LL, | |
8758542336LL, | |
949187772470LL, | |
8758558720LL, | |
953482739767LL, | |
8758575104LL, | |
957777707064LL, | |
8758591488LL, | |
962072674361LL | |
}; // weak | |
__int64 qword_180105020[3] = { 17179869184LL, 2LL, 0LL }; // weak | |
__int64 qword_180105050[2] = { 4294967297LL, 0LL }; // weak | |
__int64 qword_1801057F0[512] = | |
{ | |
1737272352888196109LL, | |
90194313217LL, | |
8589934599LL, | |
1737272352888212493LL, | |
90194313217LL, | |
8589934599LL, | |
1737272352888245261LL, | |
90194313217LL, | |
8589934599LL, | |
1737272352888228877LL, | |
90194313217LL, | |
8589934599LL, | |
1735880461361741949LL, | |
3323408160397143321LL, | |
1787102550640763425LL, | |
-5547515501668986610LL, | |
4496260410626LL, | |
1787102550035271944LL, | |
8287467787896248590LL, | |
4495455113730LL, | |
1787102550035271944LL, | |
-935904248824309490LL, | |
2306406360981504002LL, | |
3470914294074781477LL, | |
3396425777938454LL, | |
6416601486176620621LL, | |
-8214284232680079349LL, | |
3396425777938454LL, | |
1735880461361758333LL, | |
3323408160397143321LL, | |
1787102550640763425LL, | |
-5547515501668986610LL, | |
4496260410626LL, | |
1787102550035271944LL, | |
8287467787896248590LL, | |
4495455113730LL, | |
1787102550035271944LL, | |
-935904248824309490LL, | |
2306476729725681666LL, | |
3470914294074781477LL, | |
3396425777938454LL, | |
6416601486176620621LL, | |
-8214284232680079349LL, | |
3396425777938454LL, | |
1735880461361774717LL, | |
3323408160397143321LL, | |
1787102550640763425LL, | |
-5547515501668986610LL, | |
4496260410626LL, | |
1787102550035271944LL, | |
8287467787896248590LL, | |
4495455113730LL, | |
1787102550035271944LL, | |
-935904248824309490LL, | |
2306547098469859330LL, | |
3470914294074781477LL, | |
3396425777938454LL, | |
6416601486176620621LL, | |
-8214284232680079349LL, | |
3396425777938454LL, | |
1735880461361791101LL, | |
3323408160397143321LL, | |
1787102550640763425LL, | |
-5547515501668986610LL, | |
4496260410626LL, | |
1787102550035271944LL, | |
8287467787896248590LL, | |
4495455113730LL, | |
1787102550035271944LL, | |
-935904248824309490LL, | |
2306617467214036994LL, | |
3470914294074781477LL, | |
3396425777938454LL, | |
6416601486176620621LL, | |
-8214284232680079349LL, | |
3396425777938454LL, | |
-4991755619602915111LL, | |
127418416825744589LL, | |
70646912130482688LL, | |
7156491249843699808LL, | |
70646912130482688LL, | |
-4991755619602898727LL, | |
127418416825744589LL, | |
70646912130482688LL, | |
7156491249843699808LL, | |
70646912130482688LL, | |
-4991755619602882343LL, | |
127418416825744589LL, | |
70646912130482688LL, | |
7156491249843699808LL, | |
70646912130482688LL, | |
-4991755619602865959LL, | |
127418416825744589LL, | |
70646912130482688LL, | |
7156491249843699808LL, | |
70646912130482688LL, | |
38638078476293LL, | |
1688875630067731LL, | |
537002049LL, | |
2306476607084433645LL, | |
1144510000136192LL, | |
537034817LL, | |
2306617344572788973LL, | |
1144510000136192LL, | |
-6800204745509044163LL, | |
-1016139093310384989LL, | |
4841733307095509LL, | |
1703195052089862LL, | |
292474388286470LL, | |
2308113566825318415LL, | |
-6986965307431649120LL, | |
1877016930167029878LL, | |
4760590713513574412LL, | |
2614340043518773512LL, | |
2306406222502604818LL, | |
-2605344604171872525LL, | |
-1664107666337307681LL, | |
4667140995475832899LL, | |
653584981888729858LL, | |
219714498578LL, | |
144682554342114306LL, | |
2882409391993454597LL, | |
5911373942882355LL, | |
5550027729025852102LL, | |
874016370717840520LL, | |
-3255591355929198567LL, | |
1171253120826338003LL, | |
4822483770422151LL, | |
4803500014899394LL, | |
85887397342028322LL, | |
-6800204745509027779LL, | |
-1016139093310384989LL, | |
4841733307095509LL, | |
1703195052089862LL, | |
292474388286470LL, | |
2308113566825318415LL, | |
-6986965307431649120LL, | |
1877016930167029878LL, | |
4760590713513574412LL, | |
2614340043518773512LL, | |
2306476591246782482LL, | |
-2605344604171872525LL, | |
-1664107666337307681LL, | |
4667140995475832899LL, | |
653584981888729858LL, | |
219714498578LL, | |
144682554342114306LL, | |
2882409391993454597LL, | |
5911373942882355LL, | |
5550027729025852102LL, | |
874016370717840520LL, | |
-3255591355929182183LL, | |
1171253120826338003LL, | |
4822483770422151LL, | |
4803500014899394LL, | |
85887397342028322LL, | |
-6800204745509011395LL, | |
-1016139093310384989LL, | |
4841733307095509LL, | |
1703195052089862LL, | |
292474388286470LL, | |
2308113566825318415LL, | |
-6986965307431649120LL, | |
1877016930167029878LL, | |
4760590713513574412LL, | |
2614340043518773512LL, | |
2306546959990960146LL, | |
-2605344604171872525LL, | |
-1664107666337307681LL, | |
4667140995475832899LL, | |
653584981888729858LL, | |
219714498578LL, | |
144682554342114306LL, | |
2882409391993454597LL, | |
5911373942882355LL, | |
5550027729025852102LL, | |
874016370717840520LL, | |
-3255591355929165799LL, | |
1171253120826338003LL, | |
4822483770422151LL, | |
4803500014899394LL, | |
85887397342028322LL, | |
-6800204745508995011LL, | |
-1016139093310384989LL, | |
4841733307095509LL, | |
1703195052089862LL, | |
292474388286470LL, | |
2308113566825318415LL, | |
-6986965307431649120LL, | |
1877016930167029878LL, | |
4760590713513574412LL, | |
2614340043518773512LL, | |
2306617328735137810LL, | |
-2605344604171872525LL, | |
-1664107666337307681LL, | |
4667140995475832899LL, | |
653584981888729858LL, | |
219714498578LL, | |
144682554342114306LL, | |
2882409391993454597LL, | |
5911373942882355LL, | |
5550027729025852102LL, | |
874016370717840520LL, | |
-3255591355929149415LL, | |
1171253120826338003LL, | |
4822483770422151LL, | |
4803500014899394LL, | |
85887397342028322LL, | |
784717055529189457LL, | |
105969728094217LL, | |
4294967552LL, | |
35184372088832LL, | |
784717055529205841LL, | |
105969728094217LL, | |
4294967552LL, | |
35184372088832LL, | |
784717055529222225LL, | |
105969728094217LL, | |
4294967552LL, | |
35184372088832LL, | |
784717055529238609LL, | |
105969728094217LL, | |
4294967552LL, | |
35184372088832LL, | |
537001985LL, | |
2306476332206260226LL, | |
8589934592LL, | |
537034753LL, | |
2306617069694615554LL, | |
8589934592LL, | |
60666544257LL, | |
2306476881962074133LL, | |
90194313230LL, | |
60666577025LL, | |
2306617619450429461LL, | |
90194313230LL, | |
69256478785LL, | |
2306476607436685312LL, | |
1514053899726618640LL, | |
69256511553LL, | |
2306617344925040640LL, | |
1514053899726618640LL, | |
36706650769457161LL, | |
25442LL, | |
2306476366566023520LL, | |
109272566491265LL, | |
107064944754688LL, | |
36706650769489929LL, | |
25442LL, | |
2306617104054378848LL, | |
109272566491265LL, | |
107064944754688LL, | |
438623674369LL, | |
2306511516591456656LL, | |
56296713329049702LL, | |
438623707137LL, | |
2306652254079811984LL, | |
56296713329049702LL, | |
438623676417LL, | |
2306458740033323408LL, | |
56296713329049702LL, | |
438623692801LL, | |
2306529108777501072LL, | |
56296713329049702LL, | |
438623709185LL, | |
2306599477521678736LL, | |
56296713329049702LL, | |
438623725569LL, | |
2306669846265856400LL, | |
56296713329049702LL, | |
537010177LL, | |
2306511516578349057LL, | |
4294967296LL, | |
537042945LL, | |
2306652254066704385LL, | |
4294967296LL, | |
537012225LL, | |
2306458740020215809LL, | |
4294967296LL, | |
537028609LL, | |
2306529108764393473LL, | |
4294967296LL, | |
537044993LL, | |
2306599477508571137LL, | |
4294967296LL, | |
537061377LL, | |
2306669846252748801LL, | |
4294967296LL, | |
275414917313LL, | |
2306512341212070080LL, | |
824633720896LL, | |
275414950081LL, | |
2306653095880294592LL, | |
824633737536LL, | |
2306441972467892416LL, | |
824633720897LL, | |
279709900993LL, | |
2306582709956247744LL, | |
824633720897LL, | |
825170733185LL, | |
2306459289788219392LL, | |
52354345668182208LL, | |
825170749569LL, | |
2306529658532397056LL, | |
52354345668182208LL, | |
825170765953LL, | |
2306600027276574720LL, | |
52354345668182208LL, | |
825170782337LL, | |
2306670396020752384LL, | |
52354345668182208LL, | |
829465700481LL, | |
2306459289790382080LL, | |
61643019899633857LL, | |
829465716865LL, | |
2306529658534559744LL, | |
61643019899633857LL, | |
829465733249LL, | |
2306600027278737408LL, | |
61643019899633857LL, | |
829465749633LL, | |
2306670396022915072LL, | |
61643019899633857LL, | |
833760667777LL, | |
2306459289776029696LL, | |
194LL, | |
833760684161LL, | |
2306529658520207360LL, | |
194LL, | |
833760700545LL, | |
2306600027264385024LL, | |
194LL, | |
833760716929LL, | |
2306670396008562688LL, | |
194LL, | |
838055635073LL, | |
2306459289776029696LL, | |
195LL, | |
838055651457LL, | |
2306529658520207360LL, | |
195LL, | |
838055667841LL, | |
2306600027264385024LL, | |
195LL, | |
838055684225LL, | |
2306670396008562688LL, | |
195LL, | |
421443805185LL, | |
2306511516611905536LL, | |
144123984168878178LL, | |
421443837953LL, | |
2306652254100260864LL, | |
144123984168878178LL, | |
421443807233LL, | |
2306458740053772288LL, | |
144123984168878178LL, | |
421443823617LL, | |
2306529108797949952LL, | |
144123984168878178LL, | |
421443840001LL, | |
2306599477542127616LL, | |
144123984168878178LL, | |
421443856385LL, | |
2306669846286305280LL, | |
144123984168878178LL, | |
850940534849LL, | |
2306511791506785029LL, | |
217020527053635782LL, | |
850940567617LL, | |
2306652528995140357LL, | |
217020527053635782LL, | |
580357597249LL, | |
2306459014898319365LL, | |
844446404968583LL, | |
580357613633LL, | |
2306529383642497029LL, | |
844446404968583LL, | |
580357630017LL, | |
2306599752386674693LL, | |
844446404968583LL, | |
580357646401LL, | |
2306670121130852357LL, | |
844446404968583LL, | |
558882760769LL, | |
2306459014914834434LL, | |
71776127651152002LL, | |
558882777153LL, | |
2306529383659012098LL, | |
71776127651152002LL, | |
558882793537LL, | |
2306599752403189762LL, | |
71776127651152002LL, | |
558882809921LL, | |
2306670121147367426LL, | |
71776127651152002LL, | |
558882760770LL, | |
2LL, | |
558882762818LL, | |
2LL, | |
558882777154LL, | |
2LL, | |
558882779202LL, | |
2LL, | |
558882793538LL, | |
2LL, | |
558882795586LL, | |
2LL, | |
558882809922LL, | |
2LL, | |
558882811970LL, | |
2LL, | |
558882760769LL, | |
2306459014914834432LL, | |
71776119061217410LL, | |
558882777153LL, | |
2306529383659012096LL, | |
71776119061217410LL, | |
558882793537LL, | |
2306599752403189760LL, | |
71776119061217410LL, | |
558882809921LL, | |
2306670121147367424LL, | |
71776119061217410LL, | |
550292826177LL, | |
2306459019176312834LL, | |
-72057585447993216LL, | |
550292842561LL, | |
2306529387920490498LL, | |
-72057585447993216LL, | |
550292858945LL, | |
2306599756664668162LL, | |
-72057585447993216LL, | |
550292875329LL, | |
2306670125408845826LL, | |
-72057585447993216LL, | |
550292826178LL, | |
2LL, | |
550292828226LL, | |
2LL, | |
550292842562LL, | |
2LL, | |
550292844610LL, | |
2LL, | |
550292858946LL, | |
2LL, | |
550292860994LL, | |
2LL, | |
550292875330LL, | |
2LL, | |
550292877378LL, | |
2LL, | |
550292826177LL, | |
2306459019176312832LL, | |
-72057594037927808LL, | |
550292842561LL, | |
2306529387920490496LL, | |
-72057594037927808LL, | |
550292858945LL, | |
2306599756664668160LL, | |
-72057594037927808LL, | |
550292875329LL, | |
2306670125408845824LL, | |
-72057594037927808LL, | |
537010305LL, | |
2306512066350875135LL, | |
71778313789505536LL, | |
537043073LL, | |
2306652803839230463LL, | |
71778313789505536LL, | |
537010306LL, | |
256LL, | |
537026690LL, | |
256LL, | |
537043074LL, | |
256LL, | |
537059458LL, | |
256LL, | |
537010305LL, | |
2306512066350874879LL, | |
71777214277877760LL, | |
537043073LL, | |
2306652803839230207LL, | |
71777214277877760LL, | |
438623674369LL, | |
2306511516591456656LL, | |
56296713329049702LL, | |
438623707137LL, | |
2306652254079811984LL, | |
56296713329049702LL, | |
438623676417LL, | |
2306458740033323408LL, | |
56296713329049702LL, | |
438623692801LL, | |
2306529108777501072LL, | |
56296713329049702LL, | |
438623709185LL, | |
2306599477521678736LL, | |
56296713329049702LL, | |
438623725569LL, | |
2306669846265856400LL, | |
56296713329049702LL, | |
674846875841LL, | |
2306512341313132036LL, | |
434058620523511965LL, | |
674846908609LL, | |
2306653078801487364LL, | |
434058620523511965LL, | |
412853872833LL, | |
2306459564754998788LL, | |
434058620523511904LL, | |
412853889217LL, | |
2306529933499176452LL | |
}; // weak | |
__int64 qword_180108438[103] = | |
{ | |
438623674369LL, | |
2306511516579594259LL, | |
5348106161881190LL, | |
438623707137LL, | |
2306652254067949587LL, | |
5348106161881190LL, | |
438623676417LL, | |
2306458740021461011LL, | |
5348106161881190LL, | |
438623692801LL, | |
2306529108765638675LL, | |
5348106161881190LL, | |
438623709185LL, | |
2306599477509816339LL, | |
5348106161881190LL, | |
438623725569LL, | |
2306669846253994003LL, | |
5348106161881190LL, | |
4831977473LL, | |
2306511518894653441LL, | |
-8498292492553158655LL, | |
4832010241LL, | |
2306652256383008769LL, | |
-8498292492553158655LL, | |
855235502145LL, | |
2306511791456256001LL, | |
4294967495LL, | |
855235534913LL, | |
2306652528944611329LL, | |
4294967495LL, | |
593242499137LL, | |
2306459014898122753LL, | |
4294967434LL, | |
593242515521LL, | |
2306529383642300417LL, | |
4294967434LL, | |
593242531905LL, | |
2306599752386478081LL, | |
4294967434LL, | |
593242548289LL, | |
2306670121130655745LL, | |
4294967434LL, | |
430033741825LL, | |
2306458740020281344LL, | |
281474976710756LL, | |
430033758209LL, | |
2306529108764459008LL, | |
281474976710756LL, | |
430033774593LL, | |
2306599477508636672LL, | |
281474976710756LL, | |
430033790977LL, | |
2306669846252814336LL, | |
281474976710756LL, | |
425738774529LL, | |
2306458740020215809LL, | |
4294967395LL, | |
425738790913LL, | |
2306529108764393473LL, | |
4294967395LL, | |
425738807297LL, | |
2306599477508571137LL, | |
4294967395LL, | |
425738823681LL, | |
2306669846252748801LL, | |
4294967395LL, | |
425738774530LL, | |
1LL, | |
425738776578LL, | |
1LL, | |
425738790914LL, | |
1LL, | |
425738792962LL, | |
1LL, | |
425738807298LL, | |
1LL, | |
425738809346LL, | |
1LL, | |
425738823682LL, | |
1LL, | |
425738825730LL, | |
1LL, | |
112155018010629LL, | |
56296715644305408LL, | |
112155018027013LL, | |
56296715644305408LL, | |
112155018043397LL, | |
56296715644305408LL, | |
112155018059781LL, | |
56296715644305408LL, | |
438623676417LL, | |
2306458740033323408LL, | |
56296713329049702LL, | |
438623692801LL, | |
2306529108777501072LL, | |
56296713329049702LL, | |
438623709185LL, | |
2306599477521678736LL, | |
56296713329049702LL, | |
438623725569LL, | |
2306669846265856400LL, | |
56296713329049702LL, | |
64977190913LL | |
}; // weak | |
int dword_180108774 = 537010369; // weak | |
__int64 qword_180108958[183] = | |
{ | |
4294967297LL, | |
4294967297LL, | |
2LL, | |
4294967297LL, | |
4294967297LL, | |
2LL, | |
2LL, | |
2LL, | |
-1LL, | |
2305843150947614719LL, | |
1099511628032LL, | |
72057590279831588LL, | |
2305843215374286844LL, | |
3943961094721295LL, | |
-1LL, | |
2305843150947614719LL, | |
1099511628032LL, | |
72057590279831588LL, | |
2305843215374286844LL, | |
3943961094721295LL, | |
-1LL, | |
2305843150947614719LL, | |
1099511628032LL, | |
72057590279831588LL, | |
2305843215374286844LL, | |
3943961094721295LL, | |
-1LL, | |
2305843150947614719LL, | |
1099511628032LL, | |
72057590279831588LL, | |
2305843215374286844LL, | |
3943961094721295LL, | |
-1LL, | |
2305843666343690239LL, | |
15LL, | |
70086170226196836LL, | |
2305852767379390464LL, | |
21474836485LL, | |
-1LL, | |
2305843666343690239LL, | |
15LL, | |
70086170226196836LL, | |
2305852767379390464LL, | |
21474836485LL, | |
-1LL, | |
2305843666343690239LL, | |
15LL, | |
70086170226196836LL, | |
2305852767379390464LL, | |
21474836485LL, | |
-1LL, | |
2305843666343690239LL, | |
15LL, | |
70086170226196836LL, | |
2305852767379390464LL, | |
21474836485LL, | |
-1LL, | |
2305843631983951871LL, | |
171798692095LL, | |
56371446064LL, | |
2305844332063621125LL, | |
4294967297LL, | |
140183974445368LL, | |
2305844366423359488LL, | |
8589934594LL, | |
32651093540340032LL, | |
-4287607733LL, | |
-1LL, | |
1095753531536LL, | |
2305844314883751976LL, | |
21474836493LL, | |
4831838516LL, | |
2305844349243490305LL, | |
32639LL, | |
9126805820LL, | |
2305844383603228674LL, | |
31609082405453823LL, | |
-1LL, | |
2305843631983951871LL, | |
171798692095LL, | |
56371446064LL, | |
2305844332063621125LL, | |
4294967297LL, | |
140183974445368LL, | |
2305844366423359488LL, | |
8589934594LL, | |
32651093540340032LL, | |
-4287607733LL, | |
-1LL, | |
1095753531536LL, | |
2305844314883751976LL, | |
21474836493LL, | |
4831838516LL, | |
2305844349243490305LL, | |
32639LL, | |
9126805820LL, | |
2305844383603228674LL, | |
31609082405453823LL, | |
-1LL, | |
2305843047868399615LL, | |
2139062143LL, | |
2039865189335052LL, | |
2305843077933448960LL, | |
1792LL, | |
72057590279831576LL, | |
2305843129473567072LL, | |
10084583219199LL, | |
1095753531436LL, | |
2305843266911731721LL, | |
2147483648LL, | |
3535325776742187264LL, | |
2305844143101837312LL, | |
1799LL, | |
2039865189335308LL, | |
2305844177445076736LL, | |
4294967313LL, | |
30601642260LL, | |
2305844211804536832LL, | |
1195169139867455LL, | |
230528277045838112LL, | |
2305844314901643279LL, | |
64424509695LL, | |
545997717816LL, | |
2305844658481135678LL, | |
72057594861060112LL, | |
7727183036808LL, | |
2305844710020743168LL, | |
1195169139867455LL, | |
230528277045838240LL, | |
2305844864657457167LL, | |
64424509695LL, | |
545997717944LL, | |
2305845208236949566LL, | |
72057594861060112LL, | |
7727183036936LL, | |
2305845259776557056LL, | |
1195169139867455LL, | |
230528277045838368LL, | |
2305845414413271055LL, | |
64424509695LL, | |
545997718072LL, | |
2305845757992763454LL, | |
72057594861060112LL, | |
7727183037064LL, | |
2305845809532370944LL, | |
1195169139867455LL, | |
230528277045838496LL, | |
2305845964169084943LL, | |
64424509695LL, | |
545997718200LL, | |
-4294967234LL, | |
-1LL, | |
69256347904LL, | |
2305844658481135632LL, | |
16LL, | |
69256348160LL, | |
2305845757992763392LL, | |
16LL, | |
-1LL, | |
1970354901745663LL, | |
3659217647501320LL, | |
4785143324540942LL, | |
1970350608023570LL, | |
3659217647501320LL, | |
4785143324540942LL, | |
14073959290241042LL, | |
15481355650793523LL, | |
562954248388664LL, | |
18858844914712579LL, | |
19703531842109508LL, | |
1970350610645058LL, | |
8444369562173448LL, | |
10696195145990175LL, | |
12385083662073876LL, | |
1970350609858605LL, | |
8162894585462792LL, | |
11822159477342239LL, | |
281474979659820LL, | |
6755498226745365LL, | |
19140586180837401LL, | |
18577657704480829LL, | |
19985015408623675LL, | |
16607307098488892LL | |
}; // weak | |
__int64 qword_180108F18 = 117449215LL; // weak | |
int dword_180109998 = 66846726; // weak | |
__int64 qword_180109AA0[3] = { 0LL, 0LL, 0LL }; // weak | |
int dword_180109B8C[] = { 810150725 }; // weak | |
char byte_180109CB9[7] = { '\b', '\x10', '\0', '\0', '\0', '\xA0', '\x86' }; // weak | |
__int64 qword_18010A348[36] = | |
{ | |
254LL, | |
8860730116LL, | |
8860730117LL, | |
257LL, | |
254LL, | |
8860730120LL, | |
8860730121LL, | |
257LL, | |
254LL, | |
8825716736LL, | |
8825716737LL, | |
257LL, | |
254LL, | |
8825077760LL, | |
8825079808LL, | |
256LL, | |
254LL, | |
8623489024LL, | |
8639348736LL, | |
257LL, | |
254LL, | |
8639348928LL, | |
8639348929LL, | |
256LL, | |
254LL, | |
8639479808LL, | |
8639512576LL, | |
257LL, | |
254LL, | |
8639513632LL, | |
8639741952LL, | |
257LL, | |
4294967295LL, | |
-1LL, | |
-1LL, | |
0LL | |
}; // weak | |
__int64 qword_18010C428[4] = { 4294967295LL, -1LL, -1LL, 0LL }; // weak | |
__int64 qword_18010D1B0 = 8592031748LL; // weak | |
int dword_18010D5F0[] = { 1 }; // weak | |
int dword_18010D608 = 1; // weak | |
__int64 qword_18010D690[63] = | |
{ | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL | |
}; // weak | |
__int64 qword_18010E378[7] = { 8825078272LL, 562958543486977LL, 281496451612675LL, 0LL, 0LL, 0LL, 0LL }; // weak | |
__int64 qword_18010E7A0[68] = | |
{ | |
-9146810843189477309LL, | |
-8930638061075693500LL, | |
-8930638061075693499LL, | |
-8930638061075693498LL, | |
-9002695655113621433LL, | |
-9002695655113621432LL, | |
-9146810843189477303LL, | |
-9002695655113621430LL, | |
-9146810843189477301LL, | |
-9074753249151549364LL, | |
-9146810843189477299LL, | |
59LL, | |
60LL, | |
61LL, | |
62LL, | |
-9007199237561122753LL, | |
-9007199237561122752LL, | |
-9007199237561122751LL, | |
-8786522872999837687LL, | |
-8858580467037765622LL, | |
-8858580467037765621LL, | |
220676381741154316LL, | |
-8858580467037765619LL, | |
-8858580467037765618LL, | |
-9218868437227405297LL, | |
-8858580467037765616LL, | |
-8858580467037765615LL, | |
-8858580467037765614LL, | |
-8858580467037765613LL, | |
-8858580467037765612LL, | |
-8858580467037765611LL, | |
-8786522872999837674LL, | |
-9218868437227405289LL, | |
-8858580467037765608LL, | |
-8858580467037765607LL, | |
-8858580467037765606LL, | |
-8786522872999837669LL, | |
-8786522872999837668LL, | |
-8786522872999837667LL, | |
-9146810843189477346LL, | |
-9074753249151549409LL, | |
-9002695655113621472LL, | |
-8786522872999837663LL, | |
-8786522872999837662LL, | |
-8570350090886053853LL, | |
-8786522872999837660LL, | |
-8786522872999837659LL, | |
-8786522872999837658LL, | |
-8786522872999837657LL, | |
-8642407684923981784LL, | |
-8786522872999837655LL, | |
-8786522872999837654LL, | |
-8858580467037765589LL, | |
-8786522872999837652LL, | |
-8714465278961909715LL, | |
-8642407684923981778LL, | |
-8570350090886053841LL, | |
-8858580467037765584LL, | |
-8858580467037765583LL, | |
-8858580467037765582LL, | |
-8858580467037765581LL, | |
-8858580467037765580LL, | |
-8858580467037765579LL, | |
-8858580467037765578LL, | |
-8858580467037765577LL, | |
-8858580467037765576LL, | |
-8858580467037765575LL, | |
-8858580467037765574LL | |
}; // weak | |
__int64 qword_18010E9C0[99] = | |
{ | |
8860991488LL, | |
8860991496LL, | |
8860991504LL, | |
8860991512LL, | |
8860991520LL, | |
8860991528LL, | |
8860991536LL, | |
8860991544LL, | |
8860991552LL, | |
8860991560LL, | |
8860991568LL, | |
8860991576LL, | |
8860991584LL, | |
8860991592LL, | |
8860991600LL, | |
8860991608LL, | |
8860991616LL, | |
8825340160LL, | |
8825340168LL, | |
8825340176LL, | |
8825340184LL, | |
8825340192LL, | |
8825340200LL, | |
8825340208LL, | |
8825340216LL, | |
8825340224LL, | |
8825340232LL, | |
8825340240LL, | |
8825340256LL, | |
8825340264LL, | |
8825340272LL, | |
8825340280LL, | |
8825340288LL, | |
8825340296LL, | |
8825340304LL, | |
8825340312LL, | |
8825340320LL, | |
8825340328LL, | |
8825340336LL, | |
8825340344LL, | |
8825340352LL, | |
8825340360LL, | |
8825340368LL, | |
8825340376LL, | |
8825340384LL, | |
8825340392LL, | |
8825340400LL, | |
8825340408LL, | |
8825340416LL, | |
8825340424LL, | |
8825340432LL, | |
8825340440LL, | |
8825340448LL, | |
8825340456LL, | |
8825340464LL, | |
8825340472LL, | |
8825340480LL, | |
8825340488LL, | |
8825340496LL, | |
8825340504LL, | |
8825340512LL, | |
8825340520LL, | |
8825340528LL, | |
8825340536LL, | |
8825340544LL, | |
8825340552LL, | |
8825340560LL, | |
8825340568LL, | |
8825340576LL, | |
8825340584LL, | |
8825340592LL, | |
8825340600LL, | |
8825340608LL, | |
8825340616LL, | |
8825340624LL, | |
8825340632LL, | |
8825340640LL, | |
8825340648LL, | |
8825340656LL, | |
8825340664LL, | |
8825340672LL, | |
8825340688LL, | |
8825340696LL, | |
8825340704LL, | |
8825340712LL, | |
8825339904LL, | |
8825339912LL, | |
8825339968LL, | |
8825340928LL, | |
8825356288LL, | |
8825356296LL, | |
8825356304LL, | |
8825356312LL, | |
8825356320LL, | |
8825356328LL, | |
8825372672LL, | |
8825372680LL, | |
8825372688LL, | |
8825372696LL | |
}; // weak | |
__int64 qword_18010ECD8[] = { 8825585664LL }; // weak | |
__int64 qword_18010ED98[13] = | |
{ | |
322122547284LL, | |
330712481868LL, | |
356482285649LL, | |
373662154838LL, | |
438086664293LL, | |
446676598887LL, | |
416611827792LL, | |
408021893218LL, | |
425201762400LL, | |
281475010265856LL, | |
0LL, | |
0LL, | |
0LL | |
}; // weak | |
__int64 qword_18010F100[6] = | |
{ | |
3221225472LL, | |
3221225472LL, | |
2147483648LL, | |
2147483648LL, | |
3221225472LL, | |
3221225472LL | |
}; // weak | |
__int64 qword_18010F130 = 377957122256LL; // weak | |
__int64 qword_18010F138[42] = | |
{ | |
2119918548353038LL, | |
2124316594915342LL, | |
20195889713217550LL, | |
38210288226893838LL, | |
20126070720661646LL, | |
38210837978529934LL, | |
2191936560007566LL, | |
2111122459558286LL, | |
2122194893652512LL, | |
2196961671760416LL, | |
20198166045884960LL, | |
38142195811191328LL, | |
2188715342938656LL, | |
20198715797523104LL, | |
2194212901077664LL, | |
2122057446310816LL, | |
20127659858577920LL, | |
2122607202124288LL, | |
20128209614391936LL, | |
2123706713752192LL, | |
20199677870197632LL, | |
2122066032035330LL, | |
20127668448512514LL, | |
38212435706364418LL, | |
38212985462178434LL, | |
20127672743463427LL, | |
1302123110791086595LL, | |
1230936360439316753LL, | |
1736145456534061343LL, | |
83318797081717505LL, | |
1230064434432180481LL, | |
3103562962032529938LL, | |
1302123037784604929LL, | |
1184274LL, | |
85052726261579776LL, | |
1302104539629486337LL, | |
1230064451878785306LL, | |
868082207722316826LL, | |
1311130305741979648LL, | |
305271313LL, | |
0LL, | |
0LL | |
}; // weak | |
char byte_18010FB4C[] = { 'D' }; // weak | |
__int64 qword_18010FB70[7] = | |
{ | |
4294967296500LL, | |
9019431322600LL, | |
2400LL, | |
1154328879523972352LL, | |
0LL, | |
0LL, | |
0LL | |
}; // weak | |
__int64 qword_18010FE48 = 144122884690805760LL; // weak | |
char byte_18010FE50 = '\x04'; // weak | |
int dword_18010FE54 = 1033; // weak | |
char byte_18010FE5D[3] = { '\a', '!', '\x01' }; // weak | |
int dword_18010FE64 = 66569; // weak | |
__int16 word_18010FE76 = 1287; // weak | |
int dword_18010FE84 = 1033; // weak | |
char byte_18010FE8D[3] = { '\a', '\x05', '\x04' }; // weak | |
__int64 qword_18010FEB8[20] = | |
{ | |
578721382704613384LL, | |
578756705054631944LL, | |
578721382704613384LL, | |
578721382704613384LL, | |
1157442765409226912LL, | |
1157442765409226768LL, | |
289360691352306692LL, | |
1157442765409223684LL, | |
90425216047595792LL, | |
72340172838076673LL, | |
72340172838076673LL, | |
1157442765408239873LL, | |
162765388885672464LL, | |
144680345676153346LL, | |
144680345676153346LL, | |
580982013104882178LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL | |
}; // weak | |
__int64 qword_18010FFB8[2] = { 3978425819141910832LL, 7378413942531504440LL }; // weak | |
int dword_18010FFE4 = 3481833578; // weak | |
int dword_18010FFF4 = 430279089; // weak | |
__int64 qword_180110018 = 0LL; // weak | |
__int64 qword_180110078 = 0LL; // weak | |
__int64 qword_180110108 = 0LL; // weak | |
__int64 qword_180110180 = 0LL; // weak | |
__int64 qword_1801101B0 = 0LL; // weak | |
__int64 qword_1801101E8[172] = | |
{ | |
4756788775613727280LL, | |
5910976718553875360LL, | |
3514726322745729813LL, | |
-610720958394071539LL, | |
5417830373402935565LL, | |
312159074100717361LL, | |
7308339922746608643LL, | |
2334397830365795104LL, | |
8029726959970774850LL, | |
5125145992504746100LL, | |
6125746589044781362LL, | |
7813868778131556868LL, | |
806476812862955621LL, | |
1370787899750353200LL, | |
3534506700982932738LL, | |
3544388127960478004LL, | |
3761364507733012787LL, | |
3688782561975284273LL, | |
3469796236915781681LL, | |
2165108837999380005LL, | |
7301215040880799809LL, | |
8029709367533270371LL, | |
4836994021753757812LL, | |
1382941841643348033LL, | |
867510641391702320LL, | |
5269323080440758538LL, | |
434931663645860718LL, | |
6004707958897005827LL, | |
650221696581796400LL, | |
72354425775621674LL, | |
4224882069996801LL, | |
72763489260831280LL, | |
-1031899625021517056LL, | |
-3580393709544411539LL, | |
657827344553564693LL, | |
-1558868037682983602LL, | |
1384757377810616822LL, | |
-2551553398311106790LL, | |
5374745051271399035LL, | |
7147384406155179796LL, | |
859161692904902394LL, | |
7578794861164552861LL, | |
-8270116721228554376LL, | |
-3041358410057286231LL, | |
-6690169309610212618LL, | |
8155561993791795995LL, | |
1417379760185852255LL, | |
4369965657978660009LL, | |
1624128567850304000LL, | |
-2042101610318898330LL, | |
-585512028413380118LL, | |
-8182594046820327110LL, | |
4112954757392075145LL, | |
-6754732812220677503LL, | |
-1316835405769172118LL, | |
3899073137928037948LL, | |
-3687696887269151365LL, | |
-7756008917034878916LL, | |
-8790104076382917559LL, | |
-7303746073810698834LL, | |
-2644938931189844796LL, | |
-170204569176610637LL, | |
-5543151001473664303LL, | |
7109688521358975516LL, | |
-8488097754334663110LL, | |
-1603113939927573582LL, | |
3332942531419887820LL, | |
6642759900067556227LL, | |
7275383430290835961LL, | |
-309371685293555090LL, | |
-6322423481895938583LL, | |
8822005133425490416LL, | |
-3037720455194084404LL, | |
7307115040821634211LL, | |
-3105588480026611481LL, | |
493778119407404921LL, | |
1490754834807050942LL, | |
-5758854203144062077LL, | |
8126490643660720871LL, | |
-5035659825352314861LL, | |
7334586602286900628LL, | |
733974673602410844LL, | |
5896794616133736931LL, | |
-7627555720473373964LL, | |
6771154453465939585LL, | |
78858130392866678LL, | |
-469335023438794801LL, | |
7910892366308685615LL, | |
3660054279753611948LL, | |
1281559005820043969LL, | |
-3414790190289973556LL, | |
-8552091768385948167LL, | |
-300150723116684915LL, | |
6214734359515289794LL, | |
-8308050809987694232LL, | |
3568423875746314164LL, | |
4801682727235682959LL, | |
2113598924914704432LL, | |
6478823974126355470LL, | |
-4305448908706724528LL, | |
1413705193557392422LL, | |
1377350532520161428LL, | |
72954817084850433LL, | |
2113598924663095041LL, | |
144964032510624015LL, | |
-8779194602009655807LL, | |
363666773951088200LL, | |
9116974499995190016LL, | |
5565591150241914549LL, | |
-3193504848480628157LL, | |
7130696312303815973LL, | |
9164628024599971876LL, | |
3524097747853993481LL, | |
3172615686321866853LL, | |
2355997893137146559LL, | |
3285447508809631676LL, | |
-2492563401224434252LL, | |
-4939211960389499324LL, | |
-4956508190566935734LL, | |
5870613410620235272LL, | |
671705723255890455LL, | |
-6787840577419869498LL, | |
2345869027201003245LL, | |
621270619919627055LL, | |
-574305758161757519LL, | |
-1505833147730704244LL, | |
6347212536979161595LL, | |
1828898012739009181LL, | |
4944389785209790599LL, | |
-1020151088455445485LL, | |
-7373239486053776690LL, | |
7686111583138346613LL, | |
1119018430661610777LL, | |
-5011570789023749434LL, | |
-7669344905000980009LL, | |
-1681079921547023812LL, | |
-3518837767283030937LL, | |
-978155614310050419LL, | |
3786688732809448119LL, | |
-8758178896715779591LL, | |
8683434654854776133LL, | |
7113402491119849110LL, | |
-527894901961234900LL, | |
-3908639094415457744LL, | |
-2889341571433954829LL, | |
8614761875172280701LL, | |
8715494249697813705LL, | |
-3508982174031567787LL, | |
-1183959544207698745LL, | |
-7719083147239333407LL, | |
-5366278441120798996LL, | |
3393355407027074123LL, | |
7336308860984407404LL, | |
-3973203615680462098LL, | |
-323913740844433543LL, | |
-4068803238785871811LL, | |
3130839350733028769LL, | |
-6053039971547103777LL, | |
-8169708442345960418LL, | |
7378640361148048592LL, | |
3888686490111821631LL, | |
8498538126551648789LL, | |
3452837704206760598LL, | |
-2731934552265537874LL, | |
-6742295732273633767LL, | |
4110149992505297272LL, | |
-3915165057470421812LL, | |
129180554112638704LL, | |
-8016824438193889667LL, | |
-3359426574797339495LL, | |
-6941242196438478574LL, | |
237090821411436LL | |
}; // weak | |
__int64 qword_180110750 = 0LL; // weak | |
__int64 qword_1801107A0 = 0LL; // weak | |
__int64 qword_180110898 = 0LL; // weak | |
__int64 qword_1801108E8 = 0LL; // weak | |
__int64 qword_180110920 = 0LL; // weak | |
__int64 qword_180110958 = 0LL; // weak | |
__int64 qword_1801109C0[8] = { 0LL, 0LL, 0LL, 0LL, 0LL, 0LL, 0LL, 0LL }; // weak | |
__int64 qword_180110A00[58] = | |
{ | |
72058693566333184LL, | |
72058693566333184LL, | |
72058693566333184LL, | |
72058693566333184LL, | |
72059797356282112LL, | |
564049498669058LL, | |
144396671659278849LL, | |
-279271658356480LL, | |
216736831629295872LL, | |
216736831629295872LL, | |
216736831629295872LL, | |
216736831629295872LL, | |
144396680282898688LL, | |
1129207048438787LL, | |
216736831646138881LL, | |
-277064011677692LL, | |
72063108826398976LL, | |
216736831662981890LL, | |
361417177238078724LL, | |
-275960188239616LL, | |
1694364648734976LL, | |
72064212649837057LL, | |
144396688906519298LL, | |
-4193975293LL, | |
506097522914230528LL, | |
506097522914230528LL, | |
506097522914230528LL, | |
506097522914230528LL, | |
506097522914230528LL, | |
433757350076153864LL, | |
361417177238079495LL, | |
-16251130LL, | |
506097522914230528LL, | |
361417177238079752LL, | |
216736831730353926LL, | |
-271544894487292LL, | |
506097522914230528LL, | |
289077004400724232LL, | |
-270441071049211LL, | |
-1LL, | |
506097522914230528LL, | |
216736831764039944LL, | |
795458214266537220LL, | |
-1LL, | |
506097522914230528LL, | |
144396714777381128LL, | |
723118041428460547LL, | |
-62453LL, | |
506097522914230528LL, | |
72071939413903624LL, | |
650777868590383874LL, | |
-4076074230LL, | |
506097522914230528LL, | |
3954995049924872LL, | |
578437695752307201LL, | |
-266025777296887LL, | |
2026090005656510464LL, | |
2169637811238345504LL | |
}; // weak | |
__int64 qword_180110CC0[4] = | |
{ | |
577027009465680642LL, | |
1009372573693248258LL, | |
577027009465680642LL, | |
1009372573693248258LL | |
}; // weak | |
__int64 qword_180110CE0[48] = | |
{ | |
-71772820459159040LL, | |
-71772820442381824LL, | |
-71772820425604608LL, | |
-71772820408827392LL, | |
-9205322385119247871LL, | |
8896716353537324571LL, | |
3127469775214570482LL, | |
9063919531145811966LL, | |
-5790832327319397894LL, | |
2779844360667309212LL, | |
-1016224494706540746LL, | |
-4385442791779346319LL, | |
-2125679200260745704LL, | |
1886026420613949419LL, | |
-5488133869840732645LL, | |
-1368864130090409175LL, | |
4160986763402279968LL, | |
-312173544037921718LL, | |
9152151469753060675LL, | |
-8124314156659688368LL, | |
2439463070858780050LL, | |
-1435789778054021360LL, | |
4431163544024946527LL, | |
-2571694610957378204LL, | |
1493205263179590178LL, | |
736957430357515998LL, | |
7110290743434151497LL, | |
7869979770361255313LL, | |
-1516492149820041843LL, | |
3325196640287881829LL, | |
2266680504310081052LL, | |
7400890215734951243LL, | |
-5091542162739952824LL, | |
1268036943008874886LL, | |
-1619291887455250071LL, | |
975488420713878990LL, | |
1093698790722037439LL, | |
7441392446882927792LL, | |
-7441392446773286007LL, | |
-4336155070024231818LL, | |
-3766243637369397544LL, | |
7105036623409894663LL, | |
-7973340178411365097LL, | |
1526699215303891257LL, | |
7436329637833083697LL, | |
-8163818279084223215LL, | |
-2662702644619276377LL, | |
5167115440072839076LL | |
}; // weak | |
__int64 qword_1801110E0[] = { 6443504103LL }; // weak | |
__int64 qword_180111100 = 6443504125LL; // weak | |
__int64 qword_1801111E8[] = { 6443504174LL }; // weak | |
__int64 qword_180111430[3] = { 6443605012LL, 6443605020LL, 6443605016LL }; // weak | |
__int64 (__fastcall *off_180111448[2])() = { &sub_1800C1108, &sub_1800C1698 }; // weak | |
__int64 qword_180111498[5] = { 17LL, 8858370048LL, 6443520096LL, 0LL, 0LL }; // weak | |
void *off_1801114E8 = (void *)0x180105108LL; // weak | |
void *off_180111508 = &unk_180105240; // weak | |
__int64 (*off_180111538)[45] = &qword_180105408; // weak | |
void *off_180111558 = (void *)0x180105540LL; // weak | |
void *off_180111578 = (void *)0x180105598LL; // weak | |
void *off_1801115C8 = (void *)0x180107D38LL; // weak | |
void *off_1801115E8 = (void *)0x1801081B8LL; // weak | |
__int64 qword_180111628[5] = { 17LL, 25769836544LL, 6443534744LL, 0LL, 0LL }; // weak | |
__int64 qword_180111650[16] = | |
{ | |
282638912847872LL, | |
6443511613LL, | |
25786613760LL, | |
6443571184LL, | |
282651797749761LL, | |
6443511625LL, | |
25803390976LL, | |
6443571224LL, | |
282664682651650LL, | |
6443511637LL, | |
25820168192LL, | |
6443571264LL, | |
282677567553539LL, | |
6443511649LL, | |
25836945408LL, | |
6443571304LL | |
}; // weak | |
__int64 (*off_1801116E0)[5] = &qword_180111890; // weak | |
int dword_1801116E8 = 1; // weak | |
__int64 (*off_180111740)[5] = &qword_180111930; // weak | |
int dword_180111748 = 1; // weak | |
__int64 qword_1801117A0[5] = { 17LL, 25769803776LL, 6443535476LL, 0LL, 0LL }; // weak | |
__int64 qword_1801117C8[5] = { 17LL, 25769803776LL, 6443535896LL, 0LL, 0LL }; // weak | |
__int64 qword_1801119D0[39] = | |
{ | |
8574238736LL, | |
6443535956LL, | |
12LL, | |
8573190160LL, | |
6443535980LL, | |
12LL, | |
17163124752LL, | |
6443536004LL, | |
7LL, | |
34342993936LL, | |
6443536018LL, | |
6LL, | |
51522863120LL, | |
6443536030LL, | |
7LL, | |
8574238737LL, | |
6443536044LL, | |
11LL, | |
17164173329LL, | |
6443536066LL, | |
5LL, | |
8573190161LL, | |
6443536076LL, | |
8LL, | |
17163124753LL, | |
6443536092LL, | |
4LL, | |
34342993937LL, | |
6443536100LL, | |
8LL, | |
47278227473LL, | |
6443536116LL, | |
7LL, | |
47295004689LL, | |
6443536116LL, | |
7LL, | |
51522863121LL, | |
6443536130LL, | |
7LL | |
}; // weak | |
__int64 qword_180111B08[87] = | |
{ | |
4222429593337857LL, | |
223334LL, | |
6443540968LL, | |
4222433888305153LL, | |
239726LL, | |
6443540968LL, | |
4222438183272449LL, | |
256118LL, | |
6443540968LL, | |
4222442478239745LL, | |
272510LL, | |
6443540968LL, | |
4222386643664897LL, | |
288902LL, | |
6443540968LL, | |
4222390938632193LL, | |
305294LL, | |
6443540968LL, | |
4222395233599489LL, | |
321686LL, | |
6443540968LL, | |
4222399528566785LL, | |
338078LL, | |
6443540968LL, | |
4222403823534081LL, | |
354470LL, | |
6443540968LL, | |
4222408118501377LL, | |
370862LL, | |
6443540968LL, | |
4222412413468673LL, | |
387254LL, | |
6443540968LL, | |
4222425298370561LL, | |
403646LL, | |
6443540968LL, | |
4222124650659841LL, | |
420038LL, | |
6443540968LL, | |
4222124650659841LL, | |
436430LL, | |
6443540968LL, | |
4222128945627139LL, | |
491753LL, | |
6443541288LL, | |
4222133240594435LL, | |
508145LL, | |
6443541288LL, | |
4222141830529027LL, | |
524537LL, | |
6443541288LL, | |
4222150420463619LL, | |
540929LL, | |
6443541288LL, | |
4222154715430915LL, | |
557321LL, | |
6443541288LL, | |
4222146125496323LL, | |
620840LL, | |
6443541288LL, | |
4222128945627143LL, | |
458969LL, | |
6443541288LL, | |
4222133240594439LL, | |
475361LL, | |
6443541288LL, | |
4222124650659857LL, | |
452825LL, | |
6443540968LL, | |
4222124650659858LL, | |
301198LL, | |
6443541288LL, | |
4222124650659859LL, | |
624944LL, | |
6443541288LL, | |
4222124650659860LL, | |
604452LL, | |
6443541288LL, | |
4222128945627156LL, | |
596256LL, | |
6443541288LL, | |
4222133240594452LL, | |
588059LL, | |
6443541288LL, | |
4222124650659861LL, | |
0LL, | |
0LL | |
}; // weak | |
__int64 qword_180111DC0[4] = { 17LL, 8824815616LL, 6443541608LL, 0LL }; // weak | |
__int64 qword_1801121F8[2] = { 17LL, 8707375104LL }; // weak | |
__int64 qword_180112AA8[4] = { 15LL, 6443512484LL, 0LL, 0LL }; // weak | |
void *off_180112B88 = &locret_1801033E0; // weak | |
__int64 qword_180112BE0[25] = | |
{ | |
6443513333LL, | |
6443513341LL, | |
6443513349LL, | |
6443513357LL, | |
6443513364LL, | |
6443513370LL, | |
6443513376LL, | |
6443513382LL, | |
6443513388LL, | |
6443513396LL, | |
6443513401LL, | |
6443513410LL, | |
6443513419LL, | |
6443513423LL, | |
6443513428LL, | |
6443513434LL, | |
6443513442LL, | |
6443513449LL, | |
6443373312LL, | |
6443373340LL, | |
6443373556LL, | |
6443373636LL, | |
6443373708LL, | |
6443373756LL, | |
6443374124LL | |
}; // weak | |
void *off_180112CC0 = &loc_1800E5F58; // weak | |
__int64 qword_180112D38[6] = { 6443656864LL, 6443657104LL, 6443657168LL, 48LL, 6443576784LL, 6443589616LL }; // weak | |
__int64 (__fastcall *off_180112D68[4])() = { &sub_1800F8398, &sub_1800F8358, &sub_1800F7E44, &sub_1800F76CC }; // weak | |
__int64 (*off_180112DA0)[6] = &qword_180110990; // weak | |
__int64 qword_180112DC0[4] = { 6443567522LL, 7LL, 6443567529LL, 9LL }; // weak | |
__int64 qword_180112DE0[2] = { 6443567538LL, 10LL }; // weak | |
__int64 qword_180112DF0[256] = | |
{ | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443473408LL, | |
6443472832LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443473328LL, | |
6443472832LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443473328LL, | |
6443472832LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443473376LL, | |
6443472832LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443473376LL, | |
6443472832LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443473376LL, | |
6443472832LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443473376LL, | |
6443472832LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443473376LL, | |
6443472832LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472900LL, | |
6443472832LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472900LL, | |
6443472832LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472900LL, | |
6443472832LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472900LL, | |
6443472832LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472900LL, | |
6443472832LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472900LL, | |
6443472832LL, | |
6443473376LL, | |
6443473376LL, | |
6443473376LL, | |
6443473376LL, | |
6443473376LL, | |
6443473376LL, | |
6443473376LL, | |
6443473376LL, | |
6443473376LL, | |
6443473376LL, | |
6443473376LL, | |
6443473376LL, | |
6443473376LL, | |
6443473376LL, | |
6443473376LL, | |
6443473376LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472900LL, | |
6443472832LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472900LL, | |
6443472832LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472900LL, | |
6443472832LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472900LL, | |
6443472832LL, | |
6443472756LL, | |
6443472756LL, | |
6443472756LL, | |
6443472756LL, | |
6443472756LL, | |
6443472756LL, | |
6443472756LL, | |
6443472756LL, | |
6443472756LL, | |
6443472756LL, | |
6443472756LL, | |
6443472756LL, | |
6443472756LL, | |
6443472756LL, | |
6443472756LL, | |
6443472756LL, | |
6443472756LL, | |
6443472756LL, | |
6443472756LL, | |
6443472756LL, | |
6443472756LL, | |
6443472756LL, | |
6443472756LL, | |
6443472756LL, | |
6443472756LL, | |
6443472756LL, | |
6443472756LL, | |
6443472756LL, | |
6443472756LL, | |
6443472756LL, | |
6443472756LL, | |
6443472756LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472900LL, | |
6443472832LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472700LL, | |
6443472900LL, | |
6443472832LL, | |
6443473376LL, | |
6443473376LL, | |
6443473376LL, | |
6443473376LL, | |
6443473376LL, | |
6443473376LL, | |
6443473376LL, | |
6443473376LL, | |
6443473376LL, | |
6443473376LL, | |
6443473376LL, | |
6443473376LL, | |
6443473376LL, | |
6443473376LL, | |
6443473376LL, | |
6443473376LL, | |
6443473048LL, | |
6443473024LL, | |
6443473024LL, | |
6443473024LL, | |
6443473024LL, | |
6443473024LL, | |
6443473024LL, | |
6443473024LL, | |
6443473024LL, | |
6443473024LL, | |
6443473024LL, | |
6443473024LL, | |
6443473024LL, | |
6443473024LL, | |
6443473024LL, | |
6443473024LL, | |
6443472984LL, | |
6443472948LL, | |
6443472948LL, | |
6443472948LL, | |
6443472948LL, | |
6443472948LL, | |
6443472948LL, | |
6443472948LL, | |
6443472948LL, | |
6443472948LL, | |
6443472948LL, | |
6443472948LL, | |
6443472948LL, | |
6443472948LL, | |
6443472948LL, | |
6443472948LL | |
}; // weak | |
__int64 qword_1801135F0[5] = { 244LL, 16LL, 6443487104LL, 6443485344LL, 0LL }; // weak | |
__int64 qword_180113618[5] = { 244LL, 16LL, 6443486992LL, 6443485904LL, 0LL }; // weak | |
__int64 qword_180113640[4] = { 244LL, 16LL, 6443487104LL, 6443485712LL }; // weak | |
__int64 qword_180113660[4] = { 244LL, 16LL, 6443486992LL, 6443486096LL }; // weak | |
__int64 qword_180113680[8] = | |
{ | |
48LL, | |
64LL, | |
128LL, | |
11LL, | |
6443514381LL, | |
6443568672LL, | |
6443498128LL, | |
6443495252LL | |
}; // weak | |
__int64 qword_1801136C0[8] = | |
{ | |
20LL, | |
20LL, | |
64LL, | |
7LL, | |
6443514393LL, | |
6443568652LL, | |
6443493760LL, | |
6443487760LL | |
}; // weak | |
__int64 qword_180113700 = 6443569440LL; // weak | |
__int64 qword_180113760 = 6443514584LL; // weak | |
__int16 word_1801139D0[] = { 1282 }; // weak | |
__int64 qword_1801139D8[] = { 6443587008LL }; // weak | |
__int64 qword_1801139E8[195] = | |
{ | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL | |
}; // weak | |
__int64 qword_180114070[26] = | |
{ | |
-1LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL | |
}; // weak | |
int dword_180114568 = 10; // weak | |
int dword_180114578 = 1; // weak | |
void *off_180114580 = &off_180114580; // weak | |
void **off_180114588 = &off_180114580; // weak | |
void *off_180114598 = &off_180114598; // weak | |
void *off_1801145A0 = &off_180114598; // weak | |
__int64 qword_1801145A8 = 6443506073LL; // weak | |
__int64 qword_180114600[19] = | |
{ | |
8758820864LL, | |
184683593728LL, | |
232LL, | |
26405458941957LL, | |
8758824960LL, | |
188978561025LL, | |
233LL, | |
4428111283456LL, | |
8758829056LL, | |
193273528322LL, | |
234LL, | |
17609365917701LL, | |
8758833152LL, | |
197568495619LL, | |
235LL, | |
5501853107458LL, | |
8859287552LL, | |
51539607556LL, | |
0LL | |
}; // weak | |
__int64 qword_1801146A0 = 0LL; // weak | |
__int64 qword_1801147F0[5] = { 2199023255812LL, 0LL, 0LL, 0LL, 0LL }; // weak | |
__int64 qword_1801148A0[] = { 47244640256LL }; // weak | |
int dword_180114AA0 = 118; // weak | |
int dword_180114C88 = 6; // weak | |
__int64 qword_180114C90 = 5139240511851214385LL; // weak | |
void *off_180114CA0 = &off_180114CA0; // weak | |
void **off_180114CA8[3] = { &off_180114CA0, &off_180114CB0, &off_180114CB0 }; // weak | |
void *off_180114CB0 = &off_180114CB0; // weak | |
__int64 qword_180115030 = 0LL; // weak | |
__int64 qword_180115038 = 0LL; // weak | |
int dword_180115080 = 2; // weak | |
__int64 qword_180115110[7] = | |
{ | |
1297036692682744323LL, | |
339303858233LL, | |
6443512513LL, | |
1LL, | |
4294967298LL, | |
2565928LL, | |
4309968872LL | |
}; // weak | |
__int64 qword_1801154E8[14] = | |
{ | |
453181572LL, | |
72057594037927936LL, | |
59377927323655LL, | |
-8286341354053697536LL, | |
14073748835532800LL, | |
32769LL, | |
2147549250LL, | |
140741788696576LL, | |
-9223090003532316672LL, | |
23080948090273792LL, | |
32769LL, | |
0LL, | |
0LL, | |
0LL | |
}; // weak | |
int dword_180115558 = 4294967295; // weak | |
int dword_18011555C = 4294967295; // weak | |
__int64 qword_180115640 = 34359738368LL; // weak | |
__int64 qword_180115658 = 2147483648LL; // weak | |
__int64 qword_1801156A0 = 16667LL; // weak | |
char byte_1801156A8[] = { '\0' }; // weak | |
int dword_1801156B8 = 64; // weak | |
__int64 qword_180115700[2] = { 4611686018460943882LL, 2199041212417LL }; // weak | |
__int16 word_180115712 = 0; // weak | |
__int16 word_180115714 = 0; // weak | |
__int16 word_180115716 = 0; // weak | |
char byte_180115718 = '\0'; // weak | |
char byte_180115719 = '\0'; // weak | |
char byte_18011571A = '\0'; // weak | |
__int64 qword_180115720 = 0LL; // weak | |
void *off_180115730 = &off_180115730; // weak | |
void **off_180115738[5] = | |
{ | |
&off_180115730, | |
&off_180115740, | |
&off_180115740, | |
&off_180115750, | |
&off_180115750 | |
}; // weak | |
void *off_180115740 = &off_180115740; // weak | |
void **off_180115748[3] = { &off_180115740, &off_180115750, &off_180115750 }; // weak | |
void *off_180115750 = &off_180115750; // weak | |
void **off_180115758 = &off_180115750; // weak | |
__int64 qword_180115760 = 7233743590452769327LL; // weak | |
__int64 qword_180115768 = -6342693155041110020LL; // weak | |
void *off_180115770 = &off_180115770; // weak | |
__int64 qword_180115778 = 6443587440LL; // weak | |
__int64 qword_180115780[4] = | |
{ | |
1272829845898154752LL, | |
-5986335702806163030LL, | |
1272829846769391599LL, | |
-5986335702806163030LL | |
}; // weak | |
__int64 qword_1801157A8 = 0LL; // weak | |
char byte_1801157C0[] = { '\0' }; // weak | |
int dword_1801157D4[] = { 0 }; // weak | |
char byte_180115824[] = { '\0' }; // weak | |
__int64 qword_180115838[10] = | |
{ | |
4294967296LL, | |
12884901890LL, | |
21474836484LL, | |
30064771078LL, | |
38654705672LL, | |
47244640266LL, | |
55834574860LL, | |
64424509454LL, | |
103079215120LL, | |
1340029796408LL | |
}; // weak | |
char byte_180115888[] = { '\0' }; // weak | |
__int64 qword_1801158C8[39] = | |
{ | |
4294967296LL, | |
12884901890LL, | |
25769803780LL, | |
42949672968LL, | |
68719476748LL, | |
103079215124LL, | |
154618822684LL, | |
223338299436LL, | |
326417514556LL, | |
463856468060LL, | |
670014898300LL, | |
944892805308LL, | |
1357209665788LL, | |
1906965479804LL, | |
2731599200764LL, | |
3831110828796LL, | |
5480378270716LL, | |
7679401526780LL, | |
10977936410620LL, | |
15375982922748LL, | |
21973052690428LL, | |
30769145714684LL, | |
43963285250044LL, | |
61555471298556LL, | |
87943750369276LL, | |
123128122466300LL, | |
175904680607740LL, | |
246273424801788LL, | |
351826541084668LL, | |
492564029472764LL, | |
703670262038524LL, | |
985145238814716LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL, | |
0LL | |
}; // weak | |
//----- (00000001800B0000) ---------------------------------------------------- | |
__int64 *sub_1800B0000() | |
{ | |
__int64 *result; // x0 | |
__int64 *v1; // x1 | |
signed __int64 v2; // x2 | |
__int64 v3; // x3 | |
__int64 v4; // x4 | |
_QWORD *v10; // x10 | |
_QWORD *v11; // x10 | |
_QWORD *v13; // x10 | |
_QWORD *v14; // x10 | |
_QWORD *v15; // x10 | |
result = (__int64 *)sub_1800C5374((__int64)sub_1800B0000, (__int64)sub_1800B0000); | |
if ( v1 == result ) | |
{ | |
__asm { MSR #6, #0xF } | |
_WriteStatusReg(ARM64_SYSREG(3, 0, 12, 0, 0), (unsigned __int64)sub_1800B0800); | |
v10 = (_QWORD *)6443073536LL; | |
do | |
{ | |
*v10 = 0LL; | |
v10[1] = 0LL; | |
v10 += 2; | |
} | |
while ( v10 != (_QWORD *)6443089920LL ); | |
v11 = (_QWORD *)6442975232LL; | |
do | |
{ | |
*v11 = 0LL; | |
v11[1] = 0LL; | |
v11 += 2; | |
} | |
while ( v11 != (_QWORD *)6443073536LL ); | |
__asm { MSR #5, #0 } | |
v13 = (_QWORD *)6443588096LL; | |
do | |
{ | |
*v13 = 0LL; | |
v13[1] = 0LL; | |
v13 += 2; | |
} | |
while ( v13 != (_QWORD *)6443663568LL ); | |
do | |
{ | |
*(_DWORD *)v13 = 0; | |
v13 = (_QWORD *)((char *)v13 + 4); | |
} | |
while ( (signed __int64)v13 < 6443663576LL ); | |
v14 = (_QWORD *)6444220416LL; | |
do | |
{ | |
*v14 = 0LL; | |
v14[1] = 0LL; | |
v15 = v14 + 2; | |
*v15 = 0LL; | |
v15[1] = 0LL; | |
v15 += 2; | |
*v15 = 0LL; | |
v15[1] = 0LL; | |
v15 += 2; | |
*v15 = 0LL; | |
v15[1] = 0LL; | |
v14 = v15 + 2; | |
} | |
while ( v14 != (_QWORD *)6444236800LL ); | |
} | |
else | |
{ | |
v2 = 6443588096LL - (_QWORD)v1; | |
do | |
{ | |
v3 = *result; | |
v4 = result[1]; | |
result += 2; | |
*v1 = v3; | |
v1[1] = v4; | |
v1 += 2; | |
v2 -= 16LL; | |
} | |
while ( v2 ); | |
} | |
return result; | |
} | |
// 1800B0800: using guessed type __int64 __fastcall sub_1800B0800(); | |
//----- (00000001800B0390) ---------------------------------------------------- | |
void __fastcall __noreturn sub_1800B0390(int a1) | |
{ | |
int v1; // w20 | |
__int64 v7; // x0 | |
v1 = a1; | |
_WriteStatusReg(ARM64_SYSREG(3, 0, 4, 2, 3), 0LL); | |
__asm { MSR #7, #4 } | |
__dsb(0xFu); | |
__isb(0xFu); | |
sub_1800B0504(); | |
nullsub_3(); | |
sub_1800B1724(v1); | |
sub_1800B0464(v7 | 0x48D520D); | |
sub_1800E0F20(); | |
_WriteStatusReg(ARM64_SYSREG(3, 0, 14, 1, 0), _ReadStatusReg(ARM64_SYSREG(3, 0, 14, 1, 0)) | 0x201); | |
_WriteStatusReg(ARM64_SYSREG(3, 0, 4, 0, 0), 0x1C0uLL); | |
_WriteStatusReg(ARM64_SYSREG(3, 0, 4, 0, 1), (unsigned __int64)sub_1800B041C); | |
__asm { ERET } | |
} | |
// 1800B041C: using guessed type __int64 __fastcall sub_1800B041C(__int64, int, int, __int64); | |
// 1800B0524: using guessed type __int64 nullsub_3(void); | |
//----- (00000001800B041C) ---------------------------------------------------- | |
#error "1800B0424: positive sp value has been found (funcsize=0)" | |
//----- (00000001800B0428) ---------------------------------------------------- | |
void sub_1800B0428() | |
{ | |
_WriteStatusReg(ARM64_SYSREG(3, 0, 1, 0, 0), _ReadStatusReg(ARM64_SYSREG(3, 0, 1, 0, 0)) & 0xFFFFFFFFFB7ABDFFLL); | |
_WriteStatusReg(ARM64_SYSREG(3, 0, 14, 1, 0), _ReadStatusReg(ARM64_SYSREG(3, 0, 14, 1, 0)) & 0xFFFFFFFFFFFFFDFELL); | |
} | |
//----- (00000001800B045C) ---------------------------------------------------- | |
unsigned __int64 sub_1800B045C() | |
{ | |
return _ReadStatusReg(ARM64_SYSREG(3, 0, 1, 0, 0)); | |
} | |
//----- (00000001800B0464) ---------------------------------------------------- | |
unsigned __int64 __fastcall sub_1800B0464(unsigned __int64 result) | |
{ | |
unsigned __int64 v1; // x1 | |
do | |
{ | |
_WriteStatusReg(ARM64_SYSREG(3, 0, 1, 0, 0), result); | |
__dsb(0xFu); | |
__isb(0xFu); | |
v1 = result; | |
result |= 0x80001uLL; | |
} | |
while ( result != v1 ); | |
return result; | |
} | |
//----- (00000001800B0488) ---------------------------------------------------- | |
unsigned __int64 __fastcall sub_1800B0488(unsigned __int64 result) | |
{ | |
_WriteStatusReg(ARM64_SYSREG(3, 0, 10, 2, 0), result); | |
__isb(0xFu); | |
return result; | |
} | |
//----- (00000001800B0494) ---------------------------------------------------- | |
unsigned __int64 __fastcall sub_1800B0494(unsigned __int64 result) | |
{ | |
_WriteStatusReg(ARM64_SYSREG(3, 0, 2, 0, 2), result); | |
__isb(0xFu); | |
return result; | |
} | |
//----- (00000001800B04A0) ---------------------------------------------------- | |
unsigned __int64 __fastcall sub_1800B04A0(unsigned __int64 result) | |
{ | |
_WriteStatusReg(ARM64_SYSREG(3, 0, 2, 0, 0), result); | |
__isb(0xFu); | |
return result; | |
} | |
//----- (00000001800B04AC) ---------------------------------------------------- | |
unsigned __int64 sub_1800B04AC() | |
{ | |
return _ReadStatusReg(ARM64_SYSREG(3, 0, 1, 0, 2)); | |
} | |
//----- (00000001800B04C0) ---------------------------------------------------- | |
unsigned __int64 sub_1800B04C0() | |
{ | |
__isb(0xFu); | |
return _ReadStatusReg(ARM64_SYSREG(3, 3, 14, 2, 1)); | |
} | |
//----- (00000001800B04CC) ---------------------------------------------------- | |
unsigned __int64 __fastcall sub_1800B04CC(unsigned __int64 result) | |
{ | |
_WriteStatusReg(ARM64_SYSREG(3, 3, 14, 2, 1), result); | |
__isb(0xFu); | |
return result; | |
} | |
//----- (00000001800B04D8) ---------------------------------------------------- | |
unsigned __int64 sub_1800B04D8() | |
{ | |
__isb(0xFu); | |
return _ReadStatusReg(ARM64_SYSREG(3, 3, 14, 0, 1)); | |
} | |
//----- (00000001800B04E4) ---------------------------------------------------- | |
unsigned __int64 __fastcall sub_1800B04E4(unsigned __int64 result) | |
{ | |
_WriteStatusReg(ARM64_SYSREG(3, 3, 14, 2, 0), result); | |
__isb(0xFu); | |
return result; | |
} | |
//----- (00000001800B04F0) ---------------------------------------------------- | |
void sub_1800B04F0() | |
{ | |
__dsb(0xFu); | |
__asm { SYS #0, c8, c7, #0 } | |
__dsb(0xFu); | |
__isb(0xFu); | |
} | |
//----- (00000001800B0504) ---------------------------------------------------- | |
void sub_1800B0504() | |
{ | |
__asm { SYS #0, c7, c5, #0 } | |
__dsb(0xFu); | |
__isb(0xFu); | |
} | |
//----- (00000001800B0528) ---------------------------------------------------- | |
void sub_1800B0528() | |
{ | |
__asm { SYS #3, c7, c14, #1, X0 } | |
} | |
//----- (00000001800B0534) ---------------------------------------------------- | |
void sub_1800B0534() | |
{ | |
__dmb(0xFu); | |
} | |
//----- (00000001800B053C) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800B053C(__int16 a1) | |
{ | |
unsigned __int64 v1; // x2 | |
__int16 v7; // w9 | |
unsigned __int64 v8; // x1 | |
signed __int64 result; // x0 | |
v1 = _ReadStatusReg(ARM64_SYSREG(3, 3, 4, 2, 1)); | |
__asm { MSR #6, #3 } | |
__isb(0xFu); | |
v7 = a1; | |
__asm { SYS #0, c7, c8, #0, X0 } | |
__isb(0xFu); | |
v8 = _ReadStatusReg(ARM64_SYSREG(3, 0, 7, 4, 0)); | |
result = (v8 & 1) == 0; | |
if ( !(v8 & 1) ) | |
result = v8 & 0xFFFFFFFFF000LL | v7 & 0xFFF; | |
_WriteStatusReg(ARM64_SYSREG(3, 3, 4, 2, 1), v1); | |
__isb(0xFu); | |
return result; | |
} | |
//----- (00000001800B0594) ---------------------------------------------------- | |
void sub_1800B0594() | |
{ | |
__asm { MSR #7, #3 } | |
__isb(0xFu); | |
} | |
//----- (00000001800B05AC) ---------------------------------------------------- | |
void __noreturn sub_1800B05AC() | |
{ | |
sub_1800F6364(); | |
_WriteStatusReg(ARM64_SYSREG(3, 0, 4, 0, 0), _ReadStatusReg(ARM64_SYSREG(3, 0, 4, 0, 0)) & 0xFFFFFFFFFFFFFFF3LL); | |
_WriteStatusReg(ARM64_SYSREG(3, 0, 4, 0, 1), (unsigned __int64)sub_1800B05CC); | |
__asm { ERET } | |
} | |
// 1800B05CC: using guessed type __int64 __fastcall sub_1800B05CC(__int64); | |
//----- (00000001800B05CC) ---------------------------------------------------- | |
#error "1800B05D0: positive sp value has been found (funcsize=0)" | |
//----- (00000001800B05D4) ---------------------------------------------------- | |
void __noreturn sub_1800B05D4() | |
{ | |
_WriteStatusReg( | |
ARM64_SYSREG(3, 0, 4, 0, 0), | |
_ReadStatusReg(ARM64_SYSREG(3, 0, 4, 0, 0)) & 0xFFFFFFFFFFFFFFF3LL | 0xC0); | |
_WriteStatusReg(ARM64_SYSREG(3, 0, 4, 0, 1), (unsigned __int64)nullsub_24); | |
__asm { ERET } | |
} | |
// 1800B05F0: using guessed type __int64 __fastcall nullsub_24(); | |
//----- (00000001800B05F4) ---------------------------------------------------- | |
void sub_1800B05F4() | |
{ | |
__dsb(0xFu); | |
__isb(0xFu); | |
__wfi(); | |
} | |
//----- (00000001800B0604) ---------------------------------------------------- | |
void __noreturn sub_1800B0604() | |
{ | |
__asm { HINT #0x45 } | |
while ( 1 ) | |
; | |
} | |
//----- (00000001800B060C) ---------------------------------------------------- | |
signed __int64 sub_1800B060C() | |
{ | |
return 14LL; | |
} | |
//----- (00000001800B0614) ---------------------------------------------------- | |
_QWORD *__fastcall sub_1800B0614(_QWORD *result, _QWORD *a2) | |
{ | |
*result = 6442975232LL; | |
*a2 = 98304LL; | |
return result; | |
} | |
//----- (00000001800B062C) ---------------------------------------------------- | |
signed __int64 sub_1800B062C() | |
{ | |
int v0; // w0 | |
v0 = sub_1800B1188(); | |
return (64 - v0) | (unsigned int)((64 - v0) << 16) | 0x16580A500LL; | |
} | |
//----- (00000001800B1028) ---------------------------------------------------- | |
void __usercall sub_1800B1028(_QWORD *a1@<X0>, __int64 a2@<X4>, __int64 a3@<X5>, __int64 a4@<X6>, __int64 a5@<X7>, __int64 a6@<X8>, __n128 q0_0@<Q0>, __n128 q1_0@<Q1>, __n128 q2_0@<Q2>, __n128 q3_0@<Q3>, __n128 q4_0@<Q4>, __n128 a7@<Q5>, __n128 a8@<Q6>, __n128 a9@<Q7>, __int64 a10@<X1>, __int64 a11@<X2>) | |
{ | |
__int64 v16; // x9 | |
__int64 v17; // x10 | |
__int64 v18; // x11 | |
__int64 v19; // x12 | |
__int64 v20; // x13 | |
__int64 v21; // x14 | |
__int64 v22; // x15 | |
__int64 v23; // x16 | |
__int64 v24; // x17 | |
__int64 v25; // x18 | |
__int64 v26; // x19 | |
__int64 v27; // x20 | |
__int64 v28; // x21 | |
__int64 v29; // x22 | |
__int64 v30; // x23 | |
__int64 v31; // x24 | |
__int64 v32; // x25 | |
__int64 v33; // x26 | |
__int64 v34; // x27 | |
__int64 v35; // x28 | |
a1[4] = a2; | |
a1[5] = a3; | |
a1[6] = a4; | |
a1[7] = a5; | |
a1[8] = a6; | |
a1[9] = v16; | |
a1[10] = v17; | |
a1[11] = v18; | |
a1[12] = v19; | |
a1[13] = v20; | |
a1[14] = v21; | |
a1[15] = v22; | |
a1[16] = v23; | |
a1[17] = v24; | |
a1[18] = v25; | |
a1[19] = v26; | |
a1[20] = v27; | |
a1[21] = v28; | |
a1[22] = v29; | |
a1[23] = v30; | |
a1[24] = v31; | |
a1[25] = v32; | |
a1[26] = v33; | |
a1[27] = v34; | |
a1[28] = v35; | |
a1[33] = _ReadStatusReg(ARM64_SYSREG(3, 0, 4, 0, 1)); | |
sub_1800B1064((__int64)a1, q0_0, q1_0, q2_0, q3_0, q4_0, a7, a8, a9, a10, a11); | |
} | |
//----- (00000001800B1064) ---------------------------------------------------- | |
void __fastcall sub_1800B1064(__int64 a1, __n128 a2, __n128 a3, __n128 a4, __n128 a5, __n128 a6, __n128 a7, __n128 a8, __n128 a9, __int64 a10, __int64 a11) | |
{ | |
__int128 v11; // q8 | |
__int128 v12; // q9 | |
__int128 v13; // q10 | |
__int128 v14; // q11 | |
__int128 v15; // q12 | |
__int128 v16; // q13 | |
__int128 v17; // q14 | |
__int128 v18; // q15 | |
__int128 v19; // q16 | |
__int128 v20; // q17 | |
__int128 v21; // q18 | |
__int128 v22; // q19 | |
__int128 v23; // q20 | |
__int128 v24; // q21 | |
__int128 v25; // q22 | |
__int128 v26; // q23 | |
__int128 v27; // q24 | |
__int128 v28; // q25 | |
__int128 v29; // q26 | |
__int128 v30; // q27 | |
__int128 v31; // q28 | |
__int128 v32; // q29 | |
__int128 v33; // q30 | |
__int128 v34; // q31 | |
*(_DWORD *)(a1 + 256) = _ReadStatusReg(ARM64_SYSREG(3, 0, 4, 0, 0)); | |
*(__n128 *)(a1 + 304) = a2; | |
*(__n128 *)(a1 + 320) = a3; | |
*(__n128 *)(a1 + 336) = a4; | |
*(__n128 *)(a1 + 352) = a5; | |
*(__n128 *)(a1 + 368) = a6; | |
*(__n128 *)(a1 + 384) = a7; | |
*(__n128 *)(a1 + 400) = a8; | |
*(__n128 *)(a1 + 416) = a9; | |
*(_OWORD *)(a1 + 432) = v11; | |
*(_OWORD *)(a1 + 448) = v12; | |
*(_OWORD *)(a1 + 464) = v13; | |
*(_OWORD *)(a1 + 480) = v14; | |
*(_OWORD *)(a1 + 496) = v15; | |
*(_OWORD *)(a1 + 512) = v16; | |
*(_OWORD *)(a1 + 528) = v17; | |
*(_OWORD *)(a1 + 544) = v18; | |
*(_OWORD *)(a1 + 560) = v19; | |
*(_OWORD *)(a1 + 576) = v20; | |
*(_OWORD *)(a1 + 592) = v21; | |
*(_OWORD *)(a1 + 608) = v22; | |
*(_OWORD *)(a1 + 624) = v23; | |
*(_OWORD *)(a1 + 640) = v24; | |
*(_OWORD *)(a1 + 656) = v25; | |
*(_OWORD *)(a1 + 672) = v26; | |
*(_OWORD *)(a1 + 688) = v27; | |
*(_OWORD *)(a1 + 704) = v28; | |
*(_OWORD *)(a1 + 720) = v29; | |
*(_OWORD *)(a1 + 736) = v30; | |
*(_OWORD *)(a1 + 752) = v31; | |
*(_OWORD *)(a1 + 768) = v32; | |
*(_OWORD *)(a1 + 784) = v33; | |
*(_OWORD *)(a1 + 800) = v34; | |
*(_DWORD *)(a1 + 816) = _ReadStatusReg(ARM64_SYSREG(3, 3, 4, 4, 1)); | |
*(_DWORD *)(a1 + 820) = _ReadStatusReg(ARM64_SYSREG(3, 3, 4, 4, 0)); | |
JUMPOUT(__CS__, a11); | |
} | |
//----- (00000001800B1170) ---------------------------------------------------- | |
void __noreturn sub_1800B1170() | |
{ | |
_WriteStatusReg(ARM64_SYSREG(3, 0, 4, 1, 0), *(_QWORD *)(_ReadStatusReg(ARM64_SYSREG(3, 0, 4, 1, 0)) + 248)); | |
__asm { ERET } | |
} | |
//----- (00000001800B1188) ---------------------------------------------------- | |
signed __int64 sub_1800B1188() | |
{ | |
unsigned int v0; // w0 | |
bool v1; // zf | |
v0 = sub_1800B060C(); | |
if ( v0 <= 0x10 ) | |
v1 = ((1 << v0) & 0x15000) == 0; | |
else | |
v1 = 1; | |
if ( v1 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, 3641077548663203113LL, 163LL); | |
return 36LL; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800B11F4) ---------------------------------------------------- | |
void __fastcall sub_1800B11F4(unsigned __int64 a1, unsigned __int64 a2, unsigned __int64 a3, unsigned int a4) | |
{ | |
unsigned int v4; // w22 | |
unsigned __int64 v5; // x23 | |
unsigned __int64 v6; // x19 | |
signed __int64 v7; // x9 | |
signed __int64 v8; // x8 | |
unsigned int v9; // w24 | |
char v10; // w27 | |
signed __int64 v11; // x28 | |
__int64 v12; // x8 | |
unsigned __int64 v13; // x9 | |
signed __int64 v14; // x8 | |
char v15; // w26 | |
unsigned __int64 v16; // x21 | |
unsigned __int64 v17; // x25 | |
BOOL v18; // w0 | |
unsigned __int64 v19; // x26 | |
unsigned __int64 v20; // x22 | |
signed __int64 v21; // x8 | |
signed __int64 v22; // x8 | |
signed __int64 v23; // x20 | |
unsigned __int64 *v24; // x24 | |
unsigned __int64 i; // x8 | |
bool v26; // cf | |
signed __int64 v27; // x8 | |
unsigned __int64 v28; // [xsp+20h] [xbp-80h] | |
unsigned int v29; // [xsp+28h] [xbp-78h] | |
unsigned int v30; // [xsp+2Ch] [xbp-74h] | |
unsigned __int64 v31; // [xsp+48h] [xbp-58h] | |
v4 = a4; | |
v5 = a3; | |
v31 = a2; | |
v6 = a1; | |
if ( ((1LL << sub_1800B18F4(3)) - 1) & (a2 | a1 | a3) ) | |
{ | |
v27 = 482LL; | |
goto LABEL_54; | |
} | |
v29 = 0x249u >> v4; | |
v7 = 4LL; | |
if ( !((0xFC0u >> v4) & 1) ) | |
v7 = ~(8 * (0x38u >> v4)) & 8; | |
v8 = 64LL; | |
if ( (0xE00u >> v4) & 1 ) | |
v8 = 0x40000000000000LL; | |
v28 = (((0xFC0u >> v4) & 1) << 9) & 0xFFFFFF7F | (((0x924u >> v4) & 1) << 7) | (unsigned __int64)v8 | v7; | |
v30 = v4; | |
LABEL_44: | |
if ( v5 ) | |
{ | |
v9 = sub_1800B1994(); | |
v10 = 0; | |
v11 = MEMORY[0x180128028]; | |
while ( 1 ) | |
{ | |
sub_1800B060C(); | |
sub_1800B1188(); | |
if ( v5 > 0x1000000000LL || (sub_1800B1188(), 0x1000000000LL - v5 < v6) ) | |
{ | |
v27 = 377LL; | |
goto LABEL_54; | |
} | |
if ( 0x10000000000LL - v5 < v31 ) | |
{ | |
v27 = 379LL; | |
goto LABEL_54; | |
} | |
v15 = sub_1800B18F4(v9); | |
sub_1800B060C(); | |
v16 = 1LL << ((unsigned __int8)sub_1800B060C() - 3); | |
v17 = 1LL << v15; | |
v18 = sub_1800B1A00(v9); | |
v19 = (v16 - 1) & (v6 >> v15); | |
if ( v17 <= v5 && v18 && !((v17 - 1) & (v6 | v31)) ) | |
{ | |
sub_1800B060C(); | |
if ( sub_1800B1A00(v9) ) | |
{ | |
if ( v30 >= 0xC ) | |
{ | |
v27 = 220LL; | |
} | |
else | |
{ | |
v20 = 0LL; | |
v21 = 1059LL; | |
if ( v9 < 3 ) | |
v21 = 1057LL; | |
v22 = (v28 | v21) ^ 0x80; | |
if ( v29 & 1 ) | |
v23 = v22; | |
else | |
v23 = v22 | 0x60000000000000LL; | |
v24 = (unsigned __int64 *)(v11 + 8 * v19); | |
for ( i = v5; ; i -= v17 ) | |
{ | |
v26 = i >= v17 ? v19 >= v16 : 1; | |
if ( v26 ) | |
break; | |
if ( *v24 ) | |
{ | |
v27 = 418LL; | |
goto LABEL_54; | |
} | |
*v24 = (v31 + v20) | v23; | |
++v24; | |
v20 += v17; | |
++v19; | |
} | |
if ( v20 - 1 >= v5 ) | |
{ | |
v27 = 436LL; | |
} | |
else | |
{ | |
if ( v5 >= v20 ) | |
{ | |
v6 += v20; | |
v31 += v20; | |
v5 = i; | |
goto LABEL_44; | |
} | |
v27 = 489LL; | |
} | |
} | |
} | |
else | |
{ | |
v27 = 183LL; | |
} | |
LABEL_54: | |
sub_1800D489C("%llx:%d", &byte_180101040, 3641077548663203113LL, v27); | |
} | |
if ( v9 >= 3 ) | |
{ | |
v27 = 443LL; | |
goto LABEL_54; | |
} | |
if ( v10 & 1 ) | |
break; | |
v12 = *(_QWORD *)(v11 + 8 * v19); | |
if ( (*(_QWORD *)(v11 + 8 * v19) & 3LL) == 1 ) | |
{ | |
v27 = 451LL; | |
goto LABEL_54; | |
} | |
++v9; | |
if ( v12 & 1 ) | |
{ | |
v10 = 0; | |
v11 = v12 & 0xFFFFFFFFF000LL; | |
} | |
else | |
{ | |
LABEL_13: | |
if ( (unsigned int)sub_1800B1994() >= v9 ) | |
{ | |
v27 = 298LL; | |
goto LABEL_54; | |
} | |
v13 = 1LL << sub_1800B060C(); | |
if ( MEMORY[0x180128020] < v13 || (v14 = MEMORY[0x180128018], MEMORY[0x180128018] > MEMORY[0x180128020] - v13) ) | |
{ | |
v27 = 303LL; | |
goto LABEL_54; | |
} | |
if ( MEMORY[0x180128018] & (v13 - 1) ) | |
{ | |
v27 = 311LL; | |
goto LABEL_54; | |
} | |
qword_1801158C8[9450] = MEMORY[0x180128018] + v13; | |
*(_QWORD *)(v11 + 8 * v19) = v14 | 0x8000000000000003LL; | |
v10 = 1; | |
v11 = v14; | |
} | |
} | |
++v9; | |
goto LABEL_13; | |
} | |
if ( sub_1800B045C() & 1 ) | |
sub_1800B04F0(); | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800B162C) ---------------------------------------------------- | |
void sub_1800B162C() | |
{ | |
JUMPOUT(&loc_1800B11FC); | |
} | |
//----- (00000001800B1644) ---------------------------------------------------- | |
void sub_1800B1644() | |
{ | |
JUMPOUT(&loc_1800B11FC); | |
} | |
//----- (00000001800B165C) ---------------------------------------------------- | |
void sub_1800B165C() | |
{ | |
JUMPOUT(&loc_1800B11FC); | |
} | |
//----- (00000001800B1674) ---------------------------------------------------- | |
void sub_1800B1674() | |
{ | |
JUMPOUT(&loc_1800B11FC); | |
} | |
//----- (00000001800B1724) ---------------------------------------------------- | |
void __fastcall sub_1800B1724(int a1) | |
{ | |
int v1; // w19 | |
signed __int64 v2; // x0 | |
signed __int64 v3; // x21 | |
__int64 v4; // x8 | |
__int64 v5; // x9 | |
signed __int64 v6; // x8 | |
__int64 v7; // [xsp+18h] [xbp-38h] | |
__int64 v8; // [xsp+20h] [xbp-30h] | |
__int64 v9; // [xsp+28h] [xbp-28h] | |
v1 = a1; | |
v9 = 5139240511851214385LL; | |
sub_1800B0488(0xFF04uLL); | |
v2 = sub_1800B062C(); | |
sub_1800B0494(v2); | |
v3 = 1LL << sub_1800B060C(); | |
sub_1800B0614(&v8, &v7); | |
v4 = v8; | |
if ( v8 & (v3 - 1) ) | |
{ | |
v6 = 597LL; | |
goto LABEL_7; | |
} | |
v5 = v7; | |
if ( v7 & (v3 - 1) ) | |
{ | |
v6 = 598LL; | |
LABEL_7: | |
sub_1800D489C("%llx:%d", &byte_180101040, 3641077548663203113LL, v6); | |
} | |
qword_1801158C8[9449] = v8; | |
qword_1801158C8[9450] = v4; | |
qword_1801158C8[9451] = (v5 + v4) & -v3; | |
qword_1801158C8[9452] = v4; | |
qword_1801158C8[9450] += 1 << sub_1800B060C(); | |
sub_1800C5EB0(v1); | |
sub_1800B04A0(qword_1801158C8[9452]); | |
sub_1800B04F0(); | |
if ( 5139240511851214385LL != v9 ) | |
sub_1800D4A5C(); | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800B1850) ---------------------------------------------------- | |
unsigned __int64 __fastcall sub_1800B1850(unsigned __int64 result, void *a2, void *a3, void *a4, void *a5, void *a6, void *a7) | |
{ | |
__int16 v7; // w19 | |
signed __int64 v8; // x0 | |
signed __int64 v9; // x8 | |
v7 = result; | |
if ( result >> 30 == 7 ) | |
{ | |
v8 = linux_eabi_syscall(7LL, (void *)result, a2, a3, a4, a5, a6, a7); | |
if ( MEMORY[0x1801280CC] ) | |
{ | |
v9 = 624LL; | |
} | |
else | |
{ | |
MEMORY[0x1801280CC] = 1; | |
MEMORY[0x180116018] = 1; | |
if ( sub_1800B053C(v7) ) | |
sub_1800D528C(); | |
v9 = 627LL; | |
} | |
sub_1800D489C("%llx:%d", &byte_180101040, 3641077548663203113LL, v9); | |
} | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800B18F4) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B18F4(int a1) | |
{ | |
int v1; // w19 | |
int v2; // w0 | |
unsigned int v3; // w8 | |
v1 = a1; | |
sub_1800B060C(); | |
v2 = sub_1800B060C(); | |
if ( v2 == 16 ) | |
{ | |
v3 = -13 * v1 + 55; | |
} | |
else if ( v2 == 14 ) | |
{ | |
v3 = -11 * v1 + 47; | |
} | |
else | |
{ | |
if ( v2 != 12 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, 3641077548663203113LL, 281LL); | |
v3 = 39 - 9 * v1; | |
} | |
return v3; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800B1994) ---------------------------------------------------- | |
signed __int64 sub_1800B1994() | |
{ | |
int v0; // w0 | |
v0 = sub_1800B060C(); | |
if ( v0 == 12 ) | |
return 1LL; | |
if ( v0 != 16 && v0 != 14 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, 3641077548663203113LL, 139LL); | |
return 2LL; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800B1A00) ---------------------------------------------------- | |
bool __fastcall sub_1800B1A00(unsigned int a1) | |
{ | |
unsigned int v1; // w19 | |
_BOOL8 result; // x0 | |
v1 = a1; | |
sub_1800B060C(); | |
if ( v1 != 1 || (unsigned int)sub_1800B060C() != 12 ) | |
result = v1 > 1; | |
else | |
result = 1LL; | |
return result; | |
} | |
//----- (00000001800B1A44) ---------------------------------------------------- | |
void sub_1800B1A44() | |
{ | |
void *v0; // x0 | |
signed __int64 v1; // x8 | |
unsigned int v2; // w9 | |
unsigned int v3; // w9 | |
void *v4; // x1 | |
void *v5; // x2 | |
void *v6; // x3 | |
void *v7; // x4 | |
void *v8; // x5 | |
void *v9; // x6 | |
signed __int64 v10; // x0 | |
__int64 v11; // x22 | |
_QWORD *v12; // x19 | |
unsigned __int64 v13; // x20 | |
signed __int64 v14; // x8 | |
signed __int64 i; // x9 | |
unsigned int v16; // w10 | |
unsigned int v17; // w10 | |
unsigned int v18; // w10 | |
__int64 v19; // x11 | |
unsigned int v20; // [xsp+14h] [xbp-2Ch] | |
__int64 v21; // [xsp+18h] [xbp-28h] | |
v21 = 5139240511851214385LL; | |
v0 = (void *)sub_1800F5684(&v20, 4uLL); | |
v1 = v20 ^ (v20 << 13) ^ ((v20 ^ (v20 << 13)) >> 17); | |
v2 = v1 ^ 32 * v1 ^ (((unsigned int)v1 ^ 32 * (_DWORD)v1) << 13); | |
v3 = v2 ^ (v2 >> 17) ^ 32 * (v2 ^ (v2 >> 17)); | |
v20 = v3; | |
v10 = linux_eabi_syscall(v1, v0, v4, v5, v6, v7, v8, v9); | |
if ( !MEMORY[0x1801280CC] ) | |
{ | |
MEMORY[0x1801280CC] = 1; | |
MEMORY[0x180116018] = 1; | |
if ( !LOBYTE(qword_1801158C8[9453]) ) | |
{ | |
v11 = 0LL; | |
LOBYTE(qword_1801158C8[9453]) = 1; | |
v12 = (_QWORD *)((v3 % 0x7E1 << 14) | ((_DWORD)v1 << 25) | 0x1C0000000LL); | |
v13 = 6442713088LL; | |
while ( v11 != 128 ) | |
{ | |
*(_QWORD *)(v11 + 6443663416LL) = v12; | |
sub_1800B11F4((unsigned __int64)v12, v13, 0x4000uLL, 8u); | |
sub_1800F05A0(v12, 0x4000uLL); | |
v11 += 8LL; | |
v13 += 0x4000LL; | |
v12 += 4096; | |
} | |
v14 = 15LL; | |
for ( i = 120LL; i; i -= 8LL ) | |
{ | |
v16 = v20 ^ (v20 << 13) ^ ((v20 ^ (v20 << 13)) >> 17); | |
v17 = v16 ^ 32 * v16; | |
v20 = v17; | |
v18 = v17 - v17 / ((signed int)v14 + 1) * (v14 + 1); | |
v19 = *(_QWORD *)(i + 6443663416LL); | |
*(_QWORD *)(i + 6443663416LL) = *(_QWORD *)(8LL * v18 + 0x180128038LL); | |
*(_QWORD *)(8LL * v18 + 0x180128038LL) = v19; | |
--v14; | |
} | |
sub_1800D528C(); | |
} | |
} | |
sub_1800D489C("%llx:%d", &byte_180101040, -336966405497706492LL, 95LL); | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800B1BDC) ---------------------------------------------------- | |
void __usercall sub_1800B1BDC(void *a1@<X0>, void *a2@<X1>, void *a3@<X2>, void *a4@<X3>, void *a5@<X4>, void *a6@<X5>, void *a7@<X6>, signed __int64 a8@<X8>) | |
{ | |
signed __int64 v8; // x0 | |
unsigned __int64 v9; // x8 | |
int v10; // w10 | |
__int64 v11; // x21 | |
v8 = linux_eabi_syscall(a8, a1, a2, a3, a4, a5, a6, a7); | |
if ( !MEMORY[0x1801280CC] ) | |
{ | |
v9 = 0LL; | |
MEMORY[0x1801280CC] = 1; | |
MEMORY[0x180116018] = 1; | |
while ( v9 < 0x10 ) | |
{ | |
v10 = *(unsigned __int8 *)(v9++ + 6443663544LL); | |
if ( !v10 ) | |
{ | |
*(_BYTE *)(v9 + 6443663543LL) = 1; | |
v11 = *(_QWORD *)(8 * v9 + 0x180128030LL); | |
sub_1800D528C(); | |
} | |
} | |
sub_1800D528C(); | |
} | |
sub_1800D489C("%llx:%d", &byte_180101040, -336966405497706492LL, 139LL); | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800B1D04) ---------------------------------------------------- | |
void __noreturn sub_1800B1D04() | |
{ | |
unsigned __int64 v0; // x19 | |
int v1; // w0 | |
v0 = sub_1800D55FC(); | |
sub_1800F61B4(); | |
v1 = (*(__int64 (__fastcall **)(_QWORD))(v0 + 904))(*(_QWORD *)(v0 + 912)); | |
sub_1800D5984(v1); | |
} | |
//----- (00000001800B1D2C) ---------------------------------------------------- | |
void __fastcall __noreturn sub_1800B1D2C(__int64 a1, void *a2, void *a3, void *a4, void *a5, void *a6, void *a7) | |
{ | |
_QWORD *v7; // x0 | |
unsigned __int64 v8; // x9 | |
_QWORD *v9; // x11 | |
signed __int64 v10; // x9 | |
signed __int64 v11; // x9 | |
v7 = (_QWORD *)linux_eabi_syscall(-336966405497706492LL, *(void **)(a1 + 920), a2, a3, a4, a5, a6, a7); | |
if ( MEMORY[0x1801280CC] ) | |
{ | |
v11 = 166LL; | |
} | |
else | |
{ | |
v8 = 0LL; | |
MEMORY[0x1801280CC] = 1; | |
MEMORY[0x180116018] = 1; | |
do | |
{ | |
if ( v8 > 0xF ) | |
{ | |
v11 = 177LL; | |
goto LABEL_9; | |
} | |
v9 = *(_QWORD **)(8 * v8++ + 0x180128038LL); | |
} | |
while ( v9 != v7 ); | |
v10 = v8 + 6443663544LL; | |
if ( *(_BYTE *)(v10 - 1) == 1 ) | |
{ | |
*(_BYTE *)(v10 - 1) = 0; | |
sub_1800F05A0(v7, 0x4000uLL); | |
sub_1800D528C(); | |
} | |
v11 = 170LL; | |
} | |
LABEL_9: | |
sub_1800D489C("%llx:%d", &byte_180101040, -336966405497706492LL, v11); | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800B1DF4) ---------------------------------------------------- | |
signed __int64 sub_1800B1DF4() | |
{ | |
signed __int64 result; // x0 | |
int v1; // w1 | |
int v2; // w9 | |
unsigned int v3; // w8 | |
char v4; // w11 | |
char v5; // w12 | |
unsigned __int8 v6; // [xsp+6h] [xbp-Ah] | |
unsigned __int8 v7; // [xsp+7h] [xbp-9h] | |
__int64 v8; // [xsp+8h] [xbp-8h] | |
v8 = 5139240511851214385LL; | |
if ( sub_1800D8634() & 1 || sub_1800D88D0() ) | |
goto LABEL_3; | |
result = sub_1800BC278(2u, &v6); | |
if ( !(_DWORD)result ) | |
{ | |
if ( !v6 ) | |
{ | |
LABEL_3: | |
result = 0LL; | |
goto LABEL_4; | |
} | |
if ( sub_1800C5624() & 1 ) | |
{ | |
v1 = 224; | |
v6 = -32; | |
} | |
else | |
{ | |
v1 = v6; | |
} | |
sub_1800BC320(4u, v1); | |
result = sub_1800BC278(3u, &v7); | |
if ( !(_DWORD)result ) | |
{ | |
v2 = v7 & 0xF; | |
v3 = (unsigned int)v7 >> 4; | |
if ( v2 == 15 ) | |
v4 = 15; | |
else | |
v4 = v2 + 1; | |
if ( v3 == 15 ) | |
v5 = 15; | |
else | |
v5 = v3 + 1; | |
if ( v6 != 224 ) | |
LOBYTE(v2) = v4; | |
if ( v6 == 224 ) | |
LOBYTE(v3) = v5; | |
v7 = v2 | 16 * v3; | |
sub_1800BC320(3u, v7); | |
sub_1800D8A88(); | |
goto LABEL_3; | |
} | |
} | |
LABEL_4: | |
if ( 5139240511851214385LL != v8 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800B1EDC) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B1EDC(int a1) | |
{ | |
int v1; // w19 | |
v1 = a1; | |
if ( !(sub_1800D8634() & 1) && !sub_1800D88D0() ) | |
sub_1800BC320(2u, v1); | |
return 0LL; | |
} | |
//----- (00000001800B1F18) ---------------------------------------------------- | |
__int64 sub_1800B1F18() | |
{ | |
sub_1800BC320(3u, 0); | |
return 0LL; | |
} | |
//----- (00000001800B1F38) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800B1F38(int *a1, unsigned int *a2) | |
{ | |
unsigned int *v2; // x19 | |
int *v3; // x20 | |
signed __int64 result; // x0 | |
unsigned int v5; // w8 | |
unsigned __int8 v6; // [xsp+7h] [xbp-19h] | |
__int64 v7; // [xsp+8h] [xbp-18h] | |
v2 = a2; | |
v3 = a1; | |
v7 = 5139240511851214385LL; | |
v6 = 0; | |
result = sub_1800BC278(3u, &v6); | |
if ( !(_DWORD)result ) | |
{ | |
v5 = v6; | |
if ( v3 ) | |
*v3 = v6 & 0xF; | |
if ( v2 ) | |
*v2 = v5 >> 4; | |
} | |
if ( 5139240511851214385LL != v7 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800B1FBC) ---------------------------------------------------- | |
void sub_1800B1FBC() | |
{ | |
__int64 v0; // x1 | |
__int64 v1; // x2 | |
__int64 v2; // x3 | |
__int64 v3; // x4 | |
__int64 v4; // x5 | |
__int64 v5; // x6 | |
__int64 v6; // x7 | |
__int64 v7; // x1 | |
__int64 v8; // x2 | |
__int64 v9; // x3 | |
__int64 v10; // x4 | |
__int64 v11; // x5 | |
__int64 v12; // x6 | |
__int64 v13; // x7 | |
unsigned __int8 v14; // [xsp+17h] [xbp-19h] | |
__int64 v15; // [xsp+18h] [xbp-18h] | |
v15 = 5139240511851214385LL; | |
if ( (unsigned int)sub_1800BC278(4u, &v14) ) | |
goto LABEL_2; | |
if ( v14 != 255 ) | |
{ | |
if ( v14 != 224 ) | |
goto LABEL_2; | |
nullsub_17(); | |
if ( (unsigned int)sub_1800BC320(4u, 0) ) | |
goto LABEL_2; | |
sub_1800B1EDC(225); | |
sub_1800C5A64(); | |
sub_1800F4188(); | |
sub_1800EF260((__int64)"%llx:%d\n", v7, v8, v9, v10, v11, v12, v13, -5515212492756888132LL); | |
sub_1800D3B2C(0); | |
} | |
sub_1800EF260((__int64)"%llx:%d\n", v0, v1, v2, v3, v4, v5, v6, -5515212492756888132LL); | |
LABEL_2: | |
sub_1800F3FE4(0); | |
if ( 5139240511851214385LL != v15 ) | |
sub_1800D4A5C(); | |
} | |
// 1800F68C4: using guessed type __int64 nullsub_17(void); | |
//----- (00000001800B209C) ---------------------------------------------------- | |
__int64 sub_1800B209C() | |
{ | |
__int64 i; // x19 | |
__int64 v1; // x0 | |
unsigned __int64 v2; // x20 | |
__int64 *j; // x21 | |
_BYTE *v4; // x19 | |
for ( i = 0uLL; i != 4; i += 2LL ) | |
{ | |
v1 = sub_1800E9DAC((_BYTE *)qword_1801110E0[i]); | |
if ( v1 ) | |
sub_1800D7BA8(v1, qword_1801110E0[i + 1], 0); | |
} | |
v2 = 0LL; | |
for ( j = &qword_180111100; v2 <= 1; j += 2 ) | |
{ | |
v4 = (_BYTE *)*j; | |
if ( sub_1800E9DAC((_BYTE *)*j) ) | |
{ | |
if ( sub_1800F64C8(v4) & 1 ) | |
break; | |
} | |
++v2; | |
} | |
return sub_1800D7E64(0LL); | |
} | |
// 1800D7E64: using guessed type __int64 __fastcall sub_1800D7E64(_QWORD); | |
// 1801110E0: using guessed type __int64 qword_1801110E0[]; | |
// 180111100: using guessed type __int64 qword_180111100; | |
//----- (00000001800B2134) ---------------------------------------------------- | |
signed __int64 sub_1800B2134() | |
{ | |
sub_1800B2154(1768058740LL); | |
return 0xFFFFFFFFLL; | |
} | |
//----- (00000001800B2154) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B2154(__int64 a1) | |
{ | |
int v1; // w19 | |
__int64 v2; // x1 | |
__int64 v3; // x2 | |
__int64 v4; // x3 | |
__int64 v5; // x4 | |
__int64 v6; // x5 | |
__int64 v7; // x6 | |
__int64 v8; // x7 | |
__int64 result; // x0 | |
__int64 v10; // x3 | |
__int64 v11; // x4 | |
__int64 v12; // x5 | |
__int64 v13; // x6 | |
__int64 v14; // x7 | |
char v15; // [xsp+10h] [xbp-20h] | |
__int64 v16; // [xsp+18h] [xbp-18h] | |
v1 = a1; | |
v16 = 5139240511851214385LL; | |
if ( !(unsigned int)sub_1800D80D4((char *)0x800000000LL, 0x20000000uLL, (unsigned __int64 *)&v15, a1) ) | |
{ | |
sub_1800D4F44(); | |
sub_1800B2B44(v1, 0LL, 0x800000000LL, v10, v11, v12, v13, v14); | |
LABEL_5: | |
sub_1800D4A5C(); | |
} | |
result = sub_1800EF260((__int64)"%llx:%d\n", v2, v3, v4, v5, v6, v7, v8, -5515212492756888132LL); | |
if ( 5139240511851214385LL != v16 ) | |
goto LABEL_5; | |
return result; | |
} | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
//----- (00000001800B21F8) ---------------------------------------------------- | |
signed __int64 sub_1800B21F8() | |
{ | |
sub_1800B2154(1684627815LL); | |
sub_1800B222C(1684627815, "diags-path"); | |
return 0xFFFFFFFFLL; | |
} | |
//----- (00000001800B222C) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800B222C(int a1, _BYTE *a2) | |
{ | |
__int64 v2; // x1 | |
__int64 v3; // x2 | |
__int64 v4; // x3 | |
__int64 v5; // x4 | |
__int64 v6; // x5 | |
__int64 v7; // x6 | |
__int64 v8; // x7 | |
void **v9; // x19 | |
signed __int64 result; // x0 | |
__int64 v11; // x5 | |
__int64 v12; // x6 | |
__int64 v13; // x7 | |
__int64 v14; // x3 | |
__int64 v15; // x4 | |
__int64 v16; // x5 | |
__int64 v17; // x6 | |
__int64 v18; // x7 | |
char v19; // [xsp+18h] [xbp-238h] | |
int v20; // [xsp+24h] [xbp-22Ch] | |
char v21; // [xsp+28h] [xbp-228h] | |
__int64 v22; // [xsp+228h] [xbp-28h] | |
v22 = 5139240511851214385LL; | |
v20 = a1; | |
v9 = sub_1800ECB70(a2); | |
if ( v9 ) | |
{ | |
result = sub_1800B272C(); | |
if ( result & 0x80000000 ) | |
goto LABEL_6; | |
sub_1800EFC74(&v21, 0x200uLL, 0LL, 0x200uLL, (__int64)"/boot%s", v11, v12, v13, (__int64)v9); | |
if ( !(unsigned int)sub_1800D7EC0( | |
&v21, | |
(char *)0x820000000LL, | |
0x7F00000uLL, | |
(unsigned __int64 *)&v19, | |
(unsigned int *)&v20, | |
1u, | |
0LL, | |
0) ) | |
{ | |
sub_1800D4F44(); | |
sub_1800B2B44(v20, 0LL, 34896609280LL, v14, v15, v16, v17, v18); | |
return sub_1800B2338(); | |
} | |
sub_1800ED6D8("/boot"); | |
} | |
result = sub_1800EF260((__int64)"%llx:%d\n", v2, v3, v4, v5, v6, v7, v8, -5515212492756888132LL); | |
LABEL_6: | |
if ( 5139240511851214385LL != v22 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
//----- (00000001800B2338) ---------------------------------------------------- | |
signed __int64 sub_1800B2338() | |
{ | |
sub_1800B222C(1634495855, "alamo-path"); | |
return 0xFFFFFFFFLL; | |
} | |
//----- (00000001800B2360) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B2360(__int64 a1, __int64 a2) | |
{ | |
__int64 v2; // x1 | |
__int64 v3; // x2 | |
__int64 v4; // x3 | |
__int64 v5; // x4 | |
__int64 v6; // x5 | |
__int64 v7; // x6 | |
__int64 v8; // x7 | |
__int64 v9; // x19 | |
void *v11; // x3 | |
void *v12; // x4 | |
void *v13; // x5 | |
void *v14; // x6 | |
signed __int64 v15; // x8 | |
void *v16; // [xsp+18h] [xbp-28h] | |
char v17; // [xsp+20h] [xbp-20h] | |
__int64 v18; // [xsp+28h] [xbp-18h] | |
v18 = 5139240511851214385LL; | |
v9 = ((__int64 (__fastcall *)(__int64, __int64, char *, void **))loc_1800C3F48)(a1, a2, &v17, &v16); | |
if ( !(v9 & 0x80000000) ) | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v2, v3, v4, v5, v6, v7, v8, -5515212492756888132LL); | |
sub_1800F3FE4(0); | |
sub_1800D456C((void *)3, *(void **)&v17, v16, v11, v12, v13, v14, v15); | |
} | |
sub_1800EF260((__int64)"%llx:%d\n", v2, v3, v4, v5, v6, v7, v8, -5515212492756888132LL); | |
if ( 5139240511851214385LL != v18 ) | |
sub_1800D4A5C(); | |
return v9; | |
} | |
//----- (00000001800B272C) ---------------------------------------------------- | |
signed __int64 sub_1800B272C() | |
{ | |
void **v0; // x19 | |
char v1; // ST08_1 | |
__int64 v2; // x5 | |
__int64 v3; // x6 | |
__int64 v4; // x7 | |
signed __int64 result; // x0 | |
char v6; // [xsp+18h] [xbp-98h] | |
__int64 v7; // [xsp+98h] [xbp-18h] | |
v7 = 5139240511851214385LL; | |
v0 = sub_1800ECB70("boot-device"); | |
if ( v0 ) | |
{ | |
v1 = (char)((char *)sub_1800ECB8C("boot-partition", 0LL) + 97); | |
sub_1800EFC74(&v6, 0x80uLL, 0LL, 0x80uLL, (__int64)"%s%c", v2, v3, v4, (__int64)v0); | |
result = sub_1800B27D8(&v6, 0LL); | |
} | |
else | |
{ | |
result = 0xFFFFFFFFLL; | |
} | |
if ( 5139240511851214385LL != v7 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800B27D8) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800B27D8(_BYTE *a1, __int64 a2) | |
{ | |
__int64 v2; // x19 | |
__int64 v3; // x20 | |
int i; // w21 | |
__int64 v5; // x4 | |
__int64 v6; // x5 | |
__int64 v7; // x6 | |
__int64 v8; // x7 | |
__int64 v9; // x8 | |
__int64 v10; // x0 | |
signed __int64 result; // x0 | |
v2 = a2; | |
v3 = (__int64)a1; | |
if ( sub_1800E9DAC(a1) ) | |
{ | |
for ( i = 0; ; ++i ) | |
{ | |
v9 = sub_1800EDBB8(i); | |
if ( !v9 ) | |
{ | |
v10 = 1074135042LL; | |
goto LABEL_8; | |
} | |
if ( !(unsigned int)sub_1800ED508(v3, v9, (__int64)"/boot", v2, v5, v6, v7, v8) ) | |
break; | |
sub_1800F5AC0(1074135043LL); | |
} | |
result = 0LL; | |
} | |
else | |
{ | |
v10 = 1074135041LL; | |
LABEL_8: | |
sub_1800F598C(v10); | |
result = 0xFFFFFFFFLL; | |
} | |
return result; | |
} | |
//----- (00000001800B2884) ---------------------------------------------------- | |
signed __int64 sub_1800B2884() | |
{ | |
char *v0; // x19 | |
void **v1; // x21 | |
void **v2; // x22 | |
signed __int64 v3; // x20 | |
__int64 v4; // x1 | |
__int64 v5; // x2 | |
__int64 v6; // x3 | |
__int64 v7; // x4 | |
__int64 v8; // x5 | |
__int64 v9; // x6 | |
__int64 v10; // x7 | |
void **v11; // x0 | |
__int64 v12; // x5 | |
__int64 v13; // x6 | |
__int64 v14; // x7 | |
__int64 v16; // [xsp+18h] [xbp-48h] | |
char v17; // [xsp+20h] [xbp-40h] | |
__int64 v18; // [xsp+28h] [xbp-38h] | |
v18 = 5139240511851214385LL; | |
v0 = (char *)sub_1800EDBF4(0x200uLL); | |
v1 = sub_1800ECB70("boot-path"); | |
if ( v1 && (v2 = sub_1800ECB70("dt-path")) != 0LL ) | |
{ | |
v3 = sub_1800F68E8(0LL); | |
if ( v3 & 0x80000000 ) | |
{ | |
sub_1800F5AC0(2148139009LL); | |
} | |
else | |
{ | |
v3 = sub_1800B272C(); | |
if ( v3 & 0x80000000 | |
|| (v11 = sub_1800ECB70("boot-ramdisk")) != 0LL | |
&& *(_BYTE *)v11 | |
&& (sub_1800EFC74(v0, 0x200uLL, 0LL, 0xFFFFFFFFFFFFFFFFLL, (__int64)"/boot%s", v8, v9, v10, (__int64)v11), | |
v3 = sub_1800F4FFC(v0), | |
v3 & 0x80000000) ) | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v4, v5, v6, v7, v8, v9, v10, -5515212492756888132LL); | |
} | |
else | |
{ | |
sub_1800EFC74(v0, 0x200uLL, 0LL, 0xFFFFFFFFFFFFFFFFLL, (__int64)"/boot%s", v8, v9, v10, (__int64)v2); | |
v3 = sub_1800EC730(v0); | |
if ( !(v3 & 0x80000000) ) | |
{ | |
sub_1800EFC74(v0, 0x200uLL, 0LL, 0xFFFFFFFFFFFFFFFFLL, (__int64)"/boot%s", v12, v13, v14, (__int64)v1); | |
v3 = ((__int64 (__fastcall *)(char *, signed __int64, char *, __int64 *))loc_1800C3DEC)( | |
v0, | |
1802661484LL, | |
&v17, | |
&v16); | |
if ( !(v3 & 0x80000000) ) | |
{ | |
v3 = sub_1800B2360(*(__int64 *)&v17, v16); | |
if ( !(v3 & 0x80000000) ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -5515212492756888132LL, 769LL); | |
} | |
} | |
} | |
} | |
} | |
else | |
{ | |
v3 = 0xFFFFFFFFLL; | |
} | |
sub_1800F5CF0("boot-breadcrumbs"); | |
sub_1800EE010(v0); | |
sub_1800ED6D8("/boot"); | |
if ( 5139240511851214385LL != v18 ) | |
sub_1800D4A5C(); | |
return v3; | |
} | |
// 1800F68E8: using guessed type __int64 __fastcall sub_1800F68E8(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800B2A84) ---------------------------------------------------- | |
void sub_1800B2A84() | |
{ | |
__int64 v0; // x1 | |
__int64 v1; // x2 | |
__int64 v2; // x3 | |
__int64 v3; // x4 | |
__int64 v4; // x5 | |
__int64 v5; // x6 | |
__int64 v6; // x7 | |
const char *v7; // x0 | |
__int64 v8; // x3 | |
__int64 v9; // x4 | |
__int64 v10; // x5 | |
__int64 v11; // x6 | |
__int64 v12; // x7 | |
int v13; // w0 | |
__int64 v14; // x1 | |
__int64 v15; // x2 | |
__int64 v16; // x3 | |
__int64 v17; // x4 | |
__int64 v18; // x5 | |
__int64 v19; // x6 | |
__int64 v20; // x7 | |
__int64 v21; // [xsp+0h] [xbp-10h] | |
__int64 v22; // [xsp+8h] [xbp-8h] | |
v22 = 5139240511851214385LL; | |
if ( sub_1800D4DFC(0x800000000uLL, 133169152LL) & 1 ) | |
{ | |
if ( !(unsigned int)sub_1800D8034( | |
0x800000000LL, | |
133169152, | |
(char *)0x820000000LL, | |
0x7F00000uLL, | |
0LL, | |
(unsigned int *)"cebilefciladrmmhtreptlhptmbr", | |
7u, | |
(unsigned int *)&v21 + 1, | |
9) ) | |
{ | |
sub_1800D4F44(); | |
sub_1800B2B44(SHIDWORD(v21), 9LL, 34896609280LL, v8, v9, v10, v11, v12); | |
sub_1800B2B44(v13, v14, v15, v16, v17, v18, v19, v20); | |
return; | |
} | |
v7 = "Memory image not valid\n"; | |
} | |
else | |
{ | |
v7 = "Permission Denied\n"; | |
} | |
sub_1800EF260((__int64)v7, v0, v1, v2, v3, v4, v5, v6, v21); | |
if ( 5139240511851214385LL != v22 ) | |
sub_1800D4A5C(); | |
} | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
//----- (00000001800B2B44) ---------------------------------------------------- | |
void __fastcall sub_1800B2B44(int a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
void *v8; // x19 | |
char v9; // w20 | |
__int64 v10; // x21 | |
int v11; // w8 | |
bool v12; // zf | |
void *v13; // x3 | |
void *v14; // x4 | |
void *v15; // x5 | |
void *v16; // x6 | |
v8 = (void *)a3; | |
v9 = a2; | |
v10 = 0uLL; | |
do | |
{ | |
v11 = dword_180103A68[v10]; | |
v10 += 3LL; | |
if ( v11 == a1 ) | |
v12 = 1; | |
else | |
v12 = v11 == 0; | |
} | |
while ( !v12 ); | |
if ( &dword_180103A68[v10] == (int *)12 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -5515212492756888132LL, 248LL); | |
if ( v10 == 9 ) | |
sub_1800D4FC8(1); | |
if ( v9 & 8 ) | |
sub_1800C55C4(); | |
sub_1800EF260((__int64)"%llx:%d\n", a2, a3, a4, a5, a6, a7, a8, -5515212492756888132LL); | |
sub_1800D456C( | |
(void *)(unsigned int)dword_180103A68[v10 - 2], | |
v8, | |
0LL, | |
v13, | |
v14, | |
v15, | |
v16, | |
(signed __int64)&dword_180103A68[v10]); | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 180103A68: using guessed type int dword_180103A68[]; | |
//----- (00000001800B2E1C) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B2E1C(unsigned __int8 *a1) | |
{ | |
unsigned __int8 *v1; // x19 | |
__int64 v2; // x20 | |
__int64 result; // x0 | |
v1 = a1; | |
v2 = 0uLL; | |
while ( v2 != 15 ) | |
{ | |
result = sub_1800F0770(v1, (_BYTE *)qword_1801111E8[v2]); | |
++v2; | |
if ( !(_DWORD)result ) | |
return result; | |
} | |
return 1LL; | |
} | |
// 1801111E8: using guessed type __int64 qword_1801111E8[]; | |
//----- (00000001800B2E74) ---------------------------------------------------- | |
signed __int64 sub_1800B2E74() | |
{ | |
int v0; // w8 | |
signed __int64 result; // x0 | |
__int64 v2; // x1 | |
__int64 v3; // x2 | |
__int64 v4; // x3 | |
__int64 v5; // x4 | |
__int64 v6; // x5 | |
__int64 v7; // x6 | |
__int64 v8; // x7 | |
unsigned __int8 v9; // [xsp+117h] [xbp-9h] | |
__int64 v10; // [xsp+118h] [xbp-8h] | |
v10 = 5139240511851214385LL; | |
v0 = sub_1800BC278(0xBu, &v9); | |
result = 0LL; | |
if ( !v0 && v9 == 160 ) | |
{ | |
sub_1800BC320(0xBu, 0); | |
sub_1800EF260((__int64)"%llx:%d\n", v2, v3, v4, v5, v6, v7, v8, 8406910280902908813LL); | |
result = 1LL; | |
} | |
if ( 5139240511851214385LL != v10 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800B3520) ---------------------------------------------------- | |
void __fastcall sub_1800B3520(__int64 a1) | |
{ | |
__int64 v1; // x19 | |
__int64 v2; // x0 | |
__int64 v3; // x1 | |
__int64 v4; // x2 | |
__int64 v5; // x3 | |
__int64 v6; // x4 | |
__int64 v7; // x5 | |
__int64 v8; // x6 | |
__int64 v9; // x7 | |
v1 = sub_1800D5F1C(a1); | |
while ( !sub_1800D5F30(MEMORY[0x180117D18], 0x35A4E900uLL) ) | |
{ | |
v2 = sub_1800D9AA4(); | |
if ( (_DWORD)v2 ) | |
v1 = sub_1800D5F1C(v2); | |
if ( sub_1800D5F30(v1, 0x1C9C380uLL) ) | |
break; | |
sub_1800D5B44(1000000LL); | |
} | |
sub_1800EF260((__int64)"%llx:%d\n", v3, v4, v5, v6, v7, v8, v9, 8406910280902908813LL); | |
sub_1800C6030(); | |
} | |
//----- (00000001800B35B0) ---------------------------------------------------- | |
void *__fastcall sub_1800B35B0(_BYTE **a1, void *a2) | |
{ | |
_BYTE **v2; // x19 | |
unsigned __int8 *v3; // x20 | |
BOOL v4; // w22 | |
__int64 v5; // x0 | |
int v6; // w21 | |
void *result; // x0 | |
__int64 v8; // x1 | |
__int64 v9; // x2 | |
__int64 v10; // x3 | |
__int64 v11; // x4 | |
__int64 v12; // x5 | |
__int64 v13; // x6 | |
__int64 v14; // x7 | |
int v15; // w22 | |
__int64 v16; // x0 | |
unsigned __int64 v17; // x21 | |
unsigned __int64 v18; // x22 | |
__int64 v19; // x0 | |
__int64 v20; // x0 | |
__int64 v21; // x1 | |
__int64 v22; // x2 | |
__int64 v23; // x3 | |
__int64 v24; // x4 | |
__int64 v25; // x5 | |
__int64 v26; // x6 | |
__int64 v27; // x7 | |
bool v28; // zf | |
_BYTE *v29; // x1 | |
__int64 v30; // x2 | |
__int64 v31; // x3 | |
__int64 v32; // x4 | |
__int64 v33; // x5 | |
__int64 v34; // x6 | |
__int64 v35; // x7 | |
__int64 (*v36)(void); // x0 | |
__int64 v37; // [xsp+0h] [xbp-40h] | |
void *v38; // [xsp+18h] [xbp-28h] | |
v38 = a2; | |
v2 = a1; | |
v3 = (unsigned __int8 *)sub_1800ECB70("boot-command"); | |
v4 = sub_1800ECBB8("upgrade-retry", 0LL); | |
v5 = sub_1800ECBB8("auto-boot", 0LL); | |
v6 = v5; | |
if ( v4 ) | |
{ | |
if ( (_DWORD)v5 ) | |
{ | |
v5 = sub_1800D9FD0(); | |
if ( v3 ) | |
{ | |
if ( (_DWORD)v5 ) | |
{ | |
v5 = sub_1800F0770(v3, "upgrade"); | |
if ( !(_DWORD)v5 ) | |
v5 = sub_1800ECE44("auto-boot", (__int64)"false", 0); | |
} | |
} | |
} | |
} | |
qword_1801158C8[40] = sub_1800D5F1C(v5); | |
sub_1800D9918(); | |
result = sub_1800ECB8C("bootdelay", (void *)1); | |
v15 = (signed int)result; | |
if ( v6 ) | |
{ | |
v16 = sub_1800EF260( | |
(__int64)"Delaying boot for %d seconds. Hit enter to break into the command prompt...\n", | |
v8, | |
v9, | |
v10, | |
v11, | |
v12, | |
v13, | |
v14, | |
(__int64)result); | |
v17 = sub_1800D5F1C(v16); | |
v18 = (unsigned int)(1000000 * v15); | |
while ( 1 ) | |
{ | |
v20 = sub_1800D4728(); | |
if ( (_DWORD)v20 == 13 ) | |
v28 = 1; | |
else | |
v28 = (_DWORD)v20 == 10; | |
if ( v28 ) | |
return (void *)sub_1800EF260( | |
(__int64)"aborting autoboot due to user intervention.\n", | |
v21, | |
v22, | |
v23, | |
v24, | |
v25, | |
v26, | |
v27, | |
v37); | |
v19 = sub_1800D5F1C(v20); | |
if ( v19 - v17 > v18 ) | |
break; | |
sub_1800D5B44(10000LL); | |
} | |
qword_1801158C8[41] = sub_1800D5F1C(v19); | |
while ( v3 ) | |
{ | |
v29 = *v2; | |
if ( !*v2 ) | |
break; | |
v2 += 2; | |
if ( !(unsigned int)sub_1800F0770(v3, v29) ) | |
{ | |
sub_1800D9918(); | |
v36 = (__int64 (*)(void))*(v2 - 1); | |
return (void *)v36(); | |
} | |
} | |
if ( v3 ) | |
sub_1800EF260((__int64)"%llx:%d\n", (__int64)v29, v30, v31, v32, v33, v34, v35, 8406910280902908813LL); | |
result = v38; | |
if ( v38 ) | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", (__int64)v29, v30, v31, v32, v33, v34, v35, 8406910280902908813LL); | |
v36 = (__int64 (*)(void))v38; | |
return (void *)v36(); | |
} | |
} | |
return result; | |
} | |
// 180114CE8: using guessed type __int64[105]; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800B376C) ---------------------------------------------------- | |
signed __int64 sub_1800B376C() | |
{ | |
__int16 *v0; // x1 | |
int v1; // w0 | |
sub_1800F598C(65538LL); | |
sub_1800F5CF0("boot-breadcrumbs"); | |
sub_1800C59D0(); | |
sub_1800BC3A0(1); | |
sub_1800D3B2C(0); | |
if ( v1 != 4 ) | |
return 0xFFFFFFFFLL; | |
sub_1800F1CE4(v0[24], v0[44], v0[64]); | |
sub_1800F2544(); | |
return 0LL; | |
} | |
//----- (00000001800B3A28) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B3A28(__int64 a1, __int64 a2) | |
{ | |
__int64 v2; // x20 | |
unsigned __int8 *v3; // x19 | |
v2 = a2; | |
v3 = (unsigned __int8 *)a1; | |
if ( a1 && (unsigned __int64)sub_1800F08E8(a1) >= 4 ) | |
v2 = ((*v3 << 24) & 0xFF00FFFF | (v3[1] << 16)) & 0xFFFF00FF | (v3[2] << 8) | v3[3]; | |
return v2; | |
} | |
//----- (00000001800B3A80) ---------------------------------------------------- | |
signed __int64 sub_1800B3A80() | |
{ | |
unsigned int v0; // w0 | |
__int64 v1; // x3 | |
__int64 v2; // x4 | |
__int64 v3; // x5 | |
__int64 v4; // x6 | |
__int64 v5; // x7 | |
__int64 v6; // x3 | |
__int64 v7; // x4 | |
__int64 v8; // x5 | |
__int64 v9; // x6 | |
__int64 v10; // x7 | |
__int64 v11; // x3 | |
__int64 v12; // x4 | |
__int64 v13; // x5 | |
__int64 v14; // x6 | |
__int64 v15; // x7 | |
signed __int64 result; // x0 | |
__int64 v17; // [xsp+0h] [xbp-20h] | |
__int64 v18; // [xsp+8h] [xbp-18h] | |
v18 = 5139240511851214385LL; | |
sub_1800ECE44("boot-partition", (__int64)"0", 0); | |
sub_1800ECE44("boot-path", (__int64)"/System/Library/Caches/com.apple.kernelcaches/kernelcache", 0); | |
sub_1800ECE44("dt-path", (__int64)"/usr/standalone/firmware/devicetree.img4", 0); | |
sub_1800ECE44("build-style", (__int64)"RELEASE", 0); | |
sub_1800ECE44("build-version", (__int64)"iBoot-4076.1.43", 0); | |
sub_1800F0E34(0x2002800u, 393216, &v17); | |
sub_1800ECE44("config_board", v17, 0); | |
v0 = sub_1800D60D8(); | |
sub_1800ED05C("board-rev", v0, 0, v1, v2, v3, v4, v5); | |
sub_1800ED05C("loadaddr", 0x800000000LL, 0, v6, v7, v8, v9, v10); | |
sub_1800ED05C("ramdisk-size", 0x20000000LL, 0, v11, v12, v13, v14, v15); | |
sub_1800ECE44("boot-command", (__int64)"fsboot", 0); | |
sub_1800ECE44("bootdelay", (__int64)"0", 0); | |
sub_1800ECE44("auto-boot", (__int64)"true", 0); | |
sub_1800ECE44("idle-off", (__int64)"true", 0); | |
if ( sub_1800E0D14() ) | |
sub_1800ECE44("idle-off", (__int64)"false", 0); | |
result = sub_1800C605C(); | |
if ( 5139240511851214385LL != v18 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
//----- (00000001800B3D44) ---------------------------------------------------- | |
signed __int64 sub_1800B3D44() | |
{ | |
__int64 i; // x0 | |
__int64 v1; // x1 | |
__int64 v2; // x2 | |
__int64 v3; // x3 | |
__int64 v4; // x4 | |
__int64 v5; // x5 | |
__int64 v6; // x6 | |
__int64 v7; // x7 | |
__int64 v8; // x0 | |
signed __int64 result; // x0 | |
__int64 v10; // x1 | |
__int64 v11; // x2 | |
__int64 v12; // x3 | |
__int64 v13; // x4 | |
__int64 v14; // x5 | |
__int64 v15; // x6 | |
__int64 v16; // x7 | |
for ( i = sub_1800E9DEC(); ; i = sub_1800E9DF8(i) ) | |
{ | |
if ( !i ) | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v1, v2, v3, v4, v5, v6, v7, -9045921792801257407LL); | |
v8 = 1074069505LL; | |
goto LABEL_8; | |
} | |
if ( *(_BYTE *)(i + 8) & 2 ) | |
break; | |
} | |
result = sub_1800B27D8((_BYTE *)(i + 80), 1LL); | |
if ( !(_DWORD)result ) | |
return result; | |
sub_1800EF260((__int64)"%llx:%d\n", v10, v11, v12, v13, v14, v15, v16, -9045921792801257407LL); | |
v8 = 1074069506LL; | |
LABEL_8: | |
sub_1800F598C(v8); | |
return 0xFFFFFFFFLL; | |
} | |
//----- (00000001800B3DE4) ---------------------------------------------------- | |
void __fastcall sub_1800B3DE4(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
__int64 v8; // x19 | |
__int64 v9; // x20 | |
__int64 v10; // x0 | |
__int64 v11; // x1 | |
__int64 v12; // x2 | |
__int64 v13; // x3 | |
__int64 v14; // x4 | |
__int64 v15; // x5 | |
__int64 v16; // x6 | |
__int64 v17; // x7 | |
v8 = a2; | |
v9 = a1; | |
sub_1800EF260((__int64)"%llx:%d\n", a2, a3, a4, a5, a6, a7, a8, -9045921792801257407LL); | |
sub_1800ECE44("ota-result", v9, 1); | |
v10 = sub_1800ECE44("ota-failure-reason", v8, 1); | |
sub_1800F1304(v10, v11, v12, v13, v14, v15, v16, v17); | |
sub_1800F5CF0("ota-breadcrumbs"); | |
} | |
//----- (00000001800B3E64) ---------------------------------------------------- | |
__int64 sub_1800B3E64() | |
{ | |
__int64 v0; // x0 | |
__int64 v1; // x1 | |
__int64 v2; // x2 | |
__int64 v3; // x3 | |
__int64 v4; // x4 | |
__int64 v5; // x5 | |
__int64 v6; // x6 | |
__int64 v7; // x7 | |
__int64 v8; // x1 | |
__int64 v9; // x2 | |
__int64 v10; // x3 | |
__int64 v11; // x4 | |
__int64 v12; // x5 | |
__int64 v13; // x6 | |
__int64 v14; // x7 | |
char v15; // w0 | |
__int64 v16; // x1 | |
__int64 v17; // x2 | |
__int64 v18; // x3 | |
__int64 v19; // x4 | |
__int64 v20; // x5 | |
__int64 v21; // x6 | |
__int64 v22; // x7 | |
__int64 v23; // x1 | |
__int64 v24; // x2 | |
__int64 v25; // x3 | |
__int64 v26; // x4 | |
__int64 v27; // x5 | |
__int64 v28; // x6 | |
__int64 v29; // x7 | |
__int64 v30; // x1 | |
__int64 v31; // x2 | |
__int64 v32; // x3 | |
__int64 v33; // x4 | |
__int64 v34; // x5 | |
__int64 v35; // x6 | |
__int64 v36; // x7 | |
__int64 v37; // x1 | |
__int64 v38; // x2 | |
__int64 v39; // x3 | |
__int64 v40; // x4 | |
__int64 v41; // x5 | |
__int64 v42; // x6 | |
__int64 v43; // x7 | |
const char *v44; // x19 | |
__int64 v45; // x2 | |
__int64 v46; // x3 | |
__int64 v47; // x4 | |
__int64 v48; // x5 | |
__int64 v49; // x6 | |
__int64 v50; // x7 | |
__int64 v51; // x1 | |
__int64 v52; // x2 | |
__int64 v53; // x3 | |
__int64 v54; // x4 | |
__int64 v55; // x5 | |
__int64 v56; // x6 | |
__int64 v57; // x7 | |
unsigned int v58; // w0 | |
unsigned __int64 v59; // x1 | |
__int64 v60; // x2 | |
__int64 v62; // [xsp+10h] [xbp-20h] | |
char v63; // [xsp+18h] [xbp-18h] | |
sub_1800ECFB0("boot-command"); | |
v0 = sub_1800ECFB0("upgrade-retry"); | |
sub_1800F1304(v0, v1, v2, v3, v4, v5, v6, v7); | |
if ( (unsigned int)sub_1800B3D44() ) | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v8, v9, v10, v11, v12, v13, v14, -9045921792801257407LL); | |
v44 = "failed to mount upgrade partition"; | |
} | |
else | |
{ | |
v15 = sub_1800F36E0(); | |
sub_1800F36C4(v15); | |
sub_1800F1D70(); | |
sub_1800F23D0("/boot/applelogo", 1819240303); | |
sub_1800F2544(); | |
if ( (unsigned int)sub_1800F68E8(1LL) ) | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v16, v17, v18, v19, v20, v21, v22, -9045921792801257407LL); | |
v44 = "failed to finalize memmap"; | |
} | |
else if ( (unsigned int)sub_1800EC82C("/boot/devicetree") ) | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v23, v24, v25, v26, v27, v28, v29, -9045921792801257407LL); | |
v44 = "failed to load devicetree"; | |
} | |
else if ( (unsigned int)sub_1800F4FFC("/boot/ramdisk") ) | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v30, v31, v32, v33, v34, v35, v36, -9045921792801257407LL); | |
v44 = "failed to load ramdisk"; | |
} | |
else if ( (unsigned int)((__int64 (__fastcall *)(const char *, signed __int64, char *, __int64 *))loc_1800C3DEC)( | |
"/boot/kernelcache", | |
1919644270LL, | |
&v63, | |
&v62) ) | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v37, v38, v39, v40, v41, v42, v43, -9045921792801257407LL); | |
v44 = "failed to load kernelcache"; | |
} | |
else if ( (unsigned int)sub_1800B2360(*(__int64 *)&v63, v62) ) | |
{ | |
v44 = "failed to boot kernelcache"; | |
} | |
else | |
{ | |
v44 = "unknown"; | |
} | |
} | |
sub_1800ED6D8("2"); | |
sub_1800B3DE4((__int64)"failed to execute upgrade command from new iBEC", (__int64)v44, v45, v46, v47, v48, v49, v50); | |
sub_1800EF260((__int64)"%llx:%d\n", v51, v52, v53, v54, v55, v56, v57, -9045921792801257407LL); | |
sub_1800D3B2C(0); | |
return sub_1800B4014(v58, v59, v60); | |
} | |
// 1800F68E8: using guessed type __int64 __fastcall sub_1800F68E8(_QWORD); | |
//----- (00000001800B4014) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B4014(unsigned int a1, unsigned __int64 a2, __int64 a3) | |
{ | |
__int64 v3; // x19 | |
unsigned __int64 v4; // x20 | |
__int64 *v5; // x22 | |
__int64 v6; // x23 | |
__int64 *v7; // x25 | |
int v8; // w9 | |
_BYTE *v9; // x25 | |
int v10; // t1 | |
__int64 *v11; // x8 | |
__int64 *v12; // x8 | |
__int64 *v13; // x8 | |
__int64 *v14; // x24 | |
_BYTE *v15; // x24 | |
int v16; // t1 | |
__int64 v17; // x26 | |
__int64 *v18; // x27 | |
__int64 v19; // x0 | |
__int64 v20; // x0 | |
unsigned __int64 v21; // x13 | |
__int64 *v22; // x8 | |
__int64 *v23; // x10 | |
unsigned int *v24; // x10 | |
unsigned int v25; // t1 | |
__int64 *v26; // x11 | |
unsigned int *v27; // x11 | |
unsigned int v28; // t1 | |
__int64 *v29; // x9 | |
unsigned int *v30; // x9 | |
unsigned int v31; // t1 | |
__int64 *v32; // x12 | |
unsigned int *v33; // x12 | |
unsigned int v34; // t1 | |
__int64 *v35; // x14 | |
unsigned int *v36; // x14 | |
unsigned int v37; // t1 | |
unsigned __int64 v38; // x15 | |
__int64 *v39; // x13 | |
unsigned int *v40; // x13 | |
unsigned int v41; // t1 | |
_QWORD *v42; // x8 | |
__int64 v43; // x15 | |
__int64 v44; // t1 | |
unsigned int *v45; // x19 | |
int v46; // w20 | |
unsigned __int64 v47; // x0 | |
__int64 v48; // x0 | |
__int64 *v49; // x8 | |
__int64 v50; // x19 | |
__int64 *v51; // x8 | |
unsigned int *v52; // x8 | |
unsigned int v53; // t1 | |
__int64 v54; // x10 | |
signed __int64 v56; // x9 | |
v3 = a3; | |
v4 = a2; | |
v5 = &qword_180114070[26 * a1]; | |
if ( *v5 == -1 ) | |
{ | |
v56 = 45LL; | |
goto LABEL_31; | |
} | |
if ( !*v5 ) | |
{ | |
v56 = 44LL; | |
goto LABEL_31; | |
} | |
v6 = a1; | |
v7 = &qword_180114070[26 * a1]; | |
v10 = *((_DWORD *)v7 + 37); | |
v9 = (char *)v7 + 148; | |
v8 = v10; | |
if ( v10 == 64 ) | |
goto LABEL_8; | |
if ( v8 != 16 ) | |
{ | |
if ( v8 != 32 ) | |
{ | |
if ( v8 == 15 ) | |
{ | |
v11 = &qword_180114070[26 * a1]; | |
*(__int64 *)((char *)v11 + 156) = 68719476744LL; | |
*(__int64 *)((char *)v11 + 164) = 137438953496LL; | |
*(__int64 *)((char *)v11 + 172) = 206158430248LL; | |
*(__int64 *)((char *)v11 + 180) = 292057776184LL; | |
*(__int64 *)((char *)v11 + 188) = 211312390965260LL; | |
*(__int64 *)((char *)v11 + 196) = 211123412451384LL; | |
*((_DWORD *)v11 + 51) = 49188; | |
goto LABEL_10; | |
} | |
v56 = 125LL; | |
LABEL_31: | |
sub_1800D489C("%llx:%d", &byte_180101040, -7149399145195136589LL, v56); | |
} | |
LABEL_8: | |
v12 = &qword_180114070[26 * a1]; | |
v12[24] = 0LL; | |
v12[25] = 0LL; | |
v12[23] = 68LL; | |
goto LABEL_10; | |
} | |
v13 = &qword_180114070[26 * a1]; | |
*(__int64 *)((char *)v13 + 156) = 68719476744LL; | |
*(__int64 *)((char *)v13 + 164) = 137438953496LL; | |
*(__int64 *)((char *)v13 + 172) = 206158430248LL; | |
*(__int64 *)((char *)v13 + 180) = 292057776184LL; | |
*(__int64 *)((char *)v13 + 196) = 0LL; | |
*((_DWORD *)v13 + 51) = 0; | |
*(__int64 *)((char *)v13 + 188) = 0LL; | |
LABEL_10: | |
v14 = &qword_180114070[26 * a1]; | |
v16 = *((unsigned __int8 *)v14 + 153); | |
v15 = (char *)v14 + 153; | |
if ( !v16 ) | |
{ | |
v17 = 0LL; | |
v18 = &qword_180114070[26 * a1 + 3]; | |
while ( (unsigned int)v17 <= 1 ) | |
{ | |
v19 = *((unsigned int *)v18 + v17); | |
if ( (_DWORD)v19 == -1 ) | |
break; | |
sub_1800D39CC(v19, 1); | |
++v17; | |
} | |
v20 = sub_1800F6434(v4); | |
if ( v20 == 0xFFFFFFFFLL ) | |
v21 = v4; | |
else | |
v21 = v20; | |
if ( *v9 & 0x60 ) | |
{ | |
*(_QWORD *)(qword_180114070[26 * v6 + 2] + 327680) = v21; | |
} | |
else | |
{ | |
v22 = &qword_180114070[26 * v6]; | |
v23 = &qword_180114070[26 * v6]; | |
v25 = *((_DWORD *)v23 + 41); | |
v24 = (unsigned int *)((char *)v23 + 164); | |
*(_DWORD *)(v25 + *v5) = 0; | |
v26 = &qword_180114070[26 * v6]; | |
v28 = *((_DWORD *)v26 + 42); | |
v27 = (unsigned int *)(v26 + 21); | |
*(_DWORD *)(v28 + *v5) = 0; | |
v29 = &qword_180114070[26 * v6]; | |
v31 = *((_DWORD *)v29 + 43); | |
v30 = (unsigned int *)((char *)v29 + 172); | |
*(_DWORD *)(v31 + *v5) = v3; | |
v32 = &qword_180114070[26 * v6]; | |
v34 = *((_DWORD *)v32 + 44); | |
v33 = (unsigned int *)(v32 + 22); | |
*(_DWORD *)(v34 + *v5) = HIDWORD(v3); | |
v35 = &qword_180114070[26 * v6]; | |
v37 = *((_DWORD *)v35 + 39); | |
v36 = (unsigned int *)((char *)v35 + 156); | |
*(_DWORD *)(v37 + *v5) = v21; | |
v38 = v21 >> 32; | |
v39 = &qword_180114070[26 * v6]; | |
v41 = *((_DWORD *)v39 + 40); | |
v40 = (unsigned int *)(v39 + 20); | |
*(_DWORD *)(v41 + *v5) = v38; | |
*(_DWORD *)(*((unsigned int *)v22 + 45) + *v5) = 1; | |
v44 = v22[1]; | |
v42 = v22 + 1; | |
v43 = v44; | |
if ( v44 ) | |
{ | |
*(_DWORD *)(*v36 + v43) = *(_DWORD *)(*v36 + *v5); | |
*(_DWORD *)(*v40 + *v42) = *(_DWORD *)(*v40 + *v5); | |
*(_DWORD *)(*v24 + *v42) = *(_DWORD *)(*v24 + *v5); | |
*(_DWORD *)(*v27 + *v42) = *(_DWORD *)(*v27 + *v5); | |
*(_DWORD *)(*v30 + *v42) = *(_DWORD *)(*v30 + *v5); | |
*(_DWORD *)(*v33 + *v42) = *(_DWORD *)(*v33 + *v5); | |
} | |
} | |
if ( LOBYTE(qword_180114070[26 * v6 + 19]) ) | |
{ | |
v45 = (unsigned int *)&qword_180114070[26 * v6]; | |
v46 = *(_DWORD *)(v45[47] + *v5); | |
v47 = sub_1800F612C(); | |
*(_DWORD *)(v45[47] + *v5) = v46 & 0xFFFFFFFD; | |
v48 = sub_1800E1188(v47); | |
*(_DWORD *)(v45[48] + *v5) = v48; | |
*(_DWORD *)(v45[49] + *v5) = HIDWORD(v48); | |
*(_DWORD *)(v45[47] + *v5) = v46 | 2; | |
sub_1800F61B4(); | |
} | |
} | |
v49 = &qword_180114070[26 * v6]; | |
v50 = (__int64)(v49 + 4); | |
sub_1800D6D3C((__int64)(v49 + 4), *((_DWORD *)v49 + 36), *v5); | |
if ( !*v15 ) | |
{ | |
v51 = &qword_180114070[26 * v6]; | |
v53 = *((_DWORD *)v51 + 46); | |
v52 = (unsigned int *)(v51 + 23); | |
*(_DWORD *)(v53 + *v5) = 16; | |
v54 = *((_QWORD *)v52 - 22); | |
if ( v54 ) | |
*(_DWORD *)(*v52 + v54) = 16; | |
} | |
sub_1800D6E70(v50, 1); | |
return 0LL; | |
} | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
// 180114070: using guessed type __int64 qword_180114070[26]; | |
//----- (00000001800B43E0) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B43E0(unsigned int a1) | |
{ | |
return LODWORD(qword_180114070[26 * a1 + 18]); | |
} | |
// 180114070: using guessed type __int64 qword_180114070[26]; | |
//----- (00000001800B43F8) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800B43F8(unsigned int a1, __int64 *a2, unsigned int a3) | |
{ | |
__int64 v3; // x29 | |
__int64 v4; // x30 | |
__int64 *v5; // x8 | |
unsigned int v6; // w22 | |
__int64 *v7; // x21 | |
unsigned int *v8; // x20 | |
_BYTE *v9; // x19 | |
__int64 v10; // x23 | |
int v11; // w25 | |
signed __int64 result; // x0 | |
__int64 v13; // [xsp+18h] [xbp-68h] | |
__int64 v14; // [xsp+20h] [xbp-60h] | |
__int64 v15; // [xsp+28h] [xbp-58h] | |
__int64 v16; // [xsp+70h] [xbp-10h] | |
__int64 v17; // [xsp+78h] [xbp-8h] | |
v5 = &qword_180114070[26 * a1]; | |
v16 = v3; | |
v17 = v4; | |
v6 = a3; | |
v7 = a2; | |
v8 = (unsigned int *)(v5 + 4); | |
v15 = 5139240511851214385LL; | |
v9 = v5 + 7; | |
v10 = a3; | |
while ( 1 ) | |
{ | |
sub_1800F612C(); | |
v11 = *(_DWORD *)(v8[19] + *(_QWORD *)v8); | |
if ( !(v11 & 0x20000) ) | |
*v7 = *(_QWORD *)(*(_QWORD *)v8 + 16440LL); | |
sub_1800F61B4(); | |
if ( v11 & 0xC0000 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, 7040885290982498046LL, 78LL); | |
if ( !(v11 & 0x20000) ) | |
{ | |
v13 = *v7; | |
v14 = 0LL; | |
sub_1800D6E90((__int64)v8, &v13, 0); | |
sub_1800D5C54(v9); | |
result = 0LL; | |
goto LABEL_13; | |
} | |
if ( !v6 ) | |
break; | |
*(_DWORD *)(v8[21] + *(_QWORD *)v8) = 4096; | |
if ( v6 == -1 ) | |
{ | |
sub_1800D5D18(v9); | |
} | |
else if ( !sub_1800D5D78((__int64)v9, v10) ) | |
{ | |
result = 4294967294LL; | |
goto LABEL_13; | |
} | |
} | |
result = 0xFFFFFFFFLL; | |
LABEL_13: | |
if ( 5139240511851214385LL != v15 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 180114070: using guessed type __int64 qword_180114070[26]; | |
//----- (00000001800B4410) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800B4410(unsigned int a1, __int64 a2, unsigned int a3) | |
{ | |
__int64 *v3; // x8 | |
unsigned int v4; // w22 | |
__int64 v5; // x20 | |
__int64 v6; // x21 | |
_BYTE *v7; // x19 | |
__int64 v8; // x23 | |
__int64 v9; // x8 | |
int v10; // w25 | |
__int64 v11; // x9 | |
v3 = &qword_180114070[26 * a1]; | |
v4 = a3; | |
v5 = a2; | |
v6 = (__int64)(v3 + 4); | |
v7 = v3 + 7; | |
v8 = a3; | |
while ( 1 ) | |
{ | |
sub_1800F612C(); | |
v9 = *(_QWORD *)v6; | |
v10 = *(_DWORD *)(*(unsigned int *)(v6 + 76) + *(_QWORD *)v6); | |
if ( !(v10 & 0x20000) ) | |
{ | |
v11 = *(_QWORD *)(v9 + 34872); | |
*(_QWORD *)v5 = *(_QWORD *)(v9 + 34864); | |
*(_QWORD *)(v5 + 8) = v11; | |
*(_DWORD *)(v5 + 12) = 0; | |
} | |
sub_1800F61B4(); | |
if ( v10 & 0xC0000 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -5734810906555898703LL, 81LL); | |
if ( !(v10 & 0x20000) ) | |
{ | |
sub_1800D6E90(v6, (_QWORD *)v5, 0); | |
sub_1800D5C54(v7); | |
return 0LL; | |
} | |
if ( !v4 ) | |
break; | |
((void (__fastcall *)(_QWORD))loc_1800B562C)(*(unsigned int *)(v6 + 16)); | |
if ( v4 == -1 ) | |
{ | |
sub_1800D5D18(v7); | |
} | |
else if ( !sub_1800D5D78((__int64)v7, v8) ) | |
{ | |
return 4294967294LL; | |
} | |
} | |
return 0xFFFFFFFFLL; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 180114070: using guessed type __int64 qword_180114070[26]; | |
//----- (00000001800B4428) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800B4428(unsigned int a1, _QWORD *a2, unsigned int a3) | |
{ | |
__int64 v3; // x29 | |
__int64 v4; // x30 | |
__int64 *v5; // x8 | |
unsigned int v6; // w22 | |
_QWORD *v7; // x21 | |
unsigned int *v8; // x20 | |
_BYTE *v9; // x19 | |
__int64 v10; // x23 | |
int v11; // w25 | |
signed __int64 result; // x0 | |
__int64 v13; // [xsp+18h] [xbp-68h] | |
__int64 v14; // [xsp+20h] [xbp-60h] | |
__int64 v15; // [xsp+28h] [xbp-58h] | |
__int64 v16; // [xsp+70h] [xbp-10h] | |
__int64 v17; // [xsp+78h] [xbp-8h] | |
v5 = &qword_180114070[26 * a1]; | |
v16 = v3; | |
v17 = v4; | |
v6 = a3; | |
v7 = a2; | |
v8 = (unsigned int *)(v5 + 4); | |
v15 = 5139240511851214385LL; | |
v9 = v5 + 10; | |
v10 = a3; | |
while ( 1 ) | |
{ | |
sub_1800F612C(); | |
v11 = *(_DWORD *)(v8[18] + *(_QWORD *)v8); | |
if ( !(v11 & 0x10000) ) | |
*(_QWORD *)(*(_QWORD *)v8 + 16400LL) = *v7; | |
sub_1800F61B4(); | |
if ( v11 & 0xC0000 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, 7040885290982498046LL, 147LL); | |
if ( !(v11 & 0x10000) ) | |
{ | |
v13 = *v7; | |
v14 = 0LL; | |
sub_1800D6E90((__int64)v8, &v13, 1); | |
sub_1800D5C54(v9); | |
result = 0LL; | |
goto LABEL_13; | |
} | |
if ( !v6 ) | |
break; | |
*(_DWORD *)(v8[21] + *(_QWORD *)v8) = 1; | |
if ( v6 == -1 ) | |
{ | |
sub_1800D5D18(v9); | |
} | |
else if ( !sub_1800D5D78((__int64)v9, v10) ) | |
{ | |
result = 4294967294LL; | |
goto LABEL_13; | |
} | |
} | |
result = 0xFFFFFFFFLL; | |
LABEL_13: | |
if ( 5139240511851214385LL != v15 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 180114070: using guessed type __int64 qword_180114070[26]; | |
//----- (00000001800B4440) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800B4440(unsigned int a1, __int64 a2, unsigned int a3) | |
{ | |
__int64 *v3; // x8 | |
unsigned int v4; // w22 | |
__int64 v5; // x20 | |
__int64 v6; // x21 | |
_BYTE *v7; // x19 | |
__int64 v8; // x23 | |
int v9; // w25 | |
_QWORD *v10; // x8 | |
__int64 v11; // x10 | |
v3 = &qword_180114070[26 * a1]; | |
v4 = a3; | |
v5 = a2; | |
v6 = (__int64)(v3 + 4); | |
v7 = v3 + 10; | |
v8 = a3; | |
while ( 1 ) | |
{ | |
sub_1800F612C(); | |
v9 = *(_DWORD *)(*(unsigned int *)(v6 + 72) + *(_QWORD *)v6); | |
if ( !(v9 & 0x10000) ) | |
{ | |
v10 = (_QWORD *)(*(_QWORD *)v6 + 34816LL); | |
v11 = *(unsigned int *)(v5 + 8); | |
*v10 = *(_QWORD *)v5; | |
v10[1] = v11; | |
} | |
sub_1800F61B4(); | |
if ( v9 & 0xC0000 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -5734810906555898703LL, 147LL); | |
if ( !(v9 & 0x10000) ) | |
{ | |
sub_1800D6E90(v6, (_QWORD *)v5, 1); | |
sub_1800D5C54(v7); | |
return 0LL; | |
} | |
if ( !v4 ) | |
break; | |
((void (__fastcall *)(_QWORD))loc_1800B562C)(*(unsigned int *)(v6 + 12)); | |
if ( v4 == -1 ) | |
{ | |
sub_1800D5D18(v7); | |
} | |
else if ( !sub_1800D5D78((__int64)v7, v8) ) | |
{ | |
return 4294967294LL; | |
} | |
} | |
return 0xFFFFFFFFLL; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 180114070: using guessed type __int64 qword_180114070[26]; | |
//----- (00000001800B4458) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B4458(unsigned int a1) | |
{ | |
unsigned int v1; // w19 | |
__int64 *v2; // x21 | |
__int64 v3; // x23 | |
__int64 *v4; // x20 | |
__int64 *v5; // x8 | |
unsigned int *v6; // x8 | |
unsigned int v7; // t1 | |
__int64 v8; // x9 | |
__int64 v9; // x19 | |
unsigned int *v10; // x8 | |
signed __int64 v11; // x20 | |
__int64 v12; // x0 | |
signed __int64 v14; // x9 | |
v1 = a1; | |
v2 = &qword_180114070[26 * a1]; | |
if ( *v2 == -1 ) | |
{ | |
v14 = 317LL; | |
goto LABEL_13; | |
} | |
if ( !*v2 ) | |
{ | |
v14 = 316LL; | |
LABEL_13: | |
sub_1800D489C("%llx:%d", &byte_180101040, -7149399145195136589LL, v14); | |
} | |
v3 = a1; | |
sub_1800F612C(); | |
v4 = &qword_180114070[26 * v1 + 4]; | |
sub_1800D6E70((__int64)v4, 0); | |
sub_1800D6E3C((__int64)v4); | |
if ( v1 != 2 ) | |
{ | |
v5 = &qword_180114070[26 * v1]; | |
v7 = *((_DWORD *)v5 + 46); | |
v6 = (unsigned int *)(v5 + 23); | |
*(_DWORD *)(v7 + *v2) &= 0xFFFFFFEF; | |
v8 = *((_QWORD *)v6 - 22); | |
if ( v8 ) | |
*(_DWORD *)(*v6 + v8) &= 0xFFFFFFEF; | |
v9 = 0LL; | |
v10 = (unsigned int *)&qword_180114070[26 * v3]; | |
*(_DWORD *)(v10[41] + *v2) = 0; | |
*(_DWORD *)(v10[42] + *v2) = 0; | |
*(_DWORD *)(v10[43] + *v2) = 0; | |
*(_DWORD *)(v10[44] + *v2) = 0; | |
*(_DWORD *)(v10[39] + *v2) = 0; | |
*(_DWORD *)(v10[40] + *v2) = 0; | |
v11 = (signed __int64)(v10 + 6); | |
while ( (unsigned int)v9 <= 1 ) | |
{ | |
v12 = *(unsigned int *)(v11 + 4 * v9); | |
if ( (_DWORD)v12 == -1 ) | |
break; | |
sub_1800D39CC(v12, 0); | |
++v9; | |
} | |
} | |
sub_1800F61B4(); | |
return 0LL; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 180114070: using guessed type __int64 qword_180114070[26]; | |
//----- (00000001800B45C8) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B45C8(int a1) | |
{ | |
__int64 result; // x0 | |
if ( a1 ) | |
{ | |
sub_1800D39CC(76LL, 1); | |
result = sub_1800D39CC(77LL, 1); | |
} | |
else | |
{ | |
sub_1800D39CC(77LL, 0); | |
result = sub_1800D39CC(76LL, 0); | |
} | |
return result; | |
} | |
//----- (00000001800B494C) ---------------------------------------------------- | |
signed __int64 sub_1800B494C() | |
{ | |
signed __int64 result; // x0 | |
MEMORY[0x206201028] |= 2u; | |
sub_1800B5688(0x9Au, (__int64)&loc_1800B498C, 0LL); | |
result = 154LL; | |
BYTE1(qword_1801158C8[1635]) = 0; | |
if ( !BYTE1(qword_1801158C8[1635]) ) | |
LODWORD(qword_1801158C8[297786649]) = 0x4000000; | |
return result; | |
} | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800B5688) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B5688(unsigned int a1, __int64 a2, __int64 a3) | |
{ | |
__int64 v3; // x20 | |
__int64 v4; // x21 | |
unsigned int v5; // w19 | |
_QWORD *v6; // x8 | |
v3 = a3; | |
v4 = a2; | |
v5 = a1; | |
sub_1800F612C(); | |
v6 = (_QWORD *)(24LL * v5 + 6443597152LL); | |
*v6 = v4; | |
v6[1] = v3; | |
if ( v5 <= 0x13F ) | |
*(_DWORD *)(4 * v5 + 0x20E103000LL) = 1; | |
sub_1800F61B4(); | |
return 0LL; | |
} | |
//----- (00000001800B56F4) ---------------------------------------------------- | |
__int64 sub_1800B56F4() | |
{ | |
int v0; // w8 | |
__int64 v1; // x19 | |
void (__fastcall *v2)(_QWORD); // x8 | |
__int64 result; // x0 | |
signed __int64 v4; // x8 | |
v0 = MEMORY[0x20E102004]; | |
if ( MEMORY[0x20E102004] ) | |
{ | |
while ( v0 ) | |
{ | |
if ( (v0 & 0x70000) != 0x10000 ) | |
{ | |
if ( (v0 & 0x70000) == 0x40000 ) | |
v4 = 206LL; | |
else | |
v4 = 208LL; | |
sub_1800D489C("%llx:%d", &byte_180101040, -3127783896048661350LL, v4); | |
} | |
v1 = v0 & 0x1FF; | |
v2 = *(void (__fastcall **)(_QWORD))(24 * v1 + 0x180117D60LL); | |
if ( v2 ) | |
v2(*(_QWORD *)(24 * v1 + 0x180117D68LL)); | |
result = ((__int64 (__fastcall *)(__int64))loc_1800B5644)(v1); | |
v0 = MEMORY[0x20E102004]; | |
} | |
} | |
else | |
{ | |
++LODWORD(qword_1801158C8[2140]); | |
} | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800B57D0) ---------------------------------------------------- | |
void sub_1800B57D0() | |
{ | |
MEMORY[0x2102B0014] = 1; | |
MEMORY[0x2102B001C] = 4; | |
MEMORY[0x2102B0010] = 0; | |
} | |
//----- (00000001800B5800) ---------------------------------------------------- | |
void sub_1800B5800() | |
{ | |
MEMORY[0x2102B0014] = -1414967296; | |
MEMORY[0x2102B0010] = 2147483648; | |
MEMORY[0x2102B001C] = 4; | |
} | |
//----- (00000001800B5830) ---------------------------------------------------- | |
_DWORD *__fastcall sub_1800B5830(_DWORD *result, unsigned int a2, int a3) | |
{ | |
__int64 v3; // x29 | |
__int64 v4; // x30 | |
_DWORD *v5; // x8 | |
v5 = (_DWORD *)(a2 | 0x610000000LL); | |
if ( a3 == 4 ) | |
{ | |
*result = *v5; | |
} | |
else if ( a3 == 2 ) | |
{ | |
*(_WORD *)result = *(_WORD *)v5; | |
} | |
else | |
{ | |
if ( a3 != 1 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -9074553343644156873LL, 58LL, v3, v4); | |
*(_BYTE *)result = *(_BYTE *)v5; | |
} | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800B58B4) ---------------------------------------------------- | |
_DWORD *__fastcall sub_1800B58B4(_DWORD *result, unsigned int a2, int a3) | |
{ | |
__int64 v3; // x29 | |
__int64 v4; // x30 | |
_DWORD *v5; // x8 | |
v5 = (_DWORD *)(a2 | 0x610000000LL); | |
if ( a3 == 4 ) | |
{ | |
*v5 = *result; | |
} | |
else if ( a3 == 2 ) | |
{ | |
*(_WORD *)v5 = *(_WORD *)result; | |
} | |
else | |
{ | |
if ( a3 != 1 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -9074553343644156873LL, 102LL, v3, v4); | |
*(_BYTE *)v5 = *(_BYTE *)result; | |
} | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800B5938) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B5938(unsigned int a1) | |
{ | |
unsigned int v1; // w20 | |
__int64 v2; // x0 | |
__int64 v3; // x19 | |
__int64 result; // x0 | |
signed __int64 v5; // x8 | |
v1 = a1; | |
v2 = sub_1800E3ABC(MEMORY[0x180119BB0], (unsigned __int8)a1, 0x64uLL); | |
v3 = v2; | |
if ( !v2 ) | |
{ | |
v5 = 132LL; | |
goto LABEL_6; | |
} | |
if ( (unsigned int)sub_1800E430C(v2) != 1 ) | |
{ | |
v5 = 137LL; | |
LABEL_6: | |
sub_1800D489C("%llx:%d", &byte_180101040, -9074553343644156873LL, v5); | |
} | |
sub_1800E4098(v3); | |
sub_1800E4354(v3, 1); | |
sub_1800E4314(v3, 1); | |
result = sub_1800E4198(v3, 1); | |
*(_QWORD *)(8LL * v1 + 0x180119BB8LL) = v3; | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800B5A04) ---------------------------------------------------- | |
void sub_1800B5A04() | |
{ | |
__int64 i; // x19 | |
for ( i = 0LL; (_DWORD)i != 4; i = (unsigned int)(i + 1) ) | |
sub_1800C800C(i); | |
} | |
//----- (00000001800B5A38) ---------------------------------------------------- | |
__int64 sub_1800B5A38() | |
{ | |
int v0; // w0 | |
__int64 result; // x0 | |
qword_1801158C8[42] = (__int64)qword_1801147F0; | |
v0 = sub_1800C8468(33285996544LL); | |
result = sub_1800E3A24((__int64)"host bridge", 0, v0, 0x2000000, 0LL, (__int64)sub_1800B5A98, (__int64)sub_1800B5B20); | |
qword_1801158C8[2141] = result; | |
return result; | |
} | |
// 1801147F0: using guessed type __int64 qword_1801147F0[5]; | |
// 180114CE8: using guessed type __int64[105]; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800B5A98) ---------------------------------------------------- | |
_DWORD *__fastcall sub_1800B5A98(_BYTE *a1, _DWORD *a2, unsigned int a3, int a4) | |
{ | |
int v4; // w19 | |
unsigned int v5; // w21 | |
_DWORD *v6; // x20 | |
signed __int64 v7; // x8 | |
v4 = a4; | |
v5 = a3; | |
v6 = a2; | |
if ( a1 ) | |
{ | |
if ( !*a1 ) | |
{ | |
v7 = 74LL; | |
goto LABEL_7; | |
} | |
} | |
else if ( !(unsigned int)sub_1800C81B0() ) | |
{ | |
v7 = 69LL; | |
LABEL_7: | |
sub_1800D489C("%llx:%d", &byte_180101040, -9074553343644156873LL, v7); | |
} | |
return sub_1800B5830(v6, v5, v4); | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800B5B20) ---------------------------------------------------- | |
_DWORD *__fastcall sub_1800B5B20(_BYTE *a1, _DWORD *a2, unsigned int a3, int a4) | |
{ | |
int v4; // w19 | |
unsigned int v5; // w21 | |
_DWORD *v6; // x20 | |
signed __int64 v7; // x8 | |
v4 = a4; | |
v5 = a3; | |
v6 = a2; | |
if ( a1 ) | |
{ | |
if ( !*a1 ) | |
{ | |
v7 = 114LL; | |
goto LABEL_7; | |
} | |
} | |
else if ( !(unsigned int)sub_1800C81B0() ) | |
{ | |
v7 = 111LL; | |
LABEL_7: | |
sub_1800D489C("%llx:%d", &byte_180101040, -9074553343644156873LL, v7); | |
} | |
return sub_1800B58B4(v6, v5, v4); | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800B5BA8) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B5BA8(unsigned int a1) | |
{ | |
return *(_QWORD *)(8LL * a1 + 0x180119BB8LL); | |
} | |
//----- (00000001800B5BFC) ---------------------------------------------------- | |
__int64 sub_1800B5BFC() | |
{ | |
__int64 result; // x0 | |
if ( !(qword_1801158C8[2146] & 1) ) | |
{ | |
sub_1800D39CC(67LL, 1); | |
sub_1800D39CC(68LL, 1); | |
sub_1800D39CC(72LL, 1); | |
MEMORY[0x20C90001C] = 264; | |
MEMORY[0x20C000038] = 926383043; | |
MEMORY[0x20C00003C] = 134148; | |
MEMORY[0x20C000030] |= 1u; | |
MEMORY[0x20C000030] &= 0xFFFFFFF3; | |
sub_1800D5F60(10LL); | |
MEMORY[0x20C000030] &= 0xFFFFFFFE; | |
result = sub_1800D5F60(1000LL); | |
LOBYTE(qword_1801158C8[2146]) = 1; | |
} | |
return result; | |
} | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800B5CC0) ---------------------------------------------------- | |
void sub_1800B5CC0() | |
{ | |
if ( LOBYTE(qword_1801158C8[2146]) == 1 ) | |
MEMORY[0x20C000034] |= 2u; | |
} | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800B5CEC) ---------------------------------------------------- | |
__int64 sub_1800B5CEC() | |
{ | |
__int64 result; // x0 | |
if ( LOBYTE(qword_1801158C8[2146]) == 1 ) | |
{ | |
MEMORY[0x20C000030] |= 1u; | |
MEMORY[0x20C000034] &= 0xFFFFFFFD; | |
sub_1800D5F60(10LL); | |
MEMORY[0x20C000030] &= 0xFFFFFFFE; | |
sub_1800D5F60(1000LL); | |
MEMORY[0x20C000030] |= 0xCu; | |
sub_1800D39CC(72LL, 0); | |
sub_1800D39CC(68LL, 0); | |
result = sub_1800D39CC(67LL, 0); | |
LOBYTE(qword_1801158C8[2146]) = 0; | |
} | |
return result; | |
} | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800B5D88) ---------------------------------------------------- | |
__int64 sub_1800B5D88() | |
{ | |
__int64 v0; // x19 | |
if ( LOBYTE(qword_1801158C8[2146]) == 1 ) | |
return (unsigned __int8)(MEMORY[0x20C000034] >> 8); | |
sub_1800D39CC(67LL, 1); | |
sub_1800D39CC(68LL, 1); | |
sub_1800D39CC(72LL, 1); | |
v0 = (unsigned __int8)(MEMORY[0x20C000034] >> 8); | |
if ( !(qword_1801158C8[2146] & 1) ) | |
{ | |
sub_1800D39CC(72LL, 0); | |
sub_1800D39CC(68LL, 0); | |
sub_1800D39CC(67LL, 0); | |
} | |
return v0; | |
} | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800B5E28) ---------------------------------------------------- | |
__int64 sub_1800B5E28() | |
{ | |
sub_1800D39CC(67LL, 1); | |
MEMORY[0x20C90001C] = 264; | |
MEMORY[0x20C90005C] = 264; | |
return sub_1800D39CC(67LL, 0); | |
} | |
//----- (00000001800B5E64) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B5E64(__int64 result) | |
{ | |
__int64 v1; // x19 | |
unsigned __int64 v2; // x20 | |
unsigned __int64 *v3; // x22 | |
v1 = 0LL; | |
v2 = result & 0xFFFFFFFFFFFFF800LL | 1; | |
while ( (unsigned int)v1 < 2 ) | |
{ | |
v3 = (unsigned __int64 *)qword_180104640[v1]; | |
*v3 = v2; | |
result = sub_1800D9F80(result); | |
++v1; | |
if ( (*v3 & 0xFFFFFFFFFLL) != v2 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -1266967503850429226LL, 96LL); | |
} | |
return result; | |
} | |
// 1800D9F80: using guessed type __int64 __fastcall sub_1800D9F80(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
// 180104640: using guessed type __int64 qword_180104640[2]; | |
//----- (00000001800B5EF4) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B5EF4(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
__int64 v8; // x1 | |
__int64 v9; // x2 | |
__int64 v10; // x3 | |
__int64 v11; // x4 | |
__int64 v12; // x5 | |
__int64 v13; // x6 | |
__int64 v14; // x7 | |
__int64 v15; // x1 | |
__int64 v16; // x2 | |
__int64 v17; // x3 | |
__int64 v18; // x4 | |
__int64 v19; // x5 | |
__int64 v20; // x6 | |
__int64 v21; // x7 | |
__int64 v22; // x1 | |
__int64 v23; // x2 | |
__int64 v24; // x3 | |
__int64 v25; // x4 | |
__int64 v26; // x5 | |
__int64 v27; // x6 | |
__int64 v28; // x7 | |
sub_1800EF260((__int64)"%llx:%d\n", a2, a3, a4, a5, a6, a7, a8, -1266967503850429226LL); | |
sub_1800EF260((__int64)"%llx:%d\n", v8, v9, v10, v11, v12, v13, v14, -1266967503850429226LL); | |
sub_1800EF260((__int64)"%llx:%d\n", v15, v16, v17, v18, v19, v20, v21, -1266967503850429226LL); | |
return sub_1800EF260((__int64)"%llx:%d\n", v22, v23, v24, v25, v26, v27, v28, -1266967503850429226LL); | |
} | |
//----- (00000001800B5F70) ---------------------------------------------------- | |
void sub_1800B5F70() | |
{ | |
MEMORY[0x202F40008] = MEMORY[0x202F40008] & (unsigned __int128)0xFFFFFFFF00000000LL; | |
MEMORY[0x202F40018] = 0LL; | |
MEMORY[0x202F40008] |= 0x20000000000uLL; | |
} | |
//----- (00000001800B5FA0) ---------------------------------------------------- | |
void sub_1800B5FA0() | |
{ | |
MEMORY[0x202F40008] &= 0xFFFFFDFFFFFFFFFFLL; | |
} | |
//----- (00000001800B5FC0) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B5FC0(unsigned int a1) | |
{ | |
__int64 v1; // x29 | |
__int64 v2; // x30 | |
if ( a1 >= 7 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, 5949927746061544008LL, 53LL, v1, v2); | |
return *((unsigned int *)qword_180104650 + (signed int)a1); | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 180104650: using guessed type __int64 qword_180104650[4]; | |
//----- (00000001800B6010) ---------------------------------------------------- | |
signed __int64 sub_1800B6010() | |
{ | |
__int64 v0; // x29 | |
__int64 v1; // x30 | |
if ( !(qword_1801158C8[2147] & 1) ) | |
sub_1800D489C("%llx:%d", &byte_180101040, 5949927746061544008LL, 64LL, v0, v1); | |
return 6443604964LL; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800B6064) ---------------------------------------------------- | |
__int64 sub_1800B6064() | |
{ | |
if ( !(qword_1801158C8[2147] & 1) ) | |
sub_1800D489C("%llx:%d", &byte_180101040, 5949927746061544008LL, 74LL); | |
return (unsigned int)sub_1800B5FC0(MEMORY[0x180119BF8]) << 8; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800B60C8) ---------------------------------------------------- | |
__int64 sub_1800B60C8() | |
{ | |
signed __int64 v1; // x8 | |
unsigned __int8 v2; // [xsp+17h] [xbp-19h] | |
__int64 v3; // [xsp+18h] [xbp-18h] | |
v3 = 5139240511851214385LL; | |
v2 = 0; | |
sub_1800B75EC(0, 1LL, 1, 5, (_BYTE *)0x180119BE4LL); | |
sub_1800B75EC(0, 1LL, 1, 6, (_BYTE *)0x180119BE8LL); | |
sub_1800B75EC(0, 1LL, 1, 7, (_BYTE *)0x180119BECLL); | |
sub_1800B75EC(0, 1LL, 1, 8, &v2); | |
if ( !MEMORY[0x180119BE4] || !v2 ) | |
{ | |
v1 = 94LL; | |
goto LABEL_8; | |
} | |
MEMORY[0x180119BF0] = v2 & 3; | |
MEMORY[0x180119BF4] = 0x20u >> (v2 >> 6) >> 3; | |
MEMORY[0x180119BF8] = ((unsigned int)v2 >> 2) & 0xF; | |
MEMORY[0x180119BE0] = 1; | |
sub_1800B5FC0(MEMORY[0x180119BF8]); | |
if ( (unsigned int)sub_1800B6064() - 128 >= 0x3F81 ) | |
{ | |
v1 = 113LL; | |
LABEL_8: | |
sub_1800D489C("%llx:%d", &byte_180101040, 5949927746061544008LL, v1); | |
} | |
if ( 5139240511851214385LL != v3 ) | |
sub_1800D4A5C(); | |
return 0LL; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800B6208) ---------------------------------------------------- | |
// write access to const memory has been detected, the output may be wrong! | |
signed __int64 __fastcall sub_1800B6208(int a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
int v8; // w19 | |
int v9; // w0 | |
v8 = a1; | |
if ( MEMORY[0x180115A3C] & 0x80 ) | |
sub_1800EF260((__int64)"%llx:%d\n", a2, a3, a4, a5, a6, a7, a8, 5949927746061544008LL); | |
if ( v8 ) | |
{ | |
if ( v8 == 3 ) | |
{ | |
v9 = 4; | |
} | |
else | |
{ | |
if ( v8 != 1 ) | |
{ | |
dword_180114568 = 10; | |
MEMORY[0x180115A3C] |= 0x20u; | |
sub_1800CC1BC(15LL); | |
sub_1800D489C("%llx:%d", &byte_180101040, 5949927746061544008LL, 130LL); | |
} | |
v9 = 6; | |
} | |
} | |
else | |
{ | |
v9 = 3; | |
} | |
return sub_1800D368C(v9); | |
} | |
// 1800B62C0: write access to const memory at 180114568 has been detected | |
// 180101040: using guessed type char byte_180101040; | |
// 180114568: using guessed type int dword_180114568; | |
//----- (00000001800B62F8) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B62F8(__int64 a1) | |
{ | |
int v1; // w20 | |
__int64 v2; // x0 | |
int v3; // w19 | |
int v4; // w0 | |
__int64 v5; // x0 | |
__int64 v6; // x1 | |
__int64 v7; // x2 | |
__int64 v8; // x3 | |
__int64 v9; // x4 | |
__int64 v10; // x5 | |
__int64 v11; // x6 | |
__int64 v12; // x7 | |
_DWORD *v13; // x19 | |
__int64 v14; // x1 | |
__int64 v15; // x2 | |
__int64 v16; // x3 | |
__int64 v17; // x4 | |
__int64 v18; // x5 | |
__int64 v19; // x6 | |
__int64 v20; // x7 | |
__int64 v21; // x0 | |
__int64 v22; // x1 | |
__int64 v23; // x2 | |
__int64 v24; // x3 | |
__int64 v25; // x4 | |
__int64 v26; // x5 | |
__int64 v27; // x6 | |
__int64 v28; // x7 | |
__int64 v29; // x0 | |
__int64 v30; // x1 | |
__int64 v31; // x2 | |
__int64 v32; // x3 | |
__int64 v33; // x4 | |
__int64 v34; // x5 | |
__int64 v35; // x6 | |
__int64 v36; // x7 | |
__int64 v37; // x1 | |
__int64 v38; // x2 | |
__int64 v39; // x3 | |
__int64 v40; // x4 | |
__int64 v41; // x5 | |
__int64 v42; // x6 | |
__int64 v43; // x7 | |
__int64 v44; // x2 | |
__int64 v45; // x3 | |
__int64 v46; // x4 | |
__int64 v47; // x5 | |
__int64 v48; // x6 | |
__int64 v49; // x7 | |
__int64 v50; // x0 | |
__int64 v51; // x1 | |
__int64 v52; // x2 | |
__int64 v53; // x3 | |
__int64 v54; // x4 | |
__int64 v55; // x5 | |
__int64 v56; // x6 | |
__int64 v57; // x7 | |
__int64 v58; // x1 | |
__int64 v59; // x2 | |
__int64 v60; // x3 | |
__int64 v61; // x4 | |
__int64 v62; // x5 | |
__int64 v63; // x6 | |
__int64 v64; // x7 | |
__int64 v65; // x0 | |
__int64 v66; // x1 | |
__int64 v67; // x2 | |
__int64 v68; // x3 | |
__int64 v69; // x4 | |
__int64 v70; // x5 | |
__int64 v71; // x6 | |
__int64 v72; // x7 | |
__int64 v73; // x0 | |
__int64 v74; // x1 | |
__int64 v75; // x2 | |
__int64 v76; // x3 | |
__int64 v77; // x4 | |
__int64 v78; // x5 | |
__int64 v79; // x6 | |
__int64 v80; // x7 | |
signed __int64 v81; // x0 | |
signed __int64 v82; // x20 | |
__int64 v83; // x0 | |
unsigned int v84; // w0 | |
__int64 v85; // x0 | |
__int64 v86; // x1 | |
__int64 v87; // x2 | |
__int64 v88; // x3 | |
__int64 v89; // x4 | |
__int64 v90; // x5 | |
__int64 v91; // x6 | |
__int64 v92; // x7 | |
_DWORD *v93; // x21 | |
int v94; // w8 | |
__int64 v95; // x1 | |
__int64 v96; // x2 | |
__int64 v97; // x3 | |
__int64 v98; // x4 | |
__int64 v99; // x5 | |
__int64 v100; // x6 | |
__int64 v101; // x7 | |
char v102; // w9 | |
__int64 v103; // x0 | |
__int64 v104; // x1 | |
__int64 v105; // x2 | |
__int64 v106; // x3 | |
__int64 v107; // x4 | |
__int64 v108; // x5 | |
__int64 v109; // x6 | |
__int64 v110; // x7 | |
__int64 v111; // x1 | |
__int64 v112; // x2 | |
__int64 v113; // x3 | |
__int64 v114; // x4 | |
__int64 v115; // x5 | |
__int64 v116; // x6 | |
__int64 v117; // x7 | |
__int64 v118; // x1 | |
__int64 v119; // x2 | |
__int64 v120; // x3 | |
__int64 v121; // x4 | |
__int64 v122; // x5 | |
__int64 v123; // x6 | |
__int64 v124; // x7 | |
__int64 v125; // x0 | |
__int64 v126; // x1 | |
__int64 v127; // x2 | |
__int64 v128; // x3 | |
__int64 v129; // x4 | |
__int64 v130; // x5 | |
__int64 v131; // x6 | |
__int64 v132; // x7 | |
__int64 v133; // x0 | |
__int64 v134; // x1 | |
__int64 v135; // x2 | |
__int64 v136; // x3 | |
__int64 v137; // x4 | |
__int64 v138; // x5 | |
__int64 v139; // x6 | |
__int64 v140; // x7 | |
char v141; // w9 | |
__int64 v142; // x0 | |
__int64 v143; // x1 | |
__int64 v144; // x2 | |
__int64 v145; // x3 | |
__int64 v146; // x4 | |
__int64 v147; // x5 | |
__int64 v148; // x6 | |
__int64 v149; // x7 | |
__int64 v150; // x0 | |
__int64 v151; // x1 | |
__int64 v152; // x2 | |
__int64 v153; // x3 | |
__int64 v154; // x4 | |
__int64 v155; // x5 | |
__int64 v156; // x6 | |
__int64 v157; // x7 | |
double v158; // d0 | |
double v159; // d1 | |
char v160; // w9 | |
__int64 v161; // x1 | |
__int64 v162; // x2 | |
__int64 v163; // x3 | |
__int64 v164; // x4 | |
__int64 v165; // x5 | |
__int64 v166; // x6 | |
__int64 v167; // x7 | |
__int64 v168; // x0 | |
__int64 v169; // x1 | |
__int64 v170; // x2 | |
__int64 v171; // x3 | |
__int64 v172; // x4 | |
__int64 v173; // x5 | |
__int64 v174; // x6 | |
__int64 v175; // x7 | |
__int64 v176; // x1 | |
__int64 v177; // x2 | |
__int64 v178; // x3 | |
__int64 v179; // x4 | |
__int64 v180; // x5 | |
__int64 v181; // x6 | |
__int64 v182; // x7 | |
int v183; // w8 | |
signed __int64 v184; // x8 | |
__int64 v185; // x1 | |
__int64 v186; // x2 | |
__int64 v187; // x3 | |
__int64 v188; // x4 | |
__int64 v189; // x5 | |
__int64 v190; // x6 | |
__int64 v191; // x7 | |
__int64 v192; // x1 | |
__int64 v193; // x2 | |
__int64 v194; // x3 | |
__int64 v195; // x4 | |
__int64 v196; // x5 | |
__int64 v197; // x6 | |
__int64 v198; // x7 | |
__int64 v199; // x0 | |
__int64 v200; // x1 | |
__int64 v201; // x2 | |
__int64 v202; // x3 | |
__int64 v203; // x4 | |
__int64 v204; // x5 | |
__int64 v205; // x6 | |
__int64 v206; // x7 | |
__int64 v207; // x0 | |
__int64 v208; // x1 | |
__int64 v209; // x2 | |
__int64 v210; // x3 | |
__int64 v211; // x4 | |
__int64 v212; // x5 | |
__int64 v213; // x6 | |
__int64 v214; // x7 | |
char v215; // w9 | |
__int64 v216; // x0 | |
__int64 v217; // x1 | |
__int64 v218; // x2 | |
__int64 v219; // x3 | |
__int64 v220; // x4 | |
__int64 v221; // x5 | |
__int64 v222; // x6 | |
__int64 v223; // x7 | |
__int64 v224; // x0 | |
__int64 v225; // x1 | |
__int64 v226; // x2 | |
__int64 v227; // x3 | |
__int64 v228; // x4 | |
__int64 v229; // x5 | |
__int64 v230; // x6 | |
__int64 v231; // x7 | |
double v232; // d0 | |
double v233; // d1 | |
char v234; // w9 | |
__int64 v235; // x1 | |
__int64 v236; // x2 | |
__int64 v237; // x3 | |
__int64 v238; // x4 | |
__int64 v239; // x5 | |
__int64 v240; // x6 | |
__int64 v241; // x7 | |
__int64 v242; // x0 | |
__int64 v243; // x1 | |
__int64 v244; // x2 | |
__int64 v245; // x3 | |
__int64 v246; // x4 | |
__int64 v247; // x5 | |
__int64 v248; // x6 | |
__int64 v249; // x7 | |
__int64 v250; // x0 | |
__int64 v251; // x1 | |
__int64 v252; // x2 | |
__int64 v253; // x3 | |
__int64 v254; // x4 | |
__int64 v255; // x5 | |
__int64 v256; // x6 | |
__int64 v257; // x7 | |
__int64 v258; // x1 | |
__int64 v259; // x2 | |
__int64 v260; // x3 | |
__int64 v261; // x4 | |
__int64 v262; // x5 | |
__int64 v263; // x6 | |
__int64 v264; // x7 | |
__int64 v265; // x1 | |
__int64 v266; // x2 | |
__int64 v267; // x3 | |
__int64 v268; // x4 | |
__int64 v269; // x5 | |
__int64 v270; // x6 | |
__int64 v271; // x7 | |
__int64 v272; // x1 | |
__int64 v273; // x2 | |
__int64 v274; // x3 | |
__int64 v275; // x4 | |
__int64 v276; // x5 | |
__int64 v277; // x6 | |
__int64 v278; // x7 | |
__int64 v279; // x1 | |
__int64 v280; // x2 | |
__int64 v281; // x3 | |
__int64 v282; // x4 | |
__int64 v283; // x5 | |
__int64 v284; // x6 | |
__int64 v285; // x7 | |
__int64 v286; // x19 | |
unsigned __int16 v287; // w0 | |
__int64 v288; // x1 | |
__int64 v289; // x2 | |
__int64 v290; // x3 | |
__int64 v291; // x4 | |
__int64 v292; // x5 | |
__int64 v293; // x6 | |
__int64 v294; // x7 | |
v1 = a1; | |
v2 = sub_1800F6888(a1); | |
v3 = v2; | |
v4 = sub_1800F688C(v2); | |
if ( !(sub_1800B6F14(v1, v3, v4, 4u, 1u) & 1) ) | |
sub_1800D489C("%llx:%d", &byte_180101040, 5949927746061544008LL, 208LL); | |
v5 = (__int64)sub_1800B70B4(); | |
v13 = (_DWORD *)v5; | |
if ( MEMORY[0x180115A3C] & 0x10 ) | |
v5 = sub_1800EF260((__int64)"%llx:%d\n", v6, v7, v8, v9, v10, v11, v12, 5949927746061544008LL); | |
nullsub_10(v5); | |
if ( MEMORY[0x180115A3C] & 0x10 ) | |
sub_1800EF260((__int64)"%llx:%d\n", v14, v15, v16, v17, v18, v19, v20, 5949927746061544008LL); | |
v21 = sub_1800C9E2C(); | |
if ( MEMORY[0x180115A3C] & 0x10 ) | |
v21 = sub_1800EF260((__int64)"%llx:%d\n", v22, v23, v24, v25, v26, v27, v28, 5949927746061544008LL); | |
v29 = sub_1800CA3DC(v21, v22, v23, v24, v25, v26, v27, v28); | |
if ( MEMORY[0x180115A3C] & 0x10 ) | |
v29 = sub_1800EF260((__int64)"%llx:%d\n", v30, v31, v32, v33, v34, v35, v36, 5949927746061544008LL); | |
sub_1800CAB14(v29, v30, v31, v32, v33, v34, v35, v36); | |
sub_1800B6208(3, v37, v38, v39, v40, v41, v42, v43); | |
v50 = sub_1800B797C(5u, (__int64)"after 50MHz\n", v44, v45, v46, v47, v48, v49); | |
sub_1800CABF0(v50, v51, v52, v53, v54, v55, v56, v57); | |
if ( MEMORY[0x180115A3C] & 0x10 ) | |
sub_1800EF260((__int64)"%llx:%d\n", v58, v59, v60, v61, v62, v63, v64, 5949927746061544008LL); | |
v65 = sub_1800CAD5C(); | |
if ( MEMORY[0x180115A3C] & 0x10 ) | |
v65 = sub_1800EF260((__int64)"%llx:%d\n", v66, v67, v68, v69, v70, v71, v72, 5949927746061544008LL); | |
sub_1800CAF3C(v65, v66, v67, v68, v69, v70, v71, v72); | |
sub_1800B60C8(); | |
sub_1800B6064(); | |
sub_1800CAF54(); | |
v73 = (__int64)sub_1800C8850(); | |
if ( MEMORY[0x180115A3C] & 0x10 ) | |
v73 = sub_1800EF260((__int64)"%llx:%d\n", v74, v75, v76, v77, v78, v79, v80, 5949927746061544008LL); | |
sub_1800CB1A8(v73, v74, v75, v76, v77, v78, v79, v80); | |
v81 = sub_1800CBB54(MEMORY[0x180115A28] == 1, 4, 1); | |
v82 = v81; | |
v83 = sub_1800F6888(v81); | |
*(_DWORD *)v82 = v83; | |
v84 = sub_1800F688C(v83); | |
*(_DWORD *)(v82 + 4) = v84; | |
if ( v84 <= 0xF && *(_DWORD *)v82 == 0x8000 ) | |
*(_BYTE *)(v82 + 601) = 1; | |
*(_DWORD *)(v82 + 20) = v13[114]; | |
*(_DWORD *)(v82 + 24) = v13[148]; | |
v85 = sub_1800B7098(0); | |
if ( v85 & 2 ) | |
*(_DWORD *)(v82 + 604) = 0; | |
if ( MEMORY[0x180115A3C] & 0x40 ) | |
v85 = sub_1800EF260((__int64)"%llx:%d\n", v86, v87, v88, v89, v90, v91, v92, 5949927746061544008LL); | |
v93 = (_DWORD *)8873050112LL; | |
v94 = v13[1]; | |
if ( v94 & 2 ) | |
{ | |
if ( MEMORY[0x180115A3C] & 0x10 ) | |
sub_1800EF260((__int64)"%llx:%d\n", v86, v87, v88, v89, v90, v91, v92, 5949927746061544008LL); | |
sub_1800CB1D4(); | |
v102 = MEMORY[0x180115A3C]; | |
if ( MEMORY[0x180115A3C] & 0x10 ) | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v95, v96, v97, v98, v99, v100, v101, 5949927746061544008LL); | |
v102 = MEMORY[0x180115A3C]; | |
} | |
if ( v102 & 0x40 ) | |
sub_1800EF260((__int64)"%llx:%d\n", v95, v96, v97, v98, v99, v100, v101, 5949927746061544008LL); | |
sub_1800CC218(); | |
if ( MEMORY[0x180115A3C] & 0x10 ) | |
v103 = sub_1800EF260((__int64)"%llx:%d\n", v104, v105, v106, v107, v108, v109, v110, 5949927746061544008LL); | |
nullsub_11(v103); | |
if ( MEMORY[0x180115A3C] & 0x10 ) | |
sub_1800EF260((__int64)"%llx:%d\n", v111, v112, v113, v114, v115, v116, v117, 5949927746061544008LL); | |
sub_1800CB318(); | |
v125 = sub_1800B6208(1, v118, v119, v120, v121, v122, v123, v124); | |
v133 = sub_1800CB350(v125, v126, v127, v128, v129, v130, v131, v132); | |
v141 = MEMORY[0x180115A3C]; | |
if ( MEMORY[0x180115A3C] & 0x10 ) | |
{ | |
v133 = sub_1800EF260((__int64)"%llx:%d\n", v134, v135, v136, v137, v138, v139, v140, 5949927746061544008LL); | |
v141 = MEMORY[0x180115A3C]; | |
} | |
if ( v141 & 0x40 ) | |
v133 = sub_1800EF260((__int64)"%llx:%d\n", v134, v135, v136, v137, v138, v139, v140, 5949927746061544008LL); | |
v142 = sub_1800CF548(v133); | |
v150 = sub_1800CB3E8(v142, v143, v144, v145, v146, v147, v148, v149); | |
v160 = MEMORY[0x180115A3C]; | |
if ( MEMORY[0x180115A3C] & 0x40 ) | |
{ | |
v150 = sub_1800EF260((__int64)"%llx:%d\n", v151, v152, v153, v154, v155, v156, v157, 5949927746061544008LL); | |
v160 = MEMORY[0x180115A3C]; | |
} | |
if ( v160 & 0x40 ) | |
v150 = sub_1800EF260((__int64)"%llx:%d\n", v151, v152, v153, v154, v155, v156, v157, 5949927746061544008LL); | |
sub_1800CE280(v150, v151, v152, v153, v154, v155, v156, v157, v158, v159); | |
if ( MEMORY[0x180115A3C] & 0x40 ) | |
sub_1800EF260((__int64)"%llx:%d\n", v161, v162, v163, v164, v165, v166, v167, 5949927746061544008LL); | |
sub_1800CFF00(); | |
sub_1800CB3A8(v168, v169, v170, v171, v172, v173, v174, v175); | |
v85 = (__int64)sub_1800C9014((_DWORD *)0x210E00000LL, 2); | |
v93 = (_DWORD *)v85; | |
v94 = v13[1]; | |
} | |
if ( v94 & 1 ) | |
{ | |
if ( MEMORY[0x180115A3C] & 0x10 ) | |
sub_1800EF260((__int64)"%llx:%d\n", v86, v87, v88, v89, v90, v91, v92, 5949927746061544008LL); | |
sub_1800CB430(); | |
if ( MEMORY[0x180115A3C] & 0x10 ) | |
sub_1800EF260((__int64)"%llx:%d\n", v176, v177, v178, v179, v180, v181, v182, 5949927746061544008LL); | |
v183 = v13[114]; | |
switch ( v183 ) | |
{ | |
case 1250: | |
v184 = 51539607566LL; | |
break; | |
case 833: | |
v184 = 51539607576LL; | |
break; | |
case 631: | |
v184 = 60129542172LL; | |
break; | |
default: | |
LABEL_57: | |
*(_DWORD *)(v82 + 852) = 0; | |
if ( MEMORY[0x180115A3C] & 0x40 ) | |
sub_1800EF260((__int64)"%llx:%d\n", v176, v177, v178, v179, v180, v181, v182, 5949927746061544008LL); | |
sub_1800CC218(); | |
sub_1800C8E8C(); | |
if ( MEMORY[0x180115A3C] & 0x10 ) | |
sub_1800EF260((__int64)"%llx:%d\n", v185, v186, v187, v188, v189, v190, v191, 5949927746061544008LL); | |
sub_1800CB580(); | |
v199 = sub_1800B6208(0, v192, v193, v194, v195, v196, v197, v198); | |
v207 = sub_1800CB5B8(v199, v200, v201, v202, v203, v204, v205, v206); | |
v215 = MEMORY[0x180115A3C]; | |
if ( MEMORY[0x180115A3C] & 0x10 ) | |
{ | |
v207 = sub_1800EF260((__int64)"%llx:%d\n", v208, v209, v210, v211, v212, v213, v214, 5949927746061544008LL); | |
v215 = MEMORY[0x180115A3C]; | |
} | |
if ( v215 & 0x40 ) | |
v207 = sub_1800EF260((__int64)"%llx:%d\n", v208, v209, v210, v211, v212, v213, v214, 5949927746061544008LL); | |
v216 = sub_1800CF548(v207); | |
v224 = sub_1800CB3E8(v216, v217, v218, v219, v220, v221, v222, v223); | |
v234 = MEMORY[0x180115A3C]; | |
if ( MEMORY[0x180115A3C] & 0x40 ) | |
{ | |
v224 = sub_1800EF260((__int64)"%llx:%d\n", v225, v226, v227, v228, v229, v230, v231, 5949927746061544008LL); | |
v234 = MEMORY[0x180115A3C]; | |
} | |
if ( v234 & 0x40 ) | |
v224 = sub_1800EF260((__int64)"%llx:%d\n", v225, v226, v227, v228, v229, v230, v231, 5949927746061544008LL); | |
sub_1800CE280(v224, v225, v226, v227, v228, v229, v230, v231, v232, v233); | |
if ( MEMORY[0x180115A3C] & 0x40 ) | |
sub_1800EF260((__int64)"%llx:%d\n", v235, v236, v237, v238, v239, v240, v241, 5949927746061544008LL); | |
sub_1800CFF00(); | |
v85 = (__int64)sub_1800C9014(v93, 1); | |
v93 = (_DWORD *)v85; | |
goto LABEL_72; | |
} | |
*(_QWORD *)(v82 + 856) = v184; | |
goto LABEL_57; | |
} | |
LABEL_72: | |
if ( MEMORY[0x180115A3C] & 0x10 ) | |
v85 = sub_1800EF260((__int64)"%llx:%d\n", v86, v87, v88, v89, v90, v91, v92, 5949927746061544008LL); | |
v242 = sub_1800CB610(v85, v86, v87, v88, v89, v90, v91, v92); | |
if ( MEMORY[0x180115A3C] & 0x10 ) | |
v242 = sub_1800EF260((__int64)"%llx:%d\n", v243, v244, v245, v246, v247, v248, v249, 5949927746061544008LL); | |
v250 = sub_1800CB700(v242, v243, v244, v245, v246, v247, v248, v249); | |
if ( MEMORY[0x180115A3C] & 0x10 ) | |
v250 = sub_1800EF260((__int64)"%llx:%d\n", v251, v252, v253, v254, v255, v256, v257, 5949927746061544008LL); | |
sub_1800CB7C0(v250, v251, v252, v253, v254, v255, v256, v257); | |
if ( MEMORY[0x180115A3C] & 0x10 ) | |
sub_1800EF260((__int64)"%llx:%d\n", v258, v259, v260, v261, v262, v263, v264, 5949927746061544008LL); | |
sub_1800CB814(); | |
if ( MEMORY[0x180115A3C] & 0x10 ) | |
sub_1800EF260((__int64)"%llx:%d\n", v265, v266, v267, v268, v269, v270, v271, 5949927746061544008LL); | |
sub_1800CBAD4(); | |
sub_1800C9014(v93, 0); | |
if ( MEMORY[0x180115A3C] & 0x10 ) | |
sub_1800EF260((__int64)"%llx:%d\n", v272, v273, v274, v275, v276, v277, v278, 5949927746061544008LL); | |
sub_1800B7A10(); | |
if ( v13[1] & 2 ) | |
sub_1800B6208(1, v279, v280, v281, v282, v283, v284, v285); | |
v286 = MEMORY[0x180119BE4]; | |
v287 = sub_1800B6064(); | |
sub_1800C69C4(v286, v287, MEMORY[0x180119BE8], MEMORY[0x180119BEC]); | |
if ( MEMORY[0x180115A3C] & 0x10 ) | |
sub_1800EF260((__int64)"%llx:%d\n", v288, v289, v290, v291, v292, v293, v294, 5949927746061544008LL); | |
return 0LL; | |
} | |
// 1800C9E28: using guessed type __int64 __fastcall nullsub_10(_QWORD); | |
// 1800CB314: using guessed type __int64 __fastcall nullsub_11(_QWORD); | |
// 1800F6888: using guessed type __int64 __fastcall sub_1800F6888(_QWORD); | |
// 1800F688C: using guessed type __int64 __fastcall sub_1800F688C(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
// 180114568: using guessed type int dword_180114568; | |
//----- (00000001800B6F14) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800B6F14(int a1, int a2, int a3, unsigned int a4, unsigned int a5) | |
{ | |
unsigned int v5; // w21 | |
unsigned int v6; // w22 | |
int v7; // w20 | |
int v8; // w19 | |
int v9; // w8 | |
signed __int64 result; // x0 | |
bool v11; // cf | |
bool v12; // zf | |
__int64 v13; // x1 | |
__int64 v14; // x2 | |
__int64 v15; // x3 | |
__int64 v16; // x4 | |
__int64 v17; // x5 | |
__int64 v18; // x6 | |
__int64 v19; // x7 | |
__int64 v20; // x1 | |
__int64 v21; // x2 | |
__int64 v22; // x3 | |
__int64 v23; // x4 | |
__int64 v24; // x5 | |
__int64 v25; // x6 | |
__int64 v26; // x7 | |
v5 = a5; | |
v6 = a4; | |
v7 = a3; | |
v8 = a2; | |
v9 = a1; | |
result = 0LL; | |
MEMORY[0x180115A24] = 0; | |
MEMORY[0x180115A28] = v9; | |
if ( (v9 | 4) == 4 ) | |
{ | |
if ( a4 <= 4 ) | |
{ | |
v11 = a5 >= 1; | |
v12 = a5 == 1; | |
} | |
else | |
{ | |
v11 = 1; | |
v12 = 0; | |
} | |
if ( !v12 && v11 || (unsigned int)sub_1800F6888(0LL) != a2 ) | |
{ | |
result = 0LL; | |
} | |
else | |
{ | |
MEMORY[0x180115A2C] = v8; | |
MEMORY[0x180115A30] = v7; | |
MEMORY[0x180115A34] = v6; | |
MEMORY[0x180115A38] = v5; | |
MEMORY[0x180115A3C] = 768; | |
MEMORY[0x180115A40] = 0; | |
sub_1800EF260((__int64)"%llx:%d\n", v13, v14, v15, v16, v17, v18, v19, -2391547629761098080LL); | |
if ( MEMORY[0x180115A3C] & 0x100 ) | |
sub_1800EF260((__int64)"%llx:%d\n", v20, v21, v22, v23, v24, v25, v26, -2391547629761098080LL); | |
result = 1LL; | |
BYTE4(qword_1801158C8[43]) = 1; | |
} | |
} | |
return result; | |
} | |
// 1800F6888: using guessed type __int64 __fastcall sub_1800F6888(_QWORD); | |
// 180114568: using guessed type int dword_180114568; | |
// 180114CE8: using guessed type __int64[105]; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800B7098) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B7098(int a1) | |
{ | |
__int64 v1; // x8 | |
v1 = MEMORY[0x180115A40]; | |
MEMORY[0x180115A40] |= a1; | |
return v1; | |
} | |
//----- (00000001800B70B4) ---------------------------------------------------- | |
__int64 *sub_1800B70B4() | |
{ | |
nullsub_9(qword_1801148A0, 0LL); | |
return qword_1801148A0; | |
} | |
// 1800C884C: using guessed type __int64 __fastcall nullsub_9(_QWORD, _QWORD); | |
// 1801148A0: using guessed type __int64 qword_1801148A0[]; | |
//----- (00000001800B70E4) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B70E4(__int64 result, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
int v8; // w19 | |
_DWORD *v9; // x20 | |
v8 = a2; | |
v9 = (_DWORD *)result; | |
if ( MEMORY[0x180115A3C] & 1 ) | |
result = sub_1800EF260((__int64)"%llx:%d\n", a2, a3, a4, a5, a6, a7, a8, -2391547629761098080LL); | |
*v9 = v8; | |
return result; | |
} | |
// 180114568: using guessed type int dword_180114568; | |
//----- (00000001800B716C) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B716C(__int64 result, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
int v8; // w19 | |
__int64 v9; // x20 | |
unsigned int v10; // w26 | |
unsigned int v11; // w27 | |
v8 = a2; | |
v9 = result; | |
if ( MEMORY[0x180115A3C] & 1 ) | |
result = sub_1800EF260((__int64)"%llx:%d\n", a2, a3, a4, a5, a6, a7, a8, -2391547629761098080LL); | |
v10 = 0; | |
v11 = 0; | |
while ( v11 < MEMORY[0x180115A34] ) | |
{ | |
*(_DWORD *)(v9 + v10) = v8; | |
if ( MEMORY[0x180115A3C] & 2 ) | |
result = sub_1800EF260((__int64)"%llx:%d\n", a2, a3, a4, a5, a6, a7, a8, -2391547629761098080LL); | |
++v11; | |
v10 += 0x40000; | |
} | |
if ( MEMORY[0x180115A3C] & 1 ) | |
result = sub_1800EF260((__int64)"%llx:%d\n", a2, a3, a4, a5, a6, a7, a8, -2391547629761098080LL); | |
return result; | |
} | |
// 180114568: using guessed type int dword_180114568; | |
//----- (00000001800B72C0) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B72C0(__int64 result, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
int v8; // w19 | |
int v9; // w20 | |
__int64 v10; // x21 | |
unsigned int i; // w23 | |
__int64 v12; // x25 | |
__int64 v13; // [xsp+10h] [xbp-60h] | |
v8 = a3; | |
v9 = a2; | |
v10 = result; | |
if ( MEMORY[0x180115A3C] & 1 ) | |
result = sub_1800EF260((__int64)"%llx:%d\n", a2, a3, a4, a5, a6, a7, a8, -2391547629761098080LL); | |
for ( i = 0; i < MEMORY[0x180115A34]; ++i ) | |
{ | |
if ( MEMORY[0x180115A3C] & 2 ) | |
result = sub_1800EF260((__int64)"%llx:%d\n", a2, a3, a4, a5, a6, a7, a8, -2391547629761098080LL); | |
result = sub_1800E1188(result); | |
v12 = result; | |
while ( 1 ) | |
{ | |
result = sub_1800E1188(result); | |
if ( (*(_DWORD *)(v10 + (i << 18)) & v9) == v8 ) | |
break; | |
if ( (unsigned __int64)(result - v12) >= 0xF4240 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -2391547629761098080LL, 271LL, v13); | |
} | |
if ( MEMORY[0x180115A3C] & 2 ) | |
result = sub_1800EF260((__int64)"%llx:%d\n", a2, a3, a4, a5, a6, a7, a8, -2391547629761098080LL); | |
} | |
if ( MEMORY[0x180115A3C] & 1 ) | |
result = sub_1800EF260((__int64)"%llx:%d\n", a2, a3, a4, a5, a6, a7, a8, -2391547629761098080LL); | |
return result; | |
} | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
// 180114568: using guessed type int dword_180114568; | |
//----- (00000001800B74D4) ---------------------------------------------------- | |
bool __fastcall sub_1800B74D4(unsigned __int64 a1) | |
{ | |
return a1 >> 18 != 32776; | |
} | |
//----- (00000001800B74E8) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B74E8(int a1, __int64 a2, int a3, int a4, _BYTE *a5) | |
{ | |
_BYTE *v5; // x19 | |
__int64 v6; // x21 | |
int v7; // w22 | |
__int64 result; // x0 | |
__int64 v9; // x1 | |
__int64 v10; // x2 | |
__int64 v11; // x3 | |
__int64 v12; // x4 | |
__int64 v13; // x5 | |
__int64 v14; // x6 | |
__int64 v15; // x7 | |
char v16; // x20^3 | |
v5 = a5; | |
v6 = a2; | |
v7 = a1; | |
*(_DWORD *)((a2 << 18) + 0x200200500LL) = (unsigned __int64)sub_1800B75BC(a1, a4, (int)a5) | (a3 << 13); | |
result = sub_1800B78E8(v6); | |
v16 = BYTE3(result); | |
if ( !v7 ) | |
{ | |
if ( MEMORY[0x180115A3C] & 8 ) | |
result = sub_1800EF260((__int64)"%llx:%d\n", v9, v10, v11, v12, v13, v14, v15, -2391547629761098080LL); | |
*v5 = v16; | |
} | |
return result; | |
} | |
// 180114568: using guessed type int dword_180114568; | |
//----- (00000001800B75BC) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B75BC(int a1, int a2, int a3) | |
{ | |
int v3; // w8 | |
int v4; // w9 | |
unsigned int v5; // w8 | |
__int64 result; // x0 | |
v3 = (a3 << 24) | (a2 << 16); | |
v4 = v3 | 0x4100; | |
v5 = v3 | 0x100; | |
if ( a1 != 1 ) | |
v5 = v4; | |
if ( a1 ) | |
result = v5; | |
else | |
result = ((unsigned __int16)a2 << 16) | 0x1100u; | |
return result; | |
} | |
//----- (00000001800B75EC) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B75EC(int a1, __int64 a2, int a3, int a4, _BYTE *a5) | |
{ | |
int v5; // w20 | |
int v6; // w22 | |
__int64 result; // x0 | |
__int64 v8; // x1 | |
__int64 v9; // x2 | |
__int64 v10; // x3 | |
__int64 v11; // x4 | |
__int64 v12; // x5 | |
__int64 v13; // x6 | |
__int64 v14; // x7 | |
int v15; // w23 | |
char v16; // w9 | |
__int64 i; // x26 | |
int v18; // w24 | |
int v19; // w25 | |
int j; // w25 | |
int k; // w27 | |
char v22; // x26^3 | |
__int64 v23; // [xsp+20h] [xbp-60h] | |
_BYTE *v24; // [xsp+28h] [xbp-58h] | |
v5 = a3; | |
v23 = a2; | |
v24 = a5; | |
v6 = a1; | |
result = sub_1800B75BC(a1, a4, (int)a5); | |
v15 = result; | |
v16 = MEMORY[0x180115A3C]; | |
if ( MEMORY[0x180115A3C] & 1 ) | |
{ | |
result = sub_1800EF260((__int64)"%llx:%d\n", v8, v9, v10, v11, v12, v13, v14, -2391547629761098080LL); | |
v16 = MEMORY[0x180115A3C]; | |
} | |
if ( v16 & 2 ) | |
result = sub_1800EF260((__int64)"%llx:%d\n", v8, v9, v10, v11, v12, v13, v14, -2391547629761098080LL); | |
for ( i = 0LL; i != v23; ++i ) | |
{ | |
v18 = 0; | |
v19 = 0; | |
while ( v5 != v19 ) | |
{ | |
if ( MEMORY[0x180115A3C] & 2 ) | |
result = sub_1800EF260((__int64)"%llx:%d\n", v8, v9, v10, v11, v12, v13, v14, -2391547629761098080LL); | |
*(_DWORD *)((i << 18) + 0x200200500LL) = v18 | v15; | |
++v19; | |
v18 += 0x2000; | |
} | |
} | |
if ( MEMORY[0x180115A3C] & 2 ) | |
result = sub_1800EF260((__int64)"%llx:%d\n", v8, v9, v10, v11, v12, v13, v14, -2391547629761098080LL); | |
for ( j = 0; j != (_DWORD)v23; ++j ) | |
{ | |
for ( k = 0; v5 != k; ++k ) | |
{ | |
result = sub_1800B78E8((unsigned __int8)j); | |
v22 = BYTE3(result); | |
if ( MEMORY[0x180115A3C] & 2 ) | |
result = sub_1800EF260((__int64)"%llx:%d\n", v8, v9, v10, v11, v12, v13, v14, -2391547629761098080LL); | |
if ( !v6 ) | |
{ | |
if ( MEMORY[0x180115A3C] & 8 ) | |
result = sub_1800EF260((__int64)"%llx:%d\n", v8, v9, v10, v11, v12, v13, v14, -2391547629761098080LL); | |
*v24++ = v22; | |
} | |
} | |
} | |
if ( MEMORY[0x180115A3C] & 1 ) | |
result = sub_1800EF260((__int64)"%llx:%d\n", v8, v9, v10, v11, v12, v13, v14, -2391547629761098080LL); | |
return result; | |
} | |
//----- (00000001800B78E8) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B78E8(__int64 a1) | |
{ | |
__int64 v1; // x20 | |
__int64 v2; // x0 | |
__int64 v3; // x19 | |
__int64 v4; // x20 | |
v1 = a1; | |
v2 = sub_1800E1188(a1); | |
v3 = v2; | |
v4 = v1 << 18; | |
while ( 1 ) | |
{ | |
v2 = sub_1800E1188(v2); | |
if ( !(*(_DWORD *)(v4 + 8592033028LL) & 0x100) ) | |
break; | |
if ( (unsigned __int64)(v2 - v3) >= 0xF4240 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -2391547629761098080LL, 297LL); | |
} | |
return *(unsigned int *)(v4 + 8592033028LL); | |
} | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800B797C) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B797C(unsigned int a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
unsigned int v8; // w19 | |
v8 = a1; | |
if ( MEMORY[0x180115A3C] & 4 ) | |
sub_1800EF260((__int64)"%llx:%d\n", a2, a3, a4, a5, a6, a7, a8, -2391547629761098080LL); | |
return sub_1800D5F60(v8); | |
} | |
// 180114568: using guessed type int dword_180114568; | |
//----- (00000001800B7A10) ---------------------------------------------------- | |
__int64 sub_1800B7A10() | |
{ | |
__int64 result; // x0 | |
__int64 v1; // x1 | |
__int64 v2; // x2 | |
__int64 v3; // x3 | |
__int64 v4; // x4 | |
__int64 v5; // x5 | |
__int64 v6; // x6 | |
__int64 v7; // x7 | |
__int64 v8; // x19 | |
unsigned int v9; // w8 | |
unsigned int v10; // w21 | |
unsigned int v11; // [xsp+Ch] [xbp-34h] | |
__int64 v12; // [xsp+10h] [xbp-30h] | |
__int64 v13; // [xsp+18h] [xbp-28h] | |
v13 = 5139240511851214385LL; | |
v12 = 0LL; | |
v11 = 0; | |
result = (__int64)sub_1800C8F48(&v11); | |
v8 = result; | |
if ( result ) | |
{ | |
v9 = v11; | |
if ( v11 ) | |
{ | |
v10 = 0; | |
while ( v10 < v9 && *(_QWORD *)v8 ) | |
{ | |
if ( *(_QWORD *)v8 != v12 ) | |
{ | |
if ( v12 ) | |
{ | |
if ( (v12 & 0xFFFFFFFFFFFC0000LL) == 8592031744LL ) | |
result = sub_1800B716C(v12, v1, v2, v3, v4, v5, v6, v7); | |
else | |
result = sub_1800B70E4(v12, v1, v2, v3, v4, v5, v6, v7); | |
} | |
v12 = *(_QWORD *)v8; | |
LODWORD(v1) = *(_DWORD *)v12; | |
v9 = v11; | |
} | |
v1 = (unsigned int)v1 & ~*(_DWORD *)(v8 + 8) | *(_DWORD *)(v8 + 12); | |
++v10; | |
v8 += 16LL; | |
} | |
if ( v12 ) | |
{ | |
if ( (v12 & 0xFFFFFFFFFFFC0000LL) == 8592031744LL ) | |
result = sub_1800B716C(v12, v1, v2, v3, v4, v5, v6, v7); | |
else | |
result = sub_1800B70E4(v12, v1, v2, v3, v4, v5, v6, v7); | |
} | |
} | |
} | |
if ( 5139240511851214385LL != v13 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800B7B2C) ---------------------------------------------------- | |
_DWORD *__fastcall sub_1800B7B2C(_DWORD *result) | |
{ | |
__int64 v1; // x29 | |
__int64 v2; // x30 | |
unsigned int v3; // w10 | |
int v4; // w10 | |
BYTE4(qword_1801158C8[2150]) = 1; | |
MEMORY[0x206540008] = 0; | |
MEMORY[0x20654000C] = result[5] | (result[9] << 16); | |
if ( &dword_180115080 ) | |
{ | |
MEMORY[0x206540010] = 2; | |
MEMORY[0x206540014] = 2; | |
} | |
else | |
{ | |
MEMORY[0x206540010] = 2; | |
MEMORY[0x206540014] = 3; | |
} | |
MEMORY[0x206540018] = 3; | |
if ( &dword_180115080 ) | |
{ | |
MEMORY[0x206540100] |= 0x6000u; | |
v3 = result[14]; | |
if ( v3 == 24 ) | |
{ | |
v4 = MEMORY[0x206540100] | 2; | |
} | |
else | |
{ | |
if ( v3 > 0x12 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, 1015692064664144801LL, 130LL, v1, v2); | |
v4 = MEMORY[0x206540100] | 3; | |
} | |
MEMORY[0x206540100] = v4; | |
MEMORY[0x206540104] = 0; | |
MEMORY[0x206540128] = 1023; | |
MEMORY[0x20654012C] = 1023; | |
MEMORY[0x206540130] = 1023; | |
MEMORY[0x206540134] = 1023; | |
MEMORY[0x206540138] = 1023; | |
MEMORY[0x20654013C] = 1023; | |
MEMORY[0x206540140] = 1023; | |
MEMORY[0x206540144] = 1023; | |
MEMORY[0x206540148] = 1023; | |
MEMORY[0x20654014C] = 1023; | |
MEMORY[0x206540150] = 1023; | |
MEMORY[0x206540154] = 1023; | |
MEMORY[0x206540158] = 1023; | |
MEMORY[0x20654015C] = 1023; | |
MEMORY[0x206540160] = 1023; | |
MEMORY[0x206540000] |= 2u; | |
} | |
MEMORY[0x206540004] = 3; | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 180115080: using guessed type int dword_180115080; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800B7CF4) ---------------------------------------------------- | |
void sub_1800B7CF4() | |
{ | |
MEMORY[0x206480000] = MEMORY[0x206480000] & 0xFFFFFF15 | 0x28; | |
MEMORY[0x20648000C] = 65537; | |
MEMORY[0x20648001C] |= 4u; | |
} | |
//----- (00000001800B7D30) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B7D30(__int64 a1) | |
{ | |
int v2; // [xsp+0h] [xbp-10h] | |
unsigned int v3; // [xsp+4h] [xbp-Ch] | |
__int64 v4; // [xsp+8h] [xbp-8h] | |
v4 = 5139240511851214385LL; | |
sub_1800B7DA4(a1, &v3, (unsigned int *)&v2); | |
if ( 5139240511851214385LL != v4 ) | |
sub_1800D4A5C(); | |
return *(_DWORD *)(qword_180104670[2 * v3] + (unsigned int)(4 * v2)) & 1; | |
} | |
// 180104670: using guessed type __int64 qword_180104670[4]; | |
//----- (00000001800B7DA4) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B7DA4(__int64 result, unsigned int *a2, unsigned int *a3) | |
{ | |
__int64 v3; // x29 | |
__int64 v4; // x30 | |
unsigned int v5; // w8 | |
__int64 v6; // x9 | |
*a2 = (unsigned int)result >> 24; | |
v5 = ((unsigned int)result >> 5) & 0x7F8 | result & 7; | |
*a3 = v5; | |
v6 = *a2; | |
if ( (unsigned int)v6 > 1 || v5 >= LODWORD(qword_180104670[2 * v6 + 1]) ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -460676035299380819LL, 86LL, v3, v4); | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 180104670: using guessed type __int64 qword_180104670[4]; | |
//----- (00000001800B7E1C) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B7E1C(__int64 a1, int a2) | |
{ | |
int v2; // w19 | |
__int64 result; // x0 | |
signed int v4; // w8 | |
int v5; // [xsp+0h] [xbp-20h] | |
unsigned int v6; // [xsp+4h] [xbp-1Ch] | |
__int64 v7; // [xsp+8h] [xbp-18h] | |
v2 = a2; | |
v7 = 5139240511851214385LL; | |
result = sub_1800B7DA4(a1, &v6, (unsigned int *)&v5); | |
if ( v2 ) | |
v4 = 459267; | |
else | |
v4 = 459266; | |
*(_DWORD *)(qword_180104670[2 * v6] + (unsigned int)(4 * v5)) = *(_DWORD *)(qword_180104670[2 * v6] | |
+ (unsigned int)(4 * v5)) & 0xFFF8FD90 | v4; | |
if ( 5139240511851214385LL != v7 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180104670: using guessed type __int64 qword_180104670[4]; | |
//----- (00000001800B7EBC) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B7EBC(__int64 result, int a2, unsigned int a3) | |
{ | |
__int64 v3; // x29 | |
__int64 v4; // x30 | |
__int64 v5; // x8 | |
__int64 v6; // x9 | |
unsigned int v7; // w11 | |
int v8; // w10 | |
bool v9; // zf | |
v5 = qword_180104670[2 * (unsigned int)result]; | |
v6 = (unsigned int)(4 * a2); | |
v7 = *(_DWORD *)(v5 + (unsigned int)v6); | |
if ( a3 & 0x200 ) | |
{ | |
v8 = *(_DWORD *)(v5 + (unsigned int)v6) & 0x200; | |
} | |
else | |
{ | |
v8 = 0; | |
*(_DWORD *)(v6 + v5) = v7 & 0xFFFFFDFF; | |
} | |
if ( a3 & 0x60 ) | |
{ | |
v9 = v7 & 0x60 ? ((v7 >> 20) & 0xC | (v7 >> 10) & 3) == ((a3 >> 20) & 0xC | (a3 >> 10) & 3) : 1; | |
if ( !v9 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -460676035299380819LL, 167LL, v3, v4); | |
} | |
*(_DWORD *)(v5 + v6) = v8 | a3 & 0xFFFFFDFF; | |
if ( a3 & 0x200 ) | |
{ | |
if ( !v8 ) | |
*(_DWORD *)(v5 + v6) = a3; | |
} | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 180104670: using guessed type __int64 qword_180104670[4]; | |
//----- (00000001800B7F70) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B7F70(__int64 a1, int a2) | |
{ | |
int v2; // w19 | |
__int64 result; // x0 | |
signed int v4; // w20 | |
signed int v5; // w8 | |
__int64 v6; // x0 | |
unsigned int v7; // [xsp+0h] [xbp-20h] | |
unsigned int v8; // [xsp+4h] [xbp-1Ch] | |
__int64 v9; // [xsp+8h] [xbp-18h] | |
v2 = a2; | |
v9 = 5139240511851214385LL; | |
result = sub_1800B7DA4(a1, &v8, &v7); | |
v4 = 459374; | |
v5 = 459264; | |
switch ( v2 ) | |
{ | |
case 0: | |
goto LABEL_9; | |
case 1: | |
v5 = 459266; | |
goto LABEL_9; | |
case 2: | |
v5 = 459266; | |
v4 = 459375; | |
goto LABEL_9; | |
case 3: | |
v5 = 459267; | |
v4 = 459375; | |
goto LABEL_9; | |
case 4: | |
v6 = sub_1800E0DCC(v8); | |
v5 = *(_DWORD *)(v6 + 4LL * v7); | |
v4 = 459759; | |
goto LABEL_9; | |
case 5: | |
v5 = 459296; | |
goto LABEL_9; | |
case 6: | |
v5 = 459328; | |
goto LABEL_9; | |
case 7: | |
v5 = 459360; | |
LABEL_9: | |
result = sub_1800B7EBC(v8, v7, *(_DWORD *)(qword_180104670[2 * v8] + 4 * v7) & ~v4 | v5 & (unsigned int)v4); | |
break; | |
default: | |
break; | |
} | |
if ( 5139240511851214385LL != v9 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180104670: using guessed type __int64 qword_180104670[4]; | |
//----- (00000001800B8090) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B8090(__int64 a1, signed int a2) | |
{ | |
signed int v2; // w19 | |
__int64 result; // x0 | |
signed int v4; // w9 | |
signed int v5; // w8 | |
int v6; // [xsp+0h] [xbp-20h] | |
unsigned int v7; // [xsp+4h] [xbp-1Ch] | |
__int64 v8; // [xsp+8h] [xbp-18h] | |
v2 = a2; | |
v8 = 5139240511851214385LL; | |
result = sub_1800B7DA4(a1, &v7, (unsigned int *)&v6); | |
if ( v2 <= 1 ) | |
v4 = 384; | |
else | |
v4 = 256; | |
if ( !v2 ) | |
v4 = 0; | |
if ( v2 >= 0 ) | |
v5 = v4; | |
else | |
v5 = 128; | |
*(_DWORD *)(qword_180104670[2 * v7] + (unsigned int)(4 * v6)) = *(_DWORD *)(qword_180104670[2 * v7] | |
+ (unsigned int)(4 * v6)) & 0xFFFFFE7F | v5; | |
if ( 5139240511851214385LL != v8 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180104670: using guessed type __int64 qword_180104670[4]; | |
//----- (00000001800B813C) ---------------------------------------------------- | |
__int64 sub_1800B813C() | |
{ | |
__int64 i; // x19 | |
__int64 v1; // x20 | |
__int64 v2; // x21 | |
__int64 v3; // x24 | |
for ( i = 0LL; i != 2; ++i ) | |
{ | |
v1 = sub_1800E0DCC(i); | |
v2 = 0LL; | |
v3 = LODWORD(qword_180104670[2 * i + 1]); | |
while ( v3 != v2 ) | |
{ | |
sub_1800B7EBC(i, v2, *(_DWORD *)(v1 + 4 * v2)); | |
++v2; | |
} | |
*(_DWORD *)(qword_180104670[2 * i] + 3144) = 1; | |
} | |
MEMORY[0x20F100C50] = 0; | |
return 0LL; | |
} | |
// 180104670: using guessed type __int64 qword_180104670[4]; | |
//----- (00000001800B81DC) ---------------------------------------------------- | |
__int64 sub_1800B81DC() | |
{ | |
return MEMORY[0x20F100C4C] & 1; | |
} | |
//----- (00000001800B81F4) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800B81F4(__int64 a1) | |
{ | |
__int64 v1; // x21 | |
int v2; // w19 | |
int v3; // w20 | |
bool v5; // zf | |
v1 = a1; | |
sub_1800B7F70(a1, 0); | |
sub_1800B8090(v1, -1); | |
sub_1800D5F60(100LL); | |
v2 = sub_1800B7D30(v1); | |
sub_1800B8090(v1, 1); | |
sub_1800D5F60(100LL); | |
v3 = sub_1800B7D30(v1); | |
sub_1800B7F70(v1, 4); | |
if ( !(v3 | v2) ) | |
return 0LL; | |
if ( !v2 && v3 == 1 ) | |
return 1LL; | |
if ( v2 == 1 ) | |
v5 = v3 == 1; | |
else | |
v5 = 0; | |
if ( !v5 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -460676035299380819LL, 353LL); | |
return 2LL; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800B82D4) ---------------------------------------------------- | |
__int64 *__fastcall sub_1800B82D4(int a1, int a2, int a3) | |
{ | |
int v3; // w19 | |
int v4; // w20 | |
int v5; // w21 | |
__int64 v6; // x22 | |
unsigned int v7; // w0 | |
unsigned __int64 v8; // x8 | |
__int64 *v9; // x12 | |
unsigned __int64 v10; // x9 | |
__int64 *result; // x0 | |
__int64 *v12; // x1 | |
unsigned __int64 v13; // x14 | |
unsigned __int64 v14; // x15 | |
bool v15; // cf | |
bool v16; // zf | |
bool v17; // zf | |
signed __int64 v18; // x13 | |
bool v19; // zf | |
v3 = a3; | |
v4 = a2; | |
v5 = a1; | |
v6 = (unsigned int)sub_1800C859C(); | |
v7 = sub_1800C85A4(); | |
v8 = 0LL; | |
v9 = 0LL; | |
v10 = v7; | |
result = &qword_180108F18; | |
while ( v8 < 0x70 ) | |
{ | |
v12 = result; | |
if ( ~(unsigned __int16)*result & 0x1FF ) | |
{ | |
if ( v9 ) | |
{ | |
v13 = *v9; | |
if ( (!(*v9 & 0x400000000000LL) || ((v13 >> 47) & 0xF) == v3) | |
&& ((v14 = (v13 >> 30) & 0xFFFF, (((unsigned int)v13 >> 25) & 0x1F) == v4) ? (v15 = v14 >= v10, | |
v16 = v14 == v10) : (v15 = 1, v16 = 0), | |
v16 || !v15 ? (v17 = (*result & 0x1FF) == v5) : (v17 = 0), | |
v17) ) | |
{ | |
v18 = (v13 >> 9) & 0xFFFF; | |
if ( v18 == 254 ) | |
v19 = 1; | |
else | |
v19 = v18 == v6; | |
v12 = v9; | |
if ( v19 ) | |
goto LABEL_23; | |
} | |
else | |
{ | |
v12 = v9; | |
} | |
} | |
else | |
{ | |
v12 = 0LL; | |
} | |
} | |
++v8; | |
result += 3; | |
v9 = v12; | |
} | |
result = 0LL; | |
LABEL_23: | |
if ( !result ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -2317632407109470332LL, 50LL); | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 180108F18: using guessed type __int64 qword_180108F18; | |
//----- (00000001800B83FC) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B83FC(int a1, _DWORD *a2) | |
{ | |
int v2; // w20 | |
int v3; // w21 | |
unsigned int v4; // w22 | |
unsigned int i; // w23 | |
unsigned int v6; // w8 | |
unsigned int v7; // w19 | |
int v8; // w8 | |
__int64 result; // x0 | |
__int64 *v10; // x8 | |
_DWORD *v11; // [xsp+8h] [xbp-58h] | |
v11 = a2; | |
v2 = a1; | |
v3 = sub_1800C859C(); | |
v4 = sub_1800C85A4(); | |
for ( i = 0; ; ++i ) | |
{ | |
if ( i >= 0xD ) | |
{ | |
result = 0LL; | |
*v11 = 0; | |
return result; | |
} | |
v6 = qword_1801119D0[3 * i]; | |
if ( v3 == (unsigned __int16)v6 && v4 >= BYTE2(v6) && HIDWORD(qword_1801119D0[3 * i]) == v2 ) | |
{ | |
v7 = v6 >> 24; | |
if ( v6 >> 24 == 255 ) | |
break; | |
v8 = qword_1801158C8[2151]; | |
if ( (!v8 || v8 == v7) && (v8 || v7 == (unsigned int)sub_1800C678C()) ) | |
break; | |
} | |
} | |
v10 = &qword_1801119D0[3 * i]; | |
*v11 = *((_DWORD *)v10 + 4); | |
return v10[1]; | |
} | |
// 1801119D0: using guessed type __int64 qword_1801119D0[39]; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800B8508) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B8508(unsigned int a1, int a2) | |
{ | |
int v2; // w19 | |
unsigned int v3; // w20 | |
unsigned __int16 *v4; // x0 | |
bool v5; // cf | |
bool v6; // zf | |
__int64 result; // x0 | |
signed __int64 v8; // x8 | |
unsigned int v9; // [xsp+14h] [xbp-2Ch] | |
__int64 v10; // [xsp+18h] [xbp-28h] | |
v2 = a2; | |
v3 = a1; | |
v10 = 5139240511851214385LL; | |
v4 = (unsigned __int16 *)sub_1800B83FC(a2, &v9); | |
if ( !v4 ) | |
{ | |
v8 = 61LL; | |
goto LABEL_12; | |
} | |
if ( v9 <= v3 ) | |
{ | |
v5 = v9 >= 2; | |
v6 = v9 == 2; | |
} | |
else | |
{ | |
v5 = 1; | |
v6 = 0; | |
} | |
if ( v6 || !v5 ) | |
{ | |
v8 = 65LL; | |
goto LABEL_12; | |
} | |
if ( v9 > v3 ) | |
{ | |
result = v4[v3]; | |
} | |
else | |
{ | |
if ( v2 == 7 ) | |
{ | |
LABEL_11: | |
result = v4[2]; | |
goto LABEL_15; | |
} | |
if ( v2 != 3 ) | |
{ | |
if ( v2 == 1 ) | |
goto LABEL_11; | |
v8 = 77LL; | |
LABEL_12: | |
sub_1800D489C("%llx:%d", &byte_180101040, 4524833359521836902LL, v8); | |
} | |
result = *v4; | |
} | |
LABEL_15: | |
if ( 5139240511851214385LL != v10 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800B85F4) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800B85F4(signed __int64 result, int a2, __int64 a3, __int64 a4, __int64 a5) | |
{ | |
__int64 v5; // x21 | |
int v6; // w23 | |
__int64 (__fastcall *v7)(unsigned int *, __int64, bool); // x22 | |
signed int v8; // w8 | |
unsigned int v9; // w9 | |
signed __int64 v10; // x10 | |
__int64 v11; // x20 | |
unsigned int v12; // w25 | |
unsigned int *v13; // x24 | |
unsigned int v14; // w8 | |
__int64 v15; // x1 | |
__int64 v16; // x9 | |
__int64 v17; // x9 | |
signed __int64 v18; // x8 | |
__int64 v19; // x19 | |
__int64 v20; // x27 | |
int v21; // w26 | |
__int64 v22; // x13 | |
signed __int64 v23; // x28 | |
__int64 *v24; // x28 | |
__int64 v25; // t1 | |
__int64 v26; // [xsp+10h] [xbp-70h] | |
int v27; // [xsp+18h] [xbp-68h] | |
_QWORD *v28; // [xsp+20h] [xbp-60h] | |
__int64 v29; // [xsp+28h] [xbp-58h] | |
v29 = a5; | |
v5 = a3; | |
v6 = a2; | |
v7 = (__int64 (__fastcall *)(unsigned int *, __int64, bool))result; | |
v8 = 0; | |
v9 = 0; | |
v26 = a4; | |
while ( 1 ) | |
{ | |
v22 = v9; | |
v23 = a4 + 40LL * v9; | |
v25 = *(_QWORD *)(v23 + 16); | |
v24 = (__int64 *)(v23 + 16); | |
v17 = v25; | |
if ( !v25 && !*(_QWORD *)(a4 + 40 * v22 + 24) ) | |
break; | |
v10 = a4 + 40 * v22; | |
if ( *(_DWORD *)v10 == v6 ) | |
{ | |
v11 = *(_QWORD *)(v10 + 8); | |
if ( !v7 || *(_BYTE *)(a4 + 40 * v22 + 32) ) | |
{ | |
v12 = 0; | |
v27 = v22; | |
v28 = (_QWORD *)(a4 + 40 * v22 + 24); | |
while ( 1 ) | |
{ | |
if ( v17 ) | |
{ | |
v18 = v17 + 12LL * v12; | |
v19 = *(unsigned int *)(v18 + 4); | |
v20 = *(unsigned int *)(v18 + 8); | |
} | |
else | |
{ | |
v18 = *v28 + 20LL * v12; | |
v19 = *(_QWORD *)(v18 + 4); | |
v20 = *(_QWORD *)(v18 + 12); | |
} | |
v21 = *(_DWORD *)v18; | |
if ( (*(_DWORD *)v18 & 0x7FFFFFF) == 0x7FFFFFF ) | |
{ | |
v8 = 1; | |
a4 = v26; | |
LODWORD(v22) = v27; | |
break; | |
} | |
v13 = (unsigned int *)(v11 + (unsigned int)(32 * v21 >> 5)); | |
result = sub_1800B87E8((unsigned __int64)v13, v6, v5, v7 == 0LL); | |
if ( !(result & 1) ) | |
{ | |
result = sub_1800B87E8((unsigned __int64)v13, v6, v29, v7 == 0LL); | |
if ( !(result & 1) ) | |
{ | |
v14 = v21 & 0xF8000000; | |
if ( (v21 & 0xF8000000) == 0x40000000 ) | |
{ | |
v15 = *(_QWORD *)v13; | |
if ( v7 ) | |
goto LABEL_12; | |
} | |
else | |
{ | |
v15 = *v13; | |
if ( v7 ) | |
{ | |
LABEL_12: | |
result = v7(v13, v15, v14 == 0x40000000); | |
goto LABEL_17; | |
} | |
} | |
if ( (v15 & v19) != v20 ) | |
{ | |
v16 = v15 & ~v19 | v20; | |
if ( v14 == 0x40000000 ) | |
*(_QWORD *)v13 = v16; | |
else | |
*v13 = v16; | |
} | |
} | |
} | |
LABEL_17: | |
++v12; | |
v17 = *v24; | |
} | |
} | |
} | |
v9 = v22 + 1; | |
} | |
if ( !(((v7 == 0LL) | v8) & 1) ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -7134447194457943511LL, 105LL); | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800B87E8) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800B87E8(unsigned __int64 a1, int a2, __int64 a3, int a4) | |
{ | |
__int64 v4; // x9 | |
__int64 v5; // x11 | |
__int64 v6; // x10 | |
int v7; // w10 | |
if ( a3 ) | |
{ | |
for ( LODWORD(v4) = 0; ; LODWORD(v4) = v4 + 1 ) | |
{ | |
v4 = (unsigned int)v4; | |
v7 = *(_DWORD *)(a3 + 32LL * (unsigned int)v4); | |
if ( v7 == -1 ) | |
break; | |
v5 = a3 + 32 * v4; | |
if ( (((*(_BYTE *)(v5 + 24) == 0) | a4 ^ 1) != 1 || *(_BYTE *)(v5 + 25) && !(a4 & 1)) && (v7 == a2 || v7 == 254) ) | |
{ | |
v6 = a3 + 32 * v4; | |
if ( *(_QWORD *)(v6 + 8) <= a1 && *(_QWORD *)(v6 + 16) > a1 ) | |
return 1LL; | |
} | |
} | |
} | |
return 0LL; | |
} | |
//----- (00000001800B8874) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800B8874(signed __int64 a1, int a2, __int64 a3) | |
{ | |
return sub_1800B85F4(a1, a2, a3, (__int64)qword_180111DC0, (__int64)qword_18010A348); | |
} | |
// 18010A348: using guessed type __int64 qword_18010A348[36]; | |
// 180111DC0: using guessed type __int64 qword_180111DC0[4]; | |
//----- (00000001800B8888) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B8888(int *a1, int *a2, int *a3) | |
{ | |
unsigned int v3; // w8 | |
v3 = MEMORY[0x180119C04]; | |
*a1 = MEMORY[0x180119C04] & 0x3FF; | |
*a2 = (v3 >> 16) & 0x7F; | |
*a3 = (unsigned __int16)v3 >> 10; | |
return (v3 >> 23) & 1; | |
} | |
//----- (00000001800B88B0) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800B88B0(int a1, int **a2) | |
{ | |
int **v2; // x19 | |
int v3; // w20 | |
unsigned __int64 v4; // x21 | |
int *i; // x23 | |
unsigned int v6; // w24 | |
unsigned int v7; // w25 | |
char v8; // zf | |
v2 = a2; | |
v3 = a1; | |
v4 = 0LL; | |
for ( i = &dword_180109998; ; i += 2 ) | |
{ | |
if ( v4 >= 0x21 ) | |
return 0xFFFFFFFFLL; | |
v6 = *i; | |
if ( (*i & 0x7F) == v3 ) | |
{ | |
v7 = *((unsigned __int16 *)i + 2); | |
v8 = (v7 & 0xF) == (unsigned int)sub_1800B895C() ? 1 : (v7 & 0xF) == 15; | |
if ( v8 && (unsigned int)sub_1800B8990() >= (unsigned __int8)(v7 >> 4) ) | |
break; | |
} | |
++v4; | |
} | |
*v2 = i; | |
return (v6 >> 7) & 0x7FF; | |
} | |
// 180109998: using guessed type int dword_180109998; | |
//----- (00000001800B895C) ---------------------------------------------------- | |
signed __int64 sub_1800B895C() | |
{ | |
signed __int64 result; // x0 | |
result = HIDWORD(qword_1801158C8[2152]); | |
if ( !(_DWORD)result ) | |
{ | |
result = sub_1800B8AD0(19, 0); | |
HIDWORD(qword_1801158C8[2152]) = result; | |
} | |
return result; | |
} | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800B8990) ---------------------------------------------------- | |
signed __int64 sub_1800B8990() | |
{ | |
signed __int64 result; // x0 | |
result = LODWORD(qword_1801158C8[2153]); | |
if ( !(_DWORD)result ) | |
{ | |
result = sub_1800B8AD0(18, 0); | |
LODWORD(qword_1801158C8[2153]) = result; | |
} | |
return result; | |
} | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800B89C4) ---------------------------------------------------- | |
__int64 sub_1800B89C4() | |
{ | |
sub_1800C678C(); | |
return 0LL; | |
} | |
// 1800F688C: using guessed type __int64 __fastcall sub_1800F688C(_QWORD); | |
//----- (00000001800B8AD0) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800B8AD0(int a1, int a2) | |
{ | |
int v2; // w19 | |
int v3; // w20 | |
unsigned int i; // w8 | |
__int64 v5; // x23 | |
unsigned __int64 v6; // x24 | |
int v7; // w9 | |
signed __int64 v8; // x20 | |
signed __int64 v9; // x8 | |
__int64 v10; // x19 | |
__int64 v11; // x21 | |
unsigned __int64 v12; // x0 | |
unsigned int v13; // w11 | |
__int64 v14; // x0 | |
unsigned int v15; // w9 | |
unsigned int v16; // w22 | |
int v17; // w10 | |
bool v18; // cf | |
v2 = a2; | |
v3 = a1; | |
for ( i = 0; ; i = v5 + 1 ) | |
{ | |
v7 = qword_180111B08[3 * i]; | |
if ( v7 == 21 ) | |
break; | |
v5 = i; | |
if ( v7 == v3 ) | |
{ | |
v6 = *(__int64 *)((char *)&qword_180111B08[3 * i] + 4); | |
if ( (unsigned __int16)*(__int64 *)((char *)&qword_180111B08[3 * i] + 4) == v2 | |
&& (v3 == 19 || (unsigned int)v6 >> 16 == (unsigned int)sub_1800B895C() || (v6 & 0xFFFF0000) == 983040) ) | |
{ | |
v8 = (v6 >> 32) & 0x7FF; | |
v9 = (v6 >> 43) & 0x7FF; | |
if ( (unsigned int)v8 > (unsigned int)v9 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -2712496162282611829LL, 256LL); | |
v10 = 0LL; | |
v11 = qword_180111B08[3 * v5 + 2]; | |
LABEL_13: | |
v13 = 0; | |
while ( 1 ) | |
{ | |
v14 = *(_QWORD *)(v11 + 16LL * v13 + 8); | |
if ( !v14 ) | |
return 0xFFFFFFFFLL; | |
v15 = *(_DWORD *)(v11 + 16LL * v13); | |
v16 = v15 & 0xFFF; | |
++v13; | |
v17 = v9 - v16; | |
if ( (unsigned int)v9 >= v16 ) | |
v18 = ((v15 >> 12) & 0xFFF) >= (unsigned int)v9; | |
else | |
v18 = 0; | |
if ( v18 ) | |
{ | |
if ( v16 > (unsigned int)v8 ) | |
{ | |
v12 = sub_1800B9000(v14, (v15 >> 24) & 0x3F, v17 + ((v15 >> 24) & 0x3F), (v15 >> 30) & 1); | |
LODWORD(v9) = v16 - 1; | |
v10 |= (v12 << ((unsigned __int8)v16 - BYTE4(v6))) & 0xFFFFFFFF; | |
goto LABEL_13; | |
} | |
return (unsigned int)sub_1800B9000( | |
v14, | |
v8 - v16 + ((v15 >> 24) & 0x3F), | |
v17 + ((v15 >> 24) & 0x3F), | |
(v15 >> 30) & 1) | (unsigned int)v10; | |
} | |
} | |
} | |
} | |
} | |
return 0xFFFFFFFFLL; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 180111B08: using guessed type __int64 qword_180111B08[87]; | |
//----- (00000001800B8C50) ---------------------------------------------------- | |
signed __int64 sub_1800B8C50() | |
{ | |
signed __int64 result; // x0 | |
result = LODWORD(qword_1801158C8[2152]); | |
if ( !(_DWORD)result ) | |
{ | |
result = sub_1800B8AD0(17, 0); | |
LODWORD(qword_1801158C8[2152]) = result; | |
} | |
return result; | |
} | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800B8C84) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800B8C84(int a1, int a2) | |
{ | |
int v2; // w0 | |
signed __int64 result; // x0 | |
v2 = sub_1800B8AD0(a1, a2); | |
if ( (unsigned int)(v2 + 1) >= 2 ) | |
result = 3125 * v2 / 0x3E8u + 25 * (unsigned int)sub_1800B8C50() + 25; | |
else | |
result = 0xFFFFFFFFLL; | |
return result; | |
} | |
//----- (00000001800B8CDC) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800B8CDC(unsigned int a1, int a2, int a3) | |
{ | |
int v3; // w21 | |
unsigned int v4; // w8 | |
int v5; // w24 | |
int v6; // w20 | |
int v7; // w22 | |
bool v8; // zf | |
bool v9; // zf | |
int v10; // w19 | |
signed __int64 result; // x0 | |
int v12; // w0 | |
signed __int64 v13; // x8 | |
_DWORD *v14; // [xsp+10h] [xbp-40h] | |
__int64 v15; // [xsp+18h] [xbp-38h] | |
v3 = a3; | |
v15 = 5139240511851214385LL; | |
if ( a2 ) | |
{ | |
if ( a1 < 0x3B ) | |
{ | |
v4 = *((_DWORD *)qword_180109AA0 + a1); | |
v5 = *((_DWORD *)qword_180109AA0 + a1) & 0x7FF; | |
v6 = (v4 >> 18) & 0xF; | |
v7 = (v4 >> 11) & 0x7F; | |
if ( v7 == 127 ) | |
v8 = 0; | |
else | |
v8 = v5 == 0; | |
if ( v8 ) | |
v9 = v6 == 0; | |
else | |
v9 = 1; | |
if ( !v9 ) | |
{ | |
v10 = sub_1800B89C4(); | |
if ( !(((unsigned int)sub_1800B8E44(v6, v7) + v10) & 0x80000000) ) | |
{ | |
result = (unsigned int)sub_1800B8E44(v6, v7) + v10; | |
goto LABEL_20; | |
} | |
v13 = 328LL; | |
LABEL_23: | |
sub_1800D489C("%llx:%d", &byte_180101040, -2712496162282611829LL, v13); | |
} | |
goto LABEL_14; | |
} | |
LABEL_19: | |
result = 0xFFFFFFFFLL; | |
goto LABEL_20; | |
} | |
if ( (unsigned int)sub_1800B88B0(a1, &v14) == -1 ) | |
goto LABEL_19; | |
v5 = (*v14 >> 7) & 0x7FF; | |
v6 = (*v14 >> 25) & 0xF; | |
v7 = (*v14 >> 18) & 0x7F; | |
LABEL_14: | |
if ( v3 ) | |
{ | |
v12 = sub_1800B8C84(v6, v7); | |
if ( v12 != -1 ) | |
v5 = v12; | |
} | |
result = (unsigned int)sub_1800B89C4() + v5; | |
if ( result & 0x80000000 ) | |
{ | |
v13 = 353LL; | |
goto LABEL_23; | |
} | |
LABEL_20: | |
if ( 5139240511851214385LL != v15 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 180109AA0: using guessed type __int64 qword_180109AA0[3]; | |
//----- (00000001800B8E44) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800B8E44(int a1, int a2) | |
{ | |
int v2; // w19 | |
int v3; // w20 | |
int v4; // w0 | |
signed int v5; // w21 | |
unsigned __int64 i; // x22 | |
unsigned int v7; // w26 | |
bool v8; // zf | |
char v9; // zf | |
int v10; // w9 | |
v2 = a2; | |
v3 = a1; | |
switch ( a1 ) | |
{ | |
case 9: | |
v4 = 5; | |
break; | |
case 4: | |
v4 = 4; | |
break; | |
case 2: | |
v4 = 3; | |
break; | |
default: | |
v5 = -1; | |
goto LABEL_9; | |
} | |
v5 = sub_1800B9074(v4); | |
LABEL_9: | |
for ( i = 0LL; i < 0x4B; ++i ) | |
{ | |
v7 = dword_180109B8C[i]; | |
if ( ((v7 >> 18) & 0xF) == v3 ) | |
v8 = ((v7 >> 11) & 0x7F) == v2; | |
else | |
v8 = 0; | |
if ( v8 ) | |
{ | |
v9 = ((v7 >> 22) & 0xF) == (unsigned int)sub_1800B895C() ? 1 : (v7 & 0x3C00000) == 62914560; | |
if ( v9 ) | |
{ | |
if ( v5 == -1 ) | |
{ | |
if ( (unsigned int)sub_1800B8990() >= v7 >> 26 ) | |
return v7 & 0x7FF; | |
} | |
else if ( v5 == v7 >> 26 ) | |
{ | |
return v7 & 0x7FF; | |
} | |
} | |
} | |
} | |
if ( v5 != -1 ) | |
{ | |
v10 = HIDWORD(qword_1801158C8[2151]); | |
if ( !(v10 & 0x800000) ) | |
HIDWORD(qword_1801158C8[2151]) = (v3 & 0x3FF | ((v2 & 0x7F) << 16)) & 0xFFFF03FF | ((v5 & 0x3F) << 10) | v10 & 0xFF000000 | 0x800000; | |
} | |
return 0xFFFFFFFFLL; | |
} | |
// 180109B8C: using guessed type int dword_180109B8C[]; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800B8F78) ---------------------------------------------------- | |
char *__fastcall sub_1800B8F78(__int64 a1, unsigned int a2, int a3) | |
{ | |
int v3; // w19 | |
unsigned int v4; // w20 | |
unsigned int v5; // w8 | |
unsigned __int64 v6; // x9 | |
char *result; // x0 | |
unsigned int v8; // w12 | |
bool v9; // cf | |
bool v10; // zf | |
v3 = a3; | |
v4 = a2; | |
v5 = sub_1800B8990(); | |
v6 = 0LL; | |
result = &byte_180109CB9[3]; | |
while ( v6 < 0x30 ) | |
{ | |
*(result - 1); | |
v8 = (unsigned __int16)(*(_WORD *)(result - 3) >> 8); | |
*(result - 1); | |
if ( (unsigned __int8)*(_WORD *)(result - 3) == v3 ) | |
{ | |
v9 = v8 >= v4; | |
v10 = v8 == v4; | |
} | |
else | |
{ | |
v9 = 1; | |
v10 = 0; | |
} | |
if ( (v10 || !v9) | |
&& v5 >= ((*(unsigned __int16 *)(result - 3) | ((unsigned __int8)*(result - 1) << 16)) & 0xFF0000u) >> 16 ) | |
{ | |
return result; | |
} | |
++v6; | |
result += 27; | |
} | |
return 0LL; | |
} | |
//----- (00000001800B9000) ---------------------------------------------------- | |
unsigned __int64 __fastcall sub_1800B9000(__int64 a1, unsigned int a2, unsigned int a3, int a4) | |
{ | |
__int64 i; // x8 | |
unsigned int v5; // w11 | |
__int64 v6; // x12 | |
unsigned __int64 v7; // x12 | |
for ( i = 0LL; ; i |= v7 << ((unsigned __int8)v5 - (unsigned __int8)a2) ) | |
{ | |
if ( a4 ) | |
{ | |
v5 = a3 >> 6 << 6; | |
v6 = *(_QWORD *)(a1 + 8LL * (a3 >> 6)); | |
} | |
else | |
{ | |
v5 = 32 * (a3 >> 5); | |
v6 = *(unsigned int *)(a1 + 4LL * (a3 >> 5)); | |
} | |
v7 = ((1LL << ((unsigned __int8)a3 + 1 - (unsigned __int8)v5)) - 1) & v6; | |
if ( v5 <= a2 ) | |
break; | |
a3 = v5 - 1; | |
} | |
return (v7 >> ((unsigned __int8)a2 - (unsigned __int8)v5)) | i; | |
} | |
//----- (00000001800B9074) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800B9074(int a1) | |
{ | |
int v1; // w8 | |
int *v2; // x19 | |
signed __int64 result; // x0 | |
int v4; // [xsp+4h] [xbp-1Ch] | |
__int64 v5; // [xsp+8h] [xbp-18h] | |
v1 = a1; | |
v5 = 5139240511851214385LL; | |
v4 = 0; | |
if ( (unsigned int)(a1 - 3) > 2 ) | |
{ | |
v2 = &v4; | |
} | |
else | |
{ | |
v2 = (int *)qword_180111430[a1 - 3]; | |
result = (unsigned int)*v2; | |
if ( (_DWORD)result ) | |
goto LABEL_6; | |
} | |
result = sub_1800B8AD0(20, v1); | |
*v2 = result; | |
LABEL_6: | |
if ( 5139240511851214385LL != v5 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180111430: using guessed type __int64 qword_180111430[3]; | |
//----- (00000001800B9100) ---------------------------------------------------- | |
void __fastcall sub_1800B9100(__int64 a1, _BYTE *a2, int a3, unsigned int a4) | |
{ | |
unsigned int v4; // w21 | |
int v5; // w22 | |
_BYTE *v6; // x19 | |
__int64 v7; // x20 | |
unsigned int i; // w23 | |
signed __int64 v9; // x23 | |
_QWORD *v10; // x24 | |
unsigned int j; // w25 | |
int v12; // w0 | |
v4 = a4; | |
v5 = a3; | |
v6 = a2; | |
v7 = a1; | |
for ( i = 0; v5 + i <= v4 && (unsigned int)sub_1800B8AD0(20, v5 + i) != -1; ++i ) | |
; | |
if ( i ) | |
{ | |
v9 = 4LL * i; | |
v10 = (_QWORD *)sub_1800EDBF4(v9); | |
for ( j = 0; v5 + j <= v4; ++j ) | |
{ | |
v12 = sub_1800B8AD0(20, v5 + j); | |
if ( v12 == -1 ) | |
break; | |
*((_DWORD *)v10 + j) = v12; | |
} | |
sub_1800EC16C(v7, v6, v10, v9); | |
sub_1800EE010(v10); | |
} | |
} | |
//----- (00000001800B91E0) ---------------------------------------------------- | |
void __fastcall sub_1800B91E0(_BYTE *a1, _BYTE *a2) | |
{ | |
_BYTE *v2; // x19 | |
_BYTE *v3; // x20 | |
unsigned int v4; // w0 | |
unsigned int v5; // w20 | |
int v6; // w19 | |
const char *v7; // x10 | |
char *v8; // x11 | |
const char *v9; // x8 | |
unsigned int v10; // [xsp+2Ch] [xbp-44h] | |
unsigned int v11; // [xsp+30h] [xbp-40h] | |
int v12; // [xsp+34h] [xbp-3Ch] | |
char v13; // [xsp+38h] [xbp-38h] | |
unsigned int v14; // [xsp+3Ch] [xbp-34h] | |
__int64 v15; // [xsp+40h] [xbp-30h] | |
__int64 v16; // [xsp+48h] [xbp-28h] | |
v2 = a2; | |
v3 = a1; | |
v16 = 5139240511851214385LL; | |
v10 = 0; | |
if ( (unsigned int)sub_1800B8888(&v12, (int *)&v11, (int *)&v10) ) | |
{ | |
v7 = "PCPU"; | |
v8 = &byte_180101040; | |
if ( v12 == 4 ) | |
v8 = "GPU"; | |
if ( v12 != 9 ) | |
v7 = v8; | |
if ( v12 == 2 ) | |
v9 = "CPU"; | |
else | |
v9 = v7; | |
sub_1800D489C( | |
"Binning for %s sram mode %d not found for current %s sram revision %d\n", | |
&byte_180101040, | |
(__int64)v9, | |
v11, | |
v9, | |
v10); | |
} | |
if ( !(sub_1800EBDF4(0LL, v3, &v15) & 1) ) | |
sub_1800D489C("%s node not found\n", &byte_180101040, (__int64)v3); | |
v4 = sub_1800B948C(v15, "voltage-states5", 8, 8, 2u, 1); | |
sub_1800B96DC(v15, "voltage-states5-extra", 8, 9, v4); | |
v5 = sub_1800B948C(v15, "voltage-states1", 1, 1, 2u, 1); | |
sub_1800B96DC(v15, "voltage-states1-extra", 1, 2, v5); | |
sub_1800D2938(1, v5 - 3, &v13, &v14); | |
sub_1800EC320(v15, "nominal-performance1", 0x3B9ACA000000uLL / v14); | |
sub_1800D2938(1, v5 - 4, &v13, &v14); | |
sub_1800EC320(v15, "boost-performance1", 0x3B9ACA000000uLL / v14); | |
sub_1800EC320(v15, "total-rails-leakage", 0); | |
sub_1800B9100(v15, "rosc_cpu", 12, 0xCu); | |
sub_1800B9100(v15, "rosc_gpu", 6, 0xBu); | |
if ( v2 ) | |
{ | |
if ( !(sub_1800EBDF4(0LL, v2, &v15) & 1) ) | |
sub_1800D489C("%s node not found\n", &byte_180101040, (__int64)v2); | |
sub_1800B948C(v15, "perf-states-sram", 3, 4, 0, 0); | |
v6 = sub_1800B948C(v15, "perf-states", 3, 3, 0, 0); | |
sub_1800EC320(v15, "perf-state-count", v6); | |
sub_1800EC320(v15, "gpu-num-perf-states", v6 - 1); | |
} | |
if ( 5139240511851214385LL != v16 ) | |
sub_1800D4A5C(); | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
//----- (00000001800B948C) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B948C(__int64 a1, _BYTE *a2, int a3, int a4, unsigned int a5, int a6) | |
{ | |
int v6; // w21 | |
unsigned int v7; // w22 | |
int v8; // w23 | |
int v9; // w24 | |
_BYTE *v10; // x19 | |
__int64 v11; // x20 | |
__int64 i; // x28 | |
signed __int64 v13; // x26 | |
__int64 j; // x19 | |
unsigned __int64 v15; // x8 | |
__int64 v16; // x27 | |
unsigned __int64 v17; // x8 | |
__int64 v18; // x10 | |
_DWORD *v19; // x9 | |
signed __int64 v20; // x10 | |
_DWORD *v21; // x10 | |
int v22; // t1 | |
signed __int64 v24; // [xsp+18h] [xbp-88h] | |
_BYTE *v25; // [xsp+28h] [xbp-78h] | |
char v26; // [xsp+30h] [xbp-70h] | |
int v27; // [xsp+34h] [xbp-6Ch] | |
int v28; // [xsp+38h] [xbp-68h] | |
unsigned int v29; // [xsp+3Ch] [xbp-64h] | |
int v30; // [xsp+40h] [xbp-60h] | |
int v31; // [xsp+44h] [xbp-5Ch] | |
__int64 v32; // [xsp+48h] [xbp-58h] | |
v6 = a6; | |
v7 = a5; | |
v8 = a4; | |
v9 = a3; | |
v10 = a2; | |
v11 = a1; | |
v32 = 5139240511851214385LL; | |
if ( (unsigned int)sub_1800D2938(a3, a5, &v30, &v31) ) | |
{ | |
for ( i = 0LL; (unsigned int)sub_1800D2938(v9, v7 + (unsigned int)i, &v28, &v29); i = (unsigned int)(i + 1) ) | |
{ | |
if ( (_DWORD)i && !v29 || v29 == v31 && (_DWORD)i && v28 == v30 ) | |
goto LABEL_12; | |
if ( !(unsigned int)sub_1800D2938(v8, v7 + (unsigned int)i, &v27, &v26) ) | |
goto LABEL_29; | |
} | |
if ( !(_DWORD)i ) | |
goto LABEL_29; | |
LABEL_12: | |
v25 = v10; | |
v24 = 8LL * (unsigned int)i; | |
v13 = sub_1800EDBF4(8LL * (unsigned int)i); | |
for ( j = 0LL; ; j = (unsigned int)(j + 1) ) | |
{ | |
v16 = v7 + (unsigned int)j; | |
if ( !(sub_1800D2938(v9, v7 + (unsigned int)j, &v28, &v29) & 1) ) | |
break; | |
LODWORD(v15) = v29; | |
if ( (_DWORD)j ) | |
{ | |
if ( !v29 ) | |
break; | |
} | |
if ( v29 == v31 && (_DWORD)j && v28 == v30 ) | |
break; | |
if ( (unsigned int)i < (unsigned int)j ) | |
sub_1800D489C("number of states (%d) less than required for %s (%d)\n", &byte_180101040, i, v25, j, v24); | |
if ( v6 ) | |
v15 = 0x3B9ACA000000uLL / v29; | |
*(_DWORD *)(v13 + 8LL * (unsigned int)j) = v15; | |
sub_1800D2938(v8, v7 + j, &v27, &v26); | |
*(_DWORD *)(v13 + 8LL * (unsigned int)j + 4) = v27; | |
} | |
v17 = (unsigned int)j; | |
while ( v17 >= 2 ) | |
{ | |
v18 = (unsigned int)(v17 - 1); | |
v19 = (_DWORD *)(v13 + 8LL * (unsigned int)v18); | |
if ( *(_DWORD *)v13 != *v19 ) | |
break; | |
v20 = v13 + 8 * v18; | |
v22 = *(_DWORD *)(v20 + 4); | |
v21 = (_DWORD *)(v20 + 4); | |
if ( *(_DWORD *)(v13 + 4) != v22 ) | |
break; | |
*v19 = 0; | |
*v21 = 0; | |
--v17; | |
v16 = (unsigned int)(v16 - 1); | |
} | |
sub_1800EC16C(v11, v25, (_QWORD *)v13, v24); | |
sub_1800EE010((_QWORD *)v13); | |
} | |
else | |
{ | |
LABEL_29: | |
v16 = 0LL; | |
} | |
if ( 5139240511851214385LL != v32 ) | |
sub_1800D4A5C(); | |
return v16; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
//----- (00000001800B96DC) ---------------------------------------------------- | |
void __fastcall sub_1800B96DC(__int64 a1, _BYTE *a2, int a3, int a4, unsigned int a5) | |
{ | |
unsigned int v5; // w21 | |
int v6; // w22 | |
int v7; // w23 | |
_BYTE *v8; // x19 | |
__int64 v9; // x20 | |
unsigned int v10; // w25 | |
unsigned int i; // w24 | |
unsigned int v12; // w24 | |
_QWORD *v13; // x25 | |
unsigned int v14; // w26 | |
int v15; // [xsp+Ch] [xbp-64h] | |
int v16; // [xsp+10h] [xbp-60h] | |
char v17; // [xsp+14h] [xbp-5Ch] | |
int v18; // [xsp+18h] [xbp-58h] | |
int v19; // [xsp+1Ch] [xbp-54h] | |
int v20; // [xsp+20h] [xbp-50h] | |
int v21; // [xsp+24h] [xbp-4Ch] | |
__int64 v22; // [xsp+28h] [xbp-48h] | |
v5 = a5; | |
v6 = a4; | |
v7 = a3; | |
v8 = a2; | |
v9 = a1; | |
v22 = 5139240511851214385LL; | |
if ( (unsigned int)sub_1800D2938(a4, a5, &v19, &v17) && (unsigned int)sub_1800D2938(v7, v5, &v20, &v21) ) | |
{ | |
v10 = 0; | |
for ( i = v5; (unsigned int)sub_1800D2938(v7, i, &v16, &v18); ++i ) | |
{ | |
if ( !(sub_1800D2938(v6, i, &v15, &v17) & 1) ) | |
v15 = v19; | |
if ( v18 != v21 || v16 != v20 || v15 != v19 ) | |
++v10; | |
} | |
if ( v10 ) | |
{ | |
v12 = 4 * v10; | |
v13 = (_QWORD *)sub_1800EDBF4(4LL * v10); | |
v14 = 0; | |
while ( (unsigned int)sub_1800D2938(v7, v5, &v16, &v18) ) | |
{ | |
if ( !(sub_1800D2938(v6, v5, &v15, &v17) & 1) ) | |
v15 = v19; | |
if ( v18 != v21 || v16 != v20 || v15 != v19 ) | |
*((_DWORD *)v13 + v14++) = v5; | |
++v5; | |
} | |
sub_1800EC16C(v9, v8, v13, v12); | |
sub_1800EE010(v13); | |
} | |
} | |
if ( 5139240511851214385LL != v22 ) | |
sub_1800D4A5C(); | |
} | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
//----- (00000001800B98B4) ---------------------------------------------------- | |
void sub_1800B98B4() | |
{ | |
++LODWORD(qword_1801158C8[2155]); | |
} | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800B98C8) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B98C8(__int64 result, int a2) | |
{ | |
__int64 v2; // x11 | |
_DWORD *v3; // x8 | |
v2 = LODWORD(qword_1801158C8[2155]); | |
v3 = (_DWORD *)(MEMORY[0x180119C38] + 8 * v2); | |
*v3 = result - MEMORY[0x180119C30]; | |
v3[1] = a2; | |
LODWORD(qword_1801158C8[2155]) = v2 + 1; | |
return result; | |
} | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800B98F8) ---------------------------------------------------- | |
signed __int64 sub_1800B98F8() | |
{ | |
signed __int64 result; // x0 | |
__int64 v1; // [xsp+0h] [xbp-40h] | |
__int64 v2; // [xsp+8h] [xbp-38h] | |
__int64 v3; // [xsp+10h] [xbp-30h] | |
int v4; // [xsp+1Ch] [xbp-24h] | |
_DWORD *v5; // [xsp+20h] [xbp-20h] | |
__int64 v6; // [xsp+28h] [xbp-18h] | |
v6 = 5139240511851214385LL; | |
if ( !(sub_1800EBDF4(0LL, "arm-io/pmgr", &v3) & 1) ) | |
sub_1800D489C("arm-io/pmgr not found\n", &byte_180101040, v1); | |
if ( !(sub_1800EBDF4(0LL, "arm-io", &v2) & 1) ) | |
sub_1800D489C("arm-io not found\n", &byte_180101040, v1); | |
MEMORY[0x180119C84] = 0; | |
if ( (unsigned int)sub_1800EC0DC(v3, "optional-bridge-mask", &v5, &v4) && v4 == 4 ) | |
MEMORY[0x180119C84] = *v5; | |
sub_1800BA258(v3, "devices", (_QWORD *)0x180119C48LL, (_DWORD *)0x180119C74LL); | |
sub_1800BA258(v3, "ps-regs", (_QWORD *)0x180119C40LL, (_DWORD *)0x180119C70LL); | |
MEMORY[0x180119C74] /= 0x30u; | |
MEMORY[0x180119C70] /= 0xCu; | |
sub_1800BA258(v3, "bridge-reg-index", &v5, &v4); | |
MEMORY[0x180119C80] = *v5; | |
MEMORY[0x180119C50] = 0LL; | |
MEMORY[0x180119C58] = 0LL; | |
MEMORY[0x180119C68] = 0LL; | |
MEMORY[0x180119C60] = 0LL; | |
sub_1800BA258(v3, "reg", (_QWORD *)0x180119C58LL, (_DWORD *)0x180119C78LL); | |
result = sub_1800BA258(v2, "ranges", (_QWORD *)0x180119C60LL, (_DWORD *)0x180119C7CLL); | |
MEMORY[0x180119C78] >>= 4; | |
MEMORY[0x180119C7C] /= 0x18u; | |
if ( 5139240511851214385LL != v6 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
//----- (00000001800B9AA4) ---------------------------------------------------- | |
__int64 __fastcall sub_1800B9AA4(_BYTE *a1) | |
{ | |
_BYTE *v1; // x19 | |
__int64 v2; // x8 | |
int v3; // w20 | |
unsigned int *v4; // x8 | |
unsigned int v5; // w21 | |
__int64 result; // x0 | |
__int64 v7; // [xsp+28h] [xbp-38h] | |
__int64 v8; // [xsp+30h] [xbp-30h] | |
__int64 v9; // [xsp+38h] [xbp-28h] | |
v1 = a1; | |
v9 = 5139240511851214385LL; | |
if ( *a1 & 0x10 ) | |
{ | |
result = 0LL; | |
} | |
else | |
{ | |
v2 = (unsigned __int8)a1[11]; | |
if ( (unsigned int)v2 >= MEMORY[0x180119C70] ) | |
sub_1800D489C("pmgr %s %x use wrong ps group\n", &byte_180101040, (__int64)(a1 + 32), (unsigned __int8)a1[3]); | |
v3 = (unsigned __int8)a1[10]; | |
if ( !((1LL << v3) & *(unsigned int *)(MEMORY[0x180119C40] + 12 * v2 + 8)) ) | |
sub_1800D489C("pmgr %s %x use forbidden ps index\n", &byte_180101040, (__int64)(a1 + 32), (unsigned __int8)a1[3]); | |
v4 = (unsigned int *)(MEMORY[0x180119C40] + 12 * v2); | |
v5 = v4[1]; | |
if ( !(sub_1800BA2A0(*v4, &v8, &v7) & 1) ) | |
sub_1800D489C( | |
"pmgr %s %x use a ps group with invalid mapping\n", | |
&byte_180101040, | |
(__int64)(v1 + 32), | |
(unsigned __int8)v1[3]); | |
result = v8 + v5 + 8 * v3; | |
if ( result + 8 >= (unsigned __int64)(v7 + v8) ) | |
sub_1800D489C( | |
"pmgr %s %x use a PS address %p outside the ps mapping 0x%llx size 0x%llx\n", | |
&byte_180101040, | |
(__int64)(v1 + 32), | |
(unsigned __int8)v1[3], | |
v8 + v5 + 8 * v3, | |
v8, | |
v7 + v8); | |
} | |
if ( 5139240511851214385LL != v9 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
//----- (00000001800B9C08) ---------------------------------------------------- | |
// write access to const memory has been detected, the output may be wrong! | |
void __fastcall sub_1800B9C08(int a1, int a2) | |
{ | |
int v2; // w20 | |
__int64 v3; // x1 | |
__int64 v4; // x2 | |
__int64 v5; // x3 | |
__int64 v6; // x4 | |
__int64 v7; // x5 | |
__int64 v8; // x6 | |
__int64 v9; // x7 | |
int v10; // w22 | |
__int64 v11; // x8 | |
__int64 v12; // x23 | |
signed __int64 v13; // x25 | |
unsigned __int64 v14; // x21 | |
__int64 v15; // x8 | |
unsigned __int64 v16; // x9 | |
unsigned __int64 v17; // x9 | |
unsigned __int64 v18; // x10 | |
signed __int64 v19; // x8 | |
signed __int64 v20; // x12 | |
unsigned __int64 v21; // x20 | |
signed __int64 v22; // x24 | |
unsigned __int64 v23; // x1 | |
unsigned int i; // w22 | |
unsigned __int64 v25; // x21 | |
unsigned int *v26; // x0 | |
unsigned int *v27; // x20 | |
int v28; // w9 | |
__int64 v29; // x0 | |
unsigned int v30; // w9 | |
__int64 *v31; // x24 | |
__int64 v32; // x8 | |
int v33; // w9 | |
unsigned int j; // w23 | |
int v35; // w10 | |
signed __int64 v36; // x22 | |
__int64 v37; // x26 | |
__int64 v38; // x24 | |
__int64 v39; // x1 | |
__int64 v40; // x2 | |
__int64 v41; // x3 | |
__int64 v42; // x4 | |
__int64 v43; // x5 | |
__int64 v44; // x6 | |
__int64 v45; // x7 | |
__int64 v46; // x5 | |
__int64 v47; // x6 | |
__int64 v48; // x7 | |
int v49; // w20 | |
unsigned __int64 v50; // x19 | |
signed int v51; // w19 | |
_DWORD *v52; // x0 | |
__int64 v53; // [xsp+0h] [xbp-150h] | |
__int64 v54; // [xsp+10h] [xbp-140h] | |
unsigned int v55; // [xsp+30h] [xbp-120h] | |
int v56; // [xsp+34h] [xbp-11Ch] | |
char v57; // [xsp+38h] [xbp-118h] | |
int v58; // [xsp+3Ch] [xbp-114h] | |
__int64 v59; // [xsp+40h] [xbp-110h] | |
__int64 v60; // [xsp+48h] [xbp-108h] | |
__int64 v61; // [xsp+50h] [xbp-100h] | |
char v62; // [xsp+58h] [xbp-F8h] | |
int v63; // [xsp+98h] [xbp-B8h] | |
__int64 v64; // [xsp+A0h] [xbp-B0h] | |
__int64 v65; // [xsp+A8h] [xbp-A8h] | |
char v66; // [xsp+B0h] [xbp-A0h] | |
char v67; // [xsp+B1h] [xbp-9Fh] | |
int v68; // [xsp+B8h] [xbp-98h] | |
__int64 v69; // [xsp+C0h] [xbp-90h] | |
__int64 v70; // [xsp+C8h] [xbp-88h] | |
char v71; // [xsp+D0h] [xbp-80h] | |
char v72; // [xsp+D1h] [xbp-7Fh] | |
int v73; // [xsp+D8h] [xbp-78h] | |
__int64 v74; // [xsp+E0h] [xbp-70h] | |
__int64 v75; // [xsp+E8h] [xbp-68h] | |
__int16 v76; // [xsp+F0h] [xbp-60h] | |
__int64 v77; // [xsp+F8h] [xbp-58h] | |
v2 = a2; | |
v77 = 5139240511851214385LL; | |
v56 = a1; | |
sub_1800F0620((signed __int64 *)0x180119C40LL, 0, 0xA8uLL); | |
dword_180114578 = v2; | |
sub_1800B98F8(); | |
v10 = MEMORY[0x180119C74]; | |
v11 = (unsigned int)(MEMORY[0x180119C74] - 1); | |
v12 = (signed int)v11; | |
v13 = 16 * ((v11 << 32 >> 31) + (signed int)v11) | 4; | |
v14 = 0xFFFFLL; | |
while ( !(--v10 & 0x80000000) ) | |
{ | |
v15 = MEMORY[0x180119C48]; | |
v16 = *(unsigned __int8 *)(MEMORY[0x180119C48] + 48LL * v10 + 3); | |
if ( v14 <= v16 ) | |
{ | |
sub_1800EF260( | |
(__int64)"pmgr %s %x id greater than next id\n", | |
v3, | |
v4, | |
v5, | |
v6, | |
v7, | |
v8, | |
v9, | |
MEMORY[0x180119C48] + 48LL * v10 + 32); | |
v15 = MEMORY[0x180119C48]; | |
v16 = *(unsigned __int8 *)(MEMORY[0x180119C48] + 48LL * v10 + 3); | |
} | |
v14 = v16; | |
v17 = *(unsigned __int8 *)(v15 + 48LL * v10 + 24); | |
if ( *(_BYTE *)(v15 + 48LL * v10 + 24) ) | |
{ | |
v18 = 0LL; | |
v19 = v15 + 48 * v12 + 28; | |
while ( v18 < v17 ) | |
{ | |
v20 = 1LL << *(_BYTE *)(v19 + v18++); | |
if ( !((unsigned int)v20 & MEMORY[0x180119C84]) ) | |
{ | |
sub_1800BA39C(6443605192LL, v14); | |
break; | |
} | |
} | |
} | |
if ( sub_1800BA3EC(6443605192LL, v14) ) | |
{ | |
v21 = 0LL; | |
v22 = v13; | |
while ( v21 <= 3 ) | |
{ | |
v23 = *(unsigned __int8 *)(MEMORY[0x180119C48] + v22); | |
if ( (unsigned int)v23 >= (unsigned int)v14 ) | |
sub_1800D489C( | |
"pmgr %s %x has one child with an ID %x lower than itself\n", | |
&byte_180101040, | |
MEMORY[0x180119C48] + 48LL * v10 + 32, | |
*(unsigned __int8 *)(MEMORY[0x180119C48] + 48LL * v10 + 3)); | |
sub_1800BA39C(6443605192LL, v23); | |
++v21; | |
++v22; | |
} | |
} | |
--v12; | |
v13 -= 48LL; | |
} | |
for ( i = 0; i < MEMORY[0x180119C74]; ++i ) | |
{ | |
v25 = *(unsigned __int8 *)(MEMORY[0x180119C48] + 48LL * i + 3); | |
if ( sub_1800BA3EC(6443605192LL, v25) ) | |
{ | |
v26 = (unsigned int *)sub_1800B9AA4((_BYTE *)(MEMORY[0x180119C48] + 48LL * i)); | |
v27 = v26; | |
if ( v26 ) | |
{ | |
v28 = *v26 & 0xF; | |
if ( v28 != 15 ) | |
{ | |
if ( v28 == 4 ) | |
{ | |
v29 = 6443605160LL; | |
} | |
else | |
{ | |
if ( v28 ) | |
sub_1800D489C( | |
"pmgr %s %x ps(%p) has an invalid value %x\n", | |
&byte_180101040, | |
MEMORY[0x180119C48] + 48LL * i + 32, | |
*(unsigned __int8 *)(MEMORY[0x180119C48] + 48LL * i + 3), | |
v26, | |
*v26); | |
v29 = 6443605128LL; | |
} | |
sub_1800BA39C(v29, v25); | |
*v27 |= 0xFu; | |
while ( ~*v27 & 0xF0 ) | |
; | |
} | |
} | |
} | |
} | |
if ( sub_1800EBDF4(0LL, "arm-io/pmgr", &v61) & 1 ) | |
{ | |
v30 = 0; | |
v31 = qword_1801121F8; | |
while ( 1 ) | |
{ | |
v49 = MEMORY[0x180119C74]; | |
if ( v30 >= MEMORY[0x180119C74] ) | |
break; | |
v32 = MEMORY[0x180119C48]; | |
v55 = v30; | |
v33 = *(unsigned __int8 *)(MEMORY[0x180119C48] + 48LL * v30 + 24); | |
if ( v33 ) | |
{ | |
for ( j = 0; j < (unsigned __int8)v33; ++j ) | |
{ | |
v35 = *(unsigned __int8 *)(v32 + 48LL * v55 + j + 28); | |
v36 = 1LL << v35; | |
if ( !(MEMORY[0x180119C84] & (unsigned __int64)(1LL << v35)) ) | |
{ | |
v37 = (__int64)v31; | |
if ( !(sub_1800BA2A0(MEMORY[0x180119C80] + v35, &v60, &v59) & 1) ) | |
sub_1800D489C( | |
"pmgr %s %x bridge %d doesn't exist\n", | |
&byte_180101040, | |
MEMORY[0x180119C48] + 48LL * v55 + 32, | |
*(unsigned __int8 *)(MEMORY[0x180119C48] + 48LL * v55 + 3), | |
*(unsigned __int8 *)(MEMORY[0x180119C48] + 48LL * v55 + j + 28)); | |
v38 = v60; | |
LODWORD(qword_1801158C8[2155]) = 0; | |
MEMORY[0x180119C30] = v38; | |
MEMORY[0x180119C38] = 0LL; | |
v63 = v56; | |
v64 = 0LL; | |
v65 = v38 - 1; | |
v66 = 1; | |
v67 = 1; | |
v68 = v56; | |
v69 = v59 + v38; | |
v70 = -1LL; | |
v71 = 1; | |
v72 = 1; | |
v73 = -1; | |
v74 = -1LL; | |
v75 = -1LL; | |
v76 = 0; | |
sub_1800B85F4((signed __int64)sub_1800B98B4, v56, (__int64)&v63, v37, (__int64)qword_18010C428); | |
if ( LODWORD(qword_1801158C8[2155]) ) | |
{ | |
v54 = LODWORD(qword_1801158C8[2155]); | |
sub_1800EF260( | |
(__int64)"Bridge %s 0x%llx %d tunables found\n", | |
v39, | |
v40, | |
v41, | |
v42, | |
v43, | |
v44, | |
v45, | |
MEMORY[0x180119C48] + 48LL * v55 + 32); | |
v31 = (__int64 *)v37; | |
sub_1800B85F4(0LL, v56, (__int64)&v63, v37, (__int64)qword_18010C428); | |
MEMORY[0x180119C38] = sub_1800EDBF4(8LL * LODWORD(qword_1801158C8[2155])); | |
if ( !MEMORY[0x180119C38] ) | |
sub_1800D489C("pmgr: not enough space for tunable\n", &byte_180101040, v53); | |
LODWORD(qword_1801158C8[2155]) = 0; | |
sub_1800B85F4((signed __int64)sub_1800B98C8, v56, (__int64)&v63, v37, (__int64)qword_18010C428); | |
sub_1800EFC74( | |
&v62, | |
0x40uLL, | |
0LL, | |
0x40uLL, | |
(__int64)"bridge-settings-%d", | |
v46, | |
v47, | |
v48, | |
*(unsigned __int8 *)(MEMORY[0x180119C48] + 48LL * v55 + j + 28)); | |
sub_1800EC16C(v61, &v62, MEMORY[0x180119C38], 8 * LODWORD(qword_1801158C8[2155])); | |
sub_1800EE010(MEMORY[0x180119C38]); | |
} | |
else | |
{ | |
sub_1800EF260( | |
(__int64)"Bridge %s 0x%llx no tunables found\n", | |
v39, | |
v40, | |
v41, | |
v42, | |
v43, | |
v44, | |
v45, | |
MEMORY[0x180119C48] + 48LL * v55 + 32); | |
sub_1800EC0DC(v61, "optional-bridge-mask", &v62, &v57); | |
v58 = **(_DWORD **)&v62 | v36; | |
sub_1800EC16C(v61, "optional-bridge-mask", &v58, 4u); | |
v31 = (__int64 *)v37; | |
} | |
v32 = MEMORY[0x180119C48]; | |
LOBYTE(v33) = *(_BYTE *)(MEMORY[0x180119C48] + 48LL * v55 + 24); | |
} | |
} | |
} | |
v30 = v55 + 1; | |
} | |
} | |
else | |
{ | |
v49 = MEMORY[0x180119C74]; | |
} | |
while ( !(--v49 & 0x80000000) ) | |
{ | |
v50 = *(unsigned __int8 *)(MEMORY[0x180119C48] + 48LL * v49 + 3); | |
if ( sub_1800BA3EC(6443605128LL, v50) ) | |
{ | |
v51 = 0; | |
LABEL_50: | |
v52 = (_DWORD *)sub_1800B9AA4((_BYTE *)(MEMORY[0x180119C48] + 48LL * v49)); | |
if ( v52 ) | |
{ | |
if ( !(*v52 & 0xF) ) | |
sub_1800D489C( | |
"pmgr %s %x ps should be enabled\n", | |
&byte_180101040, | |
MEMORY[0x180119C48] + 48LL * v49 + 32, | |
*(unsigned __int8 *)(MEMORY[0x180119C48] + 48LL * v49 + 3), | |
v54); | |
*v52 = *v52 & 0xFFFFFFF0 | v51; | |
while ( (*v52 & 0xF0) != 16 * v51 ) | |
; | |
} | |
} | |
else if ( sub_1800BA3EC(6443605160LL, v50) ) | |
{ | |
v51 = 4; | |
goto LABEL_50; | |
} | |
} | |
if ( 5139240511851214385LL != v77 ) | |
sub_1800D4A5C(); | |
} | |
// 1800B9C74: write access to const memory at 180114578 has been detected | |
// 180101040: using guessed type char byte_180101040; | |
// 18010C428: using guessed type __int64 qword_18010C428[4]; | |
// 1801121F8: using guessed type __int64 qword_1801121F8[2]; | |
// 180114578: using guessed type int dword_180114578; | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800BA258) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BA258(__int64 a1, _BYTE *a2, _QWORD *a3, _DWORD *a4) | |
{ | |
__int64 v4; // x19 | |
signed __int64 result; // x0 | |
v4 = (__int64)a2; | |
*a4 = 0; | |
result = sub_1800EC0DC(a1, a2, a3, a4); | |
if ( !(result & 1) ) | |
sub_1800D489C("Node %s not found\n", &byte_180101040, v4); | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800BA2A0) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BA2A0(unsigned int a1, _QWORD *a2, _QWORD *a3) | |
{ | |
__int64 v3; // x9 | |
unsigned __int64 v5; // x8 | |
unsigned int *v6; // x12 | |
__int64 *v7; // x13 | |
unsigned __int64 v8; // x16 | |
__int64 v9; // x14 | |
unsigned __int64 v10; // x16 | |
__int64 v11; // x8 | |
if ( MEMORY[0x180119C78] <= a1 ) | |
return 0LL; | |
if ( MEMORY[0x180119C50] ) | |
{ | |
*a2 = *(unsigned int *)(MEMORY[0x180119C50] + 8LL * a1); | |
v3 = *(unsigned int *)(MEMORY[0x180119C50] + 8LL * a1 + 4); | |
} | |
else | |
{ | |
*a2 = *(_QWORD *)(MEMORY[0x180119C58] + 16LL * a1); | |
v3 = *(_QWORD *)(MEMORY[0x180119C58] + 16LL * a1 + 8); | |
} | |
v5 = 0LL; | |
*a3 = v3; | |
v6 = (unsigned int *)(MEMORY[0x180119C68] + 4LL); | |
v7 = (__int64 *)(MEMORY[0x180119C60] + 8LL); | |
while ( v5 < MEMORY[0x180119C7C] ) | |
{ | |
if ( MEMORY[0x180119C68] ) | |
{ | |
v8 = *(v6 - 1); | |
v9 = *a2 - v8; | |
if ( *a2 >= v8 && *a2 < (unsigned __int64)(v6[1] + (unsigned int)v8) ) | |
{ | |
v11 = *v6; | |
LABEL_18: | |
*a2 = v9 + v11; | |
return 1LL; | |
} | |
} | |
if ( MEMORY[0x180119C60] ) | |
{ | |
v10 = *(v7 - 1); | |
v9 = *a2 - v10; | |
if ( *a2 >= v10 && *a2 < v7[1] + v10 ) | |
{ | |
v11 = *v7; | |
goto LABEL_18; | |
} | |
} | |
++v5; | |
v6 += 3; | |
v7 += 3; | |
} | |
return 1LL; | |
} | |
//----- (00000001800BA39C) ---------------------------------------------------- | |
__int64 __fastcall sub_1800BA39C(__int64 result, unsigned __int64 a2) | |
{ | |
if ( a2 >= 0x100 ) | |
sub_1800D489C("pmgr_dynamic_tunables_set_bit %d\n", &byte_180101040, a2); | |
*(_QWORD *)(result + ((a2 >> 3) & 0x1FFFFFFFFFFFFFF8LL)) |= 1LL << (a2 & 0x3F); | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800BA3EC) ---------------------------------------------------- | |
bool __fastcall sub_1800BA3EC(__int64 a1, unsigned __int64 a2) | |
{ | |
if ( a2 >= 0x100 ) | |
sub_1800D489C("pmgr_dynamic_tunables_get_bit %d\n", &byte_180101040, a2); | |
return (*(_QWORD *)(a1 + ((a2 >> 3) & 0x1FFFFFFFFFFFFFF8LL)) & (1LL << (a2 & 0x3F))) != 0; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800BA43C) ---------------------------------------------------- | |
__int64 __fastcall sub_1800BA43C(unsigned __int16 a1, unsigned __int16 a2) | |
{ | |
__int64 result; // x0 | |
MEMORY[0x206500004] = 0; | |
result = a1 | ((unsigned int)a2 << 16); | |
MEMORY[0x206500008] = result; | |
MEMORY[0x206500000] = 3; | |
return result; | |
} | |
//----- (00000001800BA5EC) ---------------------------------------------------- | |
signed __int64 *__fastcall sub_1800BA5EC(signed __int64 *result, unsigned __int64 a2, __int64 a3, int a4) | |
{ | |
int v4; // w23 | |
__int64 v5; // x19 | |
unsigned __int64 v6; // x22 | |
__int64 v7; // x20 | |
__int64 v8; // x25 | |
_DWORD *v9; // x21 | |
unsigned __int64 *v10; // x26 | |
signed __int64 v11; // x8 | |
__int64 v12; // x9 | |
signed __int64 v13; // x8 | |
__int64 v14; // x9 | |
v4 = a4; | |
v5 = a3; | |
v6 = a2; | |
v7 = (__int64)result; | |
v8 = (unsigned int)result; | |
v9 = (_DWORD *)(168LL * (unsigned int)result + 6443605232LL); | |
v10 = (unsigned __int64 *)(168LL * (unsigned int)result + 6443605240LL); | |
if ( !*(_DWORD *)(168LL * (unsigned int)result + 0x180119CF0LL) ) | |
goto LABEL_11; | |
if ( (*(_QWORD *)(168LL * (unsigned int)result + 0x180119CF8LL) ^ a2) >= 0x400 | |
|| *(_DWORD *)(168LL * (unsigned int)result + 0x180119D00LL) != a4 ) | |
{ | |
result = sub_1800BA730((__int64)result, 168LL * (unsigned int)result + 6443605232LL); | |
} | |
if ( *v9 ) | |
{ | |
v11 = 168 * v8 + 6443605232LL; | |
v12 = *(unsigned int *)(168 * v8 + 0x180119D14LL); | |
*(_QWORD *)(v11 + 8 * v12 + 40) = v5; | |
*(_DWORD *)(v11 + ((unsigned int)v12 & 0xFFFFFFFC) + 20) |= ((v6 >> 2) & 0xFF) << 8 * ((unsigned __int8)v12 & 3u); | |
LODWORD(v12) = *(_DWORD *)(168 * v8 + 0x180119D14LL) + 1; | |
*(_DWORD *)(v11 + 36) = v12; | |
if ( (_DWORD)v12 == 16 ) | |
result = sub_1800BA730(v7, (__int64)v9); | |
} | |
else | |
{ | |
LABEL_11: | |
*v9 = 1; | |
*v10 = v6; | |
v13 = 168 * v8 + 6443605232LL; | |
*(_DWORD *)(v13 + 16) = v4; | |
*(_DWORD *)(v13 + 4LL * *(unsigned int *)(168 * v8 + 0x180119D14LL) + 20) = ((v6 >> 2) & 0xFF) << 8 * (*(_DWORD *)(168 * v8 + 0x180119D14LL) & 3u); | |
v14 = *(unsigned int *)(168 * v8 + 0x180119D14LL); | |
*(_QWORD *)(v13 + 8 * v14 + 40) = v5; | |
*(_DWORD *)(v13 + 36) = v14 + 1; | |
} | |
return result; | |
} | |
//----- (00000001800BA730) ---------------------------------------------------- | |
signed __int64 *__fastcall sub_1800BA730(__int64 a1, __int64 a2) | |
{ | |
signed __int64 *v2; // x19 | |
unsigned int v3; // w10 | |
unsigned int v4; // w11 | |
__int64 v5; // x12 | |
int v6; // w13 | |
unsigned int i; // w13 | |
signed __int64 v8; // x11 | |
int v9; // w14 | |
int v10; // w11 | |
__int64 v11; // x12 | |
unsigned int j; // w10 | |
signed __int64 v13; // x11 | |
signed __int64 v14; // x11 | |
__int64 v15; // t1 | |
__int64 v16; // x15 | |
int v17; // w16 | |
int v18; // w11 | |
__int64 v19; // x13 | |
int v20; // w14 | |
v2 = (signed __int64 *)a2; | |
v3 = 0; | |
v4 = ((unsigned int)(*(_QWORD *)(a2 + 8) >> 10) << 6) & 0xFFFFFFFD | 2 * (*(_DWORD *)(a2 + 16) & 1) | (4 * *(_DWORD *)(a2 + 36) + 60) & 0x3C | 1; | |
v5 = *(_QWORD *)(8LL * (unsigned int)a1 + 0x18011A260LL); | |
v6 = *(_DWORD *)(4LL * (unsigned int)a1 + 0x18011A23CLL); | |
*(_DWORD *)(4LL * (unsigned int)a1 + 0x18011A23CLL) = v6 + 1; | |
for ( i = 4 * v6; ; i = 4 * v9 ) | |
{ | |
*(_DWORD *)(v5 + i) = v4; | |
if ( v3 > (unsigned int)(*(_DWORD *)(a2 + 36) - 1) >> 2 ) | |
break; | |
v8 = a2 + 4LL * v3++; | |
v4 = *(_DWORD *)(v8 + 20); | |
v5 = *(_QWORD *)(8LL * (unsigned int)a1 + 0x18011A260LL); | |
v9 = *(_DWORD *)(4LL * (unsigned int)a1 + 0x18011A23CLL); | |
*(_DWORD *)(4LL * (unsigned int)a1 + 0x18011A23CLL) = v9 + 1; | |
} | |
if ( *(_DWORD *)(a2 + 16) ) | |
{ | |
v10 = *(_DWORD *)(4LL * (unsigned int)a1 + 0x18011A23CLL); | |
if ( v10 & 1 ) | |
{ | |
v11 = *(_QWORD *)(8LL * (unsigned int)a1 + 0x18011A260LL); | |
*(_DWORD *)(4LL * (unsigned int)a1 + 0x18011A23CLL) = v10 + 1; | |
*(_DWORD *)(v11 + (unsigned int)(4 * v10)) = -559038737; | |
} | |
} | |
for ( j = 0; j < *(_DWORD *)(a2 + 36); ++j ) | |
{ | |
v13 = a2 + 8LL * j; | |
v15 = *(_QWORD *)(v13 + 40); | |
v14 = v13 + 40; | |
v16 = *(_QWORD *)(8LL * (unsigned int)a1 + 0x18011A260LL); | |
v17 = *(_DWORD *)(4LL * (unsigned int)a1 + 0x18011A23CLL); | |
*(_DWORD *)(4LL * (unsigned int)a1 + 0x18011A23CLL) = v17 + 1; | |
*(_DWORD *)(v16 + (unsigned int)(4 * v17)) = v15; | |
if ( *(_DWORD *)(a2 + 16) ) | |
{ | |
v18 = *(_DWORD *)(v14 + 4); | |
v19 = *(_QWORD *)(8LL * (unsigned int)a1 + 0x18011A260LL); | |
v20 = *(_DWORD *)(4LL * (unsigned int)a1 + 0x18011A23CLL); | |
*(_DWORD *)(4LL * (unsigned int)a1 + 0x18011A23CLL) = v20 + 1; | |
*(_DWORD *)(v19 + (unsigned int)(4 * v20)) = v18; | |
} | |
} | |
sub_1800BAA8C(a1); | |
return sub_1800F0620(v2, 0, 0xA8uLL); | |
} | |
//----- (00000001800BA890) ---------------------------------------------------- | |
__int64 __fastcall sub_1800BA890(signed __int64 *a1, unsigned __int64 a2, __int64 a3, __int64 a4, int a5, int a6) | |
{ | |
int v6; // w22 | |
int v7; // w23 | |
__int64 v8; // x21 | |
__int64 v9; // x20 | |
unsigned __int64 v10; // x24 | |
__int64 v11; // x19 | |
__int64 v12; // x9 | |
int v13; // w10 | |
int v14; // w0 | |
__int64 v15; // x8 | |
int v16; // w9 | |
int v17; // w9 | |
__int64 v18; // x10 | |
__int64 v19; // x11 | |
__int64 v20; // x11 | |
int v21; // w12 | |
__int64 v22; // x9 | |
__int64 v23; // x10 | |
__int64 v24; // x9 | |
signed __int64 v25; // x10 | |
int v26; // w11 | |
__int64 v27; // x8 | |
v6 = a6; | |
v7 = a5; | |
v8 = a4; | |
v9 = a3; | |
v10 = a2; | |
v11 = (__int64)a1; | |
sub_1800BAA6C(a1); | |
if ( !v7 && !LOBYTE(qword_1801158C8[2349]) ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -1120701505042910129LL, 218LL); | |
v12 = *(_QWORD *)(8LL * (unsigned int)v11 + 0x18011A260LL); | |
v13 = *(_DWORD *)(4LL * (unsigned int)v11 + 0x18011A23CLL); | |
*(_DWORD *)(4LL * (unsigned int)v11 + 0x18011A23CLL) = v13 + 1; | |
*(_DWORD *)(v12 + (unsigned int)(4 * v13)) = (v10 >> 4) & 0xFFFFFFC0 | 32 * (v6 & 1) | 2; | |
v14 = sub_1800C783C(v7 != 0, v7, v10); | |
v15 = *(_QWORD *)(8LL * (unsigned int)v11 + 0x18011A260LL); | |
v16 = *(_DWORD *)(4LL * (unsigned int)v11 + 0x18011A23CLL); | |
*(_DWORD *)(4LL * (unsigned int)v11 + 0x18011A23CLL) = v16 + 1; | |
*(_DWORD *)(v15 + (unsigned int)(4 * v16)) = v14; | |
if ( v6 ) | |
{ | |
v17 = *(_DWORD *)(4LL * (unsigned int)v11 + 0x18011A23CLL); | |
if ( v17 & 1 ) | |
{ | |
v18 = *(_QWORD *)(8LL * (unsigned int)v11 + 0x18011A260LL); | |
*(_DWORD *)(4LL * (unsigned int)v11 + 0x18011A23CLL) = v17 + 1; | |
*(_DWORD *)(v18 + (unsigned int)(4 * v17)) = -559038737; | |
v17 = *(_DWORD *)(4LL * (unsigned int)v11 + 0x18011A23CLL); | |
} | |
v19 = *(_QWORD *)(8LL * (unsigned int)v11 + 0x18011A260LL); | |
*(_DWORD *)(4LL * (unsigned int)v11 + 0x18011A23CLL) = v17 + 1; | |
*(_DWORD *)(v19 + (unsigned int)(4 * v17)) = v8; | |
v20 = *(_QWORD *)(8LL * (unsigned int)v11 + 0x18011A260LL); | |
v21 = *(_DWORD *)(4LL * (unsigned int)v11 + 0x18011A23CLL); | |
*(_DWORD *)(4LL * (unsigned int)v11 + 0x18011A23CLL) = v21 + 1; | |
*(_DWORD *)(v20 + (unsigned int)(4 * v21)) = HIDWORD(v8); | |
v22 = *(_QWORD *)(8LL * (unsigned int)v11 + 0x18011A260LL); | |
LODWORD(v20) = *(_DWORD *)(4LL * (unsigned int)v11 + 0x18011A23CLL); | |
*(_DWORD *)(4LL * (unsigned int)v11 + 0x18011A23CLL) = v20 + 1; | |
*(_DWORD *)(v22 + (unsigned int)(4 * v20)) = v9; | |
v23 = *(_QWORD *)(8LL * (unsigned int)v11 + 0x18011A260LL); | |
LODWORD(v20) = *(_DWORD *)(4LL * (unsigned int)v11 + 0x18011A23CLL); | |
*(_DWORD *)(4LL * (unsigned int)v11 + 0x18011A23CLL) = v20 + 1; | |
*(_DWORD *)(v23 + (unsigned int)(4 * v20)) = HIDWORD(v9); | |
} | |
else | |
{ | |
v24 = *(_QWORD *)(8LL * (unsigned int)v11 + 0x18011A260LL); | |
v25 = 4LL * (unsigned int)v11 + 6443606576LL; | |
v26 = *(_DWORD *)(4LL * (unsigned int)v11 + 0x18011A23CLL); | |
*(_DWORD *)(v25 + 12) = v26 + 1; | |
*(_DWORD *)(v24 + (unsigned int)(4 * v26)) = v8; | |
v27 = *(_QWORD *)(8LL * (unsigned int)v11 + 0x18011A260LL); | |
LODWORD(v24) = *(_DWORD *)(4LL * (unsigned int)v11 + 0x18011A23CLL); | |
*(_DWORD *)(v25 + 12) = v24 + 1; | |
*(_DWORD *)(v27 + (unsigned int)(4 * v24)) = v9; | |
} | |
return sub_1800BAA8C(v11); | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800BAA6C) ---------------------------------------------------- | |
signed __int64 *__fastcall sub_1800BAA6C(signed __int64 *result) | |
{ | |
if ( *(_DWORD *)(168LL * (unsigned int)result + 0x180119CF0LL) ) | |
result = sub_1800BA730((__int64)result, 168LL * (unsigned int)result + 6443605232LL); | |
return result; | |
} | |
//----- (00000001800BAA8C) ---------------------------------------------------- | |
__int64 __fastcall sub_1800BAA8C(__int64 result) | |
{ | |
__int64 v1; // x29 | |
__int64 v2; // x30 | |
if ( (unsigned __int64)(unsigned int)(4 * *(_DWORD *)(4LL * (unsigned int)result + 0x18011A23CLL)) >= *(_QWORD *)(8LL * (unsigned int)result + 0x18011A2A0LL) ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -1120701505042910129LL, 67LL, v1, v2); | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800BAB44) ---------------------------------------------------- | |
__int64 __fastcall sub_1800BAB44(signed __int64 *a1, unsigned int a2) | |
{ | |
unsigned __int64 v2; // x19 | |
__int64 v3; // x10 | |
int v4; // w11 | |
signed __int64 *v6; // x20 | |
v6 = a1; | |
v2 = (unsigned int)sub_1800D389C(6) * (unsigned __int64)a2 / 0xF4240; | |
sub_1800BAA6C(v6); | |
v3 = *(_QWORD *)(8LL * (unsigned int)v6 + 0x18011A260LL); | |
v4 = *(_DWORD *)(4LL * (unsigned int)v6 + 0x18011A23CLL); | |
*(_DWORD *)(4LL * (unsigned int)v6 + 0x18011A23CLL) = v4 + 1; | |
*(_DWORD *)(v3 + (unsigned int)(4 * v4)) = ((_DWORD)v2 << 6) | 4; | |
return sub_1800BAA8C((__int64)v6); | |
} | |
//----- (00000001800BAB80) ---------------------------------------------------- | |
__int64 __fastcall sub_1800BAB80(signed __int64 *a1) | |
{ | |
__int64 v1; // x19 | |
__int64 v2; // x9 | |
int v3; // w10 | |
v1 = (__int64)a1; | |
sub_1800BAA6C(a1); | |
v2 = *(_QWORD *)(8LL * (unsigned int)v1 + 0x18011A260LL); | |
v3 = *(_DWORD *)(4LL * (unsigned int)v1 + 0x18011A23CLL); | |
*(_DWORD *)(4LL * (unsigned int)v1 + 0x18011A23CLL) = v3 + 1; | |
*(_DWORD *)(v2 + (unsigned int)(4 * v3)) = 68; | |
return sub_1800BAA8C(v1); | |
} | |
//----- (00000001800BABD0) ---------------------------------------------------- | |
__int64 __fastcall sub_1800BABD0(signed __int64 *a1, int *a2, unsigned int a3) | |
{ | |
unsigned int v3; // w21 | |
int *v4; // x20 | |
signed __int64 *v5; // x19 | |
__int64 i; // x8 | |
int v7; // t1 | |
__int64 v8; // x10 | |
int v9; // w12 | |
v3 = a3; | |
v4 = a2; | |
v5 = a1; | |
sub_1800BAA6C(a1); | |
if ( *(_BYTE *)(4LL * (unsigned int)v5 + 0x18011A23CLL) & 1 ) | |
sub_1800BAB80(v5); | |
for ( i = v3; i; --i ) | |
{ | |
v7 = *v4; | |
++v4; | |
v8 = *(_QWORD *)(8LL * (unsigned int)v5 + 0x18011A260LL); | |
v9 = *(_DWORD *)(4LL * (unsigned int)v5 + 0x18011A23CLL); | |
*(_DWORD *)(4LL * (unsigned int)v5 + 0x18011A23CLL) = v9 + 1; | |
*(_DWORD *)(v8 + (unsigned int)(4 * v9)) = v7; | |
} | |
return sub_1800BAA8C((__int64)v5); | |
} | |
//----- (00000001800BAC60) ---------------------------------------------------- | |
unsigned __int64 __fastcall sub_1800BAC60(int a1) | |
{ | |
__int64 v1; // x0 | |
unsigned __int64 result; // x0 | |
_DWORD *v3; // x8 | |
_DWORD *v4; // [xsp+10h] [xbp-10h] | |
__int64 v5; // [xsp+18h] [xbp-8h] | |
v5 = 5139240511851214385LL; | |
if ( a1 == 5 ) | |
{ | |
v1 = 1LL; | |
} | |
else | |
{ | |
if ( a1 != 3 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -1120701505042910129LL, 339LL); | |
v1 = 0LL; | |
} | |
sub_1800C6F10(v1, (_QWORD *)0x18011A260LL, (_QWORD *)0x18011A2A0LL, &v4); | |
result = sub_1800BADA0(); | |
v3 = v4; | |
MEMORY[0x210000100] = ((_DWORD)v4 - result) & 0x1FFF80; | |
*v4 = MEMORY[0x18011A260] >> 4; | |
v3[1] = MEMORY[0x18011A268] >> 4; | |
v3[2] = MEMORY[0x18011A270] >> 4; | |
v3[3] = MEMORY[0x18011A278] >> 4; | |
v3[4] = MEMORY[0x18011A280] >> 4; | |
v3[5] = MEMORY[0x18011A288] >> 4; | |
v3[6] = MEMORY[0x18011A290] >> 4; | |
v3[7] = MEMORY[0x18011A298] >> 4; | |
if ( 5139240511851214385LL != v5 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800BADA0) ---------------------------------------------------- | |
unsigned __int64 sub_1800BADA0() | |
{ | |
unsigned __int64 *v0; // x0 | |
unsigned __int64 *v1; // x19 | |
unsigned __int64 *v2; // x0 | |
unsigned __int64 *v3; // x20 | |
unsigned __int64 *v4; // x0 | |
unsigned __int64 v5; // x8 | |
unsigned __int64 result; // x0 | |
sub_1800E0964(); | |
v1 = v0; | |
sub_1800E0964(); | |
v3 = v2; | |
v4 = (unsigned __int64 *)sub_1800E086C(13); | |
if ( !v3 || (v5 = *v3, *v3 == -1LL) ) | |
{ | |
if ( !v1 || (v5 = *v1, *v1 == -1LL) ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -1120701505042910129LL, 318LL); | |
} | |
if ( v5 >= *v4 ) | |
result = *v4; | |
else | |
result = v5; | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800BAFFC) ---------------------------------------------------- | |
__int64 __fastcall sub_1800BAFFC(int a1) | |
{ | |
bool v1; // zf | |
unsigned __int64 v2; // x0 | |
__int64 result; // x0 | |
signed __int64 v4; // x8 | |
if ( a1 == 3 ) | |
v1 = 1; | |
else | |
v1 = a1 == 5; | |
if ( !v1 ) | |
{ | |
v4 = 557LL; | |
goto LABEL_8; | |
} | |
v2 = sub_1800BADA0(); | |
MEMORY[0x21000011C] = ((284032767 - (_DWORD)v2) << 10) & 0x7FFF0000 | ((unsigned int)(284000256 - v2) >> 6) & 0x7FFF; | |
MEMORY[0x210000120] = 1; | |
result = sub_1800D9F80(v2); | |
if ( MEMORY[0x210000120] != 1 ) | |
{ | |
v4 = 576LL; | |
LABEL_8: | |
sub_1800D489C("%llx:%d", &byte_180101040, -1120701505042910129LL, v4); | |
} | |
return result; | |
} | |
// 1800D9F80: using guessed type __int64 __fastcall sub_1800D9F80(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800BB0B0) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BB0B0(__int64 a1) | |
{ | |
__int64 v1; // x19 | |
int v2; // w20 | |
__int64 v3; // x1 | |
__int64 v4; // x2 | |
__int64 v5; // x3 | |
__int64 v6; // x4 | |
__int64 v7; // x5 | |
__int64 v8; // x6 | |
__int64 v9; // x7 | |
unsigned __int64 v10; // x25 | |
char v11; // w26 | |
_DWORD *v12; // x22 | |
signed __int64 result; // x0 | |
__int64 v14; // x1 | |
__int64 v15; // x2 | |
__int64 v16; // x3 | |
__int64 v17; // x4 | |
__int64 v18; // x5 | |
__int64 v19; // x6 | |
__int64 v20; // x7 | |
signed __int64 v21; // x8 | |
int v22; // [xsp+14h] [xbp-5Ch] | |
__int64 v23; // [xsp+18h] [xbp-58h] | |
v1 = a1; | |
v23 = 5139240511851214385LL; | |
if ( !a1 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -5752675860205613128LL, 403LL); | |
v22 = 0; | |
sub_1800B4014(2u, 0LL, 0LL); | |
v2 = sub_1800B43E0(2u); | |
MEMORY[0x18011A2F4] = -1; | |
MEMORY[0x18011A2F6] = 3; | |
MEMORY[0x18011A2F5] = 103; | |
MEMORY[0x18011A2F7] = 0; | |
MEMORY[0x18011A2F8] = 0; | |
if ( v2 == 2 ) | |
{ | |
if ( (unsigned int)sub_1800B4440(2u, 6443606772LL, 0) ) | |
goto LABEL_19; | |
} | |
else if ( (unsigned int)sub_1800B4428(2u, (_QWORD *)0x18011A2F4LL, 0) ) | |
{ | |
goto LABEL_19; | |
} | |
if ( !(unsigned int)sub_1800BB5F4(0xF4240u) ) | |
{ | |
if ( MEMORY[0x18011A304] == 160 ) | |
{ | |
v10 = 0LL; | |
v11 = 1; | |
v12 = (_DWORD *)6443606752LL; | |
while ( v10 <= 4 ) | |
{ | |
MEMORY[0x18011A2F4] = -1; | |
MEMORY[0x18011A2F6] = 4; | |
MEMORY[0x18011A2F5] = 110; | |
MEMORY[0x18011A2F7] = v10; | |
MEMORY[0x18011A2F8] = 0; | |
if ( v2 == 2 ) | |
{ | |
if ( (unsigned int)sub_1800B4440(2u, 6443606772LL, 0) ) | |
goto LABEL_19; | |
} | |
else if ( (unsigned int)sub_1800B4428(2u, (_QWORD *)0x18011A2F4LL, 0) ) | |
{ | |
goto LABEL_19; | |
} | |
if ( (unsigned int)sub_1800BB5F4(0xF4240u) ) | |
goto LABEL_19; | |
*v12 = MEMORY[0x18011A304]; | |
++v12; | |
v11 &= (unsigned int)sub_1800F0718((_BYTE *)0x18011A304LL, &v22, 4LL) == 0; | |
++v10; | |
} | |
if ( !(v11 & 1) ) | |
{ | |
sub_1800B4458(2u); | |
result = 0LL; | |
*(_DWORD *)(v1 + 16) = MEMORY[0x18011A2F0]; | |
*(_QWORD *)(v1 + 8) = MEMORY[0x18011A2E8]; | |
*(_QWORD *)v1 = MEMORY[0x18011A2E0]; | |
goto LABEL_20; | |
} | |
v21 = 298LL; | |
} | |
else | |
{ | |
v21 = 267LL; | |
} | |
sub_1800D489C("%llx:%d", &byte_180101040, -5752675860205613128LL, v21); | |
} | |
LABEL_19: | |
sub_1800EF260((__int64)"%llx:%d\n", v3, v4, v5, v6, v7, v8, v9, -5752675860205613128LL); | |
sub_1800B4458(2u); | |
sub_1800EF260((__int64)"%llx:%d\n", v14, v15, v16, v17, v18, v19, v20, -5752675860205613128LL); | |
result = 0xFFFFFFFFLL; | |
LABEL_20: | |
if ( 5139240511851214385LL != v23 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
//----- (00000001800BB34C) ---------------------------------------------------- | |
signed __int64 sub_1800BB34C() | |
{ | |
int v0; // w0 | |
int v1; // w0 | |
__int64 v2; // x1 | |
__int64 v3; // x2 | |
__int64 v4; // x3 | |
__int64 v5; // x4 | |
__int64 v6; // x5 | |
__int64 v7; // x6 | |
__int64 v8; // x7 | |
__int64 v9; // x1 | |
__int64 v10; // x2 | |
__int64 v11; // x3 | |
__int64 v12; // x4 | |
__int64 v13; // x5 | |
__int64 v14; // x6 | |
__int64 v15; // x7 | |
signed __int64 result; // x0 | |
sub_1800B4014(2u, 0LL, 0LL); | |
v0 = sub_1800B43E0(2u); | |
MEMORY[0x18011A2F4] = -1; | |
MEMORY[0x18011A2F6] = 15; | |
MEMORY[0x18011A2F5] = 0; | |
MEMORY[0x18011A2F7] = 0; | |
MEMORY[0x18011A2F8] = 0; | |
if ( v0 == 2 ) | |
v1 = sub_1800B4440(2u, 6443606772LL, 0); | |
else | |
v1 = sub_1800B4428(2u, (_QWORD *)0x18011A2F4LL, 0); | |
if ( v1 || (unsigned int)sub_1800BB5F4(0x1E8480u) ) | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v2, v3, v4, v5, v6, v7, v8, -5752675860205613128LL); | |
sub_1800B4458(2u); | |
sub_1800EF260((__int64)"%llx:%d\n", v9, v10, v11, v12, v13, v14, v15, -5752675860205613128LL); | |
result = 0xFFFFFFFFLL; | |
} | |
else | |
{ | |
sub_1800B4458(2u); | |
result = 0LL; | |
} | |
return result; | |
} | |
//----- (00000001800BB444) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BB444(__int64 a1, unsigned int a2) | |
{ | |
unsigned int v2; // w19 | |
__int64 v3; // x20 | |
int v4; // w21 | |
unsigned int v5; // w26 | |
__int64 v6; // x1 | |
__int64 v7; // x2 | |
__int64 v8; // x3 | |
__int64 v9; // x4 | |
__int64 v10; // x5 | |
__int64 v11; // x6 | |
__int64 v12; // x7 | |
signed int v13; // w24 | |
unsigned __int64 v14; // x24 | |
__int64 v16; // x1 | |
__int64 v17; // x2 | |
__int64 v18; // x3 | |
__int64 v19; // x4 | |
__int64 v20; // x5 | |
__int64 v21; // x6 | |
__int64 v22; // x7 | |
v2 = a2; | |
v3 = a1; | |
if ( !a1 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -5752675860205613128LL, 440LL); | |
sub_1800B4014(2u, 0LL, 0LL); | |
v4 = sub_1800B43E0(2u); | |
v5 = 0; | |
while ( 1 ) | |
{ | |
if ( !v2 ) | |
{ | |
sub_1800B4458(2u); | |
return 0LL; | |
} | |
MEMORY[0x18011A2F4] = -1; | |
MEMORY[0x18011A2F6] = 16; | |
MEMORY[0x18011A2F5] = 0; | |
MEMORY[0x18011A2F7] = 0; | |
MEMORY[0x18011A2F8] = 0; | |
if ( v4 != 2 ) | |
break; | |
if ( (unsigned int)sub_1800B4440(2u, 6443606772LL, 0) ) | |
goto LABEL_17; | |
LABEL_7: | |
v13 = 2000000; | |
while ( sub_1800BB5F4(0) & 0x80000000 ) | |
{ | |
sub_1800D5F60(100LL); | |
v13 -= 100; | |
if ( v13 < 1 ) | |
goto LABEL_17; | |
} | |
if ( v2 >= 4 ) | |
v14 = 4LL; | |
else | |
v14 = v2; | |
sub_1800F03F0((_QWORD *)(v3 + v5), (_QWORD *)0x18011A304LL, v14); | |
v5 += v14; | |
v2 -= v14; | |
} | |
if ( !(unsigned int)sub_1800B4428(2u, (_QWORD *)0x18011A2F4LL, 0) ) | |
goto LABEL_7; | |
LABEL_17: | |
sub_1800EF260((__int64)"%llx:%d\n", v6, v7, v8, v9, v10, v11, v12, -5752675860205613128LL); | |
sub_1800B4458(2u); | |
sub_1800EF260((__int64)"%llx:%d\n", v16, v17, v18, v19, v20, v21, v22, -5752675860205613128LL); | |
return 0xFFFFFFFFLL; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800BB5F4) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BB5F4(unsigned int a1) | |
{ | |
unsigned int v1; // w19 | |
int v2; // w20 | |
signed __int64 result; // x0 | |
bool v4; // zf | |
v1 = a1; | |
v2 = sub_1800B43E0(2u); | |
while ( 1 ) | |
{ | |
if ( v2 == 2 ) | |
{ | |
result = sub_1800B4410(2u, 6443606792LL, v1); | |
if ( result & 0x80000000 ) | |
return result; | |
} | |
else | |
{ | |
result = sub_1800B43F8(2u, (__int64 *)0x18011A308LL, v1); | |
if ( result & 0x80000000 ) | |
return result; | |
} | |
v4 = (unsigned int)MEMORY[0x18011A30A] - 201 <= 0x36 ? ((1LL << (MEMORY[0x18011A30A] + 55)) & 0x40000000000203LL) == 0 : 1; | |
if ( v4 ) | |
break; | |
qword_1801158C8[2376] = 0LL; | |
} | |
*(_OWORD *)&qword_1801158C8[2375] = (unsigned __int64)qword_1801158C8[2376]; | |
return result; | |
} | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800BB6A0) ---------------------------------------------------- | |
__int64 __fastcall sub_1800BB6A0(unsigned __int16 a1, unsigned __int16 a2) | |
{ | |
__int64 result; // x0 | |
MEMORY[0x2064C0004] = 0; | |
result = a1 | ((unsigned int)a2 << 16); | |
MEMORY[0x2064C0008] = result; | |
MEMORY[0x2064C0210] = 3; | |
MEMORY[0x2064C0000] = 3; | |
return result; | |
} | |
//----- (00000001800BB6C4) ---------------------------------------------------- | |
void sub_1800BB6C4() | |
{ | |
__int64 i; // x9 | |
__int64 v1; // x9 | |
for ( i = 0uLL; i != 128; ++i ) | |
*(_DWORD *)(i * 4 + 8695578636LL) = dword_180104690[i]; | |
v1 = 0uLL; | |
MEMORY[0x2064C020C] = 0x40000; | |
while ( v1 != 224 ) | |
{ | |
*(_DWORD *)(v1 * 4 + 8695579668LL) = dword_180104890[v1]; | |
++v1; | |
} | |
MEMORY[0x2064C0794] = 0x4000; | |
} | |
// 180104690: using guessed type int dword_180104690[]; | |
// 180104890: using guessed type int dword_180104890[]; | |
//----- (00000001800BB730) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BB730(unsigned int a1, int a2, __int16 a3, int a4, int a5) | |
{ | |
int v5; // w22 | |
int v6; // w19 | |
int v7; // w20 | |
unsigned int v8; // w21 | |
__int64 v9; // x1 | |
__int64 v10; // x2 | |
__int64 v11; // x3 | |
__int64 v12; // x4 | |
__int64 v13; // x5 | |
__int64 v14; // x6 | |
__int64 v15; // x7 | |
signed __int64 result; // x0 | |
unsigned __int8 v17; // [xsp+14h] [xbp-2Ch] | |
char v18; // [xsp+15h] [xbp-2Bh] | |
char v19; // [xsp+16h] [xbp-2Ah] | |
char v20; // [xsp+17h] [xbp-29h] | |
__int64 v21; // [xsp+18h] [xbp-28h] | |
v5 = a5; | |
v6 = a4; | |
v7 = a2; | |
v8 = a1; | |
v21 = 5139240511851214385LL; | |
v18 = HIBYTE(a3); | |
v19 = a3; | |
v20 = a4; | |
if ( (unsigned int)sub_1800E2408(a1, a2, (unsigned __int8 *)&v18, 3LL) ) | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v9, v10, v11, v12, v13, v14, v15, -3975070616357390019LL); | |
LABEL_5: | |
result = 0LL; | |
goto LABEL_6; | |
} | |
if ( !v5 ) | |
goto LABEL_5; | |
sub_1800E2268(v8, v7, (unsigned __int8 *)&v18, 2LL, &v17, 1LL, 1); | |
if ( v17 == v6 ) | |
goto LABEL_5; | |
result = 0xFFFFFFFFLL; | |
LABEL_6: | |
if ( 5139240511851214385LL != v21 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800BB818) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BB818(unsigned int a1, int a2, __int16 a3, _BYTE *a4) | |
{ | |
signed __int64 result; // x0 | |
char v5; // [xsp+6h] [xbp-Ah] | |
char v6; // [xsp+7h] [xbp-9h] | |
__int64 v7; // [xsp+8h] [xbp-8h] | |
v7 = 5139240511851214385LL; | |
v5 = HIBYTE(a3); | |
v6 = a3; | |
result = sub_1800E2268(a1, a2, (unsigned __int8 *)&v5, 2LL, a4, 1LL, 1); | |
if ( 5139240511851214385LL != v7 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800BB884) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BB884(unsigned int a1, __int16 a2, int a3, int a4) | |
{ | |
return sub_1800BB730(a1, 232, a2, a3, a4); | |
} | |
//----- (00000001800BB8A4) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BB8A4(unsigned int a1, __int16 a2, _BYTE *a3) | |
{ | |
return sub_1800BB818(a1, 233, a2, a3); | |
} | |
//----- (00000001800BB8BC) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BB8BC(__int64 a1) | |
{ | |
__int64 v1; // x19 | |
signed __int64 result; // x0 | |
v1 = a1; | |
if ( LOBYTE(qword_1801158C8[2379]) == 1 ) | |
return sub_1800BB930(a1); | |
result = sub_1800BB930(6443606824LL); | |
MEMORY[0x18011A320] = 1; | |
*(_DWORD *)(v1 + 24) = MEMORY[0x18011A340]; | |
*(_QWORD *)(v1 + 16) = MEMORY[0x18011A338]; | |
*(_QWORD *)(v1 + 8) = MEMORY[0x18011A330]; | |
*(_QWORD *)v1 = MEMORY[0x18011A328]; | |
return result; | |
} | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800BB930) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BB930(__int64 a1) | |
{ | |
signed __int64 result; // x0 | |
__int16 v2; // [xsp+6h] [xbp-Ah] | |
__int64 v3; // [xsp+8h] [xbp-8h] | |
v3 = 5139240511851214385LL; | |
*(_DWORD *)(a1 + 24) = 0; | |
*(_QWORD *)(a1 + 8) = 0LL; | |
*(_QWORD *)(a1 + 16) = 0LL; | |
*(_QWORD *)a1 = 0LL; | |
v2 = 16385; | |
result = sub_1800E2268(1u, 233, (unsigned __int8 *)&v2, 2LL, (_BYTE *)a1, 28LL, 1); | |
if ( 5139240511851214385LL != v3 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800BB9AC) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BB9AC(__int16 a1, _BYTE *a2, __int64 a3) | |
{ | |
signed __int64 result; // x0 | |
char v4; // [xsp+6h] [xbp-Ah] | |
char v5; // [xsp+7h] [xbp-9h] | |
__int64 v6; // [xsp+8h] [xbp-8h] | |
v6 = 5139240511851214385LL; | |
v4 = HIBYTE(a1); | |
v5 = a1; | |
result = sub_1800E2268(1u, 233, (unsigned __int8 *)&v4, 2LL, a2, a3, 1); | |
if ( 5139240511851214385LL != v6 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800BBA24) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BBA24(__int16 a1, _QWORD *a2, unsigned __int64 a3) | |
{ | |
__int64 v3; // x19 | |
unsigned __int8 *v4; // x20 | |
signed __int64 result; // x0 | |
__int64 v6; // [xsp+0h] [xbp-20h] | |
__int64 v7; // [xsp+8h] [xbp-18h] | |
v7 = 5139240511851214385LL; | |
v3 = a3 + 2; | |
v4 = (unsigned __int8 *)&v6 - (((_WORD)a3 + 17) & 0x3F0); | |
*v4 = HIBYTE(a1); | |
v4[1] = a1; | |
sub_1800F03F0(v4 + 2, a2, a3); | |
result = sub_1800E2408(1u, 232, v4, v3); | |
if ( 5139240511851214385LL != v7 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800BBAB0) ---------------------------------------------------- | |
__int64 sub_1800BBAB0() | |
{ | |
int v0; // w8 | |
__int64 result; // x0 | |
int v2; // [xsp+4h] [xbp-Ch] | |
__int64 v3; // [xsp+8h] [xbp-8h] | |
v3 = 5139240511851214385LL; | |
v2 = 0; | |
v0 = sub_1800BBB20(1u, &v2); | |
result = 0LL; | |
if ( !v0 ) | |
result = (unsigned int)(5000 * v2) >> 12; | |
if ( 5139240511851214385LL != v3 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800BBB20) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BBB20(unsigned __int8 a1, int *a2) | |
{ | |
int *v2; // x19 | |
__int64 v3; // x0 | |
signed __int64 v4; // x20 | |
unsigned __int64 v5; // x21 | |
__int64 v6; // x0 | |
__int64 v7; // x1 | |
__int64 v8; // x2 | |
__int64 v9; // x3 | |
__int64 v10; // x4 | |
__int64 v11; // x5 | |
__int64 v12; // x6 | |
__int64 v13; // x7 | |
__int16 v15; // [xsp+18h] [xbp-48h] | |
char v16; // [xsp+1Ah] [xbp-46h] | |
unsigned __int8 v17; // [xsp+1Bh] [xbp-45h] | |
char v18; // [xsp+1Ch] [xbp-44h] | |
__int64 v19; // [xsp+38h] [xbp-28h] | |
v2 = a2; | |
v19 = 5139240511851214385LL; | |
v3 = sub_1800BB730(1u, 232, 0x4000, a1, 0); | |
if ( (_DWORD)v3 ) | |
{ | |
v4 = 0xFFFFFFFFLL; | |
} | |
else | |
{ | |
v15 = 320; | |
v5 = sub_1800D5F1C(v3) + 50000; | |
while ( 1 ) | |
{ | |
sub_1800D5F60(1000LL); | |
v6 = sub_1800E2268(1u, 233, (unsigned __int8 *)&v15, 2LL, &v16, 2LL, 1); | |
v4 = v6; | |
if ( (_DWORD)v6 ) | |
break; | |
if ( !(v16 & 0x80) ) | |
{ | |
v4 = 0LL; | |
*v2 = v16 & 0xF | 16 * v17; | |
break; | |
} | |
if ( sub_1800D5F1C(v6) > v5 ) | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v7, v8, v9, v10, v11, v12, v13, -3975070616357390019LL); | |
v4 = 0xFFFFFFFFLL; | |
break; | |
} | |
} | |
sub_1800BB8BC((__int64)&v18); | |
} | |
if ( 5139240511851214385LL != v19 ) | |
sub_1800D4A5C(); | |
return v4; | |
} | |
//----- (00000001800BBC40) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BBC40(char a1, _DWORD *a2) | |
{ | |
_DWORD *v2; // x19 | |
signed __int64 result; // x0 | |
__int64 v4; // x9 | |
unsigned int v5; // w8 | |
unsigned int v6; // w11 | |
signed __int64 v7; // x12 | |
bool v8; // cf | |
bool v9; // zf | |
int v10; // [xsp+4h] [xbp-1Ch] | |
__int64 v11; // [xsp+8h] [xbp-18h] | |
v2 = a2; | |
v11 = 5139240511851214385LL; | |
v10 = 0; | |
result = sub_1800BBB20(a1 + 89, &v10); | |
if ( !(_DWORD)result ) | |
{ | |
v4 = 0LL; | |
v5 = (unsigned int)(100000 * v10) >> 12; | |
do | |
{ | |
v6 = qword_180104C10[v4 + 1]; | |
v7 = v4 * 8 + 8; | |
if ( v4 == 32 ) | |
{ | |
v8 = 1; | |
v9 = 0; | |
} | |
else | |
{ | |
v8 = v5 >= v6; | |
v9 = v5 == v6; | |
} | |
++v4; | |
} | |
while ( v9 || !v8 ); | |
*v2 = (signed int)((*(_DWORD *)((char *)qword_180104C10 + v7 - 4) - *(_DWORD *)((char *)qword_180104C10 + v7 + 4)) | |
* (v5 - v6)) | |
/ (signed int)(*(_DWORD *)((char *)&qword_180104C10[-1] + v7) - v6) | |
+ *(_DWORD *)((char *)qword_180104C10 + v7 + 4); | |
} | |
if ( 5139240511851214385LL != v11 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180104C10: using guessed type __int64 qword_180104C10[35]; | |
//----- (00000001800BBD08) ---------------------------------------------------- | |
__int64 sub_1800BBD08() | |
{ | |
__int64 v0; // x1 | |
__int64 v1; // x2 | |
__int64 v2; // x3 | |
__int64 v3; // x4 | |
__int64 v4; // x5 | |
__int64 v5; // x6 | |
__int64 v6; // x7 | |
__int64 result; // x0 | |
char v8; // [xsp+18h] [xbp-28h] | |
__int64 v9; // [xsp+20h] [xbp-20h] | |
unsigned int v10; // [xsp+28h] [xbp-18h] | |
char v11; // [xsp+37h] [xbp-9h] | |
__int64 v12; // [xsp+38h] [xbp-8h] | |
v12 = 5139240511851214385LL; | |
if ( (unsigned int)sub_1800BB818(1u, 233, 320, (_BYTE *)0x18011A310LL) ) | |
sub_1800EF260((__int64)"%llx:%d\n", v0, v1, v2, v3, v4, v5, v6, -3975070616357390019LL); | |
sub_1800F0E80(0x2003A00u, &v9, &v10, &v8); | |
sub_1800BBDF4(v9, v10); | |
result = sub_1800D8634(); | |
if ( !(result & 1) ) | |
{ | |
sub_1800F0E80(0x2003300u, &v9, &v10, &v8); | |
sub_1800BBDF4(v9, v10); | |
result = sub_1800BB818(1u, 233, 347, &v11); | |
} | |
if ( 5139240511851214385LL != v12 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800BBDF4) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BBDF4(signed __int64 result, unsigned int a2) | |
{ | |
signed __int64 v2; // x19 | |
unsigned __int64 v3; // x23 | |
unsigned int v4; // w21 | |
unsigned __int64 v5; // x24 | |
int v6; // w2 | |
__int64 v7; // x1 | |
__int64 v8; // x2 | |
__int64 v9; // x3 | |
__int64 v10; // x4 | |
__int64 v11; // x5 | |
__int64 v12; // x6 | |
__int64 v13; // x7 | |
__int64 v14; // x1 | |
__int64 v15; // x2 | |
__int64 v16; // x3 | |
__int64 v17; // x4 | |
__int64 v18; // x5 | |
__int64 v19; // x6 | |
__int64 v20; // x7 | |
signed __int64 v21; // x8 | |
v2 = result; | |
v3 = 0LL; | |
v4 = 0; | |
v5 = a2; | |
while ( v3 < v5 ) | |
{ | |
v6 = *(unsigned __int16 *)(v2 + 4); | |
if ( v6 == 28672 ) | |
{ | |
if ( *(_WORD *)(v2 + 6) ) | |
{ | |
if ( *(_WORD *)(v2 + 6) == 1 ) | |
{ | |
if ( v4 ) | |
{ | |
v21 = 516LL; | |
goto LABEL_18; | |
} | |
result = sub_1800D7568(*(_DWORD *)v2); | |
if ( (_DWORD)result ) | |
{ | |
result = sub_1800EF260((__int64)"%llx:%d\n", v7, v8, v9, v10, v11, v12, v13, -3975070616357390019LL); | |
v4 = 0; | |
} | |
else | |
{ | |
v4 = *(_DWORD *)v2; | |
} | |
} | |
} | |
else | |
{ | |
if ( v4 != *(_DWORD *)v2 ) | |
{ | |
v21 = 526LL; | |
LABEL_18: | |
sub_1800D489C("%llx:%d", &byte_180101040, -3975070616357390019LL, v21); | |
} | |
result = sub_1800D75CC(v4); | |
v4 = 0; | |
} | |
} | |
else | |
{ | |
result = sub_1800BB730(*(_DWORD *)v2, 232, v6, *(unsigned __int8 *)(v2 + 6), 1); | |
if ( (_DWORD)result ) | |
result = sub_1800EF260((__int64)"%llx:%d\n", v14, v15, v16, v17, v18, v19, v20, -3975070616357390019LL); | |
} | |
++v3; | |
v2 += 8LL; | |
} | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800BBF1C) ---------------------------------------------------- | |
__int64 sub_1800BBF1C() | |
{ | |
int v0; // w0 | |
int v1; // w0 | |
__int64 result; // x0 | |
__int64 v3; // [xsp+0h] [xbp-30h] | |
__int64 v4; // [xsp+8h] [xbp-28h] | |
unsigned int v5; // [xsp+10h] [xbp-20h] | |
__int64 v6; // [xsp+18h] [xbp-18h] | |
v6 = 5139240511851214385LL; | |
v0 = sub_1800C6E78(); | |
sub_1800BBFDC(v0); | |
sub_1800F68C8(); | |
sub_1800F68D0(); | |
v1 = sub_1800C6EB0(); | |
sub_1800BC0B4(v1); | |
sub_1800F68D8(); | |
sub_1800F68E0(); | |
sub_1800F0E80(0x2003600u, &v4, &v5, &v3); | |
sub_1800BBDF4(v4, v5); | |
result = sub_1800D8634(); | |
if ( !(result & 1) ) | |
{ | |
sub_1800F0E80(0x2003500u, &v4, &v5, &v3); | |
result = sub_1800BBDF4(v4, v5); | |
} | |
if ( 5139240511851214385LL != v6 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800BBFDC) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BBFDC(int a1) | |
{ | |
int v1; // w19 | |
signed __int64 result; // x0 | |
unsigned int v3; // w8 | |
int v4; // w19 | |
unsigned int v5; // w20 | |
__int64 v6; // [xsp+0h] [xbp-30h] | |
__int64 v7; // [xsp+8h] [xbp-28h] | |
unsigned __int64 v8; // [xsp+10h] [xbp-20h] | |
__int64 v9; // [xsp+18h] [xbp-18h] | |
v1 = a1; | |
v9 = 5139240511851214385LL; | |
if ( (unsigned int)(a1 - 500) <= 0x31C ) | |
{ | |
sub_1800F0E80(0x2003800u, &v7, &v8, &v6); | |
v3 = 0; | |
v4 = (1000 * v1 - 496876) / 0xC35u & 0xFF; | |
while ( 1 ) | |
{ | |
v5 = v3; | |
if ( v3 >= v8 ) | |
break; | |
sub_1800BB730(*(_DWORD *)(v7 + 8LL * v3), 232, *(_WORD *)(v7 + 8LL * v3 + 6), v4, 1); | |
v3 = v5 + 1; | |
} | |
result = 0LL; | |
} | |
else | |
{ | |
result = 0xFFFFFFFFLL; | |
} | |
if ( 5139240511851214385LL != v9 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800BC0B4) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BC0B4(int a1) | |
{ | |
int v1; // w19 | |
signed __int64 result; // x0 | |
unsigned int v3; // w8 | |
int v4; // w19 | |
unsigned int v5; // w20 | |
__int64 v6; // [xsp+0h] [xbp-30h] | |
__int64 v7; // [xsp+8h] [xbp-28h] | |
unsigned __int64 v8; // [xsp+10h] [xbp-20h] | |
__int64 v9; // [xsp+18h] [xbp-18h] | |
v1 = a1; | |
v9 = 5139240511851214385LL; | |
sub_1800F0E80(0x2003700u, &v7, &v8, &v6); | |
if ( (unsigned int)(v1 - 600) <= 0x320 ) | |
{ | |
v3 = 0; | |
v4 = (1000 * v1 - 596876) / 0xC35u & 0xFF; | |
while ( 1 ) | |
{ | |
v5 = v3; | |
if ( v3 >= v8 ) | |
break; | |
sub_1800BB730(*(_DWORD *)(v7 + 8LL * v3), 232, *(_WORD *)(v7 + 8LL * v3 + 6), v4, 1); | |
v3 = v5 + 1; | |
} | |
result = 0LL; | |
} | |
else | |
{ | |
result = 0xFFFFFFFFLL; | |
} | |
if ( 5139240511851214385LL != v9 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800BC18C) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BC18C(_BYTE *a1, bool *a2, _BYTE *a3) | |
{ | |
_BYTE *v3; // x19 | |
bool *v4; // x20 | |
_BYTE *v5; // x21 | |
signed __int64 result; // x0 | |
__int64 v7; // x8 | |
__int16 v8; // [xsp+Eh] [xbp-62h] | |
__int64 v9; // [xsp+10h] [xbp-60h] | |
__int64 v10; // [xsp+18h] [xbp-58h] | |
__int64 v11; // [xsp+20h] [xbp-50h] | |
int v12; // [xsp+28h] [xbp-48h] | |
char v13[2]; // [xsp+2Ch] [xbp-44h] | |
char v14; // [xsp+2Eh] [xbp-42h] | |
char v15; // [xsp+31h] [xbp-3Fh] | |
__int64 v16; // [xsp+48h] [xbp-28h] | |
v3 = a3; | |
v4 = a2; | |
v5 = a1; | |
v16 = 5139240511851214385LL; | |
sub_1800BB8BC((__int64)v13); | |
v12 = 0; | |
v10 = 0LL; | |
v11 = 0LL; | |
v9 = 0LL; | |
v8 = -32767; | |
result = sub_1800E2268(1u, 233, (unsigned __int8 *)&v8, 2LL, &v9, 28LL, 1); | |
v7 = 0uLL; | |
*v5 = 0; | |
while ( v7 != 28 ) | |
{ | |
v13[v7] &= ~byte_180104D28[v7]; | |
++v7; | |
} | |
*v4 = (v15 & 0xF) != 0; | |
*v3 = v14 & 1; | |
if ( 5139240511851214385LL != v16 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 1800BC18C: using guessed type char var_44[2]; | |
//----- (00000001800BC278) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BC278(unsigned int a1, _BYTE *a2) | |
{ | |
_BYTE *v2; // x19 | |
signed __int64 result; // x0 | |
__int64 v4; // x8 | |
signed int v5; // w22 | |
_BYTE *v6; // x20 | |
v2 = a2; | |
if ( a1 > 0xF ) | |
return 0xFFFFFFFFLL; | |
v4 = *((unsigned __int8 *)&dword_180104D44 + a1); | |
v5 = 1 << v4; | |
if ( (1 << v4) & MEMORY[0x18011A324] ) | |
{ | |
v6 = (_BYTE *)(v4 + 6443606852LL); | |
LABEL_5: | |
result = 0LL; | |
*v2 = *v6; | |
return result; | |
} | |
v6 = (_BYTE *)(v4 + 6443606852LL); | |
result = sub_1800BB818(1u, 233, (unsigned __int16)v4 | 0x5000u, (_BYTE *)(v4 + 6443606852LL)); | |
if ( !(_DWORD)result ) | |
{ | |
MEMORY[0x18011A324] |= v5; | |
goto LABEL_5; | |
} | |
return result; | |
} | |
// 180104D44: using guessed type int dword_180104D44; | |
//----- (00000001800BC320) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BC320(unsigned int a1, int a2) | |
{ | |
__int16 v3; // w9 | |
int v4; // w12 | |
if ( a1 > 0xF ) | |
return 0xFFFFFFFFLL; | |
v3 = *((unsigned __int8 *)&dword_180104D44 + a1); | |
v4 = MEMORY[0x18011A324]; | |
if ( (1 << v3) & MEMORY[0x18011A324] | |
&& *(unsigned __int8 *)(*((unsigned __int8 *)&dword_180104D44 + a1) + 0x18011A344LL) == a2 ) | |
{ | |
return 0LL; | |
} | |
*(_BYTE *)(*((unsigned __int8 *)&dword_180104D44 + a1) + 0x18011A344LL) = a2; | |
MEMORY[0x18011A324] = (1 << v3) | v4; | |
return sub_1800BB730(1u, 232, v3 | 0x5000u, a2, 0); | |
} | |
// 180104D44: using guessed type int dword_180104D44; | |
//----- (00000001800BC3A0) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BC3A0(int a1) | |
{ | |
int v1; // w19 | |
signed __int64 result; // x0 | |
char v3; // [xsp+Eh] [xbp-52h] | |
__int16 v4; // [xsp+2Ah] [xbp-36h] | |
__int64 v5; // [xsp+2Ch] [xbp-34h] | |
__int64 v6; // [xsp+34h] [xbp-2Ch] | |
__int64 v7; // [xsp+3Ch] [xbp-24h] | |
int v8; // [xsp+44h] [xbp-1Ch] | |
__int64 v9; // [xsp+48h] [xbp-18h] | |
v1 = a1; | |
v9 = 5139240511851214385LL; | |
result = sub_1800BB8BC((__int64)&v3); | |
if ( v1 ) | |
{ | |
v4 = -16383; | |
v6 = -225LL; | |
v5 = -16492674482177LL; | |
v8 = -1; | |
v7 = -1LL; | |
result = sub_1800E2408(1u, 232, (unsigned __int8 *)&v4, 30LL); | |
} | |
if ( 5139240511851214385LL != v9 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800BC444) ---------------------------------------------------- | |
void __noreturn sub_1800BC444() | |
{ | |
sub_1800BC454(1); | |
} | |
//----- (00000001800BC454) ---------------------------------------------------- | |
void __fastcall __noreturn sub_1800BC454(int a1) | |
{ | |
int v1; // w19 | |
unsigned int v2; // w20 | |
signed int v3; // w21 | |
signed __int16 v4; // w22 | |
__int16 v5; // w23 | |
unsigned __int8 v6; // [xsp+Fh] [xbp-31h] | |
v1 = a1; | |
if ( a1 == 1 ) | |
{ | |
v2 = 0; | |
v3 = 2241; | |
v4 = 2304; | |
while ( v3 != 2367 ) | |
{ | |
if ( v2 <= 0x10 ) | |
v5 = v4; | |
else | |
v5 = v3; | |
if ( !(unsigned int)sub_1800BB818(1u, 233, v5, &v6) && (v6 & 0xC1) == 1 ) | |
{ | |
v6 &= 0xFEu; | |
sub_1800BB730(1u, 232, v5, v6, 0); | |
} | |
++v2; | |
v3 += 6; | |
v4 += 2; | |
} | |
} | |
sub_1800BB730(1u, 232, 1024, v1, 0); | |
sub_1800F612C(); | |
while ( 1 ) | |
; | |
} | |
//----- (00000001800BC50C) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BC50C(__int64 a1, unsigned int a2, unsigned int *a3) | |
{ | |
unsigned int *v3; // x19 | |
unsigned int v4; // w20 | |
__int64 v5; // x21 | |
unsigned int v6; // w9 | |
__int64 v7; // x8 | |
unsigned int v8; // w8 | |
signed __int64 result; // x0 | |
__int64 v10; // [xsp+0h] [xbp-40h] | |
char v11; // [xsp+8h] [xbp-38h] | |
__int64 v12; // [xsp+10h] [xbp-30h] | |
__int64 v13; // [xsp+18h] [xbp-28h] | |
v3 = a3; | |
v4 = a2; | |
v5 = a1; | |
v13 = 5139240511851214385LL; | |
if ( (unsigned int)a1 > 5 ) | |
{ | |
result = 0xFFFFFFFFLL; | |
} | |
else | |
{ | |
sub_1800F0E80(0x2003900u, &v12, &v11, &v10); | |
v6 = *(unsigned __int16 *)(v12 + (v5 << 32 >> 29) - (signed int)v5 + 1); | |
if ( v6 <= v4 && (v7 = v12 + 7LL * (signed int)v5, *(unsigned __int16 *)(v7 + 3) >= v4) ) | |
{ | |
result = 0LL; | |
v8 = (*(unsigned __int16 *)(v7 + 5) + 1000 * (v4 - v6) - 1) / *(unsigned __int16 *)(v7 + 5); | |
} | |
else | |
{ | |
v8 = 0; | |
result = 0xFFFFFFFFLL; | |
} | |
*v3 = v8; | |
} | |
if ( 5139240511851214385LL != v13 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800BC6A8) ---------------------------------------------------- | |
signed __int64 sub_1800BC6A8() | |
{ | |
return 0xFFFFFFFFLL; | |
} | |
//----- (00000001800BC6B0) ---------------------------------------------------- | |
signed __int64 sub_1800BC6B0() | |
{ | |
__int64 v0; // x8 | |
char v1; // w9 | |
unsigned __int64 v2; // x12 | |
int v3; // w14 | |
unsigned __int64 v4; // x8 | |
char v5; // w11 | |
signed __int64 v6; // x19 | |
__int64 v8; // x1 | |
__int64 v9; // x2 | |
__int64 v10; // x3 | |
__int64 v11; // x4 | |
__int64 v12; // x5 | |
__int64 v13; // x6 | |
__int64 v14; // x7 | |
char v15; // [xsp+16h] [xbp-3Ah] | |
char v16; // [xsp+17h] [xbp-39h] | |
__int64 v17; // [xsp+18h] [xbp-38h] | |
__int64 v18; // [xsp+20h] [xbp-30h] | |
__int64 v19; // [xsp+28h] [xbp-28h] | |
__int64 v20; // [xsp+30h] [xbp-20h] | |
__int64 v21; // [xsp+38h] [xbp-18h] | |
v21 = 5139240511851214385LL; | |
if ( qword_1801158C8[2379] & 1 ) | |
{ | |
LODWORD(v20) = MEMORY[0x18011A340]; | |
v19 = MEMORY[0x18011A338]; | |
v17 = MEMORY[0x18011A328]; | |
v18 = MEMORY[0x18011A330]; | |
} | |
else | |
{ | |
sub_1800BB8BC((__int64)&v17); | |
} | |
v0 = 0uLL; | |
v1 = 0; | |
while ( v0 != 2 ) | |
{ | |
v2 = (unsigned __int16)word_1801139D0[v0]; | |
v3 = *((unsigned __int8 *)&v17 + (v2 >> 8)); | |
if ( (unsigned int)v2 & v3 ) | |
{ | |
*((_BYTE *)&v17 + (v2 >> 8)) = v3 & ~(_BYTE)v2; | |
v1 = 1; | |
} | |
++v0; | |
} | |
if ( !(v1 & 1) ) | |
goto LABEL_15; | |
v4 = 0uLL; | |
while ( v4 <= 0x1B ) | |
{ | |
v5 = *((_BYTE *)&v17 + v4) & byte_180104D70[v4]; | |
++v4; | |
if ( v5 ) | |
goto LABEL_15; | |
} | |
if ( !(sub_1800D9AA4() & 1) ) | |
{ | |
v6 = 1LL; | |
if ( !(unsigned int)sub_1800BC278(4u, &v16) && v16 ) | |
{ | |
v15 = 0; | |
v6 = 2LL; | |
sub_1800BC278(2u, &v15); | |
sub_1800EF260((__int64)"%llx:%d\n", v8, v9, v10, v11, v12, v13, v14, -3975070616357390019LL); | |
sub_1800D8A88(); | |
} | |
} | |
else | |
{ | |
LABEL_15: | |
v6 = 0LL; | |
} | |
if ( 5139240511851214385LL != v21 ) | |
sub_1800D4A5C(); | |
return v6; | |
} | |
// 1801139D0: using guessed type __int16 word_1801139D0[]; | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800BC910) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BC910(int a1, int a2) | |
{ | |
int v2; // w20 | |
signed __int64 result; // x0 | |
int *v4; // x21 | |
__int16 v5; // w19 | |
int v6; // w8 | |
unsigned __int8 v7; // [xsp+7h] [xbp-29h] | |
__int64 v8; // [xsp+8h] [xbp-28h] | |
v2 = a2; | |
v8 = 5139240511851214385LL; | |
if ( (unsigned int)(a1 - 1) <= 0x21 ) | |
{ | |
v4 = &dword_180104D8C[3 * (a1 - 1)]; | |
v5 = *((_WORD *)v4 + 4); | |
sub_1800BB818(1u, 233, *((_WORD *)v4 + 4), &v7); | |
v6 = *((unsigned __int8 *)v4 + 10); | |
if ( v2 ) | |
LOBYTE(v6) = v7 | v6; | |
else | |
v6 = v7 & ~v6; | |
v7 = v6; | |
sub_1800BB730(1u, 232, v5, (unsigned __int8)v6, 1); | |
result = 0LL; | |
} | |
else | |
{ | |
result = 0xFFFFFFFFLL; | |
} | |
if ( 5139240511851214385LL != v8 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180104D8C: using guessed type int dword_180104D8C[]; | |
//----- (00000001800BC9E0) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BC9E0(_BYTE *a1, _BYTE *a2) | |
{ | |
_BYTE *v2; // x19 | |
_BYTE *v3; // x20 | |
signed __int64 result; // x0 | |
unsigned int v5; // w8 | |
unsigned __int8 v6; // [xsp+7h] [xbp-19h] | |
__int64 v7; // [xsp+8h] [xbp-18h] | |
v2 = a2; | |
v3 = a1; | |
v7 = 5139240511851214385LL; | |
result = sub_1800BB818(1u, 233, 1280, &v6); | |
if ( (_DWORD)result ) | |
{ | |
result = 0xFFFFFFFFLL; | |
} | |
else | |
{ | |
v5 = v6; | |
*v3 = (v6 >> 6) & 1; | |
*v2 = (v5 >> 1) & 1; | |
} | |
if ( 5139240511851214385LL != v7 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800BCA68) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BCA68(int a1) | |
{ | |
int v1; // w19 | |
int v2; // w3 | |
signed __int64 result; // x0 | |
int v4; // [xsp+Ch] [xbp-24h] | |
char v5; // [xsp+12h] [xbp-1Eh] | |
int v6; // [xsp+14h] [xbp-1Ch] | |
__int64 v7; // [xsp+18h] [xbp-18h] | |
v1 = a1; | |
v7 = 5139240511851214385LL; | |
if ( a1 ) | |
{ | |
if ( (unsigned int)sub_1800BB9AC(1282, &v5, 6LL) ) | |
goto LABEL_7; | |
v4 = v6 + v1; | |
if ( (unsigned int)sub_1800BBA24(1288, &v4, 4uLL) ) | |
goto LABEL_7; | |
v2 = 64; | |
} | |
else | |
{ | |
v2 = 0; | |
} | |
if ( (unsigned int)sub_1800BB730(1u, 232, 1280, v2, 0) ) | |
{ | |
LABEL_7: | |
result = 0xFFFFFFFFLL; | |
goto LABEL_8; | |
} | |
result = 0LL; | |
LABEL_8: | |
if ( 5139240511851214385LL != v7 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800BCB2C) ---------------------------------------------------- | |
_QWORD *__fastcall sub_1800BCB2C(__int64 a1, int a2, __int64 *a3, __int64 a4, int a5) | |
{ | |
int v5; // w21 | |
__int64 v6; // x20 | |
__int64 *v7; // x22 | |
int v8; // w23 | |
__int64 v9; // x19 | |
_QWORD *v10; // x9 | |
_QWORD *result; // x0 | |
char v12; // [xsp+8h] [xbp-78h] | |
char v13; // [xsp+9h] [xbp-77h] | |
int v14; // [xsp+Ch] [xbp-74h] | |
__int64 v15; // [xsp+20h] [xbp-60h] | |
_QWORD *v16; // [xsp+28h] [xbp-58h] | |
__int64 v17; // [xsp+30h] [xbp-50h] | |
int v18; // [xsp+38h] [xbp-48h] | |
__int64 v19; // [xsp+48h] [xbp-38h] | |
v5 = a5; | |
v6 = a4; | |
v7 = a3; | |
v8 = a2; | |
v9 = a1; | |
v19 = 5139240511851214385LL; | |
sub_1800BCC04(*(_QWORD *)(a1 + 168), (__int64)&v12); | |
v12 = 1; | |
v13 |= 0x20u; | |
v14 = v8; | |
v15 = *v7; | |
if ( v5 == 1 ) | |
{ | |
v16 = 0LL; | |
} | |
else | |
{ | |
v10 = v7 + 1; | |
if ( v5 == 2 ) | |
v10 = (_QWORD *)*v10; | |
v16 = v10; | |
} | |
v17 = v6; | |
v18 = v5 - 1; | |
result = sub_1800BCC2C(*(_QWORD *)(v9 + 168), &v12); | |
if ( 5139240511851214385LL != v19 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800BCC04) ---------------------------------------------------- | |
__int64 __fastcall sub_1800BCC04(__int64 result, __int64 a2) | |
{ | |
int v2; // w8 | |
*(_QWORD *)(a2 + 48) = 0LL; | |
*(_QWORD *)(a2 + 56) = 0LL; | |
*(_QWORD *)(a2 + 32) = 0LL; | |
*(_QWORD *)(a2 + 40) = 0LL; | |
*(_QWORD *)(a2 + 16) = 0LL; | |
*(_QWORD *)(a2 + 24) = 0LL; | |
*(_QWORD *)a2 = 0LL; | |
*(_QWORD *)(a2 + 8) = 0LL; | |
v2 = (*(unsigned __int16 *)(result + 32) + 1) & 0xF; | |
*(_WORD *)(result + 32) = (*(_WORD *)(result + 32) + 1) & 0xF; | |
*(_WORD *)(a2 + 2) = v2; | |
return result; | |
} | |
//----- (00000001800BCC2C) ---------------------------------------------------- | |
_QWORD *__fastcall sub_1800BCC2C(__int64 a1, _QWORD *a2) | |
{ | |
__int64 v2; // x19 | |
_QWORD *result; // x0 | |
int v4; // w8 | |
int v5; // w8 | |
v2 = a1; | |
result = sub_1800F03F0( | |
(_QWORD *)(*(_QWORD *)(a1 + 40) + ((unsigned __int64)*(unsigned int *)(a1 + 12) << 6)), | |
a2, | |
0x40uLL); | |
v4 = *(_DWORD *)(v2 + 12); | |
if ( v4 == *(_DWORD *)(v2 + 16) - 1 ) | |
v5 = 0; | |
else | |
v5 = v4 + 1; | |
*(_DWORD *)(v2 + 12) = v5; | |
return result; | |
} | |
//----- (00000001800BCD80) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BCD80(unsigned int a1) | |
{ | |
__int64 v1; // x29 | |
__int64 v2; // x30 | |
if ( a1 >= 3 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, 8415054965657969967LL, 2091LL, v1, v2); | |
return 464LL * (signed int)a1 + 6443606896LL; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800BCDD4) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BCDD4(_QWORD *a1, __int64 a2) | |
{ | |
_QWORD *v2; // x19 | |
__int64 v3; // x0 | |
__int64 v4; // x1 | |
__int64 v5; // x2 | |
__int64 v6; // x3 | |
__int64 v7; // x4 | |
__int64 v8; // x5 | |
__int64 v9; // x6 | |
__int64 v10; // x7 | |
__int64 v11; // x20 | |
__int64 v12; // x1 | |
__int64 v13; // x2 | |
__int64 v14; // x3 | |
__int64 v15; // x4 | |
__int64 v16; // x5 | |
__int64 v17; // x6 | |
__int64 v18; // x7 | |
unsigned __int64 v19; // x0 | |
__int64 v20; // x1 | |
__int64 v21; // x2 | |
__int64 v22; // x3 | |
__int64 v23; // x4 | |
__int64 v24; // x5 | |
__int64 v25; // x6 | |
__int64 v26; // x7 | |
signed __int64 v27; // x21 | |
__int64 v29; // x1 | |
__int64 v30; // x2 | |
__int64 v31; // x3 | |
__int64 v32; // x4 | |
__int64 v33; // x5 | |
__int64 v34; // x6 | |
__int64 v35; // x7 | |
__int64 v36; // x2 | |
__int64 v37; // x3 | |
__int64 v38; // x4 | |
__int64 v39; // x5 | |
__int64 v40; // x6 | |
__int64 v41; // x7 | |
unsigned __int64 v42; // x0 | |
__int64 v43; // x1 | |
__int64 v44; // x2 | |
__int64 v45; // x3 | |
__int64 v46; // x4 | |
__int64 v47; // x5 | |
__int64 v48; // x6 | |
__int64 v49; // x7 | |
v2 = a1; | |
a1[23] = a2; | |
v3 = sub_1800E3ABC(a2, 0, 0x186A0uLL); | |
v11 = v3; | |
if ( v3 ) | |
{ | |
if ( (unsigned int)sub_1800E4304(v3) == 98306 ) | |
{ | |
v19 = sub_1800E4394(v11, 0); | |
v2[26] = v19; | |
if ( v19 >> 13 ) | |
{ | |
sub_1800E47F0(v11); | |
sub_1800E4708(v11); | |
sub_1800E4920(v11, v29, v30, v31, v32, v33, v34, v35); | |
v42 = sub_1800E43A0(v11, 0LL, v36, v37, v38, v39, v40, v41); | |
if ( v42 ) | |
{ | |
v2[25] = v42; | |
sub_1800E4314(v11, 1); | |
sub_1800E4354(v11, 1); | |
v27 = 0LL; | |
v2[24] = v11; | |
goto LABEL_8; | |
} | |
sub_1800EF260((__int64)"%llx:%d\n", v43, v44, v45, v46, v47, v48, v49, 8415054965657969967LL); | |
v27 = 4294962292LL; | |
} | |
else | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v20, v21, v22, v23, v24, v25, v26, 8415054965657969967LL); | |
v27 = 4294962294LL; | |
} | |
} | |
else | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v12, v13, v14, v15, v16, v17, v18, 8415054965657969967LL); | |
v27 = 4294962295LL; | |
} | |
sub_1800E4244(v11); | |
} | |
else | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v4, v5, v6, v7, v8, v9, v10, 8415054965657969967LL); | |
v27 = 4294962296LL; | |
} | |
LABEL_8: | |
sub_1800BE038((__int64)v2, v27); | |
return v27; | |
} | |
//----- (00000001800BCF38) ---------------------------------------------------- | |
__int64 __fastcall sub_1800BCF38(__int64 result, char a2, char a3) | |
{ | |
char v3; // w20 | |
__int64 v4; // x19 | |
_QWORD *v5; // x0 | |
__int64 v6; // x9 | |
__int64 v7; // x8 | |
__int64 v8; // x9 | |
int v9; // w10 | |
__int64 v10; // x12 | |
__int64 v11; // x13 | |
__int64 v12; // x12 | |
__int64 v13; // x13 | |
v3 = a3; | |
v4 = result; | |
if ( !(a2 & 1) ) | |
{ | |
v5 = (_QWORD *)sub_1800EE264(0x8000uLL, 0x1000uLL); | |
*(_QWORD *)(v4 + 320) = v5; | |
*(_QWORD *)(v4 + 328) = v5; | |
*(_QWORD *)(v4 + 336) = v5 + 4096; | |
sub_1800F05A0(v5, 0x8000uLL); | |
result = (*(__int64 (__fastcall **)(_QWORD, _QWORD, signed __int64, signed __int64, _QWORD))(MEMORY[0x18011A718] | |
+ 40LL))( | |
*(unsigned int *)(v4 + 220), | |
*(_QWORD *)(v4 + 320), | |
2147500032LL, | |
8LL, | |
0LL); | |
v6 = *(_QWORD *)(v4 + 328); | |
*(_QWORD *)(v4 + 312) = v6 + 2147500032LL - *(_QWORD *)(v4 + 320); | |
*(_QWORD *)(v4 + 328) = v6 + 0x2000; | |
*(_QWORD *)(v4 + 440) = v6; | |
*(_QWORD *)(v4 + 448) = v6 + 4096; | |
} | |
if ( !(v3 & 1) ) | |
{ | |
v7 = 0LL; | |
v8 = 0LL; | |
v9 = 0; | |
while ( v8 != 64 ) | |
{ | |
v10 = *(_QWORD *)(v4 + 328); | |
*(_QWORD *)(v4 + 328) = v10 + 4096; | |
v11 = v4 + v8; | |
*(_WORD *)(v11 + 116) = v9; | |
*(_QWORD *)(v11 + 120) = v10; | |
*(_DWORD *)(v11 + 112) = 16; | |
*(_QWORD *)(v11 + 104) = 0LL; | |
*(_QWORD *)(v11 + 96) = v10 + 2147500032LL - *(_QWORD *)(v4 + 320); | |
v12 = *(_QWORD *)(v4 + 328); | |
*(_QWORD *)(v4 + 328) = v12 + 4096; | |
v13 = v4 + v7; | |
*(_QWORD *)(v13 + 40) = v12; | |
*(_WORD *)(v13 + 20) = v9; | |
*(_DWORD *)(v13 + 16) = 16; | |
*(_QWORD *)(v13 + 8) = 0LL; | |
*(_QWORD *)(v13 + 24) = v4 + v8 + 96; | |
*(_QWORD *)v13 = v12 + 2147500032LL - *(_QWORD *)(v4 + 320); | |
++v9; | |
v8 += 32LL; | |
v7 += 48LL; | |
} | |
*(_QWORD *)(v4 + 160) = v4; | |
*(_QWORD *)(v4 + 168) = v4 + 48; | |
} | |
return result; | |
} | |
//----- (00000001800BD078) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BD078(__int64 a1, int a2) | |
{ | |
int v2; // w20 | |
__int64 v3; // x19 | |
signed __int64 v4; // x21 | |
unsigned int *v5; // x9 | |
unsigned int v6; // w8 | |
__int64 v7; // x9 | |
bool v8; // zf | |
__int64 v9; // x1 | |
__int64 v10; // x2 | |
__int64 v11; // x3 | |
__int64 v12; // x4 | |
__int64 v13; // x5 | |
__int64 v14; // x6 | |
__int64 v15; // x7 | |
signed __int64 v16; // x0 | |
unsigned __int64 v17; // x21 | |
_QWORD *v18; // x22 | |
unsigned int v19; // w23 | |
unsigned int v20; // w0 | |
unsigned int v21; // w10 | |
unsigned __int64 v22; // x9 | |
__int64 v23; // x21 | |
__int64 v24; // x22 | |
__int64 v25; // x20 | |
__int64 v26; // x1 | |
__int64 v27; // x2 | |
__int64 v28; // x3 | |
__int64 v29; // x4 | |
__int64 v30; // x5 | |
__int64 v31; // x6 | |
__int64 v32; // x7 | |
unsigned __int64 v33; // x23 | |
signed __int64 v35; // x20 | |
__int64 v36; // x1 | |
__int64 v37; // x2 | |
__int64 v38; // x3 | |
__int64 v39; // x4 | |
__int64 v40; // x5 | |
__int64 v41; // x6 | |
__int64 v42; // x7 | |
signed __int64 v43; // x20 | |
signed __int64 v44; // x22 | |
_QWORD *v45; // x0 | |
__int64 v46; // x20 | |
__int64 v47; // x1 | |
__int64 v48; // x2 | |
__int64 v49; // x3 | |
__int64 v50; // x4 | |
__int64 v51; // x5 | |
__int64 v52; // x6 | |
__int64 v53; // x7 | |
__int64 v54; // x1 | |
__int64 v55; // x2 | |
__int64 v56; // x3 | |
__int64 v57; // x4 | |
__int64 v58; // x5 | |
__int64 v59; // x6 | |
__int64 v60; // x7 | |
__int64 v61; // x1 | |
__int64 v62; // x2 | |
__int64 v63; // x3 | |
__int64 v64; // x4 | |
__int64 v65; // x5 | |
__int64 v66; // x6 | |
__int64 v67; // x7 | |
__int64 v68; // x1 | |
__int64 v69; // x2 | |
__int64 v70; // x3 | |
__int64 v71; // x4 | |
__int64 v72; // x5 | |
__int64 v73; // x6 | |
__int64 v74; // x7 | |
__int64 v75; // x1 | |
__int64 v76; // x2 | |
__int64 v77; // x3 | |
__int64 v78; // x4 | |
__int64 v79; // x5 | |
__int64 v80; // x6 | |
__int64 v81; // x7 | |
__int64 v82; // x1 | |
__int64 v83; // x2 | |
__int64 v84; // x3 | |
__int64 v85; // x4 | |
__int64 v86; // x5 | |
__int64 v87; // x6 | |
__int64 v88; // x7 | |
__int64 v89; // x1 | |
__int64 v90; // x2 | |
__int64 v91; // x3 | |
__int64 v92; // x4 | |
__int64 v93; // x5 | |
__int64 v94; // x6 | |
__int64 v95; // x7 | |
__int64 v96; // x1 | |
__int64 v97; // x2 | |
__int64 v98; // x3 | |
__int64 v99; // x4 | |
__int64 v100; // x5 | |
__int64 v101; // x6 | |
__int64 v102; // x7 | |
__int64 v103; // x1 | |
__int64 v104; // x2 | |
__int64 v105; // x3 | |
__int64 v106; // x4 | |
__int64 v107; // x5 | |
__int64 v108; // x6 | |
__int64 v109; // x7 | |
__int64 v110; // x1 | |
__int64 v111; // x2 | |
__int64 v112; // x3 | |
__int64 v113; // x4 | |
__int64 v114; // x5 | |
__int64 v115; // x6 | |
__int64 v116; // x7 | |
__int64 v117; // x1 | |
__int64 v118; // x2 | |
__int64 v119; // x3 | |
__int64 v120; // x4 | |
__int64 v121; // x5 | |
__int64 v122; // x6 | |
__int64 v123; // x7 | |
__int64 v124; // x1 | |
__int64 v125; // x2 | |
__int64 v126; // x3 | |
__int64 v127; // x4 | |
__int64 v128; // x5 | |
__int64 v129; // x6 | |
__int64 v130; // x7 | |
__int64 v131; // x1 | |
__int64 v132; // x2 | |
__int64 v133; // x3 | |
__int64 v134; // x4 | |
__int64 v135; // x5 | |
__int64 v136; // x6 | |
__int64 v137; // x7 | |
__int64 v138; // x1 | |
__int64 v139; // x2 | |
__int64 v140; // x3 | |
__int64 v141; // x4 | |
__int64 v142; // x5 | |
__int64 v143; // x6 | |
__int64 v144; // x7 | |
__int64 v145; // x1 | |
__int64 v146; // x2 | |
__int64 v147; // x3 | |
__int64 v148; // x4 | |
__int64 v149; // x5 | |
__int64 v150; // x6 | |
__int64 v151; // x7 | |
__int64 v152; // x1 | |
__int64 v153; // x2 | |
__int64 v154; // x3 | |
__int64 v155; // x4 | |
__int64 v156; // x5 | |
__int64 v157; // x6 | |
__int64 v158; // x7 | |
__int64 v159; // x1 | |
__int64 v160; // x2 | |
__int64 v161; // x3 | |
__int64 v162; // x4 | |
__int64 v163; // x5 | |
__int64 v164; // x6 | |
__int64 v165; // x7 | |
__int64 v166; // x1 | |
__int64 v167; // x2 | |
__int64 v168; // x3 | |
__int64 v169; // x4 | |
__int64 v170; // x5 | |
__int64 v171; // x6 | |
__int64 v172; // x7 | |
__int64 v173; // x1 | |
__int64 v174; // x2 | |
__int64 v175; // x3 | |
__int64 v176; // x4 | |
__int64 v177; // x5 | |
__int64 v178; // x6 | |
__int64 v179; // x7 | |
unsigned int v180; // w8 | |
unsigned int v181; // w8 | |
bool v182; // cf | |
bool v183; // zf | |
unsigned int v184; // w8 | |
unsigned int v185; // w8 | |
bool v186; // cf | |
bool v187; // zf | |
__int64 v188; // x1 | |
__int64 v189; // x2 | |
__int64 v190; // x3 | |
__int64 v191; // x4 | |
__int64 v192; // x5 | |
__int64 v193; // x6 | |
__int64 v194; // x7 | |
unsigned int v195; // w8 | |
signed int v196; // w8 | |
__int64 v197; // x1 | |
__int64 v198; // x2 | |
__int64 v199; // x3 | |
__int64 v200; // x4 | |
__int64 v201; // x5 | |
__int64 v202; // x6 | |
__int64 v203; // x7 | |
unsigned __int64 v204; // x0 | |
_QWORD *v205; // x0 | |
unsigned int i; // w22 | |
__int64 v207; // x1 | |
__int64 v208; // x2 | |
__int64 v209; // x3 | |
__int64 v210; // x4 | |
__int64 v211; // x5 | |
__int64 v212; // x6 | |
__int64 v213; // x7 | |
__int64 v214; // x10 | |
__int64 v215; // [xsp+10h] [xbp-A0h] | |
__int64 v216; // [xsp+18h] [xbp-98h] | |
__int64 v217; // [xsp+20h] [xbp-90h] | |
char v218; // [xsp+28h] [xbp-88h] | |
int v219; // [xsp+2Ch] [xbp-84h] | |
__int64 v220; // [xsp+40h] [xbp-70h] | |
int v221; // [xsp+50h] [xbp-60h] | |
int v222; // [xsp+54h] [xbp-5Ch] | |
__int64 v223; // [xsp+68h] [xbp-48h] | |
v2 = a2; | |
v3 = a1; | |
v223 = 5139240511851214385LL; | |
v4 = sub_1800BE85C(a1, 0); | |
if ( (_DWORD)v4 ) | |
goto LABEL_39; | |
*(_BYTE *)(v3 + 179) = v2; | |
if ( v2 != 1 ) | |
{ | |
if ( LOBYTE(qword_1801158C8[2505]) == 1 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, 8415054965657969967LL, 1337LL); | |
LOBYTE(qword_1801158C8[2505]) = 1; | |
v16 = sub_1800E086C(0); | |
v18 = *(_QWORD **)v16; | |
v17 = *(_QWORD *)(v16 + 8); | |
sub_1800F05A0(*(_QWORD **)v16, v17); | |
v19 = sub_1800BEA58(v3, 0x1808u); | |
if ( v19 == -1 || (v20 = sub_1800BEA58(v3, 0x180Cu), v20 == -1) ) | |
{ | |
v4 = 4294962293LL; | |
goto LABEL_39; | |
} | |
if ( v19 ) | |
{ | |
if ( v19 & 0xFFF ) | |
v21 = (v19 + 4095) & 0xFFF; | |
else | |
v21 = v19; | |
if ( (v20 - 1) & v20 ) | |
goto LABEL_90; | |
v22 = v20; | |
if ( v20 > v17 ) | |
goto LABEL_90; | |
if ( v21 > v17 ) | |
{ | |
LABEL_22: | |
v4 = 4294961145LL; | |
goto LABEL_39; | |
} | |
if ( v17 > v20 ) | |
v22 = v17; | |
v33 = 2952790016u - v22; | |
if ( (2952790016u - v22) & (v20 - 1) ) | |
{ | |
LABEL_90: | |
v4 = 4294961146LL; | |
goto LABEL_39; | |
} | |
if ( v33 < 0x8020D000 ) | |
goto LABEL_22; | |
(*(void (__fastcall **)(_QWORD, _QWORD *, unsigned __int64, unsigned __int64, _QWORD))(MEMORY[0x18011A718] + 40LL))( | |
*(unsigned int *)(v3 + 220), | |
v18, | |
2952790016u - v22, | |
v17 >> 12, | |
0LL); | |
*(_QWORD *)(v3 + 344) = v33; | |
*(_QWORD *)(v3 + 456) = v18; | |
*(_DWORD *)(v3 + 352) = v17; | |
sub_1800BE9F0(v3, 0x1810u, v33); | |
sub_1800BE998(v3, 0x1818u, v17); | |
} | |
} | |
v5 = *(unsigned int **)(v3 + 200); | |
v6 = *v5; | |
if ( *v5 == -1 | |
|| ((v7 = v5[1], (_DWORD)v7 != -1) ? (v8 = (v6 | ((unsigned __int64)(unsigned int)v7 << 32)) == -1LL) : (v8 = 1), v8) ) | |
{ | |
v4 = 4294962293LL; | |
LABEL_10: | |
sub_1800BE038(v3, v4); | |
LABEL_11: | |
sub_1800EF260((__int64)"%llx:%d\n", v9, v10, v11, v12, v13, v14, v15, 8415054965657969967LL); | |
LABEL_39: | |
sub_1800BDAB8(v3); | |
goto LABEL_40; | |
} | |
if ( ((unsigned __int8)v7 & 0xFu) > 7 ) | |
{ | |
v4 = 4294961196LL; | |
goto LABEL_10; | |
} | |
*(_DWORD *)(v3 + 216) = 4 << (v7 & 0xF); | |
if ( (v7 << 32) & 0xF000000000000LL ) | |
{ | |
v4 = 4294961195LL; | |
goto LABEL_10; | |
} | |
if ( (unsigned __int16)v6 <= 0xEuLL ) | |
{ | |
v4 = 4294961194LL; | |
goto LABEL_10; | |
} | |
v23 = *(_QWORD *)(v3 + 160); | |
v24 = *(_QWORD *)(v23 + 24); | |
*(_QWORD *)(v23 + 8) = 0LL; | |
*(_DWORD *)(v24 + 8) = 0; | |
*(_DWORD *)(*(_QWORD *)(v23 + 24) + 12LL) = 0; | |
sub_1800F05A0(*(_QWORD **)(v23 + 40), (unsigned __int64)*(unsigned int *)(v23 + 16) << 6); | |
sub_1800F05A0(*(_QWORD **)(v24 + 24), 16LL * *(unsigned int *)(v24 + 16)); | |
*(_BYTE *)(v24 + 22) &= 0xFEu; | |
sub_1800BE998(v3, 0x1800u, v2); | |
sub_1800BE998(v3, 0x14u, 4587520); | |
sub_1800BE998(v3, 0x24u, ((*(_DWORD *)(v24 + 16) << 16) - 0x10000) | (*(_DWORD *)(v23 + 16) - 1)); | |
sub_1800BE9F0(v3, 0x30u, *(_QWORD *)v24); | |
sub_1800BE9F0(v3, 0x28u, *(_QWORD *)v23); | |
*(_BYTE *)(v24 + 23) = 1; | |
*(_BYTE *)(v23 + 22) = 1; | |
v4 = sub_1800BE85C(v3, 1); | |
if ( (_DWORD)v4 ) | |
goto LABEL_39; | |
*(_BYTE *)(v3 + 178) = 1; | |
if ( !*(_BYTE *)(v3 + 177) ) | |
{ | |
v216 = 0LL; | |
v217 = 0LL; | |
v215 = 0LL; | |
v4 = sub_1800BDE28(v3); | |
if ( !(_DWORD)v4 ) | |
{ | |
v35 = *(_QWORD *)(v3 + 448) + 2147500032LL - *(_QWORD *)(v3 + 320); | |
sub_1800BCC04(*(_QWORD *)(v3 + 160), (__int64)&v218); | |
v218 = 6; | |
v219 = 0; | |
v220 = v35; | |
v221 = 1; | |
sub_1800BCC2C(*(_QWORD *)(v3 + 160), &v218); | |
v4 = sub_1800BDE64(v3, *(_QWORD *)(v3 + 160), 0x2DC6C0uLL); | |
if ( !(_DWORD)v4 ) | |
{ | |
v43 = sub_1800EDBF4(0x1000uLL); | |
sub_1800F03F0((_QWORD *)v43, *(_QWORD **)(v3 + 448), 0x1000uLL); | |
*(_WORD *)(v3 + 224) = *(_WORD *)v43; | |
*(_DWORD *)(v3 + 242) = *(_DWORD *)(v43 + 20); | |
*(_QWORD *)(v3 + 234) = *(_QWORD *)(v43 + 12); | |
*(_QWORD *)(v3 + 226) = *(_QWORD *)(v43 + 4); | |
sub_1800F03F0((_QWORD *)(v3 + 247), (_QWORD *)(v43 + 24), 0x28uLL); | |
*(_QWORD *)(v3 + 288) = *(_QWORD *)(v43 + 64); | |
*(_BYTE *)(v3 + 246) = 0; | |
*(_BYTE *)(v3 + 287) = 0; | |
*(_BYTE *)(v3 + 296) = 0; | |
sub_1800EF260((__int64)"%llx:%d\n", v47, v48, v49, v50, v51, v52, v53, 8415054965657969967LL); | |
sub_1800EF260((__int64)"%llx:%d\n", v54, v55, v56, v57, v58, v59, v60, 8415054965657969967LL); | |
*(_WORD *)(v43 + 3102); | |
sub_1800EF260((__int64)"%llx:%d\n", v61, v62, v63, v64, v65, v66, v67, 8415054965657969967LL); | |
*(_WORD *)(v43 + 3102); | |
sub_1800EF260((__int64)"%llx:%d\n", v68, v69, v70, v71, v72, v73, v74, 8415054965657969967LL); | |
*(_WORD *)(v43 + 3102); | |
sub_1800EF260((__int64)"%llx:%d\n", v75, v76, v77, v78, v79, v80, v81, 8415054965657969967LL); | |
*(_WORD *)(v43 + 3102); | |
sub_1800EF260((__int64)"%llx:%d\n", v82, v83, v84, v85, v86, v87, v88, 8415054965657969967LL); | |
sub_1800EF260((__int64)"%llx:%d\n", v89, v90, v91, v92, v93, v94, v95, 8415054965657969967LL); | |
if ( (*(_WORD *)(v43 + 3102) & 0x187) == 129 ) | |
sub_1800EF260((__int64)"%llx:%d\n", v96, v97, v98, v99, v100, v101, v102, 8415054965657969967LL); | |
sub_1800EF260((__int64)"%llx:%d\n", v96, v97, v98, v99, v100, v101, v102, 8415054965657969967LL); | |
sub_1800EF260((__int64)"%llx:%d\n", v103, v104, v105, v106, v107, v108, v109, 8415054965657969967LL); | |
sub_1800EF260((__int64)"%llx:%d\n", v110, v111, v112, v113, v114, v115, v116, 8415054965657969967LL); | |
sub_1800EF260((__int64)"%llx:%d\n", v117, v118, v119, v120, v121, v122, v123, 8415054965657969967LL); | |
sub_1800EF260((__int64)"%llx:%d\n", v124, v125, v126, v127, v128, v129, v130, 8415054965657969967LL); | |
sub_1800EF260((__int64)"%llx:%d\n", v131, v132, v133, v134, v135, v136, v137, 8415054965657969967LL); | |
sub_1800EF260((__int64)"%llx:%d\n", v138, v139, v140, v141, v142, v143, v144, 8415054965657969967LL); | |
sub_1800EF260((__int64)"%llx:%d\n", v145, v146, v147, v148, v149, v150, v151, 8415054965657969967LL); | |
sub_1800EF260((__int64)"%llx:%d\n", v152, v153, v154, v155, v156, v157, v158, 8415054965657969967LL); | |
sub_1800EF260((__int64)"%llx:%d\n", v159, v160, v161, v162, v163, v164, v165, 8415054965657969967LL); | |
sub_1800EF260((__int64)"%llx:%d\n", v166, v167, v168, v169, v170, v171, v172, 8415054965657969967LL); | |
v180 = *(unsigned __int8 *)(v43 + 512); | |
v182 = v180 >= 0x60; | |
v181 = v180 & 0xF; | |
if ( v182 ) | |
{ | |
v182 = v181 >= 6; | |
v183 = v181 == 6; | |
} | |
else | |
{ | |
v182 = 1; | |
v183 = 0; | |
} | |
if ( !v183 && v182 ) | |
{ | |
v4 = 4294961193LL; | |
} | |
else | |
{ | |
v184 = *(unsigned __int8 *)(v43 + 513); | |
v182 = v184 >= 0x40; | |
v185 = v184 & 0xF; | |
if ( v182 ) | |
{ | |
v186 = v185 >= 4; | |
v187 = v185 == 4; | |
} | |
else | |
{ | |
v186 = 1; | |
v187 = 0; | |
} | |
if ( v187 || !v186 ) | |
{ | |
v195 = *(unsigned __int8 *)(v43 + 77); | |
if ( v195 > 0x1F || (v196 = 1 << v195, v196 >= 513) ) | |
v196 = 512; | |
*(_DWORD *)(v3 + 300) = v196; | |
*(_DWORD *)(v3 + 304) = *(_DWORD *)(v43 + 516); | |
*(_DWORD *)(v3 + 308) = *(unsigned __int8 *)(v43 + 3098); | |
sub_1800EF260((__int64)"%llx:%d\n", v173, v174, v175, v176, v177, v178, v179, 8415054965657969967LL); | |
sub_1800EF260((__int64)"%llx:%d\n", v197, v198, v199, v200, v201, v202, v203, 8415054965657969967LL); | |
v204 = *(unsigned int *)(v3 + 304); | |
if ( (_DWORD)v204 ) | |
{ | |
v205 = (_QWORD *)sub_1800EDBF4(v204); | |
*(_QWORD *)(v3 + 360) = v205; | |
sub_1800F05A0(v205, *(unsigned int *)(v3 + 304)); | |
for ( i = 2; i <= *(_DWORD *)(v3 + 304); ++i ) | |
{ | |
v4 = sub_1800BE4F0(*(_DWORD *)(v3 + 180), i, (__int64)&v215); | |
if ( (_DWORD)v4 ) | |
goto LABEL_84; | |
v214 = HIDWORD(v217); | |
*(_BYTE *)(*(_QWORD *)(v3 + 360) + i - 1) = BYTE4(v217); | |
*(_BYTE *)(v3 + v214 + 368) = i; | |
sub_1800EF260((__int64)"%llx:%d\n", v207, v208, v209, v210, v211, v212, v213, 8415054965657969967LL); | |
} | |
v4 = 0LL; | |
if ( !v43 ) | |
goto LABEL_52; | |
} | |
else | |
{ | |
v4 = 0LL; | |
} | |
LABEL_51: | |
sub_1800EE010((_QWORD *)v43); | |
LABEL_52: | |
sub_1800BE038(v3, v4); | |
if ( (_DWORD)v4 ) | |
goto LABEL_11; | |
*(_BYTE *)(v3 + 177) = 1; | |
goto LABEL_32; | |
} | |
v4 = 4294961192LL; | |
} | |
LABEL_84: | |
v44 = v43; | |
LABEL_48: | |
v45 = *(_QWORD **)(v3 + 360); | |
if ( v45 ) | |
sub_1800EE010(v45); | |
if ( !v44 ) | |
goto LABEL_52; | |
goto LABEL_51; | |
} | |
sub_1800EF260((__int64)"%llx:%d\n", v36, v37, v38, v39, v40, v41, v42, 8415054965657969967LL); | |
} | |
v43 = 0LL; | |
v44 = 0LL; | |
goto LABEL_48; | |
} | |
LABEL_32: | |
sub_1800EF260((__int64)"%llx:%d\n", v9, v10, v11, v12, v13, v14, v15, 8415054965657969967LL); | |
v25 = *(_QWORD *)(*(_QWORD *)(v3 + 168) + 24LL); | |
v4 = sub_1800BDE28(v3); | |
if ( (_DWORD)v4 ) | |
{ | |
LABEL_55: | |
sub_1800BE038(v3, v4); | |
goto LABEL_39; | |
} | |
sub_1800F05A0(*(_QWORD **)(v25 + 24), 16LL * *(unsigned int *)(v25 + 16)); | |
sub_1800BCC04(*(_QWORD *)(v3 + 160), (__int64)&v218); | |
v218 = 5; | |
v220 = *(_QWORD *)v25; | |
v221 = ((*(_DWORD *)(v25 + 16) << 16) - 0x10000) | *(unsigned __int16 *)(v25 + 20); | |
v222 = 1; | |
sub_1800BCC2C(*(_QWORD *)(v3 + 160), &v218); | |
v4 = sub_1800BDE64(v3, *(_QWORD *)(v3 + 160), 0x2DC6C0uLL); | |
if ( (_DWORD)v4 ) | |
goto LABEL_91; | |
*(_BYTE *)(v25 + 23) = 1; | |
sub_1800BE038(v3, 0); | |
v46 = *(_QWORD *)(v3 + 168); | |
v4 = sub_1800BDE28(v3); | |
if ( (_DWORD)v4 ) | |
goto LABEL_55; | |
sub_1800F05A0(*(_QWORD **)(v46 + 40), (unsigned __int64)*(unsigned int *)(v46 + 16) << 6); | |
sub_1800BCC04(*(_QWORD *)(v3 + 160), (__int64)&v218); | |
v218 = 1; | |
v220 = *(_QWORD *)v46; | |
v221 = ((*(_DWORD *)(v46 + 16) << 16) - 0x10000) | *(unsigned __int16 *)(v46 + 20); | |
v222 = (*(unsigned __int16 *)(*(_QWORD *)(v46 + 24) + 20LL) << 16) | 1; | |
sub_1800BCC2C(*(_QWORD *)(v3 + 160), &v218); | |
v4 = sub_1800BDE64(v3, *(_QWORD *)(v3 + 160), 0x2DC6C0uLL); | |
if ( (_DWORD)v4 ) | |
{ | |
LABEL_91: | |
sub_1800EF260((__int64)"%llx:%d\n", v26, v27, v28, v29, v30, v31, v32, 8415054965657969967LL); | |
goto LABEL_55; | |
} | |
*(_BYTE *)(v46 + 22) = 1; | |
sub_1800BE038(v3, 0); | |
sub_1800EF260((__int64)"%llx:%d\n", v188, v189, v190, v191, v192, v193, v194, 8415054965657969967LL); | |
LABEL_40: | |
if ( 5139240511851214385LL != v223 ) | |
sub_1800D4A5C(); | |
return v4; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800BD9B0) ---------------------------------------------------- | |
void __fastcall sub_1800BD9B0(unsigned int a1) | |
{ | |
__int64 v1; // x0 | |
__int64 v2; // x19 | |
__int64 v3; // x2 | |
v1 = sub_1800BCD80(a1); | |
v2 = v1; | |
if ( *(_QWORD *)(v1 + 192) ) | |
{ | |
sub_1800BDAB8(v1); | |
sub_1800BDA6C(v2); | |
(*(void (__fastcall **)(_QWORD))(MEMORY[0x18011A718] + 32LL))(*(unsigned int *)(v2 + 220)); | |
} | |
if ( *(_QWORD *)(v2 + 320) ) | |
{ | |
(*(void (__fastcall **)(_QWORD, signed __int64, signed __int64))(MEMORY[0x18011A718] + 48LL))( | |
*(unsigned int *)(v2 + 220), | |
2147500032LL, | |
8LL); | |
sub_1800EE010(*(_QWORD **)(v2 + 320)); | |
*(_QWORD *)(v2 + 320) = 0LL; | |
} | |
if ( *(_QWORD *)(v2 + 344) ) | |
{ | |
v3 = (unsigned int)(*(_DWORD *)(v2 + 352) >> 12); | |
(*(void (__fastcall **)(_QWORD))(MEMORY[0x18011A718] + 48LL))(*(unsigned int *)(v2 + 220)); | |
*(_QWORD *)(v2 + 344) = 0LL; | |
*(_DWORD *)(v2 + 352) = 0; | |
} | |
*(_BYTE *)(v2 + 176) = 0; | |
} | |
//----- (00000001800BDA6C) ---------------------------------------------------- | |
void __fastcall sub_1800BDA6C(__int64 a1) | |
{ | |
__int64 v1; // x19 | |
v1 = a1; | |
sub_1800E4314(*(_QWORD *)(a1 + 192), 0); | |
sub_1800E4354(*(_QWORD *)(v1 + 192), 0); | |
sub_1800E46A0(*(_WORD **)(v1 + 192), 3); | |
sub_1800E4244(*(_QWORD *)(v1 + 192)); | |
*(_QWORD *)(v1 + 192) = 0LL; | |
} | |
//----- (00000001800BDAB8) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BDAB8(__int64 a1) | |
{ | |
__int64 v1; // x19 | |
__int64 v2; // x21 | |
signed __int64 v3; // x20 | |
__int64 v4; // x1 | |
__int64 v5; // x2 | |
__int64 v6; // x3 | |
__int64 v7; // x4 | |
__int64 v8; // x5 | |
__int64 v9; // x6 | |
__int64 v10; // x7 | |
__int64 v11; // x21 | |
__int64 v12; // x1 | |
__int64 v13; // x2 | |
__int64 v14; // x3 | |
__int64 v15; // x4 | |
__int64 v16; // x5 | |
__int64 v17; // x6 | |
__int64 v18; // x7 | |
__int64 v19; // x0 | |
__int64 v20; // x21 | |
int v21; // w0 | |
__int64 v22; // x1 | |
__int64 v23; // x2 | |
__int64 v24; // x3 | |
__int64 v25; // x4 | |
__int64 v26; // x5 | |
__int64 v27; // x6 | |
__int64 v28; // x7 | |
char v30; // [xsp+18h] [xbp-68h] | |
int v31; // [xsp+40h] [xbp-40h] | |
__int64 v32; // [xsp+58h] [xbp-28h] | |
v1 = a1; | |
v32 = 5139240511851214385LL; | |
if ( *(_BYTE *)(a1 + 178) ) | |
{ | |
v2 = *(_QWORD *)(a1 + 168); | |
if ( *(_BYTE *)(v2 + 22) ) | |
{ | |
v3 = sub_1800BDE28(a1); | |
if ( !(_DWORD)v3 ) | |
{ | |
sub_1800BCC04(*(_QWORD *)(v1 + 160), (__int64)&v30); | |
v30 = 0; | |
v31 = *(unsigned __int16 *)(v2 + 20); | |
sub_1800BCC2C(*(_QWORD *)(v1 + 160), &v30); | |
v3 = sub_1800BDE64(v1, *(_QWORD *)(v1 + 160), 0x2DC6C0uLL); | |
if ( (_DWORD)v3 ) | |
sub_1800EF260((__int64)"%llx:%d\n", v4, v5, v6, v7, v8, v9, v10, 8415054965657969967LL); | |
} | |
*(_BYTE *)(v2 + 22) = 0; | |
*(_QWORD *)(v2 + 8) = 0LL; | |
sub_1800BE038(v1, v3); | |
sub_1800BE038(v1, v3); | |
v2 = *(_QWORD *)(v1 + 168); | |
} | |
else | |
{ | |
v3 = 0LL; | |
} | |
v11 = *(_QWORD *)(v2 + 24); | |
if ( *(_BYTE *)(v11 + 23) ) | |
{ | |
v3 = sub_1800BDE28(v1); | |
if ( !(_DWORD)v3 ) | |
{ | |
sub_1800BCC04(*(_QWORD *)(v1 + 160), (__int64)&v30); | |
v30 = 4; | |
v31 = *(unsigned __int16 *)(v11 + 20); | |
sub_1800BCC2C(*(_QWORD *)(v1 + 160), &v30); | |
v3 = sub_1800BDE64(v1, *(_QWORD *)(v1 + 160), 0x2DC6C0uLL); | |
if ( (_DWORD)v3 ) | |
sub_1800EF260((__int64)"%llx:%d\n", v12, v13, v14, v15, v16, v17, v18, 8415054965657969967LL); | |
} | |
*(_BYTE *)(v11 + 23) = 0; | |
*(_QWORD *)(v11 + 8) = 0LL; | |
*(_BYTE *)(v11 + 22) &= 0xFEu; | |
sub_1800BE038(v1, v3); | |
sub_1800BE038(v1, v3); | |
} | |
if ( *(_BYTE *)(v1 + 179) != 1 ) | |
{ | |
v19 = sub_1800BDE28(v1); | |
if ( !(_DWORD)v19 ) | |
{ | |
v20 = sub_1800D5F1C(v19); | |
v21 = sub_1800BEA58(v1, 0x14u); | |
sub_1800BE998(v1, 0x14u, v21 & 0xFFFF3FFF | 0x4000); | |
while ( (sub_1800BEA58(v1, 0x1Cu) & 0xC) != 8 ) | |
{ | |
if ( sub_1800D5F30(v20, 0xE4E1C00uLL) ) | |
{ | |
sub_1800BEA58(v1, 0x1Cu); | |
sub_1800EF260((__int64)"%llx:%d\n", v22, v23, v24, v25, v26, v27, v28, 8415054965657969967LL); | |
v3 = 4294961294LL; | |
break; | |
} | |
sub_1800D5F60(1000LL); | |
} | |
} | |
} | |
sub_1800BE85C(v1, 0); | |
*(_BYTE *)(v1 + 178) = 0; | |
} | |
else | |
{ | |
v3 = 0LL; | |
} | |
*(_BYTE *)(v1 + 179) = 5; | |
sub_1800BE038(v1, v3); | |
if ( 5139240511851214385LL != v32 ) | |
sub_1800D4A5C(); | |
return v3; | |
} | |
//----- (00000001800BDD34) ---------------------------------------------------- | |
void sub_1800BDD34() | |
{ | |
unsigned int i; // w19 | |
for ( i = 0; i != 2; ++i ) | |
sub_1800BD9B0(i); | |
} | |
//----- (00000001800BDD68) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BDD68(unsigned int a1, int a2) | |
{ | |
int v2; // w20 | |
__int64 v3; // x19 | |
signed __int64 v4; // x21 | |
char v6; // [xsp+8h] [xbp-68h] | |
char v7; // [xsp+9h] [xbp-67h] | |
int v8; // [xsp+Ch] [xbp-64h] | |
__int64 v9; // [xsp+48h] [xbp-28h] | |
v2 = a2; | |
v9 = 5139240511851214385LL; | |
v3 = sub_1800BCD80(a1); | |
v4 = sub_1800BDE28(v3); | |
if ( !(_DWORD)v4 ) | |
{ | |
sub_1800BCC04(*(_QWORD *)(v3 + 168), (__int64)&v6); | |
v6 = 0; | |
v8 = v2; | |
v7 |= 0x20u; | |
sub_1800BCC2C(*(_QWORD *)(v3 + 168), &v6); | |
v4 = sub_1800BDE64(v3, *(_QWORD *)(v3 + 168), 0x1C9C380uLL); | |
} | |
sub_1800BE038(v3, v4); | |
if ( 5139240511851214385LL != v9 ) | |
sub_1800D4A5C(); | |
return v4; | |
} | |
//----- (00000001800BDE28) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BDE28(__int64 a1) | |
{ | |
signed __int64 result; // x0 | |
unsigned int v2; // w8 | |
bool v3; // cf | |
bool v4; // zf | |
if ( *(_BYTE *)(a1 + 384) ) | |
return 4294961293LL; | |
v2 = *(_DWORD *)(a1 + 380); | |
if ( v2 + 7004 >= 2 ) | |
v3 = v2 + 6001 >= 2; | |
else | |
v3 = 0; | |
if ( v3 ) | |
v4 = v2 == -5003; | |
else | |
v4 = 1; | |
if ( v4 ) | |
result = v2; | |
else | |
result = 0LL; | |
return result; | |
} | |
//----- (00000001800BDE64) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BDE64(__int64 a1, __int64 a2, unsigned __int64 a3) | |
{ | |
unsigned __int64 v3; // x21 | |
__int64 v4; // x20 | |
__int64 v5; // x19 | |
int v6; // w22 | |
unsigned int v7; // w23 | |
__int64 v8; // x0 | |
__int64 v9; // x23 | |
unsigned __int64 v10; // x0 | |
__int64 v11; // x22 | |
__int64 v12; // x25 | |
__int64 v13; // x26 | |
_WORD *v14; // x24 | |
unsigned __int16 *v15; // x9 | |
unsigned int v16; // w8 | |
unsigned __int64 v17; // x10 | |
int v18; // w9 | |
signed __int64 v19; // x21 | |
__int64 v20; // x8 | |
int v21; // w9 | |
unsigned int v23; // w11 | |
signed __int64 v24; // x10 | |
v3 = a3; | |
v4 = a2; | |
v5 = a1; | |
v6 = *(_DWORD *)(a2 + 12); | |
v7 = 2 * *(unsigned __int16 *)(a2 + 20) * *(_DWORD *)(a1 + 216) + 4096; | |
((void (*)(void))sub_1800D9F80)(); | |
v8 = sub_1800BE998(v5, v7, v6); | |
v9 = *(_QWORD *)(v4 + 24); | |
v10 = sub_1800D5F1C(v8); | |
v11 = v10; | |
v12 = *(_QWORD *)(v9 + 24); | |
v13 = *(unsigned int *)(v9 + 8); | |
v14 = (_WORD *)(v12 + 16 * v13 + 14); | |
while ( 1 ) | |
{ | |
if ( (*v14 & 1) != (*(_BYTE *)(v9 + 22) & 1) ) | |
{ | |
sub_1800D9F80(v10); | |
v15 = (unsigned __int16 *)(v12 + 16 * v13); | |
v16 = v15[4]; | |
v17 = v15[5]; | |
v18 = v15[6]; | |
if ( v17 <= 1 && *(_BYTE *)(v5 + 48 * v17 + 22) ) | |
{ | |
if ( v16 <= *(_DWORD *)(v5 + 48 * v17 + 16) ) | |
{ | |
v23 = -(((unsigned int)(unsigned __int16)*v14 >> 1) & 0x700 | ((unsigned int)(unsigned __int16)*v14 >> 1) & 0xFF); | |
v24 = v5 + 48 * v17; | |
*(_DWORD *)(v24 + 8) = v16; | |
if ( v18 == *(unsigned __int16 *)(v24 + 32) ) | |
v19 = v23; | |
else | |
v19 = 4294960291LL; | |
goto LABEL_12; | |
} | |
v19 = 4294960294LL; | |
} | |
else | |
{ | |
v19 = 4294960295LL; | |
} | |
sub_1800BE038(v5, v19); | |
goto LABEL_16; | |
} | |
if ( sub_1800D5F30(v11, v3) ) | |
break; | |
v10 = sub_1800D5F60(10LL); | |
} | |
if ( *(_WORD *)(v9 + 20) ) | |
v19 = 4294960293LL; | |
else | |
v19 = 4294960292LL; | |
LABEL_12: | |
sub_1800BE038(v5, v19); | |
if ( (unsigned int)v19 >> 1 == 2147480146 ) | |
return v19; | |
LABEL_16: | |
v20 = *(_QWORD *)(v4 + 24); | |
v21 = *(_DWORD *)(v20 + 8) + 1; | |
*(_DWORD *)(v20 + 8) = v21; | |
if ( v21 == *(_DWORD *)(v20 + 16) ) | |
{ | |
*(_DWORD *)(v20 + 8) = 0; | |
*(_BYTE *)(v20 + 22) ^= 1u; | |
} | |
sub_1800BE998( | |
v5, | |
(2 * *(unsigned __int16 *)(*(_QWORD *)(v4 + 24) + 20LL) | 1) * *(_DWORD *)(v5 + 216) + 4096, | |
*(_DWORD *)(*(_QWORD *)(v4 + 24) + 8LL)); | |
return v19; | |
} | |
// 1800D9F80: using guessed type __int64 __fastcall sub_1800D9F80(_QWORD); | |
//----- (00000001800BE038) ---------------------------------------------------- | |
__int64 __fastcall sub_1800BE038(__int64 result, int a2) | |
{ | |
int v2; // w19 | |
__int64 v3; // x20 | |
__int64 v4; // x1 | |
__int64 v5; // x2 | |
__int64 v6; // x3 | |
__int64 v7; // x4 | |
__int64 v8; // x5 | |
__int64 v9; // x6 | |
__int64 v10; // x7 | |
__int64 v11; // x21 | |
__int64 i; // x21 | |
v2 = a2; | |
v3 = result; | |
if ( a2 ) | |
{ | |
if ( *(_QWORD *)(result + 192) ) | |
{ | |
result = sub_1800BEA58(result, 0x1Cu); | |
if ( result & 2 ) | |
{ | |
if ( !*(_BYTE *)(v3 + 384) ) | |
{ | |
v11 = 0LL; | |
*(_BYTE *)(v3 + 384) = 1; | |
while ( v11 != 16 ) | |
{ | |
*(_DWORD *)(v3 + v11 + 388) = sub_1800BEA58(v3, (signed int)v11 + 6416); | |
v11 += 4LL; | |
} | |
for ( i = 0LL; i != 32; i += 4LL ) | |
*(_DWORD *)(v3 + i + 404) = sub_1800BEA58(v3, (signed int)i + 6528); | |
result = sub_1800EF260((__int64)"%llx:%d\n", v4, v5, v6, v7, v8, v9, v10, 8415054965657969967LL); | |
} | |
} | |
} | |
if ( !*(_DWORD *)(v3 + 380) ) | |
*(_DWORD *)(v3 + 380) = v2; | |
} | |
return result; | |
} | |
//----- (00000001800BE11C) ---------------------------------------------------- | |
__int64 __fastcall sub_1800BE11C(unsigned int a1, int a2, __int64 a3, int a4, __int64 a5) | |
{ | |
__int64 v5; // x19 | |
int v6; // w24 | |
__int64 v7; // x25 | |
int v8; // w21 | |
__int64 v9; // x0 | |
__int64 v10; // x1 | |
__int64 v11; // x2 | |
__int64 v12; // x3 | |
__int64 v13; // x4 | |
__int64 v14; // x5 | |
__int64 v15; // x6 | |
__int64 v16; // x7 | |
__int64 v17; // x20 | |
__int64 v18; // x8 | |
signed __int64 v19; // x28 | |
signed __int64 v20; // x10 | |
__int64 *v21; // x25 | |
signed __int64 v22; // x9 | |
unsigned __int64 v23; // x2 | |
int v24; // w25 | |
signed __int64 v26; // x8 | |
char v27; // [xsp+18h] [xbp-98h] | |
char v28; // [xsp+19h] [xbp-97h] | |
int v29; // [xsp+1Ch] [xbp-94h] | |
__int64 v30; // [xsp+30h] [xbp-80h] | |
__int64 v31; // [xsp+38h] [xbp-78h] | |
int v32; // [xsp+40h] [xbp-70h] | |
int v33; // [xsp+44h] [xbp-6Ch] | |
int v34; // [xsp+48h] [xbp-68h] | |
__int64 v35; // [xsp+58h] [xbp-58h] | |
v5 = a5; | |
v6 = a4; | |
v7 = a3; | |
v8 = a2; | |
v35 = 5139240511851214385LL; | |
v9 = sub_1800BCD80(a1); | |
v17 = v9; | |
if ( v7 & 0xFFF ) | |
{ | |
v26 = 2415LL; | |
LABEL_26: | |
sub_1800D489C("%llx:%d", &byte_180101040, 8415054965657969967LL, v26); | |
} | |
if ( !(_DWORD)v5 || *(_DWORD *)(v9 + 300) < (unsigned int)v5 ) | |
{ | |
v26 = 2416LL; | |
goto LABEL_26; | |
} | |
if ( *(_BYTE *)(v9 + 178) && !(unsigned int)sub_1800BDE28(v9) ) | |
{ | |
(*(void (__fastcall **)(_QWORD, __int64, signed __int64, __int64, _QWORD))(MEMORY[0x18011A718] + 40LL))( | |
*(unsigned int *)(v17 + 220), | |
v7, | |
2147536896LL, | |
v5, | |
0LL); | |
v18 = 0LL; | |
v19 = 100000LL; | |
v20 = 2147536896LL; | |
while ( (unsigned int)v5 != v18 ) | |
{ | |
*(_QWORD *)(*(_QWORD *)(v17 + 440) + 8 * v18++) = (unsigned int)v20 & 0xFFFFF000; | |
v19 += 30000LL; | |
v20 += 4096LL; | |
} | |
v21 = *(__int64 **)(v17 + 440); | |
sub_1800BCC04(*(_QWORD *)(v17 + 168), (__int64)&v27); | |
v27 = 2; | |
v29 = v8; | |
v28 |= 0x20u; | |
v30 = *v21; | |
if ( (unsigned __int16)v5 == 2 ) | |
{ | |
v22 = v21[1]; | |
} | |
else | |
{ | |
if ( (unsigned __int16)v5 == 1 ) | |
{ | |
v31 = 0LL; | |
goto LABEL_17; | |
} | |
v22 = *(_QWORD *)(v17 + 312) + 8LL; | |
} | |
v31 = v22; | |
LABEL_17: | |
v32 = v6; | |
v33 = 0; | |
v34 = (unsigned __int16)v5 - 1; | |
sub_1800BCC2C(*(_QWORD *)(v17 + 168), &v27); | |
if ( *(_BYTE *)(v17 + 179) == 1 ) | |
v23 = v19; | |
else | |
v23 = 30000000LL; | |
v24 = sub_1800BDE64(v17, *(_QWORD *)(v17 + 168), v23); | |
(*(void (__fastcall **)(_QWORD, signed __int64, __int64))(MEMORY[0x18011A718] + 48LL))( | |
*(unsigned int *)(v17 + 220), | |
2147536896LL, | |
v5); | |
sub_1800BE038(v17, v24); | |
if ( !v24 ) | |
goto LABEL_22; | |
} | |
sub_1800EF260((__int64)"%llx:%d\n", v10, v11, v12, v13, v14, v15, v16, 8415054965657969967LL); | |
v5 = 0LL; | |
LABEL_22: | |
if ( 5139240511851214385LL != v35 ) | |
sub_1800D4A5C(); | |
return v5; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800BE3CC) ---------------------------------------------------- | |
void sub_1800BE3CC() | |
{ | |
JUMPOUT(&loc_1800BE124); | |
} | |
//----- (00000001800BE3D4) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BE3D4(unsigned int a1, __int64 a2) | |
{ | |
__int64 v2; // x19 | |
signed __int64 v3; // x21 | |
__int64 v4; // x0 | |
__int64 v5; // x1 | |
__int64 v6; // x2 | |
__int64 v7; // x3 | |
__int64 v8; // x4 | |
__int64 v9; // x5 | |
__int64 v10; // x6 | |
__int64 v11; // x7 | |
__int64 v12; // x20 | |
int v13; // w8 | |
__int64 v14; // x1 | |
__int64 v15; // x2 | |
__int64 v16; // x3 | |
__int64 v17; // x4 | |
__int64 v18; // x5 | |
__int64 v19; // x6 | |
__int64 v20; // x7 | |
signed __int64 result; // x0 | |
char v22; // [xsp+17h] [xbp-29h] | |
__int64 v23; // [xsp+18h] [xbp-28h] | |
v2 = a2; | |
v23 = 5139240511851214385LL; | |
v3 = sub_1800BCD80(a1); | |
v22 = 0; | |
v4 = sub_1800EC548(v2, 0); | |
v12 = v4; | |
if ( v2 && v4 ) | |
{ | |
v13 = *(_DWORD *)(v3 + 304); | |
v22 = *(_DWORD *)(v3 + 304); | |
if ( v13 ) | |
{ | |
sub_1800EC16C(v4, "namespaces-present", &v22, 1u); | |
sub_1800EF260((__int64)"%llx:%d\n", v14, v15, v16, v17, v18, v19, v20, 8415054965657969967LL); | |
} | |
result = sub_1800D9FD0(); | |
if ( (_DWORD)result ) | |
{ | |
v22 = 1; | |
sub_1800EC16C(v12, "ibec-boot", &v22, 1u); | |
result = sub_1800EC16C(v2, "ignore-link-speed-mismatch", &v22, 1u); | |
} | |
} | |
else | |
{ | |
result = sub_1800EF260((__int64)"%llx:%d\n", v5, v6, v7, v8, v9, v10, v11, 8415054965657969967LL); | |
} | |
if ( 5139240511851214385LL != v23 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
//----- (00000001800BE4F0) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BE4F0(unsigned int a1, unsigned int a2, __int64 a3) | |
{ | |
__int64 v3; // x20 | |
unsigned int v4; // w21 | |
__int64 v5; // x19 | |
__int64 v6; // x1 | |
__int64 v7; // x2 | |
__int64 v8; // x3 | |
__int64 v9; // x4 | |
__int64 v10; // x5 | |
__int64 v11; // x6 | |
__int64 v12; // x7 | |
signed __int64 v13; // x21 | |
signed __int64 v14; // x23 | |
__int64 v15; // x1 | |
__int64 v16; // x2 | |
__int64 v17; // x3 | |
__int64 v18; // x4 | |
__int64 v19; // x5 | |
__int64 v20; // x6 | |
__int64 v21; // x7 | |
signed __int64 v23; // x21 | |
__int64 v24; // x10 | |
char v25; // [xsp+18h] [xbp-78h] | |
unsigned int v26; // [xsp+1Ch] [xbp-74h] | |
__int64 v27; // [xsp+30h] [xbp-60h] | |
int v28; // [xsp+40h] [xbp-50h] | |
__int64 v29; // [xsp+58h] [xbp-38h] | |
v3 = a3; | |
v4 = a2; | |
v29 = 5139240511851214385LL; | |
v5 = sub_1800BCD80(a1); | |
if ( (unsigned int)sub_1800BDE28(v5) ) | |
goto LABEL_2; | |
if ( *(_DWORD *)(v5 + 304) < v4 ) | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v6, v7, v8, v9, v10, v11, v12, 8415054965657969967LL); | |
v13 = 4294959296LL; | |
goto LABEL_7; | |
} | |
v14 = *(_QWORD *)(v5 + 448) + 2147500032LL - *(_QWORD *)(v5 + 320); | |
sub_1800BCC04(*(_QWORD *)(v5 + 160), (__int64)&v25); | |
v25 = 6; | |
v26 = v4; | |
v27 = v14; | |
v28 = 0; | |
sub_1800BCC2C(*(_QWORD *)(v5 + 160), &v25); | |
v13 = sub_1800BDE64(v5, *(_QWORD *)(v5 + 160), 0x2DC6C0uLL); | |
if ( !(_DWORD)v13 ) | |
{ | |
v23 = sub_1800EDBF4(0x1000uLL); | |
sub_1800F03F0((_QWORD *)v23, *(_QWORD **)(v5 + 448), 0x1000uLL); | |
if ( *(_QWORD *)(v23 + 8) ) | |
{ | |
if ( *(_QWORD *)v23 | |
&& (v24 = *(_BYTE *)(v23 + 26) & 0xF, *(_BYTE *)(v23 + 128 + 4 * v24 + 2) == 12LL) | |
&& !*(_WORD *)(v23 + 128 + 4 * v24) ) | |
{ | |
*(_BYTE *)v3 = 1; | |
*(_QWORD *)(v3 + 8) = *(_QWORD *)v23; | |
*(_DWORD *)(v3 + 16) = 4096; | |
*(_DWORD *)(v3 + 20) = *(unsigned __int8 *)(v23 + 384); | |
} | |
else | |
{ | |
*(_BYTE *)v3 = 0; | |
} | |
} | |
else | |
{ | |
*(_BYTE *)v3 = 0; | |
if ( !v23 ) | |
goto LABEL_2; | |
} | |
sub_1800EE010((_QWORD *)v23); | |
LABEL_2: | |
v13 = sub_1800BDE28(v5); | |
goto LABEL_7; | |
} | |
sub_1800EF260((__int64)"%llx:%d\n", v15, v16, v17, v18, v19, v20, v21, 8415054965657969967LL); | |
LABEL_7: | |
if ( 5139240511851214385LL != v29 ) | |
sub_1800D4A5C(); | |
return v13; | |
} | |
//----- (00000001800BE6BC) ---------------------------------------------------- | |
__int64 __fastcall sub_1800BE6BC(unsigned int a1) | |
{ | |
return *(unsigned int *)(sub_1800BCD80(a1) + 300); | |
} | |
//----- (00000001800BE6D4) ---------------------------------------------------- | |
__int64 __fastcall sub_1800BE6D4(unsigned int a1, __int64 a2) | |
{ | |
return *(unsigned __int8 *)(sub_1800BCD80(a1) + a2 + 368); | |
} | |
//----- (00000001800BE85C) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BE85C(__int64 a1, int a2) | |
{ | |
int v2; // w20 | |
__int64 v3; // x19 | |
__int64 v4; // x21 | |
int v5; // w0 | |
int v6; // w2 | |
unsigned __int64 v7; // x1 | |
BOOL v8; // w22 | |
int v9; // w0 | |
__int64 v10; // x1 | |
__int64 v11; // x2 | |
__int64 v12; // x3 | |
__int64 v13; // x4 | |
__int64 v14; // x5 | |
__int64 v15; // x6 | |
__int64 v16; // x7 | |
signed __int64 v17; // x20 | |
v2 = a2; | |
v3 = a1; | |
v4 = sub_1800D5F1C(a1); | |
v5 = sub_1800BEA58(v3, 0x14u); | |
if ( v5 != -1 ) | |
{ | |
if ( v2 ) | |
v6 = v5 | 1; | |
else | |
v6 = v5 & 0xFFFFFFFE; | |
sub_1800BE998(v3, 0x14u, v6); | |
while ( 1 ) | |
{ | |
v7 = v2 && *(_BYTE *)(v3 + 179) != 1 ? 240000000LL : 5000000LL; | |
v8 = sub_1800D5F30(v4, v7); | |
v9 = sub_1800BEA58(v3, 0x1Cu); | |
if ( v9 == -1 ) | |
break; | |
if ( v2 ) | |
{ | |
if ( v9 & 1 ) | |
goto LABEL_19; | |
if ( v8 ) | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v10, v11, v12, v13, v14, v15, v16, 8415054965657969967LL); | |
v17 = 4294961295LL; | |
goto LABEL_21; | |
} | |
} | |
else | |
{ | |
if ( !(v9 & 1) ) | |
{ | |
LABEL_19: | |
v17 = 0LL; | |
goto LABEL_21; | |
} | |
if ( v8 ) | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v10, v11, v12, v13, v14, v15, v16, 8415054965657969967LL); | |
v17 = 4294961296LL; | |
goto LABEL_21; | |
} | |
} | |
sub_1800D5F60(1000LL); | |
} | |
} | |
v17 = 4294962293LL; | |
LABEL_21: | |
sub_1800BE038(v3, v17); | |
return v17; | |
} | |
//----- (00000001800BE998) ---------------------------------------------------- | |
__int64 __fastcall sub_1800BE998(__int64 result, unsigned int a2, int a3) | |
{ | |
__int64 v3; // x29 | |
__int64 v4; // x30 | |
if ( a2 > (unsigned __int64)(*(_QWORD *)(result + 208) - 4LL) ) | |
sub_1800D489C("%llx:%d", &byte_180101040, 8415054965657969967LL, 319LL, v3, v4); | |
*(_DWORD *)(*(_QWORD *)(result + 200) + a2) = a3; | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800BE9F0) ---------------------------------------------------- | |
__int64 __fastcall sub_1800BE9F0(__int64 result, unsigned int a2, __int64 a3) | |
{ | |
__int64 v3; // x29 | |
__int64 v4; // x30 | |
if ( a2 > (unsigned __int64)(*(_QWORD *)(result + 208) - 8LL) ) | |
sub_1800D489C("%llx:%d", &byte_180101040, 8415054965657969967LL, 326LL, v3, v4); | |
*(_QWORD *)(*(_QWORD *)(result + 200) + a2) = a3; | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800BEA58) ---------------------------------------------------- | |
__int64 __fastcall sub_1800BEA58(__int64 a1, unsigned int a2) | |
{ | |
__int64 v2; // x29 | |
__int64 v3; // x30 | |
if ( a2 > (unsigned __int64)(*(_QWORD *)(a1 + 208) - 4LL) ) | |
sub_1800D489C("%llx:%d", &byte_180101040, 8415054965657969967LL, 346LL, v2, v3); | |
return *(unsigned int *)(*(_QWORD *)(a1 + 200) + a2); | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800BEAB0) ---------------------------------------------------- | |
__int64 __fastcall sub_1800BEAB0(__int64 a1) | |
{ | |
__int64 v1; // x19 | |
__int64 v2; // x0 | |
__int64 v3; // x3 | |
__int64 v4; // x4 | |
__int64 v5; // x5 | |
__int64 v6; // x6 | |
__int64 v7; // x7 | |
__int64 v8; // x0 | |
__int64 v9; // x3 | |
__int64 v10; // x4 | |
__int64 v11; // x5 | |
__int64 v12; // x6 | |
__int64 v13; // x7 | |
__int64 v14; // x0 | |
__int64 v15; // x3 | |
__int64 v16; // x4 | |
__int64 v17; // x5 | |
__int64 v18; // x6 | |
__int64 v19; // x7 | |
__int64 v20; // x0 | |
__int64 v21; // x3 | |
__int64 v22; // x4 | |
__int64 v23; // x5 | |
__int64 v24; // x6 | |
__int64 v25; // x7 | |
v1 = a1; | |
if ( (unsigned int)sub_1800BE6D4(a1, 2LL) ) | |
{ | |
v2 = sub_1800BE6D4(v1, 2LL); | |
sub_1800BEB7C(v1, 2LL, v2, v3, v4, v5, v6, v7); | |
} | |
if ( (unsigned int)sub_1800BE6D4(v1, 3LL) ) | |
{ | |
v8 = sub_1800BE6D4(v1, 3LL); | |
sub_1800BEB7C(v1, 3LL, v8, v9, v10, v11, v12, v13); | |
} | |
if ( (unsigned int)sub_1800BE6D4(v1, 5LL) ) | |
{ | |
v14 = sub_1800BE6D4(v1, 5LL); | |
sub_1800BEB7C(v1, 5LL, v14, v15, v16, v17, v18, v19); | |
} | |
if ( (unsigned int)sub_1800BE6D4(v1, 8LL) ) | |
{ | |
v20 = sub_1800BE6D4(v1, 8LL); | |
sub_1800BEB7C(v1, 8LL, v20, v21, v22, v23, v24, v25); | |
} | |
return 0LL; | |
} | |
//----- (00000001800BEB7C) ---------------------------------------------------- | |
// write access to const memory has been detected, the output may be wrong! | |
__int64 __fastcall sub_1800BEB7C(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
unsigned int v8; // w22 | |
int v9; // w20 | |
__int64 v10; // x21 | |
__int64 v11; // x19 | |
unsigned int v12; // w24 | |
__int64 v13; // x5 | |
__int64 v14; // x6 | |
__int64 v15; // x7 | |
const char *v16; // x4 | |
signed int v17; // w8 | |
bool v18; // zf | |
__int64 result; // x0 | |
signed __int64 v20; // x8 | |
char v21; // [xsp+10h] [xbp-70h] | |
unsigned int v22; // [xsp+18h] [xbp-68h] | |
char v23; // [xsp+28h] [xbp-58h] | |
__int64 v24; // [xsp+38h] [xbp-48h] | |
v8 = a3; | |
v9 = a2; | |
v10 = a1; | |
v24 = 5139240511851214385LL; | |
sub_1800EF260((__int64)"%llx:%d\n", a2, a3, a4, a5, a6, a7, a8, 1859462069615974072LL); | |
v11 = 0LL; | |
if ( !(unsigned int)sub_1800BE4F0(v10, v8, (__int64)&v21) && v21 ) | |
{ | |
v12 = v22; | |
v11 = ((__int64 (__fastcall *)(signed __int64, signed __int64, _QWORD))loc_1800EDE2C)(1LL, 152LL, 0LL); | |
*(_DWORD *)(v11 + 112) = v10; | |
*(_DWORD *)(v11 + 116) = v8; | |
*(_DWORD *)(v11 + 120) = sub_1800BE6BC(v10); | |
*(_DWORD *)(v11 + 128) = 1; | |
switch ( v9 ) | |
{ | |
case 1: | |
v16 = "nvme_nand%d"; | |
goto LABEL_9; | |
case 2: | |
v16 = "nvme_firmware%d"; | |
goto LABEL_9; | |
case 3: | |
sub_1800EFC74(&v23, 0x10uLL, 0LL, 0x10uLL, (__int64)"nvme_syscfg%d", v13, v14, v15, v10); | |
*(_QWORD *)(v11 + 124) = 8589934596LL; | |
v12 += 4; | |
goto LABEL_12; | |
case 5: | |
sub_1800EFE14((__int64)&v23, (__int64)"nvram", 0x10uLL, 0x10uLL); | |
v17 = 2; | |
goto LABEL_11; | |
case 6: | |
v16 = "nvme_efface%d"; | |
LABEL_9: | |
sub_1800EFC74(&v23, 0x10uLL, 0LL, 0x10uLL, (__int64)v16, v13, v14, v15, v10); | |
goto LABEL_12; | |
case 8: | |
sub_1800EFE14((__int64)&v23, (__int64)"paniclog", 0x10uLL, 0x10uLL); | |
v17 = 256; | |
LABEL_11: | |
*(_DWORD *)(v11 + 128) = v17; | |
LABEL_12: | |
if ( (unsigned int)sub_1800EA0FC( | |
v11, | |
(__int64)&v23, | |
v12 | |
/ *(_DWORD *)(v11 + 128) | |
* (unsigned __int64)(unsigned int)(*(_DWORD *)(v11 + 128) << 12), | |
*(_DWORD *)(v11 + 128) << 12) ) | |
{ | |
v20 = 243LL; | |
} | |
else | |
{ | |
sub_1800EA0D0(v11, 0x1000u); | |
*(_QWORD *)(v11 + 48) = sub_1800BEE60; | |
if ( v9 == 8 ) | |
v18 = 1; | |
else | |
v18 = v9 == 5; | |
if ( v18 ) | |
*(_QWORD *)(v11 + 64) = sub_1800BEED8; | |
if ( (unsigned int)sub_1800E9E00((_QWORD *)v11) ) | |
{ | |
sub_1800EE010((_QWORD *)v11); | |
v11 = 0LL; | |
break; | |
} | |
if ( &off_180114580 && &off_180114580 == &off_180114580 ) | |
{ | |
*(_QWORD *)(v11 + 136) = &off_180114580; | |
*(_QWORD *)(v11 + 144) = &off_180114580; | |
off_180114588 = (void **)(v11 + 136); | |
off_180114580 = (void *)(v11 + 136); | |
break; | |
} | |
v20 = 62LL; | |
} | |
LABEL_30: | |
sub_1800D489C("%llx:%d", &byte_180101040, 1859462069615974072LL, v20); | |
return result; | |
default: | |
v20 = 229LL; | |
goto LABEL_30; | |
} | |
} | |
if ( 5139240511851214385LL != v24 ) | |
sub_1800D4A5C(); | |
return v11; | |
} | |
// 1800BEDA0: write access to const memory at 180114588 has been detected | |
// 1800BEDA4: write access to const memory at 180114580 has been detected | |
// 180101040: using guessed type char byte_180101040; | |
// 180114580: using guessed type void *off_180114580; | |
// 180114588: using guessed type void **off_180114588; | |
//----- (00000001800BEE30) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BEE30(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
__int64 v8; // x0 | |
__int64 v10; // x19 | |
__int64 v11; // x0 | |
__int64 v12; // x20 | |
signed __int64 v13; // x22 | |
_QWORD *v14; // x21 | |
__int64 v15; // x5 | |
__int64 v16; // x6 | |
__int64 v17; // x7 | |
signed int v18; // w0 | |
signed __int64 v19; // x9 | |
int v20; // w10 | |
__int64 v21; // x13 | |
__int64 *v22; // x15 | |
__int64 v23; // x14 | |
__int64 v24; // x15 | |
__int64 *v25; // x16 | |
__int64 v26; // x17 | |
signed __int64 v27; // x8 | |
__int64 *v28; // x24 | |
signed __int64 v29; // x25 | |
_QWORD *v30; // x0 | |
char v31; // [xsp+18h] [xbp-168h] | |
__int64 v32[32]; // [xsp+38h] [xbp-148h] | |
__int64 v33[32]; // [xsp+48h] [xbp-138h] | |
__int64 v34[32]; // [xsp+50h] [xbp-130h] | |
__int64 v35; // [xsp+138h] [xbp-48h] | |
v8 = sub_1800BEB7C(a1, 1LL, 1LL, a4, a5, a6, a7, a8); | |
if ( !v8 ) | |
return 0xFFFFFFFFLL; | |
v10 = v8 + 80; | |
v35 = 5139240511851214385LL; | |
v11 = sub_1800E9DAC((_BYTE *)(v8 + 80)); | |
v12 = v11; | |
if ( v11 ) | |
{ | |
v13 = sub_1800F4788(v11); | |
if ( (signed int)v13 <= 0 ) | |
{ | |
sub_1800F0E34(0x200u, 196608, v32); | |
v14 = (_QWORD *)sub_1800EE264(0x40uLL, v32[0]); | |
if ( (*(unsigned int (__fastcall **)(__int64, _QWORD *, signed __int64, signed __int64))(v12 + 40))( | |
v12, | |
v14, | |
446LL, | |
64LL) == 64 ) | |
{ | |
v18 = sub_1800F4B08((__int64)v14, v12, (__int64)v32); | |
if ( v18 == 1 ) | |
{ | |
if ( HIDWORD(v32[0]) == 238 ) | |
v18 = sub_1800F4518(v12, (__int64)v32); | |
else | |
v18 = 1; | |
} | |
v19 = 0LL; | |
v20 = 0; | |
while ( v19 < v18 ) | |
{ | |
v21 = 0LL; | |
v22 = &v32[4 * v19]; | |
v23 = v22[1]; | |
v24 = v22[2] + v23; | |
v25 = v33; | |
while ( v18 != v21 ) | |
{ | |
if ( v19 != v21 ) | |
{ | |
v26 = *(v25 - 1); | |
v20 |= v26 <= v23 && *v25 + v26 >= v24 || v26 >= v23 && v26 < v24 || *v25 + v26 <= v24 && *v25 + v26 > v23; | |
} | |
++v21; | |
v25 += 4; | |
} | |
++v19; | |
} | |
if ( v20 & 1 ) | |
v13 = 0LL; | |
else | |
v13 = (unsigned int)v18; | |
if ( !v14 ) | |
goto LABEL_27; | |
} | |
else | |
{ | |
v13 = 0LL; | |
if ( !v14 ) | |
{ | |
LABEL_27: | |
v27 = 0LL; | |
v28 = v34; | |
while ( v27 < (signed int)v13 ) | |
{ | |
v29 = v27 + 97; | |
sub_1800EFC74(&v31, 0x20uLL, 0LL, 0x20uLL, (__int64)"%s%c", v15, v16, v17, v10); | |
if ( !sub_1800E9DAC(&v31) ) | |
{ | |
v30 = sub_1800EA860((__int64)&v31, v12, *(v28 - 2), *(v28 - 1), *(_DWORD *)(v12 + 12)); | |
if ( v30 ) | |
{ | |
if ( *(_DWORD *)v28 == 2 ) | |
*((_DWORD *)v30 + 2) |= 2u; | |
sub_1800E9E00(v30); | |
} | |
} | |
v28 += 4; | |
v27 = v29 - 96; | |
} | |
goto LABEL_35; | |
} | |
} | |
sub_1800EE010(v14); | |
goto LABEL_27; | |
} | |
} | |
else | |
{ | |
v13 = 0xFFFFFFFFLL; | |
} | |
LABEL_35: | |
if ( 5139240511851214385LL != v35 ) | |
sub_1800D4A5C(); | |
return v13; | |
} | |
// 1800BEE30: using guessed type __int64 var_148[32]; | |
//----- (00000001800BEE60) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BEE60(__int64 a1, __int64 a2, int a3, int a4) | |
{ | |
int v4; // w21 | |
int v5; // w22 | |
__int64 v6; // x20 | |
_DWORD *v7; // x0 | |
_DWORD *v8; // x19 | |
int v9; // w8 | |
unsigned int v10; // w3 | |
unsigned int v11; // w9 | |
unsigned int v12; // w8 | |
unsigned int v13; // w10 | |
__int64 v14; // x4 | |
bool v15; // cf | |
signed __int64 result; // x0 | |
v4 = a4; | |
v5 = a3; | |
v6 = a2; | |
v7 = (_DWORD *)sub_1800BEF50(a1); | |
v8 = v7; | |
v9 = v7[32]; | |
v10 = v9 * v5; | |
v11 = v9 * v4; | |
v13 = v7[30]; | |
v12 = v7[31]; | |
if ( v11 >= v13 ) | |
v14 = v13; | |
else | |
v14 = v11; | |
if ( v12 ) | |
{ | |
v15 = v10 >= v12; | |
v10 -= v12; | |
if ( !v15 ) | |
return 0xFFFFFFFFLL; | |
} | |
result = sub_1800BE11C(v7[28], v7[29], v6, v10, v14); | |
if ( (_DWORD)result ) | |
result = (unsigned int)result / v8[32]; | |
return result; | |
} | |
//----- (00000001800BEED8) ---------------------------------------------------- | |
void __fastcall sub_1800BEED8(__int64 a1, __int64 a2, int a3) | |
{ | |
int v3; // w22 | |
unsigned int *v4; // x0 | |
unsigned int *v5; // x19 | |
unsigned int v6; // w8 | |
__int64 v7; // x0 | |
unsigned int v8; // w0 | |
__int64 v9; // x0 | |
v3 = a3; | |
v4 = (unsigned int *)sub_1800BEF50(a1); | |
v5 = v4; | |
v6 = v4[31]; | |
if ( !v6 || v4[32] * v3 >= v6 ) | |
{ | |
v7 = v4[28]; | |
sub_1800BE3CC(); | |
if ( v8 ) | |
v9 = v8 / v5[32]; | |
} | |
} | |
//----- (00000001800BEF50) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BEF50(__int64 a1) | |
{ | |
__int64 v1; // x29 | |
__int64 v2; // x30 | |
void ***i; // x8 | |
void **v4; // x8 | |
signed __int64 v5; // x8 | |
for ( i = &off_180114588; ; i = (void ***)(v5 + 144) ) | |
{ | |
v4 = *i; | |
if ( v4 == &off_180114580 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, 1859462069615974072LL, 53LL, v1, v2); | |
v5 = (signed __int64)(v4 - 17); | |
if ( v5 == a1 ) | |
break; | |
} | |
return v5; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 180114580: using guessed type void *off_180114580; | |
// 180114588: using guessed type void **off_180114588; | |
//----- (00000001800BEFBC) ---------------------------------------------------- | |
__int64 sub_1800BEFBC() | |
{ | |
__int64 result; // x0 | |
unsigned __int16 v1; // w0 | |
result = sub_1800D8634(); | |
if ( !(result & 1) ) | |
{ | |
result = sub_1800BF02C(); | |
if ( (_DWORD)result ) | |
{ | |
sub_1800C0014(); | |
sub_1800D5B44(10000LL); | |
v1 = MEMORY[0x18011A732]; | |
if ( !MEMORY[0x18011A732] ) | |
{ | |
v1 = sub_1800BF04C(); | |
MEMORY[0x18011A732] = v1; | |
} | |
if ( v1 >= 0x310u ) | |
((void (__fastcall *)(signed __int64))loc_1800BF090)(19LL); | |
result = sub_1800E7428(0); | |
} | |
} | |
return result; | |
} | |
//----- (00000001800BF02C) ---------------------------------------------------- | |
bool sub_1800BF02C() | |
{ | |
return (unsigned int)sub_1800E7428(1) == 0; | |
} | |
//----- (00000001800BF04C) ---------------------------------------------------- | |
signed __int64 sub_1800BF04C() | |
{ | |
signed __int64 result; // x0 | |
signed int v1; // w24 | |
unsigned __int64 v2; // x19 | |
int v3; // w22 | |
int v4; // w23 | |
int v5; // w0 | |
result = sub_1800C005C(640, 16LL, 0LL); | |
if ( !(result & 0x80000000) ) | |
{ | |
result = sub_1800C005C(129, 16LL, 0LL); | |
if ( !(result & 0x80000000) ) | |
{ | |
v1 = 0; | |
v2 = 0xFFFFFFFFLL; | |
do | |
{ | |
v3 = ((__int64 (__fastcall *)(signed __int64))loc_1800BF248)(1LL); | |
if ( v3 & 0x80000000 ) | |
break; | |
v4 = ((__int64 (__fastcall *)(_QWORD))loc_1800BF248)(0LL); | |
if ( v4 & 0x80000000 ) | |
break; | |
v5 = ((__int64 (__fastcall *)(signed __int64))loc_1800BF248)(1LL); | |
if ( v5 & 0x80000000 ) | |
break; | |
v2 = v5 == v3 ? (unsigned __int64)(v4 | (unsigned int)(v3 << 8)) : (unsigned __int64)(unsigned int)v2; | |
if ( !(v2 & 0x80000000) ) | |
break; | |
++v1; | |
} | |
while ( v1 < 10 ); | |
result = v2; | |
} | |
} | |
return result; | |
} | |
//----- (00000001800BFA30) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BFA30(signed __int64 result, signed int *a2) | |
{ | |
signed int *v2; // x20 | |
_DWORD *v3; // x19 | |
signed int v4; // w8 | |
signed int v5; // w9 | |
v2 = a2; | |
v3 = (_DWORD *)result; | |
if ( !MEMORY[0x18011A732] ) | |
{ | |
result = sub_1800BF02C(); | |
if ( (_DWORD)result ) | |
{ | |
sub_1800C0014(); | |
MEMORY[0x18011A732] = sub_1800BF04C(); | |
result = sub_1800E7428(0); | |
} | |
} | |
if ( MEMORY[0x18011A732] >= 0x600u ) | |
v4 = 4; | |
else | |
v4 = 65; | |
if ( MEMORY[0x18011A732] >= 0x600u ) | |
v5 = 20; | |
else | |
v5 = 65; | |
*v2 = v4; | |
*v3 = v5; | |
return result; | |
} | |
//----- (00000001800BFAA8) ---------------------------------------------------- | |
__int64 sub_1800BFAA8() | |
{ | |
int v0; // w19 | |
int v1; // w20 | |
unsigned __int16 v2; // w0 | |
signed __int64 v3; // x0 | |
__int64 v4; // x19 | |
signed int v5; // w21 | |
signed int v6; // w22 | |
__int64 v7; // x1 | |
__int64 v8; // x2 | |
__int64 v9; // x3 | |
__int64 v10; // x4 | |
__int64 v11; // x5 | |
__int64 v12; // x6 | |
__int64 v13; // x7 | |
__int64 v14; // x1 | |
__int64 v15; // x2 | |
__int64 v16; // x3 | |
__int64 v17; // x4 | |
__int64 v18; // x5 | |
__int64 v19; // x6 | |
__int64 v20; // x7 | |
__int64 v21; // x1 | |
__int64 v22; // x2 | |
__int64 v23; // x3 | |
__int64 v24; // x4 | |
__int64 v25; // x5 | |
__int64 v26; // x6 | |
__int64 v27; // x7 | |
__int64 v28; // x1 | |
__int64 v29; // x2 | |
__int64 v30; // x3 | |
__int64 v31; // x4 | |
__int64 v32; // x5 | |
__int64 v33; // x6 | |
__int64 v34; // x7 | |
__int64 v35; // x1 | |
__int64 v36; // x2 | |
__int64 v37; // x3 | |
__int64 v38; // x4 | |
__int64 v39; // x5 | |
__int64 v40; // x6 | |
__int64 v41; // x7 | |
__int64 v42; // x1 | |
__int64 v43; // x2 | |
__int64 v44; // x3 | |
__int64 v45; // x4 | |
__int64 v46; // x5 | |
__int64 v47; // x6 | |
__int64 v48; // x7 | |
__int64 v49; // x1 | |
__int64 v50; // x2 | |
__int64 v51; // x3 | |
__int64 v52; // x4 | |
__int64 v53; // x5 | |
__int64 v54; // x6 | |
__int64 v55; // x7 | |
__int64 v56; // x1 | |
__int64 v57; // x2 | |
__int64 v58; // x3 | |
__int64 v59; // x4 | |
__int64 v60; // x5 | |
__int64 v61; // x6 | |
__int64 v62; // x7 | |
__int64 v63; // x1 | |
__int64 v64; // x2 | |
__int64 v65; // x3 | |
__int64 v66; // x4 | |
__int64 v67; // x5 | |
__int64 v68; // x6 | |
__int64 v69; // x7 | |
v0 = sub_1800BFCA8(0x2002300u); | |
if ( !sub_1800BF02C() ) | |
return 0LL; | |
sub_1800C0014(); | |
v1 = ((__int64 (__fastcall *)(signed __int64))loc_1800BF9AC)(10LL); | |
if ( v1 == -1 ) | |
goto LABEL_21; | |
v2 = MEMORY[0x18011A732]; | |
if ( !MEMORY[0x18011A732] ) | |
{ | |
v2 = sub_1800BF04C(); | |
MEMORY[0x18011A732] = v2; | |
} | |
v3 = v2 < 0x119u ? 16LL : 50LL; | |
v5 = ((__int64 (__fastcall *)(signed __int64))loc_1800BF9AC)(v3); | |
if ( v5 == -1 | |
|| (unsigned int)((__int64 (__fastcall *)(signed __int64))loc_1800BF9AC)(18LL) == -1 | |
|| (unsigned int)((__int64 (__fastcall *)(signed __int64))loc_1800BF9AC)(6LL) == -1 | |
|| (v6 = ((__int64 (__fastcall *)(signed __int64))loc_1800BF9AC)(8LL), v6 == -1) | |
|| (unsigned int)((__int64 (__fastcall *)(signed __int64))loc_1800BF9AC)(34LL) == -1 | |
|| (unsigned int)((__int64 (__fastcall *)(signed __int64))loc_1800BF9AC)(20LL) == -1 ) | |
{ | |
LABEL_21: | |
v4 = 0LL; | |
} | |
else | |
{ | |
v4 = ((v1 & v0) == 0 && v5 > 100) & (unsigned __int8)(v6 > 3400); | |
sub_1800EF260((__int64)"%llx:%d\n", v7, v8, v9, v10, v11, v12, v13, -2513442418506687521LL); | |
sub_1800EF260((__int64)"%llx:%d\n", v14, v15, v16, v17, v18, v19, v20, -2513442418506687521LL); | |
sub_1800EF260((__int64)"%llx:%d\n", v21, v22, v23, v24, v25, v26, v27, -2513442418506687521LL); | |
sub_1800EF260((__int64)"%llx:%d\n", v28, v29, v30, v31, v32, v33, v34, -2513442418506687521LL); | |
sub_1800EF260((__int64)"%llx:%d\n", v35, v36, v37, v38, v39, v40, v41, -2513442418506687521LL); | |
sub_1800EF260((__int64)"%llx:%d\n", v42, v43, v44, v45, v46, v47, v48, -2513442418506687521LL); | |
sub_1800EF260((__int64)"%llx:%d\n", v49, v50, v51, v52, v53, v54, v55, -2513442418506687521LL); | |
((void (__fastcall *)(_QWORD))loc_1800BF9AC)(0LL); | |
((void (__fastcall *)(signed __int64))loc_1800BF9AC)(106LL); | |
((void (__fastcall *)(signed __int64))loc_1800BF9AC)(108LL); | |
((void (__fastcall *)(signed __int64))loc_1800BF9AC)(28LL); | |
((void (__fastcall *)(signed __int64))loc_1800BF9AC)(40LL); | |
((void (__fastcall *)(signed __int64))loc_1800BF9AC)(110LL); | |
sub_1800EF260((__int64)"%llx:%d\n", v56, v57, v58, v59, v60, v61, v62, -2513442418506687521LL); | |
sub_1800EF260((__int64)"%llx:%d\n", v63, v64, v65, v66, v67, v68, v69, -2513442418506687521LL); | |
} | |
sub_1800E7428(0); | |
return v4; | |
} | |
//----- (00000001800BFCA8) ---------------------------------------------------- | |
__int64 __fastcall sub_1800BFCA8(unsigned int a1) | |
{ | |
__int64 result; // x0 | |
unsigned int v2; // [xsp+4h] [xbp-Ch] | |
__int64 v3; // [xsp+8h] [xbp-8h] | |
v3 = 5139240511851214385LL; | |
sub_1800F0E34(a1, 0x20000, &v2); | |
result = v2; | |
if ( 5139240511851214385LL != v3 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800BFCFC) ---------------------------------------------------- | |
signed __int64 sub_1800BFCFC() | |
{ | |
signed __int64 result; // x0 | |
unsigned __int16 v1; // w0 | |
result = sub_1800BF02C(); | |
if ( (_DWORD)result ) | |
{ | |
sub_1800C0014(); | |
sub_1800D5B44(10000LL); | |
v1 = MEMORY[0x18011A732]; | |
if ( !MEMORY[0x18011A732] ) | |
{ | |
v1 = sub_1800BF04C(); | |
MEMORY[0x18011A732] = v1; | |
} | |
if ( v1 >= 0x310u ) | |
((void (__fastcall *)(signed __int64))loc_1800BF090)(16LL); | |
result = sub_1800E7428(0); | |
} | |
return result; | |
} | |
//----- (00000001800BFD64) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BFD64(_DWORD *a1) | |
{ | |
_DWORD *v1; // x19 | |
int v2; // w20 | |
signed __int64 result; // x0 | |
v1 = a1; | |
if ( !sub_1800BF02C() ) | |
return 0xFFFFFFFFLL; | |
sub_1800C0014(); | |
v2 = ((__int64 (__fastcall *)(signed __int64))loc_1800BF9AC)(44LL); | |
sub_1800E7428(0); | |
if ( v2 == -1 ) | |
return 0xFFFFFFFFLL; | |
result = 0LL; | |
*v1 = v2; | |
return result; | |
} | |
//----- (00000001800BFDB8) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BFDB8(__int64 a1, signed int a2) | |
{ | |
signed int v2; // w21 | |
__int64 v3; // x19 | |
int v4; // w0 | |
signed __int64 v5; // x20 | |
signed __int64 v6; // x23 | |
int v7; // w22 | |
__int64 v8; // x0 | |
v2 = a2; | |
v3 = a1; | |
v4 = sub_1800D863C(); | |
v5 = 0xFFFFFFFFLL; | |
if ( v2 <= 32 && v3 && !((v4 ^ 1) & 1) ) | |
{ | |
if ( sub_1800BF02C() ) | |
{ | |
sub_1800C0014(); | |
v5 = sub_1800C005C(481, 16LL, 0LL); | |
if ( !(v5 & 0x80000000) ) | |
{ | |
sub_1800C005C(703, 16LL, 0LL); | |
v6 = 0LL; | |
v7 = 0; | |
while ( v6 <= 31 ) | |
{ | |
v8 = ((__int64 (__fastcall *)(signed __int64))loc_1800BF248)(v6 + 64); | |
v5 = v8; | |
if ( v8 & 0x80000000 ) | |
goto LABEL_13; | |
*(_BYTE *)(v3 + v6++) = v8; | |
v7 = v8 + (unsigned __int8)v7; | |
} | |
if ( ~((unsigned int)((__int64 (__fastcall *)(signed __int64))loc_1800BF248)(96LL) + v7) & 0xFF ) | |
v5 = 0xFFFFFFFFLL; | |
else | |
v5 = 0LL; | |
} | |
LABEL_13: | |
sub_1800E7428(0); | |
} | |
else | |
{ | |
v5 = 0xFFFFFFFFLL; | |
} | |
} | |
return v5; | |
} | |
//----- (00000001800BFE98) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BFE98(_DWORD *a1) | |
{ | |
_DWORD *v1; // x19 | |
__int64 v2; // x20 | |
__int64 v3; // x1 | |
__int64 v4; // x2 | |
__int64 v5; // x3 | |
__int64 v6; // x4 | |
__int64 v7; // x5 | |
__int64 v8; // x6 | |
__int64 v9; // x7 | |
signed __int64 result; // x0 | |
v1 = a1; | |
if ( !a1 || !sub_1800BF02C() ) | |
return 0xFFFFFFFFLL; | |
sub_1800C0014(); | |
v2 = ((__int64 (__fastcall *)(signed __int64))loc_1800BF9AC)(6LL); | |
sub_1800E7428(0); | |
if ( (unsigned int)v2 >= 0x1771 ) | |
{ | |
sub_1800EF260((__int64)"hdqgauge temperature bogus: %ddK\n", v3, v4, v5, v6, v7, v8, v9, v2); | |
return 0xFFFFFFFFLL; | |
} | |
result = 0LL; | |
*v1 = 10 * v2 - 27320; | |
return result; | |
} | |
//----- (00000001800BFF18) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BFF18(_DWORD *a1, _DWORD *a2, signed int *a3) | |
{ | |
signed int *v3; // x19 | |
_DWORD *v4; // x20 | |
_DWORD *v5; // x21 | |
unsigned __int16 v6; // w0 | |
signed __int64 v7; // x0 | |
unsigned int v9; // w0 | |
signed int v10; // w8 | |
v3 = a3; | |
v4 = a2; | |
v5 = a1; | |
if ( a1 ) | |
*a1 = -1; | |
if ( a2 ) | |
*a2 = -1; | |
if ( a3 ) | |
*a3 = -1; | |
if ( !sub_1800BF02C() ) | |
return 0xFFFFFFFFLL; | |
sub_1800C0014(); | |
v6 = MEMORY[0x18011A732]; | |
if ( !MEMORY[0x18011A732] ) | |
{ | |
v6 = sub_1800BF04C(); | |
MEMORY[0x18011A732] = v6; | |
} | |
if ( v5 ) | |
{ | |
if ( v6 < 0x119u ) | |
v7 = 16LL; | |
else | |
v7 = 50LL; | |
*v5 = ((__int64 (__fastcall *)(signed __int64))loc_1800BF9AC)(v7); | |
} | |
if ( v4 ) | |
*v4 = ((__int64 (__fastcall *)(signed __int64))loc_1800BF9AC)(18LL); | |
if ( v3 ) | |
{ | |
v9 = ((__int64 (__fastcall *)(signed __int64))loc_1800BF9AC)(8LL); | |
if ( v9 > 0x1770 ) | |
v10 = 1; | |
else | |
v10 = v9; | |
*v3 = v10; | |
} | |
sub_1800E7428(0); | |
return 0LL; | |
} | |
//----- (00000001800BFFF0) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800BFFF0(char a1, unsigned __int8 a2) | |
{ | |
return sub_1800C005C(a1 & 0x7F | (a2 << 8) | 0x80u, 16LL, 0LL); | |
} | |
//----- (00000001800C0008) ---------------------------------------------------- | |
__int64 sub_1800C0008() | |
{ | |
return 0LL; | |
} | |
//----- (00000001800C0014) ---------------------------------------------------- | |
signed __int64 sub_1800C0014() | |
{ | |
signed __int64 result; // x0 | |
sub_1800E5584(5, 1); | |
sub_1800D5B44(200LL); | |
sub_1800E5584(5, 0); | |
sub_1800D5B44(40LL); | |
do | |
result = sub_1800E5384(5, 0); | |
while ( !(result & 0x80000000) ); | |
return result; | |
} | |
//----- (00000001800C005C) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800C005C(int a1, signed __int64 a2, signed __int64 a3) | |
{ | |
signed __int64 v3; // x19 | |
signed __int64 v4; // x22 | |
int v5; // w20 | |
signed __int64 result; // x0 | |
signed __int64 i; // x8 | |
char v8; // w13 | |
signed __int64 v9; // x23 | |
int v10; // w0 | |
__int64 v11; // x1 | |
__int64 v12; // x2 | |
__int64 v13; // x3 | |
__int64 v14; // x4 | |
__int64 v15; // x5 | |
__int64 v16; // x6 | |
__int64 v17; // x7 | |
signed __int64 v18; // x8 | |
int v19; // w12 | |
signed int v20; // w13 | |
signed __int64 v21; // x8 | |
signed int v22; // w10 | |
char v23[32]; // [xsp+8h] [xbp-58h] | |
__int64 v24; // [xsp+28h] [xbp-38h] | |
v3 = a3; | |
v4 = a2; | |
v5 = a1; | |
v24 = 5139240511851214385LL; | |
result = 0xFFFFFFFFLL; | |
if ( (signed int)a2 > 32 || (signed int)a3 > 32 ) | |
goto LABEL_22; | |
for ( i = 0LL; i < (signed int)a2; ++i ) | |
{ | |
if ( (1 << i) & v5 ) | |
v8 = -2; | |
else | |
v8 = -64; | |
v23[i] = v8; | |
} | |
sub_1800C0014(); | |
v9 = 0LL; | |
while ( v9 < (signed int)v4 ) | |
{ | |
v10 = sub_1800E5258(5, v23[v9++]); | |
if ( v10 & 0x80000000 ) | |
{ | |
LABEL_21: | |
result = 0xFFFFFFFFLL; | |
goto LABEL_22; | |
} | |
} | |
sub_1800EED5C((signed __int64 *)v23, 0, (signed int)v4, 0x20uLL); | |
result = sub_1800C0234((__int64)v23, v4); | |
if ( result & 0x80000000 ) | |
goto LABEL_22; | |
v18 = 0LL; | |
while ( v18 < (signed int)v4 ) | |
{ | |
v19 = (unsigned __int8)v23[v18]; | |
if ( (1 << v18) & v5 ) | |
v20 = 254; | |
else | |
v20 = 192; | |
++v18; | |
if ( v19 != v20 ) | |
{ | |
sub_1800EF260((__int64)"hdq read mismatch[%d]\n", v11, v12, v13, v14, v15, v16, v17, v18 - 1); | |
goto LABEL_21; | |
} | |
} | |
if ( (_DWORD)v3 ) | |
{ | |
sub_1800EED5C((signed __int64 *)v23, 0, (signed int)v3, 0x20uLL); | |
result = sub_1800C0234((__int64)v23, v3); | |
if ( result & 0x80000000 ) | |
goto LABEL_22; | |
v21 = 0LL; | |
result = 0LL; | |
while ( v21 < (signed int)v3 ) | |
{ | |
if ( (unsigned __int8)v23[v21] <= 0xF8u ) | |
v22 = 0; | |
else | |
v22 = 1 << v21; | |
result = v22 | (unsigned int)result; | |
++v21; | |
} | |
} | |
else | |
{ | |
result = 0LL; | |
} | |
LOBYTE(qword_1801158C8[2509]) = 1; | |
LABEL_22: | |
if ( 5139240511851214385LL != v24 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
// 1800C005C: using guessed type char var_58[32]; | |
//----- (00000001800C0234) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800C0234(__int64 a1, signed __int64 a2) | |
{ | |
signed __int64 v2; // x19 | |
__int64 v3; // x20 | |
unsigned __int64 v4; // x0 | |
signed __int64 v5; // x23 | |
unsigned __int64 v6; // x24 | |
__int64 v7; // x1 | |
__int64 v8; // x2 | |
__int64 v9; // x3 | |
__int64 v10; // x4 | |
__int64 v11; // x5 | |
__int64 v12; // x6 | |
__int64 v13; // x7 | |
__int64 v14; // x0 | |
__int64 v16; // [xsp+0h] [xbp-30h] | |
v2 = a2; | |
v3 = a1; | |
v4 = sub_1800D5F1C(a1); | |
v5 = 0LL; | |
LABEL_7: | |
if ( v5 < (signed int)v2 ) | |
{ | |
v6 = v4 + 500000; | |
while ( 1 ) | |
{ | |
v14 = sub_1800E5384(5, 0); | |
if ( !(v14 & 0x80000000) ) | |
{ | |
*(_BYTE *)(v3 + v5) = v14; | |
v4 = sub_1800D5F1C(v14); | |
++v5; | |
goto LABEL_7; | |
} | |
if ( sub_1800D5F1C(v14) > v6 ) | |
break; | |
sub_1800D5B44(190LL); | |
} | |
sub_1800EF260((__int64)"gas gauge read timed out\n", v7, v8, v9, v10, v11, v12, v13, v16); | |
v2 = 0xFFFFFFFFLL; | |
} | |
return v2; | |
} | |
//----- (00000001800C02D8) ---------------------------------------------------- | |
signed __int64 sub_1800C02D8() | |
{ | |
signed __int64 v0; // x19 | |
v0 = 1LL; | |
sub_1800D39CC(78LL, 1); | |
if ( MEMORY[0x206600004] != 1 ) | |
{ | |
sub_1800D39CC(78LL, 0); | |
v0 = 0LL; | |
} | |
return v0; | |
} | |
//----- (00000001800C032C) ---------------------------------------------------- | |
__int64 __fastcall sub_1800C032C(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
__int64 v8; // x19 | |
__int64 v9; // x1 | |
__int64 v10; // x2 | |
__int64 v11; // x3 | |
__int64 v12; // x4 | |
__int64 v13; // x5 | |
__int64 v14; // x6 | |
__int64 v15; // x7 | |
int *v16; // x24 | |
unsigned int v17; // w27 | |
unsigned int v18; // w8 | |
unsigned __int64 v19; // t2 | |
int v20; // w23 | |
int v21; // w26 | |
int v22; // w8 | |
int v23; // w28 | |
unsigned int v24; // w0 | |
int v25; // w25 | |
int v26; // w23 | |
unsigned __int64 v27; // x28 | |
unsigned __int64 v28; // x8 | |
unsigned __int64 v29; // x9 | |
unsigned __int64 v30; // x8 | |
__int64 v31; // x10 | |
__int64 v32; // x12 | |
__int64 v33; // x11 | |
unsigned __int64 v34; // x12 | |
unsigned __int64 v35; // x13 | |
int v36; // w12 | |
unsigned __int64 v37; // x10 | |
unsigned __int64 v38; // x13 | |
int v39; // w10 | |
unsigned __int64 v40; // x9 | |
int v41; // w9 | |
unsigned __int64 v42; // x10 | |
unsigned __int64 v43; // x10 | |
unsigned __int64 v44; // x10 | |
unsigned __int64 v45; // x11 | |
unsigned __int64 v46; // x9 | |
unsigned __int64 v47; // x10 | |
signed __int64 v48; // x9 | |
unsigned __int64 v49; // x10 | |
unsigned int v50; // w8 | |
unsigned int v51; // w11 | |
signed int v52; // w8 | |
signed int v53; // w8 | |
unsigned int v54; // w8 | |
signed __int64 v56; // x8 | |
int v57; // [xsp+10h] [xbp-60h] | |
char v58; // [xsp+17h] [xbp-59h] | |
__int64 v59; // [xsp+18h] [xbp-58h] | |
v8 = a1; | |
v59 = 5139240511851214385LL; | |
sub_1800EF260((__int64)"%llx:%d\n", a2, a3, a4, a5, a6, a7, a8, 5557653649757020537LL); | |
sub_1800ECB70("display-timing"); | |
v16 = *(int **)(v8 + 64); | |
if ( !v16 ) | |
{ | |
v56 = 85LL; | |
goto LABEL_62; | |
} | |
MEMORY[0x18011A750] = v16 + 4; | |
MEMORY[0x18011A748] = *((_BYTE *)v16 + 15); | |
v17 = *v16; | |
MEMORY[0x18011A74C] = *v16 & 0xF; | |
sub_1800EF260((__int64)"%llx:%d\n", v9, v10, v11, v12, v13, v14, v15, 5557653649757020537LL); | |
HIDWORD(v19) = *(_DWORD *)(v8 + 56) - 16; | |
LODWORD(v19) = *(_DWORD *)(v8 + 56) - 16; | |
v18 = v19 >> 1; | |
if ( v18 >= 8 || !((0x93u >> ((unsigned int)(*(_DWORD *)(v8 + 56) - 16) >> 1)) & 1) ) | |
{ | |
v56 = 134LL; | |
goto LABEL_62; | |
} | |
v57 = *((unsigned __int8 *)v16 + 3); | |
v20 = *(_DWORD *)(v8 + 36); | |
v21 = (*(_DWORD *)(v8 + 20) & 1) + *(_DWORD *)(v8 + 20); | |
v22 = *((_DWORD *)qword_180104F30 + (signed int)v18); | |
if ( v16[27] ) | |
v23 = v16[27]; | |
else | |
v23 = v22; | |
sub_1800D39CC(78LL, 1); | |
MEMORY[0x206680034] = 2147483648; | |
if ( MEMORY[0x2066000C0] & 0x1FFC ) | |
sub_1800D3BDC(78LL); | |
MEMORY[0x2066000C4] = 0; | |
MEMORY[0x2066000C8] = 0; | |
if ( *((_BYTE *)v16 + 4) ) | |
MEMORY[0x206680008] = *((unsigned __int8 *)v16 + 5) | 4 * *((unsigned __int8 *)v16 + 6) | 16 | |
* *((unsigned __int8 *)v16 | |
+ 7) | (*((unsigned __int8 *)v16 + 8) << 6); | |
MEMORY[0x206600008] = ((unsigned __int8)*v16 >> 4) | 0x100; | |
MEMORY[0x206600034] = 1; | |
MEMORY[0x2066000A4] = (MEMORY[0x18011A74C] - 1) | 0x2800; | |
MEMORY[0x20660002C] = 28; | |
MEMORY[0x20660000C] = 0; | |
MEMORY[0x206600010] = v23; | |
MEMORY[0x20668000C] = v23; | |
MEMORY[0x206600014] = 0; | |
MEMORY[0x206600038] = 48899; | |
MEMORY[0x20660003C] = v21; | |
v24 = sub_1800D389C(109); | |
if ( !v24 ) | |
{ | |
v56 = 219LL; | |
LABEL_62: | |
sub_1800D489C("%llx:%d", &byte_180101040, 5557653649757020537LL, v56); | |
} | |
v25 = (v17 >> 8) & 0x7FFF; | |
v26 = (v20 & 1) + v20; | |
v27 = v24; | |
if ( v25 ) | |
{ | |
v28 = 24000000 | |
* (unsigned __int64)((((unsigned int)*v16 >> 12) & 0x3FF) + 2) | |
/ ((((unsigned int)*v16 >> 8) & 0xF) + 1) | |
/ ((((unsigned int)*v16 >> 22) & 1) + 1); | |
if ( *((_BYTE *)v16 + 14) ) | |
v28 *= *((unsigned __int8 *)v16 + 14); | |
} | |
else | |
{ | |
v28 = (unsigned int)sub_1800D389C(78); | |
} | |
v29 = v28 >> 3; | |
if ( v28 & 7 ) | |
++v29; | |
v30 = 0x3B9ACA00 / v29; | |
if ( 1000000000 != 0x3B9ACA00 / v29 * v29 ) | |
++v30; | |
v31 = *(unsigned int *)(v8 + 24); | |
v32 = *(unsigned int *)(v8 + 32); | |
v33 = (unsigned int)(*(_DWORD *)(v8 + 28) + v21 + v32 + v31); | |
v34 = v32 * v29; | |
v35 = v34 / v27; | |
if ( v34 == v34 / v27 * v27 ) | |
v36 = v34 / v27; | |
else | |
v36 = v35 + 1; | |
v37 = v31 * v29; | |
v38 = v37 / v27; | |
if ( v37 == v37 / v27 * v27 ) | |
v39 = v37 / v27; | |
else | |
v39 = v38 + 1; | |
v40 = v33 * v29; | |
if ( v40 == v40 / v27 * v27 ) | |
v41 = v40 / v27; | |
else | |
v41 = v40 / v27 + 1; | |
MEMORY[0x206600048] = v36; | |
MEMORY[0x20660004C] = v39; | |
MEMORY[0x206600050] = v41; | |
MEMORY[0x206600054] = *(_DWORD *)(v8 + 48); | |
MEMORY[0x206600058] = *(_DWORD *)(v8 + 40); | |
MEMORY[0x206600060] = v26; | |
MEMORY[0x206600094] = 0; | |
v42 = (unsigned int)v27 / 0x3E8; | |
if ( (_DWORD)v27 != 1000 * (_DWORD)v42 ) | |
++v42; | |
if ( 1000000000 == 0x3B9ACA00 / v42 * v42 ) | |
v43 = 0x3B9ACA00 / v42; | |
else | |
v43 = 0x3B9ACA00 / v42 + 1; | |
v44 = v43 * v33; | |
v45 = v44 / 0x3E8; | |
v46 = v44 % 0x3E8; | |
v47 = ((unsigned __int8)*v16 >> 4) * v30; | |
LODWORD(v30) = -99 * v30 + v45 - 22 * v47 - 2 * v47; | |
if ( v46 ) | |
v30 = (unsigned int)(v30 + 1); | |
else | |
v30 = (unsigned int)v30; | |
v48 = 16 * v47; | |
v49 = v30 / (16 * v47); | |
if ( v30 == v49 * v48 ) | |
v50 = v49; | |
else | |
v50 = v49 + 1; | |
v51 = 0x100 / v50; | |
if ( 256 == 0x100 / v50 * v50 ) | |
v52 = 0; | |
else | |
v52 = -1; | |
MEMORY[0x20660005C] = *(_DWORD *)(v8 + 44) - v51 + v52; | |
MEMORY[0x206600018] = 0; | |
MEMORY[0x206600090] = 0; | |
MEMORY[0x20660009C] = 591135656; | |
MEMORY[0x206600098] = 4391071; | |
MEMORY[0x206600068] = 32512; | |
MEMORY[0x2066000B4] = 0; | |
sub_1800D5F60(5LL); | |
MEMORY[0x2066000B4] = 0; | |
sub_1800D5F60(5LL); | |
MEMORY[0x2066000B4] = 1; | |
sub_1800D5F60(5LL); | |
if ( v25 ) | |
{ | |
MEMORY[0x206600004] = 1; | |
MEMORY[0x2066000A0] = 4; | |
MEMORY[0x206680034] |= 0x10000000 | 16 * v57 | 0x2000004; | |
while ( MEMORY[0x206680034] & 4 ) | |
; | |
MEMORY[0x206680038] = v25 | 0x4228000; | |
sub_1800D5F60(2LL); | |
MEMORY[0x206680034] |= 0x8000000u; | |
sub_1800D5F60(1LL); | |
MEMORY[0x206680034] &= 0xF7FFFFFF; | |
sub_1800D5F60(1LL); | |
v58 = 0; | |
sub_1800F0D2C(0x2004900u, 327680, &v58); | |
if ( v58 ) | |
{ | |
MEMORY[0x20668002C] = 33619970; | |
MEMORY[0x206680030] = 100729393; | |
MEMORY[0x206680034] &= 0xEFFFFFFF; | |
MEMORY[0x206680028] = 5; | |
} | |
MEMORY[0x2066000A0] = 13; | |
sub_1800D5F60(5LL); | |
MEMORY[0x2066000A0] = 15; | |
while ( !(MEMORY[0x206680004] & 0x10) ) | |
; | |
} | |
else | |
{ | |
MEMORY[0x206600004] = 1; | |
MEMORY[0x206680034] |= 0x15003000 | 16 * v57; | |
MEMORY[0x2066000A0] = 13; | |
sub_1800D5F60(5LL); | |
MEMORY[0x2066000A0] = 15; | |
} | |
MEMORY[0x206600080] = 25; | |
MEMORY[0x20660008C] = 25; | |
if ( MEMORY[0x18011A74C] <= 1u ) | |
v53 = 20; | |
else | |
v53 = 148; | |
v54 = (v53 & 0xFFFFFDFF | ((MEMORY[0x18011A74C] > 2u) << 9)) & 0xFFFFF7FF | ((MEMORY[0x18011A74C] == 4) << 11); | |
while ( v54 & ~MEMORY[0x2066000B0] ) | |
; | |
if ( 5139240511851214385LL != v59 ) | |
sub_1800D4A5C(); | |
return 0LL; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 180104F30: using guessed type __int64 qword_180104F30[2]; | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
//----- (00000001800C08E4) ---------------------------------------------------- | |
__int64 __fastcall sub_1800C08E4(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", a2, a3, a4, a5, a6, a7, a8, 5557653649757020537LL); | |
if ( (unsigned int)sub_1800C02D8() ) | |
{ | |
MEMORY[0x2066000C4] = 0x1FFFFF; | |
MEMORY[0x2066000C8] = 0x1FFF; | |
MEMORY[0x206600004] = 0; | |
MEMORY[0x2066000B4] = 1; | |
sub_1800D5F60(5LL); | |
MEMORY[0x2066000A0] &= 0xFFFFFFF2; | |
sub_1800D5F60(5LL); | |
MEMORY[0x2066000A0] &= 0xFFFFFFFD; | |
sub_1800D39CC(78LL, 0); | |
} | |
return 0LL; | |
} | |
//----- (00000001800C0994) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800C0994(int a1) | |
{ | |
int v1; // w19 | |
signed __int64 result; // x0 | |
__int64 v3; // x19 | |
signed __int64 v4; // x21 | |
unsigned __int64 v5; // x22 | |
unsigned __int64 v6; // x23 | |
signed __int64 v7; // x8 | |
int v8; // w9 | |
__int64 v9; // x26 | |
unsigned __int8 *v10; // x27 | |
int v11; // t1 | |
v1 = a1; | |
result = sub_1800C02D8(); | |
if ( (_DWORD)result ) | |
{ | |
if ( v1 ) | |
{ | |
MEMORY[0x206600094] |= 1u; | |
if ( LOBYTE(qword_1801158C8[2512]) ) | |
{ | |
v3 = MEMORY[0x18011A750]; | |
v4 = MEMORY[0x18011A750] + 15LL; | |
v5 = (unsigned __int8)*MEMORY[0x18011A750]; | |
v6 = 1LL; | |
while ( v6 < v5 ) | |
{ | |
v7 = v3 + 10 * v6; | |
v8 = *(unsigned __int16 *)(v7 + 2); | |
v9 = *(unsigned __int8 *)(v7 + 4); | |
MEMORY[0x2066000B4] = 2; | |
MEMORY[0x2066000B8] = v8 | 0x10000; | |
sub_1800D5F60(5LL); | |
MEMORY[0x2066000B4] &= 0xFFFFFFFD; | |
result = sub_1800D5F60(10LL); | |
MEMORY[0x2066000B8] &= 0xFFFEFFFF; | |
v10 = (unsigned __int8 *)v4; | |
while ( v9 ) | |
{ | |
MEMORY[0x2066000B8] &= 0xFFFFFF00; | |
v11 = *v10++; | |
MEMORY[0x2066000B8] |= v11; | |
sub_1800D5F60(2LL); | |
MEMORY[0x2066000B4] |= 2u; | |
result = sub_1800D5F60(10LL); | |
MEMORY[0x2066000B4] &= 0xFFFFFFFD; | |
--v9; | |
} | |
++v6; | |
v4 += 10LL; | |
} | |
} | |
} | |
else | |
{ | |
MEMORY[0x206600094] &= 0xFFFFFFFE; | |
} | |
} | |
return result; | |
} | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800C0ADC) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800C0ADC(int a1) | |
{ | |
int v1; // w19 | |
signed __int64 result; // x0 | |
v1 = a1; | |
result = sub_1800C02D8(); | |
if ( (_DWORD)result ) | |
MEMORY[0x206600034] = v1 == 0; | |
return result; | |
} | |
//----- (00000001800C0B20) ---------------------------------------------------- | |
__int64 __fastcall sub_1800C0B20(int a1, unsigned __int8 a2, unsigned __int8 a3) | |
{ | |
unsigned __int8 v3; // w19 | |
unsigned __int8 v4; // w21 | |
int v5; // w20 | |
v3 = a3; | |
v4 = a2; | |
v5 = a1; | |
if ( (unsigned int)sub_1800C02D8() ) | |
{ | |
MEMORY[0x20660006C] = (v5 & 0xFFFF00FF | (v4 << 8)) & 0xFF00FFFF | (v3 << 16); | |
while ( !(MEMORY[0x206600074] & 1) ) | |
; | |
} | |
return 0LL; | |
} | |
//----- (00000001800C0B78) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800C0B78(int a1, unsigned __int8 *a2, _DWORD *a3) | |
{ | |
_DWORD *v3; // x19 | |
unsigned __int8 *v4; // x20 | |
int v5; // w21 | |
signed __int64 result; // x0 | |
unsigned __int64 v7; // x23 | |
__int64 v8; // x1 | |
__int64 v9; // x2 | |
__int64 v10; // x3 | |
__int64 v11; // x4 | |
__int64 v12; // x5 | |
__int64 v13; // x6 | |
__int64 v14; // x7 | |
signed int i; // w24 | |
unsigned int v16; // w9 | |
unsigned __int64 j; // x8 | |
signed int v18; // w9 | |
v3 = a3; | |
v4 = a2; | |
v5 = a1; | |
result = sub_1800C02D8(); | |
if ( (_DWORD)result ) | |
{ | |
v7 = (unsigned int)*v3; | |
MEMORY[0x2066000C0] = 0x1FFF; | |
sub_1800C0B20(v5, *v4, v4[1]); | |
for ( i = 4; ; --i ) | |
{ | |
v16 = MEMORY[0x2066000C0]; | |
if ( MEMORY[0x2066000C0] & 0x1FFC || MEMORY[0x2066000C0] & 3 ) | |
{ | |
LABEL_17: | |
sub_1800EF260((__int64)"%llx:%d\n", v8, v9, v10, v11, v12, v13, v14, 5557653649757020537LL); | |
return 0xFFFFFFFFLL; | |
} | |
if ( !(MEMORY[0x206600074] & 0x40) ) | |
break; | |
if ( !i ) | |
goto LABEL_17; | |
sub_1800D5F60(50000LL); | |
} | |
for ( j = 0LL; ; ++j ) | |
{ | |
if ( j >= v7 ) | |
{ | |
v18 = 0; | |
goto LABEL_20; | |
} | |
if ( MEMORY[0x206600074] & 0x10 ) | |
break; | |
if ( !(j & 3) ) | |
v16 = MEMORY[0x206600070]; | |
v4[j] = v16; | |
v16 >>= 8; | |
} | |
v18 = 1; | |
LABEL_20: | |
while ( !(MEMORY[0x206600074] & 0x10) ) | |
; | |
if ( v18 ) | |
{ | |
result = 0LL; | |
*v3 = j; | |
} | |
else | |
{ | |
result = 0LL; | |
} | |
} | |
return result; | |
} | |
//----- (00000001800C0CB4) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800C0CB4(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
__int64 v8; // x19 | |
signed __int64 result; // x0 | |
__int64 v10; // x1 | |
__int64 v11; // x2 | |
__int64 v12; // x3 | |
__int64 v13; // x4 | |
__int64 v14; // x5 | |
__int64 v15; // x6 | |
__int64 v16; // x7 | |
__int64 v17; // x10 | |
__int64 v18; // x12 | |
unsigned int v19; // w8 | |
unsigned int v20; // w9 | |
signed __int64 v21; // x10 | |
__int64 v22; // [xsp+0h] [xbp-40h] | |
_DWORD *v23; // [xsp+10h] [xbp-30h] | |
const char *v24; // [xsp+18h] [xbp-28h] | |
unsigned int v25; // [xsp+24h] [xbp-1Ch] | |
__int64 v26; // [xsp+28h] [xbp-18h] | |
v8 = a1; | |
v26 = 5139240511851214385LL; | |
if ( !MEMORY[0x18011A750] ) | |
{ | |
sub_1800EF260((__int64)"something is seriously bad\n", a2, a3, a4, a5, a6, a7, a8, v22); | |
LABEL_8: | |
result = 0xFFFFFFFFLL; | |
goto LABEL_13; | |
} | |
v24 = "phy-test-num"; | |
if ( (unsigned int)sub_1800EBFC8(a1, (_BYTE **)&v24, &v23, &v25) ) | |
*v23 = (unsigned __int8)*MEMORY[0x18011A750]; | |
v24 = "phy-test"; | |
result = sub_1800EBFC8(v8, (_BYTE **)&v24, &v23, &v25); | |
if ( (_DWORD)result ) | |
{ | |
v17 = MEMORY[0x18011A750]; | |
LODWORD(v18) = (unsigned __int8)*MEMORY[0x18011A750]; | |
if ( v25 >= 10 * (signed int)v18 ) | |
{ | |
v19 = 0; | |
v20 = 0; | |
while ( v20 < (unsigned __int8)v18 ) | |
{ | |
v21 = v17 + 10LL * v20; | |
v18 = (__int64)v23 + v19; | |
*(_WORD *)(v18 + 8) = *(_WORD *)(v21 + 10); | |
*(_QWORD *)v18 = *(_QWORD *)(v21 + 2); | |
++v20; | |
v17 = MEMORY[0x18011A750]; | |
LOBYTE(v18) = *MEMORY[0x18011A750]; | |
v19 += 10; | |
} | |
result = 0LL; | |
goto LABEL_13; | |
} | |
sub_1800EF260( | |
(__int64)"device tree doesn't have enough space for data: propSize %d sizeofData %d\n", | |
v10, | |
v11, | |
v12, | |
v13, | |
v14, | |
v15, | |
v16, | |
v25); | |
goto LABEL_8; | |
} | |
LABEL_13: | |
if ( 5139240511851214385LL != v26 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
//----- (00000001800C0DF4) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800C0DF4(__int64 a1, __int64 a2, unsigned int *a3, _DWORD *a4) | |
{ | |
_DWORD *v4; // x20 | |
unsigned int *v5; // x19 | |
unsigned int v6; // w8 | |
signed __int64 result; // x0 | |
__int64 v8; // [xsp+0h] [xbp-50h] | |
unsigned int *v9; // [xsp+8h] [xbp-48h] | |
__int64 v10; // [xsp+10h] [xbp-40h] | |
__int64 v11; // [xsp+18h] [xbp-38h] | |
__int64 v12; // [xsp+20h] [xbp-30h] | |
__int64 v13; // [xsp+28h] [xbp-28h] | |
v4 = a4; | |
v5 = a3; | |
v13 = 5139240511851214385LL; | |
v11 = a1; | |
v12 = a2; | |
if ( (unsigned int)sub_1800C0F4C((unsigned __int64 *)&v11, 2305843009213693968LL, (unsigned __int64 *)&v8, 1) ) | |
goto LABEL_14; | |
if ( v4 ) | |
{ | |
if ( __CFADD__((char *)v9 - v11, v10) ) | |
goto LABEL_14; | |
*v4 = (_DWORD)v9 - v11 + v10; | |
} | |
if ( !(unsigned int)sub_1800C0F88((unsigned __int64 *)&v11, (unsigned __int64 *)&v9) | |
&& !(unsigned int)sub_1800C100C((unsigned __int64 *)&v11, "IMG4") | |
&& !(unsigned int)sub_1800C0F4C((unsigned __int64 *)&v11, 2305843009213693968LL, (unsigned __int64 *)&v8, 1) | |
&& !(unsigned int)sub_1800C0F88((unsigned __int64 *)&v11, (unsigned __int64 *)&v9) | |
&& !(unsigned int)sub_1800C100C((unsigned __int64 *)&v11, "IM4P") | |
&& !(unsigned int)sub_1800C0F4C((unsigned __int64 *)&v11, 22LL, (unsigned __int64 *)&v8, 0) | |
&& v10 == 4 ) | |
{ | |
if ( v5 ) | |
{ | |
v6 = sub_1800EF128(*v9); | |
result = 0LL; | |
*v5 = v6; | |
} | |
else | |
{ | |
result = 0LL; | |
} | |
goto LABEL_15; | |
} | |
LABEL_14: | |
result = 0xFFFFFFFFLL; | |
LABEL_15: | |
if ( 5139240511851214385LL != v13 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800C0F4C) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800C0F4C(unsigned __int64 *a1, __int64 a2, unsigned __int64 *a3, int a4) | |
{ | |
unsigned __int64 *v4; // x20 | |
__int64 v5; // x19 | |
signed __int64 result; // x0 | |
v4 = a3; | |
v5 = a2; | |
result = sub_1800F8754(a1, a3, a4); | |
if ( !(_DWORD)result ) | |
{ | |
if ( *v4 == v5 ) | |
result = 0LL; | |
else | |
result = 0xFFFFFFFFLL; | |
} | |
return result; | |
} | |
//----- (00000001800C0F88) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800C0F88(unsigned __int64 *a1, unsigned __int64 *a2) | |
{ | |
__int64 v2; // x29 | |
__int64 v3; // x30 | |
unsigned __int64 v4; // x9 | |
unsigned __int64 v5; // x10 | |
__int64 v6; // x8 | |
unsigned __int64 v7; // x9 | |
v4 = *a2; | |
if ( *a2 < *a1 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, 12791624394463092LL, 134LL, v2, v3); | |
v5 = *a1 + a1[1]; | |
if ( v4 > v5 ) | |
return 0xFFFFFFFFLL; | |
v6 = 0LL; | |
*a1 = v4; | |
v7 = v5 - v4; | |
if ( a2[1] < v7 ) | |
v7 = a2[1]; | |
a1[1] = v7; | |
return v6; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800C100C) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800C100C(unsigned __int64 *a1, _BYTE *a2) | |
{ | |
_BYTE *v2; // x20 | |
unsigned __int64 *v3; // x19 | |
__int64 v4; // x8 | |
__int64 v5; // x9 | |
bool v6; // cf | |
unsigned __int64 v7; // x9 | |
unsigned __int64 v8; // x10 | |
unsigned __int64 v9; // x10 | |
signed __int64 result; // x0 | |
char v11; // [xsp+10h] [xbp-30h] | |
_BYTE *v12; // [xsp+18h] [xbp-28h] | |
__int64 v13; // [xsp+20h] [xbp-20h] | |
__int64 v14; // [xsp+28h] [xbp-18h] | |
v2 = a2; | |
v3 = a1; | |
v14 = 5139240511851214385LL; | |
if ( (unsigned int)sub_1800C0F4C(a1, 22LL, (unsigned __int64 *)&v11, 0) ) | |
goto LABEL_15; | |
v4 = sub_1800F08E8((__int64)v2); | |
if ( v13 != v4 || (unsigned int)sub_1800F0718(v12, v2, v4) ) | |
goto LABEL_15; | |
v5 = (__int64)&v12[-*v3]; | |
if ( (unsigned __int64)v12 < *v3 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, 12791624394463092LL, 174LL); | |
v6 = __CFADD__(v13, v5); | |
v7 = v13 + v5; | |
if ( v6 || (v8 = v3[1], v6 = v8 >= v7, v9 = v8 - v7, !v6) ) | |
{ | |
LABEL_15: | |
result = 0xFFFFFFFFLL; | |
} | |
else | |
{ | |
result = 0LL; | |
*v3 += v7; | |
v3[1] = v9; | |
} | |
if ( 5139240511851214385LL != v14 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800C1108) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800C1108(__int64 a1, __int64 a2, int a3, __int64 a4) | |
{ | |
__int64 v4; // x22 | |
int v5; // w21 | |
__int64 v6; // x19 | |
__int64 v7; // x20 | |
__int64 v8; // x8 | |
_QWORD *v9; // x23 | |
__int64 v10; // x25 | |
__int64 v11; // x22 | |
unsigned int v12; // w20 | |
__int64 v13; // x0 | |
signed __int64 result; // x0 | |
int v15; // w8 | |
int v16; // w8 | |
unsigned int v17; // w0 | |
__int64 v18; // x0 | |
__int64 *v19; // [xsp+10h] [xbp-90h] | |
__int64 v20; // [xsp+18h] [xbp-88h] | |
__int64 v21; // [xsp+20h] [xbp-80h] | |
__int64 v22; // [xsp+28h] [xbp-78h] | |
__int64 v23; // [xsp+58h] [xbp-48h] | |
v4 = a4; | |
v5 = a3; | |
v6 = a2; | |
v7 = a1; | |
v23 = 5139240511851214385LL; | |
if ( LOBYTE(qword_1801158C8[2515]) == 1 ) | |
{ | |
v8 = *(_QWORD *)(a2 + 16); | |
if ( v8 == 4 ) | |
{ | |
if ( MEMORY[0x18011A790] && !(unsigned int)sub_1800F7624(a2, (unsigned int)a1, &v22, &v19) ) | |
MEMORY[0x18011A790](v7, v5 == 1, v22, (unsigned int)v19); | |
} | |
else if ( v8 == 2 ) | |
{ | |
if ( MEMORY[0x18011A788] && !(unsigned int)sub_1800F753C(a2, (unsigned int)a1, (unsigned __int64 *)&v22) ) | |
MEMORY[0x18011A788](v7, v5 == 1, v22); | |
} | |
else | |
{ | |
if ( v8 != 1 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -825580612549415916LL, 1216LL); | |
if ( MEMORY[0x18011A780] && !(unsigned int)sub_1800F75B8(a2, (unsigned int)a1, (bool *)&v22) ) | |
MEMORY[0x18011A780](v7, v5 == 1, (unsigned __int8)v22); | |
} | |
} | |
v9 = *(_QWORD **)v4; | |
v10 = *(_QWORD *)(v4 + 8); | |
v11 = *(_QWORD *)(v4 + 16); | |
qword_1801158C8[229] = (__int64)sub_180100E94(); | |
if ( v5 == 1 ) | |
{ | |
switch ( (_DWORD)v7 ) | |
{ | |
case 0x44475354: | |
v12 = sub_1800F714C( | |
(__int64)v9, | |
(_QWORD *)(v11 + 57), | |
0x30uLL, | |
(__int64 (__fastcall **)(_QWORD, _QWORD, char *, unsigned __int64, _QWORD))off_180112D68); | |
if ( v12 ) | |
{ | |
v13 = 1074003995LL; | |
goto LABEL_64; | |
} | |
v12 = sub_1800C2CC8(1145525076LL, v6, (_BYTE *)(v11 + 57), 48LL); | |
if ( v12 ) | |
{ | |
v13 = 1074003996LL; | |
goto LABEL_64; | |
} | |
break; | |
case 0x45534543: | |
*(_BYTE *)(v11 + 6) = 1; | |
v15 = sub_1800C2C50(1163085123LL, v6, 1); | |
result = 0LL; | |
*(_BYTE *)(v11 + 5) = v15 == 0; | |
goto LABEL_71; | |
case 0x454B4559: | |
result = sub_1800C2C50(1162560857LL, v6, 1); | |
if ( !(_DWORD)result ) | |
{ | |
*(_BYTE *)(v11 + 1) = 1; | |
goto LABEL_71; | |
} | |
break; | |
case 0x4550524F: | |
*(_BYTE *)(v11 + 4) = 1; | |
v16 = sub_1800C2C50(1162891855LL, v6, 1); | |
result = 0LL; | |
*(_BYTE *)(v11 + 3) = v16 == 0; | |
goto LABEL_71; | |
case 0x4450524F: | |
result = sub_1800C2C50(1146114639LL, v6, 1); | |
if ( !(_DWORD)result ) | |
{ | |
*(_BYTE *)v11 = 1; | |
goto LABEL_71; | |
} | |
break; | |
} | |
goto LABEL_65; | |
} | |
if ( v5 ) | |
goto LABEL_67; | |
if ( (_DWORD)v7 == 1095585357 ) | |
{ | |
result = sub_1800C2C50(1095585357LL, v6, 1); | |
if ( !(_DWORD)result ) | |
{ | |
*(_BYTE *)(v11 + 2) = 1; | |
goto LABEL_71; | |
} | |
} | |
else | |
{ | |
if ( (_DWORD)v7 != 1112425288 ) | |
{ | |
switch ( (_DWORD)v7 ) | |
{ | |
case 0x424F5244: | |
v12 = sub_1800C2B9C(0, 1112494660LL, v6, *(_QWORD *)(v10 + 32)); | |
if ( v12 ) | |
{ | |
v13 = 1074003987LL; | |
goto LABEL_64; | |
} | |
break; | |
case 0x4345504F: | |
v12 = sub_1800C2B9C(1, 1128616015LL, v6, *(_QWORD *)(v10 + 16)); | |
if ( v12 ) | |
{ | |
v13 = 1074003989LL; | |
goto LABEL_64; | |
} | |
break; | |
case 0x43484950: | |
v12 = sub_1800C2B9C(0, 1128810832LL, v6, *(_QWORD *)v10); | |
if ( v12 ) | |
{ | |
v13 = 1074003986LL; | |
goto LABEL_64; | |
} | |
break; | |
case 0x4350524F: | |
v12 = sub_1800C2C50(1129337423LL, v6, *(unsigned __int8 *)(v10 + 40)); | |
if ( v12 ) | |
{ | |
v13 = 1074003990LL; | |
goto LABEL_64; | |
} | |
break; | |
case 0x43534543: | |
v12 = sub_1800C2C50(1129530691LL, v6, *(unsigned __int8 *)(v10 + 41)); | |
if ( v12 ) | |
{ | |
v13 = 1074003991LL; | |
goto LABEL_64; | |
} | |
break; | |
case 0x53444F4D: | |
v12 = sub_1800C2B9C(0, 1396985677LL, v6, *(_QWORD *)(v10 + 24)); | |
if ( v12 ) | |
{ | |
v13 = 1074003988LL; | |
goto LABEL_64; | |
} | |
break; | |
case 0x45434944: | |
v12 = sub_1800C2B9C(0, 1162037572LL, v6, *(_QWORD *)(v10 + 8)); | |
if ( v12 ) | |
{ | |
v13 = 1074003985LL; | |
LABEL_64: | |
sub_1800F598C(v13); | |
goto LABEL_68; | |
} | |
break; | |
} | |
goto LABEL_65; | |
} | |
if ( *(_BYTE *)(v10 + 44) ) | |
{ | |
if ( !*(_BYTE *)(v10 + 42) ) | |
{ | |
v18 = *(_QWORD *)(v10 + 48); | |
v21 = *(_QWORD *)(v10 + 48); | |
goto LABEL_63; | |
} | |
sub_1800F73BC(v9, 1112425294LL, &v19, &v20); | |
v12 = v17; | |
if ( v17 ) | |
{ | |
v13 = 1074003993LL; | |
goto LABEL_64; | |
} | |
if ( v20 == 8 ) | |
{ | |
v21 = *v19; | |
v18 = v21; | |
LABEL_63: | |
sub_1800DA1F0(v18, (__int64)&v22, 0x30uLL); | |
} | |
sub_1800F598C(1074003992LL); | |
LABEL_67: | |
v12 = -1; | |
LABEL_68: | |
if ( v12 ) | |
result = v12; | |
else | |
result = 1LL; | |
goto LABEL_71; | |
} | |
} | |
LABEL_65: | |
result = 0LL; | |
LABEL_71: | |
if ( 5139240511851214385LL != v23 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 180112D68: using guessed type __int64 (__fastcall *off_180112D68[4])(); | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
// 180114CE8: using guessed type __int64[105]; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
// 18011A780: using guessed type __int64 (__fastcall *)(_QWORD, _QWORD, _QWORD); | |
// 18011A788: using guessed type __int64 (__fastcall *)(_QWORD, _QWORD, _QWORD); | |
// 18011A790: using guessed type __int64 (__fastcall *)(_QWORD, _QWORD, _QWORD, _QWORD); | |
//----- (00000001800C1698) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800C1698(__int64 a1, __int64 a2) | |
{ | |
__int64 v2; // x8 | |
int v3; // w9 | |
signed __int64 v4; // x8 | |
signed __int64 result; // x0 | |
v2 = *(_QWORD *)(a2 + 8); | |
v3 = *(unsigned __int8 *)(v2 + 105); | |
v4 = v2 + 106; | |
if ( v3 ) | |
result = v4; | |
else | |
result = 0LL; | |
return result; | |
} | |
//----- (00000001800C16B0) ---------------------------------------------------- | |
// write access to const memory has been detected, the output may be wrong! | |
__int64 __fastcall sub_1800C16B0(_QWORD *a1, __int64 a2, unsigned __int64 a3, int a4) | |
{ | |
int v4; // w19 | |
unsigned __int64 v5; // x21 | |
__int64 v6; // x22 | |
_QWORD *v7; // x24 | |
_QWORD *v8; // x23 | |
__int64 i; // x20 | |
unsigned __int64 v10; // x8 | |
unsigned __int64 v11; // x27 | |
unsigned int v12; // w8 | |
__int64 v13; // x25 | |
_QWORD *v14; // x0 | |
__int64 v15; // x8 | |
__int64 v17; // [xsp+10h] [xbp-60h] | |
__int64 v18; // [xsp+18h] [xbp-58h] | |
v4 = a4; | |
v5 = a3; | |
v6 = a2; | |
v7 = a1; | |
v18 = 5139240511851214385LL; | |
v8 = (_QWORD *)sub_1800EDBF4(0x1EuLL); | |
for ( i = 0LL; (signed int)i <= 31; i = (unsigned int)(i + 1) ) | |
{ | |
v10 = *(_QWORD *)(v6 + 24); | |
v11 = v10 - v5; | |
if ( v10 <= v5 || (signed __int64)v11 < 30 ) | |
break; | |
v12 = (unsigned int)v11 >= 0x1E ? 30 : (_DWORD)v11; | |
if ( v7 ) | |
{ | |
v13 = v12; | |
sub_1800F03F0(v8, v7, v12); | |
} | |
else | |
{ | |
v13 = v12; | |
if ( (*(unsigned int (__fastcall **)(__int64, _QWORD *, unsigned __int64, _QWORD))(v6 + 40))(v6, v8, v5, v12) != 30 ) | |
break; | |
} | |
if ( (unsigned int)sub_1800C0DF4((__int64)v8, v13, (unsigned int *)&v17 + 1, &v17) || (unsigned int)v17 > v11 ) | |
break; | |
v14 = (_QWORD *)sub_1800EDBF4(0x38uLL); | |
v14[2] = v6; | |
v14[3] = v5; | |
v15 = (unsigned int)v17; | |
v14[4] = v17; | |
*((_DWORD *)v14 + 10) = 1768777524; | |
*((_DWORD *)v14 + 11) = v4; | |
v14[6] = v14; | |
if ( !&off_180114598 || &off_180114598 != &off_180114598 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -825580612549415916LL, 62LL); | |
v7 = 0LL; | |
*v14 = &off_180114598; | |
v14[1] = &off_180114598; | |
off_1801145A0 = v14; | |
off_180114598 = v14; | |
v5 += v15; | |
} | |
sub_1800EE010(v8); | |
if ( 5139240511851214385LL != v18 ) | |
sub_1800D4A5C(); | |
return i; | |
} | |
// 1800C1800: write access to const memory at 180114598 has been detected | |
// 1800C17FC: write access to const memory at 1801145A0 has been detected | |
// 180101040: using guessed type char byte_180101040; | |
// 180114598: using guessed type void *off_180114598; | |
// 1801145A0: using guessed type void *off_1801145A0; | |
//----- (00000001800C1958) ---------------------------------------------------- | |
void **__fastcall sub_1800C1958(int a1) | |
{ | |
void **i; // x9 | |
void **v2; // x9 | |
for ( i = &off_1801145A0; ; i = v2 + 1 ) | |
{ | |
v2 = (void **)*i; | |
if ( v2 == &off_180114598 ) | |
return 0LL; | |
if ( *((_DWORD *)v2 + 9) == a1 ) | |
break; | |
} | |
return v2 + 4; | |
} | |
// 180114598: using guessed type void *off_180114598; | |
// 1801145A0: using guessed type void *off_1801145A0; | |
//----- (00000001800C1994) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800C1994(unsigned int *a1, __int64 a2, unsigned int a3, unsigned int *a4, char *a5, unsigned __int64 a6, unsigned __int64 *a7) | |
{ | |
unsigned __int64 *v7; // x22 | |
unsigned __int64 v8; // x20 | |
char *v9; // x19 | |
unsigned int *v10; // x21 | |
unsigned int v11; // w23 | |
__int64 v12; // x24 | |
unsigned int *v13; // x26 | |
__int64 v14; // x0 | |
signed __int64 *v15; // x0 | |
__int64 v16; // x0 | |
char v17; // w8 | |
char v18; // w0 | |
unsigned int v19; // w8 | |
unsigned __int64 v20; // x27 | |
signed __int64 result; // x0 | |
int v22; // w0 | |
char v23; // w8 | |
unsigned int v24; // w8 | |
int v25; // w10 | |
int v26; // w0 | |
__int64 v27; // x0 | |
int v28; // w24 | |
int v29; // w24 | |
unsigned __int64 v30; // x24 | |
char *v31; // x25 | |
int v32; // w0 | |
signed int v33; // w27 | |
signed __int64 v34; // x8 | |
int v35; // w8 | |
unsigned __int64 v36; // x27 | |
int v37; // w27 | |
__int64 v38; // x26 | |
int v39; // w27 | |
signed __int64 v40; // x0 | |
signed __int64 v41; // x8 | |
__int64 v42; // x0 | |
unsigned __int64 v43; // x9 | |
unsigned __int8 v44; // cf | |
unsigned __int64 v45; // x9 | |
signed __int64 v46; // x9 | |
unsigned __int64 v47; // x8 | |
__int64 v48; // x4 | |
__int64 v49; // x5 | |
__int64 v50; // x6 | |
__int64 v51; // x7 | |
char *v52; // x0 | |
unsigned __int64 v53; // x1 | |
__int64 v54; // [xsp+0h] [xbp-4D0h] | |
int v55; // [xsp+24h] [xbp-4ACh] | |
char *v56; // [xsp+38h] [xbp-498h] | |
char *v57; // [xsp+40h] [xbp-490h] | |
char *v58; // [xsp+48h] [xbp-488h] | |
__int64 *v59; // [xsp+50h] [xbp-480h] | |
int *v60; // [xsp+58h] [xbp-478h] | |
unsigned int v61; // [xsp+64h] [xbp-46Ch] | |
char *v62; // [xsp+68h] [xbp-468h] | |
unsigned __int64 v63; // [xsp+70h] [xbp-460h] | |
unsigned __int64 v64; // [xsp+78h] [xbp-458h] | |
char v65; // [xsp+80h] [xbp-450h] | |
__int64 *v66; // [xsp+88h] [xbp-448h] | |
__int64 v67; // [xsp+90h] [xbp-440h] | |
unsigned __int64 v68[2]; // [xsp+98h] [xbp-438h] | |
char v69; // [xsp+A8h] [xbp-428h] | |
__int64 v70; // [xsp+B0h] [xbp-420h] | |
int v71; // [xsp+C4h] [xbp-40Ch] | |
unsigned __int64 v72[2]; // [xsp+C8h] [xbp-408h] | |
char v73; // [xsp+D8h] [xbp-3F8h] | |
__int64 v74; // [xsp+E0h] [xbp-3F0h] | |
__int64 v75; // [xsp+F0h] [xbp-3E0h] | |
__int64 v76; // [xsp+F8h] [xbp-3D8h] | |
_QWORD v77[6]; // [xsp+100h] [xbp-3D0h] | |
int v78; // [xsp+130h] [xbp-3A0h] | |
__int16 v79; // [xsp+134h] [xbp-39Ch] | |
char v80; // [xsp+136h] [xbp-39Ah] | |
char v81; // [xsp+137h] [xbp-399h] | |
char v82; // [xsp+167h] [xbp-369h] | |
char v83; // [xsp+168h] [xbp-368h] | |
char v84; // [xsp+199h] [xbp-337h] | |
int v85; // [xsp+19Ch] [xbp-334h] | |
unsigned int v86; // [xsp+1A0h] [xbp-330h] | |
__int64 v87; // [xsp+1A8h] [xbp-328h] | |
__int64 v88; // [xsp+1B0h] [xbp-320h] | |
__int64 v89; // [xsp+1B8h] [xbp-318h] | |
__int64 v90; // [xsp+1C0h] [xbp-310h] | |
__int64 v91; // [xsp+1C8h] [xbp-308h] | |
char v92; // [xsp+1D0h] [xbp-300h] | |
char v93; // [xsp+1D1h] [xbp-2FFh] | |
char v94; // [xsp+1D2h] [xbp-2FEh] | |
char v95; // [xsp+1D3h] [xbp-2FDh] | |
char v96; // [xsp+1D4h] [xbp-2FCh] | |
unsigned __int64 v97; // [xsp+1D8h] [xbp-2F8h] | |
__int64 v98; // [xsp+1E0h] [xbp-2F0h] | |
bool v99; // [xsp+210h] [xbp-2C0h] | |
char v100; // [xsp+211h] [xbp-2BFh] | |
_BYTE v101[6]; // [xsp+212h] [xbp-2BEh] | |
char v102; // [xsp+248h] [xbp-288h] | |
int v103; // [xsp+410h] [xbp-C0h] | |
int v104; // [xsp+414h] [xbp-BCh] | |
__int64 v105; // [xsp+418h] [xbp-B8h] | |
__int64 v106; // [xsp+420h] [xbp-B0h] | |
__int64 v107; // [xsp+428h] [xbp-A8h] | |
__int64 v108; // [xsp+430h] [xbp-A0h] | |
__int64 v109; // [xsp+438h] [xbp-98h] | |
__int64 v110; // [xsp+440h] [xbp-90h] | |
__int64 v111; // [xsp+448h] [xbp-88h] | |
__int64 v112; // [xsp+450h] [xbp-80h] | |
__int64 v113; // [xsp+458h] [xbp-78h] | |
__int64 v114; // [xsp+460h] [xbp-70h] | |
__int64 v115; // [xsp+468h] [xbp-68h] | |
__int64 v116; // [xsp+470h] [xbp-60h] | |
__int64 v117; // [xsp+478h] [xbp-58h] | |
v7 = a7; | |
v8 = a6; | |
v9 = a5; | |
v10 = a4; | |
v11 = a3; | |
v12 = a2; | |
v13 = a1; | |
v117 = 5139240511851214385LL; | |
v64 = 0LL; | |
if ( !a1 ) | |
{ | |
v34 = 365LL; | |
goto LABEL_79; | |
} | |
if ( !a5 ) | |
{ | |
v34 = 366LL; | |
goto LABEL_79; | |
} | |
if ( *a1 > a6 ) | |
{ | |
v14 = 1074003969LL; | |
LABEL_5: | |
sub_1800F598C(v14); | |
LABEL_14: | |
sub_1800F05A0(v9, v8); | |
if ( LOBYTE(qword_1801158C8[2515]) == 1 ) | |
MEMORY[0x18011A798](0LL); | |
result = 0xFFFFFFFFLL; | |
goto LABEL_17; | |
} | |
sub_1800F0620((signed __int64 *)&v78, 0, 0x74uLL); | |
v15 = sub_1800F0620(&v87, 0, 0xA0uLL); | |
v16 = sub_1800F6884(v15); | |
v89 = (unsigned int)v16; | |
v87 = (unsigned int)sub_1800F6888(v16); | |
v91 = (unsigned int)sub_1800C678C(); | |
v88 = sub_1800F6890(); | |
v90 = (unsigned int)sub_1800F685C(v88); | |
v92 = sub_1800F6858(); | |
v17 = sub_1800F6860(); | |
v18 = 0; | |
v93 = v17; | |
v19 = v13[3]; | |
v94 = (v19 >> 2) & 1; | |
v96 = (v19 >> 3) & 1; | |
if ( !(v19 & 8) ) | |
v18 = sub_1800C6CC8(); | |
v95 = v18; | |
v99 = (unsigned int)sub_1800C6A18(&v98) == 0; | |
if ( v96 && !v94 ) | |
v97 = sub_1800C6838(); | |
v100 = sub_1800C5E80(); | |
if ( !(unsigned int)sub_1800C6AF0(v77) ) | |
sub_1800F03F0(v101, v77, 0x30uLL); | |
qword_1801158C8[229] = (__int64)sub_180100E94(); | |
v20 = *v13; | |
if ( (unsigned int)sub_1800C22D4((__int64)v13, v9, v20) ) | |
goto LABEL_14; | |
if ( *((_BYTE *)v13 + 13) & 1 ) | |
{ | |
if ( v7 ) | |
*v7 = v20; | |
goto LABEL_24; | |
} | |
if ( (unsigned int)sub_1800C0DF4((__int64)v9, 30LL, 0LL, &v64) ) | |
{ | |
v14 = 1074003971LL; | |
goto LABEL_5; | |
} | |
if ( v20 < v64 ) | |
{ | |
v14 = 1074003972LL; | |
goto LABEL_5; | |
} | |
sub_1800F05A0(&v9[v64], v20 - v64); | |
sub_1800F79B4((__int64)v9, v64, &v102); | |
if ( v22 ) | |
{ | |
v14 = 1074003973LL; | |
goto LABEL_5; | |
} | |
sub_1800F6FA4((__int64)&v102, &v61); | |
v23 = (char)MEMORY[0x18011A778]; | |
if ( MEMORY[0x18011A778] ) | |
{ | |
if ( (unsigned int)MEMORY[0x18011A778](v61) ) | |
{ | |
if ( !MEMORY[0x18011A798] ) | |
{ | |
v34 = 456LL; | |
goto LABEL_79; | |
} | |
MEMORY[0x18011A798](0LL); | |
v23 = 1; | |
} | |
else | |
{ | |
v23 = 0; | |
} | |
} | |
LOBYTE(qword_1801158C8[2515]) = v23; | |
if ( v11 ) | |
{ | |
v24 = 0; | |
while ( v24 < v11 ) | |
{ | |
v25 = *(_DWORD *)(v12 + 4LL * v24++); | |
if ( v25 == v61 ) | |
goto LABEL_40; | |
} | |
v14 = 1074003974LL; | |
goto LABEL_5; | |
} | |
LABEL_40: | |
if ( (unsigned int)sub_1800F724C((__int64)&v102, (bool *)&v82) || !v82 ) | |
{ | |
v27 = 1074003975LL; | |
goto LABEL_45; | |
} | |
v58 = &v102; | |
v59 = &v87; | |
v60 = &v78; | |
sub_1800F7A70( | |
v61, | |
(__int64)&v102, | |
(__int64 (__fastcall **)(unsigned __int64, __int64 *, __int64, __int64))off_180111448, | |
(__int64)off_180112D68, | |
(__int64)&v58); | |
if ( v26 ) | |
{ | |
v27 = 1074003976LL; | |
LABEL_45: | |
sub_1800F598C(v27); | |
v79 = 0; | |
v78 = 0; | |
v14 = 1074004003LL; | |
v80 = 0; | |
goto LABEL_5; | |
} | |
if ( (unsigned int)sub_1800F7274((__int64)&v102, &v81, 0x30uLL, (__int64 (**)(void))off_180112D68) ) | |
{ | |
v34 = 524LL; | |
goto LABEL_79; | |
} | |
if ( v95 && !BYTE2(v78) ) | |
{ | |
if ( !v99 || (unsigned int)sub_1800F0718(&v98, &v81, 48LL) ) | |
{ | |
v27 = 1074003977LL; | |
goto LABEL_45; | |
} | |
v83 = 1; | |
} | |
if ( (_BYTE)v79 ) | |
{ | |
v28 = HIBYTE(v78); | |
if ( v28 != (unsigned int)sub_1800D4E90((unsigned __int8)v78) ) | |
{ | |
v27 = 1074003978LL; | |
goto LABEL_45; | |
} | |
} | |
if ( v80 ) | |
{ | |
v29 = HIBYTE(v79); | |
if ( v29 != (unsigned int)sub_1800F6860() ) | |
{ | |
v27 = 1074003979LL; | |
goto LABEL_45; | |
} | |
} | |
if ( (unsigned int)sub_1800F6F60((__int64)&v102, (__int64)&v62) ) | |
{ | |
v14 = 1074003980LL; | |
goto LABEL_5; | |
} | |
v30 = v63; | |
if ( v63 > v8 ) | |
{ | |
v14 = 1074004004LL; | |
goto LABEL_5; | |
} | |
v31 = v62; | |
if ( !BYTE1(v78) ) | |
goto LABEL_102; | |
if ( (unsigned int)sub_1800F6850() ) | |
{ | |
v14 = 1074004010LL; | |
goto LABEL_5; | |
} | |
v115 = 0LL; | |
v116 = 0LL; | |
v113 = 0LL; | |
v114 = 0LL; | |
v111 = 0LL; | |
v112 = 0LL; | |
v32 = sub_1800F7004((__int64)&v102, (__int64)&v75); | |
if ( !v75 ) | |
{ | |
v33 = 0; | |
goto LABEL_75; | |
} | |
v33 = 0; | |
if ( v32 == 6 || !v76 ) | |
{ | |
LABEL_75: | |
if ( !v33 ) | |
goto LABEL_102; | |
LABEL_76: | |
v14 = 1074003982LL; | |
goto LABEL_5; | |
} | |
if ( v32 | |
|| (unsigned int)sub_1800F85F4((unsigned __int64 *)&v75, (unsigned __int64 *)&v73) | |
|| (unsigned int)sub_1800F8A3C(&v74, (__int64 *)v72) ) | |
{ | |
goto LABEL_76; | |
} | |
do | |
{ | |
if ( (unsigned int)sub_1800F8A58(v72, (unsigned __int64 *)&v69) | |
|| (unsigned int)sub_1800F8A3C(&v70, (__int64 *)v68) | |
|| (unsigned int)sub_1800F8A58(v68, (unsigned __int64 *)&v65) | |
|| (unsigned int)sub_1800F88F8((char **)&v66, &v103) ) | |
{ | |
goto LABEL_76; | |
} | |
v33 = -1; | |
if ( (unsigned int)sub_1800F8A58(v68, (unsigned __int64 *)&v65) || v67 != 16 ) | |
goto LABEL_75; | |
v106 = v66[1]; | |
v105 = *v66; | |
if ( (unsigned int)sub_1800F8A58(v68, (unsigned __int64 *)&v65) ) | |
goto LABEL_76; | |
v35 = 8 * v67; | |
v104 = 8 * v67; | |
if ( 8 * (_DWORD)v67 != 128 && v35 != 256 && v35 != 192 ) | |
goto LABEL_76; | |
v110 = v66[3]; | |
v109 = v66[2]; | |
v108 = v66[1]; | |
v107 = *v66; | |
switch ( v35 ) | |
{ | |
case 256: | |
v55 = 0x20000000; | |
v36 = 32LL; | |
break; | |
case 192: | |
v55 = 0x10000000; | |
v36 = 24LL; | |
break; | |
case 128: | |
v55 = 0; | |
v36 = 16LL; | |
break; | |
default: | |
goto LABEL_76; | |
} | |
v111 = v105; | |
v112 = v106; | |
sub_1800EED30(&v113, &v107, v36, 0x20uLL); | |
if ( (unsigned int)(v103 - 1) > 1 ) | |
goto LABEL_76; | |
v71 = 0; | |
} | |
while ( (unsigned int)sub_1800C68D8(v103, &v71) ); | |
if ( (unsigned int)sub_1800D6B14(17, (__int64)&v111, (__int64)&v111, v36 + 16, v71, 0LL, 0LL) ) | |
goto LABEL_76; | |
if ( v30 & 0xF ) | |
{ | |
v34 = 1695LL; | |
LABEL_79: | |
sub_1800D489C("%llx:%d", &byte_180101040, -825580612549415916LL, v34); | |
} | |
v37 = sub_1800D6B14(17, (__int64)v31, (__int64)v31, v30, v55, (__int64)&v113, &v111); | |
sub_1800EF16C(&v111, 0x30uLL, 0, 0x30uLL, 0x30uLL); | |
if ( v37 ) | |
goto LABEL_76; | |
LABEL_102: | |
if ( (unsigned int)sub_1800F7048((__int64)&v102, (bool *)&v84) ) | |
{ | |
v14 = 1074003983LL; | |
goto LABEL_5; | |
} | |
if ( !v84 ) | |
goto LABEL_154; | |
if ( (unsigned int)sub_1800F7080(&v102, &v85, &v86) ) | |
{ | |
v14 = 1074003984LL; | |
goto LABEL_5; | |
} | |
if ( !v84 ) | |
{ | |
LABEL_154: | |
sub_1800F03F0(v9, v31, v30); | |
if ( !v7 ) | |
goto LABEL_113; | |
goto LABEL_112; | |
} | |
v38 = v86; | |
v39 = v85; | |
if ( v85 ) | |
{ | |
if ( v85 != 1 ) | |
goto LABEL_139; | |
v40 = sub_1800FC6DC(2193); | |
v41 = 41984LL; | |
} | |
else | |
{ | |
v40 = 0LL; | |
v41 = 0x2000LL; | |
} | |
v43 = v40 + v30; | |
if ( __CFADD__(v40, v30) | |
|| (v44 = __CFADD__(v43, v41), v45 = v43 + v41, v44) | |
|| v45 > v8 | |
|| (v46 = v40 + v38, __CFADD__(v40, v38)) | |
|| (v44 = __CFADD__(v46, v41), v47 = v46 + v41, v44) | |
|| v47 > v8 ) | |
{ | |
v14 = 1074004006LL; | |
goto LABEL_5; | |
} | |
v56 = &v9[v8 - v40]; | |
v57 = &v56[-v30]; | |
sub_1800F03F0(&v56[-v30], v31, v30); | |
if ( v39 == 1 ) | |
{ | |
if ( sub_1800FC728(v9, v38, v57, v30, v56, 2193LL) != v38 ) | |
{ | |
v14 = 1074004008LL; | |
goto LABEL_5; | |
} | |
goto LABEL_141; | |
} | |
if ( v39 ) | |
{ | |
LABEL_139: | |
v14 = 1074004005LL; | |
goto LABEL_5; | |
} | |
if ( (unsigned int)sub_1800F0A2C(v9, v38, v57, v30, v48, v49, v50, v51, v54) != (_DWORD)v38 ) | |
{ | |
v14 = 1074004007LL; | |
goto LABEL_5; | |
} | |
LABEL_141: | |
v52 = &v9[v38]; | |
if ( v57 <= &v9[v38] ) | |
{ | |
v53 = v8 - v38; | |
} | |
else | |
{ | |
v52 = &v56[-v30]; | |
v53 = &v9[v8] - v57; | |
} | |
sub_1800F05A0(v52, v53); | |
sub_1800F598C(262185LL); | |
v30 = v86; | |
if ( v7 ) | |
LABEL_112: | |
*v7 = v30; | |
LABEL_113: | |
if ( v31 <= v9 ) | |
{ | |
v34 = 706LL; | |
goto LABEL_79; | |
} | |
if ( v64 > v30 ) | |
sub_1800F05A0(&v9[v30], v64 - v30); | |
if ( !BYTE1(v78) ) | |
sub_1800D4DD8(); | |
sub_1800D4E6C((unsigned __int8)v78); | |
sub_1800D4EB8(&v81); | |
v42 = !BYTE2(v78) && (v96 || v83); | |
sub_1800D4EF4(v42); | |
if ( !v94 ) | |
sub_1800D4F18(); | |
if ( v10 ) | |
*v10 = v61; | |
LABEL_24: | |
if ( LOBYTE(qword_1801158C8[2515]) == 1 ) | |
MEMORY[0x18011A798](1LL); | |
result = 0LL; | |
LABEL_17: | |
if ( 5139240511851214385LL != v117 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 1800F6850: using guessed type __int64 sub_1800F6850(void); | |
// 1800F6858: using guessed type __int64 sub_1800F6858(void); | |
// 1800F685C: using guessed type __int64 __fastcall sub_1800F685C(_QWORD); | |
// 1800F6884: using guessed type __int64 __fastcall sub_1800F6884(_QWORD); | |
// 1800F6888: using guessed type __int64 __fastcall sub_1800F6888(_QWORD); | |
// 1800F6890: using guessed type __int64 sub_1800F6890(void); | |
// 1800FC728: using guessed type __int64 __fastcall sub_1800FC728(_QWORD, _QWORD, _QWORD, _QWORD, _QWORD, _QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
// 180111448: using guessed type __int64 (__fastcall *off_180111448[2])(); | |
// 180112D68: using guessed type __int64 (__fastcall *off_180112D68[4])(); | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
// 180114CE8: using guessed type __int64[105]; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
// 18011A778: using guessed type __int64 (__fastcall *)(_QWORD); | |
// 18011A798: using guessed type __int64 (__fastcall *)(_QWORD); | |
//----- (00000001800C22D4) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800C22D4(__int64 a1, _QWORD *a2, unsigned __int64 a3) | |
{ | |
unsigned __int64 v3; // x19 | |
_QWORD *v4; // x20 | |
__int64 v5; // x21 | |
int v6; // w8 | |
__int64 v7; // x1 | |
__int64 v8; // x2 | |
__int64 v9; // x3 | |
__int64 v10; // x4 | |
__int64 v11; // x5 | |
__int64 v12; // x6 | |
__int64 v13; // x7 | |
signed __int64 result; // x0 | |
__int64 v15; // x0 | |
__int64 v16; // x0 | |
_QWORD *v17; // x1 | |
unsigned int v18; // [xsp+24h] [xbp-3Ch] | |
__int64 v19; // [xsp+28h] [xbp-38h] | |
v3 = a3; | |
v4 = a2; | |
v5 = a1; | |
v19 = 5139240511851214385LL; | |
if ( !a2 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -825580612549415916LL, 978LL); | |
v6 = *(_DWORD *)(a1 + 8); | |
if ( v6 == 1298492794 ) | |
{ | |
if ( a3 > 0x1D ) | |
{ | |
if ( (unsigned int)sub_1800C0DF4(*(_QWORD *)(a1 + 16), 30LL, 0LL, &v18) ) | |
{ | |
v15 = 1074004001LL; | |
} | |
else | |
{ | |
if ( v18 <= v3 ) | |
{ | |
v17 = *(_QWORD **)(v5 + 16); | |
if ( v17 != v4 ) | |
sub_1800F03F0(v4, v17, v3); | |
goto LABEL_5; | |
} | |
v15 = 1074004002LL; | |
} | |
} | |
else | |
{ | |
v15 = 1074004000LL; | |
} | |
sub_1800F598C(v15); | |
v16 = 1074003998LL; | |
} | |
else if ( v6 == 1768777524 ) | |
{ | |
if ( (*(unsigned int (**)(void))(*(_QWORD *)(*(_QWORD *)(a1 + 16) + 16LL) + 40LL))() == (_DWORD)a3 ) | |
{ | |
LABEL_5: | |
result = 0LL; | |
goto LABEL_16; | |
} | |
sub_1800EF260((__int64)"%llx:%d\n", v7, v8, v9, v10, v11, v12, v13, -825580612549415916LL); | |
v16 = 1074003997LL; | |
} | |
else | |
{ | |
v16 = 1074003999LL; | |
} | |
sub_1800F598C(v16); | |
result = 0xFFFFFFFFLL; | |
LABEL_16: | |
if ( 5139240511851214385LL != v19 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800C24D4) ---------------------------------------------------- | |
_QWORD *sub_1800C24D4() | |
{ | |
_QWORD *result; // x0 | |
MEMORY[0x18011A778] = (__int64 (__fastcall *)(_QWORD))sub_1800C2544; | |
MEMORY[0x18011A780] = (__int64 (__fastcall *)(_QWORD, _QWORD, _QWORD))sub_1800C256C; | |
MEMORY[0x18011A788] = (__int64 (__fastcall *)(_QWORD, _QWORD, _QWORD))sub_1800C25FC; | |
MEMORY[0x18011A790] = (__int64 (__fastcall *)(_QWORD, _QWORD, _QWORD, _QWORD))sub_1800C268C; | |
MEMORY[0x18011A798] = (__int64 (__fastcall *)(_QWORD))sub_1800C274C; | |
LOBYTE(qword_1801158C8[2515]) = 0; | |
result = sub_1800C2B24(); | |
LOBYTE(qword_1801158C8[48]) = 0; | |
MEMORY[0x18011A770] = 1; | |
return result; | |
} | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
// 18011A778: using guessed type __int64 (__fastcall *)(_QWORD); | |
// 18011A780: using guessed type __int64 (__fastcall *)(_QWORD, _QWORD, _QWORD); | |
// 18011A788: using guessed type __int64 (__fastcall *)(_QWORD, _QWORD, _QWORD); | |
// 18011A790: using guessed type __int64 (__fastcall *)(_QWORD, _QWORD, _QWORD, _QWORD); | |
// 18011A798: using guessed type __int64 (__fastcall *)(_QWORD); | |
//----- (00000001800C2544) ---------------------------------------------------- | |
__int64 __fastcall sub_1800C2544(int a1) | |
{ | |
return (a1 == 1802661484) | (unsigned int)(a1 == 1919644270); | |
} | |
//----- (00000001800C256C) ---------------------------------------------------- | |
__int64 __fastcall sub_1800C256C(__int64 result, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
int *v8; // x9 | |
signed __int64 v9; // x8 | |
signed __int64 v10; // x10 | |
int v11; // w11 | |
v8 = (int *)6443588896LL; | |
if ( !(_DWORD)a2 ) | |
v8 = (int *)6443588176LL; | |
v9 = -1LL; | |
while ( ++v9 <= 19 ) | |
{ | |
v10 = (signed __int64)(v8 + 2); | |
v11 = *v8; | |
v8 += 2; | |
if ( !v11 ) | |
{ | |
*(_DWORD *)(v10 - 8) = result; | |
*(_BYTE *)(v10 - 4) = a3; | |
return result; | |
} | |
} | |
result = sub_1800EF260((__int64)"%llx:%d\n", a2, a3, a4, a5, a6, a7, a8, -825580612549415916LL); | |
MEMORY[0x180115A49] = 1; | |
return result; | |
} | |
//----- (00000001800C25FC) ---------------------------------------------------- | |
__int64 __fastcall sub_1800C25FC(__int64 result, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
int *v8; // x9 | |
signed __int64 v9; // x8 | |
signed __int64 v10; // x10 | |
int v11; // w11 | |
v8 = (int *)6443589056LL; | |
if ( !(_DWORD)a2 ) | |
v8 = (int *)6443588336LL; | |
v9 = -1LL; | |
while ( ++v9 <= 19 ) | |
{ | |
v10 = (signed __int64)(v8 + 4); | |
v11 = *v8; | |
v8 += 4; | |
if ( !v11 ) | |
{ | |
*(_DWORD *)(v10 - 16) = result; | |
*(_QWORD *)(v10 - 8) = a3; | |
return result; | |
} | |
} | |
result = sub_1800EF260((__int64)"%llx:%d\n", a2, a3, a4, a5, a6, a7, a8, -825580612549415916LL); | |
MEMORY[0x180115A49] = 1; | |
return result; | |
} | |
//----- (00000001800C268C) ---------------------------------------------------- | |
__int64 __fastcall sub_1800C268C(int a1, __int64 a2, __int64 a3, unsigned __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
unsigned __int64 v8; // x19 | |
_QWORD *v9; // x20 | |
signed __int64 v10; // x8 | |
signed __int64 v11; // x9 | |
signed __int64 v12; // x8 | |
_QWORD *v13; // x22 | |
int v14; // w10 | |
_QWORD *v15; // x0 | |
__int64 result; // x0 | |
v8 = a4; | |
v9 = (_QWORD *)a3; | |
v10 = 6443588656LL; | |
if ( (_DWORD)a2 ) | |
v10 = 6443589376LL; | |
v11 = v10 - 8; | |
v12 = -1LL; | |
while ( ++v12 <= 9 ) | |
{ | |
v13 = (_QWORD *)(v11 + 24); | |
v14 = *(_DWORD *)(v11 + 8); | |
v11 += 24LL; | |
if ( !v14 ) | |
{ | |
*((_DWORD *)v13 - 4) = a1; | |
v15 = (_QWORD *)sub_1800EDBF4(a4); | |
*v13 = v15; | |
result = (__int64)sub_1800F03F0(v15, v9, v8); | |
*(v13 - 1) = v8; | |
return result; | |
} | |
} | |
result = sub_1800EF260((__int64)"%llx:%d\n", a2, a3, a4, a5, a6, a7, a8, -825580612549415916LL); | |
MEMORY[0x180115A49] = 1; | |
return result; | |
} | |
//----- (00000001800C274C) ---------------------------------------------------- | |
_QWORD *__fastcall sub_1800C274C(_QWORD *result) | |
{ | |
char v1; // w19 | |
v1 = (char)result; | |
if ( !((unsigned __int8)result & 1) ) | |
result = sub_1800C2B24(); | |
LOBYTE(qword_1801158C8[48]) = v1; | |
return result; | |
} | |
// 180114CE8: using guessed type __int64[105]; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800C2778) ---------------------------------------------------- | |
signed __int64 sub_1800C2778() | |
{ | |
signed __int64 v0; // x19 | |
__int64 v1; // x1 | |
__int64 v2; // x2 | |
__int64 v3; // x3 | |
__int64 v4; // x4 | |
__int64 v5; // x5 | |
__int64 v6; // x6 | |
__int64 v7; // x7 | |
__int64 v8; // x2 | |
__int64 v9; // x3 | |
__int64 v10; // x4 | |
__int64 v11; // x5 | |
__int64 v12; // x6 | |
__int64 v13; // x7 | |
__int64 v14; // x2 | |
__int64 v15; // x3 | |
__int64 v16; // x4 | |
__int64 v17; // x5 | |
__int64 v18; // x6 | |
__int64 v19; // x7 | |
__int64 v20; // x1 | |
__int64 v21; // x2 | |
__int64 v22; // x3 | |
__int64 v23; // x4 | |
__int64 v24; // x5 | |
__int64 v25; // x6 | |
__int64 v26; // x7 | |
__int64 v27; // x2 | |
__int64 v28; // x3 | |
__int64 v29; // x4 | |
__int64 v30; // x5 | |
__int64 v31; // x6 | |
__int64 v32; // x7 | |
__int64 v33; // x2 | |
__int64 v34; // x3 | |
__int64 v35; // x4 | |
__int64 v36; // x5 | |
__int64 v37; // x6 | |
__int64 v38; // x7 | |
__int64 v40; // [xsp+10h] [xbp-30h] | |
__int64 v41; // [xsp+18h] [xbp-28h] | |
v41 = 5139240511851214385LL; | |
if ( !(qword_1801158C8[2517] & 1) ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -825580612549415916LL, 1944LL); | |
v0 = 0xFFFFFFFFLL; | |
if ( MEMORY[0x180115A48] && !MEMORY[0x180115A49] ) | |
{ | |
if ( (unsigned int)sub_1800EBDF4(0LL, "chosen/manifest-properties", &v40) ) | |
{ | |
sub_1800C28DC(v40, 6443588176LL, v2, v3, v4, v5, v6, v7); | |
sub_1800C299C(v40, 6443588336LL, v8, v9, v10, v11, v12, v13); | |
sub_1800C2A5C(v40, 6443588656LL, v14, v15, v16, v17, v18, v19); | |
if ( sub_1800EBDF4(0LL, "chosen/manifest-object-properties", &v40) & 1 ) | |
{ | |
sub_1800C28DC(v40, 6443588896LL, v21, v22, v23, v24, v25, v26); | |
sub_1800C299C(v40, 6443589056LL, v27, v28, v29, v30, v31, v32); | |
sub_1800C2A5C(v40, 6443589376LL, v33, v34, v35, v36, v37, v38); | |
v0 = 0LL; | |
} | |
else | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v20, v21, v22, v23, v24, v25, v26, -825580612549415916LL); | |
v0 = 4294967287LL; | |
} | |
} | |
else | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v1, v2, v3, v4, v5, v6, v7, -825580612549415916LL); | |
v0 = 4294967291LL; | |
} | |
} | |
sub_1800C2B24(); | |
if ( 5139240511851214385LL != v41 ) | |
sub_1800D4A5C(); | |
return v0; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800C28DC) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800C28DC(signed __int64 result, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
__int64 v8; // x19 | |
signed __int64 v9; // x21 | |
unsigned __int8 *v10; // x22 | |
unsigned int v11; // w8 | |
int v12; // t1 | |
char v13; // [xsp+26h] [xbp-5Ah] | |
__int64 v14; // [xsp+58h] [xbp-28h] | |
v8 = result; | |
v9 = 0LL; | |
v14 = 5139240511851214385LL; | |
v10 = (unsigned __int8 *)(a2 + 4); | |
while ( v9 <= 19 ) | |
{ | |
v11 = *((_DWORD *)v10 - 1); | |
if ( !v11 ) | |
break; | |
sub_1800EFC74(&v13, 0x32uLL, 0LL, 0x32uLL, (__int64)"%c%c%c%c", a6, a7, a8, v11 >> 24); | |
v12 = *v10; | |
v10 += 8; | |
result = sub_1800EC320(v8, &v13, v12); | |
++v9; | |
} | |
if ( 5139240511851214385LL != v14 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
//----- (00000001800C299C) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800C299C(signed __int64 result, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
__int64 v8; // x19 | |
signed __int64 v9; // x21 | |
__int64 *v10; // x22 | |
unsigned int v11; // w8 | |
__int64 v12; // t1 | |
char v13; // [xsp+26h] [xbp-5Ah] | |
__int64 v14; // [xsp+58h] [xbp-28h] | |
v8 = result; | |
v9 = 0LL; | |
v14 = 5139240511851214385LL; | |
v10 = (__int64 *)(a2 + 8); | |
while ( v9 <= 19 ) | |
{ | |
v11 = *((_DWORD *)v10 - 2); | |
if ( !v11 ) | |
break; | |
sub_1800EFC74(&v13, 0x32uLL, 0LL, 0x32uLL, (__int64)"%c%c%c%c", a6, a7, a8, v11 >> 24); | |
v12 = *v10; | |
v10 += 2; | |
result = sub_1800EC374(v8, &v13, v12); | |
++v9; | |
} | |
if ( 5139240511851214385LL != v14 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
//----- (00000001800C2A5C) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800C2A5C(signed __int64 result, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
__int64 v8; // x19 | |
signed __int64 v9; // x21 | |
_QWORD **i; // x22 | |
unsigned int v11; // w8 | |
char v12; // [xsp+26h] [xbp-5Ah] | |
__int64 v13; // [xsp+58h] [xbp-28h] | |
v8 = result; | |
v9 = 0LL; | |
v13 = 5139240511851214385LL; | |
for ( i = (_QWORD **)(a2 + 16); v9 <= 9; i += 3 ) | |
{ | |
v11 = *((_DWORD *)i - 4); | |
if ( !v11 ) | |
break; | |
sub_1800EFC74(&v12, 0x32uLL, 0LL, 0x32uLL, (__int64)"%c%c%c%c", a6, a7, a8, v11 >> 24); | |
result = sub_1800EC16C(v8, &v12, *i, *((_DWORD *)i - 2)); | |
++v9; | |
} | |
if ( 5139240511851214385LL != v13 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
//----- (00000001800C2B24) ---------------------------------------------------- | |
_QWORD *sub_1800C2B24() | |
{ | |
signed __int64 i; // x19 | |
_QWORD *v1; // x0 | |
_QWORD *v2; // x0 | |
for ( i = 504LL; i != 744; i += 24LL ) | |
{ | |
if ( *(_DWORD *)(i + 6443588872LL) ) | |
{ | |
v1 = *(_QWORD **)(i + 6443588888LL); | |
if ( v1 ) | |
sub_1800EE010(v1); | |
} | |
if ( *(_DWORD *)(i + 6443588152LL) ) | |
{ | |
v2 = *(_QWORD **)(i + 6443588168LL); | |
if ( v2 ) | |
sub_1800EE010(v2); | |
} | |
} | |
return sub_1800F05A0((_QWORD *)0x180115A48LL, 0x5A8uLL); | |
} | |
//----- (00000001800C2B9C) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800C2B9C(int a1, __int64 a2, __int64 a3, unsigned __int64 a4) | |
{ | |
unsigned __int64 v4; // x19 | |
int v5; // w20 | |
signed __int64 result; // x0 | |
unsigned __int64 v7; // [xsp+0h] [xbp-20h] | |
__int64 v8; // [xsp+8h] [xbp-18h] | |
v4 = a4; | |
v5 = a1; | |
v8 = 5139240511851214385LL; | |
v7 = 0LL; | |
LODWORD(result) = sub_1800F753C(a3, a2, &v7); | |
if ( (_DWORD)result ) | |
goto LABEL_2; | |
if ( v5 != 1 ) | |
{ | |
if ( v5 ) | |
{ | |
LODWORD(result) = -1; | |
LABEL_2: | |
if ( (_DWORD)result ) | |
result = (unsigned int)result; | |
else | |
result = 1LL; | |
goto LABEL_5; | |
} | |
if ( v7 == v4 ) | |
goto LABEL_13; | |
LABEL_12: | |
result = 0xFFFFFFFFLL; | |
goto LABEL_5; | |
} | |
if ( v7 < v4 ) | |
goto LABEL_12; | |
LABEL_13: | |
result = 0LL; | |
LABEL_5: | |
if ( 5139240511851214385LL != v8 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
//----- (00000001800C2C50) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800C2C50(__int64 a1, __int64 a2, int a3) | |
{ | |
int v3; // w19 | |
signed __int64 result; // x0 | |
unsigned __int8 v5; // [xsp+7h] [xbp-19h] | |
__int64 v6; // [xsp+8h] [xbp-18h] | |
v3 = a3; | |
v6 = 5139240511851214385LL; | |
v5 = 0; | |
result = sub_1800F75B8(a2, a1, (bool *)&v5); | |
if ( !(_DWORD)result ) | |
{ | |
if ( v5 == v3 ) | |
result = 0LL; | |
else | |
result = 0xFFFFFFFFLL; | |
} | |
if ( 5139240511851214385LL != v6 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
//----- (00000001800C2CC8) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800C2CC8(__int64 a1, __int64 a2, _BYTE *a3, __int64 a4) | |
{ | |
__int64 v4; // x19 | |
_BYTE *v5; // x20 | |
signed __int64 result; // x0 | |
int v7; // [xsp+Ch] [xbp-24h] | |
_BYTE *v8; // [xsp+10h] [xbp-20h] | |
__int64 v9; // [xsp+18h] [xbp-18h] | |
v4 = a4; | |
v5 = a3; | |
v9 = 5139240511851214385LL; | |
LODWORD(result) = sub_1800F7624(a2, a1, &v8, &v7); | |
if ( (_DWORD)result ) | |
goto LABEL_8; | |
if ( v7 != v4 ) | |
{ | |
LODWORD(result) = -1; | |
LABEL_8: | |
if ( (_DWORD)result ) | |
result = (unsigned int)result; | |
else | |
result = 1LL; | |
goto LABEL_11; | |
} | |
if ( (unsigned int)sub_1800F0718(v8, v5, v4) ) | |
result = 0xFFFFFFFFLL; | |
else | |
result = 0LL; | |
LABEL_11: | |
if ( 5139240511851214385LL != v9 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
//----- (00000001800C2D6C) ---------------------------------------------------- | |
__int64 __fastcall sub_1800C2D6C(__int64 a1) | |
{ | |
__int64 v1; // x19 | |
__int64 v2; // x1 | |
__int64 v3; // x2 | |
__int64 v4; // x3 | |
__int64 v5; // x4 | |
__int64 v6; // x5 | |
__int64 v7; // x6 | |
__int64 v8; // x7 | |
signed __int64 v9; // x0 | |
__int64 v10; // x20 | |
int v11; // w0 | |
signed __int64 v12; // x0 | |
__int64 v13; // x20 | |
int v14; // w0 | |
__int64 v15; // x20 | |
unsigned int i; // w22 | |
bool v17; // zf | |
__int64 v18; // x1 | |
__int64 v19; // x2 | |
__int64 v20; // x3 | |
__int64 v21; // x4 | |
__int64 v22; // x5 | |
__int64 v23; // x6 | |
__int64 v24; // x7 | |
const char *v25; // x8 | |
signed __int64 v26; // x0 | |
int v27; // w0 | |
__int64 result; // x0 | |
signed __int64 v29; // x0 | |
__int64 v30; // x20 | |
int v31; // w0 | |
signed __int64 v32; // x0 | |
__int64 v33; // x20 | |
int v34; // w0 | |
__int64 v35; // x20 | |
int v36; // w0 | |
__int64 v37; // x5 | |
__int64 v38; // x6 | |
__int64 v39; // x7 | |
__int64 *v40; // x19 | |
unsigned __int8 *v41; // x0 | |
BOOL v42; // w19 | |
int v43; // w0 | |
__int64 v44; // x1 | |
__int64 v45; // x2 | |
__int64 v46; // x3 | |
__int64 v47; // x4 | |
__int64 v48; // x5 | |
__int64 v49; // x6 | |
__int64 v50; // x7 | |
_DWORD *v51; // x8 | |
int v52; // w0 | |
_QWORD *v53; // x19 | |
unsigned int v54; // w20 | |
__int64 v55; // x0 | |
__int64 v56; // x1 | |
__int64 v57; // x2 | |
__int64 v58; // x3 | |
__int64 v59; // x4 | |
__int64 v60; // x5 | |
__int64 v61; // x6 | |
__int64 v62; // x7 | |
__int64 v63; // x19 | |
int v64; // w0 | |
int v65; // w0 | |
bool v66; // zf | |
bool v67; // nf | |
unsigned __int8 v68; // vf | |
char *v69; // x1 | |
unsigned int v70; // w3 | |
unsigned __int64 *v71; // x2 | |
int v72; // w19 | |
__int64 v73; // [xsp+0h] [xbp-A0h] | |
int v74; // [xsp+14h] [xbp-8Ch] | |
__int64 v75; // [xsp+18h] [xbp-88h] | |
char *v76; // [xsp+20h] [xbp-80h] | |
unsigned int v77; // [xsp+2Ch] [xbp-74h] | |
__int64 v78; // [xsp+30h] [xbp-70h] | |
__int64 v79; // [xsp+38h] [xbp-68h] | |
int v80; // [xsp+40h] [xbp-60h] | |
__int16 v81; // [xsp+44h] [xbp-5Ch] | |
unsigned __int64 v82; // [xsp+48h] [xbp-58h] | |
int v83; // [xsp+50h] [xbp-50h] | |
__int64 v84; // [xsp+78h] [xbp-28h] | |
v1 = a1; | |
v84 = 5139240511851214385LL; | |
if ( (unsigned int)sub_1800EBDF4(0LL, "pram", &v79) ) | |
{ | |
v76 = "reg"; | |
if ( (unsigned int)sub_1800EBFC8(v79, &v76, &v75, &v77) ) | |
*(_OWORD *)v75 = *(_OWORD *)sub_1800E086C(7); | |
} | |
if ( !sub_1800EBDE4() ) | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v2, v3, v4, v5, v6, v7, v8, 6985154693560137621LL); | |
LABEL_78: | |
result = 0xFFFFFFFFLL; | |
goto LABEL_79; | |
} | |
if ( (unsigned int)sub_1800EBDF4(0LL, "vram", &v79) ) | |
{ | |
v76 = "reg"; | |
if ( (unsigned int)sub_1800EBFC8(v79, &v76, &v75, &v77) ) | |
*(_OWORD *)v75 = *(_OWORD *)sub_1800E086C(9); | |
} | |
v9 = sub_1800EBDF4(0LL, "arm-io", &v79); | |
if ( (_DWORD)v9 ) | |
{ | |
v10 = v79; | |
v11 = sub_1800F688C(v9); | |
v12 = sub_1800EC320(v10, "chip-revision", v11); | |
v13 = v79; | |
v14 = sub_1800F6898(v12); | |
sub_1800EC320(v13, "fuse-revision", v14); | |
} | |
if ( (unsigned int)sub_1800EBDF4(0LL, "product", &v79) ) | |
{ | |
v76 = "primary-calibration-matrix"; | |
if ( (unsigned int)sub_1800EBFC8(v79, &v76, &v75, &v77) ) | |
{ | |
sub_1800F661C(1146110828, (_QWORD *)v75, v77); | |
v15 = v75; | |
if ( *(_DWORD *)v75 == 0x1000000 ) | |
{ | |
for ( i = 0; i < v77 >> 2; ++i ) | |
*(_DWORD *)(v15 + 4LL * i) = sub_1800EF128(*(_DWORD *)(v15 + 4LL * i)); | |
} | |
} | |
v76 = "device-color-policy"; | |
if ( (unsigned int)sub_1800EBFC8(v79, &v76, &v75, &v77) ) | |
v17 = v77 == 4; | |
else | |
v17 = 0; | |
if ( v17 ) | |
*(_DWORD *)v75 = sub_1800F3700(); | |
if ( (unsigned int)sub_1800E0DB0() ) | |
sub_1800EC16C(v79, "boot-ios-diagnostics", 0LL, 0); | |
} | |
if ( !(sub_1800EBDF4(0LL, "chosen", &v78) & 1) ) | |
{ | |
sub_1800EF260( | |
(__int64)"UpdateDeviceTree: failed to find the /chosen node\n", | |
v18, | |
v19, | |
v20, | |
v21, | |
v22, | |
v23, | |
v24, | |
v73); | |
goto LABEL_78; | |
} | |
sub_1800F1948(v78, (__int64)"nvram-proxy-data", v19, v20, v21, v22, v23, v24); | |
v76 = "debug-enabled"; | |
if ( (unsigned int)sub_1800EBFC8(v78, &v76, &v75, &v77) && sub_1800D4D84(32) ) | |
*(_DWORD *)v75 = 1; | |
v76 = "development-cert"; | |
if ( (unsigned int)sub_1800EBFC8(v78, &v76, &v75, &v77) && sub_1800D4D84(0x100000) ) | |
*(_DWORD *)v75 = 1; | |
v76 = "production-cert"; | |
if ( (unsigned int)sub_1800EBFC8(v78, &v76, &v75, &v77) && sub_1800D4D84(0x200000) ) | |
*(_DWORD *)v75 = 1; | |
v76 = "gid-aes-key"; | |
if ( (unsigned int)sub_1800EBFC8(v78, &v76, &v75, &v77) && sub_1800D4D84(0x40000) ) | |
*(_DWORD *)v75 = 1; | |
v76 = "uid-aes-key"; | |
if ( (unsigned int)sub_1800EBFC8(v78, &v76, &v75, &v77) && sub_1800D4D84(0x80000) ) | |
*(_DWORD *)v75 = 1; | |
v76 = "secure-boot"; | |
if ( (unsigned int)sub_1800EBFC8(v78, &v76, &v75, &v77) && sub_1800D4D84(0x10000000) ) | |
*(_DWORD *)v75 = 1; | |
v76 = "certificate-production-status"; | |
if ( (unsigned int)sub_1800EBFC8(v78, &v76, &v75, &v77) ) | |
*(_DWORD *)v75 = sub_1800F6858(); | |
v76 = "certificate-security-mode"; | |
if ( (unsigned int)sub_1800EBFC8(v78, &v76, &v75, &v77) ) | |
*(_DWORD *)v75 = sub_1800F6860(); | |
v76 = "effective-production-status-ap"; | |
if ( (unsigned int)sub_1800EBFC8(v78, &v76, &v75, &v77) ) | |
*(_DWORD *)v75 = sub_1800F6854(); | |
v76 = "effective-security-mode-ap"; | |
if ( (unsigned int)sub_1800EBFC8(v78, &v76, &v75, &v77) ) | |
*(_DWORD *)v75 = sub_1800F6860(); | |
v76 = "boot-nonce"; | |
if ( (unsigned int)sub_1800EBFC8(v78, &v76, &v75, &v77) ) | |
{ | |
v82 = sub_1800C6838(); | |
sub_1800F03F0((_QWORD *)v75, &v82, v77); | |
} | |
v76 = "dram-vendor"; | |
if ( (unsigned int)sub_1800EBFC8(v78, &v76, &v75, &v77) ) | |
{ | |
v25 = sub_1800E0704(); | |
if ( v25 ) | |
sub_1800EFE14(v75, (__int64)v25, v77, 0xFFFFFFFFFFFFFFFFLL); | |
} | |
v76 = "dram-vendor-id"; | |
if ( (unsigned int)sub_1800EBFC8(v78, &v76, &v75, &v77) ) | |
*(_DWORD *)v75 = sub_1800C696C(); | |
v76 = "system-trusted"; | |
if ( (unsigned int)sub_1800EBFC8(v78, &v76, &v75, &v77) && sub_1800D4D84(0x20000000) ) | |
*(_DWORD *)v75 = 1; | |
v76 = "board-id"; | |
if ( (unsigned int)sub_1800EBFC8(v78, &v76, &v75, &v77) ) | |
*(_DWORD *)v75 = sub_1800C678C(); | |
v76 = "chip-id"; | |
v26 = sub_1800EBFC8(v78, &v76, &v75, &v77); | |
if ( (_DWORD)v26 ) | |
{ | |
v27 = sub_1800F6888(v26); | |
*(_DWORD *)v75 = v27; | |
} | |
v76 = "unique-chip-id"; | |
if ( (unsigned int)sub_1800EBFC8(v78, &v76, &v75, &v77) ) | |
*(_QWORD *)v75 = sub_1800F6890(); | |
v76 = "die-id"; | |
if ( (unsigned int)sub_1800EBFC8(v78, &v76, &v75, &v77) ) | |
*(_QWORD *)v75 = sub_1800F6894(); | |
v76 = "random-seed"; | |
if ( (unsigned int)sub_1800EBFC8(v78, &v76, &v75, &v77) ) | |
sub_1800F5684((_QWORD *)v75, v77); | |
v76 = "firmware-version"; | |
if ( (unsigned int)sub_1800EBFC8(v78, &v76, &v75, &v77) ) | |
sub_1800EFE14(v75, (__int64)"iBoot-4076.1.43", v77, 0xFFFFFFFFFFFFFFFFLL); | |
v76 = "boot-manifest-hash"; | |
if ( (unsigned int)sub_1800EBFC8(v78, &v76, &v75, &v77) ) | |
{ | |
if ( (unsigned int)sub_1800C6A18(&v82) ) | |
{ | |
*v76 = 126; | |
} | |
else | |
{ | |
if ( v77 < 0x30 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, 6985154693560137621LL, 350LL); | |
sub_1800F03F0((_QWORD *)v75, &v82, 0x30uLL); | |
} | |
} | |
v76 = "mix-n-match-prevention-status"; | |
if ( (unsigned int)sub_1800EBFC8(v78, &v76, &v75, &v77) ) | |
*(_DWORD *)v75 = sub_1800C6CC8(); | |
v76 = "display-rotation"; | |
if ( (unsigned int)sub_1800EBFC8(v78, &v76, &v75, &v77) ) | |
*(_DWORD *)v75 = 90 * ((unsigned __int16)*(_DWORD *)(v1 + 80) >> 8); | |
v76 = "display-scale"; | |
if ( (unsigned int)sub_1800EBFC8(v78, &v76, &v75, &v77) ) | |
*(_DWORD *)v75 = *(unsigned __int8 *)(v1 + 82) + 1; | |
v76 = "bootp-response"; | |
v29 = sub_1800EBFC8(v78, &v76, &v75, &v77); | |
if ( (_DWORD)v29 ) | |
{ | |
MEMORY[0x18011A7A0] = 2; | |
v74 = 0; | |
sub_1800ECC0C("ipaddr", &v74); | |
MEMORY[0x18011A7B0] = v74; | |
if ( sub_1800ECB70("gateway") ) | |
{ | |
sub_1800ECC0C("gateway", &v74); | |
MEMORY[0x18011A88C] = 1666417251; | |
MEMORY[0x18011A890] = 1027; | |
MEMORY[0x18011A892] = v74; | |
} | |
v29 = (signed __int64)sub_1800F03F0((_QWORD *)v75, (_QWORD *)0x18011A7A0LL, 0x12CuLL); | |
} | |
v30 = v78; | |
v31 = sub_1800F685C(v29); | |
v32 = sub_1800EC320(v30, "security-domain", v31); | |
v33 = v78; | |
v34 = sub_1800F6884(v32); | |
sub_1800EC320(v33, "chip-epoch", v34); | |
v35 = v78; | |
v36 = sub_1800F44F0(); | |
sub_1800EC320(v35, "embedded-panic-log-size", v36); | |
if ( !(sub_1800C49A8((_BYTE *)(v1 + 108), (__int64)"rd=", 1) & 1) ) | |
{ | |
v76 = "root-matching"; | |
if ( (unsigned int)sub_1800EBFC8(v78, &v76, &v75, &v77) ) | |
sub_1800EFC74( | |
(char *)v75, | |
v77, | |
0LL, | |
0xFFFFFFFFFFFFFFFFLL, | |
(__int64)"<dict><key>IOProviderClass</key><string>IOMedia</string><key>IOPropertyMatch</key><dict><key>Partition " | |
"ID</key><integer>%u</integer></dict></dict>", | |
v37, | |
v38, | |
v39, | |
1LL); | |
} | |
if ( (unsigned int)sub_1800EBDF4(0LL, "arm-io/ans/iop-ans-nub", &v79) ) | |
{ | |
v40 = (__int64 *)sub_1800E086C(0); | |
if ( *v40 ) | |
{ | |
sub_1800EC3C8(v79, "region-base", *v40); | |
sub_1800EC3C8(v79, "region-size", v40[1]); | |
} | |
} | |
if ( (unsigned int)sub_1800EBDF4(0LL, &byte_180101040, &v79) ) | |
{ | |
v76 = "platform-name"; | |
if ( (unsigned int)sub_1800EBFC8(v79, &v76, &v75, &v77) ) | |
sub_1800EFE14(v75, (__int64)"t8010", v77, 0xFFFFFFFFFFFFFFFFLL); | |
} | |
v81 = 0; | |
v80 = 0; | |
if ( sub_1800ECB70("ethaddr") ) | |
sub_1800ECD24("ethaddr", (__int64)&v80); | |
else | |
sub_1800F661C(1162699107, &v80, 6uLL); | |
v41 = (unsigned __int8 *)sub_1800ECB70("network-type"); | |
if ( v41 ) | |
v42 = (unsigned __int64)sub_1800F0770(v41, "ethernet") != 0; | |
else | |
v42 = 0; | |
if ( (unsigned int)sub_1800EBDF4(0LL, "ethernet", &v79) ) | |
{ | |
v76 = "local-mac-address"; | |
v43 = sub_1800EBFC8(v79, &v76, &v75, &v77); | |
if ( v42 ) | |
{ | |
if ( v43 ) | |
{ | |
v76 = "compatible"; | |
if ( (unsigned int)sub_1800EBFC8(v79, &v76, &v75, &v77) ) | |
{ | |
sub_1800EFE14(v75, (__int64)"xxx", v77, 0xFFFFFFFFFFFFFFFFLL); | |
sub_1800EF260((__int64)"Ethernet disabled\n", v44, v45, v46, v47, v48, v49, v50, v73); | |
} | |
} | |
} | |
if ( (unsigned int)sub_1800EBDF4(0LL, "arm-io/usb-complex/usb-device", &v79) ) | |
{ | |
v76 = "device-mac-address"; | |
if ( (unsigned int)sub_1800EBFC8(v79, &v76, &v75, &v77) ) | |
{ | |
v51 = (_DWORD *)v75; | |
*(_WORD *)(v75 + 4) = 0; | |
*v51 = 0; | |
} | |
} | |
} | |
if ( !(unsigned int)sub_1800EBDF4(0LL, "baseband", &v79) ) | |
goto LABEL_120; | |
v76 = "battery-id"; | |
if ( !(unsigned int)sub_1800EBFC8(v79, &v76, &v75, &v77) ) | |
goto LABEL_120; | |
v52 = sub_1800BFDB8(v75, v77); | |
v53 = (_QWORD *)v75; | |
v54 = v77; | |
if ( v52 ) | |
{ | |
sub_1800F661C(1113683060, (_QWORD *)v75, v77); | |
LABEL_120: | |
v53 = 0LL; | |
v54 = 0; | |
} | |
if ( (unsigned int)sub_1800EBDF4(0LL, "charger", &v79) ) | |
{ | |
v76 = "battery-id"; | |
if ( (unsigned int)sub_1800EBFC8(v79, &v76, &v75, &v77) ) | |
{ | |
if ( v53 && v77 == v54 ) | |
{ | |
sub_1800F03F0((_QWORD *)v75, v53, v54); | |
} | |
else if ( (unsigned int)sub_1800BFDB8(v75, v77) ) | |
{ | |
sub_1800F661C(1113683060, (_QWORD *)v75, v77); | |
} | |
} | |
v76 = "boot-voltage"; | |
if ( (unsigned int)sub_1800EBFC8(v79, &v76, &v75, &v77) ) | |
*(_DWORD *)v75 = sub_1800D8B10(); | |
v76 = "boot-adapter-id"; | |
v55 = sub_1800EBFC8(v79, &v76, &v75, &v77); | |
if ( (_DWORD)v55 ) | |
v55 = (__int64)sub_1800D8B1C((_DWORD *)v75, v77 >> 2); | |
v63 = v79; | |
v64 = sub_1800D8B4C(v55, v56, v57, v58, v59, v60, v61, v62); | |
sub_1800EC320(v63, "boot-reason", v64); | |
if ( MEMORY[0x180116060] ) | |
{ | |
sub_1800EC16C(v79, "precharge-time", (_QWORD *)0x180116060LL, 4u); | |
v82 = MEMORY[0x180116064]; | |
v83 = MEMORY[0x18011606C]; | |
sub_1800EC16C(v79, "precharge-battery-state", &v82, 0xCu); | |
sub_1800BFF18(&v82, (_DWORD *)&v82 + 1, &v83); | |
sub_1800EC16C(v79, "boot-battery-state", &v82, 0xCu); | |
} | |
v65 = sub_1800F661C(1113683060, &v82, 0x20uLL); | |
if ( v65 == -1 ) | |
{ | |
v68 = 0; | |
v66 = 0; | |
v67 = 0; | |
} | |
else | |
{ | |
v68 = __OFSUB__(v65, 31); | |
v66 = v65 == 31; | |
v67 = v65 - 31 < 0; | |
} | |
if ( (unsigned __int8)(v67 ^ v68) | v66 ) | |
{ | |
sub_1800F05A0((unsigned __int64 *)((char *)&v82 + v65), 32LL - v65); | |
sub_1800EC16C(v79, "battery-factory-id", &v82, 0x20u); | |
} | |
} | |
if ( (unsigned int)sub_1800EBDF4(0LL, "arm-io/i2c0/tristar", &v79) ) | |
{ | |
v82 = 0LL; | |
if ( (unsigned int)sub_1800E37A8((__int64)&v82) ) | |
{ | |
v69 = "esn"; | |
v70 = 8; | |
v71 = &v82; | |
} | |
else | |
{ | |
v69 = "esn-not-provisioned"; | |
v70 = 0; | |
v71 = 0LL; | |
} | |
sub_1800EC16C(v79, v69, v71, v70); | |
} | |
result = sub_1800C6084(); | |
if ( !(result & 0x80000000) ) | |
{ | |
result = sub_1800D8184(); | |
if ( !(result & 0x80000000) ) | |
{ | |
result = sub_1800EBDF4(0LL, "chosen/iBoot", &v79); | |
if ( (_DWORD)result ) | |
{ | |
v72 = sub_1800D5F1C(result); | |
v76 = "start-time"; | |
if ( (unsigned int)sub_1800EBFC8(v79, &v76, &v75, &v77) ) | |
*(_DWORD *)v75 = MEMORY[0x180115A00]; | |
v76 = "debug-wait-start"; | |
if ( (unsigned int)sub_1800EBFC8(v79, &v76, &v75, &v77) ) | |
*(_DWORD *)v75 = MEMORY[0x180115A08]; | |
v76 = "load-kernel-start"; | |
if ( (unsigned int)sub_1800EBFC8(v79, &v76, &v75, &v77) ) | |
*(_DWORD *)v75 = MEMORY[0x180115A10]; | |
v76 = "populate-registry-time"; | |
result = sub_1800EBFC8(v79, &v76, &v75, &v77); | |
if ( (_DWORD)result ) | |
{ | |
result = 0LL; | |
*(_DWORD *)v75 = v72; | |
} | |
} | |
} | |
} | |
LABEL_79: | |
if ( 5139240511851214385LL != v84 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 1800D8184: using guessed type __int64 sub_1800D8184(void); | |
// 1800F6854: using guessed type __int64 sub_1800F6854(void); | |
// 1800F6858: using guessed type __int64 sub_1800F6858(void); | |
// 1800F685C: using guessed type __int64 __fastcall sub_1800F685C(_QWORD); | |
// 1800F6884: using guessed type __int64 __fastcall sub_1800F6884(_QWORD); | |
// 1800F6888: using guessed type __int64 __fastcall sub_1800F6888(_QWORD); | |
// 1800F688C: using guessed type __int64 __fastcall sub_1800F688C(_QWORD); | |
// 1800F6890: using guessed type __int64 sub_1800F6890(void); | |
// 1800F6894: using guessed type __int64 sub_1800F6894(void); | |
// 1800F6898: using guessed type __int64 __fastcall sub_1800F6898(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
//----- (00000001800C3C68) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800C3C68(_BYTE *a1) | |
{ | |
signed __int64 result; // x0 | |
signed __int64 v2; // x19 | |
__int64 v3; // [xsp+1F0h] [xbp-20h] | |
__int64 v4; // [xsp+1F8h] [xbp-18h] | |
v4 = 5139240511851214385LL; | |
result = sub_1800EBDF4(0LL, a1, &v3); | |
if ( (_DWORD)result ) | |
{ | |
result = sub_1800E33D0(); | |
v2 = result; | |
if ( *(_BYTE *)result ) | |
{ | |
sub_1800EC320(v3, "device-id", *(_DWORD *)(result + 4)); | |
sub_1800EC320(v3, "device-revision", *(unsigned __int8 *)(v2 + 2)); | |
result = sub_1800EC41C(v3, "device-string", *(_QWORD *)(v2 + 8)); | |
} | |
} | |
if ( 5139240511851214385LL != v4 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
//----- (00000001800C49A8) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800C49A8(_BYTE *a1, __int64 a2, int a3) | |
{ | |
int v3; // w19 | |
_BYTE *v4; // x20 | |
_BYTE *v5; // x23 | |
unsigned __int64 v6; // x21 | |
int v7; // w8 | |
_BYTE *v8; // x22 | |
int v9; // t1 | |
unsigned __int64 v10; // x24 | |
_BYTE *v11; // x8 | |
v3 = a3; | |
v4 = (_BYTE *)a2; | |
v5 = a1; | |
v6 = sub_1800F08E8(a2); | |
while ( 1 ) | |
{ | |
v7 = (unsigned __int8)*v5; | |
if ( !*v5 ) | |
break; | |
v8 = v5; | |
while ( (unsigned __int8)v7 == 32 ) | |
{ | |
v9 = (unsigned __int8)(v8++)[1]; | |
v7 = v9; | |
} | |
if ( !(_BYTE)v7 ) | |
break; | |
v10 = 0LL; | |
while ( ((v7 | 0x20) & 0xFF) != 32 ) | |
{ | |
v11 = &v8[v10++]; | |
v7 = (unsigned __int8)v11[1]; | |
} | |
v5 = &v8[v10]; | |
if ( v10 >= v6 && (v3 && !(unsigned int)sub_1800F0900(v8, v4, v6) || !(unsigned int)sub_1800F0900(v8, v4, v10)) ) | |
return 1LL; | |
} | |
return 0LL; | |
} | |
//----- (00000001800C4A74) ---------------------------------------------------- | |
__int64 __fastcall sub_1800C4A74(_QWORD *a1) | |
{ | |
_QWORD *v1; // x19 | |
__int64 result; // x0 | |
__int128 v3; // [xsp+0h] [xbp-30h] | |
__int64 v4; // [xsp+10h] [xbp-20h] | |
__int64 v5; // [xsp+18h] [xbp-18h] | |
v1 = a1; | |
v5 = 5139240511851214385LL; | |
v4 = 0LL; | |
v3 = 0uLL; | |
result = sub_1800F2980((__int64)&v3); | |
v1[7] = (unsigned int)v4; | |
v1[8] = DWORD2(v3); | |
v1[9] = HIDWORD(v3); | |
v1[10] = HIDWORD(v4); | |
v1[5] = v3; | |
v1[6] = 1LL; | |
if ( 5139240511851214385LL != v5 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
//----- (00000001800C4B00) ---------------------------------------------------- | |
unsigned __int64 __fastcall sub_1800C4B00(unsigned __int64 a1) | |
{ | |
unsigned __int64 v1; // x8 | |
unsigned __int64 result; // x0 | |
signed __int64 v3; // x8 | |
signed __int64 v4; // x8 | |
v1 = a1; | |
if ( a1 >= 0xFFFFFFFFFFFFC001LL ) | |
{ | |
v4 = 987LL; | |
goto LABEL_6; | |
} | |
result = qword_1801158C8[2561]; | |
v3 = v1 + 0x3FFF; | |
if ( result > ((v3 | 0x3FFF) ^ 0xFFFFFFFFFFFFC000LL) ) | |
{ | |
v4 = 988LL; | |
LABEL_6: | |
sub_1800D489C("%llx:%d", &byte_180101040, 1512575474412282641LL, v4); | |
} | |
qword_1801158C8[2561] = result + (v3 & 0xFFFFFFFFFFFFC000LL); | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800C4B88) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800C4B88(__int64 a1, _BYTE *a2, _QWORD *a3, _QWORD *a4) | |
{ | |
_QWORD *v4; // x19 | |
_QWORD *v5; // x20 | |
_BYTE *v6; // x21 | |
__int64 v7; // x22 | |
unsigned int v8; // w24 | |
signed __int64 v9; // x23 | |
v4 = a4; | |
v5 = a3; | |
v6 = a2; | |
v7 = a1; | |
v8 = 0; | |
v9 = a1 + 32; | |
while ( 1 ) | |
{ | |
if ( v8 >= *(_DWORD *)(v7 + 16) ) | |
return 0LL; | |
if ( *(_DWORD *)v9 == 25 && !(unsigned int)sub_1800F0770((unsigned __int8 *)(v9 + 8), v6) ) | |
break; | |
v9 += *(unsigned int *)(v9 + 4); | |
++v8; | |
} | |
*v5 = *(_QWORD *)(v9 + 24); | |
*v4 = *(_QWORD *)(v9 + 32); | |
return 1LL; | |
} | |
//----- (00000001800C4C1C) ---------------------------------------------------- | |
__int64 __fastcall sub_1800C4C1C(unsigned int a1) | |
{ | |
__int64 result; // x0 | |
unsigned int v2; // [xsp+4h] [xbp-Ch] | |
__int64 v3; // [xsp+8h] [xbp-8h] | |
v3 = 5139240511851214385LL; | |
sub_1800F0E34(a1, 0x10000, &v2); | |
result = v2; | |
if ( 5139240511851214385LL != v3 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
//----- (00000001800C4C70) ---------------------------------------------------- | |
__int64 __fastcall sub_1800C4C70(__int64 a1) | |
{ | |
__int64 v1; // x29 | |
__int64 v2; // x30 | |
if ( !MEMORY[0x18011A8E0] ) | |
sub_1800D489C("%llx:%d", &byte_180101040, 1512575474412282641LL, 1002LL, v1, v2); | |
return a1 - MEMORY[0x18011A8E0] + MEMORY[0x18011A8E8]; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800C4CC8) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800C4CC8(_BYTE *a1, __int64 a2, __int64 a3) | |
{ | |
__int64 v3; // x20 | |
__int64 v4; // x21 | |
_BYTE *v5; // x19 | |
signed __int64 result; // x0 | |
__int64 v7; // [xsp+0h] [xbp-40h] | |
__int64 v8; // [xsp+8h] [xbp-38h] | |
__int64 v9; // [xsp+10h] [xbp-30h] | |
__int64 v10; // [xsp+18h] [xbp-28h] | |
v3 = a3; | |
v4 = a2; | |
v5 = a1; | |
v10 = 5139240511851214385LL; | |
result = sub_1800EBDF4(0LL, "chosen/memory-map", &v9); | |
if ( (_DWORD)result ) | |
{ | |
v7 = v4; | |
v8 = v3; | |
result = sub_1800EC16C(v9, v5, &v7, 0x10u); | |
} | |
if ( 5139240511851214385LL != v10 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
//----- (00000001800C4D58) ---------------------------------------------------- | |
bool __fastcall sub_1800C4D58(_DWORD *a1) | |
{ | |
return *a1 == -17958193; | |
} | |
//----- (00000001800C4D70) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800C4D70(__int64 a1, __int64 a2, __int64 a3, _QWORD *a4, unsigned __int64 *a5, _QWORD *a6, _QWORD *a7, __int64 a8) | |
{ | |
__int64 v8; // x20 | |
__int64 v9; // x19 | |
__int64 v10; // x27 | |
unsigned __int64 v11; // x25 | |
_DWORD *v12; // x26 | |
int v13; // w21 | |
signed __int64 v14; // x23 | |
unsigned __int64 v15; // x22 | |
__int64 v16; // x9 | |
BOOL v17; // w9 | |
signed __int64 v18; // x24 | |
bool v19; // zf | |
unsigned int v20; // w21 | |
unsigned __int64 v21; // x8 | |
unsigned __int64 *v22; // x22 | |
__int64 v23; // x26 | |
signed __int64 v24; // x27 | |
__int64 v25; // x24 | |
__int64 v26; // ST10_8 | |
__int64 v27; // x10 | |
char *v28; // x0 | |
char *v29; // x8 | |
bool v30; // cf | |
__int64 v31; // x22 | |
unsigned int v32; // w9 | |
unsigned int v33; // w8 | |
__int64 v34; // x10 | |
__int64 v35; // x10 | |
signed __int64 v36; // x8 | |
signed int *v37; // x9 | |
unsigned __int64 v38; // x10 | |
__int64 v39; // t1 | |
__int64 j; // x8 | |
unsigned __int64 v41; // x9 | |
_QWORD *k; // x10 | |
int v43; // w8 | |
unsigned __int64 v44; // x8 | |
unsigned __int64 v45; // x28 | |
char *v46; // x27 | |
unsigned __int64 v47; // x8 | |
unsigned __int64 v48; // x22 | |
unsigned __int64 v49; // x24 | |
char *v50; // x8 | |
bool v51; // cf | |
__int64 v52; // x23 | |
_DWORD *i; // x0 | |
__int64 v54; // x8 | |
signed __int64 v55; // x24 | |
signed __int64 v57; // x8 | |
unsigned __int64 v58; // [xsp+20h] [xbp-80h] | |
_QWORD *v59; // [xsp+28h] [xbp-78h] | |
__int64 v60; // [xsp+30h] [xbp-70h] | |
unsigned __int64 *v61; // [xsp+38h] [xbp-68h] | |
_QWORD *v62; // [xsp+40h] [xbp-60h] | |
_QWORD *v63; // [xsp+48h] [xbp-58h] | |
v9 = a8; | |
v62 = a7; | |
v63 = a6; | |
v60 = a3; | |
v61 = a5; | |
v59 = a4; | |
v10 = a2; | |
v11 = a1; | |
MEMORY[0x18011AA58] = 0LL; | |
MEMORY[0x18011AA50] = 0; | |
v12 = sub_1800C5284(a1); | |
v13 = 0; | |
v14 = -1LL; | |
v15 = -1LL; | |
while ( v12 ) | |
{ | |
if ( (unsigned int)sub_1800F0770((unsigned __int8 *)v12 + 8, "__PAGEZERO") ) | |
{ | |
if ( *((_QWORD *)v12 + 3) < v15 ) | |
v15 = *((_QWORD *)v12 + 3); | |
if ( !*((_QWORD *)v12 + 5) ) | |
{ | |
v16 = *((_QWORD *)v12 + 6); | |
v19 = v16 == 0; | |
v17 = v16 != 0; | |
if ( !v19 ) | |
v8 = *((_QWORD *)v12 + 3); | |
v13 |= v17; | |
} | |
if ( v14 == -1 ) | |
v14 = *((_QWORD *)v12 + 3); | |
} | |
v12 = sub_1800C52C0(v11, (signed __int64)v12); | |
} | |
v18 = 0LL; | |
if ( v14 == -1 ) | |
v19 = 1; | |
else | |
v19 = v15 == -1LL; | |
if ( !v19 && !((v13 ^ 1) & 1) ) | |
{ | |
v20 = 0; | |
v21 = v15 & 0xFFFFFFFFFE000000LL; | |
v22 = v61; | |
*v61 = v21; | |
*v63 = 0LL; | |
v23 = v11 + 32; | |
v58 = v10 + v11; | |
v24 = 0x18011A000uLL; | |
v25 = v60; | |
while ( 1 ) | |
{ | |
if ( v20 >= *(_DWORD *)(v11 + 16) ) | |
{ | |
*v59 = v8 - *v22; | |
if ( v9 ) | |
{ | |
v52 = v8 + v25 - *v22; | |
for ( i = sub_1800C5284(v52); ; i = sub_1800C52C0(v52, v55) ) | |
{ | |
v55 = (signed __int64)i; | |
if ( !i ) | |
break; | |
*((_QWORD *)i + 3) += v9; | |
if ( i[16] ) | |
v54 = (__int64)(i + 18); | |
else | |
v54 = 0LL; | |
while ( v54 ) | |
{ | |
*(_QWORD *)(v54 + 32) += v9; | |
v54 = sub_1800C532C(v55, v54); | |
} | |
} | |
*v62 += v9; | |
*v22 += v9; | |
*v63 += v9; | |
} | |
v18 = 1LL; | |
sub_1800D9E6C(1, 0LL, 0LL); | |
return v18; | |
} | |
v43 = *(_DWORD *)v23; | |
if ( *(_DWORD *)v23 == 2 ) | |
{ | |
if ( v9 ) | |
{ | |
v32 = *(_DWORD *)(v23 + 12); | |
if ( v32 ) | |
{ | |
v33 = 0; | |
v34 = *(unsigned int *)(v23 + 8) + MEMORY[0x18011AA58] - MEMORY[0x18011AA50]; | |
while ( v33 < v32 ) | |
{ | |
if ( *(unsigned __int8 *)(v34 + 16LL * v33 + 4) <= 0x1Fu ) | |
{ | |
*(_QWORD *)(v34 + 16LL * v33 + 8) += v9; | |
v32 = *(_DWORD *)(v23 + 12); | |
} | |
++v33; | |
} | |
} | |
} | |
} | |
else | |
{ | |
switch ( v43 ) | |
{ | |
case 5: | |
*v62 = *(_QWORD *)(v23 + 272); | |
break; | |
case 11: | |
if ( v9 ) | |
{ | |
v35 = *(unsigned int *)(v23 + 76); | |
if ( (_DWORD)v35 ) | |
{ | |
v36 = v14 - *v22 + v25; | |
if ( !v36 || !MEMORY[0x18011AA58] ) | |
return 0LL; | |
v37 = (signed int *)(*(unsigned int *)(v23 + 72) + MEMORY[0x18011AA58] - *(unsigned int *)(v24 + 2640)); | |
v38 = (unsigned __int64)&v37[2 * v35]; | |
while ( (unsigned __int64)v37 < v38 ) | |
{ | |
if ( *((_BYTE *)v37 + 7) != 6 ) | |
return 0LL; | |
v39 = *v37; | |
v37 += 2; | |
*(_QWORD *)(v39 + v36) += v9; | |
} | |
} | |
} | |
break; | |
case 25: | |
v44 = *(_QWORD *)(v23 + 24); | |
if ( v44 < *v22 || *(_QWORD *)(v23 + 32) + v44 < *v22 ) | |
return 0LL; | |
if ( (unsigned int)sub_1800F0770((unsigned __int8 *)(v23 + 8), "__PAGEZERO") ) | |
{ | |
v27 = *(_QWORD *)(v23 + 24); | |
v45 = *(_QWORD *)(v23 + 32); | |
v46 = (char *)(v27 - *v22 + v25); | |
v47 = *(_QWORD *)(v23 + 48); | |
if ( v45 >= v47 ) | |
v48 = *(_QWORD *)(v23 + 48); | |
else | |
v48 = *(_QWORD *)(v23 + 32); | |
if ( v45 >= v45 - v47 ) | |
v49 = v45 - v47; | |
else | |
v49 = *(_QWORD *)(v23 + 32); | |
if ( v48 ) | |
{ | |
v50 = &v46[v48]; | |
if ( &v46[v48] <= v46 ) | |
{ | |
v57 = 298LL; | |
goto LABEL_99; | |
} | |
if ( (unsigned __int64)v50 > v11 ) | |
v51 = (unsigned __int64)v50 >= v58; | |
else | |
v51 = 1; | |
if ( !v51 ) | |
{ | |
v57 = 302LL; | |
goto LABEL_99; | |
} | |
v26 = *(_QWORD *)(v23 + 24); | |
sub_1800F03F0(v46, (_QWORD *)(*(_QWORD *)(v23 + 40) + v11), v48); | |
v27 = v26; | |
} | |
if ( v49 ) | |
{ | |
v28 = &v46[v48]; | |
v29 = &v46[v48 + v49]; | |
if ( v29 <= v46 ) | |
{ | |
v57 = 315LL; | |
LABEL_99: | |
sub_1800D489C("%llx:%d", &byte_180101040, -6497606320753742288LL, v57); | |
} | |
if ( (unsigned __int64)v29 > v11 ) | |
v30 = (unsigned __int64)v29 >= v58; | |
else | |
v30 = 1; | |
if ( !v30 ) | |
{ | |
v57 = 319LL; | |
goto LABEL_99; | |
} | |
v31 = v27; | |
sub_1800F05A0(v28, v49); | |
v27 = v31; | |
} | |
if ( v45 + v27 > *v63 ) | |
*v63 = v45 + v27; | |
v22 = v61; | |
if ( !v9 || MEMORY[0x18011AA58] || (unsigned int)sub_1800F0770((unsigned __int8 *)(v23 + 8), "__LINKEDIT") ) | |
{ | |
v25 = v60; | |
v24 = 6443606016LL; | |
if ( !v23 ) | |
{ | |
LABEL_56: | |
j = 0LL; | |
goto LABEL_62; | |
} | |
} | |
else | |
{ | |
MEMORY[0x18011AA58] = v46; | |
MEMORY[0x18011AA50] = *(_QWORD *)(v23 + 40); | |
v25 = v60; | |
v24 = 0x18011A000uLL; | |
} | |
if ( !*(_DWORD *)(v23 + 64) ) | |
goto LABEL_56; | |
LABEL_62: | |
for ( j = v23 + 72; j; j = sub_1800C532C(v23, j) ) | |
{ | |
if ( *(_BYTE *)(j + 64) == 6 ) | |
{ | |
v41 = *(_QWORD *)(j + 32) - *v61 + v25; | |
for ( k = (_QWORD *)(*(_QWORD *)(j + 32) - *v61 + v25); | |
(unsigned __int64)k < *(_QWORD *)(j + 40) + v41; | |
++k ) | |
{ | |
*k += v9; | |
} | |
} | |
} | |
break; | |
} | |
break; | |
} | |
} | |
v23 += *(unsigned int *)(v23 + 4); | |
++v20; | |
} | |
} | |
return v18; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800C5284) ---------------------------------------------------- | |
_DWORD *__fastcall sub_1800C5284(__int64 a1) | |
{ | |
__int64 v1; // x8 | |
unsigned int v2; // w9 | |
_DWORD *result; // x0 | |
unsigned int v4; // w8 | |
v1 = a1; | |
v2 = 0; | |
result = (_DWORD *)(a1 + 32); | |
v4 = *(_DWORD *)(v1 + 16); | |
while ( v2 < v4 ) | |
{ | |
if ( *result == 25 ) | |
return result; | |
result = (_DWORD *)((char *)result + (unsigned int)result[1]); | |
++v2; | |
} | |
return 0LL; | |
} | |
//----- (00000001800C52C0) ---------------------------------------------------- | |
_DWORD *__fastcall sub_1800C52C0(__int64 a1, signed __int64 a2) | |
{ | |
signed __int64 v2; // x10 | |
unsigned int v3; // w8 | |
unsigned int v4; // w9 | |
_DWORD *result; // x0 | |
v2 = a1 + 32; | |
v3 = *(_DWORD *)(a1 + 16); | |
v4 = 1; | |
while ( v2 != a2 ) | |
{ | |
if ( v4 - 1 >= v3 ) | |
{ | |
a2 = v2; | |
break; | |
} | |
v2 += *(unsigned int *)(v2 + 4); | |
++v4; | |
} | |
result = (_DWORD *)(*(unsigned int *)(a2 + 4) + v2); | |
while ( v4 < v3 ) | |
{ | |
if ( *result == 25 ) | |
return result; | |
result = (_DWORD *)((char *)result + (unsigned int)result[1]); | |
++v4; | |
} | |
return 0LL; | |
} | |
//----- (00000001800C532C) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800C532C(__int64 a1, __int64 a2) | |
{ | |
unsigned int v2; // w8 | |
__int64 v3; // x9 | |
bool v4; // zf | |
signed __int64 result; // x0 | |
if ( a1 ) | |
{ | |
v2 = *(_DWORD *)(a1 + 64); | |
v3 = a1 + 72; | |
v4 = v2 == 0; | |
if ( !v2 ) | |
v2 = 0; | |
if ( v4 ) | |
v3 = 0LL; | |
} | |
else | |
{ | |
v3 = 0LL; | |
v2 = MEMORY[0x40]; | |
} | |
if ( (a2 - v3) / 80 + 1 >= (unsigned __int64)v2 ) | |
result = 0LL; | |
else | |
result = a2 + 80; | |
return result; | |
} | |
//----- (00000001800C5374) ---------------------------------------------------- | |
__int64 __fastcall sub_1800C5374(__int64 result, __int64 a2) | |
{ | |
_WriteStatusReg(ARM64_SYSREG(3, 0, 15, 5, 0), _ReadStatusReg(ARM64_SYSREG(3, 0, 15, 5, 0)) & 0xFFFFCFFFFFFFFFFFLL); | |
__isb(0xFu); | |
_WriteStatusReg( | |
ARM64_SYSREG(3, 0, 15, 5, 0), | |
_ReadStatusReg(ARM64_SYSREG(3, 0, 15, 5, 0)) & 0xFFFFFFFFFFFF3FFFLL | 0x8000); | |
_WriteStatusReg(ARM64_SYSREG(3, 0, 15, 5, 0), _ReadStatusReg(ARM64_SYSREG(3, 0, 15, 5, 0)) | 0x200000000000000LL); | |
_WriteStatusReg(ARM64_SYSREG(3, 0, 15, 11, 0), _ReadStatusReg(ARM64_SYSREG(3, 0, 15, 11, 0)) | 0x800000); | |
_WriteStatusReg(ARM64_SYSREG(3, 0, 15, 1, 0), _ReadStatusReg(ARM64_SYSREG(3, 0, 15, 1, 0)) | 0x100000000000LL); | |
if ( a2 != result ) | |
{ | |
_WriteStatusReg(ARM64_SYSREG(3, 3, 15, 7, 0), _ReadStatusReg(ARM64_SYSREG(3, 3, 15, 7, 0)) | 2); | |
while ( !(_ReadStatusReg(ARM64_SYSREG(3, 3, 15, 7, 0)) & 0x8000000000000000LL) ) | |
; | |
} | |
return result; | |
} | |
//----- (00000001800C53DC) ---------------------------------------------------- | |
__int64 sub_1800C53DC() | |
{ | |
__int64 v0; // x0 | |
__int64 v1; // x0 | |
__int64 v2; // x0 | |
__int64 v3; // x1 | |
__int64 v4; // x2 | |
__int64 v5; // x3 | |
__int64 v6; // x4 | |
__int64 v7; // x5 | |
__int64 v8; // x6 | |
__int64 v9; // x7 | |
signed __int64 v11; // x8 | |
if ( !(unsigned int)sub_1800C85FC() || !(MEMORY[0x2102D0010] & 1) ) | |
{ | |
v11 = 125LL; | |
goto LABEL_12; | |
} | |
v0 = sub_1800C84F0(); | |
if ( (_DWORD)v0 ) | |
{ | |
v0 = sub_1800C8678(); | |
if ( !(v0 & 1) ) | |
{ | |
v11 = 130LL; | |
LABEL_12: | |
sub_1800D489C("%llx:%d", &byte_180101040, -2937835284574947571LL, v11); | |
} | |
} | |
MEMORY[0x2102D0014] = 2147483648; | |
sub_1800D9F80(v0); | |
if ( MEMORY[0x2102D0014] != 2147483648 ) | |
{ | |
v11 = 137LL; | |
goto LABEL_12; | |
} | |
sub_1800B5F70(); | |
sub_1800D3B48(); | |
sub_1800D21C0(); | |
v1 = sub_1800D2CC0(); | |
((void (__fastcall *)(__int64))loc_1800B5534)(v1); | |
sub_1800E10FC(); | |
sub_1800B5CEC(); | |
sub_1800E4BB4((__int64)qword_180104FA0); | |
v2 = sub_1800D47DC(3LL); | |
if ( (unsigned int)sub_1800F688C(v2) <= 0x10 ) | |
sub_1800E0628((__int64)"(called by %s at %s:%d)\n", v3, v4, v5, v6, v7, v8, v9); | |
sub_1800E20F0(5LL, 31, (__int64)qword_180114600); | |
sub_1800C5534(); | |
sub_1800B1DF4(); | |
sub_1800B1EDC(16); | |
sub_1800BC278(1u, (_BYTE *)0x18011AA60LL); | |
sub_1800D47DC(MEMORY[0x18011AA60]); | |
sub_1800D623C(); | |
return 0LL; | |
} | |
// 1800D9F80: using guessed type __int64 __fastcall sub_1800D9F80(_QWORD); | |
// 1800F688C: using guessed type __int64 __fastcall sub_1800F688C(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
// 180104FA0: using guessed type __int64 qword_180104FA0[16]; | |
// 180114600: using guessed type __int64 qword_180114600[19]; | |
//----- (00000001800C5534) ---------------------------------------------------- | |
__int64 sub_1800C5534() | |
{ | |
sub_1800D83EC(); | |
sub_1800D8410(); | |
return 0LL; | |
} | |
//----- (00000001800C5550) ---------------------------------------------------- | |
__int64 __fastcall sub_1800C5550(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
int v8; // w0 | |
signed __int64 v9; // x0 | |
sub_1800ED05C("secure-boot", 1LL, 0, a4, a5, a6, a7, a8); | |
v8 = sub_1800ECBB8("debug-soc", 0LL); | |
sub_1800D39CC(7LL, v8); | |
sub_1800D7624(); | |
sub_1800D88B8(); | |
sub_1800D63A4(); | |
v9 = sub_1800BB34C(); | |
nullsub_6(v9); | |
return 0LL; | |
} | |
// 1800B5FBC: using guessed type __int64 __fastcall nullsub_6(_QWORD); | |
//----- (00000001800C55A8) ---------------------------------------------------- | |
__int64 sub_1800C55A8() | |
{ | |
sub_1800D2DF4(); | |
return 0LL; | |
} | |
//----- (00000001800C55C4) ---------------------------------------------------- | |
void sub_1800C55C4() | |
{ | |
MEMORY[0x20E0B8000] |= 0x20u; | |
} | |
//----- (00000001800C55E0) ---------------------------------------------------- | |
__int64 sub_1800C55E0() | |
{ | |
return (MEMORY[0x20E0B8000] >> 5) & 1; | |
} | |
//----- (00000001800C55F8) ---------------------------------------------------- | |
signed __int64 sub_1800C55F8() | |
{ | |
signed __int64 result; // x0 | |
if ( MEMORY[0x20E0B8000] & 0x80 ) | |
return 1LL; | |
result = 0LL; | |
MEMORY[0x20E0B8000] |= 0x80u; | |
return result; | |
} | |
//----- (00000001800C5624) ---------------------------------------------------- | |
__int64 sub_1800C5624() | |
{ | |
__int64 result; // x0 | |
result = MEMORY[0x2102B8020] & 1; | |
MEMORY[0x2102B8020] &= 0xFFFFFFFE; | |
return result; | |
} | |
//----- (00000001800C5648) ---------------------------------------------------- | |
__int64 sub_1800C5648() | |
{ | |
int v0; // ST1C_4 | |
int v1; // w19 | |
int v2; // w19 | |
int v3; // ST18_4 | |
int v5; // [xsp+20h] [xbp-20h] | |
if ( !(MEMORY[0x20E0B8000] & 1) ) | |
{ | |
sub_1800B7F70(5127LL, 0); | |
sub_1800B7F70(6404LL, 0); | |
sub_1800B7F70(6407LL, 0); | |
sub_1800B8090(5127LL, -1); | |
sub_1800B8090(6404LL, -1); | |
sub_1800B8090(6407LL, -1); | |
sub_1800D2CBC(100LL); | |
v5 = sub_1800C856C(); | |
if ( !(sub_1800B81DC() & 1) ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -2937835284574947571LL, 1851LL); | |
v0 = MEMORY[0x2102D0020] & 0x1F; | |
v1 = sub_1800B7D30(6407LL); | |
v2 = 2 * (unsigned __int64)sub_1800B7D30(6404LL) | 4 * v1; | |
v3 = v2 | (unsigned __int64)sub_1800B7D30(5127LL); | |
sub_1800B7F70(5127LL, 4); | |
sub_1800B7F70(6404LL, 4); | |
sub_1800B7F70(6407LL, 4); | |
MEMORY[0x20E0B8000] = MEMORY[0x20E0B8000] & 0xFF000000 | (((v0 | 32 * v5) << 16) | (v3 << 8) | 1) & 0xFFFFFF; | |
} | |
sub_1800B813C(); | |
return 0LL; | |
} | |
// 1800D2CBC: using guessed type __int64 __fastcall sub_1800D2CBC(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800C57D4) ---------------------------------------------------- | |
__int64 sub_1800C57D4() | |
{ | |
sub_1800D21B8(); | |
return 0LL; | |
} | |
//----- (00000001800C57EC) ---------------------------------------------------- | |
void __fastcall sub_1800C57EC(__int64 a1, void *a2, void *a3, void *a4, void *a5, void *a6, void *a7) | |
{ | |
signed __int64 v7; // x0 | |
if ( !(a1 & 1) ) | |
a1 = sub_1800D21D8(0); | |
v7 = linux_eabi_syscall(-2937835284574947571LL, (void *)a1, a2, a3, a4, a5, a6, a7); | |
if ( !MEMORY[0x1801280CC] ) | |
{ | |
MEMORY[0x1801280CC] = 1; | |
MEMORY[0x180116018] = 1; | |
if ( !LOBYTE(qword_1801158C8[9472]) ) | |
{ | |
LOBYTE(qword_1801158C8[9472]) = 1; | |
sub_1800C58E4(); | |
sub_1800B162C(); | |
sub_1800B165C(); | |
sub_1800B162C(); | |
sub_1800B162C(); | |
sub_1800DA754(); | |
sub_1800D528C(); | |
} | |
} | |
sub_1800D489C("%llx:%d", &byte_180101040, -2937835284574947571LL, 337LL); | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800C58E4) ---------------------------------------------------- | |
unsigned __int64 sub_1800C58E4() | |
{ | |
__int64 v0; // x29 | |
__int64 v1; // x30 | |
if ( !(MEMORY[0x20E0B8000] & 4) || !((MEMORY[0x20E0B8024] << 10 >> 21) & 0x1F) ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -2937835284574947571LL, 1464LL, v0, v1); | |
return (unsigned __int64)((MEMORY[0x20E0B8024] << 10) & 0x3FFFC00) << 10; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800C5950) ---------------------------------------------------- | |
__int64 __fastcall sub_1800C5950(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
unsigned int v8; // w0 | |
if ( !(MEMORY[0x18011AA69] & 1) | |
&& ((sub_1800E314C(a1, a2, a3, a4, a5, a6, a7, a8), qword_1801158C8[2612] & 1) | |
|| (sub_1800C59D0(), sub_1800D39CC(75LL, 1), (unsigned int)sub_1800E17B8())) ) | |
{ | |
v8 = 0; | |
LOBYTE(qword_1801158C8[2612]) = 1; | |
} | |
else | |
{ | |
MEMORY[0x18011AA69] = 1; | |
v8 = (unsigned __int64)sub_1800ECB8C("backlight-level", (void *)0xFFFFFFFFLL); | |
} | |
sub_1800D99E0(v8); | |
return 0LL; | |
} | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800C59D0) ---------------------------------------------------- | |
__int64 sub_1800C59D0() | |
{ | |
sub_1800D99E0(0); | |
sub_1800D39CC(75LL, 1); | |
if ( (unsigned int)sub_1800E1F34(1) == 6 ) | |
sub_1800D39CC(75LL, 0); | |
MEMORY[0x18011AA69] = 0; | |
return 0LL; | |
} | |
//----- (00000001800C5A20) ---------------------------------------------------- | |
signed __int64 sub_1800C5A20() | |
{ | |
__int64 v0; // x22 | |
__int64 v1; // x3 | |
__int64 v2; // x4 | |
__int64 v3; // x5 | |
__int64 v4; // x6 | |
__int64 v5; // x7 | |
signed __int64 v6; // x0 | |
__int64 v7; // x21 | |
signed __int64 v8; // x0 | |
signed __int64 v9; // x22 | |
__int64 v10; // x0 | |
signed __int64 result; // x0 | |
__int64 v12; // [xsp+10h] [xbp-30h] | |
__int64 v13; // [xsp+18h] [xbp-28h] | |
sub_1800E3A20(); | |
v10 = sub_1800D9FD0(); | |
sub_1800C7864(v10); | |
result = sub_1800C787C(0LL); | |
if ( (_DWORD)result ) | |
{ | |
v0 = sub_1800B5BA8(0); | |
v13 = 5139240511851214385LL; | |
sub_1800EF260((__int64)"%llx:%d\n", v0, 0LL, v1, v2, v3, v4, v5, 8415054965657969967LL); | |
v6 = sub_1800BCD80(0); | |
v7 = v6; | |
*(_DWORD *)(v6 + 180) = 0; | |
sub_1800F0E34(0x300u, 458752, &v12); | |
MEMORY[0x18011A718] = v12; | |
v8 = sub_1800BCDD4((_QWORD *)v7, v0); | |
v9 = v8; | |
if ( (_DWORD)v8 | |
|| (*(_DWORD *)(v7 + 220) = 0, | |
*(_BYTE *)(v7 + 176) = 1, | |
sub_1800BCF38(v7, 0, 0), | |
v9 = sub_1800BD078(v7, 1), | |
(_DWORD)v9) ) | |
{ | |
sub_1800BD9B0(0); | |
} | |
else | |
{ | |
sub_1800BEAB0(0LL); | |
} | |
if ( 5139240511851214385LL != v13 ) | |
sub_1800D4A5C(); | |
result = v9; | |
} | |
return result; | |
} | |
// 1800E3A20: using guessed type __int64 sub_1800E3A20(void); | |
//----- (00000001800C5A64) ---------------------------------------------------- | |
signed __int64 sub_1800C5A64() | |
{ | |
signed __int64 v0; // x21 | |
__int64 v1; // x1 | |
__int64 v2; // x2 | |
__int64 v3; // x3 | |
__int64 v4; // x4 | |
__int64 v5; // x5 | |
__int64 v6; // x6 | |
__int64 v7; // x7 | |
__int64 v8; // x1 | |
__int64 v9; // x2 | |
__int64 v10; // x3 | |
__int64 v11; // x4 | |
__int64 v12; // x5 | |
__int64 v13; // x6 | |
__int64 v14; // x7 | |
signed __int64 result; // x0 | |
__int64 v16; // x0 | |
__int64 v17; // x19 | |
v16 = sub_1800BCD80(0); | |
v17 = v16; | |
if ( !*(_BYTE *)(v16 + 178) ) | |
return 4294959296LL; | |
result = sub_1800BDE28(v16); | |
if ( !(_DWORD)result ) | |
{ | |
if ( *(_BYTE *)(v17 + 179) == 3 ) | |
{ | |
v0 = 0LL; | |
} | |
else | |
{ | |
v0 = sub_1800BDAB8(v17); | |
if ( !(_DWORD)v0 ) | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v1, v2, v3, v4, v5, v6, v7, 8415054965657969967LL); | |
v0 = sub_1800BD078(v17, 3); | |
if ( !(_DWORD)v0 ) | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v8, v9, v10, v11, v12, v13, v14, 8415054965657969967LL); | |
v0 = 0LL; | |
} | |
} | |
sub_1800BE038(v17, v0); | |
} | |
result = v0; | |
} | |
return result; | |
} | |
// 1800C5A64: could not find valid save-restore pair for x19 | |
// 1800C5A64: could not find valid save-restore pair for x20 | |
//----- (00000001800C5A6C) ---------------------------------------------------- | |
signed __int64 sub_1800C5A6C() | |
{ | |
__int64 v0; // x0 | |
signed __int64 result; // x0 | |
v0 = sub_1800BCD80(0); | |
if ( !*(_BYTE *)(v0 + 178) ) | |
return 4294959296LL; | |
result = sub_1800BDE28(v0); | |
if ( !(_DWORD)result ) | |
JUMPOUT(&loc_1800BE748); | |
return result; | |
} | |
//----- (00000001800C5A74) ---------------------------------------------------- | |
__int64 __fastcall sub_1800C5A74(int a1) | |
{ | |
int v1; // w19 | |
int v2; // w0 | |
unsigned __int64 v3; // x0 | |
__int64 result; // x0 | |
unsigned __int64 v5; // x0 | |
__int64 v6; // x1 | |
__int64 v7; // x2 | |
__int64 v8; // x3 | |
__int64 v9; // x4 | |
__int64 v10; // x5 | |
__int64 v11; // x6 | |
__int64 v12; // x7 | |
v1 = a1; | |
nullsub_13(); | |
sub_1800D7790(); | |
sub_1800BDD34(); | |
sub_1800B5A04(); | |
switch ( v1 ) | |
{ | |
case 1: | |
goto LABEL_5; | |
case 2: | |
case 3: | |
v2 = 47; | |
goto LABEL_4; | |
case 4: | |
case 6: | |
sub_1800D489C("%llx:%d", &byte_180101040, -2937835284574947571LL, 472LL); | |
return result; | |
case 5: | |
sub_1800B1EDC(47); | |
v5 = sub_1800E1118(); | |
((void (__fastcall *)(unsigned __int64))loc_1800B55B0)(v5); | |
sub_1800D47F0(3, v6, v7, v8, v9, v10, v11, v12); | |
sub_1800D3684(); | |
break; | |
default: | |
v2 = 0; | |
LABEL_4: | |
sub_1800B1EDC(v2); | |
LABEL_5: | |
v3 = sub_1800E1118(); | |
((void (__fastcall *)(unsigned __int64))loc_1800B55B0)(v3); | |
break; | |
} | |
return 0LL; | |
} | |
// 1800D6568: using guessed type __int64 nullsub_13(void); | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800C5B48) ---------------------------------------------------- | |
__int64 __fastcall sub_1800C5B48(int a1) | |
{ | |
int v1; // w19 | |
char v2; // w8 | |
__int64 v3; // x20 | |
__int64 v4; // x21 | |
char v5; // w22 | |
char v6; // w23 | |
signed __int64 v7; // x0 | |
_QWORD *v8; // x24 | |
__int64 v9; // x0 | |
signed int v10; // w21 | |
unsigned int v11; // w22 | |
BOOL v12; // w20 | |
BOOL v13; // w0 | |
__int64 v14; // x8 | |
int v15; // w1 | |
signed __int64 v17; // x8 | |
v1 = a1; | |
if ( a1 != 2 ) | |
sub_1800D368C(0); | |
sub_1800D6570(); | |
if ( v1 != 3 || (v2 = qword_1801158C8[2611], !(qword_1801158C8[2611] & 0x80)) ) | |
{ | |
switch ( v1 ) | |
{ | |
case 0: | |
sub_1800D4FC8(0); | |
goto LABEL_17; | |
case 2: | |
LABEL_17: | |
sub_1800C59D0(); | |
goto LABEL_19; | |
case 3: | |
goto LABEL_6; | |
case 4: | |
v17 = 565LL; | |
break; | |
case 5: | |
sub_1800D4FC8(0); | |
sub_1800BAC60(5); | |
sub_1800C70F0(5LL); | |
sub_1800F68EC(5LL); | |
sub_1800C59D0(); | |
sub_1800B1F18(); | |
LABEL_19: | |
v11 = 0; | |
v10 = 0; | |
goto LABEL_20; | |
default: | |
v17 = 615LL; | |
break; | |
} | |
LABEL_38: | |
sub_1800D489C("%llx:%d", &byte_180101040, -2937835284574947571LL, v17); | |
} | |
LOBYTE(qword_1801158C8[2611]) = v2 & 0x7F; | |
sub_1800BC320(1u, v2 & 0x7F); | |
LABEL_6: | |
v3 = sub_1800D5104(); | |
v4 = sub_1800D5158(); | |
v5 = sub_1800B060C(); | |
v6 = sub_1800B060C(); | |
if ( sub_1800D9FD0() ) | |
sub_1800B7E1C(5125LL, 1); | |
if ( (unsigned int)sub_1800F36F0() ) | |
{ | |
v17 = 1910LL; | |
goto LABEL_38; | |
} | |
v7 = sub_1800E086C(2); | |
v8 = (_QWORD *)v7; | |
sub_1800D9E6C(3, *(_QWORD *)v7, *(_QWORD *)(v7 + 8)); | |
MEMORY[0x200000480] = *v8 >> 12; | |
MEMORY[0x200000484] = (unsigned __int64)(*v8 + v8[1] + 0xFFFFFFFFFFFLL) >> 12; | |
MEMORY[0x200000490] = 1; | |
sub_1800D9F80(v9); | |
if ( !(MEMORY[0x200000490] & 1) ) | |
{ | |
v17 = 1930LL; | |
goto LABEL_38; | |
} | |
if ( v3 ) | |
{ | |
MEMORY[0x2000007E4] = (unsigned __int64)(v3 - 0x800000000LL) >> v5; | |
MEMORY[0x2000007E8] = (unsigned __int64)(v4 - 34359738369LL) >> v6; | |
} | |
sub_1800B5E64(MEMORY[0x180115FF8] & 0xFFFFFFFFFFFFF000LL); | |
sub_1800D4FC8(0); | |
sub_1800BAC60(3); | |
sub_1800C70F0(3LL); | |
sub_1800F68EC(3LL); | |
if ( SLOBYTE(qword_1801158C8[2611]) & 0x80000000 ) | |
sub_1800B5800(); | |
v10 = -2; | |
v11 = -3; | |
LABEL_20: | |
if ( (unsigned int)sub_1800D4F30() ) | |
sub_1800C8614(1LL); | |
v12 = sub_1800D4D84(0x40000); | |
v13 = sub_1800D4D84(0x80000); | |
if ( v12 ) | |
v14 = v11; | |
else | |
v14 = 1LL; | |
if ( v13 ) | |
v15 = v10; | |
else | |
v15 = 1; | |
sub_1800C5E08(v14, v15); | |
if ( !(MEMORY[0x2102D4020] & 0x10000) ) | |
{ | |
v17 = 635LL; | |
goto LABEL_38; | |
} | |
if ( v1 != 2 && !(MEMORY[0x2102D4044] & 0x10000) ) | |
{ | |
v17 = 642LL; | |
goto LABEL_38; | |
} | |
sub_1800B5FA0(); | |
return 0LL; | |
} | |
// 1800D9F80: using guessed type __int64 __fastcall sub_1800D9F80(_QWORD); | |
// 1800F68EC: using guessed type __int64 __fastcall sub_1800F68EC(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800C5E08) ---------------------------------------------------- | |
__int64 __fastcall sub_1800C5E08(__int64 result, int a2) | |
{ | |
int v2; // w19 | |
if ( a2 | (unsigned int)result ) | |
{ | |
v2 = a2 & 1 | 2 * (result & 3); | |
MEMORY[0x2102D0000] = a2 & 1 | 2 * (result & 3); | |
result = sub_1800D9F80(result); | |
if ( v2 & ~MEMORY[0x2102D0000] ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -2937835284574947571LL, 1427LL); | |
} | |
return result; | |
} | |
// 1800D9F80: using guessed type __int64 __fastcall sub_1800D9F80(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800C5E80) ---------------------------------------------------- | |
__int64 sub_1800C5E80() | |
{ | |
return (unsigned __int16)(MEMORY[0x2102D4020] >> 16); | |
} | |
//----- (00000001800C5E98) ---------------------------------------------------- | |
__int64 sub_1800C5E98() | |
{ | |
return (unsigned __int16)(MEMORY[0x2102D4044] >> 16); | |
} | |
//----- (00000001800C5EB0) ---------------------------------------------------- | |
void __fastcall sub_1800C5EB0(int a1) | |
{ | |
if ( a1 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -2937835284574947571LL, 664LL); | |
sub_1800B162C(); | |
sub_1800B162C(); | |
sub_1800B165C(); | |
sub_1800B165C(); | |
sub_1800B162C(); | |
sub_1800B1644(); | |
MEMORY[0x202050048] &= 0xFFFFFFFFFDFFFFFFLL; | |
MEMORY[0x202051818] &= 0xFFFFFFFFFDFFFFFFLL; | |
sub_1800B1674(); | |
sub_1800B1674(); | |
sub_1800B1674(); | |
sub_1800B1674(); | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800C5FF8) ---------------------------------------------------- | |
__int64 sub_1800C5FF8() | |
{ | |
sub_1800D2088(); | |
sub_1800D63C4(); | |
return 0LL; | |
} | |
//----- (00000001800C6014) ---------------------------------------------------- | |
__int64 sub_1800C6014() | |
{ | |
sub_1800D7778(); | |
sub_1800F68F0(); | |
return 0LL; | |
} | |
//----- (00000001800C6030) ---------------------------------------------------- | |
void __noreturn sub_1800C6030() | |
{ | |
sub_1800C59D0(); | |
sub_1800BDD34(); | |
sub_1800B5A04(); | |
nullsub_14(); | |
sub_1800B1EDC(0); | |
sub_1800D9274(); | |
} | |
// 1800D656C: using guessed type __int64 nullsub_14(void); | |
//----- (00000001800C605C) ---------------------------------------------------- | |
signed __int64 sub_1800C605C() | |
{ | |
sub_1800ECE44("boot-device", (__int64)"nvme_nand0", 0); | |
sub_1800ECE44("display-color-space", (__int64)"ARGB8101010", 0); | |
sub_1800ECE44("display-timing", (__int64)"D640", 0); | |
sub_1800ECE44("adbe-tunables", (__int64)"D640", 0); | |
return sub_1800ECE44("adfe-tunables", (__int64)"D640", 0); | |
} | |
//----- (00000001800C6084) ---------------------------------------------------- | |
__int64 sub_1800C6084() | |
{ | |
int v0; // w0 | |
signed __int64 v1; // x0 | |
int v2; // w0 | |
unsigned __int8 v3; // w0 | |
_QWORD *v4; // x19 | |
unsigned __int8 v5; // w0 | |
unsigned int *v6; // x20 | |
_QWORD *v7; // x21 | |
_QWORD *v8; // x0 | |
__int64 *v9; // x0 | |
__int64 v10; // x19 | |
__int64 v11; // x20 | |
__int64 *v12; // x9 | |
signed __int64 v13; // x11 | |
signed __int64 v14; // x12 | |
__int64 v15; // x13 | |
__int64 result; // x0 | |
signed __int64 v17; // x8 | |
__int64 v18; // [xsp+10h] [xbp-50h] | |
_QWORD *v19; // [xsp+18h] [xbp-48h] | |
const char *v20; // [xsp+20h] [xbp-40h] | |
unsigned int v21; // [xsp+2Ch] [xbp-34h] | |
__int64 v22; // [xsp+30h] [xbp-30h] | |
__int64 v23; // [xsp+38h] [xbp-28h] | |
v23 = 5139240511851214385LL; | |
if ( (unsigned int)sub_1800EBDF4(0LL, "cpus/cpu0", &v22) ) | |
{ | |
v20 = "clock-frequency"; | |
if ( (unsigned int)sub_1800EBFC8(v22, (_BYTE **)&v20, &v19, &v21) ) | |
{ | |
v18 = (unsigned int)sub_1800D389C(0); | |
sub_1800F03F0(v19, &v18, v21); | |
} | |
v20 = "memory-frequency"; | |
if ( (unsigned int)sub_1800EBFC8(v22, (_BYTE **)&v20, &v19, &v21) ) | |
{ | |
v18 = (unsigned int)sub_1800D389C(2); | |
sub_1800F03F0(v19, &v18, v21); | |
} | |
v20 = "bus-frequency"; | |
if ( (unsigned int)sub_1800EBFC8(v22, (_BYTE **)&v20, &v19, &v21) ) | |
{ | |
v18 = (unsigned int)sub_1800D389C(3); | |
sub_1800F03F0(v19, &v18, v21); | |
} | |
v20 = "peripheral-frequency"; | |
if ( (unsigned int)sub_1800EBFC8(v22, (_BYTE **)&v20, &v19, &v21) ) | |
{ | |
v18 = (unsigned int)sub_1800D389C(1); | |
sub_1800F03F0(v19, &v18, v21); | |
} | |
v20 = "fixed-frequency"; | |
if ( (unsigned int)sub_1800EBFC8(v22, (_BYTE **)&v20, &v19, &v21) ) | |
{ | |
v18 = (unsigned int)sub_1800D389C(4); | |
sub_1800F03F0(v19, &v18, v21); | |
} | |
v20 = "timebase-frequency"; | |
if ( (unsigned int)sub_1800EBFC8(v22, (_BYTE **)&v20, &v19, &v21) ) | |
{ | |
v18 = (unsigned int)sub_1800D389C(5); | |
sub_1800F03F0(v19, &v18, v21); | |
} | |
} | |
if ( (unsigned int)sub_1800EBDF4(0LL, "arm-io", &v22) ) | |
{ | |
v20 = "clock-frequencies"; | |
if ( (unsigned int)sub_1800EBFC8(v22, (_BYTE **)&v20, &v19, &v21) ) | |
sub_1800D386C(v19, v21 >> 2); | |
v20 = "usbphy-frequency"; | |
if ( (unsigned int)sub_1800EBFC8(v22, (_BYTE **)&v20, &v19, &v21) ) | |
*(_DWORD *)v19 = sub_1800D389C(113); | |
} | |
if ( (unsigned int)sub_1800EBDF4(0LL, "arm-io/mcc", &v22) ) | |
{ | |
v20 = "dcs_num_channels"; | |
if ( (unsigned int)sub_1800EBFC8(v22, (_BYTE **)&v20, &v19, &v21) ) | |
*(_DWORD *)v19 = 4; | |
} | |
sub_1800D2BE0("arm-io/pmgr"); | |
v0 = sub_1800C85A4(); | |
sub_1800B9C08(v0, 0); | |
sub_1800B91E0("arm-io/pmgr", "arm-io/sgx"); | |
if ( (unsigned int)sub_1800EBDF4(0LL, "arm-io/pmgr", &v22) ) | |
{ | |
v20 = "pmp"; | |
if ( (unsigned int)sub_1800EBFC8(v22, (_BYTE **)&v20, &v19, &v21) ) | |
{ | |
if ( *(_DWORD *)v19 ) | |
sub_1800D39CC(84LL, 1); | |
} | |
} | |
if ( (unsigned int)sub_1800EBDF4(0LL, "arm-io/audio-complex", &v22) ) | |
{ | |
v20 = "ncoref-frequency"; | |
if ( (unsigned int)sub_1800EBFC8(v22, (_BYTE **)&v20, &v19, &v21) ) | |
*(_DWORD *)v19 = sub_1800D389C(114); | |
} | |
if ( (unsigned int)sub_1800EBDF4(0LL, "arm-io/isp", &v22) ) | |
{ | |
v20 = "lpdprx_phy_efuse"; | |
sub_1800EC320(v22, "lpdprx_phy_efuse", (MEMORY[0x2102BC010] >> 5) & 0xF); | |
} | |
if ( (unsigned int)sub_1800EBDF4(0LL, "arm-io/apcie", &v22) ) | |
sub_1800C81C0(v22); | |
if ( (unsigned int)sub_1800EBDF4(0LL, "arm-io", &v22) ) | |
{ | |
v20 = "chip-revision"; | |
v1 = sub_1800EBFC8(v22, (_BYTE **)&v20, &v19, &v21); | |
if ( (_DWORD)v1 ) | |
{ | |
v2 = sub_1800F688C(v1); | |
*(_DWORD *)v19 = v2; | |
} | |
} | |
if ( (unsigned int)sub_1800EBDF4(0LL, "arm-io/otgphyctrl", &v22) ) | |
nullsub_5(v22); | |
if ( (unsigned int)sub_1800EBDF4(0LL, "arm-io/nvme-mmu0", &v22) ) | |
{ | |
v20 = "sart-region"; | |
v3 = sub_1800EBFC8(v22, (_BYTE **)&v20, &v19, &v21); | |
v4 = v3 & (v21 == 16) ? v19 : 0LL; | |
v20 = "sart-virtual-base"; | |
v5 = sub_1800EBFC8(v22, (_BYTE **)&v20, &v19, &v21); | |
v6 = (unsigned int *)(v5 & (v21 == 4) ? v19 : 0LL); | |
if ( (unsigned int)sub_1800EBDF4(0LL, "arm-io/apcie/pci-bridge0", &v18) ) | |
{ | |
if ( (unsigned int)sub_1800EBDF4(v18, "s3e", &v22) ) | |
{ | |
sub_1800BE3D4(0, v18); | |
v20 = "nvme-scratch-virt-region"; | |
if ( (unsigned int)sub_1800EBFC8(v22, (_BYTE **)&v20, &v19, &v21) ) | |
{ | |
if ( v21 == 16 ) | |
{ | |
if ( v4 ) | |
{ | |
if ( v6 ) | |
{ | |
v7 = v19; | |
if ( v19 ) | |
{ | |
v8 = (_QWORD *)sub_1800E086C(0); | |
*v4 = *v8; | |
v4[1] = v8[1]; | |
*v7 = *v6; | |
v7[1] = v4[1]; | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
if ( (unsigned int)sub_1800EBDF4(0LL, "arm-io/aop", &v22) ) | |
{ | |
v9 = (__int64 *)sub_1800E086C(15); | |
v11 = *v9; | |
v10 = v9[1]; | |
if ( (unsigned int)sub_1800EC0DC(v22, "reg", &v19, &v21) ) | |
{ | |
v12 = v19; | |
v13 = -1LL; | |
do | |
{ | |
if ( ++v13 >= (unsigned __int64)(v21 >> 4) ) | |
goto LABEL_62; | |
v14 = (signed __int64)(v12 + 2); | |
v15 = *v12; | |
v12 += 2; | |
} | |
while ( v15 != v11 - 0x200000000LL ); | |
*(_QWORD *)(v14 - 8) = v10; | |
if ( sub_1800EBDF4(v22, "iop-aop-nub", &v22) & 1 ) | |
{ | |
sub_1800EC3C8(v22, "region-base", v11); | |
sub_1800EC3C8(v22, "region-size", v10); | |
goto LABEL_60; | |
} | |
v17 = 1010LL; | |
} | |
else | |
{ | |
LABEL_62: | |
v17 = 1004LL; | |
} | |
sub_1800D489C("%llx:%d", &byte_180101040, -2937835284574947571LL, v17); | |
} | |
LABEL_60: | |
result = sub_1800D66D4(); | |
if ( 5139240511851214385LL != v23 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 1800B5E24: using guessed type __int64 __fastcall nullsub_5(_QWORD); | |
// 1800F688C: using guessed type __int64 __fastcall sub_1800F688C(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
//----- (00000001800C6708) ---------------------------------------------------- | |
__int64 sub_1800C6708() | |
{ | |
__int64 result; // x0 | |
unsigned int v1; // [xsp+14h] [xbp-Ch] | |
__int64 v2; // [xsp+18h] [xbp-8h] | |
v2 = 5139240511851214385LL; | |
if ( (unsigned int)sub_1800BB444((__int64)&v1, 4u) ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -2937835284574947571LL, 1078LL); | |
result = v1; | |
if ( 5139240511851214385LL != v2 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800C678C) ---------------------------------------------------- | |
__int64 sub_1800C678C() | |
{ | |
return (MEMORY[0x20E0B8000] >> 16) & 0xFF; | |
} | |
//----- (00000001800C67A8) ---------------------------------------------------- | |
signed __int64 sub_1800C67A8() | |
{ | |
return 1LL; | |
} | |
//----- (00000001800C67B0) ---------------------------------------------------- | |
__int64 sub_1800C67B0() | |
{ | |
__int64 v0; // x29 | |
__int64 v1; // x30 | |
int v2; // w8 | |
v2 = (unsigned __int16)(MEMORY[0x20E0B8000] >> 8) - 2; | |
if ( (unsigned int)v2 >= 4 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -2937835284574947571LL, 1277LL, v0, v1); | |
return *((unsigned int *)qword_180105050 + v2); | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 180105050: using guessed type __int64 qword_180105050[2]; | |
//----- (00000001800C6818) ---------------------------------------------------- | |
bool sub_1800C6818() | |
{ | |
return (unsigned __int16)(MEMORY[0x20E0B8000] & 0xFE00) == 1024; | |
} | |
//----- (00000001800C6838) ---------------------------------------------------- | |
unsigned __int64 sub_1800C6838() | |
{ | |
unsigned __int64 v0; // x0 | |
unsigned __int64 v1; // x8 | |
if ( MEMORY[0x20E0B8000] & 2 ) | |
{ | |
LODWORD(v0) = MEMORY[0x20E0B8028]; | |
LODWORD(v1) = MEMORY[0x20E0B802C]; | |
} | |
else | |
{ | |
v0 = sub_1800DA418(); | |
v1 = v0 >> 32; | |
MEMORY[0x20E0B8028] = v0; | |
MEMORY[0x20E0B8000] |= 2u; | |
} | |
return (unsigned int)v0 | ((unsigned __int64)(unsigned int)v1 << 32); | |
} | |
//----- (00000001800C6898) ---------------------------------------------------- | |
bool sub_1800C6898() | |
{ | |
return (unsigned int)sub_1800B7D30(5635LL) == 0; | |
} | |
//----- (00000001800C68B8) ---------------------------------------------------- | |
bool sub_1800C68B8() | |
{ | |
return (unsigned int)sub_1800B7D30(5636LL) == 0; | |
} | |
//----- (00000001800C68D8) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800C68D8(int a1, _DWORD *a2) | |
{ | |
_DWORD *v2; // x19 | |
int v3; // w20 | |
char v4; // w0 | |
signed __int64 result; // x0 | |
v2 = a2; | |
v3 = a1; | |
v4 = sub_1800F6854(); | |
if ( v3 != 2 ) | |
{ | |
if ( v3 == 1 && v4 & 1 ) | |
goto LABEL_7; | |
return 0xFFFFFFFFLL; | |
} | |
if ( v4 & 1 ) | |
return 0xFFFFFFFFLL; | |
LABEL_7: | |
result = 0LL; | |
*v2 = 536871424; | |
return result; | |
} | |
// 1800F6854: using guessed type __int64 sub_1800F6854(void); | |
//----- (00000001800C6930) ---------------------------------------------------- | |
bool __fastcall sub_1800C6930(int a1, int a2) | |
{ | |
_BOOL8 result; // x0 | |
if ( a2 | a1 ) | |
result = (unsigned __int8)(MEMORY[0x2102D0000] & (a2 & 1 | 2 * (a1 & 3))) != 0; | |
else | |
result = 1LL; | |
return result; | |
} | |
//----- (00000001800C6964) ---------------------------------------------------- | |
__int64 sub_1800C6964() | |
{ | |
return 0LL; | |
} | |
//----- (00000001800C696C) ---------------------------------------------------- | |
__int64 sub_1800C696C() | |
{ | |
__int64 v0; // x29 | |
__int64 v1; // x30 | |
if ( !(MEMORY[0x20E0B8000] & 4) ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -2937835284574947571LL, 1476LL, v0, v1); | |
return (unsigned int)(MEMORY[0x20E0B8024] >> 24); | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800C69C4) ---------------------------------------------------- | |
__int64 __fastcall sub_1800C69C4(__int64 result, unsigned __int16 a2, char a3, char a4) | |
{ | |
if ( !(MEMORY[0x20E0B8000] & 4) ) | |
MEMORY[0x20E0B8024] = 0; | |
MEMORY[0x20E0B8024] = (((_DWORD)result << 24) & 0xFFFF0000 | a2) & 0xFFF0FFFF | ((a3 & 0xF) << 16) | ((a4 & 0xF) << 20); | |
MEMORY[0x20E0B8000] |= 4u; | |
return result; | |
} | |
//----- (00000001800C6A08) ---------------------------------------------------- | |
signed __int64 sub_1800C6A08() | |
{ | |
return 36238786560LL; | |
} | |
//----- (00000001800C6A18) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800C6A18(_DWORD *a1) | |
{ | |
__int64 v1; // x29 | |
__int64 v2; // x30 | |
int *v4; // x9 | |
int v5; // t1 | |
if ( !a1 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -2937835284574947571LL, 1525LL, v1, v2); | |
if ( !(MEMORY[0x20E0B8000] & 0x10) ) | |
return 0xFFFFFFFFLL; | |
v4 = (int *)8825569328LL; | |
while ( (unsigned __int64)v4 <= 0x20E0B805CLL ) | |
{ | |
v5 = *v4; | |
++v4; | |
*a1 = v5; | |
++a1; | |
} | |
return 0LL; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800C6A94) ---------------------------------------------------- | |
__int64 __fastcall sub_1800C6A94(int *a1) | |
{ | |
int *v1; // x9 | |
int v2; // t1 | |
unsigned int v3; // w9 | |
v1 = (int *)8825569328LL; | |
if ( a1 ) | |
{ | |
while ( (unsigned __int64)v1 <= 0x20E0B805CLL ) | |
{ | |
v2 = *a1; | |
++a1; | |
*v1 = v2; | |
++v1; | |
} | |
v3 = MEMORY[0x20E0B8000] | 0x10; | |
} | |
else | |
{ | |
while ( (unsigned __int64)v1 <= 0x20E0B805CLL ) | |
{ | |
*v1 = 0; | |
++v1; | |
} | |
v3 = MEMORY[0x20E0B8000] & 0xFFFFFFEF; | |
} | |
MEMORY[0x20E0B8000] = v3; | |
return 0LL; | |
} | |
//----- (00000001800C6AF0) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800C6AF0(_DWORD *a1) | |
{ | |
__int64 v1; // x29 | |
__int64 v2; // x30 | |
int *v4; // x9 | |
int v5; // t1 | |
if ( !a1 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -2937835284574947571LL, 1587LL, v1, v2); | |
if ( !(MEMORY[0x2102D4020] & 1) ) | |
return 0xFFFFFFFFLL; | |
v4 = (int *)8861335552LL; | |
while ( (unsigned __int64)v4 <= 0x2102D401CLL ) | |
{ | |
v5 = *v4; | |
++v4; | |
*a1 = v5; | |
++a1; | |
} | |
return 0LL; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800C6B74) ---------------------------------------------------- | |
__int64 __fastcall sub_1800C6B74(__int64 a1) | |
{ | |
__int64 result; // x0 | |
signed __int64 v2; // x8 | |
if ( MEMORY[0x2102D4044] & 0x10000 ) | |
{ | |
v2 = 1657LL; | |
goto LABEL_6; | |
} | |
MEMORY[0x2102D4044] |= 0x10000u; | |
result = sub_1800D9F80(a1); | |
if ( !(MEMORY[0x2102D4044] & 0x10000) ) | |
{ | |
v2 = 1660LL; | |
LABEL_6: | |
sub_1800D489C("%llx:%d", &byte_180101040, -2937835284574947571LL, v2); | |
} | |
return result; | |
} | |
// 1800D9F80: using guessed type __int64 __fastcall sub_1800D9F80(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800C6BF4) ---------------------------------------------------- | |
int *__fastcall sub_1800C6BF4(int *result, __int64 a2) | |
{ | |
__int64 v2; // x29 | |
__int64 v3; // x30 | |
unsigned __int64 v4; // x9 | |
_DWORD *v5; // x10 | |
int v6; // t1 | |
unsigned int v7; // w9 | |
_DWORD *i; // x9 | |
if ( MEMORY[0x2102D4044] & 0x10000 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -2937835284574947571LL, 1669LL, v2, v3); | |
if ( result ) | |
{ | |
v4 = (unsigned __int64)result + (a2 & 0xFFFFFFFFFFFFFFFCLL); | |
v5 = (_DWORD *)8861335588LL; | |
do | |
{ | |
if ( (unsigned __int64)result >= v4 ) | |
{ | |
*v5 = 0; | |
} | |
else | |
{ | |
v6 = *result; | |
++result; | |
*v5 = v6; | |
} | |
++v5; | |
} | |
while ( (unsigned __int64)v5 <= 0x2102D4040LL ); | |
v7 = MEMORY[0x2102D4044] | 1; | |
} | |
else | |
{ | |
for ( i = (_DWORD *)8861335588LL; (unsigned __int64)i <= 0x2102D4040LL; ++i ) | |
*i = 0; | |
v7 = MEMORY[0x2102D4044] & 0xFFFFFFFE; | |
} | |
MEMORY[0x2102D4044] = v7; | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800C6CAC) ---------------------------------------------------- | |
void sub_1800C6CAC() | |
{ | |
MEMORY[0x2102D0030] |= 0x80000000; | |
} | |
//----- (00000001800C6CC8) ---------------------------------------------------- | |
__int64 sub_1800C6CC8() | |
{ | |
return (MEMORY[0x20E0B8000] >> 3) & 1; | |
} | |
//----- (00000001800C6CE0) ---------------------------------------------------- | |
__int64 __fastcall sub_1800C6CE0(__int64 result) | |
{ | |
unsigned int v1; // w9 | |
if ( (_DWORD)result ) | |
v1 = MEMORY[0x20E0B8000] | 8; | |
else | |
v1 = MEMORY[0x20E0B8000] & 0xFFFFFFF7; | |
MEMORY[0x20E0B8000] = v1; | |
return result; | |
} | |
//----- (00000001800C6D08) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800C6D08(unsigned int a1, unsigned int a2, unsigned int *a3) | |
{ | |
unsigned int *v3; // x19 | |
unsigned int v4; // w8 | |
signed __int64 result; // x0 | |
unsigned __int64 v6; // x21 | |
__int64 v7; // x20 | |
unsigned __int64 v8; // x22 | |
v3 = a3; | |
v4 = a1; | |
result = 0xFFFFFFFFLL; | |
if ( v4 <= 8 && a3 ) | |
{ | |
if ( (0x187u >> v4) & 1 ) | |
{ | |
v6 = 0LL; | |
v7 = *((unsigned int *)qword_180105020 + (signed int)v4); | |
v8 = a2; | |
while ( v6 < v8 ) | |
{ | |
if ( *v3 && (unsigned int)sub_1800BC50C(v7, *v3, v3) ) | |
goto LABEL_10; | |
++v6; | |
++v3; | |
} | |
result = 0LL; | |
} | |
else | |
{ | |
LABEL_10: | |
result = 0xFFFFFFFFLL; | |
} | |
} | |
return result; | |
} | |
// 180105020: using guessed type __int64 qword_180105020[3]; | |
//----- (00000001800C6D9C) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800C6D9C(_QWORD *a1, _DWORD *a2) | |
{ | |
_DWORD *v2; // x19 | |
_QWORD *v3; // x20 | |
signed __int64 result; // x0 | |
v2 = a2; | |
v3 = a1; | |
result = sub_1800DA4AC((__int64)&qword_1801146A0, 14LL, 0LL); | |
*v3 = &qword_1801146A0; | |
*v2 = 14; | |
return result; | |
} | |
// 1801146A0: using guessed type __int64 qword_1801146A0; | |
//----- (00000001800C6DE8) ---------------------------------------------------- | |
_DWORD *sub_1800C6DE8() | |
{ | |
_DWORD *result; // x0 | |
_DWORD *v1; // x19 | |
__int64 v2; // x20 | |
result = sub_1800E07DC(9); | |
v1 = result; | |
if ( !*((_BYTE *)result + 4) ) | |
{ | |
v2 = sub_1800DA63C(); | |
result = sub_1800E07DC(7); | |
*((_QWORD *)v1 + 1) = *((_QWORD *)result + 1) - v2; | |
*((_QWORD *)v1 + 2) = v2; | |
*((_BYTE *)v1 + 4) = 1; | |
} | |
return result; | |
} | |
//----- (00000001800C6E38) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800C6E38(unsigned int a1) | |
{ | |
__int64 v2; // x0 | |
if ( a1 <= 8 && (0x187u >> a1) & 1 ) | |
{ | |
v2 = *((unsigned int *)qword_180105020 + (signed int)a1); | |
JUMPOUT(&loc_1800BC5F8); | |
} | |
return 0xFFFFFFFFLL; | |
} | |
// 180105020: using guessed type __int64 qword_180105020[3]; | |
//----- (00000001800C6E68) ---------------------------------------------------- | |
signed __int64 sub_1800C6E68() | |
{ | |
return 85LL; | |
} | |
//----- (00000001800C6E70) ---------------------------------------------------- | |
__int64 sub_1800C6E70() | |
{ | |
return 0LL; | |
} | |
//----- (00000001800C6E78) ---------------------------------------------------- | |
signed __int64 sub_1800C6E78() | |
{ | |
unsigned int v0; // w19 | |
int v1; // w2 | |
v0 = sub_1800B8508(2u, 7); | |
v1 = sub_1800C84D4(); | |
return sub_1800B8CDC(v0, 0, v1); | |
} | |
//----- (00000001800C6EB0) ---------------------------------------------------- | |
signed __int64 sub_1800C6EB0() | |
{ | |
int v0; // w0 | |
signed __int64 result; // x0 | |
v0 = sub_1800C84D4(); | |
result = sub_1800B8CDC(0x3Au, 1, v0); | |
if ( (_DWORD)result == -1 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -2937835284574947571LL, 2134LL); | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800C6F10) ---------------------------------------------------- | |
void __fastcall sub_1800C6F10(__int64 a1, _QWORD *a2, _QWORD *a3, _QWORD *a4) | |
{ | |
*a2 = 8873952512LL; | |
a2[1] = 8873953024LL; | |
a2[2] = 8873935104LL; | |
a2[3] = 8873935616LL; | |
a2[4] = 8873935872LL; | |
a2[5] = 8873936128LL; | |
a2[6] = 8873954560LL; | |
a2[7] = 8873956608LL; | |
*a4 = 8873934848LL; | |
*a3 = 512LL; | |
a3[1] = 1536LL; | |
a3[2] = 512LL; | |
a3[3] = 256LL; | |
a3[4] = 256LL; | |
a3[5] = 0x4000LL; | |
a3[6] = 2048LL; | |
a3[7] = 10752LL; | |
} | |
//----- (00000001800C70F0) ---------------------------------------------------- | |
signed __int64 *__fastcall sub_1800C70F0(__int64 a1) | |
{ | |
__int64 v1; // x19 | |
v1 = a1; | |
MEMORY[0x210000124] |= 1u; | |
sub_1800E0A38((__int64)qword_180111498, 2u); | |
sub_1800C71FC( | |
v1, | |
0LL, | |
(__int64)&off_1801114E8, | |
(void (__fastcall *)(__int64, signed __int64 *, __int64))sub_1800C72B0); | |
sub_1800C71FC( | |
v1, | |
(signed __int64 *)1, | |
(__int64)&off_180111508, | |
(void (__fastcall *)(__int64, signed __int64 *, __int64))nullsub_18); | |
sub_1800C71FC( | |
v1, | |
(signed __int64 *)2, | |
(__int64)&off_180111538, | |
(void (__fastcall *)(__int64, signed __int64 *, __int64))nullsub_19); | |
sub_1800C71FC( | |
v1, | |
(signed __int64 *)4, | |
(__int64)&off_180111558, | |
(void (__fastcall *)(__int64, signed __int64 *, __int64))nullsub_20); | |
sub_1800C71FC( | |
v1, | |
(signed __int64 *)5, | |
(__int64)&off_180111578, | |
(void (__fastcall *)(__int64, signed __int64 *, __int64))sub_1800C72C8); | |
sub_1800C71FC( | |
v1, | |
(signed __int64 *)6, | |
(__int64)&off_1801115C8, | |
(void (__fastcall *)(__int64, signed __int64 *, __int64))nullsub_21); | |
return sub_1800C71FC( | |
v1, | |
(signed __int64 *)7, | |
(__int64)&off_1801115E8, | |
(void (__fastcall *)(__int64, signed __int64 *, __int64))sub_1800C7504); | |
} | |
// 1800C72BC: using guessed type __int64 __fastcall nullsub_18(); | |
// 1800C72C0: using guessed type __int64 __fastcall nullsub_19(); | |
// 1800C72C4: using guessed type __int64 __fastcall nullsub_20(); | |
// 1800C7500: using guessed type __int64 __fastcall nullsub_21(); | |
// 180111498: using guessed type __int64 qword_180111498[5]; | |
// 1801114E8: using guessed type void *off_1801114E8; | |
// 180111508: using guessed type void *off_180111508; | |
// 180111538: using guessed type __int64 (*off_180111538)[45]; | |
// 180111558: using guessed type void *off_180111558; | |
// 180111578: using guessed type void *off_180111578; | |
// 1801115C8: using guessed type void *off_1801115C8; | |
// 1801115E8: using guessed type void *off_1801115E8; | |
//----- (00000001800C71FC) ---------------------------------------------------- | |
signed __int64 *__fastcall sub_1800C71FC(__int64 a1, signed __int64 *a2, __int64 a3, void (__fastcall *a4)(__int64, signed __int64 *, __int64)) | |
{ | |
signed __int64 *result; // x0 | |
unsigned int v5; // w9 | |
unsigned int v6; // w9 | |
__int64 v7; // x10 | |
signed __int64 v8; // x11 | |
int v9; // w12 | |
__int64 v10; // x10 | |
int v11; // w12 | |
__int64 v12; // x9 | |
void (__fastcall *v13)(__int64, signed __int64 *, __int64); // x20 | |
__int64 v14; // x22 | |
signed __int64 *v15; // x19 | |
__int64 v16; // x21 | |
char v17; // w24 | |
__int64 v18; // x23 | |
int *v19; // x1 | |
v13 = a4; | |
v14 = a3; | |
v15 = a2; | |
v16 = a1; | |
v17 = 2 * (_BYTE)a2; | |
sub_1800C784C(a2, 1 << 2 * (_BYTE)a2); | |
v18 = 0LL; | |
while ( 1 ) | |
{ | |
v19 = *(int **)v14; | |
if ( !*(_QWORD *)v14 ) | |
break; | |
if ( v13 ) | |
{ | |
v13(v16, v15, v18); | |
v19 = *(int **)v14; | |
} | |
sub_1800BABD0(v15, v19, *(_DWORD *)(v14 + 8)); | |
v18 = (unsigned int)(v18 + 1); | |
v14 += 16LL; | |
} | |
if ( v13 ) | |
v13(v16, v15, v18); | |
sub_1800C784C(v15, 1 << (v17 | 1)); | |
result = sub_1800BAA6C(v15); | |
switch ( (_DWORD)v15 ) | |
{ | |
case 0: | |
v5 = MEMORY[0x210000110] & 0xFFFFFFE0 | 0x100; | |
goto LABEL_11; | |
case 1: | |
v5 = MEMORY[0x210000110] & 0xFEE0FFFF | 0x1010000; | |
LABEL_11: | |
MEMORY[0x210000110] = v5; | |
break; | |
case 2: | |
MEMORY[0x210000108] = MEMORY[0x210000108] & 0xFFFFFFE0 | 0x102; | |
break; | |
case 3: | |
MEMORY[0x210000108] = MEMORY[0x210000108] & 0xFEE0FFFF | 0x1030000; | |
break; | |
case 4: | |
MEMORY[0x210000104] = MEMORY[0x210000104] & 0xFFFFFFE0 | 0x104; | |
break; | |
case 5: | |
MEMORY[0x210000104] = MEMORY[0x210000104] & 0xFEE0FFFF | 0x1050000; | |
break; | |
case 6: | |
v6 = MEMORY[0x21000010C] & 0xFFFFFFE0 | 0x106; | |
goto LABEL_18; | |
case 7: | |
v6 = MEMORY[0x21000010C] & 0xFEE0FFFF | 0x1070000; | |
LABEL_18: | |
MEMORY[0x21000010C] = v6; | |
break; | |
case 8: | |
sub_1800D489C("%llx:%d", &byte_180101040, -1120701505042910129LL, 440LL); | |
return result; | |
default: | |
break; | |
} | |
v7 = *(_QWORD *)(8LL * (unsigned int)v15 + 0x18011A260LL); | |
v8 = 4LL * (unsigned int)v15 + 6443606576LL; | |
v9 = *(_DWORD *)(4LL * (unsigned int)v15 + 0x18011A23CLL); | |
*(_DWORD *)(v8 + 12) = v9 + 1; | |
*(_DWORD *)(v7 + (unsigned int)(4 * v9)) = 0; | |
v10 = *(_QWORD *)(8LL * (unsigned int)v15 + 0x18011A260LL); | |
v11 = *(_DWORD *)(4LL * (unsigned int)v15 + 0x18011A23CLL); | |
*(_DWORD *)(v8 + 12) = v11 + 1; | |
*(_DWORD *)(v10 + (unsigned int)(4 * v11)) = -559030611; | |
v12 = *(_QWORD *)(8LL * (unsigned int)v15 + 0x18011A260LL); | |
LODWORD(v10) = *(_DWORD *)(4LL * (unsigned int)v15 + 0x18011A23CLL); | |
*(_DWORD *)(v8 + 12) = v10 + 1; | |
*(_DWORD *)(v12 + (unsigned int)(4 * v10)) = -559030611; | |
*(_BYTE *)((unsigned int)v15 + 0x18011A231LL) = 1; | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800C72B0) ---------------------------------------------------- | |
signed __int64 *__fastcall sub_1800C72B0(__int64 a1, __int64 a2, int a3) | |
{ | |
signed __int64 *result; // x0 | |
if ( !a3 ) | |
{ | |
sub_1800BA5EC(0LL, 0x20E0BC004uLL, 1LL, 0); | |
sub_1800BA5EC(0LL, 0x20E0BC104uLL, 1LL, 0); | |
sub_1800BA5EC(0LL, 0x20E0BC204uLL, 1LL, 0); | |
sub_1800BA5EC(0LL, 0x202F30408uLL, 1LL, 1); | |
sub_1800BA5EC(0LL, 0x202F30438uLL, 1LL, 1); | |
result = sub_1800BA5EC(0LL, 0x202F30468uLL, 1LL, 1); | |
} | |
return result; | |
} | |
//----- (00000001800C72C8) ---------------------------------------------------- | |
__int64 __fastcall sub_1800C72C8(__int64 result, signed __int64 *a2, int a3) | |
{ | |
signed __int64 *v3; // x19 | |
int v4; // w20 | |
_QWORD *v5; // x24 | |
__int64 v6; // x21 | |
__int64 v7; // x20 | |
char v8; // w23 | |
char v9; // w22 | |
unsigned __int64 v10; // x9 | |
__int64 v11; // x20 | |
__int64 v12; // x21 | |
v3 = a2; | |
v4 = result; | |
if ( a3 == 3 ) | |
return sub_1800BABD0(a2, (int *)qword_1801057F0, 0x952u); | |
if ( a3 != 2 && a3 == 1 ) | |
{ | |
result = (__int64)sub_1800C9550((unsigned int *)0x210E00000LL); | |
if ( v4 != 5 ) | |
{ | |
v5 = (_QWORD *)sub_1800E086C(2); | |
v6 = sub_1800D5104(); | |
v7 = sub_1800D5158(); | |
v8 = sub_1800B060C(); | |
v9 = sub_1800B060C(); | |
sub_1800BA5EC(v3, 0x200000480uLL, *v5 >> 12, 0); | |
sub_1800BA5EC(v3, 0x200000484uLL, (unsigned __int64)(*v5 + v5[1] - 1LL) >> 12, 0); | |
sub_1800BA5EC(v3, 0x200000490uLL, 1LL, 0); | |
sub_1800BA890(v3, 0x200000490uLL, 1LL, 1LL, 255, 0); | |
result = (__int64)sub_1800BA5EC(v3, 0x200000794uLL, 1LL, 0); | |
if ( v6 ) | |
{ | |
v10 = (unsigned __int64)(v7 - 34359738369LL) >> v9; | |
v11 = ((unsigned __int64)(v6 - 0x800000000LL) >> v8) & 0xFFFFFFFF; | |
v12 = (unsigned int)v10; | |
sub_1800BA5EC(v3, 0x2000007E4uLL, v11, 0); | |
sub_1800BA5EC(v3, 0x2000007E8uLL, v12, 0); | |
sub_1800BA5EC(v3, 0x2000007ECuLL, 1LL, 0); | |
sub_1800BA890(v3, 0x2000007E4uLL, v11, 0xFFFFFLL, 1, 0); | |
sub_1800BA890(v3, 0x2000007E8uLL, v12, 0xFFFFFLL, 1, 0); | |
result = sub_1800BA890(v3, 0x2000007ECuLL, 1LL, 1LL, 1, 0); | |
} | |
} | |
} | |
return result; | |
} | |
// 1801057F0: using guessed type __int64 qword_1801057F0[512]; | |
//----- (00000001800C7504) ---------------------------------------------------- | |
signed __int64 *__fastcall sub_1800C7504(signed __int64 *result, signed __int64 *a2, int a3) | |
{ | |
signed __int64 *v3; // x19 | |
int v4; // w20 | |
__int64 v5; // x20 | |
__int64 *v6; // x20 | |
signed __int64 v7; // x21 | |
unsigned int *i; // x22 | |
unsigned int *j; // x22 | |
_QWORD *v10; // x10 | |
unsigned __int64 v11; // x9 | |
__int64 k; // x21 | |
unsigned int v13; // w0 | |
unsigned int v14; // w0 | |
unsigned int v15; // w0 | |
__int64 l; // x19 | |
v3 = a2; | |
v4 = (signed int)result; | |
switch ( a3 ) | |
{ | |
case 2: | |
return sub_1800C784C(a2, 1 << (2 * (_BYTE)a2 | 1)); | |
case 1: | |
sub_1800BA5EC(a2, 0x20E080110uLL, 15LL, 0); | |
sub_1800BA890(v3, 0x20E080110uLL, 240LL, 240LL, 255, 0); | |
sub_1800BA5EC(v3, 0x20E080160uLL, 15LL, 0); | |
sub_1800BA890(v3, 0x20E080160uLL, 240LL, 240LL, 255, 0); | |
sub_1800BA5EC(v3, 0x20E080168uLL, 15LL, 0); | |
sub_1800BA890(v3, 0x20E080168uLL, 240LL, 240LL, 255, 0); | |
sub_1800BA5EC(v3, 0x20E080170uLL, 15LL, 0); | |
sub_1800BA890(v3, 0x20E080170uLL, 240LL, 240LL, 255, 0); | |
sub_1800D3D1C(); | |
sub_1800C8F60(); | |
sub_1800BA5EC(v3, 0x20E0B8000uLL, MEMORY[0x20E0B8000] & 0xFFFFFFED, 0); | |
sub_1800BA5EC(v3, 0x20E0B8024uLL, MEMORY[0x20E0B8024], 0); | |
sub_1800BA5EC(v3, 0x20E080168uLL, 15LL, 0); | |
sub_1800BA890(v3, 0x20E080168uLL, 240LL, 240LL, 255, 0); | |
sub_1800BA5EC(v3, 0x20E0801E8uLL, 15LL, 0); | |
sub_1800BA890(v3, 0x20E0801E8uLL, 240LL, 240LL, 255, 0); | |
if ( v4 == 5 ) | |
{ | |
sub_1800BA5EC(v3, 0x202050000uLL, 34896609280LL, 1); | |
sub_1800BA5EC(v3, 0x202150000uLL, 34896609280LL, 1); | |
} | |
else | |
{ | |
v5 = MEMORY[0x180115FF8] & 0xFFFFFFFFFFFFF000LL | 1; | |
sub_1800BA5EC(v3, 0x202050000uLL, v5, 1); | |
sub_1800BA890(v3, 0x202050000uLL, v5, 0xFFFFFFFFFFFFLL, 1, 1); | |
sub_1800BA5EC(v3, 0x202150000uLL, v5, 1); | |
sub_1800BA890(v3, 0x202150000uLL, v5, 0xFFFFFFFFFFFFLL, 1, 1); | |
} | |
v6 = (__int64 *)8639741992LL; | |
v7 = 15LL; | |
while ( v7 ) | |
{ | |
sub_1800BA5EC((signed __int64 *)7, (unsigned __int64)(v6 - 1), *(v6 - 1), 1); | |
sub_1800BA5EC((signed __int64 *)7, (unsigned __int64)v6, *v6, 1); | |
--v7; | |
v6 += 4; | |
} | |
for ( i = 0LL; i != (unsigned int *)256; i += 4 ) | |
{ | |
sub_1800BA5EC((signed __int64 *)7, (unsigned __int64)(i + 2206318592LL), i[2206318592LL], 0); | |
sub_1800BA5EC((signed __int64 *)7, (unsigned __int64)(i + 2206318593LL), i[2206318593LL], 0); | |
sub_1800BA5EC((signed __int64 *)7, (unsigned __int64)(i + 2206318594LL), i[2206318594LL], 0); | |
} | |
for ( j = 0LL; j != (unsigned int *)208; j += 4 ) | |
{ | |
sub_1800BA5EC((signed __int64 *)7, (unsigned __int64)(j + 2206310408LL), j[2206310408LL], 0); | |
sub_1800BA5EC((signed __int64 *)7, (unsigned __int64)(j + 2206310409LL), j[2206310409LL], 0); | |
sub_1800BA5EC((signed __int64 *)7, (unsigned __int64)(j + 2206310410LL), j[2206310410LL], 0); | |
sub_1800BA5EC((signed __int64 *)7, (unsigned __int64)(j + 2206310411LL), j[2206310411LL], 0); | |
} | |
v10 = (_QWORD *)8639742016LL; | |
v11 = 2LL; | |
while ( v11 <= 0xF ) | |
{ | |
if ( !((MEMORY[0x202F80000] ^ (unsigned int)*v10) & 0x800000) ) | |
{ | |
sub_1800BA5EC( | |
(signed __int64 *)7, | |
0x202F20020uLL, | |
v11 & 0xF | MEMORY[0x202F20020] & 0xFFFFFFFFFFFFFFF0LL | 0x2000000, | |
1); | |
break; | |
} | |
++v11; | |
v10 += 4; | |
} | |
sub_1800BA890((signed __int64 *)7, 0x202F20020uLL, 0LL, -2147483648LL, 255, 1); | |
sub_1800BA5EC((signed __int64 *)7, 0x20E070200uLL, MEMORY[0x20E070200], 0); | |
sub_1800D44CC(59LL, 0x41u); | |
for ( k = 0LL; k != 81920; k += 0x4000LL ) | |
sub_1800BA5EC((signed __int64 *)7, k + 8825094144LL, *(unsigned int *)(k + 8825094144LL), 0); | |
sub_1800D44CC(0LL, 0x3Bu); | |
sub_1800BA5EC((signed __int64 *)7, 0x20E068000uLL, MEMORY[0x20E068000], 0); | |
sub_1800BA890((signed __int64 *)7, 0x20E068000uLL, 0LL, -2147483648LL, 255, 0); | |
sub_1800BA5EC((signed __int64 *)7, 0x202F80000uLL, MEMORY[0x202F80000], 1); | |
sub_1800BA5EC((signed __int64 *)7, 0x202F80008uLL, MEMORY[0x202F80008], 1); | |
v13 = sub_1800C86B0(0); | |
sub_1800BA5EC((signed __int64 *)7, 0x20E0BC014uLL, v13, 0); | |
v14 = sub_1800C86B0(1); | |
sub_1800BA5EC((signed __int64 *)7, 0x20E0BC114uLL, v14, 0); | |
v15 = sub_1800C86B0(2); | |
result = sub_1800BA5EC((signed __int64 *)7, 0x20E0BC214uLL, v15, 0); | |
for ( l = 0LL; l != 24; l += 3LL ) | |
result = sub_1800BA5EC((signed __int64 *)7, qword_18010ECD8[l], qword_18010ECD8[l + 1], qword_18010ECD8[l + 2]); | |
break; | |
case 0: | |
sub_1800BABD0(a2, (int *)qword_180108438, 0xCFu); | |
sub_1800C959C((unsigned int *)0x210E00008LL); | |
result = (signed __int64 *)sub_1800BABD0(v3, &dword_180108774, 0x79u); | |
break; | |
} | |
return result; | |
} | |
// 180108438: using guessed type __int64 qword_180108438[103]; | |
// 180108774: using guessed type int dword_180108774; | |
// 18010ECD8: using guessed type __int64 qword_18010ECD8[]; | |
//----- (00000001800C783C) ---------------------------------------------------- | |
__int64 __fastcall sub_1800C783C(int a1, unsigned __int8 a2, unsigned int a3) | |
{ | |
return ((a1 << 16) & 0xFFFF00FF | (a2 << 8)) & 0xFFFFFF00 | (a3 >> 2) & 0xFF; | |
} | |
//----- (00000001800C784C) ---------------------------------------------------- | |
signed __int64 *__fastcall sub_1800C784C(signed __int64 *a1, int a2) | |
{ | |
return sub_1800BA5EC(a1, 0x2102B8028uLL, a2, 0); | |
} | |
//----- (00000001800C7864) ---------------------------------------------------- | |
__int64 __fastcall sub_1800C7864(__int64 result) | |
{ | |
MEMORY[0x18011AA70] = 1; | |
MEMORY[0x18011AA71] = result; | |
return result; | |
} | |
//----- (00000001800C787C) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800C787C(__int64 a1) | |
{ | |
__int64 v1; // x19 | |
signed __int64 result; // x0 | |
__int64 v3; // x25 | |
unsigned int *v4; // x20 | |
signed __int64 v5; // x27 | |
unsigned int *v6; // x27 | |
unsigned int v7; // t1 | |
__int64 v8; // x0 | |
__int64 v9; // x21 | |
__int64 v10; // x1 | |
__int64 v11; // x2 | |
__int64 v12; // x3 | |
__int64 v13; // x4 | |
__int64 v14; // x5 | |
__int64 v15; // x6 | |
__int64 v16; // x7 | |
int v17; // w21 | |
_DWORD *v18; // x23 | |
int v19; // w21 | |
__int64 v20; // x0 | |
unsigned int v21; // w21 | |
_DWORD *v22; // x8 | |
unsigned int *v23; // x17 | |
_DWORD *v24; // x17 | |
__int64 v25; // x21 | |
__int64 v26; // x1 | |
__int64 v27; // x2 | |
__int64 v28; // x3 | |
__int64 v29; // x4 | |
__int64 v30; // x5 | |
__int64 v31; // x6 | |
__int64 v32; // x7 | |
__int64 v33; // x8 | |
__int64 v34; // xzr | |
__int64 v35; // x1 | |
__int64 v36; // x2 | |
__int64 v37; // x3 | |
__int64 v38; // x4 | |
__int64 v39; // x5 | |
__int64 v40; // x6 | |
__int64 v41; // x7 | |
__int16 v42; // [xsp+1Ah] [xbp-66h] | |
unsigned int v43; // [xsp+1Ch] [xbp-64h] | |
__int64 v44; // [xsp+20h] [xbp-60h] | |
__int64 v45; // [xsp+28h] [xbp-58h] | |
v1 = a1; | |
v45 = 5139240511851214385LL; | |
if ( !*(_BYTE *)((unsigned int)a1 + 0x180115A20LL) ) | |
{ | |
v3 = MEMORY[0x180115A18]; | |
v4 = (unsigned int *)(MEMORY[0x180115A18] + 40LL * (unsigned int)a1); | |
if ( !MEMORY[0x18011AA74] ) | |
{ | |
sub_1800D39CC(88LL, 1); | |
sub_1800D39CC(89LL, 1); | |
sub_1800D39CC(32LL, 1); | |
sub_1800E0A38((__int64)qword_1801117A0, 1u); | |
sub_1800E0A38((__int64)qword_1801117C8, 1u); | |
if ( LOBYTE(qword_1801158C8[2613]) == 1 ) | |
{ | |
if ( MEMORY[0x18011AA71] ) | |
MEMORY[0x600000024] &= 0xFFFFFFFE; | |
sub_1800B7F70(258LL, 5); | |
MEMORY[0x600000014] |= 1u; | |
sub_1800D5F60(100LL); | |
MEMORY[0x600000024] |= 1u; | |
} | |
MEMORY[0x600000004] = (unsigned __int64)sub_1800C67B0() | 0x10; | |
while ( !(MEMORY[0x600000028] & 1) ) | |
sub_1800D5F60(1LL); | |
MEMORY[0x600000034] |= 1u; | |
sub_1800E0A38((__int64)qword_180111628, 1u); | |
} | |
sub_1800B7F70(*v4, 2); | |
v5 = v3 + 40LL * (unsigned int)v1; | |
v7 = *(_DWORD *)(v5 + 4); | |
v6 = (unsigned int *)(v5 + 4); | |
v8 = sub_1800B7F70(v7, 0); | |
v9 = sub_1800D5F1C(v8); | |
while ( (unsigned int)sub_1800B7D30(*v6) ) | |
{ | |
if ( sub_1800D5F30(v9, 0x989680uLL) ) | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v10, v11, v12, v13, v14, v15, v16, -8379977398048039662LL); | |
LABEL_41: | |
sub_1800B7F70(*v4, 2); | |
sub_1800D5F60(10LL); | |
sub_1800B7F70(*v4, 4); | |
sub_1800B7F70(*v6, 4); | |
sub_1800C7F30(v1); | |
if ( !MEMORY[0x18011AA74] ) | |
sub_1800C7FA4(); | |
result = 0LL; | |
goto LABEL_44; | |
} | |
sub_1800D5F60(1LL); | |
} | |
sub_1800B7F70(*v6, 5); | |
v17 = (_DWORD)v1 << 7; | |
v18 = (_DWORD *)((unsigned int)(((_DWORD)v1 << 7) + 308) | 0x600000000LL); | |
*v18 &= 0xFFFFFFFE; | |
*(_DWORD *)((unsigned int)(v17 + 292) | 0x600000000LL) |= 1u; | |
while ( !(MEMORY[0x600000028] & 0x10) ) | |
sub_1800D5F60(1LL); | |
*(_DWORD *)((unsigned int)(((_DWORD)v1 << 7) + 256) | 0x600000000LL) |= 1u; | |
*(_DWORD *)((unsigned int)(((_DWORD)v1 << 7) + 308) | 0x600000000LL) |= 1u; | |
while ( !(*(_DWORD *)((unsigned int)(((_DWORD)v1 << 7) + 260) | 0x600000000LL) & 1) ) | |
sub_1800D5F60(10LL); | |
sub_1800E0A38( | |
(__int64)*(&off_1801116E0 + 3 * (unsigned int)v1), | |
*((_DWORD *)&off_1801116E0 + 6 * (unsigned int)v1 + 2)); | |
sub_1800E0A38( | |
(__int64)*(&off_180111740 + 3 * (unsigned int)v1), | |
*((_DWORD *)&off_180111740 + 6 * (unsigned int)v1 + 2)); | |
*(_DWORD *)((unsigned int)((_DWORD)v1 << 24) + 0x601000140LL) |= 0x80000000; | |
sub_1800D5F60(100LL); | |
sub_1800B7F70(*v4, 3); | |
sub_1800B5830(&v42, ((_DWORD)v1 << 15) + 268435616, 2); | |
v42 = v42 & 0xFFF0 | 1; | |
sub_1800B58B4(&v42, ((_DWORD)v1 << 15) + 268435616, 2); | |
v19 = sub_1800C6818(); | |
if ( v19 ) | |
{ | |
sub_1800B5830(&v44, ((_DWORD)v1 << 15) + 268437516, 4); | |
LODWORD(v44) = v44 & 0xFFFE00FF | (v19 << 8); | |
sub_1800B58B4(&v44, ((_DWORD)v1 << 15) + 268437516, 4); | |
sub_1800B5830(&v43, ((_DWORD)v1 << 15) + 268437264, 4); | |
v43 = v43 & 0xFFC0FFFF | (0x10000 << (v19 - 1)); | |
sub_1800B58B4(&v43, ((_DWORD)v1 << 15) + 268437264, 4); | |
} | |
sub_1800B5830(&v43, ((_DWORD)v1 << 15) + 268435812, 4); | |
v43 &= 0xFF0700FF; | |
sub_1800B58B4(&v43, ((_DWORD)v1 << 15) + 268435812, 4); | |
*(_DWORD *)((unsigned int)((_DWORD)v1 << 6) + 0x600004020LL) = 3; | |
v20 = sub_1800C67B0(); | |
v21 = ((1 << *((_DWORD *)&qword_180108958[2 * (unsigned int)v20] + (unsigned int)v1)) - 1) << v1; | |
while ( v21 & ~MEMORY[0x60000800C] ) | |
v20 = sub_1800D5F60(10LL); | |
v22 = 0LL; | |
MEMORY[0x60A000180] |= 0x4000u; | |
MEMORY[0x60A000184] |= 0x4000u; | |
MEMORY[0x60A000090] = MEMORY[0x60A000090] & 0xFFFFF000 | 0x64; | |
MEMORY[0x60A000098] = MEMORY[0x60A000098] & 0xFFFFF000 | 0x19; | |
while ( v21 ) | |
{ | |
if ( v21 & 1 ) | |
{ | |
v23 = v22 + 6484410369LL; | |
v23[33] = v22[6484410402LL] | 0x4000; | |
v23[480] = 0; | |
*v23 = v22[6484410369LL] & 0xFFFFF000 | 0x600; | |
v24 = v22 + 6484426791LL; | |
v24[443] = 12549; | |
v24[449] = v22[6484427240LL] & 0xFFFFFF00 | 0x9F; | |
v24[451] = v22[6484427242LL] & 0xFFFFFF00 | 1; | |
v20 = v22[6484427008LL] & 0xFFFFFFE0 | 0xA; | |
v24[217] = v20; | |
*v24 = 175; | |
v24[16] = 175; | |
v24[1] = 333; | |
v24[17] = 333; | |
v24[2] = 530; | |
v24[18] = 530; | |
v24[165] = 0; | |
v24[169] = 0; | |
v24[173] = 0; | |
} | |
v21 >>= 1; | |
v22 += 512; | |
} | |
*(_DWORD *)((unsigned int)((_DWORD)v1 << 24) + 0x601000080LL) |= 1u; | |
v25 = sub_1800D5F1C(v20); | |
while ( !(*(_DWORD *)((unsigned int)((_DWORD)v1 << 24) + 0x601000208LL) & 1) ) | |
{ | |
if ( sub_1800D5F30(v25, 0x989680uLL) ) | |
{ | |
v34 = *(unsigned int *)((unsigned int)((_DWORD)v1 << 24) + 0x601000208LL); | |
sub_1800EF260((__int64)"%llx:%d\n", v26, v27, v28, v29, v30, v31, v32, -8379977398048039662LL); | |
sub_1800EF260((__int64)"%llx:%d\n", v35, v36, v37, v38, v39, v40, v41, -8379977398048039662LL); | |
goto LABEL_41; | |
} | |
sub_1800D5F60(10LL); | |
} | |
*(_BYTE *)((unsigned int)v1 + 0x180115A20LL) = 1; | |
++MEMORY[0x18011AA74]; | |
v33 = MEMORY[0x18011AA78]; | |
if ( !MEMORY[0x18011AA78] ) | |
{ | |
sub_1800F0E34(0x300u, 458752, &v44); | |
v33 = v44; | |
MEMORY[0x18011AA78] = v44; | |
} | |
(*(void (__fastcall **)(_QWORD))(v33 + 8))(*(unsigned int *)(v3 + 40LL * (unsigned int)v1 + 8)); | |
sub_1800B5938(v1); | |
} | |
result = 1LL; | |
LABEL_44: | |
if ( 5139240511851214385LL != v45 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180108958: using guessed type __int64 qword_180108958[183]; | |
// 180111628: using guessed type __int64 qword_180111628[5]; | |
// 1801116E0: using guessed type __int64 (*off_1801116E0)[5]; | |
// 180111740: using guessed type __int64 (*off_180111740)[5]; | |
// 1801117A0: using guessed type __int64 qword_1801117A0[5]; | |
// 1801117C8: using guessed type __int64 qword_1801117C8[5]; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800C7F30) ---------------------------------------------------- | |
__int64 __fastcall sub_1800C7F30(__int64 result) | |
{ | |
_DWORD *v1; // x19 | |
*(_DWORD *)((unsigned int)(((_DWORD)result << 7) + 308) | 0x600000000LL) &= 0xFFFFFFFE; | |
*(_DWORD *)((unsigned int)(((_DWORD)result << 7) + 292) | 0x600000000LL) &= 0xFFFFFFFE; | |
*(_DWORD *)((unsigned int)(((_DWORD)result << 7) + 256) | 0x600000000LL) &= 0xFFFFFFFE; | |
v1 = (_DWORD *)((unsigned int)(((_DWORD)result << 7) + 260) | 0x600000000LL); | |
while ( *v1 & 1 ) | |
result = sub_1800D5F60(10LL); | |
return result; | |
} | |
//----- (00000001800C7FA4) ---------------------------------------------------- | |
__int64 sub_1800C7FA4() | |
{ | |
JUMPOUT(MEMORY[0x18011AA71], 0, sub_1800C7FC8); | |
MEMORY[0x600000024] &= 0xFFFFFFFE; | |
return sub_1800C7FC8(); | |
} | |
//----- (00000001800C7FC8) ---------------------------------------------------- | |
__int64 sub_1800C7FC8() | |
{ | |
sub_1800D3C2C(88LL, 1); | |
sub_1800D5F60(10LL); | |
sub_1800D3AEC(89LL); | |
sub_1800D3AEC(32LL); | |
sub_1800D3AEC(88LL); | |
return sub_1800D3C2C(88LL, 0); | |
} | |
//----- (00000001800C800C) ---------------------------------------------------- | |
void __fastcall sub_1800C800C(__int64 a1) | |
{ | |
__int64 v1; // x0 | |
__int64 v2; // x19 | |
__int64 v3; // x23 | |
__int64 v4; // x24 | |
__int64 v5; // x0 | |
__int64 v6; // x20 | |
__int64 v7; // x1 | |
__int64 v8; // x2 | |
__int64 v9; // x3 | |
__int64 v10; // x4 | |
__int64 v11; // x5 | |
__int64 v12; // x6 | |
__int64 v13; // x7 | |
__int64 v14; // x20 | |
__int64 v15; // x1 | |
__int64 v16; // x2 | |
__int64 v17; // x3 | |
__int64 v18; // x4 | |
__int64 v19; // x5 | |
__int64 v20; // x6 | |
__int64 v21; // x7 | |
unsigned int *v22; // x20 | |
v2 = a1; | |
if ( *(_BYTE *)((unsigned int)a1 + 0x180115A20LL) ) | |
{ | |
v3 = MEMORY[0x180115A18]; | |
*(_DWORD *)((unsigned int)((_DWORD)a1 << 6) + 0x600004020LL) = 0; | |
v4 = (unsigned int)((_DWORD)a1 << 24); | |
*(_DWORD *)(v4 + 0x60100008CLL) = 49; | |
v5 = sub_1800D5F1C(a1); | |
v6 = v5; | |
while ( *(_DWORD *)(v4 + 25786581132LL) & 1 ) | |
{ | |
if ( sub_1800D5F30(v6, 0x2710uLL) ) | |
{ | |
v5 = sub_1800EF260((__int64)"%llx:%d\n", v7, v8, v9, v10, v11, v12, v13, -8379977398048039662LL); | |
break; | |
} | |
v5 = sub_1800D5F60(10LL); | |
} | |
v14 = sub_1800D5F1C(v5); | |
while ( !(*(_DWORD *)(v4 + 25786581512LL) & 0x40) ) | |
{ | |
if ( sub_1800D5F30(v14, 0x2710uLL) ) | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v15, v16, v17, v18, v19, v20, v21, -8379977398048039662LL); | |
break; | |
} | |
sub_1800D5F60(10LL); | |
} | |
v22 = (unsigned int *)(v3 + 40LL * (unsigned int)v2); | |
sub_1800B7F70(*v22, 2); | |
sub_1800D5F60(25LL); | |
sub_1800B7F70(*v22, 4); | |
sub_1800B7F70(v22[1], 4); | |
(*(void (__fastcall **)(_QWORD))(MEMORY[0x18011AA78] + 16LL))(v22[2]); | |
sub_1800C7F30(v2); | |
*(_BYTE *)((unsigned int)v2 + 0x180115A20LL) = 0; | |
if ( !--MEMORY[0x18011AA74] ) | |
sub_1800C7FA4(); | |
v1 = *(_QWORD *)(8LL * (unsigned int)v2 + 0x180119BB8LL); | |
if ( v1 ) | |
{ | |
sub_1800E4244(v1); | |
*(_QWORD *)(8LL * (unsigned int)v2 + 0x180119BB8LL) = 0LL; | |
} | |
} | |
} | |
//----- (00000001800C81B0) ---------------------------------------------------- | |
__int64 sub_1800C81B0() | |
{ | |
return MEMORY[0x18011AA74]; | |
} | |
//----- (00000001800C81C0) ---------------------------------------------------- | |
void __fastcall sub_1800C81C0(__int64 a1) | |
{ | |
__int64 v1; // x19 | |
_QWORD *v2; // x20 | |
_QWORD *v3; // x0 | |
unsigned int v4; // w3 | |
__int64 v5; // x5 | |
__int64 v6; // x6 | |
__int64 v7; // x7 | |
unsigned __int64 v8; // x26 | |
int *v9; // x27 | |
int *v10; // x28 | |
unsigned int v11; // w3 | |
__int64 v12; // x5 | |
__int64 v13; // x6 | |
__int64 v14; // x7 | |
unsigned int v15; // w3 | |
unsigned int v16; // w3 | |
signed __int64 v17; // x8 | |
__int64 v18; // [xsp+10h] [xbp-70h] | |
char v19; // [xsp+18h] [xbp-68h] | |
__int64 v20; // [xsp+28h] [xbp-58h] | |
v1 = a1; | |
v20 = 5139240511851214385LL; | |
v2 = (_QWORD *)sub_1800EDBF4(0x1000uLL); | |
sub_1800F05A0(v2, 0x1000uLL); | |
v3 = sub_1800E0B84((__int64)qword_1801117A0, 1u, v2, 0LL); | |
v4 = (unsigned int)((char *)sub_1800E0B84((__int64)qword_1801117C8, 1u, v3, 0LL) - (_DWORD)v2); | |
if ( v4 >= 0x1000 ) | |
{ | |
v17 = 1376LL; | |
goto LABEL_14; | |
} | |
sub_1800EC16C(v1, "apcie-common-tunables", v2, v4); | |
v8 = 0LL; | |
v9 = &dword_180111748; | |
v10 = &dword_1801116E8; | |
while ( v8 < 4 ) | |
{ | |
sub_1800EFC74(&v19, 0x10uLL, 0LL, 0x10uLL, (__int64)"pci-bridge%d", v5, v6, v7, v8); | |
if ( (unsigned int)sub_1800EBDF4(v1, &v19, &v18) ) | |
{ | |
sub_1800F05A0(v2, 0x1000uLL); | |
v11 = (unsigned int)((char *)sub_1800E0B84(*((_QWORD *)v9 - 1), *v9, v2, *((_QWORD *)v9 + 1)) - (_DWORD)v2); | |
if ( v11 >= 0x1000 ) | |
{ | |
v17 = 1399LL; | |
goto LABEL_14; | |
} | |
sub_1800EC16C(v18, "apcie-config-tunables", v2, v11); | |
sub_1800EFC74(&v19, 0x10uLL, 0LL, 0x10uLL, (__int64)"pcie-rc%d", v12, v13, v14, v8); | |
sub_1800F05A0(v2, 0x1000uLL); | |
v15 = (unsigned int)((char *)sub_1800E0B84(*((_QWORD *)v10 - 1), *v10, v2, *((_QWORD *)v10 + 1)) - (_DWORD)v2); | |
if ( v15 >= 0x1000 ) | |
{ | |
v17 = 1412LL; | |
goto LABEL_14; | |
} | |
sub_1800EC16C(v18, "pcie-rc-tunables", v2, v15); | |
} | |
++v8; | |
v9 += 6; | |
v10 += 6; | |
} | |
sub_1800F05A0(v2, 0x1000uLL); | |
v16 = (unsigned int)((char *)sub_1800E0B84((__int64)qword_180111628, 1u, v2, 25769836544LL) - (_DWORD)v2); | |
if ( v16 > 0xFFF ) | |
{ | |
v17 = 1429LL; | |
LABEL_14: | |
sub_1800D489C("%llx:%d", &byte_180101040, -8379977398048039662LL, v17); | |
} | |
sub_1800EC16C(v1, "phy-params", v2, v16); | |
sub_1800EE010(v2); | |
if ( 5139240511851214385LL != v20 ) | |
sub_1800D4A5C(); | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 180111628: using guessed type __int64 qword_180111628[5]; | |
// 1801116E8: using guessed type int dword_1801116E8; | |
// 180111748: using guessed type int dword_180111748; | |
// 1801117A0: using guessed type __int64 qword_1801117A0[5]; | |
// 1801117C8: using guessed type __int64 qword_1801117C8[5]; | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
//----- (00000001800C8468) ---------------------------------------------------- | |
__int64 __fastcall sub_1800C8468(__int64 result) | |
{ | |
return (unsigned int)result; | |
} | |
//----- (00000001800C8470) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800C8470(unsigned __int64 a1, __int64 a2) | |
{ | |
__int64 v2; // x29 | |
__int64 v3; // x30 | |
unsigned __int64 v4; // x8 | |
bool v5; // cf | |
bool v6; // zf | |
if ( a1 >> 32 | |
|| ((v4 = a2 + a1, (a2 + a1) >> 25 <= 0x60) ? (v5 = v4 >= a1, v6 = v4 == a1) : (v5 = 0, v6 = 0), v6 || !v5) ) | |
{ | |
sub_1800D489C("%llx:%d", &byte_180101040, -8379977398048039662LL, 1487LL, v2, v3); | |
} | |
return a1 & 0x1FFFFFF | 0x7C0000000LL; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800C84D4) ---------------------------------------------------- | |
bool sub_1800C84D4() | |
{ | |
return (unsigned int)sub_1800B8990() > 6; | |
} | |
//----- (00000001800C84F0) ---------------------------------------------------- | |
__int64 sub_1800C84F0() | |
{ | |
return MEMORY[0x2102BC000] & 1; | |
} | |
//----- (00000001800C8520) ---------------------------------------------------- | |
void sub_1800C8520() | |
{ | |
MEMORY[0x2102BC000] &= 0xFFFFFFFE; | |
} | |
//----- (00000001800C853C) ---------------------------------------------------- | |
__int64 sub_1800C853C() | |
{ | |
return (MEMORY[0x2102BC200] >> 1) & 1; | |
} | |
//----- (00000001800C8554) ---------------------------------------------------- | |
__int64 sub_1800C8554() | |
{ | |
return (MEMORY[0x2102BC000] >> 2) & 3; | |
} | |
//----- (00000001800C856C) ---------------------------------------------------- | |
__int64 sub_1800C856C() | |
{ | |
return (MEMORY[0x2102BC000] >> 4) & 7; | |
} | |
//----- (00000001800C8584) ---------------------------------------------------- | |
__int64 sub_1800C8584() | |
{ | |
return (unsigned __int16)(MEMORY[0x2102BC000] >> 9); | |
} | |
//----- (00000001800C859C) ---------------------------------------------------- | |
signed __int64 sub_1800C859C() | |
{ | |
return 32784LL; | |
} | |
//----- (00000001800C85A4) ---------------------------------------------------- | |
__int64 sub_1800C85A4() | |
{ | |
return (MEMORY[0x2102BC010] >> 21) & 0x70 | (MEMORY[0x2102BC010] >> 22) & 7u; | |
} | |
//----- (00000001800C85C4) ---------------------------------------------------- | |
unsigned __int64 sub_1800C85C4() | |
{ | |
return MEMORY[0x2102BC080] | ((unsigned __int64)MEMORY[0x2102BC084] << 32); | |
} | |
//----- (00000001800C85E0) ---------------------------------------------------- | |
unsigned __int64 sub_1800C85E0() | |
{ | |
return MEMORY[0x2102BC080] | ((unsigned __int64)MEMORY[0x2102BC084] << 32); | |
} | |
//----- (00000001800C85FC) ---------------------------------------------------- | |
__int64 sub_1800C85FC() | |
{ | |
return (unsigned int)(MEMORY[0x2102BC004] >> 31); | |
} | |
//----- (00000001800C8614) ---------------------------------------------------- | |
__int64 __fastcall sub_1800C8614(__int64 result) | |
{ | |
__int64 v1; // x29 | |
__int64 v2; // x30 | |
if ( (_DWORD)result ) | |
{ | |
MEMORY[0x2102BC004] |= 0x80000000; | |
__dsb(0xFu); | |
if ( !(MEMORY[0x2102BC004] & 0x80000000) ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -9100884660523287136LL, 132LL, v1, v2); | |
} | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800C8678) ---------------------------------------------------- | |
__int64 sub_1800C8678() | |
{ | |
return (MEMORY[0x2102BC004] >> 29) & 1; | |
} | |
//----- (00000001800C8690) ---------------------------------------------------- | |
__int64 sub_1800C8690() | |
{ | |
return MEMORY[0x2102BC010] & 0x1F; | |
} | |
//----- (00000001800C86A8) ---------------------------------------------------- | |
__int64 sub_1800C86A8() | |
{ | |
return 0LL; | |
} | |
//----- (00000001800C86B0) ---------------------------------------------------- | |
__int64 __fastcall sub_1800C86B0(int a1) | |
{ | |
__int64 v1; // x29 | |
__int64 v2; // x30 | |
if ( a1 == 2 ) | |
return MEMORY[0x2102BC00C] & 0x7FF; | |
if ( a1 == 1 ) | |
return (unsigned int)(MEMORY[0x2102BC008] >> 21); | |
if ( a1 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -9100884660523287136LL, 214LL, v1, v2); | |
return (MEMORY[0x2102BC008] >> 10) & 0x7FF; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800C8744) ---------------------------------------------------- | |
__int64 __fastcall sub_1800C8744(int a1) | |
{ | |
_DWORD *v1; // x19 | |
__int64 v2; // x2 | |
__int64 v3; // x3 | |
__int64 v4; // x4 | |
__int64 v5; // x5 | |
__int64 v6; // x6 | |
__int64 v7; // x7 | |
__int64 v8; // x2 | |
__int64 v9; // x3 | |
__int64 v10; // x4 | |
__int64 v11; // x5 | |
__int64 v12; // x6 | |
__int64 v13; // x7 | |
__int64 v14; // x2 | |
__int64 v15; // x3 | |
__int64 v16; // x4 | |
__int64 v17; // x5 | |
__int64 v18; // x6 | |
__int64 v19; // x7 | |
if ( a1 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, 8310486055969749394LL, 35LL); | |
sub_1800D39CC(63LL, 1); | |
sub_1800D39CC(64LL, 1); | |
sub_1800D39CC(65LL, 1); | |
sub_1800D39CC(66LL, 1); | |
sub_1800D39CC(62LL, 1); | |
sub_1800B62F8(0LL); | |
v1 = (_DWORD *)sub_1800B6010(); | |
if ( sub_1800E0D14() && *v1 == 1 && v1[1] == 5 && v1[2] == 1 ) | |
{ | |
sub_1800B797C(0xF4240u, 0LL, v2, v3, v4, v5, v6, v7); | |
sub_1800B70E4(8842903568LL, 0LL, v8, v9, v10, v11, v12, v13); | |
sub_1800B70E4(8842903572LL, 0LL, v14, v15, v16, v17, v18, v19); | |
} | |
return 0LL; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800C8850) ---------------------------------------------------- | |
_DWORD *sub_1800C8850() | |
{ | |
_DWORD *result; // x0 | |
_DWORD *v1; // x19 | |
__int64 v2; // x2 | |
__int64 v3; // x3 | |
__int64 v4; // x4 | |
__int64 v5; // x5 | |
__int64 v6; // x6 | |
__int64 v7; // x7 | |
__int64 v8; // x24 | |
__int64 v9; // x22 | |
__int64 v10; // x21 | |
__int64 v11; // x2 | |
__int64 v12; // x3 | |
__int64 v13; // x4 | |
__int64 v14; // x5 | |
__int64 v15; // x6 | |
__int64 v16; // x7 | |
__int64 v17; // x2 | |
__int64 v18; // x3 | |
__int64 v19; // x4 | |
__int64 v20; // x5 | |
__int64 v21; // x6 | |
__int64 v22; // x7 | |
__int64 v23; // x2 | |
__int64 v24; // x3 | |
__int64 v25; // x4 | |
__int64 v26; // x5 | |
__int64 v27; // x6 | |
__int64 v28; // x7 | |
__int64 v29; // x2 | |
__int64 v30; // x3 | |
__int64 v31; // x4 | |
__int64 v32; // x5 | |
__int64 v33; // x6 | |
__int64 v34; // x7 | |
__int64 v35; // x2 | |
__int64 v36; // x3 | |
__int64 v37; // x4 | |
__int64 v38; // x5 | |
__int64 v39; // x6 | |
__int64 v40; // x7 | |
__int64 v41; // x2 | |
__int64 v42; // x3 | |
__int64 v43; // x4 | |
__int64 v44; // x5 | |
__int64 v45; // x6 | |
__int64 v46; // x7 | |
__int64 v47; // x2 | |
__int64 v48; // x3 | |
__int64 v49; // x4 | |
__int64 v50; // x5 | |
__int64 v51; // x6 | |
__int64 v52; // x7 | |
__int64 v53; // x2 | |
__int64 v54; // x3 | |
__int64 v55; // x4 | |
__int64 v56; // x5 | |
__int64 v57; // x6 | |
__int64 v58; // x7 | |
__int64 v59; // x2 | |
__int64 v60; // x3 | |
__int64 v61; // x4 | |
__int64 v62; // x5 | |
__int64 v63; // x6 | |
__int64 v64; // x7 | |
__int64 v65; // x2 | |
__int64 v66; // x3 | |
__int64 v67; // x4 | |
__int64 v68; // x5 | |
__int64 v69; // x6 | |
__int64 v70; // x7 | |
__int64 v71; // x2 | |
__int64 v72; // x3 | |
__int64 v73; // x4 | |
__int64 v74; // x5 | |
__int64 v75; // x6 | |
__int64 v76; // x7 | |
__int64 v77; // x2 | |
__int64 v78; // x3 | |
__int64 v79; // x4 | |
__int64 v80; // x5 | |
__int64 v81; // x6 | |
__int64 v82; // x7 | |
__int64 v83; // x2 | |
__int64 v84; // x3 | |
__int64 v85; // x4 | |
__int64 v86; // x5 | |
__int64 v87; // x6 | |
__int64 v88; // x7 | |
__int64 v89; // x2 | |
__int64 v90; // x3 | |
__int64 v91; // x4 | |
__int64 v92; // x5 | |
__int64 v93; // x6 | |
__int64 v94; // x7 | |
__int64 v95; // x2 | |
__int64 v96; // x3 | |
__int64 v97; // x4 | |
__int64 v98; // x5 | |
__int64 v99; // x6 | |
__int64 v100; // x7 | |
__int64 v101; // x2 | |
__int64 v102; // x3 | |
__int64 v103; // x4 | |
__int64 v104; // x5 | |
__int64 v105; // x6 | |
__int64 v106; // x7 | |
__int64 v107; // x2 | |
__int64 v108; // x3 | |
__int64 v109; // x4 | |
__int64 v110; // x5 | |
__int64 v111; // x6 | |
__int64 v112; // x7 | |
__int64 v113; // x2 | |
__int64 v114; // x3 | |
__int64 v115; // x4 | |
__int64 v116; // x5 | |
__int64 v117; // x6 | |
__int64 v118; // x7 | |
__int64 v119; // x2 | |
__int64 v120; // x3 | |
__int64 v121; // x4 | |
__int64 v122; // x5 | |
__int64 v123; // x6 | |
__int64 v124; // x7 | |
__int64 v125; // x2 | |
__int64 v126; // x3 | |
__int64 v127; // x4 | |
__int64 v128; // x5 | |
__int64 v129; // x6 | |
__int64 v130; // x7 | |
__int64 v131; // x2 | |
__int64 v132; // x3 | |
__int64 v133; // x4 | |
__int64 v134; // x5 | |
__int64 v135; // x6 | |
__int64 v136; // x7 | |
__int64 v137; // x2 | |
__int64 v138; // x3 | |
__int64 v139; // x4 | |
__int64 v140; // x5 | |
__int64 v141; // x6 | |
__int64 v142; // x7 | |
__int64 v143; // x2 | |
__int64 v144; // x3 | |
__int64 v145; // x4 | |
__int64 v146; // x5 | |
__int64 v147; // x6 | |
__int64 v148; // x7 | |
__int64 v149; // x2 | |
__int64 v150; // x3 | |
__int64 v151; // x4 | |
__int64 v152; // x5 | |
__int64 v153; // x6 | |
__int64 v154; // x7 | |
__int64 v155; // x2 | |
__int64 v156; // x3 | |
__int64 v157; // x4 | |
__int64 v158; // x5 | |
__int64 v159; // x6 | |
__int64 v160; // x7 | |
__int64 v161; // x2 | |
__int64 v162; // x3 | |
__int64 v163; // x4 | |
__int64 v164; // x5 | |
__int64 v165; // x6 | |
__int64 v166; // x7 | |
__int64 v167; // x2 | |
__int64 v168; // x3 | |
__int64 v169; // x4 | |
__int64 v170; // x5 | |
__int64 v171; // x6 | |
__int64 v172; // x7 | |
__int64 v173; // x2 | |
__int64 v174; // x3 | |
__int64 v175; // x4 | |
__int64 v176; // x5 | |
__int64 v177; // x6 | |
__int64 v178; // x7 | |
__int64 v179; // x2 | |
__int64 v180; // x3 | |
__int64 v181; // x4 | |
__int64 v182; // x5 | |
__int64 v183; // x6 | |
__int64 v184; // x7 | |
__int64 v185; // x2 | |
__int64 v186; // x3 | |
__int64 v187; // x4 | |
__int64 v188; // x5 | |
__int64 v189; // x6 | |
__int64 v190; // x7 | |
result = (_DWORD *)sub_1800B6010(); | |
v1 = result; | |
if ( *result == 1 ) | |
{ | |
if ( result[5] == 3 && result[1] == 5 && result[2] <= 1u ) | |
{ | |
result = (_DWORD *)sub_1800D61EC(); | |
if ( (_DWORD)result ) | |
{ | |
v8 = MEMORY[0x20F140090]; | |
v9 = MEMORY[0x20F140010]; | |
v10 = MEMORY[0x20F140014]; | |
sub_1800B70E4(8842903696LL, 75LL, v2, v3, v4, v5, v6, v7); | |
sub_1800B70E4(8842903568LL, 0LL, v11, v12, v13, v14, v15, v16); | |
sub_1800B70E4(8842903572LL, 0LL, v17, v18, v19, v20, v21, v22); | |
sub_1800B75EC(1, 4LL, 1, 9, (_BYTE *)0x20); | |
sub_1800B75EC(1, 4LL, 1, 9, (_BYTE *)0x20); | |
sub_1800B75EC(1, 4LL, 1, 9, (_BYTE *)0x20); | |
sub_1800B75EC(1, 4LL, 1, 9, (_BYTE *)0xFF); | |
sub_1800B716C(8592032836LL, 262400LL, v23, v24, v25, v26, v27, v28); | |
sub_1800B75EC(1, 4LL, 1, 9, 0LL); | |
sub_1800B716C(8592032836LL, 256LL, v29, v30, v31, v32, v33, v34); | |
sub_1800B75EC(1, 4LL, 1, 9, (_BYTE *)0x80); | |
sub_1800B716C(8592032836LL, 256LL, v35, v36, v37, v38, v39, v40); | |
sub_1800B75EC(1, 4LL, 1, 9, (_BYTE *)0x20); | |
sub_1800B716C(8592032836LL, 256LL, v41, v42, v43, v44, v45, v46); | |
sub_1800B75EC(1, 4LL, 1, 9, 0LL); | |
sub_1800B716C(8592032836LL, 256LL, v47, v48, v49, v50, v51, v52); | |
sub_1800B75EC(1, 4LL, 1, 9, 0LL); | |
sub_1800B716C(8592032836LL, 262400LL, v53, v54, v55, v56, v57, v58); | |
sub_1800B75EC(1, 4LL, 1, 9, 0LL); | |
sub_1800B716C(8592032836LL, 256LL, v59, v60, v61, v62, v63, v64); | |
sub_1800B75EC(1, 4LL, 1, 9, (_BYTE *)0x80); | |
sub_1800B716C(8592032836LL, 131328LL, v65, v66, v67, v68, v69, v70); | |
sub_1800B75EC(1, 4LL, 1, 9, 0LL); | |
sub_1800B716C(8592032836LL, 256LL, v71, v72, v73, v74, v75, v76); | |
sub_1800B75EC(1, 4LL, 1, 9, 0LL); | |
sub_1800B716C(8592032836LL, 256LL, v77, v78, v79, v80, v81, v82); | |
sub_1800B75EC(1, 4LL, 1, 9, 0LL); | |
sub_1800B716C(8592032836LL, 256LL, v83, v84, v85, v86, v87, v88); | |
sub_1800B75EC(1, 4LL, 1, 9, (_BYTE *)4); | |
sub_1800B716C(8592032836LL, 256LL, v89, v90, v91, v92, v93, v94); | |
sub_1800B75EC(1, 4LL, 1, 9, (_BYTE *)0x20); | |
sub_1800B716C(8592032836LL, 262400LL, v95, v96, v97, v98, v99, v100); | |
sub_1800B75EC(1, 4LL, 1, 9, 0LL); | |
sub_1800B716C(8592032836LL, 256LL, v101, v102, v103, v104, v105, v106); | |
sub_1800B75EC(1, 4LL, 1, 9, 0LL); | |
sub_1800B716C(8592032836LL, 256LL, v107, v108, v109, v110, v111, v112); | |
sub_1800B75EC(1, 4LL, 1, 9, 0LL); | |
sub_1800B70E4(8842903696LL, v8, v113, v114, v115, v116, v117, v118); | |
sub_1800B70E4(8842903568LL, v9, v119, v120, v121, v122, v123, v124); | |
result = (_DWORD *)sub_1800B70E4(8842903572LL, v10, v125, v126, v127, v128, v129, v130); | |
} | |
} | |
if ( v1[1] == 5 && !v1[2] ) | |
{ | |
sub_1800B75EC(1, 4LL, 1, 9, (_BYTE *)0x20); | |
sub_1800B75EC(1, 4LL, 1, 9, (_BYTE *)0x20); | |
sub_1800B75EC(1, 4LL, 1, 9, (_BYTE *)0x20); | |
sub_1800B75EC(1, 4LL, 1, 9, (_BYTE *)0xFF); | |
sub_1800B716C(8592032836LL, 262400LL, v131, v132, v133, v134, v135, v136); | |
sub_1800B75EC(1, 4LL, 1, 9, 0LL); | |
sub_1800B716C(8592032836LL, 256LL, v137, v138, v139, v140, v141, v142); | |
sub_1800B75EC(1, 4LL, 1, 9, (_BYTE *)4); | |
sub_1800B716C(8592032836LL, 256LL, v143, v144, v145, v146, v147, v148); | |
sub_1800B75EC(1, 4LL, 1, 9, (_BYTE *)0x40); | |
sub_1800B716C(8592032836LL, 256LL, v149, v150, v151, v152, v153, v154); | |
sub_1800B75EC(1, 4LL, 1, 9, 0LL); | |
sub_1800B716C(8592032836LL, 256LL, v155, v156, v157, v158, v159, v160); | |
sub_1800B75EC(1, 4LL, 1, 9, 0LL); | |
sub_1800B716C(8592032836LL, 256LL, v161, v162, v163, v164, v165, v166); | |
sub_1800B75EC(1, 4LL, 1, 9, (_BYTE *)4); | |
sub_1800B716C(8592032836LL, 256LL, v167, v168, v169, v170, v171, v172); | |
sub_1800B75EC(1, 4LL, 1, 9, (_BYTE *)0x20); | |
sub_1800B716C(8592032836LL, 262400LL, v173, v174, v175, v176, v177, v178); | |
sub_1800B75EC(1, 4LL, 1, 9, 0LL); | |
sub_1800B716C(8592032836LL, 256LL, v179, v180, v181, v182, v183, v184); | |
sub_1800B75EC(1, 4LL, 1, 9, 0LL); | |
sub_1800B716C(8592032836LL, 256LL, v185, v186, v187, v188, v189, v190); | |
result = (_DWORD *)sub_1800B75EC(1, 4LL, 1, 9, 0LL); | |
} | |
} | |
return result; | |
} | |
//----- (00000001800C8E8C) ---------------------------------------------------- | |
_DWORD *sub_1800C8E8C() | |
{ | |
_DWORD *result; // x0 | |
__int64 v1; // x2 | |
__int64 v2; // x3 | |
__int64 v3; // x4 | |
__int64 v4; // x5 | |
__int64 v5; // x6 | |
__int64 v6; // x7 | |
__int64 v7; // x2 | |
__int64 v8; // x3 | |
__int64 v9; // x4 | |
__int64 v10; // x5 | |
__int64 v11; // x6 | |
__int64 v12; // x7 | |
__int64 v13; // x2 | |
__int64 v14; // x3 | |
__int64 v15; // x4 | |
__int64 v16; // x5 | |
__int64 v17; // x6 | |
__int64 v18; // x7 | |
result = (_DWORD *)sub_1800B6010(); | |
if ( *result == 1 && result[1] == 5 && result[2] == 1 ) | |
{ | |
sub_1800B75EC(1, 4LL, 1, 11, (_BYTE *)0x34); | |
sub_1800B75EC(2, 4LL, 1, 0, (_BYTE *)0x4F); | |
sub_1800B797C(1u, (__int64)"Workaround-Samsung--step-12-tzQCAL", v1, v2, v3, v4, v5, v6); | |
sub_1800B75EC(2, 4LL, 1, 0, (_BYTE *)0x51); | |
sub_1800B797C(1u, (__int64)"Workaround-Samsung--step-12-tZQLAT", v7, v8, v9, v10, v11, v12); | |
result = (_DWORD *)sub_1800B716C(8592032860LL, 3003331595LL, v13, v14, v15, v16, v17, v18); | |
} | |
return result; | |
} | |
//----- (00000001800C8F48) ---------------------------------------------------- | |
__int64 *__fastcall sub_1800C8F48(_DWORD *a1) | |
{ | |
if ( a1 ) | |
*a1 = 68; | |
return &qword_18010D1B0; | |
} | |
// 18010D1B0: using guessed type __int64 qword_18010D1B0; | |
//----- (00000001800C8F60) ---------------------------------------------------- | |
void sub_1800C8F60() | |
{ | |
unsigned int v0; // w21 | |
unsigned int *v1; // x19 | |
unsigned __int64 *i; // x22 | |
bool v3; // w0 | |
__int64 v4; // x20 | |
__int64 j; // x23 | |
v0 = 0; | |
v1 = 0LL; | |
for ( i = (unsigned __int64 *)&qword_18010D1B0; v0 <= 0x43 && *i; i += 2 ) | |
{ | |
if ( (unsigned int *)*i != v1 ) | |
{ | |
v1 = (unsigned int *)*i; | |
v3 = sub_1800B74D4(*i); | |
v4 = *v1; | |
if ( v3 ) | |
{ | |
sub_1800BA5EC((signed __int64 *)7, (unsigned __int64)v1, *v1, 0); | |
} | |
else | |
{ | |
for ( j = 0LL; j != 0x40000; j += 0x10000LL ) | |
sub_1800BA5EC((signed __int64 *)7, (unsigned __int64)&v1[j], v4, 0); | |
} | |
} | |
++v0; | |
} | |
} | |
// 18010D1B0: using guessed type __int64 qword_18010D1B0; | |
//----- (00000001800C9014) ---------------------------------------------------- | |
_DWORD *__fastcall sub_1800C9014(_DWORD *result, int a2) | |
{ | |
_DWORD *v2; // x9 | |
__int64 v3; // x11 | |
signed __int64 v4; // x9 | |
_DWORD *v5; // x13 | |
__int64 v6; // x14 | |
_DWORD *v7; // x15 | |
__int64 v8; // x9 | |
_DWORD *v9; // x12 | |
__int64 v10; // x9 | |
_DWORD *v11; // x10 | |
__int64 v12; // x10 | |
_DWORD *v13; // x12 | |
__int64 v14; // x10 | |
_DWORD *v15; // x12 | |
__int64 v16; // x10 | |
_DWORD *v17; // x12 | |
__int64 v18; // x10 | |
_DWORD *v19; // x12 | |
__int64 v20; // x10 | |
_DWORD *v21; // x12 | |
__int64 v22; // x10 | |
_DWORD *v23; // x12 | |
__int64 v24; // x10 | |
_DWORD *v25; // x12 | |
__int64 v26; // x10 | |
_DWORD *v27; // x11 | |
_DWORD *v28; // x9 | |
_DWORD *v29; // x12 | |
__int64 v30; // x11 | |
_DWORD *v31; // x12 | |
__int64 v32; // x8 | |
_DWORD *v33; // x12 | |
__int64 v34; // x8 | |
_DWORD *v35; // x12 | |
__int64 v36; // x8 | |
_DWORD *v37; // x12 | |
__int64 v38; // x8 | |
_DWORD *v39; // x11 | |
signed __int64 v40; // x12 | |
__int64 v41; // x13 | |
_DWORD *v42; // x14 | |
__int64 v43; // x8 | |
_DWORD *v44; // x12 | |
__int64 v45; // x8 | |
_DWORD *v46; // x10 | |
__int64 v47; // x8 | |
_DWORD *v48; // x10 | |
_DWORD *v49; // x11 | |
__int64 v50; // x8 | |
_DWORD *v51; // x10 | |
_DWORD *v52; // x11 | |
__int64 v53; // x8 | |
_DWORD *v54; // x10 | |
_DWORD *v55; // x11 | |
__int64 v56; // x8 | |
_DWORD *v57; // x10 | |
if ( a2 ) | |
{ | |
v2 = (_DWORD *)8592196036LL; | |
if ( a2 == 2 ) | |
{ | |
v30 = 0LL; | |
*result = MEMORY[0x2000004C8]; | |
result[1] = MEMORY[0x2000004A4]; | |
v31 = (_DWORD *)8592164608LL; | |
while ( v30 != 4 ) | |
{ | |
result[v30 + 2] = *v31; | |
++v30; | |
v31 += 0x10000; | |
} | |
v32 = 0LL; | |
v33 = (_DWORD *)8592164616LL; | |
while ( v32 != 4 ) | |
{ | |
result[v32 + 6] = *v33; | |
++v32; | |
v33 += 0x10000; | |
} | |
v34 = 0LL; | |
v35 = (_DWORD *)8592164624LL; | |
while ( v34 != 4 ) | |
{ | |
result[v34 + 10] = *v35; | |
++v34; | |
v35 += 0x10000; | |
} | |
v36 = 0LL; | |
v37 = (_DWORD *)8592164864LL; | |
while ( v36 != 4 ) | |
{ | |
result[v36 + 14] = *v37; | |
++v36; | |
v37 += 0x10000; | |
} | |
v38 = 0LL; | |
v39 = result + 18; | |
v40 = 8592164096LL; | |
while ( v38 != 6 ) | |
{ | |
v41 = 0LL; | |
v42 = (_DWORD *)v40; | |
while ( v41 != 4 ) | |
{ | |
v39[v41] = *v42; | |
++v41; | |
v42 += 0x10000; | |
} | |
v39 += 4; | |
++v38; | |
v40 += 4LL; | |
} | |
v43 = 0LL; | |
v44 = (_DWORD *)8592164120LL; | |
while ( v43 != 4 ) | |
{ | |
result[v43 + 42] = *v44; | |
++v43; | |
v44 += 0x10000; | |
} | |
v45 = 0LL; | |
v46 = (_DWORD *)8592164124LL; | |
while ( v45 != 4 ) | |
{ | |
result[v45 + 46] = *v46; | |
++v45; | |
v46 += 0x10000; | |
} | |
v47 = 0LL; | |
v48 = result + 50; | |
v49 = (_DWORD *)8592197380LL; | |
while ( v47 != 8 ) | |
{ | |
v48[v47] = *v49; | |
v48[v47 + 1] = v49[0x2000]; | |
v47 += 2LL; | |
v49 += 0x10000; | |
} | |
v50 = 0LL; | |
v51 = result + 58; | |
v52 = (_DWORD *)8592196040LL; | |
while ( v50 != 8 ) | |
{ | |
v51[v50] = *v52; | |
v51[v50 + 1] = v52[0x2000]; | |
v50 += 2LL; | |
v52 += 0x10000; | |
} | |
v53 = 0LL; | |
v54 = result + 66; | |
v55 = (_DWORD *)8592196044LL; | |
while ( v53 != 8 ) | |
{ | |
v54[v53] = *v55; | |
v54[v53 + 1] = v55[0x2000]; | |
v53 += 2LL; | |
v55 += 0x10000; | |
} | |
v56 = 0LL; | |
v57 = result + 74; | |
while ( v56 != 8 ) | |
{ | |
v57[v56] = *v2; | |
v57[v56 + 1] = v2[0x2000]; | |
v56 += 2LL; | |
v2 += 0x10000; | |
} | |
result += 82; | |
} | |
else if ( a2 == 1 ) | |
{ | |
v3 = 0LL; | |
v4 = 8592198400LL; | |
v5 = result; | |
while ( v3 != 4 ) | |
{ | |
v6 = 0LL; | |
v7 = (_DWORD *)v4; | |
while ( v6 != 8 ) | |
{ | |
v5[v6] = *v7; | |
v5[v6 + 1] = v7[0x2000]; | |
v6 += 2LL; | |
v7 += 0x10000; | |
} | |
v5 += 8; | |
++v3; | |
v4 += 4LL; | |
} | |
v8 = 0LL; | |
v9 = (_DWORD *)8592166692LL; | |
while ( v8 != 4 ) | |
{ | |
result[v8 + 32] = *v9; | |
++v8; | |
v9 += 0x10000; | |
} | |
v10 = 0LL; | |
v11 = (_DWORD *)8592166684LL; | |
while ( v10 != 4 ) | |
{ | |
result[v10 + 36] = *v11; | |
++v10; | |
v11 += 0x10000; | |
} | |
v12 = 0LL; | |
v13 = (_DWORD *)8592032856LL; | |
while ( v12 != 4 ) | |
{ | |
result[v12 + 40] = *v13; | |
++v12; | |
v13 += 0x10000; | |
} | |
v14 = 0LL; | |
v15 = (_DWORD *)8592032880LL; | |
while ( v14 != 4 ) | |
{ | |
result[v14 + 44] = *v15; | |
++v14; | |
v15 += 0x10000; | |
} | |
v16 = 0LL; | |
v17 = (_DWORD *)8592032860LL; | |
while ( v16 != 4 ) | |
{ | |
result[v16 + 48] = *v17; | |
++v16; | |
v17 += 0x10000; | |
} | |
v18 = 0LL; | |
v19 = (_DWORD *)8592032624LL; | |
while ( v18 != 4 ) | |
{ | |
result[v18 + 52] = *v19; | |
++v18; | |
v19 += 0x10000; | |
} | |
v20 = 0LL; | |
v21 = (_DWORD *)8592032640LL; | |
while ( v20 != 4 ) | |
{ | |
result[v20 + 56] = *v21; | |
++v20; | |
v21 += 0x10000; | |
} | |
v22 = 0LL; | |
v23 = (_DWORD *)8592032628LL; | |
while ( v22 != 4 ) | |
{ | |
result[v22 + 60] = *v23; | |
++v22; | |
v23 += 0x10000; | |
} | |
v24 = 0LL; | |
v25 = (_DWORD *)8592032644LL; | |
while ( v24 != 4 ) | |
{ | |
result[v24 + 64] = *v25; | |
++v24; | |
v25 += 0x10000; | |
} | |
v26 = 0LL; | |
v27 = result + 68; | |
v28 = (_DWORD *)8592033796LL; | |
while ( v26 != 16 ) | |
{ | |
v29 = &v27[v26]; | |
v27[v26] = *v28; | |
v29[1] = v28[1]; | |
v29[2] = v28[2]; | |
v29[3] = v28[3]; | |
v26 += 4LL; | |
v28 += 0x10000; | |
} | |
result[84] = MEMORY[0x200000184]; | |
result[85] = MEMORY[0x20000018C]; | |
result[86] = MEMORY[0x200000264]; | |
result[87] = MEMORY[0x20000026C]; | |
result[88] = MEMORY[0x200000324]; | |
result[89] = MEMORY[0x20000032C]; | |
result[90] = MEMORY[0x200000404]; | |
result[91] = MEMORY[0x20000040C]; | |
result[92] = MEMORY[0x200000188]; | |
result[93] = MEMORY[0x200000190]; | |
result[94] = MEMORY[0x200000268]; | |
result[95] = MEMORY[0x200000270]; | |
result[96] = MEMORY[0x200000328]; | |
result[97] = MEMORY[0x200000330]; | |
result[98] = MEMORY[0x200000408]; | |
result[99] = MEMORY[0x200000410]; | |
result += 100; | |
} | |
} | |
else | |
{ | |
*result = MEMORY[0x20F140018]; | |
result[1] = MEMORY[0x20F140038]; | |
result[2] = MEMORY[0x20F14002C]; | |
result[3] = MEMORY[0x20F140030]; | |
result += 4; | |
} | |
return result; | |
} | |
//----- (00000001800C9550) ---------------------------------------------------- | |
signed __int64 *__fastcall sub_1800C9550(unsigned int *a1) | |
{ | |
unsigned int *v1; // x19 | |
v1 = a1; | |
sub_1800BA5EC((signed __int64 *)5, 0x2000004C8uLL, *a1, 0); | |
return sub_1800BA5EC((signed __int64 *)5, 0x2000004A4uLL, v1[1], 0); | |
} | |
//----- (00000001800C959C) ---------------------------------------------------- | |
signed __int64 *__fastcall sub_1800C959C(unsigned int *a1) | |
{ | |
unsigned int *v1; // x19 | |
__int64 v2; // x23 | |
unsigned __int64 v3; // x20 | |
unsigned __int64 v4; // x21 | |
__int64 v5; // x23 | |
unsigned __int64 v6; // x21 | |
__int64 v7; // x23 | |
unsigned __int64 v8; // x21 | |
__int64 v9; // x21 | |
__int64 v10; // x20 | |
signed __int64 v11; // x21 | |
__int64 v12; // x23 | |
signed __int64 v13; // x24 | |
__int64 v14; // x25 | |
unsigned __int64 v15; // x20 | |
__int64 v16; // x21 | |
unsigned __int64 v17; // x20 | |
__int64 v18; // x21 | |
unsigned __int64 v19; // x20 | |
__int64 v20; // x23 | |
signed __int64 v21; // x24 | |
signed __int64 v22; // x25 | |
__int64 v23; // x26 | |
unsigned __int64 v24; // x20 | |
__int64 v25; // x23 | |
signed __int64 v26; // x24 | |
signed __int64 v27; // x25 | |
__int64 v28; // x26 | |
unsigned __int64 v29; // x20 | |
__int64 v30; // x23 | |
signed __int64 v31; // x24 | |
signed __int64 v32; // x25 | |
__int64 v33; // x26 | |
unsigned __int64 v34; // x20 | |
__int64 v35; // x23 | |
signed __int64 v36; // x24 | |
signed __int64 v37; // x25 | |
__int64 v38; // x26 | |
unsigned __int64 v39; // x20 | |
__int64 v40; // x23 | |
signed __int64 v41; // x24 | |
signed __int64 v42; // x21 | |
__int64 v43; // x25 | |
unsigned __int64 v44; // x20 | |
__int64 v45; // x21 | |
unsigned __int64 v46; // x20 | |
__int64 v47; // x21 | |
unsigned __int64 v48; // x20 | |
__int64 v49; // x22 | |
unsigned __int64 v50; // x20 | |
__int64 v51; // x22 | |
unsigned __int64 v52; // x20 | |
__int64 v53; // x22 | |
unsigned __int64 v54; // x20 | |
__int64 v55; // x22 | |
unsigned __int64 v56; // x20 | |
__int64 v57; // x22 | |
unsigned __int64 v58; // x20 | |
__int64 v59; // x22 | |
unsigned __int64 v60; // x20 | |
__int64 v61; // x22 | |
unsigned __int64 v62; // x20 | |
__int64 v63; // x22 | |
signed __int64 v64; // x23 | |
unsigned __int64 i; // x20 | |
unsigned int *v66; // x21 | |
__int64 v67; // x2 | |
v1 = a1; | |
v2 = 0LL; | |
v3 = 8592164864LL; | |
v4 = 8592164608LL; | |
while ( v2 != 4 ) | |
{ | |
sub_1800BA5EC((signed __int64 *)7, v4, v1[v2] & 0xFF0000 | 4, 0); | |
++v2; | |
v4 += 0x40000LL; | |
} | |
v5 = 0LL; | |
v6 = 8592164616LL; | |
while ( v5 != 4 ) | |
{ | |
sub_1800BA5EC((signed __int64 *)7, v6, v1[v5 + 4] & 0xFF0000 | 4, 0); | |
++v5; | |
v6 += 0x40000LL; | |
} | |
v7 = 0LL; | |
v8 = 8592164624LL; | |
while ( v7 != 4 ) | |
{ | |
sub_1800BA5EC((signed __int64 *)7, v8, v1[v7 + 8] & 0xFF0000 | 4, 0); | |
++v7; | |
v8 += 0x40000LL; | |
} | |
v9 = 0LL; | |
while ( v9 != 4 ) | |
{ | |
sub_1800BA5EC((signed __int64 *)7, v3, v1[v9 + 12] & 0xFF | 0x200, 0); | |
++v9; | |
v3 += 0x40000LL; | |
} | |
v10 = 0LL; | |
v11 = (signed __int64)(v1 + 16); | |
while ( v10 != 0x100000 ) | |
{ | |
sub_1800BA890((signed __int64 *)7, v10 + 8592164864LL, 0LL, 512LL, 255, 0); | |
v10 += 0x40000LL; | |
} | |
v12 = 0LL; | |
v13 = 8592164096LL; | |
while ( v12 != 6 ) | |
{ | |
v14 = 0LL; | |
v15 = v13; | |
while ( v14 != 16 ) | |
{ | |
sub_1800BA5EC((signed __int64 *)7, v15, *(_DWORD *)(v11 + v14) & 0x3F | 0x100u, 0); | |
v14 += 4LL; | |
v15 += 0x40000LL; | |
} | |
v11 += 16LL; | |
++v12; | |
v13 += 4LL; | |
} | |
v16 = 0LL; | |
v17 = 8592164120LL; | |
while ( v16 != 4 ) | |
{ | |
sub_1800BA5EC((signed __int64 *)7, v17, v1[v16 + 40] & 0x3F | 0x100, 0); | |
++v16; | |
v17 += 0x40000LL; | |
} | |
v18 = 0LL; | |
v19 = 8592164124LL; | |
while ( v18 != 4 ) | |
{ | |
sub_1800BA5EC((signed __int64 *)7, v19, v1[v18 + 44] & 0x3F | 0x100, 0); | |
++v18; | |
v19 += 0x40000LL; | |
} | |
v20 = 0LL; | |
v21 = (signed __int64)(v1 + 48); | |
v22 = 8592197380LL; | |
while ( v20 != 4 ) | |
{ | |
v23 = 0LL; | |
v24 = v22; | |
while ( v23 != 8 ) | |
{ | |
sub_1800BA5EC((signed __int64 *)7, v24, *(_DWORD *)(v21 + v23) & 0xFF | 0x200u, 0); | |
v23 += 4LL; | |
v24 += 0x8000LL; | |
} | |
v21 += 8LL; | |
++v20; | |
v22 += 0x40000LL; | |
} | |
v25 = 0LL; | |
v26 = (signed __int64)(v1 + 56); | |
v27 = 8592196040LL; | |
while ( v25 != 4 ) | |
{ | |
v28 = 0LL; | |
v29 = v27; | |
while ( v28 != 8 ) | |
{ | |
sub_1800BA5EC((signed __int64 *)7, v29, ((*(_DWORD *)(v26 + v28) & 0x3FF) << 16) | 0x10000000u, 0); | |
v28 += 4LL; | |
v29 += 0x8000LL; | |
} | |
v26 += 8LL; | |
++v25; | |
v27 += 0x40000LL; | |
} | |
v30 = 0LL; | |
v31 = (signed __int64)(v1 + 64); | |
v32 = 8592196044LL; | |
while ( v30 != 4 ) | |
{ | |
v33 = 0LL; | |
v34 = v32; | |
while ( v33 != 8 ) | |
{ | |
sub_1800BA5EC((signed __int64 *)7, v34, ((*(_DWORD *)(v31 + v33) & 0x3FF) << 16) | 0x10000000u, 0); | |
v33 += 4LL; | |
v34 += 0x8000LL; | |
} | |
v31 += 8LL; | |
++v30; | |
v32 += 0x40000LL; | |
} | |
v35 = 0LL; | |
v36 = (signed __int64)(v1 + 72); | |
v37 = 8592196036LL; | |
while ( v35 != 4 ) | |
{ | |
v38 = 0LL; | |
v39 = v37; | |
while ( v38 != 8 ) | |
{ | |
sub_1800BA5EC((signed __int64 *)7, v39, ((*(_DWORD *)(v36 + v38) & 0x3FF) << 16) | 0x10000000u, 0); | |
v38 += 4LL; | |
v39 += 0x8000LL; | |
} | |
v36 += 8LL; | |
++v35; | |
v37 += 0x40000LL; | |
} | |
v40 = 0LL; | |
v41 = (signed __int64)(v1 + 80); | |
v42 = 8592198400LL; | |
while ( v40 != 4 ) | |
{ | |
v43 = 0LL; | |
v44 = v42; | |
while ( v43 != 32 ) | |
{ | |
sub_1800BA5EC((signed __int64 *)7, v44, *(unsigned int *)(v41 + v43), 0); | |
sub_1800BA5EC((signed __int64 *)7, v44 + 0x8000, *(unsigned int *)(v41 + v43 + 4), 0); | |
v43 += 8LL; | |
v44 += 0x40000LL; | |
} | |
v41 += 32LL; | |
++v40; | |
v42 += 4LL; | |
} | |
v45 = 0LL; | |
v46 = 8592166688LL; | |
while ( v45 != 4 ) | |
{ | |
sub_1800BA5EC((signed __int64 *)7, v46, v1[v45 + 112], 0); | |
++v45; | |
v46 += 0x40000LL; | |
} | |
v47 = 0LL; | |
v48 = 8592166680LL; | |
while ( v47 != 4 ) | |
{ | |
sub_1800BA5EC((signed __int64 *)7, v48, v1[v47 + 116], 0); | |
++v47; | |
v48 += 0x40000LL; | |
} | |
v49 = 0LL; | |
v50 = 8592032856LL; | |
while ( v49 != 4 ) | |
{ | |
sub_1800BA5EC((signed __int64 *)7, v50, v1[v49 + 120], 0); | |
++v49; | |
v50 += 0x40000LL; | |
} | |
v51 = 0LL; | |
v52 = 8592032880LL; | |
while ( v51 != 4 ) | |
{ | |
sub_1800BA5EC((signed __int64 *)7, v52, v1[v51 + 124], 0); | |
++v51; | |
v52 += 0x40000LL; | |
} | |
v53 = 0LL; | |
v54 = 8592032860LL; | |
while ( v53 != 4 ) | |
{ | |
sub_1800BA5EC((signed __int64 *)7, v54, v1[v53 + 128], 0); | |
++v53; | |
v54 += 0x40000LL; | |
} | |
v55 = 0LL; | |
v56 = 8592032624LL; | |
while ( v55 != 4 ) | |
{ | |
sub_1800BA5EC((signed __int64 *)7, v56, v1[v55 + 132], 0); | |
++v55; | |
v56 += 0x40000LL; | |
} | |
v57 = 0LL; | |
v58 = 8592032640LL; | |
while ( v57 != 4 ) | |
{ | |
sub_1800BA5EC((signed __int64 *)7, v58, v1[v57 + 136], 0); | |
++v57; | |
v58 += 0x40000LL; | |
} | |
v59 = 0LL; | |
v60 = 8592032628LL; | |
while ( v59 != 4 ) | |
{ | |
sub_1800BA5EC((signed __int64 *)7, v60, v1[v59 + 140], 0); | |
++v59; | |
v60 += 0x40000LL; | |
} | |
v61 = 0LL; | |
v62 = 8592032644LL; | |
while ( v61 != 4 ) | |
{ | |
sub_1800BA5EC((signed __int64 *)7, v62, v1[v61 + 144], 0); | |
++v61; | |
v62 += 0x40000LL; | |
} | |
v63 = 0LL; | |
v64 = (signed __int64)(v1 + 148); | |
for ( i = 8592033796LL; ; i += 0x40000LL ) | |
{ | |
v66 = (unsigned int *)(v64 + v63); | |
v67 = *(unsigned int *)(v64 + v63); | |
if ( v63 == 64 ) | |
break; | |
sub_1800BA5EC((signed __int64 *)7, i, v67, 0); | |
sub_1800BA5EC((signed __int64 *)7, i + 4, v66[1], 0); | |
sub_1800BA5EC((signed __int64 *)7, i + 8, v66[2], 0); | |
sub_1800BA5EC((signed __int64 *)7, i + 12, v66[3], 0); | |
v63 += 16LL; | |
} | |
sub_1800BA5EC((signed __int64 *)7, 0x200000184uLL, v67, 0); | |
sub_1800BA5EC((signed __int64 *)7, 0x20000018CuLL, v1[165], 0); | |
sub_1800BA5EC((signed __int64 *)7, 0x200000264uLL, v1[166], 0); | |
sub_1800BA5EC((signed __int64 *)7, 0x20000026CuLL, v1[167], 0); | |
sub_1800BA5EC((signed __int64 *)7, 0x200000324uLL, v1[168], 0); | |
sub_1800BA5EC((signed __int64 *)7, 0x20000032CuLL, v1[169], 0); | |
sub_1800BA5EC((signed __int64 *)7, 0x200000404uLL, v1[170], 0); | |
sub_1800BA5EC((signed __int64 *)7, 0x20000040CuLL, v1[171], 0); | |
sub_1800BA5EC((signed __int64 *)7, 0x200000188uLL, v1[172], 0); | |
sub_1800BA5EC((signed __int64 *)7, 0x200000190uLL, v1[173], 0); | |
sub_1800BA5EC((signed __int64 *)7, 0x200000268uLL, v1[174], 0); | |
sub_1800BA5EC((signed __int64 *)7, 0x200000270uLL, v1[175], 0); | |
sub_1800BA5EC((signed __int64 *)7, 0x200000328uLL, v1[176], 0); | |
sub_1800BA5EC((signed __int64 *)7, 0x200000330uLL, v1[177], 0); | |
sub_1800BA5EC((signed __int64 *)7, 0x200000408uLL, v1[178], 0); | |
sub_1800BA5EC((signed __int64 *)7, 0x200000410uLL, v1[179], 0); | |
sub_1800BA5EC((signed __int64 *)7, 0x20F140018uLL, v1[180], 0); | |
sub_1800BA5EC((signed __int64 *)7, 0x20F140038uLL, v1[181], 0); | |
sub_1800BA5EC((signed __int64 *)7, 0x20F14002CuLL, v1[182], 0); | |
return sub_1800BA5EC((signed __int64 *)7, 0x20F140030uLL, v1[183], 0); | |
} | |
//----- (00000001800C9DC8) ---------------------------------------------------- | |
__int64 __fastcall sub_1800C9DC8(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
__int64 v8; // x2 | |
__int64 v9; // x3 | |
__int64 v10; // x4 | |
__int64 v11; // x5 | |
__int64 v12; // x6 | |
__int64 v13; // x7 | |
__int64 v14; // x2 | |
__int64 v15; // x3 | |
__int64 v16; // x4 | |
__int64 v17; // x5 | |
__int64 v18; // x6 | |
__int64 v19; // x7 | |
__int64 v20; // x2 | |
__int64 v21; // x3 | |
__int64 v22; // x4 | |
__int64 v23; // x5 | |
__int64 v24; // x6 | |
__int64 v25; // x7 | |
sub_1800B716C(8592032788LL, 269484032LL, a3, a4, a5, a6, a7, a8); | |
sub_1800B716C(8592032784LL, 0x10000000LL, v8, v9, v10, v11, v12, v13); | |
sub_1800B716C(8592032780LL, 269549568LL, v14, v15, v16, v17, v18, v19); | |
return sub_1800B716C(8592032776LL, 269549883LL, v20, v21, v22, v23, v24, v25); | |
} | |
//----- (00000001800C9E2C) ---------------------------------------------------- | |
__int64 sub_1800C9E2C() | |
{ | |
__int64 v0; // x19 | |
__int64 v1; // x2 | |
__int64 v2; // x3 | |
__int64 v3; // x4 | |
__int64 v4; // x5 | |
__int64 v5; // x6 | |
__int64 v6; // x7 | |
__int64 v7; // x2 | |
__int64 v8; // x3 | |
__int64 v9; // x4 | |
__int64 v10; // x5 | |
__int64 v11; // x6 | |
__int64 v12; // x7 | |
__int64 v13; // x2 | |
__int64 v14; // x3 | |
__int64 v15; // x4 | |
__int64 v16; // x5 | |
__int64 v17; // x6 | |
__int64 v18; // x7 | |
__int64 v19; // x2 | |
__int64 v20; // x3 | |
__int64 v21; // x4 | |
__int64 v22; // x5 | |
__int64 v23; // x6 | |
__int64 v24; // x7 | |
__int64 v25; // x2 | |
__int64 v26; // x3 | |
__int64 v27; // x4 | |
__int64 v28; // x5 | |
__int64 v29; // x6 | |
__int64 v30; // x7 | |
__int64 v31; // x2 | |
__int64 v32; // x3 | |
__int64 v33; // x4 | |
__int64 v34; // x5 | |
__int64 v35; // x6 | |
__int64 v36; // x7 | |
__int64 v37; // x2 | |
__int64 v38; // x3 | |
__int64 v39; // x4 | |
__int64 v40; // x5 | |
__int64 v41; // x6 | |
__int64 v42; // x7 | |
__int64 i; // x23 | |
unsigned int v44; // w26 | |
unsigned int v45; // w27 | |
__int64 v46; // x2 | |
__int64 v47; // x3 | |
__int64 v48; // x4 | |
__int64 v49; // x5 | |
__int64 v50; // x6 | |
__int64 v51; // x7 | |
__int64 v52; // x2 | |
__int64 v53; // x3 | |
__int64 v54; // x4 | |
__int64 v55; // x5 | |
__int64 v56; // x6 | |
__int64 v57; // x7 | |
__int64 v58; // x2 | |
__int64 v59; // x3 | |
__int64 v60; // x4 | |
__int64 v61; // x5 | |
__int64 v62; // x6 | |
__int64 v63; // x7 | |
__int64 v64; // x2 | |
__int64 v65; // x3 | |
__int64 v66; // x4 | |
__int64 v67; // x5 | |
__int64 v68; // x6 | |
__int64 v69; // x7 | |
__int64 v70; // x2 | |
__int64 v71; // x3 | |
__int64 v72; // x4 | |
__int64 v73; // x5 | |
__int64 v74; // x6 | |
__int64 v75; // x7 | |
__int64 v76; // x2 | |
__int64 v77; // x3 | |
__int64 v78; // x4 | |
__int64 v79; // x5 | |
__int64 v80; // x6 | |
__int64 v81; // x7 | |
__int64 v82; // x2 | |
__int64 v83; // x3 | |
__int64 v84; // x4 | |
__int64 v85; // x5 | |
__int64 v86; // x6 | |
__int64 v87; // x7 | |
__int64 v88; // x2 | |
__int64 v89; // x3 | |
__int64 v90; // x4 | |
__int64 v91; // x5 | |
__int64 v92; // x6 | |
__int64 v93; // x7 | |
__int64 v94; // x2 | |
__int64 v95; // x3 | |
__int64 v96; // x4 | |
__int64 v97; // x5 | |
__int64 v98; // x6 | |
__int64 v99; // x7 | |
__int64 v100; // x2 | |
__int64 v101; // x3 | |
__int64 v102; // x4 | |
__int64 v103; // x5 | |
__int64 v104; // x6 | |
__int64 v105; // x7 | |
__int64 v106; // x2 | |
__int64 v107; // x3 | |
__int64 v108; // x4 | |
__int64 v109; // x5 | |
__int64 v110; // x6 | |
__int64 v111; // x7 | |
__int64 v112; // x2 | |
__int64 v113; // x3 | |
__int64 v114; // x4 | |
__int64 v115; // x5 | |
__int64 v116; // x6 | |
__int64 v117; // x7 | |
__int64 v118; // x23 | |
__int64 v119; // x20 | |
__int64 v120; // x20 | |
int *v121; // x23 | |
__int64 v122; // x2 | |
__int64 v123; // x3 | |
__int64 v124; // x4 | |
__int64 v125; // x5 | |
__int64 v126; // x6 | |
__int64 v127; // x7 | |
__int64 v128; // x2 | |
__int64 v129; // x3 | |
__int64 v130; // x4 | |
__int64 v131; // x5 | |
__int64 v132; // x6 | |
__int64 v133; // x7 | |
__int64 v134; // x2 | |
__int64 v135; // x3 | |
__int64 v136; // x4 | |
__int64 v137; // x5 | |
__int64 v138; // x6 | |
__int64 v139; // x7 | |
__int64 v140; // x2 | |
__int64 v141; // x3 | |
__int64 v142; // x4 | |
__int64 v143; // x5 | |
__int64 v144; // x6 | |
__int64 v145; // x7 | |
__int64 v146; // x0 | |
__int64 v147; // x1 | |
__int64 v148; // x2 | |
__int64 v149; // x3 | |
__int64 v150; // x4 | |
__int64 v151; // x5 | |
__int64 v152; // x6 | |
__int64 v153; // x7 | |
__int64 v154; // x2 | |
__int64 v155; // x3 | |
__int64 v156; // x4 | |
__int64 v157; // x5 | |
__int64 v158; // x6 | |
__int64 v159; // x7 | |
__int64 v160; // x2 | |
__int64 v161; // x3 | |
__int64 v162; // x4 | |
__int64 v163; // x5 | |
__int64 v164; // x6 | |
__int64 v165; // x7 | |
__int64 v166; // x2 | |
__int64 v167; // x3 | |
__int64 v168; // x4 | |
__int64 v169; // x5 | |
__int64 v170; // x6 | |
__int64 v171; // x7 | |
__int64 v172; // x23 | |
__int64 v173; // x20 | |
__int64 v174; // x20 | |
__int64 v175; // x20 | |
__int64 v176; // x19 | |
__int64 v177; // x2 | |
__int64 v178; // x3 | |
__int64 v179; // x4 | |
__int64 v180; // x5 | |
__int64 v181; // x6 | |
__int64 v182; // x7 | |
__int64 v183; // x2 | |
__int64 v184; // x3 | |
__int64 v185; // x4 | |
__int64 v186; // x5 | |
__int64 v187; // x6 | |
__int64 v188; // x7 | |
__int64 v189; // x2 | |
__int64 v190; // x3 | |
__int64 v191; // x4 | |
__int64 v192; // x5 | |
__int64 v193; // x6 | |
__int64 v194; // x7 | |
__int64 v195; // x2 | |
__int64 v196; // x3 | |
__int64 v197; // x4 | |
__int64 v198; // x5 | |
__int64 v199; // x6 | |
__int64 v200; // x7 | |
__int64 v201; // x2 | |
__int64 v202; // x3 | |
__int64 v203; // x4 | |
__int64 v204; // x5 | |
__int64 v205; // x6 | |
__int64 v206; // x7 | |
__int64 v207; // x2 | |
__int64 v208; // x3 | |
__int64 v209; // x4 | |
__int64 v210; // x5 | |
__int64 v211; // x6 | |
__int64 v212; // x7 | |
__int64 v213; // x2 | |
__int64 v214; // x3 | |
__int64 v215; // x4 | |
__int64 v216; // x5 | |
__int64 v217; // x6 | |
__int64 v218; // x7 | |
__int64 v219; // x2 | |
__int64 v220; // x3 | |
__int64 v221; // x4 | |
__int64 v222; // x5 | |
__int64 v223; // x6 | |
__int64 v224; // x7 | |
__int64 v225; // x2 | |
__int64 v226; // x3 | |
__int64 v227; // x4 | |
__int64 v228; // x5 | |
__int64 v229; // x6 | |
__int64 v230; // x7 | |
__int64 v231; // x2 | |
__int64 v232; // x3 | |
__int64 v233; // x4 | |
__int64 v234; // x5 | |
__int64 v235; // x6 | |
__int64 v236; // x7 | |
v0 = 8592032576LL; | |
sub_1800CA218(); | |
sub_1800B716C(8592162828LL, 0LL, v1, v2, v3, v4, v5, v6); | |
sub_1800D5F60(200LL); | |
sub_1800B716C(8592162828LL, 1LL, v7, v8, v9, v10, v11, v12); | |
sub_1800B716C(8592080896LL, 1LL, v13, v14, v15, v16, v17, v18); | |
sub_1800B716C(8592080928LL, 21LL, v19, v20, v21, v22, v23, v24); | |
sub_1800B716C(8592081008LL, 7LL, v25, v26, v27, v28, v29, v30); | |
sub_1800B716C(8592080992LL, 2LL, v31, v32, v33, v34, v35, v36); | |
for ( i = 0LL; i != 4; ++i ) | |
{ | |
v44 = 0; | |
v45 = 0; | |
while ( v45 < 5 ) | |
{ | |
sub_1800B716C( | |
24 * i + 8592032852LL + v44, | |
*((unsigned int *)&qword_1801148A0[17 * i + 57] + v45++ + 1), | |
v37, | |
v38, | |
v39, | |
v40, | |
v41, | |
v42); | |
v44 += 4; | |
} | |
sub_1800B716C(4 * i + 8592032948LL, HIDWORD(qword_1801148A0[17 * i + 60]), v37, v38, v39, v40, v41, v42); | |
} | |
sub_1800B716C(8592166616LL, 29666912LL, v37, v38, v39, v40, v41, v42); | |
sub_1800B716C(8592166624LL, 100925952LL, v46, v47, v48, v49, v50, v51); | |
sub_1800B716C(8592166628LL, 16448766LL, v52, v53, v54, v55, v56, v57); | |
sub_1800B716C(8592166632LL, 18874464LL, v58, v59, v60, v61, v62, v63); | |
sub_1800B716C(8592166708LL, 1666250464LL, v64, v65, v66, v67, v68, v69); | |
sub_1800B716C(8592166640LL, 100925952LL, v70, v71, v72, v73, v74, v75); | |
sub_1800B716C(8592166644LL, 16448766LL, v76, v77, v78, v79, v80, v81); | |
sub_1800B70E4(8842903696LL, 19LL, v82, v83, v84, v85, v86, v87); | |
sub_1800B70E4(8842903692LL, 393222LL, v88, v89, v90, v91, v92, v93); | |
sub_1800B716C(8592032768LL, 266477LL, v94, v95, v96, v97, v98, v99); | |
sub_1800B716C(8592032576LL, 1127303LL, v100, v101, v102, v103, v104, v105); | |
sub_1800B716C(8592032580LL, 1057286LL, v106, v107, v108, v109, v110, v111); | |
v118 = 0LL; | |
v119 = 8592032384LL; | |
while ( v118 != 68 ) | |
{ | |
sub_1800B716C(v119, HIDWORD(qword_1801148A0[v118 + 61]), v112, v113, v114, v115, v116, v117); | |
v118 += 17LL; | |
v119 += 4LL; | |
} | |
v120 = 0LL; | |
v121 = &dword_180114AA0; | |
while ( v120 != 16 ) | |
{ | |
sub_1800B716C(v120 + 8592032592LL, (unsigned int)*(v121 - 4), v112, v113, v114, v115, v116, v117); | |
sub_1800B716C(v120 + 8592032608LL, (unsigned int)*(v121 - 3), v122, v123, v124, v125, v126, v127); | |
sub_1800B716C(v120 + 8592032624LL, (unsigned int)*(v121 - 2), v128, v129, v130, v131, v132, v133); | |
sub_1800B716C(v120 + 8592032640LL, (unsigned int)*(v121 - 1), v134, v135, v136, v137, v138, v139); | |
if ( v120 ) | |
{ | |
v146 = v120 + 8592032712LL; | |
v147 = (unsigned int)*v121; | |
} | |
else | |
{ | |
sub_1800B716C(8592032660LL, 437027060LL, v140, v141, v142, v143, v144, v145); | |
sub_1800B716C(8592032712LL, 118LL, v148, v149, v150, v151, v152, v153); | |
v147 = 12LL; | |
v146 = 8592032708LL; | |
} | |
sub_1800B716C(v146, v147, v140, v141, v142, v143, v144, v145); | |
v120 += 4LL; | |
v121 += 34; | |
} | |
sub_1800B716C(8592032700LL, 1376349LL, v112, v113, v114, v115, v116, v117); | |
sub_1800B716C(8592032656LL, 1915183814LL, v154, v155, v156, v157, v158, v159); | |
sub_1800B716C(8592032664LL, 1292216528LL, v160, v161, v162, v163, v164, v165); | |
v172 = 0LL; | |
v173 = 8592032668LL; | |
while ( v172 != 51 ) | |
{ | |
sub_1800B716C(v173, HIDWORD(qword_1801148A0[v172 + 81]), v166, v167, v168, v169, v170, v171); | |
v172 += 17LL; | |
v173 += 4LL; | |
} | |
v174 = 0LL; | |
while ( v174 != 68 ) | |
{ | |
sub_1800B716C(v0, LODWORD(qword_1801148A0[v174 + 65]), v166, v167, v168, v169, v170, v171); | |
v174 += 17LL; | |
v0 += 4LL; | |
} | |
v175 = 0LL; | |
v176 = 8592032680LL; | |
while ( v175 != 68 ) | |
{ | |
sub_1800B716C(v176, HIDWORD(qword_1801148A0[v175 + 65]), v166, v167, v168, v169, v170, v171); | |
v175 += 17LL; | |
v176 += 4LL; | |
} | |
sub_1800B716C(8592032772LL, 24673LL, v166, v167, v168, v169, v170, v171); | |
sub_1800B716C(8592033664LL, 256LL, v177, v178, v179, v180, v181, v182); | |
sub_1800B716C(8592033676LL, 1LL, v183, v184, v185, v186, v187, v188); | |
sub_1800B716C(8592032808LL, 0LL, v189, v190, v191, v192, v193, v194); | |
sub_1800B716C(8592032804LL, 0x2000LL, v195, v196, v197, v198, v199, v200); | |
sub_1800B716C(8592031744LL, 2LL, v201, v202, v203, v204, v205, v206); | |
sub_1800B716C(8592033848LL, 21LL, v207, v208, v209, v210, v211, v212); | |
sub_1800B716C(8592032832LL, 352518144LL, v213, v214, v215, v216, v217, v218); | |
sub_1800B716C(8592032260LL, 25442LL, v219, v220, v221, v222, v223, v224); | |
sub_1800B716C(8592032160LL, 0LL, v225, v226, v227, v228, v229, v230); | |
return sub_1800B716C(8592032264LL, 24928LL, v231, v232, v233, v234, v235, v236); | |
} | |
// 1801148A0: using guessed type __int64 qword_1801148A0[]; | |
// 180114AA0: using guessed type int dword_180114AA0; | |
//----- (00000001800CA218) ---------------------------------------------------- | |
signed __int64 sub_1800CA218() | |
{ | |
int v0; // w19 | |
int v1; // w20 | |
int v2; // w21 | |
int v3; // w21 | |
__int64 v4; // x20 | |
__int64 v5; // x2 | |
__int64 v6; // x3 | |
__int64 v7; // x4 | |
__int64 v8; // x5 | |
__int64 v9; // x6 | |
__int64 v10; // x7 | |
__int64 v11; // x2 | |
__int64 v12; // x3 | |
__int64 v13; // x4 | |
__int64 v14; // x5 | |
__int64 v15; // x6 | |
__int64 v16; // x7 | |
__int64 v17; // x20 | |
__int64 v18; // x2 | |
__int64 v19; // x3 | |
__int64 v20; // x4 | |
__int64 v21; // x5 | |
__int64 v22; // x6 | |
__int64 v23; // x7 | |
__int64 v24; // x2 | |
__int64 v25; // x3 | |
__int64 v26; // x4 | |
__int64 v27; // x5 | |
__int64 v28; // x6 | |
__int64 v29; // x7 | |
__int64 v30; // x21 | |
__int64 v31; // x2 | |
__int64 v32; // x3 | |
__int64 v33; // x4 | |
__int64 v34; // x5 | |
__int64 v35; // x6 | |
__int64 v36; // x7 | |
__int64 v37; // x2 | |
__int64 v38; // x3 | |
__int64 v39; // x4 | |
__int64 v40; // x5 | |
__int64 v41; // x6 | |
__int64 v42; // x7 | |
__int64 v43; // x2 | |
__int64 v44; // x3 | |
__int64 v45; // x4 | |
__int64 v46; // x5 | |
__int64 v47; // x6 | |
__int64 v48; // x7 | |
__int64 v49; // x2 | |
__int64 v50; // x3 | |
__int64 v51; // x4 | |
__int64 v52; // x5 | |
__int64 v53; // x6 | |
__int64 v54; // x7 | |
__int64 v55; // x2 | |
__int64 v56; // x3 | |
__int64 v57; // x4 | |
__int64 v58; // x5 | |
__int64 v59; // x6 | |
__int64 v60; // x7 | |
__int64 v61; // x2 | |
__int64 v62; // x3 | |
__int64 v63; // x4 | |
__int64 v64; // x5 | |
__int64 v65; // x6 | |
__int64 v66; // x7 | |
__int64 v67; // x2 | |
__int64 v68; // x3 | |
__int64 v69; // x4 | |
__int64 v70; // x5 | |
__int64 v71; // x6 | |
__int64 v72; // x7 | |
__int64 v73; // x2 | |
__int64 v74; // x3 | |
__int64 v75; // x4 | |
__int64 v76; // x5 | |
__int64 v77; // x6 | |
__int64 v78; // x7 | |
__int64 v79; // x19 | |
__int64 v80; // x2 | |
__int64 v81; // x3 | |
__int64 v82; // x4 | |
__int64 v83; // x5 | |
__int64 v84; // x6 | |
__int64 v85; // x7 | |
__int64 v86; // x2 | |
__int64 v87; // x3 | |
__int64 v88; // x4 | |
__int64 v89; // x5 | |
__int64 v90; // x6 | |
__int64 v91; // x7 | |
__int64 v92; // x2 | |
__int64 v93; // x3 | |
__int64 v94; // x4 | |
__int64 v95; // x5 | |
__int64 v96; // x6 | |
__int64 v97; // x7 | |
__int64 v98; // x2 | |
__int64 v99; // x3 | |
__int64 v100; // x4 | |
__int64 v101; // x5 | |
__int64 v102; // x6 | |
__int64 v103; // x7 | |
__int64 v104; // x2 | |
__int64 v105; // x3 | |
__int64 v106; // x4 | |
__int64 v107; // x5 | |
__int64 v108; // x6 | |
__int64 v109; // x7 | |
__int64 v110; // x2 | |
__int64 v111; // x3 | |
__int64 v112; // x4 | |
__int64 v113; // x5 | |
__int64 v114; // x6 | |
__int64 v115; // x7 | |
__int64 v116; // x2 | |
__int64 v117; // x3 | |
__int64 v118; // x4 | |
__int64 v119; // x5 | |
__int64 v120; // x6 | |
__int64 v121; // x7 | |
__int64 v122; // x2 | |
__int64 v123; // x3 | |
__int64 v124; // x4 | |
__int64 v125; // x5 | |
__int64 v126; // x6 | |
__int64 v127; // x7 | |
v0 = sub_1800B8AD0(20, 2); | |
v1 = sub_1800B8AD0(20, 1); | |
v2 = sub_1800B8AD0(20, 0); | |
sub_1800D368C(7); | |
v3 = 4 * v2 | (v1 << 7); | |
v4 = v3 | MEMORY[0x200200804] & 0xFFFFF803; | |
sub_1800B716C(8592033796LL, v4, v5, v6, v7, v8, v9, v10); | |
sub_1800B716C(8592033804LL, v4, v11, v12, v13, v14, v15, v16); | |
v17 = MEMORY[0x200200808] & 0xFFFFF83F | (v0 << 6); | |
sub_1800B716C(8592033800LL, v17, v18, v19, v20, v21, v22, v23); | |
sub_1800B716C(8592033808LL, v17, v24, v25, v26, v27, v28, v29); | |
v30 = v3 | MEMORY[0x200000184] & 0xFFFFF803; | |
sub_1800B70E4(8589934980LL, v30, v31, v32, v33, v34, v35, v36); | |
sub_1800B70E4(8589934988LL, v30, v37, v38, v39, v40, v41, v42); | |
sub_1800B70E4(8589935204LL, v30, v43, v44, v45, v46, v47, v48); | |
sub_1800B70E4(8589935212LL, v30, v49, v50, v51, v52, v53, v54); | |
sub_1800B70E4(8589935396LL, v30, v55, v56, v57, v58, v59, v60); | |
sub_1800B70E4(8589935404LL, v30, v61, v62, v63, v64, v65, v66); | |
sub_1800B70E4(8589935620LL, v30, v67, v68, v69, v70, v71, v72); | |
sub_1800B70E4(8589935628LL, v30, v73, v74, v75, v76, v77, v78); | |
v79 = MEMORY[0x200000188] & 0xFFFFF83F | (v0 << 6); | |
sub_1800B70E4(8589934984LL, v79, v80, v81, v82, v83, v84, v85); | |
sub_1800B70E4(8589934992LL, v79, v86, v87, v88, v89, v90, v91); | |
sub_1800B70E4(8589935208LL, v79, v92, v93, v94, v95, v96, v97); | |
sub_1800B70E4(8589935216LL, v79, v98, v99, v100, v101, v102, v103); | |
sub_1800B70E4(8589935400LL, v79, v104, v105, v106, v107, v108, v109); | |
sub_1800B70E4(8589935408LL, v79, v110, v111, v112, v113, v114, v115); | |
sub_1800B70E4(8589935624LL, v79, v116, v117, v118, v119, v120, v121); | |
sub_1800B70E4(8589935632LL, v79, v122, v123, v124, v125, v126, v127); | |
return sub_1800D368C(8); | |
} | |
//----- (00000001800CA3DC) ---------------------------------------------------- | |
__int64 __fastcall sub_1800CA3DC(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
__int64 i; // x19 | |
__int64 j; // x19 | |
__int64 v10; // x20 | |
__int64 v11; // x19 | |
__int64 v12; // x20 | |
__int64 v13; // x19 | |
__int64 v14; // x2 | |
__int64 v15; // x3 | |
__int64 v16; // x4 | |
__int64 v17; // x5 | |
__int64 v18; // x6 | |
__int64 v19; // x7 | |
__int64 v20; // x2 | |
__int64 v21; // x3 | |
__int64 v22; // x4 | |
__int64 v23; // x5 | |
__int64 v24; // x6 | |
__int64 v25; // x7 | |
__int64 v26; // x2 | |
__int64 v27; // x3 | |
__int64 v28; // x4 | |
__int64 v29; // x5 | |
__int64 v30; // x6 | |
__int64 v31; // x7 | |
__int64 v32; // x2 | |
__int64 v33; // x3 | |
__int64 v34; // x4 | |
__int64 v35; // x5 | |
__int64 v36; // x6 | |
__int64 v37; // x7 | |
__int64 v38; // x2 | |
__int64 v39; // x3 | |
__int64 v40; // x4 | |
__int64 v41; // x5 | |
__int64 v42; // x6 | |
__int64 v43; // x7 | |
__int64 v44; // x2 | |
__int64 v45; // x3 | |
__int64 v46; // x4 | |
__int64 v47; // x5 | |
__int64 v48; // x6 | |
__int64 v49; // x7 | |
__int64 v50; // x2 | |
__int64 v51; // x3 | |
__int64 v52; // x4 | |
__int64 v53; // x5 | |
__int64 v54; // x6 | |
__int64 v55; // x7 | |
__int64 v56; // x2 | |
__int64 v57; // x3 | |
__int64 v58; // x4 | |
__int64 v59; // x5 | |
__int64 v60; // x6 | |
__int64 v61; // x7 | |
__int64 v62; // x3 | |
__int64 v63; // x4 | |
__int64 v64; // x5 | |
__int64 v65; // x6 | |
__int64 v66; // x7 | |
__int64 v67; // x3 | |
__int64 v68; // x4 | |
__int64 v69; // x5 | |
__int64 v70; // x6 | |
__int64 v71; // x7 | |
__int64 v72; // x2 | |
__int64 v73; // x3 | |
__int64 v74; // x4 | |
__int64 v75; // x5 | |
__int64 v76; // x6 | |
__int64 v77; // x7 | |
__int64 v78; // x2 | |
__int64 v79; // x3 | |
__int64 v80; // x4 | |
__int64 v81; // x5 | |
__int64 v82; // x6 | |
__int64 v83; // x7 | |
__int64 v84; // x3 | |
__int64 v85; // x4 | |
__int64 v86; // x5 | |
__int64 v87; // x6 | |
__int64 v88; // x7 | |
__int64 v89; // x3 | |
__int64 v90; // x4 | |
__int64 v91; // x5 | |
__int64 v92; // x6 | |
__int64 v93; // x7 | |
__int64 v94; // x2 | |
__int64 v95; // x3 | |
__int64 v96; // x4 | |
__int64 v97; // x5 | |
__int64 v98; // x6 | |
__int64 v99; // x7 | |
__int64 v100; // x3 | |
__int64 v101; // x4 | |
__int64 v102; // x5 | |
__int64 v103; // x6 | |
__int64 v104; // x7 | |
__int64 v105; // x2 | |
__int64 v106; // x3 | |
__int64 v107; // x4 | |
__int64 v108; // x5 | |
__int64 v109; // x6 | |
__int64 v110; // x7 | |
__int64 k; // x19 | |
__int64 v112; // x2 | |
__int64 v113; // x3 | |
__int64 v114; // x4 | |
__int64 v115; // x5 | |
__int64 v116; // x6 | |
__int64 v117; // x7 | |
__int64 v118; // x25 | |
__int64 v119; // x19 | |
__int64 v120; // x25 | |
__int64 v121; // x19 | |
__int64 v122; // x2 | |
__int64 v123; // x3 | |
__int64 v124; // x4 | |
__int64 v125; // x5 | |
__int64 v126; // x6 | |
__int64 v127; // x7 | |
__int64 v128; // x2 | |
__int64 v129; // x3 | |
__int64 v130; // x4 | |
__int64 v131; // x5 | |
__int64 v132; // x6 | |
__int64 v133; // x7 | |
__int64 v134; // x2 | |
__int64 v135; // x3 | |
__int64 v136; // x4 | |
__int64 v137; // x5 | |
__int64 v138; // x6 | |
__int64 v139; // x7 | |
__int64 v140; // x2 | |
__int64 v141; // x3 | |
__int64 v142; // x4 | |
__int64 v143; // x5 | |
__int64 v144; // x6 | |
__int64 v145; // x7 | |
__int64 v146; // x2 | |
__int64 v147; // x3 | |
__int64 v148; // x4 | |
__int64 v149; // x5 | |
__int64 v150; // x6 | |
__int64 v151; // x7 | |
__int64 v152; // x2 | |
__int64 v153; // x3 | |
__int64 v154; // x4 | |
__int64 v155; // x5 | |
__int64 v156; // x6 | |
__int64 v157; // x7 | |
__int64 v158; // x2 | |
__int64 v159; // x3 | |
__int64 v160; // x4 | |
__int64 v161; // x5 | |
__int64 v162; // x6 | |
__int64 v163; // x7 | |
__int64 v164; // x2 | |
__int64 v165; // x3 | |
__int64 v166; // x4 | |
__int64 v167; // x5 | |
__int64 v168; // x6 | |
__int64 v169; // x7 | |
__int64 v170; // x2 | |
__int64 v171; // x3 | |
__int64 v172; // x4 | |
__int64 v173; // x5 | |
__int64 v174; // x6 | |
__int64 v175; // x7 | |
__int64 v176; // x2 | |
__int64 v177; // x3 | |
__int64 v178; // x4 | |
__int64 v179; // x5 | |
__int64 v180; // x6 | |
__int64 v181; // x7 | |
__int64 v182; // x2 | |
__int64 v183; // x3 | |
__int64 v184; // x4 | |
__int64 v185; // x5 | |
__int64 v186; // x6 | |
__int64 v187; // x7 | |
__int64 v188; // x2 | |
__int64 v189; // x3 | |
__int64 v190; // x4 | |
__int64 v191; // x5 | |
__int64 v192; // x6 | |
__int64 v193; // x7 | |
__int64 v194; // x2 | |
__int64 v195; // x3 | |
__int64 v196; // x4 | |
__int64 v197; // x5 | |
__int64 v198; // x6 | |
__int64 v199; // x7 | |
__int64 v200; // x2 | |
__int64 v201; // x3 | |
__int64 v202; // x4 | |
__int64 v203; // x5 | |
__int64 v204; // x6 | |
__int64 v205; // x7 | |
__int64 v206; // x2 | |
__int64 v207; // x3 | |
__int64 v208; // x4 | |
__int64 v209; // x5 | |
__int64 v210; // x6 | |
__int64 v211; // x7 | |
__int64 v212; // x2 | |
__int64 v213; // x3 | |
__int64 v214; // x4 | |
__int64 v215; // x5 | |
__int64 v216; // x6 | |
__int64 v217; // x7 | |
__int64 v218; // x2 | |
__int64 v219; // x3 | |
__int64 v220; // x4 | |
__int64 v221; // x5 | |
__int64 v222; // x6 | |
__int64 v223; // x7 | |
__int64 v224; // x2 | |
__int64 v225; // x3 | |
__int64 v226; // x4 | |
__int64 v227; // x5 | |
__int64 v228; // x6 | |
__int64 v229; // x7 | |
__int64 v230; // x2 | |
__int64 v231; // x3 | |
__int64 v232; // x4 | |
__int64 v233; // x5 | |
__int64 v234; // x6 | |
__int64 v235; // x7 | |
__int64 v236; // x2 | |
__int64 v237; // x3 | |
__int64 v238; // x4 | |
__int64 v239; // x5 | |
__int64 v240; // x6 | |
__int64 v241; // x7 | |
__int64 v242; // x2 | |
__int64 v243; // x3 | |
__int64 v244; // x4 | |
__int64 v245; // x5 | |
__int64 v246; // x6 | |
__int64 v247; // x7 | |
__int64 v248; // x2 | |
__int64 v249; // x3 | |
__int64 v250; // x4 | |
__int64 v251; // x5 | |
__int64 v252; // x6 | |
__int64 v253; // x7 | |
__int64 v254; // x2 | |
__int64 v255; // x3 | |
__int64 v256; // x4 | |
__int64 v257; // x5 | |
__int64 v258; // x6 | |
__int64 v259; // x7 | |
__int64 v260; // x2 | |
__int64 v261; // x3 | |
__int64 v262; // x4 | |
__int64 v263; // x5 | |
__int64 v264; // x6 | |
__int64 v265; // x7 | |
__int64 v266; // x2 | |
__int64 v267; // x3 | |
__int64 v268; // x4 | |
__int64 v269; // x5 | |
__int64 v270; // x6 | |
__int64 v271; // x7 | |
__int64 v272; // x2 | |
__int64 v273; // x3 | |
__int64 v274; // x4 | |
__int64 v275; // x5 | |
__int64 v276; // x6 | |
__int64 v277; // x7 | |
__int64 v278; // x20 | |
__int64 v279; // x19 | |
__int64 v280; // x2 | |
__int64 v281; // x3 | |
__int64 v282; // x4 | |
__int64 v283; // x5 | |
__int64 v284; // x6 | |
__int64 v285; // x7 | |
__int64 l; // x19 | |
signed __int64 v287; // x8 | |
__int64 v288; // x2 | |
__int64 v289; // x3 | |
__int64 v290; // x4 | |
__int64 v291; // x5 | |
__int64 v292; // x6 | |
__int64 v293; // x7 | |
__int64 v294; // x2 | |
__int64 v295; // x3 | |
__int64 v296; // x4 | |
__int64 v297; // x5 | |
__int64 v298; // x6 | |
__int64 v299; // x7 | |
__int64 v300; // x2 | |
__int64 v301; // x3 | |
__int64 v302; // x4 | |
__int64 v303; // x5 | |
__int64 v304; // x6 | |
__int64 v305; // x7 | |
__int64 m; // x19 | |
__int64 v307; // x2 | |
__int64 v308; // x3 | |
__int64 v309; // x4 | |
__int64 v310; // x5 | |
__int64 v311; // x6 | |
__int64 v312; // x7 | |
__int64 v313; // x2 | |
__int64 v314; // x3 | |
__int64 v315; // x4 | |
__int64 v316; // x5 | |
__int64 v317; // x6 | |
__int64 v318; // x7 | |
__int64 v319; // x2 | |
__int64 v320; // x3 | |
__int64 v321; // x4 | |
__int64 v322; // x5 | |
__int64 v323; // x6 | |
__int64 v324; // x7 | |
__int64 v325; // x2 | |
__int64 v326; // x3 | |
__int64 v327; // x4 | |
__int64 v328; // x5 | |
__int64 v329; // x6 | |
__int64 v330; // x7 | |
__int64 v331; // x2 | |
__int64 v332; // x3 | |
__int64 v333; // x4 | |
__int64 v334; // x5 | |
__int64 v335; // x6 | |
__int64 v336; // x7 | |
__int64 v337; // x2 | |
__int64 v338; // x3 | |
__int64 v339; // x4 | |
__int64 v340; // x5 | |
__int64 v341; // x6 | |
__int64 v342; // x7 | |
__int64 v343; // x2 | |
__int64 v344; // x3 | |
__int64 v345; // x4 | |
__int64 v346; // x5 | |
__int64 v347; // x6 | |
__int64 v348; // x7 | |
__int64 v349; // x2 | |
__int64 v350; // x3 | |
__int64 v351; // x4 | |
__int64 v352; // x5 | |
__int64 v353; // x6 | |
__int64 v354; // x7 | |
__int64 v355; // x2 | |
__int64 v356; // x3 | |
__int64 v357; // x4 | |
__int64 v358; // x5 | |
__int64 v359; // x6 | |
__int64 v360; // x7 | |
__int64 v361; // x2 | |
__int64 v362; // x3 | |
__int64 v363; // x4 | |
__int64 v364; // x5 | |
__int64 v365; // x6 | |
__int64 v366; // x7 | |
__int64 v367; // x2 | |
__int64 v368; // x3 | |
__int64 v369; // x4 | |
__int64 v370; // x5 | |
__int64 v371; // x6 | |
__int64 v372; // x7 | |
__int64 v373; // x2 | |
__int64 v374; // x3 | |
__int64 v375; // x4 | |
__int64 v376; // x5 | |
__int64 v377; // x6 | |
__int64 v378; // x7 | |
__int64 v379; // x2 | |
__int64 v380; // x3 | |
__int64 v381; // x4 | |
__int64 v382; // x5 | |
__int64 v383; // x6 | |
__int64 v384; // x7 | |
__int64 v385; // x2 | |
__int64 v386; // x3 | |
__int64 v387; // x4 | |
__int64 v388; // x5 | |
__int64 v389; // x6 | |
__int64 v390; // x7 | |
__int64 v391; // x2 | |
__int64 v392; // x3 | |
__int64 v393; // x4 | |
__int64 v394; // x5 | |
__int64 v395; // x6 | |
__int64 v396; // x7 | |
__int64 v397; // x2 | |
__int64 v398; // x3 | |
__int64 v399; // x4 | |
__int64 v400; // x5 | |
__int64 v401; // x6 | |
__int64 v402; // x7 | |
__int64 v403; // x2 | |
__int64 v404; // x3 | |
__int64 v405; // x4 | |
__int64 v406; // x5 | |
__int64 v407; // x6 | |
__int64 v408; // x7 | |
__int64 v409; // x2 | |
__int64 v410; // x3 | |
__int64 v411; // x4 | |
__int64 v412; // x5 | |
__int64 v413; // x6 | |
__int64 v414; // x7 | |
__int64 v415; // x2 | |
__int64 v416; // x3 | |
__int64 v417; // x4 | |
__int64 v418; // x5 | |
__int64 v419; // x6 | |
__int64 v420; // x7 | |
__int64 v421; // x2 | |
__int64 v422; // x3 | |
__int64 v423; // x4 | |
__int64 v424; // x5 | |
__int64 v425; // x6 | |
__int64 v426; // x7 | |
__int64 v427; // x2 | |
__int64 v428; // x3 | |
__int64 v429; // x4 | |
__int64 v430; // x5 | |
__int64 v431; // x6 | |
__int64 v432; // x7 | |
__int64 v433; // x2 | |
__int64 v434; // x3 | |
__int64 v435; // x4 | |
__int64 v436; // x5 | |
__int64 v437; // x6 | |
__int64 v438; // x7 | |
__int64 v439; // x2 | |
__int64 v440; // x3 | |
__int64 v441; // x4 | |
__int64 v442; // x5 | |
__int64 v443; // x6 | |
__int64 v444; // x7 | |
__int64 v445; // x2 | |
__int64 v446; // x3 | |
__int64 v447; // x4 | |
__int64 v448; // x5 | |
__int64 v449; // x6 | |
__int64 v450; // x7 | |
__int64 v451; // x2 | |
__int64 v452; // x3 | |
__int64 v453; // x4 | |
__int64 v454; // x5 | |
__int64 v455; // x6 | |
__int64 v456; // x7 | |
__int64 v457; // x2 | |
__int64 v458; // x3 | |
__int64 v459; // x4 | |
__int64 v460; // x5 | |
__int64 v461; // x6 | |
__int64 v462; // x7 | |
__int64 v463; // x2 | |
__int64 v464; // x3 | |
__int64 v465; // x4 | |
__int64 v466; // x5 | |
__int64 v467; // x6 | |
__int64 v468; // x7 | |
__int64 v469; // x2 | |
__int64 v470; // x3 | |
__int64 v471; // x4 | |
__int64 v472; // x5 | |
__int64 v473; // x6 | |
__int64 v474; // x7 | |
__int64 v475; // x2 | |
__int64 v476; // x3 | |
__int64 v477; // x4 | |
__int64 v478; // x5 | |
__int64 v479; // x6 | |
__int64 v480; // x7 | |
__int64 v481; // x2 | |
__int64 v482; // x3 | |
__int64 v483; // x4 | |
__int64 v484; // x5 | |
__int64 v485; // x6 | |
__int64 v486; // x7 | |
__int64 v487; // x2 | |
__int64 v488; // x3 | |
__int64 v489; // x4 | |
__int64 v490; // x5 | |
__int64 v491; // x6 | |
__int64 v492; // x7 | |
__int64 v493; // x2 | |
__int64 v494; // x3 | |
__int64 v495; // x4 | |
__int64 v496; // x5 | |
__int64 v497; // x6 | |
__int64 v498; // x7 | |
__int64 v499; // x2 | |
__int64 v500; // x3 | |
__int64 v501; // x4 | |
__int64 v502; // x5 | |
__int64 v503; // x6 | |
__int64 v504; // x7 | |
__int64 v505; // x2 | |
__int64 v506; // x3 | |
__int64 v507; // x4 | |
__int64 v508; // x5 | |
__int64 v509; // x6 | |
__int64 v510; // x7 | |
__int64 v511; // x2 | |
__int64 v512; // x3 | |
__int64 v513; // x4 | |
__int64 v514; // x5 | |
__int64 v515; // x6 | |
__int64 v516; // x7 | |
__int64 v517; // x2 | |
__int64 v518; // x3 | |
__int64 v519; // x4 | |
__int64 v520; // x5 | |
__int64 v521; // x6 | |
__int64 v522; // x7 | |
__int64 v523; // x2 | |
__int64 v524; // x3 | |
__int64 v525; // x4 | |
__int64 v526; // x5 | |
__int64 v527; // x6 | |
__int64 v528; // x7 | |
__int64 v529; // x2 | |
__int64 v530; // x3 | |
__int64 v531; // x4 | |
__int64 v532; // x5 | |
__int64 v533; // x6 | |
__int64 v534; // x7 | |
__int64 v535; // x2 | |
__int64 v536; // x3 | |
__int64 v537; // x4 | |
__int64 v538; // x5 | |
__int64 v539; // x6 | |
__int64 v540; // x7 | |
__int64 v541; // x2 | |
__int64 v542; // x3 | |
__int64 v543; // x4 | |
__int64 v544; // x5 | |
__int64 v545; // x6 | |
__int64 v546; // x7 | |
__int64 v547; // x2 | |
__int64 v548; // x3 | |
__int64 v549; // x4 | |
__int64 v550; // x5 | |
__int64 v551; // x6 | |
__int64 v552; // x7 | |
__int64 v553; // x2 | |
__int64 v554; // x3 | |
__int64 v555; // x4 | |
__int64 v556; // x5 | |
__int64 v557; // x6 | |
__int64 v558; // x7 | |
__int64 v559; // x2 | |
__int64 v560; // x3 | |
__int64 v561; // x4 | |
__int64 v562; // x5 | |
__int64 v563; // x6 | |
__int64 v564; // x7 | |
__int64 v565; // x2 | |
__int64 v566; // x3 | |
__int64 v567; // x4 | |
__int64 v568; // x5 | |
__int64 v569; // x6 | |
__int64 v570; // x7 | |
__int64 v571; // x2 | |
__int64 v572; // x3 | |
__int64 v573; // x4 | |
__int64 v574; // x5 | |
__int64 v575; // x6 | |
__int64 v576; // x7 | |
__int64 v577; // x2 | |
__int64 v578; // x3 | |
__int64 v579; // x4 | |
__int64 v580; // x5 | |
__int64 v581; // x6 | |
__int64 v582; // x7 | |
__int64 v583; // x2 | |
__int64 v584; // x3 | |
__int64 v585; // x4 | |
__int64 v586; // x5 | |
__int64 v587; // x6 | |
__int64 v588; // x7 | |
__int64 v589; // x2 | |
__int64 v590; // x3 | |
__int64 v591; // x4 | |
__int64 v592; // x5 | |
__int64 v593; // x6 | |
__int64 v594; // x7 | |
for ( i = 0LL; i != 98304; i += 0x8000LL ) | |
sub_1800B716C(i + 8592163224LL, 13107600LL, a3, a4, a5, a6, a7, a8); | |
for ( j = 0LL; j != 98304; j += 0x8000LL ) | |
sub_1800B716C(j + 8592162816LL, 1LL, a3, a4, a5, a6, a7, a8); | |
v10 = 0LL; | |
v11 = 8592166144LL; | |
while ( v10 != 68 ) | |
{ | |
sub_1800B716C(v11, HIDWORD(qword_1801148A0[v10 + 67]), a3, a4, a5, a6, a7, a8); | |
v10 += 17LL; | |
v11 += 4LL; | |
} | |
v12 = 0LL; | |
v13 = 8592198400LL; | |
while ( v12 != 68 ) | |
{ | |
sub_1800B716C(v13, HIDWORD(qword_1801148A0[v12 + 69]), a3, a4, a5, a6, a7, a8); | |
sub_1800B716C(v13 + 0x8000, HIDWORD(qword_1801148A0[v12 + 69]), v14, v15, v16, v17, v18, v19); | |
v12 += 17LL; | |
v13 += 4LL; | |
} | |
sub_1800B716C(8592163208LL, 33556480LL, a3, a4, a5, a6, a7, a8); | |
sub_1800B716C(8592195976LL, 33556480LL, v20, v21, v22, v23, v24, v25); | |
sub_1800B716C(8592228744LL, 33556480LL, v26, v27, v28, v29, v30, v31); | |
sub_1800B716C(8592164632LL, 50529029LL, v32, v33, v34, v35, v36, v37); | |
sub_1800B716C(8592197148LL, 196613LL, v38, v39, v40, v41, v42, v43); | |
sub_1800B716C(8592229916LL, 196613LL, v44, v45, v46, v47, v48, v49); | |
sub_1800B716C(8592197128LL, 16711682LL, v50, v51, v52, v53, v54, v55); | |
sub_1800B716C(8592229896LL, 16711682LL, v56, v57, v58, v59, v60, v61); | |
sub_1800B72C0(8592197128LL, 2LL, 0LL, v62, v63, v64, v65, v66); | |
sub_1800B72C0(8592229896LL, 2LL, 0LL, v67, v68, v69, v70, v71); | |
sub_1800B716C(8592197120LL, 4278190082LL, v72, v73, v74, v75, v76, v77); | |
sub_1800B716C(8592229888LL, 4278190082LL, v78, v79, v80, v81, v82, v83); | |
sub_1800B72C0(8592197120LL, 2LL, 0LL, v84, v85, v86, v87, v88); | |
sub_1800B72C0(8592229888LL, 2LL, 0LL, v89, v90, v91, v92, v93); | |
sub_1800B716C(8592164864LL, 16712191LL, v94, v95, v96, v97, v98, v99); | |
sub_1800B72C0(8592164864LL, 256LL, 0LL, v100, v101, v102, v103, v104); | |
for ( k = 0LL; k != 98304; k += 0x8000LL ) | |
sub_1800B716C(k + 8592163224LL, 13107600LL, v105, v106, v107, v108, v109, v110); | |
sub_1800B716C(8592166516LL, 101062148LL, v105, v106, v107, v108, v109, v110); | |
v118 = 0LL; | |
v119 = 8592166784LL; | |
while ( v118 != 51 ) | |
{ | |
sub_1800B716C(v119, LODWORD(qword_1801148A0[v118 + 87]), v112, v113, v114, v115, v116, v117); | |
v118 += 17LL; | |
v119 += 4LL; | |
} | |
v120 = 0LL; | |
v121 = 8592199040LL; | |
while ( v120 != 68 ) | |
{ | |
sub_1800B716C(v121, HIDWORD(qword_1801148A0[v120 + 70]), v112, v113, v114, v115, v116, v117); | |
sub_1800B716C(v121 + 0x8000, HIDWORD(qword_1801148A0[v120 + 70]), v122, v123, v124, v125, v126, v127); | |
v120 += 17LL; | |
v121 += 4LL; | |
} | |
sub_1800B716C(8592166800LL, 22LL, v112, v113, v114, v115, v116, v117); | |
sub_1800B716C(8592166400LL, 17171720LL, v128, v129, v130, v131, v132, v133); | |
sub_1800B716C(8592166408LL, 17171458LL, v134, v135, v136, v137, v138, v139); | |
sub_1800B716C(8592166424LL, 17171464LL, v140, v141, v142, v143, v144, v145); | |
sub_1800B716C(8592166404LL, 101059596LL, v146, v147, v148, v149, v150, v151); | |
sub_1800B716C(8592166412LL, 101059082LL, v152, v153, v154, v155, v156, v157); | |
sub_1800B716C(8592166444LL, 1431649370LL, v158, v159, v160, v161, v162, v163); | |
sub_1800B716C(8592166448LL, 15450LL, v164, v165, v166, v167, v168, v169); | |
sub_1800B716C(8592166560LL, 1894911016LL, v170, v171, v172, v173, v174, v175); | |
sub_1800B716C(8592166564LL, 1665907093LL, v176, v177, v178, v179, v180, v181); | |
sub_1800B716C(8592166568LL, 28015LL, v182, v183, v184, v185, v186, v187); | |
sub_1800B716C(8592166580LL, 218694913LL, v188, v189, v190, v191, v192, v193); | |
sub_1800B716C(8592166584LL, 488183057LL, v194, v195, v196, v197, v198, v199); | |
sub_1800B716C(8592166588LL, 33LL, v200, v201, v202, v203, v204, v205); | |
sub_1800B716C(8592166592LL, 875572264LL, v206, v207, v208, v209, v210, v211); | |
sub_1800B716C(8592166596LL, 1145060408LL, v212, v213, v214, v215, v216, v217); | |
sub_1800B716C(8592166600LL, 72LL, v218, v219, v220, v221, v222, v223); | |
sub_1800B716C(8592166456LL, 16253393LL, v224, v225, v226, v227, v228, v229); | |
sub_1800B716C(8592166460LL, 19858272LL, v230, v231, v232, v233, v234, v235); | |
sub_1800B716C(8592166464LL, 16253393LL, v236, v237, v238, v239, v240, v241); | |
sub_1800B716C(8592166468LL, 19858272LL, v242, v243, v244, v245, v246, v247); | |
sub_1800B716C(8592166524LL, 10489108LL, v248, v249, v250, v251, v252, v253); | |
sub_1800B716C(8592166528LL, 2694843661LL, v254, v255, v256, v257, v258, v259); | |
sub_1800B716C(8592198912LL, 538447872LL, v260, v261, v262, v263, v264, v265); | |
sub_1800B716C(8592231680LL, 538447872LL, v266, v267, v268, v269, v270, v271); | |
v278 = 0LL; | |
v279 = 8592195840LL; | |
while ( v278 != 68 ) | |
{ | |
sub_1800B716C(v279, LODWORD(qword_1801148A0[v278 + 73]), v272, v273, v274, v275, v276, v277); | |
sub_1800B716C(v279 + 0x8000, LODWORD(qword_1801148A0[v278 + 73]), v280, v281, v282, v283, v284, v285); | |
v278 += 17LL; | |
v279 += 4LL; | |
} | |
for ( l = 0LL; l != 98304; l += 0x8000LL ) | |
{ | |
if ( l ) | |
v287 = 0LL; | |
else | |
v287 = -4LL; | |
sub_1800B716C(v287 + 8592163224LL + l + 12, 2147483776LL, v272, v273, v274, v275, v276, v277); | |
} | |
sub_1800B716C(8592163228LL, 270532640LL, v272, v273, v274, v275, v276, v277); | |
sub_1800B716C(8592196000LL, 0LL, v288, v289, v290, v291, v292, v293); | |
sub_1800B716C(8592228768LL, 0LL, v294, v295, v296, v297, v298, v299); | |
for ( m = 0LL; m != 0x10000; m += 0x8000LL ) | |
sub_1800B716C(m + 8592195968LL, 256LL, v300, v301, v302, v303, v304, v305); | |
sub_1800B716C(8592162968LL, 268765991LL, v300, v301, v302, v303, v304, v305); | |
sub_1800B716C(8592162972LL, 400LL, v307, v308, v309, v310, v311, v312); | |
sub_1800B716C(8592166604LL, 1LL, v313, v314, v315, v316, v317, v318); | |
sub_1800B716C(8592166608LL, 907682836LL, v319, v320, v321, v322, v323, v324); | |
sub_1800B716C(8592166612LL, 403514388LL, v325, v326, v327, v328, v329, v330); | |
sub_1800B716C(8592165128LL, 2162688LL, v331, v332, v333, v334, v335, v336); | |
sub_1800B716C(8592165440LL, 792LL, v337, v338, v339, v340, v341, v342); | |
sub_1800B716C(8592165444LL, 396LL, v343, v344, v345, v346, v347, v348); | |
sub_1800B716C(8592165452LL, 28LL, v349, v350, v351, v352, v353, v354); | |
sub_1800B716C(8592165456LL, 24LL, v355, v356, v357, v358, v359, v360); | |
sub_1800B716C(8592165468LL, 1LL, v361, v362, v363, v364, v365, v366); | |
sub_1800B716C(8592261160LL, 857151255LL, v367, v368, v369, v370, v371, v372); | |
sub_1800B716C(8592261168LL, 0LL, v373, v374, v375, v376, v377, v378); | |
sub_1800B716C(8592261188LL, 131315LL, v379, v380, v381, v382, v383, v384); | |
sub_1800B716C(8592261200LL, 857151255LL, v385, v386, v387, v388, v389, v390); | |
sub_1800B716C(8592261208LL, 0LL, v391, v392, v393, v394, v395, v396); | |
sub_1800B716C(8592261216LL, 243LL, v397, v398, v399, v400, v401, v402); | |
sub_1800B716C(8592261240LL, 857151255LL, v403, v404, v405, v406, v407, v408); | |
sub_1800B716C(8592261248LL, 0LL, v409, v410, v411, v412, v413, v414); | |
sub_1800B716C(8592261280LL, 1884291315LL, v415, v416, v417, v418, v419, v420); | |
sub_1800B716C(8592261296LL, 29361971LL, v421, v422, v423, v424, v425, v426); | |
sub_1800B716C(8592261300LL, 5LL, v427, v428, v429, v430, v431, v432); | |
sub_1800B716C(8592261352LL, 857151255LL, v433, v434, v435, v436, v437, v438); | |
sub_1800B716C(8592261408LL, 5LL, v439, v440, v441, v442, v443, v444); | |
sub_1800B716C(8592261360LL, 0LL, v445, v446, v447, v448, v449, v450); | |
sub_1800B716C(8592261388LL, 1884291315LL, v451, v452, v453, v454, v455, v456); | |
sub_1800B716C(8592261404LL, 29361971LL, v457, v458, v459, v460, v461, v462); | |
sub_1800B716C(8592261312LL, 857151255LL, v463, v464, v465, v466, v467, v468); | |
sub_1800B716C(8592261328LL, 1884291315LL, v469, v470, v471, v472, v473, v474); | |
sub_1800B716C(8592261336LL, 29362051LL, v475, v476, v477, v478, v479, v480); | |
sub_1800B716C(8592261344LL, 7LL, v481, v482, v483, v484, v485, v486); | |
sub_1800B716C(8592261340LL, 265984LL, v487, v488, v489, v490, v491, v492); | |
sub_1800B716C(8592261320LL, 1930LL, v493, v494, v495, v496, v497, v498); | |
sub_1800B716C(8592261324LL, 196608LL, v499, v500, v501, v502, v503, v504); | |
sub_1800B716C(8592261424LL, 857151255LL, v505, v506, v507, v508, v509, v510); | |
sub_1800B716C(8592261440LL, 1884291315LL, v511, v512, v513, v514, v515, v516); | |
sub_1800B716C(8592261448LL, 29361027LL, v517, v518, v519, v520, v521, v522); | |
sub_1800B716C(8592261456LL, 265984LL, v523, v524, v525, v526, v527, v528); | |
sub_1800B716C(8592261452LL, 7LL, v529, v530, v531, v532, v533, v534); | |
sub_1800B716C(8592261432LL, 1930LL, v535, v536, v537, v538, v539, v540); | |
sub_1800B716C(8592261156LL, 0LL, v541, v542, v543, v544, v545, v546); | |
sub_1800B716C(8592261132LL, 8945535LL, v547, v548, v549, v550, v551, v552); | |
sub_1800B716C(8592261128LL, 983835LL, v553, v554, v555, v556, v557, v558); | |
sub_1800B716C(8592261884LL, 2070LL, v559, v560, v561, v562, v563, v564); | |
sub_1800B716C(8592166688LL, 421075217LL, v565, v566, v567, v568, v569, v570); | |
sub_1800B716C(8592166680LL, 3823363001LL, v571, v572, v573, v574, v575, v576); | |
sub_1800B716C(8592166620LL, 134744072LL, v577, v578, v579, v580, v581, v582); | |
sub_1800B716C(8592166636LL, 842163144LL, v583, v584, v585, v586, v587, v588); | |
return sub_1800B716C(8592166712LL, 0LL, v589, v590, v591, v592, v593, v594); | |
} | |
// 1801148A0: using guessed type __int64 qword_1801148A0[]; | |
//----- (00000001800CAB14) ---------------------------------------------------- | |
__int64 __fastcall sub_1800CAB14(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
__int64 v8; // x2 | |
__int64 v9; // x3 | |
__int64 v10; // x4 | |
__int64 v11; // x5 | |
__int64 v12; // x6 | |
__int64 v13; // x7 | |
__int64 v14; // x2 | |
__int64 v15; // x3 | |
__int64 v16; // x4 | |
__int64 v17; // x5 | |
__int64 v18; // x6 | |
__int64 v19; // x7 | |
__int64 v20; // x22 | |
__int64 v21; // x19 | |
__int64 v22; // x2 | |
__int64 v23; // x3 | |
__int64 v24; // x4 | |
__int64 v25; // x5 | |
__int64 v26; // x6 | |
__int64 v27; // x7 | |
__int64 v28; // x2 | |
__int64 v29; // x3 | |
__int64 v30; // x4 | |
__int64 v31; // x5 | |
__int64 v32; // x6 | |
__int64 v33; // x7 | |
__int64 v34; // x2 | |
__int64 v35; // x3 | |
__int64 v36; // x4 | |
__int64 v37; // x5 | |
__int64 v38; // x6 | |
__int64 v39; // x7 | |
__int64 v40; // x2 | |
__int64 v41; // x3 | |
__int64 v42; // x4 | |
__int64 v43; // x5 | |
__int64 v44; // x6 | |
__int64 v45; // x7 | |
__int64 v46; // x2 | |
__int64 v47; // x3 | |
__int64 v48; // x4 | |
__int64 v49; // x5 | |
__int64 v50; // x6 | |
__int64 v51; // x7 | |
sub_1800B797C(5u, (__int64)"after Imp. Cal.", a3, a4, a5, a6, a7, a8); | |
sub_1800B716C(8592032792LL, 134291481LL, v8, v9, v10, v11, v12, v13); | |
v20 = 0LL; | |
v21 = 8592032624LL; | |
while ( v20 != 68 ) | |
{ | |
sub_1800B716C(v21, HIDWORD(qword_1801148A0[v20 + 73]), v14, v15, v16, v17, v18, v19); | |
v20 += 17LL; | |
v21 += 4LL; | |
} | |
sub_1800B716C(8592032700LL, 4129279LL, v14, v15, v16, v17, v18, v19); | |
sub_1800B716C(8592032700LL, 1310813LL, v22, v23, v24, v25, v26, v27); | |
sub_1800B716C(8592032804LL, 4096LL, v28, v29, v30, v31, v32, v33); | |
sub_1800B716C(8592032800LL, 16850952LL, v34, v35, v36, v37, v38, v39); | |
sub_1800B716C(8592032800LL, 16850952LL, v40, v41, v42, v43, v44, v45); | |
return sub_1800B716C(8592032832LL, 352518156LL, v46, v47, v48, v49, v50, v51); | |
} | |
// 1801148A0: using guessed type __int64 qword_1801148A0[]; | |
//----- (00000001800CABF0) ---------------------------------------------------- | |
__int64 __fastcall sub_1800CABF0(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
__int64 v8; // x2 | |
__int64 v9; // x3 | |
__int64 v10; // x4 | |
__int64 v11; // x5 | |
__int64 v12; // x6 | |
__int64 v13; // x7 | |
__int64 i; // x20 | |
__int64 v15; // x3 | |
__int64 v16; // x4 | |
__int64 v17; // x5 | |
__int64 v18; // x6 | |
__int64 v19; // x7 | |
__int64 v20; // x0 | |
__int64 v21; // x1 | |
__int64 v22; // x2 | |
__int64 v23; // x3 | |
__int64 v24; // x4 | |
__int64 v25; // x5 | |
__int64 v26; // x6 | |
__int64 v27; // x7 | |
__int64 v28; // x2 | |
__int64 v29; // x3 | |
__int64 v30; // x4 | |
__int64 v31; // x5 | |
__int64 v32; // x6 | |
__int64 v33; // x7 | |
__int64 v34; // x3 | |
__int64 v35; // x4 | |
__int64 v36; // x5 | |
__int64 v37; // x6 | |
__int64 v38; // x7 | |
__int64 v39; // x2 | |
__int64 v40; // x3 | |
__int64 v41; // x4 | |
__int64 v42; // x5 | |
__int64 v43; // x6 | |
__int64 v44; // x7 | |
__int64 v45; // x2 | |
__int64 v46; // x3 | |
__int64 v47; // x4 | |
__int64 v48; // x5 | |
__int64 v49; // x6 | |
__int64 v50; // x7 | |
__int64 v51; // x19 | |
__int64 v52; // x2 | |
__int64 v53; // x3 | |
__int64 v54; // x4 | |
__int64 v55; // x5 | |
__int64 v56; // x6 | |
__int64 v57; // x7 | |
__int64 v58; // x3 | |
__int64 v59; // x4 | |
__int64 v60; // x5 | |
__int64 v61; // x6 | |
__int64 v62; // x7 | |
__int64 v63; // x2 | |
__int64 v64; // x3 | |
__int64 v65; // x4 | |
__int64 v66; // x5 | |
__int64 v67; // x6 | |
__int64 v68; // x7 | |
__int64 v69; // x2 | |
__int64 v70; // x3 | |
__int64 v71; // x4 | |
__int64 v72; // x5 | |
__int64 v73; // x6 | |
__int64 v74; // x7 | |
sub_1800B716C(8592031744LL, 3LL, a3, a4, a5, a6, a7, a8); | |
for ( i = 0LL; i != 98304; i += 0x8000LL ) | |
sub_1800B716C(i + 8592162824LL, 1LL, v8, v9, v10, v11, v12, v13); | |
sub_1800B716C(8592162960LL, 1LL, v8, v9, v10, v11, v12, v13); | |
v20 = sub_1800B72C0(8592162960LL, 1LL, 0LL, v15, v16, v17, v18, v19); | |
if ( MEMORY[0x180115A28] == 1 ) | |
sub_1800C9DC8(v20, v21, v22, v23, v24, v25, v26, v27); | |
sub_1800B797C(0x898u, (__int64)"After Enable Auto-Refresh", v22, v23, v24, v25, v26, v27); | |
sub_1800B716C(8592032848LL, 0x10000LL, v28, v29, v30, v31, v32, v33); | |
sub_1800B72C0(8592032848LL, 0x10000LL, 0LL, v34, v35, v36, v37, v38); | |
sub_1800B797C(2u, (__int64)"After SoC Update", v39, v40, v41, v42, v43, v44); | |
if ( MEMORY[0x180115A28] ) | |
v51 = 0x4000LL; | |
else | |
v51 = 0LL; | |
sub_1800B716C(8592033024LL, v51, v45, v46, v47, v48, v49, v50); | |
sub_1800B716C(8592033024LL, (unsigned int)v51 | 1, v52, v53, v54, v55, v56, v57); | |
sub_1800B72C0(8592033024LL, 1LL, 0LL, v58, v59, v60, v61, v62); | |
sub_1800B797C(2u, 0LL, v63, v64, v65, v66, v67, v68); | |
return sub_1800B70E4(8842903620LL, (unsigned int)((1 << MEMORY[0x180115A34]) - 1), v69, v70, v71, v72, v73, v74); | |
} | |
//----- (00000001800CAD5C) ---------------------------------------------------- | |
__int64 sub_1800CAD5C() | |
{ | |
__int64 v0; // x2 | |
__int64 v1; // x3 | |
__int64 v2; // x4 | |
__int64 v3; // x5 | |
__int64 v4; // x6 | |
__int64 v5; // x7 | |
__int64 v6; // x2 | |
__int64 v7; // x3 | |
__int64 v8; // x4 | |
__int64 v9; // x5 | |
__int64 v10; // x6 | |
__int64 v11; // x7 | |
__int64 result; // x0 | |
unsigned int v13; // w20 | |
unsigned __int16 v14; // w21 | |
sub_1800B75EC(2, MEMORY[0x180115A34], MEMORY[0x180115A38], 0, (_BYTE *)0x4F); | |
sub_1800B797C(1u, (__int64)"tZQCAL", v0, v1, v2, v3, v4, v5); | |
sub_1800B75EC(2, MEMORY[0x180115A34], MEMORY[0x180115A38], 0, (_BYTE *)0x51); | |
result = sub_1800B797C(1u, (__int64)"tZQLAT", v6, v7, v8, v9, v10, v11); | |
if ( !MEMORY[0x180115A28] ) | |
{ | |
sub_1800B75EC(1, MEMORY[0x180115A34], MEMORY[0x180115A38], 2, 0LL); | |
sub_1800B75EC(1, MEMORY[0x180115A34], MEMORY[0x180115A38], 1, (_BYTE *)0x8E); | |
sub_1800B75EC(1, MEMORY[0x180115A34], MEMORY[0x180115A38], 3, (_BYTE *)0xF3); | |
sub_1800B75EC(1, MEMORY[0x180115A34], MEMORY[0x180115A38], 22, 0LL); | |
sub_1800B75EC(1, MEMORY[0x180115A34], MEMORY[0x180115A38], 11, 0LL); | |
sub_1800B75EC(1, MEMORY[0x180115A34], MEMORY[0x180115A38], 13, (_BYTE *)0x18); | |
sub_1800B75EC(1, MEMORY[0x180115A34], MEMORY[0x180115A38], 12, (_BYTE *)0x59); | |
sub_1800B75EC(1, MEMORY[0x180115A34], MEMORY[0x180115A38], 14, (_BYTE *)0x59); | |
sub_1800B75EC(1, MEMORY[0x180115A34], MEMORY[0x180115A38], 23, (_BYTE *)0x80); | |
v13 = MEMORY[0x200220E2C]; | |
v14 = MEMORY[0x200220E30]; | |
sub_1800B75EC(2, MEMORY[0x180115A34], MEMORY[0x180115A38], 15, (_BYTE *)((MEMORY[0x200220E2C] >> 16) & 0xFF)); | |
sub_1800B75EC(2, MEMORY[0x180115A34], MEMORY[0x180115A38], 20, (_BYTE *)(v13 >> 24)); | |
sub_1800B75EC(2, MEMORY[0x180115A34], MEMORY[0x180115A38], 32, (_BYTE *)(unsigned __int8)v14); | |
result = sub_1800B75EC(2, MEMORY[0x180115A34], MEMORY[0x180115A38], 40, (_BYTE *)(v14 >> 8)); | |
} | |
return result; | |
} | |
//----- (00000001800CAF3C) ---------------------------------------------------- | |
__int64 __fastcall sub_1800CAF3C(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
return sub_1800B70E4(8589935816LL, 197121LL, a3, a4, a5, a6, a7, a8); | |
} | |
//----- (00000001800CAF54) ---------------------------------------------------- | |
__int64 sub_1800CAF54() | |
{ | |
int *v0; // x0 | |
__int64 v1; // x1 | |
__int64 v2; // x2 | |
__int64 v3; // x3 | |
__int64 v4; // x4 | |
__int64 v5; // x5 | |
__int64 v6; // x6 | |
__int64 v7; // x7 | |
int v8; // w23 | |
int v9; // w24 | |
__int16 v10; // w9 | |
__int64 v11; // x2 | |
__int64 v12; // x3 | |
__int64 v13; // x4 | |
__int64 v14; // x5 | |
__int64 v15; // x6 | |
__int64 v16; // x7 | |
__int64 v17; // x2 | |
__int64 v18; // x3 | |
__int64 v19; // x4 | |
__int64 v20; // x5 | |
__int64 v21; // x6 | |
__int64 v22; // x7 | |
__int64 v23; // x2 | |
__int64 v24; // x3 | |
__int64 v25; // x4 | |
__int64 v26; // x5 | |
__int64 v27; // x6 | |
__int64 v28; // x7 | |
__int64 v29; // x2 | |
__int64 v30; // x3 | |
__int64 v31; // x4 | |
__int64 v32; // x5 | |
__int64 v33; // x6 | |
__int64 v34; // x7 | |
__int64 v35; // x2 | |
__int64 v36; // x3 | |
__int64 v37; // x4 | |
__int64 v38; // x5 | |
__int64 v39; // x6 | |
__int64 v40; // x7 | |
__int64 v41; // x2 | |
__int64 v42; // x3 | |
__int64 v43; // x4 | |
__int64 v44; // x5 | |
__int64 v45; // x6 | |
__int64 v46; // x7 | |
__int64 v47; // x2 | |
__int64 v48; // x3 | |
__int64 v49; // x4 | |
__int64 v50; // x5 | |
__int64 v51; // x6 | |
__int64 v52; // x7 | |
__int64 v53; // x0 | |
__int64 v54; // x1 | |
bool v55; // zf | |
__int64 v56; // x2 | |
__int64 v57; // x3 | |
__int64 v58; // x4 | |
__int64 v59; // x5 | |
__int64 v60; // x6 | |
__int64 v61; // x7 | |
__int64 result; // x0 | |
__int64 v63; // x1 | |
__int64 v64; // x2 | |
__int64 v65; // x3 | |
__int64 v66; // x4 | |
__int64 v67; // x5 | |
__int64 v68; // x6 | |
__int64 v69; // x7 | |
v0 = (int *)sub_1800B6010(); | |
v8 = *v0; | |
v9 = v0[5]; | |
v10 = MEMORY[0x180115A3C]; | |
if ( MEMORY[0x180115A3C] & 0x200 ) | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v1, v2, v3, v4, v5, v6, v7, -4137634360339349652LL); | |
v10 = MEMORY[0x180115A3C]; | |
} | |
if ( v10 & 0x200 ) | |
sub_1800EF260((__int64)"%llx:%d\n", v1, v2, v3, v4, v5, v6, v7, -4137634360339349652LL); | |
if ( v9 == 3 ) | |
{ | |
sub_1800B70E4(8589935780LL, 328226LL, v2, v3, v4, v5, v6, v7); | |
sub_1800B70E4(8589935816LL, 262657LL, v11, v12, v13, v14, v15, v16); | |
if ( v8 != 6 ) | |
goto LABEL_15; | |
sub_1800B716C(8592032624LL, 1218904237LL, v17, v18, v19, v20, v21, v22); | |
sub_1800B716C(8592032640LL, 2668285970LL, v23, v24, v25, v26, v27, v28); | |
sub_1800B716C(8592032628LL, 609484887LL, v29, v30, v31, v32, v33, v34); | |
sub_1800B716C(8592032644LL, 1342533650LL, v35, v36, v37, v38, v39, v40); | |
sub_1800B716C(8592032632LL, 152371222LL, v41, v42, v43, v44, v45, v46); | |
v53 = 8592032648LL; | |
v54 = 671178770LL; | |
goto LABEL_14; | |
} | |
sub_1800B70E4(8589935780LL, 328224LL, v2, v3, v4, v5, v6, v7); | |
if ( v8 == 6 ) | |
v55 = v9 == 2; | |
else | |
v55 = 0; | |
if ( v55 ) | |
{ | |
sub_1800B716C(8592032624LL, 948895917LL, v17, v18, v19, v20, v21, v22); | |
sub_1800B716C(8592032628LL, 474480727LL, v56, v57, v58, v59, v60, v61); | |
v53 = 8592032632LL; | |
v54 = 118620182LL; | |
LABEL_14: | |
sub_1800B716C(v53, v54, v47, v48, v49, v50, v51, v52); | |
} | |
LABEL_15: | |
result = sub_1800B716C(8592032636LL, 50724870LL, v17, v18, v19, v20, v21, v22); | |
if ( MEMORY[0x180115A3C] & 0x200 ) | |
result = sub_1800EF260((__int64)"%llx:%d\n", v63, v64, v65, v66, v67, v68, v69, -4137634360339349652LL); | |
return result; | |
} | |
// 180114568: using guessed type int dword_180114568; | |
//----- (00000001800CB1A8) ---------------------------------------------------- | |
__int64 __fastcall sub_1800CB1A8(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
__int64 v8; // x2 | |
__int64 v9; // x3 | |
__int64 v10; // x4 | |
__int64 v11; // x5 | |
__int64 v12; // x6 | |
__int64 v13; // x7 | |
sub_1800B797C(5u, (__int64)"After Refresh", a3, a4, a5, a6, a7, a8); | |
return sub_1800B716C(8592031744LL, 3LL, v8, v9, v10, v11, v12, v13); | |
} | |
//----- (00000001800CB1D4) ---------------------------------------------------- | |
__int64 sub_1800CB1D4() | |
{ | |
int *v0; // x0 | |
int v1; // w20 | |
int v2; // w21 | |
__int64 v3; // x2 | |
__int64 v4; // x3 | |
__int64 v5; // x4 | |
__int64 v6; // x5 | |
__int64 v7; // x6 | |
__int64 v8; // x7 | |
bool v9; // zf | |
__int64 v10; // x3 | |
__int64 v11; // x4 | |
__int64 v12; // x5 | |
__int64 v13; // x6 | |
__int64 v14; // x7 | |
v0 = (int *)sub_1800B6010(); | |
v1 = *v0; | |
v2 = v0[5]; | |
sub_1800B75EC(1, MEMORY[0x180115A34], MEMORY[0x180115A38], 13, (_BYTE *)0x58); | |
sub_1800B75EC(1, MEMORY[0x180115A34], MEMORY[0x180115A38], 2, (_BYTE *)0x52); | |
sub_1800B75EC(1, MEMORY[0x180115A34], MEMORY[0x180115A38], 1, (_BYTE *)0xAE); | |
sub_1800B75EC(1, MEMORY[0x180115A34], MEMORY[0x180115A38], 3, (_BYTE *)0x73); | |
sub_1800B75EC(1, MEMORY[0x180115A34], MEMORY[0x180115A38], 22, (_BYTE *)4); | |
sub_1800B75EC(1, MEMORY[0x180115A34], MEMORY[0x180115A38], 11, 0LL); | |
sub_1800B75EC(1, MEMORY[0x180115A34], MEMORY[0x180115A38], 12, (_BYTE *)0x51); | |
sub_1800B75EC(1, MEMORY[0x180115A34], MEMORY[0x180115A38], 14, (_BYTE *)0x59); | |
if ( v1 == 6 ) | |
v9 = v2 == 3; | |
else | |
v9 = 0; | |
if ( v9 ) | |
sub_1800B75EC(1, MEMORY[0x180115A34], MEMORY[0x180115A38], 21, (_BYTE *)0xA0); | |
sub_1800B716C(8592164864LL, 512LL, v3, v4, v5, v6, v7, v8); | |
return sub_1800B72C0(8592164864LL, 512LL, 0LL, v10, v11, v12, v13, v14); | |
} | |
//----- (00000001800CB318) ---------------------------------------------------- | |
__int64 sub_1800CB318() | |
{ | |
__int64 v0; // x2 | |
__int64 v1; // x3 | |
__int64 v2; // x4 | |
__int64 v3; // x5 | |
__int64 v4; // x6 | |
__int64 v5; // x7 | |
sub_1800B75EC(1, MEMORY[0x180115A34], MEMORY[0x180115A38], 13, (_BYTE *)0xD8); | |
return sub_1800B797C(1u, 0LL, v0, v1, v2, v3, v4, v5); | |
} | |
//----- (00000001800CB350) ---------------------------------------------------- | |
__int64 __fastcall sub_1800CB350(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
__int64 v8; // x3 | |
__int64 v9; // x4 | |
__int64 v10; // x5 | |
__int64 v11; // x6 | |
__int64 v12; // x7 | |
__int64 v13; // x2 | |
__int64 v14; // x3 | |
__int64 v15; // x4 | |
__int64 v16; // x5 | |
__int64 v17; // x6 | |
__int64 v18; // x7 | |
__int64 v19; // x2 | |
__int64 v20; // x3 | |
__int64 v21; // x4 | |
__int64 v22; // x5 | |
__int64 v23; // x6 | |
__int64 v24; // x7 | |
sub_1800B716C(8592032848LL, 33619968LL, a3, a4, a5, a6, a7, a8); | |
sub_1800B72C0(8592032848LL, 0x10000LL, 0LL, v8, v9, v10, v11, v12); | |
sub_1800B716C(8592032848LL, 0x2000000LL, v13, v14, v15, v16, v17, v18); | |
return sub_1800B797C(2u, 0LL, v19, v20, v21, v22, v23, v24); | |
} | |
//----- (00000001800CB3A8) ---------------------------------------------------- | |
__int64 __fastcall sub_1800CB3A8(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
__int64 v8; // x2 | |
__int64 v9; // x3 | |
__int64 v10; // x4 | |
__int64 v11; // x5 | |
__int64 v12; // x6 | |
__int64 v13; // x7 | |
sub_1800B716C(8592197152LL, 100663296LL, a3, a4, a5, a6, a7, a8); | |
return sub_1800B716C(8592229920LL, 100663296LL, v8, v9, v10, v11, v12, v13); | |
} | |
//----- (00000001800CB3E8) ---------------------------------------------------- | |
__int64 __fastcall sub_1800CB3E8(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
__int64 v8; // x2 | |
__int64 v9; // x3 | |
__int64 v10; // x4 | |
__int64 v11; // x5 | |
__int64 v12; // x6 | |
__int64 v13; // x7 | |
sub_1800B716C(8592261320LL, 198538LL, a3, a4, a5, a6, a7, a8); | |
return sub_1800B716C(8592261432LL, 198538LL, v8, v9, v10, v11, v12, v13); | |
} | |
//----- (00000001800CB430) ---------------------------------------------------- | |
__int64 sub_1800CB430() | |
{ | |
int *v0; // x0 | |
int v1; // w19 | |
int v2; // w20 | |
__int64 v3; // x2 | |
__int64 v4; // x3 | |
__int64 v5; // x4 | |
__int64 v6; // x5 | |
__int64 v7; // x6 | |
__int64 v8; // x7 | |
__int64 v9; // x2 | |
__int64 v10; // x3 | |
__int64 v11; // x4 | |
__int64 v12; // x5 | |
__int64 v13; // x6 | |
__int64 v14; // x7 | |
__int64 result; // x0 | |
bool v16; // zf | |
v0 = (int *)sub_1800B6010(); | |
v1 = *v0; | |
v2 = v0[5]; | |
sub_1800B716C(8592261320LL, 1930LL, v3, v4, v5, v6, v7, v8); | |
sub_1800B716C(8592261432LL, 1930LL, v9, v10, v11, v12, v13, v14); | |
sub_1800B75EC(1, MEMORY[0x180115A34], MEMORY[0x180115A38], 13, (_BYTE *)0x98); | |
sub_1800B75EC(1, MEMORY[0x180115A34], MEMORY[0x180115A38], 2, (_BYTE *)0x2D); | |
sub_1800B75EC(1, MEMORY[0x180115A34], MEMORY[0x180115A38], 1, (_BYTE *)0xDE); | |
sub_1800B75EC(1, MEMORY[0x180115A34], MEMORY[0x180115A38], 3, (_BYTE *)0xB3); | |
sub_1800B75EC(1, MEMORY[0x180115A34], MEMORY[0x180115A38], 22, (_BYTE *)4); | |
sub_1800B75EC(1, MEMORY[0x180115A34], MEMORY[0x180115A38], 11, (_BYTE *)0x44); | |
sub_1800B75EC(1, MEMORY[0x180115A34], MEMORY[0x180115A38], 12, (_BYTE *)0x11); | |
result = sub_1800B75EC(1, MEMORY[0x180115A34], MEMORY[0x180115A38], 14, (_BYTE *)0x11); | |
if ( v1 == 6 ) | |
v16 = v2 == 3; | |
else | |
v16 = 0; | |
if ( v16 ) | |
result = sub_1800B75EC(1, MEMORY[0x180115A34], MEMORY[0x180115A38], 21, (_BYTE *)0x80); | |
return result; | |
} | |
//----- (00000001800CB580) ---------------------------------------------------- | |
__int64 sub_1800CB580() | |
{ | |
__int64 v0; // x2 | |
__int64 v1; // x3 | |
__int64 v2; // x4 | |
__int64 v3; // x5 | |
__int64 v4; // x6 | |
__int64 v5; // x7 | |
sub_1800B75EC(1, MEMORY[0x180115A34], MEMORY[0x180115A38], 13, (_BYTE *)0x18); | |
return sub_1800B797C(1u, 0LL, v0, v1, v2, v3, v4, v5); | |
} | |
//----- (00000001800CB5B8) ---------------------------------------------------- | |
__int64 __fastcall sub_1800CB5B8(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
__int64 v8; // x3 | |
__int64 v9; // x4 | |
__int64 v10; // x5 | |
__int64 v11; // x6 | |
__int64 v12; // x7 | |
__int64 v13; // x2 | |
__int64 v14; // x3 | |
__int64 v15; // x4 | |
__int64 v16; // x5 | |
__int64 v17; // x6 | |
__int64 v18; // x7 | |
__int64 v19; // x2 | |
__int64 v20; // x3 | |
__int64 v21; // x4 | |
__int64 v22; // x5 | |
__int64 v23; // x6 | |
__int64 v24; // x7 | |
sub_1800B716C(8592032848LL, 0x10000LL, a3, a4, a5, a6, a7, a8); | |
sub_1800B72C0(8592032848LL, 0x10000LL, 0LL, v8, v9, v10, v11, v12); | |
sub_1800B716C(8592032848LL, 0LL, v13, v14, v15, v16, v17, v18); | |
return sub_1800B797C(2u, 0LL, v19, v20, v21, v22, v23, v24); | |
} | |
//----- (00000001800CB610) ---------------------------------------------------- | |
__int64 __fastcall sub_1800CB610(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
__int64 v8; // x2 | |
__int64 v9; // x3 | |
__int64 v10; // x4 | |
__int64 v11; // x5 | |
__int64 v12; // x6 | |
__int64 v13; // x7 | |
__int64 v14; // x2 | |
__int64 v15; // x3 | |
__int64 v16; // x4 | |
__int64 v17; // x5 | |
__int64 v18; // x6 | |
__int64 v19; // x7 | |
__int64 v20; // x2 | |
__int64 v21; // x3 | |
__int64 v22; // x4 | |
__int64 v23; // x5 | |
__int64 v24; // x6 | |
__int64 v25; // x7 | |
__int64 v26; // x2 | |
__int64 v27; // x3 | |
__int64 v28; // x4 | |
__int64 v29; // x5 | |
__int64 v30; // x6 | |
__int64 v31; // x7 | |
__int64 v32; // x2 | |
__int64 v33; // x3 | |
__int64 v34; // x4 | |
__int64 v35; // x5 | |
__int64 v36; // x6 | |
__int64 v37; // x7 | |
__int64 v38; // x2 | |
__int64 v39; // x3 | |
__int64 v40; // x4 | |
__int64 v41; // x5 | |
__int64 v42; // x6 | |
__int64 v43; // x7 | |
__int64 v44; // x2 | |
__int64 v45; // x3 | |
__int64 v46; // x4 | |
__int64 v47; // x5 | |
__int64 v48; // x6 | |
__int64 v49; // x7 | |
__int64 v50; // x2 | |
__int64 v51; // x3 | |
__int64 v52; // x4 | |
__int64 v53; // x5 | |
__int64 v54; // x6 | |
__int64 v55; // x7 | |
sub_1800B716C(8592261884LL, 3094LL, a3, a4, a5, a6, a7, a8); | |
sub_1800B75EC(1, MEMORY[0x180115A34], MEMORY[0x180115A38], 13, (_BYTE *)0x50); | |
sub_1800B797C(1u, 0LL, v8, v9, v10, v11, v12, v13); | |
sub_1800B716C(8592032848LL, 39321LL, v14, v15, v16, v17, v18, v19); | |
sub_1800B716C(8592197120LL, 4278190088LL, v20, v21, v22, v23, v24, v25); | |
sub_1800B716C(8592229888LL, 4278190088LL, v26, v27, v28, v29, v30, v31); | |
sub_1800B716C(8592166452LL, 0LL, v32, v33, v34, v35, v36, v37); | |
sub_1800B716C(8592166452LL, 3LL, v38, v39, v40, v41, v42, v43); | |
sub_1800B716C(8592166616LL, 29666913LL, v44, v45, v46, v47, v48, v49); | |
return sub_1800B716C(8592166632LL, 18874465LL, v50, v51, v52, v53, v54, v55); | |
} | |
//----- (00000001800CB700) ---------------------------------------------------- | |
__int64 __fastcall sub_1800CB700(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
__int64 v8; // x2 | |
__int64 v9; // x3 | |
__int64 v10; // x4 | |
__int64 v11; // x5 | |
__int64 v12; // x6 | |
__int64 v13; // x7 | |
__int64 v14; // x2 | |
__int64 v15; // x3 | |
__int64 v16; // x4 | |
__int64 v17; // x5 | |
__int64 v18; // x6 | |
__int64 v19; // x7 | |
__int64 v20; // x2 | |
__int64 v21; // x3 | |
__int64 v22; // x4 | |
__int64 v23; // x5 | |
__int64 v24; // x6 | |
__int64 v25; // x7 | |
__int64 v26; // x2 | |
__int64 v27; // x3 | |
__int64 v28; // x4 | |
__int64 v29; // x5 | |
__int64 v30; // x6 | |
__int64 v31; // x7 | |
__int64 v32; // x0 | |
__int64 v33; // x1 | |
__int64 v34; // x2 | |
__int64 v35; // x3 | |
__int64 v36; // x4 | |
__int64 v37; // x5 | |
__int64 v38; // x6 | |
__int64 v39; // x7 | |
__int64 v40; // x2 | |
__int64 v41; // x3 | |
__int64 v42; // x4 | |
__int64 v43; // x5 | |
__int64 v44; // x6 | |
__int64 v45; // x7 | |
__int64 v46; // x2 | |
__int64 v47; // x3 | |
__int64 v48; // x4 | |
__int64 v49; // x5 | |
__int64 v50; // x6 | |
__int64 v51; // x7 | |
__int64 v52; // x2 | |
__int64 v53; // x3 | |
__int64 v54; // x4 | |
__int64 v55; // x5 | |
__int64 v56; // x6 | |
__int64 v57; // x7 | |
__int64 v58; // x2 | |
__int64 v59; // x3 | |
__int64 v60; // x4 | |
__int64 v61; // x5 | |
__int64 v62; // x6 | |
__int64 v63; // x7 | |
sub_1800B716C(8592032792LL, 134291481LL, a3, a4, a5, a6, a7, a8); | |
sub_1800B716C(8592032804LL, 3221229568LL, v8, v9, v10, v11, v12, v13); | |
sub_1800B716C(8592032128LL, 136314880LL, v14, v15, v16, v17, v18, v19); | |
sub_1800B716C(8592032152LL, 527LL, v20, v21, v22, v23, v24, v25); | |
v32 = sub_1800B716C(8592032232LL, 256LL, v26, v27, v28, v29, v30, v31); | |
sub_1800C9DC8(v32, v33, v34, v35, v36, v37, v38, v39); | |
sub_1800B716C(8589934604LL, 1114212LL, v40, v41, v42, v43, v44, v45); | |
sub_1800B716C(8592261276LL, 3355LL, v46, v47, v48, v49, v50, v51); | |
sub_1800B716C(8592261272LL, 3LL, v52, v53, v54, v55, v56, v57); | |
return sub_1800B716C(8592261384LL, 3LL, v58, v59, v60, v61, v62, v63); | |
} | |
//----- (00000001800CB7C0) ---------------------------------------------------- | |
__int64 __fastcall sub_1800CB7C0(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
__int64 v8; // x2 | |
__int64 v9; // x3 | |
__int64 v10; // x4 | |
__int64 v11; // x5 | |
__int64 v12; // x6 | |
__int64 v13; // x7 | |
__int64 v14; // x2 | |
__int64 v15; // x3 | |
__int64 v16; // x4 | |
__int64 v17; // x5 | |
__int64 v18; // x6 | |
__int64 v19; // x7 | |
sub_1800B716C(8592032156LL, 8288LL, a3, a4, a5, a6, a7, a8); | |
sub_1800B716C(8592032152LL, 527LL, v8, v9, v10, v11, v12, v13); | |
return sub_1800B70E4(8589936512LL, 1048868LL, v14, v15, v16, v17, v18, v19); | |
} | |
//----- (00000001800CB814) ---------------------------------------------------- | |
__int64 sub_1800CB814() | |
{ | |
_DWORD *v0; // x19 | |
__int64 v1; // x2 | |
__int64 v2; // x3 | |
__int64 v3; // x4 | |
__int64 v4; // x5 | |
__int64 v5; // x6 | |
__int64 v6; // x7 | |
__int64 v7; // x2 | |
__int64 v8; // x3 | |
__int64 v9; // x4 | |
__int64 v10; // x5 | |
__int64 v11; // x6 | |
__int64 v12; // x7 | |
__int64 v13; // x2 | |
__int64 v14; // x3 | |
__int64 v15; // x4 | |
__int64 v16; // x5 | |
__int64 v17; // x6 | |
__int64 v18; // x7 | |
__int64 v19; // x2 | |
__int64 v20; // x3 | |
__int64 v21; // x4 | |
__int64 v22; // x5 | |
__int64 v23; // x6 | |
__int64 v24; // x7 | |
__int64 v25; // x2 | |
__int64 v26; // x3 | |
__int64 v27; // x4 | |
__int64 v28; // x5 | |
__int64 v29; // x6 | |
__int64 v30; // x7 | |
__int64 v31; // x2 | |
__int64 v32; // x3 | |
__int64 v33; // x4 | |
__int64 v34; // x5 | |
__int64 v35; // x6 | |
__int64 v36; // x7 | |
__int64 v37; // x2 | |
__int64 v38; // x3 | |
__int64 v39; // x4 | |
__int64 v40; // x5 | |
__int64 v41; // x6 | |
__int64 v42; // x7 | |
__int64 v43; // x2 | |
__int64 v44; // x3 | |
__int64 v45; // x4 | |
__int64 v46; // x5 | |
__int64 v47; // x6 | |
__int64 v48; // x7 | |
__int64 v49; // x2 | |
__int64 v50; // x3 | |
__int64 v51; // x4 | |
__int64 v52; // x5 | |
__int64 v53; // x6 | |
__int64 v54; // x7 | |
__int64 v55; // x2 | |
__int64 v56; // x3 | |
__int64 v57; // x4 | |
__int64 v58; // x5 | |
__int64 v59; // x6 | |
__int64 v60; // x7 | |
__int64 v61; // x2 | |
__int64 v62; // x3 | |
__int64 v63; // x4 | |
__int64 v64; // x5 | |
__int64 v65; // x6 | |
__int64 v66; // x7 | |
__int64 v67; // x2 | |
__int64 v68; // x3 | |
__int64 v69; // x4 | |
__int64 v70; // x5 | |
__int64 v71; // x6 | |
__int64 v72; // x7 | |
__int64 v73; // x2 | |
__int64 v74; // x3 | |
__int64 v75; // x4 | |
__int64 v76; // x5 | |
__int64 v77; // x6 | |
__int64 v78; // x7 | |
__int64 v79; // x2 | |
__int64 v80; // x3 | |
__int64 v81; // x4 | |
__int64 v82; // x5 | |
__int64 v83; // x6 | |
__int64 v84; // x7 | |
__int64 v85; // x2 | |
__int64 v86; // x3 | |
__int64 v87; // x4 | |
__int64 v88; // x5 | |
__int64 v89; // x6 | |
__int64 v90; // x7 | |
__int64 v91; // x2 | |
__int64 v92; // x3 | |
__int64 v93; // x4 | |
__int64 v94; // x5 | |
__int64 v95; // x6 | |
__int64 v96; // x7 | |
__int64 v97; // x2 | |
__int64 v98; // x3 | |
__int64 v99; // x4 | |
__int64 v100; // x5 | |
__int64 v101; // x6 | |
__int64 v102; // x7 | |
__int64 v103; // x2 | |
__int64 v104; // x3 | |
__int64 v105; // x4 | |
__int64 v106; // x5 | |
__int64 v107; // x6 | |
__int64 v108; // x7 | |
__int64 v109; // x2 | |
__int64 v110; // x3 | |
__int64 v111; // x4 | |
__int64 v112; // x5 | |
__int64 v113; // x6 | |
__int64 v114; // x7 | |
__int64 v115; // x2 | |
__int64 v116; // x3 | |
__int64 v117; // x4 | |
__int64 v118; // x5 | |
__int64 v119; // x6 | |
__int64 v120; // x7 | |
__int64 v121; // x2 | |
__int64 v122; // x3 | |
__int64 v123; // x4 | |
__int64 v124; // x5 | |
__int64 v125; // x6 | |
__int64 v126; // x7 | |
__int64 v127; // x2 | |
__int64 v128; // x3 | |
__int64 v129; // x4 | |
__int64 v130; // x5 | |
__int64 v131; // x6 | |
__int64 v132; // x7 | |
__int64 v133; // x2 | |
__int64 v134; // x3 | |
__int64 v135; // x4 | |
__int64 v136; // x5 | |
__int64 v137; // x6 | |
__int64 v138; // x7 | |
__int64 v139; // x2 | |
__int64 v140; // x3 | |
__int64 v141; // x4 | |
__int64 v142; // x5 | |
__int64 v143; // x6 | |
__int64 v144; // x7 | |
__int64 v145; // x2 | |
__int64 v146; // x3 | |
__int64 v147; // x4 | |
__int64 v148; // x5 | |
__int64 v149; // x6 | |
__int64 v150; // x7 | |
__int64 v151; // x2 | |
__int64 v152; // x3 | |
__int64 v153; // x4 | |
__int64 v154; // x5 | |
__int64 v155; // x6 | |
__int64 v156; // x7 | |
__int64 v157; // x2 | |
__int64 v158; // x3 | |
__int64 v159; // x4 | |
__int64 v160; // x5 | |
__int64 v161; // x6 | |
__int64 v162; // x7 | |
int v163; // w8 | |
__int64 v164; // x2 | |
__int64 v165; // x3 | |
__int64 v166; // x4 | |
__int64 v167; // x5 | |
__int64 v168; // x6 | |
__int64 v169; // x7 | |
__int64 v170; // x2 | |
__int64 v171; // x3 | |
__int64 v172; // x4 | |
__int64 v173; // x5 | |
__int64 v174; // x6 | |
__int64 v175; // x7 | |
__int64 v176; // x2 | |
__int64 v177; // x3 | |
__int64 v178; // x4 | |
__int64 v179; // x5 | |
__int64 v180; // x6 | |
__int64 v181; // x7 | |
__int64 v182; // x2 | |
__int64 v183; // x3 | |
__int64 v184; // x4 | |
__int64 v185; // x5 | |
__int64 v186; // x6 | |
__int64 v187; // x7 | |
__int64 v188; // x0 | |
__int64 v189; // x1 | |
__int64 v190; // x2 | |
__int64 v191; // x3 | |
__int64 v192; // x4 | |
__int64 v193; // x5 | |
__int64 v194; // x6 | |
__int64 v195; // x7 | |
__int64 v197; // x2 | |
__int64 v198; // x3 | |
__int64 v199; // x4 | |
__int64 v200; // x5 | |
__int64 v201; // x6 | |
__int64 v202; // x7 | |
__int64 v203; // x2 | |
__int64 v204; // x3 | |
__int64 v205; // x4 | |
__int64 v206; // x5 | |
__int64 v207; // x6 | |
__int64 v208; // x7 | |
__int64 v209; // x2 | |
__int64 v210; // x3 | |
__int64 v211; // x4 | |
__int64 v212; // x5 | |
__int64 v213; // x6 | |
__int64 v214; // x7 | |
v0 = (_DWORD *)sub_1800B6010(); | |
sub_1800B716C(8592162820LL, 2315255808LL, v1, v2, v3, v4, v5, v6); | |
sub_1800B716C(8592195588LL, 0x80000000LL, v7, v8, v9, v10, v11, v12); | |
sub_1800B716C(8592228356LL, 0x80000000LL, v13, v14, v15, v16, v17, v18); | |
sub_1800B716C(8592080996LL, 1LL, v19, v20, v21, v22, v23, v24); | |
sub_1800B716C(8592032808LL, 51LL, v25, v26, v27, v28, v29, v30); | |
sub_1800B70E4(8842903612LL, 511LL, v31, v32, v33, v34, v35, v36); | |
sub_1800B716C(8592032236LL, 31850784LL, v37, v38, v39, v40, v41, v42); | |
sub_1800B70E4(8842903632LL, 31457568LL, v43, v44, v45, v46, v47, v48); | |
sub_1800B70E4(8842903636LL, 31457760LL, v49, v50, v51, v52, v53, v54); | |
sub_1800B70E4(8842903640LL, 62915136LL, v55, v56, v57, v58, v59, v60); | |
sub_1800B70E4(8842903644LL, 62915520LL, v61, v62, v63, v64, v65, v66); | |
sub_1800B70E4(8842903684LL, 31457568LL, v67, v68, v69, v70, v71, v72); | |
sub_1800B70E4(8842903688LL, 18874656LL, v73, v74, v75, v76, v77, v78); | |
sub_1800B70E4(8842903648LL, 18874656LL, v79, v80, v81, v82, v83, v84); | |
sub_1800B70E4(8842903652LL, 18874656LL, v85, v86, v87, v88, v89, v90); | |
sub_1800B70E4(8842903624LL, 18874656LL, v91, v92, v93, v94, v95, v96); | |
sub_1800B70E4(8842903628LL, 18874656LL, v97, v98, v99, v100, v101, v102); | |
sub_1800B70E4(8842903676LL, 31457568LL, v103, v104, v105, v106, v107, v108); | |
sub_1800B70E4(8842903680LL, 18874656LL, v109, v110, v111, v112, v113, v114); | |
sub_1800B70E4(8842903672LL, 13107680LL, v115, v116, v117, v118, v119, v120); | |
sub_1800B70E4(8842903552LL, 3000LL, v121, v122, v123, v124, v125, v126); | |
sub_1800B70E4(8842903580LL, 3000LL, v127, v128, v129, v130, v131, v132); | |
sub_1800B70E4(8842903556LL, 75LL, v133, v134, v135, v136, v137, v138); | |
sub_1800B70E4(8842903560LL, 15LL, v139, v140, v141, v142, v143, v144); | |
sub_1800B70E4(8842903568LL, 3000000LL, v145, v146, v147, v148, v149, v150); | |
sub_1800B70E4(8842903572LL, 3000000LL, v151, v152, v153, v154, v155, v156); | |
if ( *v0 == 1 ) | |
{ | |
v163 = v0[5]; | |
if ( v163 == 3 ) | |
{ | |
if ( v0[1] == 5 && !v0[2] ) | |
goto LABEL_11; | |
} | |
else if ( v163 == 2 && v0[1] == 5 && v0[2] == 1 ) | |
{ | |
LABEL_11: | |
sub_1800B70E4(8842903584LL, 1LL, v157, v158, v159, v160, v161, v162); | |
sub_1800B70E4(8842903592LL, 12000LL, v197, v198, v199, v200, v201, v202); | |
sub_1800B70E4(8842903696LL, 67LL, v203, v204, v205, v206, v207, v208); | |
sub_1800B70E4(8842903596LL, 31LL, v209, v210, v211, v212, v213, v214); | |
v188 = 8842903600LL; | |
v189 = 15LL; | |
goto LABEL_10; | |
} | |
} | |
sub_1800B70E4(8842903576LL, 4000000LL, v157, v158, v159, v160, v161, v162); | |
sub_1800B70E4(8842903584LL, 1LL, v164, v165, v166, v167, v168, v169); | |
sub_1800B70E4(8842903592LL, 12000LL, v170, v171, v172, v173, v174, v175); | |
sub_1800B70E4(8842903696LL, 67LL, v176, v177, v178, v179, v180, v181); | |
v188 = 8842903608LL; | |
v189 = 255LL; | |
LABEL_10: | |
sub_1800B70E4(v188, v189, v182, v183, v184, v185, v186, v187); | |
return sub_1800B716C(8592031760LL, 84541440LL, v190, v191, v192, v193, v194, v195); | |
} | |
//----- (00000001800CBAD4) ---------------------------------------------------- | |
__int64 sub_1800CBAD4() | |
{ | |
__int64 v0; // x2 | |
__int64 v1; // x3 | |
__int64 v2; // x4 | |
__int64 v3; // x5 | |
__int64 v4; // x6 | |
__int64 v5; // x7 | |
__int64 result; // x0 | |
char v7; // [xsp+8h] [xbp-88h] | |
__int64 v8; // [xsp+88h] [xbp-8h] | |
v8 = 5139240511851214385LL; | |
sub_1800B75EC(0, MEMORY[0x180115A34], MEMORY[0x180115A38], 4, &v7); | |
result = sub_1800B716C(8592032804LL, 3221238560LL, v0, v1, v2, v3, v4, v5); | |
if ( 5139240511851214385LL != v8 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800CBB54) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800CBB54(int a1, int a2, int a3) | |
{ | |
__int64 v3; // x9 | |
__int64 i; // x9 | |
__int64 j; // x9 | |
__int64 k; // x9 | |
__int64 l; // x9 | |
__int64 m; // x9 | |
__int64 n; // x9 | |
__int64 v10; // x9 | |
__int64 v11; // x9 | |
signed __int64 v12; // x10 | |
int *v13; // x11 | |
_DWORD *v14; // x12 | |
int *v15; // x13 | |
signed __int64 ii; // x14 | |
int v17; // t1 | |
v3 = 0LL; | |
MEMORY[0x180121584] = a3; | |
MEMORY[0x18012157C] = a2; | |
MEMORY[0x180121580] = a2; | |
MEMORY[0x180121588] = 631; | |
MEMORY[0x18012158C] = 1262; | |
MEMORY[0x180121598] = 18; | |
MEMORY[0x18012159C] = 23; | |
MEMORY[0x1801215A0] = 23; | |
MEMORY[0x180121594] = 15; | |
MEMORY[0x1801215A8] = 15; | |
MEMORY[0x1801215AC] = 20; | |
MEMORY[0x1801215B0] = 1; | |
while ( v3 != 15 ) | |
{ | |
*(_DWORD *)(4 * v3 + 0x1801215DCLL) = v3 + 8; | |
++v3; | |
} | |
for ( i = 0LL; i != 18; ++i ) | |
*(_DWORD *)(4 * i + 0x180121618LL) = i + 73; | |
for ( j = 0LL; j != 23; ++j ) | |
*(_DWORD *)(4 * j + 0x180121660LL) = j + 174; | |
for ( k = 0LL; k != 23; ++k ) | |
*(_DWORD *)(4 * k + 0x1801216BCLL) = k + 224; | |
for ( l = 0LL; l != 15; ++l ) | |
*(_DWORD *)(4 * l + 0x180121740LL) = l + 8; | |
for ( m = 0LL; m != 20; ++m ) | |
*(_DWORD *)(4 * m + 0x18012177CLL) = m + 80; | |
for ( n = 0LL; n != 8; ++n ) | |
*(_DWORD *)(4 * n + 0x1801217F4LL) = n; | |
v10 = 0uLL; | |
MEMORY[0x180121814] = 1; | |
MEMORY[0x1801217CC] = a1 != 0; | |
MEMORY[0x1801217CD] = 0; | |
MEMORY[0x1801217D4] = 15; | |
MEMORY[0x1801217D8] = 1; | |
MEMORY[0x1801217DC] = 1; | |
MEMORY[0x1801218CC] = 16; | |
MEMORY[0x1801218D0] = 12; | |
MEMORY[0x1801217E0] = 2; | |
MEMORY[0x1801217E4] = 1; | |
MEMORY[0x1801217E8] = 1; | |
MEMORY[0x1801217EC] = 0; | |
MEMORY[0x1801217F0] = 0; | |
MEMORY[0x1801218C8] = 1; | |
MEMORY[0x1801218D4] = 0; | |
MEMORY[0x1801218D8] = 0; | |
MEMORY[0x1801217D0] = 1; | |
MEMORY[0x1801218B0] = 15; | |
MEMORY[0x1801218B4] = 21; | |
MEMORY[0x1801218B8] = 11; | |
MEMORY[0x1801218AC] = 2; | |
MEMORY[0x1801218A8] = 2; | |
MEMORY[0x1801218A0] = 160; | |
MEMORY[0x180121894] = 20; | |
MEMORY[0x180121898] = 13; | |
MEMORY[0x18012189C] = 9; | |
MEMORY[0x1801218BC] = 9; | |
MEMORY[0x1801218C0] = 7; | |
MEMORY[0x1801218C4] = 0; | |
MEMORY[0x180121818] = 1894911016; | |
MEMORY[0x18012181C] = 1665907093; | |
MEMORY[0x180121820] = 28015; | |
MEMORY[0x180121824] = 0; | |
MEMORY[0x180121888] = 101; | |
MEMORY[0x18012188C] = 1; | |
MEMORY[0x180121890] = 2; | |
while ( v10 != 6 ) | |
{ | |
*(_DWORD *)(v10 * 4 + 6443636776LL) = dword_18010D5F0[v10]; | |
++v10; | |
} | |
v11 = 0LL; | |
v12 = 6443636800LL; | |
v13 = &dword_18010D608; | |
while ( v11 != 2 ) | |
{ | |
v14 = (_DWORD *)v12; | |
v15 = v13; | |
for ( ii = 9LL; ii; --ii ) | |
{ | |
v17 = *v15; | |
++v15; | |
*v14 = v17; | |
++v14; | |
} | |
++v11; | |
v13 += 9; | |
v12 += 36LL; | |
} | |
return 6443636084LL; | |
} | |
// 18010D5F0: using guessed type int dword_18010D5F0[]; | |
// 18010D608: using guessed type int dword_18010D608; | |
//----- (00000001800CBDDC) ---------------------------------------------------- | |
void sub_1800CBDDC() | |
{ | |
__int64 v0; // x13 | |
unsigned int v1; // w9 | |
unsigned int v2; // w15 | |
signed __int64 v3; // x16 | |
unsigned int v4; // w14 | |
LOBYTE(v0) = 0; | |
v1 = MEMORY[0x18012157C]; | |
while ( 1 ) | |
{ | |
v0 = (unsigned __int8)v0; | |
if ( (unsigned __int8)v0 >= v1 ) | |
break; | |
v2 = *(_DWORD *)((v0 << 18) + 0x200228194LL) & 0xFF; | |
v3 = 12LL * (unsigned int)v0 + 6443633504LL; | |
*(_DWORD *)(v3 + 304) = v2; | |
v4 = *(_DWORD *)((v0 << 18) + 0x200230194LL); | |
*(_DWORD *)(v3 + 308) = (unsigned __int8)v4; | |
if ( v2 <= (unsigned __int8)v4 ) | |
v4 = (unsigned __int8)v4; | |
else | |
v4 = v2; | |
*(_DWORD *)(12LL * (unsigned int)v0 + 0x180120C8CLL) = v4; | |
LOBYTE(v0) = v0 + 1; | |
} | |
} | |
//----- (00000001800CBE44) ---------------------------------------------------- | |
__int64 __fastcall sub_1800CBE44(__int64 a1, int a2, int a3) | |
{ | |
__int64 v3; // x20 | |
__int64 result; // x0 | |
__int64 v5; // x19 | |
v3 = (unsigned int)((_DWORD)a1 << 18); | |
*(_DWORD *)(v3 + 0x200220800LL) = a2 | (a3 << 16) | *(_DWORD *)(v3 + 0x200220800LL) & 0xFF00FF00 | 0x200; | |
result = sub_1800E1188(a1); | |
v5 = result; | |
while ( 1 ) | |
{ | |
result = sub_1800E1188(result); | |
if ( !(*(_DWORD *)(v3 + 8592164864LL) & 0x200) ) | |
break; | |
if ( (unsigned __int64)(result - v5) >= 0xF4240 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -2045261415062956628LL, 2189LL); | |
} | |
return result; | |
} | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800CBEE8) ---------------------------------------------------- | |
__int64 __fastcall sub_1800CBEE8(__int64 a1, int a2, int a3, int a4) | |
{ | |
unsigned __int64 v4; // x8 | |
_DWORD *v5; // x20 | |
__int64 result; // x0 | |
__int64 v7; // x19 | |
v4 = (unsigned int)((_DWORD)a1 << 18) + (unsigned __int64)(unsigned int)((a2 << 15) + 0x8000) + 8592162816LL; | |
v5 = (_DWORD *)(v4 | 0x704); | |
*(_DWORD *)(v4 + 1796) = a3 | (a4 << 16) | *(_DWORD *)((unsigned int)((_DWORD)a1 << 18) | |
+ (unsigned __int64)(unsigned int)((a2 << 15) + 0x8000) | |
+ 0x200220704LL) & 0xFF00FF00 | 0x200; | |
result = sub_1800E1188(a1); | |
v7 = result; | |
while ( 1 ) | |
{ | |
result = sub_1800E1188(result); | |
if ( !(*v5 & 0x200) ) | |
break; | |
if ( (unsigned __int64)(result - v7) >= 0xF4240 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -2045261415062956628LL, 2207LL); | |
} | |
return result; | |
} | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800CBFA0) ---------------------------------------------------- | |
__int64 __fastcall sub_1800CBFA0(__int64 a1, unsigned __int16 a2) | |
{ | |
__int64 v2; // x20 | |
__int64 result; // x0 | |
__int64 v4; // x19 | |
v2 = (unsigned int)((_DWORD)a1 << 18); | |
*(_DWORD *)(v2 + 0x200220700LL) = (a2 << 16) | 4; | |
result = sub_1800E1188(a1); | |
v4 = result; | |
while ( 1 ) | |
{ | |
result = sub_1800E1188(result); | |
if ( !(*(_DWORD *)(v2 + 8592164608LL) & 4) ) | |
break; | |
if ( (unsigned __int64)(result - v4) >= 0xF4240 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -2045261415062956628LL, 1616LL); | |
} | |
return result; | |
} | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800CC038) ---------------------------------------------------- | |
__int64 __fastcall sub_1800CC038(__int64 a1, unsigned __int16 a2) | |
{ | |
__int64 v2; // x20 | |
__int64 result; // x0 | |
__int64 v4; // x19 | |
v2 = (unsigned int)((_DWORD)a1 << 18); | |
*(_DWORD *)(v2 + 0x200220710LL) = (a2 << 16) | 4; | |
result = sub_1800E1188(a1); | |
v4 = result; | |
while ( 1 ) | |
{ | |
result = sub_1800E1188(result); | |
if ( !(*(_DWORD *)(v2 + 8592164624LL) & 4) ) | |
break; | |
if ( (unsigned __int64)(result - v4) >= 0xF4240 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -2045261415062956628LL, 1648LL); | |
} | |
return result; | |
} | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800CC0D0) ---------------------------------------------------- | |
__int64 __fastcall sub_1800CC0D0(__int64 a1, unsigned __int16 a2) | |
{ | |
__int64 v2; // x20 | |
__int64 result; // x0 | |
__int64 v4; // x19 | |
v2 = (unsigned int)((_DWORD)a1 << 18); | |
*(_DWORD *)(v2 + 0x200220708LL) = (a2 << 16) | 4; | |
result = sub_1800E1188(a1); | |
v4 = result; | |
while ( 1 ) | |
{ | |
result = sub_1800E1188(result); | |
if ( !(*(_DWORD *)(v2 + 8592164616LL) & 4) ) | |
break; | |
if ( (unsigned __int64)(result - v4) >= 0xF4240 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -2045261415062956628LL, 1681LL); | |
} | |
return result; | |
} | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800CC168) ---------------------------------------------------- | |
__int64 __fastcall sub_1800CC168(__int64 result, int a2, int a3) | |
{ | |
unsigned int *v3; // x8 | |
unsigned int v4; // w9 | |
if ( a3 == 1 ) | |
{ | |
v3 = (unsigned int *)((unsigned int)((_DWORD)result << 18) + 8592166680LL); | |
v4 = *(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x200220F1CLL) & 0xFFFF00FF | (a2 << 8) | 0x8000; | |
} | |
else | |
{ | |
if ( a3 ) | |
return result; | |
v3 = (unsigned int *)((unsigned int)((_DWORD)result << 18) + 8592166680LL); | |
v4 = *(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x200220F1CLL) & 0xFFFFFF00 | a2 | 0x80; | |
} | |
*v3 = v4; | |
return result; | |
} | |
//----- (00000001800CC1BC) ---------------------------------------------------- | |
__int64 __fastcall sub_1800CC1BC(__int64 result) | |
{ | |
__int64 i; // x8 | |
__int64 j; // x11 | |
__int64 v3; // xzr | |
if ( result & 0xF ) | |
{ | |
for ( i = 0LL; i != MEMORY[0x18012157C]; ++i ) | |
{ | |
if ( result & 8 ) | |
{ | |
for ( j = 0LL; j != 0x10000; j += 0x8000LL ) | |
v3 = *(unsigned int *)(((unsigned __int64)(i & 0x3FFF) << 18) + 8592197124LL + j); | |
} | |
} | |
} | |
return result; | |
} | |
//----- (00000001800CC218) ---------------------------------------------------- | |
// write access to const memory has been detected, the output may be wrong! | |
void sub_1800CC218() | |
{ | |
unsigned int v0; // w8 | |
unsigned int v1; // w9 | |
int v2; // w10 | |
unsigned int v3; // w11 | |
unsigned int v4; // w12 | |
signed __int64 v5; // x1 | |
unsigned int v6; // w8 | |
unsigned int v7; // w8 | |
__int64 v8; // x9 | |
_DWORD *v9; // x10 | |
unsigned int v10; // w11 | |
__int64 v11; // x19 | |
unsigned int v12; // w20 | |
unsigned __int64 v13; // x28 | |
unsigned int v14; // w9 | |
int v15; // w1 | |
__int64 v16; // x1 | |
__int64 v17; // x2 | |
__int64 v18; // x3 | |
__int64 v19; // x4 | |
__int64 v20; // x5 | |
__int64 v21; // x6 | |
__int64 v22; // x7 | |
__int64 v23; // x8 | |
_DWORD *v24; // x10 | |
__int64 v25; // x0 | |
__int64 i; // x8 | |
unsigned __int64 v27; // x24 | |
__int64 v28; // x22 | |
__int64 v29; // x1 | |
__int64 v30; // x2 | |
__int64 v31; // x3 | |
__int64 v32; // x4 | |
__int64 v33; // x5 | |
__int64 v34; // x6 | |
__int64 v35; // x7 | |
signed int v36; // w8 | |
unsigned int v37; // w8 | |
unsigned int v38; // w22 | |
__int64 j; // x22 | |
signed __int64 v40; // x24 | |
int v41; // w0 | |
unsigned int v42; // w1 | |
__int64 v43; // x0 | |
signed int v44; // w8 | |
int *v45; // x9 | |
__int64 v46; // x10 | |
int v47; // t1 | |
int *v48; // x8 | |
int v49; // w1 | |
unsigned int v50; // w8 | |
__int64 k; // x19 | |
unsigned int l; // w20 | |
unsigned int m; // w21 | |
int v54; // w1 | |
__int64 v55; // x1 | |
__int64 v56; // x2 | |
__int64 v57; // x3 | |
__int64 v58; // x4 | |
__int64 v59; // x5 | |
__int64 v60; // x6 | |
__int64 v61; // x7 | |
__int64 v62; // x22 | |
int v63; // w8 | |
_DWORD *v64; // x28 | |
__int64 v65; // x1 | |
__int64 v66; // x2 | |
__int64 v67; // x3 | |
__int64 v68; // x4 | |
__int64 v69; // x5 | |
__int64 v70; // x6 | |
__int64 v71; // x7 | |
int v72; // w0 | |
unsigned int v73; // w1 | |
signed __int64 v74; // x8 | |
unsigned int v75; // [xsp+1Ch] [xbp-114h] | |
signed __int64 v76; // [xsp+20h] [xbp-110h] | |
signed __int64 v77; // [xsp+28h] [xbp-108h] | |
_DWORD *v78; // [xsp+30h] [xbp-100h] | |
signed __int64 v79; // [xsp+40h] [xbp-F0h] | |
signed __int64 v80; // [xsp+A0h] [xbp-90h] | |
__int64 v81; // [xsp+B0h] [xbp-80h] | |
unsigned int v82; // [xsp+BCh] [xbp-74h] | |
unsigned int v83; // [xsp+C0h] [xbp-70h] | |
int v84; // [xsp+C4h] [xbp-6Ch] | |
char v85[16]; // [xsp+C8h] [xbp-68h] | |
__int64 v86; // [xsp+D8h] [xbp-58h] | |
v0 = 0; | |
v1 = 0; | |
v86 = 5139240511851214385LL; | |
v2 = MEMORY[0x1801218C8]; | |
v3 = MEMORY[0x180121594]; | |
v4 = MEMORY[0x180121598]; | |
while ( v1 < MEMORY[0x18012157C] ) | |
{ | |
if ( MEMORY[0x1801218C8] == 1 ) | |
{ | |
*(_DWORD *)(v0 + 0x200220910LL) = 108397382; | |
*(_DWORD *)(v0 + 0x200220914LL) = 104203078; | |
} | |
else | |
{ | |
*(_DWORD *)(v0 + 0x200220910LL) = 106300262; | |
*(_DWORD *)(v0 + 0x200220914LL) = 102105958; | |
} | |
v5 = v0 + 8592164608LL; | |
*(_DWORD *)(v5 + 556) = 50462976; | |
*(_DWORD *)(v5 + 560) = 1284; | |
++v1; | |
v0 += 0x40000; | |
} | |
if ( v2 ) | |
v6 = v4; | |
else | |
v6 = v3; | |
v83 = v6; | |
v7 = MEMORY[0x1801217D8]; | |
v8 = (unsigned int)(MEMORY[0x1801217D4] * MEMORY[0x1801217D8]); | |
v9 = (_DWORD *)6443634452LL; | |
while ( v8 ) | |
{ | |
*v9 = 63; | |
++v9; | |
--v8; | |
} | |
v10 = 0; | |
v11 = 0LL; | |
while ( (unsigned int)v11 < MEMORY[0x180121580] ) | |
{ | |
v12 = 0; | |
v79 = 72LL * (unsigned int)v11 + 6443634708LL; | |
v80 = v10 + 8592164096LL; | |
v77 = 24LL * (unsigned int)v11 + 6443634164LL; | |
v13 = (unsigned int)((_DWORD)v11 << 18); | |
v78 = (_DWORD *)(12LL * (unsigned int)v11 + 6443633804LL); | |
v75 = v10; | |
v81 = (unsigned int)v11; | |
v82 = v11; | |
v76 = v10 + 8592195980LL; | |
while ( v12 < MEMORY[0x180121584] ) | |
{ | |
v14 = 0; | |
while ( v14 < v7 ) | |
{ | |
v84 = v14; | |
*(_DWORD *)(v13 + 8592165144LL) = (MEMORY[0x18012180C] << 24) | (MEMORY[0x180121810] << 28) | (MEMORY[0x180121808] << 20) | (MEMORY[0x180121804] << 16) | (MEMORY[0x180121800] << 12) | (MEMORY[0x1801217FC] << 8) | 16 * MEMORY[0x1801217F8] | MEMORY[0x1801217F4]; | |
*(_DWORD *)(v13 + 8592165120LL) = (v12 << 24) | (MEMORY[0x180121814] << 28) | (MEMORY[0x1801217D4] << 16) | (MEMORY[0x180121894] << 8) | MEMORY[0x180121898]; | |
*(_DWORD *)(v13 + 8592165124LL) = (MEMORY[0x1801218A8] << 16) | (MEMORY[0x1801218AC] << 24) | (MEMORY[0x1801218A0] << 8) | MEMORY[0x18012189C]; | |
*(_DWORD *)(v13 + 8592165160LL) = (MEMORY[0x18012188C] << 16) | (MEMORY[0x180121890] << 24) | (MEMORY[0x1801218BC] << 8) | MEMORY[0x1801218C0]; | |
*(_DWORD *)(v13 + 8592165132LL) = MEMORY[0x180121888] << 16; | |
*(_DWORD *)(v13 + 8592166560LL) = MEMORY[0x180121818]; | |
*(_DWORD *)(v13 + 8592166564LL) = MEMORY[0x18012181C]; | |
*(_DWORD *)(v13 + 8592166568LL) = MEMORY[0x180121820]; | |
*(_DWORD *)(v13 + 8592166572LL) = MEMORY[0x180121824]; | |
*(_DWORD *)(v13 + 8592165164LL) = (MEMORY[0x180121830] << 16) | (MEMORY[0x180121834] << 24) | (MEMORY[0x18012182C] << 8) | MEMORY[0x180121828]; | |
*(_DWORD *)(v13 + 8592165168LL) = MEMORY[0x180121838] | (MEMORY[0x18012183C] << 8); | |
if ( MEMORY[0x1801218C8] == 1 ) | |
v15 = 3; | |
else | |
v15 = 1; | |
sub_1800CCC0C(v11, v15); | |
sub_1800CCCD0(v11, MEMORY[0x1801218C8]); | |
sub_1800CCD74(v11); | |
if ( MEMORY[0x1801218C8] <= 1 ) | |
sub_1800B6208(MEMORY[0x1801218C8], v16, v17, v18, v19, v20, v21, v22); | |
sub_1800CCE0C(v11); | |
if ( !MEMORY[0x1801218C8] ) | |
{ | |
v23 = 0LL; | |
v24 = (_DWORD *)(4 * v81 + 6443633504LL); | |
v24[19] = (*(_DWORD *)(v13 + 8592164624LL) >> 16) & 0xFF; | |
v24[15] = (*(_DWORD *)(v13 + 8592164616LL) >> 16) & 0xFF; | |
v24[27] = (*(_DWORD *)(v13 + 8592164608LL) >> 16) & 0xFF; | |
while ( v23 != 24 ) | |
{ | |
*(_DWORD *)(v77 + v23) = *(_DWORD *)(v80 + v23) & 0x3F; | |
v23 += 4LL; | |
} | |
} | |
sub_1800CCE40(v11); | |
sub_1800CCEF8(v11); | |
v25 = sub_1800CBE44(v11, 0, 0); | |
if ( !MEMORY[0x1801218C8] ) | |
{ | |
for ( i = 0LL; i != 0x10000; i += 0x8000LL ) | |
*(_DWORD *)(v76 + i) = 1; | |
v27 = 0LL; | |
while ( v27 <= 1 ) | |
{ | |
v25 = sub_1800E1188(v25); | |
v28 = v25; | |
while ( 1 ) | |
{ | |
v25 = sub_1800E1188(v25); | |
if ( !(*(_DWORD *)((v27 << 15) + v13 + 8592195980LL) & 1) ) | |
break; | |
if ( (unsigned __int64)(v25 - v28) >= 0xF4240 ) | |
{ | |
v74 = 1416LL; | |
goto LABEL_93; | |
} | |
} | |
++v27; | |
v11 = v82; | |
} | |
} | |
sub_1800CBDDC(); | |
v36 = MEMORY[0x1801218C8]; | |
if ( !MEMORY[0x1801218C8] && MEMORY[0x1801217CD] ) | |
{ | |
if ( !MEMORY[0x180121588] ) | |
{ | |
dword_180114568 = 10; | |
MEMORY[0x180115A3C] |= 0x20u; | |
sub_1800CC1BC(15LL); | |
v74 = 1045LL; | |
LABEL_93: | |
sub_1800D489C("%llx:%d", &byte_180101040, -2045261415062956628LL, v74); | |
} | |
v37 = 100 * MEMORY[0x18012158C] * *v78 / (unsigned int)(*(_DWORD *)&v85[4 * v81] * MEMORY[0x180121588]); | |
v38 = (*(_DWORD *)(4 * v81 + 0x180120B9CLL) * v37 + 50) / 0x64; | |
sub_1800CC038(v11, (*(_DWORD *)(4 * v81 + 0x180120BACLL) * v37 + 50) / 0x64); | |
sub_1800CC0D0(v11, v38); | |
v36 = MEMORY[0x1801218C8]; | |
if ( MEMORY[0x1801218C8] == 1 ) | |
{ | |
*(_DWORD *)&v85[4 * v81] = *v78; | |
v36 = 1; | |
} | |
} | |
for ( j = 0LL; (unsigned int)j < v83; ++j ) | |
{ | |
if ( v36 == 1 ) | |
{ | |
sub_1800CCFFC(v11, *(_DWORD *)(4 * j + 0x180121618LL), MEMORY[0x1801217DC], MEMORY[0x1801217E0]); | |
v36 = MEMORY[0x1801218C8]; | |
} | |
if ( !v36 ) | |
sub_1800CCFFC(v11, *(_DWORD *)(4 * j + 0x1801215DCLL), MEMORY[0x1801217DC], MEMORY[0x1801217E0]); | |
sub_1800CD0A0(v11); | |
v40 = 4 * j + 6443633504LL; | |
*(_DWORD *)(v40 + 444) = 0; | |
*(_DWORD *)(v40 + 516) = 0; | |
sub_1800CD138(v11, v12, 0, v84, j); | |
sub_1800CD8E8(); | |
*(_DWORD *)(v40 + 444) = (*(_DWORD *)(v13 + 8592164624LL) >> 16) & 0xFF; | |
*(_DWORD *)(v40 + 516) = (*(_DWORD *)(v13 + 8592164616LL) >> 16) & 0xFF; | |
sub_1800CD138(v11, v12, 1, v84, j); | |
sub_1800CCE40(v11); | |
sub_1800CCEF8(v11); | |
v36 = MEMORY[0x1801218C8]; | |
} | |
if ( v36 == 1 ) | |
{ | |
v41 = 3; | |
} | |
else | |
{ | |
sub_1800CDA4C(v11); | |
v41 = 1; | |
} | |
sub_1800B6208(v41, v29, v30, v31, v32, v33, v34, v35); | |
sub_1800CCE0C(v11); | |
sub_1800CDB48(v11); | |
if ( MEMORY[0x1801218C8] == 1 ) | |
v42 = 3; | |
else | |
v42 = 1; | |
sub_1800CDC54(v11, v42); | |
v43 = sub_1800CDCD0(v11, MEMORY[0x1801218C8]); | |
v44 = 1; | |
v46 = v83; | |
v45 = (int *)v79; | |
while ( v46 ) | |
{ | |
v47 = *v45; | |
++v45; | |
v44 &= v47; | |
--v46; | |
} | |
if ( v44 == 1 ) | |
{ | |
dword_180114568 = 10; | |
MEMORY[0x180115A3C] |= 0x20u; | |
sub_1800CC1BC(15LL); | |
v74 = 1133LL; | |
goto LABEL_93; | |
} | |
if ( MEMORY[0x1801218C8] ) | |
v48 = (int *)6443636120LL; | |
else | |
v48 = (int *)6443636116LL; | |
v49 = *v48; | |
v50 = v12 + (v11 + MEMORY[0x18012157C] * v84) * MEMORY[0x180121584]; | |
sub_1800D0ED0( | |
v43, | |
v49, | |
6u, | |
432LL * v50 + 6443636960LL, | |
432LL * v50 + 6443638688LL, | |
(int *)(72LL * v50 + 6443634708LL), | |
0LL, | |
0LL, | |
(int *)(4LL * v50 + 6443633708LL), | |
(int *)(4LL * v50 + 6443633516LL)); | |
v14 = v84 + 1; | |
v7 = MEMORY[0x1801217D8]; | |
} | |
++v12; | |
} | |
v11 = (unsigned int)(v11 + 1); | |
v10 = v75 + 0x40000; | |
} | |
sub_1800CDD74(); | |
for ( k = 0LL; (unsigned int)k < MEMORY[0x180121580]; k = (unsigned int)(k + 1) ) | |
{ | |
for ( l = 0; l < MEMORY[0x180121584]; ++l ) | |
{ | |
for ( m = 0; m < MEMORY[0x1801217D8]; ++m ) | |
{ | |
if ( MEMORY[0x1801218C8] == 1 ) | |
v54 = 3; | |
else | |
v54 = 1; | |
sub_1800CCC0C(k, v54); | |
sub_1800CCCD0(k, MEMORY[0x1801218C8]); | |
sub_1800CCD74(k); | |
if ( MEMORY[0x1801218C8] <= 1 ) | |
sub_1800B6208(MEMORY[0x1801218C8], v55, v56, v57, v58, v59, v60, v61); | |
sub_1800CCE0C(k); | |
v62 = *(unsigned int *)(4LL * (l + ((_DWORD)k + MEMORY[0x18012157C] * m) * MEMORY[0x180121584]) + 0x180120B6CLL); | |
v63 = MEMORY[0x1801218C8]; | |
if ( MEMORY[0x1801218C8] == 1 ) | |
{ | |
sub_1800CCFFC(k, *(_DWORD *)(4 * v62 + 0x180121618LL), MEMORY[0x1801217DC], MEMORY[0x1801217E0]); | |
v63 = MEMORY[0x1801218C8]; | |
} | |
if ( !v63 ) | |
sub_1800CCFFC(k, *(_DWORD *)(4 * v62 + 0x1801215DCLL), MEMORY[0x1801217DC], MEMORY[0x1801217E0]); | |
sub_1800CD0A0(k); | |
v64 = (_DWORD *)(4 * v62 + 6443633504LL); | |
v64[111] = (*(_DWORD *)((unsigned int)((_DWORD)k << 18) + 0x200220710LL) >> 16) & 0xFF; | |
v64[129] = (*(_DWORD *)((unsigned int)((_DWORD)k << 18) + 0x200220708LL) >> 16) & 0xFF; | |
v64[147] = (*(_DWORD *)((unsigned int)((_DWORD)k << 18) + 0x200220700LL) >> 16) & 0xFF; | |
sub_1800CD138(k, l, 2, m, v62); | |
sub_1800CD8E8(); | |
v64[111] = (*(_DWORD *)((unsigned int)((_DWORD)k << 18) + 0x200220710LL) >> 16) & 0xFF; | |
v64[129] = (*(_DWORD *)((unsigned int)((_DWORD)k << 18) + 0x200220708LL) >> 16) & 0xFF; | |
v64[147] = (*(_DWORD *)((unsigned int)((_DWORD)k << 18) + 0x200220700LL) >> 16) & 0xFF; | |
if ( MEMORY[0x1801218C8] == 1 ) | |
{ | |
v72 = 3; | |
} | |
else | |
{ | |
sub_1800CDA4C(k); | |
v72 = 1; | |
} | |
sub_1800B6208(v72, v65, v66, v67, v68, v69, v70, v71); | |
sub_1800CCE0C(k); | |
sub_1800CDB48(k); | |
if ( MEMORY[0x1801218C8] == 1 ) | |
v73 = 3; | |
else | |
v73 = 1; | |
sub_1800CDC54(k, v73); | |
sub_1800CDCD0(k, MEMORY[0x1801218C8]); | |
} | |
} | |
} | |
sub_1800CDD74(); | |
if ( 5139240511851214385LL != v86 ) | |
sub_1800D4A5C(); | |
} | |
// 1800CCBA4: write access to const memory at 180114568 has been detected | |
// 1800CCBDC: write access to const memory at 180114568 has been detected | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
// 180114568: using guessed type int dword_180114568; | |
// 1800CC218: using guessed type char var_68[16]; | |
//----- (00000001800CCC0C) ---------------------------------------------------- | |
__int64 __fastcall sub_1800CCC0C(__int64 result, int a2) | |
{ | |
int v2; // w12 | |
int v3; // w11 | |
unsigned int v4; // w10 | |
v2 = *(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x2002380C8LL); | |
v3 = *(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x200238138LL); | |
if ( a2 == 3 ) | |
{ | |
MEMORY[0x18011AA98] = (*(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x2002380C8LL) >> 7) & 1; | |
MEMORY[0x18011AA9C] = (*(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x200238138LL) >> 7) & 1; | |
*(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x2002380C8LL) = v2 & 0xFFFFFF7F; | |
v4 = v3 & 0xFFFFFF7F; | |
} | |
else if ( a2 == 1 ) | |
{ | |
MEMORY[0x18011AA88] = (*(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x2002380C8LL) >> 3) & 1; | |
MEMORY[0x18011AA8C] = (*(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x200238138LL) >> 3) & 1; | |
*(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x2002380C8LL) = v2 & 0xFFFFFFF7; | |
v4 = v3 & 0xFFFFFFF7; | |
} | |
else | |
{ | |
if ( a2 ) | |
return result; | |
MEMORY[0x18011AA80] = (*(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x2002380C8LL) >> 1) & 1; | |
MEMORY[0x18011AA84] = (*(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x200238138LL) >> 1) & 1; | |
*(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x2002380C8LL) = v2 & 0xFFFFFFFD; | |
v4 = v3 & 0xFFFFFFFD; | |
} | |
*(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x200238138LL) = v4; | |
return result; | |
} | |
//----- (00000001800CCCD0) ---------------------------------------------------- | |
__int64 __fastcall sub_1800CCCD0(__int64 result, int a2) | |
{ | |
int v2; // w11 | |
int v3; // w12 | |
int v4; // w9 | |
v2 = *(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x200238080LL); | |
v3 = *(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x2002380F0LL); | |
switch ( a2 ) | |
{ | |
case 3: | |
if ( !MEMORY[0x180121814] ) | |
{ | |
*(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x200238080LL) = v2 | 0x80; | |
return result; | |
} | |
v4 = v3 | 0x80; | |
LABEL_10: | |
*(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x2002380F0LL) = v4; | |
return result; | |
case 1: | |
if ( !MEMORY[0x180121814] ) | |
{ | |
*(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x200238080LL) = v2 | 8; | |
return result; | |
} | |
v4 = v3 | 8; | |
goto LABEL_10; | |
case 0: | |
if ( MEMORY[0x180121814] ) | |
*(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x2002380F0LL) = v3 | 2; | |
else | |
*(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x200238080LL) = v2 | 2; | |
break; | |
} | |
return result; | |
} | |
//----- (00000001800CCD74) ---------------------------------------------------- | |
__int64 __fastcall sub_1800CCD74(__int64 a1) | |
{ | |
__int64 v1; // x20 | |
__int64 result; // x0 | |
__int64 v3; // x19 | |
v1 = (unsigned int)((_DWORD)a1 << 18); | |
*(_DWORD *)(v1 + 0x200220924LL) |= 1u; | |
result = sub_1800E1188(a1); | |
v3 = result; | |
while ( 1 ) | |
{ | |
result = sub_1800E1188(result); | |
if ( !(*(_DWORD *)(v1 + 8592165156LL) & 1) ) | |
break; | |
if ( (unsigned __int64)(result - v3) >= 0xF4240 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -2045261415062956628LL, 1834LL); | |
} | |
return result; | |
} | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800CCE0C) ---------------------------------------------------- | |
__int64 __fastcall sub_1800CCE0C(__int64 result) | |
{ | |
int v1; // t1 | |
int v2; // t1 | |
int v3; // t1 | |
int v4; // t1 | |
__int64 v5; // xzr | |
*(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x200200450LL) |= 0x10000u; | |
v1 = *(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x200200450LL); | |
v2 = *(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x200200450LL); | |
v3 = *(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x200200450LL); | |
v4 = *(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x200200450LL); | |
v5 = *(unsigned int *)((unsigned int)((_DWORD)result << 18) + 0x200200450LL); | |
return result; | |
} | |
//----- (00000001800CCE40) ---------------------------------------------------- | |
__int64 __fastcall sub_1800CCE40(__int64 result) | |
{ | |
unsigned __int64 v1; // x20 | |
signed __int64 v2; // x21 | |
__int64 v3; // x19 | |
v1 = 0LL; | |
v2 = (unsigned int)((_DWORD)result << 18) + 8592164096LL; | |
while ( v1 <= 5 ) | |
{ | |
*(_DWORD *)(v2 + 4 * v1) = 256; | |
result = sub_1800E1188(result); | |
v3 = result; | |
while ( 1 ) | |
{ | |
result = sub_1800E1188(result); | |
if ( !(*(_DWORD *)(v2 + 4 * v1) & 0x100) ) | |
break; | |
if ( (unsigned __int64)(result - v3) >= 0xF4240 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -2045261415062956628LL, 1533LL); | |
} | |
++v1; | |
} | |
return result; | |
} | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800CCEF8) ---------------------------------------------------- | |
__int64 __fastcall sub_1800CCEF8(__int64 a1) | |
{ | |
unsigned __int64 v1; // x21 | |
__int64 v2; // x0 | |
__int64 v3; // x19 | |
signed __int64 v4; // x8 | |
__int64 v5; // x0 | |
__int64 v6; // x19 | |
__int64 result; // x0 | |
__int64 v8; // x19 | |
v1 = (unsigned int)((_DWORD)a1 << 18); | |
*(_DWORD *)(v1 + 0x200220700LL) = 2; | |
v2 = sub_1800E1188(a1); | |
v3 = v2; | |
while ( 1 ) | |
{ | |
v2 = sub_1800E1188(v2); | |
if ( !(*(_DWORD *)(v1 + 8592164608LL) & 2) ) | |
break; | |
if ( (unsigned __int64)(v2 - v3) > 0xF423F ) | |
{ | |
v4 = 1542LL; | |
goto LABEL_13; | |
} | |
} | |
*(_DWORD *)(v1 + 8592164616LL) = 2; | |
v5 = sub_1800E1188(v2); | |
v6 = v5; | |
while ( 1 ) | |
{ | |
v5 = sub_1800E1188(v5); | |
if ( !(*(_DWORD *)(v1 + 8592164616LL) & 2) ) | |
break; | |
if ( (unsigned __int64)(v5 - v6) > 0xF423F ) | |
{ | |
v4 = 1546LL; | |
goto LABEL_13; | |
} | |
} | |
*(_DWORD *)(v1 + 8592164624LL) = 2; | |
result = sub_1800E1188(v5); | |
v8 = result; | |
while ( 1 ) | |
{ | |
result = sub_1800E1188(result); | |
if ( !(*(_DWORD *)(v1 + 8592164624LL) & 2) ) | |
break; | |
if ( (unsigned __int64)(result - v8) > 0xF423F ) | |
{ | |
v4 = 1550LL; | |
LABEL_13: | |
sub_1800D489C("%llx:%d", &byte_180101040, -2045261415062956628LL, v4); | |
} | |
} | |
return result; | |
} | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800CCFFC) ---------------------------------------------------- | |
__int64 __fastcall sub_1800CCFFC(int a1, unsigned int a2, int a3, int a4) | |
{ | |
__int64 v4; // x8 | |
__int64 result; // x0 | |
v4 = (unsigned int)(a1 << 18); | |
result = (a4 << 20) | (unsigned int)(a3 << 16); | |
*(_DWORD *)(v4 + 8592165128LL) = result | *(_DWORD *)(v4 + 0x200220908LL) & 0xFF000000 | (((a2 >> 6) & 1) << MEMORY[0x18012180C]) | (((a2 >> 5) & 1) << MEMORY[0x180121808]) | (((a2 >> 4) & 1) << MEMORY[0x180121804]) | (((a2 >> 3) & 1) << MEMORY[0x180121800]) | (((a2 >> 2) & 1) << MEMORY[0x1801217FC]) | (((a2 >> 1) & 1) << MEMORY[0x1801217F8]) | ((a2 & 1) << MEMORY[0x1801217F4]); | |
return result; | |
} | |
//----- (00000001800CD0A0) ---------------------------------------------------- | |
__int64 __fastcall sub_1800CD0A0(__int64 a1) | |
{ | |
__int64 v1; // x20 | |
__int64 result; // x0 | |
__int64 v3; // x19 | |
v1 = (unsigned int)((_DWORD)a1 << 18); | |
*(_DWORD *)(v1 + 0x200220924LL) |= 0x10000u; | |
result = sub_1800E1188(a1); | |
v3 = result; | |
while ( 1 ) | |
{ | |
result = sub_1800E1188(result); | |
if ( !(*(_DWORD *)(v1 + 8592165156LL) & 0x10000) ) | |
break; | |
if ( (unsigned __int64)(result - v3) >= 0xF4240 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -2045261415062956628LL, 1863LL); | |
} | |
return result; | |
} | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800CD138) ---------------------------------------------------- | |
__int64 __fastcall sub_1800CD138(__int64 a1, int a2, int a3, int a4, unsigned int a5) | |
{ | |
int v5; // w19 | |
__int64 v6; // x20 | |
signed __int64 v7; // x21 | |
int v8; // w8 | |
unsigned int v9; // w23 | |
unsigned int v10; // w24 | |
unsigned int v11; // w25 | |
int v12; // w22 | |
unsigned int v13; // w21 | |
signed int v14; // w22 | |
signed int v15; // w26 | |
unsigned int v16; // w8 | |
bool v17; // cf | |
bool v18; // zf | |
unsigned int v19; // w8 | |
bool v20; // cf | |
bool v21; // zf | |
BOOL v22; // w8 | |
bool v23; // cf | |
bool v24; // zf | |
signed int v25; // w8 | |
signed int v26; // w9 | |
__int64 v27; // x24 | |
__int64 v28; // x26 | |
bool v29; // w21 | |
int v30; // t1 | |
__int64 v31; // xzr | |
unsigned int v32; // w24 | |
int v33; // w25 | |
int v34; // w27 | |
int v35; // w14 | |
__int64 v36; // x0 | |
unsigned int v37; // w1 | |
__int64 v38; // x0 | |
unsigned int v39; // w1 | |
int v40; // w0 | |
__int64 v41; // x8 | |
int v42; // w11 | |
unsigned __int64 v43; // x8 | |
signed int v44; // w9 | |
int v45; // w10 | |
unsigned int v46; // w9 | |
bool v47; // w8 | |
int v48; // w11 | |
int v49; // w12 | |
unsigned int v50; // w21 | |
unsigned int v51; // w28 | |
unsigned int v52; // w23 | |
int v53; // w22 | |
signed int v54; // w27 | |
unsigned int v55; // w24 | |
BOOL v56; // w25 | |
__int64 result; // x0 | |
unsigned int v58; // w10 | |
int v59; // t1 | |
__int64 v60; // xzr | |
__int64 v61; // x8 | |
unsigned int v62; // w21 | |
signed __int64 v63; // x23 | |
signed __int64 v64; // x22 | |
__int64 i; // x8 | |
int v66; // w9 | |
unsigned __int64 v67; // x9 | |
signed int v68; // w8 | |
int v69; // w10 | |
__int64 v70; // [xsp+8h] [xbp-C8h] | |
int v71; // [xsp+10h] [xbp-C0h] | |
int v72; // [xsp+18h] [xbp-B8h] | |
int v73; // [xsp+28h] [xbp-A8h] | |
int v74; // [xsp+2Ch] [xbp-A4h] | |
__int64 v75; // [xsp+30h] [xbp-A0h] | |
_DWORD *v76; // [xsp+30h] [xbp-A0h] | |
_DWORD *v77; // [xsp+38h] [xbp-98h] | |
__int64 v78; // [xsp+40h] [xbp-90h] | |
__int64 v79; // [xsp+48h] [xbp-88h] | |
__int64 v80; // [xsp+50h] [xbp-80h] | |
__int64 v81; // [xsp+58h] [xbp-78h] | |
__int64 v82; // [xsp+60h] [xbp-70h] | |
__int64 v83; // [xsp+68h] [xbp-68h] | |
__int64 v84; // [xsp+70h] [xbp-60h] | |
__int64 v85; // [xsp+78h] [xbp-58h] | |
v73 = a4; | |
v74 = a2; | |
v5 = a3; | |
v6 = a1; | |
v85 = 5139240511851214385LL; | |
v75 = (unsigned int)a1; | |
v7 = 12LL * (unsigned int)a1 + 6443633504LL; | |
v8 = *(_DWORD *)(12LL * (unsigned int)a1 + 0x180120C8CLL); | |
v78 = a5; | |
v9 = *(_DWORD *)(4LL * a5 + 0x180120D1CLL) + 2 * v8; | |
v10 = *(_DWORD *)(4LL * a5 + 0x180120D64LL) + 2 * v8; | |
v11 = *(_DWORD *)(4LL * a5 + 0x180120DACLL) + 2 * v8; | |
v12 = 3 * v8; | |
if ( !a3 ) | |
sub_1800CCE40(a1); | |
v77 = (_DWORD *)(v7 + 300); | |
v13 = v12 + 1; | |
v14 = 4; | |
v15 = 63; | |
while ( 1 ) | |
{ | |
sub_1800D10AC(v6, v9); | |
if ( v5 == 1 ) | |
{ | |
sub_1800D1198(v6, v10); | |
} | |
else if ( v5 == 2 ) | |
{ | |
sub_1800D1284(v6, v11); | |
} | |
v15 &= sub_1800D13CC(v6, v5); | |
if ( !(v15 & 0x3F) ) | |
break; | |
v16 = v14 + v9; | |
if ( v14 + v10 <= v13 ) | |
{ | |
v17 = v16 >= v13; | |
v18 = v16 == v13; | |
} | |
else | |
{ | |
v17 = 1; | |
v18 = 0; | |
} | |
v19 = v14 + v11; | |
if ( !v18 && v17 ) | |
{ | |
v20 = 1; | |
v21 = 0; | |
} | |
else | |
{ | |
v20 = v19 >= v13; | |
v21 = v19 == v13; | |
} | |
if ( !v21 && v20 ) | |
v14 = 1; | |
v9 += v14; | |
if ( v5 == 1 ) | |
{ | |
v10 += v14; | |
v22 = v9 > v13; | |
v23 = v10 >= v13; | |
v24 = v10 == v13; | |
LABEL_25: | |
if ( !v24 && v23 ) | |
v26 = 1; | |
else | |
v26 = 0; | |
if ( v22 | v26 ) | |
{ | |
LABEL_31: | |
v27 = v75; | |
v28 = v78; | |
*(_DWORD *)(72 * v75 + 0x180120B60LL + 4 * v78 + 1204) = 1; | |
goto LABEL_86; | |
} | |
} | |
else | |
{ | |
if ( v5 == 2 ) | |
v25 = v14; | |
else | |
v25 = 0; | |
v11 += v25; | |
if ( v5 == 2 ) | |
{ | |
v22 = v9 > v13; | |
v23 = v11 >= v13; | |
v24 = v11 == v13; | |
goto LABEL_25; | |
} | |
if ( v9 > v13 ) | |
goto LABEL_31; | |
} | |
} | |
v29 = 0; | |
v83 = 0LL; | |
v84 = 0LL; | |
v81 = 0LL; | |
v82 = 0LL; | |
v79 = 0LL; | |
v80 = 0LL; | |
v30 = *(_DWORD *)((unsigned int)((_DWORD)v6 << 18) + 0x20022051CLL); | |
v31 = *(unsigned int *)((unsigned int)((_DWORD)v6 << 18) + 0x200220518LL); | |
v32 = (*(_DWORD *)((unsigned int)((_DWORD)v6 << 18) + 0x200220710LL) >> 16) & 0xFF; | |
v33 = (*(_DWORD *)((unsigned int)((_DWORD)v6 << 18) + 0x200220708LL) >> 16) & 0xFF; | |
v34 = (*(_DWORD *)((unsigned int)((_DWORD)v6 << 18) + 0x200220700LL) >> 16) & 0xFF; | |
v35 = v5 | 2; | |
v70 = (unsigned int)(v74 + (v6 + MEMORY[0x18012157C] * v73) * MEMORY[0x180121584]); | |
v28 = v78; | |
v72 = (*(_DWORD *)((unsigned int)((_DWORD)v6 << 18) + 0x200220708LL) >> 16) & 0xFF; | |
v71 = v5 | 2; | |
LABEL_33: | |
if ( v29 ) | |
{ | |
if ( v5 == 1 ) | |
{ | |
v36 = v6; | |
v37 = v32; | |
goto LABEL_43; | |
} | |
if ( v35 == 2 ) | |
{ | |
v38 = v6; | |
v39 = v32; | |
LABEL_41: | |
sub_1800D1198(v38, v39); | |
} | |
} | |
else | |
{ | |
sub_1800D10AC(v6, v32); | |
if ( v5 == 2 ) | |
{ | |
v36 = v6; | |
v37 = v34; | |
LABEL_43: | |
sub_1800D1284(v36, v37); | |
} | |
else if ( v5 == 1 ) | |
{ | |
v38 = v6; | |
v39 = v33; | |
goto LABEL_41; | |
} | |
} | |
v40 = sub_1800D13CC(v6, v5); | |
v41 = 0LL; | |
v35 = v5 | 2; | |
while ( v41 != 6 ) | |
{ | |
if ( !((1 << v41) & v40) || *((_DWORD *)&v82 + v41) ) | |
{ | |
*((_DWORD *)&v79 + v41) = 0; | |
} | |
else | |
{ | |
v42 = *((_DWORD *)&v79 + v41); | |
if ( v42 == 8 ) | |
{ | |
*((_DWORD *)&v82 + v41) = 1; | |
} | |
else | |
{ | |
*((_DWORD *)&v79 + v41) = v42 + 1; | |
if ( !v42 ) | |
{ | |
if ( v29 ) | |
{ | |
if ( v5 == 1 ) | |
{ | |
*(_DWORD *)(432LL * (unsigned int)v70 + 0x1801218E0LL + 24 * v78 + 4 * v41) = -v32; | |
} | |
else if ( v71 == 2 ) | |
{ | |
*(_DWORD *)(4 * v70 + 0x180120BDCLL) = *(_DWORD *)(4 * v78 + 0x180120D1CLL) - v32; | |
} | |
} | |
else if ( v5 == 1 ) | |
{ | |
*(_DWORD *)(432LL * (unsigned int)v70 + 0x1801218E0LL + 24 * v78 + 4 * v41) = v32; | |
} | |
else if ( v71 == 2 ) | |
{ | |
*(_DWORD *)(4 * v70 + 0x180120BDCLL) = v32 - v72; | |
} | |
} | |
} | |
} | |
++v41; | |
} | |
v43 = 0LL; | |
v44 = 1; | |
while ( v43 <= 5 ) | |
{ | |
v45 = *((_DWORD *)&v82 + v43++); | |
v44 &= v45; | |
if ( !v44 ) | |
{ | |
if ( v29 ) | |
v46 = v32; | |
else | |
v46 = 0; | |
if ( v32 != *(_DWORD *)(4 * v78 + 0x180120D1CLL) ) | |
v46 = v32; | |
v47 = v29 || v32 == *(_DWORD *)(4 * v78 + 0x180120D1CLL); | |
v48 = v34 - 1; | |
v49 = v33 - 1; | |
if ( v5 != 1 ) | |
v49 = v33; | |
if ( v5 != 2 ) | |
v48 = v34; | |
if ( v5 == 2 ) | |
v49 = v33; | |
if ( !v29 && v32 != *(_DWORD *)(4 * v78 + 0x180120D1CLL) ) | |
v34 = v48; | |
if ( !v29 && v32 != *(_DWORD *)(4 * v78 + 0x180120D1CLL) ) | |
v33 = v49; | |
if ( v29 || v32 == *(_DWORD *)(4 * v78 + 0x180120D1CLL) ) | |
v32 = v46 + 1; | |
else | |
v32 = v46 - 1; | |
v29 = v47 != 0; | |
if ( v32 > 3 * *v77 + 1 ) | |
{ | |
*(_DWORD *)(72 * v75 + 0x180120B60LL + 4 * v78 + 1204) = 1; | |
break; | |
} | |
goto LABEL_33; | |
} | |
} | |
v27 = v75; | |
LABEL_86: | |
sub_1800D10AC(v6, *(_DWORD *)(4 * v28 + 0x180120D1CLL)); | |
if ( v5 == 1 ) | |
{ | |
sub_1800D1198(v6, *(_DWORD *)(4 * v28 + 0x180120D64LL)); | |
} | |
else if ( v5 == 2 ) | |
{ | |
sub_1800D1284(v6, *(_DWORD *)(4 * v28 + 0x180120DACLL)); | |
} | |
v50 = (_DWORD)v6 << 18; | |
v51 = 3 * *v77 + 1; | |
v52 = *(_DWORD *)(v50 + 0x200220500LL) + 2 * *v77 + (unsigned __int8)(*(_DWORD *)(v50 + 0x200220700LL) >> 16); | |
v53 = v5 | 2; | |
v76 = (_DWORD *)(72 * v27 + 6443633504LL + 4 * v28 + 1204); | |
v54 = 4; | |
v55 = *(_DWORD *)(v50 + 0x200220518LL) + 2 * *v77 + (unsigned __int8)(*(_DWORD *)(v50 + 0x200220708LL) >> 16); | |
while ( 1 ) | |
{ | |
if ( v5 == 1 ) | |
{ | |
sub_1800D1284(v6, v52); | |
v56 = v53 == 2; | |
} | |
else if ( v53 == 2 ) | |
{ | |
sub_1800D1198(v6, v55); | |
v56 = 1; | |
} | |
else | |
{ | |
v56 = 0; | |
} | |
result = sub_1800D13CC(v6, v5); | |
if ( !(result & 0x3F) ) | |
break; | |
if ( v5 == 1 ) | |
{ | |
if ( v54 + v52 > v51 ) | |
v54 = 1; | |
v52 += v54; | |
if ( v52 > v51 ) | |
*v76 = 1; | |
} | |
if ( v56 ) | |
{ | |
if ( v54 + v55 > v51 ) | |
v54 = 1; | |
v55 += v54; | |
if ( v55 > v51 ) | |
*v76 = 1; | |
} | |
if ( v5 == 1 && v52 > v51 || (unsigned __int8)v56 & (v55 > v51) ) | |
goto LABEL_137; | |
} | |
v83 = 0LL; | |
v84 = 0LL; | |
v81 = 0LL; | |
v82 = 0LL; | |
v79 = 0LL; | |
v80 = 0LL; | |
v58 = *(_DWORD *)((unsigned int)((_DWORD)v6 << 18) + 0x200220700LL); | |
v59 = *(_DWORD *)((unsigned int)((_DWORD)v6 << 18) + 0x200220500LL); | |
v60 = *(unsigned int *)((unsigned int)((_DWORD)v6 << 18) + 0x200220518LL); | |
if ( v56 ) | |
v58 = *(_DWORD *)((unsigned int)((_DWORD)v6 << 18) + 0x200220708LL); | |
v61 = (unsigned int)(v74 + (v6 + MEMORY[0x18012157C] * v73) * MEMORY[0x180121584]); | |
v62 = (v58 >> 16) & 0xFF; | |
v63 = 432LL * (unsigned int)v61 + 6443636960LL + 24 * v78 + 1728; | |
v64 = 4 * v61 + 6443633504LL; | |
while ( 1 ) | |
{ | |
if ( v5 == 1 ) | |
sub_1800D1284(v6, v62); | |
if ( v56 ) | |
sub_1800D1198(v6, v62); | |
result = sub_1800D13CC(v6, v5); | |
for ( i = 0LL; i != 6; ++i ) | |
{ | |
if ( !((1 << i) & (unsigned int)result) || *((_DWORD *)&v82 + i) ) | |
{ | |
*((_DWORD *)&v79 + i) = 0; | |
} | |
else | |
{ | |
v66 = *((_DWORD *)&v79 + i); | |
if ( v66 == 8 ) | |
{ | |
*((_DWORD *)&v82 + i) = 1; | |
} | |
else | |
{ | |
*((_DWORD *)&v79 + i) = v66 + 1; | |
if ( !v66 ) | |
{ | |
if ( v5 == 1 ) | |
*(_DWORD *)(v63 + 4 * i) = *(_DWORD *)(4 * v78 + 0x180120D1CLL) - v62; | |
if ( v56 ) | |
*(_DWORD *)(v64 + 140) = *(_DWORD *)(4 * v78 + 0x180120D1CLL) - v62; | |
} | |
} | |
} | |
} | |
v67 = 0LL; | |
v68 = 1; | |
do | |
{ | |
if ( v67 > 5 ) | |
break; | |
v69 = *((_DWORD *)&v82 + v67++); | |
v68 &= v69; | |
} | |
while ( v68 ); | |
if ( !(v68 | v62) ) | |
break; | |
if ( !v68 ) | |
{ | |
v62 -= v68 == 0; | |
if ( v62 <= 3 * *v77 + 1 ) | |
continue; | |
} | |
goto LABEL_138; | |
} | |
LABEL_137: | |
*v76 = 1; | |
LABEL_138: | |
if ( 5139240511851214385LL != v85 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800CD8E8) ---------------------------------------------------- | |
void sub_1800CD8E8() | |
{ | |
__int64 i; // x19 | |
__int64 v1; // x8 | |
__int64 v2; // x9 | |
signed __int64 v3; // x10 | |
int v4; // w11 | |
unsigned int v5; // w12 | |
int v6; // w14 | |
int v7; // w13 | |
int v8; // w0 | |
int v9; // w20 | |
__int64 k; // x21 | |
__int64 j; // x20 | |
for ( i = 0LL; (unsigned int)i < MEMORY[0x18012157C]; i = (unsigned int)(i + 1) ) | |
{ | |
v1 = 0LL; | |
v2 = (unsigned int)(MEMORY[0x180121584] * i); | |
v3 = -(signed __int64)MEMORY[0x1801217D8]; | |
v4 = MEMORY[0x18012157C] * MEMORY[0x180121584]; | |
v5 = MEMORY[0x180121584] * i; | |
while ( v3 != v1 ) | |
{ | |
v6 = *(_DWORD *)(4LL * v5 + 0x180120BECLL); | |
v7 = *(_DWORD *)(4LL * v5 + 0x180120BDCLL); | |
if ( v1 ) | |
{ | |
if ( v6 <= *(_DWORD *)(4 * v2 + 0x180120BFCLL) ) | |
v6 = *(_DWORD *)(4 * v2 + 0x180120BFCLL); | |
*(_DWORD *)(4 * v2 + 0x180120BFCLL) = v6; | |
if ( v7 >= *(_DWORD *)(4 * v2 + 0x180120C0CLL) ) | |
v7 = *(_DWORD *)(4 * v2 + 0x180120C0CLL); | |
} | |
else | |
{ | |
*(_DWORD *)(4 * v2 + 0x180120BFCLL) = v6; | |
} | |
*(_DWORD *)(4 * v2 + 0x180120C0CLL) = v7; | |
--v1; | |
v5 += v4; | |
} | |
v8 = sub_1800D14C4(*(_DWORD *)(4 * v2 + 0x180120BFCLL), *(_DWORD *)(4 * v2 + 0x180120C0CLL)); | |
v9 = v8; | |
if ( v8 & 0x80000000 ) | |
{ | |
sub_1800CC0D0(i, -(signed __int16)v8); | |
sub_1800CC038(i, 0); | |
for ( j = 0LL; j != 2; ++j ) | |
{ | |
*(_DWORD *)(8LL * (unsigned int)i + 0x180120C4CLL + 4 * j) = 0; | |
sub_1800CBEE8(i, j, 0, 0); | |
} | |
} | |
else | |
{ | |
sub_1800CC038(i, v8); | |
for ( k = 0LL; k != 2; ++k ) | |
{ | |
*(_DWORD *)(8LL * (unsigned int)i + 0x180120C4CLL + 4 * k) = v9; | |
sub_1800CBEE8(i, k, v9, 0); | |
} | |
sub_1800CC0D0(i, 0); | |
} | |
} | |
} | |
//----- (00000001800CDA4C) ---------------------------------------------------- | |
__int64 __fastcall sub_1800CDA4C(__int64 a1) | |
{ | |
__int64 v1; // x19 | |
__int64 v2; // x22 | |
signed __int64 v3; // x20 | |
__int64 result; // x0 | |
unsigned __int64 v5; // x20 | |
signed __int64 v6; // x21 | |
signed __int64 v7; // x22 | |
__int64 v8; // x19 | |
v1 = a1; | |
v2 = (unsigned int)a1; | |
v3 = 4LL * (unsigned int)a1 + 6443633504LL; | |
sub_1800D10AC(a1, *(_DWORD *)(4LL * (unsigned int)a1 + 0x180120BACLL)); | |
sub_1800D1198(v1, *(_DWORD *)(v3 + 60)); | |
result = sub_1800D1284(v1, *(_DWORD *)(v3 + 108)); | |
v5 = 0LL; | |
v6 = (unsigned int)((_DWORD)v1 << 18) + 8592164096LL; | |
v7 = 24 * v2 + 6443633504LL; | |
while ( v5 <= 5 ) | |
{ | |
*(_DWORD *)(v6 + 4 * v5) = *(_DWORD *)(v7 + 4 * v5 + 660) | 0x100; | |
result = sub_1800E1188(result); | |
v8 = result; | |
while ( 1 ) | |
{ | |
result = sub_1800E1188(result); | |
if ( !(*(_DWORD *)(v6 + 4 * v5) & 0x100) ) | |
break; | |
if ( (unsigned __int64)(result - v8) >= 0xF4240 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -2045261415062956628LL, 470LL); | |
} | |
++v5; | |
} | |
return result; | |
} | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800CDB48) ---------------------------------------------------- | |
__int64 __fastcall sub_1800CDB48(__int64 a1) | |
{ | |
__int64 v1; // x20 | |
int v2; // w23 | |
__int64 v3; // x0 | |
__int64 v4; // x19 | |
signed __int64 v5; // x8 | |
__int64 v6; // x0 | |
__int64 v7; // x19 | |
__int64 v8; // x0 | |
__int64 result; // x0 | |
__int64 v10; // xzr | |
v1 = (unsigned int)((_DWORD)a1 << 18); | |
v2 = *(_DWORD *)(v1 + 0x200238164LL); | |
*(_DWORD *)(v1 + 0x200220924LL) |= 0x1000u; | |
v3 = sub_1800E1188(a1); | |
v4 = v3; | |
while ( 1 ) | |
{ | |
v3 = sub_1800E1188(v3); | |
if ( !(*(_DWORD *)(v1 + 8592165156LL) & 0x1000) ) | |
break; | |
if ( (unsigned __int64)(v3 - v4) > 0xF423F ) | |
{ | |
v5 = 1844LL; | |
goto LABEL_9; | |
} | |
} | |
*(_DWORD *)(v1 + 8592261476LL) = v2 | 2; | |
v6 = sub_1800E1188(v3); | |
v7 = v6; | |
while ( 1 ) | |
{ | |
v6 = sub_1800E1188(v6); | |
if ( *(_DWORD *)(v1 + 8592261476LL) & 2 ) | |
break; | |
if ( (unsigned __int64)(v6 - v7) > 0xF423F ) | |
{ | |
v5 = 1849LL; | |
LABEL_9: | |
sub_1800D489C("%llx:%d", &byte_180101040, -2045261415062956628LL, v5); | |
} | |
} | |
*(_DWORD *)(v1 + 8592261476LL) = v2 & 0xFFFFFFFD; | |
v8 = sub_1800E1188(v6); | |
result = sub_1800E1188(v8); | |
v10 = *(unsigned int *)(v1 + 8592261476LL); | |
return result; | |
} | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800CDC54) ---------------------------------------------------- | |
__int64 __fastcall sub_1800CDC54(__int64 result, unsigned int a2) | |
{ | |
char v2; // w8 | |
signed int v3; // w9 | |
int v4; // w11 | |
int v5; // w8 | |
int *v6; // x10 | |
int v7; // w13 | |
if ( a2 == 1 ) | |
v2 = 3; | |
else | |
v2 = 7; | |
if ( a2 == 1 ) | |
v3 = -9; | |
else | |
v3 = -129; | |
if ( !a2 ) | |
v2 = 1; | |
if ( !a2 ) | |
v3 = -3; | |
v4 = *(_DWORD *)(8LL * a2 + 0x18011AA80LL) << v2; | |
v5 = *(_DWORD *)(8LL * a2 + 0x18011AA84LL) << v2; | |
v6 = (int *)((unsigned int)((_DWORD)result << 18) + 8592261320LL); | |
v7 = *(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x200238138LL); | |
*v6 = *(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x2002380C8LL) & v3 | v4; | |
v6[28] = v7 & v3 | v5; | |
return result; | |
} | |
//----- (00000001800CDCD0) ---------------------------------------------------- | |
__int64 __fastcall sub_1800CDCD0(__int64 result, int a2) | |
{ | |
int v2; // w11 | |
int v3; // w12 | |
unsigned int v4; // w9 | |
v2 = *(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x200238080LL); | |
v3 = *(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x2002380F0LL); | |
switch ( a2 ) | |
{ | |
case 3: | |
if ( !MEMORY[0x180121814] ) | |
{ | |
*(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x200238080LL) = v2 & 0xFFFFFF7F; | |
return result; | |
} | |
v4 = v3 & 0xFFFFFF7F; | |
LABEL_10: | |
*(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x2002380F0LL) = v4; | |
return result; | |
case 1: | |
if ( !MEMORY[0x180121814] ) | |
{ | |
*(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x200238080LL) = v2 & 0xFFFFFFF7; | |
return result; | |
} | |
v4 = v3 & 0xFFFFFFF7; | |
goto LABEL_10; | |
case 0: | |
if ( MEMORY[0x180121814] ) | |
*(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x2002380F0LL) = v3 & 0xFFFFFFFD; | |
else | |
*(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x200238080LL) = v2 & 0xFFFFFFFD; | |
break; | |
} | |
return result; | |
} | |
//----- (00000001800CDD74) ---------------------------------------------------- | |
void sub_1800CDD74() | |
{ | |
__int64 v0; // x19 | |
__int64 v1; // x20 | |
__int64 v2; // xzr | |
__int64 v3; // x21 | |
__int64 v4; // x26 | |
__int64 v5; // x8 | |
signed __int64 v6; // x10 | |
int *v7; // x9 | |
int *v8; // x10 | |
signed __int64 v9; // x11 | |
unsigned int v10; // w12 | |
int v11; // w13 | |
int v12; // w15 | |
int v13; // w14 | |
int v14; // w20 | |
signed __int64 i; // x8 | |
int v16; // w9 | |
int v17; // w8 | |
int v18; // w21 | |
unsigned __int16 v19; // w22 | |
__int64 n; // x21 | |
__int64 v21; // x0 | |
unsigned __int16 v22; // w1 | |
__int64 k; // x22 | |
BOOL v24; // w8 | |
BOOL v25; // w1 | |
__int64 l; // x22 | |
__int64 v27; // x0 | |
__int64 m; // x22 | |
__int64 j; // x22 | |
__int64 v30; // x0 | |
unsigned __int64 v31; // x22 | |
_DWORD *v32; // x23 | |
signed __int64 v33; // x19 | |
int v34; // w8 | |
__int64 v35; // x21 | |
int v36; // w8 | |
int v37; // [xsp+14h] [xbp-8Ch] | |
__int64 v38; // [xsp+18h] [xbp-88h] | |
unsigned __int64 v39; // [xsp+20h] [xbp-80h] | |
int v40[6]; // [xsp+30h] [xbp-70h] | |
__int64 v41; // [xsp+48h] [xbp-58h] | |
v0 = 0LL; | |
v41 = 5139240511851214385LL; | |
while ( (unsigned int)v0 < MEMORY[0x18012157C] ) | |
{ | |
v1 = 0LL; | |
v39 = (unsigned int)((_DWORD)v0 << 18); | |
v2 = *(unsigned int *)(v39 + 0x200220700LL); | |
v3 = (unsigned int)(MEMORY[0x180121584] * v0); | |
v4 = *(unsigned int *)(4LL * (unsigned int)v3 + 0x180120B6CLL); | |
while ( v1 != 6 ) | |
{ | |
v5 = 0LL; | |
v6 = 24 * v3 + 6443633504LL + 4 * v1; | |
v7 = (int *)(v6 + 756); | |
v8 = (int *)(v6 + 852); | |
v9 = -(signed __int64)MEMORY[0x1801217D8]; | |
v10 = v0 * MEMORY[0x180121584]; | |
v11 = MEMORY[0x18012157C] * MEMORY[0x180121584]; | |
while ( v9 != v5 ) | |
{ | |
v12 = *(_DWORD *)(432LL * v10 + 0x1801218E0LL + 24 * v4 + 4 * v1 + 1728); | |
v13 = *(_DWORD *)(432LL * v10 + 0x1801218E0LL + 24 * v4 + 4 * v1); | |
if ( v5 ) | |
{ | |
if ( v12 <= *v7 ) | |
v12 = *v7; | |
*v7 = v12; | |
if ( v13 >= *v8 ) | |
v13 = *v8; | |
} | |
else | |
{ | |
*v7 = v12; | |
} | |
*v8 = v13; | |
--v5; | |
v10 += v11; | |
} | |
v40[v1++] = sub_1800D14C4(*v7, *v8); | |
} | |
v14 = v40[0]; | |
for ( i = 1LL; i != 6; ++i ) | |
{ | |
if ( v40[i] > v14 ) | |
v14 = v40[i]; | |
} | |
v38 = (unsigned int)v0; | |
v16 = *(_DWORD *)(4 * v4 + 0x180120D1CLL); | |
v17 = *(_DWORD *)(4 * v4 + 0x180120D64LL); | |
v18 = v16 - v17; | |
v37 = v0; | |
if ( v14 & 0x80000000 ) | |
{ | |
if ( v18 < 1 ) | |
{ | |
sub_1800CC038(v0, 0); | |
for ( j = 0LL; j != 2; ++j ) | |
{ | |
*(_DWORD *)(8LL * (unsigned int)v0 + 0x180120C4CLL + 4 * j) = 0; | |
sub_1800CBEE8(v0, j, 0, 0); | |
} | |
sub_1800CC0D0(v0, -(signed __int16)v18); | |
if ( v14 >= 0 ) | |
LOWORD(v25) = v14; | |
else | |
v25 = !v14; | |
} | |
else | |
{ | |
sub_1800CC038(v0, v16 - v17); | |
for ( k = 0LL; k != 2; ++k ) | |
{ | |
*(_DWORD *)(8LL * (unsigned int)v0 + 0x180120C4CLL + 4 * k) = v18; | |
sub_1800CBEE8(v0, k, v18, 0); | |
} | |
sub_1800CC0D0(v0, 0); | |
if ( v14 >= 0 ) | |
LOWORD(v24) = v14; | |
else | |
v24 = !v14; | |
LOWORD(v25) = v18 + v24; | |
} | |
goto LABEL_50; | |
} | |
if ( v18 < 1 ) | |
{ | |
sub_1800CC038(v0, v14); | |
for ( l = 0LL; l != 2; ++l ) | |
{ | |
*(_DWORD *)(8LL * (unsigned int)v0 + 0x180120C4CLL + 4 * l) = v14; | |
sub_1800CBEE8(v0, l, v14, 0); | |
} | |
v22 = v14 - v18; | |
v21 = v0; | |
} | |
else | |
{ | |
v19 = v14 - v18; | |
if ( v14 <= v18 ) | |
{ | |
sub_1800CC038(v0, v16 - v17); | |
for ( m = 0LL; m != 2; ++m ) | |
{ | |
*(_DWORD *)(8LL * (unsigned int)v0 + 0x180120C4CLL + 4 * m) = v18; | |
sub_1800CBEE8(v0, m, v18, 0); | |
} | |
sub_1800CC0D0(v0, 0); | |
LOWORD(v25) = v18 - v14; | |
LABEL_50: | |
v27 = v0; | |
goto LABEL_51; | |
} | |
sub_1800CC038(v0, v14); | |
for ( n = 0LL; n != 2; ++n ) | |
{ | |
*(_DWORD *)(8LL * (unsigned int)v0 + 0x180120C4CLL + 4 * n) = v14; | |
sub_1800CBEE8(v0, n, v14, 0); | |
} | |
v21 = v0; | |
v22 = v19; | |
} | |
sub_1800CC0D0(v21, v22); | |
v27 = v0; | |
LOWORD(v25) = 0; | |
LABEL_51: | |
v30 = sub_1800CBFA0(v27, v25); | |
v31 = 0LL; | |
v32 = (_DWORD *)(72LL * (unsigned int)v0 + 6443633504LL + 4 * v4 + 1204); | |
v33 = v39 + 8592164096LL; | |
while ( v31 <= 5 ) | |
{ | |
v34 = v14 - v40[v31]; | |
if ( v34 & 0x80000000 ) | |
*v32 = 1; | |
*(_DWORD *)(v33 + 4 * v31) = v34 | 0x100; | |
v30 = sub_1800E1188(v30); | |
v35 = v30; | |
while ( 1 ) | |
{ | |
v30 = sub_1800E1188(v30); | |
if ( !(*(_DWORD *)(v33 + 4 * v31) & 0x100) ) | |
break; | |
if ( (unsigned __int64)(v30 - v35) >= 0xF4240 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -2045261415062956628LL, 3023LL); | |
} | |
++v31; | |
} | |
v36 = MEMORY[0x1801218C8]; | |
if ( MEMORY[0x1801218C8] == 1 ) | |
{ | |
sub_1800B74E8(1, (unsigned __int8)v37, 0, 12, (_BYTE *)*(unsigned int *)(4 * v4 + 0x180121618LL)); | |
v36 = MEMORY[0x1801218C8]; | |
} | |
if ( !v36 ) | |
{ | |
sub_1800B74E8(1, (unsigned __int8)v37, 0, 12, (_BYTE *)*(unsigned int *)(4 * v4 + 0x1801215DCLL)); | |
v36 = MEMORY[0x1801218C8]; | |
} | |
if ( v36 ) | |
{ | |
if ( v36 == 1 ) | |
*(_DWORD *)(v39 + 8592032880LL) = *(_DWORD *)(v39 + 8592032880LL) & 0xC0FFFF | (*(_DWORD *)(4LL * *(unsigned int *)(4 * v38 + 0x180120B6CLL) | |
+ 0x180121618LL) << 24) | 0xC0000; | |
} | |
else | |
{ | |
*(_DWORD *)(v39 + 8592032856LL) = *(_DWORD *)(v39 + 8592032856LL) & 0xC0FFFF | (*(_DWORD *)(4LL | |
* *(unsigned int *)(4 * v38 + 0x180120B6CLL) | |
+ 0x1801215DCLL) << 24) | 0xC0000; | |
} | |
v0 = (unsigned int)(v37 + 1); | |
} | |
if ( 5139240511851214385LL != v41 ) | |
sub_1800D4A5C(); | |
} | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
// 1800CDD74: using guessed type int var_70[6]; | |
//----- (00000001800CE280) ---------------------------------------------------- | |
// write access to const memory has been detected, the output may be wrong! | |
__int64 __fastcall sub_1800CE280(__int64 result, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8, double a9, double a10) | |
{ | |
__int64 v10; // x25 | |
unsigned int *v11; // x8 | |
unsigned int v12; // w9 | |
unsigned __int64 v13; // x10 | |
int v14; // w9 | |
int v15; // w12 | |
int v16; // w8 | |
_DWORD *v17; // x12 | |
unsigned int v18; // w9 | |
signed __int64 v19; // x10 | |
unsigned int v20; // w8 | |
__int64 v21; // x1 | |
__int64 v22; // x2 | |
__int64 v23; // x3 | |
__int64 v24; // x4 | |
__int64 v25; // x5 | |
__int64 v26; // x6 | |
__int64 v27; // x7 | |
__int64 i; // x8 | |
__int64 v29; // x1 | |
__int64 v30; // x2 | |
__int64 v31; // x3 | |
__int64 v32; // x4 | |
__int64 v33; // x5 | |
__int64 v34; // x6 | |
__int64 v35; // x7 | |
__int64 v36; // x1 | |
__int64 v37; // x2 | |
__int64 v38; // x3 | |
__int64 v39; // x4 | |
__int64 v40; // x5 | |
__int64 v41; // x6 | |
__int64 v42; // x7 | |
__int64 j; // x8 | |
unsigned __int64 v44; // x9 | |
int *v45; // x8 | |
__int64 v46; // x0 | |
double v47; // d0 | |
double v48; // d1 | |
__int64 v49; // x19 | |
int v50; // w20 | |
char *v51; // x21 | |
int v52; // w12 | |
signed int v53; // w10 | |
unsigned __int64 v54; // x25 | |
int v55; // w28 | |
unsigned __int64 v56; // x19 | |
unsigned __int64 v57; // x21 | |
signed __int64 v58; // x26 | |
__int64 v59; // x20 | |
__int64 v60; // x20 | |
double v61; // d0 | |
double v62; // d1 | |
__int64 v63; // x8 | |
int v64; // w9 | |
__int64 v65; // x9 | |
int v66; // w8 | |
bool v67; // zf | |
unsigned __int64 v68; // x19 | |
unsigned __int64 v69; // x21 | |
unsigned __int64 v70; // x25 | |
signed __int64 v71; // x26 | |
__int64 v72; // x20 | |
__int64 v73; // x20 | |
__int64 v74; // x8 | |
__int64 v75; // x9 | |
char *v76; // x10 | |
char *v77; // x11 | |
_DWORD *v78; // x12 | |
signed int v79; // w28 | |
signed int v80; // w19 | |
__int64 kk; // x20 | |
__int64 v82; // x8 | |
signed int v83; // w25 | |
signed int v84; // w9 | |
__int64 v85; // x8 | |
int v86; // w9 | |
__int64 ll; // x20 | |
unsigned __int64 v88; // x8 | |
int v89; // w9 | |
int v90; // w10 | |
unsigned int v91; // w10 | |
__int64 mm; // x8 | |
unsigned __int64 v93; // x9 | |
signed int v94; // w8 | |
unsigned int v95; // w10 | |
signed __int64 v96; // x11 | |
int v97; // w9 | |
__int64 nn; // x9 | |
unsigned __int64 v99; // x9 | |
unsigned int v100; // w10 | |
__int64 v101; // x8 | |
signed __int64 v102; // x13 | |
int v103; // w9 | |
signed int v104; // w14 | |
__int64 i1; // x8 | |
__int64 v106; // x8 | |
int v107; // w9 | |
signed int v108; // w13 | |
__int64 k; // x20 | |
unsigned __int64 l; // x25 | |
unsigned __int64 v111; // x19 | |
unsigned __int64 v112; // x28 | |
signed __int64 v113; // x21 | |
__int64 v114; // x20 | |
int v115; // w8 | |
__int64 v116; // x20 | |
unsigned __int64 v117; // x8 | |
int v118; // w9 | |
int v119; // w10 | |
unsigned int v120; // w10 | |
int v121; // w10 | |
__int64 m; // x8 | |
unsigned __int64 v123; // x9 | |
signed int v124; // w8 | |
unsigned int v125; // w10 | |
signed __int64 v126; // x11 | |
int v127; // w9 | |
int v128; // w9 | |
unsigned __int64 n; // x10 | |
__int64 ii; // x9 | |
int v131; // w10 | |
__int64 v132; // x9 | |
_DWORD *v133; // x10 | |
__int64 jj; // x9 | |
unsigned __int64 v135; // x9 | |
unsigned int v136; // w10 | |
int v137; // w11 | |
signed int v138; // w8 | |
int *v139; // x9 | |
unsigned __int64 i2; // x10 | |
int v141; // t1 | |
unsigned int v142; // w8 | |
int *v143; // x9 | |
__int64 i3; // x19 | |
__int64 v145; // x20 | |
__int64 v146; // x21 | |
signed __int64 v147; // x22 | |
signed __int64 v148; // x25 | |
__int64 v149; // x8 | |
char *v150; // x9 | |
int v151; // t1 | |
unsigned __int64 i4; // x8 | |
unsigned int v153; // w9 | |
signed __int64 v154; // x10 | |
int v155; // w8 | |
unsigned __int64 i5; // x8 | |
unsigned int v157; // w9 | |
unsigned __int64 v158; // x20 | |
int v159; // w21 | |
unsigned int v160; // w0 | |
int v161; // w1 | |
int v162; // w2 | |
__int64 v163; // x0 | |
unsigned __int64 v164; // x27 | |
signed __int64 v165; // x28 | |
int v166; // w8 | |
__int64 v167; // x21 | |
int v168; // w8 | |
__int64 v169; // x0 | |
__int64 v170; // x21 | |
int *v171; // x9 | |
int v172; // w9 | |
signed __int64 v173; // x8 | |
signed __int64 v174; // [xsp+28h] [xbp-228h] | |
unsigned int v175; // [xsp+34h] [xbp-21Ch] | |
signed __int64 v176; // [xsp+A8h] [xbp-1A8h] | |
unsigned __int64 v177; // [xsp+B8h] [xbp-198h] | |
__int64 v178; // [xsp+C0h] [xbp-190h] | |
signed __int64 v179; // [xsp+D0h] [xbp-180h] | |
unsigned __int64 v180; // [xsp+D8h] [xbp-178h] | |
signed __int64 v181; // [xsp+E0h] [xbp-170h] | |
unsigned int v182; // [xsp+ECh] [xbp-164h] | |
signed __int64 v183; // [xsp+F0h] [xbp-160h] | |
signed __int64 v184; // [xsp+F8h] [xbp-158h] | |
unsigned __int64 v185; // [xsp+100h] [xbp-150h] | |
signed int v186; // [xsp+108h] [xbp-148h] | |
signed int v187; // [xsp+108h] [xbp-148h] | |
signed __int64 v188; // [xsp+108h] [xbp-148h] | |
int v189; // [xsp+110h] [xbp-140h] | |
signed __int64 v190; // [xsp+110h] [xbp-140h] | |
signed int v191; // [xsp+110h] [xbp-140h] | |
signed __int64 v192; // [xsp+118h] [xbp-138h] | |
__int128 v193; // [xsp+120h] [xbp-130h] | |
_DWORD *v194; // [xsp+128h] [xbp-128h] | |
unsigned int v195; // [xsp+130h] [xbp-120h] | |
__int64 v196; // [xsp+138h] [xbp-118h] | |
__int64 v197; // [xsp+140h] [xbp-110h] | |
int v198[2]; // [xsp+148h] [xbp-108h] | |
char v199[72]; // [xsp+150h] [xbp-100h] | |
char v200[72]; // [xsp+198h] [xbp-B8h] | |
char v201[8]; // [xsp+1E0h] [xbp-70h] | |
char v202[8]; // [xsp+1E8h] [xbp-68h] | |
char v203[8]; // [xsp+1F0h] [xbp-60h] | |
__int64 v204; // [xsp+1F8h] [xbp-58h] | |
v175 = 0; | |
v10 = 0LL; | |
v204 = 5139240511851214385LL; | |
v11 = (unsigned int *)6443636124LL; | |
if ( MEMORY[0x1801218C8] ) | |
v11 = (unsigned int *)6443636128LL; | |
v177 = *v11; | |
LABEL_249: | |
if ( (unsigned int)v10 < MEMORY[0x180121580] ) | |
{ | |
v174 = 92LL * (unsigned int)v10 + 6443635316LL; | |
v12 = 0; | |
v181 = 12LL * (unsigned int)v10 + 6443633504LL; | |
v192 = 12LL * (unsigned int)v10 + 6443633808LL; | |
v176 = v175 + 8592197120LL; | |
v13 = (unsigned int)((_DWORD)v10 << 18); | |
v194 = (_DWORD *)v13; | |
v13 += 8592162816LL; | |
v184 = v13 + 0x8000; | |
v185 = v13; | |
v178 = (unsigned int)v10; | |
v195 = v10; | |
while ( 1 ) | |
{ | |
if ( v12 >= MEMORY[0x180121584] ) | |
{ | |
v10 = (unsigned int)(v10 + 1); | |
v175 += 0x40000; | |
goto LABEL_249; | |
} | |
v182 = v12; | |
v14 = v194[2148041600LL]; | |
v15 = v194[2148041602LL]; | |
v16 = v194[2148041668LL]; | |
v194[2148041608LL] = MEMORY[0x1801217E4] | v194[2148041608LL] & 0xFFFFFF00; | |
if ( MEMORY[0x1801218C8] == 1 ) | |
break; | |
v17 = v194; | |
if ( !MEMORY[0x1801218C8] ) | |
{ | |
v18 = (v14 & 0xFFFF0000 | (unsigned __int8)(MEMORY[0x1801218CC] / 2 - 6)) & 0xFFFF00FF | ((unsigned __int8)(MEMORY[0x1801218D0] / 2 - 2) << 8); | |
v19 = 2148041600LL; | |
LABEL_9: | |
v17[v19] = v18; | |
} | |
v17[2148041640LL] = MEMORY[0x180121818]; | |
v17[2148041641LL] = MEMORY[0x18012181C]; | |
v17[2148041642LL] = MEMORY[0x180121820]; | |
v17[2148041643LL] = MEMORY[0x180121824]; | |
v17[2148041645LL] = (MEMORY[0x180121848] << 16) | (MEMORY[0x18012184C] << 24) | (MEMORY[0x180121844] << 8) | MEMORY[0x180121840]; | |
v17[2148041646LL] = (MEMORY[0x180121858] << 16) | (MEMORY[0x18012185C] << 24) | (MEMORY[0x180121854] << 8) | MEMORY[0x180121850]; | |
v17[2148041647LL] = MEMORY[0x180121860]; | |
v17[2148041648LL] = (MEMORY[0x18012186C] << 16) | (MEMORY[0x180121870] << 24) | (MEMORY[0x180121868] << 8) | MEMORY[0x180121864]; | |
v17[2148041649LL] = (MEMORY[0x18012187C] << 16) | (MEMORY[0x180121880] << 24) | (MEMORY[0x180121878] << 8) | MEMORY[0x180121874]; | |
v17[2148041650LL] = MEMORY[0x180121884]; | |
if ( MEMORY[0x1801217EC] == 1 ) | |
v20 = v16 | 1; | |
else | |
v20 = v16 & 0xFFFFFFFE; | |
v17[2148041668LL] = v20; | |
if ( !MEMORY[0x1801217EC] ) | |
{ | |
if ( MEMORY[0x1801218C8] == 1 ) | |
{ | |
sub_1800B6208(3, a2, a3, a4, a5, a6, a7, a8); | |
} | |
else | |
{ | |
for ( i = 0LL; i != 0x10000; i += 0x8000LL ) | |
*(_DWORD *)(v176 + i) |= 8u; | |
sub_1800B74E8(1, (unsigned __int8)v10, 0, 13, (_BYTE *)0x98); | |
sub_1800B6208(1, v29, v30, v31, v32, v33, v34, v35); | |
sub_1800CCE0C(v10); | |
} | |
v194[2148041622LL] |= 0x1000u; | |
while ( v194[2148041622LL] & 0x1000 ) | |
; | |
if ( MEMORY[0x1801218C8] == 1 ) | |
{ | |
result = sub_1800B6208(1, v21, v22, v23, v24, v25, v26, v27); | |
} | |
else | |
{ | |
sub_1800B74E8(1, (unsigned __int8)v10, 0, 13, (_BYTE *)0x58); | |
sub_1800B6208(0, v36, v37, v38, v39, v40, v41, v42); | |
result = sub_1800CCE0C(v10); | |
for ( j = 0LL; j != 0x10000; j += 0x8000LL ) | |
*(_DWORD *)(v176 + j) &= 0xFFFFFFF7; | |
} | |
} | |
v44 = 0LL; | |
v183 = 6443615360LL; | |
v179 = 6443608736LL; | |
while ( v44 < v177 ) | |
{ | |
v180 = v44; | |
v45 = (int *)(4 * v44 + 6443636412LL); | |
if ( !MEMORY[0x1801218C8] ) | |
v45 = (int *)(4 * v44 + 6443636320LL); | |
v46 = sub_1800CC168(v10, *v45, MEMORY[0x1801218C8]); | |
v49 = 0LL; | |
v50 = 0; | |
v196 = 0LL; | |
v51 = v202; | |
while ( v49 != 16 ) | |
{ | |
v46 = sub_1800D1544(v10, v50, 0, v47, v48); | |
*(_DWORD *)v51 = (255 << v49) | (1 << (v50 + 16)); | |
v51 += 4; | |
++v50; | |
v49 += 8LL; | |
} | |
v52 = 0; | |
v53 = 4; | |
do | |
{ | |
v186 = v53; | |
v54 = 0LL; | |
v189 = v52; | |
v55 = v52 | 0x100; | |
while ( v54 <= 1 ) | |
{ | |
if ( !*((_DWORD *)&v196 + v54) ) | |
{ | |
v56 = 0LL; | |
v57 = v184 + (v54 << 15); | |
v58 = v57 | 0x428; | |
while ( v56 <= 7 ) | |
{ | |
*(_DWORD *)(v58 + 4 * v56) = v55; | |
v46 = sub_1800E1188(v46); | |
v59 = v46; | |
while ( 1 ) | |
{ | |
v46 = sub_1800E1188(v46); | |
if ( !(*(_DWORD *)(v58 + 4 * v56) & 0x100) ) | |
break; | |
if ( (unsigned __int64)(v46 - v59) > 0xF423F ) | |
{ | |
v173 = 3243LL; | |
goto LABEL_298; | |
} | |
} | |
++v56; | |
} | |
*(_DWORD *)((v184 + (v54 << 15)) | 0x44C) = v55; | |
v46 = sub_1800E1188(v46); | |
v60 = v46; | |
while ( 1 ) | |
{ | |
v46 = sub_1800E1188(v46); | |
if ( !(*(_DWORD *)((v184 + (v54 << 15)) | 0x44C) & 0x100) ) | |
break; | |
if ( (unsigned __int64)(v46 - v60) > 0xF423F ) | |
{ | |
v173 = 3248LL; | |
goto LABEL_298; | |
} | |
} | |
} | |
++v54; | |
} | |
v46 = sub_1800D1610(v195); | |
v63 = 0LL; | |
v64 = v194[2148041623LL] & 0x3FFFF; | |
while ( v63 != 8 ) | |
{ | |
if ( !*(_DWORD *)((char *)&v196 + v63) && !(v64 & *(_DWORD *)&v202[v63]) ) | |
{ | |
*(_DWORD *)((char *)&v196 + v63) = 1; | |
*(_DWORD *)&v201[v63] = v189; | |
} | |
v63 += 4LL; | |
} | |
v65 = 0LL; | |
v66 = v196; | |
while ( v65 != 4 ) | |
{ | |
v66 &= *(_DWORD *)((char *)&v196 + v65 + 4); | |
v65 += 4LL; | |
} | |
if ( v66 == 1 ) | |
{ | |
sub_1800F0620((signed __int64 *)v200, 0, 0x48uLL); | |
v46 = (__int64)sub_1800F0620((signed __int64 *)v199, 0, 0x48uLL); | |
v106 = 0LL; | |
v197 = 0LL; | |
v107 = MEMORY[0x180121584]; | |
while ( v106 != 2 ) | |
{ | |
v198[v106] = *(_DWORD *)&v201[v106 * 4]; | |
++v106; | |
} | |
v108 = 0; | |
v188 = v179 + 1656LL * (v182 + v195 * v107); | |
while ( 1 ) | |
{ | |
v191 = v108; | |
if ( v108 & 1 ) | |
{ | |
for ( k = 0LL; k != 2; ++k ) | |
{ | |
if ( !*((_DWORD *)&v197 + k) ) | |
sub_1800D1544(v195, k, v198[k], v61, v62); | |
} | |
} | |
else | |
{ | |
for ( l = 0LL; l <= 1; ++l ) | |
{ | |
if ( !*((_DWORD *)&v197 + l) ) | |
{ | |
v111 = 0LL; | |
v112 = v184 + (l << 15); | |
v113 = v112 | 0x428; | |
while ( 1 ) | |
{ | |
v115 = v198[l] | 0x100; | |
if ( v111 > 7 ) | |
break; | |
*(_DWORD *)(v113 + 4 * v111) = v115; | |
v46 = sub_1800E1188(v46); | |
v114 = v46; | |
while ( 1 ) | |
{ | |
v46 = sub_1800E1188(v46); | |
if ( !(*(_DWORD *)(v113 + 4 * v111) & 0x100) ) | |
break; | |
if ( (unsigned __int64)(v46 - v114) > 0xF423F ) | |
{ | |
v173 = 3348LL; | |
goto LABEL_298; | |
} | |
} | |
++v111; | |
} | |
*(_DWORD *)((v184 + (l << 15)) | 0x44C) = v115; | |
v46 = sub_1800E1188(v46); | |
v116 = v46; | |
while ( 1 ) | |
{ | |
v46 = sub_1800E1188(v46); | |
if ( !(*(_DWORD *)((v184 + (l << 15)) | 0x44C) & 0x100) ) | |
break; | |
if ( (unsigned __int64)(v46 - v116) > 0xF423F ) | |
{ | |
v173 = 3353LL; | |
goto LABEL_298; | |
} | |
} | |
} | |
} | |
} | |
v46 = sub_1800D1610(v195); | |
v117 = 0LL; | |
v118 = v194[2148041623LL] & 0x3FFFF; | |
v108 = v191; | |
while ( v117 != 18 ) | |
{ | |
if ( *(_DWORD *)&v200[4 * v117] || !(v118 & (1 << v117)) ) | |
{ | |
*(_DWORD *)&v199[4 * v117] = 0; | |
} | |
else | |
{ | |
v119 = *(_DWORD *)&v199[4 * v117]; | |
if ( v119 == 8 ) | |
{ | |
*(_DWORD *)&v200[4 * v117] = 1; | |
} | |
else | |
{ | |
*(_DWORD *)&v199[4 * v117] = v119 + 1; | |
if ( !v119 ) | |
{ | |
v120 = (unsigned int)v117 >> 3; | |
if ( v117 >= 0x10 ) | |
v120 = v117 - 16; | |
v121 = v198[v120]; | |
if ( !(v191 & 1) ) | |
v121 = -v121; | |
*(_DWORD *)(v188 + 4 * v117) = v121; | |
} | |
} | |
} | |
++v117; | |
} | |
for ( m = 0LL; m != 8; m += 4LL ) | |
*(_DWORD *)((char *)&v197 + m) = 1; | |
v123 = 0LL; | |
v124 = 1; | |
while ( v123 != 18 ) | |
{ | |
v125 = (unsigned int)v123 >> 3; | |
v126 = v123 + 4294967280u; | |
if ( v123 >= 0x10 ) | |
v125 = v123 - 16; | |
v127 = *(_DWORD *)&v200[4 * v123]; | |
*((_DWORD *)&v197 + v125) &= v127; | |
v124 &= v127; | |
v123 = v126 - 4294967279LL; | |
} | |
if ( !v124 ) | |
{ | |
v128 = v198[0]; | |
for ( n = 1LL; n <= 1 && !v128; ++n ) | |
v128 = v198[n]; | |
if ( (v191 | (v128 != 0)) & 1 ) | |
{ | |
if ( !(v191 & 1) ) | |
{ | |
for ( ii = 0LL; ii != 2; ++ii ) | |
{ | |
v131 = v198[ii]; | |
if ( v131 ) | |
v198[ii] = v131 - 1; | |
} | |
v108 = 0; | |
goto LABEL_232; | |
} | |
} | |
else | |
{ | |
v132 = 0LL; | |
v133 = (_DWORD *)(v175 + 8592197128LL); | |
while ( v132 != 2 ) | |
{ | |
v198[v132] = (*v133 >> 16) & 0xFF; | |
++v132; | |
v133 += 0x2000; | |
} | |
} | |
for ( jj = 0LL; jj != 2; ++jj ) | |
{ | |
if ( !*(_DWORD *)((char *)&v197 + jj * 4) ) | |
++v198[jj]; | |
} | |
v108 = 1; | |
} | |
LABEL_232: | |
v135 = 0LL; | |
while ( v135 <= 1 ) | |
{ | |
v136 = v198[v135]; | |
v137 = *(_DWORD *)(v192 + 4 * v135++); | |
if ( v136 > 3 * v137 ) | |
goto LABEL_66; | |
} | |
if ( v124 ) | |
goto LABEL_67; | |
} | |
} | |
v53 = v186; | |
if ( (unsigned int)(v189 + v186) > 0x37 ) | |
v53 = 1; | |
v52 = v53 + v189; | |
if ( (unsigned int)(v53 + v189) <= 0x37 ) | |
v67 = v66 == 0; | |
else | |
v67 = 0; | |
} | |
while ( v67 ); | |
if ( !v66 ) | |
LABEL_66: | |
*(_DWORD *)(92 * v178 + 0x180120B60LL + 4 * v180 + 1812) = 1; | |
LABEL_67: | |
v68 = 0LL; | |
while ( v68 <= 1 ) | |
{ | |
v69 = 0LL; | |
v70 = v185 + (++v68 << 15); | |
v71 = v70 | 0x428; | |
while ( v69 <= 7 ) | |
{ | |
*(_DWORD *)(v71 + 4 * v69) = 256; | |
v46 = sub_1800E1188(v46); | |
v72 = v46; | |
while ( 1 ) | |
{ | |
v46 = sub_1800E1188(v46); | |
if ( !(*(_DWORD *)(v71 + 4 * v69) & 0x100) ) | |
break; | |
if ( (unsigned __int64)(v46 - v72) > 0xF423F ) | |
{ | |
v173 = 3304LL; | |
goto LABEL_298; | |
} | |
} | |
++v69; | |
} | |
*(_DWORD *)((v185 + (v68 << 15)) | 0x44C) = 256; | |
v46 = sub_1800E1188(v46); | |
v73 = v46; | |
while ( 1 ) | |
{ | |
v46 = sub_1800E1188(v46); | |
if ( !(*(_DWORD *)((v185 + (v68 << 15)) | 0x44C) & 0x100) ) | |
break; | |
if ( (unsigned __int64)(v46 - v73) > 0xF423F ) | |
{ | |
v173 = 3309LL; | |
goto LABEL_298; | |
} | |
} | |
} | |
v74 = 0LL; | |
v75 = 0LL; | |
v196 = 0LL; | |
v76 = v202; | |
v77 = v201; | |
v78 = (_DWORD *)(v175 + 8592197128LL); | |
while ( v74 != 16 ) | |
{ | |
*(_DWORD *)v77 = (255 << v74) | (1 << (v75 + 16)); | |
v77 += 4; | |
++v75; | |
*(_DWORD *)v76 = (*v78 >> 16) & 0xFF; | |
v76 += 4; | |
v78 += 0x2000; | |
v74 += 8LL; | |
} | |
v79 = 0; | |
v187 = 4; | |
v80 = 0x3FFFF; | |
do | |
{ | |
for ( kk = 0LL; kk != 2; ++kk ) | |
{ | |
if ( !*((_DWORD *)&v196 + kk) ) | |
sub_1800D1544(v195, kk, *(_DWORD *)&v202[4 * kk], v61, v62); | |
} | |
result = sub_1800D1610(v195); | |
v82 = 0LL; | |
v80 &= v194[2148041623LL] & 0x3FFFF; | |
v83 = 1; | |
while ( v82 != 8 ) | |
{ | |
v84 = *(_DWORD *)((char *)&v196 + v82); | |
if ( !v84 ) | |
{ | |
if ( *(_DWORD *)&v201[v82] & v80 ) | |
{ | |
v84 = 0; | |
} | |
else | |
{ | |
v84 = 1; | |
*(_DWORD *)((char *)&v196 + v82) = 1; | |
*(_DWORD *)&v203[v82] = *(_DWORD *)&v202[v82]; | |
} | |
} | |
v83 &= v84; | |
v82 += 4LL; | |
} | |
if ( v83 == 1 ) | |
{ | |
sub_1800F0620((signed __int64 *)v200, 0, 0x48uLL); | |
sub_1800F0620((signed __int64 *)v199, 0, 0x48uLL); | |
v85 = 0LL; | |
v197 = 0LL; | |
v86 = MEMORY[0x180121584]; | |
while ( v85 != 2 ) | |
{ | |
v198[v85] = *(_DWORD *)&v203[v85 * 4]; | |
++v85; | |
} | |
v190 = v183 + 1656LL * (v182 + v195 * v86); | |
while ( 2 ) | |
{ | |
for ( ll = 0LL; ll != 2; ++ll ) | |
{ | |
if ( !*((_DWORD *)&v197 + ll) ) | |
sub_1800D1544(v195, ll, v198[ll], v61, v62); | |
} | |
result = sub_1800D1610(v195); | |
v88 = 0LL; | |
v89 = v194[2148041623LL] & 0x3FFFF; | |
while ( v88 != 18 ) | |
{ | |
if ( *(_DWORD *)&v200[4 * v88] || !(v89 & (1 << v88)) ) | |
{ | |
*(_DWORD *)&v199[4 * v88] = 0; | |
} | |
else | |
{ | |
v90 = *(_DWORD *)&v199[4 * v88]; | |
if ( v90 == 8 ) | |
{ | |
*(_DWORD *)&v200[4 * v88] = 1; | |
} | |
else | |
{ | |
*(_DWORD *)&v199[4 * v88] = v90 + 1; | |
if ( !v90 ) | |
{ | |
v91 = (unsigned int)v88 >> 3; | |
if ( v88 >= 0x10 ) | |
v91 = v88 - 16; | |
*(_DWORD *)(v190 + 4 * v88) = v198[v91]; | |
} | |
} | |
} | |
++v88; | |
} | |
for ( mm = 0LL; mm != 8; mm += 4LL ) | |
*(_DWORD *)((char *)&v197 + mm) = 1; | |
v93 = 0LL; | |
v94 = 1; | |
while ( v93 != 18 ) | |
{ | |
v95 = (unsigned int)v93 >> 3; | |
v96 = v93 + 4294967280u; | |
if ( v93 >= 0x10 ) | |
v95 = v93 - 16; | |
v97 = *(_DWORD *)&v200[4 * v93]; | |
*((_DWORD *)&v197 + v95) &= v97; | |
v94 &= v97; | |
v93 = v96 - 4294967279LL; | |
} | |
if ( !v94 ) | |
{ | |
for ( nn = 0LL; nn != 2; ++nn ) | |
{ | |
if ( !*(_DWORD *)((char *)&v197 + nn * 4) ) | |
--v198[nn]; | |
} | |
} | |
v99 = 0LL; | |
while ( v99 <= 1 ) | |
{ | |
v100 = v198[v99]; | |
if ( v100 > 3 * *(_DWORD *)(v192 + 4 * v99) ) | |
{ | |
if ( !v94 ) | |
*(_DWORD *)(92 * v178 + 0x180120B60LL + 4 * v180 + 1812) = 1; | |
goto LABEL_150; | |
} | |
++v99; | |
if ( !(v100 | v94) ) | |
*(_DWORD *)(92 * v178 + 0x180120B60LL + 4 * v180 + 1812) = 1; | |
} | |
if ( !v94 ) | |
continue; | |
break; | |
} | |
LABEL_150: | |
v102 = v192; | |
} | |
else | |
{ | |
v101 = 0LL; | |
v102 = v192; | |
while ( v101 != 2 ) | |
{ | |
if ( !*((_DWORD *)&v196 + v101) ) | |
{ | |
v103 = *(_DWORD *)&v202[4 * v101]; | |
v104 = v187; | |
if ( v103 + v187 > (unsigned int)(3 * *(_DWORD *)(v181 + 4 * v101 + 304)) ) | |
v104 = 1; | |
v187 = v104; | |
*(_DWORD *)&v202[4 * v101] = v104 + v103; | |
} | |
++v101; | |
} | |
} | |
for ( i1 = 0LL; i1 != 8; i1 += 4LL ) | |
{ | |
if ( v79 & 1 || *(_DWORD *)&v202[i1] > (unsigned int)(3 * *(_DWORD *)(v102 + i1)) ) | |
{ | |
v79 = 1; | |
if ( !*(_DWORD *)((char *)&v196 + i1) ) | |
*(_DWORD *)(92 * v178 + 0x180120B60LL + 4 * v180 + 1812) = 1; | |
} | |
else | |
{ | |
v79 = 0; | |
} | |
} | |
} | |
while ( !v83 && (v79 ^ 1) & 1 ); | |
v44 = v180 + 1; | |
v179 += 72LL; | |
v183 += 72LL; | |
v10 = v195; | |
} | |
v138 = 1; | |
v139 = (int *)v174; | |
for ( i2 = v177; i2; --i2 ) | |
{ | |
v141 = *v139; | |
++v139; | |
v138 &= v141; | |
} | |
if ( v138 == 1 ) | |
{ | |
dword_180114568 = 10; | |
MEMORY[0x180115A3C] |= 0x20u; | |
sub_1800CC1BC(15LL); | |
v173 = 1312LL; | |
LABEL_298: | |
sub_1800D489C("%llx:%d", &byte_180101040, -2045261415062956628LL, v173); | |
} | |
if ( MEMORY[0x1801218C8] ) | |
v143 = (int *)6443636128LL; | |
else | |
v143 = (int *)6443636124LL; | |
v142 = v182 + MEMORY[0x180121584] * v10; | |
result = (__int64)sub_1800D0ED0( | |
result, | |
*v143, | |
0x12u, | |
1656LL * v142 + 6443615360LL, | |
1656LL * v142 + 6443608736LL, | |
(int *)(92LL * v142 + 6443635316LL), | |
0LL, | |
0LL, | |
(int *)(4LL * v142 + 6443633724LL), | |
(int *)(4LL * v142 + 6443633532LL)); | |
v12 = v182 + 1; | |
} | |
v18 = (v15 & 0xFFFF0000 | (unsigned __int8)(MEMORY[0x1801218CC] / 2 - 6)) & 0xFFFF00FF | ((unsigned __int8)(MEMORY[0x1801218D0] / 2 - 2) << 8); | |
v17 = v194; | |
v19 = 2148041602LL; | |
goto LABEL_9; | |
} | |
for ( i3 = 0LL; (unsigned int)i3 < MEMORY[0x18012157C]; i3 = (unsigned int)(i3 + 1) ) | |
{ | |
v145 = 0LL; | |
v146 = *(unsigned int *)(4LL * (unsigned int)(MEMORY[0x180121584] * i3) + 0x180120B7CLL); | |
v147 = 1656LL * (unsigned int)(MEMORY[0x180121584] * i3) + 6443615360LL + 72 * v146; | |
v148 = 1656LL * (unsigned int)(MEMORY[0x180121584] * i3) + 6443608736LL + 72 * v146; | |
while ( v145 != 72 ) | |
{ | |
result = sub_1800D14C4(*(_DWORD *)(v148 + v145), *(_DWORD *)(v147 + v145)); | |
*(_DWORD *)&v200[v145] = result; | |
v145 += 4LL; | |
} | |
v149 = 0LL; | |
v150 = v200; | |
while ( v149 != 2 ) | |
{ | |
v151 = *(_DWORD *)v150; | |
v150 += 32; | |
v198[v149] = v151; | |
++v149; | |
} | |
for ( i4 = 0LL; i4 != 18; i4 = v154 - 4294967279LL ) | |
{ | |
v153 = (unsigned int)i4 >> 3; | |
v154 = i4 + 4294967280u; | |
if ( i4 >= 0x10 ) | |
v153 = i4 - 16; | |
v155 = *(_DWORD *)&v200[4 * i4]; | |
if ( v198[v153] > v155 ) | |
v155 = v198[v153]; | |
v198[v153] = v155; | |
} | |
for ( i5 = 0LL; i5 != 18; ++i5 ) | |
{ | |
v157 = (unsigned int)i5 >> 3; | |
if ( i5 >= 0x10 ) | |
v157 = i5 - 16; | |
*(_DWORD *)&v199[4 * i5] = v198[v157] - *(_DWORD *)&v200[4 * i5]; | |
} | |
v158 = 0LL; | |
*(_QWORD *)&v193 = 4 * v146 + 6443636412LL; | |
*((_QWORD *)&v193 + 1) = 4 * v146 + 6443636320LL; | |
while ( v158 <= 1 ) | |
{ | |
v159 = v198[v158]; | |
if ( v159 & 0x80000000 ) | |
{ | |
v160 = i3; | |
v161 = v158; | |
LOWORD(v162) = 0; | |
} | |
else | |
{ | |
v160 = i3; | |
v161 = v158; | |
v162 = v198[v158]; | |
} | |
v163 = sub_1800D1704(v160, v161, v162, a9, a10); | |
v164 = 0LL; | |
v165 = 8 * v158; | |
while ( v164 <= 7 ) | |
{ | |
v166 = *(_DWORD *)&v199[4 * (v164 + v165)]; | |
if ( v159 & 0x80000000 ) | |
{ | |
v166 -= v159; | |
*(_DWORD *)&v199[4 * (v164 + v165)] = v166; | |
} | |
*(_DWORD *)((((unsigned int)((_DWORD)i3 << 18) + 8592195584LL + (v158 << 15)) | 0x428) + 4 * v164) = v166 | 0x100; | |
v163 = sub_1800E1188(v163); | |
v167 = v163; | |
while ( 1 ) | |
{ | |
v163 = sub_1800E1188(v163); | |
if ( !(*(_DWORD *)((((unsigned int)((_DWORD)i3 << 18) + 8592195584LL + (v158 << 15)) | 0x428) + 4 * v164) & 0x100) ) | |
break; | |
if ( (unsigned __int64)(v163 - v167) > 0xF423F ) | |
{ | |
v173 = 3819LL; | |
goto LABEL_298; | |
} | |
} | |
++v164; | |
v159 = v198[v158]; | |
} | |
v168 = *(_DWORD *)&v199[4 * (v158 + 16)]; | |
if ( v159 & 0x80000000 ) | |
{ | |
v168 -= v159; | |
*(_DWORD *)&v199[4 * (v158 + 16)] = v168; | |
} | |
*(_DWORD *)(((unsigned int)((_DWORD)i3 << 18) + 8592162816LL + (++v158 << 15)) | 0x44C) = v168 | 0x100; | |
v169 = sub_1800E1188(v163); | |
v170 = v169; | |
while ( 1 ) | |
{ | |
v169 = sub_1800E1188(v169); | |
if ( !(*(_DWORD *)(((unsigned int)((_DWORD)i3 << 18) + 8592162816LL + (v158 << 15)) | 0x44C) & 0x100) ) | |
break; | |
if ( (unsigned __int64)(v169 - v170) > 0xF423F ) | |
{ | |
v173 = 3832LL; | |
goto LABEL_298; | |
} | |
} | |
v171 = (int *)*((_QWORD *)&v193 + 1); | |
if ( MEMORY[0x1801218C8] ) | |
v171 = (int *)v193; | |
result = sub_1800CC168(i3, *v171, MEMORY[0x1801218C8]); | |
} | |
if ( !MEMORY[0x1801218C8] ) | |
{ | |
v172 = *(_DWORD *)((unsigned int)((_DWORD)i3 << 18) + 0x200220F1CLL); | |
*(_DWORD *)((unsigned int)((_DWORD)i3 << 18) + 0x200220F30LL) = (((unsigned __int16)*(_DWORD *)((unsigned int)((_DWORD)i3 << 18) + 0x200220F1CLL) >> 8) | |
- (unsigned __int8)*(_DWORD *)((unsigned int)((_DWORD)i3 << 18) | |
+ 0x200220F1CLL)) & 0xFF00FFFF | *(_DWORD *)((unsigned int)((_DWORD)i3 << 18) + 0x200220F30LL) & 0xFF00FF00 | (((*(_DWORD *)((unsigned int)((_DWORD)i3 << 18) + 0x200220F1CLL) & 0xFF) - BYTE1(v172)) << 16); | |
} | |
} | |
if ( 5139240511851214385LL != v204 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 1800CF518: write access to const memory at 180114568 has been detected | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
// 180114568: using guessed type int dword_180114568; | |
// 1800CE280: using guessed type char var_B8[72]; | |
// 1800CE280: using guessed type char var_68[8]; | |
// 1800CE280: using guessed type char var_70[8]; | |
// 1800CE280: using guessed type int var_108[2]; | |
// 1800CE280: using guessed type char var_60[8]; | |
// 1800CE280: using guessed type char var_100[72]; | |
//----- (00000001800CF548) ---------------------------------------------------- | |
// write access to const memory has been detected, the output may be wrong! | |
__int64 __fastcall sub_1800CF548(__int64 result) | |
{ | |
unsigned int v1; // w8 | |
unsigned int v2; // w9 | |
unsigned int v3; // w12 | |
__int64 v4; // x19 | |
signed int v5; // w10 | |
signed int v6; // w9 | |
signed int v7; // w8 | |
unsigned __int64 v8; // x25 | |
int v9; // w8 | |
int v10; // w8 | |
__int64 v11; // x0 | |
__int64 v12; // x20 | |
unsigned int i; // w9 | |
__int64 j; // x20 | |
int k; // w20 | |
__int64 l; // x8 | |
int v17; // w21 | |
signed int v18; // w20 | |
__int64 m; // x22 | |
int v20; // w2 | |
int n; // w8 | |
signed int v22; // w10 | |
unsigned __int64 v23; // x8 | |
int v24; // w9 | |
__int64 v25; // x8 | |
_DWORD *v26; // x9 | |
int v27; // w23 | |
unsigned int v28; // w22 | |
signed int v29; // w20 | |
__int64 ii; // x21 | |
int v31; // w2 | |
int jj; // w8 | |
signed int v33; // w10 | |
unsigned __int64 v34; // x8 | |
int v35; // w9 | |
__int64 kk; // x8 | |
__int64 v37; // x8 | |
signed int v38; // w20 | |
int v39; // w11 | |
_DWORD *v40; // x9 | |
bool v41; // w23 | |
signed int v42; // w21 | |
unsigned __int64 ll; // x8 | |
__int64 mm; // x22 | |
int v45; // w2 | |
__int64 nn; // x22 | |
int v47; // w2 | |
int i1; // w8 | |
signed int v49; // w10 | |
__int64 i2; // x9 | |
signed int v51; // w10 | |
signed int v52; // w9 | |
signed int v53; // w8 | |
__int64 v54; // x20 | |
int v55; // w8 | |
unsigned int v56; // w12 | |
unsigned int v57; // w8 | |
__int64 i3; // x19 | |
__int64 v59; // x8 | |
unsigned int v60; // w9 | |
signed __int64 v61; // x10 | |
unsigned int v62; // w12 | |
__int64 v63; // x8 | |
unsigned int v64; // w23 | |
__int64 i4; // x20 | |
int v66; // w8 | |
signed __int64 v67; // x8 | |
unsigned int v68; // [xsp+1Ch] [xbp-94h] | |
unsigned int v69; // [xsp+20h] [xbp-90h] | |
int v70; // [xsp+24h] [xbp-8Ch] | |
int v71; // [xsp+24h] [xbp-8Ch] | |
signed __int64 v72; // [xsp+28h] [xbp-88h] | |
unsigned int v73; // [xsp+3Ch] [xbp-74h] | |
char v74[8]; // [xsp+4Ch] [xbp-64h] | |
unsigned int v75; // [xsp+54h] [xbp-5Ch] | |
__int64 v76; // [xsp+58h] [xbp-58h] | |
v1 = 0; | |
v2 = 0; | |
v76 = 5139240511851214385LL; | |
while ( v2 < MEMORY[0x18012157C] ) | |
{ | |
*(_DWORD *)(v1 + 0x200220B08LL) = (MEMORY[0x1801218B4] << 8) | (MEMORY[0x1801218B0] << 16) | MEMORY[0x1801218B8]; | |
++v2; | |
v1 += 0x40000; | |
} | |
v3 = 0; | |
v4 = 0LL; | |
while ( (unsigned int)v4 < MEMORY[0x180121580] ) | |
{ | |
v72 = v3 + 8592197380LL; | |
if ( MEMORY[0x1801218D0] == 26 ) | |
v5 = 190840832; | |
else | |
v5 = 188743680; | |
if ( MEMORY[0x1801218D0] == 12 ) | |
v6 = 77594624; | |
else | |
v6 = 75497472; | |
if ( MEMORY[0x1801218C8] ) | |
v7 = v6; | |
else | |
v7 = v5; | |
v8 = (unsigned int)((_DWORD)v4 << 18); | |
*(_DWORD *)(v8 + 8592165632LL) = v7 | 0x1600A6; | |
v9 = *(_DWORD *)((unsigned int)v8 + 0x200238138LL); | |
v68 = v3; | |
if ( MEMORY[0x1801218C8] == 3 ) | |
{ | |
*(_DWORD *)((unsigned int)((_DWORD)v4 << 18) + 0x2002380C8LL) = *(_DWORD *)(v8 + 0x2002380C8LL) | 0x80000; | |
v10 = v9 | 0x80000; | |
} | |
else if ( MEMORY[0x1801218C8] == 1 ) | |
{ | |
*(_DWORD *)((unsigned int)((_DWORD)v4 << 18) + 0x2002380C8LL) = *(_DWORD *)(v8 + 0x2002380C8LL) | 0x20000; | |
v10 = v9 | 0x20000; | |
} | |
else | |
{ | |
if ( MEMORY[0x1801218C8] ) | |
goto LABEL_21; | |
*(_DWORD *)((unsigned int)((_DWORD)v4 << 18) + 0x2002380C8LL) = *(_DWORD *)(v8 + 0x2002380C8LL) | 0x10000; | |
v10 = v9 | 0x10000; | |
} | |
*(_DWORD *)((unsigned int)((_DWORD)v4 << 18) + 0x200238138LL) = v10; | |
LABEL_21: | |
*(_DWORD *)((unsigned int)((_DWORD)v4 << 18) + 0x200220B0CLL) = *(_DWORD *)((unsigned int)((_DWORD)v4 << 18) | |
+ 0x200220B0CLL) & 0xFFFFFF0F | 16 * MEMORY[0x1801218C4] | 1; | |
v11 = sub_1800E1188(result); | |
v12 = v11; | |
while ( 1 ) | |
{ | |
v11 = sub_1800E1188(v11); | |
if ( !(*(_DWORD *)((unsigned int)((_DWORD)v4 << 18) + 0x200220B0CLL) & 1) ) | |
break; | |
if ( (unsigned __int64)(v11 - v12) > 0xF423F ) | |
{ | |
v67 = 2055LL; | |
goto LABEL_168; | |
} | |
} | |
for ( i = 0; i < MEMORY[0x180121584]; i = v73 + 1 ) | |
{ | |
v73 = i; | |
sub_1800CBE44(v4, 0, 0); | |
for ( j = 0LL; j != 2; ++j ) | |
sub_1800CBEE8(v4, j, *(_DWORD *)(8LL * (unsigned int)v4 + 0x180120C4CLL + 4 * j), 0); | |
if ( MEMORY[0x1801218C8] == 1 ) | |
{ | |
for ( k = 0; k != 2; ++k ) | |
sub_1800D19D8(v4, 1 << k, 0, 1); | |
} | |
for ( l = 0LL; l != 8; l += 4LL ) | |
*(_DWORD *)&v74[l] = *(_DWORD *)(8LL * (unsigned int)v4 + 6443633740LL + l); | |
v17 = 0; | |
v18 = 3; | |
while ( 2 ) | |
{ | |
sub_1800D17D0(v4, v17); | |
for ( m = 0LL; m != 2; ++m ) | |
{ | |
if ( !((1 << m) & v18) ) | |
{ | |
v20 = *(_DWORD *)&v74[4 * m] + 1; | |
*(_DWORD *)&v74[4 * m] = v20; | |
sub_1800D1870(v4, m, v20); | |
} | |
} | |
sub_1800D1924(v4, v18); | |
for ( n = 0; n != 2; ++n ) | |
{ | |
if ( *(_DWORD *)((unsigned int)((_DWORD)v4 << 18) + 0x200220B10LL) & 3 & (1 << n) ) | |
v22 = -1; | |
else | |
v22 = !(1 << n); | |
v18 &= v22; | |
} | |
if ( v17 == 47 ) | |
{ | |
if ( v18 ) | |
{ | |
dword_180114568 = 10; | |
MEMORY[0x180115A3C] |= 0x20u; | |
sub_1800CC1BC(15LL); | |
v67 = 3941LL; | |
goto LABEL_168; | |
} | |
} | |
else | |
{ | |
v23 = 0LL; | |
while ( v23 <= 1 ) | |
{ | |
v24 = *(_DWORD *)&v74[4 * v23++]; | |
if ( v24 == 127 ) | |
{ | |
if ( v18 ) | |
{ | |
dword_180114568 = 10; | |
MEMORY[0x180115A3C] |= 0x20u; | |
sub_1800CC1BC(15LL); | |
v67 = 3947LL; | |
goto LABEL_168; | |
} | |
goto LABEL_57; | |
} | |
} | |
++v17; | |
if ( v18 ) | |
continue; | |
} | |
break; | |
} | |
LABEL_57: | |
v25 = 0LL; | |
v70 = *(_DWORD *)((unsigned int)((_DWORD)v4 << 18) + 0x200220800LL); | |
v26 = (_DWORD *)v72; | |
while ( v25 != 8 ) | |
{ | |
*(_DWORD *)&v74[v25] = *v26; | |
v25 += 4LL; | |
v26 += 0x2000; | |
} | |
v27 = MEMORY[0x180121584]; | |
v28 = v73 + MEMORY[0x180121584] * v4; | |
v29 = 3; | |
do | |
{ | |
for ( ii = 0LL; ii != 2; ++ii ) | |
{ | |
if ( (1 << ii) & v29 ) | |
{ | |
v31 = *(_DWORD *)&v74[4 * ii] + 1; | |
*(_DWORD *)&v74[4 * ii] = v31; | |
sub_1800D1870(v4, ii, v31); | |
} | |
} | |
sub_1800D1924(v4, v29); | |
for ( jj = 0; jj != 2; ++jj ) | |
{ | |
if ( *(_DWORD *)((unsigned int)((_DWORD)v4 << 18) + 0x200220B10LL) & 3 & (1 << jj) ) | |
v33 = !(1 << jj); | |
else | |
v33 = -1; | |
v29 &= v33; | |
} | |
v34 = 0LL; | |
while ( v34 <= 1 ) | |
{ | |
v35 = *(_DWORD *)&v74[4 * v34++]; | |
if ( v35 == 127 ) | |
{ | |
if ( !v29 ) | |
goto LABEL_79; | |
dword_180114568 = 10; | |
MEMORY[0x180115A3C] |= 0x20u; | |
sub_1800CC1BC(15LL); | |
v67 = 4003LL; | |
LABEL_168: | |
sub_1800D489C("%llx:%d", &byte_180101040, -2045261415062956628LL, v67); | |
} | |
} | |
} | |
while ( v29 ); | |
LABEL_79: | |
for ( kk = 0LL; kk != 8; kk += 4LL ) | |
*(_DWORD *)(12LL * (v73 + (_DWORD)v4 * v27) + 6443633852LL + kk) = *(_DWORD *)&v74[kk]; | |
v37 = 0LL; | |
*(_DWORD *)(12LL * v28 + 0x180120CC4LL) = v70; | |
v38 = *(_DWORD *)((unsigned int)((_DWORD)v4 << 18) + 0x200220800LL); | |
v39 = MEMORY[0x180121584]; | |
v40 = (_DWORD *)v72; | |
while ( v37 != 8 ) | |
{ | |
*(_DWORD *)&v74[v37] = *v40 + 9; | |
v37 += 4LL; | |
v40 += 0x2000; | |
} | |
v41 = 0; | |
v69 = v73 + v39 * v4; | |
v71 = v39; | |
v42 = 3; | |
while ( 1 ) | |
{ | |
for ( ll = 0LL; ll <= 1 && !v41; ++ll ) | |
{ | |
if ( *(_DWORD *)&v74[4 * ll] ) | |
v41 = 0; | |
else | |
v41 = ((1 << ll) & v42) != 0; | |
} | |
if ( v41 ) | |
{ | |
sub_1800D17D0(v4, ++v38); | |
for ( mm = 0LL; mm != 2; ++mm ) | |
{ | |
if ( !((1 << mm) & v42) ) | |
{ | |
v45 = *(_DWORD *)&v74[4 * mm] + 1; | |
*(_DWORD *)&v74[4 * mm] = v45; | |
sub_1800D1870(v4, mm, v45); | |
} | |
} | |
} | |
else | |
{ | |
for ( nn = 0LL; nn != 2; ++nn ) | |
{ | |
if ( (1 << nn) & v42 ) | |
{ | |
v47 = *(_DWORD *)&v74[4 * nn] - 1; | |
*(_DWORD *)&v74[4 * nn] = v47; | |
sub_1800D1870(v4, nn, v47); | |
} | |
} | |
} | |
v11 = sub_1800D1924(v4, v42); | |
for ( i1 = 0; i1 != 2; ++i1 ) | |
{ | |
if ( *(_DWORD *)((unsigned int)((_DWORD)v4 << 18) + 0x200220B10LL) & 3 & (1 << i1) ) | |
v49 = -1; | |
else | |
v49 = !(1 << i1); | |
v42 &= v49; | |
} | |
if ( (v41 && v38 == 47) == 1 ) | |
break; | |
if ( !v42 ) | |
goto LABEL_116; | |
} | |
if ( v42 ) | |
{ | |
dword_180114568 = 10; | |
MEMORY[0x180115A3C] |= 0x20u; | |
sub_1800CC1BC(15LL); | |
v67 = 4085LL; | |
goto LABEL_168; | |
} | |
v38 = 47; | |
LABEL_116: | |
for ( i2 = 0LL; i2 != 8; i2 += 4LL ) | |
*(_DWORD *)(12LL * (v73 + (_DWORD)v4 * v71) + 6443633900LL + i2) = *(_DWORD *)&v74[i2]; | |
*(_DWORD *)(12LL * v69 + 0x180120CF4LL) = v38; | |
} | |
if ( MEMORY[0x1801218D0] == 26 ) | |
v51 = 190840832; | |
else | |
v51 = 188743680; | |
if ( MEMORY[0x1801218D0] == 12 ) | |
v52 = 77594624; | |
else | |
v52 = 75497472; | |
if ( MEMORY[0x1801218C8] ) | |
v53 = v52; | |
else | |
v53 = v51; | |
*(_DWORD *)((unsigned int)((_DWORD)v4 << 18) + 0x200220B04LL) = v53 | 0x160086; | |
*(_DWORD *)((unsigned int)((_DWORD)v4 << 18) + 0x200220B0CLL) = *(_DWORD *)((unsigned int)((_DWORD)v4 << 18) | |
+ 0x200220B0CLL) & 0xFFFFFF07 | 16 * MEMORY[0x1801218C4] | 8; | |
result = sub_1800E1188(v11); | |
v54 = result; | |
while ( 1 ) | |
{ | |
result = sub_1800E1188(result); | |
if ( !(*(_DWORD *)((unsigned int)((_DWORD)v4 << 18) + 0x200220B0CLL) & 8) ) | |
break; | |
if ( (unsigned __int64)(result - v54) > 0xF423F ) | |
{ | |
v67 = 2104LL; | |
goto LABEL_168; | |
} | |
} | |
v55 = *(_DWORD *)((unsigned int)((_DWORD)v4 << 18) + 0x200238138LL); | |
if ( MEMORY[0x1801218C8] == 3 ) | |
{ | |
*(_DWORD *)((unsigned int)((_DWORD)v4 << 18) + 0x2002380C8LL) &= 0xFFF7FFFF; | |
*(_DWORD *)((unsigned int)((_DWORD)v4 << 18) + 0x200238138LL) = v55 & 0xFFF7FFFF; | |
v56 = v68; | |
} | |
else | |
{ | |
v56 = v68; | |
if ( MEMORY[0x1801218C8] == 1 ) | |
{ | |
*(_DWORD *)((unsigned int)((_DWORD)v4 << 18) + 0x2002380C8LL) &= 0xFFFDFFFF; | |
v57 = v55 & 0xFFFDFFFF; | |
} | |
else | |
{ | |
if ( MEMORY[0x1801218C8] ) | |
goto LABEL_142; | |
*(_DWORD *)((unsigned int)((_DWORD)v4 << 18) + 0x2002380C8LL) &= 0xFFFEFFFF; | |
v57 = v55 & 0xFFFEFFFF; | |
} | |
*(_DWORD *)((unsigned int)((_DWORD)v4 << 18) + 0x200238138LL) = v57; | |
} | |
LABEL_142: | |
v4 = (unsigned int)(v4 + 1); | |
v3 = v56 + 0x40000; | |
} | |
for ( i3 = 0LL; (unsigned int)i3 < MEMORY[0x18012157C]; i3 = (unsigned int)(i3 + 1) ) | |
{ | |
v59 = 0LL; | |
v60 = MEMORY[0x180121584]; | |
v61 = 12LL * (unsigned int)(MEMORY[0x180121584] * i3 + 1) + 6443633852LL; | |
while ( v59 != 12 ) | |
{ | |
v62 = (unsigned int)(*(_DWORD *)(12LL * v60 * (unsigned int)i3 + 6443633852LL + v59 + 48) | |
+ *(_DWORD *)(12LL * v60 * (unsigned int)i3 + 6443633852LL + v59)) >> 1; | |
if ( v60 >= 2 ) | |
v62 = (v62 + ((unsigned int)(*(_DWORD *)(v61 + v59 + 48) + *(_DWORD *)(v61 + v59)) >> 1)) >> 1; | |
*(_DWORD *)&v74[v59] = v62; | |
v59 += 4LL; | |
} | |
v63 = 0LL; | |
v64 = v75; | |
while ( v63 != 8 ) | |
{ | |
if ( *(_DWORD *)&v74[v63] < v64 ) | |
v64 = *(_DWORD *)&v74[v63]; | |
v63 += 4LL; | |
} | |
for ( i4 = 0LL; i4 != 3; ++i4 ) | |
{ | |
v66 = *(_DWORD *)&v74[4 * i4]; | |
*(_DWORD *)&v74[4 * i4] = v66 - v64; | |
if ( i4 == 2 ) | |
result = sub_1800CBE44(i3, v66 - v64, 0); | |
else | |
result = sub_1800CBEE8(i3, i4, v66 - v64, 0); | |
} | |
} | |
if ( 5139240511851214385LL != v76 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 1800CFE04: write access to const memory at 180114568 has been detected | |
// 1800CFE3C: write access to const memory at 180114568 has been detected | |
// 1800CFE74: write access to const memory at 180114568 has been detected | |
// 1800CFED0: write access to const memory at 180114568 has been detected | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
// 180114568: using guessed type int dword_180114568; | |
// 1800CF548: using guessed type char var_64[8]; | |
//----- (00000001800CFF00) ---------------------------------------------------- | |
// write access to const memory has been detected, the output may be wrong! | |
void sub_1800CFF00() | |
{ | |
unsigned int v0; // w10 | |
unsigned int v1; // w11 | |
__int64 v2; // x0 | |
unsigned __int64 i; // x21 | |
unsigned __int64 v4; // x22 | |
__int64 v5; // x0 | |
__int64 v6; // x20 | |
__int64 v7; // x20 | |
unsigned __int64 j; // x23 | |
_DWORD *v9; // x27 | |
__int64 v10; // x20 | |
__int64 v11; // x8 | |
unsigned int v12; // w9 | |
signed __int64 v13; // x9 | |
_DWORD *v14; // x10 | |
unsigned int *v15; // x8 | |
unsigned int v16; // w21 | |
int v17; // w22 | |
int v18; // w23 | |
int v19; // w8 | |
signed int v20; // w23 | |
signed int v21; // w27 | |
signed int v22; // w20 | |
signed int v23; // w21 | |
unsigned int v24; // w22 | |
bool v25; // zf | |
bool v26; // zf | |
bool v27; // zf | |
bool v28; // zf | |
bool v29; // cf | |
__int64 v30; // x0 | |
int v31; // w11 | |
__int64 v32; // x20 | |
signed __int64 v33; // x8 | |
int v34; // w8 | |
__int64 k; // x8 | |
int l; // w20 | |
int v37; // w21 | |
int m; // w22 | |
int n; // w23 | |
int ii; // w23 | |
__int64 v41; // x8 | |
_DWORD *v42; // x9 | |
_DWORD *v43; // x10 | |
int *v44; // x9 | |
signed int v45; // w8 | |
int v46; // t1 | |
int *v47; // x8 | |
int v48; // w1 | |
unsigned int v49; // w8 | |
__int64 jj; // x19 | |
unsigned __int64 v51; // x8 | |
__int64 v52; // x15 | |
signed __int64 v53; // x9 | |
signed __int64 v54; // x10 | |
int v55; // w11 | |
int v56; // w12 | |
__int64 v57; // x8 | |
__int64 *v58; // x9 | |
int v59; // t1 | |
unsigned __int64 kk; // x8 | |
unsigned int v61; // w9 | |
int v62; // w10 | |
int v63; // w2 | |
unsigned __int64 v64; // x21 | |
int v65; // w22 | |
int v66; // w8 | |
__int64 v67; // x28 | |
__int64 v68; // x0 | |
unsigned __int64 ll; // x19 | |
__int64 v70; // x22 | |
int v71; // w8 | |
_DWORD *v72; // x19 | |
__int64 v73; // x0 | |
__int64 v74; // x22 | |
int v75; // w8 | |
int v76; // w9 | |
signed __int64 v77; // x8 | |
unsigned int v78; // [xsp+1Ch] [xbp-134h] | |
unsigned int v79[3]; // [xsp+38h] [xbp-118h] | |
__int64 v80; // [xsp+38h] [xbp-118h] | |
int v81; // [xsp+48h] [xbp-108h] | |
int v82; // [xsp+48h] [xbp-108h] | |
unsigned int v83; // [xsp+50h] [xbp-100h] | |
unsigned int v84; // [xsp+54h] [xbp-FCh] | |
int v85; // [xsp+58h] [xbp-F8h] | |
__int64 v86; // [xsp+58h] [xbp-F8h] | |
__int64 v87; // [xsp+60h] [xbp-F0h] | |
unsigned __int64 v88; // [xsp+60h] [xbp-F0h] | |
__int64 v89; // [xsp+68h] [xbp-E8h] | |
__int64 v90; // [xsp+68h] [xbp-E8h] | |
unsigned int v91; // [xsp+70h] [xbp-E0h] | |
signed __int64 v92; // [xsp+70h] [xbp-E0h] | |
int v93; // [xsp+78h] [xbp-D8h] | |
signed __int64 v94; // [xsp+78h] [xbp-D8h] | |
__int64 v95; // [xsp+78h] [xbp-D8h] | |
unsigned int v96; // [xsp+80h] [xbp-D0h] | |
signed __int64 v97; // [xsp+80h] [xbp-D0h] | |
int v98; // [xsp+80h] [xbp-D0h] | |
__int64 v99; // [xsp+88h] [xbp-C8h] | |
__int64 v100; // [xsp+90h] [xbp-C0h] | |
__int64 v101; // [xsp+98h] [xbp-B8h] | |
__int64 v102; // [xsp+A0h] [xbp-B0h] | |
int v103; // [xsp+A8h] [xbp-A8h] | |
__int64 v104; // [xsp+B0h] [xbp-A0h] | |
__int64 v105; // [xsp+B8h] [xbp-98h] | |
__int64 v106; // [xsp+C0h] [xbp-90h] | |
__int64 v107; // [xsp+C8h] [xbp-88h] | |
int v108; // [xsp+D0h] [xbp-80h] | |
__int64 v109; // [xsp+F8h] [xbp-58h] | |
v78 = 0; | |
v0 = 0; | |
v109 = 5139240511851214385LL; | |
while ( v0 < MEMORY[0x180121580] ) | |
{ | |
v1 = 0; | |
v87 = v0 << 18; | |
v89 = (unsigned __int8)v0; | |
v83 = v0; | |
while ( v1 < MEMORY[0x180121584] ) | |
{ | |
v84 = v1; | |
v93 = (unsigned __int8)v1; | |
v2 = sub_1800D0B88((unsigned __int8)v0, v1); | |
for ( i = 0LL; i <= 1; ++i ) | |
{ | |
v4 = v87 + (i << 15); | |
*(_DWORD *)(v4 + 8592196640LL) = 256; | |
v5 = sub_1800E1188(v2); | |
v6 = v5; | |
while ( 1 ) | |
{ | |
v5 = sub_1800E1188(v5); | |
if ( !(*(_DWORD *)(v87 + (i << 15) + 8592196640LL) & 0x100) ) | |
break; | |
if ( (unsigned __int64)(v5 - v6) > 0xF423F ) | |
{ | |
v77 = 1563LL; | |
goto LABEL_186; | |
} | |
} | |
*(_DWORD *)(v87 + (i << 15) + 8592196644LL) = 256; | |
v2 = sub_1800E1188(v5); | |
v7 = v2; | |
while ( 1 ) | |
{ | |
v2 = sub_1800E1188(v2); | |
if ( !(*(_DWORD *)(v87 + (i << 15) + 8592196644LL) & 0x100) ) | |
break; | |
if ( (unsigned __int64)(v2 - v7) > 0xF423F ) | |
{ | |
v77 = 1569LL; | |
goto LABEL_186; | |
} | |
} | |
for ( j = 0LL; j <= 7; ++j ) | |
{ | |
v9 = (_DWORD *)((v87 + (i << 15) + 8592196608LL) | 4 * j); | |
*v9 = 256; | |
v2 = sub_1800E1188(v2); | |
v10 = v2; | |
while ( 1 ) | |
{ | |
v2 = sub_1800E1188(v2); | |
if ( !(*v9 & 0x100) ) | |
break; | |
if ( (unsigned __int64)(v2 - v10) > 0xF423F ) | |
{ | |
v77 = 1576LL; | |
goto LABEL_186; | |
} | |
} | |
} | |
} | |
v11 = 0LL; | |
v12 = v84 + MEMORY[0x180121584] * v83; | |
*(_DWORD *)(4LL * v12 + 0x180120BBCLL) = *(_DWORD *)(v87 + 8592164864LL) & 0xFF; | |
v13 = 8LL * v12 + 6443633772LL; | |
v14 = (_DWORD *)(v78 + 8592197380LL); | |
while ( v11 != 8 ) | |
{ | |
*(_DWORD *)(v13 + v11) = *v14 & 0xFF; | |
v11 += 4LL; | |
v14 += 0x2000; | |
} | |
v108 = 0; | |
v106 = 0LL; | |
v107 = 0LL; | |
v104 = 0LL; | |
v105 = 0LL; | |
v103 = 0; | |
v101 = 0LL; | |
v102 = 0LL; | |
v99 = 0LL; | |
v100 = 0LL; | |
if ( MEMORY[0x1801218C8] ) | |
v15 = (unsigned int *)6443636140LL; | |
else | |
v15 = (unsigned int *)6443636136LL; | |
v16 = *v15; | |
sub_1800D0B88((unsigned __int8)v83, v84); | |
v17 = MEMORY[0x180121584]; | |
v18 = MEMORY[0x180121584] * v89 + (unsigned __int8)v84; | |
sub_1800D1A24(3, 0); | |
if ( MEMORY[0x1801215B0] ) | |
{ | |
v19 = MEMORY[0x1801218C8]; | |
if ( !MEMORY[0x1801218C8] ) | |
{ | |
sub_1800D1B54((unsigned __int8)v83, (unsigned __int8)v84, MEMORY[0x180121740]); | |
v19 = MEMORY[0x1801218C8]; | |
} | |
v81 = v18; | |
v85 = v17; | |
v91 = v16; | |
if ( v19 == 1 ) | |
sub_1800D1B54((unsigned __int8)v83, (unsigned __int8)v84, MEMORY[0x18012177C]); | |
sub_1800D1BF0(0LL); | |
v20 = 0; | |
v21 = 0; | |
v22 = 0; | |
v23 = 0; | |
v24 = 0; | |
v79[0] = 3 * *(_DWORD *)(12LL * (unsigned int)v89 + 0x180120C8CLL); | |
v96 = 5 * *(_DWORD *)(12LL * (unsigned int)v89 + 0x180120C8CLL); | |
while ( 1 ) | |
{ | |
if ( v24 >= v96 ) | |
{ | |
v18 = v81; | |
goto LABEL_71; | |
} | |
if ( sub_1800D1C50(1, v24, 1u) ) | |
v25 = v20 == 0; | |
else | |
v25 = 0; | |
if ( v25 ) | |
v20 = 1; | |
if ( sub_1800D1C50(2, v24, 1u) ) | |
v26 = v21 == 0; | |
else | |
v26 = 0; | |
if ( v26 ) | |
v21 = 1; | |
if ( (sub_1800D1C50(1, v24, 1u) == 0) & (unsigned __int8)v20 ) | |
v27 = v22 == 0; | |
else | |
v27 = 0; | |
if ( v27 ) | |
v22 = 1; | |
if ( (sub_1800D1C50(2, v24, 1u) == 0) & (unsigned __int8)v21 ) | |
v28 = v23 == 0; | |
else | |
v28 = 0; | |
if ( v28 ) | |
v23 = 1; | |
if ( v21 & v20 ) | |
break; | |
v24 += 4; | |
} | |
v18 = v81; | |
while ( v24 < v96 && (!v22 || !v23) ) | |
{ | |
if ( !(v22 | sub_1800D1C50(1, v24, 1u)) ) | |
v22 = 1; | |
if ( !(v23 | sub_1800D1C50(2, v24, 1u)) ) | |
v23 = 1; | |
v24 += 4; | |
} | |
LABEL_71: | |
if ( v24 >= v96 ) | |
{ | |
sub_1800D1BF0(2LL); | |
v16 = v91; | |
v17 = v85; | |
} | |
else | |
{ | |
v29 = v24 >= v79[0]; | |
v16 = v91; | |
v17 = v85; | |
if ( v29 ) | |
sub_1800D1BF0(1LL); | |
} | |
} | |
v30 = sub_1800D1CDC(v89, 3, 0); | |
v80 = v18; | |
v31 = v93 + v89 * v17; | |
v32 = v16; | |
v94 = 1440LL * v31 + 6443627744LL; | |
v82 = v31; | |
v92 = 1440LL * v31 + 6443621984LL; | |
v33 = 0LL; | |
v86 = v16; | |
while ( v33 != v32 ) | |
{ | |
v97 = v33; | |
MEMORY[0x180120B60] = v33; | |
v34 = MEMORY[0x1801218C8]; | |
if ( !MEMORY[0x1801218C8] ) | |
{ | |
v30 = sub_1800D1B54((unsigned __int8)v83, (unsigned __int8)v84, *(_DWORD *)(4 * v97 + 0x180121740LL)); | |
v34 = MEMORY[0x1801218C8]; | |
} | |
if ( v34 == 1 ) | |
v30 = sub_1800D1B54((unsigned __int8)v83, (unsigned __int8)v84, *(_DWORD *)(4 * v97 + 0x18012177CLL)); | |
for ( k = 0LL; k != 36; k += 2LL ) | |
{ | |
*(_WORD *)((char *)&v99 + k) = 0; | |
*(_WORD *)((char *)&v104 + k) = 0; | |
} | |
for ( l = 0; l != 2; ++l ) | |
{ | |
if ( l ) | |
v37 = 2; | |
else | |
v37 = 1; | |
for ( m = -12; ; m += 4 ) | |
{ | |
if ( m + 4 > 248 ) | |
{ | |
m += 4; | |
goto LABEL_97; | |
} | |
if ( sub_1800D1C50(v37, m + 4, 1u) ) | |
break; | |
} | |
while ( m <= 248 ) | |
{ | |
if ( sub_1800D1C50(v37, m, 4u) ) | |
goto LABEL_98; | |
++m; | |
} | |
LABEL_97: | |
*(_DWORD *)(80 * v89 + 0x180120B60LL + 4 * v97 + 1492) = 1; | |
LABEL_98: | |
for ( n = m; n <= 303 && !sub_1800D1D78(v37, n, 1); n += 4 ) | |
; | |
if ( n <= m ) | |
*(_DWORD *)(80 * v89 + 0x180120B60LL + 4 * v97 + 1492) = 1; | |
sub_1800D1E0C(v37, n, -1, -248, (__int64)&v104); | |
for ( ii = m; !((ii + 248 < 0) ^ __OFADD__(ii, 248)) && !sub_1800D1D78(v37, ii, -1); ii -= 4 ) | |
; | |
if ( ii > m ) | |
*(_DWORD *)(80 * v89 + 0x180120B60LL + 4 * v97 + 1492) = 1; | |
v30 = sub_1800D1E0C(v37, ii, 1, 248, (__int64)&v99); | |
} | |
v41 = 0LL; | |
v42 = (_DWORD *)v92; | |
v43 = (_DWORD *)v94; | |
v32 = v86; | |
while ( v41 != 36 ) | |
{ | |
*v42 = *(signed __int16 *)((char *)&v104 + v41); | |
++v42; | |
*v43 = *(signed __int16 *)((char *)&v99 + v41); | |
++v43; | |
v41 += 2LL; | |
} | |
v33 = v97 + 1; | |
v94 += 72LL; | |
v92 += 72LL; | |
} | |
v44 = (int *)(80LL * v82 + 6443634996LL); | |
v45 = 1; | |
while ( v32 ) | |
{ | |
v46 = *v44; | |
++v44; | |
v45 &= v46; | |
--v32; | |
} | |
if ( v45 == 1 ) | |
{ | |
dword_180114568 = 10; | |
MEMORY[0x180115A3C] |= 0x20u; | |
sub_1800CC1BC(15LL); | |
v77 = 4849LL; | |
LABEL_186: | |
sub_1800D489C("%llx:%d", &byte_180101040, -2045261415062956628LL, v77); | |
} | |
if ( MEMORY[0x1801218C8] ) | |
v47 = (int *)6443636140LL; | |
else | |
v47 = (int *)6443636136LL; | |
v48 = *v47; | |
v49 = (unsigned __int8)v84 + MEMORY[0x180121584] * v89; | |
sub_1800D0ED0( | |
v30, | |
v48, | |
0x12u, | |
1440LL * v49 + 6443621984LL, | |
1440LL * v49 + 6443627744LL, | |
(int *)(80LL * v49 + 6443634996LL), | |
0LL, | |
0LL, | |
(int *)(4LL * v49 + 6443633692LL), | |
(int *)(4LL * v49 + 6443633548LL)); | |
sub_1800D1A24(1, *(_DWORD *)(4 * v80 + 0x180120C1CLL)); | |
sub_1800D1A24(2, *(_DWORD *)(4 * v80 + 0x180120C1CLL)); | |
v0 = v83; | |
v1 = v84 + 1; | |
} | |
++v0; | |
v78 += 0x40000; | |
} | |
for ( jj = 0LL; (unsigned int)jj < MEMORY[0x18012157C]; jj = (unsigned int)(jj + 1) ) | |
{ | |
v51 = 0LL; | |
v52 = *(unsigned int *)(4LL * (unsigned int)(MEMORY[0x180121584] * jj) + 0x180120B8CLL); | |
v53 = 1440LL * (unsigned int)(MEMORY[0x180121584] * jj) + 6443621984LL + 72 * v52; | |
v54 = 1440LL * (unsigned int)(MEMORY[0x180121584] * jj) + 6443627744LL + 72 * v52; | |
while ( v51 < 0x12 ) | |
{ | |
v55 = *(_DWORD *)(v53 + 4 * v51); | |
v56 = *(_DWORD *)(v54 + 4 * v51); | |
if ( v55 < v56 ) | |
{ | |
dword_180114568 = 10; | |
MEMORY[0x180115A3C] |= 0x20u; | |
sub_1800CC1BC(15LL); | |
v77 = 5081LL; | |
goto LABEL_186; | |
} | |
*((_DWORD *)&v104 + v51++) = (v56 + v55) / 2; | |
} | |
v57 = 0LL; | |
v58 = &v104; | |
while ( v57 != 8 ) | |
{ | |
v59 = *(_DWORD *)v58; | |
v58 += 4; | |
*(_DWORD *)((char *)&v99 + v57) = v59; | |
v57 += 4LL; | |
} | |
for ( kk = 0LL; kk != 18; ++kk ) | |
{ | |
v61 = (unsigned int)kk >> 3; | |
if ( kk >= 0x10 ) | |
v61 = kk - 16; | |
v62 = *((_DWORD *)&v99 + v61); | |
if ( v62 >= *((_DWORD *)&v104 + kk) ) | |
v62 = *((_DWORD *)&v104 + kk); | |
*((_DWORD *)&v99 + v61) = v62; | |
} | |
v90 = v52; | |
if ( (-(signed int)v99 & ~(-(signed int)v99 >> 31)) <= (-HIDWORD(v99) & ~(-HIDWORD(v99) >> 31)) ) | |
v63 = -HIDWORD(v99) & ~(-HIDWORD(v99) >> 31); | |
else | |
v63 = -(signed int)v99 & ~(-(signed int)v99 >> 31); | |
v95 = (unsigned int)jj; | |
v98 = v63; | |
sub_1800CBE44(jj, *(_DWORD *)(4LL * (unsigned int)jj + 0x180120BBCLL), v63); | |
v64 = 0LL; | |
v88 = (unsigned int)((_DWORD)jj << 18); | |
while ( v64 <= 1 ) | |
{ | |
v65 = *((_DWORD *)&v99 + v64); | |
sub_1800D19D8(jj, 1 << v64, *((_DWORD *)&v99 + v64), 1); | |
if ( v65 <= 0 ) | |
v66 = -v65; | |
else | |
v66 = 0; | |
v67 = jj; | |
v68 = sub_1800CBEE8(jj, v64, *(_DWORD *)(8 * v95 + 0x180120B60LL + 4 * v64 + 268), v98 - v66); | |
for ( ll = 0LL; ll <= 7; ++ll ) | |
{ | |
*(_DWORD *)(((v88 + 8592195584LL + (v64 << 15)) | 0x400) + 4 * ll) = (*((_DWORD *)&v104 + ll + 8 * v64) | |
- *((_DWORD *)&v99 + v64)) | 0x100; | |
v68 = sub_1800E1188(v68); | |
v70 = v68; | |
while ( 1 ) | |
{ | |
v68 = sub_1800E1188(v68); | |
if ( !(*(_DWORD *)(((v88 + 8592195584LL + (v64 << 15)) | 0x400) + 4 * ll) & 0x100) ) | |
break; | |
if ( (unsigned __int64)(v68 - v70) > 0xF423F ) | |
{ | |
v77 = 4993LL; | |
goto LABEL_186; | |
} | |
} | |
} | |
v71 = (*((_DWORD *)&v104 + v64 + 16) - *((_DWORD *)&v99 + v64)) | 0x100; | |
v72 = (_DWORD *)((v88 + 8592162816LL + (++v64 << 15)) | 0x424); | |
*v72 = v71; | |
v73 = sub_1800E1188(v68); | |
v74 = v73; | |
while ( 1 ) | |
{ | |
v73 = sub_1800E1188(v73); | |
if ( !(*(_DWORD *)((v88 + 8592162816LL + (v64 << 15)) | 0x424) & 0x100) ) | |
break; | |
if ( (unsigned __int64)(v73 - v74) > 0xF423F ) | |
{ | |
v77 = 5002LL; | |
goto LABEL_186; | |
} | |
} | |
jj = v67; | |
} | |
v75 = MEMORY[0x1801218C8]; | |
if ( MEMORY[0x1801218C8] == 1 ) | |
{ | |
sub_1800D1B54((unsigned __int8)jj, 0, *(_DWORD *)(4 * v90 + 0x18012177CLL)); | |
v75 = MEMORY[0x1801218C8]; | |
} | |
if ( !v75 ) | |
{ | |
sub_1800D1B54((unsigned __int8)jj, 0, *(_DWORD *)(4 * v90 + 0x180121740LL)); | |
v75 = MEMORY[0x1801218C8]; | |
} | |
if ( v75 ) | |
{ | |
if ( v75 != 1 ) | |
goto LABEL_172; | |
*(_DWORD *)(v88 + 8592166688LL) = *(_DWORD *)(v88 + 8592166692LL) & 0xFFFF00FF | (*(_DWORD *)(4 * v90 | |
+ 0x18012177CLL) << 8); | |
} | |
else | |
{ | |
*(_DWORD *)(v88 + 8592166688LL) = *(_DWORD *)(v88 + 8592166692LL) & 0xFFFFFF00 | *(_DWORD *)(4 * v90 | |
+ 0x180121740LL); | |
} | |
v75 = MEMORY[0x1801218C8]; | |
LABEL_172: | |
if ( v75 ) | |
{ | |
if ( v75 == 1 ) | |
*(_DWORD *)(v88 + 8592032880LL) = *(_DWORD *)(v88 + 8592032880LL) & 0xFFFF00C0 | (*(_DWORD *)(4 * v90 + 0x18012177CLL) << 8) | 0xE; | |
} | |
else | |
{ | |
*(_DWORD *)(v88 + 8592032856LL) = *(_DWORD *)(v88 + 8592032856LL) & 0xFFFF00C0 | (*(_DWORD *)(4 * v90 | |
+ 0x180121740LL) << 8) | 0xE; | |
} | |
if ( MEMORY[0x1801218C8] ) | |
{ | |
if ( MEMORY[0x1801218C8] != 1 ) | |
continue; | |
*(_DWORD *)(v88 + 8592032880LL) = *(_DWORD *)(v88 + 8592032880LL) & 0xFFFF00C0 | (*(_DWORD *)(4 * v90 | |
+ 0x18012177CLL) << 8) | 0xE; | |
} | |
else | |
{ | |
*(_DWORD *)(v88 + 8592032856LL) = *(_DWORD *)(v88 + 8592032856LL) & 0xFFFF00C0 | (*(_DWORD *)(4 * v90 | |
+ 0x180121740LL) << 8) | 0xE; | |
} | |
if ( !MEMORY[0x1801218C8] ) | |
{ | |
v76 = *(_DWORD *)(v88 + 8592166692LL); | |
*(_DWORD *)(v88 + 8592166704LL) = *(_DWORD *)(v88 + 8592166704LL) & 0xFF00FF | ((unsigned __int8)(*(unsigned int *)(v88 + 8592166692LL) - BYTE1(v76)) << 24) | ((unsigned __int16)(((unsigned __int16)*(_DWORD *)(v88 + 8592166692LL) >> 8) - (unsigned __int8)*(_DWORD *)(v88 + 8592166692LL)) << 8); | |
} | |
} | |
if ( 5139240511851214385LL != v109 ) | |
sub_1800D4A5C(); | |
} | |
// 1800D0B20: write access to const memory at 180114568 has been detected | |
// 1800D0B58: write access to const memory at 180114568 has been detected | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
// 180114568: using guessed type int dword_180114568; | |
//----- (00000001800D0B88) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D0B88(__int64 result, char a2) | |
{ | |
unsigned int *v2; // x8 | |
int v3; // w10 | |
v2 = (unsigned int *)((result << 18) + 8592166432LL); | |
v3 = *(_DWORD *)((result << 18) + 0x200220E20LL); | |
MEMORY[0x180120B61] = result; | |
MEMORY[0x180120B62] = a2; | |
*v2 = v3 & 0xFFFF00FF | (MEMORY[0x1801217E8] << 8); | |
v2[32] = MEMORY[0x180121818]; | |
v2[33] = MEMORY[0x18012181C]; | |
v2[34] = MEMORY[0x180121820]; | |
v2[35] = MEMORY[0x180121824]; | |
v2[37] = (MEMORY[0x180121848] << 16) | (MEMORY[0x18012184C] << 24) | (MEMORY[0x180121844] << 8) | MEMORY[0x180121840]; | |
v2[38] = (MEMORY[0x180121858] << 16) | (MEMORY[0x18012185C] << 24) | (MEMORY[0x180121854] << 8) | MEMORY[0x180121850]; | |
v2[39] = MEMORY[0x180121860]; | |
v2[40] = (MEMORY[0x18012186C] << 16) | (MEMORY[0x180121870] << 24) | (MEMORY[0x180121868] << 8) | MEMORY[0x180121864]; | |
v2[41] = (MEMORY[0x18012187C] << 16) | (MEMORY[0x180121880] << 24) | (MEMORY[0x180121878] << 8) | MEMORY[0x180121874]; | |
v2[42] = MEMORY[0x180121884]; | |
return result; | |
} | |
//----- (00000001800D0DF0) ---------------------------------------------------- | |
// write access to const memory has been detected, the output may be wrong! | |
_DWORD *__fastcall sub_1800D0DF0(_DWORD *result, int a2, int a3, int a4, int a5) | |
{ | |
__int64 v5; // x29 | |
__int64 v6; // x30 | |
int v7; // w11 | |
int v8; // w8 | |
if ( a4 < a5 ) | |
{ | |
dword_180114568 = 10; | |
MEMORY[0x180115A3C] |= 0x20u; | |
sub_1800CC1BC(15LL); | |
sub_1800D489C("%llx:%d", &byte_180101040, -2045261415062956628LL, 5209LL, v5, v6); | |
} | |
v7 = result[1]; | |
++*result; | |
result[1] = a5 + a3 + a4 + a3 + v7; | |
v8 = result[3] + (a4 - a5) * a2; | |
result[2] += a4 - a5; | |
result[3] = v8; | |
return result; | |
} | |
// 1800D0E48: write access to const memory at 180114568 has been detected | |
// 180101040: using guessed type char byte_180101040; | |
// 180114568: using guessed type int dword_180114568; | |
//----- (00000001800D0E98) ---------------------------------------------------- | |
_DWORD *__fastcall sub_1800D0E98(_DWORD *result) | |
{ | |
unsigned int v1; // w8 | |
if ( *result ) | |
result[4] = (result[1] + *result) / (2 * *result); | |
v1 = result[2]; | |
if ( v1 ) | |
result[5] = (result[3] + (v1 >> 1)) / v1; | |
return result; | |
} | |
//----- (00000001800D0ED0) ---------------------------------------------------- | |
_DWORD *__fastcall sub_1800D0ED0(__int64 a1, int a2, unsigned int a3, __int64 a4, __int64 a5, int *a6, int *a7, _DWORD *a8, int *a9, int *a10) | |
{ | |
int *v10; // x25 | |
__int64 v11; // x23 | |
__int64 v12; // x12 | |
int v13; // w26 | |
char *i; // x8 | |
int v15; // w22 | |
int v16; // w21 | |
unsigned int v17; // w20 | |
__int64 v18; // x27 | |
int v19; // w24 | |
signed int v20; // w28 | |
signed int v21; // w19 | |
int v22; // w4 | |
int v23; // w3 | |
int v24; // w8 | |
int v25; // t1 | |
int v26; // t1 | |
_DWORD *v27; // ST48_8 | |
_DWORD *result; // x0 | |
int v29; // w9 | |
int v30; // w10 | |
int v31; // [xsp+1Ch] [xbp-A4h] | |
__int64 v32; // [xsp+20h] [xbp-A0h] | |
signed __int64 v33; // [xsp+28h] [xbp-98h] | |
int v34; // [xsp+34h] [xbp-8Ch] | |
int *v35; // [xsp+38h] [xbp-88h] | |
__int64 v36; // [xsp+40h] [xbp-80h] | |
char v37; // [xsp+50h] [xbp-70h] | |
int v38; // [xsp+60h] [xbp-60h] | |
int v39; // [xsp+64h] [xbp-5Ch] | |
__int64 v40; // [xsp+68h] [xbp-58h] | |
v10 = a7; | |
v35 = a6; | |
v11 = a5; | |
v12 = a4; | |
v34 = a2; | |
v40 = 5139240511851214385LL; | |
v13 = MEMORY[0x1801217D0]; | |
if ( MEMORY[0x1801217D0] == 1 ) | |
{ | |
for ( i = &v37; i < (char *)&v40; i += 4 ) | |
*(_DWORD *)i = 0; | |
} | |
v15 = 0; | |
v16 = 0; | |
v31 = 0; | |
v17 = a3; | |
v32 = 0LL; | |
v33 = 4LL * a3; | |
while ( v15 != v34 ) | |
{ | |
v18 = 0LL; | |
v19 = *v35; | |
v20 = 248; | |
v21 = -248; | |
v36 = v12; | |
while ( v17 != (_DWORD)v18 ) | |
{ | |
v22 = *(_DWORD *)(v11 + 4 * v18); | |
v23 = *(_DWORD *)(v12 + 4 * v18); | |
if ( a8 && v10 ) | |
{ | |
v25 = *a8; | |
++a8; | |
v24 = v25; | |
v26 = *v10; | |
++v10; | |
v16 = v24 - v26; | |
} | |
if ( !v19 ) | |
{ | |
if ( v13 == 1 ) | |
{ | |
v27 = a8; | |
result = sub_1800D0DF0(&v37, v15, v16, v23, v22); | |
v12 = v36; | |
a8 = v27; | |
} | |
else | |
{ | |
if ( v20 > v23 ) | |
v20 = *(_DWORD *)(v12 + 4 * v18); | |
if ( v21 < v22 ) | |
v21 = *(_DWORD *)(v11 + 4 * v18); | |
} | |
} | |
++v18; | |
} | |
++v35; | |
if ( v13 != 1 && !v19 && HIDWORD(v32) < v20 - v21 ) | |
{ | |
HIDWORD(v32) = v20 - v21; | |
v31 = v15; | |
LODWORD(v32) = (v20 + v21) / 2; | |
} | |
++v15; | |
v11 += v33; | |
v12 += v33; | |
} | |
v30 = v31; | |
v29 = v32; | |
if ( v13 == 1 ) | |
{ | |
result = sub_1800D0E98(&v37); | |
v29 = v38; | |
v30 = v39; | |
} | |
if ( a10 ) | |
*a10 = v30; | |
if ( a9 ) | |
*a9 = v29; | |
if ( 5139240511851214385LL != v40 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800D10AC) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D10AC(__int64 a1, unsigned int a2) | |
{ | |
int v2; // w10 | |
unsigned int v3; // w10 | |
int v4; // w10 | |
__int64 v5; // x20 | |
__int64 result; // x0 | |
__int64 v7; // x19 | |
v2 = 3 * *(_DWORD *)(12LL * (unsigned int)a1 + 0x180120C8CLL); | |
if ( v2 + 1 >= a2 ) | |
{ | |
v5 = (unsigned int)((_DWORD)a1 << 18); | |
} | |
else | |
{ | |
v3 = a2 - v2; | |
if ( v3 <= 0x36 ) | |
v4 = v3 | 0x100; | |
else | |
v4 = 311; | |
v5 = (unsigned int)((_DWORD)a1 << 18); | |
*(_DWORD *)((unsigned int)v5 + 0x20022051CLL) = v4; | |
a2 = 3 * *(_DWORD *)(12LL * (unsigned int)a1 + 0x180120C8CLL); | |
} | |
*(_DWORD *)(v5 + 8592164624LL) = ((unsigned __int16)a2 << 16) | 2; | |
result = sub_1800E1188(a1); | |
v7 = result; | |
while ( 1 ) | |
{ | |
result = sub_1800E1188(result); | |
if ( !(*(_DWORD *)(v5 + 8592164624LL) & 2) ) | |
break; | |
if ( (unsigned __int64)(result - v7) >= 0xF4240 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -2045261415062956628LL, 1641LL); | |
} | |
return result; | |
} | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800D1198) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D1198(__int64 a1, unsigned int a2) | |
{ | |
int v2; // w10 | |
unsigned int v3; // w10 | |
int v4; // w10 | |
__int64 v5; // x20 | |
__int64 result; // x0 | |
__int64 v7; // x19 | |
v2 = 3 * *(_DWORD *)(12LL * (unsigned int)a1 + 0x180120C8CLL); | |
if ( v2 + 1 >= a2 ) | |
{ | |
v5 = (unsigned int)((_DWORD)a1 << 18); | |
} | |
else | |
{ | |
v3 = a2 - v2; | |
if ( v3 <= 0x36 ) | |
v4 = v3 | 0x100; | |
else | |
v4 = 311; | |
v5 = (unsigned int)((_DWORD)a1 << 18); | |
*(_DWORD *)((unsigned int)v5 + 0x200220518LL) = v4; | |
a2 = 3 * *(_DWORD *)(12LL * (unsigned int)a1 + 0x180120C8CLL); | |
} | |
*(_DWORD *)(v5 + 8592164616LL) = ((unsigned __int16)a2 << 16) | 2; | |
result = sub_1800E1188(a1); | |
v7 = result; | |
while ( 1 ) | |
{ | |
result = sub_1800E1188(result); | |
if ( !(*(_DWORD *)(v5 + 8592164616LL) & 2) ) | |
break; | |
if ( (unsigned __int64)(result - v7) >= 0xF4240 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -2045261415062956628LL, 1673LL); | |
} | |
return result; | |
} | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800D1284) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D1284(__int64 a1, unsigned int a2) | |
{ | |
int v2; // w9 | |
unsigned __int64 v3; // x25 | |
_DWORD *v4; // x24 | |
unsigned int v5; // w8 | |
int v6; // w9 | |
signed int v7; // w26 | |
__int64 v8; // x23 | |
signed __int64 v9; // x27 | |
__int64 v10; // x19 | |
__int64 result; // x0 | |
__int64 v12; // x19 | |
signed __int64 v13; // x8 | |
v2 = 3 * *(_DWORD *)(12LL * (unsigned int)a1 + 0x180120C8CLL); | |
if ( v2 + 1 >= a2 ) | |
{ | |
v8 = (unsigned int)((_DWORD)a1 << 18); | |
} | |
else | |
{ | |
v3 = 0LL; | |
v4 = (_DWORD *)(12LL * (unsigned int)a1 + 6443633804LL); | |
v5 = a2 - v2; | |
v6 = (a2 - v2) | 0x100; | |
if ( v5 <= 0x36 ) | |
v7 = v6; | |
else | |
v7 = 311; | |
v8 = (unsigned int)((_DWORD)a1 << 18); | |
v9 = v8 + 8592164096LL; | |
while ( v3 <= 5 ) | |
{ | |
*(_DWORD *)(v9 + 4 * v3) = v7; | |
a1 = sub_1800E1188(a1); | |
v10 = a1; | |
while ( 1 ) | |
{ | |
a1 = sub_1800E1188(a1); | |
if ( !(*(_DWORD *)(v9 + 4 * v3) & 0x100) ) | |
break; | |
if ( (unsigned __int64)(a1 - v10) > 0xF423F ) | |
{ | |
v13 = 1599LL; | |
goto LABEL_19; | |
} | |
} | |
++v3; | |
} | |
a2 = 3 * *v4; | |
} | |
*(_DWORD *)(v8 + 8592164608LL) = ((unsigned __int16)a2 << 16) | 2; | |
result = sub_1800E1188(a1); | |
v12 = result; | |
while ( 1 ) | |
{ | |
result = sub_1800E1188(result); | |
if ( !(*(_DWORD *)(v8 + 8592164608LL) & 2) ) | |
break; | |
if ( (unsigned __int64)(result - v12) > 0xF423F ) | |
{ | |
v13 = 1608LL; | |
LABEL_19: | |
sub_1800D489C("%llx:%d", &byte_180101040, -2045261415062956628LL, v13); | |
} | |
} | |
return result; | |
} | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800D13CC) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D13CC(__int64 a1, int a2) | |
{ | |
int v2; // w19 | |
__int64 v3; // x23 | |
int v4; // w26 | |
__int64 v5; // x20 | |
signed __int64 v6; // x8 | |
__int64 v7; // x0 | |
__int64 v8; // x19 | |
v2 = a2; | |
v3 = (unsigned int)((_DWORD)a1 << 18); | |
v4 = *(_DWORD *)((unsigned int)v3 + 0x200220924LL); | |
if ( !a2 ) | |
{ | |
*(_DWORD *)((unsigned int)((_DWORD)a1 << 18) + 0x200220924LL) = v4 | 0x10; | |
a1 = sub_1800E1188(a1); | |
v5 = a1; | |
do | |
{ | |
a1 = sub_1800E1188(a1); | |
if ( !(*(_DWORD *)(v3 + 8592165156LL) & 0x10) ) | |
goto LABEL_6; | |
} | |
while ( (unsigned __int64)(a1 - v5) <= 0xF423F ); | |
v6 = 1875LL; | |
LABEL_11: | |
sub_1800D489C("%llx:%d", &byte_180101040, -2045261415062956628LL, v6); | |
} | |
LABEL_6: | |
if ( (unsigned int)(v2 - 1) <= 1 ) | |
{ | |
*(_DWORD *)(v3 + 8592165156LL) = v4 | 0x100; | |
v7 = sub_1800E1188(a1); | |
v8 = v7; | |
do | |
{ | |
v7 = sub_1800E1188(v7); | |
if ( !(*(_DWORD *)(v3 + 8592165156LL) & 0x100) ) | |
return *(_DWORD *)(v3 + 8592165148LL) & 0x3F; | |
} | |
while ( (unsigned __int64)(v7 - v8) <= 0xF423F ); | |
v6 = 1883LL; | |
goto LABEL_11; | |
} | |
return *(_DWORD *)(v3 + 8592165148LL) & 0x3F; | |
} | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800D14C4) ---------------------------------------------------- | |
// write access to const memory has been detected, the output may be wrong! | |
__int64 __fastcall sub_1800D14C4(int a1, int a2) | |
{ | |
__int64 v2; // x29 | |
__int64 v3; // x30 | |
if ( a1 > a2 ) | |
{ | |
dword_180114568 = 10; | |
MEMORY[0x180115A3C] |= 0x20u; | |
sub_1800CC1BC(15LL); | |
sub_1800D489C("%llx:%d", &byte_180101040, -2045261415062956628LL, 5071LL, v2, v3); | |
} | |
return (a2 + a1) / 2; | |
} | |
// 1800D14F4: write access to const memory at 180114568 has been detected | |
// 180101040: using guessed type char byte_180101040; | |
// 180114568: using guessed type int dword_180114568; | |
//----- (00000001800D1544) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D1544(unsigned int a1, int a2, __int16 a3, double a4, double a5) | |
{ | |
unsigned __int16 v5; // w19 | |
int v6; // w20 | |
unsigned int v7; // w21 | |
unsigned int v8; // w1 | |
signed __int64 v9; // x0 | |
unsigned __int64 v10; // x8 | |
_DWORD *v11; // x20 | |
__int64 result; // x0 | |
__int64 v13; // x19 | |
v5 = a3; | |
v6 = a2; | |
v7 = a1; | |
if ( a2 ) | |
v8 = 2; | |
else | |
v8 = 1; | |
v9 = sub_1800D16A8(a1, v8, a3, a4, a5); | |
v10 = (v7 << 18) + (unsigned __int64)(unsigned int)((v6 << 15) + 0x8000) + 8592162816LL; | |
*(_DWORD *)(v10 + 1560) = v9; | |
v11 = (_DWORD *)(v10 | 0x608); | |
*(_DWORD *)(v10 + 1544) = (v5 << 16) | 2; | |
result = sub_1800E1188(v9); | |
v13 = result; | |
while ( 1 ) | |
{ | |
result = sub_1800E1188(result); | |
if ( !(*v11 & 2) ) | |
break; | |
if ( (unsigned __int64)(result - v13) >= 0xF4240 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -2045261415062956628LL, 1962LL); | |
} | |
return result; | |
} | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800D1610) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D1610(__int64 a1) | |
{ | |
__int64 v1; // x20 | |
__int64 result; // x0 | |
__int64 v3; // x19 | |
v1 = (unsigned int)((_DWORD)a1 << 18); | |
*(_DWORD *)(v1 + 0x200220E58LL) |= 1u; | |
result = sub_1800E1188(a1); | |
v3 = result; | |
while ( 1 ) | |
{ | |
result = sub_1800E1188(result); | |
if ( !(*(_DWORD *)(v1 + 8592166488LL) & 1) ) | |
break; | |
if ( (unsigned __int64)(result - v3) >= 0xF4240 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -2045261415062956628LL, 1991LL); | |
} | |
return result; | |
} | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800D16A8) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800D16A8(unsigned int a1, unsigned int a2, unsigned int a3, double a4, double a5) | |
{ | |
double v5; // d0 | |
double v6; // d1 | |
v5 = (double)a3; | |
LODWORD(a5) = *(_DWORD *)(12LL * a1 + 0x180120B60LL + 4LL * a2 + 300); | |
v6 = (double)*(unsigned __int64 *)&a5; | |
if ( (double)a3 > v6 * 1.75 ) | |
return 3LL; | |
if ( v5 <= v6 * 1.5 ) | |
return v5 > v6; | |
return 2LL; | |
} | |
//----- (00000001800D1704) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D1704(unsigned int a1, int a2, __int16 a3, double a4, double a5) | |
{ | |
unsigned __int16 v5; // w19 | |
int v6; // w20 | |
unsigned int v7; // w21 | |
unsigned int v8; // w1 | |
signed __int64 v9; // x0 | |
unsigned __int64 v10; // x8 | |
_DWORD *v11; // x20 | |
__int64 result; // x0 | |
__int64 v13; // x19 | |
v5 = a3; | |
v6 = a2; | |
v7 = a1; | |
if ( a2 ) | |
v8 = 2; | |
else | |
v8 = 1; | |
v9 = sub_1800D16A8(a1, v8, a3, a4, a5); | |
v10 = (v7 << 18) + (unsigned __int64)(unsigned int)((v6 << 15) + 0x8000) + 8592162816LL; | |
*(_DWORD *)(v10 + 1560) = v9; | |
v11 = (_DWORD *)(v10 | 0x608); | |
*(_DWORD *)(v10 + 1544) = (v5 << 16) | 4; | |
result = sub_1800E1188(v9); | |
v13 = result; | |
while ( 1 ) | |
{ | |
result = sub_1800E1188(result); | |
if ( !(*v11 & 4) ) | |
break; | |
if ( (unsigned __int64)(result - v13) >= 0xF4240 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -2045261415062956628LL, 1981LL); | |
} | |
return result; | |
} | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800D17D0) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D17D0(__int64 a1, int a2) | |
{ | |
__int64 v2; // x20 | |
__int64 result; // x0 | |
__int64 v4; // x19 | |
v2 = (unsigned int)((_DWORD)a1 << 18); | |
*(_DWORD *)(v2 + 0x200220800LL) = *(_DWORD *)(v2 + 0x200220800LL) & 0xFFFFFE00 | a2 | 0x100; | |
result = sub_1800E1188(a1); | |
v4 = result; | |
while ( 1 ) | |
{ | |
result = sub_1800E1188(result); | |
if ( !(*(_DWORD *)(v2 + 8592164864LL) & 0x100) ) | |
break; | |
if ( (unsigned __int64)(result - v4) >= 0xF4240 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -2045261415062956628LL, 2123LL); | |
} | |
return result; | |
} | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800D1870) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D1870(__int64 a1, int a2, int a3) | |
{ | |
unsigned __int64 v3; // x8 | |
_DWORD *v4; // x20 | |
__int64 result; // x0 | |
__int64 v6; // x19 | |
v3 = (unsigned int)((_DWORD)a1 << 18) + (unsigned __int64)(unsigned int)((a2 << 15) + 0x8000) + 8592162816LL; | |
v4 = (_DWORD *)(v3 | 0x704); | |
*(_DWORD *)(v3 + 1796) = *(_DWORD *)((unsigned int)((_DWORD)a1 << 18) | |
+ (unsigned __int64)(unsigned int)((a2 << 15) + 0x8000) | |
+ 0x200220704LL) & 0xFFFFFE00 | a3 | 0x100; | |
result = sub_1800E1188(a1); | |
v6 = result; | |
while ( 1 ) | |
{ | |
result = sub_1800E1188(result); | |
if ( !(*v4 & 0x100) ) | |
break; | |
if ( (unsigned __int64)(result - v6) >= 0xF4240 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -2045261415062956628LL, 2154LL); | |
} | |
return result; | |
} | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800D1924) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D1924(__int64 a1, char a2) | |
{ | |
__int64 v2; // x20 | |
__int64 result; // x0 | |
__int64 v4; // x19 | |
v2 = (unsigned int)((_DWORD)a1 << 18); | |
*(_DWORD *)(v2 + 0x200220B0CLL) = *(_DWORD *)(v2 + 0x200220B0CLL) & 0xFFFFFF09 | 2 * (a2 & 3) | 16 | |
* MEMORY[0x1801218C4]; | |
result = sub_1800E1188(a1); | |
v4 = result; | |
while ( 1 ) | |
{ | |
result = sub_1800E1188(result); | |
if ( !(*(_DWORD *)(v2 + 8592165644LL) & 6) ) | |
break; | |
if ( (unsigned __int64)(result - v4) >= 0xF4240 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -2045261415062956628LL, 2215LL); | |
} | |
return result; | |
} | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800D19D8) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D19D8(__int64 result, char a2, int a3, int a4) | |
{ | |
char v4; // w20 | |
int v5; // w19 | |
signed int v6; // w22 | |
__int64 v7; // x21 | |
signed __int64 v8; // x8 | |
__int64 v9; // x0 | |
__int64 v10; // x20 | |
__int64 v11; // x19 | |
int v12; // w8 | |
unsigned int v13; // w3 | |
unsigned int v14; // w2 | |
v12 = a4; | |
if ( (unsigned int)(a3 + 248) > 0x1F0 ) | |
{ | |
*(_DWORD *)(80LL * (unsigned int)result + 0x180120B60LL + 4LL * MEMORY[0x180120B60] + 1492) = 1; | |
return result; | |
} | |
if ( a3 < 0 ) | |
v13 = -a3; | |
else | |
v13 = 0; | |
v14 = a3 & ~(a3 >> 31); | |
v4 = a2; | |
v5 = result; | |
if ( v12 ) | |
v6 = 4; | |
else | |
v6 = 2; | |
if ( v14 > 0xF8 || v13 >= 0xF9 ) | |
{ | |
*(_DWORD *)(80LL * (unsigned int)result + 0x180120B60LL + 4LL * MEMORY[0x180120B60] + 1492) = 1; | |
result = 0xFFFFFFFFLL; | |
} | |
else | |
{ | |
if ( a2 & 1 ) | |
*(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x200228600LL) = *(_DWORD *)((unsigned int)((_DWORD)result << 18) | |
+ 0x200228600LL) & 0xFFFF | (v13 << 24) | (v14 << 16) | v6; | |
if ( a2 & 2 ) | |
*(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x200230600LL) = *(_DWORD *)((unsigned int)((_DWORD)result << 18) | |
+ 0x200230600LL) & 0xFFFF | (v13 << 24) | (v14 << 16) | v6; | |
if ( a2 & 1 ) | |
{ | |
result = sub_1800E1188(result); | |
v7 = result; | |
do | |
{ | |
result = sub_1800E1188(result); | |
if ( !(*(_DWORD *)((unsigned int)(v5 << 18) + 0x200228600LL) & v6) ) | |
goto LABEL_21; | |
} | |
while ( (unsigned __int64)(result - v7) <= 0xF423F ); | |
v8 = 4330LL; | |
LABEL_26: | |
sub_1800D489C("%llx:%d", &byte_180101040, -2045261415062956628LL, v8); | |
} | |
LABEL_21: | |
if ( v4 & 2 ) | |
{ | |
v9 = sub_1800E1188(result); | |
v10 = v9; | |
v11 = (unsigned int)(v5 << 18); | |
do | |
{ | |
v9 = sub_1800E1188(v9); | |
if ( !(*(_DWORD *)(v11 + 8592229888LL) & v6) ) | |
goto LABEL_27; | |
} | |
while ( (unsigned __int64)(v9 - v10) <= 0xF423F ); | |
v8 = 4332LL; | |
goto LABEL_26; | |
} | |
LABEL_27: | |
result = 0LL; | |
} | |
return result; | |
} | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800D1A24) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800D1A24(char a1, int a2) | |
{ | |
char v2; // w19 | |
int *v3; // x9 | |
int v4; // w9 | |
unsigned int v5; // w20 | |
char v6; // cf | |
unsigned int v7; // w11 | |
bool v8; // cf | |
__int64 v10; // x0 | |
int v11; // w1 | |
unsigned int v12; // w9 | |
unsigned int v13; // w2 | |
int v14; // w20 | |
v2 = a1; | |
v3 = (int *)(12LL * MEMORY[0x180120B61] + 6443633808LL); | |
if ( a1 & 2 ) | |
v3 = (int *)(12LL * MEMORY[0x180120B61] + 6443633812LL); | |
v4 = *v3; | |
v5 = -a2; | |
if ( a2 & 0x80000000 ) | |
{ | |
v6 = (a2 + 248 < 0) ^ __OFADD__(a2, 248) ? 0 : 4 * v4 >= v5; | |
if ( !v6 ) | |
goto LABEL_18; | |
} | |
v7 = a2 >= 0 ? a2 : -a2; | |
if ( v7 > 5 * v4 ) | |
goto LABEL_18; | |
if ( a2 & 0x80000000 ) | |
{ | |
sub_1800D19D8(MEMORY[0x180120B61], a1, a2, 0); | |
v10 = MEMORY[0x180120B61]; | |
v11 = *(_DWORD *)(4LL * MEMORY[0x180120B61] + 0x180120BBCLL) + (unsigned __int16)v5; | |
} | |
else | |
{ | |
if ( a2 <= 303 ) | |
v8 = 5 * v4 >= (unsigned int)a2; | |
else | |
v8 = 0; | |
if ( !v8 ) | |
{ | |
LABEL_18: | |
*(_DWORD *)(80LL * MEMORY[0x180120B61] + 0x180120B60LL + 4LL * MEMORY[0x180120B60] + 1492) = 1; | |
return 0xFFFFFFFFLL; | |
} | |
v12 = 4 * v4; | |
if ( v12 >= 0xF8 ) | |
v13 = 248; | |
else | |
v13 = v12; | |
if ( v13 >= a2 ) | |
{ | |
sub_1800D19D8(MEMORY[0x180120B61], a1, a2, 0); | |
} | |
else | |
{ | |
v14 = a2 - v13; | |
sub_1800D19D8(MEMORY[0x180120B61], a1, v13, 0); | |
sub_1800D1CDC(MEMORY[0x180120B61], v2, v14); | |
} | |
v10 = MEMORY[0x180120B61]; | |
v11 = *(_DWORD *)(4LL * MEMORY[0x180120B61] + 0x180120BBCLL); | |
} | |
sub_1800D17D0(v10, v11); | |
return 0LL; | |
} | |
//----- (00000001800D1B54) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D1B54(__int64 a1, int a2, int a3) | |
{ | |
int v3; // w19 | |
int v4; // w20 | |
__int64 v5; // x21 | |
__int64 result; // x0 | |
unsigned int v7; // [xsp+4h] [xbp-2Ch] | |
__int64 v8; // [xsp+8h] [xbp-28h] | |
v3 = a3; | |
v4 = a2; | |
v5 = a1; | |
v8 = 5139240511851214385LL; | |
sub_1800B74E8(0, a1, a2, 14, &v7); | |
v7 = (unsigned __int8)(v7 & 0x80) | v3; | |
result = sub_1800B74E8(1, v5, v4, 14, (_BYTE *)v7); | |
if ( 5139240511851214385LL != v8 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800D1BF0) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D1BF0(__int64 result) | |
{ | |
unsigned __int64 v1; // x8 | |
v1 = (unsigned __int64)MEMORY[0x180120B61] << 18; | |
*(_DWORD *)(((unsigned __int64)MEMORY[0x180120B61] << 18) + 0x200228600LL) = *(_DWORD *)(((unsigned __int64)MEMORY[0x180120B61] << 18) | |
+ 0x200228600LL) & 0xFFFFF3FF | ((_DWORD)result << 10) | 4; | |
while ( *(_DWORD *)(v1 + 8592197120LL) & 4 ) | |
; | |
*(_DWORD *)(v1 + 8592229888LL) = ((_DWORD)result << 10) | *(_DWORD *)(v1 + 8592229888LL) & 0xFFFFF3FF | 4; | |
while ( *(_DWORD *)(v1 + 8592229888LL) & 4 ) | |
; | |
return result; | |
} | |
//----- (00000001800D1C50) ---------------------------------------------------- | |
bool __fastcall sub_1800D1C50(int a1, int a2, unsigned int a3) | |
{ | |
unsigned int v3; // w19 | |
int v4; // w20 | |
unsigned __int8 v5; // w21 | |
int v6; // w22 | |
__int64 v7; // x0 | |
v3 = a3; | |
v4 = a2; | |
v5 = 0; | |
if ( a1 & 2 ) | |
v6 = (a1 << 31 >> 31) & 0x100FF | 0x2FF00; | |
else | |
v6 = (a1 << 31 >> 31) & 0x100FF; | |
do | |
{ | |
v7 = sub_1800D1A24(3, v4); | |
if ( (_DWORD)v7 ) | |
break; | |
if ( v6 & ~(unsigned int)sub_1800D1FD0(v7) ) | |
break; | |
++v5; | |
++v4; | |
} | |
while ( v5 < v3 ); | |
return v5 == v3; | |
} | |
//----- (00000001800D1CDC) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D1CDC(__int64 result, char a2, int a3) | |
{ | |
__int64 i; // x11 | |
__int64 j; // x11 | |
if ( a2 & 1 ) | |
{ | |
for ( i = 0LL; i != 8; ++i ) | |
{ | |
*(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x200228400LL + 4 * i) = a3 | 0x100; | |
while ( *(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x200228400LL + 4 * i) & 0x100 ) | |
; | |
} | |
*(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x200228424LL) = a3 | 0x100; | |
while ( *(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x200228424LL) & 0x100 ) | |
; | |
} | |
if ( a2 & 2 ) | |
{ | |
for ( j = 0LL; j != 8; ++j ) | |
{ | |
*(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x200230400LL + 4 * j) = a3 | 0x100; | |
while ( *(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x200230400LL + 4 * j) & 0x100 ) | |
; | |
} | |
*(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x200230424LL) = a3 | 0x100; | |
while ( *(_DWORD *)((unsigned int)((_DWORD)result << 18) + 0x200230424LL) & 0x100 ) | |
; | |
} | |
return result; | |
} | |
//----- (00000001800D1D78) ---------------------------------------------------- | |
bool __fastcall sub_1800D1D78(int a1, int a2, int a3) | |
{ | |
int v3; // w19 | |
int v4; // w20 | |
unsigned __int8 v5; // w21 | |
int v6; // w22 | |
__int64 v7; // x0 | |
unsigned __int8 v8; // w8 | |
int v9; // w9 | |
v3 = a3; | |
v4 = a2; | |
v5 = 0; | |
if ( a1 & 2 ) | |
v6 = (a1 << 31 >> 31) & 0x100FF | 0x2FF00; | |
else | |
v6 = (a1 << 31 >> 31) & 0x100FF; | |
while ( 1 ) | |
{ | |
v7 = sub_1800D1A24(3, v4); | |
if ( (_DWORD)v7 || (unsigned int)sub_1800D1FD0(v7) & v6 ) | |
break; | |
v8 = v5 + 1; | |
v4 += v3; | |
v9 = v5++; | |
if ( v9 ) | |
return v8 == 2; | |
} | |
v8 = v5; | |
return v8 == 2; | |
} | |
//----- (00000001800D1E0C) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D1E0C(int a1, int a2, int a3, int a4, __int64 a5) | |
{ | |
__int64 v5; // x19 | |
int v6; // w20 | |
int v7; // w21 | |
int v8; // w22 | |
int v9; // w23 | |
__int64 result; // x0 | |
int v11; // w23 | |
BOOL v12; // w8 | |
__int64 v13; // x0 | |
__int64 v14; // x8 | |
signed int v15; // w10 | |
int v16; // w11 | |
__int64 v17; // x8 | |
signed int v18; // w9 | |
signed int v19; // w10 | |
char v20[72]; // [xsp+8h] [xbp-D8h] | |
char v21[72]; // [xsp+50h] [xbp-90h] | |
__int64 v22; // [xsp+98h] [xbp-48h] | |
v5 = a5; | |
v6 = a4; | |
v7 = a3; | |
v8 = a2; | |
v9 = a1; | |
v22 = 5139240511851214385LL; | |
sub_1800F0620((signed __int64 *)v21, 0, 0x48uLL); | |
result = (__int64)sub_1800F0620((signed __int64 *)v20, 0, 0x48uLL); | |
if ( v9 & 2 ) | |
v11 = (v9 << 31 >> 31) & 0x100FF | 0x2FF00; | |
else | |
v11 = (v9 << 31 >> 31) & 0x100FF; | |
while ( 1 ) | |
{ | |
v8 += v7; | |
v12 = v8 > v6; | |
if ( v7 >= 0 ) | |
v12 = v8 < v6; | |
if ( v12 != 1 ) | |
break; | |
v13 = sub_1800D1A24(3, v8); | |
result = sub_1800D1FD0(v13); | |
v14 = 0LL; | |
v15 = 1; | |
while ( v14 != 18 ) | |
{ | |
if ( v15 & v11 ) | |
{ | |
if ( (unsigned int)result & v11 & v15 && !*(_DWORD *)&v20[4 * v14] ) | |
{ | |
v16 = *(_DWORD *)&v21[4 * v14]; | |
if ( v16 == 8 ) | |
{ | |
*(_DWORD *)&v20[4 * v14] = 1; | |
} | |
else | |
{ | |
*(_DWORD *)&v21[4 * v14] = v16 + 1; | |
if ( !v16 ) | |
*(_WORD *)(v5 + 2 * v14) = v8; | |
} | |
} | |
else | |
{ | |
*(_DWORD *)&v21[4 * v14] = 0; | |
} | |
} | |
++v14; | |
v15 *= 2; | |
} | |
v17 = 0LL; | |
v18 = 1; | |
v19 = 1; | |
while ( v17 != 72 ) | |
{ | |
if ( v18 & v11 ) | |
v19 &= *(_DWORD *)&v20[v17] & 0xFF; | |
v18 *= 2; | |
v17 += 4LL; | |
} | |
if ( (_BYTE)v19 ) | |
goto LABEL_26; | |
} | |
*(_DWORD *)(80LL * MEMORY[0x180120B61] + 0x180120B60LL + 4LL * MEMORY[0x180120B60] + 1492) = 1; | |
LABEL_26: | |
if ( 5139240511851214385LL != v22 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 1800D1E0C: using guessed type char var_90[72]; | |
// 1800D1E0C: using guessed type char var_D8[72]; | |
//----- (00000001800D1FD0) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D1FD0(__int64 a1) | |
{ | |
__int64 v1; // x0 | |
__int64 v2; // x19 | |
*(_DWORD *)(((unsigned __int64)MEMORY[0x180120B61] << 18) + 0x200220E60LL) |= 1u; | |
v1 = sub_1800E1188(a1); | |
v2 = v1; | |
while ( 1 ) | |
{ | |
v1 = sub_1800E1188(v1); | |
if ( !(*(_DWORD *)(((unsigned __int64)MEMORY[0x180120B61] << 18) + 0x200220E60LL) & 1) ) | |
break; | |
if ( (unsigned __int64)(v1 - v2) >= 0xF4240 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -2045261415062956628LL, 4481LL); | |
} | |
return *(_DWORD *)(((unsigned __int64)MEMORY[0x180120B61] << 18) + 0x200220E64LL) & 0x3FFFF; | |
} | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800D2088) ---------------------------------------------------- | |
void sub_1800D2088() | |
{ | |
sub_1800B5688(0x34u, (__int64)sub_1800D2118, 0LL); | |
MEMORY[0x200000700] = 58654720; | |
if ( MEMORY[0x200000708] & 0x37F0000 ) | |
sub_1800D2118(); | |
MEMORY[0x200000708] = 58654720; | |
((void (__fastcall *)(signed __int64))loc_1800B562C)(52LL); | |
sub_1800B5688(0x25u, (__int64)sub_1800D2180, 0LL); | |
MEMORY[0x200D10004] = 32770; | |
MEMORY[0x200D10008] = -32771; | |
JUMPOUT(&loc_1800B562C); | |
} | |
//----- (00000001800D2118) ---------------------------------------------------- | |
void sub_1800D2118() | |
{ | |
__int64 v0; // x29 | |
__int64 v1; // x30 | |
if ( MEMORY[0x200000708] & 0x27F0000 || MEMORY[0x200000728] != 136 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, 8003646075766609523LL, 71LL, v0, v1); | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800D2180) ---------------------------------------------------- | |
void __noreturn sub_1800D2180() | |
{ | |
sub_1800D489C("%llx:%d", &byte_180101040, 8003646075766609523LL, 75LL); | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800D21B8) ---------------------------------------------------- | |
__int64 sub_1800D21B8() | |
{ | |
return 0LL; | |
} | |
//----- (00000001800D21C0) ---------------------------------------------------- | |
__int64 sub_1800D21C0() | |
{ | |
sub_1800B5E28(); | |
return 0LL; | |
} | |
//----- (00000001800D21D8) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D21D8(int a1) | |
{ | |
if ( a1 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, 7478666112870837320LL, 54LL); | |
sub_1800C8744(0); | |
return 0LL; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800D2228) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800D2228(int a1, unsigned int a2, __int64 a3, unsigned int a4) | |
{ | |
__int64 v4; // x21 | |
unsigned int v5; // w22 | |
int v6; // w19 | |
bool v7; // zf | |
signed int v8; // w8 | |
unsigned __int64 v9; // x25 | |
unsigned int v10; // w20 | |
unsigned __int64 v11; // x27 | |
int v12; // w24 | |
unsigned __int64 v13; // x8 | |
unsigned __int64 v14; // x28 | |
unsigned __int64 v15; // x26 | |
unsigned int v16; // w23 | |
_DWORD *v17; // x8 | |
signed __int64 v18; // x9 | |
signed __int64 v19; // x10 | |
unsigned int v20; // w0 | |
signed __int64 v22; // x8 | |
unsigned int v23; // [xsp+1Ch] [xbp-64h] | |
unsigned __int64 v24; // [xsp+20h] [xbp-60h] | |
v4 = a3; | |
v5 = a2; | |
v6 = a1; | |
if ( a1 == 1 ) | |
v7 = 1; | |
else | |
v7 = a1 == 3; | |
if ( v7 ) | |
{ | |
v8 = 15; | |
} | |
else | |
{ | |
if ( a1 != 11 ) | |
return 0LL; | |
v8 = 6; | |
} | |
v23 = v8; | |
v9 = 0LL; | |
v10 = a2; | |
v11 = a4; | |
v24 = a4; | |
while ( v9 < v11 ) | |
{ | |
if ( v6 == 1 ) | |
{ | |
sub_1800D26D8(v9 + v5, *(unsigned __int16 *)(v4 + 2 * v9)); | |
goto LABEL_25; | |
} | |
if ( v6 == 11 ) | |
{ | |
v12 = v9 + v5; | |
if ( (signed int)(v9 + v5) >= 7 ) | |
{ | |
v22 = 2851LL; | |
goto LABEL_46; | |
} | |
v13 = *sub_1800B82D4(*(unsigned __int16 *)(v4 + 2 * v9), 11, 0); | |
v14 = v13 >> 9; | |
v15 = v13 >> 27; | |
if ( v12 == 6 ) | |
{ | |
MEMORY[0x20E030004] = MEMORY[0x20E030004] & 0xCFFFFFFF | 0x10000000; | |
v16 = MEMORY[0x20E030014] & 0xFFE0FFFF; | |
MEMORY[0x20E030014] = v16 | ((sub_1800C8690() & 0x1F) << 16) | 0x1000; | |
v11 = v24; | |
MEMORY[0x20E030000] = v15 & 0x1F | ((v14 & 0x1FF) << 12) | 0xA0000000; | |
v17 = (_DWORD *)8824913920LL; | |
LABEL_22: | |
if ( v12 == 6 ) | |
v17 = (_DWORD *)8825012224LL; | |
while ( *v17 & 0x2000000 ) | |
; | |
goto LABEL_25; | |
} | |
v18 = (v13 >> 33) & 0x1FF; | |
if ( (_DWORD)v18 ) | |
{ | |
if ( v12 != 2 ) | |
{ | |
v22 = 2889LL; | |
LABEL_46: | |
sub_1800D489C("%llx:%d", &byte_180101040, 712204454611609663LL, v22); | |
} | |
MEMORY[0x20E008010] = v18 | MEMORY[0x20E008010] & 0xFFFFFE00 | 0x800; | |
goto LABEL_21; | |
} | |
if ( v12 == 4 ) | |
{ | |
MEMORY[0x20E010020] &= 0xFF7FFFFF; | |
MEMORY[0x20E010020] |= (BYTE4(v13) & 1) << 23; | |
if ( v13 & 0x100000000LL ) | |
{ | |
v19 = 8824881152LL; | |
LABEL_32: | |
*(_DWORD *)((v19 & 0xFFFFFFFFFFFF0000LL | 0x20) - 28) |= 0x1000000u; | |
} | |
} | |
else if ( !v12 ) | |
{ | |
MEMORY[0x20E000020] &= 0xFF7FFFFF; | |
MEMORY[0x20E000020] |= (BYTE4(v13) & 1) << 23; | |
if ( v13 & 0x100000000LL ) | |
{ | |
v19 = 8824815616LL; | |
goto LABEL_32; | |
} | |
} | |
LABEL_21: | |
*(_DWORD *)(((signed __int64)v12 << 14) + 0x20E000000LL) = (((unsigned int)v13 >> 14) & 0x1F0 | v15 & 0xF) & 0xFFE00FFF | ((v14 & 0x1FF) << 12) | 0xA0000000; | |
v17 = (_DWORD *)(((signed __int64)v12 << 14) + 8824815616LL); | |
goto LABEL_22; | |
} | |
if ( v6 != 3 ) | |
return 0LL; | |
sub_1800D2538(v9 + v5, *(unsigned __int16 *)(v4 + 2 * v9)); | |
LABEL_25: | |
++v9; | |
++v10; | |
} | |
while ( v10 <= v23 ) | |
{ | |
if ( v6 == 1 ) | |
{ | |
v20 = sub_1800B8508(2u, 1); | |
sub_1800D26D8(v10, v20); | |
} | |
else | |
{ | |
if ( v6 != 3 ) | |
return 0LL; | |
sub_1800D2538(v10, 49); | |
} | |
++v10; | |
} | |
return 1LL; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800D2538) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D2538(int a1, int a2) | |
{ | |
unsigned int v2; // w22 | |
int v3; // w20 | |
__int64 *v4; // x21 | |
__int64 v5; // x19 | |
unsigned int v6; // w0 | |
char *v7; // x19 | |
int v8; // w8 | |
int v9; // w0 | |
int v10; // w0 | |
int *v11; // x20 | |
int v12; // w21 | |
int v13; // w21 | |
int v14; // w21 | |
__int64 result; // x0 | |
__int64 v16; // [xsp+0h] [xbp-40h] | |
__int64 v17; // [xsp+8h] [xbp-38h] | |
v2 = a2; | |
v3 = a1; | |
v17 = 5139240511851214385LL; | |
v4 = sub_1800B82D4(a2, 3, 0); | |
v16 = 0LL; | |
v5 = sub_1800C859C(); | |
v6 = sub_1800C85A4(); | |
v7 = sub_1800B8F78(v5, v6, v2); | |
v8 = 0; | |
if ( v2 != 49 ) | |
{ | |
v9 = sub_1800C84D4(); | |
HIDWORD(v16) = sub_1800B8CDC(v2, 0, v9); | |
sub_1800C6D08(1u, 1u, (unsigned int *)&v16 + 1); | |
v10 = sub_1800C84D4(); | |
LODWORD(v16) = sub_1800B8CDC(v2, 1, v10); | |
sub_1800C6D08(8u, 1u, (unsigned int *)&v16); | |
v8 = HIDWORD(v16) << 24; | |
} | |
v11 = (int *)((unsigned int)(16 * v3) + 8825274368LL); | |
*v11 = (*(_DWORD *)v4 >> 5) & 0x1F0 | v8 | (*(_DWORD *)v4 >> 24) & 0xF | (((*(_DWORD *)v4 >> 15) & 0x1FF) << 12) | ((((*(_DWORD *)v4 >> 15) & 0x1FF) != 0) << 21); | |
v11[1] = (unsigned __int8)v16; | |
v12 = sub_1800D438C(1u, *(_DWORD *)v7 & 0xFFFFF) & 0x3F; | |
v13 = v12 & 0xFFFFC0FF | ((sub_1800D438C(1u, (*(_QWORD *)v7 >> 20) & 0xFFFFF) & 0x3F) << 8); | |
v14 = v13 & 0xFFC0FFFF | ((sub_1800D438C(1u, (*(_QWORD *)v7 >> 40) & 0xFFFFF) & 0x3F) << 16); | |
result = sub_1800D438C(1u, *((_DWORD *)v7 + 2) & 0xFFFFF); | |
v11[2] = v14 & 0xC0FFFFFF | ((result & 0x3F) << 24); | |
if ( 5139240511851214385LL != v17 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800D26D8) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D26D8(int a1, unsigned int a2) | |
{ | |
unsigned int v2; // w20 | |
int v3; // w19 | |
int v4; // w0 | |
int v5; // w0 | |
__int64 result; // x0 | |
unsigned __int64 v7; // x26 | |
__int64 v8; // x25 | |
unsigned __int8 v9; // w22 | |
char v10; // w23 | |
__int64 v11; // x21 | |
unsigned int v12; // w0 | |
__int64 v13; // x20 | |
unsigned __int64 v14; // x10 | |
unsigned __int64 v15; // x11 | |
signed __int64 v16; // x9 | |
unsigned __int64 v17; // x23 | |
signed __int64 v18; // x24 | |
unsigned __int64 v19; // x21 | |
__int64 v20; // x21 | |
__int64 v21; // x21 | |
__int64 v22; // x25 | |
__int64 v23; // x26 | |
__int64 v24; // x27 | |
__int64 *v25; // x9 | |
int v26; // [xsp+0h] [xbp-60h] | |
unsigned int v27; // [xsp+4h] [xbp-5Ch] | |
__int64 v28; // [xsp+8h] [xbp-58h] | |
v2 = a2; | |
v3 = a1; | |
v28 = 5139240511851214385LL; | |
v4 = sub_1800C84D4(); | |
v27 = sub_1800B8CDC(v2, 0, v4); | |
sub_1800C6D08(0, 1u, &v27); | |
v5 = sub_1800C84D4(); | |
v26 = sub_1800B8CDC(v2, 1, v5); | |
sub_1800C6D08(7u, 1u, (unsigned int *)&v26); | |
result = (__int64)sub_1800B82D4(v2, 1, 0); | |
if ( result ) | |
{ | |
v7 = *(_QWORD *)result; | |
v8 = v27; | |
v9 = v26; | |
v10 = MEMORY[0x2102DC010]; | |
v11 = sub_1800C859C(); | |
v12 = sub_1800C85A4(); | |
result = (__int64)sub_1800B8F78(v11, v12, v2); | |
v13 = result; | |
if ( result ) | |
{ | |
v14 = v7 >> 9; | |
v15 = v7 >> 10; | |
v16 = ((v7 >> 31) & 1) << 23; | |
if ( ((v7 >> 31) & 3) == 2 ) | |
v16 = (v10 & 1u) << 23; | |
v17 = ((v7 << 20) & 0x700000000000000LL | (((v7 >> 33) & 7) << 60)) & 0xFFFFF0FFFFFFFFFFLL | (((v7 >> 39) & 0xF) << 40); | |
v18 = (v7 >> 23) & 0x80000000; | |
v19 = ((((v7 >> 6) & 0x1C000 | (v7 >> 7) & 0xFFF) & 0xFFFFFFFFFFFFFFF0LL | (v7 >> 23) & 0xF | v15 & 0x1E0000) & 0xFFFFFFFFFFDFFFFFLL | ((v15 & 1) << 21)) & 0xFFFFFFFFFFBFFFFFLL | ((v14 & 1) << 22) | (v8 << 56) | v16 | ((sub_1800D438C(0, *(_DWORD *)result & 0xFFFFF) & 0x3F) << 24); | |
v20 = v19 | ((sub_1800D438C(0, (*(_QWORD *)v13 >> 20) & 0xFFFFF) & 0x3F) << 32); | |
v21 = v20 | ((sub_1800D438C(0, (*(_QWORD *)v13 >> 40) & 0xFFFFF) & 0x3F) << 40); | |
v22 = v21 | ((sub_1800D438C(0, *(_DWORD *)(v13 + 8) & 0xFFFFF) & 0x3F) << 48); | |
LOBYTE(v21) = sub_1800D438C(0, (*(_QWORD *)(v13 + 8) >> 20) & 0xFFFFF); | |
v23 = sub_1800D438C(0, (*(_QWORD *)(v13 + 8) >> 40) & 0xFFFFF) & 0x3F; | |
v24 = (sub_1800D438C(0, *(_DWORD *)(v13 + 16) & 0xFFFFF) & 0x3F) << 8; | |
result = sub_1800D438C(0, (*(_QWORD *)(v13 + 16) >> 20) & 0xFFFFF); | |
v25 = (__int64 *)((unsigned int)(32 * v3) + 8639741952LL); | |
*v25 = v22; | |
v25[1] = ((v17 | v18) & 0xFFFFFF00FFFFFFFFLL | ((unsigned __int64)v9 << 32)) & 0xFFFFFFFF80FFFFFFLL | ((unsigned __int64)(v21 & 0x7F) << 24) | v23 | v24 | ((unsigned __int64)(result & 0x3F) << 16); | |
} | |
} | |
if ( 5139240511851214385LL != v28 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800D2938) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800D2938(int a1, unsigned int a2, _DWORD *a3, _DWORD *a4) | |
{ | |
_DWORD *v4; // x20 | |
_DWORD *v5; // x19 | |
int v6; // w8 | |
signed __int64 result; // x0 | |
__int64 v8; // x10 | |
unsigned __int64 v9; // x10 | |
__int64 v10; // x1 | |
unsigned int v11; // w0 | |
__int64 v12; // x1 | |
__int64 v13; // x1 | |
signed __int64 v14; // x1 | |
__int64 v15; // x1 | |
v4 = a4; | |
v5 = a3; | |
v6 = a1; | |
result = 0LL; | |
switch ( v6 ) | |
{ | |
case 1: | |
case 2: | |
case 3: | |
case 4: | |
if ( a2 <= 0xF ) | |
{ | |
switch ( v6 ) | |
{ | |
case 1: | |
v8 = *(_QWORD *)(32 * a2 + 0x202F80000LL); | |
if ( v8 & 0x200000 ) | |
v9 = (unsigned __int64)(((double)((*(_QWORD *)(32 * a2 + 0x202F80000LL) >> 4) & 0xFFLL) | |
+ (double)((*(_QWORD *)(32 * a2 + 0x202F80000LL) >> 14) & 7LL) / 5.0) | |
* 24000000.0) | |
/ (2 * (*(_QWORD *)(32 * a2 + 0x202F80000LL) & 0xFuLL) + 2); | |
else | |
LODWORD(v9) = 24000000; | |
*a4 = v9; | |
v15 = *(_QWORD *)(32 * a2 + 0x202F80000LL) >> 56; | |
v11 = 0; | |
goto LABEL_15; | |
case 2: | |
*a4 = 0; | |
v14 = (*(_QWORD *)(32 * a2 + 0x202F80008LL) >> 32) & 0xFFLL; | |
v11 = 7; | |
goto LABEL_15; | |
case 3: | |
*a4 = 24000000 | |
* (unsigned __int64)((*(_DWORD *)(16 * a2 + 0x20E070000LL) >> 12) & 0x1FF) | |
/ ((*(_DWORD *)(16 * a2 + 0x20E070000LL) >> 4) & 0x1Fu) | |
/ ((*(_DWORD *)(16 * a2 + 0x20E070000LL) & 0xFu) + 1); | |
v12 = (unsigned int)(*(_DWORD *)(16 * a2 + 0x20E070000LL) >> 24); | |
v11 = 1; | |
goto LABEL_15; | |
case 4: | |
*a4 = 0; | |
v13 = *(_DWORD *)(16 * a2 + 0x20E070004LL) & 0xFF; | |
v11 = 8; | |
goto LABEL_15; | |
default: | |
goto def_1800D29A4; | |
} | |
} | |
goto def_1800D29A4; | |
case 7: | |
if ( a2 > 0xD ) | |
goto def_1800D29A4; | |
*a4 = 0; | |
v10 = (*(_DWORD *)(16 * a2 + 0x20E068018LL) >> 12) & 0xFF; | |
v11 = 2; | |
LABEL_15: | |
*a3 = sub_1800C6E38(v11); | |
goto LABEL_16; | |
case 11: | |
*a4 = sub_1800D2B24(a2); | |
*v5 = 0; | |
if ( *v4 == -1 ) | |
def_1800D29A4: | |
result = 0LL; | |
else | |
LABEL_16: | |
result = 1LL; | |
break; | |
default: | |
return result; | |
} | |
return result; | |
} | |
//----- (00000001800D2B24) ---------------------------------------------------- | |
unsigned __int64 __fastcall sub_1800D2B24(signed int a1) | |
{ | |
unsigned int *v2; // x8 | |
unsigned int v3; // w8 | |
signed __int64 v4; // x9 | |
int v5; // w10 | |
unsigned __int64 v6; // x9 | |
unsigned __int64 v7; // x10 | |
if ( a1 > 6 ) | |
return 0xFFFFFFFFLL; | |
v2 = (unsigned int *)((a1 << 14) + 8824815616LL); | |
if ( a1 == 6 ) | |
v2 = (unsigned int *)8825012224LL; | |
v3 = *v2; | |
if ( !(v3 & 0x80000000) ) | |
return 0LL; | |
if ( v3 & 0x8000000 ) | |
return 24000000LL; | |
v4 = 24000000LL; | |
if ( a1 == 4 ) | |
{ | |
v5 = MEMORY[0x20E010020]; | |
LABEL_13: | |
if ( v5 & 0x800000 ) | |
v4 = 48000000LL; | |
goto LABEL_15; | |
} | |
if ( !a1 ) | |
{ | |
v5 = MEMORY[0x20E000020]; | |
goto LABEL_13; | |
} | |
LABEL_15: | |
v6 = v4 * ((v3 >> 12) & 0x1FF); | |
if ( a1 == 6 ) | |
v7 = 30LL; | |
else | |
v7 = (v3 & 0xF) + 1; | |
return v6 / v7 / ((v3 >> 4) & 0x1F); | |
} | |
//----- (00000001800D2BE0) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800D2BE0(_BYTE *a1) | |
{ | |
int v1; // w0 | |
signed int v2; // w21 | |
int v3; // w2 | |
signed __int64 result; // x0 | |
signed __int64 v5; // x8 | |
__int64 v6; // [xsp+10h] [xbp-30h] | |
__int64 v7; // [xsp+18h] [xbp-28h] | |
v7 = 5139240511851214385LL; | |
if ( !(sub_1800EBDF4(0LL, a1, &v6) & 1) ) | |
{ | |
v5 = 2123LL; | |
goto LABEL_12; | |
} | |
v1 = sub_1800D9A1C(); | |
v2 = 26214; | |
if ( !v1 ) | |
goto LABEL_5; | |
if ( v1 != 1 ) | |
{ | |
v5 = 2133LL; | |
LABEL_12: | |
sub_1800D489C("%llx:%d", &byte_180101040, 712204454611609663LL, v5); | |
} | |
v2 = 6553; | |
LABEL_5: | |
if ( sub_1800E0D14() ) | |
v3 = 26214; | |
else | |
v3 = v2; | |
result = sub_1800EC320(v6, "dvd-factor", v3); | |
if ( 5139240511851214385LL != v7 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
//----- (00000001800D2CC0) ---------------------------------------------------- | |
__int64 sub_1800D2CC0() | |
{ | |
sub_1800D2CD8(); | |
return 0LL; | |
} | |
//----- (00000001800D2CD8) ---------------------------------------------------- | |
__int64 sub_1800D2CD8() | |
{ | |
__int64 v0; // x19 | |
int v1; // w0 | |
signed __int64 v2; // x8 | |
__int64 v3; // x8 | |
char *v4; // x9 | |
unsigned int v5; // w10 | |
unsigned int v6; // w12 | |
char *v7; // x10 | |
v0 = 0LL; | |
MEMORY[0x180122660] = 24000000; | |
MEMORY[0x180122768] = 192000000; | |
while ( v0 != 7 ) | |
{ | |
v1 = sub_1800D2B24(v0); | |
v2 = 4 * v0++ + 6443640416LL; | |
*(_DWORD *)(v2 + 4) = v1; | |
} | |
v3 = 0LL; | |
v4 = (char *)&qword_18010E378[1] + 2; | |
while ( v3 != 28 ) | |
{ | |
v5 = 0; | |
v6 = **(_DWORD **)(v4 - 10); | |
if ( v6 & 0x80000000 && v6 & 0x3F ) | |
{ | |
v7 = &v4[4 * ((v6 >> 24) & 0xF)]; | |
v5 = *(_DWORD *)(4LL * *((unsigned __int16 *)v7 - 1) + 0x180122660LL) | |
/ (unsigned int)*(unsigned __int16 *)v7 | |
/ (**(_DWORD **)(v4 - 10) & 0x3Fu); | |
} | |
*(_DWORD *)(v3 + 6443640652LL) = v5; | |
v3 += 4LL; | |
v4 += 56; | |
} | |
MEMORY[0x180122680] = (unsigned int)(((double)(((unsigned __int64)MEMORY[0x202F200C8] >> 18) & 0xFF) | |
+ (double)(((unsigned __int64)MEMORY[0x202F200C8] >> 28) & 7) / 5.0) | |
* 24000000.0) | |
/ (2 * (MEMORY[0x202F200C8] & 0x1Fu) + 2); | |
sub_1800D37E8(67LL, 0x4Du); | |
return sub_1800D37E8(9LL, 0x3Au); | |
} | |
// 18010E378: using guessed type __int64[7]; | |
//----- (00000001800D2DF4) ---------------------------------------------------- | |
__int64 sub_1800D2DF4() | |
{ | |
__int64 v0; // x11 | |
_DWORD *v1; // x12 | |
signed __int64 v2; // x10 | |
_DWORD *v3; // x11 | |
int v4; // w0 | |
signed int i; // w19 | |
unsigned int v6; // w0 | |
signed int j; // w19 | |
int v8; // w0 | |
unsigned int k; // w19 | |
int v10; // w0 | |
__int64 v11; // x0 | |
__int64 l; // x8 | |
__int64 m; // x19 | |
unsigned int v15; // [xsp+14h] [xbp-2Ch] | |
__int64 v16; // [xsp+18h] [xbp-28h] | |
v0 = 0LL; | |
v16 = 5139240511851214385LL; | |
MEMORY[0x200800068] = 219; | |
MEMORY[0x200800070] = 2; | |
while ( v0 != 18 ) | |
{ | |
v1 = (_DWORD *)qword_18010E9C0[*((_DWORD *)qword_18010ED98 + v0) - 6]; | |
*v1 |= 0xFu; | |
while ( (*v1 ^ (*v1 >> 4)) & 0xF ) | |
; | |
++v0; | |
} | |
MEMORY[0x20790C080] = 1; | |
while ( !(MEMORY[0x20790C084] & 1) ) | |
; | |
MEMORY[0x200800064] = 772; | |
v2 = 18LL; | |
while ( v2 ) | |
{ | |
v3 = (_DWORD *)qword_18010E9C0[*((_DWORD *)qword_18010ED98 + (unsigned int)--v2) - 6]; | |
*v3 &= 0xFFFFFFF0; | |
while ( (*v3 ^ (*v3 >> 4)) & 0xF ) | |
; | |
} | |
LODWORD(qword_1801158C8[6579]) = 24000000; | |
sub_1800D26D8(0, 6u); | |
sub_1800D3190(1); | |
sub_1800C86A8(); | |
sub_1800D26D8(1, 7u); | |
sub_1800D3518(1, 1); | |
v4 = sub_1800C85A4(); | |
sub_1800B8874(0LL, v4, 0LL); | |
MEMORY[0x20E0A0004] = 6018; | |
sub_1800D26D8(0, 6u); | |
for ( i = 2; i != 16; ++i ) | |
{ | |
v6 = sub_1800B8508(i, 1); | |
sub_1800D26D8(i, v6); | |
} | |
for ( j = 2; j != 14; ++j ) | |
{ | |
v8 = sub_1800B8508(j, 7); | |
sub_1800D3518(j, v8); | |
} | |
sub_1800E204C(); | |
MEMORY[0x202F20020] = 33554434LL; | |
while ( MEMORY[0x202F20020] >> 31 ) | |
; | |
for ( k = 0; k != 17; ++k ) | |
{ | |
v10 = sub_1800B8508(k, 3); | |
sub_1800D2538(k, v10); | |
} | |
MEMORY[0x20E014004] |= 0x1000000u; | |
MEMORY[0x20E014000] &= 0xF7FFFFFF; | |
while ( MEMORY[0x20E014000] & 0x2000000 ) | |
; | |
MEMORY[0x20E070200] |= 0x80000000; | |
MEMORY[0x210200000] = 2147483648; | |
while ( MEMORY[0x210200000] & 0x2000000 ) | |
; | |
v11 = sub_1800B83FC(11, &v15); | |
if ( !(unsigned int)sub_1800D2228(11, 0, v11, v15) ) | |
sub_1800D489C("%llx:%d", &byte_180101040, 712204454611609663LL, 2662LL); | |
for ( l = 0LL; l != 81920; l += 0x4000LL ) | |
*(_DWORD *)(l + 8825094144LL) |= 0x80000000; | |
MEMORY[0x20E068000] = 13; | |
while ( MEMORY[0x20E068000] & 0x80000000 ) | |
; | |
for ( m = 0LL; m != 68; ++m ) | |
sub_1800D3668((unsigned int *)qword_18010D690[7 * LODWORD(qword_18010E7A0[m])], HIDWORD(qword_18010E7A0[m])); | |
MEMORY[0x20E080400] &= 0xEFFFFBFF; | |
while ( ~MEMORY[0x20E080400] & 0xF0 ) | |
; | |
sub_1800D2CD8(); | |
if ( 5139240511851214385LL != v16 ) | |
sub_1800D4A5C(); | |
return 0LL; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 18010D690: using guessed type __int64 qword_18010D690[63]; | |
// 18010E7A0: using guessed type __int64 qword_18010E7A0[68]; | |
// 18010E9C0: using guessed type __int64 qword_18010E9C0[99]; | |
// 18010ED98: using guessed type __int64 qword_18010ED98[13]; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800D3190) ---------------------------------------------------- | |
unsigned int *__fastcall sub_1800D3190(int a1) | |
{ | |
int v1; // w19 | |
unsigned int v2; // w22 | |
__int64 i; // x20 | |
__int64 v4; // x20 | |
unsigned int v5; // w25 | |
signed __int64 v6; // x8 | |
__int64 j; // x8 | |
_DWORD *v8; // x8 | |
signed __int64 v9; // x9 | |
__int64 k; // x8 | |
_DWORD *v11; // x12 | |
__int64 v12; // x8 | |
signed __int64 l; // x9 | |
_DWORD *v14; // x12 | |
unsigned int *result; // x0 | |
__int64 v16; // [xsp+8h] [xbp-68h] | |
__int64 v17; // [xsp+10h] [xbp-60h] | |
__int64 v18; // [xsp+18h] [xbp-58h] | |
__int64 v19; // [xsp+20h] [xbp-50h] | |
__int64 v20; // [xsp+28h] [xbp-48h] | |
v1 = a1; | |
v2 = 0; | |
v20 = 5139240511851214385LL; | |
v16 = 0LL; | |
v17 = 0LL; | |
MEMORY[0x20E0A0000] |= 0x1F00u; | |
v18 = -4611685897908026944LL; | |
v19 = 1823LL; | |
for ( i = 6LL; (_DWORD)i != 91; i = (unsigned int)(i + 1) ) | |
{ | |
if ( !(i & 0x3F) ) | |
++v2; | |
if ( *(&v18 + v2) & (1LL << (i & 0x3F)) ) | |
sub_1800D39CC(i, 1); | |
} | |
v4 = 90LL; | |
v5 = 1; | |
while ( (unsigned int)v4 >= 6 ) | |
{ | |
v6 = 1LL << (v4 & 0x3F); | |
if ( !(*(&v18 + v5) & v6) ) | |
{ | |
if ( *(&v16 + v5) & v6 ) | |
sub_1800D3AEC(v4); | |
else | |
sub_1800D39CC(v4, 0); | |
} | |
v5 -= (v4 & 0x3F) == 0; | |
v4 = (unsigned int)(v4 - 1); | |
} | |
MEMORY[0x20E070200] = 0; | |
MEMORY[0x20E0DC000] = 0; | |
MEMORY[0x20E040300] = 0; | |
sub_1800D446C((unsigned int *)0x2B, 0x2Fu, -2146435072); | |
for ( j = 0LL; j != 5; ++j ) | |
{ | |
*(_DWORD *)((j << 14) + 0x20E044000LL) = 0; | |
while ( *(_DWORD *)((j << 14) + 0x20E044000LL) & 0x40000000 ) | |
; | |
} | |
sub_1800D446C((unsigned int *)9, 0x35u, -2146435072); | |
sub_1800D446C((unsigned int *)0x36, 0x36u, -2062548992); | |
sub_1800D446C((unsigned int *)0x37, 0x3Au, -2146435072); | |
MEMORY[0x20E068100] = *(_DWORD *)(((MEMORY[0x20E068000] >> 4) & 0xF0) + 0x20E068010LL) & 0xC0 | *(_DWORD *)(((MEMORY[0x20E068000] >> 4) & 0xF0) + 0x20E068010LL) & 0x3F; | |
MEMORY[0x20E068104] = 0; | |
MEMORY[0x20E068108] = 0; | |
MEMORY[0x20E06810C] = 0; | |
MEMORY[0x20E068000] = 15; | |
while ( MEMORY[0x20E068000] & 0x80000000 ) | |
; | |
if ( v1 ) | |
{ | |
v8 = (_DWORD *)8825241660LL; | |
v9 = 2LL; | |
while ( 1 ) | |
{ | |
if ( v9 != 15 ) | |
{ | |
if ( v9 == 16 ) | |
break; | |
*(v8 - 3) = 0; | |
*(v8 - 2) = 0; | |
*(v8 - 1) = 0; | |
*v8 = 0; | |
} | |
++v9; | |
v8 += 4; | |
} | |
} | |
for ( k = 0LL; ; ++k ) | |
{ | |
if ( k == 4 ) | |
continue; | |
if ( k == 7 ) | |
break; | |
v11 = (_DWORD *)((k << 14) + 8824815616LL); | |
if ( k == 6 ) | |
v11 = (_DWORD *)8825012224LL; | |
if ( k == 6 ) | |
*v11 = 512029; | |
else | |
*v11 = -2013261808; | |
while ( *v11 & 0x2000000 ) | |
; | |
} | |
v12 = 0LL; | |
for ( l = 8824815620LL; ; l += 0x4000LL ) | |
{ | |
if ( v12 == 4 ) | |
goto LABEL_43; | |
if ( v12 == 7 ) | |
break; | |
if ( v12 == 6 ) | |
v14 = (_DWORD *)8825012228LL; | |
else | |
v14 = (_DWORD *)l; | |
*v14 = -2142764216; | |
LABEL_43: | |
++v12; | |
} | |
sub_1800D446C((unsigned int *)0x3B, 0x41u, -2147483647); | |
MEMORY[0x202F20020] = 0x2000000LL; | |
while ( MEMORY[0x202F20020] >> 31 ) | |
; | |
MEMORY[0x210240300] = 0; | |
result = sub_1800D446C((unsigned int *)0x43, 0x4Du, -2146435072); | |
MEMORY[0x210200000] = -2013265920; | |
MEMORY[0x210200004] = 31; | |
while ( MEMORY[0x210200000] & 0x2000000 ) | |
; | |
MEMORY[0x2102DC000] = 0; | |
if ( 5139240511851214385LL != v20 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800D3518) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D3518(int a1, int a2) | |
{ | |
unsigned int v2; // w19 | |
int v3; // w20 | |
__int64 *v4; // x21 | |
int v5; // w0 | |
_DWORD *v6; // x22 | |
__int64 v7; // x20 | |
unsigned int v8; // w0 | |
char *v9; // x19 | |
__int64 result; // x0 | |
int v11; // [xsp+4h] [xbp-2Ch] | |
__int64 v12; // [xsp+8h] [xbp-28h] | |
v2 = a2; | |
v3 = a1; | |
v12 = 5139240511851214385LL; | |
v4 = sub_1800B82D4(a2, 7, 0); | |
v5 = sub_1800C84D4(); | |
v11 = sub_1800B8CDC(v2, 0, v5); | |
sub_1800C6D08(2u, 1u, (unsigned int *)&v11); | |
v6 = (_DWORD *)((unsigned int)(16 * (16 - v3) - 16) + 8825241616LL); | |
*v6 = *((_DWORD *)v4 + 4); | |
v6[1] = *((_DWORD *)v4 + 3); | |
v6[2] = ((unsigned __int8)v11 << 12) | *((_DWORD *)v4 + 2); | |
v7 = sub_1800C859C(); | |
v8 = sub_1800C85A4(); | |
v9 = sub_1800B8F78(v7, v8, v2); | |
LODWORD(v7) = sub_1800D438C(2u, *(_DWORD *)v9 & 0xFFFFF) & 0x3F; | |
LODWORD(v7) = v7 & 0xFFFFC0FF | ((sub_1800D438C(2u, (*(_QWORD *)v9 >> 20) & 0xFFFFF) & 0x3F) << 8); | |
LODWORD(v7) = v7 & 0xFFC0FFFF | ((sub_1800D438C(2u, (*(_QWORD *)v9 >> 40) & 0xFFFFF) & 0x3F) << 16); | |
result = sub_1800D438C(2u, *((_DWORD *)v9 + 2) & 0xFFFFF); | |
v6[3] = v7 & 0xC0FFFFFF | ((result & 0x3F) << 24); | |
if ( 5139240511851214385LL != v12 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800D3668) ---------------------------------------------------- | |
unsigned int *__fastcall sub_1800D3668(unsigned int *result, int a2) | |
{ | |
*result = a2 & 0xFF0FFFFF | (((*result >> 20) & 0xF) << 20); | |
while ( *result & 0x40000000 ) | |
; | |
return result; | |
} | |
//----- (00000001800D3684) ---------------------------------------------------- | |
unsigned int *sub_1800D3684() | |
{ | |
return sub_1800D3190(0); | |
} | |
//----- (00000001800D368C) ---------------------------------------------------- | |
// write access to const memory has been detected, the output may be wrong! | |
signed __int64 __fastcall sub_1800D368C(int a1) | |
{ | |
signed int v1; // w12 | |
if ( (MEMORY[0x202F20050] & 0xF0) != 32LL ) | |
{ | |
MEMORY[0x202F20020] = 33554434LL; | |
while ( MEMORY[0x202F20020] >> 31 ) | |
; | |
} | |
MEMORY[0x20E0A0000] &= 0xFFFFFEFF; | |
switch ( a1 ) | |
{ | |
case 3: | |
MEMORY[0x20E068000] = 12; | |
while ( MEMORY[0x20E068000] & 0x80000000 ) | |
; | |
dword_180114C88 = 3; | |
break; | |
case 4: | |
case 6: | |
if ( a1 == 4 ) | |
v1 = 55; | |
else | |
v1 = 21; | |
MEMORY[0x20E0680E0] = MEMORY[0x20E0680E0] & 0xFFFFFFC0 | v1; | |
MEMORY[0x20E068000] = 13; | |
while ( MEMORY[0x20E068000] & 0x80000000 ) | |
; | |
dword_180114C88 = a1; | |
break; | |
case 7: | |
MEMORY[0x20E0680E0] = MEMORY[0x20E0680E0] & 0xFFFFF03F | 0xC0; | |
MEMORY[0x20E068000] = 13; | |
while ( MEMORY[0x20E068000] & 0x80000000 ) | |
; | |
break; | |
case 8: | |
MEMORY[0x20E0680E0] = MEMORY[0x20E0680E0] & 0xFFFFF03F | 0x840; | |
MEMORY[0x20E068000] = 13; | |
while ( MEMORY[0x20E068000] & 0x80000000 ) | |
; | |
break; | |
default: | |
break; | |
} | |
MEMORY[0x20E0A0000] |= 0x100u; | |
sub_1800D37E8(10LL, 0xAu); | |
return 6LL; | |
} | |
// 1800D3740: write access to const memory at 180114C88 has been detected | |
// 1800D375C: write access to const memory at 180114C88 has been detected | |
// 180114C88: using guessed type int dword_180114C88; | |
//----- (00000001800D37E8) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D37E8(__int64 result, unsigned int a2) | |
{ | |
unsigned int v2; // w12 | |
unsigned int v3; // w12 | |
char *v4; // x12 | |
if ( (unsigned int)result >= 9 && a2 < 0x3B || (unsigned int)result >= 0x43 && a2 <= 0x4D ) | |
{ | |
while ( (unsigned int)result <= a2 ) | |
{ | |
v2 = *(_DWORD *)qword_18010D690[7 * (unsigned int)result]; | |
if ( v2 & 0x80000000 ) | |
{ | |
v4 = (char *)&qword_18010D690[7 * (unsigned int)result] + 4 * ((v2 >> 24) & 0xF); | |
v3 = *(_DWORD *)(4LL * *((unsigned __int16 *)v4 + 4) + 0x180122660LL) | |
/ (unsigned int)*((unsigned __int16 *)v4 + 5); | |
} | |
else | |
{ | |
v3 = 0; | |
} | |
*(_DWORD *)(4LL * (unsigned int)result + 0x180122660LL) = v3; | |
result = (unsigned int)(result + 1); | |
} | |
} | |
return result; | |
} | |
// 18010D690: using guessed type __int64 qword_18010D690[63]; | |
//----- (00000001800D386C) ---------------------------------------------------- | |
_QWORD *__fastcall sub_1800D386C(_QWORD *a1, unsigned int a2) | |
{ | |
unsigned __int64 v2; // x2 | |
if ( a2 >= 0x4E ) | |
v2 = 312LL; | |
else | |
v2 = 4LL * a2; | |
return sub_1800F03F0(a1, (_QWORD *)0x180122660LL, v2); | |
} | |
//----- (00000001800D389C) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D389C(int a1) | |
{ | |
switch ( a1 ) | |
{ | |
case 0: | |
return MEMORY[0x180122680]; | |
case 1: | |
return MEMORY[0x1801226BC]; | |
case 2: | |
return MEMORY[0x180122688]; | |
case 3: | |
return MEMORY[0x180122708]; | |
case 4: | |
case 5: | |
return MEMORY[0x180122660]; | |
case 6: | |
return MEMORY[0x18012276C]; | |
default: | |
if ( (unsigned int)(a1 - 43) < 3 ) | |
return MEMORY[0x1801226BC]; | |
switch ( a1 ) | |
{ | |
case 78: | |
return MEMORY[0x180122690]; | |
case 108: | |
return MEMORY[0x1801226BC]; | |
case 109: | |
return MEMORY[0x1801226EC]; | |
case 112: | |
return MEMORY[0x180122660]; | |
} | |
return 0LL; | |
} | |
} | |
//----- (00000001800D3988) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D3988(__int64 result) | |
{ | |
__int64 v1; // x29 | |
__int64 v2; // x30 | |
if ( (_DWORD)result == 78 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, 712204454611609663LL, 3566LL, v1, v2); | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800D39CC) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D39CC(__int64 result, int a2) | |
{ | |
int v2; // w19 | |
unsigned int *v3; // x20 | |
unsigned int v4; // w8 | |
unsigned int v5; // w8 | |
v2 = a2; | |
if ( (unsigned int)(result - 6) <= 0x54 ) | |
{ | |
v3 = (unsigned int *)qword_18010E9C0[(signed int)result - 6]; | |
if ( (_DWORD)result == 77 && !((a2 ^ 1) & 1) && !(*v3 & 0xF) ) | |
{ | |
MEMORY[0x20E0802B8] |= 0xFu; | |
while ( (MEMORY[0x20E0802B8] ^ (MEMORY[0x20E0802B8] >> 4)) & 0xF ) | |
; | |
MEMORY[0x20E0802B8] |= 0x400u; | |
v3 = (unsigned int *)8825340592LL; | |
MEMORY[0x20E0802B0] |= 0x400u; | |
MEMORY[0x20E0802B0] |= 0x80000000; | |
MEMORY[0x20E0802B8] |= 0x80000000; | |
result = sub_1800D5F60(1LL); | |
MEMORY[0x20E0802B8] &= 0x7FFFFFFFu; | |
MEMORY[0x20E0802B0] &= 0x7FFFFFFFu; | |
MEMORY[0x20E0802B8] &= 0xFFFFFBFF; | |
MEMORY[0x20E0802B0] &= 0xFFFFFBFF; | |
} | |
v4 = *v3; | |
if ( v2 ) | |
v5 = v4 | 0xF; | |
else | |
v5 = v4 & 0xFFFFFFF0; | |
*v3 = v5; | |
while ( (*v3 ^ (*v3 >> 4)) & 0xF ) | |
; | |
} | |
return result; | |
} | |
// 18010E9C0: using guessed type __int64 qword_18010E9C0[99]; | |
//----- (00000001800D3AEC) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D3AEC(__int64 result) | |
{ | |
unsigned int *v1; // x8 | |
if ( (unsigned int)(result - 6) <= 0x54 ) | |
{ | |
v1 = (unsigned int *)qword_18010E9C0[(signed int)result - 6]; | |
*v1 = *v1 & 0xFFFFFFF0 | 4; | |
while ( (*v1 ^ (*v1 >> 4)) & 0xF ) | |
; | |
} | |
return result; | |
} | |
// 18010E9C0: using guessed type __int64 qword_18010E9C0[99]; | |
//----- (00000001800D3B2C) ---------------------------------------------------- | |
void __fastcall sub_1800D3B2C(char a1) | |
{ | |
if ( !(a1 & 1) ) | |
sub_1800B1EDC(0); | |
sub_1800B57D0(); | |
while ( 1 ) | |
; | |
} | |
//----- (00000001800D3B48) ---------------------------------------------------- | |
__int64 sub_1800D3B48() | |
{ | |
__int64 result; // x0 | |
__int64 v1; // x8 | |
__int64 v2; // x9 | |
__int64 v3; // x11 | |
MEMORY[0x20E0BC014] = sub_1800C86B0(0); | |
MEMORY[0x20E0BC114] = sub_1800C86B0(1); | |
result = sub_1800C86B0(2); | |
v1 = 0uLL; | |
v2 = 0LL; | |
MEMORY[0x20E0BC214] = result; | |
while ( v1 != 24 ) | |
{ | |
v3 = qword_18010ECD8[v1 + 1]; | |
if ( (unsigned __int64)(v2 - 3) > 3 ) | |
*(_DWORD *)qword_18010ECD8[v1] = v3; | |
else | |
*(_QWORD *)qword_18010ECD8[v1] = v3; | |
++v2; | |
v1 += 3LL; | |
} | |
return result; | |
} | |
// 18010ECD8: using guessed type __int64 qword_18010ECD8[]; | |
//----- (00000001800D3BDC) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D3BDC(__int64 result) | |
{ | |
_DWORD *v1; // x19 | |
if ( (unsigned int)(result - 6) <= 0x54 ) | |
{ | |
v1 = (_DWORD *)qword_18010E9C0[(signed int)result - 6]; | |
*v1 |= 0x80000000; | |
result = sub_1800D5F60(1LL); | |
*v1 &= 0x7FFFFFFFu; | |
} | |
return result; | |
} | |
// 18010E9C0: using guessed type __int64 qword_18010E9C0[99]; | |
//----- (00000001800D3C2C) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D3C2C(__int64 result, int a2) | |
{ | |
unsigned int *v2; // x8 | |
unsigned int v3; // w9 | |
unsigned int v4; // w9 | |
if ( (unsigned int)(result - 6) <= 0x54 && (_DWORD)result == 88 ) | |
{ | |
v2 = (unsigned int *)qword_18010E9C0[(signed int)result - 6]; | |
v3 = *v2; | |
if ( a2 ) | |
v4 = v3 | 0x80000000; | |
else | |
v4 = v3 & 0x7FFFFFFF; | |
*v2 = v4; | |
} | |
return result; | |
} | |
// 18010E9C0: using guessed type __int64 qword_18010E9C0[99]; | |
//----- (00000001800D3D1C) ---------------------------------------------------- | |
__int64 sub_1800D3D1C() | |
{ | |
int v0; // w0 | |
__int64 v1; // x22 | |
signed __int64 v2; // x23 | |
signed __int64 v3; // x1 | |
unsigned __int64 v4; // x1 | |
__int64 v5; // x2 | |
unsigned int v6; // t1 | |
unsigned int *v7; // x19 | |
v0 = sub_1800C85A4(); | |
sub_1800B8874((signed __int64)sub_1800D4030, v0, 0LL); | |
sub_1800BA5EC((signed __int64 *)7, 0x202F200C0uLL, MEMORY[0x202F200C0] & 0x80000LL, 1); | |
v1 = 0LL; | |
v2 = 8824815616LL; | |
while ( v1 != 7 ) | |
{ | |
if ( v1 == 6 ) | |
{ | |
sub_1800BA5EC((signed __int64 *)7, 0x20E030010uLL, MEMORY[0x20E030010], 0); | |
sub_1800BA5EC((signed __int64 *)7, 0x20E030014uLL, MEMORY[0x20E030014], 0); | |
v3 = 8825012240LL; | |
LABEL_4: | |
v6 = *(_DWORD *)(v3 + 28); | |
v4 = v3 + 28; | |
v5 = v6; | |
LABEL_5: | |
sub_1800BA5EC((signed __int64 *)7, v4, v5, 0); | |
} | |
else | |
{ | |
switch ( (_DWORD)v1 ) | |
{ | |
case 0: | |
sub_1800BA5EC((signed __int64 *)7, 0x20E000004uLL, MEMORY[0x20E000004], 0); | |
v3 = 8824815620LL; | |
goto LABEL_4; | |
case 2: | |
if ( !(MEMORY[0x20E008010] & 0x1FF) ) | |
break; | |
v5 = MEMORY[0x20E008010]; | |
v4 = 8824848400LL; | |
goto LABEL_5; | |
case 4: | |
sub_1800BA5EC((signed __int64 *)7, 0x20E010004uLL, MEMORY[0x20E010004], 0); | |
v3 = 8824881156LL; | |
goto LABEL_4; | |
case 5: | |
v4 = 8824897540LL; | |
v5 = MEMORY[0x20E014004]; | |
goto LABEL_5; | |
default: | |
break; | |
} | |
} | |
if ( v1 == 6 ) | |
v7 = (unsigned int *)8825012224LL; | |
else | |
v7 = (unsigned int *)v2; | |
sub_1800BA5EC((signed __int64 *)7, (unsigned __int64)v7, *v7, 0); | |
sub_1800BAB44((signed __int64 *)7, 0x32u); | |
sub_1800BA890((signed __int64 *)7, (unsigned __int64)v7, 0LL, 0x2000000LL, 255, 0); | |
if ( v1 == 6 ) | |
sub_1800BA5EC((signed __int64 *)7, 0x20E0E4000uLL, MEMORY[0x20E0E4000], 0); | |
++v1; | |
v2 += 0x4000LL; | |
} | |
sub_1800BA5EC((signed __int64 *)7, 0x20E068010uLL, MEMORY[0x20E0680E0] & 0xFFFFFFCF | 0x10, 0); | |
sub_1800BA5EC((signed __int64 *)7, 0x20E068014uLL, MEMORY[0x20E0680E4], 0); | |
sub_1800BA5EC((signed __int64 *)7, 0x20E068018uLL, MEMORY[0x20E0680E8], 0); | |
sub_1800BA5EC((signed __int64 *)7, 0x20E06801CuLL, MEMORY[0x20E0680EC], 0); | |
sub_1800BA5EC((signed __int64 *)7, 0x20E068000uLL, 0LL, 0); | |
sub_1800BAB44((signed __int64 *)7, 0xBB8u); | |
return sub_1800BA890((signed __int64 *)7, 0x20E068000uLL, 0LL, -2147483648LL, 255, 0); | |
} | |
// 1800D4030: using guessed type __int64 __fastcall sub_1800D4030(); | |
//----- (00000001800D438C) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D438C(unsigned int a1, unsigned int a2) | |
{ | |
unsigned int v2; // w19 | |
unsigned int v3; // w20 | |
int v4; // w22 | |
int v5; // w24 | |
unsigned int v6; // w21 | |
int v7; // w0 | |
unsigned int v8; // w8 | |
bool v9; // cf | |
unsigned int v10; // w8 | |
v2 = a2; | |
v3 = a1; | |
if ( (signed int)sub_1800C6E38(a1) < 1 ) | |
return 0LL; | |
v4 = sub_1800C6E38(v3); | |
v5 = 0; | |
v6 = 0; | |
while ( 1 ) | |
{ | |
if ( v6 > 0xFE ) | |
sub_1800D489C("%llx:%d", &byte_180101040, 712204454611609663LL, 2483LL); | |
v7 = sub_1800C6E38(v3); | |
v8 = 1000 * (v7 - v4); | |
v9 = v8 >= v2; | |
v10 = v8 - v2; | |
if ( v9 ) | |
break; | |
++v6; | |
v5 = v7; | |
} | |
return v6 - (v2 - 1000 * (v5 - v4) < v10); | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800D446C) ---------------------------------------------------- | |
unsigned int *__fastcall sub_1800D446C(unsigned int *result, unsigned int a2, int a3) | |
{ | |
int v3; // w19 | |
unsigned int v4; // w20 | |
unsigned int i; // w21 | |
v3 = a3; | |
v4 = a2; | |
for ( i = (unsigned int)result; i <= v4; ++i ) | |
result = sub_1800D3668((unsigned int *)qword_18010D690[7 * i], v3); | |
return result; | |
} | |
// 18010D690: using guessed type __int64 qword_18010D690[63]; | |
//----- (00000001800D44CC) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D44CC(__int64 result, unsigned int a2) | |
{ | |
unsigned __int64 v2; // x20 | |
unsigned __int64 v3; // x21 | |
unsigned __int64 *v4; // x22 | |
unsigned int *v5; // x19 | |
bool v6; // cf | |
bool v7; // zf | |
v2 = (unsigned int)result; | |
v3 = a2; | |
v4 = (unsigned __int64 *)&qword_18010D690[7 * (unsigned int)result]; | |
while ( v2 < v3 ) | |
{ | |
v5 = (unsigned int *)*v4; | |
if ( *v4 ) | |
{ | |
v6 = (unsigned __int64)v5 >= 0x2101FFFFFLL; | |
v7 = v5 == (unsigned int *)8860467199LL; | |
} | |
else | |
{ | |
v6 = 1; | |
v7 = 0; | |
} | |
if ( v7 || !v6 ) | |
{ | |
sub_1800BA5EC((signed __int64 *)7, *v4, *v5, 0); | |
result = sub_1800BA890((signed __int64 *)7, (unsigned __int64)v5, 0LL, 0x40000000LL, 255, 0); | |
} | |
++v2; | |
v4 += 7; | |
} | |
return result; | |
} | |
// 18010D690: using guessed type __int64 qword_18010D690[63]; | |
//----- (00000001800D456C) ---------------------------------------------------- | |
void __usercall __noreturn sub_1800D456C(void *a1@<X0>, void *a2@<X1>, void *a3@<X2>, void *a4@<X3>, void *a5@<X4>, void *a6@<X5>, void *a7@<X6>, signed __int64 a8@<X8>) | |
{ | |
signed __int64 v8; // x0 | |
v8 = linux_eabi_syscall(a8, a1, a2, a3, a4, a5, a6, a7); | |
if ( !MEMORY[0x1801280CC] ) | |
{ | |
MEMORY[0x1801280CC] = 1; | |
MEMORY[0x180116018] = 1; | |
if ( !BYTE1(qword_1801158C8[9472]) ) | |
{ | |
BYTE1(qword_1801158C8[9472]) = 1; | |
BYTE2(qword_1801158C8[9472]) = 1; | |
sub_1800D528C(); | |
} | |
} | |
sub_1800D489C("%llx:%d", &byte_180101040, -2291811536998215838LL, 29LL); | |
} | |
// 1800D4898: using guessed type __int64 __fastcall nullsub_12(_QWORD); | |
// 1800F68C4: using guessed type __int64 nullsub_17(void); | |
// 180101040: using guessed type char byte_180101040; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800D46BC) ---------------------------------------------------- | |
__int64 sub_1800D46BC() | |
{ | |
__int64 result; // x0 | |
unsigned __int8 v1; // [xsp+7h] [xbp-19h] | |
__int64 v2; // [xsp+8h] [xbp-18h] | |
v2 = 5139240511851214385LL; | |
sub_1800D5D18((_BYTE *)0x1801227A8LL); | |
sub_1800EACD4(MEMORY[0x1801227A0], &v1); | |
result = v1; | |
if ( 5139240511851214385LL != v2 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800D4728) ---------------------------------------------------- | |
signed __int64 sub_1800D4728() | |
{ | |
signed __int64 result; // x0 | |
unsigned __int8 v1; // [xsp+7h] [xbp-9h] | |
__int64 v2; // [xsp+8h] [xbp-8h] | |
v2 = 5139240511851214385LL; | |
if ( sub_1800EACD4(MEMORY[0x1801227A0], &v1) < 1 ) | |
result = 1LL; | |
else | |
result = v1; | |
if ( 5139240511851214385LL != v2 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800D4788) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800D4788(char a1) | |
{ | |
return sub_1800EAC4C(MEMORY[0x1801227A0], a1); | |
} | |
//----- (00000001800D47DC) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D47DC(__int64 result) | |
{ | |
MEMORY[0x180116000] |= result; | |
return result; | |
} | |
//----- (00000001800D47F0) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D47F0(int a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
int v8; // w19 | |
__int64 result; // x0 | |
v8 = a1; | |
result = sub_1800EF260((__int64)"%llx:%d\n", a2, a3, a4, a5, a6, a7, a8, -391796804217411975LL); | |
MEMORY[0x180116000] &= ~v8; | |
return result; | |
} | |
//----- (00000001800D4848) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D4848(__int64 a1) | |
{ | |
__int64 v1; // x19 | |
v1 = a1; | |
sub_1800E95B4(a1); | |
if ( MEMORY[0x180116000] & 1 ) | |
{ | |
if ( (_DWORD)v1 == 10 ) | |
sub_1800E5258(0, 13); | |
sub_1800E5258(0, v1); | |
} | |
return v1; | |
} | |
//----- (00000001800D489C) ---------------------------------------------------- | |
void __usercall __noreturn sub_1800D489C(const char *a1@<X1>, _BYTE *a2@<X0>, __int64 a3, ...) | |
{ | |
const char *v3; // x20 | |
_BYTE *v4; // x19 | |
unsigned int v5; // w9 | |
__int64 v6; // x0 | |
v3 = a1; | |
v4 = a2; | |
v5 = LODWORD(qword_1801158C8[6625]) + 1; | |
LODWORD(qword_1801158C8[6625]) = v5; | |
if ( v5 >= 3 ) | |
sub_1800B0604(); | |
sub_1800F612C(); | |
sub_1800D52D8(); | |
if ( !qword_1801158C8[232] ) | |
{ | |
sub_1800E1188(v6); | |
qword_1801158C8[233] = (__int64)v4; | |
qword_1801158C8[232] = 6443640788LL; | |
sub_1800EFD00((char *)0x1801227D4LL, 0x400uLL, 0LL, 0x400uLL, (__int64)v3, &a3); | |
sub_1800D9E6C(9, 0LL, 0LL); | |
sub_1800EFD4C("\npanic: "); | |
sub_1800EFD4C(v4); | |
sub_1800EFD4C(": "); | |
sub_1800EFD4C((_BYTE *)0x1801227D4LL); | |
sub_1800EFD4C("\n\n"); | |
sub_1800D9E6C(9, 0LL, 0LL); | |
sub_1800D3B2C(1); | |
} | |
MEMORY[0x1801227D4] = *(_QWORD *)"double panic in "; | |
MEMORY[0x1801227E4] = 0; | |
MEMORY[0x1801227DC] = *(_QWORD *)"anic in "; | |
qword_1801158C8[233] = (__int64)v4; | |
sub_1800EFDE4(6443640788LL, (__int64)v4, 0x400uLL, 0x400uLL); | |
sub_1800D9E6C(9, 0LL, 0LL); | |
sub_1800EFD4C("\n\n"); | |
sub_1800EFD4C((_BYTE *)0x1801227D4LL); | |
sub_1800EFD4C("\n\n"); | |
sub_1800B0604(); | |
} | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800D49F4) ---------------------------------------------------- | |
// write access to const memory has been detected, the output may be wrong! | |
__int64 sub_1800D49F4() | |
{ | |
__int64 result; // x0 | |
signed __int64 v1; // x8 | |
result = sub_1800F5684((_QWORD *)0x1801227C0LL, 8uLL); | |
if ( (_DWORD)result ) | |
{ | |
v1 = 5139240511851214385LL; | |
qword_1801158C8[6623] = 5139240511851214385LL; | |
} | |
else | |
{ | |
MEMORY[0x1801227C1] = 0; | |
v1 = MEMORY[0x1801227C0]; | |
} | |
qword_180114C90 = v1; | |
return result; | |
} | |
// 1800D4A4C: write access to const memory at 180114C90 has been detected | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800D4A5C) ---------------------------------------------------- | |
void __noreturn sub_1800D4A5C() | |
{ | |
sub_1800D489C("%llx:%d", &byte_180101040, 218577048921417703LL, 274LL); | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800D4B0C) ---------------------------------------------------- | |
void __fastcall __noreturn sub_1800D4B0C(__int64 a1, __int64 a2, __int64 a3, unsigned __int64 a4) | |
{ | |
__int64 v4; // x29 | |
__int64 v5; // x30 | |
if ( a4 > 0x2F ) | |
JUMPOUT(&loc_1800D4A94); | |
sub_1800D489C("%llx:%d", &byte_180101040, -8047881600196886088LL, 27LL, v4, v5); | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800D4B50) ---------------------------------------------------- | |
signed __int64 sub_1800D4B50() | |
{ | |
signed __int64 result; // x0 | |
sub_1800F5240(6444236800LL, 0x4C000uLL); | |
sub_1800EE724((_QWORD *)0x1801B4000LL, 0x4C000uLL, 1); | |
sub_1800D4C18(0); | |
sub_1800B3A80(); | |
result = sub_1800EAB94(0x1000uLL, 6443640744LL); | |
MEMORY[0x1801227A0] = result; | |
return result; | |
} | |
//----- (00000001800D4BA0) ---------------------------------------------------- | |
_DWORD *sub_1800D4BA0() | |
{ | |
__int64 v0; // x0 | |
_DWORD *result; // x0 | |
__int64 v2[2]; // [xsp+8h] [xbp-18h] | |
__int64 v3; // [xsp+18h] [xbp-8h] | |
v3 = 5139240511851214385LL; | |
sub_1800F5440(); | |
sub_1800F5684(v2, 0x10uLL); | |
sub_1800EE984(v2); | |
sub_1800EE938(); | |
result = sub_1800D534C(v0); | |
if ( 5139240511851214385LL != v3 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
//----- (00000001800D4C18) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D4C18(int a1) | |
{ | |
int v1; // w19 | |
v1 = a1; | |
MEMORY[0x180122BE4] = 539754496; | |
if ( (unsigned int)sub_1800F6860() ) | |
MEMORY[0x180122BE4] |= 0x10000000u; | |
if ( !(sub_1800F6854() & 1) ) | |
MEMORY[0x180122BE4] |= 0x100020u; | |
if ( (unsigned int)sub_1800C67A8() ) | |
MEMORY[0x180122BE4] |= 0x8000000u; | |
MEMORY[0x180122BE8] = -1LL; | |
MEMORY[0x180122BF0] = 0LL; | |
if ( v1 ) | |
{ | |
sub_1800D4CE0((_QWORD *)0x800000000LL, 0x20000000uLL); | |
if ( !(qword_1801158C8[6755] & 1) ) | |
sub_1800D4CE0((_QWORD *)0x820000000LL, 0x28000000uLL); | |
LOBYTE(qword_1801158C8[6755]) = 1; | |
} | |
sub_1800D4D34(0x800000000uLL, 0x20000000LL, 0); | |
sub_1800F4DC0(); | |
sub_1800EB418(); | |
return 0LL; | |
} | |
// 1800F6854: using guessed type __int64 sub_1800F6854(void); | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800D4CE0) ---------------------------------------------------- | |
_QWORD *__fastcall sub_1800D4CE0(_QWORD *a1, unsigned __int64 a2) | |
{ | |
unsigned __int64 v2; // x19 | |
_QWORD *v3; // x20 | |
unsigned __int64 v4; // x21 | |
_QWORD *result; // x0 | |
v2 = a2; | |
v3 = a1; | |
do | |
{ | |
nullsub_17(); | |
if ( v2 >> 28 ) | |
v4 = 0x10000000LL; | |
else | |
v4 = v2; | |
result = sub_1800F05A0(v3, v4); | |
v3 = (_QWORD *)((char *)v3 + v4); | |
v2 -= v4; | |
} | |
while ( v2 ); | |
return result; | |
} | |
// 1800F68C4: using guessed type __int64 nullsub_17(void); | |
//----- (00000001800D4D34) ---------------------------------------------------- | |
unsigned __int64 __fastcall sub_1800D4D34(unsigned __int64 result, __int64 a2, int a3) | |
{ | |
if ( !(MEMORY[0x180122BE6] & 1) ) | |
{ | |
if ( a3 ) | |
{ | |
MEMORY[0x180122BE8] = -1LL; | |
MEMORY[0x180122BF0] = 0LL; | |
} | |
else if ( result + a2 > result ) | |
{ | |
if ( result < MEMORY[0x180122BE8] ) | |
MEMORY[0x180122BE8] = result; | |
if ( MEMORY[0x180122BF0] < result + a2 ) | |
MEMORY[0x180122BF0] = result + a2; | |
} | |
} | |
return result; | |
} | |
//----- (00000001800D4D84) ---------------------------------------------------- | |
bool __fastcall sub_1800D4D84(int a1) | |
{ | |
int v1; // w10 | |
_BOOL8 v2; // x8 | |
v1 = MEMORY[0x180122BE4]; | |
v2 = (MEMORY[0x180122BE4] & a1) == a1; | |
if ( a1 & 0x10 && (MEMORY[0x180122BE4] & a1) == a1 ) | |
{ | |
MEMORY[0x180122BE4] = MEMORY[0x180122BE4] & 0xDFF3FFDF | 0x20; | |
v2 = ((~v1 | 0x200C0000) & a1 & 0xFFFFFFDF) == 0; | |
} | |
return v2; | |
} | |
//----- (00000001800D4DD8) ---------------------------------------------------- | |
void sub_1800D4DD8() | |
{ | |
MEMORY[0x180122BE4] = MEMORY[0x180122BE4] & 0xDFF3FFDF | 0x20; | |
} | |
//----- (00000001800D4DFC) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800D4DFC(unsigned __int64 a1, __int64 a2) | |
{ | |
if ( MEMORY[0x180122BE6] & 1 ) | |
return 1LL; | |
if ( a1 + a2 <= a1 ) | |
return 0LL; | |
return (MEMORY[0x180122BE8] <= a1) & (unsigned __int8)(a1 + a2 <= MEMORY[0x180122BF0]); | |
} | |
//----- (00000001800D4E44) ---------------------------------------------------- | |
bool sub_1800D4E44() | |
{ | |
JUMPOUT(MEMORY[0x180122BE4] & 0x20, 0, &locret_1800D4E68); | |
return sub_1800D4E54(); | |
} | |
//----- (00000001800D4E54) ---------------------------------------------------- | |
bool sub_1800D4E54() | |
{ | |
return sub_1800D4D84(16); | |
} | |
//----- (00000001800D4E6C) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D4E6C(__int64 result) | |
{ | |
unsigned int v1; // w9 | |
v1 = MEMORY[0x180122BE4] | 0x1000000; | |
if ( !(_DWORD)result ) | |
v1 = MEMORY[0x180122BE4] & 0xFEFFFFFF; | |
MEMORY[0x180122BE4] = v1; | |
return result; | |
} | |
//----- (00000001800D4E90) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D4E90(int a1) | |
{ | |
return (unsigned int)sub_1800F6854() & (a1 ^ 1); | |
} | |
// 1800F6854: using guessed type __int64 sub_1800F6854(void); | |
//----- (00000001800D4EB8) ---------------------------------------------------- | |
_QWORD *__fastcall sub_1800D4EB8(_QWORD *result) | |
{ | |
int v1; // w10 | |
unsigned int v2; // w11 | |
v1 = MEMORY[0x180122BE4]; | |
v2 = MEMORY[0x180122BE4] & 0xFBFFFFFF; | |
MEMORY[0x180122BE4] &= 0xFBFFFFFF; | |
if ( result ) | |
{ | |
MEMORY[0x180122BE4] = v1 | 0x4000000; | |
result = sub_1800F03F0((_QWORD *)0x180122C08LL, result, 0x30uLL); | |
} | |
else | |
{ | |
MEMORY[0x180122BE4] = v2; | |
} | |
return result; | |
} | |
//----- (00000001800D4EF4) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D4EF4(__int64 result) | |
{ | |
unsigned int v1; // w9 | |
v1 = MEMORY[0x180122BE4] | 0x2000000; | |
if ( !(_DWORD)result ) | |
v1 = MEMORY[0x180122BE4] & 0xFDFFFFFF; | |
MEMORY[0x180122BE4] = v1; | |
return result; | |
} | |
//----- (00000001800D4F18) ---------------------------------------------------- | |
void sub_1800D4F18() | |
{ | |
MEMORY[0x180122BE4] |= 0x8000000u; | |
} | |
//----- (00000001800D4F30) ---------------------------------------------------- | |
__int64 sub_1800D4F30() | |
{ | |
return ((unsigned int)MEMORY[0x180122BE7] >> 3) & 1; | |
} | |
//----- (00000001800D4F44) ---------------------------------------------------- | |
signed __int64 sub_1800D4F44() | |
{ | |
int v0; // w8 | |
int *v1; // x0 | |
v0 = MEMORY[0x180122BE4]; | |
if ( MEMORY[0x180122BE4] & 0x1000000 ) | |
{ | |
sub_1800C6960(); | |
v0 = MEMORY[0x180122BE4]; | |
} | |
if ( !(v0 & 0x40000) ) | |
{ | |
sub_1800C5E08(0xFFFFFFFFLL, 0); | |
v0 = MEMORY[0x180122BE4]; | |
} | |
if ( !(v0 & 0x80000) ) | |
{ | |
sub_1800C5E08(0LL, -1); | |
v0 = MEMORY[0x180122BE4]; | |
} | |
if ( v0 & 0x4000000 ) | |
v1 = (int *)6443641864LL; | |
else | |
v1 = 0LL; | |
sub_1800C6A94(v1); | |
sub_1800C6CE0((MEMORY[0x180122BE4] >> 25) & 1); | |
MEMORY[0x180122BE1] = 1; | |
return 1LL; | |
} | |
// 1800C6960: using guessed type __int64 sub_1800C6960(void); | |
//----- (00000001800D4FC8) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D4FC8(int a1) | |
{ | |
int v1; // w19 | |
__int64 result; // x0 | |
signed __int64 v3; // x8 | |
int *v4; // x0 | |
__int64 v5; // x1 | |
int *v6; // x0 | |
char v7; // [xsp+18h] [xbp-58h] | |
__int64 v8; // [xsp+48h] [xbp-28h] | |
v1 = a1; | |
v8 = 5139240511851214385LL; | |
if ( !(MEMORY[0x180122BE1] & 1) ) | |
{ | |
v3 = 450LL; | |
LABEL_14: | |
sub_1800D489C("%llx:%d", &byte_180101040, -5600394141277327902LL, v3); | |
} | |
result = sub_1800C5E98(); | |
if ( (_DWORD)result ) | |
{ | |
if ( v1 ) | |
{ | |
v3 = 455LL; | |
goto LABEL_14; | |
} | |
} | |
else | |
{ | |
if ( MEMORY[0x180122BE7] & 4 ) | |
{ | |
sub_1800F03F0(&v7, (_QWORD *)0x180122C08LL, 0x30uLL); | |
v4 = (int *)&v7; | |
v5 = 48LL; | |
} | |
else | |
{ | |
v4 = 0LL; | |
v5 = 0LL; | |
} | |
v6 = sub_1800C6BF4(v4, v5); | |
if ( !(MEMORY[0x180122BE7] & 2) ) | |
sub_1800C6CAC(); | |
result = sub_1800C6B74((__int64)v6); | |
} | |
if ( 5139240511851214385LL != v8 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800D50B0) ---------------------------------------------------- | |
unsigned __int64 __fastcall sub_1800D50B0(unsigned __int64 result, __int64 a2) | |
{ | |
__int64 v2; // x29 | |
__int64 v3; // x30 | |
if ( a2 + result <= result ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -5600394141277327902LL, 490LL, v2, v3); | |
MEMORY[0x180122BF8] = result; | |
MEMORY[0x180122C00] = a2 + result; | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800D5104) ---------------------------------------------------- | |
__int64 sub_1800D5104() | |
{ | |
__int64 v0; // x29 | |
__int64 v1; // x30 | |
__int64 result; // x0 | |
result = MEMORY[0x180122BF8]; | |
if ( !(MEMORY[0x180122BE4] & 0x20) && !MEMORY[0x180122BF8] ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -5600394141277327902LL, 498LL, v0, v1); | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800D5158) ---------------------------------------------------- | |
__int64 sub_1800D5158() | |
{ | |
__int64 v0; // x29 | |
__int64 v1; // x30 | |
__int64 result; // x0 | |
result = MEMORY[0x180122C00]; | |
if ( !(MEMORY[0x180122BE4] & 0x20) && !MEMORY[0x180122C00] ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -5600394141277327902LL, 508LL, v0, v1); | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800D51AC) ---------------------------------------------------- | |
unsigned __int64 __fastcall sub_1800D51AC(unsigned __int64 result, __int64 a2, int a3) | |
{ | |
unsigned __int64 v3; // x9 | |
bool v4; // cf | |
bool v5; // zf | |
signed __int64 v6; // x9 | |
v3 = a2 + result; | |
if ( __CFADD__(a2, result) ) | |
{ | |
v6 = 523LL; | |
goto LABEL_8; | |
} | |
if ( result >> 28 >= 0x87 ) | |
{ | |
v4 = v3 >= 0x870004000LL; | |
v5 = v3 == 36238802944LL; | |
} | |
else | |
{ | |
v4 = 1; | |
v5 = 0; | |
} | |
if ( !v5 && v4 ) | |
{ | |
v6 = 532LL; | |
goto LABEL_8; | |
} | |
if ( a3 != 5 ) | |
{ | |
v6 = 527LL; | |
LABEL_8: | |
sub_1800D489C("%llx:%d", &byte_180101040, -5600394141277327902LL, v6); | |
} | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800D522C) ---------------------------------------------------- | |
void __noreturn sub_1800D522C() | |
{ | |
__int64 v0; // x29 | |
__int64 v1; // x30 | |
int v2; // w9 | |
int v3; // w9 | |
v2 = HIDWORD(qword_1801158C8[9472]); | |
if ( !v2 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -889240221779527096LL, 30LL, v0, v1); | |
v3 = v2 - 1; | |
HIDWORD(qword_1801158C8[9472]) = v3; | |
if ( !v3 ) | |
{ | |
LOBYTE(qword_1801158C8[234]) = 0; | |
sub_1800B05AC(); | |
} | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800D528C) ---------------------------------------------------- | |
void __noreturn sub_1800D528C() | |
{ | |
__int64 v0; // x29 | |
__int64 v1; // x30 | |
if ( MEMORY[0x1801280CC] == 1 ) | |
sub_1800D522C(); | |
sub_1800D489C("%llx:%d", &byte_180101040, -889240221779527096LL, 42LL, v0, v1); | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800D52D8) ---------------------------------------------------- | |
void sub_1800D52D8() | |
{ | |
if ( LOBYTE(qword_1801158C8[234]) ) | |
sub_1800D522C(); | |
} | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800D5338) ---------------------------------------------------- | |
unsigned __int64 sub_1800D5338() | |
{ | |
qword_1801158C8[241] = (__int64)"ksat"; | |
return sub_1800E0EDC((unsigned __int64)"ksat"); | |
} | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800D534C) ---------------------------------------------------- | |
// write access to const memory has been detected, the output may be wrong! | |
_DWORD *__fastcall sub_1800D534C(__int64 a1) | |
{ | |
__int64 v1; // x1 | |
__int64 v2; // x2 | |
__int64 v3; // x3 | |
__int64 v4; // x4 | |
__int64 v5; // x5 | |
__int64 v6; // x6 | |
__int64 v7; // x7 | |
_DWORD *result; // x0 | |
__int64 vars0; // [xsp+0h] [xbp+0h] | |
MEMORY[0x180123018] = sub_1800E1188(a1); | |
sub_1800B1A44(); | |
qword_180115038 = (__int64)&qword_180115030; | |
qword_180115030 = (__int64)&qword_180115030; | |
sub_1800EF260((__int64)"constructing idle task\n", v1, v2, v3, v4, v5, v6, v7, vars0); | |
MEMORY[0x180122FE0] = 0x4000LL; | |
result = sub_1800D53D4((_DWORD *)0x180122C40LL, (__int64)"idle task", (__int64)&loc_1800D54FC, 0LL); | |
result[10] = 1; | |
MEMORY[0x180123000] = 2; | |
BYTE4(qword_1801158C8[6887]) = 1; | |
return result; | |
} | |
// 1800D5374: write access to const memory at 180115038 has been detected | |
// 1800D5378: write access to const memory at 180115030 has been detected | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
// 180115030: using guessed type __int64 qword_180115030; | |
// 180115038: using guessed type __int64 qword_180115038; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800D53D4) ---------------------------------------------------- | |
// write access to const memory has been detected, the output may be wrong! | |
_DWORD *__fastcall sub_1800D53D4(_DWORD *a1, __int64 a2, __int64 a3, __int64 a4) | |
{ | |
__int64 v4; // x20 | |
__int64 v5; // x21 | |
_DWORD *v6; // x19 | |
int v7; // w9 | |
void *v8; // x1 | |
void *v9; // x2 | |
void *v10; // x3 | |
void *v11; // x4 | |
void *v12; // x5 | |
void *v13; // x6 | |
v4 = a4; | |
v5 = a3; | |
v6 = a1; | |
*a1 = 1952543595; | |
a1[239] = 1953721138; | |
sub_1800EFE14((__int64)(a1 + 234), a2, 0x10uLL, 0x10uLL); | |
*((_QWORD *)v6 + 113) = v5; | |
*((_QWORD *)v6 + 114) = v4; | |
sub_1800F612C(); | |
v7 = HIDWORD(qword_1801158C8[6888]) + 1; | |
HIDWORD(qword_1801158C8[6888]) = v7; | |
v6[238] = v7; | |
sub_1800F61B4(); | |
*((_QWORD *)v6 + 3) = 0LL; | |
*((_QWORD *)v6 + 4) = 0LL; | |
*((_QWORD *)v6 + 111) = v6 + 220; | |
*((_QWORD *)v6 + 110) = v6 + 220; | |
*((_QWORD *)v6 + 5) = 0x100000000LL; | |
sub_1800B1BDC(v6, v8, v9, v10, v11, v12, v13, 0x100000000LL); | |
if ( !&off_180114CA0 || &off_180114CA0 != &off_180114CA0 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -7633818827287809967LL, 50LL); | |
*((_QWORD *)v6 + 1) = &off_180114CA0; | |
*((_QWORD *)v6 + 2) = &off_180114CA0; | |
off_180114CA0 = v6 + 2; | |
off_180114CA8[0] = (void **)(v6 + 2); | |
++MEMORY[0x180123000]; | |
return v6; | |
} | |
// 1800D54A0: write access to const memory at 180114CA0 has been detected | |
// 1800D54A4: write access to const memory at 180114CA8 has been detected | |
// 180101040: using guessed type char byte_180101040; | |
// 180114CA0: using guessed type void *off_180114CA0; | |
// 180114CA8: using guessed type void **off_180114CA8[3]; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800D55FC) ---------------------------------------------------- | |
unsigned __int64 sub_1800D55FC() | |
{ | |
unsigned __int64 result; // x0 | |
result = sub_1800E0EE4(); | |
if ( !result ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -7633818827287809967LL, 199LL); | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800D5648) ---------------------------------------------------- | |
_DWORD *__fastcall sub_1800D5648(__int64 a1, __int64 a2, __int64 a3, unsigned __int64 a4) | |
{ | |
unsigned __int64 v4; // x19 | |
__int64 v5; // x20 | |
__int64 v6; // x21 | |
__int64 v7; // x22 | |
_QWORD *v8; // x23 | |
signed __int64 v9; // x8 | |
v4 = a4; | |
v5 = a3; | |
v6 = a2; | |
v7 = a1; | |
v8 = (_QWORD *)sub_1800EDBF4(0x3C0uLL); | |
sub_1800F05A0(v8, 0x3C0uLL); | |
v9 = 0x4000LL; | |
if ( v4 > 0x4000 ) | |
v9 = v4; | |
v8[116] = v9; | |
return sub_1800D53D4(v8, v7, v6, v5); | |
} | |
//----- (00000001800D56B8) ---------------------------------------------------- | |
void __fastcall sub_1800D56B8(__int64 a1) | |
{ | |
__int64 v1; // x19 | |
bool v2; // zf | |
void *v3; // x1 | |
void *v4; // x2 | |
void *v5; // x3 | |
void *v6; // x4 | |
void *v7; // x5 | |
void *v8; // x6 | |
v1 = a1; | |
sub_1800F612C(); | |
if ( (char *)v1 == "ksat" ) | |
v2 = 1; | |
else | |
v2 = v1 == 6443641920LL; | |
if ( !v2 ) | |
{ | |
if ( *(_QWORD *)(v1 + 24) || *(_QWORD *)(v1 + 32) ) | |
sub_1800D5758((_QWORD *)(v1 + 24)); | |
sub_1800D5758((_QWORD *)(v1 + 8)); | |
sub_1800B1D2C(v1, v3, v4, v5, v6, v7, v8); | |
} | |
sub_1800D489C("%llx:%d", &byte_180101040, -7633818827287809967LL, 259LL); | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800D5758) ---------------------------------------------------- | |
_QWORD *__fastcall sub_1800D5758(_QWORD *result) | |
{ | |
__int64 v1; // x29 | |
__int64 v2; // x30 | |
_QWORD **v3; // x8 | |
__int64 v4; // x9 | |
v3 = (_QWORD **)result[1]; | |
if ( !v3 || (v4 = *result) == 0 || *v3 != result || *(_QWORD **)(v4 + 8) != result ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -7633818827287809967LL, 74LL, v1, v2); | |
*v3 = (_QWORD *)v4; | |
*(_QWORD *)(*result + 8LL) = result[1]; | |
*result = 0LL; | |
result[1] = 0LL; | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800D57CC) ---------------------------------------------------- | |
void __fastcall sub_1800D57CC(__int64 a1) | |
{ | |
unsigned __int64 v1; // x0 | |
__int64 v2; // x19 | |
__int64 v3; // x0 | |
unsigned __int64 v4; // x20 | |
__int64 v5; // xzr | |
__int64 v6; // x2 | |
__int64 v7; // x3 | |
__int64 v8; // x4 | |
__int64 v9; // x5 | |
__int64 v10; // x6 | |
__int64 v11; // x7 | |
_QWORD *v12; // x0 | |
__int64 v13; // [xsp+0h] [xbp-30h] | |
sub_1800E1188(a1); | |
v1 = sub_1800D55FC(); | |
v2 = v1; | |
if ( LODWORD(qword_1801158C8[6888]) || *(_DWORD *)(v1 + 40) != 2 ) | |
{ | |
sub_1800F612C(); | |
sub_1800F6010((_QWORD *)0x180116020LL); | |
LOBYTE(qword_1801158C8[6889]) = 0; | |
if ( *(_DWORD *)(v2 + 40) == 2 ) | |
{ | |
*(_DWORD *)(v2 + 40) = 1; | |
if ( v2 != 6443641920LL ) | |
sub_1800D5904(v2); | |
} | |
v3 = sub_1800D5C08((__int64)&off_180114CB0); | |
if ( v3 ) | |
v4 = v3 - 24; | |
else | |
v4 = 0LL; | |
if ( v4 ) | |
{ | |
v5 = (unsigned int)LODWORD(qword_1801158C8[6888])--; | |
} | |
else | |
{ | |
v4 = 6443641920LL; | |
if ( !MEMORY[0x180122C68] ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -7633818827287809967LL, 363LL); | |
} | |
*(_DWORD *)(v4 + 40) = 2; | |
qword_1801158C8[241] = v4; | |
sub_1800E0EDC(v4); | |
v12 = sub_1800E0E48((_QWORD *)(v2 + 48), (_QWORD *)(v4 + 48), v6, v7, v8, v9, v10, v11, v13); | |
sub_1800E1188(v12); | |
sub_1800F61B4(); | |
} | |
} | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
// 180101040: using guessed type char byte_180101040; | |
// 180114CB0: using guessed type void *off_180114CB0; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800D5904) ---------------------------------------------------- | |
_QWORD *__fastcall sub_1800D5904(__int64 a1) | |
{ | |
__int64 v1; // xzr | |
_QWORD *result; // x0 | |
v1 = LODWORD(qword_1801158C8[6888]); | |
result = sub_1800D5AD0(&off_180114CB0, (_QWORD *)(a1 + 24)); | |
++LODWORD(qword_1801158C8[6888]); | |
return result; | |
} | |
// 180114CB0: using guessed type void *off_180114CB0; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800D5940) ---------------------------------------------------- | |
void __fastcall sub_1800D5940(__int64 a1) | |
{ | |
__int64 v1; // x19 | |
v1 = a1; | |
if ( !*(_DWORD *)(a1 + 40) ) | |
{ | |
*(_DWORD *)(a1 + 40) = 1; | |
sub_1800F612C(); | |
sub_1800D5904(v1); | |
sub_1800F61B4(); | |
} | |
} | |
//----- (00000001800D5984) ---------------------------------------------------- | |
void __fastcall __noreturn sub_1800D5984(int a1) | |
{ | |
int v1; // w19 | |
unsigned __int64 v2; // x0 | |
__int64 v3; // x0 | |
v1 = a1; | |
v2 = sub_1800D55FC(); | |
*(_DWORD *)(v2 + 896) = v1; | |
*(_DWORD *)(v2 + 40) = 5; | |
v3 = sub_1800D59F0((_QWORD *)(v2 + 880)); | |
--MEMORY[0x180123000]; | |
sub_1800D57CC(v3); | |
sub_1800D489C("%llx:%d", &byte_180101040, -7633818827287809967LL, 411LL); | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800D59F0) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D59F0(_QWORD *a1) | |
{ | |
_QWORD *v1; // x20 | |
__int64 v2; // x19 | |
_QWORD *i; // x0 | |
__int64 v4; // x21 | |
_QWORD *v5; // x23 | |
v1 = a1; | |
sub_1800F612C(); | |
v2 = 0LL; | |
for ( i = (_QWORD *)v1[1]; i != v1; i = v5 ) | |
{ | |
v4 = (__int64)(i - 3); | |
v5 = (_QWORD *)i[1]; | |
sub_1800D5758(i); | |
*(_DWORD *)(v4 + 40) = 1; | |
sub_1800D5904(v4); | |
v2 = (unsigned int)(v2 + 1); | |
} | |
sub_1800F61B4(); | |
return v2; | |
} | |
//----- (00000001800D5A60) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D5A60(__int64 a1) | |
{ | |
__int64 v1; // x19 | |
v1 = a1; | |
if ( *(_DWORD *)(a1 + 40) != 5 ) | |
sub_1800D5A94((_QWORD *)(a1 + 880)); | |
return *(unsigned int *)(v1 + 896); | |
} | |
//----- (00000001800D5A94) ---------------------------------------------------- | |
void __fastcall sub_1800D5A94(_QWORD *a1) | |
{ | |
_QWORD *v1; // x19 | |
unsigned __int64 v2; // x0 | |
_QWORD *v3; // x0 | |
v1 = a1; | |
sub_1800F612C(); | |
v2 = sub_1800D55FC(); | |
*(_DWORD *)(v2 + 40) = 3; | |
v3 = sub_1800D5AD0(v1, (_QWORD *)(v2 + 24)); | |
sub_1800D57CC((__int64)v3); | |
sub_1800F61B4(); | |
} | |
//----- (00000001800D5AD0) ---------------------------------------------------- | |
_QWORD *__fastcall sub_1800D5AD0(_QWORD *result, _QWORD *a2) | |
{ | |
__int64 v2; // x29 | |
__int64 v3; // x30 | |
_QWORD **v4; // x9 | |
__int64 v5; // x8 | |
v4 = (_QWORD **)result[1]; | |
if ( !v4 || (v5 = *result) == 0 || *v4 != result || *(_QWORD **)(v5 + 8) != result ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -7633818827287809967LL, 62LL, v2, v3); | |
*a2 = v5; | |
a2[1] = result; | |
*(_QWORD *)(*result + 8LL) = a2; | |
*result = a2; | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800D5B44) ---------------------------------------------------- | |
void __fastcall sub_1800D5B44(__int64 a1) | |
{ | |
__int64 v1; // x19 | |
__int64 v2; // x0 | |
__int64 v3; // x0 | |
v1 = a1; | |
if ( BYTE4(qword_1801158C8[6887]) ) | |
{ | |
sub_1800F612C(); | |
v2 = sub_1800D55FC(); | |
*(_DWORD *)(v2 + 40) = 4; | |
sub_1800F5E68((_QWORD *)(v2 + 832), v1, (__int64)sub_1800D5BAC, v2); | |
sub_1800D57CC(v3); | |
sub_1800F61B4(); | |
} | |
else | |
{ | |
sub_1800D5F60(a1); | |
} | |
} | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800D5BAC) ---------------------------------------------------- | |
_QWORD *__fastcall sub_1800D5BAC(__int64 a1, __int64 a2) | |
{ | |
*(_DWORD *)(a2 + 40) = 1; | |
return sub_1800D5904(a2); | |
} | |
//----- (00000001800D5BBC) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800D5BBC(__int64 a1) | |
{ | |
__int64 v1; // x19 | |
__int64 v2; // x0 | |
signed __int64 v3; // x19 | |
__int64 v4; // x0 | |
v1 = a1; | |
sub_1800F612C(); | |
v2 = sub_1800D5C08(v1); | |
v3 = 0LL; | |
if ( v2 ) | |
{ | |
v4 = v2 - 24; | |
if ( v4 ) | |
{ | |
v3 = 1LL; | |
*(_DWORD *)(v4 + 40) = 1; | |
sub_1800D5904(v4); | |
} | |
} | |
sub_1800F61B4(); | |
return v3; | |
} | |
//----- (00000001800D5C08) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D5C08(__int64 a1) | |
{ | |
__int64 v1; // x19 | |
v1 = *(_QWORD *)(a1 + 8); | |
if ( v1 == a1 ) | |
return 0LL; | |
sub_1800D5758(*(_QWORD **)(a1 + 8)); | |
return v1; | |
} | |
//----- (00000001800D5C40) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D5C40(__int64 result, int a2, char a3) | |
{ | |
*(_QWORD *)(result + 8) = result + 8; | |
*(_QWORD *)(result + 16) = result + 8; | |
*(_BYTE *)result = a3; | |
*(_DWORD *)(result + 4) = a2; | |
return result; | |
} | |
//----- (00000001800D5C54) ---------------------------------------------------- | |
void __fastcall sub_1800D5C54(_BYTE *a1) | |
{ | |
_BYTE *v1; // x19 | |
_QWORD *v2; // x0 | |
v1 = a1; | |
sub_1800F612C(); | |
*v1 = 1; | |
v2 = v1 + 8; | |
if ( v1[4] & 1 ) | |
{ | |
if ( (signed int)sub_1800D5BBC((__int64)v2) >= 1 ) | |
*v1 = 0; | |
} | |
else | |
{ | |
sub_1800D59F0(v2); | |
} | |
sub_1800F61B4(); | |
} | |
//----- (00000001800D5CA0) ---------------------------------------------------- | |
_BYTE *__fastcall sub_1800D5CA0(_BYTE *result) | |
{ | |
*result = 0; | |
return result; | |
} | |
//----- (00000001800D5D18) ---------------------------------------------------- | |
void __fastcall sub_1800D5D18(_BYTE *a1) | |
{ | |
_BYTE *v1; // x19 | |
__int64 v2; // x0 | |
_BYTE *v3; // x19 | |
v3 = a1; | |
if ( BYTE4(qword_1801158C8[6887]) ) | |
{ | |
sub_1800F612C(); | |
if ( *v3 ) | |
{ | |
if ( v3[4] & 1 ) | |
*v3 = 0; | |
} | |
else | |
{ | |
sub_1800D5A94((_QWORD *)v3 + 1); | |
} | |
sub_1800F61B4(); | |
} | |
else | |
{ | |
v1 = a1; | |
while ( 1 ) | |
{ | |
sub_1800F612C(); | |
if ( *v1 ) | |
break; | |
sub_1800F61B4(); | |
if ( sub_1800D5F1C(v2) > 0xFFFFFFFFFFFFFFFFLL ) | |
return; | |
} | |
if ( v1[4] & 1 ) | |
*v1 = 0; | |
} | |
} | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800D5D78) ---------------------------------------------------- | |
bool __fastcall sub_1800D5D78(__int64 a1, __int64 a2) | |
{ | |
__int64 v2; // x20 | |
__int64 v3; // x19 | |
_BOOL8 v4; // x19 | |
_QWORD *v5; // x21 | |
__int64 v7; // [xsp+40h] [xbp-40h] | |
unsigned __int64 v8; // [xsp+48h] [xbp-38h] | |
__int64 v9; // [xsp+50h] [xbp-30h] | |
__int64 v10; // [xsp+58h] [xbp-28h] | |
v2 = a2; | |
v3 = a1; | |
v10 = 5139240511851214385LL; | |
if ( !BYTE4(qword_1801158C8[6887]) ) | |
{ | |
if ( 5139240511851214385LL == v10 ) | |
JUMPOUT(&loc_1800D5CA8); | |
LABEL_13: | |
sub_1800D4A5C(); | |
} | |
sub_1800F612C(); | |
if ( *(_BYTE *)v3 ) | |
{ | |
if ( *(_BYTE *)(v3 + 4) & 1 ) | |
*(_BYTE *)v3 = 0; | |
v4 = 1LL; | |
} | |
else if ( v2 ) | |
{ | |
v7 = v3; | |
v8 = sub_1800D55FC(); | |
LOBYTE(v9) = 0; | |
v5 = (_QWORD *)(v8 + 832); | |
sub_1800F5E68((_QWORD *)(v8 + 832), v2, (__int64)&loc_1800D5E8C, (__int64)&v7); | |
sub_1800D5A94((_QWORD *)(v3 + 8)); | |
sub_1800F6010(v5); | |
v4 = (_BYTE)v9 == 0; | |
} | |
else | |
{ | |
v4 = 0LL; | |
} | |
sub_1800F61B4(); | |
if ( 5139240511851214385LL != v10 ) | |
goto LABEL_13; | |
return v4; | |
} | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800D5F0C) ---------------------------------------------------- | |
void sub_1800D5F0C() | |
{ | |
LOBYTE(qword_1801158C8[6889]) = 1; | |
} | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800D5F1C) ---------------------------------------------------- | |
unsigned __int64 __fastcall sub_1800D5F1C(__int64 a1) | |
{ | |
unsigned __int64 v1; // x19 | |
v1 = sub_1800E1188(a1); | |
return v1 / (unsigned int)sub_1800E11E8(); | |
} | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
//----- (00000001800D5F30) ---------------------------------------------------- | |
bool __fastcall sub_1800D5F30(__int64 a1, unsigned __int64 a2) | |
{ | |
return sub_1800D5F1C(a1) - a1 >= a2; | |
} | |
//----- (00000001800D5F60) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D5F60(__int64 a1) | |
{ | |
__int64 v1; // x20 | |
__int64 v2; // x19 | |
__int64 result; // x0 | |
unsigned __int64 v4; // x20 | |
v1 = a1; | |
v2 = sub_1800E1188(a1); | |
result = sub_1800E129C(v1); | |
v4 = result; | |
do | |
result = sub_1800E1188(result); | |
while ( result - v2 <= v4 ); | |
return result; | |
} | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
//----- (00000001800D60D8) ---------------------------------------------------- | |
__int64 sub_1800D60D8() | |
{ | |
int v0; // w19 | |
int v1; // w19 | |
int v2; // w19 | |
if ( !(qword_1801158C8[6896] & 1) ) | |
{ | |
sub_1800B7F70(5120LL, 0); | |
sub_1800B7F70(2819LL, 0); | |
sub_1800B7F70(2818LL, 0); | |
sub_1800B7F70(2817LL, 0); | |
sub_1800B8090(5120LL, -1); | |
sub_1800B8090(2819LL, -1); | |
sub_1800B8090(2818LL, -1); | |
sub_1800B8090(2817LL, -1); | |
sub_1800D5F60(100LL); | |
v0 = sub_1800B7D30(2817LL); | |
v1 = 4 * (unsigned __int64)sub_1800B7D30(2818LL) | 8 * v0; | |
v2 = v1 | 2 * (unsigned __int64)sub_1800B7D30(2819LL); | |
MEMORY[0x18012304C] = (v2 | (unsigned __int64)sub_1800B7D30(5120LL)) ^ 0xF; | |
sub_1800B7F70(5120LL, 4); | |
sub_1800B7F70(2819LL, 4); | |
sub_1800B7F70(2818LL, 4); | |
sub_1800B7F70(2817LL, 4); | |
MEMORY[0x180123048] = 1; | |
} | |
return MEMORY[0x18012304C]; | |
} | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800D61EC) ---------------------------------------------------- | |
signed __int64 sub_1800D61EC() | |
{ | |
int v0; // w19 | |
unsigned int v1; // w20 | |
signed __int64 result; // x0 | |
v0 = sub_1800C678C(); | |
v1 = sub_1800D60D8(); | |
if ( sub_1800E0D14() ) | |
result = 1LL; | |
else | |
result = ((v0 | 4) == 14) & (unsigned __int8)(v1 < 0xF); | |
return result; | |
} | |
//----- (00000001800D623C) ---------------------------------------------------- | |
signed __int64 sub_1800D623C() | |
{ | |
__int64 v0; // x1 | |
__int64 v1; // x2 | |
__int64 v2; // x3 | |
__int64 v3; // x4 | |
__int64 v4; // x5 | |
__int64 v5; // x6 | |
__int64 v6; // x7 | |
__int64 v7; // x1 | |
__int64 v8; // x2 | |
__int64 v9; // x3 | |
__int64 v10; // x4 | |
__int64 v11; // x5 | |
__int64 v12; // x6 | |
__int64 v13; // x7 | |
signed __int64 result; // x0 | |
unsigned __int8 v15; // [xsp+17h] [xbp-19h] | |
__int64 v16; // [xsp+18h] [xbp-18h] | |
v16 = 5139240511851214385LL; | |
if ( sub_1800E0D14() ) | |
{ | |
if ( (unsigned int)sub_1800D7568(1u) ) | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v0, v1, v2, v3, v4, v5, v6, -740463559713838239LL); | |
} | |
else | |
{ | |
sub_1800BB884(1u, 2403, 148, 1); | |
sub_1800D75CC(1u); | |
} | |
} | |
v15 = 0; | |
sub_1800BB8A4(1u, 513, &v15); | |
if ( v15 > 0xDu | |
|| (!(unsigned int)sub_1800D7568(1u) ? (sub_1800BB884(1u, 12641, 240, 0), sub_1800D75CC(1u)) : sub_1800EF260( | |
(__int64)"%llx:%d\n", | |
v7, | |
v8, | |
v9, | |
v10, | |
v11, | |
v12, | |
v13, | |
-740463559713838239LL), | |
sub_1800BB884(1u, 12544, 123, 0), | |
result = sub_1800BB884(1u, 793, 0, 0), | |
v15 >= 0xDu) ) | |
{ | |
result = sub_1800E0D14(); | |
if ( (_DWORD)result ) | |
{ | |
sub_1800BB884(1u, 803, 7, 0); | |
result = sub_1800BB884(1u, 2368, 73, 0); | |
} | |
} | |
if ( 5139240511851214385LL != v16 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800D63A4) ---------------------------------------------------- | |
void sub_1800D63A4() | |
{ | |
sub_1800D60D8(); | |
JUMPOUT(&loc_1800BC81C); | |
} | |
//----- (00000001800D63C4) ---------------------------------------------------- | |
__int64 sub_1800D63C4() | |
{ | |
unsigned __int64 v0; // x20 | |
int v1; // w22 | |
unsigned int v2; // w19 | |
__int64 result; // x0 | |
__int64 v4; // x1 | |
__int64 v5; // x2 | |
__int64 v6; // x3 | |
__int64 v7; // x4 | |
__int64 v8; // x5 | |
__int64 v9; // x6 | |
__int64 v10; // x7 | |
int v11; // w21 | |
__int64 v12; // x8 | |
v0 = sub_1800C58E4(); | |
v1 = sub_1800C678C(); | |
v2 = sub_1800D60D8(); | |
result = sub_1800E0CBC(); | |
v11 = result; | |
if ( !(result & 1) ) | |
result = sub_1800D64AC(); | |
if ( (unsigned int)(v1 - 10) > 5 ) | |
v12 = 0x80000000LL; | |
else | |
v12 = qword_18010F100[v1 - 10]; | |
if ( v0 != v12 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -740463559713838239LL, 668LL); | |
if ( v11 ) | |
{ | |
if ( v2 <= 0xC ) | |
LABEL_13: | |
sub_1800E0628((__int64)"(called by %s at %s:%d)\n", v4, v5, v6, v7, v8, v9, v10); | |
} | |
else if ( v2 <= 5 ) | |
{ | |
goto LABEL_13; | |
} | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 18010F100: using guessed type __int64 qword_18010F100[6]; | |
//----- (00000001800D64AC) ---------------------------------------------------- | |
__int64 sub_1800D64AC() | |
{ | |
signed __int64 v0; // x8 | |
int v1; // w19 | |
int v2; // w8 | |
if ( !(MEMORY[0x180123049] & 1) ) | |
{ | |
if ( sub_1800E0CBC() ) | |
{ | |
MEMORY[0x180123050] = 0; | |
if ( ((unsigned int)sub_1800C678C() | 4) != 14 ) | |
{ | |
v0 = 500LL; | |
goto LABEL_10; | |
} | |
} | |
else | |
{ | |
v1 = sub_1800B81F4(5383LL); | |
v2 = v1 | 16 * (unsigned __int64)sub_1800B81F4(4866LL); | |
MEMORY[0x180123050] = v2; | |
if ( v2 && v2 != 17 ) | |
{ | |
v0 = 532LL; | |
LABEL_10: | |
sub_1800D489C("%llx:%d", &byte_180101040, -740463559713838239LL, v0); | |
} | |
} | |
MEMORY[0x180123049] = 1; | |
} | |
return MEMORY[0x180123050]; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800D6570) ---------------------------------------------------- | |
__int64 sub_1800D6570() | |
{ | |
return 0LL; | |
} | |
//----- (00000001800D6578) ---------------------------------------------------- | |
signed __int64 sub_1800D6578() | |
{ | |
signed __int64 result; // x0 | |
result = sub_1800C68B8(); | |
if ( (_DWORD)result ) | |
result = sub_1800D9AA4(); | |
return result; | |
} | |
//----- (00000001800D6598) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800D6598(_BYTE *a1) | |
{ | |
_BYTE *v1; // x19 | |
v1 = a1; | |
if ( (unsigned int)sub_1800BC6B0() == 1 ) | |
{ | |
*v1 = 1; | |
return sub_1800C6898(); | |
} | |
if ( *v1 ) | |
return sub_1800C6898(); | |
return 1LL; | |
} | |
//----- (00000001800D65E4) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D65E4(int a1) | |
{ | |
int v1; // w19 | |
__int64 result; // x0 | |
v1 = a1; | |
result = sub_1800C6898(); | |
if ( (_DWORD)result ) | |
{ | |
if ( v1 ) | |
result = (unsigned int)sub_1800D9AA4() ^ 1; | |
} | |
return result; | |
} | |
//----- (00000001800D6614) ---------------------------------------------------- | |
signed __int64 sub_1800D6614() | |
{ | |
signed __int64 result; // x0 | |
if ( (unsigned int)sub_1800B7D30(519LL) || (unsigned int)sub_1800B7D30(5636LL) ) | |
result = 0LL; | |
else | |
result = sub_1800D9AA4(); | |
return result; | |
} | |
//----- (00000001800D6648) ---------------------------------------------------- | |
__int64 *sub_1800D6648() | |
{ | |
return qword_1801154E8; | |
} | |
// 1801154E8: using guessed type __int64 qword_1801154E8[14]; | |
//----- (00000001800D66C4) ---------------------------------------------------- | |
signed __int64 sub_1800D66C4() | |
{ | |
return 12LL; | |
} | |
//----- (00000001800D66CC) ---------------------------------------------------- | |
signed __int64 sub_1800D66CC() | |
{ | |
return 19LL; | |
} | |
//----- (00000001800D66D4) ---------------------------------------------------- | |
__int64 sub_1800D66D4() | |
{ | |
unsigned int v0; // w0 | |
__int64 v1; // x1 | |
__int64 v2; // x2 | |
__int64 v3; // x3 | |
__int64 v4; // x4 | |
__int64 v5; // x5 | |
__int64 v6; // x6 | |
__int64 v7; // x7 | |
int v8; // w0 | |
__int64 v9; // x2 | |
__int64 v10; // x1 | |
__int64 v11; // x2 | |
__int64 v12; // x3 | |
__int64 v13; // x4 | |
__int64 v14; // x5 | |
__int64 v15; // x6 | |
__int64 v16; // x7 | |
__int64 v17; // x8 | |
__int64 v19; // [xsp+10h] [xbp-50h] | |
__int64 v20; // [xsp+18h] [xbp-48h] | |
unsigned int v21; // [xsp+24h] [xbp-3Ch] | |
__int64 *v22; // [xsp+28h] [xbp-38h] | |
__int64 v23; // [xsp+30h] [xbp-30h] | |
__int64 v24; // [xsp+48h] [xbp-18h] | |
v24 = 5139240511851214385LL; | |
v0 = sub_1800C678C(); | |
if ( v0 <= 0xF ) | |
{ | |
if ( (1 << v0) & 0xCC00 ) | |
{ | |
if ( sub_1800ECB8C("emu", 0LL) ) | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v1, v2, v3, v4, v5, v6, v7, -740463559713838239LL); | |
if ( (unsigned int)sub_1800EBDF4(0LL, "product", &v22) ) | |
{ | |
sub_1800EC41C((__int64)v22, "product-description", (__int64)"iPhone (emulated)"); | |
sub_1800EC320((__int64)v22, "artwork-device-subtype", 2436); | |
sub_1800EC41C((__int64)v22, "graphics-featureset-class", (__int64)"MTL3,2"); | |
sub_1800EC41C((__int64)v22, "graphics-featureset-fallbacks", (__int64)"MTL3,1:MTL2,2:MTL1,2:GLES2,0"); | |
sub_1800EC41C((__int64)v22, "compatible-device-fallback", (__int64)&byte_180101040); | |
} | |
} | |
} | |
} | |
if ( sub_1800E0D14() ) | |
{ | |
v8 = sub_1800D64AC(); | |
if ( v8 ) | |
{ | |
if ( v8 != 17 ) | |
sub_1800D489C("%llx:%d", &byte_180101040, -740463559713838239LL, 810LL); | |
if ( (unsigned int)sub_1800EBDF4(0LL, "arm-io/spi2/multi-touch", &v22) ) | |
sub_1800EC460(v22, "compatible"); | |
} | |
} | |
if ( (unsigned int)sub_1800EBDF4(0LL, "arm-io/aop/iop-aop-nub/compass", &v22) | |
&& (unsigned int)sub_1800EC0DC((__int64)v22, "compass-orientation", &v20, &v21) ) | |
{ | |
sub_1800F661C(1129475956, (_QWORD *)v20, v21); | |
} | |
sub_1800C3C68("arm-io/i2c0/display-pmu"); | |
if ( (unsigned int)sub_1800EBDF4(0LL, "arm-io/mipi-dsim/lcd", &v22) ) | |
{ | |
if ( !(sub_1800EBDF4(0LL, "arm-io/disp0", &v23) & 1) ) | |
v23 = 0LL; | |
if ( (unsigned int)sub_1800EBDF4(0LL, "backlight", &v19) ) | |
{ | |
v9 = v19; | |
} | |
else | |
{ | |
v9 = 0LL; | |
v19 = 0LL; | |
} | |
sub_1800E2914((__int64)v22, v23, v9); | |
} | |
if ( (unsigned int)sub_1800EBDF4(0LL, "arm-io/mipi-dsim", &v22) ) | |
sub_1800C0CB4((__int64)v22, v10, v11, v12, v13, v14, v15, v16); | |
if ( (unsigned int)sub_1800EBDF4(0LL, "arm-io/i2c0/audio-speaker", &v22) | |
&& (unsigned int)sub_1800EC0DC((__int64)v22, "speaker-config", &v20, &v21) | |
&& (unsigned int)sub_1800F661C(1447183169, &v23, 0x14uLL) == 20 ) | |
{ | |
v17 = v20; | |
*(_BYTE *)(v20 + 12) = *(_BYTE *)(v20 + 12) & 0xE0 | BYTE4(v23) & 0x1F; | |
*(_BYTE *)(v17 + 16) = v23; | |
} | |
sub_1800E3040((__int64)qword_180115110, 1); | |
if ( 5139240511851214385LL != v24 ) | |
sub_1800D4A5C(); | |
return 0LL; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 180114C90: using guessed type __int64 qword_180114C90; | |
// 180115110: using guessed type __int64 qword_180115110[7]; | |
//----- (00000001800D69B8) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D69B8(int a1, __int64 a2) | |
{ | |
bool v2; // zf | |
if ( a2 ) | |
{ | |
if ( a1 == 8 ) | |
v2 = 1; | |
else | |
v2 = a1 == 6; | |
if ( v2 ) | |
{ | |
*(_DWORD *)a2 = 1; | |
*(_DWORD *)(a2 + 4) = 2; | |
*(_QWORD *)(a2 + 8) = "GCLC"; | |
*(_QWORD *)(a2 + 16) = 0LL; | |
} | |
else | |
{ | |
a2 = 0LL; | |
} | |
} | |
return a2; | |
} | |
//----- (00000001800D6B14) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800D6B14(char a1, __int64 a2, __int64 a3, unsigned __int64 a4, int a5, __int64 a6, _QWORD *a7) | |
{ | |
_QWORD *v7; // x23 | |
__int64 v8; // x20 | |
unsigned __int64 v9; // x22 | |
__int64 v10; // x19 | |
__int64 v11; // x21 | |
unsigned int v12; // w9 | |
signed __int64 result; // x0 | |
unsigned int v14; // w10 | |
__int64 v15; // x24 | |
__int64 *v16; // x0 | |
__int64 *v17; // x0 | |
signed __int64 v18; // x9 | |
v7 = a7; | |
v8 = a6; | |
v9 = a4; | |
v10 = a3; | |
v11 = a2; | |
if ( a4 & 0xF || !(a5 & 0xFFF) && !a6 || (v12 = a1 & 0xF, v12 > 1) ) | |
{ | |
v18 = 167LL; | |
goto LABEL_27; | |
} | |
if ( a5 & 0xFFF ) | |
{ | |
if ( (unsigned int)((__int64 (*)(void))loc_1800B52A0)() ) | |
result = 0xFFFFFFFFLL; | |
else | |
result = 0LL; | |
return result; | |
} | |
v14 = a5 & 0xF0000000; | |
if ( !(a5 & 0xF0000000) ) | |
{ | |
v15 = 16LL; | |
goto LABEL_16; | |
} | |
if ( v14 == 0x20000000 ) | |
{ | |
v15 = 32LL; | |
goto LABEL_16; | |
} | |
if ( v14 != 0x10000000 ) | |
{ | |
v18 = 92LL; | |
LABEL_27: | |
sub_1800D489C("%llx:%d", &byte_180101040, 5420575940684019856LL, v18); | |
} | |
v15 = 24LL; | |
LABEL_16: | |
if ( (a1 & 0xF0) == 16 ) | |
{ | |
if ( v12 == 1 ) | |
v16 = sub_1800FCFEC(); | |
else | |
v16 = sub_1800FCFF8(); | |
sub_1800FC788((__int64)v16, v15, v8, v7, v9 >> 4, v11, v10); | |
} | |
else | |
{ | |
if ( v12 == 1 ) | |
v17 = sub_1800FD004(); | |
else | |
v17 = sub_1800FD010(); | |
sub_1800D6C78((__int64)v17, v15, v8, v9, v11, v10); | |
} | |
return 0LL; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800D6C78) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D6C78(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6) | |
{ | |
__int64 v6; // x19 | |
__int64 v7; // x20 | |
__int64 v8; // x21 | |
__int64 v9; // x22 | |
signed __int64 *v10; // x23 | |
__int64 result; // x0 | |
__int64 v12; // [xsp+0h] [xbp-40h] | |
__int64 v13; // [xsp+8h] [xbp-38h] | |
v6 = a6; | |
v7 = a5; | |
v8 = a4; | |
v9 = a1; | |
v13 = 5139240511851214385LL; | |
v10 = (__int64 *)((char *)&v12 - ((*(_QWORD *)a1 + 15LL) & 0xFFFFFFFFFFFFFFF0LL)); | |
(*(void (**)(void))(a1 + 16))(); | |
(*(void (__fastcall **)(signed __int64 *, __int64, __int64, __int64))(v9 + 24))(v10, v8, v7, v6); | |
result = sub_1800FE1D0(*(_QWORD *)v9, v10); | |
if ( 5139240511851214385LL != v13 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800D6D3C) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800D6D3C(__int64 a1, int a2, __int64 a3) | |
{ | |
int v3; // w20 | |
__int64 v4; // x19 | |
signed __int64 result; // x0 | |
v3 = a2; | |
v4 = a1; | |
result = 0xFFFFFFFFLL; | |
if ( v4 && a3 ) | |
{ | |
*(_QWORD *)v4 = a3; | |
*(_DWORD *)(v4 + 8) = a2; | |
sub_1800D5C40(v4 + 24, 1, 0); | |
sub_1800D5C40(v4 + 48, 1, 0); | |
if ( v3 == 2 ) | |
{ | |
sub_1800D7274(v4); | |
} | |
else | |
{ | |
if ( v3 != 1 ) | |
return 4294967294LL; | |
sub_1800D6F14(v4); | |
} | |
*(_QWORD *)(v4 + 88) = 128LL; | |
if ( sub_1800EEA08() && (unsigned int)sub_1800EE9F0() >= 0xC01 ) | |
{ | |
*(_QWORD *)(v4 + 104) = sub_1800EDBF4(24LL * *(_QWORD *)(v4 + 88)); | |
} | |
else | |
{ | |
*(_QWORD *)(v4 + 88) = 0LL; | |
*(_QWORD *)(v4 + 104) = 0LL; | |
} | |
result = 0LL; | |
*(_QWORD *)(v4 + 96) = 0LL; | |
*(_DWORD *)(*(unsigned int *)(v4 + 80) + *(_QWORD *)v4) = 4369; | |
*(_DWORD *)(*(unsigned int *)(v4 + 72) + *(_QWORD *)v4) |= 1u; | |
*(_DWORD *)(*(unsigned int *)(v4 + 76) + *(_QWORD *)v4) |= 1u; | |
} | |
return result; | |
} | |
//----- (00000001800D6E3C) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D6E3C(__int64 a1) | |
{ | |
__int64 v1; // x19 | |
_QWORD *v2; // x0 | |
v1 = a1; | |
v2 = *(_QWORD **)(a1 + 104); | |
if ( v2 ) | |
sub_1800EE010(v2); | |
*(_QWORD *)(v1 + 104) = 0LL; | |
*(_QWORD *)(v1 + 88) = 0LL; | |
return 0LL; | |
} | |
//----- (00000001800D6E70) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D6E70(__int64 result, int a2) | |
{ | |
int v2; // w8 | |
__int64 v3; // x19 | |
__int64 v4; // x0 | |
__int64 v5; // x0 | |
__int64 v6; // x0 | |
__int64 v7; // x19 | |
__int64 v8; // x0 | |
v2 = *(_DWORD *)(result + 8); | |
if ( v2 == 2 ) | |
{ | |
v7 = result; | |
if ( !(a2 & 1) ) | |
{ | |
((void (__fastcall *)(_QWORD))loc_1800B55EC)(*(unsigned int *)(result + 16)); | |
v8 = *(unsigned int *)(v7 + 12); | |
JUMPOUT(&loc_1800B55EC); | |
} | |
} | |
else if ( v2 == 1 ) | |
{ | |
v3 = result; | |
v4 = *(unsigned int *)(result + 16); | |
if ( a2 ) | |
{ | |
((void (__fastcall *)(__int64))loc_1800B562C)(v4); | |
v5 = *(unsigned int *)(v3 + 12); | |
JUMPOUT(&loc_1800B562C); | |
} | |
((void (__fastcall *)(__int64))loc_1800B55EC)(v4); | |
v6 = *(unsigned int *)(v3 + 12); | |
JUMPOUT(&loc_1800B55EC); | |
} | |
return result; | |
} | |
//----- (00000001800D6E90) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D6E90(__int64 result, _QWORD *a2, char a3) | |
{ | |
char v3; // w20 | |
_QWORD *v4; // x19 | |
__int64 v5; // x9 | |
signed __int64 v6; // x8 | |
v3 = a3; | |
v4 = (_QWORD *)result; | |
if ( *(_QWORD *)(result + 88) ) | |
{ | |
*(_QWORD *)(*(_QWORD *)(result + 104) + 24LL * *(_QWORD *)(result + 96) + 8) = a2[1]; | |
*(_QWORD *)(*(_QWORD *)(result + 104) + 24LL * *(_QWORD *)(result + 96)) = *a2; | |
result = sub_1800E1188(result); | |
*(_QWORD *)(v4[13] + 24LL * v4[12] + 16) = result & 0xFFFFFFFFFFFFFFFCLL | v3 & 3; | |
v5 = v4[12]; | |
if ( (unsigned __int64)(v5 + 1) < v4[11] ) | |
v6 = v5 + 1; | |
else | |
v6 = 0LL; | |
v4[12] = v6; | |
} | |
return result; | |
} | |
// 1800E1188: using guessed type __int64 __fastcall sub_1800E1188(_QWORD); | |
//----- (00000001800D6F14) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D6F14(__int64 a1) | |
{ | |
__int64 v1; // x19 | |
v1 = a1; | |
*(_QWORD *)(a1 + 72) = 70506183147528LL; | |
*(_QWORD *)(a1 + 80) = 70385924063232LL; | |
*(_DWORD *)(*(_QWORD *)a1 + 3076LL) = 4369; | |
sub_1800B5688(*(_DWORD *)(a1 + 16), (__int64)sub_1800D6F74, a1); | |
return sub_1800B5688(*(_DWORD *)(v1 + 12), (__int64)sub_1800D6F98, v1); | |
} | |
//----- (00000001800D6F74) ---------------------------------------------------- | |
void __fastcall sub_1800D6F74(__int64 a1) | |
{ | |
__int64 v1; // xzr | |
*(_DWORD *)(*(unsigned int *)(a1 + 80) + *(_QWORD *)a1) = 4096; | |
v1 = *(unsigned int *)(*(unsigned int *)(a1 + 76) + *(_QWORD *)a1); | |
sub_1800D5C54((_BYTE *)(a1 + 24)); | |
} | |
//----- (00000001800D6F98) ---------------------------------------------------- | |
void __fastcall sub_1800D6F98(__int64 a1) | |
{ | |
__int64 v1; // xzr | |
*(_DWORD *)(*(unsigned int *)(a1 + 80) + *(_QWORD *)a1) = 1; | |
v1 = *(unsigned int *)(*(unsigned int *)(a1 + 72) + *(_QWORD *)a1); | |
sub_1800D5C54((_BYTE *)(a1 + 48)); | |
} | |
//----- (00000001800D7274) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D7274(__int64 a1) | |
{ | |
__int64 v1; // x19 | |
v1 = a1; | |
*(_QWORD *)(a1 + 72) = 141888539623688LL; | |
*(_QWORD *)(a1 + 80) = 141854179885312LL; | |
sub_1800B5688(*(_DWORD *)(a1 + 16), (__int64)sub_1800D72C8, a1); | |
return sub_1800B5688(*(_DWORD *)(v1 + 12), (__int64)sub_1800D72F0, v1); | |
} | |
//----- (00000001800D72C8) ---------------------------------------------------- | |
void __fastcall sub_1800D72C8(__int64 a1) | |
{ | |
__int64 v1; // x19 | |
v1 = a1; | |
((void (__fastcall *)(_QWORD))loc_1800B55EC)(*(unsigned int *)(a1 + 16)); | |
sub_1800D5C54((_BYTE *)(v1 + 24)); | |
} | |
//----- (00000001800D72F0) ---------------------------------------------------- | |
void __fastcall sub_1800D72F0(__int64 a1) | |
{ | |
__int64 v1; // x19 | |
v1 = a1; | |
((void (__fastcall *)(_QWORD))loc_1800B55EC)(*(unsigned int *)(a1 + 12)); | |
sub_1800D5C54((_BYTE *)(v1 + 48)); | |
} | |
//----- (00000001800D7568) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800D7568(unsigned int a1) | |
{ | |
unsigned int v1; // w19 | |
signed __int64 v2; // x20 | |
signed __int64 result; // x0 | |
v1 = a1; | |
v2 = 0uLL; | |
while ( v2 <= 3 ) | |
{ | |
result = sub_1800BB884(v1, (unsigned __int16)v2 + 28673, (unsigned __int8)byte_18010FB4C[v2], 0); | |
++v2; | |
if ( (_DWORD)result ) | |
return result; | |
} | |
return 0LL; | |
} | |
//----- (00000001800D75CC) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800D75CC(unsigned int a1) | |
{ | |
signed __int64 result; // x0 | |
result = sub_1800BB884(a1, 28672, 0, 0); | |
if ( (_DWORD)result ) | |
sub_1800D489C("%llx:%d", &byte_180101040, 6396108908777904807LL, 71LL); | |
return result; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
//----- (00000001800D7624) ---------------------------------------------------- | |
signed __int64 sub_1800D7624() | |
{ | |
signed __int64 result; // x0 | |
sub_1800D7648(); | |
result = sub_1800E9290(); | |
if ( (_DWORD)result ) | |
{ | |
sub_1800D769C(); | |
result = 0xFFFFFFFFLL; | |
} | |
return result; | |
} | |
//----- (00000001800D7648) ---------------------------------------------------- | |
void sub_1800D7648() | |
{ | |
if ( !(MEMORY[0x180123532] & 1) ) | |
{ | |
MEMORY[0x180123530] = sub_1800D7B54(0x2004500u); | |
MEMORY[0x180123531] = sub_1800D7B54(0x2004B00u); | |
MEMORY[0x180123532] = 1; | |
} | |
} | |
//----- (00000001800D769C) ---------------------------------------------------- | |
void sub_1800D769C() | |
{ | |
if ( LOBYTE(qword_1801158C8[7051]) != 1 ) | |
JUMPOUT(&loc_1800D76CC); | |
JUMPOUT(qword_1801158C8[242], 0, sub_1800D76BC); | |
if ( MEMORY[0x180125BB1] == 1 ) | |
{ | |
sub_1800F0620((signed __int64 *)0x180125BF8LL, 0, 0x90uLL); | |
if ( MEMORY[0x180125BD8] ) | |
{ | |
sub_1800EE010(MEMORY[0x180125BD8]); | |
MEMORY[0x180125BD8] = 0LL; | |
} | |
MEMORY[0x180125BB1] = 0; | |
} | |
} | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800D76BC) ---------------------------------------------------- | |
void sub_1800D76BC() | |
{ | |
nullsub_16(); | |
JUMPOUT(&loc_1800E9758); | |
} | |
// 1800E9A20: using guessed type __int64 nullsub_16(void); | |
//----- (00000001800D7778) ---------------------------------------------------- | |
signed __int64 sub_1800D7778() | |
{ | |
signed __int64 result; // x0 | |
int v1; // w0 | |
void **v2; // x0 | |
sub_1800D7648(); | |
v2 = sub_1800E5634(); | |
if ( qword_1801158C8[7051] & 1 ) | |
return 0LL; | |
sub_1800E76E0(v2); | |
if ( LOBYTE(qword_1801158C8[242]) ) | |
{ | |
if ( (unsigned int)sub_1800E7E54((__int64)"Apple Mobile Device (DFU Mode)") == -1 ) | |
goto LABEL_13; | |
v1 = sub_1800E8DD4(); | |
} | |
else | |
{ | |
if ( (unsigned int)sub_1800E7E54((__int64)"Apple Mobile Device (Recovery Mode)") == -1 | |
|| (unsigned int)sub_1800E98AC() == -1 ) | |
{ | |
goto LABEL_13; | |
} | |
v1 = sub_1800E9378(); | |
} | |
if ( v1 != -1 && (unsigned int)sub_1800E8050() != -1 ) | |
{ | |
result = 0LL; | |
LOBYTE(qword_1801158C8[7051]) = 1; | |
return result; | |
} | |
LABEL_13: | |
sub_1800D769C(); | |
return 0xFFFFFFFFLL; | |
} | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800D7790) ---------------------------------------------------- | |
__int64 sub_1800D7790() | |
{ | |
__int64 result; // x0 | |
if ( LOBYTE(qword_1801158C8[7051]) == 1 ) | |
{ | |
sub_1800E8C80(); | |
sub_1800D769C(); | |
result = sub_1800E76E0(0LL); | |
LOBYTE(qword_1801158C8[7051]) = 0; | |
} | |
return result; | |
} | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800D77CC) ---------------------------------------------------- | |
void sub_1800D77CC() | |
{ | |
LOBYTE(qword_1801158C8[242]) = 1; | |
} | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800D77DC) ---------------------------------------------------- | |
__int64 sub_1800D77DC() | |
{ | |
return LOBYTE(qword_1801158C8[242]); | |
} | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800D77E8) ---------------------------------------------------- | |
__int64 sub_1800D77E8() | |
{ | |
return MEMORY[0x180123531]; | |
} | |
//----- (00000001800D77F8) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800D77F8(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
_BYTE *v8; // x19 | |
_DWORD *v9; // x20 | |
__int64 v10; // x21 | |
signed __int64 result; // x0 | |
v8 = (_BYTE *)a3; | |
v9 = (_DWORD *)a2; | |
v10 = a1; | |
sub_1800EF260((__int64)"%llx:%d\n", a2, a3, a4, a5, a6, a7, a8, -8535276184153498425LL); | |
result = sub_1800F56A4(v10, v9); | |
*v8 = result; | |
return result; | |
} | |
//----- (00000001800D7870) ---------------------------------------------------- | |
void sub_1800D7870() | |
{ | |
sub_1800D5C54((_BYTE *)0x180123568LL); | |
} | |
//----- (00000001800D7880) ---------------------------------------------------- | |
void sub_1800D7880() | |
{ | |
sub_1800D5C54((_BYTE *)0x180123580LL); | |
} | |
//----- (00000001800D7890) ---------------------------------------------------- | |
void sub_1800D7890() | |
{ | |
if ( (unsigned int)sub_1800E7B4C() - 1 <= 2 ) | |
sub_1800D5C54((_BYTE *)0x180123580LL); | |
JUMPOUT(&loc_1800E7A68); | |
} | |
//----- (00000001800D78D4) ---------------------------------------------------- | |
void sub_1800D78D4() | |
{ | |
if ( !MEMORY[0x180123538] && !LOBYTE(qword_1801158C8[242]) ) | |
{ | |
sub_1800D5C40(6443644240LL, 1, 0); | |
MEMORY[0x180123538] = sub_1800D5648((__int64)"usb req", (__int64)sub_1800D79BC, 0LL, 0x3000uLL); | |
sub_1800D5940(MEMORY[0x180123538]); | |
} | |
if ( !MEMORY[0x180123540] ) | |
{ | |
sub_1800D5C40(6443644264LL, 1, 0); | |
MEMORY[0x180123540] = sub_1800D5648((__int64)"usb-high-current", (__int64)sub_1800D7A04, 0LL, 0x600uLL); | |
sub_1800D5940(MEMORY[0x180123540]); | |
} | |
if ( !MEMORY[0x180123548] ) | |
{ | |
sub_1800D5C40(6443644288LL, 1, 0); | |
MEMORY[0x180123548] = sub_1800D5648((__int64)"usb-no-current", (__int64)sub_1800D7A34, 0LL, 0x400uLL); | |
sub_1800D5940(MEMORY[0x180123548]); | |
} | |
} | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800D79BC) ---------------------------------------------------- | |
void __noreturn sub_1800D79BC() | |
{ | |
__int64 v0; // x1 | |
__int64 v1; // x2 | |
__int64 v2; // x3 | |
__int64 v3; // x4 | |
__int64 v4; // x5 | |
__int64 v5; // x6 | |
__int64 v6; // x7 | |
while ( 1 ) | |
{ | |
sub_1800D5D18((_BYTE *)0x180123550LL); | |
sub_1800D5D18(&qword_1801157A8); | |
sub_1800E7B58(MEMORY[0x1801168BC], v0, v1, v2, v3, v4, v5, v6); | |
} | |
} | |
// 1801157A8: using guessed type __int64 qword_1801157A8; | |
//----- (00000001800D7A04) ---------------------------------------------------- | |
void __noreturn sub_1800D7A04() | |
{ | |
while ( 1 ) | |
{ | |
sub_1800D5D18((_BYTE *)0x180123568LL); | |
sub_1800D834C(1LL, 0); | |
} | |
} | |
//----- (00000001800D7A34) ---------------------------------------------------- | |
void __noreturn sub_1800D7A34() | |
{ | |
while ( 1 ) | |
{ | |
sub_1800D5D18((_BYTE *)0x180123580LL); | |
sub_1800D834C(0LL, 0); | |
} | |
} | |
//----- (00000001800D7A64) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D7A64(__int64 a1, int a2) | |
{ | |
if ( a2 != -1 ) | |
JUMPOUT(&locret_1800D7A98); | |
JUMPOUT(qword_1801158C8[242], 0, &locret_1800D7A98); | |
return sub_1800D7A80(); | |
} | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800D7A80) ---------------------------------------------------- | |
signed __int64 sub_1800D7A80() | |
{ | |
sub_1800E7C40(); | |
return 1LL; | |
} | |
//----- (00000001800D7A9C) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800D7A9C(char *a1, int a2, __int64 a3, signed int *a4, _DWORD *a5) | |
{ | |
_DWORD *v5; // x19 | |
signed int *v6; // x20 | |
char *v7; // x21 | |
signed __int64 result; // x0 | |
int v9; // w8 | |
int v10; // w22 | |
__int64 (*v11)(void); // x8 | |
signed int v12; // w0 | |
signed int v13; // w8 | |
v5 = a5; | |
v6 = a4; | |
v7 = a1; | |
if ( LOBYTE(qword_1801158C8[242]) ) | |
return 0xFFFFFFFFLL; | |
v9 = *a1 & 0x1F; | |
if ( v9 == 1 ) | |
{ | |
v10 = *((unsigned __int16 *)a1 + 2); | |
if ( v10 < a2 ) | |
{ | |
v11 = *(__int64 (**)(void))(*(_QWORD *)(a3 + 8LL * *((unsigned __int16 *)a1 + 2)) + 136LL); | |
if ( v11 ) | |
{ | |
v12 = v11(); | |
v13 = v12; | |
if ( *v7 & 0x80000000 ) | |
return 0LL; | |
if ( v12 >= 1 ) | |
{ | |
result = 0LL; | |
*v6 = v13; | |
*v5 = v10; | |
return result; | |
} | |
if ( !v12 ) | |
{ | |
sub_1800E7C0C(); | |
return 0LL; | |
} | |
} | |
} | |
return 0xFFFFFFFFLL; | |
} | |
if ( !(*a1 & 0x1F) ) | |
{ | |
sub_1800E7D08(a1); | |
return 0LL; | |
} | |
return 1LL; | |
} | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800D7B54) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D7B54(unsigned int a1) | |
{ | |
__int64 result; // x0 | |
unsigned __int8 v2; // [xsp+7h] [xbp-9h] | |
__int64 v3; // [xsp+8h] [xbp-8h] | |
v3 = 5139240511851214385LL; | |
sub_1800F0E34(a1, 327680, &v2); | |
result = v2; | |
if ( 5139240511851214385LL != v3 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800D7BA8) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D7BA8(__int64 a1, unsigned __int64 a2, int a3) | |
{ | |
int v3; // w21 | |
unsigned __int64 v4; // x19 | |
__int64 v5; // x20 | |
__int64 v6; // x3 | |
__int64 v7; // x4 | |
__int64 v8; // x5 | |
__int64 v9; // x6 | |
__int64 v10; // x7 | |
__int64 v11; // x19 | |
_QWORD *v13; // [xsp+0h] [xbp-30h] | |
__int64 v14; // [xsp+8h] [xbp-28h] | |
v3 = a3; | |
v4 = a2; | |
v5 = a1; | |
v14 = 5139240511851214385LL; | |
v13 = 0LL; | |
sub_1800EE538((signed __int64 *)&v13, 0x40uLL, 0x200uLL); | |
if ( (*(unsigned int (__fastcall **)(__int64, _QWORD *, unsigned __int64, signed __int64))(v5 + 40))( | |
v5, | |
v13, | |
v4, | |
512LL) == 512 ) | |
{ | |
v11 = sub_1800C16B0(v13, v5, v4, v3); | |
if ( (_DWORD)v11 ) | |
{ | |
LOBYTE(qword_1801158C8[7066]) = 1; | |
LABEL_5: | |
sub_1800ED05C("image-version", 4LL, 0, v6, v7, v8, v9, v10); | |
goto LABEL_7; | |
} | |
if ( LOBYTE(qword_1801158C8[7066]) == 1 ) | |
goto LABEL_5; | |
} | |
v11 = 0LL; | |
LABEL_7: | |
if ( v13 ) | |
sub_1800EE010(v13); | |
if ( 5139240511851214385LL != v14 ) | |
sub_1800D4A5C(); | |
return v11; | |
} | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800D7CA8) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800D7CA8(unsigned int *a1, unsigned int *a2, unsigned int a3, unsigned int *a4, char *a5, unsigned __int64 a6, unsigned __int64 *a7) | |
{ | |
unsigned __int64 *v7; // x19 | |
unsigned __int64 v8; // x20 | |
char *v9; // x21 | |
unsigned int *v10; // x22 | |
unsigned int v11; // w25 | |
__int64 v12; // x23 | |
unsigned int *v13; // x24 | |
__int64 v14; // x1 | |
__int64 v15; // x1 | |
__int64 v16; // x2 | |
__int64 v17; // x3 | |
__int64 v18; // x4 | |
__int64 v19; // x5 | |
__int64 v20; // x6 | |
__int64 v21; // x7 | |
unsigned int v22; // w1 | |
v7 = a7; | |
v8 = a6; | |
v9 = a5; | |
v10 = a4; | |
v11 = a3; | |
v12 = (__int64)a2; | |
v13 = a1; | |
if ( a2 ) | |
v14 = *a2; | |
sub_1800F5AC0(196620LL); | |
if ( v13 ) | |
{ | |
if ( *v13 <= v8 ) | |
{ | |
if ( v12 || !v11 ) | |
{ | |
if ( v11 < 2 || v10 ) | |
{ | |
if ( v10 ) | |
*v10 = 0; | |
v22 = v13[2]; | |
if ( v22 != 1298492794 && v22 != 1768777524 ) | |
{ | |
sub_1800F5AC0(1073938440LL); | |
} | |
else if ( !(unsigned int)sub_1800C1994(v13, v12, v11, v10, v9, v8, v7) ) | |
{ | |
sub_1800F598C(196621LL); | |
return 0LL; | |
} | |
} | |
else | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v15, v16, v17, v18, v19, v20, v21, -2779338095591142239LL); | |
sub_1800F598C(1073938435LL); | |
} | |
} | |
else | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v15, v16, v17, v18, v19, v20, v21, -2779338095591142239LL); | |
sub_1800F598C(1073938434LL); | |
} | |
} | |
else | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v15, v16, v17, v18, v19, v20, v21, -2779338095591142239LL); | |
sub_1800F598C(1073938433LL); | |
} | |
} | |
else | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v15, v16, v17, v18, v19, v20, v21, -2779338095591142239LL); | |
sub_1800F598C(1073938436LL); | |
} | |
sub_1800F598C(1073938446LL); | |
if ( v7 ) | |
*v7 = 0LL; | |
return 0xFFFFFFFFLL; | |
} | |
//----- (00000001800D7E6C) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800D7E6C(__int64 a1, int a2, int a3) | |
{ | |
int v3; // w19 | |
int v4; // w20 | |
__int64 v5; // x21 | |
signed __int64 result; // x0 | |
v3 = a3; | |
v4 = a2; | |
v5 = a1; | |
result = sub_1800EDBF4(0x18uLL); | |
*(_QWORD *)(result + 8) = 0LL; | |
*(_QWORD *)(result + 16) = 0LL; | |
*(_QWORD *)result = 0LL; | |
*(_DWORD *)result = v4; | |
*(_DWORD *)(result + 8) = 1298492794; | |
*(_DWORD *)(result + 12) = v3; | |
*(_QWORD *)(result + 16) = v5; | |
return result; | |
} | |
//----- (00000001800D7EC0) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800D7EC0(_BYTE *a1, char *a2, unsigned __int64 a3, unsigned __int64 *a4, unsigned int *a5, unsigned int a6, unsigned int *a7, int a8) | |
{ | |
int v8; // w25 | |
unsigned int *v9; // x20 | |
unsigned int v10; // w24 | |
unsigned int *v11; // x22 | |
unsigned __int64 *v12; // x19 | |
unsigned __int64 v13; // x21 | |
char *v14; // x23 | |
_BYTE *v15; // x26 | |
__int64 v16; // x1 | |
unsigned int *v17; // x0 | |
unsigned int *v18; // x25 | |
signed __int64 v19; // x19 | |
__int64 v20; // x0 | |
unsigned __int64 v22; // [xsp+0h] [xbp-60h] | |
__int64 v23; // [xsp+8h] [xbp-58h] | |
v8 = a8; | |
v9 = a7; | |
v10 = a6; | |
v11 = a5; | |
v12 = a4; | |
v13 = a3; | |
v14 = a2; | |
v15 = a1; | |
v23 = 5139240511851214385LL; | |
if ( a5 ) | |
v16 = *a5; | |
sub_1800F5AC0(196623LL); | |
v22 = 0x20000000LL; | |
if ( (unsigned int)sub_1800EDA60(v15, (_QWORD *)0x800000000LL, &v22) || v22 > v13 ) | |
goto LABEL_9; | |
v17 = (unsigned int *)sub_1800D7E6C(0x800000000LL, v22, v8); | |
v18 = v17; | |
if ( !v17 ) | |
{ | |
sub_1800F598C(1073938438LL); | |
LABEL_9: | |
v19 = 0xFFFFFFFFLL; | |
goto LABEL_10; | |
} | |
v19 = sub_1800D7CA8(v17, v11, v10, v9, v14, v13, v12); | |
sub_1800D8014(v18); | |
if ( !(v19 & 0x80000000) ) | |
{ | |
v20 = 196624LL; | |
goto LABEL_11; | |
} | |
LABEL_10: | |
sub_1800F598C(196625LL); | |
sub_1800F05A0((_QWORD *)0x800000000LL, 0x20000000uLL); | |
v20 = 196615LL; | |
LABEL_11: | |
sub_1800F598C(v20); | |
if ( 5139240511851214385LL != v23 ) | |
sub_1800D4A5C(); | |
return v19; | |
} | |
//----- (00000001800D8014) ---------------------------------------------------- | |
void __fastcall sub_1800D8014(_QWORD *a1) | |
{ | |
if ( a1 ) | |
{ | |
if ( *((_DWORD *)a1 + 2) == 1298492794 ) | |
sub_1800EE010(a1); | |
} | |
} | |
//----- (00000001800D8034) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800D8034(__int64 a1, int a2, char *a3, unsigned __int64 a4, unsigned __int64 *a5, unsigned int *a6, unsigned int a7, unsigned int *a8, int a9) | |
{ | |
unsigned int *v9; // x20 | |
unsigned int v10; // w24 | |
unsigned int *v11; // x22 | |
unsigned __int64 *v12; // x19 | |
unsigned __int64 v13; // x21 | |
char *v14; // x23 | |
unsigned int *v15; // x0 | |
unsigned int *v16; // x25 | |
signed __int64 v17; // x19 | |
v9 = a8; | |
v10 = a7; | |
v11 = a6; | |
v12 = a5; | |
v13 = a4; | |
v14 = a3; | |
v15 = (unsigned int *)sub_1800D7E6C(a1, a2, a9); | |
v16 = v15; | |
if ( !v15 ) | |
{ | |
v17 = 0xFFFFFFFFLL; | |
LABEL_5: | |
sub_1800F5CF0("boot-breadcrumbs"); | |
return v17; | |
} | |
v17 = sub_1800D7CA8(v15, v11, v10, v9, v14, v13, v12); | |
sub_1800D8014(v16); | |
if ( v17 & 0x80000000 ) | |
goto LABEL_5; | |
return v17; | |
} | |
//----- (00000001800D80D4) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800D80D4(char *a1, unsigned __int64 a2, unsigned __int64 *a3, int a4) | |
{ | |
unsigned __int64 *v4; // x19 | |
unsigned __int64 v5; // x20 | |
char *v6; // x21 | |
unsigned int *v7; // x0 | |
signed __int64 v8; // x19 | |
int v10; // [xsp+4h] [xbp-2Ch] | |
__int64 v11; // [xsp+8h] [xbp-28h] | |
v4 = a3; | |
v5 = a2; | |
v6 = a1; | |
v11 = 5139240511851214385LL; | |
v10 = a4; | |
v7 = (unsigned int *)sub_1800C1958(a4); | |
if ( v7 ) | |
{ | |
v8 = sub_1800D7CA8(v7, (unsigned int *)&v10, 1u, 0LL, v6, v5, v4); | |
if ( !(v8 & 0x80000000) ) | |
goto LABEL_6; | |
} | |
else | |
{ | |
v8 = 0xFFFFFFFFLL; | |
} | |
sub_1800F5CF0("boot-breadcrumbs"); | |
LABEL_6: | |
if ( 5139240511851214385LL != v11 ) | |
sub_1800D4A5C(); | |
return v8; | |
} | |
//----- (00000001800D8188) ---------------------------------------------------- | |
__int64 sub_1800D8188() | |
{ | |
return MEMORY[0x1801235B8]; | |
} | |
//----- (00000001800D8198) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D8198(int a1, int a2, int a3, char a4) | |
{ | |
__int64 v4; // x8 | |
unsigned int v5; // w22 | |
char v6; // w20 | |
signed int v7; // w14 | |
int v8; // w15 | |
int v9; // w23 | |
int v10; // w19 | |
signed int i; // w19 | |
bool v12; // cf | |
bool v13; // zf | |
unsigned int v14; // w1 | |
int v16; // [xsp+4h] [xbp-3Ch] | |
__int64 v17; // [xsp+8h] [xbp-38h] | |
v4 = 0LL; | |
v5 = 0; | |
v6 = 0; | |
v17 = 5139240511851214385LL; | |
while ( v4 != 4 ) | |
{ | |
v7 = *(_DWORD *)(v4 + 6443644348LL); | |
if ( ((v7 != 3) | a1 | a3 ^ 1) != 1 ) | |
{ | |
v5 = 0; | |
goto LABEL_15; | |
} | |
switch ( v7 ) | |
{ | |
case 3: | |
if ( ((BYTE4(qword_1801158C8[242]) != 0) | a2 | a1) & 1 ) | |
{ | |
v5 = 500; | |
break; | |
} | |
break; | |
case 5: | |
goto LABEL_9; | |
case 4: | |
v8 = *(_DWORD *)(v4 + 6443644352LL) - 1; | |
if ( (unsigned int)v8 < 5 ) | |
{ | |
v5 = *((_DWORD *)qword_18010FB70 + v8); | |
break; | |
} | |
LABEL_9: | |
v5 = 1000; | |
break; | |
case 6: | |
v5 = 500; | |
break; | |
default: | |
v5 = 100; | |
break; | |
} | |
LABEL_15: | |
v6 |= v7 > 2; | |
v4 += 4LL; | |
} | |
MEMORY[0x1801235B8] = 0; | |
v16 = 0; | |
if ( !(a4 & 1) ) | |
{ | |
LOWORD(v9) = 0; | |
v10 = 0; | |
MEMORY[0x1801235B8] = v5; | |
while ( v10 != 1 ) | |
{ | |
v9 = (unsigned __int64)sub_1800E736C() + (unsigned __int16)v9; | |
++v10; | |
} | |
if ( v5 > 0x64 && !(unsigned int)sub_1800E7364() ) | |
LOWORD(v9) = 0; | |
v16 = (unsigned __int16)v9; | |
} | |
for ( i = 1; i; --i ) | |
{ | |
if ( MEMORY[0x1801235B8] ) | |
{ | |
v12 = v5 >= MEMORY[0x1801235B8]; | |
v13 = v5 == MEMORY[0x1801235B8]; | |
} | |
else | |
{ | |
v12 = 0; | |
v13 = 0; | |
} | |
if ( !v13 && v12 ) | |
v14 = MEMORY[0x1801235B8]; | |
else | |
v14 = v5; | |
sub_1800E71B8(0LL, v14, (unsigned int *)&v16); | |
} | |
if ( 5139240511851214385LL != v17 ) | |
sub_1800D4A5C(); | |
return v6 & 1; | |
} | |
// 18010FB70: using guessed type __int64 qword_18010FB70[7]; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800D834C) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D834C(__int64 a1, int a2) | |
{ | |
int v2; // w19 | |
int v3; // w20 | |
v2 = a2; | |
v3 = a1; | |
nullsub_15(a1); | |
return sub_1800D8198(0, v3, v2, 0); | |
} | |
// 1800E7360: using guessed type __int64 __fastcall nullsub_15(_QWORD); | |
//----- (00000001800D8380) ---------------------------------------------------- | |
signed __int64 __fastcall sub_1800D8380(int a1) | |
{ | |
signed __int64 result; // x0 | |
char v2; // [xsp+2h] [xbp-Eh] | |
char v3; // [xsp+4h] [xbp-Ch] | |
__int64 v4; // [xsp+8h] [xbp-8h] | |
v4 = 5139240511851214385LL; | |
if ( a1 ) | |
{ | |
result = sub_1800E3608((__int64)&v2); | |
if ( !(_DWORD)result || !(v2 & 0x10) || !(v3 & 0x80000000) ) | |
goto LABEL_7; | |
a1 = 1; | |
} | |
result = sub_1800E36D0(a1); | |
LABEL_7: | |
if ( 5139240511851214385LL != v4 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800D83EC) ---------------------------------------------------- | |
__int64 sub_1800D83EC() | |
{ | |
sub_1800BBD08(); | |
LOBYTE(qword_1801158C8[7067]) = 1; | |
return 0LL; | |
} | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800D8410) ---------------------------------------------------- | |
__int64 sub_1800D8410() | |
{ | |
char v0; // w19 | |
int v1; // w8 | |
__int64 v2; // x9 | |
int v3; // w20 | |
int v4; // w10 | |
int v5; // w1 | |
unsigned __int8 v7; // [xsp+17h] [xbp-29h] | |
__int64 v8; // [xsp+18h] [xbp-28h] | |
v8 = 5139240511851214385LL; | |
if ( !(qword_1801158C8[7067] & 1) ) | |
sub_1800D489C("%llx:%d", &byte_180101040, 3553392363025658480LL, 552LL); | |
sub_1800E6D44(); | |
v0 = sub_1800E7364(); | |
sub_1800D8198(0, 0, 0, 1); | |
sub_1800E7374(&dword_180115558); | |
LOBYTE(qword_1801158C8[7069]) = 0; | |
if ( v0 & 1 ) | |
{ | |
sub_1800BEFBC(); | |
LOBYTE(qword_1801158C8[7069]) = ((__int64 (__fastcall *)(signed __int64, signed __int64))loc_1800BF254)(20LL, 1LL) & 1; | |
} | |
sub_1800D8198(0, 0, 0, 0); | |
sub_1800BC278(1u, &v7); | |
sub_1800D8644(); | |
sub_1800D8198(LOBYTE(qword_1801158C8[7069]) != 0, 0, 0, 0); | |
v1 = 0; | |
v2 = 0LL; | |
LOWORD(v3) = 8186; | |
while ( v2 <= 0 ) | |
{ | |
v4 = *(_DWORD *)(4 * v2++ + 0x1801235BCLL); | |
v1 += 0x4000; | |
if ( v4 == 4 ) | |
{ | |
v3 = *(_DWORD *)(4 * v2 + 0x1801235BCLL) % 10 + (v1 | 0x1FFA); | |
break; | |
} | |
} | |
sub_1800BC320(9u, (unsigned __int8)v3); | |
sub_1800BC320(0xAu, (unsigned __int16)v3 >> 8); | |
sub_1800E7018(); | |
sub_1800BC278(0, &v7); | |
MEMORY[0x1801235B1] = (v7 & 0x50 | 0xFFFFFF80) == -112; | |
if ( MEMORY[0x1801235B0] ) | |
v5 = v7 | 0x20; | |
else | |
v5 = v7 & 0xDF; | |
v7 = v5; | |
sub_1800BC320(0, v5); | |
sub_1800BBF1C(); | |
if ( 5139240511851214385LL != v8 ) | |
sub_1800D4A5C(); | |
return 0LL; | |
} | |
// 180101040: using guessed type char byte_180101040; | |
// 180115558: using guessed type int dword_180115558; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800D8634) ---------------------------------------------------- | |
__int64 sub_1800D8634() | |
{ | |
return 0LL; | |
} | |
//----- (00000001800D863C) ---------------------------------------------------- | |
signed __int64 sub_1800D863C() | |
{ | |
return sub_1800E7364(); | |
} | |
//----- (00000001800D8644) ---------------------------------------------------- | |
void sub_1800D8644() | |
{ | |
__int64 v0; // x19 | |
__int64 v1; // x1 | |
__int64 v2; // x2 | |
__int64 v3; // x3 | |
__int64 v4; // x4 | |
__int64 v5; // x5 | |
__int64 v6; // x6 | |
__int64 v7; // x7 | |
signed int v8; // w23 | |
__int64 v9; // x23 | |
int v10; // w0 | |
unsigned int v11; // w0 | |
unsigned int v12; // w10 | |
int v13; // w11 | |
int v14; // w23 | |
__int64 v15; // x1 | |
__int64 v16; // x2 | |
__int64 v17; // x3 | |
__int64 v18; // x4 | |
__int64 v19; // x5 | |
__int64 v20; // x6 | |
__int64 v21; // x7 | |
__int64 v22; // x0 | |
__int64 v23; // [xsp+0h] [xbp-70h] | |
int v24; // [xsp+8h] [xbp-68h] | |
int v25; // [xsp+Ch] [xbp-64h] | |
unsigned int v26; // [xsp+10h] [xbp-60h] | |
unsigned int v27; // [xsp+14h] [xbp-5Ch] | |
__int64 v28; // [xsp+18h] [xbp-58h] | |
v0 = 0LL; | |
v28 = 5139240511851214385LL; | |
while ( v0 != 1 ) | |
{ | |
if ( sub_1800E713C() & 1 ) | |
{ | |
v8 = 6; | |
goto LABEL_35; | |
} | |
if ( !(unsigned int)sub_1800E70DC() ) | |
{ | |
if ( sub_1800E7134() & 1 ) | |
{ | |
v8 = 2; | |
} | |
else | |
{ | |
*(_DWORD *)(4 * v0 + 0x1801235C0LL) = 0; | |
v8 = 1; | |
} | |
goto LABEL_35; | |
} | |
if ( *(_DWORD *)(4 * v0 + 0x1801235C0LL) ) | |
goto LABEL_6; | |
v9 = 0LL; | |
*(_DWORD *)(4 * v0 + 0x1801235C0LL) = 0; | |
while ( v9 != 8 ) | |
{ | |
if ( v9 == 4 ) | |
v10 = 1; | |
else | |
v10 = 2; | |
sub_1800E33E0(v10); | |
sub_1800D5F60(2000LL); | |
v11 = sub_1800BBAB0(); | |
*(unsigned int *)((char *)&v26 + v9) = v11; | |
if ( v11 > 0x8AC ) | |
{ | |
if ( v11 > 0xB4A ) | |
*(int *)((char *)&v24 + v9) = 2; | |
else | |
*(int *)((char *)&v24 + v9) = 1; | |
} | |
else | |
{ | |
*(int *)((char *)&v24 + v9) = 0; | |
} | |
sub_1800E33E0(0); | |
v9 += 4LL; | |
} | |
if ( v27 ) | |
{ | |
v12 = 1000 * v26 / v27; | |
if ( v12 - 1291 < 0xD7 ) | |
{ | |
v13 = 2; | |
goto LABEL_28; | |
} | |
if ( v12 - 665 < 0x6F ) | |
{ | |
v13 = 4; | |
goto LABEL_28; | |
} | |
} | |
else | |
{ | |
v12 = 0; | |
} | |
v13 = 3 * v25 + v24 + 1; | |
LABEL_28: | |
if ( v27 >= 0x3E8 && v26 > 0x3E7 ) | |
{ | |
if ( v12 - 500 <= 0x5DC ) | |
{ | |
*(_DWORD *)(4 * v0 + 0x1801235C0LL) = v13; | |
LABEL_6: | |
v8 = 4; | |
goto LABEL_35; | |
} | |
LABEL_34: | |
v8 = 3; | |
goto LABEL_35; | |
} | |
if ( !(unsigned int)sub_1800E33E0(4) ) | |
goto LABEL_34; | |
sub_1800D5B44(40000LL); | |
v14 = sub_1800BBAB0(); | |
sub_1800E33E0(0); | |
if ( (unsigned int)(v14 - 251) >= 0x225 ) | |
goto LABEL_34; | |
v8 = 5; | |
LABEL_35: | |
sub_1800EF260((__int64)"power supply type %s", v1, v2, v3, v4, v5, v6, v7, (__int64)*(&off_180112B88 + v8)); | |
if ( v8 == 4 ) | |
sub_1800EF260((__int64)" id %d", v15, v16, v17, v18, v19, v20, v21, *(unsigned int *)(4 * v0 + 0x1801235C0LL)); | |
v22 = sub_1800EF260((__int64)"\n", v15, v16, v17, v18, v19, v20, v21, v23); | |
if ( v8 != *(_DWORD *)(4 * v0 + 0x1801235BCLL) ) | |
{ | |
*(_DWORD *)(4 * v0 + 0x1801235BCLL) = v8; | |
nullsub_15(v22); | |
} | |
++v0; | |
} | |
if ( 5139240511851214385LL != v28 ) | |
sub_1800D4A5C(); | |
} | |
// 1800E7360: using guessed type __int64 __fastcall nullsub_15(_QWORD); | |
// 180112B88: using guessed type void *off_180112B88; | |
//----- (00000001800D88B8) ---------------------------------------------------- | |
__int64 sub_1800D88B8() | |
{ | |
nullsub_7(); | |
return 0LL; | |
} | |
// 1800C0010: using guessed type __int64 nullsub_7(void); | |
//----- (00000001800D88D0) ---------------------------------------------------- | |
// write access to const memory has been detected, the output may be wrong! | |
bool sub_1800D88D0() | |
{ | |
_BOOL8 result; // x0 | |
signed int v1; // w23 | |
__int64 v2; // x1 | |
__int64 v3; // x2 | |
__int64 v4; // x3 | |
__int64 v5; // x4 | |
__int64 v6; // x5 | |
__int64 v7; // x6 | |
__int64 v8; // x7 | |
unsigned __int8 v9; // [xsp+27h] [xbp-39h] | |
__int64 v10; // [xsp+28h] [xbp-38h] | |
v10 = 5139240511851214385LL; | |
if ( sub_1800D9FD0() ) | |
{ | |
result = 0LL; | |
} | |
else if ( LOBYTE(qword_1801158C8[7069]) ) | |
{ | |
result = 1LL; | |
} | |
else | |
{ | |
v9 = 0; | |
sub_1800BC278(0, &v9); | |
MEMORY[0x1801235B0] = (v9 >> 5) & 1; | |
MEMORY[0x1801235B1] = (v9 & 0x50 | 0xFFFFFF80) == -112; | |
sub_1800BC278(0xAu, &v9); | |
v1 = (unsigned int)v9 >> 6; | |
dword_180115558 = (v9 & 0x1F) << 8; | |
sub_1800BC278(9u, &v9); | |
if ( v1 ) | |
*(_DWORD *)(4LL * v1 + 0x1801235BCLL) = 5; | |
dword_180115558 = -6; | |
MEMORY[0x1801235C4] = 3706; | |
sub_1800EF260( | |
(__int64)"battery voltage %d mV, delta_target=%d, no_battery_power=%d\n", | |
v2, | |
v3, | |
v4, | |
v5, | |
v6, | |
v7, | |
v8, | |
4294967290LL); | |
sub_1800D8644(); | |
sub_1800D8198(MEMORY[0x1801235B0] != 0, 0, 0, 0); | |
result = LOBYTE(qword_1801158C8[7069]) != 0; | |
} | |
if ( 5139240511851214385LL != v10 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
// 1800D89CC: write access to const memory at 180115558 has been detected | |
// 1800D898C: write access to const memory at 180115558 has been detected | |
// 180114CE8: using guessed type __int64[105]; | |
// 180115558: using guessed type int dword_180115558; | |
// 1801158C8: using guessed type __int64 qword_1801158C8[39]; | |
//----- (00000001800D8A88) ---------------------------------------------------- | |
signed __int64 sub_1800D8A88() | |
{ | |
signed __int64 result; // x0 | |
unsigned __int8 v1; // [xsp+7h] [xbp-19h] | |
__int64 v2; // [xsp+8h] [xbp-18h] | |
v2 = 5139240511851214385LL; | |
if ( MEMORY[0x1801235B1] ) | |
{ | |
v1 = 0; | |
sub_1800BC278(0, &v1); | |
v1 &= 0x2Fu; | |
result = sub_1800BC320(0, v1); | |
MEMORY[0x1801235B1] = 0; | |
} | |
if ( 5139240511851214385LL != v2 ) | |
sub_1800D4A5C(); | |
return result; | |
} | |
//----- (00000001800D8B10) ---------------------------------------------------- | |
signed __int64 sub_1800D8B10() | |
{ | |
return 0xFFFFFFFFLL; | |
} | |
//----- (00000001800D8B1C) ---------------------------------------------------- | |
_DWORD *__fastcall sub_1800D8B1C(_DWORD *result, __int64 a2) | |
{ | |
char v2; // w9 | |
int v3; // w8 | |
v2 = 0; | |
v3 = MEMORY[0x1801235C0]; | |
if ( MEMORY[0x1801235BC] != 4 ) | |
v3 = 0; | |
while ( !(v2 & 1) && a2 ) | |
{ | |
*result = v3; | |
v2 = 1; | |
} | |
return result; | |
} | |
//----- (00000001800D8B4C) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D8B4C(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5, __int64 a6, __int64 a7, __int64 a8) | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", a2, a3, a4, a5, a6, a7, a8, 3553392363025658480LL); | |
return MEMORY[0x1801235C8]; | |
} | |
//----- (00000001800D8B94) ---------------------------------------------------- | |
__int64 __fastcall sub_1800D8B94(__int64 result) | |
{ | |
MEMORY[0x1801235C8] |= result; | |
return result; | |
} | |
//----- (00000001800D8BAC) ---------------------------------------------------- | |
signed __int64 sub_1800D8BAC() | |
{ | |
int v0; // w19 | |
int v1; // w21 | |
__int64 v2; // x1 | |
__int64 v3; // x2 | |
__int64 v4; // x3 | |
__int64 v5; // x4 | |
__int64 v6; // x5 | |
__int64 v7; // x6 | |
__int64 v8; // x7 | |
__int64 v9; // x1 | |
__int64 v10; // x2 | |
__int64 v11; // x3 | |
__int64 v12; // x4 | |
__int64 v13; // x5 | |
__int64 v14; // x6 | |
__int64 v15; // x7 | |
signed int v16; // w8 | |
__int64 v17; // x1 | |
__int64 v18; // x2 | |
__int64 v19; // x3 | |
__int64 v20; // x4 | |
__int64 v21; // x5 | |
__int64 v22; // x6 | |
__int64 v23; // x7 | |
unsigned __int8 v24; // w19 | |
__int64 v25; // x1 | |
__int64 v26; // x2 | |
__int64 v27; // x3 | |
__int64 v28; // x4 | |
__int64 v29; // x5 | |
__int64 v30; // x6 | |
__int64 v31; // x7 | |
__int64 v32; // x0 | |
__int64 v33; // x1 | |
__int64 v34; // x2 | |
__int64 v35; // x3 | |
__int64 v36; // x4 | |
__int64 v37; // x5 | |
__int64 v38; // x6 | |
__int64 v39; // x7 | |
__int64 v40; // x0 | |
__int64 v41; // x1 | |
__int64 v42; // x2 | |
__int64 v43; // x3 | |
__int64 v44; // x4 | |
__int64 v45; // x5 | |
__int64 v46; // x6 | |
__int64 v47; // x7 | |
__int64 v48; // x1 | |
__int64 v49; // x2 | |
__int64 v50; // x3 | |
__int64 v51; // x4 | |
__int64 v52; // x5 | |
__int64 v53; // x6 | |
__int64 v54; // x7 | |
__int64 v55; // x23 | |
__int64 v56; // x0 | |
__int64 v57; // x1 | |
__int64 v58; // x2 | |
__int64 v59; // x3 | |
__int64 v60; // x4 | |
__int64 v61; // x5 | |
__int64 v62; // x6 | |
__int64 v63; // x7 | |
char v64; // w19 | |
int v65; // w0 | |
int v66; // w0 | |
int v67; // w0 | |
__int64 v68; // x24 | |
__int64 v69; // x1 | |
__int64 v70; // x2 | |
__int64 v71; // x3 | |
__int64 v72; // x4 | |
__int64 v73; // x5 | |
__int64 v74; // x6 | |
__int64 v75; // x7 | |
int v77; // w19 | |
__int64 v78; // x1 | |
__int64 v79; // x2 | |
__int64 v80; // x3 | |
__int64 v81; // x4 | |
__int64 v82; // x5 | |
__int64 v83; // x6 | |
__int64 v84; // x7 | |
char v85; // w19 | |
int v86; // w0 | |
unsigned __int8 v87; // w23 | |
signed int v88; // w19 | |
__int64 v89; // x1 | |
__int64 v90; // x2 | |
__int64 v91; // x3 | |
__int64 v92; // x4 | |
__int64 v93; // x5 | |
__int64 v94; // x6 | |
__int64 v95; // x7 | |
int i; // w8 | |
__int64 v97; // x1 | |
__int64 v98; // x2 | |
__int64 v99; // x3 | |
__int64 v100; // x4 | |
__int64 v101; // x5 | |
__int64 v102; // x6 | |
__int64 v103; // x7 | |
char v104; // w19 | |
int v105; // w1 | |
__int64 v106; // x1 | |
__int64 v107; // x2 | |
__int64 v108; // x3 | |
__int64 v109; // x4 | |
__int64 v110; // x5 | |
__int64 v111; // x6 | |
__int64 v112; // x7 | |
int v113; // w1 | |
int v114; // w1 | |
__int64 v115; // x1 | |
__int64 v116; // x2 | |
__int64 v117; // x3 | |
__int64 v118; // x4 | |
__int64 v119; // x5 | |
__int64 v120; // x6 | |
__int64 v121; // x7 | |
__int64 v122; // [xsp+0h] [xbp-70h] | |
unsigned __int8 v123; // [xsp+27h] [xbp-49h] | |
__int64 v124; // [xsp+28h] [xbp-48h] | |
char v125; // [xsp+31h] [xbp-3Fh] | |
char v126; // [xsp+32h] [xbp-3Eh] | |
char v127; // [xsp+33h] [xbp-3Dh] | |
unsigned __int8 v128; // [xsp+34h] [xbp-3Ch] | |
char v129; // [xsp+35h] [xbp-3Bh] | |
char v130; // [xsp+36h] [xbp-3Ah] | |
char v131; // [xsp+37h] [xbp-39h] | |
__int64 v132; // [xsp+38h] [xbp-38h] | |
v132 = 5139240511851214385LL; | |
v123 = 0; | |
v0 = MEMORY[0x1801235B1]; | |
sub_1800BC278(0, &v123); | |
if ( v0 ) | |
{ | |
v1 = v123 & 0xD0; | |
} | |
else if ( v123 & 4 ) | |
{ | |
v123 &= 0xFBu; | |
sub_1800BC320(0, v123); | |
v1 = 0; | |
MEMORY[0x1801235C8] |= 0x20u; | |
} | |
else | |
{ | |
v1 = 0; | |
} | |
if ( sub_1800D9FD0() ) | |
{ | |
sub_1800BC278(0xDu, (_BYTE *)&v124 + 4); | |
if ( BYTE4(v124) ) | |
sub_1800EF260((__int64)"%llx:%d\n", v2, v3, v4, v5, v6, v7, v8, 3553392363025658480LL); | |
goto LABEL_28; | |
} | |
v128 = 0; | |
v124 = 85899345924LL; | |
sub_1800BFA30((signed __int64)&v124 + 4, (signed int *)&v124); | |
v16 = v124 | HIDWORD(v124); | |
if ( v124 ) | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v9, v10, v11, v12, v13, v14, v15, 3553392363025658480LL); | |
sub_1800BC278(0xDu, &v128); | |
v24 = v128; | |
if ( !v128 ) | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v17, v18, v19, v20, v21, v22, v23, 3553392363025658480LL); | |
v16 = 0; | |
goto LABEL_20; | |
} | |
if ( v128 & 0x60 ) | |
goto LABEL_19; | |
sub_1800D9B3C(&v127, (bool *)&v126, &v125); | |
sub_1800EF260( | |
(__int64)"upo: upo_state=%x powersupply_changed=%d button_event=%d rtc_event=%d\n", | |
v25, | |
v26, | |
v27, | |
v28, | |
v29, | |
v30, | |
v31, | |
v128); | |
if ( v127 ) | |
{ | |
sub_1800D8644(); | |
v32 = sub_1800D8198(1, 0, 0, 0); | |
if ( !(_DWORD)v32 ) | |
v127 = 0; | |
sub_1800EF260((__int64)"upo: ok=%d powersupply_changed=%d\n", v33, v34, v35, v36, v37, v38, v39, v32); | |
} | |
v40 = sub_1800BCA68(0); | |
if ( v127 ) | |
goto LABEL_19; | |
v77 = v24 & 7; | |
if ( (char)v128 & 0x80000000 ) | |
{ | |
if ( (char)v128 != -128 ) | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v17, v18, v19, v20, v21, v22, v23, 3553392363025658480LL); | |
v16 = -1; | |
goto LABEL_20; | |
} | |
goto LABEL_61; | |
} | |
if ( v125 ) | |
{ | |
if ( !v77 ) | |
{ | |
LABEL_61: | |
if ( v128 & 0x40 ) | |
{ | |
sub_1800C5950(v40, v17, v18, v19, v20, v21, v22, v23); | |
v85 = sub_1800F36C4(0); | |
sub_1800D9BFC(0xFFFFFFFFLL); | |
sub_1800F1D3C(1819240303LL); | |
if ( v86 ) | |
sub_1800F1D70(); | |
else | |
sub_1800F1CE4(0, 0, 0); | |
sub_1800F36C4(v85); | |
sub_1800F2544(); | |
for ( i = HIDWORD(v124); i; i = HIDWORD(v124)-- - 1 ) | |
{ | |
sub_1800D9B3C(&v127, (bool *)&v126, &v125); | |
if ( v127 ) | |
{ | |
sub_1800D8644(); | |
if ( (unsigned int)sub_1800D8198(1, 0, 0, 0) ) | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v97, v98, v99, v100, v101, v102, v103, 3553392363025658480LL); | |
break; | |
} | |
} | |
if ( (unsigned int)sub_1800BFAA8() ) | |
{ | |
sub_1800D99E0(0x338u); | |
v104 = 0; | |
goto LABEL_84; | |
} | |
sub_1800D5B44(1000000LL); | |
} | |
v104 = 1; | |
LABEL_84: | |
sub_1800EF260((__int64)"%llx:%d\n", v89, v90, v91, v92, v93, v94, v95, 3553392363025658480LL); | |
if ( v127 ) | |
v16 = 1; | |
else | |
v16 = 3; | |
if ( v104 & 1 || v127 ) | |
goto LABEL_20; | |
v113 = v128 | 0x20; | |
v128 |= 0x20u; | |
sub_1800BC320(0xDu, v113); | |
goto LABEL_90; | |
} | |
if ( v77 != 7 ) | |
{ | |
v87 = v124; | |
if ( v128 & 0x80 ) | |
{ | |
sub_1800EF260((__int64)"%llx:%d\n", v17, v18, v19, v20, v21, v22, v23, 3553392363025658480LL); | |
v88 = 1; | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment