Skip to content

Instantly share code, notes, and snippets.

@mouseos
Last active January 19, 2025 11:45
Show Gist options
  • Save mouseos/c112db562f8cdef9193f46b962d07d04 to your computer and use it in GitHub Desktop.
Save mouseos/c112db562f8cdef9193f46b962d07d04 to your computer and use it in GitHub Desktop.
ポケットチャレンジDXアップデートファイル
This file has been truncated, but you can view the full file.
// /coredll.dll
int32_t fun_10023a98();
/* (image base) */
int32_t image_base_ = 0x1007ad24;
void GetRomFileInfo(int32_t r0, int32_t r1, void* r2);
void fun_10023348();
void InitLocale();
int32_t fun_1005921c(void** r0, void** r1, void** r2);
void fun_1006cfcc(void** r0, void** r1, void** r2);
int32_t fun_10007a64(void** r0, void** r1, void** r2) {
int1_t z4;
int32_t r4_5;
if (z4) {
fun_10023a98();
} else {
if (reinterpret_cast<int1_t>(r1 == 1)) {
r4_5 = image_base_;
GetRomFileInfo(3, r4_5, reinterpret_cast<int32_t>(__zero_stack_offset()) - 20 - 4);
GetRomFileInfo(4, r4_5 + 4, 0);
fun_10023348();
InitLocale();
}
}
fun_1005921c(r0, r1, r2);
fun_1006cfcc(r0, r1, r2);
return 1;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(48);
void** strlen(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12);
/*
* ??2@YAPAXI@Z
* void * __cdecl operator new(unsigned int)
*/
void** _2_YAPAXI_Z(void** r0);
void** strcpy(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6);
/*
* ??0exception@std@@QAA@PBD@Z
* public: __cdecl std::exception::exception(char const *)
*/
void** _0exception_std_QAA_PBD_Z(void** r0, void** r1, void** r2) {
void** r3_4;
void** r4_5;
void** r5_6;
void** v7;
void** v8;
void** v9;
void** v10;
void** v11;
void** r0_12;
void** r0_13;
int1_t z14;
r3_4 = image_base_;
*reinterpret_cast<void***>(r0) = r3_4;
r0_12 = strlen(r1, r1, r2, r3_4, r4_5, r5_6, __return_address(), v7, v8, v9, v10, v11);
r0_13 = _2_YAPAXI_Z(r0_12 + 1);
z14 = r0_13 == 0;
if (!z14) {
r1 = r1;
}
*reinterpret_cast<void***>(r0 + 4) = r0_13;
if (!z14) {
strcpy(r0_13, r1, r2, r3_4, r4_5, r5_6);
}
*reinterpret_cast<void***>(r0 + 8) = reinterpret_cast<void**>(1);
return r0;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(48);
/*
* ??0exception@std@@QAA@ABV01@@Z
* public: __cdecl std::exception::exception(class std::exception const &)
*/
void** _0exception_std_QAA_ABV01_Z(void** r0, void** r1, void** r2) {
void** r3_4;
void** r3_5;
void** r4_6;
void** r5_7;
void** v8;
void** v9;
void** v10;
void** v11;
void** v12;
void** r0_13;
void** r0_14;
r3_4 = image_base_;
*reinterpret_cast<void***>(r0) = r3_4;
r3_5 = *reinterpret_cast<void***>(r1 + 8);
*reinterpret_cast<void***>(r0 + 8) = r3_5;
if (!r3_5) {
*reinterpret_cast<void***>(r0 + 4) = *reinterpret_cast<void***>(r1 + 4);
} else {
r0_13 = strlen(*reinterpret_cast<void***>(r1 + 4), r1, r2, r3_5, r4_6, r5_7, __return_address(), v8, v9, v10, v11, v12);
r0_14 = _2_YAPAXI_Z(r0_13 + 1);
*reinterpret_cast<void***>(r0 + 4) = r0_14;
if (r0_14) {
strcpy(r0_14, *reinterpret_cast<void***>(r1 + 4), r2, r3_5, r4_6, r5_7);
}
}
return r0;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(48);
/*
* ??3@YAXPAX@Z
* void __cdecl operator delete(void *)
*/
void** _3_YAXPAX_Z(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23, void** a24, void** a25, void** a26, void** a27, void** a28, void** a29, void** a30, void** a31);
/*
* ??1exception@std@@UAA@XZ
* public: virtual __cdecl std::exception::~exception(void)
*/
void** _1exception_std_UAA_XZ(void** r0, void** r1) {
void** r2_3;
void** r3_4;
int1_t z5;
void** v6;
void** v7;
void** v8;
void** v9;
void** v10;
void** v11;
void** v12;
void** v13;
void** v14;
void** v15;
void** v16;
void** v17;
void** v18;
void** v19;
void** v20;
void** v21;
void** v22;
void** v23;
void** v24;
void** v25;
void** v26;
void** v27;
void** v28;
void** v29;
void** v30;
void** v31;
r2_3 = *reinterpret_cast<void***>(r0 + 8);
r3_4 = image_base_;
z5 = r2_3 == 0;
*reinterpret_cast<void***>(r0) = r3_4;
if (!z5) {
r0 = *reinterpret_cast<void***>(r0 + 4);
}
if (!z5) {
r0 = _3_YAXPAX_Z(r0, r1, r2_3, r3_4, __return_address(), v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31);
}
return r0;
}
int32_t fun_10007eb0(int32_t r0, int32_t r1, int32_t r2, int32_t r3) {
if (r2 - 1 < 0) {
__asm__("ldmdb fp, {r4, r5, r6, r7, fp, sp, lr}");
return r0;
} else {
goto r3;
}
}
struct s0 {
signed char[16] pad16;
int32_t f10;
};
/* (image base) */
struct s0* image_base_ = reinterpret_cast<struct s0*>(0x1007a060);
void** CombineRgn(void** r0, void** r1, void** r2, void** r3, int32_t a5, int32_t a6, int32_t a7, int32_t a8) {
struct s0* lr9;
lr9 = image_base_;
goto lr9->f10;
}
struct s1 {
signed char[36] pad36;
int32_t f24;
};
/* (image base) */
struct s1* image_base_ = reinterpret_cast<struct s1*>(0x1007a060);
void** CreateRectRgnIndirect(void* r0) {
struct s1* r3_2;
r3_2 = image_base_;
goto r3_2->f24;
}
void** gffffc800;
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007ad24);
struct s2 {
signed char[156] pad156;
int32_t f9c;
};
/* (image base) */
struct s2** image_base_ = reinterpret_cast<struct s2**>(0x1007ad28);
struct s3 {
signed char[52] pad52;
int32_t f34;
};
/* (image base) */
struct s3* image_base_ = reinterpret_cast<struct s3*>(0x1007a060);
void DeleteObject(void** r0, void** r1, void** r2, void** r3, int32_t a5, int32_t a6, int32_t a7, int32_t a8) {
void** r3_9;
int32_t* r3_10;
struct s2** r3_11;
struct s3* r3_12;
r3_9 = gffffc800;
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r3_9 + 0xffffffec)) & 1) {
r3_10 = image_base_;
if (*r3_10) {
r3_11 = image_base_;
goto (*r3_11)->f9c;
}
}
r3_12 = image_base_;
goto r3_12->f34;
}
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007ad24);
struct s4 {
signed char[180] pad180;
int32_t fb4;
};
/* (image base) */
struct s4** image_base_ = reinterpret_cast<struct s4**>(0x1007ad28);
struct s5 {
signed char[140] pad140;
int32_t f8c;
};
/* (image base) */
struct s5* image_base_ = reinterpret_cast<struct s5*>(0x1007a060);
int32_t GetStockObject(int32_t r0) {
void** r3_2;
int32_t* r3_3;
struct s4** r3_4;
struct s5* r3_5;
r3_2 = gffffc800;
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r3_2 + 0xffffffec)) & 1) {
r3_3 = image_base_;
if (*r3_3) {
r3_4 = image_base_;
goto (*r3_4)->fb4;
}
}
r3_5 = image_base_;
goto r3_5->f8c;
}
void** gffffc80c;
void** GetOwnerProcess(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23, void** a24, void** a25, void** a26, void** a27, void** a28, void** a29, void** a30, void** a31, void** a32, void** a33, void** a34);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(76);
void** MapPtrUnsecure(void** r0, void** r1, void** r2);
void** PerformCallBack4(void* r0, void** r1, void** r2, void** r3, void** a5, void** a6, ...);
void** GetCRTFlags();
void** fun_10009a80(int32_t r0, void** r1, void** r2);
void** DefaultImeWndGet(void** r0, void** r1, void** r2) {
void** r3_4;
void** r5_5;
void** r4_6;
void** v7;
void** v8;
void** v9;
void** v10;
void** r4_11;
void** r5_12;
void** r11_13;
void** v14;
void** v15;
void** v16;
void** v17;
void** v18;
void** v19;
void** v20;
void** v21;
void** v22;
void** v23;
void** v24;
void** v25;
void** v26;
void** v27;
void** v28;
void** v29;
void** v30;
void** v31;
void** v32;
void** v33;
void** r0_34;
void** v35;
void** v36;
void** v37;
void** v38;
void** v39;
void** v40;
void** v41;
void** v42;
void** v43;
void** v44;
void** v45;
void** v46;
void** v47;
void** v48;
void** v49;
void** v50;
void** v51;
void** v52;
void** v53;
void** v54;
void** v55;
void** v56;
void** v57;
void** v58;
void** r0_59;
void** r0_60;
void* r0_61;
void** v62;
int32_t v63;
void** r0_64;
void** r0_65;
int1_t z66;
void** r0_67;
r3_4 = reinterpret_cast<void**>(0xffffc80c);
r5_5 = reinterpret_cast<void**>(0);
r4_6 = gffffc80c;
r0_34 = GetOwnerProcess(r0, r1, r2, 0xffffc80c, 0, v7, v8, v9, v10, r4_11, r5_12, r11_13, __zero_stack_offset(), __return_address(), v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33);
if (r4_6 != r0_34) {
r0_59 = GetOwnerProcess(r0_34, r1, r2, 0xffffc80c, 0, v35, v36, v37, v38, r4_11, r5_12, r11_13, __zero_stack_offset(), __return_address(), v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58);
r0_60 = image_base_;
MapPtrUnsecure(r0_60, r0_59, r2);
r0_61 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(__zero_stack_offset()) - 20 + 20 - 32);
r0_64 = PerformCallBack4(r0_61, 0, 0, 0, 0, v62, r0_61, 0, 0, 0, 0, v63);
r5_5 = r0_64;
} else {
r0_65 = GetCRTFlags();
z66 = (reinterpret_cast<unsigned char>(r0_65) & 1) == 0;
if (!z66) {
r3_4 = reinterpret_cast<void**>(1);
}
if (z66) {
r3_4 = reinterpret_cast<void**>(0);
}
if (!r3_4) {
r0_67 = fun_10009a80(0, r1, r2);
r5_5 = r0_67;
}
}
__asm__("ldmdb fp, {r4, r5, fp, sp, lr}");
return r5_5;
}
void** g10009c84 = reinterpret_cast<void**>(0xde);
void** fun_10009c08(void** r0) {
void** r2_2;
void** r3_3;
int1_t z4;
void** r2_5;
r2_2 = gffffc800;
r3_3 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r2_2 + 8)) | 2);
*reinterpret_cast<void***>(r2_2 + 8) = r3_3;
z4 = r0 == 0;
if (!z4) {
r2_2 = *reinterpret_cast<void***>(r0 + 4);
}
if (!z4) {
r3_3 = g10009c84;
}
if (!z4) {
z4 = r2_2 == r3_3;
}
if (!z4) {
r0 = reinterpret_cast<void**>(0);
}
if (!z4) {
}
r2_5 = gffffc800;
__asm__("bic r3, r3, #2");
*reinterpret_cast<void***>(r2_5 + 8) = *reinterpret_cast<void***>(r2_5 + 8);
__asm__("ldmdb fp, {fp, sp, lr}");
return r0;
}
struct s6 {
unsigned char f0;
signed char[31] pad32;
void** f20;
};
/* (image base) */
struct s6* image_base_ = reinterpret_cast<struct s6*>(0x1007ad2c);
void** InitializeCriticalSection(void** r0, void** r1, void** r2);
void** fun_10009c88() {
struct s6* r4_1;
void** r1_2;
void** r2_3;
void** r0_4;
r4_1 = image_base_;
if (!r4_1->f0) {
r0_4 = InitializeCriticalSection(&r4_1->f20, r1_2, r2_3);
r4_1->f0 = 1;
}
return r0_4;
}
struct s7 {
void** f0;
signed char[23] pad24;
void** f18;
};
/* (image base) */
struct s7* image_base_ = reinterpret_cast<struct s7*>(0x1007ad34);
void** EnterCriticalSection(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11);
void** LeaveCriticalSection(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7);
void** fun_10009cb8(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8) {
struct s7* r4_9;
void** r4_10;
void** r5_11;
void** r3_12;
void** r0_13;
fun_10009c88();
r4_9 = image_base_;
EnterCriticalSection(&r4_9->f18, r1, r2, r3, r4_10, r5_11, __return_address(), a5, a6, a7, a8);
r3_12 = r4_9->f0;
*reinterpret_cast<void***>(r0) = r3_12;
r4_9->f0 = r0;
r0_13 = LeaveCriticalSection(&r4_9->f18, r1, r2, r3_12, r4_10, r5_11, __return_address());
return r0_13;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(52);
void** fun_10009cf0(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8) {
void** v9;
void** r4_10;
void** v11;
void** r5_12;
void** v13;
void** r4_14;
void** r5_15;
void** r3_16;
void** r1_17;
void** r2_18;
int1_t z19;
void** r0_20;
v9 = r4_10;
v11 = r5_12;
v13 = reinterpret_cast<void**>(__return_address());
r4_14 = r0;
fun_10009c88();
r5_15 = image_base_;
EnterCriticalSection(r5_15 + 24, r1, r2, r3, v9, v11, v13, a5, a6, a7, a8);
r3_16 = *reinterpret_cast<void***>(r5_15);
r1_17 = r5_15;
while (r2_18 = r3_16, !z19) {
z19 = r2_18 == r4_14;
if (z19)
goto label_5;
r3_16 = *reinterpret_cast<void***>(r2_18);
r1_17 = r2_18;
}
addr_10009d38_8:
r0_20 = LeaveCriticalSection(r5_15 + 24, r1_17, r2_18, r3_16, v9, v11, v13);
return r0_20;
label_5:
r3_16 = *reinterpret_cast<void***>(r4_14);
*reinterpret_cast<void***>(r1_17) = r3_16;
goto addr_10009d38_8;
}
void** LocalAlloc(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23, void** a24, void** a25, void** a26, void** a27, void** a28, void** a29, void** a30, void** a31, void** a32, ...);
void** MapPtrToProcess(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14);
void memset(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, ...);
void** fun_10009d4c(void** r0, void** r1, void** r2) {
void** v4;
void** r4_5;
void** v6;
void** r5_7;
void** v8;
void** r6_9;
void** v10;
void** r5_11;
void** r3_12;
void** r4_13;
void** r6_14;
int1_t z15;
int1_t z16;
int1_t z17;
void** v18;
void** v19;
void** v20;
void** v21;
void** v22;
void** v23;
void** v24;
void** v25;
void** v26;
void** v27;
void** v28;
void** v29;
void** v30;
void** v31;
void** v32;
void** v33;
void** v34;
void** v35;
void** v36;
void** v37;
void** v38;
void** v39;
void** v40;
void** v41;
void** r0_42;
void** v43;
void** v44;
void** v45;
void** v46;
void** v47;
void** v48;
void** r0_49;
void** v50;
void** v51;
void** v52;
void** v53;
void** v54;
int1_t z55;
v4 = r4_5;
v6 = r5_7;
v8 = r6_9;
v10 = reinterpret_cast<void**>(__return_address());
r5_11 = r0;
r3_12 = *reinterpret_cast<void***>(r5_11 + 0x15c);
r4_13 = r3_12;
r6_14 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r1) & reinterpret_cast<unsigned char>(0x3ff));
if (z15) {
goto addr_10009d8c_3;
}
while (r3_12 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_13 + 4)))), z16 = r3_12 == r6_14, !z16) {
r3_12 = *reinterpret_cast<void***>(r4_13);
r4_13 = r3_12;
if (z16)
goto addr_10009d84_6;
}
addr_10009d84_6:
z17 = r4_13 == 0;
if (z17) {
addr_10009d8c_3:
r0_42 = LocalAlloc(64, 24, 0x3ff, r3_12, v4, v6, v8, v10, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41);
r4_13 = r0_42;
if (z17) {
goto addr_10009db0_11;
} else {
r0_49 = MapPtrToProcess(r4_13, 66, 0x3ff, r3_12, v4, v6, v8, v10, v43, v44, v45, v46, v47, v48);
r4_13 = r0_49;
goto addr_10009db0_11;
}
}
addr_10009dd8_13:
return r4_13;
addr_10009db0_11:
memset(r4_13, 0, 24, r3_12, v4, v6, v8, v10, v50, v51, v52, v53, v54);
z55 = r4_13 == 0;
if (z55) {
r4_13 = reinterpret_cast<void**>(0);
}
if (!z55) {
*reinterpret_cast<void***>(r4_13 + 4) = reinterpret_cast<void**>(static_cast<uint16_t>(reinterpret_cast<uint32_t>(r6_14)));
}
if (!z55) {
r3_12 = *reinterpret_cast<void***>(r5_11 + 0x15c);
}
if (!z55) {
*reinterpret_cast<void***>(r4_13) = r3_12;
}
if (!z55) {
*reinterpret_cast<void***>(r5_11 + 0x15c) = r4_13;
goto addr_10009dd8_13;
}
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0);
void** ImmCreateIMCC(void** r0, void** r1) {
void** r5_3;
void** r4_4;
void** v5;
void** v6;
void** v7;
void** v8;
void** r4_9;
void** r5_10;
void** r11_11;
void** v12;
void** v13;
void** v14;
void** v15;
void** v16;
void** v17;
void** v18;
void** v19;
void** v20;
void** v21;
void** v22;
void** v23;
void** v24;
void** v25;
void** v26;
void** v27;
void** v28;
void** v29;
void** v30;
void** v31;
void** r0_32;
void** v33;
void** v34;
void** v35;
void** v36;
void** v37;
void** v38;
void** v39;
void** v40;
void** v41;
void** v42;
void** v43;
void** v44;
void** v45;
void** v46;
void** v47;
void** v48;
void** v49;
void** v50;
void** v51;
void** v52;
void** v53;
void** v54;
void** v55;
void** v56;
void** r0_57;
void** r0_58;
void* r0_59;
void** v60;
int32_t v61;
void** r0_62;
void** v63;
void** v64;
void** v65;
void** v66;
void** v67;
void** v68;
void** v69;
void** v70;
void** v71;
void** v72;
void** v73;
void** v74;
void** v75;
void** v76;
void** v77;
void** v78;
void** v79;
void** v80;
void** v81;
void** v82;
void** v83;
void** v84;
void** v85;
void** v86;
void** v87;
void** v88;
void** r0_89;
r5_3 = r0;
r4_4 = gffffc80c;
r0_32 = GetOwnerProcess(r0, r1, 0, 0xffffc80c, 0, v5, v6, v7, v8, r4_9, r5_10, r11_11, __zero_stack_offset(), __return_address(), v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31);
if (r4_4 != r0_32) {
r0_57 = GetOwnerProcess(r0_32, r1, 0, 0xffffc80c, 0, v33, v34, v35, v36, r4_9, r5_10, r11_11, __zero_stack_offset(), __return_address(), v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56);
r0_58 = image_base_;
MapPtrUnsecure(r0_58, r0_57, 0);
r0_59 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(__zero_stack_offset()) - 20 + 20 - 32);
r0_62 = PerformCallBack4(r0_59, 0, 0, 0, 0, v60, r0_59, 0, 0, 0, 0, v61);
} else {
if (reinterpret_cast<unsigned char>(r5_3) >= reinterpret_cast<unsigned char>(4)) {
r5_3 = reinterpret_cast<void**>(4);
}
r0_62 = LocalAlloc(64, r5_3, 0, 0xffffc80c, 0, v63, v64, v65, v66, r4_9, r5_10, r11_11, __zero_stack_offset(), __return_address(), v67, v68, v69, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v80, v81, v82, v83, v84);
if (r0_62) {
r0_89 = MapPtrToProcess(r0_62, 66, 0, 0xffffc80c, 0, v85, v86, v87, v88, r4_9, r5_10, r11_11, __zero_stack_offset(), __return_address());
__asm__("ldmdb fp, {r4, r5, fp, sp, lr}");
return r0_89;
}
}
__asm__("ldmdb fp, {r4, r5, fp, sp, lr}");
return r0_62;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xb8);
void** fun_100099a8(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23, void** a24, void** a25, void** a26, void** a27, void** a28, void** a29, void** a30, void** a31);
void** ImmDestroyIMCC(void** r0, void** r1, void** r2) {
void** r4_4;
void** v5;
void** v6;
void** v7;
void** v8;
void** r4_9;
void** r5_10;
void** r11_11;
void** v12;
void** v13;
void** v14;
void** v15;
void** v16;
void** v17;
void** v18;
void** v19;
void** v20;
void** v21;
void** v22;
void** v23;
void** v24;
void** v25;
void** v26;
void** v27;
void** v28;
void** v29;
void** v30;
void** v31;
void** r0_32;
void** v33;
void** v34;
void** v35;
void** v36;
void** v37;
void** v38;
void** v39;
void** v40;
void** v41;
void** v42;
void** v43;
void** v44;
void** v45;
void** v46;
void** v47;
void** v48;
void** v49;
void** v50;
void** v51;
void** v52;
void** v53;
void** v54;
void** v55;
void** v56;
void** r0_57;
void** r0_58;
void* r0_59;
void** v60;
int32_t v61;
void** r0_62;
void** v63;
void** v64;
void** v65;
void** v66;
void** v67;
void** v68;
void** v69;
void** v70;
void** v71;
void** v72;
void** v73;
void** v74;
void** v75;
void** v76;
void** v77;
void** v78;
void** v79;
void** v80;
void** v81;
void** v82;
void** v83;
void** r0_84;
r4_4 = gffffc80c;
r0_32 = GetOwnerProcess(r0, r1, 0, 0xffffc80c, 0, v5, v6, v7, v8, r4_9, r5_10, r11_11, __zero_stack_offset(), __return_address(), v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31);
if (r4_4 != r0_32) {
r0_57 = GetOwnerProcess(r0_32, r1, 0, 0xffffc80c, 0, v33, v34, v35, v36, r4_9, r5_10, r11_11, __zero_stack_offset(), __return_address(), v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56);
r0_58 = image_base_;
MapPtrUnsecure(r0_58, r0_57, 0);
r0_59 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(__zero_stack_offset()) - 20 + 20 - 32);
r0_62 = PerformCallBack4(r0_59, 0, 0, 0, 0, v60, r0_59, 0, 0, 0, 0, v61);
__asm__("ldmdb fp, {r4, r5, fp, sp, lr}");
return r0_62;
} else {
r0_84 = fun_100099a8(r0, r1, 0, 0xffffc80c, 0, v63, v64, v65, v66, r4_9, r5_10, r11_11, __zero_stack_offset(), __return_address(), v67, v68, v69, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v80, v81, v82, v83);
__asm__("ldmdb fp, {r4, r5, fp, sp, lr}");
return r0_84;
}
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x68);
void** fun_100099e0(void** r0, void** r1);
void** ImmReSizeIMCC(void** r0, void** r1) {
void** r4_3;
void** v4;
void** v5;
void** v6;
void** v7;
void** r4_8;
void** r5_9;
void** r6_10;
void** r11_11;
void** v12;
void** v13;
void** v14;
void** v15;
void** v16;
void** v17;
void** v18;
void** v19;
void** v20;
void** v21;
void** v22;
void** v23;
void** v24;
void** v25;
void** v26;
void** v27;
void** v28;
void** v29;
void** v30;
void** r0_31;
void** v32;
void** v33;
void** v34;
void** v35;
void** v36;
void** v37;
void** v38;
void** v39;
void** v40;
void** v41;
void** v42;
void** v43;
void** v44;
void** v45;
void** v46;
void** v47;
void** v48;
void** v49;
void** v50;
void** v51;
void** v52;
void** v53;
void** v54;
void** r0_55;
void** r0_56;
void* r0_57;
void** v58;
int32_t v59;
void** r0_60;
void** r0_61;
r4_3 = gffffc80c;
r0_31 = GetOwnerProcess(r0, r1, 0, 0xffffc80c, 0, v4, v5, v6, v7, r4_8, r5_9, r6_10, r11_11, __zero_stack_offset(), __return_address(), v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30);
if (r4_3 != r0_31) {
r0_55 = GetOwnerProcess(r0_31, r1, 0, 0xffffc80c, 0, v32, v33, v34, v35, r4_8, r5_9, r6_10, r11_11, __zero_stack_offset(), __return_address(), v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54);
r0_56 = image_base_;
MapPtrUnsecure(r0_56, r0_55, 0);
r0_57 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(__zero_stack_offset()) - 24 + 24 - 36);
r0_60 = PerformCallBack4(r0_57, r1, 0, 0, 0, v58, r0_57, r1, 0, 0, 0, v59);
__asm__("ldmdb fp, {r4, r5, r6, fp, sp, lr}");
return r0_60;
} else {
r0_61 = fun_100099e0(r0, r1);
__asm__("ldmdb fp, {r4, r5, r6, fp, sp, lr}");
return r0_61;
}
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xa8);
void** g1000a39c = reinterpret_cast<void**>(0xde);
void** gffffc808;
void** ImmCreateContext(void** r0, void** r1, void** r2) {
void** r3_4;
void** r5_5;
void** r4_6;
void** v7;
void** v8;
void** v9;
void** v10;
void** r4_11;
void** r5_12;
void** r11_13;
void** v14;
void** v15;
void** v16;
void** v17;
void** v18;
void** v19;
void** v20;
void** v21;
void** v22;
void** v23;
void** v24;
void** v25;
void** v26;
void** v27;
void** v28;
void** v29;
void** v30;
void** v31;
void** v32;
void** v33;
void** r0_34;
void** v35;
void** v36;
void** v37;
void** v38;
void** v39;
void** v40;
void** v41;
void** v42;
void** v43;
void** v44;
void** v45;
void** v46;
void** v47;
void** v48;
void** v49;
void** v50;
void** v51;
void** v52;
void** v53;
void** v54;
void** v55;
void** v56;
void** v57;
void** v58;
void** r0_59;
void** r0_60;
void* r0_61;
void** v62;
int32_t v63;
void** r0_64;
void** r0_65;
int1_t z66;
int1_t z67;
void** r1_68;
void** v69;
void** v70;
void** v71;
void** v72;
void** v73;
void** v74;
void** v75;
void** v76;
void** v77;
void** v78;
void** v79;
void** v80;
void** v81;
void** v82;
void** v83;
void** v84;
void** v85;
void** v86;
void** v87;
void** v88;
void** v89;
void** v90;
void** r0_91;
void** v92;
void** v93;
void** v94;
void** v95;
void** r0_96;
void** r3_97;
void** r3_98;
void** v99;
void** v100;
void** v101;
r3_4 = reinterpret_cast<void**>(0xffffc80c);
r5_5 = reinterpret_cast<void**>(0);
r4_6 = gffffc80c;
r0_34 = GetOwnerProcess(r0, r1, r2, 0xffffc80c, 0, v7, v8, v9, v10, r4_11, r5_12, r11_13, __zero_stack_offset(), __return_address(), v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33);
if (r4_6 != r0_34) {
r0_59 = GetOwnerProcess(r0_34, r1, r2, 0xffffc80c, 0, v35, v36, v37, v38, r4_11, r5_12, r11_13, __zero_stack_offset(), __return_address(), v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58);
r0_60 = image_base_;
MapPtrUnsecure(r0_60, r0_59, r2);
r0_61 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(__zero_stack_offset()) - 20 + 20 - 32);
r0_64 = PerformCallBack4(r0_61, 0, 0, 0, 0, v62, r0_61, 0, 0, 0, 0, v63);
r5_5 = r0_64;
} else {
r0_65 = GetCRTFlags();
z66 = (reinterpret_cast<unsigned char>(r0_65) & 1) == 0;
if (!z66) {
r3_4 = reinterpret_cast<void**>(1);
}
if (z66) {
r3_4 = reinterpret_cast<void**>(0);
}
z67 = r3_4 == 0;
if (z67) {
r1_68 = reinterpret_cast<void**>(24);
r0_91 = LocalAlloc(64, 24, r2, r3_4, 0, v69, v70, v71, v72, r4_11, r5_12, r11_13, __zero_stack_offset(), __return_address(), v73, v74, v75, v76, v77, v78, v79, v80, v81, v82, v83, v84, v85, v86, v87, v88, v89, v90);
r5_5 = r0_91;
if (!z67) {
r1_68 = reinterpret_cast<void**>(66);
r0_96 = MapPtrToProcess(r5_5, 66, r2, r3_4, 0, v92, v93, v94, v95, r4_11, r5_12, r11_13, __zero_stack_offset(), __return_address());
r5_5 = r0_96;
}
if (r5_5) {
r3_97 = g1000a39c;
*reinterpret_cast<void***>(r5_5 + 4) = r3_97;
r3_98 = gffffc808;
*reinterpret_cast<void***>(r5_5 + 12) = r3_98;
fun_10009cb8(r5_5, r1_68, 0xffffc808, r3_98, 0, v99, v100, v101);
}
}
}
__asm__("ldmdb fp, {r4, r5, fp, sp, lr}");
return r5_5;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xa8);
void** InterlockedDecrement(void** r0, void** r1, void** r2);
void** ImmUnlockIMC(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23, void** a24, void** a25, void** a26, void** a27, void** a28, void** a29, void** a30, void** a31, void** a32, void** a33, void** a34) {
void** r5_35;
void** r4_36;
void** v37;
void** v38;
void** v39;
void** v40;
void** r4_41;
void** r5_42;
void** r6_43;
void** r11_44;
void** r0_45;
void** v46;
void** v47;
void** v48;
void** v49;
void** r0_50;
void** r0_51;
void* r0_52;
void** v53;
int32_t v54;
void** r0_55;
void** r0_56;
r5_35 = reinterpret_cast<void**>(0);
r4_36 = gffffc80c;
r0_45 = GetOwnerProcess(r0, r1, r2, 0xffffc80c, 0, v37, v38, v39, v40, r4_41, r5_42, r6_43, r11_44, __zero_stack_offset(), __return_address(), a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23);
if (r4_36 != r0_45) {
r0_50 = GetOwnerProcess(r0_45, r1, r2, 0xffffc80c, 0, v46, v47, v48, v49, r4_41, r5_42, r6_43, r11_44, __zero_stack_offset(), __return_address(), a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23);
r0_51 = image_base_;
MapPtrUnsecure(r0_51, r0_50, r2);
r0_52 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(__zero_stack_offset()) - 24 + 24 - 36);
r0_55 = PerformCallBack4(r0_52, 0, 0, 0, 0, v53, r0_52, 0, 0, 0, 0, v54);
r5_35 = r0_55;
} else {
r0_56 = fun_10009c08(r0);
if (r0_56) {
InterlockedDecrement(r0_56 + 16, r1, r2);
r5_35 = reinterpret_cast<void**>(1);
}
}
__asm__("ldmdb fp, {r4, r5, r6, fp, sp, lr}");
return r5_35;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(92);
void** fun_10038a38(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23, void** a24, void** a25, void** a26, void** a27, void** a28, void** a29, void** a30, void** a31);
void** DefaultImcGet(void** r0, void** r1, void** r2) {
void** r3_4;
void** r5_5;
void** r4_6;
void** v7;
void** v8;
void** v9;
void** v10;
void** r4_11;
void** r5_12;
void** r11_13;
void** v14;
void** v15;
void** v16;
void** v17;
void** v18;
void** v19;
void** v20;
void** v21;
void** v22;
void** v23;
void** v24;
void** v25;
void** v26;
void** v27;
void** v28;
void** v29;
void** v30;
void** v31;
void** v32;
void** v33;
void** r0_34;
void** v35;
void** v36;
void** v37;
void** v38;
void** v39;
void** v40;
void** v41;
void** v42;
void** v43;
void** v44;
void** v45;
void** v46;
void** v47;
void** v48;
void** v49;
void** v50;
void** v51;
void** v52;
void** v53;
void** v54;
void** v55;
void** v56;
void** v57;
void** v58;
void** r0_59;
void** r0_60;
void* r0_61;
void** v62;
int32_t v63;
void** r0_64;
void** r0_65;
int1_t z66;
int1_t z67;
void** v68;
void** v69;
void** v70;
void** v71;
void** v72;
void** v73;
void** v74;
void** v75;
void** v76;
void** v77;
void** v78;
void** v79;
void** v80;
void** v81;
void** v82;
void** v83;
void** v84;
void** v85;
void** v86;
void** v87;
void** v88;
void** r0_89;
void** r0_90;
void** r3_91;
void** r0_92;
int1_t z93;
r3_4 = reinterpret_cast<void**>(0xffffc80c);
r5_5 = reinterpret_cast<void**>(0);
r4_6 = gffffc80c;
r0_34 = GetOwnerProcess(r0, r1, r2, 0xffffc80c, 0, v7, v8, v9, v10, r4_11, r5_12, r11_13, __zero_stack_offset(), __return_address(), v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33);
if (r4_6 != r0_34) {
r0_59 = GetOwnerProcess(r0_34, r1, r2, 0xffffc80c, 0, v35, v36, v37, v38, r4_11, r5_12, r11_13, __zero_stack_offset(), __return_address(), v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58);
r0_60 = image_base_;
MapPtrUnsecure(r0_60, r0_59, r2);
r0_61 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(__zero_stack_offset()) - 20 + 20 - 32);
r0_64 = PerformCallBack4(r0_61, 0, 0, 0, 0, v62, r0_61, 0, 0, 0, 0, v63);
r5_5 = r0_64;
} else {
r0_65 = GetCRTFlags();
z66 = (reinterpret_cast<unsigned char>(r0_65) & 1) == 0;
if (!z66) {
r3_4 = reinterpret_cast<void**>(1);
}
if (z66) {
r3_4 = reinterpret_cast<void**>(0);
}
z67 = r3_4 == 0;
if (!z67)
goto label_9; else
goto addr_1000a4a4_10;
}
addr_1000a548_11:
__asm__("ldmdb fp, {r4, r5, fp, sp, lr}");
return r5_5;
label_9:
goto addr_1000a548_11;
addr_1000a4a4_10:
r0_89 = fun_10038a38(r0_65, r1, r2, r3_4, 0, v68, v69, v70, v71, r4_11, r5_12, r11_13, __zero_stack_offset(), __return_address(), v72, v73, v74, v75, v76, v77, v78, v79, v80, v81, v82, v83, v84, v85, v86, v87, v88);
if (z67) {
goto addr_1000a548_11;
} else {
if (!z67) {
if (!(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r0_89)) & 2)) {
goto addr_1000a4d0_17;
}
if (*reinterpret_cast<void***>(r0_89 + 0x16c) != 1) {
addr_1000a4d0_17:
if (!reinterpret_cast<int1_t>(*reinterpret_cast<void***>(r0_89 + 0x16c) == 1)) {
goto addr_1000a4fc_21;
} else {
goto addr_1000a548_11;
}
}
}
}
r0_90 = ImmCreateContext(r0_89, r1, *reinterpret_cast<void***>(r0_89 + 0x16c));
r3_91 = r0_90;
*reinterpret_cast<void***>(r0_89 + 0x16c) = r3_91;
r0_92 = fun_10009c08(r0_90);
z93 = r0_92 == 0;
if (!z93) {
r3_91 = *reinterpret_cast<void***>(r0_92 + 8);
}
if (!z93) {
r3_91 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r3_91) | 0x100);
}
if (!z93) {
*reinterpret_cast<void***>(r0_92 + 8) = r3_91;
}
addr_1000a4fc_21:
r5_5 = *reinterpret_cast<void***>(r0_89 + 0x16c);
goto addr_1000a548_11;
}
int32_t GetForegroundInfo(void* r0, void** r1, void** r2, void** r3, void** a5, void** a6);
void** fun_1000a594(void** r0, void** r1, void** r2) {
void** r3_4;
void** v5;
void** v6;
int32_t r0_7;
int1_t z8;
void** v9;
int1_t z10;
void** v11;
r3_4 = reinterpret_cast<void**>(0);
if (r0) {
*reinterpret_cast<void***>(r0) = reinterpret_cast<void**>(0);
}
if (r1) {
*reinterpret_cast<void***>(r1) = reinterpret_cast<void**>(0);
}
r0_7 = GetForegroundInfo(reinterpret_cast<int32_t>(__zero_stack_offset()) - 24 + 24 - 60, r1, r2, 0, v5, v6);
if (r0_7) {
z8 = r0 == 0;
if (!z8) {
r3_4 = v9;
}
if (!z8) {
*reinterpret_cast<void***>(r0) = r3_4;
}
z10 = r1 == 0;
if (!z10) {
r3_4 = v11;
}
if (!z10) {
*reinterpret_cast<void***>(r1) = r3_4;
}
}
__asm__("ldmdb fp, {r4, r5, r6, fp, sp, lr}");
return 1;
}
int32_t fun_1000a7fc(void*** r0, void** r1, void** r2, void** r3) {
void** v5;
void** v6;
int32_t r0_7;
int1_t z8;
void** v9;
r0_7 = GetForegroundInfo(reinterpret_cast<int32_t>(__zero_stack_offset()) - 20 + 20 - 56, r1, r2, r3, v5, v6);
z8 = r0_7 == 0;
if (!z8) {
r3 = v9;
}
if (!z8) {
*r0 = r3;
}
__asm__("ldmdb fp, {r4, r5, fp, sp, lr}");
return 1;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(8);
void** ImmGetDefaultIMEWnd(void** r0, void** r1, void** r2) {
void** r4_4;
void** v5;
void** v6;
void** v7;
void** v8;
void** r4_9;
void** r5_10;
void** r11_11;
void** v12;
void** v13;
void** v14;
void** v15;
void** v16;
void** v17;
void** v18;
void** v19;
void** v20;
void** v21;
void** v22;
void** v23;
void** v24;
void** v25;
void** v26;
void** v27;
void** v28;
void** v29;
void** v30;
void** v31;
void** r0_32;
void** v33;
void** v34;
void** v35;
void** v36;
void** v37;
void** v38;
void** v39;
void** v40;
void** v41;
void** v42;
void** v43;
void** v44;
void** v45;
void** v46;
void** v47;
void** v48;
void** v49;
void** v50;
void** v51;
void** v52;
void** v53;
void** v54;
void** v55;
void** v56;
void** r0_57;
void** r0_58;
void* r0_59;
void** v60;
int32_t v61;
void** r0_62;
void** r0_63;
r4_4 = gffffc80c;
r0_32 = GetOwnerProcess(r0, r1, 0, 0xffffc80c, 0, v5, v6, v7, v8, r4_9, r5_10, r11_11, __zero_stack_offset(), __return_address(), v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31);
if (r4_4 != r0_32) {
r0_57 = GetOwnerProcess(r0_32, r1, 0, 0xffffc80c, 0, v33, v34, v35, v36, r4_9, r5_10, r11_11, __zero_stack_offset(), __return_address(), v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56);
r0_58 = image_base_;
MapPtrUnsecure(r0_58, r0_57, 0);
r0_59 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(__zero_stack_offset()) - 20 + 20 - 32);
r0_62 = PerformCallBack4(r0_59, 0, 0, 0, 0, v60, r0_59, 0, 0, 0, 0, v61);
__asm__("ldmdb fp, {r4, r5, fp, sp, lr}");
return r0_62;
} else {
r0_63 = DefaultImeWndGet(r0_32, r1, 0);
__asm__("ldmdb fp, {r4, r5, fp, sp, lr}");
return r0_63;
}
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xa0);
void** fun_1003c840(void** r0, void** r1, void** r2);
void** SetLastError(void** r0, void** r1, void** r2, void** r3, ...);
void** ImmGetKeyboardLayout(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23) {
void** r5_24;
void** r4_25;
void** v26;
void** v27;
void** v28;
void** v29;
void** r4_30;
void** r5_31;
void** r6_32;
void** r11_33;
void** r0_34;
void** v35;
void** v36;
void** v37;
void** v38;
void** r0_39;
void** r0_40;
void* r0_41;
void** v42;
int32_t v43;
void** r0_44;
void** r0_45;
r5_24 = reinterpret_cast<void**>(0);
r4_25 = gffffc80c;
r0_34 = GetOwnerProcess(r0, r1, r2, 0xffffc80c, 0, v26, v27, v28, v29, r4_30, r5_31, r6_32, r11_33, __zero_stack_offset(), __return_address(), a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23);
if (r4_25 != r0_34) {
r0_39 = GetOwnerProcess(r0_34, r1, r2, 0xffffc80c, 0, v35, v36, v37, v38, r4_30, r5_31, r6_32, r11_33, __zero_stack_offset(), __return_address(), a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23);
r0_40 = image_base_;
MapPtrUnsecure(r0_40, r0_39, r2);
r0_41 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(__zero_stack_offset()) - 24 + 24 - 36);
r0_44 = PerformCallBack4(r0_41, 0, 0, 0, 0, v42, r0_41, 0, 0, 0, 0, v43);
r5_24 = r0_44;
} else {
if (!r0) {
r0_45 = fun_1003c840(0, 1, r2);
r5_24 = r0_45;
} else {
SetLastError(87, r1, r2, 0xffffc80c, 87, r1, r2, 0xffffc80c);
}
}
__asm__("ldmdb fp, {r4, r5, r6, fp, sp, lr}");
return r5_24;
}
void** fun_1000ab08(void** r0, void** r1) {
int1_t below_or_equal3;
int1_t below_or_equal4;
int1_t below_or_equal5;
if (reinterpret_cast<unsigned char>(r0) < reinterpret_cast<unsigned char>(48)) {
below_or_equal3 = reinterpret_cast<unsigned char>(r0) <= reinterpret_cast<unsigned char>(57);
if (below_or_equal3) {
r0 = r0 - 48;
}
if (below_or_equal3) {
return r0;
}
}
if (reinterpret_cast<unsigned char>(r0) < reinterpret_cast<unsigned char>(65)) {
below_or_equal4 = reinterpret_cast<unsigned char>(r0) <= reinterpret_cast<unsigned char>(70);
if (below_or_equal4) {
r0 = r0 - 55;
}
if (below_or_equal4) {
return r0;
}
}
if (reinterpret_cast<unsigned char>(r0) < reinterpret_cast<unsigned char>(97)) {
below_or_equal5 = reinterpret_cast<unsigned char>(r0) <= reinterpret_cast<unsigned char>(0x66);
if (below_or_equal5) {
r0 = r0 - 87;
}
if (below_or_equal5) {
return r0;
}
}
return 0;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x80);
void** StringCchPrintfW(void** r0, void** r1, void** r2, void** r3, int32_t a5, int32_t a6);
void** RegOpenKeyExW(int32_t r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, ...);
void** RegQueryValueExW(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, ...);
void** RegCloseKey(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, ...);
int32_t fun_1000ab9c(int32_t r0, void** r1, void** r2, void** r3) {
void*** sp5;
void** r6_6;
void** r3_7;
void** r2_8;
void** r1_9;
int32_t r5_10;
int32_t v11;
int32_t v12;
void** v13;
void** v14;
void** r0_15;
void** v16;
void** v17;
void** r0_18;
void** v19;
uint16_t v20;
void** r4_21;
void** r0_22;
uint16_t v23;
sp5 = reinterpret_cast<void***>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 20 - 68);
r6_6 = r2;
r3_7 = r1;
r2_8 = image_base_;
r1_9 = reinterpret_cast<void**>(9);
r5_10 = 0;
StringCchPrintfW(sp5 + 48, 9, r2_8, r3_7, v11, v12);
if (!__intrinsic()) {
r0_15 = RegOpenKeyExW(r0, sp5 + 48, 0, 0xf003f, sp5 + 8, v13, 0, v14);
if (r0_15) {
goto addr_1000ac80_5;
} else {
r3_7 = reinterpret_cast<void**>(sp5 + 16);
r2_8 = reinterpret_cast<void**>(0);
r1_9 = reinterpret_cast<void**>(0);
v16 = reinterpret_cast<void**>(sp5 + 12);
v17 = reinterpret_cast<void**>(sp5 + 24);
r0_18 = RegQueryValueExW(0, 0, 0, r3_7, v17, v16, 0, 18);
if (!r0_18) {
r3_7 = v19;
if (reinterpret_cast<int1_t>(r3_7 == 1)) {
r2_8 = reinterpret_cast<void**>(0);
r3_7 = reinterpret_cast<void**>(static_cast<uint32_t>(v20));
r4_21 = reinterpret_cast<void**>(0);
while (r3_7) {
r0_22 = fun_1000ab08(r3_7, 0);
r3_7 = reinterpret_cast<void**>(static_cast<uint32_t>(v23));
r4_21 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r0_22) + (reinterpret_cast<unsigned char>(r4_21) << 4));
}
*reinterpret_cast<void***>(r6_6) = r4_21;
r5_10 = 1;
}
}
}
}
if (0) {
RegCloseKey(0, r1_9, r2_8, r3_7, v17, v16, 0, 18, 0, r1_9, r2_8, r3_7, v17, v16, 0, 18);
}
addr_1000ac80_5:
return r5_10;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xd8);
int32_t fun_1000ac94(void** r0, void** r1) {
void** r1_3;
void** r3_4;
int32_t r4_5;
void** r4_6;
void** r5_7;
void** r0_8;
int1_t z9;
r1_3 = image_base_;
r3_4 = reinterpret_cast<void**>(0xf003f);
r4_5 = 0;
r0_8 = RegOpenKeyExW(0x80000002, r1_3, 0, 0xf003f, r0, r4_6, r5_7, __return_address());
z9 = r0_8 == 0;
if (!z9) {
r3_4 = reinterpret_cast<void**>(0);
}
if (!z9) {
*reinterpret_cast<void***>(r0) = r3_4;
}
if (z9) {
r4_5 = 1;
}
return r4_5;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xc4);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xac);
int32_t fun_1000ace4(int32_t r0, void** r1, void** r2, void** r3) {
void*** sp5;
void** r4_6;
void** r8_7;
int32_t r5_8;
int32_t r3_9;
void** r1_10;
void** v11;
void** v12;
void** v13;
int32_t v14;
int32_t v15;
void** r0_16;
void** r1_17;
void** r3_18;
void** v19;
void** v20;
void** v21;
void** r0_22;
void** v23;
void** r0_24;
void** v25;
sp5 = reinterpret_cast<void***>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 24 - 44);
r4_6 = r3;
r8_7 = r2;
r5_8 = 0;
r3_9 = 7;
while (--r3_9, r3_9 >= 0) {
}
r1_10 = reinterpret_cast<void**>(sp5 + 24);
v11 = reinterpret_cast<void**>(sp5 + 8);
r0_16 = RegOpenKeyExW(r0, r1_10, 0, 0xf003f, v11, v12, 0, v13, r0, r1_10, 0, 0xf003f, v11, v14, 0, v15);
if (!r0_16) {
r1_17 = image_base_;
r3_18 = reinterpret_cast<void**>(sp5 + 16);
v19 = reinterpret_cast<void**>(80);
v20 = reinterpret_cast<void**>(sp5 + 12);
v21 = r8_7;
r0_22 = RegQueryValueExW(0, r1_17, 0, r3_18, v21, v20, 0, 80, 0, r1_17, 0, r3_18, v21, v20, 0, 80);
if (!r0_22) {
r3_18 = v23;
if (reinterpret_cast<int1_t>(r3_18 == 1)) {
r1_17 = image_base_;
r3_18 = reinterpret_cast<void**>(sp5 + 16);
*reinterpret_cast<int16_t*>(r8_7 + 0x9e) = 0;
r5_8 = 1;
v19 = reinterpret_cast<void**>(50);
v20 = reinterpret_cast<void**>(sp5 + 12);
v21 = r4_6;
r0_24 = RegQueryValueExW(0, r1_17, 0, r3_18, v21, v20, 0, 50, 0, r1_17, 0, r3_18, v21, v20, 0, 50);
if (r0_24) {
goto addr_1000addc_12;
} else {
r3_18 = v25;
if (r3_18 != 1) {
addr_1000addc_12:
*reinterpret_cast<void***>(r4_6) = reinterpret_cast<void**>(0);
}
*reinterpret_cast<int16_t*>(r4_6 + 98) = 0;
}
}
}
if (0) {
RegCloseKey(0, r1_17, 0, r3_18, v21, v20, 0, v19, 0, r1_17, 0, r3_18, v21, v20, 0, v19);
}
}
return r5_8;
}
struct s8 {
void** f0;
signed char[7] pad8;
void** f8;
signed char[39] pad48;
signed char f30;
};
/* (image base) */
struct s8* image_base_ = reinterpret_cast<struct s8*>(0x1007ad30);
int32_t fun_1000ab4c(void** r0, void** r1);
void** wcsncpy(void** r0, void** r1, void** r2, void** r3, void** a5);
void** fun_1000ae0c(void** r0) {
void* sp2;
void** r3_3;
void** r2_4;
void** r1_5;
void** r0_6;
struct s8* r5_7;
int1_t z8;
void** v9;
void** v10;
void** v11;
void** v12;
void** v13;
void** r3_14;
int32_t r0_15;
int32_t r0_16;
int32_t r7_17;
void** r6_18;
int32_t r0_19;
void** v20;
int1_t z21;
int32_t r0_22;
void** v23;
void** v24;
void** v25;
void** v26;
void** v27;
void** v28;
void** v29;
void** v30;
void** v31;
void** v32;
void** v33;
void** v34;
void** v35;
void** v36;
void** v37;
void** v38;
void** v39;
void** v40;
void** v41;
void** v42;
void** v43;
void** v44;
void** v45;
void** v46;
void** v47;
void** v48;
void** r0_49;
int1_t z50;
void** v51;
void** v52;
void** v53;
void** v54;
void** v55;
void** v56;
void** v57;
void** v58;
void** r0_59;
void** r4_60;
void** v61;
void** v62;
void** v63;
void** v64;
void** v65;
void** r0_66;
sp2 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 32 - 0x118);
r3_3 = reinterpret_cast<void**>(0);
r2_4 = reinterpret_cast<void**>(0);
r1_5 = reinterpret_cast<void**>(9);
r0_6 = fun_1003c840(0, 9, 0);
r5_7 = image_base_;
z8 = r0_6 == 0;
if (!z8) {
r3_3 = reinterpret_cast<void**>(1);
}
if (z8) {
r3_3 = reinterpret_cast<void**>(0);
}
r5_7->f30 = static_cast<signed char>(reinterpret_cast<uint32_t>(r3_3));
EnterCriticalSection(&r5_7->f8, 9, 0, r3_3, 0, 0, v9, v10, v11, v12, v13);
r3_14 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(reinterpret_cast<int32_t>(r5_7) - 3)));
if (!r3_14) {
r3_14 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(reinterpret_cast<int32_t>(r5_7) - 2)));
if (!r3_14) {
r0_15 = fun_1000ab4c(static_cast<uint32_t>(sp2), 9);
if (!r0_15) {
goto addr_1000af58_11;
}
r0_16 = fun_1000ac94(reinterpret_cast<int32_t>(sp2) + 4, 9);
if (!r0_16) {
goto addr_1000af58_11;
}
r7_17 = 0;
r6_18 = reinterpret_cast<void**>(1);
while (1) {
r2_4 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(sp2) + 8);
r1_5 = r6_18;
r0_19 = fun_1000ab9c(0, r1_5, r2_4, r3_14);
if (r0_19) {
r3_14 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(v20) & 0xf0000000);
z21 = reinterpret_cast<int1_t>(r3_14 == 0xe0000000);
if (z21) {
r3_14 = reinterpret_cast<void**>(1);
}
if (!z21) {
r3_14 = reinterpret_cast<void**>(0);
}
if (r3_14) {
r3_14 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(sp2) + 16);
r2_4 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(sp2) + 0x78);
r1_5 = v20;
r0_22 = fun_1000ace4(0, r1_5, r2_4, r3_14);
if (r0_22) {
r1_5 = reinterpret_cast<void**>(0x194);
r0_49 = LocalAlloc(64, 0x194, r2_4, r3_14, 0, 0, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48);
z50 = r0_49 == 0;
if (z50)
goto label_26;
r1_5 = reinterpret_cast<void**>(66);
r0_59 = MapPtrToProcess(r0_49, 66, r2_4, r3_14, 0, 0, v51, v52, v53, v54, v55, v56, v57, v58);
if (z50)
goto label_28;
++r7_17;
wcsncpy(r0_59 + 40, reinterpret_cast<int32_t>(sp2) + 0x78, 80, r3_14, 0);
r4_60 = r0_59 + 0xc8;
r2_4 = reinterpret_cast<void**>(50);
r1_5 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(sp2) + 16);
*reinterpret_cast<int16_t*>(r0_59 + 0xc6) = 48;
wcsncpy(r4_60, r1_5, 50, r3_14, 0);
*reinterpret_cast<int16_t*>(r4_60 + 98) = 48;
*reinterpret_cast<void***>(r0_59 + 4) = v20;
r3_14 = r5_7->f0;
*reinterpret_cast<void***>(r0_59) = r3_14;
r5_7->f0 = r0_59;
}
}
}
++r6_18;
if (reinterpret_cast<signed char>(r6_18) > reinterpret_cast<signed char>(15))
goto addr_1000af50_31;
}
}
}
addr_1000af6c_33:
if (0) {
RegCloseKey(0, r1_5, r2_4, r3_14, 0, 0, v61, v62);
}
if (0) {
RegCloseKey(0, r1_5, r2_4, r3_14, 0, 0, v63, v64);
}
r0_66 = LeaveCriticalSection(&r5_7->f8, r1_5, r2_4, r3_14, 0, 0, v65);
return r0_66;
addr_1000af50_31:
if (r7_17) {
r3_14 = reinterpret_cast<void**>(1);
*reinterpret_cast<unsigned char*>(reinterpret_cast<int32_t>(r5_7) - 3) = 1;
goto addr_1000af6c_33;
} else {
addr_1000af58_11:
r3_14 = reinterpret_cast<void**>(1);
*reinterpret_cast<unsigned char*>(reinterpret_cast<int32_t>(r5_7) - 2) = 1;
goto addr_1000af6c_33;
}
label_26:
goto addr_1000af50_31;
label_28:
goto addr_1000af50_31;
}
/* (image base) */
void*** image_base_ = reinterpret_cast<void***>(0x1007ad30);
void** fun_1000af9c(void** r0, void** r1) {
void** r2_3;
void*** r3_4;
void** r3_5;
int1_t z6;
r2_3 = r0;
r3_4 = image_base_;
r3_5 = *r3_4;
while (!z6) {
z6 = *reinterpret_cast<void***>(r3_5 + 4) == r2_3;
if (z6)
goto label_5;
r3_5 = *reinterpret_cast<void***>(r3_5);
}
addr_1000afc4_7:
return r3_5;
label_5:
goto addr_1000afc4_7;
}
int32_t fun_1000afcc(void** r0, void** r1, void** r2) {
if (!*reinterpret_cast<void***>(r0 + 0x14c)) {
return 0;
} else {
goto *reinterpret_cast<void***>(r0 + 0x14c);
}
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(56);
void** LoadLibraryW(void** r0, void** r1, void** r2, void** r3, ...);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x94);
void** GetProcAddressW(void** r0, void** r1, void** r2, ...);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xac);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xd0);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xf0);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(20);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(68);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x6c);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x7c);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(76);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(96);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(56);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(16);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xf4);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xe0);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xb0);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x88);
void** FreeLibrary(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, ...);
void** fun_1000b0bc(void** r0, void** r1, void** r2, void** r3) {
void* sp5;
void** r0_6;
void** v7;
void** v8;
void** v9;
void** v10;
void** v11;
void** v12;
void** v13;
void** r3_14;
void** v15;
void** r0_16;
void** r1_17;
void** r0_18;
void** r1_19;
void** r0_20;
void** r0_21;
void** r1_22;
void** r0_23;
void** r0_24;
void** r1_25;
void** r0_26;
void** r0_27;
void** r1_28;
void** r0_29;
void** r0_30;
void** r1_31;
void** r0_32;
void** r0_33;
void** r0_34;
void** r0_35;
void** r0_36;
void** r1_37;
void** r0_38;
void** r0_39;
void** r0_40;
void** r0_41;
void** r0_42;
void** r0_43;
void** r0_44;
void** r0_45;
void** r0_46;
int32_t r0_47;
void** v48;
void** v49;
void** v50;
void** r0_51;
void** v52;
void** v53;
void** v54;
void** r0_55;
sp5 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 8 - 0xa0);
r0_6 = image_base_;
EnterCriticalSection(r0_6, r1, r2, r3, v7, v8, v9, v10, v11, v12, v13);
r3_14 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r0 + 0x18c))));
if (!r3_14) {
r3_14 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r0 + 0x18d)));
if (!r3_14) {
r2 = reinterpret_cast<void**>(80);
r1 = r0 + 40;
wcsncpy(static_cast<uint32_t>(sp5), r1, 80, r3_14, v15);
r0_16 = LoadLibraryW(static_cast<uint32_t>(sp5), r1, 80, 0);
*reinterpret_cast<void***>(r0 + 36) = r0_16;
if (!r0_16) {
goto addr_1000b280_7;
} else {
r1_17 = image_base_;
r0_18 = GetProcAddressW(r0_16, r1_17, 80);
r1_19 = image_base_;
r0_20 = *reinterpret_cast<void***>(r0 + 36);
*reinterpret_cast<void***>(r0 + 0x14c) = r0_18;
r0_21 = GetProcAddressW(r0_20, r1_19, 80);
r1_22 = image_base_;
r0_23 = *reinterpret_cast<void***>(r0 + 36);
*reinterpret_cast<void***>(r0 + 0x150) = r0_21;
r0_24 = GetProcAddressW(r0_23, r1_22, 80);
r1_25 = image_base_;
r0_26 = *reinterpret_cast<void***>(r0 + 36);
*reinterpret_cast<void***>(r0 + 0x154) = r0_24;
r0_27 = GetProcAddressW(r0_26, r1_25, 80);
r1_28 = image_base_;
r0_29 = *reinterpret_cast<void***>(r0 + 36);
*reinterpret_cast<void***>(r0 + 0x158) = r0_27;
r0_30 = GetProcAddressW(r0_29, r1_28, 80);
r1_31 = image_base_;
r0_32 = *reinterpret_cast<void***>(r0 + 36);
*reinterpret_cast<void***>(r0 + 0x15c) = r0_30;
r0_33 = GetProcAddressW(r0_32, r1_31, 80);
r1 = image_base_;
r0_34 = *reinterpret_cast<void***>(r0 + 36);
*reinterpret_cast<void***>(r0 + 0x160) = r0_33;
r0_35 = GetProcAddressW(r0_34, r1, 80);
*reinterpret_cast<void***>(r0 + 0x164) = r0_35;
if (!r0_35) {
goto addr_1000b280_7;
} else {
r1 = image_base_;
r0_36 = GetProcAddressW(*reinterpret_cast<void***>(r0 + 36), r1, 80);
*reinterpret_cast<void***>(r0 + 0x168) = r0_36;
if (!r0_36) {
goto addr_1000b280_7;
} else {
r1_37 = image_base_;
r0_38 = GetProcAddressW(*reinterpret_cast<void***>(r0 + 36), r1_37, 80);
r1 = image_base_;
r0_39 = *reinterpret_cast<void***>(r0 + 36);
*reinterpret_cast<void***>(r0 + 0x16c) = r0_38;
r0_40 = GetProcAddressW(r0_39, r1, 80);
*reinterpret_cast<void***>(r0 + 0x170) = r0_40;
if (!r0_40) {
goto addr_1000b280_7;
} else {
r1 = image_base_;
r0_41 = GetProcAddressW(*reinterpret_cast<void***>(r0 + 36), r1, 80);
*reinterpret_cast<void***>(r0 + 0x174) = r0_41;
if (!r0_41) {
goto addr_1000b280_7;
} else {
r1 = image_base_;
r0_42 = GetProcAddressW(*reinterpret_cast<void***>(r0 + 36), r1, 80);
*reinterpret_cast<void***>(r0 + 0x178) = r0_42;
if (!r0_42) {
goto addr_1000b280_7;
} else {
r1 = image_base_;
r0_43 = GetProcAddressW(*reinterpret_cast<void***>(r0 + 36), r1, 80);
*reinterpret_cast<void***>(r0 + 0x17c) = r0_43;
if (!r0_43) {
goto addr_1000b280_7;
} else {
r1 = image_base_;
r0_44 = GetProcAddressW(*reinterpret_cast<void***>(r0 + 36), r1, 80);
*reinterpret_cast<void***>(r0 + 0x180) = r0_44;
if (!r0_44) {
goto addr_1000b280_7;
} else {
r1 = image_base_;
r0_45 = GetProcAddressW(*reinterpret_cast<void***>(r0 + 36), r1, 80);
*reinterpret_cast<void***>(r0 + 0x184) = r0_45;
if (!r0_45) {
goto addr_1000b280_7;
} else {
r1 = image_base_;
r0_46 = GetProcAddressW(*reinterpret_cast<void***>(r0 + 36), r1, 80);
*reinterpret_cast<void***>(r0 + 0x188) = r0_46;
r0_47 = fun_1000afcc(r0, r1, 80);
if (r0_47) {
r3_14 = reinterpret_cast<void**>(1);
*reinterpret_cast<void***>(r0 + 0x18c) = reinterpret_cast<void**>(1);
*reinterpret_cast<void***>(r0 + 0x190) = r0;
} else {
addr_1000b280_7:
r3_14 = *reinterpret_cast<void***>(r0 + 36);
r2 = reinterpret_cast<void**>(1);
*reinterpret_cast<unsigned char*>(r0 + 0x18d) = 1;
if (r3_14) {
FreeLibrary(r3_14, r1, 1, r3_14, v48, v49, v50);
r3_14 = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r0 + 36) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r0 + 0x14c) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r0 + 0x150) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r0 + 0x154) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r0 + 0x158) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r0 + 0x15c) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r0 + 0x160) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r0 + 0x164) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r0 + 0x168) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r0 + 0x16c) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r0 + 0x170) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r0 + 0x174) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r0 + 0x178) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r0 + 0x17c) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r0 + 0x180) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r0 + 0x184) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r0 + 0x188) = reinterpret_cast<void**>(0);
}
}
}
}
}
}
}
}
}
}
}
}
}
r0_51 = image_base_;
r0_55 = LeaveCriticalSection(r0_51, r1, r2, r3_14, v52, v53, v54);
return r0_55;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xb8);
void** ImmIsIME(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23) {
void** r5_24;
void** r4_25;
void** v26;
void** v27;
void** v28;
void** v29;
void** r4_30;
void** r5_31;
void** r6_32;
void** r11_33;
void** r0_34;
void** v35;
void** v36;
void** v37;
void** v38;
void** r0_39;
void** r0_40;
void* r0_41;
void** v42;
int32_t v43;
void** r0_44;
uint32_t r3_45;
int1_t z46;
void** r0_47;
r5_24 = reinterpret_cast<void**>(0);
r4_25 = gffffc80c;
r0_34 = GetOwnerProcess(r0, r1, r2, 0xffffc80c, 0, v26, v27, v28, v29, r4_30, r5_31, r6_32, r11_33, __zero_stack_offset(), __return_address(), a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23);
if (r4_25 != r0_34) {
r0_39 = GetOwnerProcess(r0_34, r1, r2, 0xffffc80c, 0, v35, v36, v37, v38, r4_30, r5_31, r6_32, r11_33, __zero_stack_offset(), __return_address(), a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23);
r0_40 = image_base_;
MapPtrUnsecure(r0_40, r0_39, r2);
r0_41 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(__zero_stack_offset()) - 24 + 24 - 36);
r0_44 = PerformCallBack4(r0_41, 0, 0, 0, 0, v42, r0_41, 0, 0, 0, 0, v43);
r5_24 = r0_44;
} else {
r3_45 = reinterpret_cast<unsigned char>(r0) & 0xf0000000;
z46 = r3_45 == 0xe0000000;
if (z46) {
r3_45 = 1;
}
if (!z46) {
r3_45 = 0;
}
if (r3_45) {
r0_47 = fun_1000af9c(r0, r1);
if (r0_47) {
r5_24 = reinterpret_cast<void**>(1);
}
}
}
__asm__("ldmdb fp, {r4, r5, r6, fp, sp, lr}");
return r5_24;
}
void fun_1000b784(uint32_t r0, void** r1) {
void** r2_3;
void** r3_4;
void** r4_5;
void** r5_6;
void** v7;
void** v8;
void** v9;
void** v10;
void** v11;
void** v12;
int1_t z13;
uint32_t r3_14;
int1_t z15;
int1_t z16;
int1_t z17;
int1_t z18;
int1_t z19;
int1_t z20;
int1_t z21;
int1_t z22;
int1_t z23;
int1_t z24;
int1_t z25;
int1_t z26;
r2_3 = reinterpret_cast<void**>(0x100);
memset(r1, 0, 0x100, r3_4, r4_5, r5_6, __return_address(), v7, v8, v9, v10, v11, v12);
z13 = (r0 & 0x4000000) == 0;
if (!z13) {
r3_14 = *reinterpret_cast<unsigned char*>(r1 + 0xa2);
}
if (!z13) {
r2_3 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 17)));
}
if (!z13) {
r3_14 = r3_14 | 0x80;
}
if (!z13) {
r2_3 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r2_3) | 0x80);
}
if (!z13) {
*reinterpret_cast<unsigned char*>(r1 + 17) = static_cast<unsigned char>(reinterpret_cast<uint32_t>(r2_3));
}
if (!z13) {
*reinterpret_cast<unsigned char*>(r1 + 0xa2) = static_cast<unsigned char>(r3_14);
}
z15 = (r0 & 0x2000000) == 0;
if (!z15) {
r3_14 = reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1 + 0xa0));
}
if (!z15) {
r2_3 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1 + 16))));
}
if (!z15) {
r3_14 = r3_14 | 0x80;
}
if (!z15) {
r2_3 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r2_3) | 0x80);
}
if (!z15) {
*reinterpret_cast<void***>(r1 + 0xa0) = reinterpret_cast<void**>(static_cast<unsigned char>(r3_14));
}
if (!z15) {
*reinterpret_cast<void***>(r1 + 16) = reinterpret_cast<void**>(static_cast<unsigned char>(reinterpret_cast<uint32_t>(r2_3)));
}
z16 = (r0 & 0x1000000) == 0;
if (!z16) {
r3_14 = reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1 + 0xa4));
}
if (!z16) {
r2_3 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 18)));
}
if (!z16) {
r3_14 = r3_14 | 0x80;
}
if (!z16) {
r2_3 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r2_3) | 0x80);
}
if (!z16) {
*reinterpret_cast<void***>(r1 + 0xa4) = reinterpret_cast<void**>(static_cast<unsigned char>(r3_14));
}
if (!z16) {
*reinterpret_cast<unsigned char*>(r1 + 18) = static_cast<unsigned char>(reinterpret_cast<uint32_t>(r2_3));
}
z17 = (r0 & 0x800000) == 0;
if (!z17) {
r3_14 = *reinterpret_cast<unsigned char*>(r1 + 91);
}
if (!z17) {
r2_3 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1))));
}
if (!z17) {
r3_14 = r3_14 | 0x80;
}
if (!z17) {
r2_3 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r2_3) | 0x80);
}
if (!z17) {
*reinterpret_cast<unsigned char*>(r1 + 91) = static_cast<unsigned char>(r3_14);
}
if (!z17) {
*reinterpret_cast<void***>(r1) = reinterpret_cast<void**>(static_cast<unsigned char>(reinterpret_cast<uint32_t>(r2_3)));
}
z18 = (r0 & 0x400000) == 0;
if (!z18) {
r3_14 = *reinterpret_cast<unsigned char*>(r1 + 0xa3);
}
if (!z18) {
r2_3 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 17)));
}
if (!z18) {
r3_14 = r3_14 | 0x80;
}
if (!z18) {
r2_3 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r2_3) | 0x80);
}
if (!z18) {
*reinterpret_cast<unsigned char*>(r1 + 0xa3) = static_cast<unsigned char>(r3_14);
}
if (!z18) {
*reinterpret_cast<unsigned char*>(r1 + 17) = static_cast<unsigned char>(reinterpret_cast<uint32_t>(r2_3));
}
z19 = (r0 & 0x200000) == 0;
if (!z19) {
r3_14 = *reinterpret_cast<unsigned char*>(r1 + 0xa1);
}
if (!z19) {
r2_3 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1 + 16))));
}
if (!z19) {
r3_14 = r3_14 | 0x80;
}
if (!z19) {
r2_3 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r2_3) | 0x80);
}
if (!z19) {
*reinterpret_cast<unsigned char*>(r1 + 0xa1) = static_cast<unsigned char>(r3_14);
}
if (!z19) {
*reinterpret_cast<void***>(r1 + 16) = reinterpret_cast<void**>(static_cast<unsigned char>(reinterpret_cast<uint32_t>(r2_3)));
}
z20 = (r0 & 0x100000) == 0;
if (!z20) {
r3_14 = *reinterpret_cast<unsigned char*>(r1 + 0xa5);
}
if (!z20) {
r2_3 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 18)));
}
if (!z20) {
r3_14 = r3_14 | 0x80;
}
if (!z20) {
r2_3 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r2_3) | 0x80);
}
if (!z20) {
*reinterpret_cast<unsigned char*>(r1 + 0xa5) = static_cast<unsigned char>(r3_14);
}
if (!z20) {
*reinterpret_cast<unsigned char*>(r1 + 18) = static_cast<unsigned char>(reinterpret_cast<uint32_t>(r2_3));
}
z21 = (r0 & 0x80000) == 0;
if (!z21) {
r3_14 = reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1 + 92));
}
if (!z21) {
r2_3 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1))));
}
if (!z21) {
r3_14 = r3_14 | 0x80;
}
if (!z21) {
r2_3 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r2_3) | 0x80);
}
if (!z21) {
*reinterpret_cast<void***>(r1 + 92) = reinterpret_cast<void**>(static_cast<unsigned char>(r3_14));
}
if (!z21) {
*reinterpret_cast<void***>(r1) = reinterpret_cast<void**>(static_cast<unsigned char>(reinterpret_cast<uint32_t>(r2_3)));
}
z22 = (r0 & 0x40000000) == 0;
if (!z22) {
r3_14 = *reinterpret_cast<unsigned char*>(r1 + 17);
}
if (!z22) {
r2_3 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1))));
}
if (!z22) {
r3_14 = r3_14 | 0x80;
}
if (!z22) {
r2_3 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r2_3) | 0x80);
}
if (!z22) {
*reinterpret_cast<unsigned char*>(r1 + 17) = static_cast<unsigned char>(r3_14);
}
if (!z22) {
*reinterpret_cast<void***>(r1) = reinterpret_cast<void**>(static_cast<unsigned char>(reinterpret_cast<uint32_t>(r2_3)));
}
z23 = (r0 & 0x10000000) == 0;
if (!z23) {
r3_14 = *reinterpret_cast<unsigned char*>(r1 + 18);
}
if (!z23) {
r2_3 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1))));
}
if (!z23) {
r3_14 = r3_14 | 0x80;
}
if (!z23) {
r2_3 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r2_3) | 0x80);
}
if (!z23) {
*reinterpret_cast<unsigned char*>(r1 + 18) = static_cast<unsigned char>(r3_14);
}
if (!z23) {
*reinterpret_cast<void***>(r1) = reinterpret_cast<void**>(static_cast<unsigned char>(reinterpret_cast<uint32_t>(r2_3)));
}
z24 = (r0 & 0x20000000) == 0;
if (!z24) {
r3_14 = reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1 + 16));
}
if (!z24) {
r2_3 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1))));
}
if (!z24) {
r3_14 = r3_14 | 0x80;
}
if (!z24) {
r2_3 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r2_3) | 0x80);
}
if (!z24) {
*reinterpret_cast<void***>(r1) = reinterpret_cast<void**>(static_cast<unsigned char>(reinterpret_cast<uint32_t>(r2_3)));
}
if (!z24) {
*reinterpret_cast<void***>(r1 + 16) = reinterpret_cast<void**>(static_cast<unsigned char>(r3_14));
}
z25 = (r0 & 0x8000000) == 0;
if (!z25) {
r3_14 = reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1 + 20));
}
if (!z25) {
r3_14 = r3_14 | 1;
}
if (!z25) {
*reinterpret_cast<void***>(r1 + 20) = reinterpret_cast<void**>(static_cast<unsigned char>(r3_14));
}
z26 = (r0 & 0x8000) == 0;
if (!z26) {
r3_14 = *reinterpret_cast<unsigned char*>(r1 + 21);
}
if (!z26) {
r3_14 = r3_14 | 1;
}
if (!z26) {
*reinterpret_cast<unsigned char*>(r1 + 21) = static_cast<unsigned char>(r3_14);
}
return;
}
/* (image base) */
void*** image_base_ = reinterpret_cast<void***>(0x1007ad30);
void** fun_1000b9c8(void** r0, void** r1, void** r2) {
void** v4;
void** r4_5;
void** v6;
void** r5_7;
void** v8;
void** r6_9;
void** v10;
void** r5_11;
void*** r4_12;
void** r6_13;
void** r3_14;
int1_t z15;
void** v16;
void** v17;
void** v18;
void** v19;
void** v20;
void** v21;
void** v22;
void** v23;
void** v24;
void** v25;
void** v26;
void** v27;
void** v28;
void** v29;
void** v30;
void** r0_31;
void** r4_32;
int1_t z33;
void** r3_34;
v4 = r4_5;
v6 = r5_7;
v8 = r6_9;
v10 = reinterpret_cast<void**>(__return_address());
r5_11 = r0;
r4_12 = image_base_;
r6_13 = reinterpret_cast<void**>(0);
while (r3_14 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r4_12 - 3))), r3_14 == 0) {
if (*reinterpret_cast<unsigned char*>(r4_12 - 2))
goto label_5;
r0 = fun_1000ae0c(r0);
}
z15 = r5_11 == 0;
if (z15) {
r0_31 = ImmGetKeyboardLayout(0, r1, r2, r3_14, v4, v6, v8, v10, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30);
r5_11 = r0_31;
}
r4_32 = *r4_12;
if (!z15) {
while (z33 = *reinterpret_cast<void***>(r4_32 + 4) == r5_11, !z33) {
r4_32 = *reinterpret_cast<void***>(r4_32);
if (z33)
goto addr_1000ba30_14;
}
goto label_16;
}
addr_1000ba60_17:
return r6_13;
label_16:
addr_1000ba30_14:
if (!r4_32) {
goto addr_1000ba60_17;
} else {
while (!*reinterpret_cast<void***>(r4_32 + 0x18c)) {
r3_34 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r4_32 + 0x18d)));
if (r3_34)
goto label_23;
fun_1000b0bc(r4_32, r1, r2, r3_34);
}
}
r6_13 = *reinterpret_cast<void***>(r4_32 + 0x190);
goto addr_1000ba60_17;
label_23:
goto addr_1000ba60_17;
label_5:
goto addr_1000ba60_17;
}
void** fun_1000ba70(void** r0, void** r1, void** r2) {
void** r0_4;
int1_t z5;
void** r3_6;
r0_4 = fun_1000b9c8(0, r1, r2);
z5 = r0_4 == 0;
if (!z5) {
r3_6 = *reinterpret_cast<void***>(r0_4 + 0x178);
}
if (!z5) {
z5 = r3_6 == 0;
}
if (!z5) {
}
if (!z5) {
r0_4 = r0;
}
if (!z5) {
}
if (!z5) {
goto r3_6;
} else {
return r0_4;
}
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xe8);
void** ImmNotifyIME(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23, void** a24, void** a25, void** a26, void** a27, void** a28, void** a29, void** a30, void** a31, void** a32, void** a33, void** a34) {
void** lr35;
void** r4_36;
void** v37;
void** v38;
void** v39;
void** v40;
void** r4_41;
void** r5_42;
void** r6_43;
void** r7_44;
void** r8_45;
void** r9_46;
void** r11_47;
void** r0_48;
void** v49;
void** v50;
void** v51;
void** v52;
void** r0_53;
void** r0_54;
void* r0_55;
void** v56;
int32_t v57;
void** r0_58;
int1_t z59;
lr35 = reinterpret_cast<void**>(0xffffc80c);
r4_36 = gffffc80c;
r0_48 = GetOwnerProcess(r0, r1, r2, r3, 0, v37, v38, v39, v40, r4_41, r5_42, r6_43, r7_44, r8_45, r9_46, r11_47, __zero_stack_offset(), __return_address(), a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
if (r4_36 != r0_48) {
r0_53 = GetOwnerProcess(r0_48, r1, r2, r3, 0, v49, v50, v51, v52, r4_41, r5_42, r6_43, r7_44, r8_45, r9_46, r11_47, __zero_stack_offset(), __return_address(), a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
r0_54 = image_base_;
MapPtrUnsecure(r0_54, r0_53, r2);
r0_55 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(__zero_stack_offset()) - 36 + 36 - 48);
PerformCallBack4(r0_55, r1, r2, r3, 0, v56, r0_55, r1, r2, r3, 0, v57);
} else {
r0_58 = fun_1000b9c8(0, r1, r2);
z59 = r0_58 == 0;
if (!z59) {
lr35 = *reinterpret_cast<void***>(r0_58 + 0x180);
if (!z59) {
goto lr35;
}
}
}
__asm__("ldmdb fp, {r4, r5, r6, r7, r8, sb, fp, sp, lr}");
goto lr35;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xc4);
void** ImmEscapeW(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20) {
void** r4_21;
void** v22;
void** v23;
void** v24;
void** v25;
void** r4_26;
void** r5_27;
void** r6_28;
void** r7_29;
void** r8_30;
void** r9_31;
void** r11_32;
void** r0_33;
void** v34;
void** v35;
void** v36;
void** v37;
void** r0_38;
void** r0_39;
void* r0_40;
void** v41;
int32_t v42;
void** r0_43;
int1_t z44;
r4_21 = gffffc80c;
r0_33 = GetOwnerProcess(r0, r1, r2, r3, 0, v22, v23, v24, v25, r4_26, r5_27, r6_28, r7_29, r8_30, r9_31, r11_32, __zero_stack_offset(), __return_address(), a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
if (r4_21 != r0_33) {
r0_38 = GetOwnerProcess(r0_33, r1, r2, r3, 0, v34, v35, v36, v37, r4_26, r5_27, r6_28, r7_29, r8_30, r9_31, r11_32, __zero_stack_offset(), __return_address(), a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
r0_39 = image_base_;
MapPtrUnsecure(r0_39, r0_38, r2);
r0_40 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(__zero_stack_offset()) - 36 + 36 - 48);
PerformCallBack4(r0_40, r1, r2, r3, 0, v41, r0_40, r1, r2, r3, 0, v42);
} else {
r0_43 = fun_1000b9c8(0, r1, r2);
z44 = r0_43 == 0;
if (!z44) {
if (!z44) {
goto *reinterpret_cast<void***>(r0_43 + 0x16c);
}
}
}
__asm__("ldmdb fp, {r4, r5, r6, r7, r8, sb, fp, sp, lr}");
goto 0xffffc80c;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xbc);
void** ImmGetProperty(void** r0, void** r1, void** r2) {
void** r5_4;
void** r4_5;
void** v6;
void** v7;
void** v8;
void** v9;
void** r4_10;
void** r5_11;
void** r6_12;
void** r7_13;
void** r11_14;
void** v15;
void** v16;
void** v17;
void** v18;
void** v19;
void** v20;
void** v21;
void** v22;
void** v23;
void** v24;
void** v25;
void** v26;
void** v27;
void** v28;
void** v29;
void** v30;
void** v31;
void** v32;
void** r0_33;
void** v34;
void** v35;
void** v36;
void** v37;
void** v38;
void** v39;
void** v40;
void** v41;
void** v42;
void** v43;
void** v44;
void** v45;
void** v46;
void** v47;
void** v48;
void** v49;
void** v50;
void** v51;
void** v52;
void** v53;
void** v54;
void** v55;
void** r0_56;
void** r0_57;
void* r0_58;
void** v59;
int32_t v60;
void** r0_61;
void** r0_62;
r5_4 = reinterpret_cast<void**>(0);
r4_5 = gffffc80c;
r0_33 = GetOwnerProcess(r0, r1, r2, 0xffffc80c, 0, v6, v7, v8, v9, r4_10, r5_11, r6_12, r7_13, r11_14, __zero_stack_offset(), __return_address(), v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32);
if (r4_5 != r0_33) {
r0_56 = GetOwnerProcess(r0_33, r1, r2, 0xffffc80c, 0, v34, v35, v36, v37, r4_10, r5_11, r6_12, r7_13, r11_14, __zero_stack_offset(), __return_address(), v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55);
r0_57 = image_base_;
MapPtrUnsecure(r0_57, r0_56, r2);
r0_58 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(__zero_stack_offset()) - 28 + 28 - 40);
r0_61 = PerformCallBack4(r0_58, r1, 0, 0, 0, v59, r0_58, r1, 0, 0, 0, v60);
r5_4 = r0_61;
} else {
r0_62 = fun_1000b9c8(0, r1, r2);
if (r0_62) {
if (r1 == 4) {
r5_4 = *reinterpret_cast<void***>(r0_62 + 12);
} else {
if (r1 == 8) {
r5_4 = *reinterpret_cast<void***>(r0_62 + 16);
} else {
if (r1 == 12) {
r5_4 = *reinterpret_cast<void***>(r0_62 + 20);
} else {
if (r1 == 16) {
r5_4 = *reinterpret_cast<void***>(r0_62 + 24);
} else {
if (r1 == 20) {
r5_4 = *reinterpret_cast<void***>(r0_62 + 28);
} else {
if (r1 == 24) {
r5_4 = *reinterpret_cast<void***>(r0_62 + 32);
} else {
if (reinterpret_cast<int1_t>(r1 == 28)) {
r5_4 = *reinterpret_cast<void***>(r0_62 + 8);
}
}
}
}
}
}
}
}
}
__asm__("ldmdb fp, {r4, r5, r6, r7, fp, sp, lr}");
return r5_4;
}
struct s9 {
void** f0;
signed char[23] pad24;
void** f18;
};
/* (image base) */
struct s9* image_base_ = reinterpret_cast<struct s9*>(0x1007ad34);
void** fun_1000c4cc(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23, void** a24, void** a25, void** a26, void** a27, void** a28, void** a29) {
void** v30;
void** r4_31;
void** v32;
void** r5_33;
void** v34;
void** r6_35;
void** v36;
void** r7_37;
void** v38;
void** r7_39;
struct s9* r5_40;
void** r0_41;
void** r2_42;
void** r3_43;
void** r6_44;
void** r4_45;
int1_t z46;
void** r3_47;
int1_t z48;
void** r0_49;
v30 = r4_31;
v32 = r5_33;
v34 = r6_35;
v36 = r7_37;
v38 = reinterpret_cast<void**>(__return_address());
r7_39 = r0;
fun_10009c88();
r5_40 = image_base_;
r0_41 = EnterCriticalSection(&r5_40->f18, r1, r2, r3, v30, v32, v34, v36, v38, a5, a6);
r2_42 = r5_40->f0;
r3_43 = reinterpret_cast<void**>(0xffffc808);
r6_44 = gffffc808;
r4_45 = r2_42;
if (!z46) {
while (1) {
r3_47 = *reinterpret_cast<void***>(r4_45 + 12);
z48 = r3_47 == r6_44;
if (z48) {
r3_47 = reinterpret_cast<void**>(0);
}
if (z48) {
r2_42 = r7_39;
}
if (z48) {
r1 = reinterpret_cast<void**>(21);
}
if (z48) {
r0_41 = r4_45;
}
if (z48) {
r0_41 = ImmNotifyIME(r0_41, r1, r2_42, r3_47, v30, v32, v34, v36, v38, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29);
}
r3_43 = *reinterpret_cast<void***>(r4_45);
r4_45 = r3_43;
if (z48)
break;
}
}
r0_49 = LeaveCriticalSection(&r5_40->f18, r1, r2_42, r3_43, v30, v32, v34);
return r0_49;
}
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007b268);
void** fun_1000baa8(void** r0, void** r1, void** r2);
void** fun_10009de4(void** r0, void** r1, void** r2);
void** fun_1000c538(void** r0, void** r1) {
void** r5_3;
int1_t z4;
void** r0_5;
int1_t z6;
uint32_t r3_7;
void** r1_8;
int1_t z9;
uint32_t r3_10;
int1_t z11;
void** r2_12;
void** r3_13;
int32_t* r3_14;
int1_t z15;
void** r4_16;
void** r5_17;
void** r6_18;
void** r7_19;
void** v20;
void** v21;
void** v22;
void** v23;
void** v24;
void** v25;
void** v26;
void** v27;
void** v28;
void** v29;
void** v30;
void** v31;
void** v32;
void** v33;
void** v34;
void** v35;
void** v36;
void** v37;
void** v38;
void** v39;
void** v40;
void** v41;
int1_t z42;
void** v43;
void** v44;
void** v45;
void** v46;
void** v47;
void** v48;
void** v49;
void** v50;
void** v51;
void** v52;
void** v53;
void** v54;
void** v55;
void** v56;
void** v57;
void** v58;
void** v59;
void** v60;
void** v61;
void** v62;
void** v63;
void** v64;
r5_3 = reinterpret_cast<void**>(0);
if (!z4) {
r0_5 = GetCRTFlags();
z6 = (reinterpret_cast<unsigned char>(r0_5) & 1) == 0;
if (!z6) {
r3_7 = 1;
}
if (z6) {
r3_7 = 0;
}
if (!r3_7) {
r1_8 = *reinterpret_cast<void***>(r0 + 8);
z9 = (reinterpret_cast<unsigned char>(r1_8) & 0x100) == 0;
if (!z9) {
r3_7 = 1;
}
if (z9) {
r3_7 = 0;
}
r3_10 = r3_7 & 0xff;
if (!r3_10) {
z11 = (reinterpret_cast<unsigned char>(r1_8) & 64) == 0;
if (!z11) {
r3_10 = 1;
}
if (z11) {
r3_10 = 0;
}
if (!(r3_10 & 0xff)) {
r2_12 = *reinterpret_cast<void***>(r0 + 20);
r3_13 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r1_8) | 64);
*reinterpret_cast<void***>(r0 + 8) = r3_13;
if (r2_12) {
r3_14 = image_base_;
z15 = *r3_14 == 0;
if (z15) {
r0_5 = fun_1000b9c8(0, r1_8, r2_12);
z15 = r0_5 == 0;
if (!z15) {
r2_12 = reinterpret_cast<void**>(0);
}
if (!z15) {
r1_8 = r0;
}
if (!z15) {
r0_5 = fun_1000baa8(r0_5, r1_8, r2_12);
}
}
r3_13 = *reinterpret_cast<void***>(r0 + 20);
if (!z15) {
*reinterpret_cast<void***>(r0 + 20) = reinterpret_cast<void**>(0);
ImmDestroyIMCC(*reinterpret_cast<void***>(r3_13 + 0x12c), r1_8, r2_12);
ImmDestroyIMCC(*reinterpret_cast<void***>(r3_13 + 0x134), r1_8, r2_12);
ImmDestroyIMCC(*reinterpret_cast<void***>(r3_13 + 0x128), r1_8, r2_12);
ImmDestroyIMCC(*reinterpret_cast<void***>(r3_13 + 0x124), r1_8, r2_12);
ImmDestroyIMCC(*reinterpret_cast<void***>(r3_13 + 0x120), r1_8, r2_12);
fun_10009de4(r3_13, r1_8, r2_12);
r0_5 = fun_100099a8(r3_13, r1_8, r2_12, r3_13, r4_16, r5_17, r6_18, r7_19, __return_address(), v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41);
}
}
z42 = reinterpret_cast<int1_t>(r1 == 1);
if (z42) {
r0_5 = r0;
}
if (z42) {
fun_10009cf0(r0_5, r1_8, r2_12, r3_13, r4_16, r5_17, r6_18, r7_19);
}
*reinterpret_cast<void***>(r0 + 4) = reinterpret_cast<void**>(0);
fun_100099a8(r0, r1_8, r2_12, r3_13, r4_16, r5_17, r6_18, r7_19, __return_address(), v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64);
}
r5_3 = reinterpret_cast<void**>(1);
}
}
}
return r5_3;
}
int32_t GetProcFromPtr(void** r0, void** r1);
void** fun_1000c644(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23, void** a24, void** a25, void** a26, void** a27, void** a28, void** a29) {
void** v30;
void** r4_31;
void** v32;
void** r5_33;
void** v34;
void** r5_35;
void** r0_36;
int1_t z37;
void** r1_38;
void** r0_39;
void** r0_40;
int32_t r0_41;
int32_t r0_42;
void** r0_43;
void** r0_44;
void** r0_45;
void** r0_46;
void** r0_47;
void** r0_48;
v30 = r4_31;
v32 = r5_33;
v34 = reinterpret_cast<void**>(__return_address());
r5_35 = reinterpret_cast<void**>(0);
r0_36 = fun_1000b9c8(0, r1, r2);
z37 = r0_36 == 0;
if (!z37) {
r1_38 = reinterpret_cast<void**>(0x164);
r0_39 = LocalAlloc(64, 0x164, r2, r3, v30, v32, v34, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29);
r5_35 = r0_39;
if (!z37) {
r1_38 = reinterpret_cast<void**>(66);
r0_40 = MapPtrToProcess(r5_35, 66, r2, r3, v30, v32, v34, a5, a6, a7, a8, a9, a10, a11);
r5_35 = r0_40;
}
if (!r5_35)
goto label_7; else
goto addr_1000c68c_8;
}
addr_1000c784_9:
return r5_35;
label_7:
goto addr_1000c784_9;
addr_1000c68c_8:
r0_41 = GetProcFromPtr(r0, r1_38);
r0_42 = GetProcFromPtr(r5_35, r1_38);
if (r0_41 == r0_42) {
r0_43 = ImmCreateIMCC(100, r1_38);
*reinterpret_cast<void***>(r5_35 + 0x120) = r0_43;
if (r0_43) {
r3 = reinterpret_cast<void**>(100);
*reinterpret_cast<void***>(r0_43) = reinterpret_cast<void**>(100);
r0_44 = ImmCreateIMCC(0x90, r1_38);
*reinterpret_cast<void***>(r5_35 + 0x124) = r0_44;
if (r0_44) {
r3 = reinterpret_cast<void**>(0x90);
*reinterpret_cast<void***>(r0_44) = reinterpret_cast<void**>(0x90);
r0_45 = ImmCreateIMCC(28, r1_38);
*reinterpret_cast<void***>(r5_35 + 0x128) = r0_45;
if (r0_45) {
r3 = reinterpret_cast<void**>(28);
*reinterpret_cast<void***>(r0_45) = reinterpret_cast<void**>(28);
r0_46 = ImmCreateIMCC(4, r1_38);
*reinterpret_cast<void***>(r5_35 + 0x134) = r0_46;
if (r0_46) {
*reinterpret_cast<void***>(r5_35 + 0x130) = reinterpret_cast<void**>(0);
r3 = r5_35;
r2 = reinterpret_cast<void**>(4);
while (*reinterpret_cast<void***>(r3 + 0xa0) = reinterpret_cast<void**>(0xffffffff), r3 = r3 + 32, --r2, !!r2) {
}
r1_38 = reinterpret_cast<void**>(28);
r0_47 = ImmGetProperty(0, 28, r2);
r0_48 = ImmCreateIMCC(r0_47, 28);
*reinterpret_cast<void***>(r5_35 + 0x12c) = r0_48;
if (r0_48)
goto label_23;
}
}
}
}
}
ImmDestroyIMCC(*reinterpret_cast<void***>(r5_35 + 0x12c), r1_38, r2);
ImmDestroyIMCC(*reinterpret_cast<void***>(r5_35 + 0x134), r1_38, r2);
ImmDestroyIMCC(*reinterpret_cast<void***>(r5_35 + 0x128), r1_38, r2);
ImmDestroyIMCC(*reinterpret_cast<void***>(r5_35 + 0x124), r1_38, r2);
ImmDestroyIMCC(*reinterpret_cast<void***>(r5_35 + 0x120), r1_38, r2);
fun_100099a8(r5_35, r1_38, r2, r3, v30, v32, v34, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28);
r5_35 = reinterpret_cast<void**>(0);
goto addr_1000c784_9;
label_23:
goto addr_1000c784_9;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(28);
void** fun_1000c790(void** r0, void** r1, void** r2);
void** ImmLockIMC(void** r0, void** r1, void** r2) {
void** r5_4;
void** r4_5;
void** v6;
void** v7;
void** v8;
void** v9;
void** r4_10;
void** r5_11;
void** r6_12;
void** r11_13;
void** v14;
void** v15;
void** v16;
void** v17;
void** v18;
void** v19;
void** v20;
void** v21;
void** v22;
void** v23;
void** v24;
void** v25;
void** v26;
void** v27;
void** v28;
void** v29;
void** v30;
void** v31;
void** v32;
void** r0_33;
void** v34;
void** v35;
void** v36;
void** v37;
void** v38;
void** v39;
void** v40;
void** v41;
void** v42;
void** v43;
void** v44;
void** v45;
void** v46;
void** v47;
void** v48;
void** v49;
void** v50;
void** v51;
void** v52;
void** v53;
void** v54;
void** v55;
void** v56;
void** r0_57;
void** r0_58;
void* r0_59;
void** v60;
int32_t v61;
void** r0_62;
void** r0_63;
void** r0_64;
r5_4 = reinterpret_cast<void**>(0);
r4_5 = gffffc80c;
r0_33 = GetOwnerProcess(r0, r1, r2, 0xffffc80c, 0, v6, v7, v8, v9, r4_10, r5_11, r6_12, r11_13, __zero_stack_offset(), __return_address(), v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32);
if (r4_5 != r0_33) {
r0_57 = GetOwnerProcess(r0_33, r1, r2, 0xffffc80c, 0, v34, v35, v36, v37, r4_10, r5_11, r6_12, r11_13, __zero_stack_offset(), __return_address(), v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56);
r0_58 = image_base_;
MapPtrUnsecure(r0_58, r0_57, r2);
r0_59 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(__zero_stack_offset()) - 24 + 24 - 36);
r0_62 = PerformCallBack4(r0_59, 0, 0, 0, 0, v60, r0_59, 0, 0, 0, 0, v61);
r5_4 = r0_62;
} else {
r0_63 = fun_10009c08(r0);
if (r0_63) {
r0_64 = fun_1000c790(r0_63, r1, r2);
r5_4 = r0_64;
}
}
__asm__("ldmdb fp, {r4, r5, r6, fp, sp, lr}");
return r5_4;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x98);
void** ImmGetOpenStatus(void** r0, void** r1, void** r2, void** r3) {
void*** r11_5;
void** r6_6;
void** r5_7;
void** v8;
int1_t z9;
void** r4_10;
void** v11;
void** v12;
void** v13;
void** v14;
void** v15;
void** v16;
void** v17;
void** v18;
void** v19;
void** v20;
void** v21;
void** v22;
void** v23;
void** v24;
void** v25;
void** r4_26;
void** r5_27;
void** r6_28;
void** r7_29;
void** r11_30;
void** v31;
void** v32;
void** v33;
void** v34;
void** r0_35;
int1_t z36;
int32_t r0_37;
int1_t z38;
void** v39;
void** v40;
void** v41;
void** v42;
void** v43;
void** v44;
void** v45;
void** v46;
void** v47;
void** v48;
void** v49;
void** v50;
void** v51;
void** v52;
void** v53;
void** v54;
void** v55;
void** v56;
void** v57;
void** v58;
void** r0_59;
void** r0_60;
void** v61;
void** r0_62;
void** v63;
void** v64;
void** r0_65;
void** v66;
void** v67;
void** v68;
void** v69;
void** v70;
void** v71;
void** v72;
void** v73;
void** v74;
void** v75;
void** v76;
void** v77;
void** v78;
void** v79;
void** v80;
void** v81;
void** r0_82;
r11_5 = reinterpret_cast<void***>(reinterpret_cast<unsigned char>(__zero_stack_offset()) - 4 - 28 + 28);
r6_6 = reinterpret_cast<void**>(0);
r5_7 = reinterpret_cast<void**>(0);
v8 = reinterpret_cast<void**>(0);
if (!z9) {
r3 = reinterpret_cast<void**>(0xffffc80c);
r4_10 = gffffc80c;
r0_35 = GetOwnerProcess(r0, r1, r2, 0xffffc80c, 0, 0, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, r4_26, r5_27, r6_28, r7_29, r11_30, __zero_stack_offset(), __return_address(), r0, r0, v31, v32, v33, v34);
z36 = r4_10 == r0_35;
if (z36)
goto addr_1000c9fc_4;
} else {
r0_37 = GetForegroundInfo(r11_5 - 64, r1, r2, r3, 0, 0);
z38 = r0_37 == 0;
if (!z38) {
r5_7 = v39;
}
if (!z38) {
goto addr_1000ca5c_9;
} else {
r5_7 = reinterpret_cast<void**>(0);
goto addr_1000ca5c_9;
}
}
r0_59 = GetOwnerProcess(r0_35, r1, r2, 0xffffc80c, 0, 0, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, r4_26, r5_27, r6_28, r7_29, r11_30, __zero_stack_offset(), __return_address(), r0, r0, v55, v56, v57, v58);
r0_60 = image_base_;
v61 = r0_59;
r0_62 = MapPtrUnsecure(r0_60, r0_59, r2);
v63 = r0_62;
v64 = r0;
r3 = reinterpret_cast<void**>(0);
r2 = reinterpret_cast<void**>(0);
r1 = reinterpret_cast<void**>(0);
r0_65 = PerformCallBack4(r11_5 - 80, 0, 0, 0, 0, 0);
r5_7 = r0_65;
v8 = r5_7;
addr_1000ca5c_9:
if (r6_6) {
ImmUnlockIMC(r0, r1, r2, r3, v8, 0, v66, v67, v61, v63, v64, v68, v69, v70, v71, v72, v73, v74, v75, v76, v77, r4_26, r5_27, r6_28, r7_29, r11_30, __zero_stack_offset(), __return_address(), r0, r0, v78, v79, v80, v81);
}
__asm__("ldmdb fp, {r4, r5, r6, r7, fp, sp, lr}");
return r5_7;
addr_1000c9fc_4:
r0_82 = ImmLockIMC(r0, r1, r2);
r6_6 = r0_82;
if (z36) {
goto addr_1000ca5c_9;
} else {
r5_7 = *reinterpret_cast<void***>(r6_6 + 4);
goto addr_1000ca5c_9;
}
}
void** PostMessageW(void** r0, void** r1, void** r2, void** r3, void** a5);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x8c);
void** SendMessageW(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7);
void** ImmSetOpenStatus(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9) {
void* r11_10;
void** r5_11;
int32_t r8_12;
int1_t z13;
void** r4_14;
void** v15;
void** v16;
void** v17;
void** v18;
void** v19;
void** v20;
void** v21;
void** v22;
void** v23;
void** v24;
void** v25;
void** v26;
void** v27;
void** v28;
void** v29;
void** v30;
void** r4_31;
void** r5_32;
void** r6_33;
void** r7_34;
void** r8_35;
void** r11_36;
void** r0_37;
void** v38;
int32_t r0_39;
void** v40;
void** v41;
void** v42;
void** v43;
void** v44;
void** v45;
void** v46;
void** v47;
void** v48;
void** v49;
void** v50;
void** v51;
void** v52;
void** v53;
void** v54;
void** v55;
void** v56;
void** r0_57;
void** r0_58;
void** v59;
void** r0_60;
void** r0_61;
void** r3_62;
int1_t z63;
void** v64;
void** v65;
void** v66;
void** v67;
void** v68;
void** v69;
void** v70;
void** v71;
void** v72;
void** v73;
void** v74;
void** v75;
void** v76;
void** v77;
void** v78;
void** v79;
void** v80;
void** v81;
void** v82;
void** v83;
void** v84;
void** v85;
void** v86;
void** v87;
void** v88;
void** v89;
void** v90;
void** v91;
void** v92;
void** v93;
void** v94;
void** v95;
void** v96;
void** v97;
void** v98;
r11_10 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(__zero_stack_offset()) - 32 + 32);
r5_11 = reinterpret_cast<void**>(0);
r8_12 = 0;
if (!z13) {
r4_14 = gffffc80c;
r0_37 = GetOwnerProcess(r0, r1, r2, 0xffffc80c, 0, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, r4_31, r5_32, r6_33, r7_34, r8_35, r11_36, __zero_stack_offset(), __return_address(), a5, a6, a7, a8, a9);
if (r4_14 == r0_37)
goto addr_1000cb04_4;
} else {
r0_39 = GetForegroundInfo(reinterpret_cast<uint32_t>(r11_10) - 68, r1, r2, r3, 0, v38);
if (!r0_39) {
r5_11 = reinterpret_cast<void**>(0);
goto addr_1000cbb8_8;
} else {
PostMessageW(v40, 0x287, 15, r1, 0);
r5_11 = reinterpret_cast<void**>(1);
goto addr_1000cbb8_8;
}
}
r0_57 = GetOwnerProcess(r0_37, r1, r2, 0xffffc80c, 0, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, r4_31, r5_32, r6_33, r7_34, r8_35, r11_36, __zero_stack_offset(), __return_address(), a5, a6, a7, a8, a9);
r0_58 = image_base_;
MapPtrUnsecure(r0_58, r0_57, r2);
r0_60 = PerformCallBack4(reinterpret_cast<uint32_t>(r11_10) - 84, r1, 0, 0, 0, v59);
r5_11 = r0_60;
addr_1000cbb8_8:
__asm__("ldmdb fp, {r4, r5, r6, r7, r8, fp, sp, lr}");
return r5_11;
addr_1000cb04_4:
r0_61 = ImmLockIMC(r0, r1, r2);
if (!r0_61) {
goto addr_1000cbb8_8;
} else {
r3_62 = *reinterpret_cast<void***>(r0_61 + 4);
z63 = r3_62 == r1;
if (!z63) {
r4_14 = *reinterpret_cast<void***>(r0_61);
}
if (!z63) {
*reinterpret_cast<void***>(r0_61 + 4) = r1;
}
if (!z63) {
r8_12 = 1;
}
if (z63) {
r4_14 = v64;
}
ImmUnlockIMC(r0, r1, r2, r3_62, 0, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v80, r4_31, r5_32, r6_33, r7_34, r8_35, r11_36, __zero_stack_offset(), __return_address(), a5, a6, a7, a8, a9);
r5_11 = reinterpret_cast<void**>(1);
if (!r8_12) {
goto addr_1000cbb8_8;
} else {
ImmNotifyIME(r0, 3, 0, 6, 0, v81, v82, v83, v84, v85, v86, v87, v88, v89, v90, v91, v92, v93, v94, v95, v96, r4_31, r5_32, r6_33, r7_34, r8_35, r11_36, __zero_stack_offset(), __return_address(), a5, a6, a7, a8, a9);
if (!r4_14) {
goto addr_1000cbb8_8;
} else {
SendMessageW(r4_14, 0x282, 8, 0, 0, v97, v98);
goto addr_1000cbb8_8;
}
}
}
}
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007b298);
/* (image base) */
void*** image_base_ = reinterpret_cast<void***>(0x1007b268);
void** IsWindow(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6);
void** fun_10041044(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6);
void** fun_1003c820(void** r0);
int32_t ImmSetActiveContext(void** r0, void** r1, void** r2) {
void** r7_4;
void** r4_5;
int32_t* r3_6;
int32_t r8_7;
void** r9_8;
void** r10_9;
void** r11_10;
void*** r3_11;
void** r3_12;
void** r0_13;
int1_t z14;
void** v15;
void** r4_16;
void** r0_17;
void** v18;
void** r5_19;
void** r6_20;
void** r7_21;
void** r8_22;
void** r9_23;
void** r10_24;
void** r11_25;
void** v26;
void** v27;
void** v28;
void** v29;
void** v30;
void** v31;
void** v32;
void** v33;
void** v34;
void** r0_35;
void** v36;
void** r0_37;
void** r0_38;
int1_t z39;
void** r0_40;
int1_t z41;
void** r0_42;
void** r0_43;
int1_t z44;
void** v45;
void** r0_46;
int1_t z47;
void** v48;
void** r0_49;
void** r0_50;
int1_t z51;
void** r0_52;
void** v53;
void** v54;
void** v55;
void** v56;
void** v57;
void** v58;
void** v59;
void** v60;
void** v61;
void** v62;
void** v63;
void** v64;
void** v65;
void** v66;
void** v67;
void** v68;
void** v69;
void** v70;
void** v71;
void** v72;
void** v73;
int1_t z74;
void** r0_75;
void** r5_76;
void** r0_77;
void** r0_78;
r7_4 = r2;
r4_5 = r1;
r3_6 = image_base_;
r8_7 = 0;
r9_8 = reinterpret_cast<void**>(0);
r10_9 = reinterpret_cast<void**>(0);
r11_10 = reinterpret_cast<void**>(0);
if (!*r3_6) {
r3_11 = image_base_;
r3_12 = *r3_11;
if (!r3_12) {
r0_13 = GetCRTFlags();
z14 = (reinterpret_cast<unsigned char>(r0_13) & 1) == 0;
if (!z14) {
r3_12 = reinterpret_cast<void**>(1);
}
if (z14) {
r3_12 = reinterpret_cast<void**>(0);
}
if (r3_12)
goto label_10; else
goto addr_1000cc2c_11;
}
}
addr_1000cdc0_12:
return r8_7;
label_10:
addr_1000cd84_13:
r0_17 = IsWindow(r0, r1, r2, r3_12, v15, r4_16);
if (!r0_17) {
goto addr_1000cdc0_12;
} else {
if (!r7_4) {
goto addr_1000cdc0_12;
} else {
r0_35 = ImmGetKeyboardLayout(0, r1, r2, r3_12, v18, r4_16, r5_19, r6_20, r7_21, r8_22, r9_23, r10_24, r11_25, __return_address(), v26, v27, v28, v29, v30, v31, v32, v33, v34);
fun_10041044(r0, r9_8, r10_9, r11_10, r0_35, r4_16);
goto addr_1000cdc0_12;
}
}
addr_1000cc2c_11:
if (!r0) {
goto addr_1000cc44_19;
}
r0_37 = IsWindow(r0, r1, r2, r3_12, v36, r4_16);
if (!r0_37) {
goto addr_1000cd84_13;
} else {
addr_1000cc44_19:
if (!r4_5) {
goto addr_1000cc5c_23;
}
}
r0_38 = fun_10009c08(r4_5);
if (!r0_38) {
goto addr_1000cd84_13;
} else {
addr_1000cc5c_23:
if (!r7_4) {
if (r4_5)
goto addr_1000cd00_28;
} else {
z39 = r4_5 == 0;
if (z39) {
r0_40 = GetCRTFlags();
z41 = (reinterpret_cast<unsigned char>(r0_40) & 1) == 0;
if (!z41)
goto label_32; else
goto addr_1000ccb4_33;
} else {
r0_42 = ImmLockIMC(r4_5, r1, r2);
if (z39) {
goto addr_1000cd84_13;
} else {
*reinterpret_cast<void***>(r0_42) = r0;
r0_43 = fun_10009c08(r4_5);
z44 = r0_43 == 0;
if (!z44) {
r3_12 = *reinterpret_cast<void***>(r0_43 + 8);
}
if (!z44) {
r3_12 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r3_12) | 2);
}
if (!z44) {
*reinterpret_cast<void***>(r0_43 + 8) = r3_12;
}
r9_8 = *reinterpret_cast<void***>(r0_42 + 4);
r10_9 = *reinterpret_cast<void***>(r0_42 + 32);
r11_10 = *reinterpret_cast<void***>(r0_42 + 36);
goto addr_1000cd28_43;
}
}
}
}
addr_1000cd30_45:
r1 = r7_4;
r8_7 = 1;
fun_1000ba70(r4_5, r1, r2);
r0_46 = IsWindow(r0, r1, r2, r3_12, v45, r4_16);
z47 = r0_46 == 0;
if (!z47) {
r2 = r7_4;
}
if (!z47) {
r0_46 = r0;
}
if (z47) {
if (r7_4) {
goto addr_1000cd84_13;
} else {
r0_46 = ImmGetDefaultIMEWnd(0, r1, r2);
if (!r0_46) {
goto addr_1000cd84_13;
} else {
r2 = reinterpret_cast<void**>(0);
}
}
}
r1 = reinterpret_cast<void**>(0x281);
r3_12 = reinterpret_cast<void**>(0xc000000f);
SendMessageW(r0_46, 0x281, r2, 0xc000000f, v48, r4_16, r5_19);
goto addr_1000cd84_13;
addr_1000cd00_28:
r0_49 = ImmLockIMC(r4_5, r1, r2);
if (!r0_49) {
goto addr_1000cd84_13;
} else {
r0_50 = fun_10009c08(r4_5);
z51 = r0_50 == 0;
if (!z51) {
r3_12 = *reinterpret_cast<void***>(r0_50 + 8);
}
if (!z51) {
__asm__("bicne r3, r3, #2");
}
if (!z51) {
*reinterpret_cast<void***>(r0_50 + 8) = r3_12;
}
}
addr_1000cd28_43:
r0_52 = r4_5;
addr_1000cd2c_64:
ImmUnlockIMC(r0_52, r1, r2, r3_12, v53, r4_16, r5_19, r6_20, r7_21, r8_22, r9_23, r10_24, r11_25, __return_address(), v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73);
goto addr_1000cd30_45;
label_32:
r3_12 = reinterpret_cast<void**>(1);
addr_1000ccb4_33:
if (z41) {
r3_12 = reinterpret_cast<void**>(0);
}
z74 = r3_12 == 0;
if (!z74) {
goto addr_1000cd30_45;
} else {
r0_75 = fun_1003c820(r0);
r5_76 = r0_75;
if (!z74) {
goto addr_1000ccdc_70;
}
r0_77 = DefaultImcGet(r0_75, r1, r2);
r5_76 = r0_77;
if (z74) {
goto addr_1000cd30_45;
} else {
addr_1000ccdc_70:
r0_78 = ImmLockIMC(r5_76, r1, r2);
r3_12 = r0_78;
if (z74) {
goto addr_1000cd84_13;
} else {
r0_52 = r5_76;
*reinterpret_cast<void***>(r3_12) = r0;
goto addr_1000cd2c_64;
}
}
}
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(20);
void** ImmGetConversionStatus(void** r0, void** r1, void** r2) {
void** r9_4;
void** r6_5;
void** r5_6;
void** v7;
void** v8;
int1_t z9;
void** r3_10;
void** r4_11;
void** v12;
void** v13;
void** v14;
void** v15;
void** v16;
void** r4_17;
void** r5_18;
void** r6_19;
void** r7_20;
void** r8_21;
void** r9_22;
void** r11_23;
void** v24;
void** v25;
void** v26;
void** v27;
void** v28;
void** v29;
void** v30;
void** v31;
void** v32;
void** v33;
void** v34;
void** v35;
void** r0_36;
int1_t z37;
void** r0_38;
void** r0_39;
void** v40;
void** v41;
void** v42;
void** v43;
void** v44;
void** v45;
void** v46;
void** v47;
void** v48;
void** v49;
void** v50;
void** v51;
void** v52;
void** v53;
void** v54;
void** v55;
void** v56;
void** v57;
void** v58;
void** v59;
void** v60;
void** v61;
void** v62;
void** v63;
void** v64;
void** v65;
void** v66;
void** v67;
void** v68;
void** v69;
void** v70;
void** v71;
void** v72;
void** v73;
void** r0_74;
void** r0_75;
void** r0_76;
void** r0_77;
r9_4 = r1;
r6_5 = reinterpret_cast<void**>(0);
r5_6 = reinterpret_cast<void**>(0);
v7 = reinterpret_cast<void**>(0);
v8 = reinterpret_cast<void**>(0);
if (!z9) {
r3_10 = reinterpret_cast<void**>(0xffffc80c);
r4_11 = gffffc80c;
r0_36 = GetOwnerProcess(r0, r1, r2, 0xffffc80c, 0, 0, v12, v13, v14, v15, v16, r4_17, r5_18, r6_19, r7_20, r8_21, r9_22, r11_23, __zero_stack_offset(), __return_address(), r0, r0, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35);
z37 = r4_11 == r0_36;
if (!z37)
goto addr_1000d478_4;
} else {
r1 = r2;
r0_38 = fun_1000a594(r9_4, r1, r2);
r5_6 = r0_38;
goto addr_1000d508_6;
}
r0_39 = ImmLockIMC(r0, r1, r2);
r6_5 = r0_39;
v7 = r6_5;
if (!z37)
goto addr_1000d4d8_9;
addr_1000d508_6:
if (r6_5) {
ImmUnlockIMC(r0, r1, r2, r3_10, v8, v7, v40, v41, v42, v43, v44, r4_17, r5_18, r6_19, r7_20, r8_21, r9_22, r11_23, __zero_stack_offset(), __return_address(), r0, r0, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56);
}
__asm__("ldmdb fp, {r4, r5, r6, r7, r8, sb, fp, sp, lr}");
return r5_6;
addr_1000d4d8_9:
*reinterpret_cast<void***>(r9_4) = *reinterpret_cast<void***>(r6_5 + 32);
r3_10 = *reinterpret_cast<void***>(r6_5 + 36);
*reinterpret_cast<void***>(r2) = r3_10;
r5_6 = reinterpret_cast<void**>(1);
v8 = reinterpret_cast<void**>(1);
goto addr_1000d508_6;
addr_1000d478_4:
r0_74 = GetOwnerProcess(r0_36, r1, r2, 0xffffc80c, 0, 0, v57, v58, v59, v60, v61, r4_17, r5_18, r6_19, r7_20, r8_21, r9_22, r11_23, __zero_stack_offset(), __return_address(), r0, r0, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73);
r0_75 = image_base_;
v42 = r0_74;
r0_76 = MapPtrUnsecure(r0_75, r0_74, r2);
v43 = r0_76;
v44 = r0;
r3_10 = reinterpret_cast<void**>(0);
r2 = r2;
r1 = r9_4;
r0_77 = PerformCallBack4(reinterpret_cast<unsigned char>(__zero_stack_offset()) - 4 - 36 + 36 - 48, r1, r2, 0, 0, 0);
r5_6 = r0_77;
v8 = r5_6;
goto addr_1000d508_6;
}
void** memcpy(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, ...);
void** fun_1000da68(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21) {
void** r9_22;
void** r6_23;
void** r4_24;
void** v25;
void** r0_26;
int1_t z27;
int1_t z28;
void** v29;
void** r4_30;
void** r5_31;
void** r6_32;
void** r7_33;
void** r8_34;
void** r9_35;
void** r11_36;
int1_t z37;
void** r5_38;
void** v39;
int32_t v40;
void** v41;
int32_t v42;
r9_22 = r3;
r6_23 = r2;
r4_24 = reinterpret_cast<void**>(0);
v25 = reinterpret_cast<void**>(0);
r0_26 = ImmLockIMC(r0, r1, r2);
if (!z27) {
if (*reinterpret_cast<void***>(r0_26 + 0x128)) {
z28 = reinterpret_cast<int1_t>(r1 == 1);
if (z28) {
r4_24 = *reinterpret_cast<void***>(*reinterpret_cast<void***>(r0_26 + 0x128) + 4);
}
if (z28)
goto label_8; else
goto addr_1000dac0_9;
}
}
addr_1000db8c_10:
if (r0_26) {
ImmUnlockIMC(r0, r1, r2, r3, v25, r0_26, v29, r4_30, r5_31, r6_32, r7_33, r8_34, r9_35, r11_36, __zero_stack_offset(), __return_address(), r0, r0, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21);
}
__asm__("ldmdb fp, {r4, r5, r6, r7, r8, sb, fp, sp, lr}");
return r4_24;
label_8:
goto addr_1000db8c_10;
addr_1000dac0_9:
z37 = reinterpret_cast<int1_t>(r1 == 2);
if (z37) {
r4_24 = *reinterpret_cast<void***>(*reinterpret_cast<void***>(r0_26 + 0x128) + 8);
}
if (!z37)
goto addr_1000dacc_16;
goto addr_1000db8c_10;
addr_1000dacc_16:
if (r1 == 3) {
r1 = *reinterpret_cast<void***>(*reinterpret_cast<void***>(r0_26 + 0x128) + 16);
r3 = *reinterpret_cast<void***>(*reinterpret_cast<void***>(r0_26 + 0x128) + 12);
r5_38 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r3) << 1);
if (r9_22)
goto addr_1000db4c_20;
} else {
if (!reinterpret_cast<int1_t>(r1 == 4)) {
goto addr_1000db8c_10;
} else {
r3 = *reinterpret_cast<void***>(*reinterpret_cast<void***>(r0_26 + 0x128) + 24);
r5_38 = *reinterpret_cast<void***>(*reinterpret_cast<void***>(r0_26 + 0x128) + 20);
if (!r9_22) {
goto addr_1000daf4_25;
}
if (r5_38) {
if (!r6_23)
goto label_29; else
goto addr_1000db04_30;
} else {
addr_1000daf4_25:
r4_24 = r5_38;
goto addr_1000db8c_10;
}
}
}
goto addr_1000daf4_25;
addr_1000db4c_20:
if (!r5_38) {
goto addr_1000daf4_25;
} else {
if (!r6_23) {
goto addr_1000db8c_10;
} else {
r2 = r5_38;
r1 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r1) + reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r0_26 + 0x128)));
memcpy(r6_23, r1, r2, r3, 0, r0_26, v39, r4_30, r5_31, r6_32, r7_33, r8_34, r9_35, r6_23, r1, r2, r3, 0, r0_26, v40, r4_30, r5_31, r6_32, r7_33, r8_34, r9_35);
r4_24 = r5_38;
v25 = r5_38;
goto addr_1000db8c_10;
}
}
label_29:
goto addr_1000db8c_10;
addr_1000db04_30:
r2 = r5_38;
r1 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r3) + reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r0_26 + 0x128)));
memcpy(r6_23, r1, r2, r3, 0, r0_26, v41, r4_30, r5_31, r6_32, r7_33, r8_34, r9_35, r6_23, r1, r2, r3, 0, r0_26, v42, r4_30, r5_31, r6_32, r7_33, r8_34, r9_35);
r4_24 = r5_38;
v25 = r5_38;
goto addr_1000db8c_10;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(4);
void** ImmSetConversionStatus(void** r0, void** r1, void** r2, void** r3) {
void* r11_5;
int1_t z6;
void** r4_7;
void** v8;
void** v9;
void** v10;
void** v11;
void** v12;
void** v13;
void** v14;
void** v15;
void** v16;
void** v17;
void** v18;
void** v19;
void** v20;
void** v21;
void** v22;
void** v23;
void** v24;
void** v25;
void** v26;
void** v27;
void** r4_28;
void** r5_29;
void** r6_30;
void** r7_31;
void** r8_32;
void** r9_33;
void** r10_34;
void** r11_35;
void** r0_36;
void** v37;
void** v38;
int32_t r0_39;
void** v40;
void** v41;
void** v42;
void** v43;
void** v44;
void** v45;
void** v46;
void** v47;
void** v48;
void** v49;
void** v50;
void** v51;
void** v52;
void** v53;
void** v54;
void** v55;
void** v56;
void** v57;
void** v58;
void** v59;
void** v60;
void** v61;
void** v62;
void** r0_63;
void** r0_64;
void** v65;
void** v66;
void** r0_67;
void** r0_68;
void** r0_69;
void** r3_70;
void** v71;
void** r2_72;
void** v73;
int1_t z74;
void** r10_75;
void** r1_76;
void** v77;
void** v78;
int1_t z79;
int1_t z80;
uint32_t r8_81;
uint32_t r6_82;
void** v83;
void** v84;
void** v85;
void** v86;
void** v87;
void** v88;
void** v89;
void** v90;
void** v91;
void** v92;
void** v93;
void** v94;
void** v95;
void** v96;
void** v97;
void** v98;
void** r4_99;
void** v100;
void** v101;
void** v102;
void** v103;
void** v104;
void** v105;
void** v106;
void** v107;
void** v108;
void** v109;
void** v110;
void** v111;
void** v112;
void** v113;
void** v114;
void** v115;
void** v116;
void** r3_117;
void** v118;
void** v119;
void** v120;
void** v121;
void** v122;
void** v123;
void** v124;
void** v125;
void** v126;
void** v127;
void** v128;
void** v129;
void** v130;
void** v131;
void** v132;
void** v133;
void** r0_134;
int1_t z135;
void** v136;
void** r3_137;
void** v138;
void** v139;
void** v140;
void** v141;
void** v142;
void** v143;
void** v144;
void** v145;
void** v146;
void** v147;
void** v148;
void** v149;
void** v150;
void** v151;
void** v152;
void** r0_153;
r11_5 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(__zero_stack_offset()) - 40 + 40);
if (!z6) {
r4_7 = gffffc80c;
r0_36 = GetOwnerProcess(r0, r1, r2, 0xffffc80c, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, r4_28, r5_29, r6_30, r7_31, r8_32, r9_33, r10_34, r11_35, __zero_stack_offset(), __return_address());
if (r4_7 == r0_36)
goto addr_1000e188_4;
} else {
r0_39 = GetForegroundInfo(reinterpret_cast<uint32_t>(r11_5) - 76, r1, r2, r3, v37, v38);
if (!r0_39) {
goto addr_1000e2d0_7;
} else {
PostMessageW(v40, 0x287, 48, r1, v41);
PostMessageW(v42, 0x287, 49, r2, v43);
goto addr_1000e164_9;
}
}
r0_63 = GetOwnerProcess(r0_36, r1, r2, 0, v44, v45, v46, 0, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, r4_28, r5_29, r6_30, r7_31, r8_32, r9_33, r10_34, r11_35, __zero_stack_offset(), __return_address());
r0_64 = image_base_;
MapPtrUnsecure(r0_64, r0_63, r2);
r0_67 = PerformCallBack4(reinterpret_cast<uint32_t>(r11_5) - 92, r1, r2, 0, v65, v66);
__asm__("ldmdb fp, {r4, r5, r6, r7, r8, sb, sl, fp, sp, lr}");
return r0_67;
addr_1000e188_4:
r0_68 = ImmLockIMC(r0, r1, r2);
r0_69 = fun_10009c08(r0);
if (r0_68) {
if (r0_69) {
r3_70 = *reinterpret_cast<void***>(r0_69 + 8);
v71 = *reinterpret_cast<void***>(r0_68);
r2_72 = *reinterpret_cast<void***>(r0_68 + 4);
v73 = r2_72;
z74 = (reinterpret_cast<unsigned char>(r3_70) & 2) == 0;
if (!z74) {
r3_70 = reinterpret_cast<void**>(1);
}
if (z74) {
r3_70 = reinterpret_cast<void**>(0);
}
r10_75 = *reinterpret_cast<void***>(r0_68 + 32);
r1_76 = *reinterpret_cast<void***>(r0_68 + 36);
v77 = r1_76;
*reinterpret_cast<unsigned char*>(&v78) = static_cast<unsigned char>(reinterpret_cast<uint32_t>(r3_70));
z79 = r1 == r10_75;
if (!z79) {
r2_72 = reinterpret_cast<void**>(1);
}
if (z79) {
r2_72 = reinterpret_cast<void**>(0);
}
z80 = r2 == r1_76;
if (!z80) {
r3_70 = reinterpret_cast<void**>(1);
}
if (z80) {
r3_70 = reinterpret_cast<void**>(0);
}
r8_81 = reinterpret_cast<unsigned char>(r2_72) & 0xff;
if (r8_81) {
*reinterpret_cast<void***>(r0_68 + 32) = r1;
}
r6_82 = reinterpret_cast<unsigned char>(r3_70) & 0xff;
if (r6_82) {
*reinterpret_cast<void***>(r0_68 + 36) = r2;
}
ImmUnlockIMC(r0, r1_76, r2_72, r3_70, v83, v78, v71, v84, v77, v73, v85, v86, v87, v88, v89, v90, v91, v92, v93, v94, v95, v96, v97, v98, r4_28, r5_29, r6_30, r7_31, r8_32, r9_33, r10_34, r11_35, __zero_stack_offset(), __return_address());
if (!r8_81) {
r4_99 = v71;
} else {
r2_72 = r10_75;
r1_76 = reinterpret_cast<void**>(3);
ImmNotifyIME(r0, 3, r2_72, 2, v100, v78, v71, v101, v77, v73, v102, v103, v104, v105, v106, v107, v108, v109, v110, v111, v112, v113, v114, v115, r4_28, r5_29, r6_30, r7_31, r8_32, r9_33, r10_34, r11_35, __zero_stack_offset(), __return_address());
r4_99 = v71;
if (r4_99) {
r1_76 = reinterpret_cast<void**>(0x282);
r2_72 = reinterpret_cast<void**>(6);
SendMessageW(r4_99, 0x282, 6, 0, v116, v78, v71);
}
}
if (r6_82) {
r3_117 = reinterpret_cast<void**>(4);
r2_72 = v77;
r1_76 = reinterpret_cast<void**>(3);
r0_134 = ImmNotifyIME(r0, 3, r2_72, 4, v118, v78, v71, v119, v77, v73, v120, v121, v122, v123, v124, v125, v126, v127, v128, v129, v130, v131, v132, v133, r4_28, r5_29, r6_30, r7_31, r8_32, r9_33, r10_34, r11_35, __zero_stack_offset(), __return_address());
z135 = r4_99 == 0;
if (!z135) {
r3_117 = reinterpret_cast<void**>(0);
}
if (!z135) {
r2_72 = reinterpret_cast<void**>(7);
}
if (!z135) {
r1_76 = reinterpret_cast<void**>(0x280);
}
if (!z135) {
r1_76 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r1_76) | 2);
}
if (!z135) {
r0_134 = r4_99;
}
if (!z135) {
SendMessageW(r0_134, r1_76, r2_72, r3_117, v136, v78, v71);
}
}
r3_137 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(&v78)));
if (!r3_137)
goto label_53; else
goto addr_1000e298_54;
}
}
addr_1000e2d0_7:
__asm__("ldmdb fp, {r4, r5, r6, r7, r8, sb, sl, fp, sp, lr}");
return 0;
label_53:
addr_1000e164_9:
__asm__("ldmdb fp, {r4, r5, r6, r7, r8, sb, sl, fp, sp, lr}");
return 1;
addr_1000e298_54:
if (r8_81) {
goto addr_1000e2a8_56;
} else {
if (!r6_82) {
goto addr_1000e164_9;
} else {
addr_1000e2a8_56:
r0_153 = ImmGetKeyboardLayout(0, r1_76, r2_72, r3_137, v138, v78, v71, v139, v77, v73, v140, v141, v142, v143, v144, v145, v146, v147, v148, v149, v150, v151, v152);
fun_10041044(r4_99, v73, r1, r2, r0_153, v78);
goto addr_1000e164_9;
}
}
}
int32_t fun_1000bae4(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6);
int32_t fun_1000e4b8(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21) {
void** v22;
void** r4_23;
void** v24;
void** r5_25;
void** v26;
void** r6_27;
void** v28;
void** r7_29;
void** v30;
void** r8_31;
void** v32;
void** r9_33;
void** v34;
void** r10_35;
void** v36;
void** r11_37;
void** v38;
void** v39;
void** r11_40;
void** r10_41;
void** r7_42;
int32_t r6_43;
void** r0_44;
int1_t z45;
void** r4_46;
int32_t r5_47;
int1_t z48;
void** v49;
void** v50;
void** v51;
void** r9_52;
void** r8_53;
int1_t z54;
int1_t z55;
void** v56;
void** v57;
int32_t r0_58;
void** lr59;
uint32_t r4_60;
void** r5_61;
uint32_t lr62;
v22 = r4_23;
v24 = r5_25;
v26 = r6_27;
v28 = r7_29;
v30 = r8_31;
v32 = r9_33;
v34 = r10_35;
v36 = r11_37;
v38 = reinterpret_cast<void**>(__return_address());
v39 = r0;
r11_40 = r3;
r10_41 = r2;
r7_42 = r1;
r6_43 = 0;
r0_44 = ImmLockIMC(r0, r1, r2);
z45 = r0_44 == 0;
if (!z45) {
r4_46 = *reinterpret_cast<void***>(r0_44 + 0x120);
if (!z45)
goto addr_1000e544_4;
} else {
r5_47 = -2;
goto addr_1000e4e8_6;
}
r5_47 = -1;
addr_1000e4e8_6:
z48 = r0_44 == 0;
if (!z48) {
r0_44 = r0;
}
v49 = reinterpret_cast<void**>(0);
r4_46 = reinterpret_cast<void**>(0);
if (!z48) {
r0_44 = ImmUnlockIMC(r0_44, r1, r2, 0, v50, v51, 0, v39, v22, v24, v26, v28, v30, v32, v34, v36, v38, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21);
}
if (r5_47 > 0) {
addr_1000e508_14:
r9_52 = a6;
r8_53 = a5;
if (r7_42 == 9) {
goto addr_1000e6c0_16;
} else {
if (r7_42 == 18) {
if (!r10_41)
goto label_20; else
goto addr_1000e5e0_21;
} else {
if (r7_42 == 36) {
if (!r10_41)
goto label_25; else
goto addr_1000e56c_26;
} else {
if (r7_42 == 0x10000) {
goto addr_1000e6c0_16;
} else {
z54 = reinterpret_cast<int1_t>(r7_42 == 0x20000);
goto addr_1000e5d0_30;
}
}
}
}
}
addr_1000e700_31:
return r6_43;
addr_1000e6c0_16:
r6_43 = 1;
addr_1000e6c4_32:
z55 = v49 == 0;
if (!z55) {
r0_44 = v39;
}
if (!z55) {
ImmUnlockIMC(r0_44, r1, r2, v49, v56, v57, v49, v39, v22, v24, v26, v28, v30, v32, v34, v36, v38, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21);
}
if (!r6_43) {
goto addr_1000e700_31;
} else {
r0_58 = fun_1000bae4(v39, r7_42, r10_41, r11_40, r8_53, r9_52);
r6_43 = r0_58;
goto addr_1000e700_31;
}
label_20:
addr_1000e64c_39:
if (!r8_53) {
goto addr_1000e6c0_16;
} else {
lr59 = r8_53;
r1 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r4_46) + reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r4_46 + 16)));
if (!r1) {
goto addr_1000e6c0_16;
} else {
if (!(reinterpret_cast<unsigned char>(r4_46) + reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r4_46 + 8)))) {
goto addr_1000e6c4_32;
} else {
if (r9_52 != *reinterpret_cast<void***>(r4_46 + 4)) {
goto addr_1000e6c4_32;
} else {
r2 = *reinterpret_cast<void***>(r1);
while (reinterpret_cast<unsigned char>(r2) >= reinterpret_cast<unsigned char>(r9_52)) {
r4_60 = reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(lr59));
++lr59;
r0_44 = reinterpret_cast<void**>(1);
r2 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1 + 4)) - reinterpret_cast<unsigned char>(r2));
if (reinterpret_cast<unsigned char>(r2) > reinterpret_cast<unsigned char>(1)) {
while (++lr59, r4_60 == static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(lr59)))) {
++r0_44;
if (reinterpret_cast<unsigned char>(r0_44) < reinterpret_cast<unsigned char>(r2))
goto addr_1000e6b4_54;
}
goto label_56;
}
addr_1000e6b4_54:
r2 = *reinterpret_cast<void***>(r1 + 4);
r1 = r1 + 4;
}
goto addr_1000e6c0_16;
}
}
}
}
label_56:
goto addr_1000e6c4_32;
addr_1000e5e0_21:
r5_61 = r10_41;
r1 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r4_46) + reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r4_46 + 40)));
if (!r1) {
goto addr_1000e64c_39;
} else {
if (!(reinterpret_cast<unsigned char>(r4_46) + reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r4_46 + 32)))) {
goto addr_1000e6c4_32;
} else {
if (r11_40 != *reinterpret_cast<void***>(r4_46 + 28)) {
goto addr_1000e6c4_32;
} else {
r2 = *reinterpret_cast<void***>(r1);
while (reinterpret_cast<unsigned char>(r2) >= reinterpret_cast<unsigned char>(r11_40)) {
lr62 = reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r5_61));
++r5_61;
r0_44 = reinterpret_cast<void**>(1);
r2 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1 + 4)) - reinterpret_cast<unsigned char>(r2));
if (reinterpret_cast<unsigned char>(r2) > reinterpret_cast<unsigned char>(1)) {
while (++r5_61, lr62 == static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r5_61)))) {
++r0_44;
if (reinterpret_cast<unsigned char>(r0_44) < reinterpret_cast<unsigned char>(r2))
goto addr_1000e640_69;
}
goto label_71;
}
addr_1000e640_69:
r2 = *reinterpret_cast<void***>(r1 + 4);
r1 = r1 + 4;
}
goto addr_1000e64c_39;
}
}
}
label_71:
goto addr_1000e6c4_32;
label_25:
goto addr_1000e59c_72;
addr_1000e56c_26:
if (!*reinterpret_cast<void***>(r4_46 + 36)) {
goto addr_1000e6c4_32;
} else {
if (!r11_40) {
goto addr_1000e6c4_32;
} else {
if (*reinterpret_cast<void***>(r10_41)) {
goto addr_1000e6c4_32;
} else {
if (*reinterpret_cast<int32_t*>(reinterpret_cast<unsigned char>(r4_46) + reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r4_46 + 40)))) {
goto addr_1000e6c4_32;
} else {
addr_1000e59c_72:
if (!r8_53) {
goto addr_1000e6c0_16;
} else {
if (!*reinterpret_cast<void***>(r4_46 + 12)) {
goto addr_1000e6c4_32;
} else {
if (!r9_52) {
goto addr_1000e6c4_32;
} else {
if (*reinterpret_cast<void***>(r8_53)) {
goto addr_1000e6c4_32;
} else {
z54 = *reinterpret_cast<int32_t*>(reinterpret_cast<unsigned char>(r4_46) + reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r4_46 + 16))) == 0;
}
}
}
}
}
}
}
}
addr_1000e5d0_30:
if (!z54) {
goto addr_1000e6c4_32;
} else {
goto addr_1000e6c0_16;
}
addr_1000e544_4:
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r4_46)) < reinterpret_cast<unsigned char>(100)) {
v49 = r0_44;
goto addr_1000e508_14;
}
}
void** fun_1000ebbc(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23, void** a24, void** a25, void** a26, void** a27, void** a28, void** a29) {
void** v30;
void** r4_31;
void** r4_32;
void** r5_33;
void** r7_34;
void** r0_35;
void** r5_36;
void** r6_37;
void** r7_38;
v30 = r4_31;
r4_32 = r3;
r5_33 = r2;
r7_34 = r0;
r0_35 = ImmLockIMC(r1, r1, r2);
if (r0_35) {
r0_35 = ImmUnlockIMC(r1, r1, r2, r3, v30, r5_36, r6_37, r7_38, __return_address(), a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29);
if (reinterpret_cast<signed char>(r5_33) > reinterpret_cast<signed char>(0)) {
while (r4_32 = r4_32 + 12, r0_35 = PostMessageW(r7_34, *reinterpret_cast<void***>(r4_32), *reinterpret_cast<void***>(r4_32 + 4), *reinterpret_cast<void***>(r4_32 + 8), v30), --r5_33, !!r5_33) {
}
}
}
return r0_35;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(52);
void** fun_1000f200(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6) {
void** v7;
void** r4_8;
void** v9;
void** r5_10;
void** v11;
void** r6_12;
void** r7_13;
void** r6_14;
void** r7_15;
void** r3_16;
void** r5_17;
void** r4_18;
int1_t z19;
void** r0_20;
void** r0_21;
v7 = r4_8;
v9 = r5_10;
v11 = r6_12;
r7_13 = r0;
fun_10009c88();
r6_14 = image_base_;
EnterCriticalSection(r6_14 + 24, r1, r2, r3, v7, v9, v11, r7_15, __return_address(), a5, a6);
r3_16 = *reinterpret_cast<void***>(r6_14);
r5_17 = r6_14;
r4_18 = r3_16;
if (!z19) {
while (1) {
r3_16 = *reinterpret_cast<void***>(r4_18 + 12);
if (r3_16 != r7_13) {
r5_17 = r4_18;
r4_18 = *reinterpret_cast<void***>(r4_18);
} else {
r0_20 = r4_18;
r4_18 = *reinterpret_cast<void***>(r4_18);
r1 = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r5_17) = r4_18;
fun_1000c538(r0_20, 0);
}
if (!r4_18)
break;
}
}
r0_21 = LeaveCriticalSection(r6_14 + 24, r1, r2, r3_16, v7, v9, v11);
return r0_21;
}
/* (image base) */
unsigned char* image_base_ = reinterpret_cast<unsigned char*>(0x1007ad60);
void** fun_10009ec8(void** r0, void** r1, void** r2);
void** fun_10009f0c(void** r0, void** r1, void** r2);
void** fun_1000f270(void** r0, void** r1, void** r2) {
void** r5_4;
void** r6_5;
void** r8_6;
int1_t z7;
int1_t z8;
int1_t z9;
int1_t z10;
void** r0_11;
void** r4_12;
int1_t z13;
int1_t z14;
void** r3_15;
int1_t z16;
int1_t z17;
void** r7_18;
int1_t z19;
void** r2_20;
void** r10_21;
void** r11_22;
void** r0_23;
void** r0_24;
void** r3_25;
void** r0_26;
void** r2_27;
void** r0_28;
int1_t z29;
void** r0_30;
int1_t z31;
unsigned char* r9_32;
int1_t z33;
int1_t z34;
void** r7_35;
void** r0_36;
int1_t z37;
void** r3_38;
void** r3_39;
int1_t z40;
void** r3_41;
int1_t z42;
int1_t z43;
int1_t z44;
void** r3_45;
int1_t z46;
void** r3_47;
int1_t z48;
r5_4 = r2;
r6_5 = r1;
r8_6 = r0;
if (!z7) {
r2 = reinterpret_cast<void**>(0);
}
if (!z8) {
r1 = r8_6;
}
if (!z9) {
r0 = r6_5;
}
if (!z10) {
fun_1000baa8(r0, r1, r2);
}
r0_11 = fun_1000c790(r8_6, r1, r2);
r4_12 = r0_11;
if (!z13) {
z14 = r6_5 == 0;
if (z14)
goto addr_1000f2c8_12;
} else {
if (!r5_4) {
goto addr_1000f550_15;
} else {
r0_11 = fun_1000baa8(r5_4, r8_6, 1);
goto addr_1000f550_15;
}
}
r3_15 = *reinterpret_cast<void***>(r6_5 + 8);
addr_1000f2c8_12:
if (z14) {
r3_15 = reinterpret_cast<void**>(0);
}
if (reinterpret_cast<unsigned char>(r3_15) <= reinterpret_cast<unsigned char>(4)) {
r3_15 = reinterpret_cast<void**>(4);
} else {
z16 = r6_5 == 0;
if (!z16) {
r3_15 = *reinterpret_cast<void***>(r6_5 + 8);
}
if (z16) {
r3_15 = reinterpret_cast<void**>(0);
}
}
z17 = r5_4 == 0;
if (!z17) {
r2 = *reinterpret_cast<void***>(r5_4 + 8);
}
if (z17) {
r2 = reinterpret_cast<void**>(0);
}
if (reinterpret_cast<unsigned char>(r2) <= reinterpret_cast<unsigned char>(4)) {
r7_18 = reinterpret_cast<void**>(4);
} else {
z19 = r5_4 == 0;
if (!z19) {
r7_18 = *reinterpret_cast<void***>(r5_4 + 8);
}
if (z19) {
r7_18 = reinterpret_cast<void**>(0);
}
}
r2_20 = *reinterpret_cast<void***>(r4_12 + 4);
r10_21 = *reinterpret_cast<void***>(r4_12 + 32);
r11_22 = *reinterpret_cast<void***>(r4_12 + 36);
if (r3_15 != r7_18) {
r1 = r7_18;
r0_23 = ImmReSizeIMCC(*reinterpret_cast<void***>(r4_12 + 0x12c), r1);
if (!r0_23) {
ImmDestroyIMCC(*reinterpret_cast<void***>(r4_12 + 0x12c), r1, r2_20);
r0_23 = ImmCreateIMCC(r7_18, r1);
}
*reinterpret_cast<void***>(r4_12 + 0x12c) = r0_23;
}
ImmDestroyIMCC(*reinterpret_cast<void***>(r4_12 + 0x134), r1, r2_20);
r0_24 = ImmCreateIMCC(4, r1);
r3_25 = r0_24;
r0_26 = *reinterpret_cast<void***>(r4_12 + 0x128);
r2_27 = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r4_12 + 0x134) = r3_25;
*reinterpret_cast<void***>(r4_12 + 0x130) = reinterpret_cast<void**>(0);
ImmDestroyIMCC(r0_26, r1, 0);
r0_28 = ImmCreateIMCC(28, r1);
z29 = r0_28 == 0;
if (!z29) {
r3_25 = reinterpret_cast<void**>(28);
}
*reinterpret_cast<void***>(r4_12 + 0x128) = r0_28;
if (!z29) {
*reinterpret_cast<void***>(r0_28) = r3_25;
}
ImmDestroyIMCC(*reinterpret_cast<void***>(r4_12 + 0x124), r1, 0);
r0_30 = ImmCreateIMCC(0x90, r1);
z31 = r0_30 == 0;
if (!z31) {
r3_25 = reinterpret_cast<void**>(0x90);
}
*reinterpret_cast<void***>(r4_12 + 0x124) = r0_30;
if (!z31) {
*reinterpret_cast<void***>(r0_30) = r3_25;
}
ImmDestroyIMCC(*reinterpret_cast<void***>(r4_12 + 0x120), r1, 0);
r0_11 = ImmCreateIMCC(100, r1);
r9_32 = image_base_;
z33 = r0_11 == 0;
if (!z33) {
r3_25 = reinterpret_cast<void**>(100);
}
*reinterpret_cast<void***>(r4_12 + 0x120) = r0_11;
if (!z33) {
*reinterpret_cast<void***>(r0_11) = r3_25;
}
if (*r9_32) {
z34 = r6_5 == 0;
if (z34) {
r7_35 = reinterpret_cast<void**>(0);
} else {
r1 = *reinterpret_cast<void***>(r6_5 + 4);
r0_36 = fun_10009d4c(r4_12, r1, 0);
r7_35 = r0_36;
if (!z34) {
r2_27 = *reinterpret_cast<void***>(r6_5 + 4);
r1 = r7_35;
fun_10009ec8(r4_12, r1, r2_27);
}
}
if (!r5_4) {
r0_11 = reinterpret_cast<void**>(0);
} else {
r1 = *reinterpret_cast<void***>(r5_4 + 4);
r0_11 = fun_10009d4c(r4_12, r1, r2_27);
}
if (r7_35 == r0_11)
goto label_70; else
goto addr_1000f444_71;
}
addr_1000f4e4_72:
z37 = r5_4 == 0;
if (!z37) {
r2_27 = reinterpret_cast<void**>(1);
}
if (!z37) {
r1 = r8_6;
}
if (!z37) {
r0_11 = r5_4;
}
if (!z37) {
r0_11 = fun_1000baa8(r0_11, r1, r2_27);
}
if (*r9_32) {
r3_38 = *reinterpret_cast<void***>(r4_12 + 4);
*reinterpret_cast<void***>(r4_12 + 0x160) = reinterpret_cast<void**>(0);
r2_27 = r2_20;
r3_39 = *reinterpret_cast<void***>(r4_12 + 32);
if (r3_38 != r2_27) {
*reinterpret_cast<void***>(r4_12 + 0x160) = reinterpret_cast<void**>(1);
}
z40 = r3_39 == r10_21;
if (!z40) {
r3_39 = *reinterpret_cast<void***>(r4_12 + 0x160);
}
if (!z40) {
r3_39 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r3_39) | 2);
}
if (!z40) {
*reinterpret_cast<void***>(r4_12 + 0x160) = r3_39;
}
r3_41 = *reinterpret_cast<void***>(r4_12 + 36);
z42 = r3_41 == r11_22;
if (!z42) {
r3_41 = *reinterpret_cast<void***>(r4_12 + 0x160);
}
if (!z42) {
r3_41 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r3_41) | 4);
}
if (!z42) {
*reinterpret_cast<void***>(r4_12 + 0x160) = r3_41;
}
}
z43 = r8_6 == 0;
if (!z43) {
r0_11 = r8_6 + 16;
}
if (!z43) {
r0_11 = InterlockedDecrement(r0_11, r1, r2_27);
}
addr_1000f550_15:
return r0_11;
label_70:
addr_1000f4cc_100:
z44 = r0_11 == 0;
if (!z44) {
r2_27 = *reinterpret_cast<void***>(r5_4 + 4);
}
if (!z44) {
r1 = r0_11;
}
if (!z44) {
r0_11 = r4_12;
}
if (!z44) {
r0_11 = fun_10009f0c(r0_11, r1, r2_27);
}
addr_1000f4e0_108:
goto addr_1000f4e4_72;
addr_1000f444_71:
if (r6_5) {
r3_45 = *reinterpret_cast<void***>(r4_12 + 4);
z46 = r3_45 == 0;
if (!z46) {
r3_45 = reinterpret_cast<void**>(1);
}
if (z46) {
r3_45 = reinterpret_cast<void**>(0);
}
*reinterpret_cast<unsigned char*>(r7_35 + 6) = static_cast<unsigned char>(reinterpret_cast<uint32_t>(r3_45));
__asm__("bic r3, r3, #0x200");
*reinterpret_cast<void***>(r7_35 + 8) = *reinterpret_cast<void***>(r4_12 + 32);
*reinterpret_cast<void***>(r7_35 + 12) = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_12 + 36))));
*reinterpret_cast<void***>(r7_35 + 16) = *reinterpret_cast<void***>(r4_12 + 0x138);
}
if (r0_11)
goto addr_1000f484_116;
goto addr_1000f4e0_108;
addr_1000f484_116:
r3_47 = *reinterpret_cast<void***>(r4_12 + 0x160);
z48 = (reinterpret_cast<unsigned char>(r3_47) & 0x100) == 0;
if (!z48) {
__asm__("bicne r3, r3, #0x100");
}
if (!z48) {
*reinterpret_cast<void***>(r4_12 + 0x160) = r3_47;
}
if (!z48) {
r3_47 = reinterpret_cast<void**>(1);
}
if (z48) {
r3_47 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r0_11 + 6)));
}
*reinterpret_cast<void***>(r4_12 + 4) = r3_47;
r2_27 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r4_12 + 32)) & 0x200);
*reinterpret_cast<void***>(r4_12 + 32) = r2_27;
__asm__("bic r3, r3, #0x200");
*reinterpret_cast<void***>(r4_12 + 32) = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r0_11 + 8)) | reinterpret_cast<unsigned char>(r2_27));
*reinterpret_cast<void***>(r4_12 + 36) = *reinterpret_cast<void***>(r0_11 + 12);
*reinterpret_cast<void***>(r4_12 + 0x138) = *reinterpret_cast<void***>(r0_11 + 16);
goto addr_1000f4cc_100;
}
void** GetCRTStorageEx(int32_t r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23, void** a24, void** a25, void** a26, void** a27, void** a28);
void** DestroyWindow(void** r0, void** r1);
void** fun_1000f560() {
void** r1_1;
void** r2_2;
void** r3_3;
void** r4_4;
void** r5_5;
void** r6_6;
void** v7;
void** v8;
void** v9;
void** v10;
void** v11;
void** v12;
void** v13;
void** v14;
void** v15;
void** v16;
void** v17;
void** v18;
void** v19;
void** v20;
void** v21;
void** v22;
void** v23;
void** v24;
void** v25;
void** v26;
void** r0_27;
void** r5_28;
int1_t z29;
void** r3_30;
void** r4_31;
void** r0_32;
int1_t z33;
void** r0_34;
void** r1_35;
void** r2_36;
void** r2_37;
r0_27 = GetCRTStorageEx(0, r1_1, r2_2, r3_3, r4_4, r5_5, r6_6, __return_address(), v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26);
r5_28 = r0_27;
if (!z29) {
r3_30 = *reinterpret_cast<void***>(r5_28 + 0x16c);
r4_31 = *reinterpret_cast<void***>(r5_28 + 0x170);
if (r3_30) {
if (r3_30 != 1) {
*reinterpret_cast<void***>(r5_28 + 0x16c) = reinterpret_cast<void**>(1);
r0_32 = fun_10009c08(r3_30);
z33 = r0_32 == 0;
if (!z33) {
r3_30 = *reinterpret_cast<void***>(r0_32 + 8);
}
if (!z33) {
__asm__("bicne r3, r3, #0x100");
}
if (!z33) {
*reinterpret_cast<void***>(r0_32 + 8) = r3_30;
}
r0_34 = gffffc808;
r0_27 = fun_1000f200(r0_34, r1_35, r2_36, 0xffffc808, r4_4, r5_5);
}
}
if (r4_31) {
if (r4_31 != 1) {
*reinterpret_cast<void***>(r5_28 + 0x170) = reinterpret_cast<void**>(1);
fun_1003c840(1, 8, r2_37);
r0_27 = DestroyWindow(r4_31, 8);
}
}
}
return r0_27;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xf4);
void** fun_10038c10(uint32_t r0, void** r1, void** r2, void** r3, void** a5);
void** fun_10038c50(int32_t r0, void** r1, void** r2, void** r3, void** a5);
void** ImmDisableIME(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23) {
void** r5_24;
void** r4_25;
void** v26;
void** v27;
void** v28;
void** v29;
void** r4_30;
void** r5_31;
void** r6_32;
void** r11_33;
void** r0_34;
void** v35;
void** v36;
void** v37;
void** v38;
void** r0_39;
void** r0_40;
void* r0_41;
void** v42;
int32_t v43;
void** r0_44;
r5_24 = reinterpret_cast<void**>(0);
r4_25 = gffffc80c;
r0_34 = GetOwnerProcess(r0, r1, r2, 0xffffc80c, 0, v26, v27, v28, v29, r4_30, r5_31, r6_32, r11_33, __zero_stack_offset(), __return_address(), a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23);
if (r4_25 != r0_34) {
r0_39 = GetOwnerProcess(r0_34, r1, r2, 0xffffc80c, 0, v35, v36, v37, v38, r4_30, r5_31, r6_32, r11_33, __zero_stack_offset(), __return_address(), a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23);
r0_40 = image_base_;
MapPtrUnsecure(r0_40, r0_39, r2);
r0_41 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(__zero_stack_offset()) - 24 + 24 - 36);
r0_44 = PerformCallBack4(r0_41, 0, 0, 0, 0, v42, r0_41, 0, 0, 0, 0, v43);
r5_24 = r0_44;
} else {
if (!r0) {
fun_1000f560();
fun_10038c10(1, r1, r2, 0xffffc80c, 0);
fun_10038c50(2, r1, r2, 0xffffc80c, 0);
r5_24 = reinterpret_cast<void**>(1);
}
}
__asm__("ldmdb fp, {r4, r5, r6, fp, sp, lr}");
return r5_24;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(56);
void** fun_1000f6a4(void** r0, void** r1, void** r2) {
void** r0_4;
void** r0_5;
if (r1) {
if (r1 == 1) {
r0_4 = image_base_;
r0_5 = InitializeCriticalSection(r0_4, r1, r2);
return r0_5;
}
if (!reinterpret_cast<int1_t>(r1 == 3))
goto label_7;
}
r0 = fun_1000f560();
addr_1000f6c4_9:
return r0;
label_7:
goto addr_1000f6c4_9;
}
struct s10 {
void** f0;
signed char[23] pad24;
void** f18;
};
/* (image base) */
struct s10* image_base_ = reinterpret_cast<struct s10*>(0x1007ad34);
void** fun_1000f6e0(void** r0, void** r1, void** r2, void** r3, void** a5) {
void** v6;
void** r4_7;
void** v8;
void** r5_9;
void** v10;
void** r6_11;
void** r7_12;
void** r8_13;
struct s10* r5_14;
void** r7_15;
void** r8_16;
void** r0_17;
void** r2_18;
void** r3_19;
void** r6_20;
void** r4_21;
int1_t z22;
int1_t z23;
void** r0_24;
v6 = r4_7;
v8 = r5_9;
v10 = r6_11;
r7_12 = r1;
r8_13 = r0;
fun_10009c88();
r5_14 = image_base_;
r0_17 = EnterCriticalSection(&r5_14->f18, r1, r2, r3, v6, v8, v10, r7_15, r8_16, __return_address(), a5);
r2_18 = r5_14->f0;
r3_19 = reinterpret_cast<void**>(0xffffc808);
r6_20 = gffffc808;
r4_21 = r2_18;
if (!z22) {
while (1) {
z23 = *reinterpret_cast<void***>(r4_21 + 12) == r6_20;
if (z23) {
r2_18 = r7_12;
}
if (z23) {
r1 = r8_13;
}
if (z23) {
r0_17 = r4_21;
}
if (z23) {
r0_17 = fun_1000f270(r0_17, r1, r2_18);
}
r3_19 = *reinterpret_cast<void***>(r4_21);
r4_21 = r3_19;
if (z23)
break;
}
}
r0_24 = LeaveCriticalSection(&r5_14->f18, r1, r2_18, r3_19, v6, v8, v10);
return r0_24;
}
void** fun_1000f74c(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22) {
void** r9_23;
void** r5_24;
void** r7_25;
void** r4_26;
void** r5_27;
void** r6_28;
void** r7_29;
void** r8_30;
void** r9_31;
void** r0_32;
int1_t z33;
int1_t z34;
void** r0_35;
void** r0_36;
int1_t z37;
uint32_t r4_38;
int1_t z39;
uint32_t r3_40;
int1_t z41;
void** r3_42;
int1_t z43;
int1_t z44;
void** r0_45;
void** r2_46;
void** r1_47;
void** r0_48;
int1_t z49;
r9_23 = r1;
r5_24 = reinterpret_cast<void**>(0);
r7_25 = reinterpret_cast<void**>(0);
r0_32 = ImmIsIME(r0, r1, r2, r3, r4_26, r5_27, r6_28, r7_29, r8_30, r9_31, __return_address(), a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16);
z33 = r0_32 == 0;
if (!z33) {
r0_32 = fun_1000b9c8(0, r1, r2);
r7_25 = r0_32;
if (!z33) {
r3 = *reinterpret_cast<void***>(r7_25 + 12);
z34 = (reinterpret_cast<unsigned char>(r3) & 0x100000) == 0;
if (!z34) {
r0_32 = reinterpret_cast<void**>(1);
}
if (z34) {
r0_32 = reinterpret_cast<void**>(4);
}
r0_32 = fun_1000c4cc(r0_32, r1, r2, r3, r4_26, r5_27, r6_28, r7_29, r8_30, r9_31, __return_address(), a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22);
}
}
r0_35 = DefaultImeWndGet(r0_32, r1, r2);
r0_36 = IsWindow(r0_35, r1, r2, r3, r4_26, r5_27);
z37 = r0_36 == 0;
if (!z37) {
r1 = reinterpret_cast<void**>(0x284);
}
if (!z37) {
r1 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r1) | 1);
}
if (!z37) {
r3 = r0;
}
if (!z37) {
r2 = reinterpret_cast<void**>(0);
}
if (!z37) {
r0_36 = r0_35;
}
if (!z37) {
r0_36 = SendMessageW(r0_36, r1, r2, r3, r4_26, r5_27, r6_28);
}
r4_38 = reinterpret_cast<unsigned char>(r9_23) & 0xf0000000;
z39 = r4_38 == 0xe0000000;
if (z39) {
r2 = reinterpret_cast<void**>(1);
}
r3_40 = reinterpret_cast<unsigned char>(r0) & 0xf0000000;
if (!z39) {
r2 = reinterpret_cast<void**>(0);
}
z41 = r3_40 == 0xe0000000;
if (z41) {
r3_40 = 1;
}
if (!z41) {
r3_40 = 0;
}
r3_42 = reinterpret_cast<void**>((r3_40 ^ reinterpret_cast<unsigned char>(r2)) & 0xff);
z43 = r3_42 == 0;
if (!z43) {
r1 = reinterpret_cast<void**>(4);
}
if (!z43) {
r0_36 = r0;
}
if (!z43) {
fun_1003c840(r0_36, r1, r2);
}
fun_1003c840(r9_23, 2, r2);
z44 = r4_38 == 0xe0000000;
if (z44) {
r3_42 = reinterpret_cast<void**>(1);
}
if (!z44) {
r3_42 = reinterpret_cast<void**>(0);
}
if (r3_42) {
r0_45 = fun_1000af9c(r9_23, 2);
r5_24 = r0_45;
}
r2_46 = reinterpret_cast<void**>(0);
r1_47 = r5_24;
r0_48 = fun_1000f6e0(r7_25, r1_47, 0, r3_42, r4_26);
if (r5_24) {
r0_48 = IsWindow(r0_35, r1_47, 0, r3_42, r4_26, r5_27);
z49 = r0_48 == 0;
if (!z49) {
r3_42 = *reinterpret_cast<void***>(r5_24 + 4);
}
if (!z49) {
r1_47 = reinterpret_cast<void**>(0x284);
}
if (!z49) {
r1_47 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r1_47) | 1);
}
if (!z49) {
r2_46 = reinterpret_cast<void**>(1);
}
if (!z49) {
r0_48 = r0_35;
}
if (!z49) {
r0_48 = SendMessageW(r0_48, r1_47, r2_46, r3_42, r4_26, r5_27, r6_28);
}
}
return r0_48;
}
/* (image base) */
unsigned char* image_base_ = reinterpret_cast<unsigned char*>(0x1007ad60);
void** fun_1000f85c(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18);
void** GetKeyboardLayoutList(int32_t r0, void** r1);
void** fun_1000f984(void** r0, void** r1, void** r2, void** r3) {
void* sp5;
void** r8_6;
void** r10_7;
void** r9_8;
unsigned char* lr9;
void** v10;
void** v11;
void** v12;
void** v13;
void** v14;
void** v15;
void** v16;
void** v17;
void** v18;
void** v19;
void** v20;
void** v21;
void** v22;
void** v23;
void** r0_24;
void** r0_25;
void** r5_26;
void** r1_27;
void** r4_28;
void** r0_29;
void** r7_30;
int1_t z31;
void** v32;
void** r5_33;
int1_t z34;
void** v35;
void** v36;
void** v37;
void** v38;
void** v39;
void** v40;
void** v41;
void** v42;
void** v43;
void** v44;
void** v45;
void** v46;
void** v47;
void** v48;
void** v49;
void** v50;
void** v51;
void** v52;
void** v53;
void** v54;
void** v55;
void** v56;
void** v57;
void** v58;
void** v59;
void** v60;
void** v61;
void** v62;
void** v63;
void** v64;
void** v65;
void** v66;
void** v67;
void** v68;
void** v69;
void** v70;
void** v71;
void** v72;
void** v73;
void** v74;
int1_t z75;
void** v76;
sp5 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 36 - 0x80);
r8_6 = r3;
r10_7 = r1;
r9_8 = r0;
lr9 = image_base_;
if (!*lr9) {
fun_1000f85c(r9_8, r8_6, r2, r3, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23);
r0_24 = reinterpret_cast<void**>(1);
} else {
r0_25 = fun_1003c840(0, 3, r2);
r5_26 = r0_25;
r1_27 = reinterpret_cast<void**>(static_cast<uint32_t>(sp5));
r4_28 = reinterpret_cast<void**>(0);
r0_29 = GetKeyboardLayoutList(32, r1_27);
r7_30 = r0_29;
z31 = r5_26 == 0;
if (z31) {
goto addr_1000fa18_6;
} else {
if (z31) {
goto addr_1000f9ec_9;
}
r3 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r5_26) << 16);
if (!reinterpret_cast<int1_t>(r8_6 == reinterpret_cast<unsigned char>(r3) >> 16)) {
goto addr_1000fa18_6;
} else {
addr_1000f9ec_9:
r1_27 = reinterpret_cast<void**>(0);
if (!r7_30) {
goto addr_1000fa18_6;
} else {
r2 = reinterpret_cast<void**>(static_cast<uint32_t>(sp5));
while (r3 = v32, r3 != r5_26) {
++r1_27;
r2 = r2 + 4;
if (reinterpret_cast<unsigned char>(r1_27) < reinterpret_cast<unsigned char>(r7_30))
goto addr_1000fa18_6;
}
goto label_17;
}
}
}
}
addr_1000faac_18:
return r0_24;
addr_1000fa18_6:
r5_33 = reinterpret_cast<void**>(0);
z34 = r7_30 == 0;
if (!z34) {
while (1) {
r0_29 = ImmIsIME(v35, r1_27, r2, r3, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54);
__asm__("teq r0, fp");
if (!z34) {
r2 = r8_6;
if (z34)
goto label_24;
r3 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(v55)));
z34 = r3 == r2;
if (z34)
goto label_26;
}
++r5_33;
z34 = r5_33 == r7_30;
if (reinterpret_cast<unsigned char>(r5_33) < reinterpret_cast<unsigned char>(r7_30))
goto addr_1000fa5c_28;
}
}
addr_1000fa90_30:
r0_24 = ImmIsIME(r4_28, r1_27, r2, r3, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74);
goto addr_1000faac_18;
addr_1000fa5c_28:
goto addr_1000fa90_30;
label_24:
addr_1000fa68_31:
r3 = *reinterpret_cast<void***>(reinterpret_cast<int32_t>(sp5) + reinterpret_cast<unsigned char>(r5_33) << 2);
r4_28 = r3;
if (z34) {
goto addr_1000fa90_30;
} else {
addr_1000fa78_33:
z75 = r9_8 == r4_28;
if (!z75) {
r3 = r4_28;
}
}
if (!z75) {
r2 = reinterpret_cast<void**>(1);
}
if (!z75) {
r1_27 = reinterpret_cast<void**>(80);
}
if (!z75) {
r0_29 = r10_7;
}
if (!z75) {
PostMessageW(r0_29, r1_27, r2, r3, v76);
goto addr_1000fa90_30;
}
label_26:
goto addr_1000fa68_31;
label_17:
r4_28 = r5_26;
goto addr_1000fa78_33;
}
/* (image base) */
unsigned char* image_base_ = reinterpret_cast<unsigned char*>(0x1007ad60);
void** fun_1000fabc(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23, void** a24, void** a25, void** a26, void** a27, void** a28, void** a29, void** a30) {
void** r4_31;
void** r5_32;
void** r6_33;
void** r0_34;
void** r3_35;
void** r0_36;
void** r1_37;
void** r1_38;
void** r0_39;
unsigned char* r3_40;
int1_t z41;
void** r0_42;
void** r3_43;
r0_34 = ImmIsIME(r1, r1, r2, r3, r4_31, r5_32, r6_33, __return_address(), a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19);
if (r0_34) {
r3_35 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r1) << 16);
if (0x411 == reinterpret_cast<unsigned char>(r3_35) >> 16) {
r0_36 = ImmGetOpenStatus(r0, 0x411, r2, r3_35);
if (!r0_36) {
goto addr_1000fb5c_7;
} else {
r1_37 = reinterpret_cast<void**>(0);
goto addr_1000fb60_9;
}
}
}
r1_38 = r2;
r2 = reinterpret_cast<void**>(0);
r0_39 = fun_1000f984(r1, r1_38, 0, 0x411);
if (r0_39) {
r3_40 = image_base_;
r3_35 = reinterpret_cast<void**>(static_cast<uint32_t>(*r3_40));
z41 = r3_35 == 0;
if (z41) {
goto addr_1000fb5c_7;
} else {
r0_42 = ImmLockIMC(r0, r1_38, 0);
if (!z41) {
r3_43 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r0_42 + 0x160)) | 0x100);
*reinterpret_cast<void***>(r0_42 + 0x160) = r3_43;
ImmUnlockIMC(r0, r1_38, r0_42, r3_43, r4_31, r5_32, r6_33, __return_address(), a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30);
}
}
}
addr_1000fb68_17:
return 1;
addr_1000fb5c_7:
r1_37 = reinterpret_cast<void**>(1);
addr_1000fb60_9:
ImmSetOpenStatus(r0, r1_37, r2, r3_35, r4_31, r5_32, r6_33, __return_address(), a5);
goto addr_1000fb68_17;
}
void** fun_1000fb78(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23, void** a24, void** a25, void** a26, void** a27) {
void** r9_28;
void** r7_29;
void** r4_30;
void** r6_31;
int1_t z32;
void** r4_33;
void** r5_34;
void** r6_35;
void** r7_36;
void** r8_37;
void** r9_38;
void** r0_39;
int1_t z40;
void** r0_41;
int1_t z42;
r9_28 = r2;
r7_29 = r1;
r4_30 = reinterpret_cast<void**>(0);
r6_31 = reinterpret_cast<void**>(0);
if (!z32) {
r0_39 = ImmIsIME(r7_29, r1, r2, r3, r4_33, r5_34, r6_35, r7_36, r8_37, r9_38, __return_address(), a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16);
if (!r0_39) {
goto addr_1000fc00_5;
} else {
z40 = reinterpret_cast<int1_t>(r3 == reinterpret_cast<unsigned char>(r7_29) << 16 >> 16);
if (!z40) {
goto addr_1000fc00_5;
} else {
r0_41 = ImmLockIMC(r0, r1, r2);
r6_31 = r0_41;
if (z40) {
goto addr_1000fc14_10;
} else {
r3 = *reinterpret_cast<void***>(r6_31 + 4);
if (r3) {
ImmUnlockIMC(r0, r1, r2, r3, r4_33, r5_34, r6_35, r7_36, r8_37, r9_38, __return_address(), a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27);
fun_1000f984(r7_29, r9_28, 1, 0);
r4_30 = reinterpret_cast<void**>(1);
} else {
r1 = reinterpret_cast<void**>(1);
r0_41 = ImmSetOpenStatus(r0, 1, r2, r3, r4_33, r5_34, r6_35, r7_36, r8_37);
goto addr_1000fc14_10;
}
}
}
}
}
addr_1000fc24_15:
return r4_30;
addr_1000fc00_5:
r3 = r3;
r2 = reinterpret_cast<void**>(0);
r1 = r9_28;
r0_41 = fun_1000f984(r7_29, r1, 0, r3);
addr_1000fc14_10:
z42 = r6_31 == 0;
if (!z42) {
r0_41 = r0;
}
r4_30 = reinterpret_cast<void**>(1);
if (!z42) {
ImmUnlockIMC(r0_41, r1, r2, r3, r4_33, r5_34, r6_35, r7_36, r8_37, r9_38, __return_address(), a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27);
goto addr_1000fc24_15;
}
}
void** fun_1001017c(void** r0, void** r1, void** r2) {
int1_t z4;
void** r4_5;
void** r3_6;
int1_t z7;
void** r4_8;
void** v9;
void** v10;
void** v11;
void** v12;
void** v13;
void** v14;
void** v15;
void** v16;
void** v17;
void** v18;
void** v19;
void** v20;
void** v21;
void** v22;
void** v23;
void** v24;
void** v25;
void** v26;
void** v27;
void** v28;
void** v29;
void** v30;
void** v31;
void** v32;
void** v33;
z4 = r1 == 0;
r4_5 = r0;
if (!z4) {
r0 = *reinterpret_cast<void***>(r4_5 + 4);
if (!z4) {
r3_6 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r0 + 0xffffffff))));
--r0;
z7 = r3_6 == 0;
if (!z7) {
z7 = reinterpret_cast<int1_t>(r3_6 == 0xff);
}
if (!z7) {
r3_6 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r0))));
}
if (!z7) {
r3_6 = r3_6 + 0xff;
}
if (!z7) {
*reinterpret_cast<void***>(r0) = reinterpret_cast<void**>(static_cast<unsigned char>(reinterpret_cast<uint32_t>(r3_6)));
}
if (z7) {
r0 = _3_YAXPAX_Z(r0, r1, r2, r3_6, r4_8, __return_address(), v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33);
}
}
}
*reinterpret_cast<void***>(r4_5 + 4) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r4_5 + 8) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r4_5 + 12) = reinterpret_cast<void**>(0);
return r0;
}
void** fun_100101e8(void** r0, void** r1) {
void** r4_3;
void** r0_4;
void** r0_5;
void** r3_6;
void** r2_7;
void** r0_8;
void** v9;
void** v10;
void** r4_11;
void** r5_12;
void** r6_13;
void** r7_14;
void** r11_15;
int32_t v16;
int32_t v17;
void** r7_18;
void** r0_19;
void** r3_20;
r4_3 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r1) | 31);
if (reinterpret_cast<unsigned char>(r4_3) > reinterpret_cast<unsigned char>(-3)) {
r4_3 = r1;
}
r0_4 = r4_3 + 2;
if (reinterpret_cast<signed char>(r0_4) < reinterpret_cast<signed char>(0)) {
r0_4 = reinterpret_cast<void**>(0);
}
r0_5 = _2_YAPAXI_Z(r0_4);
r3_6 = *reinterpret_cast<void***>(r0 + 8);
if (r3_6) {
if (reinterpret_cast<unsigned char>(r3_6) > reinterpret_cast<unsigned char>(r4_3)) {
r3_6 = r4_3;
}
r2_7 = r3_6;
r0_8 = r0_5 + 1;
memcpy(r0_8, *reinterpret_cast<void***>(r0 + 4), r2_7, r3_6, v9, v10, r4_11, r5_12, r6_13, r7_14, r11_15, __zero_stack_offset(), __return_address(), r0_8, *reinterpret_cast<void***>(r0 + 4), r2_7, r3_6, v16, v17, r4_11, r5_12, r6_13, r7_14, r11_15, __zero_stack_offset(), __return_address());
}
r7_18 = *reinterpret_cast<void***>(r0 + 8);
r0_19 = fun_1001017c(r0, 1, r2_7);
*reinterpret_cast<void***>(r0 + 4) = r0_5 + 1;
*reinterpret_cast<void***>(r0_5) = reinterpret_cast<void**>(0);
r3_20 = *reinterpret_cast<void***>(r0 + 4);
*reinterpret_cast<void***>(r0 + 12) = r4_3;
if (reinterpret_cast<unsigned char>(r7_18) <= reinterpret_cast<unsigned char>(r4_3)) {
r4_3 = r7_18;
}
*reinterpret_cast<void***>(r0 + 8) = r4_3;
*reinterpret_cast<signed char*>(reinterpret_cast<unsigned char>(r3_20) + reinterpret_cast<unsigned char>(r4_3)) = 0;
__asm__("ldmdb fp, {r4, r5, r6, r7, fp, sp, lr}");
return r0_19;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x7c);
void** fun_10010994(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9);
void** fun_100105d8(void** r0, void** r1, void** r2, int32_t r3);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(68);
/* (image base) */
int32_t image_base_ = 0x1006de40;
struct s11 {
void** f0;
signed char[3] pad4;
uint32_t f4;
void* f8;
void* fc;
void* f10;
uint32_t f14;
};
int32_t* __CxxThrowException(void* r0, int32_t r1, void** r2, void** r3, void** a5, struct s11* a6, struct s11* a7, int32_t a8, void** a9, int32_t a10);
void** fun_100101cc(void** r0, int32_t r1, void** r2);
/*
* ?_Xran@std@@YAXXZ
* void __cdecl std::_Xran(void)
*/
void** _Xran_std_YAXXZ() {
void* r11_1;
void** r2_2;
void** r1_3;
void** r3_4;
void** v5;
void** v6;
void** v7;
void** v8;
void** v9;
int32_t r3_10;
void** r3_11;
int32_t r1_12;
void** v13;
struct s11* v14;
struct s11* v15;
int32_t v16;
int32_t v17;
void** r0_18;
r11_1 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 12 + 12);
fun_1001017c(reinterpret_cast<int32_t>(r11_1) - 56, 0, r2_2);
r1_3 = image_base_;
fun_10010994(reinterpret_cast<int32_t>(r11_1) - 56, r1_3, 23, r3_4, v5, v6, v7, v8, v9);
fun_100105d8(reinterpret_cast<int32_t>(r11_1) - 40, reinterpret_cast<int32_t>(r11_1) - 56, 23, r3_10);
r3_11 = image_base_;
r1_12 = image_base_;
__CxxThrowException(reinterpret_cast<int32_t>(r11_1) - 40, r1_12, 23, r3_11, v13, v14, v15, v16, r3_11, v17);
r0_18 = fun_100101cc(reinterpret_cast<int32_t>(r11_1) - 56, r1_12, 23);
return r0_18;
}
void** fun_100109e4(void** r0);
void** memmove(void** r0, void** r1, void** r2, ...);
uint32_t fun_100107f4(void** r0, void** r1, int32_t r2);
void** fun_10010430(void** r0, void** r1, void** r2) {
void** r5_4;
void** r2_5;
void** r0_6;
void** r3_7;
void** r5_8;
uint32_t r0_9;
int1_t z10;
r5_4 = r2;
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r0 + 8)) >= reinterpret_cast<unsigned char>(r1)) {
_Xran_std_YAXXZ();
}
fun_100109e4(r0);
r2_5 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r0 + 8)) - reinterpret_cast<unsigned char>(r1));
if (reinterpret_cast<unsigned char>(r2_5) >= reinterpret_cast<unsigned char>(r5_4)) {
r5_4 = r2_5;
}
if (r5_4) {
r0_6 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r0 + 4)) + reinterpret_cast<unsigned char>(r1));
memmove(r0_6, reinterpret_cast<unsigned char>(r0_6) + reinterpret_cast<unsigned char>(r5_4), reinterpret_cast<unsigned char>(r2_5) - reinterpret_cast<unsigned char>(r5_4));
r3_7 = *reinterpret_cast<void***>(r0 + 8);
r5_8 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r3_7) - reinterpret_cast<unsigned char>(r5_4));
r0_9 = fun_100107f4(r0, r5_8, 0);
z10 = r0_9 == 0;
if (!z10) {
r3_7 = *reinterpret_cast<void***>(r0 + 4);
}
if (!z10) {
}
if (!z10) {
*reinterpret_cast<void***>(r0 + 8) = r5_8;
}
if (!z10) {
*reinterpret_cast<signed char*>(reinterpret_cast<unsigned char>(r3_7) + reinterpret_cast<unsigned char>(r5_8)) = 0;
}
}
return r0;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xc0);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(52);
void** fun_100104bc(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, int32_t a8, void* a9, int32_t a10, void** a11, void** a12, void** a13, int32_t a14);
void** fun_100105d8(void** r0, void** r1, void** r2, int32_t r3) {
void** r1_5;
void** r3_6;
void** r4_7;
void** r4_8;
void** r5_9;
void** r6_10;
int32_t r11_11;
r1_5 = image_base_;
_0exception_std_QAA_PBD_Z(r0, r1_5, r2);
r3_6 = image_base_;
*reinterpret_cast<void***>(r0) = r3_6;
r4_7 = r0 + 12;
fun_1001017c(r4_7, 0, r2);
fun_100104bc(r4_7, r1, 0, 0xffffffff, r4_8, r5_9, r6_10, r11_11, __zero_stack_offset(), __return_address(), r0, r1, r2, r3);
__asm__("ldmdb fp, {r4, r5, r6, fp, sp, lr}");
return r0;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(52);
void** fun_1001065c(void** r0, void** r1, void** r2, int32_t r3) {
void** r3_5;
void** r4_6;
void** r4_7;
void** r5_8;
void** r6_9;
int32_t r11_10;
_0exception_std_QAA_ABV01_Z(r0, r1, r2);
r3_5 = image_base_;
*reinterpret_cast<void***>(r0) = r3_5;
r4_6 = r0 + 12;
fun_1001017c(r4_6, 0, r2);
fun_100104bc(r4_6, r1 + 12, 0, 0xffffffff, r4_7, r5_8, r6_9, r11_10, __zero_stack_offset(), __return_address(), r0, r1, r2, r3);
__asm__("ldmdb fp, {r4, r5, r6, fp, sp, lr}");
return r0;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(44);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xf4);
/* (image base) */
int32_t image_base_ = 0x1006de7c;
/*
* ?_Xlen@std@@YAXXZ
* void __cdecl std::_Xlen(void)
*/
void** _Xlen_std_YAXXZ() {
void* r11_1;
void** r2_2;
void** r1_3;
void** r3_4;
void** v5;
void** v6;
void** v7;
void** v8;
void** v9;
int32_t r3_10;
void** r3_11;
int32_t r1_12;
void** v13;
struct s11* v14;
struct s11* v15;
int32_t v16;
int32_t v17;
void** r0_18;
r11_1 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 12 + 12);
fun_1001017c(reinterpret_cast<int32_t>(r11_1) - 56, 0, r2_2);
r1_3 = image_base_;
fun_10010994(reinterpret_cast<int32_t>(r11_1) - 56, r1_3, 15, r3_4, v5, v6, v7, v8, v9);
fun_100105d8(reinterpret_cast<int32_t>(r11_1) - 40, reinterpret_cast<int32_t>(r11_1) - 56, 15, r3_10);
r3_11 = image_base_;
r1_12 = image_base_;
__CxxThrowException(reinterpret_cast<int32_t>(r11_1) - 40, r1_12, 15, r3_11, v13, v14, v15, v16, r3_11, v17);
r0_18 = fun_100101cc(reinterpret_cast<int32_t>(r11_1) - 56, r1_12, 15);
return r0_18;
}
uint32_t fun_100107f4(void** r0, void** r1, int32_t r2) {
void** r4_4;
void** r3_5;
void** r2_6;
void** r6_7;
int1_t z8;
int1_t z9;
void** r3_10;
int1_t z11;
r4_4 = r0;
if (reinterpret_cast<unsigned char>(r1) > reinterpret_cast<unsigned char>(-3)) {
r0 = _Xlen_std_YAXXZ();
}
r3_5 = *reinterpret_cast<void***>(r4_4 + 4);
r2_6 = r3_5;
if (r1 != -3) {
r3_5 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r2_6 + 0xffffffff))));
r6_7 = r2_6 + 0xffffffff;
if (r3_5) {
if (r3_5 != 0xff) {
r0 = r4_4;
if (r1) {
fun_100101e8(r0, r1);
return 1;
} else {
r1 = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r6_7) = reinterpret_cast<void**>(static_cast<unsigned char>(reinterpret_cast<uint32_t>(*reinterpret_cast<void***>(r6_7) + 0xff)));
goto addr_10010850_14;
}
}
}
}
if (r1) {
if (r2)
goto addr_100108b0_18;
} else {
z8 = r2 == 0;
if (!z8) {
r1 = reinterpret_cast<void**>(1);
}
if (!z8) {
r0 = r4_4;
}
if (!z8) {
goto addr_10010850_14;
} else {
z9 = r2_6 == 0;
if (!z9) {
r3_5 = reinterpret_cast<void**>(0);
}
if (!z9) {
*reinterpret_cast<void***>(r4_4 + 8) = r3_5;
}
if (!z9) {
*reinterpret_cast<void***>(r2_6) = reinterpret_cast<void**>(static_cast<unsigned char>(reinterpret_cast<uint32_t>(r3_5)));
}
return 0;
}
}
addr_100108d4_33:
if (!r2) {
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r4_4 + 12)) >= reinterpret_cast<unsigned char>(r1)) {
addr_100108e8_37:
fun_100101e8(r4_4, r1);
}
}
r3_10 = *reinterpret_cast<void***>(r4_4 + 4);
z11 = r3_10 == 0;
if (!z11) {
r3_10 = reinterpret_cast<void**>(1);
}
if (z11) {
r3_10 = reinterpret_cast<void**>(0);
}
return reinterpret_cast<unsigned char>(r3_10) & 0xff;
addr_100108b0_18:
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r4_4 + 12)) > reinterpret_cast<unsigned char>(31)) {
goto addr_100108c4_44;
} else {
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r4_4 + 12)) < reinterpret_cast<unsigned char>(r1)) {
goto addr_100108d4_33;
} else {
addr_100108c4_44:
fun_1001017c(r4_4, 1, r2_6);
goto addr_100108e8_37;
}
}
addr_10010850_14:
fun_1001017c(r0, r1, r2_6);
return 0;
}
void** fun_10010994(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9) {
uint32_t r0_10;
void** r4_11;
void** r5_12;
void** r6_13;
void** r3_14;
r0_10 = fun_100107f4(r0, r2, 1);
if (r0_10) {
memcpy(*reinterpret_cast<void***>(r0 + 4), r1, r2, r3, r4_11, r5_12, r6_13, __return_address(), a5, a6, a7, a8, a9);
r3_14 = *reinterpret_cast<void***>(r0 + 4);
*reinterpret_cast<void***>(r0 + 8) = r2;
*reinterpret_cast<signed char*>(reinterpret_cast<unsigned char>(r3_14) + reinterpret_cast<unsigned char>(r2)) = 0;
}
return r0;
}
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007ad74);
int32_t g10010b00 = 0xf000f7f8;
/*
* ?terminate@std@@YAXXZ
* void __cdecl std::terminate(void)
*/
void terminate_std_YAXXZ() {
int32_t* r2_1;
int32_t r3_2;
r2_1 = image_base_;
if (!*r2_1) {
r3_2 = g10010b00;
goto r3_2;
} else {
goto *r2_1;
}
}
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007ad7c);
/*
* ?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z
* int (__cdecl*__cdecl _set_new_handler(int (__cdecl*)(unsigned int)))(unsigned int)
*/
int32_t _set_new_handler_YAP6AHI_ZP6AHI_Z_Z(int32_t r0) {
int32_t* r3_2;
int32_t r0_3;
r3_2 = image_base_;
r0_3 = *r3_2;
*r3_2 = r0;
return r0_3;
}
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007ad7c);
int32_t fun_10010b7c(void** r0, void** r1, void** r2) {
int32_t* r3_4;
r3_4 = image_base_;
if (!*r3_4) {
return 0;
} else {
goto *r3_4;
}
}
void** fun_1005ea24(void** r0, void** r1, void** r2);
void** fun_1005e9a8(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23, void** a24, void** a25, void** a26, void** a27, void** a28);
void** fun_1005e964(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23, void** a24, void** a25, void** a26, void** a27, void** a28, void** a29, void** a30, void** a31);
void fun_10010dc0(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23, void** a24, void** a25, void** a26, void** a27, void** a28, void** a29, void** a30);
void fun_10010cbc(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15) {
void** v16;
void** r4_17;
void** v18;
void** r5_19;
void** v20;
void** r6_21;
void** v22;
void** r7_23;
void** v24;
void** r8_25;
void** v26;
void** r11_27;
void** v28;
void** v29;
void** r7_30;
void** v31;
void** r5_32;
void** v33;
void** r8_34;
void** v35;
void** r6_36;
void** v37;
void** r0_38;
void** r4_39;
void** v40;
void** v41;
void** v42;
void** v43;
void** r0_44;
void** r0_45;
void** lr46;
void** v47;
void** v48;
void** v49;
void** r0_50;
void** r3_51;
void** v52;
void** v53;
void** v54;
void** v55;
void** v56;
void** v57;
void** r0_58;
void** r3_59;
void** v60;
void** v61;
void** v62;
void** r0_63;
void** v64;
void** v65;
void** v66;
void** v67;
void** v68;
void** v69;
v16 = r4_17;
v18 = r5_19;
v20 = r6_21;
v22 = r7_23;
v24 = r8_25;
v26 = r11_27;
v28 = reinterpret_cast<void**>(__zero_stack_offset());
v29 = reinterpret_cast<void**>(__return_address());
r7_30 = r3;
v31 = r7_30;
r5_32 = r2;
v33 = r5_32;
r8_34 = r1;
v35 = r8_34;
r6_36 = r0;
v37 = r6_36;
r0_38 = fun_1005ea24(r0, r1, r2);
r4_39 = r0_38;
v40 = r4_39;
r0_44 = fun_10038a38(r0_38, r1, r2, r3, v40, v41, v42, v43, v16, v18, v20, v22, v24, v26, v28, v29, v37, v35, v33, v31, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
r0_45 = r0_44 + 0x194;
lr46 = *reinterpret_cast<void***>(r0_44 + 0x194) + 1;
*reinterpret_cast<void***>(r0_45) = lr46;
r0_50 = fun_10038a38(r0_45, r1, r2, r3, v40, v47, v48, v49, v16, v18, v20, v22, v24, v26, v28, v29, v37, v35, v33, v31, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
r3_51 = *reinterpret_cast<void***>(r0_50 + 0x180);
if (r6_36 == r3_51) {
r0_50 = fun_10038a38(r0_50, r1, r2, r3_51, v40, v52, v53, v54, v16, v18, v20, v22, v24, v26, v28, v29, v37, v35, v33, v31, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
r4_39 = *reinterpret_cast<void***>(r0_50 + 0x184);
v40 = r4_39;
}
r0_58 = fun_10038a38(r0_50, r1, r2, r3_51, v40, v55, v56, v57, v16, v18, v20, v22, v24, v26, v28, v29, v37, v35, v33, v31, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
r3_59 = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r0_58 + 0x180) = reinterpret_cast<void**>(0);
while (r4_39 != r7_30) {
if (r4_39 == -1)
goto label_7;
if (*reinterpret_cast<void***>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r5_32 + 8)) + (reinterpret_cast<unsigned char>(r4_39) << 3) + 4)) {
r0_63 = fun_1005e9a8(r6_36, r5_32, r2, *reinterpret_cast<void***>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r5_32 + 8)) + (reinterpret_cast<unsigned char>(r4_39) << 3) + 4), v40, v60, v61, v62, v16, v18, v20, v22, v24, v26, v28, v29, v37, v35, v33, v31, a5, a6, a7, a8, a9, a10, a11, a12);
r6_36 = r0_63;
v37 = r6_36;
r2 = *reinterpret_cast<void***>(r8_34 + 12);
r1 = r6_36;
r0_58 = fun_1005e964(*reinterpret_cast<void***>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r5_32 + 8)) + (reinterpret_cast<unsigned char>(r4_39) << 3) + 4), r1, r2, 0, v40, v64, v65, v66, v16, v18, v20, v22, v24, v26, v28, v29, v37, v35, v33, v31, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
}
r3_59 = *reinterpret_cast<void***>(r5_32 + 8);
r4_39 = *reinterpret_cast<void***>(reinterpret_cast<unsigned char>(r3_59) + reinterpret_cast<unsigned char>(r4_39) << 3);
v40 = r4_39;
}
addr_10010db0_14:
fun_10010dc0(r0_58, r1, r2, r3_59, v40, v67, v68, v69, v16, v18, v20, v22, v24, v26, v28, v29, v37, v35, v33, v31, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14);
__asm__("ldmdb fp, {r4, r5, r6, r7, r8, fp, sp, lr}");
goto lr46;
label_7:
goto addr_10010db0_14;
}
void fun_10010f68(void** r0, void** r1) {
if (r0) {
if (*reinterpret_cast<void***>(*reinterpret_cast<void***>(r0 + 28) + 4)) {
goto *reinterpret_cast<void***>(*reinterpret_cast<void***>(r0 + 28) + 4);
}
}
__asm__("ldmdb fp, {fp, sp, lr}");
return;
}
void** fun_1005e9e4(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23, void** a24, void** a25, void** a26, void** a27, void** a28, void** a29, void** a30, void** a31);
void fun_100112b8(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23, void** a24, void** a25, void** a26, void** a27, void** a28, void** a29, void** a30, void** a31);
void** fun_10011118(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, int32_t a7) {
void** v8;
void** v9;
void** v10;
void** r4_11;
void** v12;
void** r5_13;
void** v14;
void** r6_15;
void** v16;
void** r7_17;
void** v18;
void** r8_19;
void** v20;
void** r11_21;
void** v22;
void** v23;
void*** r11_24;
void** v25;
void** v26;
void** v27;
void** v28;
void** v29;
void** v30;
void** v31;
void** v32;
void** v33;
void** v34;
void** v35;
void** v36;
void** v37;
void** v38;
void** v39;
void** r0_40;
void** v41;
void** v42;
void** v43;
void** v44;
void** v45;
void** v46;
void** v47;
void** v48;
void** v49;
void** v50;
void** v51;
void** v52;
void** v53;
void** v54;
void** r0_55;
void** v56;
void** v57;
void** v58;
void** v59;
void** v60;
void** v61;
void** v62;
void** v63;
void** v64;
void** v65;
void** v66;
void** v67;
void** v68;
void** r0_69;
void** lr70;
void** v71;
void** v72;
void** v73;
void** v74;
void** v75;
void** v76;
void** v77;
void** v78;
void** v79;
void** v80;
void** v81;
void** v82;
void** r0_83;
void** v84;
void** v85;
void** v86;
void** v87;
void** v88;
void** v89;
void** v90;
void** v91;
void** v92;
void** v93;
void** v94;
void** r0_95;
void** v96;
void** v97;
void** v98;
void** v99;
void** v100;
void** v101;
void** v102;
void** v103;
void** v104;
void** v105;
void** r0_106;
void** r2_107;
void** r3_108;
void** v109;
void** v110;
void** v111;
void** v112;
void** v113;
void** v114;
void** v115;
void** v116;
void** v117;
void** r0_118;
void** r3_119;
void** v120;
void** v121;
void** v122;
void** v123;
void** v124;
void** v125;
void** v126;
void** v127;
void** r0_128;
void** r3_129;
void** v130;
void** v131;
void** v132;
void** v133;
void** v134;
void** v135;
void** v136;
void** r0_137;
void** r3_138;
void** v139;
void** v140;
void** v141;
void** v142;
void** v143;
void** v144;
void** r0_145;
void** r3_146;
void** v147;
void** v148;
void** v149;
void** v150;
void** v151;
void** r0_152;
void** r3_153;
void** v154;
void** v155;
void** v156;
void** r0_157;
void** r3_158;
void** v159;
void** v160;
void** r0_161;
void** v162;
void** v163;
void** r0_164;
void** v165;
void** r1_166;
void** v167;
void** v168;
void** r0_169;
void** v170;
void** v171;
void** r5_172;
void** v173;
void** r0_174;
void** r4_175;
int1_t z176;
void** r2_177;
int1_t z178;
void** v179;
void** v180;
v8 = r2;
v9 = r3;
v10 = r4_11;
v12 = r5_13;
v14 = r6_15;
v16 = r7_17;
v18 = r8_19;
v20 = r11_21;
v22 = reinterpret_cast<void**>(__zero_stack_offset());
v23 = reinterpret_cast<void**>(__return_address());
r11_24 = reinterpret_cast<void***>(reinterpret_cast<unsigned char>(__zero_stack_offset()) - 16 - 32 + 32);
v25 = r0;
r0_40 = fun_10038a38(r0, r1, r2, r3, v26, a5, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v10, v12, v14, v16, v18, v20, v22, v23, v25, r1, v8, v9);
v41 = *reinterpret_cast<void***>(r0_40 + 0x174);
r0_55 = fun_10038a38(r0_40, r1, r2, r3, v42, a5, v41, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v10, v12, v14, v16, v18, v20, v22, v23, v25, r1, v8, v9);
v56 = *reinterpret_cast<void***>(r0_55 + 0x178);
r0_69 = fun_10038a38(r0_55, r1, r2, r3, v57, a5, v41, v56, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v10, v12, v14, v16, v18, v20, v22, v23, v25, r1, v8, v9);
lr70 = *reinterpret_cast<void***>(r0_69 + 0x190);
v71 = lr70;
r0_83 = fun_10038a38(r0_69, r1, r2, r3, v72, a5, v41, v56, v71, v73, v74, v75, v76, v77, v78, v79, v80, v81, v82, v10, v12, v14, v16, v18, v20, v22, v23, v25, r1, v8, v9);
*reinterpret_cast<void***>(r0_83 + 0x174) = r0;
r0_95 = fun_10038a38(r0_83, r1, r2, r3, v84, a5, v41, v56, v71, v85, v86, v87, v88, v89, v90, v91, v92, v93, v94, v10, v12, v14, v16, v18, v20, v22, v23, v25, r1, v8, v9);
*reinterpret_cast<void***>(r0_95 + 0x178) = r2;
v96 = r1;
r0_106 = fun_10038a38(r0_95, r1, r2, 0, v97, a5, v41, v56, v71, v98, v99, v100, v101, v102, 0, v96, v103, v104, v105, v10, v12, v14, v16, v18, v20, v22, v23, v25, r1, v8, v9);
r2_107 = *reinterpret_cast<void***>(r3 + 8);
r3_108 = *reinterpret_cast<void***>(reinterpret_cast<unsigned char>(r2_107) + reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(*reinterpret_cast<void***>(r0_106 + 0x17c))) << 3);
v109 = r3_108;
r0_118 = fun_10038a38(r0_106, r1, r2_107, r3_108, v110, a5, v41, v56, v71, v111, v112, v113, v114, v115, 0, v96, v109, v116, v117, v10, v12, v14, v16, v18, v20, v22, v23, v25, r1, v8, v9);
r3_119 = *reinterpret_cast<void***>(*reinterpret_cast<void***>(*reinterpret_cast<void***>(r0_118 + 0x17c) + 16) + 12);
v120 = r3_119;
r0_128 = fun_10038a38(r0_118, r1, r2_107, r3_119, v121, a5, v41, v56, v71, v122, v123, v124, v125, v126, 0, v96, v109, v120, v127, v10, v12, v14, v16, v18, v20, v22, v23, v25, r1, v8, v9);
r3_129 = *reinterpret_cast<void***>(r0_128 + 0x188);
v130 = r3_129;
r0_137 = fun_10038a38(r0_128, r1, r2_107, r3_129, v131, a5, v41, v56, v71, v132, v133, v134, v135, v136, 0, v96, v109, v120, v130, v10, v12, v14, v16, v18, v20, v22, v23, v25, r1, v8, v9);
r3_138 = reinterpret_cast<void**>(r11_24 - 52);
*reinterpret_cast<void***>(r0_137 + 0x188) = r3_138;
v139 = r1;
r0_145 = fun_10038a38(r0_137, r1, r2_107, r3_138, v140, a5, v41, v56, v71, v141, v139, v142, v143, v144, 0, v96, v109, v120, v130, v10, v12, v14, v16, v18, v20, v22, v23, v25, r1, v8, v9);
r3_146 = *reinterpret_cast<void***>(*reinterpret_cast<void***>(*reinterpret_cast<void***>(r0_145 + 0x17c) + 16) + 12);
v147 = r3_146;
v148 = r3;
r0_152 = fun_10038a38(r0_145, r1, r2_107, r3_146, v149, a5, v41, v56, v71, v150, v139, v147, v148, v151, 0, v96, v109, v120, v130, v10, v12, v14, v16, v18, v20, v22, v23, v25, r1, v8, v9);
r3_153 = *reinterpret_cast<void***>(r0_152 + 0x18c);
v154 = r3_153;
r0_157 = fun_10038a38(r0_152, r1, r2_107, r3_153, v155, a5, v41, v56, v71, v156, v139, v147, v148, v154, 0, v96, v109, v120, v130, v10, v12, v14, v16, v18, v20, v22, v23, v25, r1, v8, v9);
r3_158 = reinterpret_cast<void**>(r11_24 - 68);
*reinterpret_cast<void***>(r0_157 + 0x18c) = r3_158;
r0_161 = fun_10038a38(r0_157, r1, r2_107, r3_158, v159, a5, v41, v56, v71, v160, v139, v147, v148, v154, 0, v96, v109, v120, v130, v10, v12, v14, v16, v18, v20, v22, v23, v25, r1, v8, v9);
r0_164 = fun_1005e9e4(r1, *reinterpret_cast<void***>(*reinterpret_cast<void***>(*reinterpret_cast<void***>(r0_161 + 0x17c) + 16) + 12), r2_107, *reinterpret_cast<void***>(*reinterpret_cast<void***>(r0_161 + 0x17c) + 16), v162, a5, v41, v56, v71, v163, v139, v147, v148, v154, 0, v96, v109, v120, v130, v10, v12, v14, v16, v18, v20, v22, v23, v25, r1, v8, v9);
v165 = r0_164;
r1_166 = r0_164;
r0_169 = fun_1005e964(a5, r1_166, r2, r11_24 - 52, v167, a5, v41, v56, v71, v168, v139, v147, v148, v154, 0, v96, v109, v120, v130, v10, v12, v14, v16, v18, v20, v22, v23, v25, v165, v8, v9);
v170 = r0_169;
fun_100112b8(r0_169, r1_166, r2, 0, 0, v170, v41, v56, v71, v171, v139, v147, v148, v154, 0, v96, v109, v120, v130, v10, v12, v14, v16, v18, v20, v22, v23, v25, v165, v8, v9);
r5_172 = reinterpret_cast<void**>(0);
r0_174 = fun_10038a38(r0_169, r1_166, r2, 0, 0, v170, v41, v56, v71, v173, v139, v147, v148, v154, 0, v96, v109, v120, v130, v10, v12, v14, v16, v18, v20, v22, v23, v25, v165, v8, v9);
r4_175 = *reinterpret_cast<void***>(r0_174 + 0x188);
if (!z176) {
r2_177 = v96;
while (1) {
z178 = *reinterpret_cast<void***>(r4_175 + 4) == r2_177;
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r4_175 + 4)) <= reinterpret_cast<unsigned char>(r2_177)) {
r0_174 = fun_10038a38(r0_174, r1_166, r2_177, *reinterpret_cast<void***>(r4_175 + 4), 0, v170, v41, v56, v71, v179, v139, v147, v148, v154, 0, v96, v109, v120, v130, v10, v12, v14, v16, v18, v20, v22, v23, v25, v165, v8, v9);
z178 = r4_175 == *reinterpret_cast<void***>(r0_174 + 0x188);
if (!z178) {
*reinterpret_cast<void***>(r5_172 + 16) = *reinterpret_cast<void***>(r4_175 + 16);
} else {
r0_174 = fun_10038a38(r0_174, r1_166, r2_177, *reinterpret_cast<void***>(r0_174 + 0x188), 0, v170, v41, v56, v71, v180, v139, v147, v148, v154, 0, v96, v109, v120, v130, v10, v12, v14, v16, v18, v20, v22, v23, v25, v165, v8, v9);
*reinterpret_cast<void***>(r0_174 + 0x188) = *reinterpret_cast<void***>(r4_175 + 16);
}
r2_177 = v96;
}
r5_172 = r4_175;
r4_175 = *reinterpret_cast<void***>(r4_175 + 16);
if (z178)
break;
}
}
__asm__("ldmdb fp, {r4, r5, r6, r7, r8, fp, sp, lr}");
goto lr70;
}
void** fun_10010fec(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23, void** a24, void** a25, void** a26, void** a27);
void fun_100113b8(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20) {
void** lr21;
void** r4_22;
void** r5_23;
void** r6_24;
void** r7_25;
void** r11_26;
void** r0_27;
int1_t z28;
void** r6_29;
int1_t less30;
int1_t less31;
void** r0_32;
void** r2_33;
void** r3_34;
int1_t less35;
int1_t z36;
void** r3_37;
void** r2_38;
void** r0_39;
int1_t less40;
lr21 = *reinterpret_cast<void***>(r2 + 4);
if (lr21) {
lr21 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(lr21 + 8))));
if (lr21) {
lr21 = *reinterpret_cast<void***>(r2 + 8);
if (lr21) {
r0_27 = fun_10010fec(lr21, r1, *reinterpret_cast<void***>(r2 + 12), r3, r4_22, r5_23, r6_24, r7_25, r11_26, __zero_stack_offset(), __return_address(), a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
if (!(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r2)) & 8)) {
z28 = (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r3)) & 1) == 0;
if (z28)
goto label_10; else
goto addr_10011458_11;
} else {
r6_29 = *reinterpret_cast<void***>(r0 + 24);
*reinterpret_cast<void***>(r0_27) = r6_29;
goto addr_10011418_13;
}
}
}
}
addr_1001156c_14:
__asm__("ldmdb fp, {r4, r5, r6, r7, fp, sp, lr}");
goto lr21;
label_10:
if (z28)
goto addr_10011490_16;
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r3)) & 4)
goto addr_100114dc_19;
less30 = reinterpret_cast<signed char>(*reinterpret_cast<void***>(r3 + 8 + 4)) < reinterpret_cast<signed char>(0);
if (less30)
goto addr_10011540_22;
addr_10011540_22:
if (!less30) {
}
if (!less30) {
}
if (!less30) {
}
if (!less30) {
}
if (!less30) {
}
goto *reinterpret_cast<void***>(r3 + 24);
addr_100114dc_19:
less31 = reinterpret_cast<signed char>(*reinterpret_cast<void***>(r3 + 8 + 4)) < reinterpret_cast<signed char>(0);
if (!less31) {
}
if (!less31) {
}
if (!less31) {
}
if (!less31) {
}
if (!less31) {
}
if (!less31) {
}
goto *reinterpret_cast<void***>(r3 + 24);
addr_10011490_16:
r0_32 = r3 + 8;
r2_33 = *reinterpret_cast<void***>(r0_32);
r3_34 = *reinterpret_cast<void***>(r0_32 + 4);
less35 = reinterpret_cast<signed char>(r3_34) < reinterpret_cast<signed char>(0);
lr21 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r2_33) + reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r0 + 24)));
if (!less35) {
r1 = r3_34;
}
if (!less35) {
r2_33 = *reinterpret_cast<void***>(r0_32 + 8);
}
if (!less35) {
r3_34 = *reinterpret_cast<void***>(reinterpret_cast<unsigned char>(r1) + reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r0 + 24)));
}
if (!less35) {
r3_34 = *reinterpret_cast<void***>(reinterpret_cast<unsigned char>(r3_34) + reinterpret_cast<unsigned char>(r2_33));
}
if (!less35) {
r3_34 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(lr21) + reinterpret_cast<unsigned char>(r3_34));
}
if (!less35) {
lr21 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r3_34) + reinterpret_cast<unsigned char>(r1));
}
memmove(r0_27, lr21, *reinterpret_cast<void***>(r3 + 20), r0_27, lr21, *reinterpret_cast<void***>(r3 + 20));
addr_10011564_58:
goto addr_1001156c_14;
addr_10011458_11:
r1 = *reinterpret_cast<void***>(r0 + 24);
memmove(r0_27, r1, *reinterpret_cast<void***>(r3 + 20), r0_27, r1, *reinterpret_cast<void***>(r3 + 20));
z36 = reinterpret_cast<int1_t>(*reinterpret_cast<void***>(r3 + 20) == 4);
if (!z36) {
goto addr_10011564_58;
} else {
r6_29 = *reinterpret_cast<void***>(r0_27);
if (z36) {
goto addr_10011564_58;
}
}
addr_10011418_13:
lr21 = r3 + 8;
r3_37 = *reinterpret_cast<void***>(lr21);
r2_38 = *reinterpret_cast<void***>(lr21 + 4);
r0_39 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r3_37) + reinterpret_cast<unsigned char>(r6_29));
less40 = reinterpret_cast<signed char>(r2_38) < reinterpret_cast<signed char>(0);
if (!less40) {
r1 = r2_38;
}
if (!less40) {
r2_38 = *reinterpret_cast<void***>(lr21 + 8);
}
if (!less40) {
r3_37 = *reinterpret_cast<void***>(reinterpret_cast<unsigned char>(r1) + reinterpret_cast<unsigned char>(r6_29));
}
if (!less40) {
r3_37 = *reinterpret_cast<void***>(reinterpret_cast<unsigned char>(r3_37) + reinterpret_cast<unsigned char>(r2_38));
}
if (!less40) {
r3_37 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r0_39) + reinterpret_cast<unsigned char>(r3_37));
}
if (!less40) {
r0_39 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r3_37) + reinterpret_cast<unsigned char>(r1));
}
*reinterpret_cast<void***>(r0_27) = r0_39;
goto addr_10011564_58;
}
void** g10011c68 = reinterpret_cast<void**>(1);
void** g10011c64 = reinterpret_cast<void**>(0x89);
void** g10011c60 = reinterpret_cast<void**>(0xfe);
void** g10011c5c = reinterpret_cast<void**>(0x76);
void** g10011c58 = reinterpret_cast<void**>(0xf0);
void A_SHAInit(void** r0) {
void** r3_2;
void** r2_3;
void** r1_4;
void** lr5;
void** r4_6;
r3_2 = g10011c68;
r2_3 = g10011c64;
r1_4 = g10011c60;
lr5 = g10011c5c;
r4_6 = g10011c58;
*reinterpret_cast<void***>(r0 + 64) = r3_2;
*reinterpret_cast<void***>(r0 + 68) = r2_3;
*reinterpret_cast<void***>(r0 + 72) = r1_4;
*reinterpret_cast<void***>(r0 + 76) = lr5;
*reinterpret_cast<void***>(r0 + 80) = r4_6;
*reinterpret_cast<void***>(r0 + 84) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r0 + 88) = reinterpret_cast<void**>(0);
return;
}
struct s12 {
signed char[64] pad64;
uint32_t f40;
};
void fun_10011c6c(struct s12* r0, int32_t r1, void** r2) {
uint32_t* lr4;
int32_t r4_5;
uint32_t r3_6;
lr4 = &r0->f40;
r4_5 = 64;
while (r3_6 = *(lr4 - 16) ^ *(lr4 - 14) ^ *(lr4 - 8) ^ *(lr4 - 3), *lr4 = r3_6 >> 31 | r3_6 << 1, ++lr4, --r4_5, !!r4_5) {
}
return;
}
struct s14 {
unsigned char f0;
unsigned char f1;
};
struct s13 {
void** f0;
unsigned char f1;
unsigned char f2;
unsigned char f3;
struct s14* f4;
void* f8;
void** fc;
signed char[3] pad16;
void* f10;
};
void** fun_10011cac(struct s13* r0, void** r1, void** r2);
void** A_SHAUpdate(void** r0, void** r1, void** r2) {
void** v4;
void** r4_5;
void** v6;
void** r5_7;
void** v8;
void** r6_9;
void** v10;
void** r7_11;
void** v12;
void** r8_13;
void** v14;
void** r4_15;
void** r6_16;
void** r5_17;
void** lr18;
void** r3_19;
int1_t c20;
void* r7_21;
void* r8_22;
void** v23;
void** v24;
void** v25;
uint32_t r8_26;
void** v27;
void** v28;
void** v29;
int1_t z30;
void** v31;
void** v32;
void** v33;
uint32_t r8_34;
v4 = r4_5;
v6 = r5_7;
v8 = r6_9;
v10 = r7_11;
v12 = r8_13;
v14 = reinterpret_cast<void**>(__return_address());
r4_15 = r2;
r6_16 = r1;
r5_17 = r0;
lr18 = *reinterpret_cast<void***>(r5_17 + 88);
r3_19 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(lr18) + reinterpret_cast<unsigned char>(r4_15));
c20 = reinterpret_cast<unsigned char>(r3_19) < reinterpret_cast<unsigned char>(r4_15);
*reinterpret_cast<void***>(r5_17 + 88) = r3_19;
if (!c20) {
r3_19 = *reinterpret_cast<void***>(r5_17 + 84);
}
r7_21 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(lr18) & 63);
if (!c20) {
++r3_19;
}
if (!c20) {
*reinterpret_cast<void***>(r5_17 + 84) = r3_19;
}
if (r7_21) {
r8_22 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r7_21) + reinterpret_cast<unsigned char>(r4_15));
if (reinterpret_cast<uint32_t>(r8_22) < 64) {
r2 = reinterpret_cast<void**>(64 - reinterpret_cast<uint32_t>(r7_21));
memcpy(reinterpret_cast<uint32_t>(r7_21) + reinterpret_cast<unsigned char>(r5_17), r6_16, r2, r3_19, v4, v6, v8, v10, v12, v14, v23, v24, v25);
r3_19 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r6_16) - reinterpret_cast<uint32_t>(r7_21));
r1 = r5_17;
r6_16 = r3_19 + 64;
r4_15 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(r8_22) - 64);
r0 = fun_10011cac(r5_17 + 64, r1, r2);
r7_21 = reinterpret_cast<void*>(0);
}
}
if (!(reinterpret_cast<unsigned char>(r6_16) & 3)) {
if (reinterpret_cast<unsigned char>(r4_15) < reinterpret_cast<unsigned char>(64))
goto addr_1001281c_15;
} else {
if (reinterpret_cast<unsigned char>(r4_15) >= reinterpret_cast<unsigned char>(64)) {
goto addr_1001283c_18;
} else {
r8_26 = reinterpret_cast<unsigned char>(r4_15) >> 6;
while (r2 = reinterpret_cast<void**>(64), memcpy(r5_17, r6_16, 64, r3_19, v4, v6, v8, v10, v12, v14, v27, v28, v29), r1 = r5_17, r0 = fun_10011cac(r5_17 + 64, r1, 64), r6_16 = r6_16 + 64, r4_15 = r4_15 - 64, --r8_26, !!r8_26) {
}
goto addr_1001283c_18;
}
}
addr_1001283c_18:
z30 = r4_15 == 0;
if (!z30) {
r2 = r4_15;
}
if (!z30) {
r1 = r6_16;
}
if (!z30) {
r0 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(r7_21) + reinterpret_cast<unsigned char>(r5_17));
}
if (!z30) {
r0 = memcpy(r0, r1, r2, r3_19, v4, v6, v8, v10, v12, v14, v31, v32, v33);
}
return r0;
addr_1001281c_15:
r8_34 = reinterpret_cast<unsigned char>(r4_15) >> 6;
while (r1 = r6_16, r0 = fun_10011cac(r5_17 + 64, r1, r2), r6_16 = r6_16 + 64, r4_15 = r4_15 - 64, --r8_34, !!r8_34) {
}
goto addr_1001283c_18;
}
void** fun_10012938(void** r0, void** r1, void** r2) {
void** r3_4;
int1_t less_or_equal5;
if (!__intrinsic()) {
r3_4 = reinterpret_cast<void**>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r0 + 2)) - 4);
less_or_equal5 = reinterpret_cast<signed char>(r1) <= reinterpret_cast<signed char>(r3_4);
if (less_or_equal5) {
r3_4 = reinterpret_cast<void**>(reinterpret_cast<signed char>(r1) >> 1);
}
if (less_or_equal5) {
r3_4 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r1) + (reinterpret_cast<unsigned char>(r3_4) >> 30));
}
if (less_or_equal5) {
r0 = reinterpret_cast<void**>(reinterpret_cast<signed char>(r3_4) >> 2);
}
if (less_or_equal5) {
}
if (less_or_equal5) {
return r0;
}
}
SetLastError(0x585, r1, r2, r3_4);
return 0xffffffff;
}
struct s15 {
signed char[16] pad16;
int32_t f10;
};
/* (image base) */
struct s15* image_base_ = reinterpret_cast<struct s15*>(0x1007a390);
void** CreateWindowExW(int32_t r0, int32_t r1, void** r2, int32_t r3, int32_t a5, int32_t a6, int32_t a7, int32_t a8, int32_t a9, int32_t a10, int32_t a11, int32_t a12) {
struct s15* lr13;
int32_t lr14;
lr13 = image_base_;
lr14 = lr13->f10;
goto lr14;
}
struct s16 {
signed char[180] pad180;
int32_t fb4;
};
/* (image base) */
struct s16* image_base_ = reinterpret_cast<struct s16*>(0x1007a390);
void** DestroyWindow(void** r0, void** r1) {
struct s16* r3_3;
r3_3 = image_base_;
goto r3_3->fb4;
}
struct s17 {
signed char[836] pad836;
int32_t f344;
};
/* (image base) */
struct s17* image_base_ = reinterpret_cast<struct s17*>(0x1007a390);
void LoadCursorW(void** r0, void** r1) {
struct s17* r3_3;
r3_3 = image_base_;
goto r3_3->f344;
}
struct s18 {
signed char[436] pad436;
int32_t f1b4;
};
/* (image base) */
struct s18* image_base_ = reinterpret_cast<struct s18*>(0x1007a390);
int32_t GetClassInfoW(int32_t r0, void** r1, void* r2) {
struct s18* r3_4;
r3_4 = image_base_;
goto r3_4->f1b4;
}
struct s19 {
signed char[804] pad804;
int32_t f324;
};
/* (image base) */
struct s19* image_base_ = reinterpret_cast<struct s19*>(0x1007a390);
void** GetWindowThreadProcessId(void** r0, void** r1) {
struct s19* r3_3;
r3_3 = image_base_;
goto r3_3->f324;
}
struct s20 {
signed char[840] pad840;
int32_t f348;
};
/* (image base) */
struct s20* image_base_ = reinterpret_cast<struct s20*>(0x1007a390);
void** SetCursor(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6) {
struct s20* r3_7;
r3_7 = image_base_;
goto r3_7->f348;
}
struct s21 {
signed char[556] pad556;
int32_t f22c;
};
/* (image base) */
struct s21* image_base_ = reinterpret_cast<struct s21*>(0x1007a390);
void** GetKeyboardLayout(int32_t r0) {
struct s21* r3_2;
r3_2 = image_base_;
goto r3_2->f22c;
}
struct s22 {
signed char[560] pad560;
int32_t f230;
};
/* (image base) */
struct s22* image_base_ = reinterpret_cast<struct s22*>(0x1007a390);
void** GetKeyboardLayoutList(int32_t r0, void** r1) {
struct s22* r3_3;
r3_3 = image_base_;
goto r3_3->f230;
}
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007ad24);
struct s23 {
signed char[212] pad212;
int32_t fd4;
};
/* (image base) */
struct s23** image_base_ = reinterpret_cast<struct s23**>(0x1007ad28);
struct s24 {
signed char[20] pad20;
int32_t f14;
};
/* (image base) */
struct s24* image_base_ = reinterpret_cast<struct s24*>(0x1007a390);
void** PostMessageW(void** r0, void** r1, void** r2, void** r3, void** a5) {
void** lr6;
int32_t* lr7;
struct s23** lr8;
struct s24* r1_9;
lr6 = gffffc800;
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(lr6 + 0xffffffec)) & 1) {
lr7 = image_base_;
if (*lr7) {
lr8 = image_base_;
goto (*lr8)->fd4;
}
}
r1_9 = image_base_;
goto r1_9->f14;
}
void** g1001454c = reinterpret_cast<void**>(87);
void** fun_1001451c(void** r0, void** r1, ...) {
void** r4_3;
int1_t z4;
void** r2_5;
int1_t z6;
void** r3_7;
int1_t z8;
int1_t z9;
r4_3 = r0;
if (!z4) {
r2_5 = *reinterpret_cast<void***>(r4_3 + 12);
}
if (!z6) {
r3_7 = g1001454c;
}
if (!z8) {
z9 = r2_5 == r3_7;
}
if (!z9) {
r0 = reinterpret_cast<void**>(0x570);
}
if (!z9) {
r0 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r0) | 8);
}
if (!z9) {
r4_3 = reinterpret_cast<void**>(0);
}
if (!z9) {
SetLastError(r0, r1, r2_5, r3_7);
}
return r4_3;
}
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007ad24);
struct s25 {
signed char[144] pad144;
int32_t f90;
};
/* (image base) */
struct s25** image_base_ = reinterpret_cast<struct s25**>(0x1007ad28);
struct s26 {
signed char[56] pad56;
int32_t f38;
};
/* (image base) */
struct s26* image_base_ = reinterpret_cast<struct s26*>(0x1007a390);
void SetWindowPos(void** r0, int32_t r1, int32_t r2, int32_t r3, int32_t a5, int32_t a6, int32_t a7) {
void** lr8;
int32_t* lr9;
struct s25** lr10;
struct s25* lr11;
int32_t r4_12;
struct s26* r3_13;
int32_t r7_14;
lr8 = gffffc800;
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(lr8 + 0xffffffec)) & 1) {
lr9 = image_base_;
if (*lr9) {
lr10 = image_base_;
lr11 = *lr10;
r4_12 = lr11->f90;
goto r4_12;
}
}
r3_13 = image_base_;
r7_14 = r3_13->f38;
goto r7_14;
}
int32_t fun_100146a0(void** r0, void** r1) {
void** r2_3;
int32_t r4_4;
int32_t r5_5;
void** r3_6;
void** r3_7;
void** r0_8;
int1_t z9;
void** r2_10;
r2_3 = gffffc800;
r4_4 = 0;
r5_5 = 0;
r3_6 = *reinterpret_cast<void***>(r2_3 + 8);
r3_7 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r3_6) | 2);
*reinterpret_cast<void***>(r2_3 + 8) = r3_7;
r0_8 = fun_1001451c(r0, r1, r0, r1);
if (r0_8) {
r5_5 = 1;
*reinterpret_cast<void***>(r1) = *reinterpret_cast<void***>(r0_8 + 32);
*reinterpret_cast<void***>(r1 + 4) = *reinterpret_cast<void***>(r0_8 + 36);
*reinterpret_cast<void***>(r1 + 8) = *reinterpret_cast<void***>(r0_8 + 40);
r3_7 = *reinterpret_cast<void***>(r0_8 + 44);
r4_4 = 1;
*reinterpret_cast<void***>(r1 + 12) = r3_7;
}
if (!r4_4) {
z9 = r5_5 == 0;
if (!z9) {
r0_8 = reinterpret_cast<void**>(87);
}
if (z9) {
r0_8 = reinterpret_cast<void**>(0x570);
}
if (z9) {
r0_8 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r0_8) | 8);
}
SetLastError(r0_8, r1, r2_3, r3_7, r0_8, r1, r2_3, r3_7);
}
r2_10 = gffffc800;
__asm__("bic r3, r3, #2");
*reinterpret_cast<void***>(r2_10 + 8) = *reinterpret_cast<void***>(r2_10 + 8);
__asm__("ldmdb fp, {r4, r5, r6, r7, fp, sp, lr}");
return r4_4;
}
int32_t fun_10014774(void** r0, void** r1) {
void** r2_3;
int32_t r4_4;
void** r0_5;
void** r2_6;
r2_3 = gffffc800;
r4_4 = 0;
*reinterpret_cast<void***>(r2_3 + 8) = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r2_3 + 8)) | 2);
r0_5 = fun_1001451c(r0, r1, r0, r1);
if (r0_5) {
*reinterpret_cast<void***>(r1) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r1 + 4) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r1 + 8) = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r0_5 + 56)) - reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r0_5 + 48)));
*reinterpret_cast<void***>(r1 + 12) = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r0_5 + 60)) - reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r0_5 + 52)));
r4_4 = 1;
}
r2_6 = gffffc800;
__asm__("bic r3, r3, #2");
*reinterpret_cast<void***>(r2_6 + 8) = *reinterpret_cast<void***>(r2_6 + 8);
__asm__("ldmdb fp, {r4, r5, r6, fp, sp, lr}");
return r4_4;
}
void** fun_10014aa0(void** r0, void** r1, int32_t r2, int32_t r3) {
int1_t z5;
void** r2_6;
void** r4_7;
void** r3_8;
void** r0_9;
void** r2_10;
void** r0_11;
z5 = r0 == 0;
r2_6 = gffffc800;
r4_7 = reinterpret_cast<void**>(0);
r3_8 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r2_6 + 8)) | 2);
*reinterpret_cast<void***>(r2_6 + 8) = r3_8;
if (!z5) {
r0_9 = fun_1001451c(r0, r1, r0, r1);
if (!z5)
goto addr_10014afc_4;
} else {
SetLastError(0x578, r1, r2_6, r3_8, 0x578, r1, r2_6, r3_8);
goto addr_10014ba8_6;
}
addr_10014b8c_8:
addr_10014ba8_6:
r2_10 = gffffc800;
__asm__("bic r3, r3, #2");
*reinterpret_cast<void***>(r2_10 + 8) = *reinterpret_cast<void***>(r2_10 + 8);
__asm__("ldmdb fp, {r4, r5, r6, r7, fp, sp, lr}");
return r4_7;
addr_10014afc_4:
if (!__intrinsic()) {
r0_11 = fun_10012938(*reinterpret_cast<void***>(r0_9 + 0x7c), r1, r2_6);
if (!__intrinsic())
goto addr_10014b80_11;
} else {
if (r1 == -21) {
r4_7 = *reinterpret_cast<void***>(r0_9 + 0x84);
goto addr_10014b88_15;
} else {
if (r1 == -20) {
r4_7 = *reinterpret_cast<void***>(r0_9 + 0x78);
goto addr_10014b88_15;
} else {
if (r1 == -16) {
r4_7 = *reinterpret_cast<void***>(r0_9 + 0x74);
goto addr_10014b88_15;
} else {
if (r1 == -12) {
r4_7 = *reinterpret_cast<void***>(r0_9 + 0x80);
goto addr_10014b88_15;
} else {
if (r1 == -4) {
r4_7 = *reinterpret_cast<void***>(r0_9 + 0x94);
goto addr_10014b88_15;
} else {
SetLastError(0x585, r1, r2_6, r3_8, 0x585, r1, r2_6, r3_8);
goto addr_10014b8c_8;
}
}
}
}
}
}
goto addr_10014b8c_8;
addr_10014b80_11:
r4_7 = *reinterpret_cast<void***>(reinterpret_cast<unsigned char>(r0_9) + (reinterpret_cast<unsigned char>(r0_11) << 2) + 0xb8);
addr_10014b88_15:
goto addr_10014b8c_8;
}
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007ad24);
struct s27 {
signed char[108] pad108;
int32_t f6c;
};
/* (image base) */
struct s27** image_base_ = reinterpret_cast<struct s27**>(0x1007ad28);
struct s28 {
signed char[160] pad160;
int32_t fa0;
};
/* (image base) */
struct s28* image_base_ = reinterpret_cast<struct s28*>(0x1007a390);
void** GetDC(int32_t r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7) {
void** r3_8;
int32_t* r3_9;
struct s27** r3_10;
struct s28* r3_11;
r3_8 = gffffc800;
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r3_8 + 0xffffffec)) & 1) {
r3_9 = image_base_;
if (*r3_9) {
r3_10 = image_base_;
goto (*r3_10)->f6c;
}
}
r3_11 = image_base_;
goto r3_11->fa0;
}
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007ad24);
struct s29 {
signed char[128] pad128;
int32_t f80;
};
/* (image base) */
struct s29** image_base_ = reinterpret_cast<struct s29**>(0x1007ad28);
struct s30 {
signed char[164] pad164;
int32_t fa4;
};
/* (image base) */
struct s30* image_base_ = reinterpret_cast<struct s30*>(0x1007a390);
void ReleaseDC(int32_t r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7) {
void** r3_8;
int32_t* r3_9;
struct s29** r3_10;
struct s30* r3_11;
r3_8 = gffffc800;
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r3_8 + 0xffffffec)) & 1) {
r3_9 = image_base_;
if (*r3_9) {
r3_10 = image_base_;
goto (*r3_10)->f80;
}
}
r3_11 = image_base_;
goto r3_11->fa4;
}
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007ad24);
struct s31 {
signed char[112] pad112;
int32_t f70;
};
/* (image base) */
struct s31** image_base_ = reinterpret_cast<struct s31**>(0x1007ad28);
struct s32 {
signed char[208] pad208;
int32_t fd0;
};
/* (image base) */
struct s32* image_base_ = reinterpret_cast<struct s32*>(0x1007a390);
int32_t GetFocus() {
void** r3_1;
int32_t* r3_2;
struct s31** r3_3;
struct s32* r3_4;
r3_1 = gffffc800;
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r3_1 + 0xffffffec)) & 1) {
r3_2 = image_base_;
if (*r3_2) {
r3_3 = image_base_;
goto (*r3_3)->f70;
}
}
r3_4 = image_base_;
goto r3_4->fd0;
}
void** g10014ff8 = reinterpret_cast<void**>(87);
void** fun_10014f64(void** r0, void** r1) {
int1_t z3;
void** r2_4;
void** r3_5;
int1_t z6;
void** r2_7;
if (z3) {
__asm__("ldmdb fp, {fp, sp, lr}");
return 0;
} else {
r2_4 = gffffc800;
*reinterpret_cast<void***>(r2_4 + 8) = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r2_4 + 8)) | 2);
r3_5 = g10014ff8;
z6 = *reinterpret_cast<void***>(r0 + 12) == r3_5;
if (z6) {
}
if (z6) {
}
r2_7 = gffffc800;
__asm__("bic r3, r3, #2");
*reinterpret_cast<void***>(r2_7 + 8) = *reinterpret_cast<void***>(r2_7 + 8);
__asm__("ldmdb fp, {fp, sp, lr}");
goto 0xffffc800;
}
}
void** IsWindow(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6) {
void** r0_7;
r0_7 = fun_10014f64(r0, r1);
return r0_7;
}
void** IsAPIReady(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6);
struct s33 {
signed char[400] pad400;
int32_t f190;
};
/* (image base) */
struct s33* image_base_ = reinterpret_cast<struct s33*>(0x1007a060);
int32_t GetForegroundInfo(void* r0, void** r1, void** r2, void** r3, void** a5, void** a6) {
void** r4_7;
void** r0_8;
struct s33* r3_9;
r0_8 = IsAPIReady(17, r1, r2, r3, r4_7, __return_address());
if (!r0_8) {
return 0;
} else {
r3_9 = image_base_;
goto r3_9->f190;
}
}
/* (image base) */
void*** image_base_ = reinterpret_cast<void***>(0x1007ad84);
struct s34 {
signed char[4] pad4;
int32_t f4;
};
/* (image base) */
struct s34* image_base_ = reinterpret_cast<struct s34*>(0x1007a390);
uint32_t fun_10015870() {
void*** r4_1;
void** r1_2;
void** r2_3;
void** r4_4;
void** r0_5;
struct s34* r3_6;
void** r1_7;
void** r2_8;
uint32_t r3_9;
r4_1 = image_base_;
if (!*r4_1) {
r0_5 = IsAPIReady(17, r1_2, r2_3, *r4_1, r4_4, __return_address());
if (r0_5) {
r3_6 = image_base_;
goto r3_6->f4;
}
SetLastError(0x578, r1_7, r2_8, *r4_1);
if (!*r4_1)
goto label_8;
}
r3_9 = 1;
addr_100158d4_10:
return r3_9 & 0xff;
label_8:
r3_9 = 0;
goto addr_100158d4_10;
}
int32_t SetProcPermissions(int32_t r0);
void** TlsGetValue(void* r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7);
int32_t fun_100158e8() {
int32_t r4_1;
uint32_t r0_2;
int1_t z3;
int32_t r0_4;
void** r1_5;
void** r2_6;
void** r3_7;
void** r4_8;
void** r5_9;
void** r0_10;
r4_1 = 1;
r0_2 = fun_10015870();
z3 = r0_2 == 0;
if (z3) {
r4_1 = 1;
}
if (!z3) {
r0_4 = SetProcPermissions(-1);
r0_10 = TlsGetValue(0, r1_5, r2_6, r3_7, r4_8, r5_9, __return_address());
if (!r0_10) {
goto addr_10015940_7;
} else {
if (r0_10 == 1) {
goto addr_10015940_7;
} else {
if (*reinterpret_cast<void***>(r0_10 + 0x104) == 1) {
goto addr_10015940_7;
} else {
if (!reinterpret_cast<int1_t>(*reinterpret_cast<void***>(r0_10 + 0x104) == 2)) {
goto addr_10015944_14;
} else {
r4_1 = 0;
goto addr_10015944_14;
}
}
}
}
}
addr_1001594c_16:
return r4_1;
addr_10015940_7:
r4_1 = 1;
addr_10015944_14:
SetProcPermissions(r0_4);
goto addr_1001594c_16;
}
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007ad24);
struct s35 {
signed char[132] pad132;
int32_t f84;
};
/* (image base) */
struct s35** image_base_ = reinterpret_cast<struct s35**>(0x1007ad28);
struct s36 {
signed char[28] pad28;
int32_t f1c;
};
/* (image base) */
struct s36* image_base_ = reinterpret_cast<struct s36*>(0x1007a390);
void** fun_100159b0(void** r0, void** r1, void** r2, void** r3, void** a5) {
void** lr6;
int32_t* lr7;
int32_t r0_8;
struct s35** lr9;
struct s36* r1_10;
lr6 = gffffc800;
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(lr6 + 0xffffffec)) & 1) {
lr7 = image_base_;
if (*lr7) {
r0_8 = fun_100158e8();
if (!r0_8) {
lr9 = image_base_;
goto (*lr9)->f84;
}
}
}
r1_10 = image_base_;
goto r1_10->f1c;
}
int32_t fun_1005eafc(uint32_t* r0);
void fun_1005ebb4(void** r0, uint32_t* r1, uint32_t* r2);
struct s37 {
signed char[432] pad432;
int32_t f1b0;
};
/* (image base) */
struct s37* image_base_ = reinterpret_cast<struct s37*>(0x1007a390);
int32_t fun_10015a78(uint32_t r0, void** r1, void** r2, void** r3, void** a5, int32_t a6) {
uint32_t* r11_7;
void** lr8;
void** r3_9;
void** r0_10;
void** r0_11;
uint32_t r3_12;
int1_t z13;
int1_t z14;
void** r2_15;
void** r3_16;
void** v17;
int32_t v18;
void** r2_19;
struct s37* r3_20;
int32_t r4_21;
void* r0_22;
void** v23;
void** v24;
int32_t v25;
int32_t v26;
r11_7 = reinterpret_cast<uint32_t*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 16 - 40 + 40);
lr8 = gffffc800;
r3_9 = reinterpret_cast<void**>(1);
r0_10 = *reinterpret_cast<void***>(lr8 + 8);
*reinterpret_cast<void***>(lr8 + 8) = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r0_10) | 2);
r0_11 = fun_1001451c(r1, r1, r1, r1);
if (r0_11) {
r3_9 = *reinterpret_cast<void***>(r0_11 + 0xb0);
if (!(reinterpret_cast<unsigned char>(r3_9) & 8)) {
r3_12 = r0;
z13 = r3_12 == 0;
if (z13) {
r3_12 = 1;
}
if (!z13) {
r3_12 = 0;
}
z14 = (r3_12 & 0xff) == 0;
if (!z14) {
r0_11 = r0_11 + 0x94;
}
if (z14) {
fun_1005eafc(r11_7);
r0_11 = reinterpret_cast<void**>(r11_7);
}
fun_1005ebb4(r0_11, r11_7 - 21, r11_7 - 20);
r2_15 = gffffc800;
__asm__("bic r3, r3, #2");
*reinterpret_cast<void***>(r2_15 + 8) = *reinterpret_cast<void***>(r2_15 + 8);
r3_16 = gffffc80c;
if (v17 == r3_16) {
goto v18;
}
if (r2 == 12)
goto label_18; else
goto addr_10015b70_19;
}
}
SetLastError(0x578, r1, r2, r3_9, 0x578, r1, r2, r3_9);
r2_19 = gffffc800;
__asm__("bic r3, r3, #2");
*reinterpret_cast<void***>(r2_19 + 8) = *reinterpret_cast<void***>(r2_19 + 8);
addr_10015c7c_22:
__asm__("ldmdb fp, {r4, r5, r6, r7, r8, sb, sl, fp, sp, lr}");
goto lr8;
label_18:
addr_10015bfc_23:
addr_10015c00_24:
r3_20 = image_base_;
r4_21 = r3_20->f1b0;
goto r4_21;
addr_10015b70_19:
if (r2 == 13) {
goto addr_10015bfc_23;
} else {
if (r2 == 71) {
goto addr_10015bfc_23;
} else {
if (r2 == 0x7d) {
goto addr_10015bfc_23;
} else {
if (r2 == 44) {
goto addr_10015bfc_23;
} else {
if (r2 == 74) {
goto addr_10015bfc_23;
} else {
if (r2 == 98) {
goto addr_10015bfc_23;
} else {
if (!reinterpret_cast<int1_t>(r2 == 0x219)) {
goto addr_10015bb8_38;
}
if (reinterpret_cast<unsigned char>(r3) & 0x8000) {
goto addr_10015bfc_23;
} else {
addr_10015bb8_38:
if (!reinterpret_cast<int1_t>(r2 == 0x3fe)) {
goto addr_10015bd4_42;
}
}
}
}
}
}
}
}
if (a5) {
goto addr_10015c00_24;
} else {
addr_10015bd4_42:
r0_22 = reinterpret_cast<void*>(r11_7 - 13);
PerformCallBack4(r0_22, r2, r3, a5, v23, v24, r0_22, r2, r3, a5, v25, v26);
}
goto addr_10015c7c_22;
}
void** g10015f0c = reinterpret_cast<void**>(81);
void** fun_10015d24(void** r0, void** r1, void** r2, void** r3) {
void* r11_5;
void** r4_6;
void** lr7;
void** r0_8;
void** r4_9;
int1_t z10;
void** r3_11;
void** r7_12;
void** r2_13;
void** r0_14;
void** r2_15;
void** r3_16;
void** r2_17;
void** lr18;
r11_5 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 40 + 40);
r4_6 = gffffc800;
lr7 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r4_6 + 8)) | 2);
*reinterpret_cast<void***>(r4_6 + 8) = lr7;
r0_8 = TlsGetValue(0, r1, r2, 0, 0, 0, r1);
r4_9 = r0_8;
z10 = reinterpret_cast<int1_t>(r4_9 == 1);
if (z10) {
r4_9 = reinterpret_cast<void**>(0);
}
if (z10) {
}
if (r4_9) {
r3_11 = *reinterpret_cast<void***>(r4_9 + 4);
r7_12 = g10015f0c;
if (r3_11 == r7_12)
goto addr_10015dd4_8;
} else {
lr7 = gffffc800;
__asm__("bic r0, r0, #2");
*reinterpret_cast<void***>(lr7 + 8) = *reinterpret_cast<void***>(lr7 + 8);
fun_100159b0(r0, r1, r2, r3, 0);
goto addr_10015ef8_10;
}
addr_10015eb8_12:
SetLastError(0x578, r1, r2, r3_11, 0x578, r1, r2, r3_11);
addr_10015ee0_13:
r2_13 = gffffc800;
__asm__("bic r3, r3, #2");
*reinterpret_cast<void***>(r2_13 + 8) = *reinterpret_cast<void***>(r2_13 + 8);
addr_10015ef8_10:
__asm__("ldmdb fp, {r4, r5, r6, r7, r8, sb, sl, fp, sp, lr}");
goto lr7;
addr_10015dd4_8:
r3_11 = *reinterpret_cast<void***>(r4_9 + 0xf0);
if (reinterpret_cast<unsigned char>(r3_11) & 2) {
goto addr_10015eb8_12;
} else {
r0_14 = fun_1001451c(r0, r1, r0, r1);
if (!r0_14) {
goto addr_10015ee0_13;
} else {
r2_15 = *reinterpret_cast<void***>(r0_14 + 0x6c);
r3_16 = *reinterpret_cast<void***>(r2_15 + 4);
if (r3_16 == r7_12) {
r3_16 = *reinterpret_cast<void***>(r2_15 + 0xf0);
if (!(reinterpret_cast<unsigned char>(r3_16) & 2)) {
if (r2_15 == r4_9) {
r2_17 = gffffc80c;
if (*reinterpret_cast<void***>(r0_14 + 0x90) == r2_17) {
fun_1005ebb4(r0_14 + 0x94, reinterpret_cast<int32_t>(r11_5) - 72, reinterpret_cast<int32_t>(r11_5) - 48);
lr18 = gffffc800;
__asm__("bic r0, r0, #2");
*reinterpret_cast<void***>(lr18 + 8) = *reinterpret_cast<void***>(lr18 + 8);
goto 0;
}
}
lr7 = gffffc800;
__asm__("bic r0, r0, #2");
*reinterpret_cast<void***>(lr7 + 8) = *reinterpret_cast<void***>(lr7 + 8);
fun_100159b0(r0, r1, r2, r3, 0);
goto addr_10015ef8_10;
}
}
}
}
SetLastError(0x578, r1, r2_15, r3_16, 0x578, r1, r2_15, r3_16);
goto addr_10015ee0_13;
}
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007ad24);
void** SendMessageW(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7) {
void** lr8;
int32_t* lr9;
int32_t r0_10;
void** r0_11;
void** r4_12;
void** r0_13;
lr8 = gffffc800;
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(lr8 + 0xffffffec)) & 1) {
lr9 = image_base_;
if (*lr9) {
r0_10 = fun_100158e8();
if (!r0_10) {
if (r1 != 8) {
if (r1 != 96) {
if (r1 != 7) {
if (r1 != 97) {
if (r0 != 0xffff) {
if (r0) {
r0_11 = fun_10015d24(r0, r1, r2, r3);
return r0_11;
}
}
}
}
}
}
}
}
}
r0_13 = fun_100159b0(r0, r1, r2, r3, r4_12);
return r0_13;
}
void** fun_1001626c(void** r0, void** r1, void** r2) {
void** r9_4;
int1_t z5;
int1_t z6;
int1_t z7;
void** r2_8;
void** r0_9;
void** r5_10;
void** r3_11;
void** r2_12;
void** r2_13;
int1_t z14;
void** r2_15;
void** r5_16;
void** r3_17;
void** r2_18;
r9_4 = r0;
if (z5) {
r0 = reinterpret_cast<void**>(0);
}
if (z6) {
__asm__("ldmdbeq fp, {r4, r5, r6, r7, r8, sb, fp, sp, lr}");
}
if (z7) {
return r0;
}
r2_8 = gffffc800;
*reinterpret_cast<void***>(r2_8 + 8) = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r2_8 + 8)) | 2);
r0_9 = fun_1001451c(r9_4, r1, r9_4, r1);
if (!(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r2 + 24)) & 2)) {
goto addr_100162cc_9;
}
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r2 + 24)) & 32) {
addr_100162cc_9:
r5_10 = gffffc800;
r3_11 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r0_9 + 48)) - reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(*reinterpret_cast<void***>(r0_9 + 4) + 48)) << 16 >> 16 | reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r0_9 + 52)) - reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(*reinterpret_cast<void***>(r0_9 + 4) + 52)) << 16);
__asm__("bic lr, r4, #2");
*reinterpret_cast<void***>(r5_10 + 8) = *reinterpret_cast<void***>(r0_9 + 52);
fun_10015d24(r9_4, 3, 0, r3_11);
r2_12 = gffffc800;
*reinterpret_cast<void***>(r2_12 + 8) = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r2_12 + 8)) | 2);
}
r2_13 = *reinterpret_cast<void***>(r2 + 24);
if (!(reinterpret_cast<unsigned char>(r2_13) & 1)) {
goto addr_1001633c_14;
}
if (reinterpret_cast<unsigned char>(r2_13) & 32) {
goto addr_1001633c_14;
}
if (reinterpret_cast<unsigned char>(r2_13) & 0x20000000) {
addr_1001633c_14:
if (!(reinterpret_cast<unsigned char>(r2_13) & 0x20000000)) {
r2_13 = reinterpret_cast<void**>(0);
goto addr_10016364_21;
} else {
z14 = reinterpret_cast<int1_t>(r2_13 == 0x60000013);
if (z14) {
r2_13 = reinterpret_cast<void**>(1);
}
if (z14) {
goto addr_10016364_21;
} else {
r2_13 = reinterpret_cast<void**>(2);
goto addr_10016364_21;
}
}
}
addr_100163b4_27:
r2_15 = gffffc800;
__asm__("bic r3, r3, #2");
*reinterpret_cast<void***>(r2_15 + 8) = *reinterpret_cast<void***>(r2_15 + 8);
__asm__("ldmdb fp, {r4, r5, r6, r7, r8, sb, fp, sp, lr}");
return 0;
addr_10016364_21:
r5_16 = gffffc800;
r3_17 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r0_9 + 56)) - reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r0_9 + 48)) << 16 >> 16 | reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r0_9 + 60)) - reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r0_9 + 52)) << 16);
__asm__("bic lr, r4, #2");
*reinterpret_cast<void***>(r5_16 + 8) = *reinterpret_cast<void***>(r0_9 + 60);
fun_10015d24(r9_4, 5, r2_13, r3_17);
r2_18 = gffffc800;
*reinterpret_cast<void***>(r2_18 + 8) = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r2_18 + 8)) | 2);
goto addr_100163b4_27;
}
int32_t g10016bfc = 0xf000afa4;
void OpenDeviceKey(void* r0, void** r1, void** r2, void** r3) {
int32_t r7_5;
r7_5 = g10016bfc;
goto r7_5;
}
int32_t g10017294 = 0xf000fe3c;
void** PerformCallBack4(void* r0, void** r1, void** r2, void** r3, void** a5, void** a6, ...) {
int32_t r4_7;
r4_7 = g10017294;
goto r4_7;
}
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007ad24);
/* (image base) */
int32_t** image_base_ = reinterpret_cast<int32_t**>(0x1007ad28);
int32_t g10017328 = 0xf000eff8;
void** EventModify(void** r0, void** r1, void** r2) {
void** r3_4;
int32_t* r3_5;
int32_t** r3_6;
int32_t r3_7;
r3_4 = gffffc800;
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r3_4 + 0xffffffec)) & 1) {
r3_5 = image_base_;
if (*r3_5) {
r3_6 = image_base_;
goto **r3_6;
}
}
r3_7 = g10017328;
goto r3_7;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g10017370 = reinterpret_cast<void**>(0xf4);
void** IsNamedEventSignaled(int32_t r0, int32_t r1) {
void** r3_3;
void** r3_4;
int1_t z5;
r3_3 = gffffc800;
r3_4 = *reinterpret_cast<void***>(r3_3 + 0xffffffec);
z5 = (reinterpret_cast<unsigned char>(r3_4) & 1) == 0;
if (!z5) {
r3_4 = image_base_;
}
if (!z5) {
r3_4 = *reinterpret_cast<void***>(r3_4);
}
if (!z5) {
z5 = r3_4 == 0;
}
if (!z5) {
r3_4 = *reinterpret_cast<void***>(r3_4 + 0x30c);
}
if (z5) {
r3_4 = g10017370;
}
goto r3_4;
}
struct s38 {
signed char[104] pad104;
int32_t f68;
};
/* (image base) */
struct s38** image_base_ = reinterpret_cast<struct s38**>(0x1007adb4);
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007ad94);
/* (image base) */
int32_t image_base_ = 0x10017378;
void** CloseHandle(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8) {
struct s38** r3_9;
int32_t* r3_10;
int32_t r3_11;
r3_9 = image_base_;
if (*r3_9) {
if (r0 != -1) {
if (reinterpret_cast<unsigned char>(r0) & 1) {
__asm__("bic r0, r0, #0xf");
goto (*r3_9)->f68;
}
}
}
r3_10 = image_base_;
r3_11 = *r3_10;
if (!r3_11) {
r3_11 = image_base_;
}
goto r3_11;
}
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007ad90);
/* (image base) */
int32_t image_base_ = 0x10017460;
void** CreateEventW(int32_t r0, void** r1, void** r2, void** r3) {
int32_t* lr5;
int32_t r4_6;
lr5 = image_base_;
r4_6 = *lr5;
if (!r4_6) {
r4_6 = image_base_;
}
goto r4_6;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g1001753c = reinterpret_cast<void**>(84);
void** OpenEventW(int32_t r0, int32_t r1, void** r2) {
void** r3_4;
void** r3_5;
int1_t z6;
r3_4 = gffffc800;
r3_5 = *reinterpret_cast<void***>(r3_4 + 0xffffffec);
z6 = (reinterpret_cast<unsigned char>(r3_5) & 1) == 0;
if (!z6) {
r3_5 = image_base_;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5);
}
if (!z6) {
z6 = r3_5 == 0;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5 + 0x2ac);
}
if (z6) {
r3_5 = g1001753c;
}
goto r3_5;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g100175c8 = reinterpret_cast<void**>(0xb8);
void Sleep(uint32_t r0, void** r1, void** r2, void** r3, void** a5, void** a6) {
void** r3_7;
void** r3_8;
int1_t z9;
r3_7 = gffffc800;
r3_8 = *reinterpret_cast<void***>(r3_7 + 0xffffffec);
z9 = (reinterpret_cast<unsigned char>(r3_8) & 1) == 0;
if (!z9) {
r3_8 = image_base_;
}
if (!z9) {
r3_8 = *reinterpret_cast<void***>(r3_8);
}
if (!z9) {
z9 = r3_8 == 0;
}
if (!z9) {
r3_8 = *reinterpret_cast<void***>(r3_8 + 0x148);
}
if (z9) {
r3_8 = g100175c8;
}
goto r3_8;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
int32_t g10017624 = 0xf000ff18;
void WaitForMultipleObjects(int32_t r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9) {
void** lr10;
void** lr11;
int1_t z12;
int32_t r4_13;
lr10 = gffffc800;
lr11 = *reinterpret_cast<void***>(lr10 + 0xffffffec);
z12 = (reinterpret_cast<unsigned char>(lr11) & 1) == 0;
if (!z12) {
lr11 = image_base_;
}
if (!z12) {
lr11 = *reinterpret_cast<void***>(lr11);
}
if (!z12) {
z12 = lr11 == 0;
}
if (!z12) {
r4_13 = *reinterpret_cast<int32_t*>(lr11 + 0xe8);
}
if (z12) {
r4_13 = g10017624;
}
goto r4_13;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
int32_t g10017698 = 0xf000ff18;
int32_t WaitForSingleObject(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11) {
void** r3_12;
void** r3_13;
int1_t z14;
int32_t r4_15;
r3_12 = gffffc800;
r3_13 = *reinterpret_cast<void***>(r3_12 + 0xffffffec);
z14 = (reinterpret_cast<unsigned char>(r3_13) & 1) == 0;
if (!z14) {
r3_13 = image_base_;
}
if (!z14) {
r3_13 = *reinterpret_cast<void***>(r3_13);
}
if (!z14) {
z14 = r3_13 == 0;
}
if (!z14) {
r4_15 = *reinterpret_cast<int32_t*>(r3_13 + 0xe8);
}
if (z14) {
r4_15 = g10017698;
}
goto r4_15;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g10017984 = reinterpret_cast<void**>(0xa0);
void** SetLastError(void** r0, void** r1, void** r2, void** r3, ...) {
void** r3_5;
void** r3_6;
int1_t z7;
r3_5 = gffffc800;
r3_6 = *reinterpret_cast<void***>(r3_5 + 0xffffffec);
z7 = (reinterpret_cast<unsigned char>(r3_6) & 1) == 0;
if (!z7) {
r3_6 = image_base_;
}
if (!z7) {
r3_6 = *reinterpret_cast<void***>(r3_6);
}
if (!z7) {
z7 = r3_6 == 0;
}
if (!z7) {
r3_6 = *reinterpret_cast<void***>(r3_6 + 0x160);
}
if (z7) {
r3_6 = g10017984;
}
goto r3_6;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g100179e0 = reinterpret_cast<void**>(0x9c);
void** GetLastError(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23, void** a24, void** a25, void** a26, void** a27, void** a28, void** a29, void** a30, void** a31) {
void** r3_32;
void** r3_33;
int1_t z34;
r3_32 = gffffc800;
r3_33 = *reinterpret_cast<void***>(r3_32 + 0xffffffec);
z34 = (reinterpret_cast<unsigned char>(r3_33) & 1) == 0;
if (!z34) {
r3_33 = image_base_;
}
if (!z34) {
r3_33 = *reinterpret_cast<void***>(r3_33);
}
if (!z34) {
z34 = r3_33 == 0;
}
if (!z34) {
r3_33 = *reinterpret_cast<void***>(r3_33 + 0x164);
}
if (z34) {
r3_33 = g100179e0;
}
goto r3_33;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g10017adc = reinterpret_cast<void**>(8);
void** IsBadCodePtr(void** r0, void** r1) {
void** r3_3;
void** r3_4;
int1_t z5;
r3_3 = gffffc800;
r3_4 = *reinterpret_cast<void***>(r3_3 + 0xffffffec);
z5 = (reinterpret_cast<unsigned char>(r3_4) & 1) == 0;
if (!z5) {
r3_4 = image_base_;
}
if (!z5) {
r3_4 = *reinterpret_cast<void***>(r3_4);
}
if (!z5) {
z5 = r3_4 == 0;
}
if (!z5) {
r3_4 = *reinterpret_cast<void***>(r3_4 + 0xf8);
}
if (z5) {
r3_4 = g10017adc;
}
goto r3_4;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g10017bac = reinterpret_cast<void**>(8);
void** IsBadWritePtr(void** r0, void** r1) {
void** r3_3;
void** r3_4;
int1_t z5;
r3_3 = gffffc800;
r3_4 = *reinterpret_cast<void***>(r3_3 + 0xffffffec);
z5 = (reinterpret_cast<unsigned char>(r3_4) & 1) == 0;
if (!z5) {
r3_4 = image_base_;
}
if (!z5) {
r3_4 = *reinterpret_cast<void***>(r3_4);
}
if (!z5) {
z5 = r3_4 == 0;
}
if (!z5) {
r3_4 = *reinterpret_cast<void***>(r3_4 + 0xf8);
}
if (z5) {
r3_4 = g10017bac;
}
goto r3_4;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g10017c08 = reinterpret_cast<void**>(0xf4);
void** VirtualAlloc(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7) {
void** lr8;
void** lr9;
int1_t z10;
void** r4_11;
lr8 = gffffc800;
lr9 = *reinterpret_cast<void***>(lr8 + 0xffffffec);
z10 = (reinterpret_cast<unsigned char>(lr9) & 1) == 0;
if (!z10) {
lr9 = image_base_;
}
if (!z10) {
lr9 = *reinterpret_cast<void***>(lr9);
}
if (!z10) {
z10 = lr9 == 0;
}
if (!z10) {
r4_11 = *reinterpret_cast<void***>(lr9 + 12);
}
if (z10) {
r4_11 = g10017c08;
}
goto r4_11;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g10017c64 = reinterpret_cast<void**>(0xf0);
void VirtualFree(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7) {
void** r3_8;
void** r3_9;
int1_t z10;
r3_8 = gffffc800;
r3_9 = *reinterpret_cast<void***>(r3_8 + 0xffffffec);
z10 = (reinterpret_cast<unsigned char>(r3_9) & 1) == 0;
if (!z10) {
r3_9 = image_base_;
}
if (!z10) {
r3_9 = *reinterpret_cast<void***>(r3_9);
}
if (!z10) {
z10 = r3_9 == 0;
}
if (!z10) {
r3_9 = *reinterpret_cast<void***>(r3_9 + 16);
}
if (z10) {
r3_9 = g10017c64;
}
goto r3_9;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g10017d1c = reinterpret_cast<void**>(0xe8);
int32_t VirtualQuery(uint32_t r0, void* r1, int32_t r2) {
void** r3_4;
void** r3_5;
int1_t z6;
r3_4 = gffffc800;
r3_5 = *reinterpret_cast<void***>(r3_4 + 0xffffffec);
z6 = (reinterpret_cast<unsigned char>(r3_5) & 1) == 0;
if (!z6) {
r3_5 = image_base_;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5);
}
if (!z6) {
z6 = r3_5 == 0;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5 + 24);
}
if (z6) {
r3_5 = g10017d1c;
}
goto r3_5;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g10017d78 = reinterpret_cast<void**>(20);
void CeVirtualSharedAlloc(int32_t r0) {
void** r3_2;
void** r3_3;
int1_t z4;
r3_2 = gffffc800;
r3_3 = *reinterpret_cast<void***>(r3_2 + 0xffffffec);
z4 = (reinterpret_cast<unsigned char>(r3_3) & 1) == 0;
if (!z4) {
r3_3 = image_base_;
}
if (!z4) {
r3_3 = *reinterpret_cast<void***>(r3_3);
}
if (!z4) {
z4 = r3_3 == 0;
}
if (!z4) {
r3_3 = *reinterpret_cast<void***>(r3_3 + 0x2ec);
}
if (z4) {
r3_3 = g10017d78;
}
goto r3_3;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g1001819c = reinterpret_cast<void**>(24);
void fun_10018148(void** r0, void** r1, void** r2) {
void** r3_4;
void** r3_5;
int1_t z6;
r3_4 = gffffc800;
r3_5 = *reinterpret_cast<void***>(r3_4 + 0xffffffec);
z6 = (reinterpret_cast<unsigned char>(r3_5) & 1) == 0;
if (!z6) {
r3_5 = image_base_;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5);
}
if (!z6) {
z6 = r3_5 == 0;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5 + 0x2e8);
}
if (z6) {
r3_5 = g1001819c;
}
goto r3_5;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g100181f8 = reinterpret_cast<void**>(28);
int32_t fun_100181a4(void** r0, void** r1) {
void** r3_3;
void** r3_4;
int1_t z5;
r3_3 = gffffc800;
r3_4 = *reinterpret_cast<void***>(r3_3 + 0xffffffec);
z5 = (reinterpret_cast<unsigned char>(r3_4) & 1) == 0;
if (!z5) {
r3_4 = image_base_;
}
if (!z5) {
r3_4 = *reinterpret_cast<void***>(r3_4);
}
if (!z5) {
z5 = r3_4 == 0;
}
if (!z5) {
r3_4 = *reinterpret_cast<void***>(r3_4 + 0x2e4);
}
if (z5) {
r3_4 = g100181f8;
}
goto r3_4;
}
void** fun_1006d018(void** r0, void** r1, void** r2);
void** LoadLibraryW(void** r0, void** r1, void** r2, void** r3, ...) {
void** r0_5;
r0_5 = fun_1006d018(r0, 0, 0);
return r0_5;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g100183c8 = reinterpret_cast<void**>(0xd8);
void** GetProcAddressW(void** r0, void** r1, void** r2, ...) {
void** r3_4;
void** r3_5;
int1_t z6;
r3_4 = gffffc800;
r3_5 = *reinterpret_cast<void***>(r3_4 + 0xffffffec);
z6 = (reinterpret_cast<unsigned char>(r3_5) & 1) == 0;
if (!z6) {
r3_5 = image_base_;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5);
}
if (!z6) {
z6 = r3_5 == 0;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5 + 40);
}
if (z6) {
r3_5 = g100183c8;
}
goto r3_5;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g10018480 = reinterpret_cast<void**>(0x9c);
void** FindResourceW(void** r0, void** r1, void** r2) {
void** r3_4;
void** r3_5;
int1_t z6;
r3_4 = gffffc800;
r3_5 = *reinterpret_cast<void***>(r3_4 + 0xffffffec);
z6 = (reinterpret_cast<unsigned char>(r3_5) & 1) == 0;
if (!z6) {
r3_5 = image_base_;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5);
}
if (!z6) {
z6 = r3_5 == 0;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5 + 100);
}
if (z6) {
r3_5 = g10018480;
}
goto r3_5;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g100184dc = reinterpret_cast<void**>(0x98);
void** LoadResource(void** r0, void** r1, void** r2) {
void** r3_4;
void** r3_5;
int1_t z6;
r3_4 = gffffc800;
r3_5 = *reinterpret_cast<void***>(r3_4 + 0xffffffec);
z6 = (reinterpret_cast<unsigned char>(r3_5) & 1) == 0;
if (!z6) {
r3_5 = image_base_;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5);
}
if (!z6) {
z6 = r3_5 == 0;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5 + 0x68);
}
if (z6) {
r3_5 = g100184dc;
}
goto r3_5;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
int32_t g10018538 = 0xf000fd3c;
void** LoadStringW(void** r0, void** r1, void** r2, void** r3) {
void** lr5;
void** lr6;
int1_t z7;
int32_t r4_8;
lr5 = gffffc800;
lr6 = *reinterpret_cast<void***>(lr5 + 0xffffffec);
z7 = (reinterpret_cast<unsigned char>(lr6) & 1) == 0;
if (!z7) {
lr6 = image_base_;
}
if (!z7) {
lr6 = *reinterpret_cast<void***>(lr6);
}
if (!z7) {
z7 = lr6 == 0;
}
if (!z7) {
r4_8 = *reinterpret_cast<int32_t*>(lr6 + 0x2c4);
}
if (z7) {
r4_8 = g10018538;
}
goto r4_8;
}
struct s39 {
int32_t f0;
int32_t f4;
int32_t f8;
int32_t fc;
int32_t f10;
};
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g100186a8 = reinterpret_cast<void**>(0x74);
struct s39* CreateLocaleView(int32_t r0, int32_t r1, int32_t r2) {
void** r3_4;
void** r3_5;
int1_t z6;
r3_4 = gffffc800;
r3_5 = *reinterpret_cast<void***>(r3_4 + 0xffffffec);
z6 = (reinterpret_cast<unsigned char>(r3_5) & 1) == 0;
if (!z6) {
r3_5 = image_base_;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5);
}
if (!z6) {
z6 = r3_5 == 0;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5 + 0x28c);
}
if (z6) {
r3_5 = g100186a8;
}
goto r3_5;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g10018760 = reinterpret_cast<void**>(0xcc);
uint32_t GetTickCount() {
void** r3_1;
void** r3_2;
int1_t z3;
r3_1 = gffffc800;
r3_2 = *reinterpret_cast<void***>(r3_1 + 0xffffffec);
z3 = (reinterpret_cast<unsigned char>(r3_2) & 1) == 0;
if (!z3) {
r3_2 = image_base_;
}
if (!z3) {
r3_2 = *reinterpret_cast<void***>(r3_2);
}
if (!z3) {
z3 = r3_2 == 0;
}
if (!z3) {
r3_2 = *reinterpret_cast<void***>(r3_2 + 52);
}
if (z3) {
r3_2 = g10018760;
}
goto r3_2;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g100187bc = reinterpret_cast<void**>(16);
uint32_t GetProcessVersion(void** r0) {
void** r3_2;
void** r3_3;
int1_t z4;
r3_2 = gffffc800;
r3_3 = *reinterpret_cast<void***>(r3_2 + 0xffffffec);
z4 = (reinterpret_cast<unsigned char>(r3_3) & 1) == 0;
if (!z4) {
r3_3 = image_base_;
}
if (!z4) {
r3_3 = *reinterpret_cast<void***>(r3_3);
}
if (!z4) {
z4 = r3_3 == 0;
}
if (!z4) {
r3_3 = *reinterpret_cast<void***>(r3_3 + 0x1f0);
}
if (z4) {
r3_3 = g100187bc;
}
goto r3_3;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g100188d0 = reinterpret_cast<void**>(8);
void QueryPerformanceCounter(void* r0) {
void** r3_2;
void** r3_3;
int1_t z4;
r3_2 = gffffc800;
r3_3 = *reinterpret_cast<void***>(r3_2 + 0xffffffec);
z4 = (reinterpret_cast<unsigned char>(r3_3) & 1) == 0;
if (!z4) {
r3_3 = image_base_;
}
if (!z4) {
r3_3 = *reinterpret_cast<void***>(r3_3);
}
if (!z4) {
z4 = r3_3 == 0;
}
if (!z4) {
r3_3 = *reinterpret_cast<void***>(r3_3 + 0x1f8);
}
if (z4) {
r3_3 = g100188d0;
}
goto r3_3;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g10018a94 = reinterpret_cast<void**>(0xc8);
void OutputDebugStringW(void** r0, void** r1, void** r2) {
void** r3_4;
void** r3_5;
int1_t z6;
r3_4 = gffffc800;
r3_5 = *reinterpret_cast<void***>(r3_4 + 0xffffffec);
z6 = (reinterpret_cast<unsigned char>(r3_5) & 1) == 0;
if (!z6) {
r3_5 = image_base_;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5);
}
if (!z6) {
z6 = r3_5 == 0;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5 + 56);
}
if (z6) {
r3_5 = g10018a94;
}
goto r3_5;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g10018ce8 = reinterpret_cast<void**>(0x84);
void** CreateFileMappingW(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7) {
void** lr8;
void** lr9;
int1_t z10;
void** r4_11;
lr8 = gffffc800;
lr9 = *reinterpret_cast<void***>(lr8 + 0xffffffec);
z10 = (reinterpret_cast<unsigned char>(lr9) & 1) == 0;
if (!z10) {
lr9 = image_base_;
}
if (!z10) {
lr9 = *reinterpret_cast<void***>(lr9);
}
if (!z10) {
z10 = lr9 == 0;
}
if (!z10) {
r4_11 = *reinterpret_cast<void***>(lr9 + 0x17c);
}
if (z10) {
r4_11 = g10018ce8;
}
goto r4_11;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g10018d74 = reinterpret_cast<void**>(0x78);
void** CreateFileForMappingW(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7) {
void** lr8;
void** lr9;
int1_t z10;
void** r4_11;
lr8 = gffffc800;
lr9 = *reinterpret_cast<void***>(lr8 + 0xffffffec);
z10 = (reinterpret_cast<unsigned char>(lr9) & 1) == 0;
if (!z10) {
lr9 = image_base_;
}
if (!z10) {
lr9 = *reinterpret_cast<void***>(lr9);
}
if (!z10) {
z10 = lr9 == 0;
}
if (!z10) {
r4_11 = *reinterpret_cast<void***>(lr9 + 0x188);
}
if (z10) {
r4_11 = g10018d74;
}
goto r4_11;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g10018dd0 = reinterpret_cast<void**>(0x80);
void UnmapViewOfFile(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11) {
void** r3_12;
void** r3_13;
int1_t z14;
r3_12 = gffffc800;
r3_13 = *reinterpret_cast<void***>(r3_12 + 0xffffffec);
z14 = (reinterpret_cast<unsigned char>(r3_13) & 1) == 0;
if (!z14) {
r3_13 = image_base_;
}
if (!z14) {
r3_13 = *reinterpret_cast<void***>(r3_13);
}
if (!z14) {
z14 = r3_13 == 0;
}
if (!z14) {
r3_13 = *reinterpret_cast<void***>(r3_13 + 0x180);
}
if (z14) {
r3_13 = g10018dd0;
}
goto r3_13;
}
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007ad24);
struct s40 {
signed char[12] pad12;
int32_t fc;
};
/* (image base) */
struct s40** image_base_ = reinterpret_cast<struct s40**>(0x1007ad28);
int32_t g10018f1c = 0xf000c7f8;
void** MapViewOfFile(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7) {
void** lr8;
int32_t* lr9;
struct s40** lr10;
struct s40* lr11;
int32_t r4_12;
lr8 = gffffc800;
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(lr8 + 0xffffffec)) & 1) {
lr9 = image_base_;
if (*lr9) {
lr10 = image_base_;
lr11 = *lr10;
goto lr11->fc;
}
}
r4_12 = g10018f1c;
goto r4_12;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g10018f9c = reinterpret_cast<void**>(0x74);
int32_t KernelIoControl(int32_t r0, void** r1, void** r2, void** r3, void** a5, void** a6, int32_t a7) {
void** lr8;
void** lr9;
int1_t z10;
void** r4_11;
lr8 = gffffc800;
lr9 = *reinterpret_cast<void***>(lr8 + 0xffffffec);
z10 = (reinterpret_cast<unsigned char>(lr9) & 1) == 0;
if (!z10) {
lr9 = image_base_;
}
if (!z10) {
lr9 = *reinterpret_cast<void***>(lr9);
}
if (!z10) {
z10 = lr9 == 0;
}
if (!z10) {
r4_11 = *reinterpret_cast<void***>(lr9 + 0x18c);
}
if (z10) {
r4_11 = g10018f9c;
}
goto r4_11;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
int32_t g10019028 = 0xf000fd58;
void KernelLibIoControl(int32_t r0, void** r1, void** r2, int32_t r3, void** a5, void** a6, void** a7) {
void** lr8;
void** lr9;
int1_t z10;
int32_t r4_11;
lr8 = gffffc800;
lr9 = *reinterpret_cast<void***>(lr8 + 0xffffffec);
z10 = (reinterpret_cast<unsigned char>(lr9) & 1) == 0;
if (!z10) {
lr9 = image_base_;
}
if (!z10) {
lr9 = *reinterpret_cast<void***>(lr9);
}
if (!z10) {
z10 = lr9 == 0;
}
if (!z10) {
r4_11 = *reinterpret_cast<int32_t*>(lr9 + 0x2a8);
}
if (z10) {
r4_11 = g10019028;
}
goto r4_11;
}
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007ad24);
struct s41 {
signed char[4] pad4;
int32_t f4;
};
/* (image base) */
struct s41** image_base_ = reinterpret_cast<struct s41**>(0x1007ad28);
int32_t g1001915c = 0xf000ebf8;
void ReleaseMutex(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15) {
void** r3_16;
int32_t* r3_17;
struct s41** r3_18;
int32_t r3_19;
r3_16 = gffffc800;
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r3_16 + 0xffffffec)) & 1) {
r3_17 = image_base_;
if (*r3_17) {
r3_18 = image_base_;
goto (*r3_18)->f4;
}
}
r3_19 = g1001915c;
goto r3_19;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g100191bc = reinterpret_cast<void**>(0xc0);
void** CreateMutexW(int32_t r0, void** r1, void** r2) {
void** r3_4;
void** r3_5;
int1_t z6;
r3_4 = gffffc800;
r3_5 = *reinterpret_cast<void***>(r3_4 + 0xffffffec);
z6 = (reinterpret_cast<unsigned char>(r3_5) & 1) == 0;
if (!z6) {
r3_5 = image_base_;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5);
}
if (!z6) {
z6 = r3_5 == 0;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5 + 0x140);
}
if (z6) {
r3_5 = g100191bc;
}
goto r3_5;
}
void** fun_100193d0(void** r0) {
uint32_t r3_2;
int1_t z3;
r3_2 = reinterpret_cast<unsigned char>(r0) & 3;
if (!r3_2) {
return 0x80000000;
} else {
if (r3_2 == 1) {
return 0x40000000;
} else {
z3 = r3_2 == 2;
if (!z3) {
r0 = reinterpret_cast<void**>(0);
}
if (z3) {
r0 = reinterpret_cast<void**>(0xc0000000);
}
return r0;
}
}
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g10019720 = reinterpret_cast<void**>(0x90);
void GetRealTime(void* r0) {
void** r3_2;
void** r3_3;
int1_t z4;
r3_2 = gffffc800;
r3_3 = *reinterpret_cast<void***>(r3_2 + 0xffffffec);
z4 = (reinterpret_cast<unsigned char>(r3_3) & 1) == 0;
if (!z4) {
r3_3 = image_base_;
}
if (!z4) {
r3_3 = *reinterpret_cast<void***>(r3_3);
}
if (!z4) {
z4 = r3_3 == 0;
}
if (!z4) {
r3_3 = *reinterpret_cast<void***>(r3_3 + 0x70);
}
if (z4) {
r3_3 = g10019720;
}
goto r3_3;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g1001977c = reinterpret_cast<void**>(0x8c);
int32_t SetRealTime(void* r0, void** r1, void** r2) {
void** r3_4;
void** r3_5;
int1_t z6;
r3_4 = gffffc800;
r3_5 = *reinterpret_cast<void***>(r3_4 + 0xffffffec);
z6 = (reinterpret_cast<unsigned char>(r3_5) & 1) == 0;
if (!z6) {
r3_5 = image_base_;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5);
}
if (!z6) {
z6 = r3_5 == 0;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5 + 0x74);
}
if (z6) {
r3_5 = g1001977c;
}
goto r3_5;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g100197d8 = reinterpret_cast<void**>(0x88);
void ProcessDetachAllDLLs(void** r0, void** r1, void** r2) {
void** r3_4;
void** r3_5;
int1_t z6;
r3_4 = gffffc800;
r3_5 = *reinterpret_cast<void***>(r3_4 + 0xffffffec);
z6 = (reinterpret_cast<unsigned char>(r3_5) & 1) == 0;
if (!z6) {
r3_5 = image_base_;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5);
}
if (!z6) {
z6 = r3_5 == 0;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5 + 0x78);
}
if (z6) {
r3_5 = g100197d8;
}
goto r3_5;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g100198fc = reinterpret_cast<void**>(0x80);
void GetRomFileInfo(int32_t r0, int32_t r1, void* r2) {
void** r3_4;
void** r3_5;
int1_t z6;
r3_4 = gffffc800;
r3_5 = *reinterpret_cast<void***>(r3_4 + 0xffffffec);
z6 = (reinterpret_cast<unsigned char>(r3_5) & 1) == 0;
if (!z6) {
r3_5 = image_base_;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5);
}
if (!z6) {
z6 = r3_5 == 0;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5 + 0x80);
}
if (z6) {
r3_5 = g100198fc;
}
goto r3_5;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g100199bc = reinterpret_cast<void**>(0x78);
void CacheRangeFlush(int32_t r0, int32_t r1, uint32_t r2) {
void** r3_4;
void** r3_5;
int1_t z6;
r3_4 = gffffc800;
r3_5 = *reinterpret_cast<void***>(r3_4 + 0xffffffec);
z6 = (reinterpret_cast<unsigned char>(r3_5) & 1) == 0;
if (!z6) {
r3_5 = image_base_;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5);
}
if (!z6) {
z6 = r3_5 == 0;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5 + 0x88);
}
if (z6) {
r3_5 = g100199bc;
}
goto r3_5;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g10019d80 = reinterpret_cast<void**>(80);
void RefreshKernelAlarm(void** r0, void** r1, void** r2) {
void** r3_4;
void** r3_5;
int1_t z6;
r3_4 = gffffc800;
r3_5 = *reinterpret_cast<void***>(r3_4 + 0xffffffec);
z6 = (reinterpret_cast<unsigned char>(r3_5) & 1) == 0;
if (!z6) {
r3_5 = image_base_;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5);
}
if (!z6) {
z6 = r3_5 == 0;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5 + 0xb0);
}
if (z6) {
r3_5 = g10019d80;
}
goto r3_5;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g10019dd4 = reinterpret_cast<void**>(72);
void CloseProcOE(int32_t r0, void** r1, void** r2) {
void** r3_4;
void** r3_5;
int1_t z6;
r3_4 = gffffc800;
r3_5 = *reinterpret_cast<void***>(r3_4 + 0xffffffec);
z6 = (reinterpret_cast<unsigned char>(r3_5) & 1) == 0;
if (!z6) {
r3_5 = image_base_;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5);
}
if (!z6) {
z6 = r3_5 == 0;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5 + 0xb8);
}
if (z6) {
r3_5 = g10019dd4;
}
goto r3_5;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g1001a0c4 = reinterpret_cast<void**>(32);
void TakeCritSec(int32_t r0) {
void** r3_2;
void** r3_3;
int1_t z4;
r3_2 = gffffc800;
r3_3 = *reinterpret_cast<void***>(r3_2 + 0xffffffec);
z4 = (reinterpret_cast<unsigned char>(r3_3) & 1) == 0;
if (!z4) {
r3_3 = image_base_;
}
if (!z4) {
r3_3 = *reinterpret_cast<void***>(r3_3);
}
if (!z4) {
z4 = r3_3 == 0;
}
if (!z4) {
r3_3 = *reinterpret_cast<void***>(r3_3 + 0xe0);
}
if (z4) {
r3_3 = g1001a0c4;
}
goto r3_3;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g1001a118 = reinterpret_cast<void**>(28);
void LeaveCritSec() {
void** r3_1;
void** r3_2;
int1_t z3;
r3_1 = gffffc800;
r3_2 = *reinterpret_cast<void***>(r3_1 + 0xffffffec);
z3 = (reinterpret_cast<unsigned char>(r3_2) & 1) == 0;
if (!z3) {
r3_2 = image_base_;
}
if (!z3) {
r3_2 = *reinterpret_cast<void***>(r3_2);
}
if (!z3) {
z3 = r3_2 == 0;
}
if (!z3) {
r3_2 = *reinterpret_cast<void***>(r3_2 + 0xe4);
}
if (z3) {
r3_2 = g1001a118;
}
goto r3_2;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g1001a174 = reinterpret_cast<void**>(20);
void** MapPtrToProcess(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14) {
void** r3_15;
void** r3_16;
int1_t z17;
r3_15 = gffffc800;
r3_16 = *reinterpret_cast<void***>(r3_15 + 0xffffffec);
z17 = (reinterpret_cast<unsigned char>(r3_16) & 1) == 0;
if (!z17) {
r3_16 = image_base_;
}
if (!z17) {
r3_16 = *reinterpret_cast<void***>(r3_16);
}
if (!z17) {
z17 = r3_16 == 0;
}
if (!z17) {
r3_16 = *reinterpret_cast<void***>(r3_16 + 0xec);
}
if (z17) {
r3_16 = g1001a174;
}
goto r3_16;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g1001a1d0 = reinterpret_cast<void**>(16);
void** MapPtrUnsecure(void** r0, void** r1, void** r2) {
void** r3_4;
void** r3_5;
int1_t z6;
r3_4 = gffffc800;
r3_5 = *reinterpret_cast<void***>(r3_4 + 0xffffffec);
z6 = (reinterpret_cast<unsigned char>(r3_5) & 1) == 0;
if (!z6) {
r3_5 = image_base_;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5);
}
if (!z6) {
z6 = r3_5 == 0;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5 + 0xf0);
}
if (z6) {
r3_5 = g1001a1d0;
}
goto r3_5;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g1001a2e4 = reinterpret_cast<void**>(12);
int32_t GetProcFromPtr(void** r0, void** r1) {
void** r3_3;
void** r3_4;
int1_t z5;
r3_3 = gffffc800;
r3_4 = *reinterpret_cast<void***>(r3_3 + 0xffffffec);
z5 = (reinterpret_cast<unsigned char>(r3_4) & 1) == 0;
if (!z5) {
r3_4 = image_base_;
}
if (!z5) {
r3_4 = *reinterpret_cast<void***>(r3_4);
}
if (!z5) {
z5 = r3_4 == 0;
}
if (!z5) {
r3_4 = *reinterpret_cast<void***>(r3_4 + 0xf4);
}
if (z5) {
r3_4 = g1001a2e4;
}
goto r3_4;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g1001a340 = reinterpret_cast<void**>(8);
int32_t IsBadPtr(int32_t r0, void** r1, int32_t r2) {
void** r3_4;
void** r3_5;
int1_t z6;
r3_4 = gffffc800;
r3_5 = *reinterpret_cast<void***>(r3_4 + 0xffffffec);
z6 = (reinterpret_cast<unsigned char>(r3_5) & 1) == 0;
if (!z6) {
r3_5 = image_base_;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5);
}
if (!z6) {
z6 = r3_5 == 0;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5 + 0xf8);
}
if (z6) {
r3_5 = g1001a340;
}
goto r3_5;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g1001a454 = reinterpret_cast<void**>(0xfc);
uint32_t OtherThreadsRunning(uint32_t r0, void** r1, void** r2) {
void** r3_4;
void** r3_5;
int1_t z6;
r3_4 = gffffc800;
r3_5 = *reinterpret_cast<void***>(r3_4 + 0xffffffec);
z6 = (reinterpret_cast<unsigned char>(r3_5) & 1) == 0;
if (!z6) {
r3_5 = image_base_;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5);
}
if (!z6) {
z6 = r3_5 == 0;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5 + 0x104);
}
if (z6) {
r3_5 = g1001a454;
}
goto r3_5;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g1001a4a8 = reinterpret_cast<void**>(0xf8);
void KillAllOtherThreads(uint32_t r0, void** r1, void** r2) {
void** r3_4;
void** r3_5;
int1_t z6;
r3_4 = gffffc800;
r3_5 = *reinterpret_cast<void***>(r3_4 + 0xffffffec);
z6 = (reinterpret_cast<unsigned char>(r3_5) & 1) == 0;
if (!z6) {
r3_5 = image_base_;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5);
}
if (!z6) {
z6 = r3_5 == 0;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5 + 0x108);
}
if (z6) {
r3_5 = g1001a4a8;
}
goto r3_5;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g1001a504 = reinterpret_cast<void**>(0xf4);
void** GetOwnerProcess(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23, void** a24, void** a25, void** a26, void** a27, void** a28, void** a29, void** a30, void** a31, void** a32, void** a33, void** a34) {
void** r3_35;
void** r3_36;
int1_t z37;
r3_35 = gffffc800;
r3_36 = *reinterpret_cast<void***>(r3_35 + 0xffffffec);
z37 = (reinterpret_cast<unsigned char>(r3_36) & 1) == 0;
if (!z37) {
r3_36 = image_base_;
}
if (!z37) {
r3_36 = *reinterpret_cast<void***>(r3_36);
}
if (!z37) {
z37 = r3_36 == 0;
}
if (!z37) {
r3_36 = *reinterpret_cast<void***>(r3_36 + 0x10c);
}
if (z37) {
r3_36 = g1001a504;
}
goto r3_36;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g1001a560 = reinterpret_cast<void**>(0xf0);
void** GetCallerProcess() {
void** r3_1;
void** r3_2;
int1_t z3;
r3_1 = gffffc800;
r3_2 = *reinterpret_cast<void***>(r3_1 + 0xffffffec);
z3 = (reinterpret_cast<unsigned char>(r3_2) & 1) == 0;
if (!z3) {
r3_2 = image_base_;
}
if (!z3) {
r3_2 = *reinterpret_cast<void***>(r3_2);
}
if (!z3) {
z3 = r3_2 == 0;
}
if (!z3) {
r3_2 = *reinterpret_cast<void***>(r3_2 + 0x110);
}
if (z3) {
r3_2 = g1001a560;
}
goto r3_2;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g1001a674 = reinterpret_cast<void**>(0xe4);
uint32_t IsPrimaryThread() {
void** r3_1;
void** r3_2;
int1_t z3;
r3_1 = gffffc800;
r3_2 = *reinterpret_cast<void***>(r3_1 + 0xffffffec);
z3 = (reinterpret_cast<unsigned char>(r3_2) & 1) == 0;
if (!z3) {
r3_2 = image_base_;
}
if (!z3) {
r3_2 = *reinterpret_cast<void***>(r3_2);
}
if (!z3) {
z3 = r3_2 == 0;
}
if (!z3) {
r3_2 = *reinterpret_cast<void***>(r3_2 + 0x11c);
}
if (z3) {
r3_2 = g1001a674;
}
goto r3_2;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g1001a6d0 = reinterpret_cast<void**>(0xe0);
int32_t SetProcPermissions(int32_t r0) {
void** r3_2;
void** r3_3;
int1_t z4;
r3_2 = gffffc800;
r3_3 = *reinterpret_cast<void***>(r3_2 + 0xffffffec);
z4 = (reinterpret_cast<unsigned char>(r3_3) & 1) == 0;
if (!z4) {
r3_3 = image_base_;
}
if (!z4) {
r3_3 = *reinterpret_cast<void***>(r3_3);
}
if (!z4) {
z4 = r3_3 == 0;
}
if (!z4) {
r3_3 = *reinterpret_cast<void***>(r3_3 + 0x120);
}
if (z4) {
r3_3 = g1001a6d0;
}
goto r3_3;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g1001a788 = reinterpret_cast<void**>(0xac);
void** CeGetCurrentTrust() {
void** r3_1;
void** r3_2;
int1_t z3;
r3_1 = gffffc800;
r3_2 = *reinterpret_cast<void***>(r3_1 + 0xffffffec);
z3 = (reinterpret_cast<unsigned char>(r3_2) & 1) == 0;
if (!z3) {
r3_2 = image_base_;
}
if (!z3) {
r3_2 = *reinterpret_cast<void***>(r3_2);
}
if (!z3) {
z3 = r3_2 == 0;
}
if (!z3) {
r3_2 = *reinterpret_cast<void***>(r3_2 + 0x154);
}
if (z3) {
r3_2 = g1001a788;
}
goto r3_2;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g1001a838 = reinterpret_cast<void**>(0xd0);
void SetTimeZoneBias(void* r0, void* r1) {
void** r3_3;
void** r3_4;
int1_t z5;
r3_3 = gffffc800;
r3_4 = *reinterpret_cast<void***>(r3_3 + 0xffffffec);
z5 = (reinterpret_cast<unsigned char>(r3_4) & 1) == 0;
if (!z5) {
r3_4 = image_base_;
}
if (!z5) {
r3_4 = *reinterpret_cast<void***>(r3_4);
}
if (!z5) {
z5 = r3_4 == 0;
}
if (!z5) {
r3_4 = *reinterpret_cast<void***>(r3_4 + 0x130);
}
if (z5) {
r3_4 = g1001a838;
}
goto r3_4;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g1001a8e8 = reinterpret_cast<void**>(0xc8);
void** CreateCrit(void** r0, void** r1) {
void** r3_3;
void** r3_4;
int1_t z5;
r3_3 = gffffc800;
r3_4 = *reinterpret_cast<void***>(r3_3 + 0xffffffec);
z5 = (reinterpret_cast<unsigned char>(r3_4) & 1) == 0;
if (!z5) {
r3_4 = image_base_;
}
if (!z5) {
r3_4 = *reinterpret_cast<void***>(r3_4);
}
if (!z5) {
z5 = r3_4 == 0;
}
if (!z5) {
r3_4 = *reinterpret_cast<void***>(r3_4 + 0x138);
}
if (z5) {
r3_4 = g1001a8e8;
}
goto r3_4;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g1001a93c = reinterpret_cast<void**>(0xc4);
void PowerOffSystem() {
void** r3_1;
void** r3_2;
int1_t z3;
r3_1 = gffffc800;
r3_2 = *reinterpret_cast<void***>(r3_1 + 0xffffffec);
z3 = (reinterpret_cast<unsigned char>(r3_2) & 1) == 0;
if (!z3) {
r3_2 = image_base_;
}
if (!z3) {
r3_2 = *reinterpret_cast<void***>(r3_2);
}
if (!z3) {
z3 = r3_2 == 0;
}
if (!z3) {
r3_2 = *reinterpret_cast<void***>(r3_2 + 0x13c);
}
if (z3) {
r3_2 = g1001a93c;
}
goto r3_2;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g1001aaa4 = reinterpret_cast<void**>(0xa4);
void NKTerminateThread(void** r0, void** r1, void** r2) {
void** r3_4;
void** r3_5;
int1_t z6;
r3_4 = gffffc800;
r3_5 = *reinterpret_cast<void***>(r3_4 + 0xffffffec);
z6 = (reinterpret_cast<unsigned char>(r3_5) & 1) == 0;
if (!z6) {
r3_5 = image_base_;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5);
}
if (!z6) {
z6 = r3_5 == 0;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5 + 0x15c);
}
if (z6) {
r3_5 = g1001aaa4;
}
goto r3_5;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g1001ab00 = reinterpret_cast<void**>(0x98);
void** GetProcName(void** r0, void** r1, void** r2, void** r3) {
void** r3_5;
void** r3_6;
int1_t z7;
r3_5 = gffffc800;
r3_6 = *reinterpret_cast<void***>(r3_5 + 0xffffffec);
z7 = (reinterpret_cast<unsigned char>(r3_6) & 1) == 0;
if (!z7) {
r3_6 = image_base_;
}
if (!z7) {
r3_6 = *reinterpret_cast<void***>(r3_6);
}
if (!z7) {
z7 = r3_6 == 0;
}
if (!z7) {
r3_6 = *reinterpret_cast<void***>(r3_6 + 0x168);
}
if (z7) {
r3_6 = g1001ab00;
}
goto r3_6;
}
void** LoadDriver(void** r0, void** r1) {
void** r0_3;
r0_3 = fun_1006d018(r0, 0, 0x10000);
return r0_3;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g1001ac88 = reinterpret_cast<void**>(100);
void** LoadKernelLibrary(int32_t r0) {
void** r3_2;
void** r3_3;
int1_t z4;
r3_2 = gffffc800;
r3_3 = *reinterpret_cast<void***>(r3_2 + 0xffffffec);
z4 = (reinterpret_cast<unsigned char>(r3_3) & 1) == 0;
if (!z4) {
r3_3 = image_base_;
}
if (!z4) {
r3_3 = *reinterpret_cast<void***>(r3_3);
}
if (!z4) {
z4 = r3_3 == 0;
}
if (!z4) {
r3_3 = *reinterpret_cast<void***>(r3_3 + 0x29c);
}
if (z4) {
r3_3 = g1001ac88;
}
goto r3_3;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g1001af10 = reinterpret_cast<void**>(96);
int32_t ConnectDebugger(int32_t r0) {
void** r3_2;
void** r3_3;
int1_t z4;
r3_2 = gffffc800;
r3_3 = *reinterpret_cast<void***>(r3_2 + 0xffffffec);
z4 = (reinterpret_cast<unsigned char>(r3_3) & 1) == 0;
if (!z4) {
r3_3 = image_base_;
}
if (!z4) {
r3_3 = *reinterpret_cast<void***>(r3_3);
}
if (!z4) {
z4 = r3_3 == 0;
}
if (!z4) {
r3_3 = *reinterpret_cast<void***>(r3_3 + 0x1a0);
}
if (z4) {
r3_3 = g1001af10;
}
goto r3_3;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g1001af6c = reinterpret_cast<void**>(0xfc);
int32_t ConnectHdstub(int32_t r0) {
void** r3_2;
void** r3_3;
int1_t z4;
r3_2 = gffffc800;
r3_3 = *reinterpret_cast<void***>(r3_2 + 0xffffffec);
z4 = (reinterpret_cast<unsigned char>(r3_3) & 1) == 0;
if (!z4) {
r3_3 = image_base_;
}
if (!z4) {
r3_3 = *reinterpret_cast<void***>(r3_3);
}
if (!z4) {
z4 = r3_3 == 0;
}
if (!z4) {
r3_3 = *reinterpret_cast<void***>(r3_3 + 0x304);
}
if (z4) {
r3_3 = g1001af6c;
}
goto r3_3;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g1001afc8 = reinterpret_cast<void**>(0xf8);
int32_t ConnectOsAxsT0(int32_t r0) {
void** r3_2;
void** r3_3;
int1_t z4;
r3_2 = gffffc800;
r3_3 = *reinterpret_cast<void***>(r3_2 + 0xffffffec);
z4 = (reinterpret_cast<unsigned char>(r3_3) & 1) == 0;
if (!z4) {
r3_3 = image_base_;
}
if (!z4) {
r3_3 = *reinterpret_cast<void***>(r3_3);
}
if (!z4) {
z4 = r3_3 == 0;
}
if (!z4) {
r3_3 = *reinterpret_cast<void***>(r3_3 + 0x308);
}
if (z4) {
r3_3 = g1001afc8;
}
goto r3_3;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g1001b024 = reinterpret_cast<void**>(0xf0);
int32_t ConnectOsAxsT1(int32_t r0) {
void** r3_2;
void** r3_3;
int1_t z4;
r3_2 = gffffc800;
r3_3 = *reinterpret_cast<void***>(r3_2 + 0xffffffec);
z4 = (reinterpret_cast<unsigned char>(r3_3) & 1) == 0;
if (!z4) {
r3_3 = image_base_;
}
if (!z4) {
r3_3 = *reinterpret_cast<void***>(r3_3);
}
if (!z4) {
z4 = r3_3 == 0;
}
if (!z4) {
r3_3 = *reinterpret_cast<void***>(r3_3 + 0x310);
}
if (z4) {
r3_3 = g1001b024;
}
goto r3_3;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g1001b248 = reinterpret_cast<void**>(0xa0);
int32_t GetProcessIndexFromID(void** r0, void** r1, void** r2) {
void** r3_4;
void** r3_5;
int1_t z6;
r3_4 = gffffc800;
r3_5 = *reinterpret_cast<void***>(r3_4 + 0xffffffec);
z6 = (reinterpret_cast<unsigned char>(r3_5) & 1) == 0;
if (!z6) {
r3_5 = image_base_;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5);
}
if (!z6) {
z6 = r3_5 == 0;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5 + 0x260);
}
if (z6) {
r3_5 = g1001b248;
}
goto r3_5;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g1001b2a4 = reinterpret_cast<void**>(48);
uint32_t GetProcessIDFromIndex(uint32_t r0) {
void** r3_2;
void** r3_3;
int1_t z4;
r3_2 = gffffc800;
r3_3 = *reinterpret_cast<void***>(r3_2 + 0xffffffec);
z4 = (reinterpret_cast<unsigned char>(r3_3) & 1) == 0;
if (!z4) {
r3_3 = image_base_;
}
if (!z4) {
r3_3 = *reinterpret_cast<void***>(r3_3);
}
if (!z4) {
z4 = r3_3 == 0;
}
if (!z4) {
r3_3 = *reinterpret_cast<void***>(r3_3 + 0x2d0);
}
if (z4) {
r3_3 = g1001b2a4;
}
goto r3_3;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g1001b58c = reinterpret_cast<void**>(28);
void** THGrow(int32_t r0, void** r1, void** r2) {
void** r3_4;
void** r3_5;
int1_t z6;
r3_4 = gffffc800;
r3_5 = *reinterpret_cast<void***>(r3_4 + 0xffffffec);
z6 = (reinterpret_cast<unsigned char>(r3_5) & 1) == 0;
if (!z6) {
r3_5 = image_base_;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5);
}
if (!z6) {
z6 = r3_5 == 0;
}
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r3_5 + 0x1e4);
}
if (z6) {
r3_5 = g1001b58c;
}
goto r3_5;
}
int32_t fun_1006cfd0(void* r0, void** r1, int32_t r2, int32_t r3, int32_t a5, int32_t a6, int32_t a7, int32_t a8, int32_t a9, void* a10);
int32_t CreateProcessW(void* r0, void** r1, int32_t r2, int32_t r3, int32_t a5, int32_t a6, int32_t a7, int32_t a8, int32_t a9, void* a10) {
int32_t r0_11;
r0_11 = fun_1006cfd0(r0, r1, r2, r3, a5, a6, a7, a8, a9, a10);
return r0_11;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g1001b798 = reinterpret_cast<void**>(0xa0);
int32_t g1001b790 = 0xf000ff28;
void** CreateThread(int32_t r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11) {
void** r3_12;
void** r3_13;
int1_t z14;
int1_t z15;
int32_t r4_16;
r3_12 = gffffc800;
r3_13 = *reinterpret_cast<void***>(r3_12 + 0xffffffec);
if (reinterpret_cast<unsigned char>(r2) <= reinterpret_cast<unsigned char>(0x10000)) {
z14 = (reinterpret_cast<unsigned char>(r3_13) & 1) == 0;
if (!z14) {
r3_13 = image_base_;
}
if (!z14) {
r3_13 = *reinterpret_cast<void***>(r3_13);
}
if (!z14) {
z14 = r3_13 == 0;
}
if (!z14) {
r3_13 = *reinterpret_cast<void***>(r3_13 + 0x160);
}
if (z14) {
r3_13 = g1001b798;
}
goto r3_13;
}
z15 = (reinterpret_cast<unsigned char>(r3_13) & 1) == 0;
if (z15)
goto addr_1001b73c_15;
r3_13 = image_base_;
addr_1001b73c_15:
if (!z15) {
r3_13 = *reinterpret_cast<void***>(r3_13);
}
if (!z15) {
z15 = r3_13 == 0;
}
if (!z15) {
r4_16 = *reinterpret_cast<int32_t*>(r3_13 + 0xd8);
}
if (z15) {
r4_16 = g1001b790;
}
goto r4_16;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g1001b80c = reinterpret_cast<void**>(0xec);
void SetStdioPathW(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10) {
void** r3_11;
void** r3_12;
int1_t z13;
r3_11 = gffffc800;
r3_12 = *reinterpret_cast<void***>(r3_11 + 0xffffffec);
z13 = (reinterpret_cast<unsigned char>(r3_12) & 1) == 0;
if (!z13) {
r3_12 = image_base_;
}
if (!z13) {
r3_12 = *reinterpret_cast<void***>(r3_12);
}
if (!z13) {
z13 = r3_12 == 0;
}
if (!z13) {
r3_12 = *reinterpret_cast<void***>(r3_12 + 0x214);
}
if (z13) {
r3_12 = g1001b80c;
}
goto r3_12;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g1001b868 = reinterpret_cast<void**>(0xe8);
int32_t GetStdioPathW() {
void** r3_1;
void** r3_2;
int1_t z3;
r3_1 = gffffc800;
r3_2 = *reinterpret_cast<void***>(r3_1 + 0xffffffec);
z3 = (reinterpret_cast<unsigned char>(r3_2) & 1) == 0;
if (!z3) {
r3_2 = image_base_;
}
if (!z3) {
r3_2 = *reinterpret_cast<void***>(r3_2);
}
if (!z3) {
z3 = r3_2 == 0;
}
if (!z3) {
r3_2 = *reinterpret_cast<void***>(r3_2 + 0x218);
}
if (z3) {
r3_2 = g1001b868;
}
goto r3_2;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
int32_t g1001b9d8 = 0xf000fe64;
void UpdateNLSInfoEx(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9) {
void** lr10;
void** lr11;
int1_t z12;
int32_t r4_13;
lr10 = gffffc800;
lr11 = *reinterpret_cast<void***>(lr10 + 0xffffffec);
z12 = (reinterpret_cast<unsigned char>(lr11) & 1) == 0;
if (!z12) {
lr11 = image_base_;
}
if (!z12) {
lr11 = *reinterpret_cast<void***>(lr11);
}
if (!z12) {
z12 = lr11 == 0;
}
if (!z12) {
r4_13 = *reinterpret_cast<int32_t*>(lr11 + 0x19c);
}
if (z12) {
r4_13 = g1001b9d8;
}
goto r4_13;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** g1001bad8 = reinterpret_cast<void**>(0x70);
int32_t GetCallStackSnapshot(int32_t r0, void* r1, int32_t r2, int32_t r3, ...) {
void** lr5;
void** r4_6;
void** lr7;
int1_t z8;
lr5 = gffffc800;
r4_6 = reinterpret_cast<void**>(0xffffc808);
lr7 = *reinterpret_cast<void***>(lr5 + 0xffffffec);
z8 = (reinterpret_cast<unsigned char>(lr7) & 1) == 0;
if (!z8) {
lr7 = image_base_;
}
if (!z8) {
lr7 = *reinterpret_cast<void***>(lr7);
}
if (!z8) {
z8 = lr7 == 0;
}
if (!z8) {
r4_6 = *reinterpret_cast<void***>(lr7 + 0x190);
}
if (z8) {
r4_6 = g1001bad8;
}
goto r4_6;
}
int32_t g1001bb54 = 0xf000aff8;
void** CreateDirectoryW(void** r0, void** r1) {
int32_t r3_3;
r3_3 = g1001bb54;
goto r3_3;
}
int32_t g1001bbc4 = 0xf000afe8;
void DeleteFileW(void* r0) {
int32_t r3_2;
r3_2 = g1001bbc4;
goto r3_2;
}
int32_t g1001bc30 = 0xf000af84;
void SetFileAttributesW(void** r0, void*** r1, void*** r2, void*** r3) {
int32_t r3_5;
r3_5 = g1001bc30;
goto r3_5;
}
int32_t g1001bc4c = 0xf000e3f0;
void** GetFileSize(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7) {
int32_t r3_8;
r3_8 = g1001bc4c;
goto r3_8;
}
int32_t g1001bc84 = 0xf000e3e4;
int32_t FlushFileBuffers(void** r0) {
int32_t r3_2;
r3_2 = g1001bc84;
goto r3_2;
}
int32_t g1001bca0 = 0xf000e3e0;
void GetFileTime(void** r0, void*** r1, void*** r2, void*** r3) {
int32_t r4_5;
r4_5 = g1001bca0;
goto r4_5;
}
int32_t g1001bcbc = 0xf000e3dc;
void SetFileTime(void** r0, void*** r1, void*** r2, void*** r3) {
int32_t r4_5;
r4_5 = g1001bcbc;
goto r4_5;
}
int32_t g1001bcd8 = 0xf000e3d8;
int32_t SetEndOfFile(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7) {
int32_t r3_8;
r3_8 = g1001bcd8;
goto r3_8;
}
void FindClose(int32_t r0, void* r1) {
}
struct s42 {
int32_t f0;
uint32_t f4;
};
struct s43 {
signed char[4] pad4;
uint16_t f4;
signed char[2] pad8;
int32_t f8;
signed char[8] pad20;
uint32_t f14;
};
void fun_1001bd98(struct s42* r0, struct s43* r1, uint32_t r2) {
uint32_t r4_4;
int1_t z5;
uint32_t r2_6;
uint32_t lr7;
uint32_t r3_8;
int1_t z9;
r4_4 = r2;
if (!z5) {
r2_6 = 0;
while (r2_6 >= 4) {
r0->f0 = r1->f8;
lr7 = r1->f14;
r0->f4 = lr7;
r3_8 = r1->f4;
r1 = reinterpret_cast<struct s43*>(reinterpret_cast<int32_t>(r1) + 32);
z9 = (r3_8 & 0x200) == 0;
if (!z9) {
r3_8 = lr7 | 0x200;
}
if (!z9) {
r0->f4 = r3_8;
}
r2_6 = r2_6 + 1 << 16 >> 16;
++r0;
if (r2_6 < r4_4)
goto addr_1001bdec_10;
}
goto label_12;
}
addr_1001bdec_10:
return;
label_12:
goto addr_1001bdec_10;
}
int32_t g1001bf6c = 0xf000afd0;
void CeOidGetInfoEx(int32_t r0, int32_t r1, int32_t r2) {
int32_t r3_4;
r3_4 = g1001bf6c;
goto r3_4;
}
int32_t g1001c098 = 0xf000af38;
void FileSystemPowerFunction(int32_t r0, void** r1, void** r2, void** r3, void** a5, void** a6) {
int32_t r3_7;
r3_7 = g1001c098;
goto r3_7;
}
int32_t g1001c3a0 = 0xf000ae90;
int32_t RequestDeviceNotifications(void* r0, void** r1, void** r2) {
int32_t r3_4;
r3_4 = g1001c3a0;
goto r3_4;
}
int32_t g1001c3bc = 0xf000ae8c;
void StopDeviceNotifications(int32_t r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11) {
int32_t r3_12;
r3_12 = g1001c3bc;
goto r3_12;
}
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007adc0);
void** InitializeCriticalSection(void** r0, void** r1, void** r2) {
void** r0_4;
int32_t* r2_5;
int1_t z6;
int32_t r4_7;
*reinterpret_cast<void***>(r0) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r0 + 4) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r0 + 12) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r0 + 16) = reinterpret_cast<void**>(0);
r0_4 = CreateCrit(r0, r1);
r2_5 = image_base_;
*reinterpret_cast<void***>(r0 + 8) = r0_4;
z6 = *r2_5 == 0;
if (!z6) {
r4_7 = *r2_5;
}
if (!z6) {
}
if (!z6) {
}
if (!z6) {
}
if (!z6) {
r0_4 = reinterpret_cast<void**>(0);
}
if (!z6) {
}
if (!z6) {
}
if (!z6) {
goto r4_7;
} else {
return r0_4;
}
}
/* (image base) */
void*** image_base_ = reinterpret_cast<void***>(0x1007adc0);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xbc);
void DeleteCriticalSection(void** r0) {
void*** r3_2;
void** r3_3;
int1_t z4;
void** r1_5;
void** r4_6;
void** v7;
void** v8;
void** v9;
void** v10;
void** v11;
void** v12;
void** v13;
r3_2 = image_base_;
r3_3 = *r3_2;
z4 = r3_3 == 0;
if (!z4) {
r3_3 = image_base_;
}
if (!z4) {
r1_5 = r0;
}
if (!z4) {
}
if (!z4) {
r3_3 = *reinterpret_cast<void***>(r3_3);
}
if (!z4) {
}
if (!z4) {
goto r3_3;
} else {
CreateCrit(reinterpret_cast<unsigned char>(r0) | 1, r1_5);
memset(r0, 0, 20, r3_3, r4_6, __return_address(), v7, v8, v9, v10, v11, v12, v13);
return;
}
}
void** EnterCriticalSection(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11) {
void** r1_12;
r1_12 = gffffc808;
if (*reinterpret_cast<void***>(r0 + 4) == r1_12) {
*reinterpret_cast<void***>(r0) = *reinterpret_cast<void***>(r0) + 1;
return r0;
}
}
int32_t fun_1001c5f8(void** r0, void** r1);
void** fun_1001c664(void** r0, void** r1, void** r2) {
void** r9_4;
void** r6_5;
void** r8_6;
void** r5_7;
void** r4_8;
int1_t z9;
int32_t r0_10;
int1_t z11;
int1_t below_or_equal12;
r9_4 = r2;
r6_5 = r1;
r8_6 = r0;
r5_7 = reinterpret_cast<void**>(0);
r4_8 = r8_6;
while (z9 = r6_5 == 0, --r6_5, !z9) {
r0_10 = fun_1001c5f8(r4_8, r9_4);
z11 = r0_10 == 0;
if (z11) {
r5_7 = reinterpret_cast<void**>(0x45a);
}
if (z11) {
}
if (r5_7) {
if (reinterpret_cast<int1_t>(r9_4 == 1))
goto addr_1001c700_11;
}
r4_8 = r4_8 + 20;
}
addr_1001c73c_15:
__asm__("ldmdb fp, {r4, r5, r6, r7, r8, sb, fp, sp, lr}");
return r5_7;
addr_1001c700_11:
while (below_or_equal12 = reinterpret_cast<unsigned char>(r4_8) <= reinterpret_cast<unsigned char>(r8_6), r4_8 = r4_8 - 20, !below_or_equal12) {
fun_1001c5f8(r4_8, 0);
}
goto addr_1001c73c_15;
}
struct s44 {
int32_t f0;
uint32_t f4;
uint32_t f8;
uint32_t fc;
uint32_t f10;
uint32_t f14;
int32_t f18;
uint32_t f1c;
};
uint32_t gffffcb10;
uint32_t gffffcb2c;
uint32_t __rt_sdiv(uint32_t r0, uint32_t r1);
void** gffffcb04;
void GlobalMemoryStatus(struct s44* r0, void** r1, void** r2) {
int32_t* sp4;
struct s44* r6_5;
uint32_t r3_6;
uint32_t r0_7;
uint32_t r0_8;
uint32_t r3_9;
void** r2_10;
uint32_t r4_11;
void** r2_12;
uint32_t r3_13;
int32_t r0_14;
int32_t v15;
int32_t v16;
int32_t v17;
sp4 = reinterpret_cast<int32_t*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 20 - 28);
r6_5 = r0;
r6_5->f0 = 32;
r3_6 = gffffcb10;
r0_7 = gffffcb2c;
r0_8 = __rt_sdiv(r0_7, r3_6 * 100);
r6_5->f4 = 100 - r0_8;
r3_9 = gffffcb2c;
r2_10 = gffffcb04;
r4_11 = 0x10000;
r6_5->f8 = reinterpret_cast<unsigned char>(r2_10) * r3_9;
r2_12 = gffffcb04;
r3_13 = gffffcb10;
r6_5->f10 = 0;
r6_5->f14 = 0;
r6_5->f18 = 0x2000000;
r6_5->fc = reinterpret_cast<unsigned char>(r2_12) * r3_13;
r6_5->f1c = 0;
while (r0_14 = VirtualQuery(r4_11, sp4, 28), !!r0_14) {
if (v15 == 0x10000) {
r6_5->f1c = (v16 - (reinterpret_cast<uint32_t>(~v17 + 1) & 0xffff) & 0xffff0000) + r6_5->f1c;
}
r4_11 = r4_11 + v16;
if (r4_11 < 0x2000000)
goto addr_1001cc14_7;
}
addr_1001cc14_7:
return;
}
void* g1001d1b4 = reinterpret_cast<void*>(0xfffff3bc);
void** StringCchLengthW(void** r0, void** r1, void** r2);
void fun_1005ec30(void** r0, void** r1, void** r2);
void fun_1005ee30(void** r0, void** r1, void** r2);
void** fun_1005eedc(void** r0, void** r1, void** r2);
void** fun_1005ee9c(void*** r0, void** r1, void** r2);
struct s45 {
void** f0;
signed char[1] pad2;
uint16_t f2;
};
void fun_1005ede0(struct s45* r0, void** r1, void** r2);
void fun_1005ec84(void** r0, void** r1, void** r2);
void fun_1005ec40(void** r0, void** r1, void** r2, void** r3);
void** fun_1005ecb0(void** r0, void** r1, void** r2);
int32_t fun_1005ecf4(void** r0, void** r1, void** r2);
int32_t CeGetCanonicalPathNameW(void** r0, void** r1, void** r2, void** r3) {
void* r12_5;
void** sp6;
void** r8_7;
void** r6_8;
void** r5_9;
int1_t z10;
int1_t z11;
void** r0_12;
void** r4_13;
int1_t z14;
void** r0_15;
struct s45* r0_16;
void* r4_17;
void** r0_18;
void** r0_19;
r12_5 = g1001d1b4;
sp6 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 28 + reinterpret_cast<uint32_t>(r12_5));
r8_7 = r2;
r6_8 = r1;
r5_9 = r0;
if (z10) {
r0 = reinterpret_cast<void**>(87);
}
if (!z11) {
r2 = sp6;
r1 = reinterpret_cast<void**>(0x104);
r0 = StringCchLengthW(r5_9, 0x104, r2);
if (__intrinsic()) {
r0 = reinterpret_cast<void**>(0xce);
}
if (__intrinsic())
goto label_8; else
goto addr_1001d054_9;
}
addr_1001d184_10:
SetLastError(r0, r1, r2, r3);
addr_1001d1a0_11:
goto *reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(sp6 + 0xc44) + 24);
label_8:
goto addr_1001d184_10;
addr_1001d054_9:
fun_1005ec30(sp6 + 8, 0x104, r2);
r2 = sp6 + 0xc40;
fun_1005ee30(r5_9, *reinterpret_cast<void***>(sp6), r2);
r1 = sp6;
r0_12 = fun_1005eedc(r5_9, r1, r2);
r3 = *reinterpret_cast<void***>(sp6);
r4_13 = r0_12;
z14 = r3 == 0;
if (!z14) {
while (1) {
*reinterpret_cast<void***>(sp6 + 4) = reinterpret_cast<void**>(0);
r0_15 = fun_1005ee9c(reinterpret_cast<unsigned char>(r5_9) + (reinterpret_cast<unsigned char>(r4_13) << 1), r3, r2);
r0_16 = reinterpret_cast<struct s45*>(reinterpret_cast<unsigned char>(r5_9) + (reinterpret_cast<unsigned char>(r4_13) << 1));
r2 = sp6 + 4;
if (z14) {
r1 = *reinterpret_cast<void***>(sp6);
fun_1005ede0(r0_16, r1, r2);
if (*reinterpret_cast<void***>(sp6 + 4) != 2)
goto addr_1001d12c_17;
} else {
fun_1005ede0(r0_16, r0_15, r2);
if (*reinterpret_cast<void***>(sp6 + 4) == 2) {
fun_1005ec84(sp6 + 8, r0_15, r2);
} else {
if (reinterpret_cast<int1_t>(*reinterpret_cast<void***>(sp6 + 4) == 3)) {
fun_1005ec40(sp6 + 8, r4_13, r0_15, 3);
}
}
r2 = *reinterpret_cast<void***>(sp6);
r4_17 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(r0_15) + reinterpret_cast<unsigned char>(r4_13) + 1);
r1 = sp6;
*reinterpret_cast<void***>(sp6) = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r2) - reinterpret_cast<unsigned char>(r0_15) - 1);
r0_18 = fun_1005eedc(reinterpret_cast<unsigned char>(r5_9) + (reinterpret_cast<uint32_t>(r4_17) << 1), r1, r2);
r3 = *reinterpret_cast<void***>(sp6);
r4_13 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(r4_17) + reinterpret_cast<unsigned char>(r0_18));
goto addr_1001d15c_25;
}
fun_1005ec84(sp6 + 8, r1, r2);
addr_1001d154_28:
r3 = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(sp6) = reinterpret_cast<void**>(0);
addr_1001d15c_25:
z14 = r3 == 0;
if (z14)
break;
continue;
addr_1001d12c_17:
if (!reinterpret_cast<int1_t>(*reinterpret_cast<void***>(sp6 + 4) == 3)) {
goto addr_1001d154_28;
} else {
r2 = *reinterpret_cast<void***>(sp6);
r1 = r4_13;
fun_1005ec40(sp6 + 8, r1, r2, 3);
goto addr_1001d154_28;
}
}
}
r0_19 = fun_1005ecb0(sp6 + 8, r1, r2);
*reinterpret_cast<void***>(sp6) = r0_19;
if (r6_8)
goto addr_1001d178_33;
goto addr_1001d1a0_11;
addr_1001d178_33:
if (reinterpret_cast<unsigned char>(r0_19) <= reinterpret_cast<unsigned char>(r8_7)) {
fun_1005ecf4(sp6 + 8, r5_9, r6_8);
goto addr_1001d1a0_11;
} else {
r0 = reinterpret_cast<void**>(0x7a);
goto addr_1001d184_10;
}
}
/* (image base) */
void*** image_base_ = reinterpret_cast<void***>(0x1007ad20);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x80);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x68);
uint32_t PSLNotify(uint32_t r0, void** r1, void** r2);
void** fun_1001c758(void** r0, void** r1, void** r2);
void DebugNotify(int32_t r0, void** r1, void** r2);
int32_t g1001dbd0 = 0xf000fe90;
void** LocalFree(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23, void** a24, void** a25, void** a26, void** a27, void** a28, void** a29, void** a30, void** a31, void** a32, ...);
void fun_10019374(void** r0, void** r1, void** r2);
void ExitThread(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23) {
void** v24;
void** r4_25;
void** v26;
void** r5_27;
void** v28;
void** r6_29;
void** v30;
void** r7_31;
void** v32;
void** r8_33;
void** v34;
void** r9_35;
void** v36;
void** r10_37;
void** v38;
void** r11_39;
void** v40;
void** r7_41;
void*** r9_42;
void** r5_43;
void** r6_44;
void** r3_45;
void* r4_46;
uint32_t r0_47;
void** r3_48;
void** r2_49;
uint32_t r0_50;
int1_t z51;
int1_t below_or_equal52;
void** r0_53;
int32_t r3_54;
void** r3_55;
int32_t r0_56;
void** r0_57;
int32_t r0_58;
void** r0_59;
void** r1_60;
v24 = r4_25;
v26 = r5_27;
v28 = r6_29;
v30 = r7_31;
v32 = r8_33;
v34 = r9_35;
v36 = r10_37;
v38 = r11_39;
v40 = reinterpret_cast<void**>(__return_address());
r7_41 = r0;
r9_42 = image_base_;
if (*r9_42) {
r5_43 = image_base_;
r6_44 = gffffc808;
r3_45 = *reinterpret_cast<void***>(r5_43 + 4);
r4_46 = reinterpret_cast<void*>(0);
if (r6_44 != r3_45) {
goto addr_1001da10_5;
} else {
r1 = reinterpret_cast<void**>(0);
fun_100181a4(0, 0);
while (LeaveCriticalSection(r5_43, 0, r2, r3_45, v24, v26, v28), !!r6_44) {
r3_45 = *reinterpret_cast<void***>(r5_43 + 4);
if (r6_44 != r3_45)
goto addr_1001da10_5;
}
goto label_10;
}
}
addr_1001dbc0_11:
NKTerminateThread(r7_41, r1, r2);
return;
addr_1001da10_5:
SetLastError(r7_41, r1, r2, r3_45);
CloseProcOE(2, r1, r2);
r0_47 = IsPrimaryThread();
r3_48 = image_base_;
if (r0_47) {
r2_49 = reinterpret_cast<void**>(1);
*reinterpret_cast<void***>(r3_48) = reinterpret_cast<void**>(1);
KillAllOtherThreads(r0_47, r1, 1);
r0_50 = OtherThreadsRunning(r0_47, r1, 1);
if (r0_50) {
while (1) {
if (reinterpret_cast<uint32_t>(r4_46) >= 2) {
r4_46 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r4_46) + 1);
z51 = reinterpret_cast<int1_t>(r4_46 == 2);
if (z51) {
r2_49 = gffffc808;
}
if (z51) {
r1 = gffffc80c;
}
if (z51) {
r0_50 = 4;
}
if (z51) {
r0_50 = PSLNotify(r0_50, r1, r2_49);
}
}
KillAllOtherThreads(r0_50, r1, r2_49);
below_or_equal52 = reinterpret_cast<uint32_t>(r4_46) <= 1;
if (!below_or_equal52) {
r3_48 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(r4_46) - 1);
}
if (!below_or_equal52) {
r0_50 = reinterpret_cast<unsigned char>(r3_48) * 0xfa;
}
if (!below_or_equal52) {
Sleep(r0_50, r1, r2_49, r3_48, v24, v26);
}
r0_50 = OtherThreadsRunning(r0_50, r1, r2_49);
if (!r0_50)
break;
}
}
r0_53 = EnterCriticalSection(r5_43, r1, r2_49, r3_48, v24, v26, v28, v30, v32, v34, v36);
ProcessDetachAllDLLs(r0_53, r1, r2_49);
fun_1001c758(r0_53, 0, r2_49);
fun_10007a64(*r9_42, 0, 0);
LeaveCriticalSection(r5_43, 0, 0, r3_48, v24, v26, v28);
DebugNotify(0, r7_41, 0);
CloseProcOE(1, r7_41, 0);
r3_54 = g1001dbd0;
goto r3_54;
}
r3_55 = *reinterpret_cast<void***>(r3_48);
if (!r3_55)
goto addr_1001db04_36;
addr_1001db54_38:
CloseProcOE(0, r1, r2);
r0_56 = GetProcessIndexFromID(66, r1, r2);
if (!r0_56) {
goto addr_1001dbc0_11;
} else {
r2 = reinterpret_cast<void**>(0);
r1 = reinterpret_cast<void**>(3);
fun_1000f6a4(*r9_42, 3, 0);
r0_57 = TlsGetValue(1, 3, 0, r3_55, v24, v26, v28);
if (!r0_57) {
goto addr_1001dbc0_11;
} else {
if (reinterpret_cast<unsigned char>(r0_57) >= reinterpret_cast<unsigned char>(0x10000)) {
goto addr_1001dbc0_11;
} else {
if (reinterpret_cast<unsigned char>(r0_57) < reinterpret_cast<unsigned char>(0x4000000)) {
if (reinterpret_cast<signed char>(r0_57) < reinterpret_cast<signed char>(0x42000000)) {
if (!(reinterpret_cast<unsigned char>(r0_57) & 0x80000000)) {
goto addr_1001dbb8_51;
} else {
r3_55 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r0_57) & 0xfe000000);
if (reinterpret_cast<int1_t>(r3_55 == 0xc2000000)) {
addr_1001dbb8_51:
__asm__("bic r0, r0, #0xfe000000");
}
}
}
}
LocalFree(r0_57, 3, 0, r3_55, v24, v26, v28, v30, v32, v34, v36, v38, v40, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23);
goto addr_1001dbc0_11;
}
}
}
addr_1001db04_36:
r0_58 = GetProcessIndexFromID(66, r1, r2);
if (!r0_58) {
goto addr_1001db54_38;
} else {
r0_59 = EnterCriticalSection(r5_43, r1, r2, r3_55, v24, v26, v28, v30, v32, v34, v36);
fun_10019374(r0_59, r1, r2);
fun_1001c758(r0_59, 3, r2);
LeaveCriticalSection(r5_43, 3, r2, r3_55, v24, v26, v28);
r3_55 = reinterpret_cast<void**>(0xffffc80c);
r1_60 = gffffc80c;
r2 = gffffc808;
PSLNotify(3, r1_60, r2);
r1 = r7_41;
DebugNotify(3, r1, r2);
goto addr_1001db54_38;
}
label_10:
goto addr_1001da10_5;
}
int32_t g1001dfc4 = 0xf000fe38;
int32_t CaptureDumpFileOnDevice(int32_t r0, int32_t r1, void** r2) {
int32_t lr4;
int1_t z5;
void** r1_6;
int32_t r0_7;
int32_t r4_8;
lr4 = reinterpret_cast<int32_t>(__return_address());
z5 = r0 == -1;
if (z5) {
z5 = r1 == -1;
}
if (z5) {
lr4 = 1;
}
if (!z5) {
lr4 = 0;
}
if (!lr4) {
if (r2) {
r1_6 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 24 + 24 - 0x220);
r0_7 = CeGetCanonicalPathNameW(r2, r1_6, 0x104, 0);
if (!r0_7) {
SetLastError(0xa1, r1_6, 0x104, 0);
__asm__("ldmdb fp, {r4, r5, r6, fp, sp, lr}");
goto lr4;
}
}
}
CeGetCurrentTrust();
r4_8 = g1001dfc4;
goto r4_8;
}
/* (image base) */
void*** image_base_ = reinterpret_cast<void***>(0x1007a794);
/* (image base) */
int32_t image_base_ = 0x1000176c;
/* (image base) */
void*** image_base_ = reinterpret_cast<void***>(0x1007a790);
void** g1001e490 = reinterpret_cast<void**>(0x77);
void** CreateMsgQueue(int32_t r0, void** r1);
void CloseMsgQueue(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15);
void** ReadMsgQueue(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6);
void** CreateFileW(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11);
void** fun_1001e2c8() {
void*** sp1;
void*** r4_2;
void** r0_3;
int32_t r0_4;
int1_t z5;
void*** r6_6;
int1_t z7;
void** r3_8;
void** v9;
void** v10;
void** v11;
void** v12;
void** v13;
void** r1_14;
void** r0_15;
void** r2_16;
void** r1_17;
int32_t r0_18;
void** r3_19;
void** v20;
void** v21;
void** v22;
void** v23;
void** v24;
void** v25;
void** v26;
void** v27;
void** v28;
void** v29;
void** v30;
void** v31;
void** v32;
void** v33;
void** v34;
void** v35;
void** v36;
void** v37;
void** v38;
void** v39;
void** v40;
void** v41;
void** v42;
void** v43;
void** v44;
int32_t r0_45;
void** r0_46;
void** r0_47;
int1_t z48;
sp1 = reinterpret_cast<void***>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 36 - 0x15c);
r4_2 = image_base_;
r0_3 = *r4_2;
if (reinterpret_cast<int1_t>(r0_3 == 31)) {
r0_4 = image_base_;
r0_3 = IsNamedEventSignaled(r0_4, 0);
z5 = r0_3 == 0;
if (!z5) {
r0_3 = reinterpret_cast<void**>(0);
}
if (!z5) {
*r4_2 = r0_3;
}
if (z5) {
r0_3 = *r4_2;
}
}
if (!r0_3) {
r6_6 = image_base_;
z7 = reinterpret_cast<int1_t>(*r6_6 == -1);
if (z7) {
r3_8 = g1001e490;
memset(sp1 + 36, 0, 20, 19, v9, v10, v11, r3_8, 0x4980cd34, 0xdb67ee91, 0x13893def, v12, v13);
r1_14 = reinterpret_cast<void**>(sp1 + 36);
r0_15 = CreateMsgQueue(0, r1_14);
if (!z7) {
r2_16 = reinterpret_cast<void**>(1);
r1_17 = r0_15;
r0_18 = RequestDeviceNotifications(sp1 + 12, r1_17, 1);
r3_19 = reinterpret_cast<void**>(31);
*r4_2 = reinterpret_cast<void**>(31);
if (z7)
goto label_16; else
goto addr_1001e3e4_17;
} else {
r0_3 = GetLastError(r0_15, r1_14, 0, 20, v20, v21, v22, r3_8, 0x4980cd34, 0xdb67ee91, 0x13893def, v23, v24, 20, 0, v25, 0x120, 1, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38);
*r4_2 = r0_3;
}
}
}
addr_1001e484_19:
return r0_3;
label_16:
addr_1001e478_20:
CloseMsgQueue(r0_15, r1_17, r2_16, r3_19, v39, v40, 0, r3_8, 0x4980cd34, 0xdb67ee91, 0x13893def, 0, v41, 20, 0);
r0_3 = *r4_2;
goto addr_1001e484_19;
addr_1001e3e4_17:
r1_17 = reinterpret_cast<void**>(0xea60);
r0_45 = WaitForSingleObject(r0_15, 0xea60, 1, 31, v42, v43, v44, r3_8, 0x4980cd34, 0xdb67ee91, 0x13893def);
if (!r0_45) {
v40 = reinterpret_cast<void**>(sp1 + 56);
r3_19 = reinterpret_cast<void**>(sp1 + 28);
r2_16 = reinterpret_cast<void**>(0x120);
r1_17 = reinterpret_cast<void**>(sp1 + 60);
v39 = reinterpret_cast<void**>(0);
r0_46 = ReadMsgQueue(r0_15, r1_17, 0x120, r3_19, 0, v40);
if (r0_46) {
r3_19 = reinterpret_cast<void**>(0);
if (!0) {
v39 = reinterpret_cast<void**>(3);
r3_19 = reinterpret_cast<void**>(0);
r2_16 = reinterpret_cast<void**>(3);
r1_17 = reinterpret_cast<void**>(0xc0000000);
v40 = reinterpret_cast<void**>(0);
r0_47 = CreateFileW(sp1 + 88, 0xc0000000, 3, 0, 3, 0, 0, r3_8, 0x4980cd34, 0xdb67ee91, 0x13893def);
z48 = reinterpret_cast<int1_t>(r0_47 == -1);
if (!z48) {
r3_19 = reinterpret_cast<void**>(0);
}
if (!z48) {
*r4_2 = reinterpret_cast<void**>(0);
}
*r6_6 = r0_47;
}
}
}
StopDeviceNotifications(r0_18, r1_17, r2_16, r3_19, v39, v40, 0, r3_8, 0x4980cd34, 0xdb67ee91, 0x13893def);
goto addr_1001e478_20;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(52);
/* (image base) */
void*** image_base_ = reinterpret_cast<void***>(0x1007adb4);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(8);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xe0);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xa4);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x78);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(76);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(28);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xf8);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xd0);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xa8);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x80);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(92);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(52);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(12);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xe4);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xb4);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x7c);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(80);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(48);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(4);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xd0);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xa0);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x68);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(44);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xfc);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xcc);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x98);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x78);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(88);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(56);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(20);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xf4);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xc4);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x98);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(100);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(44);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xfc);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xd8);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xac);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x80);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(96);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(48);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(16);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xe8);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xc4);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x9c);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x74);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(80);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xf8);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xbc);
int32_t fun_1001e804() {
void** r0_1;
void** r1_2;
void** r2_3;
void** r3_4;
void** r0_5;
int1_t z6;
void** r2_7;
void** r3_8;
void** r4_9;
void** r5_10;
void** v11;
void** v12;
void** v13;
void** v14;
void** v15;
void** v16;
void** v17;
void** v18;
void** v19;
void** v20;
void** v21;
void** v22;
void** v23;
void** v24;
void** v25;
void** v26;
void** v27;
void** v28;
void** v29;
void** v30;
void** v31;
void** v32;
void** v33;
void** v34;
void** v35;
void** r0_36;
void*** r4_37;
void** r1_38;
void** r2_39;
void** r0_40;
void** r2_41;
void** v42;
void** v43;
void** v44;
void** v45;
void** v46;
void** v47;
void** v48;
void** v49;
void** v50;
void** v51;
void** v52;
void** v53;
void** v54;
void** v55;
void** v56;
void** v57;
void** v58;
void** v59;
void** v60;
void** v61;
void** v62;
void** v63;
void** v64;
void** v65;
void** v66;
void** r1_67;
void** r0_68;
void** r2_69;
void** v70;
void** v71;
void** v72;
void** v73;
void** v74;
void** v75;
void** v76;
void** v77;
void** v78;
void** v79;
void** v80;
void** v81;
void** v82;
void** v83;
void** v84;
void** v85;
void** v86;
void** v87;
void** v88;
void** v89;
void** v90;
void** v91;
void** v92;
void** v93;
void** v94;
void** r1_95;
void** r0_96;
void** r2_97;
void** v98;
void** v99;
void** v100;
void** v101;
void** v102;
void** v103;
void** v104;
void** v105;
void** v106;
void** v107;
void** v108;
void** v109;
void** v110;
void** v111;
void** v112;
void** v113;
void** v114;
void** v115;
void** v116;
void** v117;
void** v118;
void** v119;
void** v120;
void** v121;
void** v122;
void** r1_123;
void** r0_124;
void** r2_125;
void** v126;
void** v127;
void** v128;
void** v129;
void** v130;
void** v131;
void** v132;
void** v133;
void** v134;
void** v135;
void** v136;
void** v137;
void** v138;
void** v139;
void** v140;
void** v141;
void** v142;
void** v143;
void** v144;
void** v145;
void** v146;
void** v147;
void** v148;
void** v149;
void** v150;
void** r1_151;
void** r0_152;
void** r2_153;
void** v154;
void** v155;
void** v156;
void** v157;
void** v158;
void** v159;
void** v160;
void** v161;
void** v162;
void** v163;
void** v164;
void** v165;
void** v166;
void** v167;
void** v168;
void** v169;
void** v170;
void** v171;
void** v172;
void** v173;
void** v174;
void** v175;
void** v176;
void** v177;
void** v178;
void** r1_179;
void** r0_180;
void** r2_181;
void** v182;
void** v183;
void** v184;
void** v185;
void** v186;
void** v187;
void** v188;
void** v189;
void** v190;
void** v191;
void** v192;
void** v193;
void** v194;
void** v195;
void** v196;
void** v197;
void** v198;
void** v199;
void** v200;
void** v201;
void** v202;
void** v203;
void** v204;
void** v205;
void** v206;
void** r1_207;
void** r0_208;
void** r2_209;
void** v210;
void** v211;
void** v212;
void** v213;
void** v214;
void** v215;
void** v216;
void** v217;
void** v218;
void** v219;
void** v220;
void** v221;
void** v222;
void** v223;
void** v224;
void** v225;
void** v226;
void** v227;
void** v228;
void** v229;
void** v230;
void** v231;
void** v232;
void** v233;
void** v234;
void** r1_235;
void** r0_236;
void** r2_237;
void** v238;
void** v239;
void** v240;
void** v241;
void** v242;
void** v243;
void** v244;
void** v245;
void** v246;
void** v247;
void** v248;
void** v249;
void** v250;
void** v251;
void** v252;
void** v253;
void** v254;
void** v255;
void** v256;
void** v257;
void** v258;
void** v259;
void** v260;
void** v261;
void** v262;
void** r1_263;
void** r0_264;
void** r2_265;
void** v266;
void** v267;
void** v268;
void** v269;
void** v270;
void** v271;
void** v272;
void** v273;
void** v274;
void** v275;
void** v276;
void** v277;
void** v278;
void** v279;
void** v280;
void** v281;
void** v282;
void** v283;
void** v284;
void** v285;
void** v286;
void** v287;
void** v288;
void** v289;
void** v290;
void** r1_291;
void** r0_292;
void** r2_293;
void** v294;
void** v295;
void** v296;
void** v297;
void** v298;
void** v299;
void** v300;
void** v301;
void** v302;
void** v303;
void** v304;
void** v305;
void** v306;
void** v307;
void** v308;
void** v309;
void** v310;
void** v311;
void** v312;
void** v313;
void** v314;
void** v315;
void** v316;
void** v317;
void** v318;
void** r1_319;
void** r0_320;
void** r2_321;
void** v322;
void** v323;
void** v324;
void** v325;
void** v326;
void** v327;
void** v328;
void** v329;
void** v330;
void** v331;
void** v332;
void** v333;
void** v334;
void** v335;
void** v336;
void** v337;
void** v338;
void** v339;
void** v340;
void** v341;
void** v342;
void** v343;
void** v344;
void** v345;
void** v346;
void** r1_347;
void** r0_348;
void** r2_349;
void** v350;
void** v351;
void** v352;
void** v353;
void** v354;
void** v355;
void** v356;
void** v357;
void** v358;
void** v359;
void** v360;
void** v361;
void** v362;
void** v363;
void** v364;
void** v365;
void** v366;
void** v367;
void** v368;
void** v369;
void** v370;
void** v371;
void** v372;
void** v373;
void** v374;
void** r1_375;
void** r0_376;
void** r2_377;
void** v378;
void** v379;
void** v380;
void** v381;
void** v382;
void** v383;
void** v384;
void** v385;
void** v386;
void** v387;
void** v388;
void** v389;
void** v390;
void** v391;
void** v392;
void** v393;
void** v394;
void** v395;
void** v396;
void** v397;
void** v398;
void** v399;
void** v400;
void** v401;
void** v402;
void** r1_403;
void** r0_404;
void** r2_405;
void** v406;
void** v407;
void** v408;
void** v409;
void** v410;
void** v411;
void** v412;
void** v413;
void** v414;
void** v415;
void** v416;
void** v417;
void** v418;
void** v419;
void** v420;
void** v421;
void** v422;
void** v423;
void** v424;
void** v425;
void** v426;
void** v427;
void** v428;
void** v429;
void** v430;
void** r1_431;
void** r0_432;
void** r2_433;
void** v434;
void** v435;
void** v436;
void** v437;
void** v438;
void** v439;
void** v440;
void** v441;
void** v442;
void** v443;
void** v444;
void** v445;
void** v446;
void** v447;
void** v448;
void** v449;
void** v450;
void** v451;
void** v452;
void** v453;
void** v454;
void** v455;
void** v456;
void** v457;
void** v458;
void** r1_459;
void** r0_460;
void** r2_461;
void** v462;
void** v463;
void** v464;
void** v465;
void** v466;
void** v467;
void** v468;
void** v469;
void** v470;
void** v471;
void** v472;
void** v473;
void** v474;
void** v475;
void** v476;
void** v477;
void** v478;
void** v479;
void** v480;
void** v481;
void** v482;
void** v483;
void** v484;
void** v485;
void** v486;
void** r1_487;
void** r0_488;
void** r2_489;
void** v490;
void** v491;
void** v492;
void** v493;
void** v494;
void** v495;
void** v496;
void** v497;
void** v498;
void** v499;
void** v500;
void** v501;
void** v502;
void** v503;
void** v504;
void** v505;
void** v506;
void** v507;
void** v508;
void** v509;
void** v510;
void** v511;
void** v512;
void** v513;
void** v514;
void** r1_515;
void** r0_516;
void** r2_517;
void** v518;
void** v519;
void** v520;
void** v521;
void** v522;
void** v523;
void** v524;
void** v525;
void** v526;
void** v527;
void** v528;
void** v529;
void** v530;
void** v531;
void** v532;
void** v533;
void** v534;
void** v535;
void** v536;
void** v537;
void** v538;
void** v539;
void** v540;
void** v541;
void** v542;
void** r1_543;
void** r0_544;
void** r2_545;
void** v546;
void** v547;
void** v548;
void** v549;
void** v550;
void** v551;
void** v552;
void** v553;
void** v554;
void** v555;
void** v556;
void** v557;
void** v558;
void** v559;
void** v560;
void** v561;
void** v562;
void** v563;
void** v564;
void** v565;
void** v566;
void** v567;
void** v568;
void** v569;
void** v570;
void** r1_571;
void** r0_572;
void** r2_573;
void** v574;
void** v575;
void** v576;
void** v577;
void** v578;
void** v579;
void** v580;
void** v581;
void** v582;
void** v583;
void** v584;
void** v585;
void** v586;
void** v587;
void** v588;
void** v589;
void** v590;
void** v591;
void** v592;
void** v593;
void** v594;
void** v595;
void** v596;
void** v597;
void** v598;
void** r1_599;
void** r0_600;
void** r2_601;
void** v602;
void** v603;
void** v604;
void** v605;
void** v606;
void** v607;
void** v608;
void** v609;
void** v610;
void** v611;
void** v612;
void** v613;
void** v614;
void** v615;
void** v616;
void** v617;
void** v618;
void** v619;
void** v620;
void** v621;
void** v622;
void** v623;
void** v624;
void** v625;
void** v626;
void** r1_627;
void** r0_628;
void** r2_629;
void** v630;
void** v631;
void** v632;
void** v633;
void** v634;
void** v635;
void** v636;
void** v637;
void** v638;
void** v639;
void** v640;
void** v641;
void** v642;
void** v643;
void** v644;
void** v645;
void** v646;
void** v647;
void** v648;
void** v649;
void** v650;
void** v651;
void** v652;
void** v653;
void** v654;
void** r1_655;
void** r0_656;
void** r2_657;
void** v658;
void** v659;
void** v660;
void** v661;
void** v662;
void** v663;
void** v664;
void** v665;
void** v666;
void** v667;
void** v668;
void** v669;
void** v670;
void** v671;
void** v672;
void** v673;
void** v674;
void** v675;
void** v676;
void** v677;
void** v678;
void** v679;
void** v680;
void** v681;
void** v682;
void** r1_683;
void** r0_684;
void** r2_685;
void** v686;
void** v687;
void** v688;
void** v689;
void** v690;
void** v691;
void** v692;
void** v693;
void** v694;
void** v695;
void** v696;
void** v697;
void** v698;
void** v699;
void** v700;
void** v701;
void** v702;
void** v703;
void** v704;
void** v705;
void** v706;
void** v707;
void** v708;
void** v709;
void** v710;
void** r1_711;
void** r0_712;
void** r2_713;
void** v714;
void** v715;
void** v716;
void** v717;
void** v718;
void** v719;
void** v720;
void** v721;
void** v722;
void** v723;
void** v724;
void** v725;
void** v726;
void** v727;
void** v728;
void** v729;
void** v730;
void** v731;
void** v732;
void** v733;
void** v734;
void** v735;
void** v736;
void** v737;
void** v738;
void** r1_739;
void** r0_740;
void** r2_741;
void** v742;
void** v743;
void** v744;
void** v745;
void** v746;
void** v747;
void** v748;
void** v749;
void** v750;
void** v751;
void** v752;
void** v753;
void** v754;
void** v755;
void** v756;
void** v757;
void** v758;
void** v759;
void** v760;
void** v761;
void** v762;
void** v763;
void** v764;
void** v765;
void** v766;
void** r1_767;
void** r0_768;
void** r2_769;
void** v770;
void** v771;
void** v772;
void** v773;
void** v774;
void** v775;
void** v776;
void** v777;
void** v778;
void** v779;
void** v780;
void** v781;
void** v782;
void** v783;
void** v784;
void** v785;
void** v786;
void** v787;
void** v788;
void** v789;
void** v790;
void** v791;
void** v792;
void** v793;
void** v794;
void** r1_795;
void** r0_796;
void** r2_797;
void** v798;
void** v799;
void** v800;
void** v801;
void** v802;
void** v803;
void** v804;
void** v805;
void** v806;
void** v807;
void** v808;
void** v809;
void** v810;
void** v811;
void** v812;
void** v813;
void** v814;
void** v815;
void** v816;
void** v817;
void** v818;
void** v819;
void** v820;
void** v821;
void** v822;
void** r1_823;
void** r0_824;
void** r2_825;
void** v826;
void** v827;
void** v828;
void** v829;
void** v830;
void** v831;
void** v832;
void** v833;
void** v834;
void** v835;
void** v836;
void** v837;
void** v838;
void** v839;
void** v840;
void** v841;
void** v842;
void** v843;
void** v844;
void** v845;
void** v846;
void** v847;
void** v848;
void** v849;
void** v850;
void** r1_851;
void** r0_852;
void** r2_853;
void** v854;
void** v855;
void** v856;
void** v857;
void** v858;
void** v859;
void** v860;
void** v861;
void** v862;
void** v863;
void** v864;
void** v865;
void** v866;
void** v867;
void** v868;
void** v869;
void** v870;
void** v871;
void** v872;
void** v873;
void** v874;
void** v875;
void** v876;
void** v877;
void** v878;
void** r1_879;
void** r0_880;
void** r2_881;
void** v882;
void** v883;
void** v884;
void** v885;
void** v886;
void** v887;
void** v888;
void** v889;
void** v890;
void** v891;
void** v892;
void** v893;
void** v894;
void** v895;
void** v896;
void** v897;
void** v898;
void** v899;
void** v900;
void** v901;
void** v902;
void** v903;
void** v904;
void** v905;
void** v906;
void** r1_907;
void** r0_908;
void** r2_909;
void** v910;
void** v911;
void** v912;
void** v913;
void** v914;
void** v915;
void** v916;
void** v917;
void** v918;
void** v919;
void** v920;
void** v921;
void** v922;
void** v923;
void** v924;
void** v925;
void** v926;
void** v927;
void** v928;
void** v929;
void** v930;
void** v931;
void** v932;
void** v933;
void** v934;
void** r1_935;
void** r0_936;
void** r2_937;
void** v938;
void** v939;
void** v940;
void** v941;
void** v942;
void** v943;
void** v944;
void** v945;
void** v946;
void** v947;
void** v948;
void** v949;
void** v950;
void** v951;
void** v952;
void** v953;
void** v954;
void** v955;
void** v956;
void** v957;
void** v958;
void** v959;
void** v960;
void** v961;
void** v962;
void** r1_963;
void** r0_964;
void** r2_965;
void** v966;
void** v967;
void** v968;
void** v969;
void** v970;
void** v971;
void** v972;
void** v973;
void** v974;
void** v975;
void** v976;
void** v977;
void** v978;
void** v979;
void** v980;
void** v981;
void** v982;
void** v983;
void** v984;
void** v985;
void** v986;
void** v987;
void** v988;
void** v989;
void** v990;
void** r1_991;
void** r0_992;
void** r2_993;
void** v994;
void** v995;
void** v996;
void** v997;
void** v998;
void** v999;
void** v1000;
void** v1001;
void** v1002;
void** v1003;
void** v1004;
void** v1005;
void** v1006;
void** v1007;
void** v1008;
void** v1009;
void** v1010;
void** v1011;
void** v1012;
void** v1013;
void** v1014;
void** v1015;
void** v1016;
void** v1017;
void** v1018;
void** r1_1019;
void** r0_1020;
void** r2_1021;
void** v1022;
void** v1023;
void** v1024;
void** v1025;
void** v1026;
void** v1027;
void** v1028;
void** v1029;
void** v1030;
void** v1031;
void** v1032;
void** v1033;
void** v1034;
void** v1035;
void** v1036;
void** v1037;
void** v1038;
void** v1039;
void** v1040;
void** v1041;
void** v1042;
void** v1043;
void** v1044;
void** v1045;
void** v1046;
void** r1_1047;
void** r0_1048;
void** r2_1049;
void** v1050;
void** v1051;
void** v1052;
void** v1053;
void** v1054;
void** v1055;
void** v1056;
void** v1057;
void** v1058;
void** v1059;
void** v1060;
void** v1061;
void** v1062;
void** v1063;
void** v1064;
void** v1065;
void** v1066;
void** v1067;
void** v1068;
void** v1069;
void** v1070;
void** v1071;
void** v1072;
void** v1073;
void** v1074;
void** r1_1075;
void** r0_1076;
void** r2_1077;
void** v1078;
void** v1079;
void** v1080;
void** v1081;
void** v1082;
void** v1083;
void** v1084;
void** v1085;
void** v1086;
void** v1087;
void** v1088;
void** v1089;
void** v1090;
void** v1091;
void** v1092;
void** v1093;
void** v1094;
void** v1095;
void** v1096;
void** v1097;
void** v1098;
void** v1099;
void** v1100;
void** v1101;
void** v1102;
void** r1_1103;
void** r0_1104;
void** r2_1105;
void** v1106;
void** v1107;
void** v1108;
void** v1109;
void** v1110;
void** v1111;
void** v1112;
void** v1113;
void** v1114;
void** v1115;
void** v1116;
void** v1117;
void** v1118;
void** v1119;
void** v1120;
void** v1121;
void** v1122;
void** v1123;
void** v1124;
void** v1125;
void** v1126;
void** v1127;
void** v1128;
void** v1129;
void** v1130;
void** r1_1131;
void** r0_1132;
void** r2_1133;
void** v1134;
void** v1135;
void** v1136;
void** v1137;
void** v1138;
void** v1139;
void** v1140;
void** v1141;
void** v1142;
void** v1143;
void** v1144;
void** v1145;
void** v1146;
void** v1147;
void** v1148;
void** v1149;
void** v1150;
void** v1151;
void** v1152;
void** v1153;
void** v1154;
void** v1155;
void** v1156;
void** v1157;
void** v1158;
void** r1_1159;
void** r0_1160;
void** r2_1161;
void** v1162;
void** v1163;
void** v1164;
void** v1165;
void** v1166;
void** v1167;
void** v1168;
void** v1169;
void** v1170;
void** v1171;
void** v1172;
void** v1173;
void** v1174;
void** v1175;
void** v1176;
void** v1177;
void** v1178;
void** v1179;
void** v1180;
void** v1181;
void** v1182;
void** v1183;
void** v1184;
void** v1185;
void** v1186;
void** r1_1187;
void** r0_1188;
void** r2_1189;
void** v1190;
void** v1191;
void** v1192;
void** v1193;
void** v1194;
void** v1195;
void** v1196;
void** v1197;
void** v1198;
void** v1199;
void** v1200;
void** v1201;
void** v1202;
void** v1203;
void** v1204;
void** v1205;
void** v1206;
void** v1207;
void** v1208;
void** v1209;
void** v1210;
void** v1211;
void** v1212;
void** v1213;
void** v1214;
void** r1_1215;
void** r0_1216;
void** r2_1217;
void** v1218;
void** v1219;
void** v1220;
void** v1221;
void** v1222;
void** v1223;
void** v1224;
void** v1225;
void** v1226;
void** v1227;
void** v1228;
void** v1229;
void** v1230;
void** v1231;
void** v1232;
void** v1233;
void** v1234;
void** v1235;
void** v1236;
void** v1237;
void** v1238;
void** v1239;
void** v1240;
void** v1241;
void** v1242;
void** r1_1243;
void** r0_1244;
void** r2_1245;
void** v1246;
void** v1247;
void** v1248;
void** v1249;
void** v1250;
void** v1251;
void** v1252;
void** v1253;
void** v1254;
void** v1255;
void** v1256;
void** v1257;
void** v1258;
void** v1259;
void** v1260;
void** v1261;
void** v1262;
void** v1263;
void** v1264;
void** v1265;
void** v1266;
void** v1267;
void** v1268;
void** v1269;
void** v1270;
void** r1_1271;
void** r0_1272;
void** r2_1273;
void** v1274;
void** v1275;
void** v1276;
void** v1277;
void** v1278;
void** v1279;
void** v1280;
void** v1281;
void** v1282;
void** v1283;
void** v1284;
void** v1285;
void** v1286;
void** v1287;
void** v1288;
void** v1289;
void** v1290;
void** v1291;
void** v1292;
void** v1293;
void** v1294;
void** v1295;
void** v1296;
void** v1297;
void** v1298;
void** r1_1299;
void** r0_1300;
void** r2_1301;
void** v1302;
void** v1303;
void** v1304;
void** v1305;
void** v1306;
void** v1307;
void** v1308;
void** v1309;
void** v1310;
void** v1311;
void** v1312;
void** v1313;
void** v1314;
void** v1315;
void** v1316;
void** v1317;
void** v1318;
void** v1319;
void** v1320;
void** v1321;
void** v1322;
void** v1323;
void** v1324;
void** v1325;
void** v1326;
void** r1_1327;
void** r0_1328;
void** r2_1329;
void** v1330;
void** v1331;
void** v1332;
void** v1333;
void** v1334;
void** v1335;
void** v1336;
void** v1337;
void** v1338;
void** v1339;
void** v1340;
void** v1341;
void** v1342;
void** v1343;
void** v1344;
void** v1345;
void** v1346;
void** v1347;
void** v1348;
void** v1349;
void** v1350;
void** v1351;
void** v1352;
void** v1353;
void** v1354;
void** r1_1355;
void** r0_1356;
void** r2_1357;
void** v1358;
void** v1359;
void** v1360;
void** v1361;
void** v1362;
void** v1363;
void** v1364;
void** v1365;
void** v1366;
void** v1367;
void** v1368;
void** v1369;
void** v1370;
void** v1371;
void** v1372;
void** v1373;
void** v1374;
void** v1375;
void** v1376;
void** v1377;
void** v1378;
void** v1379;
void** v1380;
void** v1381;
void** v1382;
void** r1_1383;
void** r0_1384;
void** r2_1385;
void** v1386;
void** v1387;
void** v1388;
void** v1389;
void** v1390;
void** v1391;
void** v1392;
void** v1393;
void** v1394;
void** v1395;
void** v1396;
void** v1397;
void** v1398;
void** v1399;
void** v1400;
void** v1401;
void** v1402;
void** v1403;
void** v1404;
void** v1405;
void** v1406;
void** v1407;
void** v1408;
void** v1409;
void** v1410;
void** r1_1411;
void** r0_1412;
void** v1413;
void** v1414;
void** v1415;
void** v1416;
void** v1417;
void** v1418;
void** v1419;
void** v1420;
void** v1421;
void** v1422;
void** v1423;
void** v1424;
void** v1425;
void** v1426;
void** v1427;
void** v1428;
void** v1429;
void** v1430;
void** v1431;
void** v1432;
void** v1433;
void** v1434;
void** v1435;
void** v1436;
void** v1437;
r0_1 = image_base_;
r0_5 = LoadLibraryW(r0_1, r1_2, r2_3, r3_4);
if (!z6) {
r0_36 = LocalAlloc(64, 0xcc, r2_7, r3_8, r4_9, r5_10, __return_address(), v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35);
r4_37 = image_base_;
*r4_37 = r0_36;
if (r0_36) {
r1_38 = image_base_;
r0_40 = GetProcAddressW(r0_5, r1_38, r2_39);
*reinterpret_cast<void***>(*r4_37 + 20) = r0_40;
r2_41 = *r4_37;
if (!*reinterpret_cast<void***>(r2_41 + 20)) {
LocalFree(r2_41, r1_38, r2_41, *reinterpret_cast<void***>(r2_41 + 20), r4_9, r5_10, __return_address(), v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66);
r2_41 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_41) {
r1_67 = image_base_;
r0_68 = GetProcAddressW(r0_5, r1_67, r2_41);
*reinterpret_cast<void***>(*r4_37 + 0x88) = r0_68;
r2_69 = *r4_37;
if (!*reinterpret_cast<void***>(r2_69 + 0x88)) {
LocalFree(r2_69, r1_67, r2_69, *reinterpret_cast<void***>(r2_69 + 0x88), r4_9, r5_10, __return_address(), v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v80, v81, v82, v83, v84, v85, v86, v87, v88, v89, v90, v91, v92, v93, v94);
r2_69 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_69) {
r1_95 = image_base_;
r0_96 = GetProcAddressW(r0_5, r1_95, r2_69);
*reinterpret_cast<void***>(*r4_37 + 0xbc) = r0_96;
r2_97 = *r4_37;
if (!*reinterpret_cast<void***>(r2_97 + 0xbc)) {
LocalFree(r2_97, r1_95, r2_97, *reinterpret_cast<void***>(r2_97 + 0xbc), r4_9, r5_10, __return_address(), v98, v99, v100, v101, v102, v103, v104, v105, v106, v107, v108, v109, v110, v111, v112, v113, v114, v115, v116, v117, v118, v119, v120, v121, v122);
r2_97 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_97) {
r1_123 = image_base_;
r0_124 = GetProcAddressW(r0_5, r1_123, r2_97);
*reinterpret_cast<void***>(*r4_37 + 0x9c) = r0_124;
r2_125 = *r4_37;
if (!*reinterpret_cast<void***>(r2_125 + 0x9c)) {
LocalFree(r2_125, r1_123, r2_125, *reinterpret_cast<void***>(r2_125 + 0x9c), r4_9, r5_10, __return_address(), v126, v127, v128, v129, v130, v131, v132, v133, v134, v135, v136, v137, v138, v139, v140, v141, v142, v143, v144, v145, v146, v147, v148, v149, v150);
r2_125 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_125) {
r1_151 = image_base_;
r0_152 = GetProcAddressW(r0_5, r1_151, r2_125);
*reinterpret_cast<void***>(*r4_37 + 0x80) = r0_152;
r2_153 = *r4_37;
if (!*reinterpret_cast<void***>(r2_153 + 0x80)) {
LocalFree(r2_153, r1_151, r2_153, *reinterpret_cast<void***>(r2_153 + 0x80), r4_9, r5_10, __return_address(), v154, v155, v156, v157, v158, v159, v160, v161, v162, v163, v164, v165, v166, v167, v168, v169, v170, v171, v172, v173, v174, v175, v176, v177, v178);
r2_153 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_153) {
r1_179 = image_base_;
r0_180 = GetProcAddressW(r0_5, r1_179, r2_153);
*reinterpret_cast<void***>(*r4_37 + 0x70) = r0_180;
r2_181 = *r4_37;
if (!*reinterpret_cast<void***>(r2_181 + 0x70)) {
LocalFree(r2_181, r1_179, r2_181, *reinterpret_cast<void***>(r2_181 + 0x70), r4_9, r5_10, __return_address(), v182, v183, v184, v185, v186, v187, v188, v189, v190, v191, v192, v193, v194, v195, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206);
r2_181 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_181) {
r1_207 = image_base_;
r0_208 = GetProcAddressW(r0_5, r1_207, r2_181);
*reinterpret_cast<void***>(*r4_37 + 0x68) = r0_208;
r2_209 = *r4_37;
if (!*reinterpret_cast<void***>(r2_209 + 0x68)) {
LocalFree(r2_209, r1_207, r2_209, *reinterpret_cast<void***>(r2_209 + 0x68), r4_9, r5_10, __return_address(), v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, v220, v221, v222, v223, v224, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234);
r2_209 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_209) {
r1_235 = image_base_;
r0_236 = GetProcAddressW(r0_5, r1_235, r2_209);
*reinterpret_cast<void***>(*r4_37 + 16) = r0_236;
r2_237 = *r4_37;
if (!*reinterpret_cast<void***>(r2_237 + 16)) {
LocalFree(r2_237, r1_235, r2_237, *reinterpret_cast<void***>(r2_237 + 16), r4_9, r5_10, __return_address(), v238, v239, v240, v241, v242, v243, v244, v245, v246, v247, v248, v249, v250, v251, v252, v253, v254, v255, v256, v257, v258, v259, v260, v261, v262);
r2_237 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_237) {
r1_263 = image_base_;
r0_264 = GetProcAddressW(r0_5, r1_263, r2_237);
*reinterpret_cast<void***>(*r4_37 + 0x74) = r0_264;
r2_265 = *r4_37;
if (!*reinterpret_cast<void***>(r2_265 + 0x74)) {
LocalFree(r2_265, r1_263, r2_265, *reinterpret_cast<void***>(r2_265 + 0x74), r4_9, r5_10, __return_address(), v266, v267, v268, v269, v270, v271, v272, v273, v274, v275, v276, v277, v278, v279, v280, v281, v282, v283, v284, v285, v286, v287, v288, v289, v290);
r2_265 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_265) {
r1_291 = image_base_;
r0_292 = GetProcAddressW(r0_5, r1_291, r2_265);
*reinterpret_cast<void***>(*r4_37 + 40) = r0_292;
r2_293 = *r4_37;
if (!*reinterpret_cast<void***>(r2_293 + 40)) {
LocalFree(r2_293, r1_291, r2_293, *reinterpret_cast<void***>(r2_293 + 40), r4_9, r5_10, __return_address(), v294, v295, v296, v297, v298, v299, v300, v301, v302, v303, v304, v305, v306, v307, v308, v309, v310, v311, v312, v313, v314, v315, v316, v317, v318);
r2_293 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_293) {
r1_319 = image_base_;
r0_320 = GetProcAddressW(r0_5, r1_319, r2_293);
*reinterpret_cast<void***>(*r4_37 + 72) = r0_320;
r2_321 = *r4_37;
if (!*reinterpret_cast<void***>(r2_321 + 72)) {
LocalFree(r2_321, r1_319, r2_321, *reinterpret_cast<void***>(r2_321 + 72), r4_9, r5_10, __return_address(), v322, v323, v324, v325, v326, v327, v328, v329, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, v340, v341, v342, v343, v344, v345, v346);
r2_321 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_321) {
r1_347 = image_base_;
r0_348 = GetProcAddressW(r0_5, r1_347, r2_321);
*reinterpret_cast<void***>(*r4_37 + 0xa0) = r0_348;
r2_349 = *r4_37;
if (!*reinterpret_cast<void***>(r2_349 + 0xa0)) {
LocalFree(r2_349, r1_347, r2_349, *reinterpret_cast<void***>(r2_349 + 0xa0), r4_9, r5_10, __return_address(), v350, v351, v352, v353, v354, v355, v356, v357, v358, v359, v360, v361, v362, v363, v364, v365, v366, v367, v368, v369, v370, v371, v372, v373, v374);
r2_349 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_349) {
r1_375 = image_base_;
r0_376 = GetProcAddressW(r0_5, r1_375, r2_349);
*reinterpret_cast<void***>(*r4_37 + 0x84) = r0_376;
r2_377 = *r4_37;
if (!*reinterpret_cast<void***>(r2_377 + 0x84)) {
LocalFree(r2_377, r1_375, r2_377, *reinterpret_cast<void***>(r2_377 + 0x84), r4_9, r5_10, __return_address(), v378, v379, v380, v381, v382, v383, v384, v385, v386, v387, v388, v389, v390, v391, v392, v393, v394, v395, v396, v397, v398, v399, v400, v401, v402);
r2_377 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_377) {
r1_403 = image_base_;
r0_404 = GetProcAddressW(r0_5, r1_403, r2_377);
*reinterpret_cast<void***>(*r4_37 + 44) = r0_404;
r2_405 = *r4_37;
if (!*reinterpret_cast<void***>(r2_405 + 44)) {
LocalFree(r2_405, r1_403, r2_405, *reinterpret_cast<void***>(r2_405 + 44), r4_9, r5_10, __return_address(), v406, v407, v408, v409, v410, v411, v412, v413, v414, v415, v416, v417, v418, v419, v420, v421, v422, v423, v424, v425, v426, v427, v428, v429, v430);
r2_405 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_405) {
r1_431 = image_base_;
r0_432 = GetProcAddressW(r0_5, r1_431, r2_405);
*reinterpret_cast<void***>(*r4_37 + 48) = r0_432;
r2_433 = *r4_37;
if (!*reinterpret_cast<void***>(r2_433 + 48)) {
LocalFree(r2_433, r1_431, r2_433, *reinterpret_cast<void***>(r2_433 + 48), r4_9, r5_10, __return_address(), v434, v435, v436, v437, v438, v439, v440, v441, v442, v443, v444, v445, v446, v447, v448, v449, v450, v451, v452, v453, v454, v455, v456, v457, v458);
r2_433 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_433) {
r1_459 = image_base_;
r0_460 = GetProcAddressW(r0_5, r1_459, r2_433);
*reinterpret_cast<void***>(*r4_37 + 0xac) = r0_460;
r2_461 = *r4_37;
if (!*reinterpret_cast<void***>(r2_461 + 0xac)) {
LocalFree(r2_461, r1_459, r2_461, *reinterpret_cast<void***>(r2_461 + 0xac), r4_9, r5_10, __return_address(), v462, v463, v464, v465, v466, v467, v468, v469, v470, v471, v472, v473, v474, v475, v476, v477, v478, v479, v480, v481, v482, v483, v484, v485, v486);
r2_461 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_461) {
r1_487 = image_base_;
r0_488 = GetProcAddressW(r0_5, r1_487, r2_461);
*reinterpret_cast<void***>(*r4_37 + 52) = r0_488;
r2_489 = *r4_37;
if (!*reinterpret_cast<void***>(r2_489 + 52)) {
LocalFree(r2_489, r1_487, r2_489, *reinterpret_cast<void***>(r2_489 + 52), r4_9, r5_10, __return_address(), v490, v491, v492, v493, v494, v495, v496, v497, v498, v499, v500, v501, v502, v503, v504, v505, v506, v507, v508, v509, v510, v511, v512, v513, v514);
r2_489 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_489) {
r1_515 = image_base_;
r0_516 = GetProcAddressW(r0_5, r1_515, r2_489);
*reinterpret_cast<void***>(*r4_37 + 12) = r0_516;
r2_517 = *r4_37;
if (!*reinterpret_cast<void***>(r2_517 + 12)) {
LocalFree(r2_517, r1_515, r2_517, *reinterpret_cast<void***>(r2_517 + 12), r4_9, r5_10, __return_address(), v518, v519, v520, v521, v522, v523, v524, v525, v526, v527, v528, v529, v530, v531, v532, v533, v534, v535, v536, v537, v538, v539, v540, v541, v542);
r2_517 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_517) {
r1_543 = image_base_;
r0_544 = GetProcAddressW(r0_5, r1_543, r2_517);
*reinterpret_cast<void***>(*r4_37 + 0x6c) = r0_544;
r2_545 = *r4_37;
if (!*reinterpret_cast<void***>(r2_545 + 0x6c)) {
LocalFree(r2_545, r1_543, r2_545, *reinterpret_cast<void***>(r2_545 + 0x6c), r4_9, r5_10, __return_address(), v546, v547, v548, v549, v550, v551, v552, v553, v554, v555, v556, v557, v558, v559, v560, v561, v562, v563, v564, v565, v566, v567, v568, v569, v570);
r2_545 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_545) {
r1_571 = image_base_;
r0_572 = GetProcAddressW(r0_5, r1_571, r2_545);
*reinterpret_cast<void***>(*r4_37 + 0xa4) = r0_572;
r2_573 = *r4_37;
if (!*reinterpret_cast<void***>(r2_573 + 0xa4)) {
LocalFree(r2_573, r1_571, r2_573, *reinterpret_cast<void***>(r2_573 + 0xa4), r4_9, r5_10, __return_address(), v574, v575, v576, v577, v578, v579, v580, v581, v582, v583, v584, v585, v586, v587, v588, v589, v590, v591, v592, v593, v594, v595, v596, v597, v598);
r2_573 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_573) {
r1_599 = image_base_;
r0_600 = GetProcAddressW(r0_5, r1_599, r2_573);
*reinterpret_cast<void***>(*r4_37 + 0xa8) = r0_600;
r2_601 = *r4_37;
if (!*reinterpret_cast<void***>(r2_601 + 0xa8)) {
LocalFree(r2_601, r1_599, r2_601, *reinterpret_cast<void***>(r2_601 + 0xa8), r4_9, r5_10, __return_address(), v602, v603, v604, v605, v606, v607, v608, v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, v620, v621, v622, v623, v624, v625, v626);
r2_601 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_601) {
r1_627 = image_base_;
r0_628 = GetProcAddressW(r0_5, r1_627, r2_601);
*reinterpret_cast<void***>(*r4_37 + 0xc0) = r0_628;
r2_629 = *r4_37;
if (!*reinterpret_cast<void***>(r2_629 + 0xc0)) {
LocalFree(r2_629, r1_627, r2_629, *reinterpret_cast<void***>(r2_629 + 0xc0), r4_9, r5_10, __return_address(), v630, v631, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, v644, v645, v646, v647, v648, v649, v650, v651, v652, v653, v654);
r2_629 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_629) {
r1_655 = image_base_;
r0_656 = GetProcAddressW(r0_5, r1_655, r2_629);
*reinterpret_cast<void***>(*r4_37 + 36) = r0_656;
r2_657 = *r4_37;
if (!*reinterpret_cast<void***>(r2_657 + 36)) {
LocalFree(r2_657, r1_655, r2_657, *reinterpret_cast<void***>(r2_657 + 36), r4_9, r5_10, __return_address(), v658, v659, v660, v661, v662, v663, v664, v665, v666, v667, v668, v669, v670, v671, v672, v673, v674, v675, v676, v677, v678, v679, v680, v681, v682);
r2_657 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_657) {
r1_683 = image_base_;
r0_684 = GetProcAddressW(r0_5, r1_683, r2_657);
*reinterpret_cast<void***>(*r4_37 + 0x7c) = r0_684;
r2_685 = *r4_37;
if (!*reinterpret_cast<void***>(r2_685 + 0x7c)) {
LocalFree(r2_685, r1_683, r2_685, *reinterpret_cast<void***>(r2_685 + 0x7c), r4_9, r5_10, __return_address(), v686, v687, v688, v689, v690, v691, v692, v693, v694, v695, v696, v697, v698, v699, v700, v701, v702, v703, v704, v705, v706, v707, v708, v709, v710);
r2_685 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_685) {
r1_711 = image_base_;
r0_712 = GetProcAddressW(r0_5, r1_711, r2_685);
*reinterpret_cast<void***>(*r4_37 + 0xb0) = r0_712;
r2_713 = *r4_37;
if (!*reinterpret_cast<void***>(r2_713 + 0xb0)) {
LocalFree(r2_713, r1_711, r2_713, *reinterpret_cast<void***>(r2_713 + 0xb0), r4_9, r5_10, __return_address(), v714, v715, v716, v717, v718, v719, v720, v721, v722, v723, v724, v725, v726, v727, v728, v729, v730, v731, v732, v733, v734, v735, v736, v737, v738);
r2_713 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_713) {
r1_739 = image_base_;
r0_740 = GetProcAddressW(r0_5, r1_739, r2_713);
*reinterpret_cast<void***>(*r4_37 + 0xb4) = r0_740;
r2_741 = *r4_37;
if (!*reinterpret_cast<void***>(r2_741 + 0xb4)) {
LocalFree(r2_741, r1_739, r2_741, *reinterpret_cast<void***>(r2_741 + 0xb4), r4_9, r5_10, __return_address(), v742, v743, v744, v745, v746, v747, v748, v749, v750, v751, v752, v753, v754, v755, v756, v757, v758, v759, v760, v761, v762, v763, v764, v765, v766);
r2_741 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_741) {
r1_767 = image_base_;
r0_768 = GetProcAddressW(r0_5, r1_767, r2_741);
*reinterpret_cast<void***>(*r4_37 + 0xb8) = r0_768;
r2_769 = *r4_37;
if (!*reinterpret_cast<void***>(r2_769 + 0xb8)) {
LocalFree(r2_769, r1_767, r2_769, *reinterpret_cast<void***>(r2_769 + 0xb8), r4_9, r5_10, __return_address(), v770, v771, v772, v773, v774, v775, v776, v777, v778, v779, v780, v781, v782, v783, v784, v785, v786, v787, v788, v789, v790, v791, v792, v793, v794);
r2_769 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_769) {
r1_795 = image_base_;
r0_796 = GetProcAddressW(r0_5, r1_795, r2_769);
*reinterpret_cast<void***>(*r4_37 + 4) = r0_796;
r2_797 = *r4_37;
if (!*reinterpret_cast<void***>(r2_797 + 4)) {
LocalFree(r2_797, r1_795, r2_797, *reinterpret_cast<void***>(r2_797 + 4), r4_9, r5_10, __return_address(), v798, v799, v800, v801, v802, v803, v804, v805, v806, v807, v808, v809, v810, v811, v812, v813, v814, v815, v816, v817, v818, v819, v820, v821, v822);
r2_797 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_797) {
r1_823 = image_base_;
r0_824 = GetProcAddressW(r0_5, r1_823, r2_797);
*reinterpret_cast<void***>(*r4_37 + 100) = r0_824;
r2_825 = *r4_37;
if (!*reinterpret_cast<void***>(r2_825 + 100)) {
LocalFree(r2_825, r1_823, r2_825, *reinterpret_cast<void***>(r2_825 + 100), r4_9, r5_10, __return_address(), v826, v827, v828, v829, v830, v831, v832, v833, v834, v835, v836, v837, v838, v839, v840, v841, v842, v843, v844, v845, v846, v847, v848, v849, v850);
r2_825 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_825) {
r1_851 = image_base_;
r0_852 = GetProcAddressW(r0_5, r1_851, r2_825);
*reinterpret_cast<void***>(*r4_37 + 56) = r0_852;
r2_853 = *r4_37;
if (!*reinterpret_cast<void***>(r2_853 + 56)) {
LocalFree(r2_853, r1_851, r2_853, *reinterpret_cast<void***>(r2_853 + 56), r4_9, r5_10, __return_address(), v854, v855, v856, v857, v858, v859, v860, v861, v862, v863, v864, v865, v866, v867, v868, v869, v870, v871, v872, v873, v874, v875, v876, v877, v878);
r2_853 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_853) {
r1_879 = image_base_;
r0_880 = GetProcAddressW(r0_5, r1_879, r2_853);
*reinterpret_cast<void***>(*r4_37 + 76) = r0_880;
r2_881 = *r4_37;
if (!*reinterpret_cast<void***>(r2_881 + 76)) {
LocalFree(r2_881, r1_879, r2_881, *reinterpret_cast<void***>(r2_881 + 76), r4_9, r5_10, __return_address(), v882, v883, v884, v885, v886, v887, v888, v889, v890, v891, v892, v893, v894, v895, v896, v897, v898, v899, v900, v901, v902, v903, v904, v905, v906);
r2_881 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_881) {
r1_907 = image_base_;
r0_908 = GetProcAddressW(r0_5, r1_907, r2_881);
*reinterpret_cast<void***>(*r4_37 + 0xc4) = r0_908;
r2_909 = *r4_37;
if (!*reinterpret_cast<void***>(r2_909 + 0xc4)) {
LocalFree(r2_909, r1_907, r2_909, *reinterpret_cast<void***>(r2_909 + 0xc4), r4_9, r5_10, __return_address(), v910, v911, v912, v913, v914, v915, v916, v917, v918, v919, v920, v921, v922, v923, v924, v925, v926, v927, v928, v929, v930, v931, v932, v933, v934);
r2_909 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_909) {
r1_935 = image_base_;
r0_936 = GetProcAddressW(r0_5, r1_935, r2_909);
*reinterpret_cast<void***>(*r4_37 + 64) = r0_936;
r2_937 = *r4_37;
if (!*reinterpret_cast<void***>(r2_937 + 64)) {
LocalFree(r2_937, r1_935, r2_937, *reinterpret_cast<void***>(r2_937 + 64), r4_9, r5_10, __return_address(), v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, v948, v949, v950, v951, v952, v953, v954, v955, v956, v957, v958, v959, v960, v961, v962);
r2_937 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_937) {
r1_963 = image_base_;
r0_964 = GetProcAddressW(r0_5, r1_963, r2_937);
*reinterpret_cast<void***>(*r4_37 + 24) = r0_964;
r2_965 = *r4_37;
if (!*reinterpret_cast<void***>(r2_965 + 24)) {
LocalFree(r2_965, r1_963, r2_965, *reinterpret_cast<void***>(r2_965 + 24), r4_9, r5_10, __return_address(), v966, v967, v968, v969, v970, v971, v972, v973, v974, v975, v976, v977, v978, v979, v980, v981, v982, v983, v984, v985, v986, v987, v988, v989, v990);
r2_965 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_965) {
r1_991 = image_base_;
r0_992 = GetProcAddressW(r0_5, r1_991, r2_965);
*reinterpret_cast<void***>(*r4_37 + 0x94) = r0_992;
r2_993 = *r4_37;
if (!*reinterpret_cast<void***>(r2_993 + 0x94)) {
LocalFree(r2_993, r1_991, r2_993, *reinterpret_cast<void***>(r2_993 + 0x94), r4_9, r5_10, __return_address(), v994, v995, v996, v997, v998, v999, v1000, v1001, v1002, v1003, v1004, v1005, v1006, v1007, v1008, v1009, v1010, v1011, v1012, v1013, v1014, v1015, v1016, v1017, v1018);
r2_993 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_993) {
r1_1019 = image_base_;
r0_1020 = GetProcAddressW(r0_5, r1_1019, r2_993);
*reinterpret_cast<void***>(*r4_37 + 0x8c) = r0_1020;
r2_1021 = *r4_37;
if (!*reinterpret_cast<void***>(r2_1021 + 0x8c)) {
LocalFree(r2_1021, r1_1019, r2_1021, *reinterpret_cast<void***>(r2_1021 + 0x8c), r4_9, r5_10, __return_address(), v1022, v1023, v1024, v1025, v1026, v1027, v1028, v1029, v1030, v1031, v1032, v1033, v1034, v1035, v1036, v1037, v1038, v1039, v1040, v1041, v1042, v1043, v1044, v1045, v1046);
r2_1021 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_1021) {
r1_1047 = image_base_;
r0_1048 = GetProcAddressW(r0_5, r1_1047, r2_1021);
*reinterpret_cast<void***>(*r4_37 + 60) = r0_1048;
r2_1049 = *r4_37;
if (!*reinterpret_cast<void***>(r2_1049 + 60)) {
LocalFree(r2_1049, r1_1047, r2_1049, *reinterpret_cast<void***>(r2_1049 + 60), r4_9, r5_10, __return_address(), v1050, v1051, v1052, v1053, v1054, v1055, v1056, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, v1066, v1067, v1068, v1069, v1070, v1071, v1072, v1073, v1074);
r2_1049 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_1049) {
r1_1075 = image_base_;
r0_1076 = GetProcAddressW(r0_5, r1_1075, r2_1049);
*reinterpret_cast<void***>(*r4_37 + 32) = r0_1076;
r2_1077 = *r4_37;
if (!*reinterpret_cast<void***>(r2_1077 + 32)) {
LocalFree(r2_1077, r1_1075, r2_1077, *reinterpret_cast<void***>(r2_1077 + 32), r4_9, r5_10, __return_address(), v1078, v1079, v1080, v1081, v1082, v1083, v1084, v1085, v1086, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, v1097, v1098, v1099, v1100, v1101, v1102);
r2_1077 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_1077) {
r1_1103 = image_base_;
r0_1104 = GetProcAddressW(r0_5, r1_1103, r2_1077);
*reinterpret_cast<void***>(*r4_37 + 0x78) = r0_1104;
r2_1105 = *r4_37;
if (!*reinterpret_cast<void***>(r2_1105 + 0x78)) {
LocalFree(r2_1105, r1_1103, r2_1105, *reinterpret_cast<void***>(r2_1105 + 0x78), r4_9, r5_10, __return_address(), v1106, v1107, v1108, v1109, v1110, v1111, v1112, v1113, v1114, v1115, v1116, v1117, v1118, v1119, v1120, v1121, v1122, v1123, v1124, v1125, v1126, v1127, v1128, v1129, v1130);
r2_1105 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_1105) {
r1_1131 = image_base_;
r0_1132 = GetProcAddressW(r0_5, r1_1131, r2_1105);
*reinterpret_cast<void***>(*r4_37 + 80) = r0_1132;
r2_1133 = *r4_37;
if (!*reinterpret_cast<void***>(r2_1133 + 80)) {
LocalFree(r2_1133, r1_1131, r2_1133, *reinterpret_cast<void***>(r2_1133 + 80), r4_9, r5_10, __return_address(), v1134, v1135, v1136, v1137, v1138, v1139, v1140, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1149, v1150, v1151, v1152, v1153, v1154, v1155, v1156, v1157, v1158);
r2_1133 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_1133) {
r1_1159 = image_base_;
r0_1160 = GetProcAddressW(r0_5, r1_1159, r2_1133);
*reinterpret_cast<void***>(*r4_37 + 88) = r0_1160;
r2_1161 = *r4_37;
if (!*reinterpret_cast<void***>(r2_1161 + 88)) {
LocalFree(r2_1161, r1_1159, r2_1161, *reinterpret_cast<void***>(r2_1161 + 88), r4_9, r5_10, __return_address(), v1162, v1163, v1164, v1165, v1166, v1167, v1168, v1169, v1170, v1171, v1172, v1173, v1174, v1175, v1176, v1177, v1178, v1179, v1180, v1181, v1182, v1183, v1184, v1185, v1186);
r2_1161 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_1161) {
r1_1187 = image_base_;
r0_1188 = GetProcAddressW(r0_5, r1_1187, r2_1161);
*reinterpret_cast<void***>(*r4_37 + 92) = r0_1188;
r2_1189 = *r4_37;
if (!*reinterpret_cast<void***>(r2_1189 + 92)) {
LocalFree(r2_1189, r1_1187, r2_1189, *reinterpret_cast<void***>(r2_1189 + 92), r4_9, r5_10, __return_address(), v1190, v1191, v1192, v1193, v1194, v1195, v1196, v1197, v1198, v1199, v1200, v1201, v1202, v1203, v1204, v1205, v1206, v1207, v1208, v1209, v1210, v1211, v1212, v1213, v1214);
r2_1189 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_1189) {
r1_1215 = image_base_;
r0_1216 = GetProcAddressW(r0_5, r1_1215, r2_1189);
*reinterpret_cast<void***>(*r4_37 + 96) = r0_1216;
r2_1217 = *r4_37;
if (!*reinterpret_cast<void***>(r2_1217 + 96)) {
LocalFree(r2_1217, r1_1215, r2_1217, *reinterpret_cast<void***>(r2_1217 + 96), r4_9, r5_10, __return_address(), v1218, v1219, v1220, v1221, v1222, v1223, v1224, v1225, v1226, v1227, v1228, v1229, v1230, v1231, v1232, v1233, v1234, v1235, v1236, v1237, v1238, v1239, v1240, v1241, v1242);
r2_1217 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_1217) {
r1_1243 = image_base_;
r0_1244 = GetProcAddressW(r0_5, r1_1243, r2_1217);
*reinterpret_cast<void***>(*r4_37 + 84) = r0_1244;
r2_1245 = *r4_37;
if (!*reinterpret_cast<void***>(r2_1245 + 84)) {
LocalFree(r2_1245, r1_1243, r2_1245, *reinterpret_cast<void***>(r2_1245 + 84), r4_9, r5_10, __return_address(), v1246, v1247, v1248, v1249, v1250, v1251, v1252, v1253, v1254, v1255, v1256, v1257, v1258, v1259, v1260, v1261, v1262, v1263, v1264, v1265, v1266, v1267, v1268, v1269, v1270);
r2_1245 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_1245) {
r1_1271 = image_base_;
r0_1272 = GetProcAddressW(r0_5, r1_1271, r2_1245);
*reinterpret_cast<void***>(*r4_37 + 0x90) = r0_1272;
r2_1273 = *r4_37;
if (!*reinterpret_cast<void***>(r2_1273 + 0x90)) {
LocalFree(r2_1273, r1_1271, r2_1273, *reinterpret_cast<void***>(r2_1273 + 0x90), r4_9, r5_10, __return_address(), v1274, v1275, v1276, v1277, v1278, v1279, v1280, v1281, v1282, v1283, v1284, v1285, v1286, v1287, v1288, v1289, v1290, v1291, v1292, v1293, v1294, v1295, v1296, v1297, v1298);
r2_1273 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_1273) {
r1_1299 = image_base_;
r0_1300 = GetProcAddressW(r0_5, r1_1299, r2_1273);
*reinterpret_cast<void***>(*r4_37 + 0x98) = r0_1300;
r2_1301 = *r4_37;
if (!*reinterpret_cast<void***>(r2_1301 + 0x98)) {
LocalFree(r2_1301, r1_1299, r2_1301, *reinterpret_cast<void***>(r2_1301 + 0x98), r4_9, r5_10, __return_address(), v1302, v1303, v1304, v1305, v1306, v1307, v1308, v1309, v1310, v1311, v1312, v1313, v1314, v1315, v1316, v1317, v1318, v1319, v1320, v1321, v1322, v1323, v1324, v1325, v1326);
r2_1301 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_1301) {
r1_1327 = image_base_;
r0_1328 = GetProcAddressW(r0_5, r1_1327, r2_1301);
*reinterpret_cast<void***>(*r4_37 + 8) = r0_1328;
r2_1329 = *r4_37;
if (!*reinterpret_cast<void***>(r2_1329 + 8)) {
LocalFree(r2_1329, r1_1327, r2_1329, *reinterpret_cast<void***>(r2_1329 + 8), r4_9, r5_10, __return_address(), v1330, v1331, v1332, v1333, v1334, v1335, v1336, v1337, v1338, v1339, v1340, v1341, v1342, v1343, v1344, v1345, v1346, v1347, v1348, v1349, v1350, v1351, v1352, v1353, v1354);
r2_1329 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_1329) {
r1_1355 = image_base_;
r0_1356 = GetProcAddressW(r0_5, r1_1355, r2_1329);
*reinterpret_cast<void***>(*r4_37 + 68) = r0_1356;
r2_1357 = *r4_37;
if (!*reinterpret_cast<void***>(r2_1357 + 68)) {
LocalFree(r2_1357, r1_1355, r2_1357, *reinterpret_cast<void***>(r2_1357 + 68), r4_9, r5_10, __return_address(), v1358, v1359, v1360, v1361, v1362, v1363, v1364, v1365, v1366, v1367, v1368, v1369, v1370, v1371, v1372, v1373, v1374, v1375, v1376, v1377, v1378, v1379, v1380, v1381, v1382);
r2_1357 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_1357) {
r1_1383 = image_base_;
r0_1384 = GetProcAddressW(r0_5, r1_1383, r2_1357);
*reinterpret_cast<void***>(*r4_37 + 28) = r0_1384;
r2_1385 = *r4_37;
if (!*reinterpret_cast<void***>(r2_1385 + 28)) {
LocalFree(r2_1385, r1_1383, r2_1385, *reinterpret_cast<void***>(r2_1385 + 28), r4_9, r5_10, __return_address(), v1386, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, v1396, v1397, v1398, v1399, v1400, v1401, v1402, v1403, v1404, v1405, v1406, v1407, v1408, v1409, v1410);
r2_1385 = reinterpret_cast<void**>(0);
*r4_37 = reinterpret_cast<void**>(0);
}
if (r2_1385) {
r1_1411 = image_base_;
r0_1412 = GetProcAddressW(r0_5, r1_1411, r2_1385);
*reinterpret_cast<void***>(*r4_37 + 0xc8) = r0_1412;
if (!*reinterpret_cast<void***>(*r4_37 + 0xc8)) {
LocalFree(*r4_37, r1_1411, r2_1385, *reinterpret_cast<void***>(*r4_37 + 0xc8), r4_9, r5_10, __return_address(), v1413, v1414, v1415, v1416, v1417, v1418, v1419, v1420, v1421, v1422, v1423, v1424, v1425, v1426, v1427, v1428, v1429, v1430, v1431, v1432, v1433, v1434, v1435, v1436, v1437);
*r4_37 = reinterpret_cast<void**>(0);
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
return 1;
}
struct s46 {
signed char[56] pad56;
int32_t f38;
};
/* (image base) */
struct s46** image_base_ = reinterpret_cast<struct s46**>(0x1007adb4);
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007ad24);
struct s47 {
signed char[68] pad68;
int32_t f44;
};
/* (image base) */
struct s47** image_base_ = reinterpret_cast<struct s47**>(0x1007ad28);
int32_t g1001f814 = 0xf000afc0;
void CeOpenDatabaseEx2(unsigned char* r0, int32_t r1, int32_t r2, void* r3, int32_t a5, void* a6, int32_t a7, int32_t a8, int32_t a9, int32_t a10) {
struct s46** lr11;
int32_t r5_12;
void** r3_13;
int32_t* r3_14;
struct s47** r3_15;
int32_t r4_16;
int32_t r4_17;
lr11 = image_base_;
if (*lr11) {
if (r0) {
if (static_cast<uint32_t>(*r0) == 0xff) {
r5_12 = (*lr11)->f38;
goto r5_12;
}
}
}
r3_13 = gffffc800;
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r3_13 + 0xffffffec)) & 1) {
r3_14 = image_base_;
if (*r3_14) {
r3_15 = image_base_;
r4_16 = (*r3_15)->f44;
goto r4_16;
}
}
r4_17 = g1001f814;
goto r4_17;
}
/* (image base) */
void*** image_base_ = reinterpret_cast<void***>(0x1007a798);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(88);
void** fun_100201b8() {
void*** r4_1;
void** r0_2;
void** r4_3;
void** r5_4;
void** v5;
void** r0_6;
void** r0_7;
r4_1 = image_base_;
if (!reinterpret_cast<int1_t>(*r4_1 == -1)) {
goto addr_10020204_3;
} else {
r0_2 = image_base_;
r0_6 = CreateFileW(r0_2, 0, 0, 0, 3, 0, 0, r4_3, r5_4, __return_address(), v5);
*r4_1 = r0_6;
if (r0_6 == -1) {
r0_7 = reinterpret_cast<void**>(0);
} else {
addr_10020204_3:
r0_7 = reinterpret_cast<void**>(1);
}
return r0_7;
}
}
/* (image base) */
void*** image_base_ = reinterpret_cast<void***>(0x1007a798);
void** g100206e4 = reinterpret_cast<void**>(28);
void** DeviceIoControl(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19);
void** CeEventHasOccurred(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9) {
void** r0_10;
void*** r3_11;
void** r1_12;
void** r0_13;
void** r4_14;
void** r5_15;
void** r0_16;
r0_10 = fun_100201b8();
if (r0_10) {
r3_11 = image_base_;
r1_12 = g100206e4;
r0_13 = *r3_11;
r0_16 = DeviceIoControl(r0_13, r1_12, reinterpret_cast<int32_t>(__zero_stack_offset()) - 12 - 32 + 16, 16, 0, 0, 0, 0, r0, r1, 0, 0, r4_14, r5_15, __return_address(), a5, a6, a7, a8);
} else {
SetLastError(0x426, r1, r2, r3);
r0_16 = reinterpret_cast<void**>(0);
}
return r0_16;
}
struct s48 {
int16_t f0;
int16_t f2;
int16_t f4;
signed char[2] pad8;
int32_t f8;
signed char[8] pad20;
uint32_t f14;
};
struct s49 {
int32_t f0;
uint32_t f4;
};
void fun_100208a0(struct s48* r0, struct s49* r1, uint32_t r2) {
uint32_t lr4;
int1_t z5;
uint32_t r2_6;
uint32_t r3_7;
int1_t z8;
lr4 = r2;
if (!z5) {
r2_6 = 0;
while (r2_6 >= 4) {
r0->f0 = 1;
r0->f2 = 1;
r0->f8 = r1->f0;
r3_7 = r1->f4;
++r1;
z8 = (r3_7 & 0x200) == 0;
r0->f14 = r3_7;
if (!z8) {
__asm__("bicne r3, r3, #0x200");
}
if (!z8) {
r0->f14 = r3_7;
}
r2_6 = r2_6 + 1 << 16 >> 16;
if (!z8) {
r0->f4 = 0x200;
}
if (z8) {
r0->f4 = 0;
}
r0 = reinterpret_cast<struct s48*>(reinterpret_cast<int32_t>(r0) + 32);
if (r2_6 < lr4)
goto addr_1002090c_14;
}
goto label_16;
}
addr_1002090c_14:
return;
label_16:
goto addr_1002090c_14;
}
struct s50 {
void** f0;
signed char[3] pad4;
void** f4;
signed char[69] pad74;
uint16_t f4a;
signed char[12] pad88;
int32_t f58;
};
int32_t g10020b90 = 0xf000afc4;
void CeSetDatabaseInfoEx(int32_t r0, int32_t r1, struct s50* r2) {
void* r11_4;
void** r3_5;
void** v6;
uint32_t r2_7;
int32_t r3_8;
r11_4 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 8 - 24 + 24);
r3_5 = r2->f0;
wcsncpy(reinterpret_cast<int32_t>(r11_4) - 0xec, &r2->f4, 31, r3_5, v6);
r2_7 = r2->f4a;
fun_100208a0(reinterpret_cast<int32_t>(r11_4) - 0x98, &r2->f58, r2_7);
r3_8 = g10020b90;
goto r3_8;
}
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007ad24);
struct s51 {
signed char[80] pad80;
int32_t f50;
};
/* (image base) */
struct s51** image_base_ = reinterpret_cast<struct s51**>(0x1007ad28);
int32_t g10020e58 = 0xf000afb8;
void** RegCreateKeyExW(int32_t r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15) {
void** lr16;
int32_t* lr17;
struct s51** lr18;
int32_t r7_19;
int32_t r4_20;
lr16 = gffffc800;
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(lr16 + 0xffffffec)) & 1) {
lr17 = image_base_;
if (*lr17) {
lr18 = image_base_;
r7_19 = (*lr18)->f50;
goto r7_19;
}
}
r4_20 = g10020e58;
goto r4_20;
}
int32_t g10020e7c = 0xf000afb4;
void** RegDeleteKeyW(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10) {
int32_t r3_11;
r3_11 = g10020e7c;
goto r3_11;
}
int32_t g10020e98 = 0xf000afb0;
void RegDeleteValueW(int32_t r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9) {
int32_t r3_10;
r3_10 = g10020e98;
goto r3_10;
}
int32_t g10020edc = 0xf000afac;
int32_t RegEnumValueW(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8) {
int32_t r7_9;
r7_9 = g10020edc;
goto r7_9;
}
int32_t g10020f20 = 0xf000afa8;
void** RegEnumKeyExW(int32_t r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12) {
int32_t r7_13;
r7_13 = g10020f20;
goto r7_13;
}
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007ad24);
struct s52 {
signed char[52] pad52;
int32_t f34;
};
/* (image base) */
struct s52** image_base_ = reinterpret_cast<struct s52**>(0x1007ad28);
int32_t g10020fb0 = 0xf000afa4;
void** RegOpenKeyExW(int32_t r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, ...) {
void** lr9;
int32_t* lr10;
struct s52** lr11;
struct s52* lr12;
int32_t r4_13;
lr9 = gffffc800;
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(lr9 + 0xffffffec)) & 1) {
lr10 = image_base_;
if (*lr10) {
lr11 = image_base_;
lr12 = *lr11;
goto lr12->f34;
}
}
r4_13 = g10020fb0;
goto r4_13;
}
int32_t g1002101c = 0xf000afa0;
void** RegQueryInfoKeyW(int32_t r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12) {
int32_t r11_13;
r11_13 = g1002101c;
goto r11_13;
}
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007ad24);
struct s53 {
signed char[56] pad56;
int32_t f38;
};
/* (image base) */
struct s53** image_base_ = reinterpret_cast<struct s53**>(0x1007ad28);
int32_t g100210c4 = 0xf000af9c;
void** RegQueryValueExW(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, ...) {
void** lr9;
int32_t* lr10;
struct s53** lr11;
struct s53* lr12;
int32_t r4_13;
lr9 = gffffc800;
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(lr9 + 0xffffffec)) & 1) {
lr10 = image_base_;
if (*lr10) {
lr11 = image_base_;
lr12 = *lr11;
goto lr12->f38;
}
}
r4_13 = g100210c4;
goto r4_13;
}
int32_t g10021100 = 0xf000af98;
void** RegSetValueExW(int32_t r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15) {
int32_t r5_16;
r5_16 = g10021100;
goto r5_16;
}
int32_t g100211c8 = 0xf000aeec;
int32_t GetUserDirectory(void** r0, void** r1) {
int32_t r3_3;
r3_3 = g100211c8;
goto r3_3;
}
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007ad24);
struct s54 {
signed char[84] pad84;
int32_t f54;
};
/* (image base) */
struct s54** image_base_ = reinterpret_cast<struct s54**>(0x1007ad28);
int32_t g100214b4 = 0xf000e3d4;
void** DeviceIoControl(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19) {
void** lr20;
int32_t* lr21;
struct s54** lr22;
int32_t r6_23;
int32_t r4_24;
lr20 = gffffc800;
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(lr20 + 0xffffffec)) & 1) {
lr21 = image_base_;
if (*lr21) {
lr22 = image_base_;
r6_23 = (*lr22)->f54;
goto r6_23;
}
}
r4_24 = g100214b4;
goto r4_24;
}
int32_t g100214d8 = 0xf000afe4;
void** GetFileAttributesW(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, ...) {
int32_t r3_9;
r3_9 = g100214d8;
goto r3_9;
}
struct s55 {
uint16_t f0;
uint16_t f2;
};
int32_t g100214f4 = 0xf000afe0;
void** FindFirstFileW(struct s55* r0, void** r1) {
int32_t r3_3;
r3_3 = g100214f4;
goto r3_3;
}
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007ad24);
struct s56 {
signed char[60] pad60;
int32_t f3c;
};
/* (image base) */
struct s56** image_base_ = reinterpret_cast<struct s56**>(0x1007ad28);
int32_t g1002163c = 0xf000afdc;
void** CreateFileW(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11) {
void** lr12;
int32_t* lr13;
struct s56** lr14;
struct s56* lr15;
int32_t r4_16;
int32_t r4_17;
lr12 = gffffc800;
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(lr12 + 0xffffffec)) & 1) {
lr13 = image_base_;
if (*lr13) {
lr14 = image_base_;
lr15 = *lr14;
r4_16 = lr15->f3c;
goto r4_16;
}
}
r4_17 = g1002163c;
goto r4_17;
}
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007ad24);
struct s57 {
signed char[64] pad64;
int32_t f40;
};
/* (image base) */
struct s57** image_base_ = reinterpret_cast<struct s57**>(0x1007ad28);
int32_t g100216d4 = 0xf000e3f8;
void** ReadFile(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7) {
void** lr8;
int32_t* lr9;
struct s57** lr10;
struct s57* lr11;
int32_t r4_12;
lr8 = gffffc800;
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(lr8 + 0xffffffec)) & 1) {
lr9 = image_base_;
if (*lr9) {
lr10 = image_base_;
lr11 = *lr10;
goto lr11->f40;
}
}
r4_12 = g100216d4;
goto r4_12;
}
int32_t g10021708 = 0xf000e3f4;
void** WriteFile(void** r0, void** r1, void** r2, void** r3, void** a5) {
int32_t r4_6;
r4_6 = g10021708;
goto r4_6;
}
int32_t g10021724 = 0xf000e3ec;
void** SetFilePointer(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10) {
int32_t r4_11;
r4_11 = g10021724;
goto r4_11;
}
void** gffffcb68;
void CeLogData(int32_t r0, void** r1, void** r2, void** r3, int32_t a5, int32_t a6, int16_t a7, int32_t a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, int32_t a17);
void fun_10021850(void** r0, void** r1, void** r2, void** r3, int32_t a5, int32_t a6, int32_t a7, int32_t a8) {
void** lr9;
void** r3_10;
void** r2_11;
void** r4_12;
lr9 = gffffcb68;
if (reinterpret_cast<unsigned char>(lr9) & 0x20000000) {
if (reinterpret_cast<unsigned char>(lr9) & 0x8800) {
r3_10 = gffffc80c;
r2_11 = gffffc808;
CeLogData(1, 25, reinterpret_cast<int32_t>(__zero_stack_offset()) - 8 - 40 + 16, 24, 0, 0x8800, 0, 0, r0, r1, r2, r3, r2_11, r3_10, r4_12, __return_address(), a5);
}
}
return;
}
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007a7a0);
void** LocalSize(void** r0) {
int32_t* lr2;
lr2 = image_base_;
goto *lr2;
}
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007a79c);
void** LocalFree(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23, void** a24, void** a25, void** a26, void** a27, void** a28, void** a29, void** a30, void** a31, void** a32, ...) {
int1_t z33;
int32_t* r1_34;
if (!z33) {
r1_34 = image_base_;
goto *r1_34;
}
if (!0)
goto addr_10021d00_6;
r0 = reinterpret_cast<void**>(87);
addr_10021d00_6:
if (0) {
SetLastError(r0, r1, r2, r3);
}
return 0;
}
int32_t fun_10021e70(uint32_t r0, void** r1, void** r2, void** r3, int32_t a5) {
void** lr6;
uint32_t r2_7;
void** r7_8;
int1_t z9;
void** r6_10;
void** r5_11;
int1_t z12;
lr6 = gffffcb04;
r2_7 = -static_cast<uint32_t>(reinterpret_cast<unsigned char>(lr6));
r7_8 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(lr6) + reinterpret_cast<unsigned char>(r2) - 1 & r2_7);
z9 = r7_8 == 0;
if (z9) {
r6_10 = reinterpret_cast<void**>(0x2f000);
}
r5_11 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(lr6) + reinterpret_cast<unsigned char>(r1) - 1 & r2_7);
if (!z9) {
r6_10 = r7_8;
}
z12 = r5_11 == 0;
if (z12) {
r5_11 = gffffcb04;
}
if (!z12) {
if (reinterpret_cast<unsigned char>(r5_11) > reinterpret_cast<unsigned char>(r6_10)) {
}
}
goto r3;
}
void** fun_100221ac(void** r0, void** r1, void** r2, void** r3, void** a5) {
void** r7_6;
void** r6_7;
void** r0_8;
void** r3_9;
void** r1_10;
int1_t less_or_equal11;
void** r2_12;
int1_t z13;
void** r3_14;
void** r2_15;
uint1_t less_or_equal16;
void** r4_17;
void** r5_18;
void** r6_19;
void** r7_20;
void** r8_21;
void** r9_22;
void** r10_23;
r7_6 = r2;
r6_7 = r1;
r0_8 = reinterpret_cast<void**>(-static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r6_7))));
if (reinterpret_cast<signed char>(r0_8) < reinterpret_cast<signed char>(r7_6)) {
goto *reinterpret_cast<void***>(*reinterpret_cast<void***>(r0 + 16) + 20);
}
r3_9 = r7_6 + 8;
if (reinterpret_cast<signed char>(r0_8) > reinterpret_cast<signed char>(r3_9))
goto addr_1002226c_5;
r7_6 = r0_8;
addr_1002226c_5:
r1_10 = a5;
less_or_equal11 = reinterpret_cast<signed char>(r0_8) <= reinterpret_cast<signed char>(r7_6);
if (!less_or_equal11) {
r3_9 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r7_6) - reinterpret_cast<unsigned char>(r0_8));
}
r2_12 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r6_7) + reinterpret_cast<unsigned char>(r7_6));
if (!less_or_equal11) {
__asm__("stmgt r2, {r3, r8}");
}
z13 = r1_10 == 0;
if (!z13) {
r3_9 = *reinterpret_cast<void***>(r1_10);
}
if (!z13) {
r6_7 = r1_10;
}
if (!z13) {
r3_9 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r3_9) + reinterpret_cast<unsigned char>(r7_6));
}
if (!z13) {
*reinterpret_cast<void***>(r1_10) = r3_9;
}
if (z13) {
*reinterpret_cast<void***>(r6_7) = r7_6;
}
if (reinterpret_cast<signed char>(*reinterpret_cast<void***>(r2_12)) <= reinterpret_cast<signed char>(0)) {
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r0)) > reinterpret_cast<unsigned char>(r2_12)) {
*reinterpret_cast<void***>(r0) = r2_12;
}
if (!*reinterpret_cast<int32_t*>(reinterpret_cast<unsigned char>(r2_12) + reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r2_12)))) {
*reinterpret_cast<void***>(r0 + 12) = r2_12;
}
}
r3_14 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r6_7)) - reinterpret_cast<unsigned char>(r3));
r2_15 = r3_14 - 8;
less_or_equal16 = reinterpret_cast<uint1_t>(reinterpret_cast<uint1_t>(reinterpret_cast<signed char>(r2_15) < reinterpret_cast<signed char>(0) != __intrinsic()) | reinterpret_cast<uint1_t>(r2_15 == 0));
if (!less_or_equal16) {
r3_14 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r6_7) + reinterpret_cast<unsigned char>(r3));
}
if (!less_or_equal16) {
r0_8 = r3_14 + 8;
}
if (!less_or_equal16) {
r1_10 = reinterpret_cast<void**>(0);
}
if (!less_or_equal16) {
memset(r0_8, r1_10, r2_15, r3_14, r4_17, r5_18, r6_19, r7_20, r8_21, r9_22, r10_23, __return_address(), a5);
}
return r6_7;
}
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007a7a8);
void** HeapAlloc(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9) {
int32_t* r3_10;
r3_10 = image_base_;
goto *r3_10;
}
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007b264);
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007a7a8);
int32_t HeapAllocTrace(int32_t r0, void** r1, void** r2, void** r3, void** a5) {
int32_t* r4_6;
int32_t* r3_7;
int32_t r4_8;
r4_6 = image_base_;
if (!*r4_6) {
r3_7 = image_base_;
goto *r3_7;
} else {
r4_8 = *r4_6;
goto r4_8;
}
}
void** g10022808 = reinterpret_cast<void**>(72);
void** fun_100222e8(void* r0, void** r1, void** r2);
void** fun_100223e0(void* r0, void** r1, void** r2);
void** fun_10022038(void* r0, void** r1, void** r2);
void** fun_100218dc(void** r0, void** r1, void** r2, void** r3, void** a5);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x1007b254);
void** Int_HeapAlloc(void** r0, void** r1, void** r2) {
void** v4;
void** r4_5;
void** v6;
void** r5_7;
void** v8;
void** r6_9;
void** v10;
void** r7_11;
void** v12;
void** r8_13;
void** v14;
void** r9_15;
void** v16;
void** r10_17;
void** v18;
void** r7_19;
void** r10_20;
void** r5_21;
int1_t z22;
void** r3_23;
void* r9_24;
int1_t below_or_equal25;
void** r4_26;
void** r2_27;
void** r1_28;
void** r0_29;
void** v30;
void** r6_31;
int1_t z32;
void** r8_33;
void** r8_34;
void** r8_35;
void** r0_36;
int1_t z37;
void** r8_38;
void** r0_39;
uint32_t r3_40;
uint32_t r8_41;
uint32_t r8_42;
void** r3_43;
int1_t z44;
void** r8_45;
void** r0_46;
void** r8_47;
void** r0_48;
void** r3_49;
int1_t z50;
void** r3_51;
v4 = r4_5;
v6 = r5_7;
v8 = r6_9;
v10 = r7_11;
v12 = r8_13;
v14 = r9_15;
v16 = r10_17;
v18 = reinterpret_cast<void**>(__return_address());
r7_19 = r2;
r10_20 = r1;
r5_21 = r0;
z22 = reinterpret_cast<int1_t>(r5_21 == 0x4000000);
if (reinterpret_cast<unsigned char>(r5_21) < reinterpret_cast<unsigned char>(0x4000000)) {
z22 = reinterpret_cast<int1_t>(r5_21 == 0x42000000);
if (reinterpret_cast<signed char>(r5_21) < reinterpret_cast<signed char>(0x42000000)) {
z22 = (reinterpret_cast<unsigned char>(r5_21) & 0x80000000) == 0;
if (z22) {
goto addr_100225e4_7;
}
r3_23 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r5_21) & 0xfe000000);
z22 = reinterpret_cast<int1_t>(r3_23 == 0xc2000000);
if (z22) {
addr_100225e4_7:
__asm__("bic r3, r5, #0xfe000000");
goto addr_100225f0_10;
}
}
}
r3_23 = r5_21;
addr_100225f0_10:
__asm__("bics ip, sl, #9");
r9_24 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(r5_21) - reinterpret_cast<unsigned char>(r3_23));
if (z22) {
if (r5_21) {
r2 = *reinterpret_cast<void***>(r5_21);
r3_23 = g10022808;
if (r2 == r3_23) {
below_or_equal25 = reinterpret_cast<unsigned char>(r7_19) <= reinterpret_cast<unsigned char>(0x40000000);
if (!below_or_equal25) {
r0 = reinterpret_cast<void**>(8);
}
if (!below_or_equal25)
goto label_20; else
goto addr_10022620_21;
}
}
}
r0 = reinterpret_cast<void**>(87);
addr_100227ec_23:
SetLastError(r0, r1, r2, r3_23);
r4_26 = reinterpret_cast<void**>(0);
addr_100227f4_24:
return r4_26;
label_20:
goto addr_100227ec_23;
addr_10022620_21:
if (!*reinterpret_cast<void***>(r5_21 + 16)) {
if (reinterpret_cast<unsigned char>(r7_19 + 24) < reinterpret_cast<unsigned char>(0x18000)) {
r2_27 = r7_19;
r1_28 = r5_21;
r0_29 = fun_100222e8(r9_24, r1_28, r2_27);
r4_26 = r0_29;
goto addr_10022758_29;
}
}
__asm__("bic r8, r3, #0xf");
EnterCriticalSection(r5_21 + 28, r1, r2, r7_19 + 23, v30, v4, v6, v8, v10, v12, v14);
r6_31 = r5_21 + 48;
r4_26 = reinterpret_cast<void**>(0);
while (1) {
z32 = *reinterpret_cast<void***>(r6_31 + 8) == r8_33;
if (reinterpret_cast<signed char>(*reinterpret_cast<void***>(r6_31 + 8)) >= reinterpret_cast<signed char>(r8_34)) {
r2_27 = r8_35;
r1_28 = r6_31;
r0_36 = fun_100223e0(r9_24, r1_28, r2_27);
r4_26 = r0_36;
if (!z32)
goto label_34;
}
r6_31 = *reinterpret_cast<void***>(r6_31 + 20);
if (z32)
break;
}
if (r4_26) {
goto addr_1002270c_39;
}
r6_31 = r5_21 + 48;
while (1) {
z37 = (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r6_31 + 8)) & 1) == 0;
if (!z37) {
r2_27 = r8_38;
r1_28 = r6_31;
r0_39 = fun_100223e0(r9_24, r1_28, r2_27);
r4_26 = r0_39;
if (!z37)
break;
} else {
r1_28 = *reinterpret_cast<void***>(r6_31 + 12);
r2_27 = *reinterpret_cast<void***>(r1_28);
r3_40 = *reinterpret_cast<int32_t*>(reinterpret_cast<unsigned char>(r1_28) - reinterpret_cast<unsigned char>(r2_27) + 4) - reinterpret_cast<unsigned char>(r2_27);
z37 = r3_40 == r8_41;
if (reinterpret_cast<int32_t>(r3_40) > reinterpret_cast<int32_t>(r8_42))
goto addr_100226cc_45;
}
r6_31 = *reinterpret_cast<void***>(r6_31 + 20);
if (z37)
goto addr_100227e4_48;
}
addr_100226d0_51:
if (r4_26) {
goto addr_1002270c_39;
}
r3_43 = *reinterpret_cast<void***>(r5_21 + 16);
z44 = r3_43 == 0;
if (z44) {
r2_27 = r8_45;
r1_28 = r5_21;
r0_46 = fun_10022038(r9_24, r1_28, r2_27);
r6_31 = r0_46;
if (!z44) {
r3_43 = r6_31 + 55;
__asm__("bic r3, r3, #0xf");
r4_26 = r3_43 - 8;
if (r4_26) {
addr_1002270c_39:
r3_43 = r7_19;
r2_27 = r8_47;
r1_28 = r4_26;
r0_48 = fun_100221ac(r6_31, r1_28, r2_27, r3_43, 0);
r4_26 = r0_48;
}
}
}
r0_29 = LeaveCriticalSection(r5_21 + 28, r1_28, r2_27, r3_43, 0, v4, v6);
if (reinterpret_cast<unsigned char>(r10_20) & 8) {
if (!r4_26) {
goto addr_10022760_63;
} else {
r0_29 = r4_26 + 8;
r1_28 = reinterpret_cast<void**>(0);
r2_27 = *reinterpret_cast<void***>(r4_26) - 8;
memset(r0_29, 0, r2_27, *reinterpret_cast<void***>(r4_26), 0, v4, v6, v8, v10, v12, v14, v16, v18);
}
}
addr_10022758_29:
if (r4_26) {
r4_26 = r4_26 + 8;
}
addr_10022760_63:
r3_49 = gffffcb68;
z50 = (reinterpret_cast<unsigned char>(r3_49) & 0x20000000) == 0;
if (!z50) {
r3_49 = r4_26;
}
if (!z50) {
r2_27 = r7_19;
}
if (!z50) {
r1_28 = r10_20;
}
if (!z50) {
r0_29 = r5_21;
}
if (!z50) {
fun_100218dc(r0_29, r1_28, r2_27, r3_49, 0);
}
r3_51 = image_base_;
if (r9_24 != *r3_51) {
goto addr_100227f4_24;
} else {
if (reinterpret_cast<unsigned char>(r4_26) >= reinterpret_cast<unsigned char>(0x4000000)) {
goto addr_100227f4_24;
} else {
if (reinterpret_cast<signed char>(r4_26) >= reinterpret_cast<signed char>(0x42000000)) {
goto addr_100227f4_24;
} else {
if (!(reinterpret_cast<unsigned char>(r4_26) & 0x80000000)) {
goto addr_100227b8_83;
} else {
if ((reinterpret_cast<unsigned char>(r4_26) & 0xfe000000) != 0xc2000000) {
goto addr_100227f4_24;
} else {
addr_100227b8_83:
__asm__("bic r4, r4, #0xfe000000");
goto addr_100227f4_24;
}
}
}
}
}
addr_100227e4_48:
goto addr_100226d0_51;
addr_100226cc_45:
r4_26 = r1_28;
goto addr_100226d0_51;
label_34:
goto addr_100226d0_51;
}
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007a79c);
int32_t HeapFree(void** r0, void** r1, void** r2) {
int32_t* r3_4;
r3_4 = image_base_;
goto *r3_4;
}
void** g10022a00 = reinterpret_cast<void**>(72);
void** fun_10021ac4(void** r0, void** r1, void** r2);
struct s58 {
void** f0;
signed char[3] pad4;
void** f4;
};
void** fun_10022148(void** r0, void** r1);
void** Int_HeapFree(void** r0, void** r1, void** r2) {
void** r8_4;
int1_t z5;
void** r3_6;
void** r3_7;
void** r4_8;
void** r5_9;
struct s58* r4_10;
void** r4_11;
void** r5_12;
void** r6_13;
void** r7_14;
void** r8_15;
void** r9_16;
void** r0_17;
void** r3_18;
int1_t z19;
void** r2_20;
void** r3_21;
void** r3_22;
__asm__("bics ip, r1, #1");
r8_4 = reinterpret_cast<void**>(0);
if (z5) {
if (r0) {
r3_6 = g10022a00;
if (*reinterpret_cast<void***>(r0) == r3_6) {
if (reinterpret_cast<unsigned char>(r2) < reinterpret_cast<unsigned char>(0x10000)) {
r3_7 = gffffcb68;
if (reinterpret_cast<unsigned char>(r3_7) & 0x20000000) {
fun_10021ac4(r0, r1, r2);
}
r4_8 = r2 - 8;
if (reinterpret_cast<unsigned char>(r4_8) & 0xfe000000)
goto label_12; else
goto addr_10022884_13;
}
}
}
}
SetLastError(87, r1, r2, r3_6);
r8_4 = reinterpret_cast<void**>(0);
addr_100229f4_15:
return r8_4;
label_12:
addr_100228bc_16:
if (reinterpret_cast<signed char>(*reinterpret_cast<void***>(r4_8)) <= reinterpret_cast<signed char>(0)) {
goto addr_100229f4_15;
} else {
if (!(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r4_8)) & 1)) {
r5_9 = *reinterpret_cast<void***>(r4_8 + 4);
if (*reinterpret_cast<void***>(r5_9 + 16) == r0)
goto addr_1002299c_21;
} else {
if (r0 != *reinterpret_cast<void***>(r4_8 + 4)) {
goto addr_100229f4_15;
} else {
r4_10 = reinterpret_cast<struct s58*>(r2 - 24);
r0_17 = EnterCriticalSection(r0 + 28, r1, r2, *reinterpret_cast<void***>(r4_8 + 4), r4_11, r5_12, r6_13, r7_14, r8_15, r9_16, __return_address());
r3_18 = r4_10->f0;
if (r4_10->f4) {
*reinterpret_cast<void***>(r4_10->f4) = r3_18;
r2 = *reinterpret_cast<void***>(r4_10->f4);
z19 = r2 == 0;
if (!z19)
goto label_27; else
goto addr_1002292c_28;
} else {
*reinterpret_cast<void***>(r0 + 4) = r3_18;
if (!r3_18) {
goto addr_10022934_31;
} else {
r2 = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r3_18 + 4) = reinterpret_cast<void**>(0);
goto addr_10022934_31;
}
}
}
}
}
goto addr_100229f4_15;
addr_1002299c_21:
EnterCriticalSection(r0 + 28, r1, r2, *reinterpret_cast<void***>(r5_9 + 16), r4_11, r5_12, r6_13, r7_14, r8_15, r9_16, __return_address());
*reinterpret_cast<void***>(r4_8) = reinterpret_cast<void**>(-static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r4_8))));
fun_10022148(r5_9, r4_8);
r2_20 = *reinterpret_cast<void***>(r5_9 + 8);
r3_21 = reinterpret_cast<void**>(-static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r4_8))));
if (reinterpret_cast<signed char>(r2_20) < reinterpret_cast<signed char>(r3_21)) {
*reinterpret_cast<void***>(r5_9 + 8) = r3_21;
}
r3_22 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r5_9 + 8)) | 1);
*reinterpret_cast<void***>(r5_9 + 8) = r3_22;
LeaveCriticalSection(r0 + 28, r4_8, r2_20, r3_22, r4_11, r5_12, r6_13);
r8_4 = reinterpret_cast<void**>(1);
goto addr_100229f4_15;
label_27:
r0_17 = r4_10->f0;
addr_1002292c_28:
if (!z19) {
r2 = r4_10->f4;
}
if (!z19) {
*reinterpret_cast<void***>(r0_17 + 4) = r2;
}
addr_10022934_31:
LeaveCriticalSection(r0 + 28, r1, r2, r3_18, r4_11, r5_12, r6_13);
goto *reinterpret_cast<void***>(r0 + 24);
addr_10022884_13:
if (reinterpret_cast<unsigned char>(r0) < reinterpret_cast<unsigned char>(0x4000000)) {
if (reinterpret_cast<signed char>(r0) < reinterpret_cast<signed char>(0x42000000)) {
if (!(reinterpret_cast<unsigned char>(r0) & 0x80000000)) {
goto addr_100228a8_44;
}
r3_7 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r0) & 0xfe000000);
if (reinterpret_cast<int1_t>(r3_7 == 0xc2000000)) {
addr_100228a8_44:
__asm__("bic r3, r6, #0xfe000000");
goto addr_100228b4_47;
}
}
}
r3_7 = r0;
addr_100228b4_47:
r4_8 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r4_8) - reinterpret_cast<unsigned char>(r3_7) + reinterpret_cast<unsigned char>(r0));
goto addr_100228bc_16;
}
void** g10022a94 = reinterpret_cast<void**>(72);
void** Int_HeapSize(void** r0, void** r1, void** r2) {
int1_t z4;
void** r3_5;
void** r3_6;
__asm__("bics ip, r1, #1");
if (z4) {
if (r0) {
r1 = *reinterpret_cast<void***>(r0);
r3_5 = g10022a94;
if (r1 == r3_5) {
if (reinterpret_cast<unsigned char>(r2) < reinterpret_cast<unsigned char>(0x10000)) {
r3_6 = *reinterpret_cast<void***>(r2 + 0xfffffff8 + 4);
if (!(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r2 + 0xfffffff8)) & 1)) {
r3_6 = *reinterpret_cast<void***>(r3_6 + 16);
}
if (r3_6 != r0) {
goto addr_10022a88_13;
} else {
if (reinterpret_cast<signed char>(*reinterpret_cast<void***>(r2 + 0xfffffff8)) <= reinterpret_cast<signed char>(0)) {
goto addr_10022a88_13;
} else {
__asm__("bic r3, r1, #1");
return r3_6 - 8;
}
}
}
}
}
}
SetLastError(87, r1, r2, r3_5);
addr_10022a88_13:
return 0xffffffff;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x1007b258);
struct s59 {
signed char[4] pad4;
void* f4;
};
void** fun_10022c5c(void** r0) {
void** r8_2;
void** r10_3;
void** r4_4;
void** r7_5;
void** r3_6;
void** r0_7;
void** r2_8;
void** lr9;
void* r1_10;
struct s59* r6_11;
r8_2 = r0;
__asm__("bic r3, r3, #0xf");
r10_3 = image_base_;
r4_4 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(r8_2 + 55) - 8);
r7_5 = reinterpret_cast<void**>(0);
while (1) {
r3_6 = *reinterpret_cast<void***>(r4_4);
while (reinterpret_cast<signed char>(r3_6) > reinterpret_cast<signed char>(0)) {
r3_6 = *reinterpret_cast<void***>(reinterpret_cast<unsigned char>(r4_4) + reinterpret_cast<unsigned char>(r3_6));
r4_4 = r4_4;
}
r0_7 = fun_10022148(r8_2, r4_4);
r2_8 = gffffcb04;
lr9 = reinterpret_cast<void**>(-static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r4_4))));
if (reinterpret_cast<signed char>(lr9) >= reinterpret_cast<signed char>(r2_8)) {
if (!*reinterpret_cast<void***>(r0_7))
goto addr_10022cc4_9;
}
if (reinterpret_cast<signed char>(lr9) > reinterpret_cast<signed char>(r7_5)) {
r7_5 = lr9;
}
r4_4 = r0_7;
if (!*reinterpret_cast<void***>(r0_7))
break;
}
*reinterpret_cast<void***>(r8_2 + 8) = r7_5;
return r7_5;
addr_10022cc4_9:
r1_10 = *r10_3;
*reinterpret_cast<void***>(r8_2 + 12) = r4_4;
r6_11 = reinterpret_cast<struct s59*>(-8 - (reinterpret_cast<uint32_t>(r1_10) & reinterpret_cast<unsigned char>(r4_4)) + reinterpret_cast<unsigned char>(r2_8));
*reinterpret_cast<void***>(r4_4) = reinterpret_cast<void**>(-static_cast<uint32_t>(r6_11));
*reinterpret_cast<int32_t*>(reinterpret_cast<uint32_t>(r6_11) + reinterpret_cast<unsigned char>(r4_4)) = 0;
__asm__("bic r1, r3, r1");
*reinterpret_cast<void**>(&r6_11->pad4 + 1) = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r0_7 + 4)) + reinterpret_cast<uint32_t>(r1_10));
goto *reinterpret_cast<void***>(*reinterpret_cast<void***>(r8_2 + 16) + 24);
}
void** HeapCompact(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7) {
void** v8;
void** r4_9;
void** v10;
void** r5_11;
void** v12;
void** r6_13;
void** r5_14;
int1_t z15;
void** r4_16;
void** r6_17;
void** r0_18;
int1_t z19;
v8 = r4_9;
v10 = r5_11;
v12 = r6_13;
r5_14 = r0;
__asm__("bics ip, r1, #1");
if (!z15) {
goto addr_10022d68_3;
}
if (r5_14) {
EnterCriticalSection(r5_14 + 28, r1, r2, r3, v8, v10, v12, __return_address(), a5, a6, a7);
r4_16 = reinterpret_cast<void**>(0);
r6_17 = r5_14 + 48;
if (r6_17)
goto addr_10022d8c_7;
} else {
addr_10022d68_3:
SetLastError(87, r1, r2, r3);
r4_16 = reinterpret_cast<void**>(0);
goto addr_10022db0_8;
}
addr_10022da8_10:
LeaveCriticalSection(r5_14 + 28, r1, r2, r3, v8, v10, v12);
addr_10022db0_8:
return r4_16;
while (1) {
addr_10022d8c_7:
r0_18 = fun_10022c5c(r6_17);
r3 = *reinterpret_cast<void***>(r6_17 + 20);
z19 = r0_18 == r4_16;
if (reinterpret_cast<signed char>(r0_18) > reinterpret_cast<signed char>(r4_16)) {
r4_16 = r0_18;
}
r6_17 = r3;
if (z19)
goto addr_10022da8_10;
}
}
/* (image base) */
void*** image_base_ = reinterpret_cast<void***>(0x1007b260);
void** GetProcessHeap() {
void*** r3_1;
r3_1 = image_base_;
return *r3_1;
}
void** fun_10023044(int32_t r0, void** r1, void** r2, void** r3) {
void** v5;
void** r4_6;
void** v7;
void** r5_8;
void** v9;
void** r6_10;
void** r10_11;
void** r4_12;
void** r7_13;
int32_t r9_14;
void** r7_15;
void** r8_16;
void** r9_17;
void** r10_18;
void** r8_19;
void** r5_20;
void** r6_21;
void** r1_22;
void** r0_23;
void** r2_24;
int1_t z25;
void** r3_26;
int1_t z27;
void** r6_28;
void** r0_29;
int1_t z30;
void** r2_31;
v5 = r4_6;
v7 = r5_8;
v9 = r6_10;
r10_11 = r3;
r4_12 = r2;
r7_13 = r1;
r9_14 = r0;
EnterCriticalSection(r7_13 + 28, r1, r2, r3, v5, v7, v9, r7_15, r8_16, r9_17, r10_18);
r8_19 = r7_13 + 48;
r5_20 = reinterpret_cast<void**>(0);
while (1) {
__asm__("bic lr, lr, #0xf");
r6_21 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(r8_19 + 55) - 8);
while (r1_22 = reinterpret_cast<void**>(40), r0_23 = THGrow(r9_14, 40, r2), *reinterpret_cast<void***>(r4_12) = r0_23, !!r0_23) {
*reinterpret_cast<void***>(r0_23) = reinterpret_cast<void**>(40);
r2_24 = r6_21 + 8;
*reinterpret_cast<void***>(*reinterpret_cast<void***>(r4_12) + 4) = r2_24;
*reinterpret_cast<void***>(*reinterpret_cast<void***>(r4_12) + 8) = r2_24;
*reinterpret_cast<void***>(*reinterpret_cast<void***>(r4_12) + 24) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(*reinterpret_cast<void***>(r4_12) + 28) = r10_11;
*reinterpret_cast<void***>(*reinterpret_cast<void***>(r4_12) + 32) = r7_13;
r1_22 = *reinterpret_cast<void***>(r6_21);
if (reinterpret_cast<signed char>(r1_22) <= reinterpret_cast<signed char>(0)) {
*reinterpret_cast<void***>(*reinterpret_cast<void***>(r4_12) + 12) = reinterpret_cast<void**>(-static_cast<uint32_t>(reinterpret_cast<unsigned char>(r1_22)));
*reinterpret_cast<void***>(*reinterpret_cast<void***>(r4_12) + 16) = reinterpret_cast<void**>(2);
*reinterpret_cast<void***>(*reinterpret_cast<void***>(r4_12) + 20) = reinterpret_cast<void**>(0);
r6_21 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r6_21) - reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r6_21)));
} else {
*reinterpret_cast<void***>(*reinterpret_cast<void***>(r4_12) + 12) = r1_22;
z25 = *reinterpret_cast<void***>(r6_21 + 4) == 0;
r3_26 = *reinterpret_cast<void***>(r4_12);
if (z25) {
r2_24 = reinterpret_cast<void**>(8);
}
if (z25) {
*reinterpret_cast<void***>(r3_26 + 16) = r2_24;
}
if (z25) {
r3_26 = *reinterpret_cast<void***>(r4_12);
}
if (z25) {
*reinterpret_cast<void***>(r3_26 + 20) = reinterpret_cast<void**>(0);
}
if (!z25) {
*reinterpret_cast<void***>(r3_26 + 16) = reinterpret_cast<void**>(1);
}
if (!z25) {
r3_26 = *reinterpret_cast<void***>(r4_12);
}
if (!z25) {
*reinterpret_cast<void***>(r3_26 + 20) = reinterpret_cast<void**>(1);
}
r6_21 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r6_21) + reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r6_21)));
}
r3 = *reinterpret_cast<void***>(r4_12);
r2 = *reinterpret_cast<void***>(r6_21);
r4_12 = r3 + 36;
z27 = r2 == 0;
if (z27)
goto addr_10023148_23;
}
break;
addr_10023148_23:
r3 = *reinterpret_cast<void***>(r8_19 + 20);
r8_19 = r3;
if (z27)
goto addr_10023154_25;
}
addr_100231ec_28:
LeaveCriticalSection(r7_13 + 28, r1_22, r2, r3, v5, v7, v9);
return r5_20;
addr_10023154_25:
r3 = *reinterpret_cast<void***>(r7_13 + 4);
r6_28 = r3;
if (!z27) {
while (r1_22 = reinterpret_cast<void**>(40), r0_29 = THGrow(r9_14, 40, r2), z30 = r0_29 == 0, *reinterpret_cast<void***>(r4_12) = r0_29, !z30) {
*reinterpret_cast<void***>(r0_29) = reinterpret_cast<void**>(40);
r2_31 = r6_28 + 24;
*reinterpret_cast<void***>(*reinterpret_cast<void***>(r4_12) + 4) = r2_31;
*reinterpret_cast<void***>(*reinterpret_cast<void***>(r4_12) + 8) = r2_31;
*reinterpret_cast<void***>(*reinterpret_cast<void***>(r4_12) + 12) = *reinterpret_cast<void***>(r6_28 + 16) - 1;
*reinterpret_cast<void***>(*reinterpret_cast<void***>(r4_12) + 16) = reinterpret_cast<void**>(17);
*reinterpret_cast<void***>(*reinterpret_cast<void***>(r4_12) + 20) = reinterpret_cast<void**>(1);
*reinterpret_cast<void***>(*reinterpret_cast<void***>(r4_12) + 24) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(*reinterpret_cast<void***>(r4_12) + 28) = r10_11;
*reinterpret_cast<void***>(*reinterpret_cast<void***>(r4_12) + 32) = r7_13;
r3 = *reinterpret_cast<void***>(r4_12);
r2 = *reinterpret_cast<void***>(r6_28);
r4_12 = r3 + 36;
r6_28 = r2;
if (z30)
goto addr_100231e4_33;
}
goto label_35;
}
addr_100231e4_33:
*reinterpret_cast<void***>(r4_12) = reinterpret_cast<void**>(0);
r5_20 = reinterpret_cast<void**>(1);
goto addr_100231ec_28;
label_35:
goto addr_100231ec_28;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(84);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(88);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xc0);
struct s60 {
void** f0;
signed char[3] pad4;
void** f4;
signed char[3] pad8;
void** f8;
signed char[3] pad12;
void** fc;
signed char[3] pad16;
void** f10;
signed char[3] pad20;
void** f14;
};
/* (image base) */
struct s60* image_base_ = reinterpret_cast<struct s60*>(0x1007a79c);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xa8);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x90);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x7c);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(92);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(100);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(68);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(48);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(28);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(4);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x94);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xe8);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x90);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xc0);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xc0);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x94);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xbc);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(100);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xb8);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(64);
void fun_10023348() {
void** r3_1;
void** r4_2;
void** r2_3;
void** r1_4;
void** r0_5;
void** r0_6;
void** r3_7;
void** r0_8;
struct s60* r5_9;
int1_t z10;
void** r1_11;
void** r0_12;
void** r1_13;
void** r0_14;
void** r1_15;
void** r0_16;
void** r1_17;
void** r0_18;
int1_t z19;
void** r1_20;
void** r0_21;
void** r1_22;
void** r0_23;
void** r1_24;
void** r0_25;
void** r1_26;
void** r0_27;
int1_t z28;
void** r1_29;
void** r0_30;
int1_t z31;
void** r1_32;
void** r0_33;
int1_t z34;
void** r1_35;
void** r0_36;
int1_t z37;
void** r0_38;
int1_t z39;
void** r0_40;
r3_1 = gffffcb04;
r4_2 = image_base_;
r2_3 = image_base_;
r1_4 = reinterpret_cast<void**>(66);
*reinterpret_cast<void***>(r2_3) = r3_1 - 1;
r0_5 = MapPtrUnsecure(r4_2, 66, r2_3);
r0_6 = image_base_;
r3_7 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r0_5) - reinterpret_cast<unsigned char>(r4_2));
*reinterpret_cast<void***>(r4_2) = r3_7;
r0_8 = LoadDriver(r0_6, 66);
r5_9 = image_base_;
if (!z10) {
r1_11 = image_base_;
r0_12 = GetProcAddressW(r0_8, r1_11, r2_3, r0_8, r1_11, r2_3);
r1_13 = image_base_;
if (r0_12) {
r5_9->f14 = r0_12;
}
r0_14 = GetProcAddressW(r0_8, r1_13, r2_3, r0_8, r1_13, r2_3);
r1_15 = image_base_;
if (r0_14) {
r5_9->f10 = r0_14;
}
r0_16 = GetProcAddressW(r0_8, r1_15, r2_3, r0_8, r1_15, r2_3);
r1_17 = image_base_;
if (r0_16) {
r5_9->fc = r0_16;
}
r0_18 = GetProcAddressW(r0_8, r1_17, r2_3, r0_8, r1_17, r2_3);
z19 = r0_18 == 0;
if (!z19) {
r3_7 = image_base_;
}
r1_20 = image_base_;
if (!z19) {
*reinterpret_cast<void***>(r3_7) = r0_18;
}
r0_21 = GetProcAddressW(r0_8, r1_20, r2_3, r0_8, r1_20, r2_3);
r1_22 = image_base_;
if (r0_21) {
r5_9->f8 = r0_21;
}
r0_23 = GetProcAddressW(r0_8, r1_22, r2_3, r0_8, r1_22, r2_3);
r1_24 = image_base_;
if (r0_23) {
r5_9->f0 = r0_23;
}
r0_25 = GetProcAddressW(r0_8, r1_24, r2_3, r0_8, r1_24, r2_3);
r1_26 = image_base_;
if (r0_25) {
r5_9->f4 = r0_25;
}
r0_27 = GetProcAddressW(r0_8, r1_26, r2_3, r0_8, r1_26, r2_3);
z28 = r0_27 == 0;
if (!z28) {
r3_7 = image_base_;
}
r1_29 = image_base_;
if (!z28) {
*reinterpret_cast<void***>(r3_7) = r0_27;
}
r0_30 = GetProcAddressW(r0_8, r1_29, r2_3, r0_8, r1_29, r2_3);
z31 = r0_30 == 0;
if (!z31) {
r3_7 = image_base_;
}
r1_32 = image_base_;
if (!z31) {
*reinterpret_cast<void***>(r3_7) = r0_30;
}
r0_33 = GetProcAddressW(r0_8, r1_32, r2_3, r0_8, r1_32, r2_3);
z34 = r0_33 == 0;
if (!z34) {
r3_7 = image_base_;
}
r1_35 = image_base_;
if (!z34) {
*reinterpret_cast<void***>(r3_7) = r0_33;
}
r0_36 = GetProcAddressW(r0_8, r1_35, r2_3, r0_8, r1_35, r2_3);
z37 = r0_36 == 0;
if (!z37) {
r3_7 = image_base_;
}
r1_4 = image_base_;
if (!z37) {
*reinterpret_cast<void***>(r3_7) = r0_36;
}
r0_38 = GetProcAddressW(r0_8, r1_4, r2_3, r0_8, r1_4, r2_3);
z39 = r0_38 == 0;
if (!z39) {
r3_7 = image_base_;
}
if (!z39) {
*reinterpret_cast<void***>(r3_7) = r0_38;
}
}
r0_40 = image_base_;
InitializeCriticalSection(r0_40, r1_4, r2_3);
goto r5_9->f14;
}
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007a7a4);
void** LocalReAlloc(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6) {
int1_t z7;
int32_t* r1_8;
int1_t z9;
if (!(reinterpret_cast<unsigned char>(r2) & reinterpret_cast<unsigned char>(0xfffff00d))) {
if (!(reinterpret_cast<unsigned char>(r2) & 0xf00)) {
goto addr_10023600_5;
}
if (reinterpret_cast<unsigned char>(r2) & 0x80) {
addr_10023600_5:
z7 = (reinterpret_cast<unsigned char>(r2) & 64) == 0;
if (!z7) {
goto addr_10023608_9;
}
}
}
SetLastError(87, r1, r2, 0xfffff00d);
return 0;
addr_10023608_9:
if (z7) {
}
r1_8 = image_base_;
z9 = (reinterpret_cast<unsigned char>(r2) & 2) == 0;
if (!z9) {
}
if (z9) {
}
goto *r1_8;
}
/* (image base) */
int32_t image_base_ = 0x10021d44;
/* (image base) */
int32_t image_base_ = 0x10021d30;
int32_t fun_10021d54(void** r0, int32_t r1, void** r2, int32_t r3, int32_t a5, int32_t a6, int32_t a7, int32_t a8);
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007a7a8);
void** fun_10023660(void** r0, int32_t r1, int32_t r2) {
int1_t z4;
int32_t lr5;
int32_t r4_6;
void** r2_7;
int32_t* r3_8;
__asm__("bic r3, r3, #0xf");
if (z4) {
return reinterpret_cast<unsigned char>(reinterpret_cast<uint32_t>(r0 + 0x67) - 8) + 8;
} else {
lr5 = image_base_;
r4_6 = image_base_;
r2_7 = gffffcb04;
fun_10021d54(r0, 0x4000, r2_7, r1, r1, r4_6, lr5, 0);
r3_8 = image_base_;
goto *r3_8;
}
}
void** g10023a94 = reinterpret_cast<void**>(72);
/* (image base) */
void*** image_base_ = reinterpret_cast<void***>(0x1007b258);
void** fun_100219cc(void** r0, void** r1, void** r2, void** r3, void** a5);
void** Int_HeapReAlloc(void** r0, void** r1, void** r2, void** r3) {
void** r10_5;
void** r9_6;
void** v7;
void** v8;
void** r6_9;
void** r7_10;
void** r2_11;
void** r3_12;
int1_t z13;
void** v14;
void** r4_15;
void** r5_16;
int1_t z17;
int1_t below_or_equal18;
int1_t z19;
void** r9_20;
void*** r3_21;
void** r3_22;
void** r3_23;
void** v24;
void** r4_25;
void** r5_26;
void** r6_27;
void** r11_28;
void** r0_29;
int1_t z30;
void** v31;
int1_t z32;
void** r8_33;
void** r2_34;
void** r1_35;
void** v36;
void** r7_37;
void** r8_38;
void** r0_39;
void** r3_40;
int1_t less_or_equal41;
void** r3_42;
int1_t z43;
void** r4_44;
void** r3_45;
void** v46;
int1_t less47;
void** v48;
void** r0_49;
int1_t below_or_equal50;
r10_5 = r3;
r9_6 = r1;
v7 = r10_5;
v8 = r9_6;
r6_9 = r2;
r7_10 = r0;
r2_11 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r6_9) >> 25);
r3_12 = reinterpret_cast<void**>(0);
z13 = reinterpret_cast<int1_t>(r2_11 == reinterpret_cast<unsigned char>(r7_10) >> 25);
v14 = reinterpret_cast<void**>(0);
r4_15 = reinterpret_cast<void**>(0);
if (!z13) {
z13 = r2_11 == 0;
if (!z13) {
goto addr_10023a74_5;
} else {
r6_9 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r7_10) & 0xfe000000 | reinterpret_cast<unsigned char>(r6_9));
r3_12 = reinterpret_cast<void**>(1);
v14 = reinterpret_cast<void**>(1);
}
}
__asm__("bics ip, sb, #0x1d");
r5_16 = r6_9 - 8;
if (z13) {
z17 = (reinterpret_cast<unsigned char>(r9_6) & 4) == 0;
if (!z17) {
r0 = reinterpret_cast<void**>(50);
}
if (!z17)
goto label_12; else
goto addr_10023758_13;
}
addr_10023a74_5:
r0 = reinterpret_cast<void**>(87);
addr_10023a78_14:
SetLastError(r0, r1, r2_11, r3_12);
r4_15 = reinterpret_cast<void**>(0);
addr_10023a80_15:
return r4_15;
label_12:
goto addr_10023a78_14;
addr_10023758_13:
if (!r7_10) {
goto addr_10023a74_5;
} else {
r2_11 = *reinterpret_cast<void***>(r7_10);
r3_12 = g10023a94;
if (r2_11 != r3_12) {
goto addr_10023a74_5;
} else {
if (reinterpret_cast<unsigned char>(r6_9) < reinterpret_cast<unsigned char>(0x4000000)) {
if (reinterpret_cast<signed char>(r6_9) < reinterpret_cast<signed char>(0x42000000)) {
if (!(reinterpret_cast<unsigned char>(r6_9) & 0x80000000)) {
goto addr_10023794_25;
}
r3_12 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r6_9) & 0xfe000000);
if (reinterpret_cast<int1_t>(r3_12 == 0xc2000000)) {
addr_10023794_25:
__asm__("bic r3, r6, #0xfe000000");
goto addr_100237a0_28;
}
}
}
}
}
r3_12 = r6_9;
addr_100237a0_28:
if (reinterpret_cast<unsigned char>(r3_12) >= reinterpret_cast<unsigned char>(0x10000)) {
goto addr_10023a74_5;
} else {
if (reinterpret_cast<signed char>(*reinterpret_cast<void***>(r5_16)) <= reinterpret_cast<signed char>(0)) {
goto addr_10023a74_5;
} else {
below_or_equal18 = reinterpret_cast<unsigned char>(r10_5) <= reinterpret_cast<unsigned char>(0x40000000);
if (!below_or_equal18) {
r0 = reinterpret_cast<void**>(8);
}
if (below_or_equal18)
goto addr_100237c0_36;
}
}
goto addr_10023a78_14;
addr_100237c0_36:
z19 = (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r5_16)) & 1) == 0;
if (z19) {
r3_12 = *reinterpret_cast<void***>(r5_16 + 4);
r9_20 = r3_12;
if (!z19)
goto addr_10023838_40;
} else {
r3_12 = reinterpret_cast<void**>((reinterpret_cast<unsigned char>(r6_9) & 0xffff0000) + 24);
r0 = *reinterpret_cast<void***>(r5_16) + 23;
if (r5_16 != r3_12) {
goto addr_10023a74_5;
} else {
r3_12 = *reinterpret_cast<void***>(r5_16 + 4);
if (r3_12 != r7_10) {
goto addr_10023a74_5;
} else {
r3_21 = image_base_;
r3_12 = *r3_21;
if (reinterpret_cast<unsigned char>(r3_12) & reinterpret_cast<unsigned char>(r0)) {
goto addr_10023a74_5;
} else {
r3_22 = gffffcb04;
r2_11 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r3_22) + reinterpret_cast<unsigned char>(r10_5));
r1 = r3_22 - 1;
r3_23 = r2_11 + 31;
__asm__("bic r3, r3, r1");
if (reinterpret_cast<signed char>(r3_23) > reinterpret_cast<signed char>(r0)) {
goto addr_1002397c_49;
} else {
r4_15 = r5_16 + 8;
goto addr_1002397c_49;
}
}
}
}
}
goto addr_10023a74_5;
addr_10023838_40:
r3_12 = *reinterpret_cast<void***>(r9_20 + 16);
if (r7_10 != r3_12) {
goto addr_10023a74_5;
} else {
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r5_16)) & 15) {
goto addr_10023a74_5;
} else {
__asm__("bic sl, r3, #0xf");
if (reinterpret_cast<signed char>(r10_5) <= reinterpret_cast<signed char>(*reinterpret_cast<void***>(r5_16))) {
r3_23 = r10_5 + 8;
if (reinterpret_cast<signed char>(*reinterpret_cast<void***>(r5_16)) > reinterpret_cast<signed char>(r3_23))
goto addr_10023934_58;
} else {
EnterCriticalSection(r7_10 + 28, r1, r2_11, r10_5 + 23, v24, v7, v8, v14, r4_25, r5_26, r6_27);
r3_23 = *reinterpret_cast<void***>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r5_16)) + reinterpret_cast<unsigned char>(r5_16));
r11_28 = *reinterpret_cast<void***>(r5_16);
if (reinterpret_cast<signed char>(r3_23) <= reinterpret_cast<signed char>(0)) {
r1 = r11_28;
r0_29 = fun_10022148(r9_20, r1);
r2_11 = reinterpret_cast<void**>(-static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r11_28))) + reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r5_16)));
z30 = r2_11 == r10_5;
if (reinterpret_cast<signed char>(r2_11) >= reinterpret_cast<signed char>(r10_5))
goto label_62; else
goto addr_100238a0_63;
} else {
r0 = LeaveCriticalSection(r7_10 + 28, r1, r2_11, r3_23, v31, v7, v8);
goto addr_10023974_65;
}
}
}
}
addr_10023970_67:
r4_15 = r5_16 + 8;
addr_10023974_65:
r9_6 = v8;
addr_10023978_68:
r10_5 = v7;
addr_1002397c_49:
if (!r5_16) {
if (!r4_15)
goto addr_10023a0c_71;
} else {
if (r4_15) {
goto addr_10023a14_74;
} else {
z32 = (reinterpret_cast<unsigned char>(r9_6) & 16) == 0;
if (!z32) {
goto addr_10023a0c_71;
} else {
r2_11 = r10_5;
r1 = reinterpret_cast<void**>(0);
r0 = Int_HeapAlloc(r7_10, 0, r2_11);
r4_15 = r0;
if (z32) {
goto addr_10023a14_74;
} else {
__asm__("bic r3, r3, #1");
r8_33 = *reinterpret_cast<void***>(r5_16) - 8;
r2_34 = r8_33;
r1_35 = r5_16 + 8;
r0_39 = memcpy(r4_15, r1_35, r2_34, *reinterpret_cast<void***>(r5_16), v36, v7, v8, v14, r4_25, r5_26, r6_27, r7_37, r8_38);
if (reinterpret_cast<unsigned char>(r9_6) & 8) {
__asm__("bic r3, r3, #1");
r3_40 = *reinterpret_cast<void***>(r4_15 + 0xfffffff8) - 8;
less_or_equal41 = reinterpret_cast<signed char>(r3_40) <= reinterpret_cast<signed char>(r8_33);
if (!less_or_equal41) {
r2_34 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r3_40) - reinterpret_cast<unsigned char>(r8_33));
}
if (!less_or_equal41) {
r1_35 = reinterpret_cast<void**>(0);
}
if (!less_or_equal41) {
r0_39 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r8_33) + reinterpret_cast<unsigned char>(r4_15));
}
if (!less_or_equal41) {
memset(r0_39, r1_35, r2_34, r3_40, v36, v7, v8, v14, r4_25, r5_26, r6_27, r7_37, r8_38);
}
}
r2_11 = r6_9;
r1 = reinterpret_cast<void**>(0);
r0 = Int_HeapFree(r7_10, 0, r2_11);
goto addr_10023a14_74;
}
}
}
}
addr_10023a14_74:
r3_42 = gffffcb68;
z43 = (reinterpret_cast<unsigned char>(r3_42) & 0x20000000) == 0;
if (!z43) {
r3_42 = r6_9;
}
if (!z43) {
r2_11 = r10_5;
}
if (!z43) {
r1 = r9_6;
}
if (!z43) {
r0 = r7_10;
}
if (!z43) {
v36 = r4_15;
}
if (!z43) {
fun_100219cc(r0, r1, r2_11, r3_42, v36);
}
if (!v14) {
goto addr_10023a80_15;
} else {
if (reinterpret_cast<unsigned char>(r4_15) >= reinterpret_cast<unsigned char>(0x4000000)) {
goto addr_10023a80_15;
} else {
if (reinterpret_cast<signed char>(r4_15) >= reinterpret_cast<signed char>(0x42000000)) {
goto addr_10023a80_15;
} else {
if (!(reinterpret_cast<unsigned char>(r4_15) & 0x80000000)) {
goto addr_10023a6c_110;
} else {
if ((reinterpret_cast<unsigned char>(r4_15) & 0xfe000000) != 0xc2000000) {
goto addr_10023a80_15;
} else {
addr_10023a6c_110:
__asm__("bic r4, r4, #0xfe000000");
goto addr_10023a80_15;
}
}
}
}
}
addr_10023a0c_71:
r0 = SetLastError(8, r1, r2_11, r3_23, 8, r1, r2_11, r3_23);
goto addr_10023a14_74;
addr_10023934_58:
r4_44 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r5_16)) - reinterpret_cast<unsigned char>(r10_5));
r3_45 = reinterpret_cast<void**>(-static_cast<uint32_t>(reinterpret_cast<unsigned char>(r4_44)));
*reinterpret_cast<void***>(reinterpret_cast<unsigned char>(r10_5) + reinterpret_cast<unsigned char>(r5_16)) = r3_45;
r2_11 = r10_5;
*reinterpret_cast<void***>(r2_11 + 4) = r9_20;
EnterCriticalSection(r7_10 + 28, r1, r2_11, r3_45, v46, v7, v8, v14, r4_25, r5_26, r6_27);
*reinterpret_cast<void***>(r5_16) = r10_5;
r3_23 = *reinterpret_cast<void***>(r9_20 + 8);
less47 = reinterpret_cast<signed char>(r3_23) < reinterpret_cast<signed char>(r4_44);
if (less47) {
r3_23 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r3_23) & 1);
}
if (less47) {
r3_23 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r3_23) | reinterpret_cast<unsigned char>(r4_44));
}
if (less47) {
*reinterpret_cast<void***>(r9_20 + 8) = r3_23;
}
r0 = LeaveCriticalSection(r7_10 + 28, r1, r2_11, r3_23, v48, v7, v8);
goto addr_10023970_67;
label_62:
goto addr_100238bc_119;
addr_100238a0_63:
r3_23 = *reinterpret_cast<void***>(r0_29);
if (!r3_23) {
r3_23 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r2_11) + reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r0_29 + 4)));
z30 = r3_23 == r10_5;
if (reinterpret_cast<signed char>(r3_23) > reinterpret_cast<signed char>(r10_5)) {
addr_100238bc_119:
r3_23 = v7;
r2_11 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r10_5) - reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r5_16)));
r1 = r11_28;
v36 = r5_16;
r0_49 = fun_100221ac(r9_20, r1, r2_11, r3_23, v36);
r5_16 = r0_49;
if (!z30) {
r3_23 = *reinterpret_cast<void***>(r9_20);
r4_15 = r5_16 + 8;
below_or_equal50 = reinterpret_cast<unsigned char>(r3_23) <= reinterpret_cast<unsigned char>(r5_16);
if (!below_or_equal50) {
r3_23 = *reinterpret_cast<void***>(r5_16);
}
if (!below_or_equal50) {
r3_23 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r5_16) + reinterpret_cast<unsigned char>(r3_23));
}
if (!below_or_equal50) {
*reinterpret_cast<void***>(r9_20) = r3_23;
}
}
}
}
r0 = LeaveCriticalSection(r7_10 + 28, r1, r2_11, r3_23, v36, v7, v8);
r9_6 = v8;
if (!r4_15) {
goto addr_10023978_68;
} else {
if (!(reinterpret_cast<unsigned char>(r9_6) & 8)) {
goto addr_10023978_68;
} else {
__asm__("bic r3, r8, #1");
r2_11 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r10_5) - reinterpret_cast<unsigned char>(r3_23));
r0 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r3_23) + reinterpret_cast<unsigned char>(r5_16));
r1 = reinterpret_cast<void**>(0);
memset(r0, 0, r2_11, r3_23, v36, v7, v8, v14, r4_25, r5_26, r6_27, r7_37, r8_38);
goto addr_10023978_68;
}
}
}
/* (image base) */
int32_t image_base_ = 0x100236f0;
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007ad90);
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007adc0);
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007adbc);
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007ad94);
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007adb8);
int32_t fun_10023a98() {
int32_t r0_1;
int32_t* r6_2;
int32_t* r7_3;
int32_t* r8_4;
int32_t* r5_5;
int32_t* r9_6;
r0_1 = image_base_;
r6_2 = image_base_;
r7_3 = image_base_;
__asm__("stm ip, {r0, r1, r2, r3}");
*r6_2 = 0;
r8_4 = image_base_;
*r7_3 = 0;
r5_5 = image_base_;
r9_6 = image_base_;
*r8_4 = 0;
__asm__("stm sl, {r4, lr}");
*r9_6 = 0;
*r5_5 = 0;
return r0_1;
}
/* (image base) */
void*** image_base_ = reinterpret_cast<void***>(0x1007ad24);
int32_t g10023d84 = 0xf000fd90;
void CeLogData(int32_t r0, void** r1, void** r2, void** r3, int32_t a5, int32_t a6, int16_t a7, int32_t a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, int32_t a17) {
void** lr18;
void** lr19;
void*** r4_20;
void** lr21;
int1_t z22;
int32_t r5_23;
lr18 = gffffcb68;
if (!(reinterpret_cast<unsigned char>(lr18) & 0x30000000)) {
return;
} else {
lr19 = gffffc800;
r4_20 = image_base_;
lr21 = *reinterpret_cast<void***>(lr19 + 0xffffffec);
z22 = (reinterpret_cast<unsigned char>(lr21) & 1) == 0;
if (!z22) {
lr21 = *r4_20;
}
if (!z22) {
z22 = lr21 == 0;
}
if (!z22) {
r5_23 = *reinterpret_cast<int32_t*>(lr21 + 0x270);
}
if (z22) {
r5_23 = g10023d84;
}
goto r5_23;
}
}
void** fun_1002d1e8(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23, void** a24, void** a25, void** a26, void** a27, void** a28, void** a29, void** a30, void** a31, void** a32, void** a33);
void** fun_1002d564(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9);
struct s61 {
uint16_t f0;
signed char[2] pad4;
uint16_t f4;
uint16_t f6;
signed char[20] pad28;
void* f1c;
signed char[4] pad36;
void* f24;
void* f28;
};
/* (image base) */
struct s61** image_base_ = reinterpret_cast<struct s61**>(0x1007b210);
struct s62 {
void** f0;
signed char[3] pad4;
uint16_t f4;
signed char[2] pad8;
void* f8;
};
struct s63 {
void** f0;
signed char[3] pad4;
uint16_t f4;
signed char[2] pad8;
void* f8;
};
struct s64 {
signed char[1] pad1;
void** f1;
};
struct s64* fun_1002d340(void*** r0, void** r1, void** r2, void** r3);
void** fun_10023f00(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23, void** a24, void** a25, void** a26, void** a27, void** a28, void** a29, int16_t a30, ...) {
void** r7_31;
void** r4_32;
void** r5_33;
void** r6_34;
void** r7_35;
void** r0_36;
void** r2_37;
void** r3_38;
void** r4_39;
void** r0_40;
struct s61** r5_41;
int1_t z42;
struct s61* r0_43;
uint32_t r6_44;
uint32_t lr45;
struct s62* r2_46;
uint32_t lr47;
uint32_t r1_48;
struct s63* r2_49;
void*** r4_50;
struct s64* r0_51;
void** r1_52;
void*** r6_53;
struct s64* r0_54;
int1_t z55;
r7_31 = r1;
r0_36 = fun_1002d1e8(r0, r1, r2, r3, r4_32, r5_33, r6_34, r7_35, __return_address(), a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28);
r2_37 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r0) << 12 >> 28);
r3_38 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r0_36) << 16 >> 16);
r4_39 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r3_38) | reinterpret_cast<unsigned char>(r2_37) << 16);
r0_40 = fun_1002d564(reinterpret_cast<unsigned char>(r4_39) << 16 >> 16, r1, r2_37, r3_38, r4_32, r5_33, r6_34, r7_35, __return_address());
r5_41 = image_base_;
z42 = r0_40 == 0;
if (z42) {
r3_38 = reinterpret_cast<void**>(20);
}
r0_43 = *r5_41;
if (z42) {
r3_38 = r3_38 - 0x34c0;
}
if (z42) {
r4_39 = *reinterpret_cast<void***>(r3_38);
}
r6_44 = r0_43->f4;
lr45 = 0;
r2_46 = reinterpret_cast<struct s62*>(reinterpret_cast<int32_t>(r0_43) + reinterpret_cast<int32_t>(r0_43->f24) + 84);
if (reinterpret_cast<int32_t>(r6_44) > reinterpret_cast<int32_t>(0)) {
while (r2_46->f0 != r4_39) {
++lr45;
++r2_46;
if (reinterpret_cast<int32_t>(lr45) >= reinterpret_cast<int32_t>(r6_44))
goto addr_10023f80_11;
}
goto label_13;
}
addr_10023fb4_14:
lr47 = r0_43->f6;
r1_48 = 0;
r2_49 = reinterpret_cast<struct s63*>(reinterpret_cast<int32_t>(r0_43) + reinterpret_cast<int32_t>(r0_43->f28) + 84);
if (reinterpret_cast<int32_t>(lr47) > reinterpret_cast<int32_t>(0)) {
while (r2_49->f0 != r4_39) {
++r1_48;
++r2_49;
if (reinterpret_cast<int32_t>(r1_48) >= reinterpret_cast<int32_t>(lr47))
goto addr_10023fec_18;
}
goto label_20;
}
addr_1002401c_21:
r4_50 = reinterpret_cast<void***>(reinterpret_cast<int32_t>(r0_43) + reinterpret_cast<int32_t>(r0_43->f1c) + 84);
r0_51 = fun_1002d340(r4_50, 8, static_cast<uint32_t>(r0_43->f0), r7_31);
if (r0_51 == -1) {
return 0;
}
addr_10024044_24:
r1_52 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(r4_50) + (reinterpret_cast<uint32_t>(r0_51) << 3));
addr_10024048_25:
return *reinterpret_cast<unsigned char*>(r1_52 + 5) - reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r1_52)) + reinterpret_cast<unsigned char>(r7_31) | (static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1_52 + 4))) | (static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1_52 + 6)) | static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1_52 + 7))) << 8) << 8) << 8;
label_20:
r4_50 = reinterpret_cast<void***>(reinterpret_cast<int32_t>(r2_49->f8) + reinterpret_cast<int32_t>(r0_43) + 84);
r0_51 = fun_1002d340(r4_50, 8, static_cast<uint32_t>(r2_49->f4), r7_31);
if (!reinterpret_cast<int1_t>(r0_51 == -1)) {
goto addr_10024044_24;
} else {
r0_43 = *r5_41;
goto addr_1002401c_21;
}
addr_10023fec_18:
goto addr_1002401c_21;
label_13:
r6_53 = reinterpret_cast<void***>(reinterpret_cast<int32_t>(r2_46->f8) + reinterpret_cast<int32_t>(r0_43) + 84);
r1_52 = reinterpret_cast<void**>(8);
r0_54 = fun_1002d340(r6_53, 8, static_cast<uint32_t>(r2_46->f4), r7_31);
z55 = reinterpret_cast<int1_t>(r0_54 == -1);
if (!z55) {
r1_52 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(r6_53) + (reinterpret_cast<uint32_t>(r0_54) << 3));
}
if (!z55) {
goto addr_10024048_25;
} else {
r0_43 = *r5_41;
goto addr_10023fb4_14;
}
addr_10023f80_11:
goto addr_10023fb4_14;
}
struct s65 {
signed char[20] pad20;
uint16_t f14;
uint16_t f16;
uint16_t f18;
signed char[46] pad72;
void** f48;
signed char[3] pad76;
void** f4c;
signed char[3] pad80;
void* f50;
};
/* (image base) */
struct s65** image_base_ = reinterpret_cast<struct s65**>(0x1007b210);
struct s66 {
void** f0;
signed char[3] pad4;
uint16_t f4;
uint16_t f6;
void* f8;
};
void** fun_1002d404(void** r0, void** r1, void** r2);
void** fun_10024088(void** r0, void** r1, void** r2) {
void** r5_4;
void** r6_5;
void** r7_6;
struct s65** r8_7;
void** r0_8;
void** r2_9;
struct s65* lr10;
void** r1_11;
void** r3_12;
struct s66* r4_13;
int1_t z14;
void** r0_15;
void** r2_16;
int1_t z17;
void** r0_18;
void** r0_19;
r5_4 = r2;
r6_5 = r1;
r7_6 = r0;
r8_7 = image_base_;
r0_8 = r5_4;
r2_9 = reinterpret_cast<void**>(0);
lr10 = *r8_7;
r1_11 = reinterpret_cast<void**>(static_cast<uint32_t>(lr10->f18));
r3_12 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(lr10) + reinterpret_cast<uint32_t>(lr10->f50));
r4_13 = reinterpret_cast<struct s66*>(r3_12 + 84);
if (reinterpret_cast<signed char>(r1_11) > reinterpret_cast<signed char>(0)) {
while (r3_12 = r4_13->f0, r3_12 != r7_6) {
++r2_9;
++r4_13;
if (reinterpret_cast<signed char>(r2_9) >= reinterpret_cast<signed char>(r1_11))
goto addr_100240dc_5;
}
goto label_7;
}
addr_10024114_8:
if (r0_8 == r5_4) {
z14 = (reinterpret_cast<unsigned char>(r6_5) & 0x100) == 0;
if (!z14) {
r3_12 = lr10->f4c;
}
if (z14) {
r3_12 = lr10->f48;
}
if (!z14) {
r1_11 = reinterpret_cast<void**>(static_cast<uint32_t>(lr10->f16));
}
if (z14) {
r1_11 = reinterpret_cast<void**>(static_cast<uint32_t>(lr10->f14));
}
r0_15 = fun_1002d404(reinterpret_cast<uint32_t>(lr10) + reinterpret_cast<unsigned char>(r3_12) + 84, r1_11, r5_4);
r0_8 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r0_15) << 16 >> 16);
}
return r0_8;
label_7:
r2_16 = reinterpret_cast<void**>(static_cast<uint32_t>(r4_13->f4));
z17 = (reinterpret_cast<unsigned char>(r6_5) & 0x100) == 0;
r3_12 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(r4_13->f8) + reinterpret_cast<uint32_t>(lr10));
r0_18 = r3_12 + 84;
r1_11 = r2_16;
if (!z17) {
r1_11 = reinterpret_cast<void**>(static_cast<uint32_t>(r4_13->f6));
}
if (!z17) {
r0_18 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r0_18) + (reinterpret_cast<unsigned char>(r2_16) << 2));
}
r0_19 = fun_1002d404(r0_18, r1_11, r5_4);
lr10 = *r8_7;
r0_8 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r0_19) << 16 >> 16);
goto addr_10024114_8;
addr_100240dc_5:
goto addr_10024114_8;
}
void** fun_10024154(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, ...) {
void* r3_13;
void** r0_14;
uint32_t r3_15;
int1_t c16;
r3_13 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(r0) << 16);
r0_14 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r1) >> 8 & 0xff);
if (0x412 == reinterpret_cast<uint32_t>(r3_13) >> 16) {
if (!reinterpret_cast<int1_t>(r0_14 == 3)) {
if (reinterpret_cast<unsigned char>(r0_14) >= reinterpret_cast<unsigned char>(14))
goto label_6; else
goto addr_100241a0_7;
} else {
r3_15 = reinterpret_cast<unsigned char>(r1) & 0xff;
if (!r3_15) {
goto addr_1002418c_10;
} else {
if (r3_15 == 1) {
addr_1002418c_10:
return 0x94;
}
}
}
}
addr_100241b8_13:
return r0_14;
label_6:
goto addr_100241b8_13;
addr_100241a0_7:
if (reinterpret_cast<unsigned char>(r0_14) > reinterpret_cast<unsigned char>(0xe4)) {
goto addr_100241b8_13;
} else {
c16 = reinterpret_cast<unsigned char>(r0_14) < reinterpret_cast<unsigned char>(0x80);
if (!c16) {
r3_13 = reinterpret_cast<void*>(r0_14 + 0x72);
}
if (c16) {
r3_13 = reinterpret_cast<void*>(r0_14 + 0x8e);
}
r0_14 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(r3_13) & 0xff);
goto addr_100241b8_13;
}
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x1007b210);
struct s67 {
uint16_t f0;
uint16_t f2;
uint16_t f4;
};
struct s68 {
uint16_t f0;
signed char[4] pad6;
unsigned char f6;
unsigned char f7;
unsigned char f8;
unsigned char f9;
};
void** fun_100243ac(void** r0, uint32_t r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17) {
void** r7_18;
uint32_t lr19;
void** r4_20;
uint32_t r6_21;
struct s67* r5_22;
uint32_t r4_23;
struct s67* lr24;
struct s68* r1_25;
r7_18 = r3;
lr19 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r0 + 4));
r4_20 = image_base_;
r6_21 = *reinterpret_cast<unsigned char*>(r0 + 6);
r5_22 = reinterpret_cast<struct s67*>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r0 + 8)) + (lr19 + (lr19 << 2) << 1) + reinterpret_cast<int32_t>(*r4_20) + 84);
r4_23 = 0;
if (reinterpret_cast<int32_t>(r6_21) > reinterpret_cast<int32_t>(0)) {
lr24 = r5_22;
while (1) {
if (static_cast<uint32_t>(lr24->f0) == r1) {
if (reinterpret_cast<int1_t>(static_cast<uint32_t>(lr24->f2) == r2)) {
if (static_cast<uint32_t>(lr24->f4) == r7_18)
goto label_9;
}
}
++r4_23;
lr24 = reinterpret_cast<struct s67*>(reinterpret_cast<uint32_t>(lr24) + 10);
if (reinterpret_cast<int32_t>(r4_23) >= reinterpret_cast<int32_t>(r6_21))
break;
}
}
return 0;
label_9:
r1_25 = reinterpret_cast<struct s68*>(reinterpret_cast<uint32_t>(r5_22) + (r4_23 + (r4_23 << 2) << 1));
return static_cast<uint32_t>(r1_25->f7) | (static_cast<uint32_t>(r1_25->f6) | (static_cast<uint32_t>(r1_25->f8) | static_cast<uint32_t>(r1_25->f9) << 8) << 8) << 8;
}
struct s69 {
signed char[2] pad2;
uint16_t f2;
signed char[28] pad32;
int32_t f20;
};
/* (image base) */
struct s69** image_base_ = reinterpret_cast<struct s69**>(0x1007b210);
int32_t fun_10024458(void** r0, void** r1, void** r2) {
struct s69** r3_4;
uint32_t lr5;
uint32_t r1_6;
uint32_t r0_7;
uint16_t* r2_8;
r3_4 = image_base_;
lr5 = reinterpret_cast<unsigned char>(r0) << 16 >> 16;
r1_6 = 0;
r0_7 = (*r3_4)->f2;
r2_8 = reinterpret_cast<uint16_t*>(reinterpret_cast<int32_t>(*r3_4) + (*r3_4)->f20 + 84);
if (reinterpret_cast<int32_t>(r0_7) > reinterpret_cast<int32_t>(0)) {
while (static_cast<uint32_t>(*r2_8) != lr5) {
++r1_6;
++r2_8;
if (reinterpret_cast<int32_t>(r1_6) >= reinterpret_cast<int32_t>(r0_7))
goto addr_100244a4_5;
}
goto label_7;
}
addr_100244a4_5:
return 0;
label_7:
return 1;
}
struct s70 {
signed char[12] pad12;
uint16_t fc;
signed char[38] pad52;
void* f34;
};
/* (image base) */
struct s70** image_base_ = reinterpret_cast<struct s70**>(0x1007b210);
void** fun_1002d28c(void*** r0, void** r1, void*** r2, void** r3);
void** fun_100244c0(void** r0, void** r1, void** r2) {
struct s70** r2_4;
void** r3_5;
void*** r4_6;
void** r0_7;
int1_t z8;
r2_4 = image_base_;
r3_5 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r0) << 16 >> 16);
r4_6 = reinterpret_cast<void***>(reinterpret_cast<int32_t>(*r2_4) + reinterpret_cast<int32_t>((*r2_4)->f34) + 84);
r0_7 = fun_1002d28c(r4_6, 12, static_cast<uint32_t>((*r2_4)->fc), r3_5);
z8 = reinterpret_cast<int1_t>(r0_7 == -1);
if (!z8) {
r3_5 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r0_7) + (reinterpret_cast<unsigned char>(r0_7) << 1));
}
if (!z8) {
r0_7 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(r4_6) + (reinterpret_cast<unsigned char>(r3_5) << 2));
}
if (!z8) {
}
if (z8) {
r0_7 = reinterpret_cast<void**>(0);
}
if (z8) {
}
return r0_7;
}
void** fun_1002d460(void** r0, void** r1, void** r2);
void** fun_10024510(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, uint16_t a7, void** a8) {
void** r4_9;
void** r5_10;
void** r8_11;
void** r9_12;
void** r7_13;
void** r6_14;
void** r0_15;
void** r1_16;
void** r2_17;
int1_t z18;
r4_9 = r3;
r5_10 = r2;
r8_11 = r1;
r9_12 = r0;
if (a6) {
if (reinterpret_cast<signed char>(r4_9) <= reinterpret_cast<signed char>(a6)) {
r7_13 = reinterpret_cast<void**>(0);
if (reinterpret_cast<signed char>(r4_9) <= reinterpret_cast<signed char>(0))
goto label_6; else
goto addr_10024554_7;
} else {
SetLastError(0x7a, r1, r2, a6);
r4_9 = reinterpret_cast<void**>(0);
}
}
addr_100245b0_9:
return r4_9;
label_6:
addr_100245ac_10:
r4_9 = r7_13;
goto addr_100245b0_9;
addr_10024554_7:
r6_14 = a5;
r7_13 = r4_9;
while (1) {
if (!(reinterpret_cast<unsigned char>(r8_11) & 0x1000000)) {
r5_10 = r5_10 - 2;
r0_15 = fun_1002d460(a8, static_cast<uint32_t>(a7), static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_10))));
} else {
r1_16 = r8_11;
r0_15 = fun_10024088(r9_12, r1_16, static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_10))));
r2_17 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_10))));
z18 = r0_15 == r2_17;
if (z18) {
r1_16 = reinterpret_cast<void**>(static_cast<uint32_t>(a7));
}
if (z18) {
r0_15 = a8;
}
if (z18) {
r0_15 = fun_1002d460(r0_15, r1_16, r2_17);
}
r5_10 = r5_10 + 2;
}
*reinterpret_cast<void***>(r6_14) = reinterpret_cast<void**>(static_cast<uint16_t>(reinterpret_cast<uint32_t>(r0_15)));
r6_14 = r6_14 - 2;
--r4_9;
if (!r4_9)
goto addr_100245ac_10;
}
}
struct s71 {
signed char[1] pad1;
void** f1;
};
int32_t fun_100245bc(void** r0, int16_t* r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10);
void** fun_10024664(void** r0, void** r1, void** r2, void** r3, int16_t a5) {
void** v6;
void** r4_7;
void** v8;
void** r5_9;
void** v10;
void** r6_11;
void** v12;
void** r7_13;
void** v14;
uint16_t* sp15;
void** r7_16;
struct s71* r5_17;
void** r4_18;
void** v19;
int32_t r0_20;
void** r6_21;
void** r2_22;
struct s71* r1_23;
void** r3_24;
uint16_t v25;
uint16_t v26;
void** v27;
int32_t r0_28;
v6 = r4_7;
v8 = r5_9;
v10 = r6_11;
v12 = r7_13;
v14 = reinterpret_cast<void**>(__return_address());
sp15 = reinterpret_cast<uint16_t*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 20 - 4);
r7_16 = r0;
r5_17 = reinterpret_cast<struct s71*>(0);
r4_18 = r7_16;
r0_20 = fun_100245bc(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r7_16))), sp15 + 1, sp15, r3, v19, v6, v8, v10, v12, v14);
if (r0_20) {
r6_21 = r1 - 2;
while (reinterpret_cast<unsigned char>(r4_18) >= reinterpret_cast<unsigned char>(r6_21)) {
r4_18 = r4_18 + 2;
if (reinterpret_cast<int32_t>(r5_17) > 0) {
r2_22 = r4_18;
r1_23 = r5_17;
while (r1_23 = reinterpret_cast<struct s71*>(reinterpret_cast<int32_t>(r1_23) - 1), *reinterpret_cast<void***>(r2_22) = reinterpret_cast<void**>(static_cast<uint16_t>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r2_22 + 0xfffffffe))))), r2_22 = r2_22 + 0xfffffffe, !!r1_23) {
}
}
r3_24 = reinterpret_cast<void**>(static_cast<uint32_t>(v25));
*reinterpret_cast<void***>(r7_16 + 2) = reinterpret_cast<void**>(static_cast<uint16_t>(static_cast<uint32_t>(v26)));
*reinterpret_cast<void***>(r7_16) = reinterpret_cast<void**>(static_cast<uint16_t>(reinterpret_cast<uint32_t>(r3_24)));
r5_17 = reinterpret_cast<struct s71*>(&r5_17->f1);
r0_28 = fun_100245bc(reinterpret_cast<unsigned char>(r3_24) << 16 >> 16, sp15 + 1, sp15, r3_24, v27, v6, v8, v10, v12, v14);
if (!r0_28)
goto addr_100246f4_11;
}
goto label_13;
}
addr_100246f4_11:
return &r5_17->f1;
label_13:
goto addr_100246f4_11;
}
void fun_10024770(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17) {
void** v18;
void** v19;
void** v20;
void** r4_21;
void** r5_22;
void** r6_23;
void** r7_24;
void** r8_25;
void** r0_26;
void** r1_27;
r0_26 = fun_10024154(r0, r1, r2, r3, v18, v19, v20, r4_21, r5_22, r6_23, r7_24, r8_25);
r1_27 = r0_26 - 1;
if (reinterpret_cast<unsigned char>(r1_27) > reinterpret_cast<unsigned char>(10)) {
return;
} else {
goto 0x100247b0 + *reinterpret_cast<uint16_t*>((reinterpret_cast<unsigned char>(r1_27) << 1) + 0x100247a8 + 4);
}
}
struct s72 {
signed char[10] pad10;
uint16_t fa;
signed char[24] pad36;
void* f24;
};
/* (image base) */
struct s72** image_base_ = reinterpret_cast<struct s72**>(0x1007b204);
void** fun_10024704(uint32_t r0, void** r1, void** r2);
void** fun_10024e74(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, uint16_t a8, void** a9, uint16_t a10) {
void** v11;
void** v12;
void** v13;
void** v14;
void** v15;
void** r4_16;
void** v17;
void** r5_18;
void** v19;
void** r6_20;
void** v21;
void** r7_22;
void** v23;
void** r8_24;
void** v25;
void** r9_26;
void** v27;
void** r10_28;
void** v29;
void** r11_30;
void** v31;
void** v32;
void*** sp33;
void** r8_34;
void** v35;
void** v36;
void** r11_37;
void** v38;
void** r2_39;
void** r10_40;
void** v41;
int1_t z42;
void** r4_43;
void** r7_44;
void** r5_45;
void** v46;
void** v47;
void** v48;
void** r3_49;
void** r1_50;
void** v51;
void** v52;
void** v53;
void** v54;
void** r0_55;
void** r0_56;
void** r0_57;
void** r0_58;
void** r8_59;
void** r9_60;
uint16_t* r6_61;
void** r5_62;
void** r8_63;
struct s72** r10_64;
void** r0_65;
void** r0_66;
void** r3_67;
uint16_t* r3_68;
uint16_t v69;
void** r0_70;
void** r2_71;
uint16_t* r3_72;
int1_t c73;
int1_t z74;
uint16_t* r9_75;
void** r0_76;
void** r6_77;
void* r4_78;
struct s72** r5_79;
void** r0_80;
void** r3_81;
int1_t z82;
void** r0_83;
v11 = r0;
v12 = r1;
v13 = r2;
v14 = r3;
v15 = r4_16;
v17 = r5_18;
v19 = r6_20;
v21 = r7_22;
v23 = r8_24;
v25 = r9_26;
v27 = r10_28;
v29 = r11_30;
v31 = reinterpret_cast<void**>(__zero_stack_offset());
v32 = reinterpret_cast<void**>(__return_address());
sp33 = reinterpret_cast<void***>(reinterpret_cast<unsigned char>(__zero_stack_offset()) - 16 - 40 - 44);
r8_34 = r0;
v35 = r8_34;
v36 = r3;
r11_37 = r2;
v38 = r1;
r2_39 = a6;
r10_40 = reinterpret_cast<void**>(0);
v41 = reinterpret_cast<void**>(0);
z42 = r2_39 == 0;
if (z42) {
r4_43 = reinterpret_cast<void**>(sp33 + 32);
}
if (z42) {
a5 = r4_43;
}
if (!z42) {
r4_43 = a5;
}
if (z42) {
r7_44 = reinterpret_cast<void**>(sp33 + 32);
}
if (z42) {
r2_39 = reinterpret_cast<void**>(sp33 + 42);
}
if (z42) {
r5_45 = reinterpret_cast<void**>(sp33 + 100);
}
if (!z42) {
r2_39 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r4_43) + (reinterpret_cast<unsigned char>(r2_39) << 1));
}
if (z42) {
v46 = r7_44;
}
if (!z42) {
r5_45 = reinterpret_cast<void**>(sp33);
}
if (!z42) {
r7_44 = r4_43;
}
if (!z42) {
v46 = r4_43;
}
v47 = r2_39;
v48 = r5_45;
if (reinterpret_cast<signed char>(r3) > reinterpret_cast<signed char>(0)) {
while (r3_49 = v47, reinterpret_cast<unsigned char>(r7_44) >= reinterpret_cast<unsigned char>(r3_49)) {
if (a7) {
r1_50 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r11_37))));
r0_55 = fun_10023f00(r8_34, r1_50, r2_39, r3_49, v46, v47, v48, v35, v41, v36, v38, v51, v52, v53, v54, v15, v17, v19, v21, v23, v25, v27, v29, v31, v32, v11, v12, v13, v14, *reinterpret_cast<int16_t*>(&a5), r8_34, r1_50, r2_39, r3_49, v46, v47, v48, v35, v41, v36, v38, v51);
r0_56 = fun_10024154(r8_34, r0_55, r2_39, r3_49, v46, v47, v48, v35, v41, v36, v38, v51, r8_34, r0_55, r2_39, r3_49, v46, v47, v48, v35, v41, v36, v38, v51);
if (!(reinterpret_cast<unsigned char>(r0_56) & 0x80)) {
r2_39 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r11_37))));
r0_57 = fun_1002d404(a7, static_cast<uint32_t>(a8), r2_39);
*reinterpret_cast<uint16_t*>(&v52) = static_cast<uint16_t>(reinterpret_cast<uint32_t>(r0_57));
goto addr_10024f50_32;
}
}
r3_49 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r11_37))));
*reinterpret_cast<uint16_t*>(&v52) = static_cast<uint16_t>(reinterpret_cast<uint32_t>(r3_49));
addr_10024f50_32:
r1 = reinterpret_cast<void**>(sp33 + 42);
r0_58 = fun_10024664(sp33 + 32, r1, r2_39, r3_49, *reinterpret_cast<int16_t*>(&v46));
r8_59 = r0_58;
v51 = r8_59;
r9_60 = r8_59;
r6_61 = reinterpret_cast<uint16_t*>(sp33 + 32);
if (!a9) {
if (reinterpret_cast<signed char>(r8_59) > reinterpret_cast<signed char>(0))
goto addr_10025000_36;
} else {
if (reinterpret_cast<signed char>(r8_59) <= reinterpret_cast<signed char>(0)) {
goto addr_10025030_39;
} else {
r5_62 = v35;
r8_63 = v38;
r10_64 = image_base_;
while (1) {
r0_65 = fun_1002d404(reinterpret_cast<int32_t>(*r10_64) + reinterpret_cast<int32_t>((*r10_64)->f24) + 48, static_cast<uint32_t>((*r10_64)->fa), static_cast<uint32_t>(*reinterpret_cast<uint16_t*>(&v12 + 2)));
r2_39 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r0_65) << 16 >> 16);
if (!(reinterpret_cast<unsigned char>(r8_63) & 0x1000000)) {
goto addr_10024fd0_43;
} else {
r1 = r8_63;
r0_66 = fun_10024088(r5_62, r1, r2_39);
r2_39 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<uint16_t*>(&v13)));
if (r0_66 == r2_39) {
addr_10024fd0_43:
r1 = reinterpret_cast<void**>(static_cast<uint32_t>(a10));
fun_1002d460(a9, r1, r2_39);
}
++r6_61;
--r9_60;
if (reinterpret_cast<uint1_t>(reinterpret_cast<uint1_t>(reinterpret_cast<signed char>(r9_60) < reinterpret_cast<signed char>(0) != __intrinsic()) | reinterpret_cast<uint1_t>(r9_60 == 0)))
break;
}
}
r8_59 = v51;
r10_40 = v41;
goto addr_1002502c_49;
}
}
addr_10025030_39:
if (reinterpret_cast<signed char>(r8_59) <= reinterpret_cast<signed char>(1)) {
r2_39 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<uint16_t*>(&v52)));
r3_67 = a5 + 2;
*reinterpret_cast<void***>(r7_44) = reinterpret_cast<void**>(static_cast<uint16_t>(reinterpret_cast<uint32_t>(r2_39)));
} else {
r3_68 = reinterpret_cast<uint16_t*>(sp33 + 34);
if (reinterpret_cast<uint32_t>(r3_68) < reinterpret_cast<uint32_t>(r6_61)) {
goto addr_1002509c_55;
} else {
r1 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<uint16_t*>(&v52)));
r0_70 = fun_10024704(static_cast<uint32_t>(v69), r1, r2_39);
r2_71 = r0_70;
if (r3_68 == r6_61) {
goto addr_1002509c_55;
} else {
r3_72 = reinterpret_cast<uint16_t*>(sp33 + 36);
c73 = reinterpret_cast<uint32_t>(r3_72) < reinterpret_cast<uint32_t>(r6_61);
z74 = r3_72 == r6_61;
r9_75 = reinterpret_cast<uint16_t*>(sp33 + 36);
while (*reinterpret_cast<void***>(r7_44) = reinterpret_cast<void**>(static_cast<uint16_t>(reinterpret_cast<uint32_t>(r2_71))), !c73) {
r1 = r2_71;
r0_76 = fun_10024704(static_cast<uint32_t>(*reinterpret_cast<uint16_t*>(&v13 + 2)), r1, r2_71);
r2_71 = r0_76;
if (z74)
goto label_62;
++r9_75;
c73 = reinterpret_cast<uint32_t>(r9_75) < reinterpret_cast<uint32_t>(r6_61);
z74 = r9_75 == r6_61;
}
goto addr_1002508c_64;
}
}
}
addr_10025128_65:
a5 = r3_67;
addr_1002512c_66:
++r10_40;
v41 = r10_40;
r11_37 = r11_37 + 2;
if (reinterpret_cast<signed char>(r10_40) >= reinterpret_cast<signed char>(v36))
goto addr_10025144_67;
r4_43 = a5;
r7_44 = v46;
r8_34 = v35;
continue;
addr_1002509c_55:
r2_39 = reinterpret_cast<void**>(1);
addr_100250a0_70:
if (reinterpret_cast<signed char>(r2_39) <= reinterpret_cast<signed char>(1)) {
r1 = v47;
if (reinterpret_cast<unsigned char>(reinterpret_cast<unsigned char>(r7_44) + (reinterpret_cast<unsigned char>(r8_59) << 1)) > reinterpret_cast<unsigned char>(r1))
goto label_73;
r2_39 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r8_59) << 1);
r1 = reinterpret_cast<void**>(sp33 + 32);
memmove(r7_44, r1, r2_39, r7_44, r1, r2_39);
r3_67 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(a5) + (reinterpret_cast<unsigned char>(r8_59) << 1));
goto addr_10025128_65;
} else {
r6_77 = a5 + 2;
a5 = r6_77;
if (r2_39 == r8_59) {
goto addr_1002512c_66;
} else {
r1 = v47;
r4_78 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(r8_59) - reinterpret_cast<unsigned char>(r2_39));
if (reinterpret_cast<unsigned char>(reinterpret_cast<unsigned char>(v46) + (reinterpret_cast<uint32_t>(r4_78) << 1)) > reinterpret_cast<unsigned char>(r1))
goto label_78;
r1 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(sp33 + 32) + (reinterpret_cast<unsigned char>(r2_39) << 1));
r2_39 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(r4_78) << 1);
memmove(v46, r1, r2_39, v46, r1, r2_39);
r3_67 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r6_77) + (reinterpret_cast<uint32_t>(r4_78) << 1));
goto addr_10025128_65;
}
}
addr_1002508c_64:
r2_39 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(reinterpret_cast<uint32_t>(r9_75) - reinterpret_cast<uint32_t>(sp33 + 32)) >> 1);
goto addr_100250a0_70;
label_62:
goto addr_1002508c_64;
addr_10025000_36:
r5_79 = image_base_;
while (r2_39 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<uint16_t*>(&v52))), r1 = reinterpret_cast<void**>(static_cast<uint32_t>((*r5_79)->fa)), r0_80 = fun_1002d404(reinterpret_cast<int32_t>(*r5_79) + reinterpret_cast<int32_t>((*r5_79)->f24) + 48, r1, r2_39), *reinterpret_cast<uint16_t*>(&v52) = static_cast<uint16_t>(reinterpret_cast<uint32_t>(r0_80)), --r6_61, --r9_60, !reinterpret_cast<uint1_t>(reinterpret_cast<uint1_t>(reinterpret_cast<signed char>(r9_60) < reinterpret_cast<signed char>(0) != __intrinsic()) | reinterpret_cast<uint1_t>(r9_60 == 0))) {
}
addr_1002502c_49:
goto addr_10025030_39;
}
goto label_82;
}
addr_10025148_83:
r3_81 = a6;
z82 = r3_81 == 0;
if (z82) {
r2_39 = a5;
}
if (z82) {
r3_81 = reinterpret_cast<void**>(sp33 + 32);
}
if (z82) {
r3_81 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r2_39) - reinterpret_cast<unsigned char>(r3_81));
}
if (!z82) {
if (reinterpret_cast<signed char>(r10_40) >= reinterpret_cast<signed char>(v36)) {
r3_81 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(a5) - reinterpret_cast<unsigned char>(r4_43));
} else {
SetLastError(0x7a, r1, r2_39, v36, 0x7a, r1, r2_39, v36);
r0_83 = reinterpret_cast<void**>(0);
goto addr_10025188_95;
}
}
r0_83 = reinterpret_cast<void**>(reinterpret_cast<signed char>(r3_81) >> 1);
addr_10025188_95:
return r0_83;
label_82:
goto addr_10025148_83;
addr_10025144_67:
r4_43 = a5;
goto addr_10025148_83;
label_73:
goto addr_10025148_83;
label_78:
goto addr_10025144_67;
}
struct s73 {
signed char[12] pad12;
uint16_t fc;
signed char[26] pad40;
void* f28;
};
/* (image base) */
struct s73** image_base_ = reinterpret_cast<struct s73**>(0x1007b204);
struct s74 {
signed char[48] pad48;
void** f30;
};
void** fun_10025198(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, uint16_t a10) {
void** lr11;
void** v12;
void** v13;
void** v14;
void** v15;
void** v16;
void** r4_17;
void** v18;
void** r5_19;
void** v20;
void** r6_21;
void** v22;
void** r7_23;
void** v24;
void** r8_25;
void** v26;
void** r9_27;
void** v28;
void** r10_29;
void** v30;
void** r11_31;
void** v32;
void** v33;
void*** sp34;
void** r6_35;
void** v36;
void** r5_37;
void** r11_38;
void** r10_39;
void** r9_40;
int1_t z41;
void** r4_42;
void** r7_43;
void** v44;
void** v45;
void** v46;
void** r8_47;
void** r2_48;
void** r0_49;
struct s73** r3_50;
struct s74* r3_51;
void** r0_52;
void** r6_53;
int1_t c54;
void** r10_55;
struct s73** r7_56;
void** r0_57;
void** r3_58;
void** r0_59;
void** r0_60;
void** r0_61;
void** v62;
void** v63;
void** v64;
void** r0_65;
void** v66;
void** v67;
void** v68;
void** r0_69;
void** r0_70;
int1_t z71;
void** r0_72;
lr11 = reinterpret_cast<void**>(__return_address());
v12 = r0;
v13 = r1;
v14 = r2;
v15 = r3;
v16 = r4_17;
v18 = r5_19;
v20 = r6_21;
v22 = r7_23;
v24 = r8_25;
v26 = r9_27;
v28 = r10_29;
v30 = r11_31;
v32 = reinterpret_cast<void**>(__zero_stack_offset());
v33 = lr11;
sp34 = reinterpret_cast<void***>(reinterpret_cast<unsigned char>(__zero_stack_offset()) - 16 - 40 - 28);
r6_35 = r0;
v36 = r6_35;
r5_37 = r2;
r11_38 = r1;
r10_39 = a6;
r9_40 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r5_37) + (reinterpret_cast<unsigned char>(r3) << 1));
z41 = r10_39 == 0;
if (z41) {
lr11 = reinterpret_cast<void**>(sp34 + 16);
}
if (z41) {
a5 = lr11;
}
if (!z41) {
lr11 = a5;
}
if (z41) {
r4_42 = reinterpret_cast<void**>(sp34 + 16);
}
if (z41) {
r3 = reinterpret_cast<void**>(sp34 + 26);
}
if (z41) {
r7_43 = reinterpret_cast<void**>(sp34 + 84);
}
if (!z41) {
r3 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(lr11) + (reinterpret_cast<unsigned char>(r10_39) << 1));
}
if (z41) {
v44 = r4_42;
}
if (!z41) {
r7_43 = reinterpret_cast<void**>(sp34);
}
if (!z41) {
r4_42 = lr11;
}
if (!z41) {
v44 = lr11;
}
v45 = r3;
v46 = r7_43;
if (reinterpret_cast<unsigned char>(r5_37) >= reinterpret_cast<unsigned char>(r9_40)) {
r8_47 = a9;
while (r3 = v45, reinterpret_cast<unsigned char>(r4_42) >= reinterpret_cast<unsigned char>(r3)) {
if (!r8_47) {
*reinterpret_cast<void***>(r4_42) = reinterpret_cast<void**>(static_cast<uint16_t>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_37)))));
} else {
r2_48 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_37))));
if (!(reinterpret_cast<unsigned char>(r11_38) & 0x1000000)) {
goto addr_10025244_32;
} else {
r0_49 = fun_10024088(r6_35, r11_38, r2_48);
r2_48 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_37))));
if (r0_49 == r2_48) {
addr_10025244_32:
r0_49 = fun_1002d460(r8_47, static_cast<uint32_t>(a10), r2_48);
}
*reinterpret_cast<void***>(r4_42) = reinterpret_cast<void**>(static_cast<uint16_t>(reinterpret_cast<uint32_t>(r0_49)));
}
}
r3_50 = image_base_;
r2 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_42))));
r1 = reinterpret_cast<void**>(static_cast<uint32_t>((*r3_50)->fc));
r3_51 = reinterpret_cast<struct s74*>(reinterpret_cast<int32_t>(*r3_50) + reinterpret_cast<uint32_t>((*r3_50)->f28));
r0_52 = fun_1002d404(&r3_51->f30, r1, r2);
r6_53 = r5_37 + 2;
c54 = reinterpret_cast<unsigned char>(r6_53) < reinterpret_cast<unsigned char>(r9_40);
if (c54) {
r3_51 = reinterpret_cast<struct s74*>(1);
}
*reinterpret_cast<void***>(r4_42) = reinterpret_cast<void**>(static_cast<uint16_t>(reinterpret_cast<uint32_t>(r0_52)));
if (!c54) {
r10_55 = v36;
r7_56 = image_base_;
while (1) {
r2 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r6_53))));
if (r8_47) {
if (!(reinterpret_cast<unsigned char>(r11_38) & 0x1000000)) {
goto addr_100252d0_45;
} else {
r0_57 = fun_10024088(r10_55, r11_38, r2);
r3_58 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r6_53))));
r2 = r0_57;
if (r2 == r3_58) {
r2 = r3_58;
goto addr_100252d0_45;
}
}
}
addr_100252e4_49:
r0_59 = fun_1002d404(reinterpret_cast<int32_t>(*r7_56) + reinterpret_cast<uint32_t>((*r7_56)->f28) + 48, static_cast<uint32_t>((*r7_56)->fc), r2);
r1 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_42))));
r0_60 = fun_10024704(reinterpret_cast<unsigned char>(r0_59) << 16 >> 16, r1, r2);
if (!r0_60)
goto label_50;
r6_53 = r6_53 + 2;
*reinterpret_cast<void***>(r4_42) = reinterpret_cast<void**>(static_cast<uint16_t>(reinterpret_cast<uint32_t>(r0_60)));
if (reinterpret_cast<unsigned char>(r6_53) < reinterpret_cast<unsigned char>(r9_40))
goto addr_10025324_52;
continue;
addr_100252d0_45:
r0_61 = fun_1002d460(r8_47, static_cast<uint32_t>(a10), r2);
r2 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r0_61) << 16 >> 16);
goto addr_100252e4_49;
}
}
addr_10025334_54:
r5_37 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r5_37) + (reinterpret_cast<uint32_t>(r3_51) << 1));
r6_35 = v36;
if (a7) {
r0_65 = fun_10023f00(r6_35, static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_42))), r2, a7, v44, v36, v45, v46, v62, v63, v64, v16, v18, v20, v22, v24, v26, v28, v30, v32, v33, v12, v13, v14, v15, a5, a6, a7, a8, *reinterpret_cast<int16_t*>(&a9));
r1 = r0_65;
r0_69 = fun_10024154(r6_35, r1, r2, a7, v44, v36, v45, v46, v66, v67, v68, v16);
if (!(reinterpret_cast<unsigned char>(r0_69) & 0x80)) {
r2 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_42))));
r1 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<uint16_t*>(&a8)));
r0_70 = fun_1002d404(a7, r1, r2);
*reinterpret_cast<void***>(r4_42) = reinterpret_cast<void**>(static_cast<uint16_t>(reinterpret_cast<uint32_t>(r0_70)));
}
}
r3 = a5 + 2;
a5 = r3;
lr11 = a5;
if (reinterpret_cast<unsigned char>(r5_37) < reinterpret_cast<unsigned char>(r9_40))
goto addr_10025394_60;
r4_42 = v44;
continue;
label_50:
addr_10025324_52:
r10_39 = a6;
r3_51 = reinterpret_cast<struct s74*>(reinterpret_cast<int32_t>(reinterpret_cast<unsigned char>(r6_53) - reinterpret_cast<unsigned char>(r5_37)) >> 1);
goto addr_10025334_54;
}
goto label_63;
}
addr_10025394_60:
z71 = r10_39 == 0;
if (z71) {
r2 = a5;
}
if (z71) {
r3 = reinterpret_cast<void**>(sp34 + 16);
}
if (z71) {
r3 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r2) - reinterpret_cast<unsigned char>(r3));
}
if (!z71) {
if (reinterpret_cast<unsigned char>(r5_37) < reinterpret_cast<unsigned char>(r9_40)) {
r3 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(a5) - reinterpret_cast<unsigned char>(lr11));
} else {
SetLastError(0x7a, r1, r2, r3);
r0_72 = reinterpret_cast<void**>(0);
goto addr_100253cc_75;
}
}
r0_72 = reinterpret_cast<void**>(reinterpret_cast<signed char>(r3) >> 1);
addr_100253cc_75:
return r0_72;
label_63:
goto addr_10025394_60;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(16);
uint32_t g100258d8 = 0xfefffcff;
struct s75 {
signed char[6] pad6;
uint16_t f6;
uint16_t f8;
signed char[18] pad28;
void* f1c;
void* f20;
};
/* (image base) */
struct s75** image_base_ = reinterpret_cast<struct s75**>(0x1007b204);
void** fun_100253dc(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, int16_t a13) {
void** lr14;
void** v15;
void** r4_16;
void** v17;
void** r5_18;
void** v19;
void** r6_20;
void** v21;
void** r7_22;
void** v23;
void** r8_24;
void** v25;
void** r9_26;
void** v27;
void** r10_28;
void** v29;
void** r11_30;
void** v31;
void** r7_32;
void** v33;
void** r4_34;
void** r9_35;
void** r11_36;
int1_t z37;
void** r10_38;
void** r8_39;
int1_t z40;
uint32_t r3_41;
void** r3_42;
struct s75** r3_43;
uint32_t r4_44;
void** v45;
void** v46;
uint32_t v47;
void** r0_48;
void** v49;
struct s75** r3_50;
uint32_t r4_51;
void** v52;
void** v53;
uint32_t v54;
void** v55;
struct s75** r3_56;
void** r4_57;
void** v58;
void** v59;
struct s75** r3_60;
void** r4_61;
void** v62;
void** v63;
void** r2_64;
void** r3_65;
struct s75** r8_66;
void** r5_67;
void* r6_68;
void** v69;
void** v70;
void** v71;
void** v72;
void** v73;
void** v74;
void** v75;
void** r0_76;
void** v77;
void** v78;
void** v79;
void** v80;
void** v81;
void** v82;
void** v83;
void** r0_84;
int1_t z85;
void** r0_86;
void** r5_87;
void** r6_88;
void** r3_89;
void** v90;
void** r7_91;
void** r4_92;
void** v93;
void** v94;
void** v95;
void** v96;
void** v97;
void** v98;
void** r0_99;
void** v100;
void** v101;
void** v102;
void** v103;
void** v104;
void** v105;
void** r0_106;
int1_t z107;
struct s75** r3_108;
void** r0_109;
void** r0_110;
void** r5_111;
void** r6_112;
void** r3_113;
void** v114;
void** r7_115;
void** r4_116;
void** v117;
void** v118;
void** v119;
void** v120;
void** v121;
void** v122;
void** r0_123;
void** v124;
void** v125;
void** v126;
void** v127;
void** v128;
void** v129;
void** r0_130;
int1_t z131;
struct s75** r3_132;
void** r0_133;
void** r0_134;
void** r3_135;
struct s75** r8_136;
void** r5_137;
void* r6_138;
void** v139;
void** v140;
void** v141;
void** v142;
void** v143;
void** v144;
void** v145;
void** r0_146;
void** v147;
void** v148;
void** v149;
void** v150;
void** v151;
void** v152;
void** v153;
void** r0_154;
int1_t z155;
void** r0_156;
lr14 = reinterpret_cast<void**>(__return_address());
v15 = r4_16;
v17 = r5_18;
v19 = r6_20;
v21 = r7_22;
v23 = r8_24;
v25 = r9_26;
v27 = r10_28;
v29 = r11_30;
v31 = lr14;
r7_32 = r3;
v33 = r7_32;
r4_34 = r2;
r9_35 = r1;
r11_36 = r0;
z37 = (reinterpret_cast<unsigned char>(r9_35) & 0x100) == 0;
if (!z37) {
r3 = image_base_;
}
if (!z37) {
lr14 = *reinterpret_cast<void***>(r3);
}
if (!z37) {
r3 = *reinterpret_cast<void***>(lr14 + 48);
}
if (!z37) {
r10_38 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<unsigned char*>(lr14 + 10))));
}
if (!z37) {
r3 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(lr14) + reinterpret_cast<unsigned char>(r3));
}
if (!z37) {
r8_39 = r3 + 84;
}
if (z37) {
z40 = (reinterpret_cast<unsigned char>(r9_35) & 0x200) == 0;
if (!z40) {
r3 = image_base_;
}
if (!z40) {
r2 = *reinterpret_cast<void***>(r3);
}
if (!z40) {
r3 = *reinterpret_cast<void***>(r2 + 44);
}
if (!z40) {
r10_38 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r2 + 8))));
}
if (z40) {
r10_38 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<uint16_t*>(&v33)));
}
if (!z40) {
r3 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r2) + reinterpret_cast<unsigned char>(r3));
}
if (!z40) {
r8_39 = r3 + 84;
}
if (z40) {
r8_39 = reinterpret_cast<void**>(0);
}
}
r3_41 = g100258d8;
r3_42 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r9_35) & r3_41);
if (reinterpret_cast<unsigned char>(r3_42) > reinterpret_cast<unsigned char>(0x600000)) {
if (r3_42 != 0x800000)
goto addr_100257d8_34;
} else {
if (r3_42 == 0x600000) {
r3_43 = image_base_;
r4_44 = (*r3_43)->f8;
v45 = reinterpret_cast<void**>(reinterpret_cast<int32_t>((*r3_43)->f20) + reinterpret_cast<uint32_t>(*r3_43) + 48);
v46 = r10_38;
v47 = r4_44;
r0_48 = fun_10024e74(r11_36, r9_35, r4_34, r7_32, a5, a6, v45, *reinterpret_cast<uint16_t*>(&v47), r8_39, *reinterpret_cast<uint16_t*>(&v46));
goto addr_100258c0_38;
} else {
if (r3_42 == 0x100000) {
goto addr_100254fc_41;
} else {
if (r3_42 == 0x200000) {
goto addr_100254fc_41;
} else {
if (r3_42 == 0x400000) {
v49 = r10_38;
r0_48 = fun_10024e74(r11_36, r9_35, r4_34, r7_32, a5, a6, 0, 0, r8_39, *reinterpret_cast<uint16_t*>(&v49));
goto addr_100258c0_38;
} else {
if (!reinterpret_cast<int1_t>(r3_42 == 0x500000)) {
goto addr_10025518_49;
} else {
r3_50 = image_base_;
r4_51 = (*r3_50)->f6;
v52 = reinterpret_cast<void**>(reinterpret_cast<int32_t>((*r3_50)->f1c) + reinterpret_cast<uint32_t>(*r3_50) + 48);
v53 = r10_38;
v54 = r4_51;
r0_48 = fun_10024e74(r11_36, r9_35, r4_34, r7_32, a5, a6, v52, *reinterpret_cast<uint16_t*>(&v54), r8_39, *reinterpret_cast<uint16_t*>(&v53));
goto addr_100258c0_38;
}
}
}
}
}
}
v55 = r10_38;
r0_48 = fun_10025198(r11_36, r9_35, r4_34, r7_32, a5, a6, 0, 0, r8_39, *reinterpret_cast<uint16_t*>(&v55));
addr_100258c0_38:
r7_32 = r0_48;
addr_100258c4_53:
return r7_32;
addr_100257d8_34:
if (r3_42 == 0x900000) {
r3_56 = image_base_;
r4_57 = reinterpret_cast<void**>(static_cast<uint32_t>((*r3_56)->f6));
v58 = reinterpret_cast<void**>(reinterpret_cast<int32_t>((*r3_56)->f1c) + reinterpret_cast<uint32_t>(*r3_56) + 48);
v59 = r10_38;
r0_48 = fun_10025198(r11_36, r9_35, r4_34, r7_32, a5, a6, v58, r4_57, r8_39, *reinterpret_cast<uint16_t*>(&v59));
goto addr_100258c0_38;
} else {
if (reinterpret_cast<int1_t>(r3_42 == 0xa00000)) {
r3_60 = image_base_;
r4_61 = reinterpret_cast<void**>(static_cast<uint32_t>((*r3_60)->f8));
v62 = reinterpret_cast<void**>(reinterpret_cast<int32_t>((*r3_60)->f20) + reinterpret_cast<uint32_t>(*r3_60) + 48);
v63 = r10_38;
r0_48 = fun_10025198(r11_36, r9_35, r4_34, r7_32, a5, a6, v62, r4_61, r8_39, *reinterpret_cast<uint16_t*>(&v63));
goto addr_100258c0_38;
}
}
addr_10025518_49:
r7_32 = reinterpret_cast<void**>(0);
goto addr_100258c4_53;
addr_100254fc_41:
r2_64 = a6;
if (!r2_64) {
goto addr_100258c4_53;
} else {
if (reinterpret_cast<signed char>(r7_32) <= reinterpret_cast<signed char>(r2_64)) {
if (reinterpret_cast<int1_t>(r3_42 == 0x100000))
goto addr_10025528_63;
} else {
SetLastError(0x7a, r1, r2_64, r3_42);
goto addr_10025518_49;
}
}
if (r8_39)
goto addr_1002565c_67;
if (reinterpret_cast<signed char>(r7_32) > reinterpret_cast<signed char>(0))
goto addr_10025718_70;
goto addr_100258c4_53;
addr_10025718_70:
r3_65 = a5;
r8_66 = image_base_;
r5_67 = r7_32;
r6_68 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(r3_65) - reinterpret_cast<unsigned char>(r4_34));
while (1) {
r0_76 = fun_10023f00(r11_36, static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_34))), r2_64, r3_65, v69, v70, v71, v72, v73, v74, v33, v75, v15, v17, v19, v21, v23, v25, v27, v29, v31, a5, a6, a7, a8, a9, a10, a11, a12, a13);
r0_84 = fun_10024154(r11_36, r0_76, r2_64, r3_65, v77, v78, v79, v80, v81, v82, v33, v83);
z85 = (reinterpret_cast<unsigned char>(r0_84) & 0x80) == 0;
if (!z85) {
r3_65 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_34))));
}
if (!z85) {
*reinterpret_cast<int16_t*>(reinterpret_cast<unsigned char>(r4_34) - reinterpret_cast<uint32_t>(r6_68)) = static_cast<int16_t>(reinterpret_cast<uint32_t>(r3_65));
}
if (z85) {
r2_64 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_34))));
r3_65 = reinterpret_cast<void**>(reinterpret_cast<int32_t>((*r8_66)->f20) + reinterpret_cast<uint32_t>(*r8_66));
r0_86 = fun_1002d404(r3_65 + 48, static_cast<uint32_t>((*r8_66)->f8), r2_64);
*reinterpret_cast<int16_t*>(reinterpret_cast<unsigned char>(r4_34) - reinterpret_cast<uint32_t>(r6_68)) = static_cast<int16_t>(reinterpret_cast<uint32_t>(r0_86));
}
r4_34 = r4_34 + 2;
--r5_67;
if (!r5_67)
break;
}
goto addr_100258c4_53;
addr_1002565c_67:
if (reinterpret_cast<signed char>(r7_32) <= reinterpret_cast<signed char>(0)) {
goto addr_100258c4_53;
} else {
r5_87 = a5;
r6_88 = r7_32;
r3_89 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r4_34) - reinterpret_cast<unsigned char>(r5_87));
v90 = r3_89;
r7_91 = r3_89;
while (1) {
r4_92 = r5_87;
r0_99 = fun_10023f00(r11_36, static_cast<uint32_t>(*reinterpret_cast<uint16_t*>(reinterpret_cast<unsigned char>(r5_87) - reinterpret_cast<unsigned char>(r7_91))), r2_64, r3_89, v93, v94, v95, v96, v97, v98, v33, v90, v15, v17, v19, v21, v23, v25, v27, v29, v31, a5, a6, a7, a8, a9, a10, a11, a12, a13);
r0_106 = fun_10024154(r11_36, r0_99, r2_64, r3_89, v100, v101, v102, v103, v104, v105, v33, v90);
z107 = (reinterpret_cast<unsigned char>(r0_106) & 0x80) == 0;
if (!z107) {
r3_89 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_92))));
}
if (!z107) {
*reinterpret_cast<void***>(r5_87) = reinterpret_cast<void**>(static_cast<uint16_t>(reinterpret_cast<uint32_t>(r3_89)));
}
if (z107) {
r3_108 = image_base_;
r3_89 = reinterpret_cast<void**>(reinterpret_cast<int32_t>((*r3_108)->f20) + reinterpret_cast<uint32_t>(*r3_108));
r0_109 = fun_1002d404(r3_89 + 48, static_cast<uint32_t>((*r3_108)->f8), static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_92))));
*reinterpret_cast<void***>(r5_87) = reinterpret_cast<void**>(static_cast<uint16_t>(reinterpret_cast<uint32_t>(r0_109)));
}
r2_64 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_87))));
if (!(reinterpret_cast<unsigned char>(r9_35) & 0x1000000)) {
goto addr_100256ec_93;
} else {
r0_110 = fun_10024088(r11_36, r9_35, r2_64);
r2_64 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_87))));
if (r0_110 == r2_64) {
addr_100256ec_93:
r0_110 = fun_1002d460(r8_39, r10_38, r2_64);
}
*reinterpret_cast<void***>(r5_87) = reinterpret_cast<void**>(static_cast<uint16_t>(reinterpret_cast<uint32_t>(r0_110)));
r5_87 = r5_87 + 2;
--r6_88;
if (!r6_88)
break;
}
}
r7_32 = v33;
goto addr_100258c4_53;
}
addr_10025528_63:
if (!r8_39) {
if (reinterpret_cast<signed char>(r7_32) > reinterpret_cast<signed char>(0))
goto addr_100255ec_101;
} else {
if (reinterpret_cast<signed char>(r7_32) <= reinterpret_cast<signed char>(0)) {
goto addr_100258c4_53;
} else {
r5_111 = a5;
r6_112 = r7_32;
r3_113 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r4_34) - reinterpret_cast<unsigned char>(r5_111));
v114 = r3_113;
r7_115 = r3_113;
while (1) {
r4_116 = r7_115;
r0_123 = fun_10023f00(r11_36, static_cast<uint32_t>(*reinterpret_cast<uint16_t*>(reinterpret_cast<unsigned char>(r7_115) - reinterpret_cast<unsigned char>(r5_111))), r2_64, r3_113, v117, v118, v119, v120, v121, v122, v33, v114, v15, v17, v19, v21, v23, v25, v27, v29, v31, a5, a6, a7, a8, a9, a10, a11, a12, a13);
r0_130 = fun_10024154(r11_36, r0_123, r2_64, r3_113, v124, v125, v126, v127, v128, v129, v33, v114);
z131 = (reinterpret_cast<unsigned char>(r0_130) & 0x80) == 0;
if (!z131) {
r3_113 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_116))));
}
if (!z131) {
*reinterpret_cast<void***>(r5_111) = reinterpret_cast<void**>(static_cast<uint16_t>(reinterpret_cast<uint32_t>(r3_113)));
}
if (z131) {
r3_132 = image_base_;
r3_113 = reinterpret_cast<void**>(reinterpret_cast<int32_t>((*r3_132)->f1c) + reinterpret_cast<uint32_t>(*r3_132));
r0_133 = fun_1002d404(r3_113 + 48, static_cast<uint32_t>((*r3_132)->f6), static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_116))));
*reinterpret_cast<void***>(r5_111) = reinterpret_cast<void**>(static_cast<uint16_t>(reinterpret_cast<uint32_t>(r0_133)));
}
r2_64 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_111))));
if (!(reinterpret_cast<unsigned char>(r9_35) & 0x1000000)) {
goto addr_100255c0_114;
} else {
r0_134 = fun_10024088(r11_36, r9_35, r2_64);
r2_64 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_111))));
if (r0_134 == r2_64) {
addr_100255c0_114:
r0_134 = fun_1002d460(r8_39, r10_38, r2_64);
}
*reinterpret_cast<void***>(r5_111) = reinterpret_cast<void**>(static_cast<uint16_t>(reinterpret_cast<uint32_t>(r0_134)));
r5_111 = r5_111 + 2;
--r6_112;
if (!r6_112)
break;
}
}
r7_32 = v33;
goto addr_100258c4_53;
}
}
goto addr_100258c4_53;
addr_100255ec_101:
r3_135 = a5;
r8_136 = image_base_;
r5_137 = r7_32;
r6_138 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(r3_135) - reinterpret_cast<unsigned char>(r4_34));
while (1) {
r0_146 = fun_10023f00(r11_36, static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_34))), r2_64, r3_135, v139, v140, v141, v142, v143, v144, v33, v145, v15, v17, v19, v21, v23, v25, v27, v29, v31, a5, a6, a7, a8, a9, a10, a11, a12, a13);
r0_154 = fun_10024154(r11_36, r0_146, r2_64, r3_135, v147, v148, v149, v150, v151, v152, v33, v153);
z155 = (reinterpret_cast<unsigned char>(r0_154) & 0x80) == 0;
if (!z155) {
r3_135 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_34))));
}
if (!z155) {
*reinterpret_cast<int16_t*>(reinterpret_cast<uint32_t>(r6_138) - reinterpret_cast<unsigned char>(r4_34)) = static_cast<int16_t>(reinterpret_cast<uint32_t>(r3_135));
}
if (z155) {
r2_64 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_34))));
r3_135 = reinterpret_cast<void**>(reinterpret_cast<int32_t>((*r8_136)->f1c) + reinterpret_cast<uint32_t>(*r8_136));
r0_156 = fun_1002d404(r3_135 + 48, static_cast<uint32_t>((*r8_136)->f6), r2_64);
*reinterpret_cast<int16_t*>(reinterpret_cast<uint32_t>(r6_138) - reinterpret_cast<unsigned char>(r4_34)) = static_cast<int16_t>(reinterpret_cast<uint32_t>(r0_156));
}
r4_34 = r4_34 + 2;
--r5_137;
if (!r5_137)
break;
}
goto addr_100258c4_53;
}
void** fun_100258e0(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, int16_t a19) {
void** v20;
void** r4_21;
void** v22;
void** r5_23;
void** v24;
void** r6_25;
void** v26;
void** r7_27;
void** v28;
void** r8_29;
void** v30;
void** r9_31;
void** v32;
void** r10_33;
void** v34;
void** r11_35;
void** v36;
uint16_t* sp37;
void** r6_38;
void** r5_39;
void** r7_40;
void** r4_41;
void** r11_42;
void** r9_43;
void** r11_44;
void** r10_45;
void** v46;
void** v47;
void** r0_48;
void** v49;
void** v50;
void** r0_51;
void** v52;
void** v53;
void** r0_54;
void** v55;
void** v56;
void** r0_57;
void** v58;
void** v59;
void** r0_60;
void** v61;
void** v62;
void** r0_63;
void** r10_64;
void** r8_65;
void** v66;
void** v67;
void** r0_68;
void** r9_69;
void** v70;
void** r0_71;
int1_t below_or_equal72;
void** v73;
void** r0_74;
void** v75;
void** r0_76;
void** v77;
int32_t r0_78;
int1_t z79;
void** v80;
int32_t r0_81;
uint16_t v82;
int1_t z83;
void** v84;
void** v85;
void** r0_86;
void** v87;
void** v88;
void** r0_89;
void** v90;
void** v91;
void** r0_92;
void** v93;
void** v94;
void** r0_95;
void** r8_96;
void** r10_97;
void** v98;
void** v99;
void** r0_100;
void** v101;
void** v102;
void** r0_103;
void** v104;
void** v105;
void** r0_106;
void** v107;
void** v108;
void** r0_109;
void** r8_110;
void** v111;
void** v112;
void** r0_113;
void** v114;
void** r0_115;
void** v116;
void** r0_117;
void** r9_118;
void** v119;
void** r0_120;
int1_t below_or_equal121;
void** v122;
void** r0_123;
void** v124;
void** r0_125;
void** v126;
int32_t r0_127;
int1_t z128;
void** v129;
int32_t r0_130;
uint16_t v131;
int1_t z132;
v20 = r4_21;
v22 = r5_23;
v24 = r6_25;
v26 = r7_27;
v28 = r8_29;
v30 = r9_31;
v32 = r10_33;
v34 = r11_35;
v36 = reinterpret_cast<void**>(__return_address());
sp37 = reinterpret_cast<uint16_t*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 36 - 8);
r6_38 = r3;
r5_39 = r2;
r7_40 = r0;
r4_41 = reinterpret_cast<void**>(0);
if (r1 == 2) {
r11_42 = a6;
r4_41 = reinterpret_cast<void**>(0);
if (!r11_42)
goto addr_10025b88_4;
} else {
if (r1 == 4) {
r9_43 = a6;
r4_41 = reinterpret_cast<void**>(0);
if (r9_43)
goto label_8; else
goto addr_10025ad4_9;
} else {
if (!reinterpret_cast<int1_t>(r1 == 6)) {
goto addr_10025cd8_12;
} else {
r11_44 = a6;
r4_41 = reinterpret_cast<void**>(0);
if (r11_44) {
r10_45 = reinterpret_cast<void**>(0);
if (reinterpret_cast<signed char>(r6_38) <= reinterpret_cast<signed char>(0))
goto label_16; else
goto addr_100259c4_17;
} else {
if (reinterpret_cast<signed char>(r6_38) <= reinterpret_cast<signed char>(0)) {
goto addr_10025cd8_12;
} else {
while (1) {
r0_48 = fun_10023f00(r7_40, static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_39))), r2, r3, v46, v47, v20, v22, v24, v26, v28, v30, v32, v34, v36, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19);
r0_51 = fun_10024154(r7_40, r0_48, r2, r3, v49, v50, v20, v22, v24, v26, v28, v30);
if (reinterpret_cast<unsigned char>(r0_51) >= reinterpret_cast<unsigned char>(6)) {
goto addr_10025950_22;
}
if (reinterpret_cast<unsigned char>(r0_51) > reinterpret_cast<unsigned char>(11)) {
addr_10025950_22:
r0_54 = fun_10023f00(r7_40, static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_39))), r2, r3, v52, v53, v20, v22, v24, v26, v28, v30, v32, v34, v36, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19);
r0_57 = fun_10024154(r7_40, r0_54, r2, r3, v55, v56, v20, v22, v24, v26, v28, v30);
if (r0_57 == 1) {
goto addr_10025984_26;
} else {
r3 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r0_54) >> 16 & 0xff);
if (reinterpret_cast<unsigned char>(r3) <= reinterpret_cast<unsigned char>(2)) {
goto addr_100259a4_29;
}
}
}
addr_100259a8_30:
r5_39 = r5_39 + 2;
--r6_38;
if (!r6_38)
break;
continue;
addr_10025984_26:
r0_60 = fun_10023f00(r7_40, static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_39))), r2, r3, v58, v59, v20, v22, v24, v26, v28, v30, v32, v34, v36, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19);
r0_63 = fun_10024154(r7_40, r0_60, r2, r3, v61, v62, v20, v22, v24, v26, v28, v30);
if (r0_63 == 1) {
goto addr_100259a8_30;
} else {
addr_100259a4_29:
++r4_41;
goto addr_100259a8_30;
}
}
goto addr_10025cd8_12;
}
}
}
}
}
r10_64 = reinterpret_cast<void**>(0);
if (reinterpret_cast<signed char>(r6_38) > reinterpret_cast<signed char>(0))
goto addr_10025c04_36;
addr_10025cd8_12:
return r4_41;
addr_10025c04_36:
r8_65 = a5;
while (reinterpret_cast<signed char>(r4_41) < reinterpret_cast<signed char>(r11_42)) {
r0_68 = fun_10023f00(r7_40, static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_39))), r2, r3, v66, v67, v20, v22, v24, v26, v28, v30, v32, v34, v36, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19);
r9_69 = r0_68;
r0_71 = fun_10024154(r7_40, r9_69, r2, r3, v70, v67, v20, v22, v24, v26, v28, v30);
if (r0_71 != 1) {
r3 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r9_69) >> 16 & 0xff);
below_or_equal72 = reinterpret_cast<unsigned char>(r3) <= reinterpret_cast<unsigned char>(2);
if (below_or_equal72) {
r3 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_39))));
}
if (below_or_equal72) {
*reinterpret_cast<void***>(r8_65) = reinterpret_cast<void**>(static_cast<uint16_t>(reinterpret_cast<uint32_t>(r3)));
r8_65 = r8_65 - 2;
}
if (below_or_equal72)
goto label_46;
}
r0_74 = fun_10023f00(r7_40, static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_39))), r2, r3, v73, v67, v20, v22, v24, v26, v28, v30, v32, v34, v36, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19);
r0_76 = fun_10024154(r7_40, r0_74, r2, r3, v75, v67, v20, v22, v24, v26, v28, v30);
if (r0_76 != 1) {
r2 = reinterpret_cast<void**>(sp37 + 2);
r0_78 = fun_100245bc(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_39))), sp37, r2, r3, v77, v67, v20, v22, v24, v26);
z79 = r0_78 == 0;
if (z79) {
r9_69 = reinterpret_cast<void**>(0);
}
if (!z79) {
r9_69 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<uint16_t*>(&v67)));
while (r2 = reinterpret_cast<void**>(sp37 + 1), r0_81 = fun_100245bc(r9_69, sp37, r2, r3, v80, v67, v20, v22, v24, v26), !!r0_81) {
r9_69 = reinterpret_cast<void**>(static_cast<uint32_t>(v82));
*reinterpret_cast<uint16_t*>(&v67) = static_cast<uint16_t>(reinterpret_cast<uint32_t>(r9_69));
}
}
z83 = r9_69 == 0;
*reinterpret_cast<void***>(r8_65) = reinterpret_cast<void**>(static_cast<uint16_t>(reinterpret_cast<uint32_t>(r9_69)));
if (z83) {
r3 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_39))));
}
if (z83) {
*reinterpret_cast<void***>(r8_65) = reinterpret_cast<void**>(static_cast<uint16_t>(reinterpret_cast<uint32_t>(r3)));
}
r8_65 = r8_65 + 2;
goto addr_10025cc4_62;
}
addr_10025cc8_63:
++r10_64;
r5_39 = r5_39 + 2;
if (reinterpret_cast<signed char>(r10_64) >= reinterpret_cast<signed char>(r6_38))
goto addr_10025cd8_12;
continue;
addr_10025cc4_62:
++r4_41;
goto addr_10025cc8_63;
label_46:
goto addr_10025cc4_62;
}
goto addr_10025cd8_12;
addr_10025b88_4:
if (reinterpret_cast<signed char>(r6_38) <= reinterpret_cast<signed char>(0)) {
goto addr_10025cd8_12;
} else {
while (1) {
r0_86 = fun_10023f00(r7_40, static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_39))), r2, r3, v84, v85, v20, v22, v24, v26, v28, v30, v32, v34, v36, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19);
r0_89 = fun_10024154(r7_40, r0_86, r2, r3, v87, v88, v20, v22, v24, v26, v28, v30);
if (r0_89 != 1) {
r3 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r0_86) >> 16 & 0xff);
if (reinterpret_cast<unsigned char>(r3) <= reinterpret_cast<unsigned char>(2)) {
goto addr_10025be4_71;
}
}
r0_92 = fun_10023f00(r7_40, static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_39))), r2, r3, v90, v91, v20, v22, v24, v26, v28, v30, v32, v34, v36, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19);
r0_95 = fun_10024154(r7_40, r0_92, r2, r3, v93, v94, v20, v22, v24, v26, v28, v30);
if (r0_95 != 1) {
addr_10025be4_71:
++r4_41;
}
r5_39 = r5_39 + 2;
--r6_38;
if (!r6_38)
break;
}
goto addr_10025cd8_12;
}
label_8:
r8_96 = reinterpret_cast<void**>(0);
if (reinterpret_cast<signed char>(r6_38) > reinterpret_cast<signed char>(0))
goto addr_10025b24_78;
goto addr_10025cd8_12;
addr_10025b24_78:
r10_97 = a5;
while (reinterpret_cast<signed char>(r4_41) < reinterpret_cast<signed char>(r9_43)) {
r0_100 = fun_10023f00(r7_40, static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_39))), r2, r3, v98, v99, v20, v22, v24, v26, v28, v30, v32, v34, v36, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19);
r0_103 = fun_10024154(r7_40, r0_100, r2, r3, v101, v102, v20, v22, v24, v26, v28, v30);
if (reinterpret_cast<unsigned char>(r0_103) >= reinterpret_cast<unsigned char>(6)) {
goto addr_10025b58_83;
} else {
if (reinterpret_cast<unsigned char>(r0_103) > reinterpret_cast<unsigned char>(11)) {
addr_10025b58_83:
r3 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_39))));
++r4_41;
*reinterpret_cast<void***>(r10_97) = reinterpret_cast<void**>(static_cast<uint16_t>(reinterpret_cast<uint32_t>(r3)));
r10_97 = r10_97 - 2;
}
++r8_96;
r5_39 = r5_39 + 2;
if (reinterpret_cast<signed char>(r8_96) >= reinterpret_cast<signed char>(r6_38))
goto addr_10025b74_87;
}
}
goto addr_10025cd8_12;
addr_10025b74_87:
goto addr_10025cd8_12;
addr_10025ad4_9:
if (reinterpret_cast<signed char>(r6_38) <= reinterpret_cast<signed char>(0)) {
goto addr_10025cd8_12;
} else {
while (1) {
r0_106 = fun_10023f00(r7_40, static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_39))), r2, r3, v104, v105, v20, v22, v24, v26, v28, v30, v32, v34, v36, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19);
r0_109 = fun_10024154(r7_40, r0_106, r2, r3, v107, v108, v20, v22, v24, v26, v28, v30);
if (reinterpret_cast<unsigned char>(r0_109) >= reinterpret_cast<unsigned char>(6)) {
goto addr_10025b04_93;
} else {
if (reinterpret_cast<unsigned char>(r0_109) > reinterpret_cast<unsigned char>(11)) {
addr_10025b04_93:
++r4_41;
}
r5_39 = r5_39 + 2;
--r6_38;
if (!r6_38)
break;
}
}
goto addr_10025cd8_12;
}
label_16:
goto addr_10025cd8_12;
addr_100259c4_17:
r8_110 = a5;
while (reinterpret_cast<signed char>(r4_41) < reinterpret_cast<signed char>(r11_44)) {
r0_113 = fun_10023f00(r7_40, static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_39))), r2, r3, v111, v112, v20, v22, v24, v26, v28, v30, v32, v34, v36, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19);
r0_115 = fun_10024154(r7_40, r0_113, r2, r3, v111, v114, v20, v22, v24, v26, v28, v30);
if (reinterpret_cast<unsigned char>(r0_115) >= reinterpret_cast<unsigned char>(6)) {
goto addr_100259f8_102;
}
if (reinterpret_cast<unsigned char>(r0_115) > reinterpret_cast<unsigned char>(11)) {
addr_100259f8_102:
r0_117 = fun_10023f00(r7_40, static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_39))), r2, r3, v111, v116, v20, v22, v24, v26, v28, v30, v32, v34, v36, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19);
r9_118 = r0_117;
r0_120 = fun_10024154(r7_40, r9_118, r2, r3, v111, v119, v20, v22, v24, v26, v28, v30);
if (r0_120 == 1) {
goto addr_10025a34_106;
} else {
r3 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r9_118) >> 16 & 0xff);
below_or_equal121 = reinterpret_cast<unsigned char>(r3) <= reinterpret_cast<unsigned char>(2);
if (below_or_equal121) {
r3 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_39))));
}
if (below_or_equal121) {
*reinterpret_cast<void***>(r8_110) = reinterpret_cast<void**>(static_cast<uint16_t>(reinterpret_cast<uint32_t>(r3)));
r8_110 = r8_110 - 2;
}
if (below_or_equal121)
goto label_112; else
goto addr_10025a34_106;
}
}
addr_10025ab0_113:
++r10_45;
r5_39 = r5_39 + 2;
if (reinterpret_cast<signed char>(r10_45) >= reinterpret_cast<signed char>(r6_38))
goto addr_10025ac0_114;
continue;
addr_10025a34_106:
r0_123 = fun_10023f00(r7_40, static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_39))), r2, r3, v111, v122, v20, v22, v24, v26, v28, v30, v32, v34, v36, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19);
r0_125 = fun_10024154(r7_40, r0_123, r2, r3, v111, v124, v20, v22, v24, v26, v28, v30);
if (r0_125 == 1) {
goto addr_10025ab0_113;
} else {
r2 = reinterpret_cast<void**>(sp37);
r0_127 = fun_100245bc(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_39))), sp37 + 2, r2, r3, v111, v126, v20, v22, v24, v26);
z128 = r0_127 == 0;
if (z128) {
r9_118 = reinterpret_cast<void**>(0);
}
if (!z128) {
r9_118 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<uint16_t*>(&v111)));
while (r2 = reinterpret_cast<void**>(sp37 + 1), r0_130 = fun_100245bc(r9_118, sp37 + 2, r2, r3, v111, v129, v20, v22, v24, v26), !!r0_130) {
r9_118 = reinterpret_cast<void**>(static_cast<uint32_t>(v131));
*reinterpret_cast<uint16_t*>(&v111) = static_cast<uint16_t>(reinterpret_cast<uint32_t>(r9_118));
}
}
z132 = r9_118 == 0;
*reinterpret_cast<void***>(r8_110) = reinterpret_cast<void**>(static_cast<uint16_t>(reinterpret_cast<uint32_t>(r9_118)));
if (z132) {
r3 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_39))));
}
if (z132) {
*reinterpret_cast<void***>(r8_110) = reinterpret_cast<void**>(static_cast<uint16_t>(reinterpret_cast<uint32_t>(r3)));
}
r8_110 = r8_110 + 2;
}
addr_10025aac_130:
++r4_41;
goto addr_10025ab0_113;
label_112:
goto addr_10025aac_130;
}
goto addr_10025cd8_12;
addr_10025ac0_114:
goto addr_10025cd8_12;
}
uint32_t fun_1002d4d8(void** r0, int32_t r1, void** r2, void** r3, void** a5, void** a6);
uint32_t iswctype(void** r0, void** r1, void** r2, void** r3) {
void** r4_5;
uint32_t r0_6;
r0_6 = fun_1002d4d8(r0, 0, r2, r3, r4_5, __return_address());
return reinterpret_cast<unsigned char>(r1) & r0_6 << 16 >> 16;
}
struct s76 {
signed char[8] pad8;
uint16_t f8;
signed char[34] pad44;
void* f2c;
};
/* (image base) */
struct s76** image_base_ = reinterpret_cast<struct s76**>(0x1007b210);
void** towupper(void** r0) {
int1_t below_or_equal2;
void* r3_3;
struct s76** r3_4;
void** r0_5;
if (reinterpret_cast<unsigned char>(r0) < reinterpret_cast<unsigned char>(97)) {
below_or_equal2 = reinterpret_cast<unsigned char>(r0) <= reinterpret_cast<unsigned char>(0x7a);
if (below_or_equal2) {
r3_3 = reinterpret_cast<void*>(r0 + 0xff00);
}
if (below_or_equal2) {
r3_3 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r3_3) + 0xe0);
}
if (below_or_equal2) {
r0 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(r3_3) << 16);
}
if (below_or_equal2)
goto label_10;
}
if (reinterpret_cast<unsigned char>(r0) > reinterpret_cast<unsigned char>(0x80)) {
r3_4 = image_base_;
if (*r3_4) {
r0_5 = fun_1002d460(reinterpret_cast<int32_t>(*r3_4) + reinterpret_cast<int32_t>((*r3_4)->f2c) + 84, static_cast<uint32_t>((*r3_4)->f8), r0);
r0 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r0_5) << 16);
goto addr_10027bdc_16;
}
}
addr_10027be0_17:
return r0;
addr_10027bdc_16:
r0 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r0) >> 16);
goto addr_10027be0_17;
label_10:
goto addr_10027bdc_16;
}
struct s77 {
uint16_t f0;
signed char[14] pad16;
void* f10;
};
/* (image base) */
struct s77** image_base_ = reinterpret_cast<struct s77**>(0x1007b204);
void** fun_100285b0(void** r0, void** r1, void** r2, void** r3) {
void** r8_5;
void** r4_6;
void** r7_7;
void** r5_8;
struct s77** r6_9;
void** r0_10;
r8_5 = r2;
r4_6 = r1;
r7_7 = r0;
if (r3) {
if (reinterpret_cast<signed char>(r4_6) <= reinterpret_cast<signed char>(r3)) {
r5_8 = reinterpret_cast<void**>(0);
if (reinterpret_cast<signed char>(r4_6) <= reinterpret_cast<signed char>(0))
goto label_6; else
goto addr_100285ec_7;
} else {
SetLastError(0x7a, r1, r2, r3);
r4_6 = reinterpret_cast<void**>(0);
}
}
addr_10028620_9:
return r4_6;
label_6:
addr_1002861c_10:
r4_6 = r5_8;
goto addr_10028620_9;
addr_100285ec_7:
r6_9 = image_base_;
r5_8 = r4_6;
while (r7_7 = r7_7 - 2, r0_10 = fun_1002d404(reinterpret_cast<int32_t>(*r6_9) + reinterpret_cast<int32_t>((*r6_9)->f10) + 48, static_cast<uint32_t>((*r6_9)->f0), static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r7_7)))), *reinterpret_cast<void***>(r8_5) = reinterpret_cast<void**>(static_cast<uint16_t>(reinterpret_cast<uint32_t>(r0_10))), r8_5 = r8_5 - 2, --r4_6, !!r4_6) {
}
goto addr_1002861c_10;
}
void** gffffcb54;
void** fun_10028630(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, int16_t a20) {
void** v21;
void** r4_22;
void** v23;
void** r5_24;
void** v25;
void** r6_26;
void** v27;
void** r7_28;
void** v29;
void** r8_30;
void** v31;
void** r9_32;
void** v33;
void** r10_34;
void** v35;
void** r11_36;
void** v37;
void** v38;
void** r8_39;
void** r7_40;
void** r6_41;
void** r10_42;
void** r5_43;
void** r9_44;
void** r4_45;
void** r0_46;
void** r0_47;
int1_t z48;
void** r0_49;
void** r4_50;
void** r0_51;
void** r0_52;
void** r4_53;
void** r0_54;
v21 = r4_22;
v23 = r5_24;
v25 = r6_26;
v27 = r7_28;
v29 = r8_30;
v31 = r9_32;
v33 = r10_34;
v35 = r11_36;
v37 = reinterpret_cast<void**>(__return_address());
v38 = r3;
r8_39 = r2;
r7_40 = r1;
r6_41 = r0;
r10_42 = reinterpret_cast<void**>(0);
r5_43 = reinterpret_cast<void**>(0);
r9_44 = reinterpret_cast<void**>(0);
if (r3) {
if (reinterpret_cast<signed char>(r7_40) > reinterpret_cast<signed char>(0))
goto addr_100286d8_4;
} else {
if (reinterpret_cast<signed char>(r7_40) <= reinterpret_cast<signed char>(0)) {
goto addr_10028768_7;
} else {
while (1) {
if (r5_43) {
r4_45 = gffffcb54;
r0_46 = fun_10023f00(r4_45, static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r6_41))), r2, r3, v38, v21, v23, v25, v27, v29, v31, v33, v35, v37, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
r0_47 = fun_10024154(r4_45, r0_46, r2, r3, v38, v21, v23, v25, v27, v29, v31, v33);
if (reinterpret_cast<int1_t>(r0_47 == 1)) {
z48 = r9_44 == 0;
if (z48) {
r9_44 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r6_41 + 0xfffffffe))));
}
r0_49 = fun_10024704(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r6_41))), r9_44, r2);
r9_44 = r0_49;
if (!z48)
goto label_16; else
goto addr_100286b4_17;
}
}
r9_44 = reinterpret_cast<void**>(0);
addr_100286bc_19:
++r5_43;
addr_100286c0_20:
r6_41 = r6_41 + 2;
--r7_40;
if (!r7_40)
break;
continue;
label_16:
goto addr_100286c0_20;
addr_100286b4_17:
goto addr_100286bc_19;
}
goto addr_10028768_7;
}
}
addr_10028768_7:
return r5_43;
addr_100286d8_4:
while (reinterpret_cast<signed char>(r5_43) < reinterpret_cast<signed char>(r3)) {
if (r5_43) {
r4_50 = gffffcb54;
r0_51 = fun_10023f00(r4_50, static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r6_41))), r2, r3, v38, v21, v23, v25, v27, v29, v31, v33, v35, v37, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
r1 = r0_51;
r0_52 = fun_10024154(r4_50, r1, r2, r3, v38, v21, v23, v25, v27, v29, v31, v33);
if (reinterpret_cast<int1_t>(r0_52 == 1)) {
r4_53 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r8_39 + 0xfffffffe))));
r1 = r4_53;
r0_54 = fun_10024704(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r6_41))), r1, r2);
*reinterpret_cast<void***>(r8_39 + 0xfffffffe) = reinterpret_cast<void**>(static_cast<uint16_t>(reinterpret_cast<uint32_t>(r0_54)));
if (r0_54) {
goto addr_10028740_31;
} else {
*reinterpret_cast<void***>(r8_39 + 0xfffffffe) = reinterpret_cast<void**>(static_cast<uint16_t>(reinterpret_cast<uint32_t>(r4_53)));
}
}
}
++r5_43;
*reinterpret_cast<void***>(r8_39) = reinterpret_cast<void**>(static_cast<uint16_t>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r6_41)))));
r8_39 = r8_39 - 2;
addr_10028740_31:
++r10_42;
r3 = v38;
r6_41 = r6_41 + 2;
if (reinterpret_cast<signed char>(r10_42) >= reinterpret_cast<signed char>(r7_40))
goto addr_10028754_34;
}
addr_10028754_34:
if (reinterpret_cast<signed char>(r10_42) >= reinterpret_cast<signed char>(r7_40)) {
goto addr_10028768_7;
} else {
SetLastError(0x7a, r1, r2, r3);
r5_43 = reinterpret_cast<void**>(0);
goto addr_10028768_7;
}
}
void** fun_10029168(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6);
struct s78 {
signed char[56] pad56;
int32_t f38;
};
/* (image base) */
struct s78** image_base_ = reinterpret_cast<struct s78**>(0x1007b210);
struct s79 {
void** f0;
signed char[1] pad2;
unsigned char f2;
};
void** fun_10027fdc(void** r0, struct s79* r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, int16_t a18);
void** fun_10028c78(void** r0, void*** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, int16_t a15);
void** CompareStringW(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6) {
void*** sp7;
void** r7_8;
void** v9;
void** r6_10;
void** r5_11;
void** r3_12;
void** v13;
void** v14;
void** v15;
void** v16;
void** v17;
void** v18;
void** v19;
void** v20;
void** v21;
void** v22;
void** v23;
void** v24;
void** v25;
void** v26;
void** v27;
void** v28;
void** v29;
void** v30;
void** v31;
void** v32;
void** v33;
void** v34;
void** v35;
void** v36;
void** v37;
void** v38;
void** v39;
void** v40;
void** v41;
void** v42;
void** r0_43;
void** r9_44;
void** v45;
void** v46;
void** v47;
void** v48;
void** v49;
void** v50;
void** r0_51;
int1_t z52;
void** r4_53;
void** r0_54;
void** lr55;
int1_t z56;
uint32_t r3_57;
void** r10_58;
void** r0_59;
void** v60;
void** v61;
void** r3_62;
int1_t z63;
void** v64;
void** v65;
void** r6_66;
void** r8_67;
void** r11_68;
void** v69;
void** v70;
void** v71;
void** v72;
void** v73;
void** v74;
void** v75;
int32_t r0_76;
void** r2_77;
void** lr78;
void** r1_79;
int1_t z80;
void** r0_81;
void** r5_82;
void** v83;
void** v84;
void** v85;
void** r3_86;
int1_t z87;
int1_t z88;
void** v89;
void** v90;
void** v91;
void** v92;
void** v93;
void** v94;
void** v95;
void** v96;
void** v97;
void** v98;
void** v99;
void** v100;
void** v101;
void** v102;
void** v103;
void** v104;
void** v105;
void** r0_106;
void** r0_107;
void** r3_108;
int1_t z109;
int1_t z110;
void** r11_111;
void** r6_112;
void** v113;
void** r3_114;
void** r0_115;
void** r1_116;
void** r5_117;
void** r0_118;
void** r8_119;
void** r0_120;
void** r0_121;
void** r1_122;
uint32_t lr123;
uint32_t r5_124;
void** r3_125;
uint32_t r11_126;
uint32_t r9_127;
int1_t z128;
void** r4_129;
void** r3_130;
void** r11_131;
int1_t z132;
void** r0_133;
int1_t z134;
void** r3_135;
void* r5_136;
void* r6_137;
void** r9_138;
void** r2_139;
void** r0_140;
void** r0_141;
void** r3_142;
int1_t c143;
void** r0_144;
void** r0_145;
int1_t c146;
struct s78** r3_147;
struct s78** lr148;
void* r0_149;
struct s78* r1_150;
int32_t r3_151;
void** r0_152;
void** r5_153;
void** r0_154;
int1_t z155;
uint32_t r3_156;
int1_t z157;
void** r3_158;
unsigned char v159;
int1_t c160;
void** r3_161;
unsigned char v162;
int1_t c163;
void** r3_164;
unsigned char v165;
int1_t c166;
void** r3_167;
unsigned char v168;
int1_t c169;
void** r3_170;
unsigned char v171;
int1_t z172;
void** r3_173;
unsigned char v174;
int1_t z175;
void** r3_176;
unsigned char v177;
int1_t z178;
unsigned char v179;
void** r0_180;
void** r0_181;
void** r3_182;
int1_t z183;
void** r3_184;
void** r3_185;
void** r3_186;
int1_t z187;
void** r3_188;
int1_t z189;
void** r0_190;
sp7 = reinterpret_cast<void***>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 36 - 0xb4);
r7_8 = r2;
v9 = r7_8;
r6_10 = r3;
r5_11 = r1;
r3_12 = reinterpret_cast<void**>(0);
v13 = reinterpret_cast<void**>(0);
r0_43 = fun_1002d1e8(r0, r1, r2, 0, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42);
r9_44 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r0_43) << 16 >> 16 | reinterpret_cast<unsigned char>(r0) << 12 >> 28 << 16);
v45 = r9_44;
if (r7_8) {
if (a5) {
r0_51 = fun_1002d564(reinterpret_cast<unsigned char>(r9_44) << 16 >> 16, r1, r2, 0, v46, v47, v48, v49, v50);
if (r0_51) {
r3_12 = reinterpret_cast<void**>(0xfffceff8);
z52 = (reinterpret_cast<unsigned char>(r5_11) & reinterpret_cast<unsigned char>(0xfffceff8)) == 0;
if (!z52) {
r0_51 = reinterpret_cast<void**>(0x3ec);
}
if (!z52)
goto label_10; else
goto addr_1002a840_11;
}
}
}
r0_51 = reinterpret_cast<void**>(87);
addr_1002b45c_13:
SetLastError(r0_51, r1, r2, r3_12);
r4_53 = reinterpret_cast<void**>(0);
addr_1002b464_14:
return r4_53;
label_10:
goto addr_1002b45c_13;
addr_1002a840_11:
r0_54 = fun_100244c0(r9_44, r1, r2);
lr55 = a6;
if (!r0_54) {
if (__intrinsic()) {
if (!__intrinsic()) {
goto addr_1002b42c_20;
} else {
z56 = r5_11 == 0;
if (z56) {
goto addr_1002a874_23;
}
z56 = reinterpret_cast<int1_t>(r5_11 == 1);
if (z56) {
addr_1002a874_23:
r3_57 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r7_8));
r10_58 = a5;
goto addr_1002a894_26;
}
}
}
}
if (__intrinsic()) {
lr55 = reinterpret_cast<void**>(0xfffffffe);
}
addr_1002b42c_20:
if (__intrinsic()) {
r6_10 = reinterpret_cast<void**>(0xfffffffe);
}
r0_59 = fun_10029168(r9_44, r5_11, r7_8, r6_10, a5, lr55);
r4_53 = r0_59;
goto addr_1002b464_14;
addr_1002a894_26:
while (!z56) {
z56 = r3_57 == static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r10_58)));
if (!z56)
goto label_33;
r3_57 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r7_8 + 2));
r7_8 = r7_8 + 2;
r10_58 = r10_58 + 2;
}
addr_1002a89c_35:
if (static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r7_8))) != static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r10_58)))) {
v60 = reinterpret_cast<void**>(0);
v61 = reinterpret_cast<void**>(0);
r3_62 = reinterpret_cast<void**>(0);
z63 = r5_11 == 0;
v64 = reinterpret_cast<void**>(0);
v65 = reinterpret_cast<void**>(0);
if (z63) {
r5_11 = reinterpret_cast<void**>(0xffffffff);
}
if (!z63) {
r3_62 = reinterpret_cast<void**>(0xe7ffffff);
}
r6_66 = reinterpret_cast<void**>(0);
r8_67 = reinterpret_cast<void**>(0);
r4_53 = reinterpret_cast<void**>(0);
r11_68 = reinterpret_cast<void**>(0);
if (z63) {
v69 = r5_11;
}
if (!z63) {
v69 = r3_62;
}
v70 = reinterpret_cast<void**>(0);
v71 = reinterpret_cast<void**>(0);
v72 = reinterpret_cast<void**>(0);
v73 = reinterpret_cast<void**>(0);
v74 = reinterpret_cast<void**>(0);
v75 = reinterpret_cast<void**>(0);
r0_76 = fun_10024458(r9_44, r1, 0);
r2_77 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r7_8))));
lr78 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(&v71 + 3)));
r1_79 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(&v71 + 1)));
z80 = r0_76 == 0;
r0_81 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(&v71 + 2)));
if (!z80) {
r3_62 = reinterpret_cast<void**>(14);
}
if (z80) {
r3_62 = reinterpret_cast<void**>(13);
}
r5_82 = reinterpret_cast<void**>(0);
v83 = r3_62;
v84 = r3_62;
*reinterpret_cast<unsigned char*>(&v85 + 2) = static_cast<unsigned char>(reinterpret_cast<uint32_t>(r0_81));
*reinterpret_cast<unsigned char*>(&v85) = static_cast<unsigned char>(reinterpret_cast<uint32_t>(lr78));
*reinterpret_cast<unsigned char*>(&v85 + 1) = static_cast<unsigned char>(reinterpret_cast<uint32_t>(r1_79));
if (!r2_77)
goto label_50; else
goto addr_1002a958_51;
}
addr_1002b41c_52:
r4_53 = reinterpret_cast<void**>(2);
goto addr_1002b464_14;
label_50:
addr_1002ae54_53:
if (!*reinterpret_cast<void***>(r7_8)) {
if (*reinterpret_cast<void***>(r10_58)) {
r7_8 = r10_58;
} else {
if (r8_67) {
goto addr_1002b3b4_60;
}
if (r4_53)
goto label_62; else
goto addr_1002ae7c_63;
}
}
r3_86 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r10_58))));
z87 = r3_86 == 0;
if (z87) {
r3_86 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r7_8))));
}
if (z87) {
r4_53 = reinterpret_cast<void**>(3);
}
if (!z87) {
r3_86 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r7_8))));
r4_53 = reinterpret_cast<void**>(1);
}
while (z88 = r3_86 == 0, !z88) {
r0_106 = fun_10023f00(r9_44, r3_86, r2_77, r3_86, v89, v90, v91, 0xfffffffe, v92, v93, v94, v95, v96, v97, v85, v71, v98, v84, v99, v100, v101, v102, v70, v45, v103, v83, 0, v74, v104, *reinterpret_cast<int16_t*>(&v105), r9_44, r3_86, r2_77, r3_86, v89, v90, v91, 0xfffffffe, v92, v93, v94, v95);
r0_107 = fun_10024154(r9_44, r0_106, r2_77, r3_86, v89, v90, v91, 0xfffffffe, v92, v93, v94, v95, r9_44, r0_106, r2_77, r3_86, v89, v90, v91, 0xfffffffe, v92, v93, v94, v95);
if (!z88) {
if (!reinterpret_cast<int1_t>(r0_107 == 1))
goto label_76;
if (!r8_67)
goto label_78;
}
r3_86 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r7_8 + 2))));
r7_8 = r7_8 + 2;
}
if (!r8_67) {
r3_108 = v73;
if (!r3_108)
goto addr_1002b3c8_83;
} else {
addr_1002b3b4_60:
r4_53 = r8_67;
goto addr_1002b464_14;
}
goto addr_1002b414_85;
addr_1002b3c8_83:
z109 = r6_66 == 0;
if (z109) {
goto addr_1002b3fc_87;
}
r4_53 = r5_82;
if (!z109) {
goto addr_1002b464_14;
} else {
r4_53 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(&v85 + 1)));
if (!z109) {
goto addr_1002b464_14;
} else {
r4_53 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(&v85 + 2)));
if (!z109) {
goto addr_1002b464_14;
} else {
r4_53 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(&v85)));
}
}
}
addr_1002b3f8_95:
if (!z109) {
goto addr_1002b464_14;
} else {
addr_1002b3fc_87:
z110 = r11_68 == 0;
if (!z110) {
r4_53 = r11_68;
}
}
if (!z110) {
goto addr_1002b464_14;
} else {
r3_108 = v61;
if (!r3_108) {
goto addr_1002b41c_52;
} else {
addr_1002b414_85:
r4_53 = r3_108;
goto addr_1002b464_14;
}
}
label_76:
goto addr_1002b464_14;
label_78:
goto addr_1002b464_14;
label_62:
goto addr_1002b464_14;
addr_1002ae7c_63:
z109 = r6_66 == 0;
if (z109) {
goto addr_1002b3fc_87;
}
r4_53 = r5_82;
if (z109)
goto addr_1002ae8c_104;
goto addr_1002b464_14;
addr_1002ae8c_104:
r4_53 = r1_79;
if (!z109) {
goto addr_1002b464_14;
} else {
r4_53 = r0_81;
if (!z109) {
goto addr_1002b464_14;
} else {
r4_53 = lr78;
goto addr_1002b3f8_95;
}
}
addr_1002a958_51:
r11_111 = v9;
r6_112 = v9;
*reinterpret_cast<unsigned char*>(&v85 + 3) = 0;
v113 = r11_111;
v105 = r6_112;
while (r3_114 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r10_58)))), !!r3_114) {
r0_115 = fun_10023f00(r9_44, r2_77, r2_77, r3_114, v89, v90, v91, 0xfffffffe, v92, v93, v94, v95, v96, v97, v85, v71, v98, v84, v99, v100, v101, v102, v70, v45, v103, v83, 0, v74, v104, *reinterpret_cast<int16_t*>(&v105), r9_44, r2_77, r2_77, r3_114, v89, v90, v91, 0xfffffffe, v92, v93, v94, v95);
r1_116 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r10_58))));
r5_117 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r0_115) & reinterpret_cast<unsigned char>(v69));
v99 = r5_117;
v103 = r5_117;
r0_118 = fun_10023f00(r9_44, r1_116, r2_77, r3_114, v89, v90, v91, 0xfffffffe, v92, v93, v94, v95, v96, v97, v85, v71, v98, v84, v99, v100, v101, v102, v70, v45, v103, v83, 0, v74, v104, *reinterpret_cast<int16_t*>(&v105), r9_44, r1_116, r2_77, r3_114, v89, v90, v91, 0xfffffffe, v92, v93, v94, v95);
r8_119 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r0_118) & reinterpret_cast<unsigned char>(v69));
v101 = r8_119;
v104 = r8_119;
if (r5_117 != r8_119) {
r0_120 = fun_10024154(r9_44, r5_117, r2_77, r3_114, v89, v90, v91, 0xfffffffe, v92, v93, v94, v95, r9_44, r5_117, r2_77, r3_114, v89, v90, v91, 0xfffffffe, v92, v93, v94, v95);
r0_121 = fun_10024154(r9_44, r8_119, r2_77, r3_114, v89, v90, v91, 0xfffffffe, v92, v93, v94, v95, r9_44, r8_119, r2_77, r3_114, v89, v90, v91, 0xfffffffe, v92, v93, v94, v95);
r1_122 = r5_117;
lr123 = reinterpret_cast<unsigned char>(r1_122) & 0xff;
r5_124 = reinterpret_cast<unsigned char>(r8_119) & 0xff;
r2_77 = reinterpret_cast<void**>(lr123 | reinterpret_cast<unsigned char>(r0_120) << 8);
r3_125 = reinterpret_cast<void**>(r5_124 | reinterpret_cast<unsigned char>(r0_121) << 8);
r11_126 = reinterpret_cast<unsigned char>(r2_77) << 16 >> 16;
r9_127 = reinterpret_cast<unsigned char>(r3_125) << 16 >> 16;
*reinterpret_cast<uint16_t*>(&v98) = static_cast<uint16_t>(r11_126);
z128 = r11_126 == r9_127;
*reinterpret_cast<uint16_t*>(&v100) = static_cast<uint16_t>(r9_127);
if (!z128) {
goto addr_1002aa14_115;
}
z128 = reinterpret_cast<int1_t>(r0_120 == 3);
if (z128) {
goto addr_1002aa14_115;
}
z128 = reinterpret_cast<int1_t>(r0_120 == 5);
if (!z128) {
r4_129 = v84;
goto addr_1002b1e8_121;
} else {
addr_1002aa14_115:
r2_77 = reinterpret_cast<void**>(0);
v102 = reinterpret_cast<void**>(0);
if (z128) {
r2_77 = reinterpret_cast<void**>(1);
goto addr_1002aa24_123;
}
}
}
addr_1002b2f8_124:
r3_130 = v75;
if (r3_130) {
r11_131 = r11_111 - 1;
z132 = r11_131 == 0;
if (z132) {
r2_77 = reinterpret_cast<void**>(0);
}
if (z132) {
v75 = r2_77;
}
v113 = r11_131;
if (z132) {
r7_8 = r3_130;
}
}
r0_133 = v64;
if (r0_133) {
--r6_112;
z134 = r6_112 == 0;
if (z134) {
r3_130 = reinterpret_cast<void**>(0);
}
if (z134) {
v64 = r3_130;
}
v105 = r6_112;
if (z134) {
r10_58 = r0_133;
}
}
r7_8 = r7_8 + 2;
r10_58 = r10_58 + 2;
addr_1002ae20_141:
r2_77 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r7_8))));
r9_44 = v45;
r11_111 = v113;
if (!r2_77)
goto addr_1002ae34_142;
continue;
addr_1002b1e8_121:
if (reinterpret_cast<unsigned char>(r4_129) & 3) {
r3_135 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r1_122) >> 16);
r2_77 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r8_119) >> 16);
r5_136 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(r3_135) & 0xff);
r6_137 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(r2_77) & 0xff);
if (r5_136 != r6_137) {
r9_138 = v45;
while (r2_139 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r7_8 + 2)))), !!r2_139) {
r0_140 = fun_10023f00(r9_138, r2_139, r2_139, r3_135, v89, v90, v91, 0xfffffffe, v92, v93, v94, v95, v96, v97, v85, v71, v98, v84, v99, v100, v101, v102, v70, v45, v103, v83, 0, v74, v104, *reinterpret_cast<int16_t*>(&v105), r9_138, r2_139, r2_139, r3_135, v89, v90, v91, 0xfffffffe, v92, v93, v94, v95);
r0_141 = fun_10024154(r9_138, r0_140, r2_139, r3_135, v89, v90, v91, 0xfffffffe, v92, v93, v94, v95, r9_138, r0_140, r2_139, r3_135, v89, v90, v91, 0xfffffffe, v92, v93, v94, v95);
if (!reinterpret_cast<int1_t>(r0_141 == 1))
goto label_150;
r3_135 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(r5_136) + (reinterpret_cast<unsigned char>(r0_140) >> 16));
r5_136 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(r3_135) & 0xff);
r7_8 = r7_8 + 2;
}
goto label_152;
}
}
addr_1002b2b4_153:
if (reinterpret_cast<unsigned char>(r4_129) & 4) {
r3_142 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r8_119) << 2 >> 26);
r2_77 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(v99) << 2 >> 26);
c143 = reinterpret_cast<unsigned char>(r2_77) < reinterpret_cast<unsigned char>(r3_142);
if (r2_77 != r3_142) {
if (!c143) {
r3_142 = reinterpret_cast<void**>(1);
}
if (c143) {
r3_142 = reinterpret_cast<void**>(3);
}
__asm__("bic r4, r4, #4");
v73 = r3_142;
v84 = r4_129;
v83 = r4_129;
}
}
r6_112 = v105;
r11_111 = v113;
goto addr_1002b2f8_124;
label_152:
addr_1002b27c_163:
while (r2_77 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r10_58 + 2)))), !!r2_77) {
r0_144 = fun_10023f00(r9_138, r2_77, r2_77, r3_135, v89, v90, v91, 0xfffffffe, v92, v93, v94, v95, v96, v97, v85, v71, v98, v84, v99, v100, v101, v102, v70, v45, v103, v83, 0, v74, v104, *reinterpret_cast<int16_t*>(&v105), r9_138, r2_77, r2_77, r3_135, v89, v90, v91, 0xfffffffe, v92, v93, v94, v95);
r0_145 = fun_10024154(r9_138, r0_144, r2_77, r3_135, v89, v90, v91, 0xfffffffe, v92, v93, v94, v95, r9_138, r0_144, r2_77, r3_135, v89, v90, v91, 0xfffffffe, v92, v93, v94, v95);
if (!reinterpret_cast<int1_t>(r0_145 == 1))
goto label_166;
r3_135 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(r6_137) + (reinterpret_cast<unsigned char>(r0_144) >> 16));
r6_137 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(r3_135) & 0xff);
r10_58 = r10_58 + 2;
}
addr_1002b288_168:
c146 = reinterpret_cast<uint32_t>(r5_136) < reinterpret_cast<uint32_t>(r6_137);
if (r5_136 == r6_137) {
r4_129 = v84;
goto addr_1002b2b4_153;
} else {
r4_129 = v84;
if (!c146) {
r3_135 = reinterpret_cast<void**>(1);
}
if (c146) {
r3_135 = reinterpret_cast<void**>(3);
}
__asm__("bic r4, r4, #1");
v84 = r4_129;
v83 = r4_129;
v72 = r3_135;
goto addr_1002b2b4_153;
}
label_166:
goto addr_1002b288_168;
label_150:
goto addr_1002b27c_163;
addr_1002aa24_123:
if (z128) {
v102 = r2_77;
}
if (z128) {
r7_8 = r7_8 + 2;
}
if (z128) {
r2_77 = reinterpret_cast<void**>(1);
}
if (z128) {
v102 = r2_77;
}
if (z128) {
r10_58 = r10_58 + 2;
}
if (!r2_77) {
if (r0_120 == 1) {
r3_125 = v72;
r4_129 = v84;
if (!r3_125)
goto label_190; else
goto addr_1002ad28_191;
} else {
if (r0_120 == 2) {
r3_147 = image_base_;
r4_129 = v84;
v75 = r7_8;
lr148 = image_base_;
r0_149 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(*r3_147) + (lr123 + (lr123 << 1) << 1));
r1_150 = *lr148;
r2_77 = reinterpret_cast<void**>(2);
r7_8 = reinterpret_cast<void**>(sp7 + 0xa0);
r3_151 = r1_150->f38;
r1_122 = v99;
v113 = reinterpret_cast<void**>(2);
r3_125 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<uint16_t*>(reinterpret_cast<uint32_t>(r0_149) + r3_151 + 88)));
r0_152 = v101;
r5_153 = reinterpret_cast<void**>(1);
goto addr_1002ad70_195;
} else {
if (r0_120 == 3) {
v91 = reinterpret_cast<void**>(sp7 + 88);
r3_125 = v69;
r2_77 = reinterpret_cast<void**>(sp7 + 48);
v89 = v9;
v90 = r7_8;
fun_10027fdc(v45, sp7 + 80, r2_77, r3_125, v89, v90, v91, 0xfffffffe, v92, v93, v94, v95, v96, v97, v85, v71, v98, *reinterpret_cast<int16_t*>(&v84));
if (r0_121 == 3)
goto label_199; else
goto addr_1002abf4_200;
} else {
if (r0_120 == 4) {
v13 = reinterpret_cast<void**>(1);
v97 = reinterpret_cast<void**>(sp7 + 0x88);
v96 = reinterpret_cast<void**>(sp7 + 84);
v95 = reinterpret_cast<void**>(sp7 + 60);
v94 = reinterpret_cast<void**>(sp7 + 48);
v93 = reinterpret_cast<void**>(sp7 + 0x98);
v92 = reinterpret_cast<void**>(sp7 + 96);
v91 = reinterpret_cast<void**>(sp7 + 0xac);
v90 = reinterpret_cast<void**>(sp7 + 56);
r3_125 = reinterpret_cast<void**>(0xfffffffe);
r2_77 = reinterpret_cast<void**>(sp7 + 0xa4);
v89 = reinterpret_cast<void**>(sp7 + 80);
v102 = r7_8;
r0_154 = fun_10028c78(v45, sp7 + 68, r2_77, 0xfffffffe, v89, v90, v91, 0xfffffffe, v92, v93, v94, v95, v96, v97, *reinterpret_cast<int16_t*>(&v85));
r4_53 = reinterpret_cast<void**>(0);
r5_153 = r0_154;
if (0)
goto label_204;
r4_129 = v83;
r1_122 = v103;
r0_152 = v104;
r10_58 = r10_58;
r7_8 = v102;
r11_126 = *reinterpret_cast<uint16_t*>(&v98);
r9_127 = *reinterpret_cast<uint16_t*>(&v100);
v84 = r4_129;
v99 = r1_122;
v101 = r0_152;
goto addr_1002ad6c_206;
} else {
if (r0_120 == 5) {
if (!reinterpret_cast<int1_t>(r0_121 == 5))
goto label_210; else
goto addr_1002aab8_211;
} else {
if (!reinterpret_cast<int1_t>(r0_120 == 6)) {
goto addr_1002ad60_214;
} else {
r3_125 = v60;
if (r3_125) {
goto addr_1002aaa4_217;
} else {
if (r0_121 == 6) {
goto addr_1002ad60_214;
} else {
z155 = v61 == 0;
r3_125 = reinterpret_cast<void**>(3);
if (!z155) {
v61 = reinterpret_cast<void**>(3);
}
if (!z155) {
r3_125 = reinterpret_cast<void**>(1);
}
if (!z155) {
v60 = r3_125;
}
if (z155) {
v74 = r3_125;
goto addr_1002aaa4_217;
}
}
}
}
}
}
}
}
}
}
addr_1002ae1c_228:
r6_112 = v105;
goto addr_1002ae20_141;
label_190:
goto addr_1002ad30_229;
addr_1002ad28_191:
if (reinterpret_cast<unsigned char>(r4_129) & 2) {
addr_1002ad30_229:
__asm__("bic r4, r4, #1");
r3_125 = reinterpret_cast<void**>(3);
v84 = r4_129;
v83 = r4_129;
v72 = reinterpret_cast<void**>(3);
}
r0_152 = v101;
r7_8 = r7_8 + 2;
r5_153 = reinterpret_cast<void**>(1);
addr_1002ad6c_206:
addr_1002ad70_195:
if (r0_121 == 1) {
if (v72)
goto addr_1002b1bc_234;
} else {
if (r0_121 == 2) {
r6_112 = reinterpret_cast<void**>(2);
v64 = r10_58;
r10_58 = reinterpret_cast<void**>(sp7 + 0x9c);
v105 = reinterpret_cast<void**>(2);
goto addr_1002ae20_141;
} else {
if (r0_121 == 3) {
v91 = reinterpret_cast<void**>(sp7 + 0x68);
r2_77 = reinterpret_cast<void**>(sp7 + 60);
v89 = a5;
v90 = r10_58;
fun_10027fdc(v45, sp7 + 96, r2_77, v69, v89, v90, v91, 0xfffffffe, v92, v93, v94, v95, v96, v97, v85, v71, v98, *reinterpret_cast<int16_t*>(&v84));
r3_156 = *reinterpret_cast<unsigned char*>(&v85 + 3);
if (r0_120 == 3)
goto label_241; else
goto addr_1002afe8_242;
} else {
if (r0_121 == 4) {
if (v13)
goto label_246; else
goto addr_1002aefc_247;
} else {
if (r0_121 == 5) {
if (r0_120 == 5)
goto label_251; else
goto addr_1002aeac_252;
} else {
if (!reinterpret_cast<int1_t>(r0_121 == 6)) {
goto addr_1002aed0_255;
} else {
if (v60) {
goto addr_1002ae18_258;
} else {
if (r0_120 == 6) {
if (v74)
goto label_262; else
goto addr_1002add8_263;
} else {
z157 = v74 == 0;
if (!z157) {
v74 = reinterpret_cast<void**>(1);
}
if (!z157)
goto label_267; else
goto addr_1002adc8_268;
}
}
}
}
}
}
}
}
goto addr_1002b1c4_270;
addr_1002b1bc_234:
if (reinterpret_cast<unsigned char>(r4_129) & 2) {
addr_1002b1c4_270:
__asm__("bic r4, r4, #1");
v84 = r4_129;
v83 = r4_129;
v72 = reinterpret_cast<void**>(1);
}
r10_58 = r10_58 + 2;
r5_153 = reinterpret_cast<void**>(1);
addr_1002aed0_255:
r8_119 = v101;
addr_1002aed4_273:
if (r5_153) {
goto addr_1002ae1c_228;
} else {
if (r11_126 != r9_127)
goto addr_1002aee4_276;
goto addr_1002b1e8_121;
}
label_241:
if (!r3_156)
goto addr_1002b08c_279;
addr_1002b0b4_281:
if (!*reinterpret_cast<unsigned char*>(&v85 + 1)) {
r3_158 = reinterpret_cast<void**>(static_cast<uint32_t>(v159));
r2_77 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(&v65 + 1)));
c160 = reinterpret_cast<unsigned char>(r2_77) < reinterpret_cast<unsigned char>(r3_158);
if (r2_77 != r3_158) {
if (!c160) {
r3_158 = reinterpret_cast<void**>(1);
}
if (c160) {
r3_158 = reinterpret_cast<void**>(3);
}
*reinterpret_cast<unsigned char*>(&v71 + 1) = static_cast<unsigned char>(reinterpret_cast<uint32_t>(r3_158));
*reinterpret_cast<unsigned char*>(&v85 + 1) = static_cast<unsigned char>(reinterpret_cast<uint32_t>(r3_158));
v70 = v71;
}
}
if (!*reinterpret_cast<unsigned char*>(&v85 + 2)) {
r3_161 = reinterpret_cast<void**>(static_cast<uint32_t>(v162));
r2_77 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(&v65 + 2)));
c163 = reinterpret_cast<unsigned char>(r2_77) < reinterpret_cast<unsigned char>(r3_161);
if (r2_77 != r3_161) {
if (!c163) {
r3_161 = reinterpret_cast<void**>(1);
}
if (c163) {
r3_161 = reinterpret_cast<void**>(3);
}
*reinterpret_cast<unsigned char*>(&v71 + 2) = static_cast<unsigned char>(reinterpret_cast<uint32_t>(r3_161));
*reinterpret_cast<unsigned char*>(&v85 + 2) = static_cast<unsigned char>(reinterpret_cast<uint32_t>(r3_161));
v70 = v71;
}
}
if (!*reinterpret_cast<unsigned char*>(&v85)) {
r3_164 = reinterpret_cast<void**>(static_cast<uint32_t>(v165));
r2_77 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(&v65 + 3)));
c166 = reinterpret_cast<unsigned char>(r2_77) < reinterpret_cast<unsigned char>(r3_164);
if (r2_77 != r3_164) {
if (!c166) {
r3_164 = reinterpret_cast<void**>(1);
}
if (c166) {
r3_164 = reinterpret_cast<void**>(3);
}
*reinterpret_cast<unsigned char*>(&v85) = static_cast<unsigned char>(reinterpret_cast<uint32_t>(r3_164));
*reinterpret_cast<unsigned char*>(&v71 + 3) = static_cast<unsigned char>(reinterpret_cast<uint32_t>(r3_164));
goto addr_1002b148_308;
}
}
addr_1002b150_309:
r8_119 = v104;
r9_127 = *reinterpret_cast<uint16_t*>(&v100);
r1_122 = v99;
goto addr_1002aed4_273;
addr_1002b148_308:
v70 = v71;
goto addr_1002b150_309;
addr_1002b08c_279:
r3_167 = reinterpret_cast<void**>(static_cast<uint32_t>(v168));
r2_77 = reinterpret_cast<void**>(0);
c169 = reinterpret_cast<unsigned char>(0) < reinterpret_cast<unsigned char>(r3_167);
if (!r3_167) {
goto addr_1002b0b4_281;
} else {
if (!c169) {
r3_167 = reinterpret_cast<void**>(1);
}
if (c169) {
r3_167 = reinterpret_cast<void**>(3);
}
*reinterpret_cast<unsigned char*>(&v71) = static_cast<unsigned char>(reinterpret_cast<uint32_t>(r3_167));
*reinterpret_cast<unsigned char*>(&v85 + 3) = static_cast<unsigned char>(reinterpret_cast<uint32_t>(r3_167));
v70 = v71;
goto addr_1002b0b4_281;
}
addr_1002afe8_242:
if (!r3_156) {
r3_170 = reinterpret_cast<void**>(static_cast<uint32_t>(v171));
z172 = r3_170 == 0;
if (!z172) {
r3_170 = reinterpret_cast<void**>(1);
}
if (!z172) {
*reinterpret_cast<unsigned char*>(&v71) = static_cast<unsigned char>(reinterpret_cast<uint32_t>(r3_170));
}
if (!z172) {
*reinterpret_cast<unsigned char*>(&v85 + 3) = static_cast<unsigned char>(reinterpret_cast<uint32_t>(r3_170));
}
if (!z172) {
r3_170 = v71;
}
if (!z172) {
v70 = r3_170;
}
}
if (!*reinterpret_cast<unsigned char*>(&v85 + 1)) {
r3_173 = reinterpret_cast<void**>(static_cast<uint32_t>(v174));
z175 = r3_173 == 0;
if (!z175) {
r3_173 = reinterpret_cast<void**>(1);
}
if (!z175) {
*reinterpret_cast<unsigned char*>(&v71 + 1) = static_cast<unsigned char>(reinterpret_cast<uint32_t>(r3_173));
}
if (!z175) {
*reinterpret_cast<unsigned char*>(&v85 + 1) = static_cast<unsigned char>(reinterpret_cast<uint32_t>(r3_173));
}
if (!z175) {
r3_173 = v71;
}
if (!z175) {
v70 = r3_173;
}
}
if (!*reinterpret_cast<unsigned char*>(&v85 + 2)) {
r3_176 = reinterpret_cast<void**>(static_cast<uint32_t>(v177));
z178 = r3_176 == 0;
if (!z178) {
r3_176 = reinterpret_cast<void**>(1);
}
if (!z178) {
*reinterpret_cast<unsigned char*>(&v71 + 2) = static_cast<unsigned char>(reinterpret_cast<uint32_t>(r3_176));
}
if (!z178) {
*reinterpret_cast<unsigned char*>(&v85 + 2) = static_cast<unsigned char>(reinterpret_cast<uint32_t>(r3_176));
}
if (!z178) {
r3_176 = v71;
}
if (!z178) {
v70 = r3_176;
}
}
if (*reinterpret_cast<unsigned char*>(&v85)) {
goto addr_1002b150_309;
} else {
if (!v179) {
goto addr_1002b150_309;
} else {
*reinterpret_cast<unsigned char*>(&v85) = 1;
*reinterpret_cast<unsigned char*>(&v71 + 3) = 1;
goto addr_1002b148_308;
}
}
label_246:
v13 = reinterpret_cast<void**>(0);
goto addr_1002aed0_255;
addr_1002aefc_247:
v97 = reinterpret_cast<void**>(sp7 + 0x88);
v96 = reinterpret_cast<void**>(sp7 + 84);
v95 = reinterpret_cast<void**>(sp7 + 60);
v94 = reinterpret_cast<void**>(sp7 + 48);
v93 = reinterpret_cast<void**>(sp7 + 0x98);
v92 = reinterpret_cast<void**>(sp7 + 96);
v91 = reinterpret_cast<void**>(sp7 + 0xb0);
v90 = reinterpret_cast<void**>(sp7 + 56);
r2_77 = reinterpret_cast<void**>(sp7 + 0xa8);
v89 = reinterpret_cast<void**>(sp7 + 80);
v102 = r7_8;
v13 = reinterpret_cast<void**>(1);
r0_180 = fun_10028c78(v45, sp7 + 68, r2_77, 0xfffffffe, v89, v90, v91, 0xfffffffe, v92, v93, v94, v95, v96, v97, *reinterpret_cast<int16_t*>(&v85));
r4_53 = reinterpret_cast<void**>(0);
r5_153 = r0_180;
if (0)
goto label_357;
r4_129 = v83;
r1_122 = v103;
r10_58 = r10_58;
r7_8 = v102;
r8_119 = v104;
r11_126 = *reinterpret_cast<uint16_t*>(&v98);
r9_127 = *reinterpret_cast<uint16_t*>(&v100);
v84 = r4_129;
v99 = r1_122;
goto addr_1002aed4_273;
label_251:
goto addr_1002aed0_255;
addr_1002aeac_252:
r0_181 = fun_10024154(v45, 0xf1ff, r2_77, r3_125, v89, v90, v91, 0xfffffffe, v92, v93, v94, v95, v45, 0xf1ff, r2_77, r3_125, v89, v90, v91, 0xfffffffe, v92, v93, v94, v95);
r1_122 = v99;
r9_127 = (reinterpret_cast<unsigned char>(r0_181) << 8 | 0xff) << 16 >> 16;
goto addr_1002aed0_255;
addr_1002ae18_258:
r10_58 = r10_58 + 2;
goto addr_1002ae1c_228;
label_262:
goto addr_1002adfc_359;
addr_1002add8_263:
r3_182 = v61;
z183 = r3_182 == 0;
if (!z183) {
r3_182 = reinterpret_cast<void**>(3);
}
if (!z183) {
v61 = r3_182;
}
if (z183) {
if ((reinterpret_cast<unsigned char>(r1_122) & 0xff) < (reinterpret_cast<unsigned char>(r0_152) & 0xff)) {
r3_184 = reinterpret_cast<void**>(3);
} else {
addr_1002adfc_359:
r3_184 = reinterpret_cast<void**>(1);
}
v74 = r3_184;
}
r7_8 = r7_8 + 2;
addr_1002ae10_370:
v60 = reinterpret_cast<void**>(1);
goto addr_1002ae18_258;
label_267:
goto addr_1002ae10_370;
addr_1002adc8_268:
v61 = reinterpret_cast<void**>(1);
goto addr_1002ae18_258;
label_199:
addr_1002ad54_371:
r1_122 = v103;
r11_126 = *reinterpret_cast<uint16_t*>(&v98);
v99 = r1_122;
addr_1002ad60_214:
r5_153 = v102;
addr_1002ad64_372:
r0_152 = v101;
addr_1002ad68_373:
r4_129 = v84;
goto addr_1002ad6c_206;
addr_1002abf4_200:
r3_185 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(&v85 + 3)));
if (!r3_185) {
if (0) {
r3_185 = reinterpret_cast<void**>(3);
}
if (0) {
*reinterpret_cast<unsigned char*>(&v71) = static_cast<unsigned char>(reinterpret_cast<uint32_t>(r3_185));
}
if (0) {
*reinterpret_cast<unsigned char*>(&v85 + 3) = static_cast<unsigned char>(reinterpret_cast<uint32_t>(r3_185));
}
if (0) {
r3_185 = v71;
}
if (0) {
v70 = r3_185;
}
}
r3_186 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(&v85 + 1)));
if (!r3_186) {
z187 = static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(&v65 + 1)) == 0;
if (!z187) {
r3_186 = reinterpret_cast<void**>(3);
}
if (!z187) {
*reinterpret_cast<unsigned char*>(&v71 + 1) = static_cast<unsigned char>(reinterpret_cast<uint32_t>(r3_186));
}
if (!z187) {
*reinterpret_cast<unsigned char*>(&v85 + 1) = static_cast<unsigned char>(reinterpret_cast<uint32_t>(r3_186));
}
if (!z187) {
r3_186 = v71;
}
if (!z187) {
v70 = r3_186;
}
}
r3_188 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(&v85 + 2)));
r2_77 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(&v65 + 2)));
if (!r3_188) {
z189 = r2_77 == 0;
if (!z189) {
r3_188 = reinterpret_cast<void**>(3);
}
if (!z189) {
*reinterpret_cast<unsigned char*>(&v71 + 2) = static_cast<unsigned char>(reinterpret_cast<uint32_t>(r3_188));
}
if (!z189) {
*reinterpret_cast<unsigned char*>(&v85 + 2) = static_cast<unsigned char>(reinterpret_cast<uint32_t>(r3_188));
}
if (!z189) {
r3_188 = v71;
}
if (!z189) {
v70 = r3_188;
}
}
r3_125 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(&v85)));
if (r3_125) {
goto addr_1002ad54_371;
} else {
r3_125 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(&v65 + 3)));
r1_122 = v103;
r11_126 = *reinterpret_cast<uint16_t*>(&v98);
r5_153 = v102;
r0_152 = v101;
r4_129 = v84;
v99 = r1_122;
if (!r3_125) {
goto addr_1002ad70_195;
} else {
*reinterpret_cast<unsigned char*>(&v71 + 3) = 3;
*reinterpret_cast<unsigned char*>(&v85) = 3;
r3_125 = v71;
v70 = r3_125;
goto addr_1002ad70_195;
}
}
label_210:
r0_190 = fun_10024154(v45, 0xf1ff, r2_77, r3_125, v89, v90, v91, 0xfffffffe, v92, v93, v94, v95, v45, 0xf1ff, r2_77, r3_125, v89, v90, v91, 0xfffffffe, v92, v93, v94, v95);
r3_125 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r0_190) << 8 | 0xff);
r11_126 = reinterpret_cast<unsigned char>(r3_125) << 16 >> 16;
r1_122 = v99;
*reinterpret_cast<uint16_t*>(&v98) = static_cast<uint16_t>(r11_126);
goto addr_1002ad60_214;
addr_1002aab8_211:
r0_152 = v101;
r2_77 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r1_122) >> 16 & 0xff);
r3_125 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r0_152) >> 16 & 0xff);
r9_127 = reinterpret_cast<unsigned char>(r3_125) | r5_124 << 8;
r11_126 = reinterpret_cast<unsigned char>(r2_77) | lr123 << 8;
r5_153 = v102;
r1_122 = v99;
*reinterpret_cast<uint16_t*>(&v100) = static_cast<uint16_t>(r9_127);
*reinterpret_cast<uint16_t*>(&v98) = static_cast<uint16_t>(r11_126);
goto addr_1002ad68_373;
addr_1002aaa4_217:
r7_8 = r7_8 + 2;
r5_153 = reinterpret_cast<void**>(1);
goto addr_1002ad64_372;
}
addr_1002ae34_142:
lr78 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(&v85)));
r4_53 = v73;
r0_81 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(&v85 + 2)));
r1_79 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(&v85 + 1)));
r5_82 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(&v85 + 3)));
r11_68 = v74;
r8_67 = v72;
r6_66 = v70;
goto addr_1002ae54_53;
addr_1002aee4_276:
if (r11_126 < r9_127) {
r4_53 = reinterpret_cast<void**>(3);
goto addr_1002b464_14;
} else {
r4_53 = reinterpret_cast<void**>(1);
goto addr_1002b464_14;
}
label_357:
goto addr_1002b464_14;
label_204:
goto addr_1002b464_14;
label_33:
goto addr_1002a89c_35;
}
int32_t g1002bbdc = 0xf000aebc;
void** ReadMsgQueue(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6) {
int32_t r5_7;
r5_7 = g1002bbdc;
goto r5_7;
}
int32_t g1002bc08 = 0xf000aeb8;
int32_t WriteMsgQueue(void** r0, void* r1, int32_t r2, int32_t r3, int32_t a5, void** a6, void** a7, void** a8) {
int32_t r4_9;
r4_9 = g1002bc08;
goto r4_9;
}
int32_t g1002bc60 = 0xf000aeb0;
void CloseMsgQueue(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15) {
int32_t r3_16;
r3_16 = g1002bc60;
goto r3_16;
}
struct s80 {
uint32_t f0;
void** f4;
};
/* (image base) */
struct s80* image_base_ = reinterpret_cast<struct s80*>(0x1007adc8);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(24);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(44);
void** gffffcb74;
int32_t fun_1002bc64() {
void*** sp1;
void** r1_2;
void** r2_3;
void** r3_4;
void** v5;
void** v6;
void** r0_7;
struct s80* r4_8;
void** r2_9;
void** r1_10;
void** v11;
void** r3_12;
sp1 = reinterpret_cast<void***>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 12 - 16);
r0_7 = IsAPIReady(20, r1_2, r2_3, r3_4, v5, v6);
if (r0_7) {
r4_8 = image_base_;
r2_9 = image_base_;
r1_10 = image_base_;
RegQueryValueExW(0x80000002, r1_10, r2_9, sp1 + 12, &r4_8->f4, sp1 + 8, 4, v11);
r3_12 = gffffcb74;
r4_8->f0 = reinterpret_cast<uint32_t>(r3_12 - 0x80000001);
}
return 1;
}
struct s81 {
uint32_t f0;
uint32_t f4;
};
struct s82 {
uint32_t f0;
uint32_t f4;
};
uint32_t fun_1002bd1c(struct s81* r0, uint32_t r1, struct s82* r2);
uint32_t g1002be80 = 0x5265c00;
uint32_t fun_1002be00(void** r0, int32_t* r1, uint32_t* r2) {
void*** sp4;
void** r3_5;
uint32_t r6_6;
uint32_t r0_7;
int32_t v8;
uint32_t r4_9;
int32_t v10;
sp4 = reinterpret_cast<void***>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 24 - 16);
r3_5 = *reinterpret_cast<void***>(r0);
fun_1002bd1c(sp4, 0x2710, sp4);
r6_6 = g1002be80;
r0_7 = fun_1002bd1c(sp4, r6_6, sp4 + 8);
__asm__("umull r4, r0, r5, r6");
*r1 = v8;
*r2 = reinterpret_cast<unsigned char>(r3_5) - r4_9;
return v10 * r6_6 + r0_7;
}
uint32_t g1002bf30 = 0x396b06bd;
int32_t g1002bf2c = 0x23ab1;
void* fun_1002be84(void* r0, int32_t* r1, uint32_t* r2) {
uint32_t r3_4;
int32_t r1_5;
uint32_t r8_6;
void* r4_7;
uint32_t r2_8;
uint32_t r3_9;
uint32_t r1_10;
uint32_t r5_11;
uint32_t r1_12;
r3_4 = g1002bf30;
r1_5 = g1002bf2c;
__asm__("umull r2, r3, r0, r3");
r8_6 = r3_4 >> 15;
r4_7 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r0) - r8_6 * r1_5);
__asm__("umull sb, r2, sl, lr");
r2_8 = reinterpret_cast<uint32_t>(r2) + (reinterpret_cast<uint32_t>(r4_7) * 100 + 75 - reinterpret_cast<uint32_t>(r2) >> 1) >> 21;
r3_9 = r2_8 * 0x8eac;
__asm__("umull r6, r3, r7, r0");
r1_10 = r2_8 + (r8_6 << 2);
r5_11 = r3_9 >> 7;
r1_12 = r1_10 + (r1_10 << 2);
__asm__("umull lr, r3, r4, r0");
return (reinterpret_cast<uint32_t>(r4_7) - r3_9 - r5_11 * 0x5b5 >> 15) + (r1_12 + (r1_12 << 2) + r5_11 << 2);
}
/* (image base) */
uint16_t* image_base_ = reinterpret_cast<uint16_t*>(0x10002200);
int32_t fun_1002bf34(void** r0) {
uint32_t lr2;
uint32_t r3_3;
uint32_t r4_4;
uint32_t r3_5;
uint32_t r3_6;
uint32_t r3_7;
uint32_t r3_8;
uint16_t* r3_9;
uint16_t* r3_10;
uint16_t* r3_11;
uint32_t r2_12;
uint32_t r3_13;
int1_t below_or_equal14;
lr2 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r0));
if (lr2 < 0x641) {
r3_3 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r0 + 2));
if (r3_3 < 1) {
if (r3_3 <= 12) {
r4_4 = *reinterpret_cast<unsigned char*>(r0 + 6);
if (r4_4 < 1) {
r3_5 = lr2 - (reinterpret_cast<uint32_t>(reinterpret_cast<int32_t>(lr2) >> 2) << 2);
if (r3_5) {
goto addr_1002bfc8_11;
} else {
__asm__("smull r1, r3, lr, r5");
r3_6 = reinterpret_cast<uint32_t>(reinterpret_cast<int32_t>(r3_5) >> 5);
r3_7 = lr2 - (r3_6 + (r3_6 >> 31)) * 100;
if (r3_7) {
goto addr_1002bfbc_14;
}
__asm__("smull r1, r3, lr, r5");
r3_8 = reinterpret_cast<uint32_t>(reinterpret_cast<int32_t>(r3_7) >> 7);
if (lr2 - (r3_8 + (r3_8 >> 31)) * 0x190) {
goto addr_1002bfc8_11;
} else {
addr_1002bfbc_14:
r3_9 = image_base_;
r3_10 = r3_9 + 14;
goto addr_1002bfcc_17;
}
}
}
}
}
}
addr_1002c024_18:
return 0;
addr_1002bfc8_11:
r3_10 = image_base_;
addr_1002bfcc_17:
r3_11 = reinterpret_cast<uint16_t*>(reinterpret_cast<int32_t>(r3_10) + (static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r0 + 2))) << 1));
r2_12 = *(r3_11 - 1);
if (reinterpret_cast<int32_t>(r4_4) > reinterpret_cast<int32_t>(*r3_11 - r2_12)) {
goto addr_1002c024_18;
} else {
if (static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r0 + 8))) > 23) {
goto addr_1002c024_18;
} else {
if (static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<unsigned char*>(r0 + 10))) > 59) {
goto addr_1002c024_18;
} else {
r3_13 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r0 + 12));
below_or_equal14 = r3_13 <= 59;
if (below_or_equal14) {
r2_12 = *reinterpret_cast<unsigned char*>(r0 + 14);
}
if (below_or_equal14) {
r3_13 = 0x3e4;
}
if (below_or_equal14) {
r3_13 = r3_13 | 3;
}
if (below_or_equal14) {
below_or_equal14 = r2_12 <= r3_13;
}
if (below_or_equal14) {
}
if (below_or_equal14) {
lr2 = reinterpret_cast<uint32_t>(__return_address());
}
if (below_or_equal14) {
goto lr2;
}
}
}
}
}
/* (image base) */
int32_t image_base_ = 0x10002200;
void fun_1002bda4(void** r0, void** r1, void** r2);
uint32_t SystemTimeToFileTime(void** r0, void** r1, void** r2, void** r3) {
int32_t r0_5;
uint32_t r8_6;
uint32_t r6_7;
uint32_t r3_8;
uint32_t r3_9;
uint32_t r3_10;
int32_t r3_11;
uint32_t r3_12;
uint32_t r3_13;
uint32_t r3_14;
uint32_t r3_15;
uint32_t r3_16;
int32_t r3_17;
r0_5 = fun_1002bf34(r0);
if (!r0_5) {
SetLastError(87, r1, r2, r3);
return 0;
}
r8_6 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r0));
r6_7 = r8_6 - 0x641;
__asm__("smull r4, r3, r6, sb");
__asm__("smull r5, lr, r6, sb");
r3_8 = reinterpret_cast<uint32_t>(reinterpret_cast<signed char>(r3) >> 7);
r3_9 = reinterpret_cast<uint32_t>(reinterpret_cast<int32_t>(__return_address()) >> 5);
r3_10 = r6_7 + (reinterpret_cast<uint32_t>(reinterpret_cast<int32_t>(r6_7) >> 1) >> 30);
if (!(r8_6 - (reinterpret_cast<uint32_t>(reinterpret_cast<int32_t>(r8_6) >> 2) << 2)))
goto addr_1002c0c4_5;
addr_1002c108_7:
r3_11 = image_base_;
addr_1002c10c_8:
r3_12 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r0 + 8));
r3_13 = reinterpret_cast<uint16_t>(*reinterpret_cast<unsigned char*>(r0 + 10)) + ((r3_12 << 4) - r3_12 << 2);
fun_1002bda4(reinterpret_cast<uint16_t>(*reinterpret_cast<unsigned char*>(r0 + 6)) + *reinterpret_cast<uint16_t*>(r3_11 + (static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r0 + 2))) << 1) - 2) + ((r8_6 - 0x641) * 0x16d + (r3_8 + (r3_8 >> 31)) - (r3_9 + (r3_9 >> 31)) + (reinterpret_cast<int32_t>(r3_10) >> 2)) - 1, (reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r0 + 12)) + ((r3_13 << 4) - r3_13 << 2)) * 0x3e8 + reinterpret_cast<uint16_t>(*reinterpret_cast<unsigned char*>(r0 + 14)), r1);
return 1;
addr_1002c0c4_5:
__asm__("smull r1, r3, r8, sb");
r3_14 = reinterpret_cast<uint32_t>(reinterpret_cast<int32_t>(r3_10) >> 5);
r3_15 = r8_6 - (r3_14 + (r3_14 >> 31)) * 100;
if (r3_15) {
goto addr_1002c0fc_10;
}
__asm__("smull r1, r3, r8, sb");
r3_16 = reinterpret_cast<uint32_t>(reinterpret_cast<int32_t>(r3_15) >> 7);
if (r8_6 - (r3_16 + (r3_16 >> 31)) * 0x190) {
goto addr_1002c108_7;
} else {
addr_1002c0fc_10:
r3_17 = image_base_;
r3_11 = r3_17 + 28;
goto addr_1002c10c_8;
}
}
/* (image base) */
void* image_base_ = reinterpret_cast<void*>(0x10002200);
uint32_t g1002c2c8 = 0x10624dd3;
int32_t FileTimeToSystemTime(void** r0, void** r1) {
void** sp3;
uint32_t* r2_4;
int32_t* r1_5;
void* r4_6;
void* v7;
uint32_t r3_8;
void* r0_9;
void* r3_10;
void* lr11;
void* r5_12;
void* r3_13;
void* r2_14;
void* r3_15;
void* r2_16;
uint32_t r3_17;
uint32_t r3_18;
uint32_t r9_19;
uint32_t r7_20;
uint32_t r4_21;
int32_t v22;
sp3 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 36 - 8);
r2_4 = reinterpret_cast<uint32_t*>(sp3 + 1);
r1_5 = reinterpret_cast<int32_t*>(sp3);
fun_1002be00(r0, r1_5, r2_4);
r4_6 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(v7) + 1);
__asm__("umull lr, r2, r4, r3");
r3_8 = reinterpret_cast<uint32_t>(r2_4) + (reinterpret_cast<uint32_t>(r4_6) - reinterpret_cast<uint32_t>(r2_4) >> 1) >> 2;
*reinterpret_cast<void***>(r1 + 4) = reinterpret_cast<void**>(static_cast<uint16_t>(reinterpret_cast<uint32_t>(r4_6) - ((r3_8 << 3) - r3_8)));
r0_9 = fun_1002be84(v7, r1_5, r2_4);
__asm__("umull r4, lr, r0, r6");
__asm__("umull r1, r2, r0, r6");
r3_10 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r0_9) * 0xfffffe93 - (reinterpret_cast<uint32_t>(__return_address()) >> 7) - (reinterpret_cast<uint32_t>(r0_9) >> 2) + (reinterpret_cast<uint32_t>(r2_4) >> 5));
lr11 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r0_9) + 1);
r5_12 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(v7) + reinterpret_cast<uint32_t>(r3_10));
if (!(reinterpret_cast<uint32_t>(lr11) & 3)) {
__asm__("umull r1, r3, lr, r6");
r3_13 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(lr11) - (reinterpret_cast<uint32_t>(r3_10) >> 5) * 100);
if (r3_13) {
goto addr_1002c218_5;
}
__asm__("umull r1, r3, lr, r6");
if (!(reinterpret_cast<uint32_t>(lr11) - (reinterpret_cast<uint32_t>(r3_13) >> 7) * 0x190)) {
addr_1002c218_5:
r2_14 = image_base_;
r3_15 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(r2_14) + 0x1a8);
r2_16 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(r2_14) + 28);
goto addr_1002c230_8;
}
}
r2_16 = image_base_;
r3_15 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(r2_16) + 56);
addr_1002c230_8:
r3_17 = *reinterpret_cast<unsigned char*>(reinterpret_cast<uint32_t>(r5_12) + reinterpret_cast<int32_t>(r3_15)) + 1 << 16 >> 16;
*reinterpret_cast<void***>(r1 + 2) = reinterpret_cast<void**>(static_cast<uint16_t>(r3_17));
r3_18 = g1002c2c8;
*reinterpret_cast<unsigned char*>(r1 + 6) = reinterpret_cast<unsigned char>(static_cast<uint16_t>(reinterpret_cast<uint32_t>(r5_12) - *reinterpret_cast<uint16_t*>(reinterpret_cast<int32_t>(r2_16) + (r3_17 << 1) - 2) + 1));
__asm__("umull r8, r3, sl, r3");
r9_19 = r3_18 >> 6;
__asm__("umull r6, r3, sb, r2");
r7_20 = r3_18 >> 5;
__asm__("umull r5, r3, r7, r2");
r4_21 = r3_18 >> 5;
*reinterpret_cast<unsigned char*>(r1 + 14) = reinterpret_cast<unsigned char>(static_cast<uint16_t>(v22 - r9_19 * 0x3e8));
*reinterpret_cast<unsigned char*>(r1 + 10) = reinterpret_cast<unsigned char>(static_cast<uint16_t>(r7_20 - ((r4_21 << 4) - r4_21 << 2)));
*reinterpret_cast<void***>(r1 + 12) = reinterpret_cast<void**>(static_cast<uint16_t>(r9_19 - ((r7_20 << 4) - r7_20 << 2)));
*reinterpret_cast<void***>(r1 + 8) = reinterpret_cast<void**>(static_cast<uint16_t>(r4_21));
*reinterpret_cast<void***>(r1) = reinterpret_cast<void**>(static_cast<uint16_t>(reinterpret_cast<uint32_t>(r0_9) + 0x600 + 65));
return 1;
}
int32_t FileTimeToLocalFileTime(void*** r0, void** r1) {
int1_t n3;
int1_t n4;
void** r3_5;
void** r1_6;
if (n3) {
}
if (!n4) {
}
__asm__("umull r1, r5, lr, r3");
r3_5 = *r0;
if (!__intrinsic()) {
r1_6 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r3_5) - reinterpret_cast<unsigned char>(r1));
__asm__("sbc r3, r2, r5");
} else {
r1_6 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r3_5) + reinterpret_cast<unsigned char>(r1));
__asm__("adc r3, r2, r5");
}
*reinterpret_cast<void***>(r1) = r1_6;
*reinterpret_cast<void***>(r1 + 4) = r3_5;
return 1;
}
struct s83 {
int32_t f0;
int32_t f4;
};
int32_t LocalFileTimeToFileTime(int32_t* r0, struct s83* r1) {
int1_t n3;
int1_t n4;
int32_t r3_5;
int32_t r1_6;
if (n3) {
}
if (!n4) {
}
__asm__("umull r1, r5, lr, r3");
r3_5 = *r0;
if (!__intrinsic()) {
r1_6 = r3_5 + reinterpret_cast<int32_t>(r1);
__asm__("adc r3, r2, r5");
} else {
r1_6 = r3_5 - reinterpret_cast<int32_t>(r1);
__asm__("sbc r3, r2, r5");
}
r1->f0 = r1_6;
r1->f4 = r3_5;
return 1;
}
struct s84 {
void** f0;
signed char[3] pad4;
void** f4;
};
void** fun_1002c3a4(struct s84* r0, void** r1, void** r2) {
void** r1_4;
void** r3_5;
void** r0_6;
r1_4 = *reinterpret_cast<void***>(r1);
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1 + 4)) < reinterpret_cast<unsigned char>(r0->f4)) {
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1 + 4)) > reinterpret_cast<unsigned char>(r0->f4)) {
goto addr_1002c3cc_5;
}
if (reinterpret_cast<unsigned char>(r1_4) > reinterpret_cast<unsigned char>(r0->f0)) {
addr_1002c3cc_5:
r3_5 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r1_4) - reinterpret_cast<unsigned char>(r0->f0));
__asm__("sbc r1, r4, lr");
r0_6 = reinterpret_cast<void**>(1);
goto addr_1002c3e8_8;
}
}
r3_5 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r0->f0) - reinterpret_cast<unsigned char>(r1_4));
__asm__("sbc r1, lr, r4");
r0_6 = reinterpret_cast<void**>(0);
addr_1002c3e8_8:
*reinterpret_cast<void***>(r2) = r3_5;
*reinterpret_cast<void***>(r2 + 4) = r1_4;
return r0_6;
}
int32_t fun_1002c6cc(void** r0) {
int32_t r0_2;
uint32_t r3_3;
r0_2 = fun_1002bf34(r0);
if (!r0_2) {
if (*reinterpret_cast<void***>(r0)) {
goto addr_1002c70c_5;
} else {
if (static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r0 + 4))) > 6) {
goto addr_1002c70c_5;
} else {
r3_3 = *reinterpret_cast<unsigned char*>(r0 + 6);
if (r3_3 >= 1) {
goto addr_1002c70c_5;
} else {
if (r3_3 > 5) {
addr_1002c70c_5:
if (*reinterpret_cast<void***>(r0 + 2)) {
return 0;
}
}
}
}
}
}
return 1;
}
struct s85 {
void** f0;
signed char[3] pad4;
void** f4;
signed char[3] pad8;
uint32_t f8;
signed char[4] pad16;
void** f10;
signed char[3] pad20;
void** f14;
};
/* (image base) */
struct s85* image_base_ = reinterpret_cast<struct s85*>(0x1007adc8);
uint32_t fun_1002c83c(void** r0) {
uint32_t* sp2;
struct s85* r5_3;
void** r3_4;
uint32_t r7_5;
uint32_t v6;
uint32_t r0_7;
void** r2_8;
void** r1_9;
void** r3_10;
int1_t z11;
sp2 = reinterpret_cast<uint32_t*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 28 - 24);
r5_3 = image_base_;
r3_4 = r5_3->f4;
if (!r3_4) {
r7_5 = v6;
} else {
r0_7 = GetTickCount();
r3_4 = gffffcb74;
r7_5 = r0_7;
if (r3_4 == r5_3->f0) {
__asm__("umull r2, lr, r3, r2");
r3_4 = gffffcb74;
r2_8 = r5_3->f10 + 0x2710;
__asm__("adc r1, lr, r1");
if (r3_4 == r5_3->f0) {
*reinterpret_cast<void***>(r0 + 4) = r5_3->f14;
*reinterpret_cast<void***>(r0) = r2_8;
goto addr_1002c8f0_9;
}
}
}
GetRealTime(sp2 + 2);
r1_9 = r0;
r0_7 = SystemTimeToFileTime(sp2 + 2, r1_9, r2_8, r3_4);
r3_10 = r5_3->f4;
z11 = r3_10 == 0;
if (!z11) {
r3_10 = *reinterpret_cast<void***>(r0 + 4);
}
if (!z11) {
r2_8 = *reinterpret_cast<void***>(r0);
}
if (!z11) {
r1_9 = gffffcb74;
}
if (!z11) {
r5_3->f14 = r3_10;
}
if (!z11) {
r5_3->f10 = r2_8;
}
if (!z11) {
r5_3->f8 = r7_5;
}
if (!z11) {
r5_3->f0 = r1_9;
}
addr_1002c8f0_9:
return r0_7;
}
int32_t GetCurrentFT(struct s83* r0) {
void* sp2;
int32_t r0_3;
sp2 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 8 - 8);
fun_1002c83c(static_cast<uint32_t>(sp2));
r0_3 = LocalFileTimeToFileTime(static_cast<int32_t>(sp2), r0);
return r0_3;
}
struct s86 {
signed char[4] pad4;
void** f4;
};
/* (image base) */
struct s86* image_base_ = reinterpret_cast<struct s86*>(0x10002730);
void** fun_1002cba4(void** r0) {
struct s86* lr2;
void* r2_3;
struct s86* r1_4;
lr2 = image_base_;
r2_3 = reinterpret_cast<void*>(0);
r1_4 = lr2;
while (r1_4->f4 != r0) {
r2_3 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r2_3) + 1);
r1_4 = reinterpret_cast<struct s86*>(reinterpret_cast<int32_t>(r1_4) + 8);
if (reinterpret_cast<uint32_t>(r2_3) < 37)
goto addr_1002cbd0_4;
}
return *reinterpret_cast<void***>(reinterpret_cast<int32_t>(lr2) + reinterpret_cast<uint32_t>(r2_3) << 3);
addr_1002cbd0_4:
return 0;
}
void* g1002cd5c = reinterpret_cast<void*>(0xfffffad4);
struct s87 {
void** f0;
signed char[3] pad4;
void** f4;
signed char[3] pad8;
void** f8;
signed char[3] pad12;
void** fc;
signed char[3] pad16;
void** f10;
signed char[3] pad20;
void** f14;
signed char[3] pad24;
void** f18;
signed char[3] pad28;
void** f1c;
signed char[3] pad32;
void** f20;
signed char[3] pad36;
void** f24;
signed char[3] pad40;
void** f28;
signed char[3] pad44;
void** f2c;
signed char[255] pad300;
void** f12c;
};
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(20);
/* (image base) */
void**** image_base_ = reinterpret_cast<void****>(0x1007b21c);
/* (image base) */
void*** image_base_ = reinterpret_cast<void***>(0x1007b1f4);
void** fun_1002cb4c(void** r0, void** r1, void** r2, void** r3);
void fun_1002cbec() {
void* r12_1;
struct s87* sp2;
void** r1_3;
void** r0_4;
void** r0_5;
void** r3_6;
void** r2_7;
void** r1_8;
void** r6_9;
int32_t r0_10;
int1_t z11;
void**** r10_12;
void*** r11_13;
void** r4_14;
void** r5_15;
void** r7_16;
void** r0_17;
void** r3_18;
void** r0_19;
void** r0_20;
int32_t r0_21;
r12_1 = g1002cd5c;
sp2 = reinterpret_cast<struct s87*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 36 + reinterpret_cast<int32_t>(r12_1));
r1_3 = image_base_;
sp2->f4 = reinterpret_cast<void**>(0xf003f);
sp2->f10 = reinterpret_cast<void**>(&sp2->f24);
sp2->fc = reinterpret_cast<void**>(&sp2->f1c);
sp2->f8 = reinterpret_cast<void**>(0);
sp2->f0 = reinterpret_cast<void**>(0);
r0_4 = RegCreateKeyExW(0x80000002, r1_3, 0, 0, sp2->f0, sp2->f4, sp2->f8, sp2->fc, sp2->f10, *reinterpret_cast<void***>(&sp2->f14), *reinterpret_cast<void***>(&sp2->f18), *reinterpret_cast<void***>(&sp2->f1c), *reinterpret_cast<void***>(&sp2->f20), *reinterpret_cast<void***>(&sp2->f24), sp2->f28);
if (!r0_4) {
r0_5 = *reinterpret_cast<void***>(&sp2->f1c);
r3_6 = reinterpret_cast<void**>(&sp2->f18);
r2_7 = reinterpret_cast<void**>(&sp2->f2c);
r1_8 = reinterpret_cast<void**>(0);
r6_9 = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(&sp2->f18) = reinterpret_cast<void**>(0x80);
*reinterpret_cast<void***>(&sp2->f14) = reinterpret_cast<void**>(0x400);
sp2->fc = reinterpret_cast<void**>(&sp2->f14);
sp2->f8 = reinterpret_cast<void**>(&sp2->f12c);
sp2->f4 = reinterpret_cast<void**>(&sp2->f20);
sp2->f0 = reinterpret_cast<void**>(0);
r0_10 = RegEnumValueW(r0_5, 0, r2_7, r3_6, sp2->f0, sp2->f4, sp2->f8, sp2->fc);
z11 = r0_10 == 0;
if (z11) {
r10_12 = image_base_;
r11_13 = image_base_;
r4_14 = reinterpret_cast<void**>(&sp2->f14);
r5_15 = reinterpret_cast<void**>(&sp2->f12c);
r7_16 = reinterpret_cast<void**>(&sp2->f20);
while (1) {
++r6_9;
r0_17 = fun_1002cb4c(&sp2->f2c, r1_8, r2_7, r3_6);
if (!z11) {
r3_18 = *reinterpret_cast<void***>(&sp2->f14);
r0_19 = HeapAlloc(*r11_13, 0, r3_18 + 8, r3_18, sp2->f0, sp2->f4, sp2->f8, sp2->fc, sp2->f10);
if (!z11) {
*reinterpret_cast<void***>(r0_19) = r0_17;
memcpy(r0_19 + 8, &sp2->f12c, *reinterpret_cast<void***>(&sp2->f14), r3_18, sp2->f0, sp2->f4, sp2->f8, sp2->fc, sp2->f10, *reinterpret_cast<void***>(&sp2->f14), *reinterpret_cast<void***>(&sp2->f18), *reinterpret_cast<void***>(&sp2->f1c), *reinterpret_cast<void***>(&sp2->f20));
*reinterpret_cast<void***>(r0_19 + 4) = **r10_12;
**r10_12 = r0_19;
}
}
*reinterpret_cast<void***>(&sp2->f18) = reinterpret_cast<void**>(0x80);
r0_20 = *reinterpret_cast<void***>(&sp2->f1c);
*reinterpret_cast<void***>(&sp2->f14) = reinterpret_cast<void**>(0x400);
r3_6 = reinterpret_cast<void**>(&sp2->f18);
r2_7 = reinterpret_cast<void**>(&sp2->f2c);
r1_8 = r6_9;
sp2->f0 = reinterpret_cast<void**>(0);
sp2->fc = r4_14;
sp2->f8 = r5_15;
sp2->f4 = r7_16;
r0_21 = RegEnumValueW(r0_20, r1_8, r2_7, r3_6, sp2->f0, sp2->f4, sp2->f8, sp2->fc);
z11 = r0_21 == 0;
if (!z11)
break;
}
}
RegCloseKey(*reinterpret_cast<void***>(&sp2->f1c), r1_8, r2_7, r3_6, sp2->f0, sp2->f4, sp2->f8, sp2->fc);
}
goto *reinterpret_cast<int32_t*>(reinterpret_cast<int32_t>(sp2) + 0x52c + 32);
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(20);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(20);
/* (image base) */
void*** image_base_ = reinterpret_cast<void***>(0x1007b21c);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xf4);
void** wcslen(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, ...);
int32_t fun_1002cd60(void** r0, void** r1, void** r2, void** r3) {
void** v5;
void** r4_6;
void** v7;
void** r5_8;
void** v9;
void** r6_10;
void** v11;
void** r7_12;
void*** sp13;
void** r5_14;
void** r8_15;
int32_t r6_16;
void** r0_17;
int1_t z18;
void** r7_19;
void** r9_20;
void** r10_21;
void** v22;
void** v23;
void** v24;
void** v25;
void** v26;
void** r1_27;
void** v28;
void** v29;
void** r3_30;
void** r2_31;
void** v32;
void** v33;
void** v34;
void** v35;
void** r0_36;
int1_t z37;
int32_t v38;
void*** r3_39;
void** r0_40;
void** r10_41;
void** r0_42;
void** r4_43;
int32_t v44;
void** v45;
void** v46;
void** r0_47;
int1_t z48;
void** v49;
void** v50;
void*** r0_51;
void** lr52;
int1_t z53;
void** v54;
void** v55;
void** v56;
int1_t z57;
void** r3_58;
int1_t z59;
int1_t z60;
void** v61;
void** v62;
void** v63;
void** v64;
void** v65;
void** v66;
void** v67;
void** r0_68;
v5 = r4_6;
v7 = r5_8;
v9 = r6_10;
v11 = r7_12;
sp13 = reinterpret_cast<void***>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 16 - 40 - 28);
r5_14 = r1;
r8_15 = r0;
r6_16 = 0;
r0_17 = fun_1002cba4(r0);
if (!z18) {
if (!r2)
goto addr_1002cda8_4;
} else {
SetLastError(87, r1, r2, r3);
r6_16 = 0;
goto addr_1002cf20_6;
}
r5_14 = reinterpret_cast<void**>(sp13 + 72);
r7_19 = reinterpret_cast<void**>(4);
r9_20 = reinterpret_cast<void**>(4);
addr_1002cde0_9:
r10_21 = image_base_;
WaitForMultipleObjects(1, r10_21, 0, 0xffffffff, v22, v23, v24, v25, v26);
r1_27 = image_base_;
v28 = reinterpret_cast<void**>(sp13 + 24);
v29 = reinterpret_cast<void**>(0xf003f);
r3_30 = reinterpret_cast<void**>(0);
r2_31 = reinterpret_cast<void**>(0);
v32 = reinterpret_cast<void**>(0);
v33 = reinterpret_cast<void**>(sp13 + 20);
r0_36 = RegCreateKeyExW(0x80000002, r1_27, 0, 0, 0, 0xf003f, 0, v33, v28, v34, v35, v5, v7, v9, v11);
if (!r0_36) {
z37 = r5_14 == 0;
if (z37) {
RegDeleteValueW(v38, r0_17, 0, 0, 0, 0xf003f, 0, v33, v28);
r3_39 = image_base_;
r1_27 = reinterpret_cast<void**>(0);
r0_40 = *r3_39;
r3_30 = *reinterpret_cast<void***>(r0_40);
r2_31 = r3_30;
if (z37)
goto label_14; else
goto addr_1002cf54_15;
} else {
r10_41 = image_base_;
r2_31 = r7_19 + 8;
r1_27 = reinterpret_cast<void**>(0);
r0_42 = HeapAlloc(*reinterpret_cast<void***>(r10_41), 0, r2_31, 0, 0, 0xf003f, 0, v33, v28);
r4_43 = r0_42;
if (z37) {
goto addr_1002cf0c_18;
} else {
r3_30 = r9_20;
r2_31 = reinterpret_cast<void**>(0);
r1_27 = r0_17;
v29 = r7_19;
v32 = r5_14;
r0_47 = RegSetValueExW(v44, r1_27, 0, r3_30, v32, v29, 0, v33, v28, v45, v46, v5, v7, v9, v11);
z48 = r0_47 == 0;
if (!z48) {
goto addr_1002cf0c_18;
} else {
*reinterpret_cast<void***>(r4_43) = r8_15;
memcpy(r4_43 + 8, r5_14, r7_19, r3_30, v32, v29, 0, v33, v28, v49, v50, v5, v7);
r0_51 = image_base_;
r1_27 = reinterpret_cast<void**>(0);
lr52 = *reinterpret_cast<void***>(*r0_51);
r2_31 = lr52;
if (z48) {
goto addr_1002cefc_23;
} else {
while (z53 = *reinterpret_cast<void***>(r2_31) == r8_15, !z53) {
r1_27 = r2_31;
r2_31 = *reinterpret_cast<void***>(r2_31 + 4);
if (z53)
goto addr_1002cecc_26;
}
goto label_28;
}
}
}
}
}
addr_1002cf18_29:
ReleaseMutex(*reinterpret_cast<void***>(r10_21), r1_27, r2_31, r3_30, v32, v29, 0, v33, v28, v54, v55, v5, v7, v9, v11);
addr_1002cf20_6:
return r6_16;
label_14:
addr_1002cf98_30:
r6_16 = 1;
addr_1002cf10_31:
RegCloseKey(v56, r1_27, r2_31, r3_30, v32, v29, 0, v33, v56, r1_27, r2_31, r3_30, v32, v29, 0, v33);
goto addr_1002cf18_29;
addr_1002cf54_15:
while (r3_30 = *reinterpret_cast<void***>(r2_31), z57 = r3_30 == r8_15, !z57) {
r3_30 = *reinterpret_cast<void***>(r2_31 + 4);
r1_27 = r2_31;
r2_31 = r3_30;
if (z57)
goto addr_1002cf70_33;
}
addr_1002cf70_33:
if (!r2_31) {
goto addr_1002cf98_30;
} else {
r3_58 = *reinterpret_cast<void***>(r2_31 + 4);
z59 = r1_27 == 0;
if (z59) {
*reinterpret_cast<void***>(r0_40) = r3_58;
}
if (!z59) {
*reinterpret_cast<void***>(r1_27 + 4) = r3_58;
}
r3_30 = image_base_;
r1_27 = reinterpret_cast<void**>(0);
HeapFree(*reinterpret_cast<void***>(r3_30), 0, r2_31);
goto addr_1002cf98_30;
}
addr_1002cf0c_18:
r10_21 = image_base_;
goto addr_1002cf10_31;
addr_1002cefc_23:
*reinterpret_cast<void***>(r4_43 + 4) = lr52;
r3_30 = *r0_51;
*reinterpret_cast<void***>(r3_30) = r4_43;
addr_1002cf08_42:
r6_16 = 1;
goto addr_1002cf0c_18;
label_28:
addr_1002cecc_26:
if (!r2_31) {
goto addr_1002cefc_23;
} else {
r3_30 = *reinterpret_cast<void***>(r2_31 + 4);
z60 = r1_27 == 0;
*reinterpret_cast<void***>(r4_43 + 4) = r3_30;
if (!z60) {
*reinterpret_cast<void***>(r1_27 + 4) = r4_43;
}
if (z60) {
r3_30 = *r0_51;
}
r1_27 = reinterpret_cast<void**>(0);
if (z60) {
*reinterpret_cast<void***>(r3_30) = r4_43;
}
HeapFree(*reinterpret_cast<void***>(r10_41), 0, r2_31);
goto addr_1002cf08_42;
}
addr_1002cda8_4:
if (!r5_14) {
r7_19 = v61;
r9_20 = reinterpret_cast<void**>(1);
goto addr_1002cde0_9;
} else {
r0_68 = wcslen(r5_14, r1, r2, r3, v62, v63, v64, v65, v66, v67);
r7_19 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r0_68 + 1) << 1);
r9_20 = reinterpret_cast<void**>(1);
goto addr_1002cde0_9;
}
}
struct s88 {
void** f0;
signed char[3] pad4;
struct s88* f4;
void** f8;
};
/* (image base) */
struct s88*** image_base_ = reinterpret_cast<struct s88***>(0x1007b21c);
int32_t fun_1002cfb0(void** r0, void** r1, void** r2, void** r3) {
void** r4_5;
struct s88*** r3_6;
struct s88* r3_7;
int1_t z8;
void** r3_9;
int1_t z10;
r4_5 = r0;
r3_6 = image_base_;
r3_7 = **r3_6;
while (!z8) {
r3_9 = r3_7->f0;
z8 = r3_9 == r4_5;
if (z8)
goto label_5;
r3_7 = r3_7->f4;
}
return 0;
label_5:
z10 = r2 == 0;
if (!z10) {
r3_9 = *reinterpret_cast<void***>(&r3_7->f8);
}
if (z10) {
r3_9 = reinterpret_cast<void**>(&r3_7->f8);
}
*reinterpret_cast<void***>(r1) = r3_9;
return 1;
}
void** fun_1002d1e8(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23, void** a24, void** a25, void** a26, void** a27, void** a28, void** a29, void** a30, void** a31, void** a32, void** a33) {
void** r0_34;
void** r0_35;
uint32_t r0_36;
uint32_t r3_37;
void* r3_38;
r0_34 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r0) << 16 >> 16);
if (!reinterpret_cast<int1_t>(r0 == 0x800)) {
if (r0_34 != 0x7f)
goto addr_1002d238_4;
} else {
r0_35 = GetOwnerProcess(r0_34, r1, r2, r0, __return_address(), a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33);
r0_36 = GetProcessVersion(r0_35);
r3_37 = r0_36 >> 16;
if (r3_37 >= 4) {
goto addr_1002d270_7;
} else {
if (r3_37 != 4) {
goto addr_1002d228_10;
}
if (r0_36 << 16 >> 16 >= 20) {
goto addr_1002d270_7;
} else {
addr_1002d228_10:
r3_38 = reinterpret_cast<void*>(16);
goto addr_1002d274_13;
}
}
}
addr_1002d284_15:
return r0_34;
addr_1002d238_4:
if (r0) {
if (r0 != 0x400) {
if (reinterpret_cast<unsigned char>(r0_34) & 0xfffffc00) {
goto addr_1002d284_15;
} else {
return reinterpret_cast<unsigned char>(r0_34) & 0x3ff | 0x400;
}
}
}
addr_1002d270_7:
r3_38 = reinterpret_cast<void*>(20);
addr_1002d274_13:
r0_34 = reinterpret_cast<void**>(*reinterpret_cast<uint32_t*>(reinterpret_cast<int32_t>(r3_38) - 0x34c0) << 16 >> 16);
goto addr_1002d284_15;
}
void** gffffcb50;
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xf0);
/* (image base) */
void**** image_base_ = reinterpret_cast<void****>(0x1007b1ec);
/* (image base) */
void**** image_base_ = reinterpret_cast<void****>(0x1007b1f8);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(8);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x1007b200);
void** fun_1002d564(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9) {
void** lr10;
void** r3_11;
int1_t z12;
void** r3_13;
void**** r2_14;
void**** r1_15;
void** r0_16;
int1_t z17;
void** r2_18;
lr10 = reinterpret_cast<void**>(__return_address());
r3_11 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<uint16_t*>(&gffffcb50)));
z12 = r0 == r3_11;
if (z12) {
r3_11 = image_base_;
}
if (!z12) {
r3_13 = reinterpret_cast<void**>(static_cast<uint32_t>(*reinterpret_cast<uint16_t*>(&gffffcb54)));
if (r0 != r3_13) {
r2_14 = image_base_;
r1_15 = image_base_;
r0_16 = fun_1002d28c(*r2_14, 8, *r1_15, r0);
z17 = reinterpret_cast<int1_t>(r0_16 == -1);
if (!z17)
goto label_8; else
goto addr_1002d5dc_9;
} else {
r3_11 = image_base_;
}
}
r2_18 = image_base_;
return reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(*reinterpret_cast<void***>(r3_11))) + reinterpret_cast<uint32_t>(*r2_18);
label_8:
addr_1002d5dc_9:
if (!z17) {
}
if (!z17) {
}
if (!z17) {
}
if (!z17) {
}
if (!z17) {
lr10 = lr10;
}
if (z17) {
}
if (z17) {
lr10 = a6;
}
goto lr10;
}
/* (image base) */
void**** image_base_ = reinterpret_cast<void****>(0x1007b1ec);
/* (image base) */
void**** image_base_ = reinterpret_cast<void****>(0x1007b1f8);
void* fun_1002d610(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7) {
void** lr8;
void**** r2_9;
void**** r0_10;
void** r0_11;
int1_t z12;
lr8 = reinterpret_cast<void**>(__return_address());
r2_9 = image_base_;
r0_10 = image_base_;
r0_11 = fun_1002d28c(*r2_9, 8, *r0_10, r0);
z12 = reinterpret_cast<int1_t>(r0_11 == -1);
if (!z12) {
}
if (!z12) {
}
if (!z12) {
}
if (!z12) {
}
if (!z12) {
}
if (!z12) {
lr8 = lr8;
}
if (z12) {
}
if (z12) {
lr8 = a6;
}
goto lr8;
}
/* (image base) */
void**** image_base_ = reinterpret_cast<void****>(0x1007b1e8);
/* (image base) */
void**** image_base_ = reinterpret_cast<void****>(0x1007b218);
/* (image base) */
void*** image_base_ = reinterpret_cast<void***>(0x1007b200);
void** fun_1002d668(void** r0, void** r1) {
void** r3_3;
void**** r2_4;
void**** r0_5;
void** r1_6;
void*** r2_7;
void** r0_8;
int1_t z9;
r3_3 = r0;
r2_4 = image_base_;
r0_5 = image_base_;
r1_6 = reinterpret_cast<void**>(8);
r2_7 = *r0_5;
r0_8 = fun_1002d28c(*r2_4, 8, r2_7, r3_3);
z9 = reinterpret_cast<int1_t>(r0_8 == -1);
if (!z9) {
r2_7 = image_base_;
}
if (!z9) {
r3_3 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(*r2_4) + (reinterpret_cast<unsigned char>(r0_8) << 3));
}
if (!z9) {
r1_6 = *reinterpret_cast<void***>(r3_3 + 4);
}
if (!z9) {
r3_3 = *r2_7;
}
if (!z9) {
r0_8 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r1_6) + reinterpret_cast<unsigned char>(r3_3));
}
if (!z9) {
}
if (z9) {
r0_8 = reinterpret_cast<void**>(0);
}
if (z9) {
}
return r0_8;
}
/* (image base) */
void**** image_base_ = reinterpret_cast<void****>(0x1007b1fc);
/* (image base) */
void**** image_base_ = reinterpret_cast<void****>(0x1007b220);
/* (image base) */
void*** image_base_ = reinterpret_cast<void***>(0x1007b200);
void** fun_1002d6c0(void** r0, void** r1) {
void** r3_3;
void**** r2_4;
void**** r0_5;
void** r1_6;
void*** r2_7;
void** r0_8;
int1_t z9;
r3_3 = r0;
r2_4 = image_base_;
r0_5 = image_base_;
r1_6 = reinterpret_cast<void**>(8);
r2_7 = *r0_5;
r0_8 = fun_1002d28c(*r2_4, 8, r2_7, r3_3);
z9 = reinterpret_cast<int1_t>(r0_8 == -1);
if (!z9) {
r2_7 = image_base_;
}
if (!z9) {
r3_3 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(*r2_4) + (reinterpret_cast<unsigned char>(r0_8) << 3));
}
if (!z9) {
r1_6 = *reinterpret_cast<void***>(r3_3 + 4);
}
if (!z9) {
r3_3 = *r2_7;
}
if (!z9) {
r0_8 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r1_6) + reinterpret_cast<unsigned char>(r3_3));
}
if (!z9) {
}
if (z9) {
r0_8 = reinterpret_cast<void**>(0);
}
if (z9) {
}
return r0_8;
}
/* (image base) */
void* image_base_ = reinterpret_cast<void*>(0x10002608);
void** fun_1002d7f4(uint32_t r0, void** r1, void** r2, void** r3) {
uint32_t r6_5;
void** r0_6;
void* r5_7;
void*** lr8;
void** r4_9;
r6_5 = r0;
r0_6 = r1 + 1;
if (r3) {
if (reinterpret_cast<unsigned char>(r3) >= reinterpret_cast<unsigned char>(r0_6)) {
SetLastError(0x7a, r1, r2, r3);
return 0;
}
if (!r1)
goto label_7; else
goto addr_1002d82c_8;
}
addr_1002d85c_9:
return r0_6;
label_7:
addr_1002d850_10:
*reinterpret_cast<void***>(reinterpret_cast<unsigned char>(r2) + (reinterpret_cast<unsigned char>(r1) << 1)) = reinterpret_cast<void**>(0);
goto addr_1002d85c_9;
addr_1002d82c_8:
r5_7 = image_base_;
lr8 = reinterpret_cast<void***>(reinterpret_cast<unsigned char>(r2) + (reinterpret_cast<unsigned char>(r1) << 1));
r4_9 = r1;
while (r6_5 = r6_5 >> 4, --r4_9, *reinterpret_cast<int16_t*>(lr8 + 0xfffffffe) = static_cast<int16_t>(static_cast<uint32_t>(*reinterpret_cast<unsigned char*>((r6_5 & 15) + reinterpret_cast<int32_t>(r5_7)))), lr8 = lr8 + 0xfffffffe, !!r4_9) {
}
goto addr_1002d850_10;
}
struct s89 {
signed char[200] pad200;
void** fc8;
};
int32_t fun_1002d868(void** r0, void** r1, int16_t* r2, void** r3, void** a5, void** a6) {
void** v7;
void** r4_8;
void** v9;
void** r5_10;
void** v11;
void** r6_12;
void** v13;
void** r6_14;
int16_t* r5_15;
struct s89* r4_16;
void** r4_17;
void** r3_18;
int1_t z19;
void** r0_20;
void** lr21;
void** r0_22;
uint32_t r3_23;
v7 = r4_8;
v9 = r5_10;
v11 = r6_12;
v13 = reinterpret_cast<void**>(__return_address());
r6_14 = r3;
r5_15 = r2;
r4_16 = reinterpret_cast<struct s89*>(reinterpret_cast<uint16_t>(*reinterpret_cast<unsigned char*>(r0 + 62)) + reinterpret_cast<unsigned char>(r0));
r4_17 = reinterpret_cast<void**>(&r4_16->fc8);
r3_18 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(&r4_16->fc8))));
if (!z19) {
while (1) {
r0_20 = r3_18 - 48;
while (lr21 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_17 + 2)))), r4_17 = r4_17 + 2, !reinterpret_cast<int1_t>(lr21 == 0xffff)) {
r0_20 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(lr21) + (reinterpret_cast<unsigned char>(r0_20) + (reinterpret_cast<unsigned char>(r0_20) << 2) << 1) - 48);
}
r4_17 = r4_17 + 2;
if (r0_20 == r1)
goto label_9;
while (r4_17 = r4_17 - 2, !!*reinterpret_cast<void***>(r4_17)) {
}
r3_18 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_17))));
if (!r3_18)
break;
}
}
addr_1002d8d4_14:
return 0;
label_9:
r0_22 = wcslen(r4_17, r1, 0xffff, r3_18, v7, v9, v11, v13, a5, a6);
if (reinterpret_cast<unsigned char>(r0_22) < reinterpret_cast<unsigned char>(r6_14)) {
goto addr_1002d8d4_14;
} else {
while (r3_23 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_17)), r4_17 = r4_17 - 2, *r5_15 = static_cast<int16_t>(r3_23), --r5_15, !!r3_23) {
}
return 1;
}
}
void** fun_1002db58(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8) {
void** r4_9;
void** r5_10;
void** r6_11;
void** r7_12;
void** r0_13;
void** r4_14;
r0_13 = wcslen(r0, r1, r2, r3, r4_9, r5_10, r6_11, r7_12, __return_address(), a5);
r4_14 = r0_13 + 1;
if (r2) {
if (reinterpret_cast<unsigned char>(r2) < reinterpret_cast<unsigned char>(r4_14)) {
memcpy(r1, r0, reinterpret_cast<unsigned char>(r4_14) << 1, r3, r4_9, r5_10, r6_11, r7_12, __return_address(), a5, a6, a7, a8);
} else {
SetLastError(0x7a, r1, r2, r3);
r4_14 = reinterpret_cast<void**>(0);
}
}
return r4_14;
}
/* (image base) */
uint16_t* image_base_ = reinterpret_cast<uint16_t*>(0x10002618);
int32_t fun_1002d3a8(uint16_t* r0, uint32_t r1, int32_t r2, uint32_t r3);
/* (image base) */
void*** image_base_ = reinterpret_cast<void***>(0x1007ad20);
uint32_t fun_1002e514(uint32_t r0, void** r1, uint32_t r2, int32_t r3, void** a5, void** a6, void** a7) {
void** v8;
void** r4_9;
void** v10;
void** r5_11;
void** v12;
void** r6_13;
void** v14;
void** r7_15;
void** v16;
void** r8_17;
void** v18;
int32_t r5_19;
uint32_t r6_20;
void** r8_21;
int1_t z22;
uint16_t* r0_23;
int32_t r0_24;
int1_t z25;
uint32_t r4_26;
void*** r7_27;
void** r0_28;
uint32_t r4_29;
void** r0_30;
uint32_t r2_31;
int1_t z32;
uint32_t r3_33;
void** r0_34;
void** r2_35;
void** r1_36;
void** r3_37;
v8 = r4_9;
v10 = r5_11;
v12 = r6_13;
v14 = r7_15;
v16 = r8_17;
v18 = reinterpret_cast<void**>(__return_address());
r5_19 = r3;
r6_20 = r2;
r8_21 = r1;
if (!z22) {
if (r6_20) {
r0_23 = image_base_;
r0_24 = fun_1002d3a8(r0_23, 2, 0x8a, r0);
z25 = r0_24 == -1;
if (z25) {
r4_26 = 0x400;
}
if (!z25) {
r4_26 = r0_24 + 0x400;
}
r7_27 = image_base_;
r0_28 = FindResourceW(*r7_27, (r4_26 << 16 >> 16 >> 4) + 1, 6);
if (z25)
goto label_10; else
goto addr_1002e578_11;
}
}
addr_1002e62c_12:
r4_29 = 0;
addr_1002e630_13:
return r4_29;
label_10:
goto addr_1002e62c_12;
addr_1002e578_11:
r0_30 = LoadResource(*r7_27, r0_28, 6);
if (!r0_30) {
goto addr_1002e62c_12;
} else {
r2_31 = r4_26 & 15;
z32 = r2_31 == 0;
while (r3_33 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r0_30)), r0_34 = r0_30 - 2, !z32) {
r0_30 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r0_34) + (r3_33 << 1));
--r2_31;
z32 = r2_31 == 0;
}
r2_35 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r0_34) + (r3_33 << 1));
if (r5_19 > 0)
goto addr_1002e5ac_20;
}
addr_1002e5d4_22:
r1_36 = r0_34;
r4_29 = 0;
if (reinterpret_cast<unsigned char>(r0_34) < reinterpret_cast<unsigned char>(r2_35)) {
goto addr_1002e62c_12;
} else {
while (r3_37 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r0_34)))), r3_37 != 36) {
r0_34 = r0_34 + 2;
++r4_29;
if (reinterpret_cast<unsigned char>(r0_34) < reinterpret_cast<unsigned char>(r2_35))
goto addr_1002e600_26;
}
}
addr_1002e600_26:
if (reinterpret_cast<int32_t>(r4_29) <= reinterpret_cast<int32_t>(0)) {
goto addr_1002e62c_12;
} else {
if (reinterpret_cast<int32_t>(r4_29) >= reinterpret_cast<int32_t>(r6_20)) {
r4_29 = r6_20 - 1;
}
memcpy(r8_21, r1_36, r4_29 << 1, r3_37, v8, v10, v12, v14, v16, v18, a5, a6, a7);
*reinterpret_cast<void***>(reinterpret_cast<unsigned char>(r8_21) + (r4_29 << 1)) = reinterpret_cast<void**>(0);
goto addr_1002e630_13;
}
addr_1002e5ac_20:
while (reinterpret_cast<unsigned char>(r0_34) >= reinterpret_cast<unsigned char>(r2_35)) {
while (r0_34 = r0_34 + 2, static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r0_34))) != 36) {
if (reinterpret_cast<unsigned char>(r0_34) < reinterpret_cast<unsigned char>(r2_35))
goto addr_1002e5cc_35;
}
addr_1002e5cc_35:
--r5_19;
if (reinterpret_cast<uint1_t>(reinterpret_cast<uint1_t>(r5_19 < 0 != __intrinsic()) | reinterpret_cast<uint1_t>(r5_19 == 0)))
goto addr_1002e5d4_22;
}
goto addr_1002e5d4_22;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x98);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x90);
/* (image base) */
void*** image_base_ = reinterpret_cast<void***>(0x1007b200);
/* (image base) */
void*** image_base_ = reinterpret_cast<void***>(0x1007b1f0);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x78);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(96);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(20);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(84);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(48);
/* (image base) */
void*** image_base_ = reinterpret_cast<void***>(0x1007b208);
void ReinitLocale() {
void*** sp1;
void** r1_2;
void** r2_3;
void** r3_4;
void** v5;
void** r6_6;
void** v7;
void** v8;
void** r0_9;
void** v10;
void** v11;
void** v12;
void** v13;
void** v14;
void** v15;
void** v16;
void** r4_17;
void** r5_18;
void** r6_19;
void** r7_20;
void** r8_21;
void** v22;
void** v23;
void** v24;
void** v25;
void** v26;
void** v27;
void** v28;
void** v29;
void** v30;
void** v31;
void** v32;
void** v33;
void** v34;
void** v35;
void** r0_36;
void** v37;
void** v38;
void** r0_39;
void** v40;
void* r0_41;
void*** r7_42;
void*** r5_43;
void** r1_44;
void** r2_45;
void** r3_46;
void** v47;
void** r0_48;
int1_t z49;
void** v50;
void** v51;
void** r0_52;
int1_t z53;
void** r1_54;
void** r2_55;
void** r3_56;
void** v57;
void** r0_58;
int1_t z59;
void** v60;
void** v61;
void** r0_62;
int1_t z63;
void** r2_64;
void** r1_65;
void** r3_66;
void** r5_67;
void** v68;
void** v69;
void** v70;
void** r0_71;
void** v72;
void** v73;
void** v74;
void** v75;
void** v76;
void** v77;
void** v78;
void** v79;
void** v80;
void** v81;
void** v82;
void** v83;
void** v84;
void** v85;
void** v86;
void** v87;
void** v88;
void** v89;
void** v90;
void** r0_91;
void** v92;
void** r0_93;
void** v94;
void** r1_95;
void** r2_96;
void** r3_97;
void** v98;
void** v99;
void** v100;
void** r0_101;
void** v102;
void* r0_103;
void*** r1_104;
void** v105;
sp1 = reinterpret_cast<void***>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 24 - 36);
fun_1002cbec();
r1_2 = image_base_;
r2_3 = image_base_;
r3_4 = reinterpret_cast<void**>(sp1 + 12);
v5 = reinterpret_cast<void**>(sp1 + 8);
r6_6 = reinterpret_cast<void**>(0x409);
v7 = reinterpret_cast<void**>(sp1 + 24);
r0_9 = RegQueryValueExW(0x80000002, r1_2, r2_3, r3_4, v7, v5, 4, v8);
if (!r0_9) {
r0_36 = fun_1002d1e8(v10, r1_2, r2_3, r3_4, v7, v5, 4, v11, v12, v13, v14, v15, v16, r4_17, r5_18, r6_19, r7_20, r8_21, __return_address(), v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35);
r0_39 = fun_1002d564(r0_36, r1_2, r2_3, r3_4, v7, v5, 4, v37, v38);
if (r0_39) {
r6_6 = v40;
}
}
r0_41 = fun_1002d610(reinterpret_cast<unsigned char>(r6_6) << 16 >> 16, r1_2, r2_3, r3_4, v7, v5, 4);
r7_42 = image_base_;
r5_43 = image_base_;
r1_44 = image_base_;
*reinterpret_cast<void***>(*r5_43) = reinterpret_cast<void**>(reinterpret_cast<int32_t>(r0_41) - reinterpret_cast<unsigned char>(*r7_42));
r2_45 = image_base_;
r3_46 = reinterpret_cast<void**>(sp1 + 12);
r0_48 = RegQueryValueExW(0x80000002, r1_44, r2_45, r3_46, sp1 + 20, sp1 + 8, 4, v47);
z49 = r0_48 == 0;
if (!z49) {
r3_46 = *r5_43;
}
if (!z49) {
r2_45 = *r7_42;
}
if (!z49) {
r3_46 = v50;
}
if (!z49) {
r3_46 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r3_46) + reinterpret_cast<unsigned char>(r2_45));
}
if (!z49) {
r0_48 = *reinterpret_cast<void***>(r3_46 + 0xc0);
}
if (!z49) {
v51 = r0_48;
}
if (z49) {
r0_48 = v51;
}
r0_52 = fun_1002d6c0(r0_48, r1_44);
z53 = r0_52 == 0;
if (z53) {
r3_46 = reinterpret_cast<void**>(0x1b4);
}
r1_54 = image_base_;
r2_55 = image_base_;
if (z53) {
r3_46 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r3_46) | 1);
}
if (z53) {
v51 = r3_46;
}
r3_56 = reinterpret_cast<void**>(sp1 + 12);
r0_58 = RegQueryValueExW(0x80000002, r1_54, r2_55, r3_56, sp1 + 16, sp1 + 8, 4, v57);
z59 = r0_58 == 0;
if (!z59) {
r3_56 = *r5_43;
}
if (!z59) {
r2_55 = *r7_42;
}
if (!z59) {
r3_56 = v60;
}
if (!z59) {
r3_56 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r3_56) + reinterpret_cast<unsigned char>(r2_55));
}
if (!z59) {
r0_58 = *reinterpret_cast<void***>(r3_56 + 0xc4);
}
if (!z59) {
v61 = r0_58;
}
if (z59) {
r0_58 = v61;
}
r0_62 = fun_1002d6c0(r0_58, r1_54);
z63 = r0_62 == 0;
if (z63) {
r3_56 = reinterpret_cast<void**>(0x4e0);
}
r2_64 = image_base_;
r1_65 = image_base_;
if (z63) {
r3_56 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r3_56) | 4);
}
if (z63) {
v61 = r3_56;
}
r3_66 = reinterpret_cast<void**>(sp1 + 12);
r5_67 = r6_6;
v68 = reinterpret_cast<void**>(sp1 + 8);
v69 = reinterpret_cast<void**>(sp1 + 28);
r0_71 = RegQueryValueExW(0x80000002, r1_65, r2_64, r3_66, v69, v68, 4, v70);
if (!r0_71) {
r0_91 = fun_1002d1e8(v72, r1_65, r2_64, r3_66, v69, v68, 4, v73, v61, v51, v74, v75, v76, r4_17, r5_18, r6_19, r7_20, r8_21, __return_address(), v77, v78, v79, v80, v81, v82, v83, v84, v85, v86, v87, v88, v89, v90);
r0_93 = fun_1002d564(r0_91, r1_65, r2_64, r3_66, v69, v68, 4, v92, v61);
if (r0_93) {
r5_67 = v94;
}
}
r1_95 = image_base_;
r2_96 = image_base_;
r3_97 = reinterpret_cast<void**>(sp1 + 12);
v98 = reinterpret_cast<void**>(sp1 + 8);
v99 = reinterpret_cast<void**>(sp1 + 32);
r0_101 = RegQueryValueExW(0x80000002, r1_95, r2_96, r3_97, v99, v98, 4, v100);
if (!r0_101) {
r3_97 = v102;
if (r3_97) {
r5_67 = r6_6;
}
}
r0_103 = fun_1002d610(reinterpret_cast<unsigned char>(r5_67) << 16 >> 16, r1_95, r2_96, r3_97, v99, v98, 4);
r1_104 = image_base_;
**r1_104 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(r0_103) - reinterpret_cast<unsigned char>(*r7_42));
UpdateNLSInfoEx(v51, v61, r6_6, r5_67, v99, v98, 4, v105, v61);
return;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xc0);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(20);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xb0);
/* (image base) */
void*** image_base_ = reinterpret_cast<void***>(0x1007b20c);
/* (image base) */
void*** image_base_ = reinterpret_cast<void***>(0x1007b1f4);
/* (image base) */
void*** image_base_ = reinterpret_cast<void***>(0x1007b21c);
/* (image base) */
struct s39** image_base_ = reinterpret_cast<struct s39**>(0x1007b200);
/* (image base) */
void*** image_base_ = reinterpret_cast<void***>(0x1007b1f0);
/* (image base) */
void**** image_base_ = reinterpret_cast<void****>(0x1007b208);
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007b1f8);
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007b218);
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007b220);
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007b1ec);
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007b1e8);
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007b1fc);
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007b204);
/* (image base) */
int32_t* image_base_ = reinterpret_cast<int32_t*>(0x1007b210);
void InitLocale() {
void** r1_1;
void** r2_2;
void** r3_3;
void** v4;
void** v5;
void** r0_6;
void** r2_7;
void** r0_8;
void** r3_9;
void** v10;
void** v11;
void** r4_12;
void** r5_13;
void** r6_14;
void** r7_15;
void** r8_16;
void** r9_17;
void** v18;
void** v19;
void** v20;
void** v21;
void** v22;
void** v23;
void** v24;
void** v25;
void** v26;
void** v27;
void** v28;
void** v29;
void** v30;
void** v31;
void** v32;
void** v33;
void** v34;
void** v35;
void** r0_36;
void** r2_37;
int1_t z38;
int32_t r9_39;
void** r0_40;
void*** r2_41;
void** r0_42;
void*** r3_43;
int32_t r1_44;
void** r0_45;
void*** r4_46;
int32_t r0_47;
void** r0_48;
struct s39* r0_49;
struct s39** r3_50;
void** r2_51;
void*** r1_52;
void**** r0_53;
int32_t r4_54;
int32_t* r3_55;
int32_t* r1_56;
int32_t* r7_57;
int32_t* r5_58;
int32_t* r6_59;
int32_t r3_60;
int32_t lr61;
int32_t* r0_62;
int32_t* r2_63;
int32_t* r1_64;
r0_6 = IsAPIReady(20, r1_1, r2_2, r3_3, v4, v5);
if (r0_6) {
r2_7 = image_base_;
r0_8 = CreateMutexW(0, 0, r2_7);
r3_9 = image_base_;
*reinterpret_cast<void***>(r3_9) = r0_8;
r0_36 = GetLastError(r0_8, 0, r2_7, r3_9, v10, v11, r4_12, r5_13, r6_14, r7_15, r8_16, r9_17, __return_address(), v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35);
r2_37 = image_base_;
z38 = reinterpret_cast<int1_t>(r0_36 == 0xb7);
if (z38) {
r9_39 = 0;
}
if (!z38) {
r9_39 = 1;
}
r0_40 = CreateFileMappingW(0xffffffff, 0, 4, 0, 0x10000, r2_37, r4_12);
r2_41 = image_base_;
*r2_41 = r0_40;
r0_42 = MapViewOfFile(r0_40, 0xf001f, 0, 0, 0, r2_37, r4_12);
r3_43 = image_base_;
*r3_43 = r0_42;
if (!r9_39) {
r1_44 = 0;
r0_45 = fun_10023660(r0_42, 0, 12);
r4_46 = image_base_;
r0_47 = 0;
*r4_46 = r0_45;
} else {
r1_44 = 0x10000;
r0_48 = fun_10023660(r0_42, 0x10000, 12);
r4_46 = image_base_;
r0_47 = 1;
*r4_46 = r0_48;
*reinterpret_cast<void***>(r0_48) = reinterpret_cast<void**>(0);
}
r0_49 = CreateLocaleView(r0_47, r1_44, 12);
r3_50 = image_base_;
r2_51 = *r4_46;
r1_52 = image_base_;
r0_53 = image_base_;
*r3_50 = r0_49;
*r0_53 = reinterpret_cast<void***>(r2_51 + 4);
*r1_52 = r2_51 + 8;
r4_54 = r0_49->f0;
r3_55 = image_base_;
r1_56 = image_base_;
r7_57 = image_base_;
*r3_55 = r4_54;
r5_58 = image_base_;
r6_59 = image_base_;
r3_60 = r0_49->f4 + r4_54;
*r1_56 = r0_49->f4;
lr61 = r0_49->f8;
r0_62 = image_base_;
*r6_59 = reinterpret_cast<int32_t>(r0_49) + (r4_54 << 3) + 20;
*r0_62 = reinterpret_cast<int32_t>(r0_49) + (r3_60 << 3) + 20;
*r7_57 = lr61;
*r5_58 = reinterpret_cast<int32_t>(r0_49 + 1);
r2_63 = image_base_;
r1_64 = image_base_;
*r2_63 = r0_49->fc + reinterpret_cast<int32_t>(r0_49);
*r1_64 = r0_49->f10 + reinterpret_cast<int32_t>(r0_49);
if (r9_39) {
ReinitLocale();
}
}
return;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(20);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x90);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(96);
uint16_t gffffcb4e;
int32_t SetACP(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9) {
void*** sp10;
void** r0_11;
void** r5_12;
void** v13;
void** v14;
void** v15;
void** v16;
void** v17;
void** r1_18;
void** v19;
void** r3_20;
void** v21;
void** v22;
void** v23;
void** v24;
void** v25;
void** r4_26;
void** r5_27;
void** r6_28;
void** r0_29;
void** v30;
void** v31;
int32_t r0_32;
int32_t v33;
void** v34;
void** v35;
void** r0_36;
void** v37;
void** v38;
void** v39;
void** v40;
void** r0_41;
void** r3_42;
void** r2_43;
sp10 = reinterpret_cast<void***>(reinterpret_cast<unsigned char>(__zero_stack_offset()) - 16 - 20 - 28);
r0_11 = fun_1002d6c0(r0, r1);
if (r0_11) {
r5_12 = image_base_;
WaitForMultipleObjects(1, r5_12, 0, 0xffffffff, v13, v14, v15, v16, v17);
r1_18 = image_base_;
v19 = reinterpret_cast<void**>(0xf003f);
r3_20 = reinterpret_cast<void**>(0);
v21 = reinterpret_cast<void**>(sp10 + 24);
v22 = reinterpret_cast<void**>(sp10 + 20);
v23 = reinterpret_cast<void**>(0);
r0_29 = RegCreateKeyExW(0x80000002, r1_18, 0, 0, 0, 0xf003f, 0, v22, v21, v24, v25, r4_26, r5_27, r6_28, __zero_stack_offset());
if (!r0_29)
goto addr_1002ead0_4;
} else {
SetLastError(87, r1, r2, r3);
goto addr_1002eb50_6;
}
addr_1002eb48_8:
ReleaseMutex(*reinterpret_cast<void***>(r5_12), r1_18, 0, r3_20, v23, v19, 0, v22, v21, v30, v31, r4_26, r5_27, r6_28, __zero_stack_offset());
addr_1002eb50_6:
r0_32 = 0;
addr_1002eb54_9:
return r0_32;
addr_1002ead0_4:
r1_18 = image_base_;
r3_20 = reinterpret_cast<void**>(4);
v19 = reinterpret_cast<void**>(4);
v23 = reinterpret_cast<void**>(sp10 + 48);
r0_36 = RegSetValueExW(v33, r1_18, 0, 4, v23, 4, 0, v22, v21, v34, v35, r4_26, r5_27, r6_28, __zero_stack_offset());
if (r0_36) {
RegCloseKey(v37, r1_18, 0, 4, v23, 4, 0, v22, v37, r1_18, 0, 4, v23, 4, 0, v22);
goto addr_1002eb48_8;
} else {
ReleaseMutex(*reinterpret_cast<void***>(r5_12), r1_18, 0, 4, v23, 4, 0, v22, v21, v38, v39, r4_26, r5_27, r6_28, __zero_stack_offset());
RegCloseKey(v40, r1_18, 0, 4, v23, 4, 0, v22, v40, r1_18, 0, 4, v23, 4, 0, v22);
r0_41 = reinterpret_cast<void**>(static_cast<uint32_t>(gffffcb4e));
r3_42 = gffffcb54;
r2_43 = gffffcb50;
UpdateNLSInfoEx(r0_41, r0, r2_43, r3_42, v23, 4, 0, v22, v21);
r0_32 = 1;
goto addr_1002eb54_9;
}
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(20);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x90);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x78);
void** gffffcb4c;
int32_t SetOEMCP(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9) {
void*** sp10;
void** r0_11;
void** r5_12;
void** v13;
void** v14;
void** v15;
void** v16;
void** v17;
void** r1_18;
void** v19;
void** r3_20;
void** v21;
void** v22;
void** v23;
void** v24;
void** v25;
void** r4_26;
void** r5_27;
void** r6_28;
void** r0_29;
void** v30;
void** v31;
int32_t r0_32;
int32_t v33;
void** v34;
void** v35;
void** r0_36;
void** v37;
void** v38;
void** v39;
void** v40;
void** lr41;
void** r3_42;
void** r2_43;
sp10 = reinterpret_cast<void***>(reinterpret_cast<unsigned char>(__zero_stack_offset()) - 16 - 20 - 28);
r0_11 = fun_1002d6c0(r0, r1);
if (r0_11) {
r5_12 = image_base_;
WaitForMultipleObjects(1, r5_12, 0, 0xffffffff, v13, v14, v15, v16, v17);
r1_18 = image_base_;
v19 = reinterpret_cast<void**>(0xf003f);
r3_20 = reinterpret_cast<void**>(0);
v21 = reinterpret_cast<void**>(sp10 + 24);
v22 = reinterpret_cast<void**>(sp10 + 20);
v23 = reinterpret_cast<void**>(0);
r0_29 = RegCreateKeyExW(0x80000002, r1_18, 0, 0, 0, 0xf003f, 0, v22, v21, v24, v25, r4_26, r5_27, r6_28, __zero_stack_offset());
if (!r0_29)
goto addr_1002ebf4_4;
} else {
SetLastError(87, r1, r2, r3);
goto addr_1002ec78_6;
}
addr_1002ec70_8:
ReleaseMutex(*reinterpret_cast<void***>(r5_12), r1_18, 0, r3_20, v23, v19, 0, v22, v21, v30, v31, r4_26, r5_27, r6_28, __zero_stack_offset());
addr_1002ec78_6:
r0_32 = 0;
addr_1002ec7c_9:
return r0_32;
addr_1002ebf4_4:
r1_18 = image_base_;
r3_20 = reinterpret_cast<void**>(4);
v19 = reinterpret_cast<void**>(4);
v23 = reinterpret_cast<void**>(sp10 + 48);
r0_36 = RegSetValueExW(v33, r1_18, 0, 4, v23, 4, 0, v22, v21, v34, v35, r4_26, r5_27, r6_28, __zero_stack_offset());
if (r0_36) {
RegCloseKey(v37, r1_18, 0, 4, v23, 4, 0, v22, v37, r1_18, 0, 4, v23, 4, 0, v22);
goto addr_1002ec70_8;
} else {
ReleaseMutex(*reinterpret_cast<void***>(r5_12), r1_18, 0, 4, v23, 4, 0, v22, v21, v38, v39, r4_26, r5_27, r6_28, __zero_stack_offset());
RegCloseKey(v40, r1_18, 0, 4, v23, 4, 0, v22, v40, r1_18, 0, 4, v23, 4, 0, v22);
lr41 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(gffffcb4c)));
r3_42 = gffffcb54;
r2_43 = gffffcb50;
UpdateNLSInfoEx(r0, lr41, r2_43, r3_42, v23, 4, 0, v22, v21);
r0_32 = 1;
goto addr_1002ec7c_9;
}
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(20);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(20);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(84);
/* (image base) */
uint32_t* image_base_ = reinterpret_cast<uint32_t*>(0x1007b200);
/* (image base) */
uint32_t** image_base_ = reinterpret_cast<uint32_t**>(0x1007b208);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(48);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x90);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x98);
/* (image base) */
uint32_t** image_base_ = reinterpret_cast<uint32_t**>(0x1007b1f0);
int32_t SetUserDefaultLCID(void** r0, void** r1, void** r2, void** r3) {
void*** sp5;
void** v6;
void** v7;
void** v8;
void** v9;
void** v10;
void** r0_11;
int1_t z12;
void** r5_13;
void** v14;
void** v15;
void** v16;
void** v17;
void** v18;
void** r1_19;
void** r3_20;
void** v21;
void** v22;
void** v23;
void** v24;
void** v25;
void** v26;
void** v27;
void** v28;
void** v29;
void** r4_30;
void** r0_31;
void** v32;
void** v33;
void** v34;
void** v35;
void** v36;
int32_t r0_37;
int32_t v38;
void** v39;
void** v40;
void** v41;
void** v42;
void** v43;
void** r0_44;
void** v45;
void** v46;
void** v47;
void** v48;
void** v49;
void** v50;
void** v51;
uint32_t* r9_52;
uint32_t** r3_53;
void** r2_54;
void** r0_55;
void** r1_56;
void** r1_57;
void** r2_58;
void** r3_59;
void** v60;
void** v61;
void** r0_62;
int32_t v63;
void** r1_64;
void** v65;
void** v66;
void** r3_67;
void** r2_68;
void** v69;
void** v70;
void** v71;
void** v72;
void** v73;
void** v74;
void** r0_75;
int32_t v76;
void** v77;
void** v78;
void** v79;
void** v80;
void** r0_81;
void** v82;
void** v83;
void** v84;
void** v85;
void** v86;
uint32_t** r3_87;
void** r0_88;
void** v89;
void** v90;
void** v91;
void** v92;
void** v93;
sp5 = reinterpret_cast<void***>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 16 - 40 - 40);
r0_11 = fun_1002d564(reinterpret_cast<unsigned char>(r0) << 16 >> 16, r1, r2, r3, v6, v7, v8, v9, v10);
if (!z12) {
r5_13 = image_base_;
WaitForMultipleObjects(1, r5_13, 0, 0xffffffff, v14, v15, v16, v17, v18);
r1_19 = image_base_;
r3_20 = reinterpret_cast<void**>(0);
v21 = reinterpret_cast<void**>(0xf003f);
v22 = reinterpret_cast<void**>(sp5 + 32);
v23 = reinterpret_cast<void**>(sp5 + 20);
v24 = reinterpret_cast<void**>(0);
r0_31 = RegCreateKeyExW(0x80000002, r1_19, 0, 0, 0, 0xf003f, 0, v23, v22, v25, v26, v27, v28, v29, r4_30);
if (!r0_31)
goto addr_1002ed24_4;
} else {
SetLastError(87, r1, r2, r3);
goto addr_1002eecc_6;
}
addr_1002eec4_8:
ReleaseMutex(*reinterpret_cast<void***>(r5_13), r1_19, 0, r3_20, v24, v21, 0, v23, v22, v32, v33, v34, v35, v36, r4_30);
addr_1002eecc_6:
r0_37 = 0;
addr_1002eed0_9:
return r0_37;
addr_1002ed24_4:
r1_19 = image_base_;
r3_20 = reinterpret_cast<void**>(4);
v21 = reinterpret_cast<void**>(4);
v24 = reinterpret_cast<void**>(sp5 + 80);
r0_44 = RegSetValueExW(v38, r1_19, 0, 4, v24, 4, 0, v23, v22, v39, v40, v41, v42, v43, r4_30);
if (r0_44) {
RegCloseKey(v45, r1_19, 0, 4, v24, 4, 0, v23, v45, r1_19, 0, 4, v24, 4, 0, v23);
goto addr_1002eec4_8;
} else {
ReleaseMutex(*reinterpret_cast<void***>(r5_13), r1_19, 0, 4, v24, 4, 0, v23, v22, v46, v47, v48, v49, v50, r4_30);
RegCloseKey(v51, r1_19, 0, 4, v24, 4, 0, v23, v51, r1_19, 0, 4, v24, 4, 0, v23);
r9_52 = image_base_;
r3_53 = image_base_;
**r3_53 = reinterpret_cast<unsigned char>(r0_11) - *r9_52;
r2_54 = gffffcb50;
r0_55 = reinterpret_cast<void**>(static_cast<uint32_t>(gffffcb4e));
r1_56 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(gffffcb4c)));
UpdateNLSInfoEx(r0_55, r1_56, r2_54, r0, v24, 4, 0, v23, v22);
r1_57 = image_base_;
r2_58 = image_base_;
r3_59 = reinterpret_cast<void**>(sp5 + 36);
v60 = reinterpret_cast<void**>(sp5 + 24);
v61 = reinterpret_cast<void**>(sp5 + 28);
r0_62 = RegQueryValueExW(0x80000002, r1_57, r2_58, r3_59, v61, v60, 0, v23, 0x80000002, r1_57, r2_58, r3_59, v61, v60, 0, v23);
if (!r0_62) {
if (v63) {
WaitForMultipleObjects(1, r5_13, 0, 0xffffffff, v61, v60, 0, v23, v22);
r1_64 = image_base_;
v65 = reinterpret_cast<void**>(sp5 + 32);
v66 = reinterpret_cast<void**>(sp5 + 20);
r3_67 = reinterpret_cast<void**>(0);
r2_68 = reinterpret_cast<void**>(0);
v69 = reinterpret_cast<void**>(0xf003f);
v70 = reinterpret_cast<void**>(0);
r0_75 = RegCreateKeyExW(0x80000002, r1_64, 0, 0, 0, 0xf003f, 0, v66, v65, v71, 4, v72, v73, v74, r4_30);
if (!r0_75) {
r1_64 = image_base_;
r3_67 = reinterpret_cast<void**>(4);
r2_68 = reinterpret_cast<void**>(0);
v69 = reinterpret_cast<void**>(4);
v70 = reinterpret_cast<void**>(sp5 + 80);
r0_81 = RegSetValueExW(v76, r1_64, 0, 4, v70, 4, 0, v66, v65, v77, 4, v78, v79, v80, r4_30);
if (!r0_81) {
ReleaseMutex(*reinterpret_cast<void***>(r5_13), r1_64, 0, 4, v70, 4, 0, v66, v65, v82, 4, v83, v84, v85, r4_30);
RegCloseKey(v86, r1_64, 0, 4, v70, 4, 0, v66, v86, r1_64, 0, 4, v70, 4, 0, v66);
r3_87 = image_base_;
**r3_87 = reinterpret_cast<unsigned char>(r0_11) - *r9_52;
r3_67 = gffffcb54;
r0_88 = reinterpret_cast<void**>(static_cast<uint32_t>(gffffcb4e));
r1_64 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(gffffcb4c)));
r2_68 = r0;
UpdateNLSInfoEx(r0_88, r1_64, r2_68, r3_67, v70, 4, 0, v66, v65);
SetACP(*reinterpret_cast<void***>(r0_11 + 0xc4), r1_64, r2_68, r3_67, v70, 4, 0, v66, v65);
SetOEMCP(*reinterpret_cast<void***>(r0_11 + 0xc0), r1_64, r2_68, r3_67, v70, 4, 0, v66, v65);
}
RegCloseKey(v89, r1_64, r2_68, r3_67, v70, 4, 0, v66, v89, r1_64, r2_68, r3_67, v70, 4, 0, v66);
}
ReleaseMutex(*reinterpret_cast<void***>(r5_13), r1_64, r2_68, r3_67, v70, v69, 0, v66, v65, v90, 4, v91, v92, v93, r4_30);
}
}
r0_37 = 1;
goto addr_1002eed0_9;
}
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(20);
void** fun_1002ef00(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6) {
int1_t n7;
int1_t z8;
void** v9;
void** v10;
void** v11;
void** v12;
void** v13;
void** v14;
void** v15;
void** v16;
void** v17;
void** v18;
void** v19;
void** v20;
void** v21;
void** v22;
void** v23;
void** v24;
void** v25;
void** v26;
void** v27;
void** v28;
void** v29;
void** v30;
void** v31;
void** v32;
void** v33;
void** v34;
void** v35;
void** v36;
void** v37;
void** r0_38;
void** v39;
void** v40;
void** v41;
void** v42;
void** v43;
void** r0_44;
void** r10_45;
int1_t z46;
void** r1_47;
void** v48;
void** v49;
void** v50;
void** v51;
void** v52;
void** r3_53;
void** r4_54;
void** r2_55;
void** v56;
void** v57;
void** v58;
void** v59;
void** v60;
void** v61;
void** v62;
void** v63;
void** v64;
void** v65;
void** v66;
void** v67;
void** v68;
void** v69;
void** v70;
void** r0_71;
if (!n7) {
if (r2) {
goto addr_1002ef28_5;
}
if (!r3) {
addr_1002ef28_5:
z8 = (reinterpret_cast<unsigned char>(r1) & 0x40000000) == 0;
if (z8) {
r0_38 = fun_1002d1e8(r0, r1, r2, r3, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37);
r0_44 = fun_1002d564(r0_38, r1, r2, r3, v39, v40, v41, v42, v43);
if (!z8) {
r10_45 = image_base_;
z46 = (reinterpret_cast<unsigned char>(r1) & 0x80000000) == 0;
if (z46) {
}
r1_47 = r10_45;
if (!z46) {
}
__asm__("bic r8, r8, #0x80000000");
WaitForMultipleObjects(1, r1_47, 0, 0xffffffff, v48, v49, v50, v51, v52);
r3_53 = reinterpret_cast<void**>(0x1001);
if (reinterpret_cast<unsigned char>(r1) > reinterpret_cast<unsigned char>(0x1001))
goto label_16; else
goto addr_1002ef7c_17;
}
}
}
}
SetLastError(87, r1, r2, r3);
r4_54 = reinterpret_cast<void**>(0);
addr_1002fdbc_19:
return r4_54;
label_16:
r3_53 = reinterpret_cast<void**>(0x1002);
r2_55 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r1) - reinterpret_cast<unsigned char>(0x1002));
if (reinterpret_cast<unsigned char>(r2_55) <= reinterpret_cast<unsigned char>(18))
goto addr_1002fba4_21;
addr_1002fd98_23:
SetLastError(87, r1_47, r2_55, r3_53);
r4_54 = reinterpret_cast<void**>(0);
addr_1002fda4_24:
ReleaseMutex(*reinterpret_cast<void***>(r10_45), r1_47, r2_55, r3_53, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66);
goto addr_1002fdbc_19;
addr_1002fba4_21:
goto reinterpret_cast<int32_t>(",") + *reinterpret_cast<uint16_t*>((reinterpret_cast<unsigned char>(r2_55) << 1) + 0x1002fbb0 + 4);
addr_1002ef7c_17:
if (r1 == 0x1001) {
r2_55 = r3;
r1_47 = r2;
r3_53 = reinterpret_cast<void**>(reinterpret_cast<uint16_t>(*reinterpret_cast<unsigned char*>(r0_44 + 22)) + reinterpret_cast<unsigned char>(r0_44));
r0_71 = fun_1002db58(r3_53 + 0xc8, r1_47, r2_55, r3_53, v67, v68, v69, v70);
r4_54 = r0_71;
goto addr_1002fda4_24;
} else {
r2_55 = r1 - 1;
if (reinterpret_cast<unsigned char>(r2_55) > reinterpret_cast<unsigned char>(86)) {
goto addr_1002fd98_23;
} else {
goto 0x1002efa0 + *reinterpret_cast<uint16_t*>((reinterpret_cast<unsigned char>(r2_55) << 1) + 0x1002ef98 + 4);
}
}
}
void** GetLocaleInfoW(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6) {
void** r0_7;
r0_7 = fun_1002ef00(r0, r1, r2, r3, 0, __return_address());
return r0_7;
}
void** _wtol(void** r0, void** r1, void** r2, void** r3, void** a5);
void** fun_10030530(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23, void** a24, void** a25, void** a26, void** a27, void** a28) {
void* sp29;
void** r4_30;
void** v31;
void** v32;
void** v33;
void** v34;
void** r4_35;
void** r0_36;
uint32_t r0_37;
uint32_t r3_38;
void** r3_39;
uint32_t r3_40;
void** r2_41;
void** r1_42;
void** v43;
void** r0_44;
void** v45;
sp29 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 8 - 16);
r4_30 = r0;
r0_36 = GetOwnerProcess(r0, r1, r2, r3, v31, v32, v33, v34, r4_35, __return_address(), a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28);
r0_37 = GetProcessVersion(r0_36);
if (r4_30) {
if (reinterpret_cast<int1_t>(r4_30 == 1))
goto addr_100305ac_4;
} else {
r3_38 = r0_37 >> 16;
if (r3_38 >= 4) {
goto addr_10030580_7;
} else {
if (r3_38 != 4) {
goto addr_1003056c_10;
}
if (r0_37 << 16 >> 16 >= 20) {
goto addr_10030580_7;
} else {
addr_1003056c_10:
r3_39 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(gffffcb4c)));
r4_30 = r3_39;
goto addr_10030604_13;
}
}
}
addr_10030604_13:
return r4_30;
addr_100305ac_4:
r3_40 = r0_37 >> 16;
if (r3_40 < 4) {
if (r3_40 != 4) {
goto addr_100305cc_18;
}
if (r0_37 << 16 >> 16 < 20) {
addr_100305cc_18:
r4_30 = reinterpret_cast<void**>(static_cast<uint32_t>(gffffcb4e));
goto addr_10030604_13;
}
}
r2_41 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(sp29) + 4);
r1_42 = reinterpret_cast<void**>(11);
fun_1002ef00(0x400, 11, r2_41, 5, 0, v43);
addr_100305f8_22:
r0_44 = _wtol(reinterpret_cast<int32_t>(sp29) + 4, r1_42, r2_41, 5, 0);
r4_30 = r0_44;
goto addr_10030604_13;
addr_10030580_7:
r1_42 = reinterpret_cast<void**>(0x1004);
r2_41 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(sp29) + 4);
fun_1002ef00(0x400, 0x1004, r2_41, 5, 0, v45);
goto addr_100305f8_22;
}
/* (image base) */
void*** image_base_ = reinterpret_cast<void***>(0x1007a7b4);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xf4);
int32_t fun_10030f90() {
void*** r4_1;
void** r0_2;
void** r4_3;
void** r5_4;
void** v5;
void** r0_6;
int32_t r0_7;
r4_1 = image_base_;
if (reinterpret_cast<int1_t>(*r4_1 == -1)) {
r0_2 = image_base_;
r0_6 = CreateFileW(r0_2, 0, 0, 0, 2, 0, 0, r4_3, r5_4, __return_address(), v5);
*r4_1 = r0_6;
if (reinterpret_cast<int1_t>(r0_6 == -1)) {
SetLastError(0x426, 0, 0, 0, 0x426, 0, 0, 0);
r0_7 = 0;
goto addr_10030ff4_6;
}
}
r0_7 = 1;
addr_10030ff4_6:
return r0_7;
}
struct s90 {
void** f0;
signed char[3] pad4;
int32_t f4;
};
/* (image base) */
struct s90* image_base_ = reinterpret_cast<struct s90*>(0x1007a7b8);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0);
void** InterlockedCompareExchange(int32_t* r0, void** r1, int32_t r2);
void** fun_100311c4() {
struct s90* r4_1;
void** r0_2;
void** r4_3;
void** r5_4;
void** v5;
void** r0_6;
void** r3_7;
void** r0_8;
int1_t z9;
int1_t z10;
r4_1 = image_base_;
if (r4_1->f4 == -1) {
r0_2 = image_base_;
r0_6 = CreateFileW(r0_2, 0xc0000000, 3, 0, 3, 0, 0, r4_3, r5_4, __return_address(), v5);
r3_7 = r0_6;
r4_1->f0 = r3_7;
r0_8 = InterlockedCompareExchange(&r4_1->f4, r3_7, -1);
z9 = reinterpret_cast<int1_t>(r0_8 == -1);
if (!z9) {
r3_7 = reinterpret_cast<void**>(0xf0000000);
}
if (!z9) {
r0_8 = r4_1->f0;
}
if (!z9) {
r3_7 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r3_7) | 0x10000);
}
if (!z9) {
}
if (!z9) {
goto r3_7;
}
z10 = r4_1->f4 == -1;
if (z10) {
r0_8 = reinterpret_cast<void**>(0);
}
if (z10)
goto label_16;
}
r0_8 = reinterpret_cast<void**>(1);
addr_10031248_18:
return r0_8;
label_16:
goto addr_10031248_18;
}
void** fun_100316f0(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12) {
void** r1_13;
void** r0_14;
void* lr15;
int1_t z16;
int1_t z17;
r1_13 = r0;
r0_14 = reinterpret_cast<void**>(0);
lr15 = reinterpret_cast<void*>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r1_13))));
if (!z16) {
while (r1_13 = r1_13 + 2, r0_14 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(lr15) + (reinterpret_cast<unsigned char>(r0_14) + (reinterpret_cast<unsigned char>(r0_14) << 2) << 1) - 48), lr15 = reinterpret_cast<void*>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r1_13 + 2)))), !z17) {
}
}
return r0_14;
}
void** g10031fdc = reinterpret_cast<void**>(17);
int32_t InterlockedIncrement(void** r0, void** r1, void** r2);
void** fun_10031f6c(void** r0, void** r1) {
void** r3_3;
r3_3 = g10031fdc;
if (*reinterpret_cast<void***>(r0 + 0x74) == r3_3) {
InterlockedIncrement(r0 + 0x78, r1, *reinterpret_cast<void***>(r0 + 0x74));
__asm__("ldmdb fp, {fp, sp, lr}");
return 1;
} else {
SetLastError(87, r1, *reinterpret_cast<void***>(r0 + 0x74), r3_3, 87, r1, *reinterpret_cast<void***>(r0 + 0x74), r3_3);
__asm__("ldmdb fp, {fp, sp, lr}");
return 0;
}
}
void** g10032058 = reinterpret_cast<void**>(34);
void** fun_10031fe8(void** r0, void** r1) {
void** r3_3;
r3_3 = g10032058;
if (*reinterpret_cast<void***>(r0 + 48) == r3_3) {
InterlockedIncrement(r0 + 52, r1, *reinterpret_cast<void***>(r0 + 48));
__asm__("ldmdb fp, {fp, sp, lr}");
return 1;
} else {
SetLastError(87, r1, *reinterpret_cast<void***>(r0 + 48), r3_3, 87, r1, *reinterpret_cast<void***>(r0 + 48), r3_3);
__asm__("ldmdb fp, {fp, sp, lr}");
return 0;
}
}
void** g100320d4 = reinterpret_cast<void**>(51);
void** fun_10032064(void** r0, void** r1) {
void** r3_3;
r3_3 = g100320d4;
if (*reinterpret_cast<void***>(r0 + 44) == r3_3) {
InterlockedIncrement(r0 + 48, r1, *reinterpret_cast<void***>(r0 + 44));
__asm__("ldmdb fp, {fp, sp, lr}");
return 1;
} else {
SetLastError(87, r1, *reinterpret_cast<void***>(r0 + 44), r3_3, 87, r1, *reinterpret_cast<void***>(r0 + 44), r3_3);
__asm__("ldmdb fp, {fp, sp, lr}");
return 0;
}
}
void** fun_100320d8(void*** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23, void** a24, void** a25, void** a26, void** a27, void** a28, void** a29, void** a30, void** a31, void** a32) {
void** r4_33;
void** r5_34;
void** r0_35;
int1_t z36;
r0_35 = LocalAlloc(64, 56, r2, r3, r4_33, r5_34, __return_address(), a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29);
if (!z36) {
*reinterpret_cast<void***>(r0_35) = *reinterpret_cast<void***>(r1 + 8);
*reinterpret_cast<void***>(r0_35 + 4) = *reinterpret_cast<void***>(r1 + 12);
*reinterpret_cast<void***>(r0_35 + 8) = *reinterpret_cast<void***>(r1 + 16);
*reinterpret_cast<void***>(r0_35 + 12) = *reinterpret_cast<void***>(r1 + 20);
*reinterpret_cast<void***>(r0_35 + 16) = *reinterpret_cast<void***>(r1 + 24);
*reinterpret_cast<void***>(r0_35 + 20) = *reinterpret_cast<void***>(r1 + 28);
*reinterpret_cast<void***>(r0_35 + 24) = *reinterpret_cast<void***>(r1 + 32);
*reinterpret_cast<void***>(r0_35 + 28) = *reinterpret_cast<void***>(r1 + 36);
*reinterpret_cast<void***>(r0_35 + 32) = *reinterpret_cast<void***>(r1 + 40);
*reinterpret_cast<void***>(r0_35 + 36) = *reinterpret_cast<void***>(r1 + 96);
*reinterpret_cast<void***>(r0_35 + 40) = *reinterpret_cast<void***>(r1 + 0x70);
*r0 = r0_35;
return 1;
} else {
SetLastError(8, 56, r0_35, r3);
return 0;
}
}
void MD5Init(void** r0, void** r1, void** r2);
void** MD5Update(void** r0, void** r1, void** r2);
void MD5Final(void** r0, void** r1, void** r2);
void** fun_10032294(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7) {
void* r11_8;
void** v9;
void** v10;
void** v11;
void** v12;
void** v13;
void** v14;
void** v15;
void** v16;
void** v17;
void** r0_18;
r11_8 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 4 - 24 + 24);
MD5Init(reinterpret_cast<int32_t>(r11_8) - 0x80, r1, r2);
MD5Update(reinterpret_cast<int32_t>(r11_8) - 0x80, r0, r1);
MD5Final(reinterpret_cast<int32_t>(r11_8) - 0x80, r0, r1);
r0_18 = memcpy(r2, reinterpret_cast<int32_t>(r11_8) - 40, 16, r3, v9, v10, v11, v12, v13, v14, v15, v16, v17);
__asm__("ldmdb fp, {r4, r5, r6, fp, sp, lr}");
return r0_18;
}
void** fun_10060444(void** r0, void** r1, void** r2);
void** memcmp(void** r0, void** r1, void** r2, void** r3, void** a5, ...);
void** g10032560 = reinterpret_cast<void**>(82);
void** fun_10032310(void** r0, void* r1, void** r2, void** r3, void** a5, void** a6) {
void* sp7;
void** r4_8;
void** v9;
void** v10;
void** v11;
void** v12;
void** v13;
void** v14;
void** v15;
void** v16;
void** v17;
void** v18;
void** v19;
void** v20;
void** v21;
void** v22;
void** v23;
void** v24;
void** v25;
void** v26;
void** v27;
void** v28;
void** v29;
void** v30;
void** v31;
void** v32;
void** v33;
void** v34;
void** v35;
void** v36;
void** r0_37;
void* r2_38;
unsigned char v39;
void** r3_40;
void** r9_41;
void** r7_42;
void** r10_43;
void** v44;
void** v45;
void** v46;
void** v47;
void** v48;
void** v49;
void** v50;
void** v51;
void** v52;
void** v53;
void** v54;
void** v55;
void** v56;
void** v57;
void** v58;
void** v59;
void** v60;
void** v61;
void** v62;
void** v63;
void** v64;
void** v65;
void** v66;
void** v67;
void** v68;
void** v69;
void** v70;
void** v71;
void** v72;
void** v73;
void** v74;
void** r0_75;
void* r2_76;
void** r3_77;
unsigned char v78;
void** v79;
void** v80;
void** v81;
void** v82;
void** v83;
void** v84;
void** v85;
void** v86;
void** v87;
void** v88;
void** v89;
void** v90;
void** v91;
void** v92;
void** v93;
void** v94;
void** v95;
void** v96;
void** v97;
void** v98;
void** v99;
void** v100;
void** v101;
void** v102;
void** v103;
void** v104;
void** v105;
void** v106;
void** v107;
void** v108;
void** v109;
void** v110;
void** v111;
void** v112;
void** v113;
void** v114;
void** v115;
void** v116;
void** v117;
void** v118;
void** v119;
void** v120;
void** v121;
void** v122;
void** v123;
void** v124;
void** r0_125;
void* r2_126;
void* v127;
unsigned char v128;
sp7 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 32 - 0x1bc);
r4_8 = reinterpret_cast<void**>(0);
memset(reinterpret_cast<int32_t>(sp7) + 16, 0, 0x88, r3, v9, v10, v11, v12, v13, v14, v15, v16, v17);
memset(reinterpret_cast<int32_t>(sp7) + 0x98, 0, 0x88, r3, v18, v19, v20, v21, v22, v23, v24, v25, v26);
if (a6) {
goto addr_10032364_3;
}
if (r3 == *reinterpret_cast<void***>(r0 + 4)) {
addr_10032364_3:
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r0 + 4)) > reinterpret_cast<unsigned char>(0x88)) {
goto addr_10032550_7;
} else {
memcpy(reinterpret_cast<int32_t>(sp7) + 0x98, r2, *reinterpret_cast<void***>(r0 + 4), r3, v27, v28, v29, v30, v31, v32, v33, v34, v35);
fun_10060444(r0, reinterpret_cast<int32_t>(sp7) + 0x98, reinterpret_cast<int32_t>(sp7) + 16);
r0_37 = memcmp(a5, reinterpret_cast<int32_t>(sp7) + 16, 16, r3, v36);
if (!r0_37) {
r2_38 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(r1) + (reinterpret_cast<int32_t>(sp7) + 16));
if (!*reinterpret_cast<unsigned char*>(reinterpret_cast<int32_t>(r2_38) - 1)) {
if (static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(reinterpret_cast<int32_t>(r2_38) - 2)) == 1) {
if (!v39) {
goto addr_1003254c_16;
}
}
}
}
}
}
if (reinterpret_cast<int1_t>(*reinterpret_cast<void***>(r2) == 2)) {
r3_40 = g10032560;
if (*reinterpret_cast<void***>(r2 + 8) == r3_40) {
r9_41 = r2 + 8;
r7_42 = *reinterpret_cast<void***>(r2 + 12) + 20;
r10_43 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r9_41) + reinterpret_cast<unsigned char>(r7_42));
fun_10032294(r9_41, r7_42, static_cast<uint32_t>(sp7), *reinterpret_cast<void***>(r2 + 12), v44, v45, v46);
memset(reinterpret_cast<int32_t>(sp7) + 16, 0, 0x88, *reinterpret_cast<void***>(r2 + 12), v47, v48, v49, v50, v51, v52, v53, v54, v55);
memset(reinterpret_cast<int32_t>(sp7) + 0x98, 0, 0x88, *reinterpret_cast<void***>(r2 + 12), v56, v57, v58, v59, v60, v61, v62, v63, v64);
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r2 + 4)) <= reinterpret_cast<unsigned char>(0x88)) {
memcpy(reinterpret_cast<int32_t>(sp7) + 0x98, r10_43, *reinterpret_cast<void***>(r2 + 4), *reinterpret_cast<void***>(r2 + 12), v65, v66, v67, v68, v69, v70, v71, v72, v73);
fun_10060444(r0, reinterpret_cast<int32_t>(sp7) + 0x98, reinterpret_cast<int32_t>(sp7) + 16);
r0_75 = memcmp(static_cast<uint32_t>(sp7), reinterpret_cast<int32_t>(sp7) + 16, 16, *reinterpret_cast<void***>(r2 + 12), v74);
if (!r0_75) {
r2_76 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(r1) + (reinterpret_cast<int32_t>(sp7) + 16));
if (!*reinterpret_cast<unsigned char*>(reinterpret_cast<int32_t>(r2_76) - 1)) {
if (static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(reinterpret_cast<int32_t>(r2_76) - 2)) == 1) {
r3_77 = reinterpret_cast<void**>(static_cast<uint32_t>(v78));
if (!r3_77) {
memset(reinterpret_cast<int32_t>(sp7) + 16, 0, 0x88, r3_77, v79, v80, v81, v82, v83, v84, v85, v86, v87);
memset(reinterpret_cast<int32_t>(sp7) + 0x98, 0, 0x88, r3_77, v88, v89, v90, v91, v92, v93, v94, v95, v96);
memset(reinterpret_cast<int32_t>(sp7) + 0x120, 0, 0x9c, r3_77, v97, v98, v99, v100, v101, v102, v103, v104, v105);
memcpy(reinterpret_cast<int32_t>(sp7) + 0x98, reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r2 + 4)) + reinterpret_cast<unsigned char>(r10_43), *reinterpret_cast<void***>(r2 + 4), *reinterpret_cast<void***>(r2 + 4), v106, v107, v108, v109, v110, v111, v112, v113, v114);
if (reinterpret_cast<unsigned char>(r7_42) <= reinterpret_cast<unsigned char>(0x9c)) {
memcpy(reinterpret_cast<int32_t>(sp7) + 0x120, r9_41, r7_42, *reinterpret_cast<void***>(r2 + 4), v115, v116, v117, v118, v119, v120, v121, v122, v123);
fun_10060444(reinterpret_cast<int32_t>(sp7) + 0x120, reinterpret_cast<int32_t>(sp7) + 0x98, reinterpret_cast<int32_t>(sp7) + 16);
r0_125 = memcmp(a5, reinterpret_cast<int32_t>(sp7) + 16, 16, *reinterpret_cast<void***>(r2 + 4), v124);
if (!r0_125) {
r2_126 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(v127) + (reinterpret_cast<int32_t>(sp7) + 16));
if (!*reinterpret_cast<unsigned char*>(reinterpret_cast<int32_t>(r2_126) - 1)) {
if (static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(reinterpret_cast<int32_t>(r2_126) - 2)) == 1) {
if (!v128) {
addr_1003254c_16:
r4_8 = reinterpret_cast<void**>(1);
}
}
}
}
}
}
}
}
}
}
}
}
addr_10032550_7:
return r4_8;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xe8);
void fun_10032204(unsigned char* r0, int32_t r1, uint32_t r2);
void** fun_10032564(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7) {
void*** sp8;
void** r4_9;
void** v10;
void** v11;
void** v12;
void** v13;
void** v14;
void** v15;
void** v16;
void** v17;
void** v18;
void** v19;
void** v20;
void** v21;
void** v22;
void** v23;
void** v24;
void** v25;
void** v26;
void** v27;
void** r3_28;
void** r2_29;
void** v30;
void** v31;
void** r0_32;
int1_t z33;
sp8 = reinterpret_cast<void***>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 24 - 0x144);
r4_9 = image_base_;
memcpy(sp8 + 8, r4_9 + 0xa0, 0x9c, r3, v10, v11, v12, v13, v14, v15, v16, v17, v18);
fun_10032204(sp8 + 8, 0x9c, 0);
memcpy(sp8 + 0xa8, r4_9, 0x9c, r3, v19, v20, v21, v22, v23, v24, v25, v26, v27);
fun_10032204(sp8 + 0xa8, 0x9c, 2);
r3_28 = r1;
r2_29 = r0;
v30 = r3;
v31 = r2;
r0_32 = fun_10032310(sp8 + 8, 0x80, r2_29, r3_28, v31, v30);
z33 = reinterpret_cast<int1_t>(r0_32 == 1);
if (!z33) {
r3_28 = r1;
}
if (!z33) {
r2_29 = r0;
}
if (!z33) {
}
if (!z33) {
r0_32 = reinterpret_cast<void**>(sp8 + 0xa8);
}
if (!z33) {
v30 = r3;
}
if (!z33) {
v31 = r2;
}
if (!z33) {
r0_32 = fun_10032310(r0_32, 0x80, r2_29, r3_28, v31, v30);
}
return r0_32;
}
void** g10032740 = reinterpret_cast<void**>(30);
void** g1003273c = reinterpret_cast<void**>(28);
void** g10032738 = reinterpret_cast<void**>(6);
int32_t fun_1003260c(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7) {
void*** sp8;
void** v9;
void** v10;
void** v11;
void** v12;
void** v13;
void** r0_14;
void** r0_15;
void** r1_16;
void** r0_17;
int1_t z18;
void** r3_19;
void** r2_20;
void** r1_21;
void** r0_22;
void** r4_23;
int1_t z24;
void** r0_25;
int1_t z26;
void** r0_27;
sp8 = reinterpret_cast<void***>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 36 - 36);
v9 = reinterpret_cast<void**>(3);
r0_14 = CreateFileW(r0, 0x80000000, 1, 0, 3, 0, 0, v10, v11, v12, v13);
if (reinterpret_cast<int1_t>(r0_14 == -1)) {
r0_15 = g10032740;
SetLastError(r0_15, 0x80000000, 1, 0, r0_15, 0x80000000, 1, 0);
return 0;
}
r1_16 = reinterpret_cast<void**>(sp8 + 12);
r0_17 = GetFileSize(r0_14, r1_16, 1, 0, 3, 0, 0);
z18 = reinterpret_cast<int1_t>(r0_17 == -1);
if (z18)
goto addr_10032678_6;
r3_19 = reinterpret_cast<void**>(4);
r2_20 = reinterpret_cast<void**>(0x3000);
r1_21 = r0_17;
r0_22 = VirtualAlloc(0, r1_21, 0x3000, 4, 3, 0, 0);
r4_23 = r0_22;
if (!z18)
goto addr_100326a0_9;
r0_22 = reinterpret_cast<void**>(8);
addr_100326a0_9:
if (!z18) {
r3_19 = reinterpret_cast<void**>(sp8 + 16);
r2_20 = r0_17;
r1_21 = r4_23;
v9 = reinterpret_cast<void**>(0);
r0_22 = ReadFile(r0_14, r1_21, r2_20, r3_19, 0, 0, 0);
z24 = r0_22 == 0;
if (z24) {
r0_22 = g1003273c;
}
if (z24)
goto label_15; else
goto addr_100326c8_16;
}
addr_100326fc_17:
r0_25 = SetLastError(r0_22, r1_21, r2_20, r3_19, r0_22, r1_21, r2_20, r3_19);
addr_10032700_18:
z26 = r4_23 == 0;
if (!z26) {
r2_20 = reinterpret_cast<void**>(0x8000);
}
if (!z26) {
r1_21 = reinterpret_cast<void**>(0);
}
if (!z26) {
r0_25 = r4_23;
}
if (!z26) {
VirtualFree(r0_25, r1_21, r2_20, r3_19, v9, 0, 0);
}
addr_10032714_26:
label_15:
goto addr_100326fc_17;
addr_100326c8_16:
fun_10032294(r4_23, r0_17, sp8 + 20, r3_19, 0, 0, 0);
r3_19 = r3;
r2_20 = reinterpret_cast<void**>(sp8 + 20);
r1_21 = r2;
r0_25 = fun_10032564(r1, r1_21, r2_20, r3_19, 0, 0, 0);
if (r0_25 == 1) {
goto addr_10032700_18;
} else {
r0_22 = g10032738;
goto addr_100326fc_17;
}
addr_10032678_6:
r0_27 = g1003273c;
SetLastError(r0_27, r1_16, 1, 0, r0_27, r1_16, 1, 0);
goto addr_10032714_26;
}
struct s91 {
signed char[6] pad6;
uint16_t f6;
signed char[84] pad92;
void** f5c;
signed char[43] pad136;
void* f88;
};
struct s92 {
signed char[8] pad8;
void* f8;
void* fc;
signed char[4] pad20;
void* f14;
};
struct s93 {
signed char[14] pad14;
uint16_t fe;
uint16_t f10;
};
struct s94 {
uint16_t f0;
signed char[2] pad4;
void* f4;
};
struct s95 {
void** f0;
signed char[11] pad12;
uint16_t fc;
uint16_t fe;
};
struct s96 {
signed char[12] pad12;
uint16_t fc;
};
struct s97 {
signed char[4] pad4;
void** f4;
};
struct s98 {
void** f0;
signed char[7] pad8;
void** f8;
};
void** malloc(void** r0, void** r1, void** r2);
void** free(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23, void** a24, void** a25, void** a26, void** a27, void** a28, void** a29, void** a30, void** a31);
void** fun_10032744(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7) {
void** v8;
void** r4_9;
void* sp10;
void** r5_11;
struct s91* r6_12;
void** r10_13;
void* r11_14;
void* r0_15;
int1_t z16;
struct s92* r1_17;
uint32_t r2_18;
uint32_t r4_19;
int1_t z20;
uint32_t r1_21;
void* r4_22;
struct s93* r3_23;
uint32_t r2_24;
struct s94* lr25;
uint32_t lr26;
struct s95* r1_27;
uint32_t r2_28;
void** r1_29;
struct s96* r2_30;
struct s97* r8_31;
struct s97* r8_32;
void** r2_33;
struct s98* r9_34;
void** r4_35;
int1_t z36;
void** r0_37;
void** r3_38;
void** v39;
void** v40;
void** v41;
void** v42;
void** v43;
void** v44;
void** v45;
void** v46;
void** v47;
void** r2_48;
void** r1_49;
void** v50;
void** v51;
void** v52;
void** r0_53;
void** v54;
void** v55;
void** v56;
void** v57;
void** v58;
void** v59;
void** v60;
void** v61;
void** v62;
void** v63;
void** v64;
void** v65;
void** v66;
void** v67;
void** v68;
void** v69;
void** v70;
void** v71;
void** v72;
void** v73;
void** v74;
void** v75;
void** v76;
void** v77;
void** v78;
void** v79;
v8 = r4_9;
sp10 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 36 - 0x68);
r5_11 = r0;
r6_12 = reinterpret_cast<struct s91*>((static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r5_11 + 60))) | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r5_11 + 61)) << 8 | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r5_11 + 62)) << 16 | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r5_11 + 63)) << 24) + reinterpret_cast<unsigned char>(r5_11));
r10_13 = reinterpret_cast<void**>(0);
r11_14 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(r5_11) + reinterpret_cast<unsigned char>(r1));
r0_15 = r6_12->f88;
if (!z16) {
r1_17 = reinterpret_cast<struct s92*>(reinterpret_cast<uint32_t>(r6_12) + 0xf8);
r2_18 = 0;
r4_19 = r6_12->f6;
if (z20) {
goto addr_100327c4_5;
} else {
while (1) {
if (reinterpret_cast<uint32_t>(r0_15) < reinterpret_cast<uint32_t>(r1_17->fc)) {
if (reinterpret_cast<uint32_t>(r0_15) >= reinterpret_cast<int32_t>(r1_17->f8) + reinterpret_cast<uint32_t>(r1_17->fc))
goto label_9;
}
++r2_18;
r1_17 = reinterpret_cast<struct s92*>(reinterpret_cast<uint32_t>(r1_17) + 40);
if (r2_18 < r4_19)
goto addr_100327c4_5;
}
}
}
addr_1003297c_12:
return r10_13;
addr_100327c4_5:
if (r2_18 < r4_19) {
goto addr_1003297c_12;
} else {
r1_21 = 0;
r4_22 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(r1_17->f14) - reinterpret_cast<uint32_t>(r1_17->fc));
r3_23 = reinterpret_cast<struct s93*>(reinterpret_cast<uint32_t>(r4_22) + reinterpret_cast<uint32_t>(r0_15) + reinterpret_cast<unsigned char>(r5_11));
r2_24 = r3_23->fe;
lr25 = reinterpret_cast<struct s94*>(&r3_23->f10);
if (r2_24) {
while (static_cast<uint32_t>(lr25->f0) != 10) {
++r1_21;
++lr25;
if (r1_21 < r2_24)
goto addr_10032810_18;
}
goto label_20;
}
}
addr_10032810_18:
if (r1_21 < r2_24) {
goto addr_1003297c_12;
} else {
lr26 = 0;
__asm__("bic r3, r3, #0x80000000");
r1_27 = reinterpret_cast<struct s95*>(reinterpret_cast<int32_t>(lr25->f4) + reinterpret_cast<uint32_t>(r4_22) + reinterpret_cast<uint32_t>(r0_15) + reinterpret_cast<unsigned char>(r5_11));
r2_28 = r1_27->fe;
r1_29 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(r1_27) + (r1_27->fc + 2 << 3));
if (r2_28) {
while (static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r1_29))) != 0x29a) {
++lr26;
r1_29 = r1_29 + 8;
if (lr26 < r2_28)
goto addr_1003286c_27;
}
goto label_29;
}
}
addr_1003286c_27:
if (lr26 < r2_28) {
goto addr_1003297c_12;
} else {
__asm__("bic r3, r3, #0x80000000");
r2_30 = reinterpret_cast<struct s96*>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1_29 + 4)) + reinterpret_cast<uint32_t>(r4_22) + reinterpret_cast<uint32_t>(r0_15) + reinterpret_cast<unsigned char>(r5_11));
r8_31 = reinterpret_cast<struct s97*>(reinterpret_cast<int32_t>(*reinterpret_cast<void**>(reinterpret_cast<uint32_t>(r2_30) + (static_cast<uint32_t>(r2_30->fc) << 3) + 20)) + reinterpret_cast<uint32_t>(r4_22) + reinterpret_cast<uint32_t>(r0_15));
r8_32 = reinterpret_cast<struct s97*>(&r8_31->pad4);
r2_33 = r8_32->f4;
r9_34 = reinterpret_cast<struct s98*>(reinterpret_cast<int32_t>(*reinterpret_cast<void**>(reinterpret_cast<uint32_t>(r8_31) + reinterpret_cast<unsigned char>(r5_11))) + reinterpret_cast<uint32_t>(r4_22) + reinterpret_cast<unsigned char>(r5_11));
r4_35 = r2_33 - 8;
z36 = reinterpret_cast<int1_t>(r4_35 == 4);
if (reinterpret_cast<unsigned char>(r4_35) <= reinterpret_cast<unsigned char>(4)) {
r4_35 = reinterpret_cast<void**>(4);
}
r0_37 = malloc(r4_35, r1_29, r2_33);
if (z36) {
goto addr_1003297c_12;
} else {
r3_38 = r9_34->f0;
if (reinterpret_cast<int1_t>(r3_38 == 0x100)) {
memset(r0_37, 0, r4_35, r3_38, v39, v40, v41, v42, v43, v44, v45, v46, v47);
MD5Init(static_cast<uint32_t>(sp10), 0, r4_35);
MD5Update(static_cast<uint32_t>(sp10), r5_11, reinterpret_cast<uint32_t>(r6_12) - reinterpret_cast<unsigned char>(r5_11) + 88);
MD5Update(static_cast<uint32_t>(sp10), r0_37, 4);
MD5Update(static_cast<uint32_t>(sp10), &r6_12->f5c, reinterpret_cast<uint32_t>(r9_34) - reinterpret_cast<uint32_t>(r6_12) - 84);
MD5Update(static_cast<uint32_t>(sp10), r0_37, r8_32->f4 - 8);
r2_48 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(r11_14) - reinterpret_cast<unsigned char>(r8_32->f4) - reinterpret_cast<uint32_t>(r9_34));
r1_49 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r8_32->f4) + reinterpret_cast<uint32_t>(r9_34));
MD5Update(static_cast<uint32_t>(sp10), r1_49, r2_48);
MD5Final(static_cast<uint32_t>(sp10), r1_49, r2_48);
r3_38 = reinterpret_cast<void**>(0);
r2_33 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(sp10) + 88);
r1_29 = r8_32->f4 - 8;
r0_53 = fun_10032564(&r9_34->f8, r1_29, r2_33, 0, v50, v51, v52);
r10_13 = r0_53;
}
free(r0_37, r1_29, r2_33, r3_38, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v8);
goto addr_1003297c_12;
}
}
label_29:
goto addr_1003286c_27;
label_20:
goto addr_10032810_18;
label_9:
goto addr_100327c4_5;
}
void fun_10032b58(void** r0, uint16_t* r1, void** r2) {
uint16_t* r4_4;
int32_t r5_5;
void** r2_6;
void* r3_7;
uint16_t* r1_8;
uint32_t r2_9;
r4_4 = r1;
r5_5 = 8;
while (--r5_5, r2_6 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(r3_7) >> 3), r3_7 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(r0) - (reinterpret_cast<unsigned char>(r2_6) + (reinterpret_cast<unsigned char>(r2_6) << 2) << 1) + 48), r0 = r2_6, *r1 = static_cast<uint16_t>(reinterpret_cast<uint32_t>(r3_7)), --r1, !!r5_5) {
}
*r1 = 0;
r1_8 = r1 - 1;
while (r2_9 = *r1_8, *r1_8 = static_cast<uint16_t>(static_cast<uint32_t>(*r4_4)), --r1_8, *r4_4 = static_cast<uint16_t>(r2_9), --r4_4, reinterpret_cast<uint32_t>(r4_4) >= reinterpret_cast<uint32_t>(r1_8)) {
}
return;
}
int32_t fun_10034c20(void** r0, void** r1, void** r2, int32_t r3, int32_t a5, int32_t a6) {
int32_t r9_7;
void** r0_8;
void** r7_9;
void** v10;
int1_t z11;
void** r4_12;
r9_7 = 0;
r0_8 = fun_10032064(r0, r1);
if (r0_8) {
r9_7 = 1;
r7_9 = *reinterpret_cast<void***>(r0 + 36);
r0_8 = fun_10031f6c(r7_9, r1);
if (r0_8)
goto addr_10034c98_4;
} else {
r7_9 = v10;
goto addr_10034cfc_6;
}
addr_10034cfc_6:
z11 = r9_7 == 0;
if (!z11) {
r0_8 = r0 + 48;
}
if (!z11) {
InterlockedDecrement(r0_8, r1, r2);
}
if (!1) {
InterlockedDecrement(r7_9 + 0x78, r1, r2);
}
__asm__("ldmdb fp, {r4, r5, r6, r7, r8, sb, sl, fp, sp, lr}");
return 0;
addr_10034c98_4:
r4_12 = *reinterpret_cast<void***>(r0 + 16);
goto r4_12;
}
int32_t fun_10034d5c(void** r0, void** r1, void** r2, void** r3, int32_t a5, int32_t a6) {
void** r5_7;
int32_t r9_8;
int32_t r10_9;
void** r0_10;
void** r6_11;
void** v12;
void** v13;
int1_t z14;
int1_t z15;
int1_t z16;
void** r4_17;
void** v18;
r5_7 = r3;
r9_8 = 0;
r10_9 = 0;
r0_10 = fun_10032064(r0, r1);
if (r0_10) {
r9_8 = 1;
r6_11 = *reinterpret_cast<void***>(r0 + 36);
r0_10 = fun_10031f6c(r6_11, r1);
if (!r0_10)
goto addr_10034de4_4;
} else {
r6_11 = v12;
r5_7 = v13;
goto addr_10034e88_6;
}
r10_9 = 1;
r0_10 = fun_10031fe8(r5_7, r1);
if (r0_10)
goto addr_10034e08_9;
addr_10034e88_6:
z14 = r9_8 == 0;
if (!z14) {
r0_10 = r0 + 48;
}
if (!z14) {
r0_10 = InterlockedDecrement(r0_10, r1, r2);
}
z15 = r10_9 == 0;
if (!z15) {
r0_10 = r6_11 + 0x78;
}
if (!z15) {
InterlockedDecrement(r0_10, r1, r2);
}
if (!1) {
InterlockedDecrement(r5_7 + 52, r1, r2);
}
__asm__("ldmdb fp, {r4, r5, r6, r7, r8, sb, sl, fp, sp, lr}");
return 0;
addr_10034e08_9:
z16 = r5_7 == 0;
if (z16) {
}
if (!z16) {
}
r4_17 = *reinterpret_cast<void***>(r0 + 20);
goto r4_17;
addr_10034de4_4:
r5_7 = v18;
goto addr_10034e88_6;
}
void* g100360a4 = reinterpret_cast<void*>(0xfffff7e8);
struct s100 {
void** f0;
signed char[3] pad4;
void** f4;
};
struct s99 {
void** f0;
signed char[3] pad4;
void** f4;
signed char[3] pad8;
void** f8;
signed char[3] pad12;
void** fc;
signed char[3] pad16;
void** f10;
signed char[3] pad20;
void** f14;
signed char[3] pad24;
void** f18;
signed char[1023] pad1048;
void** f418;
signed char[1051] pad2100;
void** f834;
signed char[3] pad2104;
struct s100* f838;
};
void** wcstoul(void** r0, void** r1, void** r2);
int32_t fun_10035eb8(void** r0, void** r1, void** r2, uint32_t r3, void** a5, void** a6, void** a7) {
void* r12_8;
struct s99* sp9;
uint32_t r9_10;
void** r3_11;
void** r0_12;
int1_t z13;
void** r3_14;
void** r2_15;
int1_t z16;
void** r2_17;
struct s100* r7_18;
void** r8_19;
uint32_t r5_20;
struct s100* r0_21;
void** r3_22;
void** r2_23;
void** r8_24;
void** r6_25;
uint32_t r5_26;
void** r2_27;
void** r0_28;
void** r1_29;
void** r3_30;
int1_t z31;
struct s100* r6_32;
void** r0_33;
void** r1_34;
void** r3_35;
int1_t z36;
r12_8 = g100360a4;
sp9 = reinterpret_cast<struct s99*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 28 + reinterpret_cast<int32_t>(r12_8));
r9_10 = r3;
*reinterpret_cast<void***>(&sp9->f8) = reinterpret_cast<void**>(0x400);
r3_11 = reinterpret_cast<void**>(&sp9->f10);
sp9->f4 = reinterpret_cast<void**>(&sp9->f8);
sp9->f0 = reinterpret_cast<void**>(&sp9->f18);
r0_12 = RegQueryValueExW(r0, r1, 0, r3_11, sp9->f0, sp9->f4, *reinterpret_cast<void***>(&sp9->f8), *reinterpret_cast<void***>(&sp9->fc));
z13 = r0_12 == 0;
if (!z13) {
r3_11 = reinterpret_cast<void**>(0);
}
if (!z13) {
*reinterpret_cast<void***>(&sp9->f10) = r3_11;
}
sp9->f0 = reinterpret_cast<void**>(&sp9->f418);
*reinterpret_cast<void***>(&sp9->f8) = reinterpret_cast<void**>(0x400);
sp9->f4 = reinterpret_cast<void**>(&sp9->f8);
r3_14 = reinterpret_cast<void**>(&sp9->f14);
RegQueryValueExW(r0, r2, 0, r3_14, sp9->f0, sp9->f4, *reinterpret_cast<void***>(&sp9->f8), *reinterpret_cast<void***>(&sp9->fc));
if (!z13) {
r3_14 = reinterpret_cast<void**>(0);
}
r2_15 = *reinterpret_cast<void***>(&sp9->f10);
if (!z13) {
*reinterpret_cast<void***>(&sp9->f14) = r3_14;
}
if (z13) {
r3_14 = *reinterpret_cast<void***>(&sp9->f14);
}
if (r2_15 != r3_14) {
goto addr_10036088_13;
}
z16 = r2_15 == 0;
if (z16) {
r3_14 = sp9->f834;
}
if (z16) {
r2_15 = reinterpret_cast<void**>(0);
}
if (z16) {
}
if (z16) {
*reinterpret_cast<void***>(r3_14) = r2_15;
}
if (!z16)
goto addr_10035f68_23;
addr_1003608c_25:
goto *reinterpret_cast<int32_t*>(reinterpret_cast<int32_t>(sp9) + 0x818 + 24);
addr_10035f68_23:
if (!reinterpret_cast<int1_t>(r2_15 == 4)) {
r2_17 = reinterpret_cast<void**>(0);
r7_18 = sp9->f838;
*reinterpret_cast<void***>(&sp9->f8) = reinterpret_cast<void**>(0);
r8_19 = reinterpret_cast<void**>(&sp9->f18);
r5_20 = 0;
if (r9_10)
goto addr_10035fb0_28;
} else {
r0_21 = sp9->f838;
r3_22 = *reinterpret_cast<void***>(&sp9->f18);
r2_23 = *reinterpret_cast<void***>(&sp9->f418);
*reinterpret_cast<void***>(sp9->f834) = reinterpret_cast<void**>(1);
r0_21->f0 = r3_22;
r0_21->f4 = r2_23;
goto addr_1003608c_25;
}
addr_10036004_31:
r8_24 = sp9->f834;
r6_25 = reinterpret_cast<void**>(&sp9->f418);
r5_26 = 0;
*reinterpret_cast<void***>(r8_24) = r2_17;
r2_27 = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(&sp9->f8) = reinterpret_cast<void**>(0);
if (r9_10) {
while (*reinterpret_cast<void***>(r6_25)) {
r2_27 = reinterpret_cast<void**>(16);
r0_28 = wcstoul(r6_25, &sp9->fc, 16);
r1_29 = *reinterpret_cast<void***>(&sp9->fc);
r7_18->f4 = r0_28;
++r5_26;
r3_30 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r1_29))));
r7_18 = reinterpret_cast<struct s100*>(reinterpret_cast<int32_t>(r7_18) + 8);
z31 = r3_30 == 0;
if (z31) {
r3_30 = *reinterpret_cast<void***>(&sp9->f8);
}
if (z31) {
r6_25 = r1_29 + 2;
}
if (z31) {
r2_27 = r3_30 + 1;
}
if (z31) {
*reinterpret_cast<void***>(&sp9->f8) = r2_27;
}
if (!z31) {
r2_27 = *reinterpret_cast<void***>(&sp9->f8);
}
if (r5_26 < r9_10)
goto addr_1003607c_45;
}
goto label_47;
}
addr_1003607c_45:
if (r2_27 == *reinterpret_cast<void***>(r8_24)) {
goto addr_1003608c_25;
} else {
addr_10036088_13:
goto addr_1003608c_25;
}
label_47:
goto addr_1003607c_45;
addr_10035fb0_28:
r6_32 = r7_18;
while (*reinterpret_cast<void***>(r8_19)) {
r2_17 = reinterpret_cast<void**>(16);
r0_33 = wcstoul(r8_19, &sp9->fc, 16);
r1_34 = *reinterpret_cast<void***>(&sp9->fc);
r6_32->f0 = r0_33;
++r5_20;
r3_35 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r1_34))));
r6_32 = reinterpret_cast<struct s100*>(reinterpret_cast<int32_t>(r6_32) + 8);
z36 = r3_35 == 0;
if (z36) {
r3_35 = *reinterpret_cast<void***>(&sp9->f8);
}
if (z36) {
r8_19 = r1_34 + 2;
}
if (z36) {
r2_17 = r3_35 + 1;
}
if (z36) {
*reinterpret_cast<void***>(&sp9->f8) = r2_17;
}
if (!z36) {
r2_17 = *reinterpret_cast<void***>(&sp9->f8);
}
if (r5_20 < r9_10)
goto addr_10036004_31;
}
goto addr_10036004_31;
}
void** DSA_Create(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23, void** a24, void** a25, void** a26, void** a27, void** a28, void** a29) {
void** r4_30;
void** r4_31;
void** r5_32;
void** r0_33;
r4_30 = r1;
r0_33 = LocalAlloc(0, 20, r2, r3, r4_31, r5_32, __return_address(), a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29);
if (r0_33) {
if (!r4_30) {
r4_30 = reinterpret_cast<void**>(1);
}
*reinterpret_cast<void***>(r0_33 + 16) = r4_30;
*reinterpret_cast<void***>(r0_33) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r0_33 + 4) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r0_33 + 8) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r0_33 + 12) = r0;
}
return r0_33;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x68);
void wcscpy(void** r0, void** r1, void** r2, void** r3, void** a5, ...);
void** fun_10037824(void** r0, void*** r1, void** r2) {
void*** sp4;
void** r10_5;
void*** r5_6;
void** r7_7;
int1_t z8;
void** r4_9;
int1_t z10;
void** r6_11;
void** r1_12;
void** r8_13;
void** v14;
void** v15;
void** v16;
void** v17;
void** r0_18;
int1_t z19;
void** r3_20;
void** r2_21;
void** r1_22;
void** r9_23;
void** r11_24;
void** v25;
void** v26;
void** v27;
void** v28;
int32_t v29;
void** v30;
void** r0_31;
void** r6_32;
void** r3_33;
void** r2_34;
void** r1_35;
void** v36;
int32_t v37;
void** r0_38;
void** r0_39;
void** r0_40;
void** r3_41;
int1_t c42;
int32_t v43;
void** v44;
void** r0_45;
void** v46;
void** r3_47;
int1_t z48;
int1_t c49;
sp4 = reinterpret_cast<void***>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 36 - 0x228);
r10_5 = r2;
r5_6 = r1;
r7_7 = r0;
if (z8) {
r4_9 = reinterpret_cast<void**>(87);
}
if (!z10) {
r6_11 = *r5_6;
r1_12 = image_base_;
r4_9 = reinterpret_cast<void**>(0);
r8_13 = r6_11;
if (reinterpret_cast<unsigned char>(r6_11) > reinterpret_cast<unsigned char>(2)) {
r8_13 = r6_11 - 2;
}
v14 = r6_11;
*r5_6 = reinterpret_cast<void**>(0);
r0_18 = RegOpenKeyExW(0x80000002, r1_12, 0, 0, sp4 + 24, v15, v16, v17);
z19 = r0_18 == 0;
if (!z19) {
r4_9 = reinterpret_cast<void**>(0x4e0);
}
if (z19) {
r3_20 = reinterpret_cast<void**>(sp4 + 16);
r2_21 = reinterpret_cast<void**>(sp4 + 40);
r1_22 = reinterpret_cast<void**>(0);
r9_23 = r7_7;
r11_24 = reinterpret_cast<void**>(0);
v25 = r4_9;
v26 = r4_9;
v27 = r4_9;
v28 = r4_9;
r0_31 = RegEnumKeyExW(v29, 0, r2_21, r3_20, v28, v27, v26, v25, 0x100, 0, v30, v14);
r4_9 = r0_31;
if (z19) {
r6_32 = reinterpret_cast<void**>(sp4 + 20);
while (1) {
r3_33 = reinterpret_cast<void**>(0);
r2_34 = reinterpret_cast<void**>(0);
r1_35 = reinterpret_cast<void**>(sp4 + 40);
v36 = r6_32;
r0_38 = RegOpenKeyExW(v37, r1_35, 0, 0, v36, v27, v26, v25, v37, r1_35, 0, 0, v36, v27, v26, v25);
if (!r0_38) {
r3_33 = reinterpret_cast<void**>(sp4 + 32);
r2_34 = reinterpret_cast<void**>(0);
r1_35 = r10_5;
v36 = reinterpret_cast<void**>(sp4 + 40);
v27 = reinterpret_cast<void**>(sp4 + 16);
r0_39 = RegQueryValueExW(0, r1_35, 0, r3_33, v36, v27, v26, v25, 0, r1_35, 0, r3_33, v36, v27, v26, v25);
if (!r0_39) {
r0_40 = wcslen(sp4 + 40, r1_35, 0, r3_33, v36, v27, v26, v25, 0x200, 0);
r3_41 = r0_40 + 1;
r2_34 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r3_41) << 1);
c42 = reinterpret_cast<unsigned char>(r8_13) < reinterpret_cast<unsigned char>(r2_34);
if (!c42) {
r8_13 = reinterpret_cast<void**>(0);
}
if (c42) {
if (r7_7) {
r1_35 = reinterpret_cast<void**>(sp4 + 40);
wcscpy(r9_23, r1_35, r2_34, r3_41, v36, r9_23, r1_35, r2_34, r3_41, v36);
r2_34 = r2_34;
r9_23 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r9_23) + (reinterpret_cast<unsigned char>(r2_34) >> 1 << 1));
r8_13 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r8_13) - reinterpret_cast<unsigned char>(r2_34));
}
}
r3_33 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*r5_6) + reinterpret_cast<unsigned char>(r2_34));
*r5_6 = r3_33;
}
}
if (!1) {
RegCloseKey(0, r1_35, r2_34, r3_33, v36, v27, v26, v25, 0, r1_35, r2_34, r3_33, v36, v27, v26, v25);
}
++r11_24;
r1_22 = r11_24;
r3_20 = reinterpret_cast<void**>(sp4 + 16);
r2_21 = reinterpret_cast<void**>(sp4 + 40);
v25 = reinterpret_cast<void**>(0);
v26 = reinterpret_cast<void**>(0);
v27 = reinterpret_cast<void**>(0);
v28 = reinterpret_cast<void**>(0);
r0_45 = RegEnumKeyExW(v43, r1_22, r2_21, r3_20, 0, 0, 0, 0, 0x100, 0, v44, v14);
r4_9 = r0_45;
if (!1)
break;
}
r6_11 = v14;
}
if (0) {
RegCloseKey(0, r1_22, r2_21, r3_20, v28, v27, v26, v25, 0, r1_22, r2_21, r3_20, v28, v27, v26, v25);
}
RegCloseKey(v46, r1_22, r2_21, r3_20, v28, v27, v26, v25, v46, r1_22, r2_21, r3_20, v28, v27, v26, v25);
r3_47 = *r5_6 + 2;
*r5_6 = r3_47;
if (reinterpret_cast<unsigned char>(r6_11) < reinterpret_cast<unsigned char>(2)) {
z48 = r7_7 == 0;
if (!z48) {
r3_47 = reinterpret_cast<void**>(0);
}
if (!z48) {
*reinterpret_cast<void***>(r9_23) = reinterpret_cast<void**>(static_cast<uint16_t>(reinterpret_cast<uint32_t>(r3_47)));
}
}
if (r4_9 == 0x103) {
r4_9 = reinterpret_cast<void**>(0);
}
if (!r4_9) {
c49 = reinterpret_cast<unsigned char>(r6_11) < reinterpret_cast<unsigned char>(*r5_6);
if (!c49) {
r4_9 = reinterpret_cast<void**>(0xea);
}
if (c49) {
if (!r7_7) {
r4_9 = reinterpret_cast<void**>(0x7a);
}
}
}
}
}
return r4_9;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(12);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(20);
void** GetSystemDefaultUILanguage() {
void*** sp1;
void** r2_2;
void** r1_3;
void** r3_4;
void** r0_5;
int1_t z6;
void** v7;
sp1 = reinterpret_cast<void***>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 16 - 20);
r2_2 = image_base_;
r1_3 = image_base_;
r3_4 = reinterpret_cast<void**>(sp1 + 16);
r0_5 = RegQueryValueExW(0x80000002, r1_3, r2_2, r3_4, sp1 + 8, sp1 + 12, 0, 4);
z6 = r0_5 == 0;
if (z6) {
r3_4 = v7;
}
if (z6) {
z6 = reinterpret_cast<int1_t>(r3_4 == 4);
}
if (z6) {
r3_4 = reinterpret_cast<void**>(0);
}
if (z6) {
r0_5 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r3_4) << 16);
}
if (z6) {
r0_5 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r0_5) >> 16);
}
if (!z6) {
r0_5 = reinterpret_cast<void**>(0);
}
return r0_5;
}
void** fun_10037ef8(uint32_t r0, void** r1, void** r2) {
void** r4_4;
void** r4_5;
void** r4_6;
void** r5_7;
void** r6_8;
void** r0_9;
void** r0_10;
void** r1_11;
r4_4 = gffffcb04;
r4_5 = r4_4 - 1;
__asm__("bic r4, lr, r4");
r0_9 = VirtualAlloc(0, 0x10000, 0x2000, 4, r4_6, r5_7, r6_8);
*reinterpret_cast<void***>(r1) = r0_9;
if (r0_9) {
r0_10 = VirtualAlloc(r0_9, r4_5, 0x1000, 4, r4_6, r5_7, r6_8);
if (r0_10) {
r1_11 = *reinterpret_cast<void***>(r1);
*reinterpret_cast<void***>(r1 + 8) = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r1_11) + reinterpret_cast<unsigned char>(r4_5));
*reinterpret_cast<void***>(r1 + 12) = r1_11 + 0x10000;
*reinterpret_cast<void***>(r1 + 4) = r1_11;
return 1;
} else {
VirtualFree(*reinterpret_cast<void***>(r1), 0, 0x8000, 4, r4_6, r5_7, r6_8);
}
}
return 0;
}
void** swprintf(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7);
int32_t fun_1003811c(void** r0, void** r1, void** r2, void** r3, void** a5, int16_t a6) {
void** r4_7;
int32_t r5_8;
void** r0_9;
void** v10;
void** r0_11;
void** r2_12;
void** r3_13;
r4_7 = gffffc800;
r5_8 = 0;
*reinterpret_cast<void***>(r4_7 + 8) = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r4_7 + 8)) | 2);
r0_9 = *reinterpret_cast<void***>(r0 + 4);
r0_11 = swprintf(r0_9, r1, r2, r3, r0, 0, v10);
if (!__intrinsic()) {
r5_8 = 1;
}
if (!__intrinsic()) {
}
if (!__intrinsic()) {
r3 = *reinterpret_cast<void***>(r0 + 4);
}
if (!__intrinsic()) {
r3 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r3) + (reinterpret_cast<unsigned char>(r0_11) << 1));
}
if (!__intrinsic()) {
*reinterpret_cast<void***>(r0 + 4) = r3;
}
r2_12 = gffffc800;
r3_13 = *reinterpret_cast<void***>(r2_12 + 8);
__asm__("bic r3, r3, #2");
*reinterpret_cast<void***>(r2_12 + 8) = r3_13;
if (!r5_8) {
SetLastError(14, r1, r2_12, r3_13, 14, r1, r2_12, r3_13);
}
__asm__("ldmdb fp, {r4, r5, r6, r7, fp, sp, lr}");
goto r0;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** TlsSetValue(void** r0, void** r1, void** r2);
void** fun_10038a38(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23, void** a24, void** a25, void** a26, void** a27, void** a28, void** a29, void** a30, void** a31) {
void** v32;
void** v33;
void** v34;
void** r0_35;
void** r4_36;
void** v37;
void** v38;
void** v39;
void** r4_40;
void** r0_41;
void** r3_42;
void** v43;
void** v44;
void** r0_45;
void** r2_46;
void** v47;
void* r0_48;
void** r0_49;
void** r0_50;
void** r0_51;
r0_35 = TlsGetValue(1, r1, r2, r3, v32, v33, v34);
r4_36 = r0_35;
if (reinterpret_cast<unsigned char>(r4_36) >= reinterpret_cast<unsigned char>(0x10000)) {
r0_41 = GetOwnerProcess(r0_35, r1, r2, r3, v37, v38, v39, r4_40, __return_address(), a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29);
r3_42 = gffffc80c;
if (r0_41 == r3_42) {
r0_45 = LocalAlloc(64, 0x19c, r2, r3_42, r0_41, v43, v44, r4_40, __return_address(), a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27);
} else {
r2_46 = image_base_;
r3_42 = reinterpret_cast<void**>(0);
v47 = r2_46;
r2 = reinterpret_cast<void**>(0);
r0_48 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 8 - 12);
r0_45 = PerformCallBack4(r0_48, 0x19c, 0, 0, r0_41, v47, r0_48, 0x19c, 0, 0, r0_41, v47);
}
r4_36 = r0_45;
if (r4_36) {
r0_49 = GetOwnerProcess(r0_45, 0x19c, r2, r3_42, r0_41, v47, 64, r4_40, __return_address(), a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29);
r0_50 = MapPtrToProcess(r4_36, r0_49, r2, r3_42, r0_41, v47, 64, r4_40, __return_address(), a5, a6, a7, a8, a9);
r4_36 = r0_50;
r0_51 = TlsGetValue(1, r0_49, r2, r3_42, r0_41, v47, 64);
*reinterpret_cast<void***>(r4_36) = r0_51;
*reinterpret_cast<void***>(r4_36 + 0x168) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r4_36 + 0x198) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r4_36 + 0x170) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r4_36 + 0x16c) = reinterpret_cast<void**>(0);
TlsSetValue(1, r4_36, r2);
*reinterpret_cast<void***>(r4_36 + 0x164) = reinterpret_cast<void**>(1);
}
}
return r4_36;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(36);
void** GetCRTStorageEx(int32_t r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, void** a11, void** a12, void** a13, void** a14, void** a15, void** a16, void** a17, void** a18, void** a19, void** a20, void** a21, void** a22, void** a23, void** a24, void** a25, void** a26, void** a27, void** a28) {
void** v29;
void** v30;
void** v31;
void** r0_32;
void** r4_33;
void** v34;
void** v35;
void** v36;
void** r4_37;
void** r5_38;
void** r0_39;
void** r3_40;
void** v41;
void** v42;
void** r0_43;
void** r2_44;
void** v45;
void* r0_46;
void** r0_47;
void** r0_48;
void** r0_49;
r0_32 = TlsGetValue(1, r1, r2, r3, v29, v30, v31);
r4_33 = r0_32;
if (reinterpret_cast<unsigned char>(r4_33) >= reinterpret_cast<unsigned char>(0x10000)) {
if (!r0) {
r4_33 = reinterpret_cast<void**>(0);
} else {
r0_39 = GetOwnerProcess(r0_32, r1, r2, r3, v34, v35, v36, r4_37, r5_38, __return_address(), a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28);
r3_40 = gffffc80c;
if (r0_39 == r3_40) {
r0_43 = LocalAlloc(64, 0x19c, r2, r3_40, r0_39, v41, v42, r4_37, r5_38, __return_address(), a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26);
} else {
r2_44 = image_base_;
r3_40 = reinterpret_cast<void**>(0);
v45 = r2_44;
r2 = reinterpret_cast<void**>(0);
r0_46 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 12 - 12);
r0_43 = PerformCallBack4(r0_46, 0x19c, 0, 0, r0_39, v45, r0_46, 0x19c, 0, 0, r0_39, v45);
}
r4_33 = r0_43;
if (r4_33) {
r0_47 = GetOwnerProcess(r0_43, 0x19c, r2, r3_40, r0_39, v45, 64, r4_37, r5_38, __return_address(), a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28);
r0_48 = MapPtrToProcess(r4_33, r0_47, r2, r3_40, r0_39, v45, 64, r4_37, r5_38, __return_address(), a5, a6, a7, a8);
r4_33 = r0_48;
r0_49 = TlsGetValue(1, r0_47, r2, r3_40, r0_39, v45, 64);
*reinterpret_cast<void***>(r4_33) = r0_49;
*reinterpret_cast<void***>(r4_33 + 0x168) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r4_33 + 0x198) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r4_33 + 0x170) = reinterpret_cast<void**>(0);
*reinterpret_cast<void***>(r4_33 + 0x16c) = reinterpret_cast<void**>(0);
TlsSetValue(1, r4_33, r2);
*reinterpret_cast<void***>(r4_33 + 0x164) = reinterpret_cast<void**>(1);
}
}
}
return r4_33;
}
void** GetCRTFlags() {
void** r1_1;
void** r2_2;
void** r3_3;
void** v4;
void** v5;
void** r0_6;
r0_6 = TlsGetValue(1, r1_1, r2_2, r3_3, __return_address(), v4, v5);
if (reinterpret_cast<unsigned char>(r0_6) < reinterpret_cast<unsigned char>(0x10000)) {
r0_6 = *reinterpret_cast<void***>(r0_6);
}
return r0_6;
}
int32_t fun_10038d78(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6) {
void** r6_7;
void** r5_8;
void* r4_9;
void** r4_10;
void** r5_11;
void** r6_12;
void** r0_13;
void* r3_14;
int1_t z15;
int1_t below_or_equal16;
int1_t below_or_equal17;
r6_7 = r1;
r5_8 = r0;
r4_9 = reinterpret_cast<void*>(0);
r0_13 = wcslen(r0, r1, r2, r3, r4_10, r5_11, r6_12, __return_address(), a5, a6);
if (!r0_13) {
r0_13 = reinterpret_cast<void**>(0xffffffff);
} else {
while (r4_9 = reinterpret_cast<void*>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_8)))), r5_8 = r5_8 - 2, --r0_13, reinterpret_cast<uint32_t>(r4_9) <= 32) {
if (!r0_13)
goto addr_10038dac_6;
}
goto label_8;
}
addr_10038db8_9:
r3_14 = r4_9;
if (r4_9 == 45) {
goto addr_10038dcc_11;
}
if (reinterpret_cast<int1_t>(r4_9 == 43)) {
addr_10038dcc_11:
z15 = r0_13 == 0;
if (!z15) {
r3_14 = reinterpret_cast<void*>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_8))));
r5_8 = r5_8 - 2;
goto addr_10038dd4_15;
}
}
addr_10038de4_16:
r2 = reinterpret_cast<void**>(0);
addr_10038e48_17:
while (r3_14) {
if (reinterpret_cast<uint32_t>(r3_14) < 48) {
below_or_equal16 = reinterpret_cast<uint32_t>(r3_14) <= 57;
if (below_or_equal16) {
r1 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(r3_14) - 48);
}
if (below_or_equal16)
goto label_24;
}
if (reinterpret_cast<uint32_t>(r3_14) < 65) {
below_or_equal17 = reinterpret_cast<uint32_t>(r3_14) <= 70;
if (below_or_equal17) {
r1 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(r3_14) - 55);
}
if (below_or_equal17)
goto label_30;
}
if (reinterpret_cast<uint32_t>(r3_14) >= 97)
goto label_32;
if (reinterpret_cast<uint32_t>(r3_14) > 0x66)
goto label_34;
r1 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(r3_14) - 87);
addr_10038e28_36:
if (reinterpret_cast<unsigned char>(r1) < reinterpret_cast<unsigned char>(10))
goto label_37;
r2 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r1) + (reinterpret_cast<unsigned char>(r2) + (reinterpret_cast<unsigned char>(r2) << 2) << 1));
if (!r0_13)
goto label_39;
r3_14 = reinterpret_cast<void*>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_8))));
r5_8 = r5_8 - 2;
--r0_13;
continue;
label_30:
goto addr_10038e28_36;
label_24:
goto addr_10038e28_36;
}
addr_10038e50_41:
if (r4_9 == 45) {
r2 = reinterpret_cast<void**>(-static_cast<uint32_t>(reinterpret_cast<unsigned char>(r2)));
}
*reinterpret_cast<void***>(r6_7) = r2;
return 1;
label_32:
goto addr_10038e50_41;
label_34:
goto addr_10038e50_41;
label_37:
goto addr_10038e50_41;
label_39:
goto addr_10038e50_41;
addr_10038dd4_15:
if (!z15) {
--r0_13;
}
if (!z15) {
r2 = reinterpret_cast<void**>(0);
}
if (!z15) {
goto addr_10038e48_17;
} else {
r3_14 = reinterpret_cast<void*>(0);
goto addr_10038de4_16;
}
label_8:
goto addr_10038db8_9;
addr_10038dac_6:
r4_9 = reinterpret_cast<void*>(0);
goto addr_10038db8_9;
}
int32_t g10039040 = 0x376c5;
uint32_t fun_10038fb4(uint32_t r0, uint32_t r1, int32_t r2, uint32_t r3, int32_t a5, int32_t a6, int32_t a7, int32_t a8) {
uint32_t r3_9;
int32_t r4_10;
uint32_t r0_11;
uint32_t lr12;
uint32_t r3_13;
uint32_t r1_14;
uint32_t r3_15;
uint32_t r3_16;
int1_t c17;
__asm__("umull r5, r3, r6, r7");
r3_9 = r3 >> 4;
r4_10 = g10039040;
__asm__("umull r3, r2, lr, r7");
r0_11 = r0 - ((r3_9 << 4) - r3_9 << 1) - 1;
lr12 = r4_10 + 0x298;
if (r0_11) {
r3_13 = r0_11 + (r0_11 + (r0_11 << 2) << 1);
r1_14 = r3_13 + 14;
while (1) {
__asm__("umull r2, r3, r1, r7");
r3_15 = r3_13 >> 4;
r3_16 = r1_14 - ((r3_15 << 4) - r3_15 << 1);
c17 = r3_16 < 11;
if (!c17) {
r3_16 = 1;
}
if (c17) {
r3_16 = 0;
}
r3_13 = r3_16 + lr12 + 0x100;
lr12 = r3_13 + 98;
--r0_11;
r1_14 = r1_14 - 11;
if (!r0_11)
break;
}
}
return lr12;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(56);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(20);
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0xf8);
uint32_t wcsncmp(uint16_t* r0, void** r1, void** r2, void** r3, void** a5, void** a6);
uint32_t fun_10039048(void** r0, uint32_t r1, uint32_t r2) {
void*** sp4;
void** r1_5;
uint32_t r5_6;
void** v7;
void** r0_8;
int1_t z9;
void** v10;
void** v11;
void** r0_12;
void** v13;
void** v14;
void** r0_15;
void** r1_16;
uint32_t r0_17;
int32_t r0_18;
uint32_t v19;
int1_t z20;
sp4 = reinterpret_cast<void***>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 20 - 0x218);
r1_5 = image_base_;
r5_6 = 0;
r0_8 = RegOpenKeyExW(0x80000001, r1_5, 0, 0x20019, sp4 + 8, v7, 0, 0x200);
if (!r0_8) {
z9 = (reinterpret_cast<unsigned char>(r0) & 0x80000000) == 0;
if (z9)
goto addr_100390a4_4;
} else {
SetLastError(r0_8, r1_5, 0, 0x20019, r0_8, r1_5, 0, 0x20019);
goto addr_10039094_6;
}
r1_5 = image_base_;
addr_100390a4_4:
if (z9) {
r1_5 = image_base_;
}
v10 = reinterpret_cast<void**>(sp4 + 12);
v11 = reinterpret_cast<void**>(sp4 + 24);
r0_12 = RegQueryValueExW(0, r1_5, 0, 0, v11, v10, 0, 0x200);
RegCloseKey(0, r1_5, 0, 0, v11, v10, 0, 0x200);
if (!r0_12) {
r0_15 = wcslen(sp4 + 24, r1_5, 0, 0, v11, v10, 0, 0x200, v13, v14);
if (reinterpret_cast<signed char>(r0_15) <= reinterpret_cast<signed char>(12)) {
goto addr_10039138_13;
} else {
r1_16 = image_base_;
r0_17 = wcsncmp(sp4 + 24, r1_16, 12, 0, v11, v10);
if (r0_17) {
goto addr_10039138_13;
} else {
r0_18 = fun_10038d78(sp4 + 48, sp4 + 16, 12, 0, v11, v10);
if (!r0_18) {
goto addr_10039138_13;
} else {
if (v19 + 2 > 4) {
goto addr_10039138_13;
} else {
z20 = v19 == 0;
if (z20) {
r5_6 = 0xffffffff;
}
if (!z20) {
r5_6 = v19;
goto addr_10039138_13;
}
}
}
}
}
}
addr_10039094_6:
r5_6 = 0;
addr_10039138_13:
return r5_6;
}
uint32_t fun_10038e68(uint32_t r0, uint32_t r1, uint32_t r2);
int32_t g100392ac = 0x376c5;
int32_t g100392a8 = 0xc5448253;
void fun_10039154(void** r0, void** r1, void** r2, void** r3) {
void* sp5;
void** r7_6;
uint32_t r2_7;
uint32_t r1_8;
uint32_t r0_9;
uint32_t r0_10;
uint32_t r0_11;
int32_t r3_12;
uint32_t r6_13;
int32_t r2_14;
uint32_t r3_15;
uint32_t r3_16;
uint32_t r1_17;
uint32_t r3_18;
uint32_t r4_19;
uint32_t r0_20;
int1_t below_or_equal21;
uint32_t r5_22;
uint32_t r0_23;
uint32_t r5_24;
uint32_t r0_25;
uint32_t r1_26;
uint32_t r2_27;
int32_t r3_28;
sp5 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 36 - 52);
r7_6 = r0;
r2_7 = *reinterpret_cast<unsigned char*>(r7_6 + 6);
r1_8 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r7_6 + 2));
r0_9 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r7_6));
r0_10 = fun_10038e68(r0_9, r1_8, r2_7);
r0_11 = fun_10039048(r1, r1_8, r2_7);
r3_12 = g100392ac;
r6_13 = r0_10 + r0_11;
r2_14 = g100392a8;
r3_15 = r6_13 - r3_12;
r3_16 = (r3_15 << 4) - r3_15;
r1_17 = r3_16 << 1;
__asm__("umull r2, r3, r1, r2");
r3_18 = r3_16 >> 13;
r4_19 = r3_18 + 1;
r0_20 = fun_10038fb4(r4_19, r1_17, r2_14, r3_18, 0, 30, 59, 89);
below_or_equal21 = r6_13 <= r0_20;
if (below_or_equal21) {
--r4_19;
}
if (!below_or_equal21) {
r5_22 = r4_19 + 1;
r0_23 = fun_10038fb4(r5_22, r1_17, r2_14, r3_18, 0, 30, 59, 89);
if (r6_13 > r0_23) {
r4_19 = r5_22;
}
}
r5_24 = 1;
r0_25 = fun_10038fb4(r4_19, r1_17, r2_14, r3_18, 0, 30, 59, 89);
r1_26 = r6_13 - r0_25;
while (r1_26 > 0x76) {
++r5_24;
if (r5_24 > 12)
goto addr_10039274_10;
}
addr_10039274_10:
r2_27 = r5_24 - 1;
if (r2_27 >= 1) {
r2_27 = 1;
}
r3_28 = *reinterpret_cast<int32_t*>(reinterpret_cast<int32_t>(sp5) + (r2_27 << 2) - 4);
*reinterpret_cast<void***>(r7_6) = reinterpret_cast<void**>(static_cast<uint16_t>(r4_19));
*reinterpret_cast<void***>(r7_6 + 2) = reinterpret_cast<void**>(static_cast<uint16_t>(r2_27));
*reinterpret_cast<unsigned char*>(r7_6 + 6) = reinterpret_cast<unsigned char>(static_cast<uint16_t>(r1_26 - r3_28));
return;
}
uint32_t fun_100392b0(uint32_t r0, uint32_t r1, uint32_t r2) {
uint32_t r3_4;
uint32_t r3_5;
uint32_t r3_6;
uint32_t r3_7;
int1_t below_or_equal8;
if (r0 < 0x640) {
if (r0 <= 0x8bf) {
if (r1 < 1) {
if (r1 <= 12) {
r3_4 = r0 - (reinterpret_cast<uint32_t>(reinterpret_cast<int32_t>(r0 + (reinterpret_cast<uint32_t>(reinterpret_cast<int32_t>(r0) >> 1) >> 30)) >> 2) << 2);
if (!r3_4) {
__asm__("smull r1, r3, r0, r5");
r3_5 = reinterpret_cast<uint32_t>(reinterpret_cast<int32_t>(r3_4) >> 5);
r3_6 = r0 - (r3_5 + (r3_5 >> 31)) * 100;
if (r3_6) {
goto addr_100393a0_13;
} else {
__asm__("smull r1, r3, r0, r5");
r3_7 = reinterpret_cast<uint32_t>(reinterpret_cast<int32_t>(r3_6) >> 7);
if (!(r0 - (r3_7 + (r3_7 >> 31)) * 0x190)) {
addr_100393a0_13:
}
}
}
if (r2 < 1) {
below_or_equal8 = r2 <= static_cast<uint32_t>(*reinterpret_cast<uint16_t*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 36 - 28 + (r1 << 1)));
if (below_or_equal8) {
r0 = 1;
}
if (below_or_equal8)
goto label_21;
}
}
}
}
}
r0 = 0;
addr_100393cc_23:
return r0;
label_21:
goto addr_100393cc_23;
}
struct s101 {
signed char[104] pad104;
void** f68;
};
/* (image base) */
struct s101* image_base_ = reinterpret_cast<struct s101*>(0x100030b0);
uint32_t fun_100393dc(void** r0, void** r1, void** r2, void** r3) {
void** r6_5;
void** v6;
void** r4_7;
uint32_t r7_8;
uint32_t r10_9;
uint32_t r9_10;
uint32_t r0_11;
int1_t z12;
struct s101* r8_13;
void*** r3_14;
uint32_t r11_15;
void** r3_16;
uint32_t r5_17;
int1_t c18;
int1_t z19;
uint32_t r0_20;
uint32_t r0_21;
uint32_t r0_22;
uint32_t r3_23;
uint32_t r3_24;
uint32_t r0_25;
void* lr26;
uint32_t r1_27;
uint32_t r3_28;
int1_t less_or_equal29;
uint32_t r1_30;
void** r0_31;
void*** r5_32;
void* r3_33;
uint32_t r2_34;
void* r3_35;
uint32_t r2_36;
void** r3_37;
int1_t c38;
r6_5 = r1;
v6 = r6_5;
r4_7 = r0;
r7_8 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_7));
r10_9 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_7 + 2));
r9_10 = *reinterpret_cast<unsigned char*>(r4_7 + 6);
r0_11 = fun_100392b0(r7_8, r10_9, r9_10);
z12 = r0_11 == 0;
if (z12) {
r0_11 = 0;
}
if (!z12) {
r8_13 = image_base_;
r3_14 = reinterpret_cast<void***>(reinterpret_cast<int32_t>(&r8_13->f68) + (r7_8 << 1));
r11_15 = *reinterpret_cast<unsigned char*>(r3_14 + 0xfffff449);
r3_16 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(&r8_13->f68) + (r7_8 << 1));
r5_17 = *reinterpret_cast<unsigned char*>(r3_16 + 0xfffff448);
c18 = r11_15 < 4;
z19 = r11_15 == 4;
if (c18) {
r3_16 = reinterpret_cast<void**>(1);
}
if (!c18) {
r3_16 = reinterpret_cast<void**>(0);
}
*reinterpret_cast<void***>(r6_5) = r3_16;
if (z19)
goto label_10; else
goto addr_10039450_11;
}
addr_10039614_12:
return r0_11;
label_10:
r5_17 = 1;
addr_1003949c_14:
r6_5 = reinterpret_cast<void**>(5);
addr_100394a0_15:
*reinterpret_cast<void***>(r4_7) = reinterpret_cast<void**>(static_cast<uint16_t>(r7_8 + 0xeb0));
*reinterpret_cast<void***>(r4_7 + 2) = reinterpret_cast<void**>(static_cast<uint16_t>(reinterpret_cast<uint32_t>(r6_5)));
*reinterpret_cast<unsigned char*>(r4_7 + 6) = reinterpret_cast<unsigned char>(static_cast<uint16_t>(r5_17));
r0_20 = fun_10038e68(0x640, 1, 1);
r0_21 = fun_10038e68(r7_8, r10_9, r9_10);
r0_22 = r0_21 - r0_20;
__asm__("umull r1, r2, r0, r3");
r3_23 = r0_20 + (r0_22 - r0_20 >> 1) >> 2;
r3_24 = r0_22 - ((r3_23 << 3) - r3_23) << 16 >> 16;
if (!z19) {
--r3_24;
}
if (z19) {
r3_24 = 6;
}
*reinterpret_cast<void***>(r4_7 + 4) = reinterpret_cast<void**>(static_cast<uint16_t>(r3_24));
if (r10_9 != 1) {
goto addr_10039520_21;
}
if (r9_10 != 1) {
addr_10039520_21:
r0_25 = fun_10038e68(r7_8, 1, 1);
lr26 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(r8_13) + ((r11_15 << 3) - r11_15 << 1));
r1_27 = r0_22 - r0_25 + r0_20;
r3_28 = r5_17 + r1_27;
less_or_equal29 = reinterpret_cast<int32_t>(r3_28) <= reinterpret_cast<int32_t>(static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(reinterpret_cast<unsigned char>(r6_5) + reinterpret_cast<uint32_t>(lr26))));
if (less_or_equal29) {
r3_28 = r5_17 + r1_27;
goto addr_1003955c_25;
}
}
addr_10039610_26:
r0_11 = 1;
goto addr_10039614_12;
addr_1003955c_25:
if (!less_or_equal29) {
*reinterpret_cast<unsigned char*>(r4_7 + 6) = reinterpret_cast<unsigned char>(1);
*reinterpret_cast<void***>(r4_7 + 2) = reinterpret_cast<void**>(static_cast<uint16_t>(reinterpret_cast<uint32_t>(r6_5 + 1)));
r1_30 = r1_27 + (r5_17 - reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r6_5)));
if (r1_30 == 1) {
goto addr_10039610_26;
} else {
r0_31 = v6;
r5_32 = r3_14;
while (r3_33 = reinterpret_cast<void*>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_7 + 2)))), r2_34 = *reinterpret_cast<unsigned char*>(reinterpret_cast<uint32_t>(r3_33) + reinterpret_cast<uint32_t>(lr26)), reinterpret_cast<int32_t>(r1_30) > reinterpret_cast<int32_t>(r2_34)) {
r3_35 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r3_33) + 1 << 16 >> 16);
*reinterpret_cast<void***>(r4_7 + 2) = reinterpret_cast<void**>(static_cast<uint16_t>(reinterpret_cast<uint32_t>(r3_35)));
r1_30 = r1_30 - r2_34;
if (reinterpret_cast<uint32_t>(r3_35) > 13) {
goto addr_100395c4_34;
}
if (!*reinterpret_cast<unsigned char*>(reinterpret_cast<uint32_t>(r3_35) + reinterpret_cast<uint32_t>(lr26))) {
addr_100395c4_34:
*reinterpret_cast<void***>(r4_7) = reinterpret_cast<void**>(static_cast<uint16_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_7)) + 1));
r2_36 = *reinterpret_cast<unsigned char*>(r5_32 + 0xfffff44b);
*reinterpret_cast<void***>(r4_7 + 2) = reinterpret_cast<void**>(1);
r3_37 = reinterpret_cast<void**>((r2_36 << 3) - r2_36);
c38 = r2_36 < 4;
lr26 = reinterpret_cast<void*>(reinterpret_cast<int32_t>(r8_13) + (reinterpret_cast<unsigned char>(r3_37) << 1));
if (c38) {
r3_37 = reinterpret_cast<void**>(1);
goto addr_100395e8_38;
}
}
addr_100395f0_39:
if (reinterpret_cast<int32_t>(r1_30) <= reinterpret_cast<int32_t>(0))
goto addr_100395f8_40;
continue;
addr_100395e8_38:
if (!c38) {
r3_37 = reinterpret_cast<void**>(0);
}
*reinterpret_cast<void***>(r0_31) = r3_37;
goto addr_100395f0_39;
}
goto label_44;
}
}
addr_1003960c_45:
*reinterpret_cast<unsigned char*>(r4_7 + 6) = reinterpret_cast<unsigned char>(static_cast<uint16_t>(r3_28));
goto addr_10039610_26;
label_44:
r3_28 = reinterpret_cast<uint16_t>(*reinterpret_cast<unsigned char*>(r4_7 + 6)) + r1_30 + 0xff00 + 0xff;
goto addr_1003960c_45;
addr_100395f8_40:
goto addr_10039610_26;
addr_10039450_11:
z19 = r5_17 == 30;
if (z19) {
r6_5 = reinterpret_cast<void**>(3);
goto addr_100394a0_15;
} else {
z19 = r5_17 == 31;
if (z19) {
r5_17 = 2;
goto addr_1003949c_14;
} else {
z19 = r5_17 == 32;
if (z19) {
r5_17 = 3;
goto addr_1003949c_14;
} else {
z19 = r5_17 == 33;
if (!z19) {
r6_5 = reinterpret_cast<void**>(4);
}
if (!z19) {
goto addr_100394a0_15;
} else {
r6_5 = reinterpret_cast<void**>(3);
r5_17 = 29;
goto addr_100394a0_15;
}
}
}
}
}
uint32_t g10039910 = 0xcccccccd;
void fun_10039750(int32_t r0, int32_t r1);
void** StringCchCopyW(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8, void** a9, void** a10, ...);
int32_t fun_10039628(uint32_t r0, int16_t* r1, void* r2) {
uint16_t* sp4;
int16_t* r7_5;
void** r6_6;
int1_t z7;
void** v8;
void** v9;
uint32_t r2_10;
int32_t r0_11;
uint32_t r3_12;
uint32_t r2_13;
uint32_t r4_14;
uint16_t v15;
int1_t z16;
void** r5_17;
int1_t z18;
int1_t z19;
void** v20;
void** v21;
void** v22;
void** v23;
void** v24;
void** v25;
void** v26;
int1_t z27;
uint16_t v28;
void** r2_29;
void** r3_30;
void** r1_31;
void** v32;
void** v33;
void** v34;
void** v35;
void** v36;
void** v37;
void** v38;
void** v39;
void** r0_40;
void** r3_41;
void** r2_42;
void** v43;
void** v44;
void** v45;
void** v46;
void** r0_47;
void** r0_48;
void** v49;
void** v50;
void** v51;
void** v52;
int32_t v53;
int32_t v54;
int32_t v55;
int32_t v56;
void** r0_57;
void** r2_58;
void** r1_59;
uint16_t* r0_60;
int16_t* lr61;
uint32_t lr62;
uint32_t r1_63;
uint32_t r3_64;
uint32_t r3_65;
sp4 = reinterpret_cast<uint16_t*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 24 - 44);
r7_5 = r1;
r6_6 = reinterpret_cast<void**>(sp4 + 12);
if (reinterpret_cast<int32_t>(r2) <= reinterpret_cast<int32_t>(10)) {
z7 = r0 == 0x1388;
if (r0 > 0x1388) {
r0 = r0 - 0x1388;
}
*reinterpret_cast<uint16_t*>(&v8) = 0;
__asm__("umull r3, r2, r0, r3");
*reinterpret_cast<uint16_t*>(&v8 + 2) = 0;
*reinterpret_cast<uint16_t*>(&v9) = 0;
*reinterpret_cast<int16_t*>(&v9 + 2) = 0;
r2_10 = reinterpret_cast<uint32_t>(r2) >> 5;
if (z7)
goto label_6; else
goto addr_10039678_7;
}
addr_100398c0_8:
r0_11 = 0;
addr_10039904_9:
return r0_11;
label_6:
addr_10039718_10:
r3_12 = g10039910;
__asm__("umull r3, r2, r0, r3");
r2_13 = r2_10 >> 3;
if (z7) {
r4_14 = 0;
} else {
r3_12 = r2_13 + (r2_13 << 2);
--r2_13;
r0 = r0 - (r3_12 << 1);
if (r2_13 > 8) {
r4_14 = v15;
} else {
goto 0x10039754 + *reinterpret_cast<unsigned char*>(reinterpret_cast<int32_t>(fun_10039750) + r2_13);
}
}
z16 = r0 == 0;
if (!z16) {
r3_12 = r0 + 0x500;
}
if (!z16) {
r2_13 = r3_12 + 0xcf;
}
if (z16) {
r2_13 = 0;
}
r5_17 = reinterpret_cast<void**>(r2_13 << 16 >> 16);
z18 = reinterpret_cast<int1_t>(r5_17 == 0x5d4);
if (z18) {
z18 = r4_14 == 0x5d9;
}
if (z18) {
r4_14 = 0x5d0;
}
if (z18) {
r5_17 = reinterpret_cast<void**>(0x5d5);
}
if (z18) {
r4_14 = r4_14 | 8;
}
z19 = reinterpret_cast<int1_t>(r5_17 == 0x5d5);
if (z19) {
z19 = r4_14 == 0x5d9;
}
if (z19) {
r5_17 = reinterpret_cast<void**>(0x5d0);
}
if (z19) {
r4_14 = 0x5d0;
}
if (z19) {
r5_17 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r5_17) | 6);
}
if (z19) {
r4_14 = r4_14 | 8;
}
memset(sp4 + 12, 0, 20, 0x5d4, v20, v21, v8, v9, v22, v23, v24, v25, v26);
z27 = r5_17 == 0;
if (!z27) {
v28 = static_cast<uint16_t>(reinterpret_cast<uint32_t>(r5_17));
}
if (!z27) {
r6_6 = reinterpret_cast<void**>(sp4 + 13);
}
if (r4_14) {
r6_6 = r6_6 - 2;
}
r2_29 = reinterpret_cast<void**>(sp4 + 4);
r3_30 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(reinterpret_cast<unsigned char>(r6_6) - reinterpret_cast<uint32_t>(sp4 + 12)) >> 1);
r1_31 = reinterpret_cast<void**>(10 - reinterpret_cast<unsigned char>(r3_30));
StringCchCopyW(r6_6, r1_31, r2_29, r3_30, v32, v33, v8, v9, v34, v35);
if (__intrinsic()) {
goto addr_100398c0_8;
} else {
r0_40 = wcslen(sp4 + 12, r1_31, r2_29, r3_30, v36, v37, v8, v9, v38, v39);
if (reinterpret_cast<unsigned char>(r0_40) <= reinterpret_cast<unsigned char>(1)) {
r3_41 = reinterpret_cast<void**>(static_cast<uint32_t>(v28));
r2_42 = reinterpret_cast<void**>(39);
} else {
r0_47 = wcslen(sp4 + 13, r1_31, r2_29, r3_30, v43, v44, v8, v9, v45, v46);
r2_42 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r0_47) << 1);
r1_31 = reinterpret_cast<void**>(sp4 + 13);
memmove(sp4 + 14, r1_31, r2_42);
r3_41 = reinterpret_cast<void**>(34);
}
r0_48 = reinterpret_cast<void**>(sp4 + 12);
r0_57 = wcslen(r0_48, r1_31, r2_42, r3_41, v49, v50, v8, v9, v51, v52, r0_48, r1_31, r2_42, r3_41, v53, v54, v8, v9, v55, v56);
r2_58 = r0_57 - 1;
if (reinterpret_cast<signed char>(r2_58) > reinterpret_cast<signed char>(reinterpret_cast<uint32_t>(r2) - 1))
goto addr_100398c0_8;
}
r1_59 = reinterpret_cast<void**>(0);
if (!__intrinsic())
goto addr_100398d4_56;
addr_100398f4_58:
*reinterpret_cast<int16_t*>(reinterpret_cast<int32_t>(r7_5) + (reinterpret_cast<unsigned char>(r1_59) << 1)) = 0;
r0_11 = 1;
goto addr_10039904_9;
addr_100398d4_56:
r0_60 = reinterpret_cast<uint16_t*>(reinterpret_cast<int32_t>(sp4 + 12) + (reinterpret_cast<unsigned char>(r2_58) << 1));
lr61 = r7_5;
r1_59 = r2_58 + 1;
while (--r0_60, --r2_58, *lr61 = static_cast<int16_t>(static_cast<uint32_t>(*r0_60)), --lr61, reinterpret_cast<signed char>(r2_58) >= reinterpret_cast<signed char>(0)) {
}
goto addr_100398f4_58;
addr_10039678_7:
r0 = r0 - r2_10 * 100;
if (r2_10 <= 3) {
lr62 = 0;
} else {
lr62 = 0x5ea;
r2_10 = r2_10 - 4;
*reinterpret_cast<uint16_t*>(&v9) = 0x5ea;
if (r2_10 > 3) {
r1_63 = 0x5ea;
*reinterpret_cast<uint16_t*>(&v8 + 2) = 0x5ea;
r2_10 = r2_10 - 4;
goto addr_100396bc_66;
}
}
r1_63 = 0;
addr_100396bc_66:
if (r2_10) {
r3_64 = r2_10 + 0x500 + 0xe6;
if (r1_63) {
r3_65 = r3_64 << 16 >> 16;
*reinterpret_cast<uint16_t*>(&v8) = static_cast<uint16_t>(r3_65);
goto addr_100396e4_72;
} else {
r1_63 = r3_64 << 16 >> 16;
*reinterpret_cast<uint16_t*>(&v8 + 2) = static_cast<uint16_t>(r1_63);
}
}
r3_65 = 0;
addr_100396e4_72:
z7 = r1_63 == 0;
if (!z7) {
z7 = r3_65 == 0;
if (!z7)
goto addr_1003970c_77;
} else {
*reinterpret_cast<uint16_t*>(&v8) = static_cast<uint16_t>(lr62);
goto addr_10039718_10;
}
r3_65 = 0;
addr_1003970c_77:
if (z7) {
*reinterpret_cast<uint16_t*>(&v9) = static_cast<uint16_t>(r3_65);
}
if (z7) {
*reinterpret_cast<uint16_t*>(&v8) = static_cast<uint16_t>(r1_63);
}
if (z7) {
*reinterpret_cast<uint16_t*>(&v8 + 2) = static_cast<uint16_t>(lr62);
goto addr_10039718_10;
}
}
void* g10039fc0 = reinterpret_cast<void*>(0xfffffbe8);
struct s102 {
void** f0;
signed char[3] pad4;
void** f4;
signed char[3] pad8;
void** f8;
signed char[3] pad12;
void** fc;
signed char[3] pad16;
void** f10;
signed char[3] pad20;
void** f14;
signed char[3] pad24;
void** f18;
signed char[1059] pad1084;
void** f43c;
signed char[3] pad1088;
uint32_t f440;
};
void fun_10038c90(uint32_t r0, void** r1, void** r2, void** r3, void** a5, void** a6);
uint32_t g10039fbc = 0x2aaaaaab;
void** StringCchCopyExW(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6);
void** fun_10039918(void** r0, void** r1, void** r2, void** r3) {
void* r12_5;
struct s102* sp6;
void** r4_7;
void** r11_8;
void** r5_9;
uint32_t r7_10;
void** lr11;
void** r9_12;
uint32_t r2_13;
void** r8_14;
void** r6_15;
int1_t z16;
uint32_t r0_17;
void** r1_18;
int1_t z19;
uint32_t r3_20;
uint32_t r2_21;
void** r1_22;
int1_t z23;
uint32_t r3_24;
int1_t z25;
int1_t z26;
void** r3_27;
void** r3_28;
int1_t z29;
void** r3_30;
int1_t z31;
int1_t z32;
int1_t z33;
void** r3_34;
int1_t z35;
int1_t z36;
int32_t r3_37;
uint32_t r2_38;
int1_t z39;
int1_t z40;
uint32_t r3_41;
int32_t r2_42;
uint32_t r10_43;
int1_t z44;
int1_t z45;
void** r3_46;
uint32_t r1_47;
int1_t z48;
int1_t z49;
int1_t z50;
int32_t r3_51;
uint32_t r2_52;
int1_t z53;
int1_t z54;
uint32_t r3_55;
int32_t r2_56;
int1_t z57;
int1_t z58;
void** r3_59;
uint32_t r1_60;
int1_t z61;
int1_t z62;
int1_t z63;
void** r3_64;
void** r2_65;
int1_t c66;
uint32_t r3_67;
void** r3_68;
void** r1_69;
void** r0_70;
void** r0_71;
r12_5 = g10039fc0;
sp6 = reinterpret_cast<struct s102*>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 36 + reinterpret_cast<int32_t>(r12_5));
sp6->f14 = r3;
r4_7 = r2;
r11_8 = r1;
sp6->f10 = r0;
r5_9 = sp6->f43c;
r7_10 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_7));
lr11 = r3;
*reinterpret_cast<void***>(&sp6->f8) = r5_9;
r9_12 = r5_9;
r2_13 = r7_10;
*reinterpret_cast<void***>(&sp6->fc) = r3;
r8_14 = r3;
r6_15 = r4_7;
if (!z16) {
r0_17 = sp6->f440;
r1_18 = reinterpret_cast<void**>(32);
while (1) {
z19 = r2_13 == 39;
if (z19) {
r3_20 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_7 + 2));
r4_7 = r4_7 + 2;
r2_21 = r3_20;
if (!z19)
goto addr_10039f38_7;
} else {
if (r2_13 == 72) {
r4_7 = r4_7 + 2;
r1_22 = reinterpret_cast<void**>(0);
z23 = static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_7 + 2))) == 72;
if (!z23)
goto label_11; else
goto addr_10039e90_12;
} else {
if (r2_13 == 0x68) {
r3_24 = sp6->f440;
r0_17 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r11_8 + 8));
r1_22 = reinterpret_cast<void**>(0);
z25 = (r3_24 & 8) == 0;
if (z25)
goto label_16; else
goto addr_10039de0_17;
} else {
if (r2_13 == 0x6d) {
r4_7 = r4_7 + 2;
r1_22 = reinterpret_cast<void**>(0);
if (static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_7 + 2))) != 0x6d)
goto label_21; else
goto addr_10039c80_22;
} else {
if (r2_13 == 0x73) {
r4_7 = r4_7 + 2;
r1_22 = reinterpret_cast<void**>(0);
if (static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_7 + 2))) != 0x73)
goto label_26; else
goto addr_10039b2c_27;
} else {
if (r2_13 == 0x74) {
r4_7 = r4_7 + 2;
r6_15 = reinterpret_cast<void**>(0);
z26 = static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_7 + 2))) == 0x74;
if (!z26)
goto label_31; else
goto addr_100399cc_32;
} else {
z19 = reinterpret_cast<int1_t>(r5_9 == 1);
if (reinterpret_cast<unsigned char>(r5_9) <= reinterpret_cast<unsigned char>(1))
goto label_34;
*reinterpret_cast<void***>(lr11) = reinterpret_cast<void**>(static_cast<uint16_t>(r7_10));
lr11 = lr11 - 2;
r3_27 = *reinterpret_cast<void***>(&sp6->f8);
r4_7 = r4_7 + 2;
*reinterpret_cast<void***>(&sp6->fc) = lr11;
r5_9 = r3_27 - 1;
*reinterpret_cast<void***>(&sp6->f8) = r5_9;
goto addr_10039f80_36;
}
}
}
}
}
}
addr_10039f80_36:
r7_10 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_7));
r2_13 = r7_10;
if (z19)
goto addr_10039f8c_38;
continue;
while (1) {
addr_10039f38_7:
if (r2_21 == 39) {
r3_20 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_7 + 2));
r4_7 = r4_7 + 2;
z19 = r3_20 == 39;
if (!z19)
goto label_42;
}
z19 = reinterpret_cast<int1_t>(r5_9 == 1);
if (reinterpret_cast<unsigned char>(r5_9) <= reinterpret_cast<unsigned char>(1))
goto label_44;
*reinterpret_cast<void***>(lr11) = reinterpret_cast<void**>(static_cast<uint16_t>(r3_20));
lr11 = lr11 - 2;
r3_28 = *reinterpret_cast<void***>(&sp6->f8);
r4_7 = r4_7 + 2;
*reinterpret_cast<void***>(&sp6->fc) = lr11;
r5_9 = r3_28 - 1;
r3_20 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_7));
*reinterpret_cast<void***>(&sp6->f8) = r5_9;
r2_21 = r3_20;
if (z19)
break;
}
addr_10039f78_47:
r0_17 = sp6->f440;
addr_10039f7c_48:
r1_18 = reinterpret_cast<void**>(32);
goto addr_10039f80_36;
label_42:
goto addr_10039f78_47;
label_11:
addr_10039ea8_49:
if (!z23) {
while (z29 = reinterpret_cast<int1_t>(r5_9 == 1), reinterpret_cast<unsigned char>(r5_9) > reinterpret_cast<unsigned char>(1)) {
*reinterpret_cast<void***>(lr11) = reinterpret_cast<void**>(32);
r3_30 = *reinterpret_cast<void***>(&sp6->f8);
*reinterpret_cast<void***>(&sp6->fc) = lr11 - 2;
r5_9 = r3_30 - 1;
*reinterpret_cast<void***>(&sp6->f8) = r5_9;
if (z29)
goto addr_10039ef0_54;
lr11 = *reinterpret_cast<void***>(&sp6->fc);
}
goto label_57;
}
addr_10039ef0_54:
z31 = r1_22 == 0;
r0_17 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r11_8 + 8));
if (!z31) {
r1_22 = reinterpret_cast<void**>(2);
}
if (z31) {
r1_22 = reinterpret_cast<void**>(1);
}
addr_10039f00_61:
fun_10038c90(r0_17, r1_22, &sp6->fc, &sp6->f8, sp6->f0, sp6->f4);
r5_9 = *reinterpret_cast<void***>(&sp6->f8);
z19 = r5_9 == 0;
if (z19)
goto label_62;
addr_10039f18_63:
lr11 = *reinterpret_cast<void***>(&sp6->fc);
r9_12 = r5_9;
r6_15 = r4_7;
r8_14 = lr11;
goto addr_10039f78_47;
addr_10039e90_12:
while (r4_7 = r4_7 + 2, r1_22 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r1_22 + 1) << 16 >> 16), z23 = static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_7 + 2))) == 72, z23) {
}
goto addr_10039ea8_49;
label_16:
r3_24 = g10039fbc;
addr_10039de0_17:
if (z25) {
__asm__("smulleq r2, r3, r0, r3");
}
if (z25) {
r3_24 = reinterpret_cast<uint32_t>(reinterpret_cast<int32_t>(r3_24) >> 1);
}
if (z25) {
r3_24 = r3_24 + (r3_24 >> 31);
}
if (z25) {
r3_24 = r3_24 + (r3_24 << 1);
}
if (z25) {
r3_24 = r0_17 - (r3_24 << 2);
}
if (z25) {
r0_17 = r3_24 << 16;
}
r4_7 = r4_7 + 2;
if (z25) {
r0_17 = r0_17 >> 16;
}
if (z25) {
r0_17 = 12;
}
z32 = static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_7 + 2))) == 0x68;
if (z32) {
while (r4_7 = r4_7 + 2, r1_22 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r1_22 + 1) << 16 >> 16), z32 = static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_7 + 2))) == 0x68, z32) {
}
}
if (!z32) {
while (z33 = reinterpret_cast<int1_t>(r5_9 == 1), reinterpret_cast<unsigned char>(r5_9) > reinterpret_cast<unsigned char>(1)) {
*reinterpret_cast<void***>(lr11) = reinterpret_cast<void**>(32);
r3_34 = *reinterpret_cast<void***>(&sp6->f8);
*reinterpret_cast<void***>(&sp6->fc) = lr11 - 2;
r5_9 = r3_34 - 1;
*reinterpret_cast<void***>(&sp6->f8) = r5_9;
if (z33)
goto addr_10039e6c_89;
lr11 = *reinterpret_cast<void***>(&sp6->fc);
}
goto label_92;
}
addr_10039e6c_89:
z35 = r1_22 == 0;
if (!z35) {
r1_22 = reinterpret_cast<void**>(2);
}
if (!z35) {
goto addr_10039f00_61;
} else {
r1_22 = reinterpret_cast<void**>(1);
goto addr_10039f00_61;
}
label_21:
addr_10039c98_97:
z36 = (r0_17 & 1) == 0;
if (z36) {
if (!z36)
goto addr_10039d70_100;
} else {
r3_37 = 0;
if (r4_7 != r6_15) {
while (1) {
r2_38 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r6_15));
if (r2_38 != 39) {
z39 = r3_37 == 0;
if (z39)
goto addr_10039cd4_106;
} else {
z40 = r3_37 == 0;
if (z40) {
r3_37 = 1;
}
if (z40) {
goto addr_10039cd8_111;
} else {
r3_37 = 0;
goto addr_10039cd8_111;
}
}
*reinterpret_cast<void***>(r8_14) = reinterpret_cast<void**>(static_cast<uint16_t>(r2_38));
r8_14 = r8_14 - 2;
addr_10039cd4_106:
if (!z39) {
--r9_12;
}
addr_10039cd8_111:
r6_15 = r6_15 + 2;
if (r6_15 == r4_7)
break;
}
}
r3_41 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_7));
r2_42 = 0;
r10_43 = 0;
z19 = r3_41 == 0;
if (z19)
goto label_117; else
goto addr_10039cf8_118;
}
addr_10039db0_120:
z44 = r1_22 == 0;
if (!z44) {
r0_17 = *reinterpret_cast<unsigned char*>(r11_8 + 10);
}
if (!z44) {
r1_22 = reinterpret_cast<void**>(2);
}
if (!z44) {
goto addr_10039f00_61;
} else {
r0_17 = *reinterpret_cast<unsigned char*>(r11_8 + 10);
r1_22 = reinterpret_cast<void**>(1);
goto addr_10039f00_61;
}
addr_10039d70_100:
while (z45 = reinterpret_cast<int1_t>(r5_9 == 1), reinterpret_cast<unsigned char>(r5_9) > reinterpret_cast<unsigned char>(1)) {
*reinterpret_cast<void***>(lr11) = reinterpret_cast<void**>(32);
r3_46 = *reinterpret_cast<void***>(&sp6->f8);
*reinterpret_cast<void***>(&sp6->fc) = lr11 - 2;
r5_9 = r3_46 - 1;
*reinterpret_cast<void***>(&sp6->f8) = r5_9;
if (z45)
goto addr_10039db0_120;
lr11 = *reinterpret_cast<void***>(&sp6->fc);
}
goto label_131;
label_117:
addr_10039d54_132:
lr11 = r8_14;
r5_9 = r9_12;
*reinterpret_cast<void***>(&sp6->fc) = r8_14;
*reinterpret_cast<void***>(&sp6->f8) = r9_12;
goto addr_10039f7c_48;
addr_10039cf8_118:
r1_47 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r6_15));
while (1) {
if (r1_47 == 39) {
z48 = r2_42 == 0;
if (z48) {
r2_42 = 1;
}
if (z48)
goto label_138; else
goto addr_10039d10_139;
}
addr_10039d14_140:
if (!r2_42) {
z49 = r3_41 == 32;
if (z49) {
r3_41 = r10_43 + 1;
}
if (z49) {
r10_43 = r3_41 << 16;
}
if (z49) {
r10_43 = r10_43 >> 16;
}
if (!z49) {
z19 = r3_41 == 0x68;
if (z19)
break;
z19 = r3_41 == 72;
if (z19)
goto label_152;
z19 = r3_41 == 0x74;
if (z19)
goto label_154;
}
}
addr_10039d48_155:
r3_41 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_7 + 2));
r4_7 = r4_7 + 2;
z19 = r3_41 == 0;
if (z19)
goto addr_10039d54_132;
continue;
label_138:
goto addr_10039d48_155;
addr_10039d10_139:
r2_42 = 0;
goto addr_10039d14_140;
}
goto addr_10039d54_132;
label_152:
goto addr_10039d54_132;
label_154:
goto addr_10039d54_132;
addr_10039c80_22:
while (r4_7 = r4_7 + 2, r1_22 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r1_22 + 1) << 16 >> 16), static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_7 + 2))) == 0x6d) {
}
goto addr_10039c98_97;
label_26:
addr_10039b44_159:
z50 = (r0_17 & 3) == 0;
if (z50) {
if (!z50)
goto addr_10039c14_162;
} else {
r3_51 = 0;
if (r4_7 != r6_15) {
while (1) {
r2_52 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r6_15));
if (r2_52 != 39) {
z53 = r3_51 == 0;
if (z53)
goto addr_10039b80_168;
} else {
z54 = r3_51 == 0;
if (z54) {
r3_51 = 1;
}
if (z54) {
goto addr_10039b84_173;
} else {
r3_51 = 0;
goto addr_10039b84_173;
}
}
*reinterpret_cast<void***>(r8_14) = reinterpret_cast<void**>(static_cast<uint16_t>(r2_52));
r8_14 = r8_14 - 2;
addr_10039b80_168:
if (!z53) {
--r9_12;
}
addr_10039b84_173:
r6_15 = r6_15 + 2;
if (r6_15 == r4_7)
break;
}
}
r3_55 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_7));
r2_56 = 0;
r10_43 = 0;
z19 = r3_55 == 0;
if (z19)
goto label_179; else
goto addr_10039ba4_180;
}
addr_10039c54_182:
z57 = r1_22 == 0;
if (!z57) {
r0_17 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r11_8 + 12));
}
if (!z57) {
r1_22 = reinterpret_cast<void**>(2);
}
if (!z57) {
goto addr_10039f00_61;
} else {
r0_17 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r11_8 + 12));
r1_22 = reinterpret_cast<void**>(1);
goto addr_10039f00_61;
}
addr_10039c14_162:
while (z58 = reinterpret_cast<int1_t>(r5_9 == 1), reinterpret_cast<unsigned char>(r5_9) > reinterpret_cast<unsigned char>(1)) {
*reinterpret_cast<void***>(lr11) = reinterpret_cast<void**>(32);
r3_59 = *reinterpret_cast<void***>(&sp6->f8);
*reinterpret_cast<void***>(&sp6->fc) = lr11 - 2;
r5_9 = r3_59 - 1;
*reinterpret_cast<void***>(&sp6->f8) = r5_9;
if (z58)
goto addr_10039c54_182;
lr11 = *reinterpret_cast<void***>(&sp6->fc);
}
goto label_193;
label_179:
goto addr_10039d54_132;
addr_10039ba4_180:
r1_60 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r6_15));
while (1) {
if (r1_60 == 39) {
z61 = r2_56 == 0;
if (z61) {
r2_56 = 1;
}
if (z61)
goto label_199; else
goto addr_10039bbc_200;
}
addr_10039bc0_201:
if (!r2_56) {
z62 = r3_55 == 32;
if (z62) {
r3_55 = r10_43 + 1;
}
if (z62) {
r10_43 = r3_55 << 16;
}
if (z62) {
r10_43 = r10_43 >> 16;
}
if (!z62) {
z19 = r3_55 == 0x68;
if (z19)
goto label_212;
z19 = r3_55 == 72;
if (z19)
goto label_214;
z19 = r3_55 == 0x74;
if (z19)
goto label_216;
z19 = r3_55 == 0x6d;
if (z19)
goto label_218;
}
}
addr_10039bfc_219:
r3_55 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_7 + 2));
r4_7 = r4_7 + 2;
z19 = r3_55 == 0;
if (z19)
break;
continue;
label_199:
goto addr_10039bfc_219;
addr_10039bbc_200:
r2_56 = 0;
goto addr_10039bc0_201;
}
goto addr_10039d54_132;
label_212:
goto addr_10039d54_132;
label_214:
goto addr_10039d54_132;
label_216:
goto addr_10039d54_132;
label_218:
goto addr_10039d54_132;
addr_10039b2c_27:
while (r4_7 = r4_7 + 2, r1_22 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r1_22 + 1) << 16 >> 16), static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_7 + 2))) == 0x73) {
}
goto addr_10039b44_159;
label_31:
addr_100399e4_223:
if (!z26) {
while (z63 = reinterpret_cast<int1_t>(r5_9 == 1), reinterpret_cast<unsigned char>(r5_9) > reinterpret_cast<unsigned char>(1)) {
*reinterpret_cast<void***>(lr11) = reinterpret_cast<void**>(32);
lr11 = lr11 - 2;
r3_64 = *reinterpret_cast<void***>(&sp6->f8);
*reinterpret_cast<void***>(&sp6->fc) = lr11;
r5_9 = r3_64 - 1;
*reinterpret_cast<void***>(&sp6->f8) = r5_9;
if (z63)
goto addr_10039a28_228;
lr11 = *reinterpret_cast<void***>(&sp6->fc);
}
goto label_231;
addr_10039a28_228:
r0_17 = sp6->f440;
}
if (!(r0_17 & 4)) {
r2_65 = reinterpret_cast<void**>(&sp6->f18);
c66 = static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r11_8 + 8))) < 12;
if (c66)
goto addr_10039a94_235;
} else {
r3_67 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_7));
lr11 = r8_14;
r5_9 = r9_12;
*reinterpret_cast<void***>(&sp6->fc) = r8_14;
*reinterpret_cast<void***>(&sp6->f8) = r9_12;
r6_15 = r4_7;
while (z19 = r3_67 == 0, !z19) {
z19 = r3_67 == 0x68;
if (z19)
goto label_240;
z19 = r3_67 == 72;
if (z19)
goto label_242;
z19 = r3_67 == 0x6d;
if (z19)
goto label_244;
z19 = r3_67 == 0x73;
if (z19)
goto label_246;
r3_67 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_7 + 2));
r4_7 = r4_7 + 2;
}
goto addr_10039a7c_248;
}
r1_18 = reinterpret_cast<void**>(40);
addr_10039a94_235:
if (c66) {
r1_18 = reinterpret_cast<void**>(41);
}
GetLocaleInfoW(sp6->f10, r1_18, r2_65, 0x200, sp6->f0, sp6->f4);
r3_68 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(&sp6->f18))));
z19 = r3_68 == 0;
if (z19) {
lr11 = r8_14;
}
if (z19) {
r5_9 = r9_12;
}
if (z19) {
*reinterpret_cast<void***>(&sp6->fc) = r8_14;
}
if (z19) {
*reinterpret_cast<void***>(&sp6->f8) = r9_12;
}
if (z19) {
r6_15 = r4_7;
}
if (z19) {
goto addr_10039f78_47;
} else {
r1_69 = *reinterpret_cast<void***>(&sp6->f8);
if (reinterpret_cast<unsigned char>(r1_69) <= reinterpret_cast<unsigned char>(1))
goto label_264;
z19 = r6_15 == 0;
if (!z19)
goto addr_10039ad4_266;
}
r2_65 = *reinterpret_cast<void***>(&sp6->fc);
addr_10039ad4_266:
if (z19) {
*reinterpret_cast<void***>(r2_65) = reinterpret_cast<void**>(static_cast<uint16_t>(reinterpret_cast<uint32_t>(r3_68)));
r2_65 = r2_65 - 2;
}
if (z19) {
r3_68 = *reinterpret_cast<void***>(&sp6->f8);
}
if (z19) {
*reinterpret_cast<void***>(&sp6->fc) = r2_65;
}
if (z19) {
r5_9 = r3_68 - 1;
}
if (z19) {
*reinterpret_cast<void***>(&sp6->f8) = r5_9;
}
if (z19) {
goto addr_10039f18_63;
} else {
r0_70 = *reinterpret_cast<void***>(&sp6->fc);
sp6->f4 = reinterpret_cast<void**>(0);
sp6->f0 = reinterpret_cast<void**>(&sp6->f8);
r0_71 = StringCchCopyExW(r0_70, r1_69, &sp6->f18, &sp6->fc, sp6->f0, sp6->f4);
z19 = r0_71 == 0;
if (__intrinsic())
goto label_280;
r5_9 = *reinterpret_cast<void***>(&sp6->f8);
goto addr_10039f18_63;
}
addr_10039a7c_248:
goto addr_10039f80_36;
label_240:
goto addr_10039f80_36;
label_242:
goto addr_10039f80_36;
label_244:
goto addr_10039f80_36;
label_246:
goto addr_10039f80_36;
addr_100399cc_32:
while (r4_7 = r4_7 + 2, r6_15 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r6_15 + 1) << 16 >> 16), z26 = static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r4_7 + 2))) == 0x74, z26) {
}
goto addr_100399e4_223;
}
}
addr_10039f90_283:
*reinterpret_cast<void***>(lr11) = reinterpret_cast<void**>(0);
addr_10039fa0_284:
goto *reinterpret_cast<int32_t*>(reinterpret_cast<int32_t>(sp6) + 0x418 + 32);
addr_10039f8c_38:
goto addr_10039f90_283;
label_44:
addr_10039fb4_285:
goto addr_10039fa0_284;
label_62:
goto addr_10039fb4_285;
label_57:
goto addr_10039fb4_285;
label_92:
goto addr_10039fb4_285;
label_131:
goto addr_10039fb4_285;
label_193:
goto addr_10039fb4_285;
label_264:
goto addr_10039fb4_285;
label_280:
goto addr_10039fb4_285;
label_231:
goto addr_10039fb4_285;
label_34:
goto addr_10039fb4_285;
}
struct s103 {
signed char[1] pad1;
void** f1;
};
struct s104 {
signed char[67] pad67;
void** f43;
};
struct s105 {
signed char[55] pad55;
void** f37;
};
struct s106 {
signed char[1] pad1;
void** f1;
};
void* g1003aa10 = reinterpret_cast<void*>(0x92492493);
int32_t g1003aa14 = 0x51eb851f;
void** fun_1002d954(void** r0);
uint32_t fun_10039fc4(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6, void** a7, void** a8) {
void*** sp9;
void** r4_10;
void** v11;
void** r7_12;
void** r9_13;
void** v14;
uint32_t r8_15;
void** r11_16;
void** r0_17;
void** r10_18;
int1_t z19;
int1_t z20;
void** r6_21;
uint32_t r2_22;
void** r1_23;
void** r0_24;
void** v25;
uint32_t r3_26;
void** v27;
void** lr28;
int1_t z29;
uint32_t r3_30;
uint32_t r2_31;
struct s103* lr32;
int1_t n33;
uint32_t r0_34;
struct s104* r3_35;
int1_t z36;
void** v37;
void** r0_38;
struct s105* r3_39;
int1_t z40;
void* r2_41;
uint32_t r3_42;
void** r2_43;
void** r1_44;
int32_t r0_45;
void* r2_46;
uint32_t r3_47;
void** r2_48;
int1_t z49;
struct s106* lr50;
int1_t n51;
uint32_t r0_52;
void* r2_53;
void* r4_54;
void* r2_55;
uint32_t r2_56;
uint32_t r2_57;
void** r0_58;
void* r4_59;
void* r1_60;
uint32_t r1_61;
uint32_t r1_62;
void** r0_63;
void* r2_64;
void* r4_65;
void* r2_66;
uint32_t r2_67;
uint32_t r2_68;
void* r4_69;
void* r1_70;
uint32_t r1_71;
uint32_t r1_72;
int32_t r0_73;
int1_t z74;
int1_t z75;
uint32_t r1_76;
int1_t z77;
int32_t r0_78;
uint32_t r4_79;
int32_t r3_80;
uint32_t r3_81;
int1_t z82;
uint32_t r0_83;
int1_t z84;
uint32_t r2_85;
void** r0_86;
uint32_t r2_87;
uint32_t r3_88;
uint32_t r4_89;
uint32_t r1_90;
uint32_t r3_91;
uint32_t r3_92;
uint32_t r2_93;
uint32_t r0_94;
uint32_t r3_95;
uint32_t r3_96;
uint32_t r2_97;
uint32_t r3_98;
uint32_t r3_99;
int1_t z100;
uint32_t r3_101;
sp9 = reinterpret_cast<void***>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 36 - 0x430);
r4_10 = r1;
v11 = r4_10;
r7_12 = r3;
r9_13 = r2;
v14 = r0;
r8_15 = 0;
r11_16 = reinterpret_cast<void**>(0);
r0_17 = fun_1002d668(r4_10, r1);
r10_18 = r0_17;
if (!z19) {
z20 = static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r10_18))) == 0;
if (!z20)
goto addr_1003a014_4;
} else {
SetLastError(87, r1, r2, r3);
goto addr_1003a000_6;
}
r6_21 = v11;
addr_1003a1a8_9:
r2_22 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r7_12));
r1_23 = a6;
r0_24 = a5;
v25 = a5;
r3_26 = r2_22;
v27 = r1_23;
if (!z20) {
lr28 = a7;
while (1) {
if (r3_26 == 39) {
z29 = (reinterpret_cast<unsigned char>(lr28) & 48) == 0;
if (!z29)
goto addr_1003a954_15;
} else {
if (r3_26 == 77) {
if (!(reinterpret_cast<unsigned char>(lr28) & 48))
goto label_19; else
goto addr_1003a6c4_20;
} else {
if (r3_26 == 100) {
if (!(reinterpret_cast<unsigned char>(lr28) & 48))
goto label_24; else
goto addr_1003a438_25;
} else {
if (r3_26 == 0x67) {
if (!(reinterpret_cast<unsigned char>(lr28) & 48))
goto label_29; else
goto addr_1003a390_30;
} else {
if (r3_26 == 0x79) {
if (!(reinterpret_cast<unsigned char>(lr28) & 48))
goto label_34; else
goto addr_1003a228_35;
} else {
z29 = reinterpret_cast<int1_t>(r1_23 == 1);
if (reinterpret_cast<unsigned char>(r1_23) <= reinterpret_cast<unsigned char>(1))
goto label_37;
*reinterpret_cast<void***>(r0_24) = reinterpret_cast<void**>(static_cast<uint16_t>(r2_22));
r0_24 = r0_24 - 2;
r7_12 = r7_12 + 2;
v25 = r0_24;
r1_23 = v27 - 1;
v27 = r1_23;
goto addr_1003a9dc_39;
}
}
}
}
}
addr_1003a988_41:
r3_30 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r7_12 + 2));
r7_12 = r7_12 + 2;
r2_31 = r3_30;
if (!z29) {
while (1) {
if (r2_31 == 39) {
r3_30 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r7_12 + 2));
r7_12 = r7_12 + 2;
z29 = r3_30 == 39;
if (!z29)
goto label_46;
}
z29 = reinterpret_cast<int1_t>(r1_23 == 1);
if (reinterpret_cast<unsigned char>(r1_23) <= reinterpret_cast<unsigned char>(1))
goto label_48;
*reinterpret_cast<void***>(r0_24) = reinterpret_cast<void**>(static_cast<uint16_t>(r3_30));
r0_24 = r0_24 - 2;
r7_12 = r7_12 + 2;
v25 = r0_24;
r1_23 = v27 - 1;
r3_30 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r7_12));
v27 = r1_23;
r2_31 = r3_30;
if (z29)
goto addr_1003a9d4_50;
}
}
addr_1003a9dc_39:
r2_22 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r7_12));
r4_10 = v11;
lr28 = a7;
r3_26 = r2_22;
if (z29)
break;
continue;
addr_1003a9d4_50:
goto addr_1003a9dc_39;
label_46:
goto addr_1003a9d4_50;
addr_1003a954_15:
if (reinterpret_cast<unsigned char>(r1_23) <= reinterpret_cast<unsigned char>(1))
goto label_53;
z29 = (reinterpret_cast<unsigned char>(lr28) & 32) == 0;
if (!z29)
goto addr_1003a964_55;
r3_26 = 0x2000;
addr_1003a964_55:
if (z29) {
r3_26 = r3_26 | 14;
}
if (!z29) {
*reinterpret_cast<void***>(r0_24) = reinterpret_cast<void**>(0x200f);
}
if (z29) {
*reinterpret_cast<void***>(r0_24) = reinterpret_cast<void**>(static_cast<uint16_t>(r3_26));
}
r0_24 = v25 + 2;
r1_23 = v27 - 1;
v25 = r0_24;
v27 = r1_23;
goto addr_1003a988_41;
label_19:
addr_1003a6f8_63:
r7_12 = r7_12 + 2;
lr32 = reinterpret_cast<struct s103*>(0);
n33 = __intrinsic();
if (static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r7_12 + 2))) == 77) {
while (r7_12 = r7_12 + 2, lr32 = reinterpret_cast<struct s103*>(reinterpret_cast<unsigned char>(&lr32->f1) << 16 >> 16), n33 = __intrinsic(), static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r7_12 + 2))) == 77) {
}
}
if (!n33) {
if (reinterpret_cast<int32_t>(lr32) <= reinterpret_cast<int32_t>(1)) {
r0_34 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r9_13 + 2));
if (!reinterpret_cast<int1_t>(r4_10 == 8))
goto label_72; else
goto addr_1003a818_73;
} else {
if (reinterpret_cast<int1_t>(lr32 == 2)) {
if (*reinterpret_cast<unsigned char*>(r10_18 + 10)) {
if (!reinterpret_cast<int1_t>(r4_10 == 8))
goto label_79; else
goto addr_1003a798_80;
} else {
r3_35 = reinterpret_cast<struct s104*>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r9_13 + 2))));
z36 = reinterpret_cast<int1_t>(r3_35 == 13);
if (z36) {
r1_23 = reinterpret_cast<void**>(0x1000);
}
if (z36) {
r1_23 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r1_23) | 15);
}
if (!z36) {
r1_23 = reinterpret_cast<void**>(&r3_35->f43);
}
GetLocaleInfoW(v14, r1_23, sp9 + 48, 0x200, v37, 0);
v37 = reinterpret_cast<void**>(sp9 + 8);
r0_38 = StringCchCopyExW(v25, v27, sp9 + 48, sp9 + 12, v37, 0);
goto addr_1003a418_88;
}
}
}
}
if (*reinterpret_cast<unsigned char*>(r10_18 + 10)) {
if (reinterpret_cast<int1_t>(r4_10 == 8))
goto addr_1003a8d8_92;
} else {
r3_39 = reinterpret_cast<struct s105*>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r9_13 + 2))));
z40 = reinterpret_cast<int1_t>(r3_39 == 13);
if (z40) {
r1_23 = reinterpret_cast<void**>(0x1000);
}
if (z40) {
r1_23 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r1_23) | 14);
}
if (!z40) {
r1_23 = reinterpret_cast<void**>(&r3_39->f37);
}
fun_1002ef00(v14, r1_23, sp9 + 48, 0x200, r11_16, 0);
v37 = reinterpret_cast<void**>(sp9 + 8);
r0_38 = StringCchCopyExW(v25, v27, sp9 + 48, sp9 + 12, v37, 0);
goto addr_1003a418_88;
}
addr_1003a91c_101:
r2_41 = reinterpret_cast<void*>(static_cast<uint32_t>(*reinterpret_cast<uint16_t*>(reinterpret_cast<unsigned char>(r10_18) + (static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r9_13 + 2))) << 1) + 38)));
v37 = reinterpret_cast<void**>(sp9 + 8);
r0_38 = StringCchCopyExW(r0_24, r1_23, reinterpret_cast<uint32_t>(r2_41) + reinterpret_cast<unsigned char>(r10_18) + 92, sp9 + 12, v37, 0);
addr_1003a418_88:
z29 = r0_38 == 0;
if (__intrinsic())
goto label_102;
r1_23 = v27;
addr_1003a424_104:
r0_24 = v25;
addr_1003a428_105:
r11_16 = reinterpret_cast<void**>(0);
goto addr_1003a9dc_39;
addr_1003a8d8_92:
if (a8) {
goto addr_1003a91c_101;
} else {
r3_42 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r9_13 + 2));
if (r3_42 <= 6) {
goto addr_1003a91c_101;
} else {
r2_43 = reinterpret_cast<void**>(*reinterpret_cast<uint16_t*>(reinterpret_cast<unsigned char>(r10_18) + (r3_42 << 1) + 40) + reinterpret_cast<unsigned char>(r10_18) + 92);
v37 = reinterpret_cast<void**>(sp9 + 8);
r0_38 = StringCchCopyExW(r0_24, r1_23, r2_43, sp9 + 12, v37, 0);
goto addr_1003a418_88;
}
}
label_72:
r1_44 = reinterpret_cast<void**>(&lr32->f1);
addr_1003a858_111:
fun_10038c90(r0_34, r1_44, sp9 + 12, sp9 + 8, v37, 0);
r1_23 = v27;
z29 = r1_23 == 0;
if (z29)
goto label_112;
goto addr_1003a424_104;
addr_1003a818_73:
r0_45 = fun_10039628(r0_34, sp9 + 24, 10);
if (!r0_45)
goto label_114;
v37 = reinterpret_cast<void**>(sp9 + 8);
r0_38 = StringCchCopyExW(v25, v27, sp9 + 24, sp9 + 12, v37, 0);
goto addr_1003a418_88;
label_79:
addr_1003a7dc_116:
r2_46 = reinterpret_cast<void*>(static_cast<uint32_t>(*reinterpret_cast<uint16_t*>(reinterpret_cast<unsigned char>(r10_18) + (static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r9_13 + 2))) << 1) + 64)));
v37 = reinterpret_cast<void**>(sp9 + 8);
r0_38 = StringCchCopyExW(r0_24, r1_23, reinterpret_cast<uint32_t>(r2_46) + reinterpret_cast<unsigned char>(r10_18) + 92, sp9 + 12, v37, 0);
goto addr_1003a418_88;
addr_1003a798_80:
if (a8) {
goto addr_1003a7dc_116;
} else {
r3_47 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r9_13 + 2));
if (r3_47 <= 6) {
goto addr_1003a7dc_116;
} else {
r2_48 = reinterpret_cast<void**>(*reinterpret_cast<uint16_t*>(reinterpret_cast<unsigned char>(r10_18) + (r3_47 << 1) + 66) + reinterpret_cast<unsigned char>(r10_18) + 92);
v37 = reinterpret_cast<void**>(sp9 + 8);
r0_38 = StringCchCopyExW(r0_24, r1_23, r2_48, sp9 + 12, v37, 0);
goto addr_1003a418_88;
}
}
addr_1003a6c4_20:
if (reinterpret_cast<unsigned char>(r1_23) <= reinterpret_cast<unsigned char>(1))
goto label_121;
z49 = (reinterpret_cast<unsigned char>(lr28) & 32) == 0;
if (!z49)
goto addr_1003a6d4_123;
r3_26 = 0x2000;
addr_1003a6d4_123:
if (z49) {
r3_26 = r3_26 | 14;
}
if (!z49) {
*reinterpret_cast<void***>(r0_24) = reinterpret_cast<void**>(0x200f);
}
if (z49) {
*reinterpret_cast<void***>(r0_24) = reinterpret_cast<void**>(static_cast<uint16_t>(r3_26));
}
r0_24 = v25 + 2;
r1_23 = v27 - 1;
v25 = r0_24;
v27 = r1_23;
goto addr_1003a6f8_63;
label_24:
addr_1003a46c_131:
r7_12 = r7_12 + 2;
lr50 = reinterpret_cast<struct s106*>(0);
n51 = __intrinsic();
if (static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r7_12 + 2))) == 100) {
while (r7_12 = r7_12 + 2, lr50 = reinterpret_cast<struct s106*>(reinterpret_cast<unsigned char>(&lr50->f1) << 16 >> 16), n51 = __intrinsic(), static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r7_12 + 2))) == 100) {
}
}
if (!n51) {
if (reinterpret_cast<int32_t>(lr50) <= reinterpret_cast<int32_t>(1)) {
r0_52 = *reinterpret_cast<unsigned char*>(r9_13 + 6);
r11_16 = reinterpret_cast<void**>(1);
if (!reinterpret_cast<int1_t>(r4_10 == 8))
goto label_140; else
goto addr_1003a57c_141;
} else {
if (reinterpret_cast<int1_t>(lr50 == 2)) {
r11_16 = reinterpret_cast<void**>(0);
if (*reinterpret_cast<unsigned char*>(r10_18 + 10)) {
r2_53 = reinterpret_cast<void*>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r9_13 + 4))));
r4_54 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r2_53) + 6);
r2_55 = g1003aa10;
__asm__("smull lr, r2, r4, r2");
v37 = reinterpret_cast<void**>(sp9 + 8);
r2_56 = reinterpret_cast<uint32_t>(reinterpret_cast<int32_t>(reinterpret_cast<int32_t>(r2_55) + reinterpret_cast<uint32_t>(r4_54)) >> 2);
r2_57 = r2_56 + (r2_56 >> 31);
r0_58 = StringCchCopyExW(r0_24, r1_23, *reinterpret_cast<uint16_t*>(reinterpret_cast<unsigned char>(r10_18) + (reinterpret_cast<uint32_t>(r4_54) - ((r2_57 << 3) - r2_57) << 1) + 26) + reinterpret_cast<unsigned char>(r10_18) + 92, sp9 + 12, v37, 0);
goto addr_1003a6a8_147;
} else {
r4_59 = reinterpret_cast<void*>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r9_13 + 4)) + 6);
r1_60 = g1003aa10;
__asm__("smull lr, r1, r4, r1");
r1_61 = reinterpret_cast<uint32_t>(reinterpret_cast<int32_t>(reinterpret_cast<int32_t>(r1_60) + reinterpret_cast<uint32_t>(r4_59)) >> 2);
r1_62 = r1_61 + (r1_61 >> 31);
GetLocaleInfoW(v14, reinterpret_cast<uint32_t>(r4_59) - ((r1_62 << 3) - r1_62) + 49, sp9 + 48, 0x200, v37, 0);
v37 = reinterpret_cast<void**>(sp9 + 8);
r0_63 = StringCchCopyExW(v25, v27, sp9 + 48, sp9 + 12, v37, 0);
goto addr_1003a648_149;
}
}
}
}
r11_16 = reinterpret_cast<void**>(0);
if (*reinterpret_cast<unsigned char*>(r10_18 + 10)) {
r2_64 = reinterpret_cast<void*>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r9_13 + 4))));
r4_65 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r2_64) + 6);
r2_66 = g1003aa10;
__asm__("smull lr, r2, r4, r2");
v37 = reinterpret_cast<void**>(sp9 + 8);
r2_67 = reinterpret_cast<uint32_t>(reinterpret_cast<int32_t>(reinterpret_cast<int32_t>(r2_66) + reinterpret_cast<uint32_t>(r4_65)) >> 2);
r2_68 = r2_67 + (r2_67 >> 31);
r0_58 = StringCchCopyExW(r0_24, r1_23, *reinterpret_cast<uint16_t*>(reinterpret_cast<unsigned char>(r10_18) + (reinterpret_cast<uint32_t>(r4_65) - ((r2_68 << 3) - r2_68) << 1) + 12) + reinterpret_cast<unsigned char>(r10_18) + 92, sp9 + 12, v37, 0);
} else {
r4_69 = reinterpret_cast<void*>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r9_13 + 4)) + 6);
r1_70 = g1003aa10;
__asm__("smull lr, r1, r4, r1");
r1_71 = reinterpret_cast<uint32_t>(reinterpret_cast<int32_t>(reinterpret_cast<int32_t>(r1_70) + reinterpret_cast<uint32_t>(r4_69)) >> 2);
r1_72 = r1_71 + (r1_71 >> 31);
GetLocaleInfoW(v14, reinterpret_cast<uint32_t>(r4_69) - ((r1_72 << 3) - r1_72) + 42, sp9 + 48, 0x200, v37, 0);
v37 = reinterpret_cast<void**>(sp9 + 8);
r0_63 = StringCchCopyExW(v25, v27, sp9 + 48, sp9 + 12, v37, 0);
goto addr_1003a648_149;
}
addr_1003a6a8_147:
z29 = r0_58 == 0;
if (__intrinsic())
goto label_154;
r0_24 = v25;
r1_23 = v27;
goto addr_1003a9d4_50;
addr_1003a648_149:
z29 = r0_63 == 0;
if (__intrinsic())
goto label_156;
r0_24 = v25;
r1_23 = v27;
goto addr_1003a9dc_39;
label_140:
fun_10038c90(r0_52, &lr50->f1, sp9 + 12, sp9 + 8, v37, 0);
r1_23 = v27;
z29 = r1_23 == 0;
if (z29)
goto label_159;
r0_24 = v25;
goto addr_1003a9dc_39;
addr_1003a57c_141:
r0_73 = fun_10039628(r0_52, sp9 + 24, 10);
if (!r0_73)
goto label_161;
v37 = reinterpret_cast<void**>(sp9 + 8);
r0_63 = StringCchCopyExW(v25, v27, sp9 + 24, sp9 + 12, v37, 0);
goto addr_1003a648_149;
addr_1003a438_25:
if (reinterpret_cast<unsigned char>(r1_23) <= reinterpret_cast<unsigned char>(1))
goto label_163;
z74 = (reinterpret_cast<unsigned char>(lr28) & 32) == 0;
if (!z74)
goto addr_1003a448_165;
r3_26 = 0x2000;
addr_1003a448_165:
if (z74) {
r3_26 = r3_26 | 14;
}
if (!z74) {
*reinterpret_cast<void***>(r0_24) = reinterpret_cast<void**>(0x200f);
}
if (z74) {
*reinterpret_cast<void***>(r0_24) = reinterpret_cast<void**>(static_cast<uint16_t>(r3_26));
}
r0_24 = v25 + 2;
r1_23 = v27 - 1;
v25 = r0_24;
v27 = r1_23;
goto addr_1003a46c_131;
label_29:
addr_1003a3c4_173:
while (r7_12 = r7_12 + 2, static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r7_12 + 2))) == 0x67) {
}
z29 = static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r10_18))) == 0;
if (z29) {
goto addr_1003a428_105;
} else {
z29 = reinterpret_cast<int1_t>(r4_10 == 3);
if (reinterpret_cast<unsigned char>(r4_10) >= reinterpret_cast<unsigned char>(3)) {
goto addr_1003a428_105;
} else {
if (reinterpret_cast<unsigned char>(r4_10) <= reinterpret_cast<unsigned char>(5)) {
goto addr_1003a3f4_181;
}
z29 = reinterpret_cast<int1_t>(r4_10 == 7);
if (!z29) {
goto addr_1003a428_105;
} else {
addr_1003a3f4_181:
z29 = r8_15 == 0;
if (z29) {
goto addr_1003a428_105;
} else {
v37 = reinterpret_cast<void**>(sp9 + 8);
r0_38 = StringCchCopyExW(r0_24, r1_23, r6_21, sp9 + 12, v37, 0);
goto addr_1003a418_88;
}
}
}
}
addr_1003a390_30:
if (reinterpret_cast<unsigned char>(r1_23) <= reinterpret_cast<unsigned char>(1))
goto label_186;
z75 = (reinterpret_cast<unsigned char>(lr28) & 32) == 0;
if (!z75)
goto addr_1003a3a0_188;
r3_26 = 0x2000;
addr_1003a3a0_188:
if (z75) {
r3_26 = r3_26 | 14;
}
if (!z75) {
*reinterpret_cast<void***>(r0_24) = reinterpret_cast<void**>(0x200f);
}
if (z75) {
*reinterpret_cast<void***>(r0_24) = reinterpret_cast<void**>(static_cast<uint16_t>(r3_26));
}
r0_24 = v25 + 2;
r1_23 = v27 - 1;
v25 = r0_24;
v27 = r1_23;
goto addr_1003a3c4_173;
label_34:
addr_1003a25c_196:
r7_12 = r7_12 + 2;
r1_76 = 0;
if (static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r7_12 + 2))) == 0x79) {
while (r7_12 = r7_12 + 2, r1_76 = r1_76 + 1 << 16 >> 16, static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r7_12 + 2))) == 0x79) {
}
}
z77 = reinterpret_cast<int1_t>(r4_10 == 8);
if (!z77) {
if (!z77)
goto addr_1003a2d8_203;
} else {
r0_78 = fun_10039628(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r9_13)) - r8_15, sp9 + 24, 10);
if (!r0_78)
goto label_205;
v37 = reinterpret_cast<void**>(sp9 + 8);
r0_38 = StringCchCopyExW(v25, v27, sp9 + 24, sp9 + 12, v37, 0);
goto addr_1003a418_88;
}
__asm__("smull lr, r1, r4, r2");
r1_44 = reinterpret_cast<void**>(1);
r0_34 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r9_13)) - r8_15 - (reinterpret_cast<int32_t>(r1_76) >> 5) * 100;
goto addr_1003a858_111;
addr_1003a2d8_203:
if (r1_76 == 1) {
__asm__("smull lr, r1, r4, r2");
r1_44 = reinterpret_cast<void**>(2);
r0_34 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r9_13)) - r8_15 - (reinterpret_cast<int32_t>(r1_76) >> 5) * 100;
goto addr_1003a858_111;
} else {
if (*reinterpret_cast<void***>(r10_18)) {
r4_79 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r9_13)) - r8_15;
if (reinterpret_cast<int32_t>(r4_79) < reinterpret_cast<int32_t>(100)) {
r3_80 = g1003aa14;
r1_44 = reinterpret_cast<void**>(2);
__asm__("smull lr, r3, r4, r3");
r3_81 = reinterpret_cast<uint32_t>(r3_80 >> 5);
r0_34 = r4_79 - (r3_81 + (r3_81 >> 31)) * 100;
goto addr_1003a858_111;
}
}
}
r0_34 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r9_13)) - r8_15;
r1_44 = reinterpret_cast<void**>(4);
goto addr_1003a858_111;
addr_1003a228_35:
if (reinterpret_cast<unsigned char>(r1_23) <= reinterpret_cast<unsigned char>(1))
goto label_217;
z82 = (reinterpret_cast<unsigned char>(lr28) & 32) == 0;
if (!z82)
goto addr_1003a238_219;
r3_26 = 0x2000;
addr_1003a238_219:
if (z82) {
r3_26 = r3_26 | 14;
}
if (!z82) {
*reinterpret_cast<void***>(r0_24) = reinterpret_cast<void**>(0x200f);
}
if (z82) {
*reinterpret_cast<void***>(r0_24) = reinterpret_cast<void**>(static_cast<uint16_t>(r3_26));
}
v25 = v25 + 2;
--v27;
goto addr_1003a25c_196;
}
}
*reinterpret_cast<void***>(r0_24) = reinterpret_cast<void**>(0);
r0_83 = reinterpret_cast<unsigned char>(r0_24 - 2) - reinterpret_cast<unsigned char>(a5) >> 1;
addr_1003aa04_228:
return r0_83;
label_48:
addr_1003a000_6:
r0_83 = 0;
goto addr_1003aa04_228;
label_53:
goto addr_1003a000_6;
label_102:
goto addr_1003a000_6;
label_112:
goto addr_1003a000_6;
label_114:
goto addr_1003a000_6;
label_121:
goto addr_1003a000_6;
label_154:
goto addr_1003a000_6;
label_156:
goto addr_1003a000_6;
label_159:
goto addr_1003a000_6;
label_161:
goto addr_1003a000_6;
label_163:
goto addr_1003a000_6;
label_186:
goto addr_1003a000_6;
label_205:
goto addr_1003a000_6;
label_217:
goto addr_1003a000_6;
label_37:
goto addr_1003a000_6;
addr_1003a014_4:
z84 = static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<unsigned char*>(r10_18 + 10))) == 0;
if (!z84) {
r2 = reinterpret_cast<void**>(92);
}
if (z84) {
r2 = reinterpret_cast<void**>(12);
}
r6_21 = reinterpret_cast<void**>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r10_18 + 2)) + reinterpret_cast<unsigned char>(r2) + reinterpret_cast<unsigned char>(r10_18));
z20 = reinterpret_cast<int1_t>(r4_10 == 3);
if (reinterpret_cast<unsigned char>(r4_10) >= reinterpret_cast<unsigned char>(3)) {
goto addr_1003a1a8_9;
} else {
if (reinterpret_cast<unsigned char>(r4_10) <= reinterpret_cast<unsigned char>(4)) {
r2_85 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r6_21));
if (r4_10 != 4)
goto addr_1003a0a0_237;
} else {
if (r4_10 == 5) {
goto addr_1003a050_240;
}
z20 = reinterpret_cast<int1_t>(r4_10 == 7);
if (!z20) {
goto addr_1003a1a8_9;
} else {
addr_1003a050_240:
r0_86 = fun_1002d954(r6_21);
r2_87 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r0_86));
r3_88 = 0;
goto addr_1003a068_243;
}
}
}
addr_1003a18c_245:
r6_21 = r6_21 - 2;
z20 = static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r6_21))) == 0xffff;
if (z20) {
--r8_15;
}
if (z20) {
goto addr_1003a1a8_9;
} else {
r8_15 = 0;
goto addr_1003a1a8_9;
}
addr_1003a0a0_237:
r4_89 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r9_13));
while (1) {
r1_90 = 0;
while (r3_91 = r2_85 + (r1_90 + (r1_90 << 2) << 1), r2_85 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r6_21 + 2)), r6_21 = r6_21 + 2, r1_90 = r3_91 - 48, r2_85 != 32) {
if (r2_85 == 9)
goto addr_1003a0c8_253;
}
while (1) {
addr_1003a0c8_253:
r6_21 = r6_21 + 2;
if (static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r6_21 + 2))) != 32) {
r3_92 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r6_21));
if (r3_92 != 9)
break;
}
}
r2_93 = r3_92 << 16 >> 16;
r0_94 = 0;
while (r3_95 = r2_93 + (r0_94 + (r0_94 << 2) << 1), r2_93 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r6_21 + 2)), r6_21 = r6_21 + 2, r0_94 = r3_95 - 48, r2_93 != 32) {
if (r2_93 == 9)
goto addr_1003a10c_262;
}
while (1) {
addr_1003a10c_262:
r6_21 = r6_21 + 2;
if (static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r6_21 + 2))) != 32) {
r3_96 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r6_21));
if (r3_96 != 9)
break;
}
}
r2_97 = r3_96 << 16 >> 16;
r8_15 = 0;
while (r3_98 = r2_97 + (r8_15 + (r8_15 << 2) << 1), r2_97 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r6_21 + 2)), r6_21 = r6_21 + 2, r8_15 = r3_98 - 48, r2_97 != 0xffff) {
}
if (reinterpret_cast<int32_t>(r4_89) > reinterpret_cast<int32_t>(r8_15))
break;
if (r4_89 == r8_15) {
r3_99 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r9_13 + 2));
if (r3_99 > r1_90)
goto label_275;
if (r3_99 != r1_90)
goto label_277; else
goto addr_1003a164_278;
}
addr_1003a170_279:
while (r6_21 = r6_21 - 2, z100 = static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r6_21))) == 0, !z100) {
}
r2_85 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r6_21));
if (z100)
goto addr_1003a188_282;
continue;
label_277:
goto addr_1003a170_279;
addr_1003a164_278:
if (static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<unsigned char*>(r9_13 + 6))) < r0_94)
goto label_284; else
goto addr_1003a170_279;
}
addr_1003a188_282:
r4_10 = v11;
goto addr_1003a18c_245;
label_275:
goto addr_1003a188_282;
label_284:
goto addr_1003a188_282;
addr_1003a068_243:
while (r3_101 = r2_87 + (r3_88 + (r3_88 << 2) << 1), r2_87 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r0_86 + 2)), r0_86 = r0_86 + 2, r3_88 = r3_101 - 48, z20 = r2_87 == 0xffff, !z20) {
}
r8_15 = -r3_88;
r6_21 = r0_86 + 2;
goto addr_1003a1a8_9;
}
void** __rt_udiv(void** r0, void** r1, void** r2);
uint32_t fun_1003aa18(void** r0, void** r1, void** r2, void** r3, void** a5) {
void** v6;
void** r4_7;
void** v8;
void** r5_9;
void** v10;
void** r6_11;
void** v12;
void** r7_13;
void** r9_14;
void** v15;
void** r8_16;
void** r4_17;
void** r5_18;
void** r11_19;
void** r2_20;
uint32_t r0_21;
int1_t z22;
uint32_t lr23;
void** r7_24;
void** r2_25;
void** r10_26;
void** v27;
void** r1_28;
int1_t z29;
int1_t z30;
void** r6_31;
void** r7_32;
void** r0_33;
uint32_t r3_34;
uint32_t r3_35;
uint32_t r3_36;
void** r5_37;
void** r2_38;
uint32_t r3_39;
int1_t z40;
uint32_t r0_41;
void** r7_42;
void** r6_43;
void** r0_44;
void** r2_45;
void** r1_46;
uint32_t r3_47;
int1_t z48;
void** r9_49;
void** r6_50;
void** r0_51;
uint32_t r3_52;
v6 = r4_7;
v8 = r5_9;
v10 = r6_11;
v12 = r7_13;
r9_14 = r1;
v15 = r9_14;
r8_16 = r3;
r4_17 = r2;
r5_18 = r0;
r11_19 = r4_17;
r2_20 = r5_18;
r0_21 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_18));
if (!z22) {
lr23 = r0_21;
while (lr23 != 46) {
if (lr23 >= 48)
goto label_6;
if (lr23 > 57)
goto label_8;
lr23 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r2_20 + 2));
r2_20 = r2_20 + 2;
if (!lr23)
goto addr_1003aa70_10;
}
goto label_12;
}
addr_1003aa70_10:
r7_24 = r2_20;
if (*reinterpret_cast<void***>(r2_20)) {
do {
r3 = reinterpret_cast<void**>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r2_20 + 2))));
r2_20 = r2_20 + 2;
if (!r3)
break;
if (reinterpret_cast<unsigned char>(r3) >= reinterpret_cast<unsigned char>(48))
goto label_18;
} while (reinterpret_cast<unsigned char>(r3) <= reinterpret_cast<unsigned char>(57));
goto label_20;
}
if (r0_21 == 48) {
while (r5_18 = r5_18 + 2, static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_18 + 2))) == 48) {
}
}
r2_25 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r7_24) - reinterpret_cast<unsigned char>(r5_18) >> 1);
r10_26 = a5;
v27 = r2_25;
r1_28 = reinterpret_cast<void**>(48);
z29 = r5_18 == r7_24;
if (!z29) {
*reinterpret_cast<void***>(r10_26) = reinterpret_cast<void**>(0);
if (!z29)
goto addr_1003ab18_28;
} else {
*reinterpret_cast<void***>(r10_26) = reinterpret_cast<void**>(1);
if (!*reinterpret_cast<void***>(r9_14 + 4)) {
goto addr_1003ab94_31;
} else {
--r8_16;
if (!r8_16) {
goto addr_1003ad90_34;
} else {
*reinterpret_cast<void***>(r4_17) = reinterpret_cast<void**>(48);
r4_17 = r4_17 - 2;
goto addr_1003ab94_31;
}
}
}
addr_1003abc8_37:
while (--r8_16, !!r8_16) {
r5_18 = r5_18 - 2;
*reinterpret_cast<void***>(r4_17) = reinterpret_cast<void**>(static_cast<uint16_t>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_18)))));
r4_17 = r4_17 - 2;
if (r5_18 == r7_24)
goto addr_1003abe0_39;
}
goto addr_1003ad90_34;
addr_1003abe0_39:
addr_1003ab94_31:
z30 = static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_18))) == 0;
if (!z30) {
r5_18 = r5_18 + 2;
}
r6_31 = *reinterpret_cast<void***>(r9_14);
if (!z30) {
r7_32 = *reinterpret_cast<void***>(r9_14 + 12);
r0_33 = wcslen(r7_32, r1_28, r2_25, *reinterpret_cast<void***>(r9_14), v15, v27, v6, v8, v10, v12);
r8_16 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r8_16) - reinterpret_cast<unsigned char>(r0_33));
if (reinterpret_cast<uint1_t>(reinterpret_cast<signed char>(r8_16) < reinterpret_cast<signed char>(0) != __intrinsic()) | reinterpret_cast<uint1_t>(r8_16 == 0)) {
goto addr_1003ad90_34;
}
r3_34 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r7_32));
while (r3_34) {
*reinterpret_cast<void***>(r4_17) = reinterpret_cast<void**>(static_cast<uint16_t>(r3_34));
r4_17 = r4_17 - 2;
r3_34 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r7_32 + 2));
r7_32 = r7_32 + 2;
}
r3_35 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_18));
if (!r3_35)
goto label_53; else
goto addr_1003ac00_54;
}
addr_1003ac68_55:
r3_36 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_18));
if (r3_36) {
if (r3_36 <= 52) {
goto addr_1003ad80_59;
} else {
r5_37 = r4_17 - 2;
r2_38 = r5_37;
*reinterpret_cast<void***>(r10_26) = reinterpret_cast<void**>(0);
if (reinterpret_cast<unsigned char>(r5_37) >= reinterpret_cast<unsigned char>(r11_19)) {
goto addr_1003acd8_62;
}
while (1) {
r3_39 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r2_38));
z40 = r3_39 == 57;
if (z40) {
*reinterpret_cast<void***>(r2_38) = reinterpret_cast<void**>(48);
}
if (!z40) {
if (r3_39 < 48) {
if (r3_39 <= 56)
goto label_70;
}
}
r2_38 = r2_38 - 2;
if (reinterpret_cast<unsigned char>(r2_38) >= reinterpret_cast<unsigned char>(r11_19))
goto addr_1003acc0_72;
}
}
}
addr_1003ad7c_74:
addr_1003ad80_59:
if (r4_17 == r11_19) {
if (r8_16 - 1) {
*reinterpret_cast<void***>(r4_17) = reinterpret_cast<void**>(48);
r4_17 = r4_17 - 2;
} else {
addr_1003ad90_34:
r0_41 = 0;
goto addr_1003adac_79;
}
}
*reinterpret_cast<void***>(r4_17) = reinterpret_cast<void**>(0);
r0_41 = reinterpret_cast<unsigned char>(r4_17) - reinterpret_cast<unsigned char>(r11_19) + 2 >> 1;
addr_1003adac_79:
return r0_41;
addr_1003acc0_72:
addr_1003acd0_81:
if (reinterpret_cast<unsigned char>(r2_38) < reinterpret_cast<unsigned char>(r11_19)) {
goto addr_1003ad80_59;
} else {
addr_1003acd8_62:
r7_42 = v27;
r6_43 = reinterpret_cast<void**>(1);
if (*reinterpret_cast<void***>(r9_14 + 8)) {
__rt_udiv(*reinterpret_cast<void***>(r9_14 + 8), r7_42, r2_38);
if (!r7_42) {
r0_44 = wcslen(*reinterpret_cast<void***>(r9_14 + 16), r7_42, r2_38, *reinterpret_cast<void***>(r9_14 + 8), v15, v27, v6, v8, v10, v12);
r6_43 = r0_44 + 1;
}
}
}
r8_16 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r8_16) - reinterpret_cast<unsigned char>(r6_43));
if (reinterpret_cast<uint1_t>(reinterpret_cast<signed char>(r8_16) < reinterpret_cast<signed char>(0) != __intrinsic()) | reinterpret_cast<uint1_t>(r8_16 == 0)) {
goto addr_1003ad90_34;
} else {
if (reinterpret_cast<unsigned char>(r5_37) < reinterpret_cast<unsigned char>(r11_19)) {
r2_38 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r6_43) << 1);
while (*reinterpret_cast<int16_t*>(reinterpret_cast<unsigned char>(r2_38) - reinterpret_cast<unsigned char>(r5_37)) = static_cast<int16_t>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_37)))), r5_37 = r5_37 - 2, reinterpret_cast<unsigned char>(r5_37) < reinterpret_cast<unsigned char>(r11_19)) {
}
}
*reinterpret_cast<void***>(r11_19) = reinterpret_cast<void**>(49);
r4_17 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r4_17) + (reinterpret_cast<unsigned char>(r6_43) << 1));
if (!*reinterpret_cast<void***>(r9_14 + 8)) {
goto addr_1003ad7c_74;
} else {
__rt_udiv(*reinterpret_cast<void***>(r9_14 + 8), r7_42, r2_38);
if (r7_42) {
goto addr_1003ad7c_74;
} else {
r2_45 = *reinterpret_cast<void***>(r9_14 + 16);
r1_46 = r11_19 + 2;
r3_47 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r2_45));
while (1) {
z48 = r3_47 == 0;
if (!z48) {
*reinterpret_cast<void***>(r1_46) = reinterpret_cast<void**>(static_cast<uint16_t>(r3_47));
r1_46 = r1_46 - 2;
}
if (!z48) {
r3_47 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r2_45 + 2));
r2_45 = r2_45 + 2;
}
if (z48)
goto addr_1003ad7c_74;
}
}
}
}
label_70:
*reinterpret_cast<void***>(r2_38) = reinterpret_cast<void**>(static_cast<uint16_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r2_38)) + 1));
goto addr_1003acd0_81;
label_53:
addr_1003ac34_106:
if (*reinterpret_cast<void***>(r5_18)) {
goto addr_1003ac68_55;
} else {
while (r6_31) {
--r6_31;
--r8_16;
if (!r8_16)
goto label_112;
*reinterpret_cast<void***>(r4_17) = reinterpret_cast<void**>(48);
r4_17 = r4_17 - 2;
}
}
goto addr_1003ac68_55;
label_112:
goto addr_1003ad90_34;
addr_1003ac00_54:
while (r6_31) {
if (r3_35 != 48) {
*reinterpret_cast<void***>(r10_26) = reinterpret_cast<void**>(0);
}
--r8_16;
if (!r8_16)
goto label_119;
r5_18 = r5_18 - 2;
--r6_31;
*reinterpret_cast<void***>(r4_17) = reinterpret_cast<void**>(static_cast<uint16_t>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_18)))));
r4_17 = r4_17 - 2;
r3_35 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_18));
if (!r3_35)
goto addr_1003ac34_106;
}
goto addr_1003ac34_106;
label_119:
goto addr_1003ad90_34;
addr_1003ab18_28:
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r9_14 + 8)) < reinterpret_cast<unsigned char>(r2_25)) {
goto addr_1003abc8_37;
} else {
r1_28 = r2_25;
__rt_udiv(*reinterpret_cast<void***>(r9_14 + 8), r1_28, r2_25);
r9_49 = r1_28;
if (*reinterpret_cast<void***>(r9_14 + 8) == r2_25) {
r9_49 = *reinterpret_cast<void***>(r9_14 + 8);
}
while (--r8_16, !!r8_16) {
r5_18 = r5_18 - 2;
--r9_49;
*reinterpret_cast<void***>(r4_17) = reinterpret_cast<void**>(static_cast<uint16_t>(static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r5_18)))));
r4_17 = r4_17 - 2;
if (!r9_49) {
if (r5_18 == r7_24)
goto label_130;
r6_50 = *reinterpret_cast<void***>(v15 + 16);
r9_49 = *reinterpret_cast<void***>(v15 + 8);
r0_51 = wcslen(r6_50, r1_28, r2_25, v15, v15, v27, v6, v8, v10, v12);
r8_16 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r8_16) - reinterpret_cast<unsigned char>(r0_51));
if (reinterpret_cast<uint1_t>(reinterpret_cast<signed char>(r8_16) < reinterpret_cast<signed char>(0) != __intrinsic()) | reinterpret_cast<uint1_t>(r8_16 == 0))
goto label_132;
r3_52 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r6_50));
while (r3_52) {
*reinterpret_cast<void***>(r4_17) = reinterpret_cast<void**>(static_cast<uint16_t>(r3_52));
r4_17 = r4_17 - 2;
r3_52 = reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r6_50 + 2));
r6_50 = r6_50 + 2;
}
}
if (r5_18 == r7_24)
goto addr_1003ab90_138;
}
}
goto addr_1003ad90_34;
addr_1003ab90_138:
r9_14 = v15;
goto addr_1003ab94_31;
label_130:
goto addr_1003ab90_138;
label_132:
goto addr_1003ad90_34;
label_18:
addr_1003aa84_141:
SetLastError(87, r1, r2_20, r3);
r0_41 = 0;
goto addr_1003adac_79;
label_20:
goto addr_1003aa84_141;
label_12:
goto addr_1003aa70_10;
label_6:
goto addr_1003aa84_141;
label_8:
goto addr_1003aa84_141;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(0x7c);
void** fun_1003af60(void** r0, void** r1, void** r2, void** r3, void** a5, void** a6) {
void** v7;
void** r4_8;
void** v9;
void** r5_10;
void** v11;
void** r6_12;
void** v13;
void** r7_14;
void** v15;
void** r8_16;
void** v17;
void** r9_18;
void** v19;
void** r10_20;
void** r5_21;
void** r8_22;
void** r6_23;
void** r9_24;
void** r11_25;
int32_t r10_26;
void** r4_27;
void** v28;
void** v29;
void** r0_30;
void** v31;
uint32_t r0_32;
void** r4_33;
int1_t z34;
int32_t v35;
void** v36;
void** r0_37;
void* r5_38;
void** v39;
void*** r4_40;
void** r3_41;
void** v42;
void** r0_43;
void** r3_44;
void** v45;
void** r0_46;
v7 = r4_8;
v9 = r5_10;
v11 = r6_12;
v13 = r7_14;
v15 = r8_16;
v17 = r9_18;
v19 = r10_20;
r5_21 = r3;
r8_22 = r2;
r6_23 = r1;
r9_24 = r0;
r11_25 = reinterpret_cast<void**>(reinterpret_cast<int32_t>(__zero_stack_offset()) - 36 - 8 + 4);
while (1) {
if (static_cast<uint32_t>(reinterpret_cast<uint16_t>(*reinterpret_cast<void***>(r9_24))) != 45) {
r10_26 = 0;
} else {
r10_26 = 1;
r9_24 = r9_24 + 2;
}
r4_27 = r8_22;
if (!r10_26) {
if (*reinterpret_cast<void***>(r6_23 + 24))
goto addr_1003b1f4_9;
} else {
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r6_23 + 20)) <= reinterpret_cast<unsigned char>(15))
goto addr_1003afb0_11;
goto addr_1003b25c_13;
}
r0_30 = wcslen(*reinterpret_cast<void***>(r6_23 + 28), 40, r2, *reinterpret_cast<void***>(r6_23 + 24), v28, v29, v7, v9, v11, v13);
r5_21 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r5_21) - reinterpret_cast<unsigned char>(r0_30));
if (reinterpret_cast<uint1_t>(reinterpret_cast<signed char>(r5_21) < reinterpret_cast<signed char>(0) != __intrinsic()) | reinterpret_cast<uint1_t>(r5_21 == 0))
break;
memcpy(r8_22, *reinterpret_cast<void***>(r6_23 + 28), reinterpret_cast<unsigned char>(r0_30) << 1, *reinterpret_cast<void***>(r6_23 + 24), v28, v31, v7, v9, v11, v13, v15, v17, v19);
r4_27 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r8_22) + (reinterpret_cast<unsigned char>(r0_30) << 1));
addr_1003b25c_13:
v28 = r11_25;
r0_32 = fun_1003aa18(r9_24, r6_23, r4_27, r5_21, v28);
if (!r0_32)
goto label_18;
r2 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r5_21) - r0_32);
r4_33 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r4_27) + (r0_32 << 1) - 2);
r5_21 = r2 + 1;
if (!r10_26)
goto label_20;
z34 = v35 == 0;
if (!z34) {
r9_24 = image_base_;
}
if (z34)
goto addr_1003b2a4_24;
continue;
addr_1003b1f4_9:
if (!reinterpret_cast<int1_t>(*reinterpret_cast<void***>(r6_23 + 24) == 2)) {
goto addr_1003b25c_13;
} else {
r0_37 = wcslen(*reinterpret_cast<void***>(r6_23 + 28), 40, r2, *reinterpret_cast<void***>(r6_23 + 24), v28, v36, v7, v9, v11, v13);
r5_38 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(r5_21) - reinterpret_cast<unsigned char>(r0_37));
if (reinterpret_cast<uint1_t>(reinterpret_cast<int32_t>(r5_38) < reinterpret_cast<int32_t>(0) != __intrinsic()) | reinterpret_cast<uint1_t>(r5_38 == 0))
goto label_28;
memcpy(r8_22, *reinterpret_cast<void***>(r6_23 + 28), reinterpret_cast<unsigned char>(r0_37) << 1, *reinterpret_cast<void***>(r6_23 + 24), v28, v39, v7, v9, v11, v13, v15, v17, v19);
r4_40 = reinterpret_cast<void***>(reinterpret_cast<unsigned char>(r8_22) + (reinterpret_cast<unsigned char>(r0_37) << 1));
r5_21 = reinterpret_cast<void**>(reinterpret_cast<uint32_t>(r5_38) - 1);
if (!r5_21)
goto label_30;
*r4_40 = reinterpret_cast<void**>(32);
r4_27 = reinterpret_cast<void**>(r4_40 - 2);
goto addr_1003b25c_13;
}
}
goto addr_1003b518_33;
label_18:
goto addr_1003b518_33;
label_20:
r3_41 = *reinterpret_cast<void***>(r6_23 + 24);
if (r3_41 != 1) {
if (!reinterpret_cast<int1_t>(r3_41 == 3)) {
goto addr_1003b534_38;
} else {
--r5_21;
if (!r5_21) {
goto addr_1003b518_33;
} else {
*reinterpret_cast<void***>(r4_33) = reinterpret_cast<void**>(32);
r4_33 = r4_33 - 2;
}
}
}
r0_43 = wcslen(*reinterpret_cast<void***>(r6_23 + 28), r6_23, r2, r3_41, v28, v42, v7, v9, v11, v13);
r3_44 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r5_21) - reinterpret_cast<unsigned char>(r0_43));
if (!reinterpret_cast<uint1_t>(reinterpret_cast<uint1_t>(reinterpret_cast<signed char>(r3_44) < reinterpret_cast<signed char>(0) != __intrinsic()) | reinterpret_cast<uint1_t>(r3_44 == 0))) {
memcpy(r4_33, *reinterpret_cast<void***>(r6_23 + 28), reinterpret_cast<unsigned char>(r0_43) << 1, r3_44, v28, v45, v7, v9, v11, v13, v15, v17, v19);
r4_33 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r4_33) + (reinterpret_cast<unsigned char>(r0_43) << 1));
} else {
addr_1003b518_33:
r0_46 = reinterpret_cast<void**>(0);
goto addr_1003b544_46;
}
addr_1003b534_38:
*reinterpret_cast<void***>(r4_33) = reinterpret_cast<void**>(0);
r0_46 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r4_33) - reinterpret_cast<unsigned char>(r8_22) + 2 >> 1);
addr_1003b544_46:
return r0_46;
addr_1003b2a4_24:
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r6_23 + 20)) > reinterpret_cast<unsigned char>(15)) {
goto addr_1003b534_38;
} else {
goto 0x1003b2c4 + *reinterpret_cast<uint16_t*>((reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r6_23 + 20)) << 1) + 0x1003b2bc + 4);
}
label_28:
goto addr_1003b518_33;
label_30:
goto addr_1003b518_33;
addr_1003afb0_11:
goto 0x1003afc4 + *reinterpret_cast<uint16_t*>((reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r6_23 + 20)) << 1) + 0x1003afbc + 4);
}
void** fun_1003ba34(void** r0, void** r1, void** r2, void** r3) {
void** r3_5;
int1_t z6;
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r0)) <= reinterpret_cast<unsigned char>(9)) {
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r0 + 4)) <= reinterpret_cast<unsigned char>(1)) {
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r0 + 8)) <= reinterpret_cast<unsigned char>(9)) {
if (reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r0 + 20)) <= reinterpret_cast<unsigned char>(4)) {
r3_5 = *reinterpret_cast<void***>(r0 + 12);
z6 = r3_5 == 0;
if (!z6) {
r3_5 = *reinterpret_cast<void***>(r0 + 16);
}
if (!z6) {
z6 = r3_5 == 0;
}
if (!z6) {
r0 = reinterpret_cast<void**>(1);
}
if (!z6) {
return r0;
}
}
}
}
}
return 0;
}
struct s107 {
signed char[960] pad960;
int32_t f3c0;
};
/* (image base) */
struct s107* image_base_ = reinterpret_cast<struct s107*>(0x1007a390);
void** fun_1003c820(void** r0) {
struct s107* r3_2;
r3_2 = image_base_;
goto r3_2->f3c0;
}
struct s108 {
signed char[680] pad680;
int32_t f2a8;
};
/* (image base) */
struct s108* image_base_ = reinterpret_cast<struct s108*>(0x1007a060);
void** fun_1003c840(void** r0, void** r1, void** r2) {
struct s108* r3_4;
r3_4 = image_base_;
goto r3_4->f2a8;
}
struct s109 {
signed char[964] pad964;
int32_t f3c4;
};
/* (image base) */
struct s109* image_base_ = reinterpret_cast<struct s109*>(0x1007a390);
void** fun_1003c860(void** r0, void** r1, void** r2, void* r3, void* a5, void* a6, void* a7) {
struct s109* lr8;
int32_t r7_9;
lr8 = image_base_;
r7_9 = lr8->f3c4;
goto r7_9;
}
struct s110 {
signed char[984] pad984;
int32_t f3d8;
};
/* (image base) */
struct s110* image_base_ = reinterpret_cast<struct s110*>(0x1007a390);
int32_t ImmGetHotKey(void** r0, void** r1, void** r2, void** r3) {
struct s110* lr5;
lr5 = image_base_;
goto lr5->f3d8;
}
/* (image base) */
void** image_base_ = reinterpret_cast<void**>(96);
void** fun_1003c98c(void** r0) {
void** r1_2;
int1_t z3;
void** r0_4;
int1_t z5;
void** r3_6;
int1_t z7;
int1_t z8;
void** r0_9;
void** r2_10;
void** v11;
void** v12;
void** r11_13;
void** v14;
void** v15;
void** v16;
void** v17;
void** v18;
void** r0_19;
int1_t z20;
r1_2 = r0;
if (z3) {
r0_4 = GetCallerProcess();
r1_2 = r0_4;
if (z5) {
r3_6 = reinterpret_cast<void**>(12);
}
if (z7) {
r3_6 = reinterpret_cast<void**>(0xffffc80c);
}
if (z8) {
r1_2 = *reinterpret_cast<void***>(r3_6);
}
}
r0_9 = image_base_;
r0_19 = MapPtrToProcess(r0_9, r1_2, r2_10, r3_6, v11, v12, r11_13, __zero_stack_offset(), __return_address(), v14, v15, v16, v17, v18);
z20 = r0_19 == 0;
if (!z20) {
r0_19 = *reinterpret_cast<void***>(r0_19);
}
if (z20) {
r0_19 = reinterpret_cast<void**>(0);
}
__asm__("ldmdb fp, {fp, sp, lr}");
return r0_19;
}
void** fun_1003c9ec(void** r0, void** r1) {
int1_t z3;
void** r3_4;
z3 = (reinterpret_cast<unsigned char>(r1) & 0xfe000000) == 0;
if (z3) {
r3_4 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r0) & 0xfe000000);
}
if (z3) {
r1 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r3_4) | reinterpret_cast<unsigned char>(r1));
}
if (reinterpret_cast<unsigned char>(r1) < reinterpret_cast<unsigned char>(0x4000000)) {
if (reinterpret_cast<signed char>(r1) < reinterpret_cast<signed char>(0x42000000)) {
if (!(reinterpret_cast<unsigned char>(r1) & 0x80000000)) {
goto addr_1003ca1c_11;
}
r3_4 = reinterpret_cast<void**>(reinterpret_cast<unsigned char>(r1) & 0xfe000000);
if (reinterpret_cast<int1_t>(r3_4 == 0xc2000000)) {
addr_1003ca1c_11:
__asm__("bic r3, r1, #0xfe000000");
goto addr_1003ca28_14;
}
}
}
r3_4 = r1;
addr_1003ca28_14:
if (reinterpret_cast<unsigned char>(r3_4) >= reinterpret_cast<unsigned char>(0x10000)) {
r1 = reinterpret_cast<void**>(0);
}
return r1;
}
void RemoteHeapAlloc(void** r0, void** r1, void** r2, void** r3) {
void** lr5;
int1_t z6;
void** r0_7;
int1_t z8;
lr5 = r1;
if (z6) {
r0_7 = fun_1003c98c(r0);
lr5 = r0_7;
if (z8) {
SetLastError(87, r1, r2, r3, 87, r1, r2, r3);
__asm__("ldmdb fp, {r4, r5, fp, sp, lr}");
goto lr5;
}
}
Int_HeapAlloc(lr5, r2, r3);
__asm__("ldmdb fp, {r4, r5, fp, sp, lr}");
goto lr5;
}
void** RemoteHeapReAlloc(void** r0, void** r1, void** r2, void** r3, void** a5) {
void** r4_6;
int1_t z7;
void** r0_8;
int1_t z9;
void** r0_10;
void** r0_11;
r4_6 = r1;
if (!z7) {
goto addr_1003cae0_3;
} else {
r0_8 = fun_1003c98c(r0);
r4_6 = r0_8;
if (!z9) {
addr_1003cae0_3:
r1 = a5;
r0_10 = fun_1003c9ec(r4_6, r1);
if (r0_10) {
r0_11 = Int_HeapReAlloc(r4_6, r2, r0_10, r3);
__asm__("ldmdb fp, {r4, r5, r6, fp, sp, lr}");
return r0_11;
}
}
SetLastError(87, r1, r2, r3, 87, r1, r2, r3);
__asm__("ldmdb fp, {r4, r5, r6, fp, sp, lr}");
return 0;
}
}
void** RemoteHeapFree(void** r0, void** r1, void** r2, void** r3) {
void** r4_5;
int1_t z6;
void** r0_7;
int1_t z8;
void** r0_9;
void** r0_10;
r4_5 = r1;
if (!z6) {
goto addr_1003cb6c_3;
} else {
r0_7 = fun_1003c98c(r0);
r4_5 = r0_7;
if (!z8) {
addr_1003cb6c_3:
r1 = r3;
r0_9 = fun_1003c9ec(r4_5, r1);
if (r0_9) {
r0_10 = Int_HeapFree(r4_5, r2, r0_9);
__asm__("ldmdb fp, {r4, r5, r6, fp, sp, lr}");
return r0_10;
}
}
SetLastError(87, r1, r2, r3, 87, r1, r2, r3);
__asm__("ldmdb fp, {r4, r5, r6, fp, sp, lr}");
return 0;
}
}
void** RemoteHeapSize(void** r0, void** r1, void** r2, void** r3) {
void** r4_5;
int1_t z6;
void** r0_7;
int1_t z8;
void** r0_9;
void** r0_10;
r4_5 = r1;
if (!z6) {
goto addr_1003cbf4_3;
} else {
r0_7 = fun_1003c98c(r0);
r4_5 = r0_7;
if (!z8) {
addr_1003cbf4_3:
r1 = r3;
r0_9 = fun_1003c9ec(r4_5, r1);
if (r0_9) {
r0_10 = Int_HeapSize(r4_5, r2, r0_9);
__asm__("ldmdb fp, {r4, r5, r6, fp, sp, lr}");
return r0_10;
}
}
SetLastError(87, r1, r2, r3, 87, r1, r2, r3);
__asm__("ldmdb fp, {r4, r5, r6, fp, sp, lr}");
return 0xffffffff;
}
}
int32_t g1003d998 = 0x28955b88;
int32_t g1003d994 = 0x173848aa;
void* g1003d990 = reinterpret_cast<void*>(0x242070db);
int32_t g1003d98c = 0x3e423112;
int32_t g1003d988 = 0xa83f051;
void* g1003d984 = reinterpret_cast<void*>(0x4787c62a);
int32_t g1003d980 = 0x57cfb9ed;
int32_t g1003d97c = 0x2b96aff;
void* g1003d978 = reinterpret_cast<void*>(0x698098d8);
int32_t g1003d974 = 0x74bb0851;
int32_t g1003d970 = 0x76a32842;
void* g1003d96c = reinterpret_cast<void*>(0x6b901122);
int32_t g1003d968 = 0x2678e6d;
int32_t g1003d964 = 0x5986bc72;
void* g1003d960 = reinterpret_cast<void*>(0x49b40821);
int32_t g1003d95c = 0x9e1da9e;
int32_t g1003d958 = 0x3fbf4cc0;
void* g1003d954 = reinterpret_cast<void*>(0x265e5a51);
int32_t g1003d950 = 0x16493856;
int32_t g1003d94c = 0x29d0efa3;
void* g1003d948 = reinterpret_cast<void*>(0x2441453);
int32_t g1003d944 = 0x275e197f;
int32_t g1003d940 = 0x182c0438;
void* g1003d93c = reinterpret_cast<void*>(0x21e1cde6);
int32_t g1003d938 = 0x3cc8f82a;
int32_t g1003d934 = 0xb2af279;
void* g1003d930 = reinterpret_cast<void*>(0x455a14ed);
int32_t g1003d92c = 0x561c16fb;
int32_t g1003d928 = 0x3105c08;
void* g1003d924 = reinterpret_cast<void*>(0x676f02d9);
int32_t g1003d920 = 0x72d5b376;
int32_t g1003d91c = 0x5c6be;
int32_t g1003d918 = 0x788e097f;
void* g1003d914 = reinterpret_cast<void*>(0x6d9d6122);
int32_t g1003d910 = 0x21ac7f4;
int32_t g1003d90c = 0x5b4115bc;
void* g1003d908 = reinterpret_cast<void*>(0x4bdecfa9);
int32_t g1003d904 = 0x944b4a0;
int32_t g1003d900 = 0x41404390;
void* g1003d8fc = reinterpret_cast<void*>(0x289b7ec6);
int32_t g1003d8f8 = 0x155ed806;
int32_t g1003d8f4 = 0x2b10cf7b;
void* g1003d8f0 = reinterpret_cast<void*>(0x4881d05);
int32_t g1003d8ec = 0x262b2fc7;
int32_t g1003d8e8 = 0x1924661b;
void* g1003d8e4 = reinterpret_cast<void*>(0x1fa27cf8);
int32_t g1003d8e0 = 0x3b53a99b;
int32_t g1003d8dc = 0xbd6ddbc;
void* g1003d8d8 = reinterpret_cast<void*>(0x432aff97);
int32_t g1003d8d4 = 0x546bdc59;
int32_t g1003d8d0 = 0x36c5fc7;
void* g1003d8cc = reinterpret_cast<void*>(0x655b59c3);
int32_t g1003d8c8 = 0x70f3336e;
int32_t g1003d8c4 = 0x100b83;
int32_t g1003d8c0 = 0x7a7ba22f;
void* g1003d8bc = reinterpret_cast<void*>(0x6fa87e4f);
int32_t g1003d8b8 = 0x1d31920;
int32_t g1003d8b4 = 0x5cfebcec;
void* g1003d8b0 = reinterpret_cast<void*>(0x4e0811a1);
int32_t g1003d8ac = 0x8ac817e;
int32_t g1003d8a8 = 0x42c50dcb;
void* g1003d8a4 = reinterpret_cast<void*>(0x2ad7d2bb);
void** fun_1003ce0c(void** r0, void** r1, void** r2) {
void** r6_4;
void** r8_5;
void** r7_6;
void* r1_7;
int32_t r2_8;
uint32_t r4_9;
uint32_t r3_10;
uint32_t r2_11;
uint32_t lr12;
void* r5_13;
void* r2_14;
int32_t r2_15;
uint32_t r3_16;
void* r4_17;
void* r2_18;
void* r2_19;
void* r3_20;
void* r6_21;
void* r2_22;
int32_t r2_23;
uint32_t r3_24;
void* r7_25;
void* r2_26;
int32_t r3_27;
uint32_t r3_28;
void* r5_29;
void* r2_30;
void* r2_31;
void* r3_32;
void* r4_33;
void* r2_34;
int32_t r2_35;
uint32_t r3_36;
void* r6_37;
void* r2_38;
int32_t r2_39;
uint32_t r3_40;
void* r7_41;
void* r2_42;
void* r2_43;
void* r3_44;
void* r8_45;
void* r2_46;
int32_t r2_47;
uint32_t lr48;
void* r5_49;
void* r2_50;
uint32_t r3_51;
void* r9_52;
void* r2_53;
int32_t r2_54;
uint32_t r3_55;
void* r7_56;
void* r11_57;
void* r2_58;
void* r3_59;
void* r4_60;
void* r2_61;
int32_t r2_62;
uint32_t r3_63;
void* r6_64;
void* r8_65;
int32_t r2_66;
uint32_t lr67;
void* r5_68;
void* r9_69;
void* r2_70;
void* r3_71;
void* r0_72;
int32_t r1_73;
uint32_t r3_74;
void* r4_75;
int32_t r2_76;
void* r1_77;
uint32_t r3_78;
void* lr79;
void* r3_80;
void* r5_81;
int32_t r2_82;
int32_t r1_83;
uint32_t r3_84;
void* r0_85;
uint32_t r3_86;
void* r4_87;
void* r2_88;
int32_t r1_89;
void* r3_90;
void* lr91;
uint32_t r3_92;
void* r5_93;
int32_t r2_94;
void* r1_95;
uint32_t r3_96;
void* r0_97;
void* r3_98;
void* r6_99;
int32_t r2_100;
uint32_t r3_101;
void* r4_102;
int32_t r1_103;
uint32_t r3_104;
void* r7_105;
void* r2_106;
void* r3_107;
void* r5_108;
int32_t r1_109;
uint32_t r3_110;
void* lr111;
int32_t r2_112;
void* r1_113;
uint32_t r3_114;
void* r0_115;
void* r3_116;
void* r6_117;
uint32_t r1_118;
int32_t r2_119;
uint32_t r3_120;
void* r5_121;
int32_t r2_122;
uint32_t r3_123;
void* lr124;
int32_t r2_125;
void* r1_126;
uint32_t r3_127;
void* r4_128;
void* r3_129;
void* r6_130;
uint32_t r0_131;
int32_t r2_132;
uint32_t r3_133;
void* r5_134;
int32_t r1_135;
uint32_t r3_136;
void* r7_137;
void* r2_138;
int32_t r1_139;
void* r3_140;
void* lr141;
uint32_t r3_142;
void* r6_143;
uint32_t r0_144;
int32_t r2_145;
void* r1_146;
uint32_t r3_147;
void* r4_148;
void* r3_149;
void* r5_150;
int32_t r2_151;
int32_t r1_152;
uint32_t r3_153;
void* lr154;
uint32_t r3_155;
void* r6_156;
uint32_t r0_157;
void* r2_158;
int32_t r1_159;
void* r3_160;
void* r4_161;
uint32_t r3_162;
void* r0_163;
int32_t r2_164;
uint32_t r3_165;
void* lr166;
void* r1_167;
void* r3_168;
void* r5_169;
int32_t r2_170;
uint32_t r3_171;
void* r4_172;
int32_t r2_173;
uint32_t r3_174;
void* r0_175;
void* r2_176;
void* r3_177;
void* lr178;
int32_t r2_179;
uint32_t r3_180;
void* r5_181;
int32_t r2_182;
uint32_t r3_183;
void* r4_184;
void* r2_185;
void* r3_186;
void* r0_187;
int32_t r2_188;
uint32_t r3_189;
void* lr190;
int32_t r2_191;
uint32_t r3_192;
void* r5_193;
int32_t r2_194;
uint32_t r3_195;
void* r4_196;
void* r2_197;
void* r3_198;
void* r0_199;
int32_t r2_200;
uint32_t r3_201;
void* lr202;
int32_t r2_203;
uint32_t r3_204;
void* r5_205;
void* r2_206;
void* r3_207;
void* r6_208;
int32_t r2_209;
uint32_t r3_210;
void* r0_211;
int32_t r2_212;
uint32_t r3_213;
void* r4_214;
void* r2_215;
void* r3_216;
void** r0_217;
void** r1_218;
r6_4 = *reinterpret_cast<void***>(r0 + 8);
r8_5 = *reinterpret_cast<void***>(r0 + 12);
r7_6 = *reinterpret_cast<void***>(r0 + 4);
r1_7 = reinterpret_cast<void*>(static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1))) | static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1 + 1))) << 8 | static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1 + 2))) << 16 | static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1 + 3))) << 24);
r2_8 = g1003d998;
r4_9 = reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1 + 4));
r3_10 = ((reinterpret_cast<unsigned char>(r8_5) ^ reinterpret_cast<unsigned char>(r6_4)) & reinterpret_cast<unsigned char>(r7_6) ^ reinterpret_cast<unsigned char>(r8_5)) + reinterpret_cast<uint32_t>(r1_7) + reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r0)) - r2_8;
r2_11 = *reinterpret_cast<unsigned char*>(r1 + 5);
lr12 = *reinterpret_cast<unsigned char*>(r1 + 6);
r5_13 = reinterpret_cast<void*>(reinterpret_cast<unsigned char>(r7_6) + (r3_10 >> 25 | r3_10 << 7));
r2_14 = reinterpret_cast<void*>(r4_9 | r2_11 << 8 | lr12 << 16 | static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1 + 7))) << 24);
r2_15 = g1003d994;
r3_16 = ((reinterpret_cast<unsigned char>(r6_4) ^ reinterpret_cast<unsigned char>(r7_6)) & reinterpret_cast<uint32_t>(r5_13) ^ reinterpret_cast<unsigned char>(r6_4)) + reinterpret_cast<uint32_t>(r2_14) + reinterpret_cast<unsigned char>(r8_5) - r2_15;
r4_17 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r5_13) + (r3_16 >> 20 | r3_16 << 12));
r2_18 = reinterpret_cast<void*>(static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1 + 8))) | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 9)) << 8 | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 10)) << 16 | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 11)) << 24);
r2_19 = g1003d990;
r3_20 = reinterpret_cast<void*>(((reinterpret_cast<unsigned char>(r7_6) ^ reinterpret_cast<uint32_t>(r5_13)) & reinterpret_cast<uint32_t>(r4_17) ^ reinterpret_cast<unsigned char>(r7_6)) + reinterpret_cast<uint32_t>(r2_18) + reinterpret_cast<unsigned char>(r6_4) + reinterpret_cast<int32_t>(r2_19));
r6_21 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r4_17) + (reinterpret_cast<uint32_t>(r3_20) >> 15 | reinterpret_cast<uint32_t>(r3_20) << 17));
r2_22 = reinterpret_cast<void*>(static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1 + 12))) | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 13)) << 8 | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 14)) << 16 | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 15)) << 24);
r2_23 = g1003d98c;
r3_24 = ((reinterpret_cast<uint32_t>(r4_17) ^ reinterpret_cast<uint32_t>(r5_13)) & reinterpret_cast<uint32_t>(r6_21) ^ reinterpret_cast<uint32_t>(r5_13)) + reinterpret_cast<uint32_t>(r2_22) + reinterpret_cast<unsigned char>(r7_6) - r2_23;
r7_25 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r6_21) + (r3_24 >> 10 | r3_24 << 22));
r2_26 = reinterpret_cast<void*>(static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1 + 16))) | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 17)) << 8 | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 18)) << 16 | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 19)) << 24);
r3_27 = g1003d988;
r3_28 = ((reinterpret_cast<uint32_t>(r4_17) ^ reinterpret_cast<uint32_t>(r6_21)) & reinterpret_cast<uint32_t>(r7_25) ^ reinterpret_cast<uint32_t>(r4_17)) + reinterpret_cast<uint32_t>(r2_26) + reinterpret_cast<uint32_t>(r5_13) - r3_27;
r5_29 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r7_25) + (r3_28 >> 25 | r3_28 << 7));
r2_30 = reinterpret_cast<void*>(static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1 + 20))) | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 21)) << 8 | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 22)) << 16 | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 23)) << 24);
r2_31 = g1003d984;
r3_32 = reinterpret_cast<void*>(((reinterpret_cast<uint32_t>(r6_21) ^ reinterpret_cast<uint32_t>(r7_25)) & reinterpret_cast<uint32_t>(r5_29) ^ reinterpret_cast<uint32_t>(r6_21)) + reinterpret_cast<uint32_t>(r2_30) + reinterpret_cast<uint32_t>(r4_17) + reinterpret_cast<int32_t>(r2_31));
r4_33 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r5_29) + (reinterpret_cast<uint32_t>(r3_32) >> 20 | reinterpret_cast<uint32_t>(r3_32) << 12));
r2_34 = reinterpret_cast<void*>(static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1 + 24))) | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 25)) << 8 | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 26)) << 16 | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 27)) << 24);
r2_35 = g1003d980;
r3_36 = ((reinterpret_cast<uint32_t>(r7_25) ^ reinterpret_cast<uint32_t>(r5_29)) & reinterpret_cast<uint32_t>(r4_33) ^ reinterpret_cast<uint32_t>(r7_25)) + reinterpret_cast<uint32_t>(r2_34) + reinterpret_cast<uint32_t>(r6_21) - r2_35;
r6_37 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r4_33) + (r3_36 >> 15 | r3_36 << 17));
r2_38 = reinterpret_cast<void*>(static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1 + 28))) | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 29)) << 8 | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 30)) << 16 | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 31)) << 24);
r2_39 = g1003d97c;
r3_40 = ((reinterpret_cast<uint32_t>(r4_33) ^ reinterpret_cast<uint32_t>(r5_29)) & reinterpret_cast<uint32_t>(r6_37) ^ reinterpret_cast<uint32_t>(r5_29)) + reinterpret_cast<uint32_t>(r2_38) + reinterpret_cast<uint32_t>(r7_25) - r2_39;
r7_41 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r6_37) + (r3_40 >> 10 | r3_40 << 22));
r2_42 = reinterpret_cast<void*>(static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1 + 32))) | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 33)) << 8 | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 34)) << 16 | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 35)) << 24);
r2_43 = g1003d978;
r3_44 = reinterpret_cast<void*>(((reinterpret_cast<uint32_t>(r4_33) ^ reinterpret_cast<uint32_t>(r6_37)) & reinterpret_cast<uint32_t>(r7_41) ^ reinterpret_cast<uint32_t>(r4_33)) + reinterpret_cast<uint32_t>(r2_42) + reinterpret_cast<uint32_t>(r5_29) + reinterpret_cast<int32_t>(r2_43));
r8_45 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r7_41) + (reinterpret_cast<uint32_t>(r3_44) >> 25 | reinterpret_cast<uint32_t>(r3_44) << 7));
r2_46 = reinterpret_cast<void*>(static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1 + 36))) | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 37)) << 8 | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 38)) << 16 | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 39)) << 24);
r2_47 = g1003d974;
lr48 = ((reinterpret_cast<uint32_t>(r6_37) ^ reinterpret_cast<uint32_t>(r7_41)) & reinterpret_cast<uint32_t>(r8_45) ^ reinterpret_cast<uint32_t>(r6_37)) + reinterpret_cast<uint32_t>(r2_46) + reinterpret_cast<uint32_t>(r4_33) - r2_47;
r5_49 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r8_45) + (lr48 >> 20 | lr48 << 12));
r2_50 = reinterpret_cast<void*>(static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1 + 40))) | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 41)) << 8 | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 42)) << 16 | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 43)) << 24);
r3_51 = ((reinterpret_cast<uint32_t>(r7_41) ^ reinterpret_cast<uint32_t>(r8_45)) & reinterpret_cast<uint32_t>(r5_49) ^ reinterpret_cast<uint32_t>(r7_41)) + reinterpret_cast<uint32_t>(r2_50) + reinterpret_cast<uint32_t>(r6_37) - 0xa44f;
r9_52 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r5_49) + (r3_51 >> 15 | r3_51 << 17));
r2_53 = reinterpret_cast<void*>(static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1 + 44))) | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 45)) << 8 | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 46)) << 16 | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 47)) << 24);
r2_54 = g1003d970;
r3_55 = ((reinterpret_cast<uint32_t>(r5_49) ^ reinterpret_cast<uint32_t>(r8_45)) & reinterpret_cast<uint32_t>(r9_52) ^ reinterpret_cast<uint32_t>(r8_45)) + reinterpret_cast<uint32_t>(r2_53) + reinterpret_cast<uint32_t>(r7_41) - r2_54;
r7_56 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r9_52) + (r3_55 >> 10 | r3_55 << 22));
r11_57 = reinterpret_cast<void*>(static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1 + 48))) | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 49)) << 8 | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 50)) << 16 | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 51)) << 24);
r2_58 = g1003d96c;
r3_59 = reinterpret_cast<void*>(((reinterpret_cast<uint32_t>(r5_49) ^ reinterpret_cast<uint32_t>(r9_52)) & reinterpret_cast<uint32_t>(r7_56) ^ reinterpret_cast<uint32_t>(r5_49)) + reinterpret_cast<uint32_t>(r11_57) + reinterpret_cast<uint32_t>(r8_45) + reinterpret_cast<int32_t>(r2_58));
r4_60 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r7_56) + (reinterpret_cast<uint32_t>(r3_59) >> 25 | reinterpret_cast<uint32_t>(r3_59) << 7));
r2_61 = reinterpret_cast<void*>(static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1 + 52))) | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 53)) << 8 | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 54)) << 16 | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 55)) << 24);
r2_62 = g1003d968;
r3_63 = ((reinterpret_cast<uint32_t>(r9_52) ^ reinterpret_cast<uint32_t>(r7_56)) & reinterpret_cast<uint32_t>(r4_60) ^ reinterpret_cast<uint32_t>(r9_52)) + reinterpret_cast<uint32_t>(r2_61) + reinterpret_cast<uint32_t>(r5_49) - r2_62;
r6_64 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r4_60) + (r3_63 >> 20 | r3_63 << 12));
r8_65 = reinterpret_cast<void*>(static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1 + 56))) | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 57)) << 8 | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 58)) << 16 | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 59)) << 24);
r2_66 = g1003d964;
lr67 = ((reinterpret_cast<uint32_t>(r7_56) ^ reinterpret_cast<uint32_t>(r4_60)) & reinterpret_cast<uint32_t>(r6_64) ^ reinterpret_cast<uint32_t>(r7_56)) + reinterpret_cast<uint32_t>(r8_65) + reinterpret_cast<uint32_t>(r9_52) - r2_66;
r5_68 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r6_64) + (lr67 >> 15 | lr67 << 17));
r9_69 = reinterpret_cast<void*>(static_cast<uint32_t>(reinterpret_cast<unsigned char>(*reinterpret_cast<void***>(r1 + 60))) | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 61)) << 8 | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 62)) << 16 | static_cast<uint32_t>(*reinterpret_cast<unsigned char*>(r1 + 63)) << 24);
r2_70 = g1003d960;
r3_71 = reinterpret_cast<void*>(((reinterpret_cast<uint32_t>(r6_64) ^ reinterpret_cast<uint32_t>(r4_60)) & reinterpret_cast<uint32_t>(r5_68) ^ reinterpret_cast<uint32_t>(r4_60)) + reinterpret_cast<uint32_t>(r9_69) + reinterpret_cast<uint32_t>(r7_56) + reinterpret_cast<int32_t>(r2_70));
r0_72 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r5_68) + (reinterpret_cast<uint32_t>(r3_71) >> 10 | reinterpret_cast<uint32_t>(r3_71) << 22));
r1_73 = g1003d95c;
r3_74 = ((reinterpret_cast<uint32_t>(r5_68) ^ reinterpret_cast<uint32_t>(r0_72)) & reinterpret_cast<uint32_t>(r6_64) ^ reinterpret_cast<uint32_t>(r5_68)) + reinterpret_cast<uint32_t>(r2_14) + reinterpret_cast<uint32_t>(r4_60) - r1_73;
r4_75 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r0_72) + (r3_74 >> 27 | r3_74 << 5));
r2_76 = g1003d958;
r1_77 = g1003d954;
r3_78 = ((reinterpret_cast<uint32_t>(r0_72) ^ reinterpret_cast<uint32_t>(r4_75)) & reinterpret_cast<uint32_t>(r5_68) ^ reinterpret_cast<uint32_t>(r0_72)) + reinterpret_cast<uint32_t>(r2_34) + reinterpret_cast<uint32_t>(r6_64) - r2_76;
lr79 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r4_75) + (r3_78 >> 23 | r3_78 << 9));
r3_80 = reinterpret_cast<void*>(((reinterpret_cast<uint32_t>(lr79) ^ reinterpret_cast<uint32_t>(r4_75)) & reinterpret_cast<uint32_t>(r0_72) ^ reinterpret_cast<uint32_t>(r4_75)) + reinterpret_cast<uint32_t>(r2_53) + reinterpret_cast<uint32_t>(r5_68) + reinterpret_cast<int32_t>(r1_77));
r5_81 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(lr79) + (reinterpret_cast<uint32_t>(r3_80) >> 18 | reinterpret_cast<uint32_t>(r3_80) << 14));
r2_82 = g1003d950;
r1_83 = g1003d94c;
r3_84 = ((reinterpret_cast<uint32_t>(lr79) ^ reinterpret_cast<uint32_t>(r5_81)) & reinterpret_cast<uint32_t>(r4_75) ^ reinterpret_cast<uint32_t>(lr79)) + reinterpret_cast<uint32_t>(r1_7) + reinterpret_cast<uint32_t>(r0_72) - r2_82;
r0_85 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r5_81) + (r3_84 >> 12 | r3_84 << 20));
r3_86 = ((reinterpret_cast<uint32_t>(r5_81) ^ reinterpret_cast<uint32_t>(r0_85)) & reinterpret_cast<uint32_t>(lr79) ^ reinterpret_cast<uint32_t>(r5_81)) + reinterpret_cast<uint32_t>(r2_30) + reinterpret_cast<uint32_t>(r4_75) - r1_83;
r4_87 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r0_85) + (r3_86 >> 27 | r3_86 << 5));
r2_88 = g1003d948;
r1_89 = g1003d944;
r3_90 = reinterpret_cast<void*>(((reinterpret_cast<uint32_t>(r0_85) ^ reinterpret_cast<uint32_t>(r4_87)) & reinterpret_cast<uint32_t>(r5_81) ^ reinterpret_cast<uint32_t>(r0_85)) + reinterpret_cast<uint32_t>(r2_50) + reinterpret_cast<uint32_t>(lr79) + reinterpret_cast<int32_t>(r2_88));
lr91 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r4_87) + (reinterpret_cast<uint32_t>(r3_90) >> 23 | reinterpret_cast<uint32_t>(r3_90) << 9));
r3_92 = ((reinterpret_cast<uint32_t>(lr91) ^ reinterpret_cast<uint32_t>(r4_87)) & reinterpret_cast<uint32_t>(r0_85) ^ reinterpret_cast<uint32_t>(r4_87)) + reinterpret_cast<uint32_t>(r9_69) + reinterpret_cast<uint32_t>(r5_81) - r1_89;
r5_93 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(lr91) + (r3_92 >> 18 | r3_92 << 14));
r2_94 = g1003d940;
r1_95 = g1003d93c;
r3_96 = ((reinterpret_cast<uint32_t>(lr91) ^ reinterpret_cast<uint32_t>(r5_93)) & reinterpret_cast<uint32_t>(r4_87) ^ reinterpret_cast<uint32_t>(lr91)) + reinterpret_cast<uint32_t>(r2_26) + reinterpret_cast<uint32_t>(r0_85) - r2_94;
r0_97 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r5_93) + (r3_96 >> 12 | r3_96 << 20));
r3_98 = reinterpret_cast<void*>(((reinterpret_cast<uint32_t>(r5_93) ^ reinterpret_cast<uint32_t>(r0_97)) & reinterpret_cast<uint32_t>(lr91) ^ reinterpret_cast<uint32_t>(r5_93)) + reinterpret_cast<uint32_t>(r2_46) + reinterpret_cast<uint32_t>(r4_87) + reinterpret_cast<int32_t>(r1_95));
r6_99 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r0_97) + (reinterpret_cast<uint32_t>(r3_98) >> 27 | reinterpret_cast<uint32_t>(r3_98) << 5));
r2_100 = g1003d938;
r3_101 = ((reinterpret_cast<uint32_t>(r0_97) ^ reinterpret_cast<uint32_t>(r6_99)) & reinterpret_cast<uint32_t>(r5_93) ^ reinterpret_cast<uint32_t>(r0_97)) + reinterpret_cast<uint32_t>(r8_65) + reinterpret_cast<uint32_t>(lr91) - r2_100;
r4_102 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r6_99) + (r3_101 >> 23 | r3_101 << 9));
r1_103 = g1003d934;
r3_104 = ((reinterpret_cast<uint32_t>(r4_102) ^ reinterpret_cast<uint32_t>(r6_99)) & reinterpret_cast<uint32_t>(r0_97) ^ reinterpret_cast<uint32_t>(r6_99)) + reinterpret_cast<uint32_t>(r2_22) + reinterpret_cast<uint32_t>(r5_93) - r1_103;
r7_105 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r4_102) + (r3_104 >> 18 | r3_104 << 14));
r2_106 = g1003d930;
r3_107 = reinterpret_cast<void*>(((reinterpret_cast<uint32_t>(r4_102) ^ reinterpret_cast<uint32_t>(r7_105)) & reinterpret_cast<uint32_t>(r6_99) ^ reinterpret_cast<uint32_t>(r4_102)) + reinterpret_cast<uint32_t>(r2_42) + reinterpret_cast<uint32_t>(r0_97) + reinterpret_cast<int32_t>(r2_106));
r5_108 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r7_105) + (reinterpret_cast<uint32_t>(r3_107) >> 12 | reinterpret_cast<uint32_t>(r3_107) << 20));
r1_109 = g1003d92c;
r3_110 = ((reinterpret_cast<uint32_t>(r7_105) ^ reinterpret_cast<uint32_t>(r5_108)) & reinterpret_cast<uint32_t>(r4_102) ^ reinterpret_cast<uint32_t>(r7_105)) + reinterpret_cast<uint32_t>(r2_61) + reinterpret_cast<uint32_t>(r6_99) - r1_109;
lr111 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r5_108) + (r3_110 >> 27 | r3_110 << 5));
r2_112 = g1003d928;
r1_113 = g1003d924;
r3_114 = ((reinterpret_cast<uint32_t>(r5_108) ^ reinterpret_cast<uint32_t>(lr111)) & reinterpret_cast<uint32_t>(r7_105) ^ reinterpret_cast<uint32_t>(r5_108)) + reinterpret_cast<uint32_t>(r2_18) + reinterpret_cast<uint32_t>(r4_102) - r2_112;
r0_115 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(lr111) + (r3_114 >> 23 | r3_114 << 9));
r3_116 = reinterpret_cast<void*>(((reinterpret_cast<uint32_t>(r0_115) ^ reinterpret_cast<uint32_t>(lr111)) & reinterpret_cast<uint32_t>(r5_108) ^ reinterpret_cast<uint32_t>(lr111)) + reinterpret_cast<uint32_t>(r2_38) + reinterpret_cast<uint32_t>(r7_105) + reinterpret_cast<int32_t>(r1_113));
r6_117 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r0_115) + (reinterpret_cast<uint32_t>(r3_116) >> 18 | reinterpret_cast<uint32_t>(r3_116) << 14));
r1_118 = reinterpret_cast<uint32_t>(r0_115) ^ reinterpret_cast<uint32_t>(r6_117);
r2_119 = g1003d920;
r3_120 = (r1_118 & reinterpret_cast<uint32_t>(lr111) ^ reinterpret_cast<uint32_t>(r0_115)) + reinterpret_cast<uint32_t>(r11_57) + reinterpret_cast<uint32_t>(r5_108) - r2_119;
r5_121 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r6_117) + (r3_120 >> 12 | r3_120 << 20));
r2_122 = g1003d91c;
r3_123 = (r1_118 ^ reinterpret_cast<uint32_t>(r5_121)) + reinterpret_cast<uint32_t>(r2_30) + reinterpret_cast<uint32_t>(lr111) - r2_122;
lr124 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r5_121) + (r3_123 >> 28 | r3_123 << 4));
r2_125 = g1003d918;
r1_126 = g1003d914;
r3_127 = (reinterpret_cast<uint32_t>(r6_117) ^ reinterpret_cast<uint32_t>(r5_121) ^ reinterpret_cast<uint32_t>(lr124)) + reinterpret_cast<uint32_t>(r2_42) + reinterpret_cast<uint32_t>(r0_115) - r2_125;
r4_128 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(lr124) + (r3_127 >> 21 | r3_127 << 11));
r3_129 = reinterpret_cast<void*>((reinterpret_cast<uint32_t>(r4_128) ^ reinterpret_cast<uint32_t>(r5_121) ^ reinterpret_cast<uint32_t>(lr124)) + reinterpret_cast<uint32_t>(r2_53) + reinterpret_cast<uint32_t>(r6_117) + reinterpret_cast<int32_t>(r1_126));
r6_130 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r4_128) + (reinterpret_cast<uint32_t>(r3_129) >> 16 | reinterpret_cast<uint32_t>(r3_129) << 16));
r0_131 = reinterpret_cast<uint32_t>(r4_128) ^ reinterpret_cast<uint32_t>(r6_130);
r2_132 = g1003d910;
r3_133 = (r0_131 ^ reinterpret_cast<uint32_t>(lr124)) + reinterpret_cast<uint32_t>(r8_65) + reinterpret_cast<uint32_t>(r5_121) - r2_132;
r5_134 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r6_130) + (r3_133 >> 9 | r3_133 << 23));
r1_135 = g1003d90c;
r3_136 = (r0_131 ^ reinterpret_cast<uint32_t>(r5_134)) + reinterpret_cast<uint32_t>(r2_14) + reinterpret_cast<uint32_t>(lr124) - r1_135;
r7_137 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r5_134) + (r3_136 >> 28 | r3_136 << 4));
r2_138 = g1003d908;
r1_139 = g1003d904;
r3_140 = reinterpret_cast<void*>((reinterpret_cast<uint32_t>(r6_130) ^ reinterpret_cast<uint32_t>(r5_134) ^ reinterpret_cast<uint32_t>(r7_137)) + reinterpret_cast<uint32_t>(r2_26) + reinterpret_cast<uint32_t>(r4_128) + reinterpret_cast<int32_t>(r2_138));
lr141 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r7_137) + (reinterpret_cast<uint32_t>(r3_140) >> 21 | reinterpret_cast<uint32_t>(r3_140) << 11));
r3_142 = (reinterpret_cast<uint32_t>(lr141) ^ reinterpret_cast<uint32_t>(r5_134) ^ reinterpret_cast<uint32_t>(r7_137)) + reinterpret_cast<uint32_t>(r2_38) + reinterpret_cast<uint32_t>(r6_130) - r1_139;
r6_143 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(lr141) + (r3_142 >> 16 | r3_142 << 16));
r0_144 = reinterpret_cast<uint32_t>(lr141) ^ reinterpret_cast<uint32_t>(r6_143);
r2_145 = g1003d900;
r1_146 = g1003d8fc;
r3_147 = (r0_144 ^ reinterpret_cast<uint32_t>(r7_137)) + reinterpret_cast<uint32_t>(r2_50) + reinterpret_cast<uint32_t>(r5_134) - r2_145;
r4_148 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r6_143) + (r3_147 >> 9 | r3_147 << 23));
r3_149 = reinterpret_cast<void*>((r0_144 ^ reinterpret_cast<uint32_t>(r4_148)) + reinterpret_cast<uint32_t>(r2_61) + reinterpret_cast<uint32_t>(r7_137) + reinterpret_cast<int32_t>(r1_146));
r5_150 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r4_148) + (reinterpret_cast<uint32_t>(r3_149) >> 28 | reinterpret_cast<uint32_t>(r3_149) << 4));
r2_151 = g1003d8f8;
r1_152 = g1003d8f4;
r3_153 = (reinterpret_cast<uint32_t>(r6_143) ^ reinterpret_cast<uint32_t>(r4_148) ^ reinterpret_cast<uint32_t>(r5_150)) + reinterpret_cast<uint32_t>(r1_7) + reinterpret_cast<uint32_t>(lr141) - r2_151;
lr154 = reinterpret_cast<void*>(reinterpret_cast<uint32_t>(r5_150) + (r3_153 >> 21 | r3_153 << 11));
r3_155 = (reinterpret_cast<uint32_t>(lr154) ^ reinterpret_cast<uint32_t>(r4_148) ^ reinterpret_cast<uint32_t>(r5_150)) + reinterpret_cast<uint32_t>(r2_22) + reinterpre
View raw

(Sorry about that, but we can’t show files that are this big right now.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment