Pastebin
API
tools
faq
paste
Login
Sign up
Please fix the following errors:
New Paste
Syntax Highlighting
#include <defs.h> //------------------------------------------------------------------------- // Function declarations int sub_298(); int sub_340(); void sub_3A8(); _DWORD *__fastcall sub_3C8(unsigned int a1, int a2); _DWORD *sub_400(); int sub_4AC(); int sub_510(); unsigned int __fastcall sub_6F0(unsigned int result); unsigned int __fastcall sub_70E(unsigned int result); int sub_72C(); signed int sub_D68(); signed int __fastcall sub_E24(int a1); signed int sub_E54(); unsigned int sub_FFC(); int __fastcall sub_13A8(int a1); int __fastcall sub_13D0(int a1); int __fastcall sub_13E4(int a1); unsigned int __fastcall sub_140C(int a1); int __fastcall sub_1438(int a1); unsigned int __fastcall sub_144C(int a1); unsigned int __fastcall sub_1482(int a1); int __fastcall sub_14A0(int a1, int a2); int __fastcall sub_151C(int a1, int a2); int sub_1580(); unsigned int __fastcall sub_15B0(int a1, int a2, int a3, _BYTE *a4, int a5); int __fastcall sub_1610(int a1); unsigned int sub_1688(); int sub_16B4(); int __fastcall sub_1DA8(int a1); int __fastcall sub_1E04(int a1); int __fastcall sub_1E14(int result); int __fastcall sub_1E6C(int result); unsigned int __fastcall sub_1EC4(int a1); unsigned int __fastcall sub_1ED8(int a1); unsigned int __fastcall sub_1EEC(int a1); unsigned int __fastcall sub_1F00(int a1); signed int __fastcall sub_1F14(char a1, int a2, unsigned int a3, int a4, unsigned int a5); int __fastcall sub_1F58(int a1); int __fastcall sub_2004(int result, int a2); int __fastcall sub_2008(int result, int a2); int __fastcall sub_200E(int a1, int a2); int __fastcall sub_2014(int result, int a2); int __fastcall sub_2026(int result, int a2, int a3, signed int a4); int __fastcall sub_206A(int result, int a2, int a3, signed int a4); int __fastcall sub_20A0(int result, int a2, signed int a3); unsigned int __fastcall sub_20F8(unsigned int result); _DWORD *__fastcall sub_2158(_DWORD *result); int __fastcall sub_2162(int result); _DWORD *__fastcall sub_2174(_DWORD *result); int __fastcall sub_217E(int a1, int a2, int a3, int a4, int a5, int a6); unsigned int __fastcall sub_21A8(unsigned int result); unsigned int *__fastcall sub_2228(unsigned int *result, int a2, int a3, int a4); _DWORD *__fastcall sub_223A(_DWORD *result); _DWORD *__fastcall sub_2244(_DWORD *result); _DWORD *__fastcall sub_224E(_DWORD *result); int __fastcall sub_2258(int result, int a2); int __fastcall sub_225C(int result, int a2); int __fastcall sub_2270(int result, int a2); int __fastcall sub_2274(int result, int a2); int __fastcall sub_22A8(int result, int a2); int __fastcall sub_22DC(int result, int a2, int a3); int __fastcall sub_2468(int result, int a2); int __fastcall sub_249C(int result, int a2); int __fastcall sub_2510(int result, int a2); int __fastcall sub_2584(int result, int a2); int __fastcall sub_25F8(int result, int a2); int __fastcall sub_2650(int result, int a2, int a3); int __fastcall sub_2670(int result); int __fastcall sub_2688(int result, int a2); int __fastcall sub_26B8(int result, int a2); int __fastcall sub_26CA(int result, int a2); int __fastcall sub_26D6(int result, int a2); int __fastcall sub_26E2(int result, int a2); int __fastcall sub_26EE(int result, int a2); int __fastcall sub_26FA(int result); unsigned int __fastcall sub_2704(int a1); int __fastcall sub_2718(unsigned int a1); int __fastcall sub_2754(int (**a1)(void), int a2, int a3, int a4, int a5, int a6, __int16 a7); signed int __fastcall sub_2C70(int a1, int a2); int __fastcall sub_31A8(int a1); int __fastcall sub_31B8(char a1); void sub_31D0(); void sub_31E0(); signed int __fastcall sub_31F0(unsigned int a1); int __fastcall sub_320C(int result); int *__fastcall sub_3898(int *result, unsigned __int8 a2, unsigned int a3); //------------------------------------------------------------------------- // Data declarations _UNKNOWN loc_2732; // weak //----- (00000298) -------------------------------------------------------- int sub_298() { sub_31F0(0x43u); sub_31F0(0x2Au); sub_2026(1073872896, 2, 0, 6144); sub_20A0(1073872896, 10, 6144); sub_2026(1073875968, 1, 0, 4); sub_2008(1073875968, 4); sub_6F0(1u); sub_2004(1073875968, 4); v200001C8 = sub_2754((int (**)(void))0x8003F00, 0x8003A93, 0x8003A53, 0x20000000, 3, 536871237, 128); return sub_2C70(v200001C8, 134218237); } //----- (00000340) -------------------------------------------------------- int sub_340() { sub_1F58(134233740); sub_2718(0x600u); sub_2718(0x601u); sub_2718(0x602u); sub_2718(0x603u); sub_2718(0x604u); sub_2718(0x884u); sub_2718(0x88Cu); sub_2718(0x80Eu); sub_2718(0x80Fu); sub_2718(0x800u); return sub_2718(0x687u); } //----- (000003A8) -------------------------------------------------------- void sub_3A8() { sub_31A8(168000); sub_31B8(4); sub_31E0(); sub_31D0(); } //----- (000003C8) -------------------------------------------------------- _DWORD *__fastcall sub_3C8(unsigned int a1, int a2) { _DWORD *v2; // r4@1 int v3; // r5@1 v2 = (_DWORD *)a1; v3 = a2; sub_20F8(a1); sub_217E((int)v2, v3, 0, 0, 2048, 0); sub_2162((int)v2); sub_2174(v2); return sub_2158(v2); } //----- (00000400) -------------------------------------------------------- _DWORD *sub_400() { sub_2026(1073872896, 2, 0, 224); sub_20A0(1073872896, 5, 224); sub_206A(1073872896, 0, 2, 160); sub_3C8(0x40013000u, 32); sub_2026(1073873920, 2, 0, 57344); sub_20A0(1073873920, 5, 57344); sub_206A(1073873920, 0, 2, 40960); sub_3C8(0x40003800u, 24); sub_2026(1073874944, 2, 0, 7168); sub_20A0(1073874944, 6, 7168); sub_206A(1073874944, 0, 2, 5120); return sub_3C8(0x40003C00u, 24); } //----- (000004AC) -------------------------------------------------------- int sub_4AC() { sub_2026(1073872896, 2, 1, 1536); sub_20A0(1073872896, 7, 1536); sub_2688(1073811456, 115200); sub_26B8(1073811456, 8); sub_26CA(1073811456, 0); sub_26E2(1073811456, 12); sub_26D6(1073811456, 0); sub_26EE(1073811456, 0); return sub_26FA(1073811456); } //----- (00000510) -------------------------------------------------------- int sub_510() { sub_2026(1073872896, 2, 0, 2); sub_206A(1073872896, 0, 0, 2); sub_20A0(1073872896, 1, 2); sub_21A8(0x40000000u); sub_2228((unsigned int *)0x40000000, 0, 0, 0); sub_2270(0x40000000, 1680); sub_2258(0x40000000, 0); sub_225C(0x40000000, 0); sub_223A((_DWORD *)0x40000000); sub_2244((_DWORD *)0x40000000); sub_2584(0x40000000, 2); sub_2274(0x40000000, 2); sub_2468(0x40000000, 2); sub_22A8(0x40000000, 2); sub_22DC(0x40000000, 2, 6); sub_249C(0x40000000, 2); sub_25F8(0x40000000, 2); sub_2650(0x40000000, 2, 840); sub_223A((_DWORD *)0x40000000); sub_2670(0x40000000); sub_224E((_DWORD *)0x40000000); return sub_2510(0x40000000, 2); } //----- (Generate Big Delay) -------------------------------------------------------- unsigned int __fastcall sub_6F0(unsigned int result) { unsigned int i; // r3@1 signed int v2; // r2@3 for ( i = 0; i < result; ++i ) { v2 = 42000; do --v2; while ( v2 ); } return result; } //----- (Generate Small Delay) -------------------------------------------------------- unsigned int __fastcall sub_70E(unsigned int result) { unsigned int i; // r3@1 signed int v2; // r2@3 for ( i = 0; i < result; ++i ) { v2 = 39; do --v2; while ( v2 ); } return result; } //----- (0000072C) -------------------------------------------------------- int sub_72C() { return v2000291C; } //----- (00000D68) -------------------------------------------------------- signed int sub_D68() { signed int v0; // r4@1 int v1; // r5@1 sub_6F0(0x64u); v0 = 134232932; sub_2026(1073873920, 1, 0, 4096); sub_2004(1073873920, 4096); sub_2026(1073876992, 1, 0, 2); sub_2004(1073876992, 2); v1 = 0; do { sub_2026(*(_DWORD *)(v1 + 134233004), 0, 0, *(_WORD *)(v1 + 134233008)); sub_2026(*(_DWORD *)v0, 1, 0, *(_WORD *)(v0 + 4)); sub_2026(*(_DWORD *)(v0 + 8), 1, 0, *(_WORD *)(v0 + 12)); v1 += 8; sub_2026(*(_DWORD *)(v0 + 16), 1, 0, *(_WORD *)(v0 + 20)); v0 += 24; } while ( v1 != 24 ); sub_2026(1073873920, 0, 0, 256); sub_2026(1073875968, 0, 0, 8); sub_2026(1073873920, 1, 0, 16); sub_2004(1073873920, 16); return 1; } //----- (00000E24) -------------------------------------------------------- signed int __fastcall sub_E24(int a1) { int v1; // r5@1 int v2; // r7@1 signed int v3; // r4@1 v1 = a1; v2 = *(_WORD *)(8 * a1 + 0x8003BB0); v3 = 10; while ( !sub_200E(*(_DWORD *)(8 * v1 + 0x8003BAC), v2) ) { sub_6F0(1u); if ( !--v3 ) return 0; } return 1; } //----- (00000E54) -------------------------------------------------------- signed int sub_E54() { signed int v0; // r5@1 signed int v1; // r4@1 int v2; // r6@1 int v3; // r11@4 int v4; // r2@5 int v5; // r8@5 int v6; // ST0C_4@6 char v7; // r0@6 int v8; // r3@6 int v9; // r10@8 int v10; // r8@9 int v11; // r11@9 int v12; // r2@9 int v13; // ST08_4@11 int v14; // r0@11 char v15; // r3@16 int v16; // r0@18 int v17; // r3@19 int v19; // [sp+0h] [bp-38h]@4 char v20; // [sp+4h] [bp-34h]@4 v0 = 536874176; sub_3898((int *)0x20000CC0, 0, 0xA5Cu); sub_D68(); sub_1688(); v1 = 536874176; v2 = 0; do { sub_16B4(); if ( !sub_E24(v2) ) *(_BYTE *)(v1 + 800) = 1; v20 = 4 * v2; v19 = 884 * v2; v3 = 0; do { v4 = (unsigned __int8)(v20 + v3); v5 = 0; do { v6 = v4; v7 = v20000098(v4, v5); v8 = v19 + 192 * v3 + 12 * v5++ + 536874176; *(_BYTE *)(v8 + 8) = v7; sub_6F0(1u); v4 = v6; } while ( v5 != 16 ); ++v3; } while ( v3 != 4 ); v9 = 0; do { v10 = v19 + 192 * v9 + 536874176; v11 = 0; v12 = (unsigned __int8)(v20 + v9); do { if ( *(_BYTE *)(v10 + 8) == 3 ) { v13 = v12; v14 = v2000009C(v12, v11); v12 = v13; if ( v14 ) ++*(_BYTE *)(v1 + 768); else *(_BYTE *)(v10 + 8) = 2; } ++v11; v10 += 12; } while ( v11 != 16 ); ++v9; } while ( v9 != 4 ); if ( *(_BYTE *)(v1 + 768) == 64 ) v15 = 3; else v15 = 2; *(_BYTE *)(v1 + 800) = v15; *(_BYTE *)(v1 + 770) = 26; *(_BYTE *)(v1 + 773) = 55; *(_BYTE *)(v1 + 774) = 50; *(_BYTE *)(v1 + 771) = 0; *(_BYTE *)(v1 + 772) = sub_1610(v2); *(_DWORD *)(v1 + 788) = sub_72C() + 5000; v16 = sub_72C(); ++v2; *(_DWORD *)(v1 + 792) = v16; *(_DWORD *)(v1 + 784) = 0; *(_DWORD *)(v1 + 776) = 0; *(_DWORD *)(v1 + 796) = 0; v1 += 884; } while ( v2 != 3 ); v17 = v200016A8 + v20001334 + v20000FC0; do { if ( v17 > 181 ) { *(_BYTE *)(v0 + 769) = 64; *(_BYTE *)(v0 + 800) = 3; } else { LOBYTE(v16) = *(_BYTE *)(v0 + 768); } if ( v17 <= 181 ) *(_BYTE *)(v0 + 769) = v16; v0 += 884; } while ( v0 != 536876828 ); return 1; } // 20000098: using guessed type int (__fastcall *)(_DWORD, _DWORD); // 2000009C: using guessed type int (__fastcall *)(_DWORD, _DWORD); //----- (00000FFC) -------------------------------------------------------- unsigned int sub_FFC() { signed int v0; // r11@1 signed int v1; // r9@1 signed int v2; // r7@1 int v3; // r6@1 int v4; // r8@4 int v5; // r10@5 int v6; // r4@5 int v7; // r3@7 int v8; // r5@9 int v9; // r2@15 int v10; // r3@16 int v11; // r0@18 int v12; // r2@18 void (__cdecl *v13)(int); // r3@19 signed int v14; // r4@21 signed int v15; // r5@21 signed int v16; // r6@21 int v17; // r8@21 int v18; // r0@23 int v19; // r3@23 int v20; // r10@26 int v21; // r9@27 int v22; // r7@27 unsigned int result; // r0@33 int v24; // r1@36 int v25; // r0@36 unsigned int v26; // r0@53 int v27; // r1@53 char v28; // cf@53 int v29; // r0@53 unsigned int v30; // r0@55 int v31; // [sp+0h] [bp-38h]@27 v0 = 536874176; v1 = 536876828; v2 = 536874176; v3 = 0; do { if ( *(_BYTE *)(v2 + 800) == 5 && *(_DWORD *)(v2 + 780) ) { v4 = 0; do { v5 = 0; v6 = 884 * v3 + 192 * v4 + 536874176; do { if ( (unsigned int)*(_BYTE *)(v6 + 8) - 2 <= 1 ) { v7 = 0; do { if ( !*(_BYTE *)(v1 + 12 * v7 + 11) ) { v8 = 12 * v7 + 1536 * v3 + 536876828; goto LABEL_10; } ++v7; } while ( v7 != 128 ); v8 = v1; LABEL_10: if ( v200000B4((unsigned __int8)(4 * v3 + v4), v5, v8) <= 0 ) { ++*(_DWORD *)(v6 + 4); } else { *(_BYTE *)(v8 + 11) = 1; *(_DWORD *)(v2 + 784) = sub_72C() + 5000; ++*(_DWORD *)v6; } } ++v5; v6 += 12; } while ( v5 != 16 ); ++v4; } while ( v4 != 4 ); } ++v3; v2 += 884; v1 += 1536; } while ( v3 != 3 ); v9 = v20000CB8; if ( v20000CB8 != v20000CBC ) { v10 = (v20000CB8 + 1) & 7; if ( v20000CB8 + 1 <= 0 ) v10 = -(-(v20000CB8 + 1) & 7); v20000CB8 = v10; v11 = 220 * v9 + 536872408; v12 = *(_BYTE *)(220 * v9 + 0x200005D9); if ( (unsigned int)(v12 - 1) <= 6 ) { v13 = *(void (__cdecl **)(int))(8 * v12 + 0x8003B28); if ( v13 ) v13(v11); } } v14 = 134232932; v15 = 536874176; v16 = 134232932; v17 = 0; do { if ( (unsigned int)sub_72C() >= *(_DWORD *)(v15 + 788) ) { *(_BYTE *)(v15 + 772) = sub_1610(v17); v18 = sub_72C(); v19 = *(_BYTE *)(v15 + 800); *(_DWORD *)(v15 + 788) = v18 + 10000; if ( v19 == 4 ) { if ( *(_BYTE *)(v15 + 772) < (signed int)*(_BYTE *)(v15 + 773) ) *(_BYTE *)(v15 + 800) = 5; } else if ( v19 == 5 && *(_BYTE *)(v15 + 772) > (signed int)*(_BYTE *)(v15 + 773) ) { *(_BYTE *)(v15 + 800) = 4; sub_2004(*(_DWORD *)v16, *(_WORD *)(v16 + 4)); sub_2004(*(_DWORD *)(v16 + 8), *(_WORD *)(v16 + 12)); v20 = 0; do { v31 = (unsigned __int8)(4 * v17 + v20); v21 = 0; v22 = 884 * v17 + 192 * v20 + 536874176; do { if ( (unsigned int)*(_BYTE *)(v22 + 8) - 2 <= 1 ) { v200000B0(v31, v21); v20000094(v31, v21); *(_BYTE *)(v22 + 9) = 0; } ++v21; v22 += 12; } while ( v21 != 16 ); ++v20; } while ( v20 != 4 ); } } ++v17; v15 += 884; v16 += 24; } while ( v17 != 3 ); do { result = sub_72C(); if ( result >= *(_DWORD *)(v0 + 792) ) { *(_DWORD *)(v0 + 792) = sub_72C() + 1000; result = sub_72C(); if ( result >= *(_DWORD *)(v0 + 796) ) { switch ( *(_BYTE *)(v0 + 800) ) { case 0: sub_2008(*(_DWORD *)v14, *(_WORD *)(v14 + 4)); goto LABEL_48; case 1: sub_2014(*(_DWORD *)v14, *(_WORD *)(v14 + 4)); goto LABEL_48; case 2: sub_2004(*(_DWORD *)v14, *(_WORD *)(v14 + 4)); LABEL_48: sub_2008(*(_DWORD *)(v14 + 8), *(_WORD *)(v14 + 12)); v24 = *(_WORD *)(v14 + 20); v25 = *(_DWORD *)(v14 + 16); goto LABEL_49; case 3: sub_2004(*(_DWORD *)v14, *(_WORD *)(v14 + 4)); goto LABEL_36; case 5: sub_2004(*(_DWORD *)v14, *(_WORD *)(v14 + 4)); v26 = sub_72C(); v27 = *(_WORD *)(v14 + 20); v28 = v26 >= *(_DWORD *)(v0 + 776) + 5000; v29 = *(_DWORD *)(v14 + 16); if ( v28 ) { sub_2014(v29, v27); *(_DWORD *)(v0 + 784) = 0; } else { sub_2004(v29, v27); } v30 = sub_72C(); v24 = *(_WORD *)(v14 + 12); v28 = v30 >= *(_DWORD *)(v0 + 784); v25 = *(_DWORD *)(v14 + 8); if ( !v28 ) goto LABEL_37; LABEL_49: result = sub_2008(v25, v24); break; case 4: sub_2014(*(_DWORD *)v14, *(_WORD *)(v14 + 4)); sub_2014(*(_DWORD *)(v14 + 8), *(_WORD *)(v14 + 12)); result = sub_2004(*(_DWORD *)(v14 + 16), *(_WORD *)(v14 + 20)); break; default: break; } } else { sub_2014(*(_DWORD *)v14, *(_WORD *)(v14 + 4)); LABEL_36: sub_2014(*(_DWORD *)(v14 + 8), *(_WORD *)(v14 + 12)); v24 = *(_WORD *)(v14 + 20); v25 = *(_DWORD *)(v14 + 16); LABEL_37: result = sub_2014(v25, v24); } } v14 += 24; v0 += 884; } while ( v14 != 134233004 ); return result; } // 20000094: using guessed type int (__fastcall *)(_DWORD, _DWORD); // 200000B0: using guessed type int (__fastcall *)(_DWORD, _DWORD); // 200000B4: using guessed type int (__fastcall *)(_DWORD, _DWORD, _DWORD); //----- (000013A8) -------------------------------------------------------- int __fastcall sub_13A8(int a1) { int v1; // r0@1 signed int v2; // r5@1 int v3; // r4@1 v1 = 16 * a1 + 134233148; v2 = *(_WORD *)(v1 + 12); v3 = *(_DWORD *)(v1 + 8); sub_2026(*(_DWORD *)(v1 + 8), 1, 0, v2); return sub_2004(v3, v2); } //----- (000013D0) -------------------------------------------------------- int __fastcall sub_13D0(int a1) { return sub_2004(*(_DWORD *)(16 * a1 + 0x8003C3C), *(_WORD *)(16 * a1 + 0x8003C40)); } //----- (000013E4) -------------------------------------------------------- int __fastcall sub_13E4(int a1) { int v1; // r0@1 signed int v2; // r5@1 int v3; // r4@1 v1 = 16 * a1 + 134233148; v2 = *(_WORD *)(v1 + 12); v3 = *(_DWORD *)(v1 + 8); sub_2026(*(_DWORD *)(v1 + 8), 1, 0, v2); return sub_2008(v3, v2); } //----- (0000140C) -------------------------------------------------------- unsigned int __fastcall sub_140C(int a1) { int v1; // r4@1 v1 = a1; sub_13E4(a1); sub_70E(1u); sub_13D0(v1); sub_70E(1u); sub_13A8(v1); return sub_70E(1u); } //----- (00001438) -------------------------------------------------------- int __fastcall sub_1438(int a1) { return sub_2008(*(_DWORD *)(16 * a1 + 0x8003C3C), *(_WORD *)(16 * a1 + 0x8003C40)); } //----- (0000144C) -------------------------------------------------------- unsigned int __fastcall sub_144C(int a1) { int v1; // r4@1 v1 = a1; sub_13A8(a1); sub_70E(1u); sub_13D0(v1); sub_70E(1u); sub_13E4(v1); sub_70E(1u); sub_1438(v1); return sub_70E(1u); } //----- (00001482) -------------------------------------------------------- unsigned int __fastcall sub_1482(int a1) { int v1; // r4@1 v1 = a1; sub_13D0(a1); sub_70E(1u); sub_1438(v1); return sub_70E(1u); } //----- (000014A0) -------------------------------------------------------- int __fastcall sub_14A0(int a1, int a2) { int v2; // r7@1 signed int v3; // r9@1 int v4; // r4@1 int v5; // r8@1 int v6; // r6@1 int v7; // r5@1 v2 = *(_DWORD *)(16 * a1 + 0x8003C44); v3 = *(_WORD *)(16 * a1 + 0x8003C48); v4 = a1; v5 = a2; sub_2026(*(_DWORD *)(16 * a1 + 0x8003C44), 0, 0, v3); v6 = 0; v7 = 0; do { sub_70E(1u); sub_13D0(v4); sub_70E(1u); if ( sub_200E(v2, v3) ) v7 = (unsigned __int8)(v7 | (128 >> v6)); ++v6; sub_1438(v4); } while ( v6 != 8 ); if ( v5 ) sub_13A8(v4); else sub_13E4(v4); sub_1482(v4); return v7; } //----- (0000151C) -------------------------------------------------------- int __fastcall sub_151C(int a1, int a2) { int v2; // r4@1 int v3; // r6@1 int v4; // r5@1 int v5; // r5@5 signed int v6; // r6@5 v2 = a1; v3 = a2; v4 = 0; do { if ( (128 >> v4) & v3 ) sub_13A8(v2); else sub_13E4(v2); ++v4; sub_1482(v2); } while ( v4 != 8 ); v5 = *(_DWORD *)(16 * v2 + 0x8003C44); v6 = *(_WORD *)(16 * v2 + 0x8003C48); sub_2026(*(_DWORD *)(16 * v2 + 0x8003C44), 0, 0, v6); sub_13D0(v2); sub_70E(1u); sub_200E(v5, v6); return sub_1438(v2); } //----- (00001580) -------------------------------------------------------- int sub_1580() { signed int v0; // r4@1 int result; // r0@2 v0 = 134233148; do { sub_2026(*(_DWORD *)v0, 1, 0, *(_WORD *)(v0 + 4)); v0 += 16; result = sub_2026(*(_DWORD *)(v0 - 8), 1, 0, *(_WORD *)(v0 - 4)); } while ( v0 != 134233196 ); return result; } //----- (000015B0) -------------------------------------------------------- unsigned int __fastcall sub_15B0(int a1, int a2, int a3, _BYTE *a4, int a5) { int v5; // r4@1 int v6; // r7@1 int v7; // r8@1 _BYTE *v8; // r6@1 _BYTE *v9; // r7@1 unsigned int v10; // r5@1 v5 = a1; v6 = a2; v7 = a3; v8 = a4; sub_144C(a1); sub_151C(v5, v6 & 0xFE); sub_151C(v5, v7); sub_144C(v5); sub_151C(v5, v6 | 1); v9 = v8; v10 = a5 - 1; while ( v10 > v9 - v8 ) *v9++ = sub_14A0(v5, 0); v8[v10] = sub_14A0(v5, 1); return sub_140C(v5); } //----- (00001610) -------------------------------------------------------- int __fastcall sub_1610(int a1) { int v1; // r4@1 int v2; // r3@2 signed int v3; // r0@3 int v4; // r4@3 int v5; // r2@3 signed int v6; // r3@3 char v8; // [sp+Fh] [bp-11h]@1 v1 = a1; sub_15B0(a1, 144, 0, &v8, 1); if ( (unsigned __int8)(v8 - 1) <= 0x7Du ) { v2 = *(_DWORD *)(4 * v1 + 0x20002930); *(_BYTE *)(5 * v1 + 536881440 + v2) = v8; *(_DWORD *)(4 * v1 + 0x20002930) = (v2 + 1) % 5; } v3 = 0; v4 = 5 * v1 + 536881440; v5 = 0; v6 = 0; do { if ( *(_BYTE *)(v4 + v5) ) { v6 += *(_BYTE *)(v4 + v5); ++v3; } ++v5; } while ( v5 != 5 ); if ( !v3 ) v3 = 1; return (char)(v6 / v3); } //----- (00001688) -------------------------------------------------------- unsigned int sub_1688() { sub_2004(1073876992, 2); sub_6F0(1u); sub_2008(1073876992, 2); return sub_6F0(2u); } //----- (000016B4) -------------------------------------------------------- int sub_16B4() { int v0; // r5@1 int v1; // r4@2 int v2; // r7@3 signed int v3; // r8@3 int v4; // r7@3 signed int v5; // r8@3 v0 = 0; do { v1 = v0 + 134233196; do { v2 = *(_DWORD *)(v1 + 4); v3 = *(_WORD *)(v1 + 8); sub_2026(*(_DWORD *)(v1 + 4), 1, 0, v3); sub_206A(v2, 0, 2, v3); sub_2004(v2, v3); v4 = *(_DWORD *)(v1 + 20); v5 = *(_WORD *)(v1 + 24); sub_2026(*(_DWORD *)(v1 + 20), 1, 0, v5); sub_206A(v4, 0, 2, v5); v1 += 8; sub_2008(v4, v5); } while ( v1 != v0 + 134233212 ); v0 += 36; } while ( v0 != 432 ); v2000293C = v8003C80; v20002940 = v8003C84; return sub_2004(1073876992, 32); } //----- (00001DA8) -------------------------------------------------------- int __fastcall sub_1DA8(int a1) { int result; // r0@2 unsigned int *v2; // r3@4 switch ( a1 ) { case 0: return (v40023800 >> 25) & 1; case 3: return (v40023800 >> 17) & 1; case 4: v2 = (unsigned int *)1073887232; goto LABEL_5; case 5: v2 = (unsigned int *)1073887344; goto LABEL_5; case 6: v2 = (unsigned int *)1073887348; LABEL_5: result = (*v2 >> 1) & 1; break; case 1: result = (v40023800 >> 29) & 1; break; case 2: result = (v40023800 >> 27) & 1; break; default: result = 0; break; } return result; } //----- (00001E04) -------------------------------------------------------- int __fastcall sub_1E04(int a1) { int v1; // r2@1 int result; // r0@2 v1 = a1; do result = sub_1DA8(v1); while ( !result ); return result; } //----- (00001E14) -------------------------------------------------------- int __fastcall sub_1E14(int result) { int *v1; // r2@2 int v2; // r3@2 switch ( result ) { case 0: v1 = (int *)1073887232; v2 = v40023800 | 0x1000000; goto LABEL_3; case 3: v1 = (int *)1073887232; v2 = v40023800 | 0x10000; goto LABEL_3; case 4: v1 = (int *)1073887232; goto LABEL_6; case 5: v1 = (int *)1073887344; goto LABEL_6; case 6: v1 = (int *)1073887348; LABEL_6: v2 = *v1 | 1; goto LABEL_3; case 1: v1 = (int *)1073887232; v2 = v40023800 | 0x10000000; goto LABEL_3; case 2: v1 = (int *)1073887232; v2 = v40023800 | 0x4000000; LABEL_3: *v1 = v2; break; default: return result; } return result; } //----- (00001E6C) -------------------------------------------------------- int __fastcall sub_1E6C(int result) { unsigned int *v1; // r2@2 unsigned int v2; // r3@2 switch ( result ) { case 0: v1 = (unsigned int *)1073887232; v2 = v40023800 & 0xFEFFFFFF; goto LABEL_3; case 3: v1 = (unsigned int *)1073887232; v2 = v40023800 & 0xFFFEFFFF; goto LABEL_3; case 4: v1 = (unsigned int *)1073887232; goto LABEL_6; case 5: v1 = (unsigned int *)1073887344; goto LABEL_6; case 6: v1 = (unsigned int *)1073887348; LABEL_6: v2 = *v1 & 0xFFFFFFFE; goto LABEL_3; case 1: v1 = (unsigned int *)1073887232; v2 = v40023800 & 0xEFFFFFFF; goto LABEL_3; case 2: v1 = (unsigned int *)1073887232; v2 = v40023800 & 0xFBFFFFFF; LABEL_3: *v1 = v2; break; default: return result; } return result; } //----- (00001EC4) -------------------------------------------------------- unsigned int __fastcall sub_1EC4(int a1) { unsigned int result; // r0@1 result = a1 | v40023808 & 0xFFFFFFFC; v40023808 = result; return result; } //----- (00001ED8) -------------------------------------------------------- unsigned int __fastcall sub_1ED8(int a1) { unsigned int result; // r0@1 result = v40023808 & 0xFFFF1FFF | (a1 << 13); v40023808 = result; return result; } //----- (00001EEC) -------------------------------------------------------- unsigned int __fastcall sub_1EEC(int a1) { unsigned int result; // r0@1 result = v40023808 & 0xFFFFE3FF | (a1 << 10); v40023808 = result; return result; } //----- (00001F00) -------------------------------------------------------- unsigned int __fastcall sub_1F00(int a1) { unsigned int result; // r0@1 result = v40023808 & 0xFFFFFF0F | 16 * a1; v40023808 = result; return result; } //----- (00001F14) -------------------------------------------------------- signed int __fastcall sub_1F14(char a1, int a2, unsigned int a3, int a4, unsigned int a5) { int v5; // r3@1 signed int result; // r0@1 int v7; // r3@1 unsigned int v8; // r1@1 signed int v9; // r2@1 int v10; // r1@1 v5 = (a4 << 24) & 0xF000000 | 0x400000 | a1 & 0x3F; result = 32704; v7 = v5 | (a2 << 6) & 0x7FC0; v8 = a3 >> 1; v9 = a5; v10 = (v8 - 1) << 16; if ( a5 < 2 ) v9 = 2; v40023804 = v7 | v10 & 0x30000 | (v9 << 28) & 0x70000000; return result; } //----- (00001F58) -------------------------------------------------------- int __fastcall sub_1F58(int a1) { int v1; // r4@1 int v2; // r0@1 v1 = a1; sub_1E14(4); sub_1E04(4); sub_1EC4(0); sub_1E14(3); sub_1E04(3); v2 = *(_BYTE *)(v1 + 15); if ( *(_BYTE *)(v1 + 15) ) v2 = 1; sub_320C(v2); sub_1F00(*(_BYTE *)(v1 + 12)); sub_1EEC(*(_BYTE *)(v1 + 13)); sub_1ED8(*(_BYTE *)(v1 + 14)); sub_1F14(*(_BYTE *)v1, *(_WORD *)(v1 + 2), *(_BYTE *)(v1 + 4), *(_BYTE *)(v1 + 5), *(_BYTE *)(v1 + 6)); v40023800 |= 0x1000000u; sub_1E04(0); sub_2704(*(_DWORD *)(v1 + 8)); sub_1EC4(2); while ( ((v40023808 >> 2) & 3) != 2 ) ; v20000138 = *(_DWORD *)(v1 + 16); v2000013C = *(_DWORD *)(v1 + 20); v20000140 = *(_DWORD *)(v1 + 24); return sub_1E6C(4); } //----- (00002004) -------------------------------------------------------- int __fastcall sub_2004(int result, int a2) { *(_DWORD *)(result + 24) = a2; return result; } //----- (00002008) -------------------------------------------------------- int __fastcall sub_2008(int result, int a2) { *(_DWORD *)(result + 24) = a2 << 16; return result; } //----- (0000200E) -------------------------------------------------------- int __fastcall sub_200E(int a1, int a2) { return *(_DWORD *)(a1 + 16) & a2; } //----- (00002014) -------------------------------------------------------- int __fastcall sub_2014(int result, int a2) { *(_DWORD *)(result + 24) = a2 & ~*(_DWORD *)(result + 20) | ((*(_DWORD *)(result + 20) & a2) << 16); return result; } //----- (00002026) -------------------------------------------------------- int __fastcall sub_2026(int result, int a2, int a3, signed int a4) { int v4; // r5@1 int v5; // r4@1 int v6; // r6@1 int v7; // lr@3 v4 = *(_DWORD *)result; v5 = *(_DWORD *)(result + 12); v6 = 0; do { if ( (a4 >> v6) & 1 ) { v7 = ~(3 << 2 * v6); v4 = (a2 << 2 * v6) | v7 & v4; v5 = v7 & v5 | (a3 << 2 * v6); } ++v6; } while ( v6 != 16 ); *(_DWORD *)result = v4; *(_DWORD *)(result + 12) = v5; return result; } //----- (0000206A) -------------------------------------------------------- int __fastcall sub_206A(int result, int a2, int a3, signed int a4) { char v4; // zf@1 int v5; // r1@1 int v6; // r1@2 int v7; // r1@4 int v8; // r4@4 v4 = a2 == 1; v5 = *(_DWORD *)(result + 4); if ( v4 ) v6 = v5 | a4; else v6 = v5 & ~a4; *(_DWORD *)(result + 4) = v6; v7 = *(_DWORD *)(result + 8); v8 = 0; do { if ( (a4 >> v8) & 1 ) v7 = v7 & ~(3 << 2 * v8) | (a3 << 2 * v8); ++v8; } while ( v8 != 16 ); *(_DWORD *)(result + 8) = v7; return result; } //----- (000020A0) -------------------------------------------------------- int __fastcall sub_20A0(int result, int a2, signed int a3) { int v3; // r7@1 int v4; // r6@1 int v5; // r3@1 int v6; // r3@5 v3 = *(_DWORD *)(result + 32); v4 = *(_DWORD *)(result + 36); v5 = 0; do { if ( (a3 >> v5) & 1 ) v3 = v3 & ~(15 << 4 * v5) | (a2 << 4 * v5); ++v5; } while ( v5 != 8 ); v6 = 0; do { if ( (a3 >> (v6 + 8)) & 1 ) v4 = v4 & ~(15 << 4 * v6) | (a2 << 4 * v6); ++v6; } while ( v6 != 8 ); *(_DWORD *)(result + 32) = v3; *(_DWORD *)(result + 36) = v4; return result; } //----- (000020F8) -------------------------------------------------------- unsigned int __fastcall sub_20F8(unsigned int result) { unsigned int v1; // r0@9 _DWORD *v2; // r3@11 int v3; // r1@11 signed int v4; // r0@11 if ( result == 1073819648 ) { v1 = 1164; LABEL_11: v2 = (_DWORD *)((v1 >> 5) + 1073887232); v3 = *(_DWORD *)((v1 >> 5) + 1073887232); v4 = 1 << (v1 & 0x1F); *v2 = v3 | v4; result = *v2 & ~v4; *v2 = result; return result; } if ( result > 0x40013000 ) { if ( result == 1073827840 ) { v1 = 1172; } else if ( result == 1073828864 ) { v1 = 1173; } else { if ( result != 1073820672 ) return result; v1 = 1165; } goto LABEL_11; } if ( result == 1073756160 ) { v1 = 1038; goto LABEL_11; } if ( result == 1073757184 ) { v1 = 1039; goto LABEL_11; } return result; } //----- (00002158) -------------------------------------------------------- _DWORD *__fastcall sub_2158(_DWORD *result) { *result |= 0x40u; return result; } //----- (00002162) -------------------------------------------------------- int __fastcall sub_2162(int result) { *(_DWORD *)result |= 0x200u; *(_DWORD *)(result + 4) &= 0xFFFFFFFB; return result; } //----- (00002174) -------------------------------------------------------- _DWORD *__fastcall sub_2174(_DWORD *result) { *result |= 0x100u; return result; } //----- (0000217E) -------------------------------------------------------- int __fastcall sub_217E(int a1, int a2, int a3, int a4, int a5, int a6) { int v6; // r4@1 v6 = a6 | 4 | a5 | a4 | a3 | a2 | *(_DWORD *)a1 & 0x3040; *(_DWORD *)(a1 + 4) |= 4u; *(_DWORD *)a1 = v6; return 0; } //----- (000021A8) -------------------------------------------------------- unsigned int __fastcall sub_21A8(unsigned int result) { if ( result == 1073744896 ) goto LABEL_14; if ( result > 0x40000C00 ) { if ( result == 1073746944 ) goto LABEL_14; if ( result <= 0x40001400 ) { if ( result == 1073745920 ) goto LABEL_14; return result; } if ( result != 1073807360 && result != 1073808384 ) return result; LABEL_14: JUMPOUT(&loc_2732); } if ( result == 1073742848 || result == 1073743872 || result == 0x40000000 ) goto LABEL_14; return result; } //----- (00002228) -------------------------------------------------------- unsigned int *__fastcall sub_2228(unsigned int *result, int a2, int a3, int a4) { *result = a4 | a3 | a2 | *result & 0xFFFFFC8F; return result; } //----- (0000223A) -------------------------------------------------------- _DWORD *__fastcall sub_223A(_DWORD *result) { *result |= 0x80u; return result; } //----- (00002244) -------------------------------------------------------- _DWORD *__fastcall sub_2244(_DWORD *result) { *result &= 0xFFFFFFF7; return result; } //----- (0000224E) -------------------------------------------------------- _DWORD *__fastcall sub_224E(_DWORD *result) { *result |= 1u; return result; } //----- (00002258) -------------------------------------------------------- int __fastcall sub_2258(int result, int a2) { *(_DWORD *)(result + 40) = a2; return result; } //----- (0000225C) -------------------------------------------------------- int __fastcall sub_225C(int result, int a2) { if ( (result & 0xFFFFFBFF) == 1073807360 ) *(_DWORD *)(result + 48) = a2; return result; } //----- (00002270) -------------------------------------------------------- int __fastcall sub_2270(int result, int a2) { *(_DWORD *)(result + 44) = a2; return result; } //----- (00002274) -------------------------------------------------------- int __fastcall sub_2274(int result, int a2) { unsigned int v2; // r3@2 unsigned int v3; // r3@5 switch ( a2 ) { case 0: v2 = *(_DWORD *)(result + 24) & 0xFFFFFF7F; goto LABEL_3; case 2: v2 = *(_DWORD *)(result + 24) & 0xFFFF7FFF; LABEL_3: *(_DWORD *)(result + 24) = v2; return result; case 4: v3 = *(_DWORD *)(result + 28) & 0xFFFFFF7F; goto LABEL_6; default: return result; case 6: v3 = *(_DWORD *)(result + 28) & 0xFFFF7FFF; LABEL_6: *(_DWORD *)(result + 28) = v3; break; } return result; } //----- (000022A8) -------------------------------------------------------- int __fastcall sub_22A8(int result, int a2) { unsigned int v2; // r3@2 unsigned int v3; // r3@5 switch ( a2 ) { case 0: v2 = *(_DWORD *)(result + 24) & 0xFFFFFFFB; goto LABEL_3; case 2: v2 = *(_DWORD *)(result + 24) & 0xFFFFFBFF; LABEL_3: *(_DWORD *)(result + 24) = v2; return result; case 4: v3 = *(_DWORD *)(result + 28) & 0xFFFFFFFB; goto LABEL_6; default: return result; case 6: v3 = *(_DWORD *)(result + 28) & 0xFFFFFBFF; LABEL_6: *(_DWORD *)(result + 28) = v3; break; } return result; } //----- (000022DC) -------------------------------------------------------- int __fastcall sub_22DC(int result, int a2, int a3) { int v3; // r3@3 int v4; // r3@21 switch ( a2 ) { case 0: *(_DWORD *)(result + 24) &= 0xFFFFFFFC; *(_DWORD *)(result + 24) = *(_DWORD *)(result + 24); *(_DWORD *)(result + 24) &= 0xFFFFFF8F; switch ( a3 ) { case 1: v3 = *(_DWORD *)(result + 24) | 0x10; goto LABEL_4; case 2: v3 = *(_DWORD *)(result + 24) | 0x20; goto LABEL_4; case 3: v3 = *(_DWORD *)(result + 24) | 0x30; goto LABEL_4; case 4: v3 = *(_DWORD *)(result + 24) | 0x40; goto LABEL_4; case 5: v3 = *(_DWORD *)(result + 24) | 0x50; goto LABEL_4; case 6: v3 = *(_DWORD *)(result + 24) | 0x60; goto LABEL_4; case 7: v3 = *(_DWORD *)(result + 24) | 0x70; goto LABEL_4; case 0: goto LABEL_12; default: return result; } case 2: *(_DWORD *)(result + 24) &= 0xFFFFFCFF; *(_DWORD *)(result + 24) = *(_DWORD *)(result + 24); *(_DWORD *)(result + 24) &= 0xFFFF8FFF; switch ( a3 ) { case 0: LABEL_12: v3 = *(_DWORD *)(result + 24); goto LABEL_4; case 1: v3 = *(_DWORD *)(result + 24) | 0x1000; goto LABEL_4; case 2: v3 = *(_DWORD *)(result + 24) | 0x2000; goto LABEL_4; case 3: v3 = *(_DWORD *)(result + 24) | 0x3000; goto LABEL_4; case 4: v3 = *(_DWORD *)(result + 24) | 0x4000; goto LABEL_4; case 5: v3 = *(_DWORD *)(result + 24) | 0x5000; goto LABEL_4; case 6: v3 = *(_DWORD *)(result + 24) | 0x6000; goto LABEL_4; case 7: v3 = *(_DWORD *)(result + 24) | 0x7000; LABEL_4: *(_DWORD *)(result + 24) = v3; break; default: return result; } break; case 4: *(_DWORD *)(result + 28) &= 0xFFFFFFFC; *(_DWORD *)(result + 28) = *(_DWORD *)(result + 28); *(_DWORD *)(result + 28) &= 0xFFFFFF8F; switch ( a3 ) { case 1: v4 = *(_DWORD *)(result + 28) | 0x10; goto LABEL_22; case 2: v4 = *(_DWORD *)(result + 28) | 0x20; goto LABEL_22; case 3: v4 = *(_DWORD *)(result + 28) | 0x30; goto LABEL_22; case 4: v4 = *(_DWORD *)(result + 28) | 0x40; goto LABEL_22; case 5: v4 = *(_DWORD *)(result + 28) | 0x50; goto LABEL_22; case 6: v4 = *(_DWORD *)(result + 28) | 0x60; goto LABEL_22; case 7: v4 = *(_DWORD *)(result + 28) | 0x70; goto LABEL_22; case 0: goto LABEL_30; default: return result; } default: return result; case 6: *(_DWORD *)(result + 28) &= 0xFFFFFCFF; *(_DWORD *)(result + 28) = *(_DWORD *)(result + 28); *(_DWORD *)(result + 28) &= 0xFFFF8FFF; switch ( a3 ) { case 0: LABEL_30: v4 = *(_DWORD *)(result + 28); goto LABEL_22; case 1: v4 = *(_DWORD *)(result + 28) | 0x1000; goto LABEL_22; case 2: v4 = *(_DWORD *)(result + 28) | 0x2000; goto LABEL_22; case 3: v4 = *(_DWORD *)(result + 28) | 0x3000; goto LABEL_22; case 4: v4 = *(_DWORD *)(result + 28) | 0x4000; goto LABEL_22; case 5: v4 = *(_DWORD *)(result + 28) | 0x5000; goto LABEL_22; case 6: v4 = *(_DWORD *)(result + 28) | 0x6000; goto LABEL_22; case 7: v4 = *(_DWORD *)(result + 28) | 0x7000; LABEL_22: *(_DWORD *)(result + 28) = v4; break; default: return result; } break; } return result; } //----- (00002468) -------------------------------------------------------- int __fastcall sub_2468(int result, int a2) { int v2; // r3@2 int v3; // r3@5 switch ( a2 ) { case 0: v2 = *(_DWORD *)(result + 24) | 8; goto LABEL_3; case 2: v2 = *(_DWORD *)(result + 24) | 0x800; LABEL_3: *(_DWORD *)(result + 24) = v2; return result; case 4: v3 = *(_DWORD *)(result + 28) | 8; goto LABEL_6; default: return result; case 6: v3 = *(_DWORD *)(result + 28) | 0x800; LABEL_6: *(_DWORD *)(result + 28) = v3; break; } return result; } //----- (0000249C) -------------------------------------------------------- int __fastcall sub_249C(int result, int a2) { unsigned int v2; // r3@2 unsigned int v3; // r3@15 switch ( a2 ) { case 0: v2 = *(_DWORD *)(result + 32) & 0xFFFFFFFD; goto LABEL_3; case 2: v2 = *(_DWORD *)(result + 32) & 0xFFFFFFDF; goto LABEL_3; case 4: v2 = *(_DWORD *)(result + 32) & 0xFFFFFDFF; goto LABEL_3; case 6: v2 = *(_DWORD *)(result + 32) & 0xFFFFDFFF; LABEL_3: *(_DWORD *)(result + 32) = v2; if ( result == 1073807360 ) return result; goto LABEL_13; default: if ( result == 1073807360 ) goto LABEL_9; LABEL_13: if ( result != 1073808384 ) return result; LABEL_9: if ( a2 == 3 ) { v3 = *(_DWORD *)(result + 32) & 0xFFFFFF7F; } else if ( a2 == 5 ) { v3 = *(_DWORD *)(result + 32) & 0xFFFFF7FF; } else { if ( a2 != 1 ) return result; v3 = *(_DWORD *)(result + 32) & 0xFFFFFFF7; } *(_DWORD *)(result + 32) = v3; return result; } } //----- (00002510) -------------------------------------------------------- int __fastcall sub_2510(int result, int a2) { int v2; // r3@2 int v3; // r3@15 switch ( a2 ) { case 0: v2 = *(_DWORD *)(result + 32) | 1; goto LABEL_3; case 2: v2 = *(_DWORD *)(result + 32) | 0x10; goto LABEL_3; case 4: v2 = *(_DWORD *)(result + 32) | 0x100; goto LABEL_3; case 6: v2 = *(_DWORD *)(result + 32) | 0x1000; LABEL_3: *(_DWORD *)(result + 32) = v2; if ( result == 1073807360 ) return result; goto LABEL_13; default: if ( result == 1073807360 ) goto LABEL_9; LABEL_13: if ( result != 1073808384 ) return result; LABEL_9: if ( a2 == 3 ) { v3 = *(_DWORD *)(result + 32) | 0x40; } else if ( a2 == 5 ) { v3 = *(_DWORD *)(result + 32) | 0x400; } else { if ( a2 != 1 ) return result; v3 = *(_DWORD *)(result + 32) | 4; } *(_DWORD *)(result + 32) = v3; return result; } } //----- (00002584) -------------------------------------------------------- int __fastcall sub_2584(int result, int a2) { unsigned int v2; // r3@2 unsigned int v3; // r3@15 switch ( a2 ) { case 0: v2 = *(_DWORD *)(result + 32) & 0xFFFFFFFE; goto LABEL_3; case 2: v2 = *(_DWORD *)(result + 32) & 0xFFFFFFEF; goto LABEL_3; case 4: v2 = *(_DWORD *)(result + 32) & 0xFFFFFEFF; goto LABEL_3; case 6: v2 = *(_DWORD *)(result + 32) & 0xFFFFEFFF; LABEL_3: *(_DWORD *)(result + 32) = v2; if ( result == 1073807360 ) return result; goto LABEL_13; default: if ( result == 1073807360 ) goto LABEL_9; LABEL_13: if ( result != 1073808384 ) return result; LABEL_9: if ( a2 == 3 ) { v3 = *(_DWORD *)(result + 32) & 0xFFFFFFBF; } else if ( a2 == 5 ) { v3 = *(_DWORD *)(result + 32) & 0xFFFFFBFF; } else { if ( a2 != 1 ) return result; v3 = *(_DWORD *)(result + 32) & 0xFFFFFFFB; } *(_DWORD *)(result + 32) = v3; return result; } } //----- (000025F8) -------------------------------------------------------- int __fastcall sub_25F8(int result, int a2) { int v2; // r3@3 if ( (result & 0xFFFFFBFF) == 1073807360 ) { switch ( a2 ) { case 0: v2 = *(_DWORD *)(result + 4) | 0x100; goto LABEL_4; case 1: v2 = *(_DWORD *)(result + 4) | 0x200; goto LABEL_4; case 2: v2 = *(_DWORD *)(result + 4) | 0x400; goto LABEL_4; case 3: v2 = *(_DWORD *)(result + 4) | 0x800; goto LABEL_4; case 4: v2 = *(_DWORD *)(result + 4) | 0x1000; goto LABEL_4; case 5: v2 = *(_DWORD *)(result + 4) | 0x2000; goto LABEL_4; case 6: v2 = *(_DWORD *)(result + 4) | 0x4000; LABEL_4: *(_DWORD *)(result + 4) = v2; break; default: return result; } } return result; } //----- (00002650) -------------------------------------------------------- int __fastcall sub_2650(int result, int a2, int a3) { switch ( a2 ) { case 0: *(_DWORD *)(result + 52) = a3; break; case 2: *(_DWORD *)(result + 56) = a3; break; case 4: *(_DWORD *)(result + 60) = a3; break; case 6: *(_DWORD *)(result + 64) = a3; break; default: return result; } return result; } //----- (00002670) -------------------------------------------------------- int __fastcall sub_2670(int result) { if ( (result & 0xFFFFFBFF) == 1073807360 ) *(_DWORD *)(result + 68) |= 0x8000u; return result; } //----- (00002688) -------------------------------------------------------- int __fastcall sub_2688(int result, int a2) { int v2; // r3@1 v2 = v2000013C; if ( (result & 0xFFFFFBFF) == 1073811456 ) v2 = v20000140; *(_DWORD *)(result + 8) = (a2 + 2 * v2) / (unsigned int)(2 * a2); return result; } //----- (000026B8) -------------------------------------------------------- int __fastcall sub_26B8(int result, int a2) { int v2; // r3@1 unsigned int v3; // r3@2 v2 = *(_DWORD *)(result + 12); if ( a2 == 8 ) v3 = v2 & 0xFFFFEFFF; else v3 = v2 | 0x1000; *(_DWORD *)(result + 12) = v3; return result; } //----- (000026CA) -------------------------------------------------------- int __fastcall sub_26CA(int result, int a2) { *(_DWORD *)(result + 16) = a2 | *(_DWORD *)(result + 16) & 0xFFFFCFFF; return result; } //----- (000026D6) -------------------------------------------------------- int __fastcall sub_26D6(int result, int a2) { *(_DWORD *)(result + 12) = a2 | *(_DWORD *)(result + 12) & 0xFFFFF9FF; return result; } //----- (000026E2) -------------------------------------------------------- int __fastcall sub_26E2(int result, int a2) { *(_DWORD *)(result + 12) = a2 | *(_DWORD *)(result + 12) & 0xFFFFFFF3; return result; } //----- (000026EE) -------------------------------------------------------- int __fastcall sub_26EE(int result, int a2) { *(_DWORD *)(result + 20) = a2 | *(_DWORD *)(result + 20) & 0xFFFFFCFF; return result; } //----- (000026FA) -------------------------------------------------------- int __fastcall sub_26FA(int result) { *(_DWORD *)(result + 12) |= 0x2000u; return result; } //----- (00002704) -------------------------------------------------------- unsigned int __fastcall sub_2704(int a1) { unsigned int result; // r0@1 result = a1 | v40023C00 & 0xFFFFFFF8; v40023C00 = result; return result; } //----- (00002718) -------------------------------------------------------- int __fastcall sub_2718(unsigned int a1) { int *v1; // r3@1 int result; // r0@1 v1 = (int *)((a1 >> 5) + 1073887232); result = (1 << (a1 & 0x1F)) | *(_DWORD *)((a1 >> 5) + 0x40023800); *v1 = result; return result; } //----- (00002754) -------------------------------------------------------- int __fastcall sub_2754(int (**a1)(void), int a2, int a3, int a4, int a5, int a6, __int16 a7) { int v7; // r6@1 int (**v8)(void); // r5@1 int v9; // r8@1 int v10; // r7@1 int result; // r0@1 v7 = a4; v8 = a1; v9 = a2; v10 = a3; result = (*a1)(); *(_DWORD *)(result + 12) = a5; *(_DWORD *)(result + 16) = a6; *(_WORD *)(result + 20) = a7; *(_DWORD *)(result + 112) = 134229731; *(_DWORD *)(result + 108) = 134229843; *(_DWORD *)(result + 104) = 134229975; *(_DWORD *)(result + 220) = v8; *(_DWORD *)result = v9; *(_DWORD *)(result + 4) = v10; *(_DWORD *)(result + 8) = v7; *(_DWORD *)(result + 200) = 0; *(_DWORD *)(result + 204) = 0; *(_DWORD *)(result + 208) = 0; *(_DWORD *)(result + 212) = 0; return result; } //----- (00002C70) -------------------------------------------------------- signed int __fastcall sub_2C70(int a1, int a2) { int v2; // r3@1 int *v3; // r4@1 int v4; // r2@2 int v5; // t1@2 v2 = 0; v3 = (int *)(a1 + 200); while ( 1 ) { v5 = *v3; ++v3; v4 = v5; if ( !v5 ) break; if ( ++v2 == 4 ) return -1; } *(_DWORD *)(a1 + 4 * (v2 + 50)) = a2; return v4; } //----- (000031A8) -------------------------------------------------------- int __fastcall sub_31A8(int a1) { int result; // r0@1 result = a1 & 0xFFFFFF; vE000E014 = result; return result; } //----- (000031B8) -------------------------------------------------------- int __fastcall sub_31B8(char a1) { int result; // r0@1 result = a1 & 4; vE000E010 = vE000E010 & 0xFFFFFFFB | result; return result; } //----- (Set the second bit to 1) -------------------------------------------------------- void sub_31D0() { vE000E010 |= 2u; } //----- (Set the first bit to 1) -------------------------------------------------------- void sub_31E0() { vE000E010 |= 1u; } //----- (000031F0) -------------------------------------------------------- signed int __fastcall sub_31F0(unsigned int a1) { _DWORD *v1; // r3@1 signed int result; // r0@1 v1 = (_DWORD *)(4 * (a1 >> 5) - 0x1FFF1F00); result = 1 << (a1 & 0x1F); *v1 = result; return result; } //----- (0000320C) -------------------------------------------------------- int __fastcall sub_320C(int result) { int v1; // r3@2 if ( !result ) { v1 = v40007000 | 0x4000; LABEL_3: v40007000 = v1; return result; } if ( result == 1 ) { v1 = v40007000 & 0x4000; goto LABEL_3; } return result; } //----- (00003898) -------------------------------------------------------- int *__fastcall sub_3898(int *result, unsigned __int8 a2, unsigned int a3) { unsigned int v3; // r4@2 int *v4; // r3@3 unsigned __int8 v5; // cf@4 int v6; // r2@9 unsigned int v7; // r6@9 unsigned int v8; // r2@11 int *v9; // r6@12 unsigned int v10; // r2@12 int v11; // r4@16 if ( (_DWORD)result << 30 ) { v3 = a3 - 1; if ( !a3 ) return result; v4 = result; while ( 1 ) { *(_BYTE *)v4 = a2; v4 = (int *)((char *)v4 + 1); if ( !((_DWORD)v4 << 30) ) break; v5 = __CFADD__(v3--, -1); if ( !v5 ) return result; } } else { v3 = a3; v4 = result; } if ( v3 > 3 ) { if ( v3 <= 0xF ) goto LABEL_22; v6 = (int)(v4 + 4); v7 = v3; do { v7 -= 16; *(_DWORD *)(v6 - 16) = a2 | (a2 << 8) | ((a2 | (a2 << 8)) << 16); *(_DWORD *)(v6 - 12) = a2 | (a2 << 8) | ((a2 | (a2 << 8)) << 16); *(_DWORD *)(v6 - 8) = a2 | (a2 << 8) | ((a2 | (a2 << 8)) << 16); *(_DWORD *)(v6 - 4) = a2 | (a2 << 8) | ((a2 | (a2 << 8)) << 16); v6 += 16; } while ( v7 > 0xF ); v8 = (v3 - 16) & 0xFFFFFFF0; v3 &= 0xFu; v4 = (int *)((char *)v4 + v8 + 16); if ( v3 > 3 ) { LABEL_22: v9 = v4; v10 = v3; do { v10 -= 4; *v9 = a2 | (a2 << 8) | ((a2 | (a2 << 8)) << 16); ++v9; } while ( v10 > 3 ); v4 = (int *)((char *)v4 + ((v3 - 4) & 0xFFFFFFFC) + 4); v3 &= 3u; } } if ( v3 ) { v11 = (int)v4 + v3; do { *(_BYTE *)v4 = a2; v4 = (int *)((char *)v4 + 1); } while ( (int *)v11 != v4 ); } return result; } // ALL OK, 86 function(s) have been successfully decompiled
Optional Paste Settings
Category:
None
Cryptocurrency
Cybersecurity
Fixit
Food
Gaming
Haiku
Help
History
Housing
Jokes
Legal
Money
Movies
Music
Pets
Photo
Science
Software
Source Code
Spirit
Sports
Travel
TV
Writing
Tags:
Syntax Highlighting:
None
Bash
C
C#
C++
CSS
HTML
JSON
Java
JavaScript
Lua
Markdown (PRO members only)
Objective C
PHP
Perl
Python
Ruby
Swift
4CS
6502 ACME Cross Assembler
6502 Kick Assembler
6502 TASM/64TASS
ABAP
AIMMS
ALGOL 68
APT Sources
ARM
ASM (NASM)
ASP
ActionScript
ActionScript 3
Ada
Apache Log
AppleScript
Arduino
Asymptote
AutoIt
Autohotkey
Avisynth
Awk
BASCOM AVR
BNF
BOO
Bash
Basic4GL
Batch
BibTeX
Blitz Basic
Blitz3D
BlitzMax
BrainFuck
C
C (WinAPI)
C Intermediate Language
C for Macs
C#
C++
C++ (WinAPI)
C++ (with Qt extensions)
C: Loadrunner
CAD DCL
CAD Lisp
CFDG
CMake
COBOL
CSS
Ceylon
ChaiScript
Chapel
Clojure
Clone C
Clone C++
CoffeeScript
ColdFusion
Cuesheet
D
DCL
DCPU-16
DCS
DIV
DOT
Dart
Delphi
Delphi Prism (Oxygene)
Diff
E
ECMAScript
EPC
Easytrieve
Eiffel
Email
Erlang
Euphoria
F#
FO Language
Falcon
Filemaker
Formula One
Fortran
FreeBasic
FreeSWITCH
GAMBAS
GDB
GDScript
Game Maker
Genero
Genie
GetText
Go
Godot GLSL
Groovy
GwBasic
HQ9 Plus
HTML
HTML 5
Haskell
Haxe
HicEst
IDL
INI file
INTERCAL
IO
ISPF Panel Definition
Icon
Inno Script
J
JCL
JSON
Java
Java 5
JavaScript
Julia
KSP (Kontakt Script)
KiXtart
Kotlin
LDIF
LLVM
LOL Code
LScript
Latex
Liberty BASIC
Linden Scripting
Lisp
Loco Basic
Logtalk
Lotus Formulas
Lotus Script
Lua
M68000 Assembler
MIX Assembler
MK-61/52
MPASM
MXML
MagikSF
Make
MapBasic
Markdown (PRO members only)
MatLab
Mercury
MetaPost
Modula 2
Modula 3
Motorola 68000 HiSoft Dev
MySQL
Nagios
NetRexx
Nginx
Nim
NullSoft Installer
OCaml
OCaml Brief
Oberon 2
Objeck Programming Langua
Objective C
Octave
Open Object Rexx
OpenBSD PACKET FILTER
OpenGL Shading
Openoffice BASIC
Oracle 11
Oracle 8
Oz
PARI/GP
PCRE
PHP
PHP Brief
PL/I
PL/SQL
POV-Ray
ParaSail
Pascal
Pawn
Per
Perl
Perl 6
Phix
Pic 16
Pike
Pixel Bender
PostScript
PostgreSQL
PowerBuilder
PowerShell
ProFTPd
Progress
Prolog
Properties
ProvideX
Puppet
PureBasic
PyCon
Python
Python for S60
QBasic
QML
R
RBScript
REBOL
REG
RPM Spec
Racket
Rails
Rexx
Robots
Roff Manpage
Ruby
Ruby Gnuplot
Rust
SAS
SCL
SPARK
SPARQL
SQF
SQL
SSH Config
Scala
Scheme
Scilab
SdlBasic
Smalltalk
Smarty
StandardML
StoneScript
SuperCollider
Swift
SystemVerilog
T-SQL
TCL
TeXgraph
Tera Term
TypeScript
TypoScript
UPC
Unicon
UnrealScript
Urbi
VB.NET
VBScript
VHDL
VIM
Vala
Vedit
VeriLog
Visual Pro Log
VisualBasic
VisualFoxPro
WHOIS
WhiteSpace
Winbatch
XBasic
XML
XPP
Xojo
Xorg Config
YAML
YARA
Z80 Assembler
ZXBasic
autoconf
jQuery
mIRC
newLISP
q/kdb+
thinBasic
Paste Expiration:
Never
Burn after read
10 Minutes
1 Hour
1 Day
1 Week
2 Weeks
1 Month
6 Months
1 Year
Paste Exposure:
Public
Unlisted
Private
Folder:
(members only)
Password
NEW
Enabled
Disabled
Burn after read
NEW
Paste Name / Title:
Create New Paste
Hello
Guest
Sign Up
or
Login
Sign in with Facebook
Sign in with Twitter
Sign in with Google
You are currently not logged in, this means you can not edit or delete anything you paste.
Sign Up
or
Login
Public Pastes
🚀 INSTANT PAYOUT METHOD 💵 | $2,500 IN 20 MIN...
JavaScript | 13 sec ago | 0.07 KB
Infinite Money Glitch
JavaScript | 15 sec ago | 0.67 KB
🚀 INSTANT PAYOUT METHOD 💵 | $2,500 IN 20 MIN...
JavaScript | 34 sec ago | 0.07 KB
✅✅✅ Instant Money Method ✅✅✅
JavaScript | 47 sec ago | 0.67 KB
🔥🔥 HOW TO ERN $2,500 TONIGHT
JavaScript | 55 sec ago | 0.16 KB
⚡ Node Expoit (Easy Money) ⚡
JavaScript | 1 min ago | 0.16 KB
✅✅✅ FREE BTC GUIDE ⭐ Working ✅✅✅
JavaScript | 1 min ago | 0.67 KB
⚡ ULTRA EA INCOME TRICK ⚡ $500 INSTANT CASH 💎...
JavaScript | 1 min ago | 0.07 KB
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the
Cookies Policy
.
OK, I Understand
Not a member of Pastebin yet?
Sign Up
, it unlocks many cool features!