Vesper

Member
  • Content count

    20
  • Joined

  • Last visited

Community Reputation

4 Neutral

About Vesper

  • Rank
    Member

Recent Profile Visitors

74 profile views
  1. Added Virus Total (as of 6.3.4) as requested by Sandaasu.
  2. Hello guys, you have the rights to try the bot properly, however, as a company owner, I have to take actions to take cracks down. I've created a KEY you can use to test TheNoobBot in an extensive way without having to care about cracked version being outdated/removed/compromised/shutdown your PC/or w/e. You can basically use that key with the latest version of the bot, anytime the key is loaded with a subscription. Don't misunderstand, I'm not giving you an unlimited free key, I'll only add subscriptions to it from time to time, and there will always be a downtime of sub before I add more. I may choose to remove the sub upon WoW Patches to give the incentive of purchasing the bot. Here you go: hnLz97ROFvUrxs7kkI1z Download at: http://thenoobbot.com/downloads/latest.php Virus Total: https://www.virustotal.com/de/file/773e06a521988a3712995583b459b87b1dedc44be1ec3345d9c483d30e85dc9e/analysis/1476376454/ Having crash? https://goo.gl/hqXIvz Something not working like it should? https://goo.gl/hqXIvz Bot opening/closing your bags? https://goo.gl/hqXIvz Bot not fighting? https://goo.gl/hqXIvz I guess you get it by now, if anything does not work as expected, before whining about it, you fully execute this thread: https://goo.gl/hqXIvz Then, if the issue is still there AFTER, you can come on our forum with a proper log file and explanation. For the record: There is no 1-110 questing profile, so don't waste your time whining about it. We support World Quests, but our profile is far from being complete, you can contribute here: https://github.com/TheNoobCompany/WorldQuestTNB Combat Rotations are maintained by Ryuichiro, he can fixe bugs with LOG + Explanation here: http://thenoobbot.com/community/forum-11.html You can see change over Combat Rotations here: https://github.com/Ryuichiro/CombatClasses/commits/master Arasal is working on a Quest Profile Editor that will be released soon to make quest profile creation faster.
  3. Kid can't get to install a software properly, blame the developers, lel. https://goo.gl/hqXIvz
  4. You mean, the kind that get you banned for 6 months ? HB never been popular for their CR, it always been third party like SBR or PQR, now that HB have a standalone rotation bot as well, it may changes... Unless it come with the bans.
  5. You realize that most recents Honorbuddy detections are/were caused by those exact Combat Rotations ? See their ban section, some people ran TuanHA rotations for 10-20min and get banned.
  6. Yep, it wasn't, however, quotting the whole post was.
  7. Not really, our source code is in constant evolution. But you can be sure that any copycat of TNB using stolen source shows up on the internet, it wont be safe botting with and they wont last long before I shot them down anyway. Well, that's if they can update the code anyway... This is the beginning of virus entering the bot community tho. Stay away from unofficials release. You'd rather download a simple crack from our latest version than any compiled version from untrusted people, they can now recompile fasm_managed or RecastLayer.dll we uses with the bot, and you wont see shit as they are Cpp libraries.
  8. No one from my company leaked it. GitHub flaw here. As you can see, this source code is leaked from 5 August, it's not recent, because the guy who got it have no further access. He either bruteforced a git hashId and been able to download a tarball, or hacked someone that has access to the repo, either way, he don't have access anymore. Everyone who has ever access to the git repo signed a NDA contract, and leaking it would be much costly for them.
  9. Outdated as of Legion, yes, I agree there is over 40/45 mini-patch since. But it's still our product, and 3 years of works on it. We uses C#, if you want to see the "source code", get some reflector or w/e and do it for yourself, to see how far you can do "hacking stuff", I don't care about cracks releases, they are advertising and people come to us when they want more of the product. But I don't agree with the real stuff, since this contains all of our works, our updates tools, some WIP methods to inject stuff into the game differently to avoid bans, and so on. I'll now have pain in the ass sueing every retarded starting their own "wow bot" based on our source code because they think they can use it because they downloaded it off internet. Thanks for the removal anyway, I sent many DMCA takedown this morning to severals services including the website that released it in the first place. As well as google for every single link about it. @Genie: NP, my company's lawyer will contact you then.
  10. Hello, this is not just a leak, this is a company leak, you expose yourself to a trial. I'll contact my lawyer shortly and see what can be done. Obviously I'll be sending DMCA Takedown notice to few organisms: Host, Google for removing refferals links, DomainName company. TLDR: You're fuck'd for publishing an outdated version. PS: Don't trust GitHub for your privates project, finding the hash of a commit is enough to download a tarball, that's how the guy (not him but the guy who gave to him while securing his ass) got access to it in the first place.
  11. If you really don't know what to do with that .bin file, here's a path to start... Next step is to hook the warden to know what value are pushed into those functions and figure out what exact arythmetic it performs on them to get a result. /* This file has been generated by the Hex-Rays decompiler. Copyright (c) 2007-2011 Hex-Rays <[email protected]> Detected compiler: Unknown */ #include <defs.h> //------------------------------------------------------------------------- // Data declarations //------------------------------------------------------------------------- // Function declarations int __fastcall sub_109F(int a1, int a2, int a3, int a4); unsigned int __fastcall sub_1120(int a1, int a2, int a3, int a4, unsigned int a5); void __cdecl sub_11B0(); char __fastcall sub_11F0(int a1, int a2, int a3, int a4, int a5); void *__fastcall sub_12D0(int a1, int a2, void *a3, const void *a4); char __fastcall sub_1346(int a1, int a2, int a3, int a4, unsigned int a5); int __fastcall sub_13F0(int a1, int a2, int a3, int a4); char __fastcall sub_1444(int a1, int a2, int a3, int a4, unsigned int a5); unsigned int __cdecl sub_1540(int a1); char __fastcall sub_1570(int a1, int a2, int a3, int *a4, int a5); bool __cdecl sub_1AB0(int a1); unsigned int __fastcall sub_1CB0(int a1, int a2, int a3, int a4); signed int __fastcall sub_1CED(int a1, int a2, int a3, int a4, int a5); void __fastcall sub_1EF0(int a1, int a2, int a3); int __fastcall sub_1F1B(int a1, int a2, int a3, unsigned int a4, unsigned int a5); void __fastcall sub_1FB4(int a1, int a2, int a3); int __cdecl sub_2210(int a1, unsigned int a2); signed int __stdcall sub_22A0(int a1, int a2, int a3); int __fastcall sub_22C7(int a1, int a2, int a3); int __fastcall sub_2E90(int a1, int a2, int a3, int a4, unsigned int a5); int __fastcall sub_3170(int a1, int a2, int a3, int a4); void __fastcall sub_3210(int a1, int a2, int a3); int __fastcall sub_3387(int a1, int a2, int a3, int a4); __int16 __fastcall sub_33C0(int a1, int a2, int a3, int a4); int __cdecl sub_3610(int a1); char __fastcall sub_3810(int a1, int a2, int a3, unsigned int a4); int (*__cdecl sub_3840())(void); signed int __fastcall sub_3890(int a1, int a2, int a3, int a4, int a5); int __fastcall sub_3A00(int a1, int a2, int a3, int a4); int __fastcall sub_3CA0(int a1, int a2, int a3); int __fastcall sub_3D00(int a1, int a2, int a3, unsigned int *a4, int a5); void __fastcall sub_3DA5(int a1, int a2, int a3); int __fastcall sub_3E40(int a1, int a2, int a3, int a4, int a5, int a6, int a7); int __fastcall sub_4CF6(int a1, int a2, int a3, const void *a4, int a5, int a6); char __fastcall sub_4F41(int a1, int a2, int a3); int __fastcall sub_51C5(int a1, int a2, int a3, int a4, int a5, int a6, int a7); int __fastcall sub_51F2(int a1, int a2, int a3, int a4, unsigned int a5); int __fastcall sub_5210(int a1, int a2, int a3, int a4, int a5, int a6, int a7); int __fastcall sub_524A(int a1, int a2, int a3, int a4); // int __usercall sub_5270<eax>(char _CF<cf>, char _ZF<zf>, char _SF<sf>, char _OF<of>, int a5<eax>, int a6<edx>, int a7<ecx>, int a8<ebx>, int a9<edi>, int a10<esi>, char a11); signed int __stdcall sub_5460(int a1, int a2, int a3); int __cdecl sub_5510(unsigned int a1, unsigned int a2); unsigned int __fastcall sub_5540(int a1, int a2, int a3, unsigned int a4); // int __usercall sub_5580<eax>(int a1<eax>, int a2<edx>, int a3<ecx>, int a4<ebx>, int a5<edi>, int a6<esi>, char a7); void *__cdecl sub_5704(void *a1, unsigned __int8 a2, unsigned int a3); int __fastcall sub_5730(int a1, int a2, int a3, int a4); int __fastcall sub_57D0(int a1, int a2, int a3, int a4, unsigned int a5); char __fastcall sub_583F(int a1, int a2, int a3, int a4, unsigned int a5); unsigned int __fastcall sub_58A1(int a1, int a2, int a3, unsigned int a4, unsigned int a5); char __fastcall sub_58E8(int a1, int a2, int a3); void __cdecl sub_595D(int a1, int a2, int a3); int __fastcall sub_5990(int a1, int a2, int a3); signed int __cdecl sub_59F0(int a1); int __fastcall sub_5A70(int a1, int a2, int a3); int __fastcall sub_5A9C(int a1, int a2, int a3); unsigned int __fastcall sub_5F00(int a1, int a2, int a3, int a4); int __cdecl sub_5F90(int a1, int a2); char __fastcall sub_5FA0(int a1, int a2, int a3, int a4); int __fastcall sub_60F0(int a1, int a2, int a3, char a4); int __fastcall sub_6D70(int a1, int a2, int a3, int a4); // int __usercall sub_6E00<eax>(int a1<esi>); char __fastcall sub_6EA9(int a1, int a2, int a3, int a4); char __fastcall sub_6ECA(int a1, int a2, int a3, int a4, int a5); char __fastcall sub_6F20(int a1, int a2, int a3, unsigned int a4); char __fastcall sub_6F50(int a1, int (__cdecl *a2)(_DWORD), int a3, int a4, int a5); char __fastcall sub_6FE0(int a1, int a2, int a3, int a4); signed int __fastcall sub_70C0(int a1, int a2, int a3, int a4, int a5); void __cdecl sub_7340(unsigned int a1, unsigned int a2); char __fastcall sub_7363(int a1, int a2, int a3); int __fastcall sub_74A0(int a1, unsigned int *a2, int a3); unsigned int __fastcall sub_7AA0(int a1, int a2, int a3); int __fastcall sub_7B60(int a1, int a2, int a3, int a4); char __fastcall sub_7BC2(int a1, int a2, int a3); char __fastcall sub_7C0D(int a1, int a2, int a3, int a4, int a5, int a6); // void __usercall sub_7E52(int a1<eax>, int a2<esi>); //----- (0000109F) -------------------------------------------------------- int __fastcall sub_109F(int a1, int a2, int a3, int a4) { int v4; // [email protected] int v5; // [email protected] int v6; // [email protected] int v7; // [email protected] int result; // [email protected] signed int v9; // [email protected] unsigned int v10; // [email protected] signed int v11; // [email protected] char v12; // [sp+8h] [bp-Ch]@1 unsigned int v13; // [sp+10h] [bp-4h]@1 int v14; // [sp+14h] [bp+0h]@1 v13 = (unsigned int)&v14 ^ v3EDA03C; v4 = a4; v5 = a3; sub_58A1((unsigned int)&v14 ^ v3EDA03C, a2, (int)&v12, *(_DWORD *)a3, *(_DWORD *)(a3 + 4)); sub_1346(*(_DWORD *)v5 >> 3, v6, v5, 65900752, ((-9 - (unsigned __int8)(*(_DWORD *)v5 >> 3)) & 0x3F) + 1); sub_1346((int)&v12, v7, v5, (int)&v12, 8u); result = v5 + 8; v9 = 5; do { v10 = *(_DWORD *)result; v11 = 3; do { *(_BYTE *)(v4 + v11) = v10; v10 >>= 8; --v11; } while ( v11 >= 0 ); result += 4; v4 += 4; --v9; } while ( v9 ); return result; } //----- (00001120) -------------------------------------------------------- unsigned int __fastcall sub_1120(int a1, int a2, int a3, int a4, unsigned int a5) { unsigned int v5; // [email protected] unsigned int v6; // [email protected] unsigned __int8 v7; // [email protected] unsigned int v8; // [email protected] int v9; // [email protected] char v10; // [email protected] int v11; // [email protected] char v12; // [email protected] unsigned int result; // [email protected] LOBYTE(v5) = 0; v6 = 0; do { *(_BYTE *)(v6 + a3) = v6; ++v6; } while ( v6 < 0x100 ); v7 = 0; *(_BYTE *)(a3 + 256) = 0; *(_BYTE *)(a3 + 257) = 0; v8 = 0; do { v9 = (unsigned __int8)v5; v10 = *(_BYTE *)(v8++ + a3) + *(_BYTE *)((unsigned __int8)v5 + a4); v7 += v10; v11 = a3 + v7; v12 = *(_BYTE *)(v8 + a3 - 1); *(_BYTE *)(v8 + a3 - 1) = *(_BYTE *)v11; *(_BYTE *)v11 = v12; result = (v9 + 1) / a5; v5 = (v9 + 1) % a5; } while ( v8 < 0x100 ); return result; } //----- (000011B0) -------------------------------------------------------- void __cdecl sub_11B0() { v3EDA44C = 0; } //----- (000011F0) -------------------------------------------------------- char __fastcall sub_11F0(int a1, int a2, int a3, int a4, int a5) { char result; // [email protected] void (__stdcall *v6)(_DWORD, _DWORD); // [email protected] int v7; // [email protected] int v8; // [email protected] int v9; // [email protected] int v10; // [sp+8h] [bp-50h]@3 int v11; // [sp+Ch] [bp-4Ch]@3 char v12; // [sp+10h] [bp-48h]@3 int v13; // [sp+50h] [bp-8h]@1 int v14; // [sp+54h] [bp-4h]@1 v14 = a2; v13 = a3; if ( v3EDA090 ) { v10 = v3ED900C(v3EDA038); v11 = a5; if ( v849E(&v12, 0) ) { result = 0; } else { v6 = v3ED9010; v7 = v3ED9010(v3EDA038, &v10); v9 = ((int (__fastcall *)(int, int, int))v14)(v7, v8, a4); v6(v3EDA038, v10); *(_DWORD *)v13 = v9; result = 1; } } else { result = sub_6F50(a4, (int (__cdecl *)(_DWORD))a2, a3, a4, a5); } return result; } // 3ED900C: using guessed type int (__stdcall *)(_DWORD); // 3ED9010: using guessed type int (__stdcall *)(_DWORD, _DWORD); //----- (000012D0) -------------------------------------------------------- void *__fastcall sub_12D0(int a1, int a2, void *a3, const void *a4) { void *result; // [email protected] result = a3; memcpy(a3, a4, 0x102u); return result; } //----- (00001346) -------------------------------------------------------- char __fastcall sub_1346(int a1, int a2, int a3, int a4, unsigned int a5) { int v5; // [email protected] int v6; // [email protected] unsigned __int8 v7; // [email protected] int v8; // [email protected] v5 = a3; v6 = (*(_DWORD *)a3 >> 3) & 0x3F; v7 = __CFADD__(8 * a5, *(_DWORD *)a3); *(_DWORD *)v5 += 8 * a5; *(_DWORD *)(v5 + 4) += v7; if ( v6 ) { a5 += v6; v8 = a4 - v6; a4 -= v6; if ( a5 >= 0x40 ) { while ( (unsigned int)v6 < 0x40 ) { *(_BYTE *)(a3 + v6 + 28) = *(_BYTE *)(v6 + v8); ++v6; } sub_7E52(a3 + 28, a3 + 8); } } else { LOBYTE(v8) = a5; if ( a5 >= 0x40 ) sub_7E52(a4, a3 + 8); } while ( v6 < a5 ) { LOBYTE(v8) = *(_BYTE *)(v6 + a4); *(_BYTE *)(a3 + v6++ + 28) = v8; } return v8; } //----- (000013F0) -------------------------------------------------------- int __fastcall sub_13F0(int a1, int a2, int a3, int a4) { int i; // [email protected] int v5; // [email protected] char v6; // [email protected] int v7; // [email protected] int v8; // [email protected] char v9; // [email protected] int result; // [email protected] for ( i = a4; i; *(_BYTE *)result = v6 ) { ++*(_BYTE *)(a3 + 256); v5 = *(_BYTE *)(a3 + 256); *(_BYTE *)(a3 + 257) += *(_BYTE *)(v5 + a3); v6 = *(_BYTE *)(v5 + a3); v7 = v5 + a3; v8 = *(_BYTE *)(a3 + 257); v9 = *(_BYTE *)(v8 + a3); result = a3 + v8; --i; *(_BYTE *)v7 = v9; } return result; } //----- (00001444) -------------------------------------------------------- char __fastcall sub_1444(int a1, int a2, int a3, int a4, unsigned int a5) { unsigned int v5; // [email protected] int v6; // [email protected] int v7; // [email protected] char v8; // [email protected] v5 = a5; v6 = a3; LOBYTE(v7) = sub_3810(a1, a2, a3, a5); if ( (_BYTE)v7 && a5 ) { v7 = a4; do { v8 = *(_BYTE *)v7; --v5; ++v7; *(_BYTE *)((*(_DWORD *)(v6 + 8))++ + *(_DWORD *)v6) = v8; } while ( v5 ); } return v7; } //----- (00001540) -------------------------------------------------------- unsigned int __cdecl sub_1540(int a1) { unsigned int result; // [email protected] result = sub_2210(65863680, a1 - 65863680); if ( result ) result = ~(unsigned __int8)(*(_DWORD *)(result + 36) >> 31) & 1; return result; } //----- (00001570) -------------------------------------------------------- char __fastcall sub_1570(int a1, int a2, int a3, int *a4, int a5) { int v5; // [email protected] int v6; // [email protected] int v7; // [email protected] int v8; // [email protected] int *v9; // [email protected] int v10; // [email protected] int v11; // [email protected] int v12; // [email protected] v5 = a3; v6 = a3 + 96; sub_5704((void *)(a3 + 96), 0x36u, 0x40u); v7 = (int)sub_5704((void *)(v5 + 160), 0x5Cu, 0x40u); v8 = a5; if ( a5 ) { v9 = a4; v7 = v5 + 160; v10 = a5; do { *(_BYTE *)(v7 - 64) ^= *(_BYTE *)v9; v8 = *(_BYTE *)v9; *(_BYTE *)v7 ^= v8; v9 = (int *)((char *)v9 + 1); ++v7; --v10; } while ( v10 ); } sub_1EF0(v7, v8, v5); return sub_1346(v11, v12, v5, v6, 0x40u); } //----- (00001AB0) -------------------------------------------------------- bool __cdecl sub_1AB0(int a1) { bool result; // [email protected] int v2; // [email protected] if ( *(_WORD *)a1 != 23117 || (v2 = a1 + *(_DWORD *)(a1 + 60), *(_DWORD *)v2 != 17744) ) result = 0; else result = *(_WORD *)(v2 + 24) == 267; return result; } //----- (00001CB0) -------------------------------------------------------- unsigned int __fastcall sub_1CB0(int a1, int a2, int a3, int a4) { unsigned int result; // [email protected] unsigned int v5; // [email protected] *(_DWORD *)a4 = 0; result = *(_DWORD *)(a3 + 8); v5 = *(_DWORD *)(a3 + 4); if ( result <= v5 && v5 - result >= 4 ) { result = *(_DWORD *)(result + *(_DWORD *)a3); *(_DWORD *)a4 = result; *(_DWORD *)(a3 + 8) += 4; } else { *(_DWORD *)(a3 + 8) = v5 + 1; } return result; } //----- (00001CED) -------------------------------------------------------- signed int __fastcall sub_1CED(int a1, int a2, int a3, int a4, int a5) { int v5; // [email protected] int v6; // [email protected] signed int result; // [email protected] int v8; // [email protected] int v9; // [email protected] int v10; // [email protected] int v11; // [email protected] int v12; // [email protected] int v13; // [email protected] int v14; // [email protected] int v15; // [email protected] int v16; // [email protected] int v17; // [email protected] int v18; // [email protected] int v19; // [email protected] int v20; // [email protected] int v21; // [email protected] int v22; // [email protected] int v23; // [email protected] int v24; // [email protected] int v25; // [email protected] int v26; // [email protected] int v27; // [email protected] int v28; // [email protected] int v29; // [sp+Ch] [bp-11Ch]@6 int v30; // [sp+10h] [bp-118h]@9 int v31; // [sp+14h] [bp-114h]@9 int v32; // [sp+18h] [bp-110h]@9 int v33; // [sp+1Ch] [bp-10Ch]@9 unsigned __int8 v34; // [sp+23h] [bp-105h]@1 char v35; // [sp+24h] [bp-104h]@5 unsigned int v36; // [sp+124h] [bp-4h]@1 int v37; // [sp+128h] [bp+0h]@1 v36 = (unsigned int)&v37 ^ v3EDA03C; v5 = a3; sub_6FE0((int)&v34, a2, a5, (int)&v34); if ( *(_DWORD *)(a5 + 8) > *(_DWORD *)(a5 + 4) ) return 2; if ( !v34 ) goto LABEL_4; sub_2E90((int)&v35, v6, a5, (int)&v35, 0x100u); if ( *(_DWORD *)(a5 + 8) > *(_DWORD *)(a5 + 4) ) return 2; v29 = (*(int (__fastcall **)(_DWORD, char *, int, int))(*(_DWORD *)a4 + 4))( *(_DWORD *)a4, &v35, a4, v35 != 0 ? (int)&v35 : 0); if ( v34 != 1 ) { if ( v34 != 2 ) { result = 3; LABEL_12: *(_DWORD *)(v5 + 32) = 0; *(_BYTE *)(v5 + 36) = 0; return result; } sub_1CB0((int)&v30, v8, a5, (int)&v30); sub_1CB0((int)&v33, v9, a5, (int)&v33); sub_1CB0((int)&v32, v9, a5, (int)&v32); sub_1CB0((int)&v31, v9, a5, (int)&v31); if ( *(_DWORD *)(a5 + 8) <= *(_DWORD *)(a5 + 4) ) { if ( !v29 ) { result = 0; goto LABEL_12; } v10 = (*(int (__fastcall **)(_DWORD, int, int, int, int))(*(_DWORD *)a4 + 8))(*(_DWORD *)a4, v9, a4, v29, v30); v11 = v33; *(_DWORD *)(v5 + 16) = v10; v13 = (*(int (__fastcall **)(_DWORD, int, int, int, int))(*(_DWORD *)a4 + 8))(*(_DWORD *)a4, v12, a4, v29, v11); v14 = v32; *(_DWORD *)(v5 + 20) = v13; v16 = (*(int (__fastcall **)(_DWORD, int, int, int, int))(*(_DWORD *)a4 + 8))(*(_DWORD *)a4, v15, a4, v29, v14); v17 = v31; *(_DWORD *)(v5 + 24) = v16; *(_DWORD *)(v5 + 28) = (*(int (__fastcall **)(_DWORD, int, _DWORD, _DWORD, _DWORD))(*(_DWORD *)a4 + 8))( *(_DWORD *)a4, v18, a4, v29, v17); *(_DWORD *)(v5 + 32) = 2; LABEL_17: *(_BYTE *)(v5 + 36) = 1; return 0; } return 2; } sub_1CB0((int)&v31, v8, a5, (int)&v31); sub_1CB0((int)&v32, v19, a5, (int)&v32); sub_1CB0((int)&v33, v19, a5, (int)&v33); sub_1CB0((int)&v30, v19, a5, (int)&v30); if ( *(_DWORD *)(a5 + 8) > *(_DWORD *)(a5 + 4) ) return 2; if ( v29 ) { v20 = (*(int (__fastcall **)(_DWORD, int, int, int, int))(*(_DWORD *)a4 + 8))(*(_DWORD *)a4, v19, a4, v29, v31); v21 = v32; *(_DWORD *)v5 = v20; v23 = (*(int (__fastcall **)(_DWORD, int, _DWORD, _DWORD, _DWORD))(*(_DWORD *)a4 + 8))( *(_DWORD *)a4, v22, a4, v29, v21); v24 = v33; *(_DWORD *)(v5 + 4) = v23; v26 = (*(int (__fastcall **)(_DWORD, int, _DWORD, _DWORD, _DWORD))(*(_DWORD *)a4 + 8))( *(_DWORD *)a4, v25, a4, v29, v24); v27 = v30; *(_DWORD *)(v5 + 8) = v26; *(_DWORD *)(v5 + 12) = (*(int (__fastcall **)(_DWORD, int, _DWORD, _DWORD, _DWORD))(*(_DWORD *)a4 + 8))( *(_DWORD *)a4, v28, a4, v29, v27); *(_DWORD *)(v5 + 32) = 1; goto LABEL_17; } LABEL_4: *(_DWORD *)(v5 + 32) = 0; *(_BYTE *)(v5 + 36) = 0; return 0; } //----- (00001EF0) -------------------------------------------------------- void __fastcall sub_1EF0(int a1, int a2, int a3) { *(_DWORD *)a3 = 0; *(_DWORD *)(a3 + 4) = 0; *(_DWORD *)(a3 + 8) = 1732584193; *(_DWORD *)(a3 + 12) = -271733879; *(_DWORD *)(a3 + 16) = -1732584194; *(_DWORD *)(a3 + 20) = 271733878; *(_DWORD *)(a3 + 24) = -1009589776; } //----- (00001F1B) -------------------------------------------------------- int __fastcall sub_1F1B(int a1, int a2, int a3, unsigned int a4, unsigned int a5) { __m64 v5; // [email protected] __m64 v6; // [email protected] int result; // [email protected] HIDWORD(v5.m64_u64) = *(_DWORD *)a3; LODWORD(v5.m64_u64) = *(_DWORD *)a2; v6 = _m_paddd(_m_pmaddwd(v5, (__m64)__PAIR__(a4, a5)), _m_pmullw(v5, (__m64)__PAIR__(a4, a5))); *(_DWORD *)a3 = _mm_cvtsi64_si32(v6); result = _mm_cvtsi64_si32(_m_psrlq(v6, 0x20u)); *(_DWORD *)a2 = result; return result; } // 1F1B: could not find valid save-restore pair for ebp //----- (00001FB4) -------------------------------------------------------- void __fastcall sub_1FB4(int a1, int a2, int a3) { *(_DWORD *)(a3 + 32) = 0; *(_BYTE *)(a3 + 36) = 0; } //----- (00002210) -------------------------------------------------------- int __cdecl sub_2210(int a1, unsigned int a2) { int v2; // [email protected] unsigned int v3; // [email protected] unsigned int v4; // [email protected] int result; // [email protected] unsigned int v6; // [email protected] v2 = a1 + *(_DWORD *)(a1 + 60); v3 = *(_WORD *)(v2 + 6); v4 = 0; result = *(_WORD *)(v2 + 20) + v2 + 24; if ( *(_WORD *)(v2 + 6) ) { while ( 1 ) { v6 = *(_DWORD *)(result + 12); if ( a2 >= v6 ) { if ( a2 < v6 + *(_DWORD *)(result + 8) ) break; } ++v4; result += 40; if ( v4 >= v3 ) goto LABEL_5; } } else { LABEL_5: result = 0; } return result; } //----- (000022A0) -------------------------------------------------------- signed int __stdcall sub_22A0(int a1, int a2, int a3) { if ( v3ED0000 == 23117 && a2 == 1 ) v3ED9004(a1); return 1; } // 3ED9004: using guessed type int (__stdcall *)(_DWORD); //----- (000022C7) -------------------------------------------------------- int __fastcall sub_22C7(int a1, int a2, int a3) { int v3; // [email protected] int v4; // [email protected] int v5; // [email protected] int v6; // [email protected] int v7; // [email protected] int v8; // [email protected] int v9; // [email protected] int v10; // [email protected] int v11; // [email protected] int v12; // [email protected] int v13; // [email protected] int v14; // [email protected] int v15; // [email protected] int v16; // [email protected] int v17; // [email protected] int v18; // [email protected] signed __int32 v19; // eax@1 int v22; // eax@1 int v23; // eax@1 int v24; // edi@1 int v25; // ebx@1 int v26; // ebx@1 int v27; // eax@1 int v28; // ecx@1 int v29; // eax@1 int v30; // edi@1 int v31; // edx@1 unsigned __int32 v32; // eax@1 signed __int32 v33; // eax@1 signed __int32 v35; // edx@1 unsigned int v37; // ebx@1 unsigned __int32 v38; // eax@1 int v39; // edi@1 int v40; // edi@1 int v41; // eax@1 int v42; // eax@1 int v43; // eax@1 int v44; // eax@1 signed __int32 v45; // eax@1 signed __int32 v47; // edx@1 int v49; // ebx@1 int v50; // edx@1 int v51; // edx@1 int v52; // ecx@1 unsigned __int32 v53; // ecx@1 int v54; // eax@1 int v55; // eax@1 int v56; // edi@1 int v57; // edx@1 unsigned __int32 v58; // edx@1 int v59; // edi@1 int v60; // edi@1 int v61; // eax@1 int v62; // eax@1 signed __int32 v63; // edx@1 int v64; // eax@1 signed __int32 v65; // eax@1 int v66; // ecx@1 int v67; // ebx@1 int v68; // ecx@1 int v69; // ecx@1 int v70; // ecx@1 signed __int32 v73; // eax@1 int v74; // ebx@1 unsigned int v75; // edi@1 int v76; // eax@1 int v77; // eax@1 unsigned __int32 v78; // eax@1 int v79; // edi@1 signed __int32 v80; // eax@1 int v81; // ecx@1 signed __int32 v83; // edx@1 signed __int32 v85; // edx@1 int v86; // ecx@1 signed __int32 v87; // eax@1 int v90; // edx@1 signed __int32 v91; // edx@1 int v92; // eax@1 int v93; // eax@1 signed __int32 v96; // edx@1 int v97; // eax@1 signed __int32 v98; // eax@1 signed __int32 v101; // edx@1 int v102; // eax@1 int v103; // eax@1 signed __int32 v106; // edx@1 int v107; // eax@1 int v108; // eax@1 int v109; // eax@1 signed __int32 v110; // eax@1 signed __int32 v113; // eax@1 int v114; // ebx@1 int v115; // edi@1 int v116; // eax@1 int v117; // eax@1 int v118; // eax@1 int v119; // ecx@1 int v120; // edx@1 int v121; // ecx@1 unsigned int v122; // ecx@1 int v123; // edx@1 int v124; // eax@1 unsigned int v125; // edi@1 int v126; // eax@1 int v127; // ebx@1 int v128; // eax@1 int v129; // ebx@1 int v130; // edi@1 int v131; // edi@1 int v132; // ecx@1 int v133; // eax@1 int v134; // edx@1 int v135; // eax@1 int v136; // ecx@1 unsigned int v137; // ecx@1 int v138; // eax@1 int v139; // eax@1 int v140; // edi@1 unsigned __int32 v141; // edi@1 signed __int32 v142; // edx@1 int v143; // eax@1 int v144; // eax@1 signed __int32 v145; // eax@1 int v148; // edi@1 int v149; // edi@1 int v150; // eax@1 unsigned __int32 v151; // eax@1 int v152; // ecx@1 int v153; // ecx@1 int v154; // edx@1 int v155; // edx@1 signed __int32 v156; // edx@1 int v157; // eax@1 signed __int32 v158; // eax@1 signed __int32 v161; // eax@1 int v162; // edi@1 int v163; // eax@1 int v164; // eax@1 int v165; // eax@1 signed __int32 v167; // edx@1 signed __int32 v169; // edx@1 signed __int32 v170; // eax@1 int v171; // ecx@1 int v174; // edi@1 int v175; // edi@1 int v176; // ecx@1 int v177; // ebx@1 int v178; // ebx@1 int v179; // ecx@1 int v180; // eax@1 int v181; // eax@1 int v182; // eax@1 int v183; // ebx@1 int v184; // ebx@1 int v185; // ecx@1 int v186; // ecx@1 int v187; // edi@1 int v188; // edx@1 unsigned __int32 v189; // edx@1 int v190; // edi@1 int v191; // edi@1 int v192; // eax@1 int v193; // ecx@1 int v194; // eax@1 int v195; // ebx@1 unsigned __int32 v196; // ebx@1 int v197; // eax@1 int v198; // eax@1 int v199; // edx@1 int v200; // ecx@1 int v201; // edi@1 unsigned __int32 v202; // edi@1 int v203; // ecx@1 unsigned __int32 v204; // ecx@1 int v205; // edx@1 int v206; // ebx@1 int v207; // ebx@1 int v208; // edx@1 signed __int32 v209; // edx@1 int v210; // edi@1 unsigned __int32 v211; // edi@1 int v212; // eax@1 int v213; // ecx@1 int v214; // ecx@1 int v215; // eax@1 int v216; // eax@1 int v217; // eax@1 int v218; // eax@1 int v219; // eax@1 int v222; // ecx@1 int v223; // edx@1 int v224; // eax@1 int v225; // eax@1 int v226; // edx@1 int v227; // edx@1 int v228; // ecx@1 unsigned __int32 v229; // ecx@1 int v230; // ecx@1 signed __int32 v231; // eax@1 int v232; // ecx@1 signed __int32 v235; // edx@1 signed __int32 v236; // eax@1 int v237; // ecx@1 signed __int32 v240; // edx@1 int v241; // ecx@1 int v244; // edx@1 int v245; // ebx@1 int v246; // ebx@1 int v247; // ecx@1 int v248; // ecx@1 int v249; // eax@1 int v250; // edi@1 int v251; // edi@1 int v252; // eax@1 int v253; // eax@1 int v254; // eax@1 int v255; // ecx@1 int v256; // ebx@1 int v257; // ebx@1 int v258; // eax@1 int v259; // edx@1 int v260; // eax@1 int result; // eax@1 unsigned int v262; // [sp+Ch] [bp-10h]@1 unsigned int v263; // [sp+10h] [bp-Ch]@1 signed __int32 v264; // [sp+14h] [bp-8h]@1 signed __int32 v265; // [sp+18h] [bp-4h]@1 v3 = a3; v4 = *(_DWORD *)a3; v5 = __ROL__(*(_DWORD *)a3 + 1788801274, 20); v5 += 1307572625; v6 = __ROL__(*(_DWORD *)(a3 + 4) - v5 - 402749954, 23); v6 -= 1307572625; v7 = __ROL__(*(_DWORD *)(a3 + 8) - v6 + v5 - 1412288184, 20); v8 = v5 ^ v7; v265 = v6; v9 = __ROL__((v5 ^ v6 ^ v8) + *(_DWORD *)(v3 + 12) + 731755463, 17); v263 = _byteswap_ulong(v8) + v9; v10 = __ROL__(v8 + v263 + *(_DWORD *)(v3 + 12) - v265 + v5 + 426222069, 2); v11 = v8 ^ v10; v12 = __ROL__(v265 + v263 + v4 - v8 + v11 + 1050944700, 29); v13 = -v263 ^ v12; v14 = __ROL__(*(_DWORD *)(v3 + 12) + (v11 ^ v13 ^ v263) + v8 + 1350149820, 25); v15 = ~v13 ^ v14; v16 = __ROL__(*(_DWORD *)(v3 + 8) + (v11 & v13 ^ v15 & (v11 ^ v13)) + v263 - 1583002981, 13); v265 = v13; v263 = v16 - v15; v17 = *(_DWORD *)(v3 + 8) + (v13 & v15 ^ (v16 - v15) & (v13 ^ v15)) - v13; v264 = v15; v262 = v11 + v17 - 771404559; v18 = __ROL__(*(_DWORD *)(v3 + 4) + (v262 ^ (v15 | ~(v16 - v15))) + v13 + 326427415, 15); v19 = v18 - _byteswap_ulong(v15); v265 = v19; _EAX = _InterlockedExchange((signed __int32 *)&v263, v19); _EDX = _InterlockedExchange((signed __int32 *)&v262, v13); __asm { arpl ax, dx } v22 = _InterlockedExchange((signed __int32 *)&v263, _EAX); _InterlockedExchange((signed __int32 *)&v262, _EDX); sub_1F1B(v22, (int)&v264, (int)&v265, v263, v262); v23 = __ROL__(*(_DWORD *)(v3 + 12) + (v262 ^ v265 & (v262 ^ v263)) + v264 - 201174377, 9); v24 = __ROL__(*(_DWORD *)v3 + ((v23 + v265 + 1) ^ v262 & (v265 ^ (v23 + v265 + 1))) + v263 + 1521245252, 13); v264 = v23 + v265 + 1; v263 = v24 - v262; v25 = __ROL__(*(_DWORD *)v3 + v8393(v24 - v262) + v262 + 1711369870, 16); v26 = ~v264 ^ v25; v27 = *(_DWORD *)(v3 + 12) + v8393(~v264, v26, v264); v28 = __ROL__(v27 + v265 + 456403427, 2); v265 = v264 + v28; v29 = v8393(v27, v26, v264 + v28); v30 = __ROL__(*(_DWORD *)(v3 + 12) + v29 + v264 + 803119615, 13); v264 = ~v265 ^ v30; v31 = __ROL__(*(_DWORD *)v3 + (v26 ^ v265 ^ v264) + v263 - 1226865879, 11); v32 = _byteswap_ulong(-v26); v263 = v32 + v31; v33 = v26 + *(_DWORD *)v3 + v8393(v32, v32 + v31, v264, v265) + ~v264 + 1746554013; v262 = v33; _EAX = _InterlockedExchange((signed __int32 *)&v263, v33); _EDX = _InterlockedExchange(&v265, v35); __asm { arpl ax, dx } _InterlockedExchange((signed __int32 *)&v263, _EAX); _InterlockedExchange(&v265, _EDX); v37 = v262; v38 = _byteswap_ulong(-v263); v39 = __ROL__(*(_DWORD *)(v3 + 12) + (v262 ^ v264 ^ v263) + v265 + 805168589, 17); v40 = v39 - v38; v265 = v40; v41 = v8393(v38, v263, v262, v40); v42 = __ROL__(v41 + v264 + *(_DWORD *)(v3 + 4) - 43557586, 20); v43 = v42 - v37; v264 = v43; v44 = __ROL__(*(_DWORD *)v3 + (v40 ^ v37 & (v40 ^ v43)) + v263 + 826542159, 15); v45 = ~v37 + v44; v263 = v45; _EAX = _InterlockedExchange(&v264, v45); _EDX = _InterlockedExchange(&v265, v47); __asm { arpl ax, dx } _InterlockedExchange(&v264, _EAX); _InterlockedExchange(&v265, _EDX); v49 = *(_DWORD *)v3; v50 = __ROL__(*(_DWORD *)v3 + (v265 & v264 ^ v263 & (v265 ^ v264)) + v262 - 740058111, 20); v51 = v50 + v263 + 1; v52 = __ROL__(*(_DWORD *)(v3 + 8) + (v263 ^ (v264 | ~v51)) + v265 - 1992235156, 24); v53 = v52 - _byteswap_ulong(~v264); v54 = __ROL__(*(_DWORD *)v3 + (v51 ^ v53 ^ v263) + v264 - 288212232, 22); v55 = v54 - v51; v56 = *(_DWORD *)(v3 + 4) + (v51 ^ (v55 | ~v53)); v262 = v51; v265 = v53; v264 = v55; v57 = __ROL__(v56 + v263 - 1782283388, 26); v58 = _byteswap_ulong(~v55) ^ v57; v59 = __ROL__(*(_DWORD *)(v3 + 4) + (v53 ^ v55 ^ v58) + v262 - 1945646361, 30); v60 = v58 + v59; v263 = v58; v61 = v8393(v55, v58, v60, v55); v62 = __ROL__(v61 + v265 + *(_DWORD *)(v3 + 12) - 294194379, 25); v63 = v62 + v60 + 1; v64 = __ROL__(v264 + v263 + v49 - v63 + v60 + 383169415, 14); v65 = v64 - v60; v66 = __ROL__(v65 + v263 + *(_DWORD *)(v3 + 4) - v63 + v60 - 1274156547, 15); v263 = v66 + v60 + 1; v67 = *(_DWORD *)(v3 + 4) + (v263 ^ v65 & (v63 ^ v263)); v264 = v65; v68 = __ROL__(v67 + v60 - 854093792, 5); v69 = v68 + v65 + 1; v262 = v69; v70 = __ROL__(*(_DWORD *)(v3 + 12) + (v263 ^ (v65 | ~v69)) + v63 - 465767766, 27); v265 = v65 + v70; _EAX = _InterlockedExchange((signed __int32 *)&v262, v65); _EDX = _InterlockedExchange((signed __int32 *)&v263, v63); __asm { arpl ax, dx } v73 = _InterlockedExchange((signed __int32 *)&v262, _EAX); _InterlockedExchange((signed __int32 *)&v263, _EDX); v74 = v263; v75 = v262; v76 = v8393(v73, v262, v265, v263); v77 = __ROL__(v76 + v264 + *(_DWORD *)(v3 + 12) - 124346331, 9); v78 = _byteswap_ulong(-v265) ^ v77; v264 = v78; v79 = *(_DWORD *)v3 + (v265 ^ (v78 | ~v75)); v80 = ~v78; v81 = __ROL__(v79 + v74 - 1862556212, 2); v263 = v80 ^ v81; _EAX = _InterlockedExchange((signed __int32 *)&v262, v80); _EDX = _InterlockedExchange(&v265, v83); __asm { arpl ax, dx } _InterlockedExchange((signed __int32 *)&v262, _EAX); _InterlockedExchange(&v265, _EDX); v85 = v262; v86 = __ROL__(*(_DWORD *)v3 + (v265 ^ v264 ^ v263) + v262 - 590344321, 29); v87 = _byteswap_ulong(-v265); v262 = v86 - v87; _EAX = _InterlockedExchange(&v264, v87); _EDX = _InterlockedExchange((signed __int32 *)&v263, v85); __asm { arpl ax, dx } _InterlockedExchange(&v264, _EAX); _InterlockedExchange((signed __int32 *)&v263, _EDX); v90 = __ROL__(*(_DWORD *)(v3 + 8) + (v262 ^ v264 ^ v263) + v265 + 2080986712, 16); v91 = v90 + v264 + 1; v265 = v91; v92 = __ROL__(*(_DWORD *)v3 + (v263 ^ (v91 | ~v262)) + v264 + 138246194, 7); v93 = v91 ^ v92; v264 = v93; _EAX = _InterlockedExchange((signed __int32 *)&v262, v93); _EDX = _InterlockedExchange((signed __int32 *)&v263, v91); __asm { arpl ax, dx } _InterlockedExchange((signed __int32 *)&v262, _EAX); v96 = _InterlockedExchange((signed __int32 *)&v263, _EDX); v97 = __ROL__(v263 + (v264 ^ v265 & (v262 ^ v264)) + *(_DWORD *)(v3 + 4) - 25213308, 30); v98 = v265 + v97; v263 = v98; _EAX = _InterlockedExchange((signed __int32 *)&v262, v98); _EDX = _InterlockedExchange(&v264, v96); __asm { arpl ax, dx } _InterlockedExchange((signed __int32 *)&v262, _EAX); v101 = _InterlockedExchange(&v264, _EDX); v102 = __ROL__(*(_DWORD *)(v3 + 8) + (v265 & v264 ^ v263 & (v265 ^ v264)) + v262 - 1108810995, 31); v103 = v263 ^ v102; v262 = v103; _EAX = _InterlockedExchange(&v265, v103); _EDX = _InterlockedExchange(&v264, v101); __asm { arpl ax, dx } _InterlockedExchange(&v265, _EAX); _InterlockedExchange(&v264, _EDX); v106 = v264; v107 = __ROL__(v265 + (v262 ^ v264 ^ v263) + *(_DWORD *)(v3 + 4) - 297420551, 30); v108 = v263 + v107; v265 = v108; v109 = __ROL__(*(_DWORD *)v3 + (v262 ^ v108 ^ v263) + v264 - 1007158588, 15); v110 = v109 + v263 + 1; v264 = v110; _EAX = _InterlockedExchange(&v265, v110); _EDX = _InterlockedExchange((signed __int32 *)&v262, v106); __asm { arpl ax, dx } v113 = _InterlockedExchange(&v265, _EAX); _InterlockedExchange((signed __int32 *)&v262, _EDX); v114 = *(_DWORD *)(v3 + 12); v115 = v264; v116 = v8393(v113, v265, v262, v264); v117 = __ROL__(v114 + v116 + v263 + 34429626, 13); v118 = v262 ^ v117; v263 = v118; v119 = __ROL__(v114 + (v265 ^ v115 ^ v118) + v262 + 810441070, 30); v120 = v119 + v118 + 1; v121 = __ROL__(v265 + v118 + *(_DWORD *)v3 - v115 + v120 - 1493052571, 23); v122 = v121 - _byteswap_ulong(v118); v262 = v120; v123 = __ROL__(*(_DWORD *)v3 + (v120 & v122 ^ v118 & (v120 ^ v122)) + v115 - 310045284, 16); v265 = v122; v264 = v262 + v123; v124 = sub_1F1B(v118, (int)&v262, (int)&v264, v118, v122); v125 = v262; v126 = v8393(v124, v265, v262, v264); v127 = v126 + v263 + *(_DWORD *)(v3 + 12) - 243531110; v128 = *(_DWORD *)(v3 + 8); v127 = __ROL__(v127, 23); v129 = v127 - v125; v130 = __ROL__(v128 + (v265 ^ v264 ^ v129) + v125 - 973653713, 20); v131 = ~v264 ^ v130; v132 = v128 + (v131 & v264 ^ v129 & (v131 ^ v264)); v133 = v265; v134 = __ROL__(v132 + v265 - 317140539, 30); v265 = v134 - v129; v135 = v8393(v133, v134 - v129, v129, v131); v136 = __ROL__(v135 + v264 + *(_DWORD *)(v3 + 4) - 331228956, 31); v137 = v129 + v136; v138 = __ROL__(*(_DWORD *)(v3 + 4) + (v131 & v265 ^ v137 & (v131 ^ v265)) + v129 - 1368208514, 19); v139 = ~v131 + v138; v263 = v139; v140 = __ROL__(*(_DWORD *)(v3 + 4) + (v265 ^ v137 ^ v139) + v131 + 1411275020, 28); v141 = _byteswap_ulong(-v137) + v140; v142 = v265; v143 = *(_DWORD *)v3 + (v141 ^ (v137 | ~v139)); v264 = v137; v144 = __ROL__(v143 + v265 - 875095672, 5); v145 = _byteswap_ulong(v137) ^ v144; v262 = v141; v265 = v145; _EAX = _InterlockedExchange((signed __int32 *)&v263, v145); _EDX = _InterlockedExchange((signed __int32 *)&v262, v142); __asm { arpl ax, dx } _InterlockedExchange((signed __int32 *)&v263, _EAX); _InterlockedExchange((signed __int32 *)&v262, _EDX); v148 = __ROL__(*(_DWORD *)(v3 + 12) + (v262 ^ v265 ^ v263) + v264 - 542816250, 7); v149 = v262 ^ v148; v150 = __ROL__(*(_DWORD *)v3 + (v149 ^ v265 & (v262 ^ v149)) + v263 - 397515647, 14); v151 = _byteswap_ulong(~v265) ^ v150; v152 = __ROL__(*(_DWORD *)v3 + (v265 ^ v149 ^ v151) + v262 - 1994564279, 23); v153 = ~v151 ^ v152; v154 = *(_DWORD *)(v3 + 8) + (v153 ^ v149 ^ v151); v263 = v151; v262 = v153; v155 = __ROL__(v154 + v265 + 1730515082, 2); v156 = v155 - v149; v157 = __ROL__(*(_DWORD *)(v3 + 12) + (v156 ^ v153 & (v156 ^ v151)) + v149 + 1783879536, 14); v158 = _byteswap_ulong(~v153) ^ v157; v265 = v156; v264 = v158; _EAX = _InterlockedExchange((signed __int32 *)&v263, v158); _EDX = _InterlockedExchange(&v265, v156); __asm { arpl ax, dx } v161 = _InterlockedExchange((signed __int32 *)&v263, _EAX); _InterlockedExchange(&v265, _EDX); v162 = v264; v163 = v8393(v161, v265, v264, v262); v164 = __ROL__(v163 + v263 + *(_DWORD *)(v3 + 4) - 863388681, 30); v165 = ~v162 ^ v164; v263 = v165; _EAX = _InterlockedExchange(&v265, v165); _EDX = _InterlockedExchange((signed __int32 *)&v262, v167); __asm { arpl ax, dx } _InterlockedExchange(&v265, _EAX); _InterlockedExchange((signed __int32 *)&v262, _EDX); v169 = v262; v170 = _byteswap_ulong(~v263); v171 = __ROL__(*(_DWORD *)v3 + (v265 ^ v264 ^ v263) + v262 - 291313153, 16); v262 = v171 - v170; _EAX = _InterlockedExchange(&v264, v170); _EDX = _InterlockedExchange(&v265, v169); __asm { arpl ax, dx } _InterlockedExchange(&v264, _EAX); _InterlockedExchange(&v265, _EDX); v174 = __ROL__(*(_DWORD *)(v3 + 4) + (v263 ^ (v264 | ~v262)) + v265 + 1647080717, 13); v175 = v264 + v174; v176 = *(_DWORD *)(v3 + 8); v177 = __ROL__(v264 + v263 + *(_DWORD *)v3 - v262 + v175 - 1113757831, 21); v178 = v177 - v263; v264 = v178; v179 = __ROL__(v176 + (v262 ^ v175 ^ v178) + v263 + 228922901, 7); v263 = ~v175 + v179; v180 = v8393(~v175, v178, v263); v181 = __ROL__(*(_DWORD *)v3 + v180 + v262 + 545626728, 24); v182 = v181 - v263; v183 = __ROL__(*(_DWORD *)(v3 + 4) + (v182 & v178 ^ v263 & (v182 ^ v178)) + v175 - 2139171116, 20); v184 = v183 - v263; v185 = __ROL__(*(_DWORD *)(v3 + 12) + (v182 & v184 ^ v263 & (v182 ^ v184)) + v264 - 309490666, 13); v186 = ~v182 + v185; v187 = *(_DWORD *)v3 + (v182 ^ (v184 | ~v186)); v264 = v186; v188 = __ROL__(v187 + v263 - 1466651521, 2); v189 = _byteswap_ulong(~v184) + v188; v190 = __ROL__(v184 + v186 + *(_DWORD *)(v3 + 12) - v189 + v182 - 2147087047, 26); v191 = v184 + v190; v263 = v189; v192 = __ROL__(*(_DWORD *)(v3 + 12) + v8393(v182, v189, v191, v186) + v184 + 700891458, 6); v193 = v192 + v191 + 1; v194 = *(_DWORD *)(v3 + 4); v262 = ~v191; v195 = __ROL__(v194 + (v193 ^ (v191 | ~v263)) + v264 + 359723466, 7); v196 = v195 - _byteswap_ulong(~v191); v265 = v193; v197 = __ROL__(v196 + v263 + v194 - v193 + v191 + 1352492736, 15); v198 = ~v191 ^ v197; v199 = v193 & v196 ^ v198 & (v193 ^ v196); v200 = *(_DWORD *)(v3 + 4); v201 = __ROL__(v200 + v199 + v191 + 731862510, 23); v202 = v201 - _byteswap_ulong(~v198); v203 = __ROL__(v200 + (v202 ^ (v198 | ~v196)) + v265 - 136239548, 6); v204 = _byteswap_ulong(-v198) ^ v203; v205 = *(_DWORD *)(v3 + 4) + (v202 ^ v204 ^ v198); v263 = ~v204; v206 = __ROL__(v205 + v196 + 1423683416, 3); v207 = ~v204 ^ v206; v262 = v202; v208 = __ROL__(*(_DWORD *)(v3 + 12) + (v202 ^ v204 ^ v207) + v198 - 373081087, 9); v209 = v204 + v208; v210 = __ROL__(v204 + v207 + *(_DWORD *)(v3 + 4) - v209 + v202 - 2092948728, 9); v211 = _byteswap_ulong(~v204) + v210; v212 = *(_DWORD *)v3 + (v211 ^ v209 & (v211 ^ v207)); v262 = v211; v213 = __ROL__(v212 + v204 - 141321586, 23); v214 = v209 + v213; v215 = *(_DWORD *)(v3 + 4) + (v211 ^ v214 ^ v209); v265 = v214; v216 = __ROL__(v215 + v207 + 758207654, 17); v217 = v216 - v214; v264 = v217; v218 = __ROL__(*(_DWORD *)(v3 + 8) + (v211 ^ (v214 | ~v217)) + v209 - 105656967, 28); v219 = v214 ^ v218; v263 = v219; _EAX = _InterlockedExchange(&v264, v219); _EDX = _InterlockedExchange((signed __int32 *)&v262, v209); __asm { arpl ax, dx } _InterlockedExchange(&v264, _EAX); _InterlockedExchange((signed __int32 *)&v262, _EDX); v222 = *(_DWORD *)v3; v223 = *(_DWORD *)(v3 + 8); v224 = __ROL__(*(_DWORD *)v3 + (v265 ^ (v263 | ~v264)) + v262 + 19130758, 5); v225 = v224 - v263; v262 = v225; v226 = __ROL__(v265 + v264 + v223 - v263 + v225 - 1012075900, 25); v227 = ~v225 ^ v226; v228 = __ROL__(v264 + v263 + v222 - v225 + v227 + 1202620042, 22); v229 = _byteswap_ulong(v263) ^ v228; v264 = v229; v230 = *(_DWORD *)v3 + (v227 ^ v225 & (v227 ^ v229)); v231 = -v225; v232 = __ROL__(v230 + v263 + 1999161866, 19); v265 = v227; v263 = v231 ^ v232; _EAX = _InterlockedExchange(&v264, v231); _EDX = _InterlockedExchange(&v265, v227); __asm { arpl ax, dx } _InterlockedExchange(&v264, _EAX); _InterlockedExchange(&v265, _EDX); v235 = v262; v236 = _byteswap_ulong(v263); v237 = __ROL__(*(_DWORD *)(v3 + 12) + (v264 ^ (v263 | ~v265)) + v262 - 1358273280, 15); v262 = v237 - v236; _EAX = _InterlockedExchange(&v265, v236); _EDX = _InterlockedExchange(&v264, v235); __asm { arpl ax, dx } _InterlockedExchange(&v265, _EAX); _InterlockedExchange(&v264, _EDX); v240 = v265; v241 = __ROL__(*(_DWORD *)(v3 + 8) + (v264 ^ (v263 | ~v262)) + v265 + 581750887, 9); v265 = ~v263 ^ v241; _EAX = _InterlockedExchange((signed __int32 *)&v262, ~v263); _EDX = _InterlockedExchange(&v264, v240); __asm { arpl ax, dx } _InterlockedExchange((signed __int32 *)&v262, _EAX); _InterlockedExchange(&v264, _EDX); v244 = __ROL__(*(_DWORD *)(v3 + 12) + (v262 ^ v265 ^ v263) + v264 + 737343371, 14); v264 = v244 + v263 + 1; v245 = __ROL__(*(_DWORD *)(v3 + 12) + (v262 ^ v265 & (v262 ^ v264)) + v263 - 539841844, 9); v246 = v265 + v245; v247 = __ROL__(v265 + v246 + *(_DWORD *)(v3 + 4) - v264 + v262 + 1228078, 5); v248 = ~v246 ^ v247; v249 = *(_DWORD *)v3 + (v246 ^ v264 & (v248 ^ v246)); v262 = v248; v250 = __ROL__(v249 + v265 - 1603625506, 29); v251 = v264 + v250; v252 = v8393(v249, v251, v248); v253 = __ROL__(*(_DWORD *)(v3 + 4) + v252 + v264 + 1417801983, 25); v254 = -v262 ^ v253; v264 = v254; v255 = *(_DWORD *)(v3 + 12); v256 = __ROL__(*(_DWORD *)(v3 + 8) + (v262 & v251 ^ v254 & (v262 ^ v251)) + v246 - 739996948, 14); v257 = ~v251 ^ v256; v258 = __ROL__(v255 + (v257 ^ (v251 | ~v254)) + v262 - 1378347547, 7); v259 = v251 + v258 + *(_DWORD *)v3; *(_DWORD *)(v3 + 4) += v251; v260 = *(_DWORD *)(v3 + 8); *(_DWORD *)v3 = v259; result = v264 + v260; *(_DWORD *)(v3 + 8) = result; *(_DWORD *)(v3 + 12) = v257 + v255; _m_femms(); return result; } //----- (00002E90) -------------------------------------------------------- int __fastcall sub_2E90(int a1, int a2, int a3, int a4, unsigned int a5) { int v5; // esi@1 unsigned int v6; // ecx@1 unsigned int v7; // eax@1 unsigned __int8 v8; // dl@1 int v9; // ecx@3 int result; // eax@9 v5 = a3; v6 = *(_DWORD *)(a3 + 8); v7 = *(_DWORD *)(v5 + 4); v8 = 0; if ( v6 <= v7 && v7 - v6 >= 1 ) { v8 = *(_BYTE *)(v6 + *(_DWORD *)v5); v9 = v6 + 1; } else { v9 = v7 + 1; } *(_DWORD *)(v5 + 8) = v9; if ( v9 <= v7 && v7 - v9 >= v8 && v8 < a5 ) sub_595D(a4, v9 + *(_DWORD *)v5, v8); result = v7 + 1; *(_DWORD *)(v5 + 8) = result; return result; } //----- (00003170) -------------------------------------------------------- int __fastcall sub_3170(int a1, int a2, int a3, int a4) { unsigned int v4; // edx@2 int result; // eax@3 int v6; // esi@4 if ( *(_BYTE *)(a3 + 12) && (v4 = *(_DWORD *)(a3 + 4), *(_DWORD *)(a3 + 8) <= v4) ) { result = a4; v6 = *(_DWORD *)(a3 + 8); *(_DWORD *)a4 = v6 + *(_DWORD *)a3; *(_DWORD *)(a4 + 4) = v4 - v6; *(_DWORD *)(a4 + 8) = 0; } else { result = a4; *(_DWORD *)a4 = 65901181; *(_DWORD *)(a4 + 4) = -1; *(_DWORD *)(a4 + 8) = 0; } return result; } //----- (00003210) -------------------------------------------------------- void __fastcall sub_3210(int a1, int a2, int a3) { *(_DWORD *)a3 = 0; *(_DWORD *)(a3 + 4) = 0; *(_DWORD *)(a3 + 8) = 1779033703; *(_DWORD *)(a3 + 12) = -1150833019; *(_DWORD *)(a3 + 16) = 1013904242; *(_DWORD *)(a3 + 20) = -1521486534; *(_DWORD *)(a3 + 24) = 1359893119; *(_DWORD *)(a3 + 28) = -1694144372; *(_DWORD *)(a3 + 32) = 528734635; *(_DWORD *)(a3 + 36) = 1541459225; } //----- (00003387) -------------------------------------------------------- int __fastcall sub_3387(int a1, int a2, int a3, int a4) { int v4; // eax@1 int v5; // ecx@1 int result; // eax@2 int v7; // esi@3 v4 = a3; v5 = a4 - 1; if ( a4 ) { v7 = v4; while ( *(_BYTE *)a2 && v5 ) { *(_BYTE *)v4++ = *(_BYTE *)a2++; --v5; } *(_BYTE *)v4 = 0; result = v4 - v7; } else { result = 0; } return result; } //----- (000033C0) -------------------------------------------------------- __int16 __fastcall sub_33C0(int a1, int a2, int a3, int a4) { unsigned int v4; // eax@1 unsigned int v5; // edx@1 *(_WORD *)a4 = 0; v4 = *(_DWORD *)(a3 + 8); v5 = *(_DWORD *)(a3 + 4); if ( v4 <= v5 && v5 - v4 >= 2 ) { LOWORD(v4) = *(_WORD *)(v4 + *(_DWORD *)a3); *(_WORD *)a4 = v4; *(_DWORD *)(a3 + 8) += 2; } else { *(_DWORD *)(a3 + 8) = v5 + 1; } return v4; } //----- (00003610) -------------------------------------------------------- int __cdecl sub_3610(int a1) { int v1; // eax@1 v1 = v3ED9048(0, a1); return v3ED904C(v1); } // 3ED9048: using guessed type int (__stdcall *)(_DWORD, _DWORD); // 3ED904C: using guessed type int (__stdcall *)(_DWORD); //----- (00003810) -------------------------------------------------------- char __fastcall sub_3810(int a1, int a2, int a3, unsigned int a4) { unsigned int v4; // edx@1 unsigned int v5; // esi@1 int v6; // eax@2 char result; // al@5 v4 = *(_DWORD *)(a3 + 4); v5 = *(_DWORD *)(a3 + 8); if ( v5 <= v4 ) v6 = v4 - v5; else v6 = 0; if ( v6 < a4 ) { *(_DWORD *)(a3 + 8) = v4 + 1; result = 0; } else { result = 1; } return result; } //----- (00003840) -------------------------------------------------------- int (*__cdecl sub_3840())(void) { int (*result)(void); // eax@1 int v1; // edi@2 signed int i; // esi@2 result = (int (*)(void))v3EDA120; if ( v3EDA120 ) { v1 = 4 * v3EDA120 + 65904800; for ( i = 65904800; i < (unsigned int)v1; i += 4 ) { result = *(int (**)(void))i; if ( *(_DWORD *)i ) result = (int (*)(void))result(); } } return result; } //----- (00003890) -------------------------------------------------------- signed int __fastcall sub_3890(int a1, int a2, int a3, int a4, int a5) { int v5; // edi@1 char v6; // dl@3 unsigned int v7; // eax@4 unsigned int v8; // ecx@4 unsigned int v9; // eax@9 unsigned int v10; // ecx@9 unsigned __int8 v11; // bl@9 signed int result; // eax@16 int v13; // eax@17 int v14; // [sp+Ch] [bp-114h]@0 unsigned __int8 v15; // [sp+17h] [bp-109h]@0 int v16; // [sp+18h] [bp-108h]@1 char v17; // [sp+1Ch] [bp-104h]@2 unsigned int v18; // [sp+11Ch] [bp-4h]@1 int v19; // [sp+120h] [bp+0h]@1 v18 = (unsigned int)&v19 ^ v3EDA03C; v5 = a5; v16 = a3; if ( *(_BYTE *)(a4 + 12) ) sub_2E90((int)&v17, a2, a4, (int)&v17, 0x100u); v6 = *(_BYTE *)(a4 + 12); if ( v6 && ((v7 = *(_DWORD *)(a4 + 8), v8 = *(_DWORD *)(a4 + 4), v14 = 0, v7 <= v8) && v8 - v7 >= 4 ? (v14 = *(_DWORD *)(v7 + *(_DWORD *)a4), *(_DWORD *)(a4 + 8) = v7 + 4) : (*(_DWORD *)(a4 + 8) = v8 + 1), v6) ) { v9 = *(_DWORD *)(a4 + 8); v10 = *(_DWORD *)(a4 + 4); v11 = 0; if ( v9 <= v10 && (v5 = a5, v10 - v9 >= 1) ) { v11 = *(_BYTE *)(v9 + *(_DWORD *)a4); *(_DWORD *)(a4 + 8) = v9 + 1; } else { *(_DWORD *)(a4 + 8) = v10 + 1; } } else { v11 = v15; } if ( v6 && *(_DWORD *)(a4 + 8) <= *(_DWORD *)(a4 + 4) ) { v13 = (*(int (__fastcall **)(_DWORD, char *, int, int))(*(_DWORD *)v5 + 4))( *(_DWORD *)(*(_DWORD *)v5 + 4), &v17, v5, v17 != 0 ? (int)&v17 : 0); if ( v13 && v14 && (!v11 || v11 == 1) ) { if ( v11 == 1 ) *(_DWORD *)v16 = (*(int (__fastcall **)(int, _DWORD, int, int, int))(*(_DWORD *)v5 + 8))( v13, *(_DWORD *)(*(_DWORD *)v5 + 8), v5, v13, v14); else *(_DWORD *)v16 = 0; } else { *(_DWORD *)v16 = 0; } result = 0; } else { result = 3; } return result; } //----- (00003A00) -------------------------------------------------------- int __fastcall sub_3A00(int a1, int a2, int a3, int a4) { int v4; // ebx@1 int v5; // edx@1 int v6; // eax@4 signed int v7; // eax@5 signed int v8; // edi@5 signed int v9; // esi@5 signed int v10; // ecx@5 char v11; // zf@5 int v12; // eax@10 char v13; // al@12 int v15; // [sp+8h] [bp-118h]@3 int v16; // [sp+Ch] [bp-114h]@4 int v17; // [sp+10h] [bp-110h]@4 unsigned int v18; // [sp+11Ch] [bp-4h]@1 int v19; // [sp+120h] [bp+0h]@1 v18 = (unsigned int)&v19 ^ v3EDA03C; v4 = a3; *(_DWORD *)(a3 + 4) = a4; *(_DWORD *)a3 = 65901440; v3ED902C(a3 + 8); if ( *(_DWORD *)(v4 + 12) < 0x1000u ) *(_DWORD *)(v4 + 12) = 4096; *(_DWORD *)(v4 + 56) = sub_5990(4096, v5, a4); *(_DWORD *)(v4 + 48) = 0; *(_DWORD *)(v4 + 52) = 0; v15 = 276; if ( v3ED9028(&v15) ) { v6 = v17; *(_DWORD *)(v4 + 48) = v16; *(_DWORD *)(v4 + 52) = v6; } v7 = 65901340; v8 = 65901184; v9 = 65901340; v10 = 13; v11 = 1; do { if ( !v10 ) break; v11 = *(_BYTE *)v9++ == *MK_FP(__ES__, v8++); --v10; } while ( v11 ); if ( v11 ) v7 = 0; v12 = v3ED9020(v7); v13 = v12 && v3ED901C(v12, 65901524); *(_BYTE *)(v4 + 44) = v13; return v4; } // 3ED901C: using guessed type int (__stdcall *)(_DWORD, _DWORD); // 3ED9020: using guessed type int (__stdcall *)(_DWORD); // 3ED9028: using guessed type int (__stdcall *)(_DWORD); // 3ED902C: using guessed type int (__stdcall *)(_DWORD); //----- (00003CA0) -------------------------------------------------------- int __fastcall sub_3CA0(int a1, int a2, int a3) { int v3; // edi@1 unsigned int v4; // esi@1 int v5; // eax@1 int v6; // edx@1 int v7; // edx@1 char v9; // [sp+8h] [bp-78h]@1 int v10; // [sp+68h] [bp-18h]@1 int v11; // [sp+6Ch] [bp-14h]@1 int v12; // [sp+70h] [bp-10h]@1 int v13; // [sp+74h] [bp-Ch]@1 int v14; // [sp+78h] [bp-8h]@1 unsigned int v15; // [sp+7Ch] [bp-4h]@1 int v16; // [sp+80h] [bp+0h]@1 v15 = (unsigned int)&v16 ^ v3EDA03C; v3 = a3; v4 = a2; sub_1EF0((unsigned int)&v16 ^ v3EDA03C, a2, (int)&v9); sub_1346(v5, v6, (int)&v9, v3, v4); sub_109F((int)&v10, v7, (int)&v9, (int)&v10); return v14 ^ v13 ^ v12 ^ v11 ^ v10; } //----- (00003D00) -------------------------------------------------------- int __fastcall sub_3D00(int a1, int a2, int a3, unsigned int *a4, int a5) { unsigned int *v5; // ebx@1 int v6; // edi@1 unsigned int v7; // ecx@1 signed __int64 v8; // qax@1 int v9; // esi@1 unsigned __int8 v10; // cf@1 unsigned int v12; // [sp+14h] [bp+8h]@7 unsigned int v13; // [sp+18h] [bp+Ch]@2 v5 = a4; v6 = a3; v7 = a5; v8 = 8i64 * (unsigned int)a5; v9 = (*(_DWORD *)v6 >> 3) & 0x3F; v10 = __CFADD__((_DWORD)v8, *(_DWORD *)v6); *(_DWORD *)v6 += v8; *(_DWORD *)(v6 + 4) += HIDWORD(v8) + v10; if ( v9 ) { v7 = v9 + a5; v5 = (unsigned int *)((char *)a4 - v9); v13 = v7; if ( v7 < 0x40 ) goto LABEL_10; for ( ; (unsigned int)v9 < 0x40; ++v9 ) { LOBYTE(v8) = *((_BYTE *)v5 + v9); *(_BYTE *)(v6 + v9 + 40) = v8; } LODWORD(v8) = sub_74A0(v8, (unsigned int *)(v6 + 40), v6 + 8); a5 = v13 - 64; v7 = a5; v5 += 16; v9 = 0; } if ( v7 >= 0x40 ) { v12 = v7 >> 6; do { LODWORD(v8) = sub_74A0(v8, v5, v6 + 8); a5 -= 64; v5 += 16; --v12; } while ( v12 ); v7 = a5; } LABEL_10: while ( v9 < v7 ) { *(_BYTE *)(v6 + v9 + 40) = *((_BYTE *)v5 + v9); ++v9; } return v8; } //----- (00003DA5) -------------------------------------------------------- void __fastcall sub_3DA5(int a1, int a2, int a3) { int v3; // esi@1 int v4; // edi@1 int v5; // ecx@1 int v6; // eax@1 int v7; // eax@3 int v8; // edx@3 v3 = a3; v4 = a3 + 1984; v5 = *(_DWORD *)(a3 + 1984); *(_DWORD *)v3 = 65901244; *(_DWORD *)(v3 + 20) = 65901236; (*(void (**)(void))(*(_DWORD *)v5 + 28))(); *(_DWORD *)v4 = 0; (***(void (****)(void))(v3 + 552))(); v6 = *(_DWORD *)(v3 + 28); *(_DWORD *)(v3 + 552) = 0; if ( v6 ) { (*(void (__stdcall **)(int))(**(_DWORD **)(v3 + 24) + 20))(v6); *(_DWORD *)(v3 + 28) = 0; } v7 = (*(int (__stdcall **)(int, signed int))(**(_DWORD **)(v3 + 24) + 24))(v3 + 32, 520); sub_1FB4(v7, v8, v3 + 1988); *(_DWORD *)v3 = 65901200; } //----- (00003E40) -------------------------------------------------------- int __fastcall sub_3E40(int a1, int a2, int a3, int a4, int a5, int a6, int a7) { unsigned __int8 v7; // bl@1 int v8; // edi@1 int (__fastcall *v9)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); // eax@1 int v10; // ecx@3 int result; // eax@3 unsigned int v12; // eax@6 unsigned int v13; // ecx@6 int v14; // eax@8 char v15; // [sp+6Ah] [bp-21Ah]@3 char v16; // [sp+6Bh] [bp-219h]@1 unsigned int v17; // [sp+280h] [bp-4h]@1 int v18; // [sp+284h] [bp+0h]@1 v17 = (unsigned int)&v18 ^ v3EDA03C; v7 = 0; v8 = a3; *(_BYTE *)a6 = 0; v16 = 0; v9 = *(int (__fastcall **)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD))(a3 + 1976); if ( !v9 ) goto LABEL_6; if ( v16 ) return 0; v10 = a3 + *(_DWORD *)(a3 + 1980); v16 = 1; v15 = 0; result = v9(v9, &v15, v10, a4, a5, &v15, a7); if ( v15 && !result ) { *(_DWORD *)(v8 + 1976) = 0; *(_DWORD *)(v8 + 1980) = 0; LABEL_6: v12 = *(_DWORD *)(a5 + 8); v13 = *(_DWORD *)(a5 + 4); if ( v12 <= v13 && v13 - v12 >= 1 ) { v7 = *(_BYTE *)(v12 + *(_DWORD *)a5); v14 = v12 + 1; } else { v14 = v13 + 1; } *(_DWORD *)(a5 + 8) = v14; if ( v14 > v13 ) return 3; if ( (v7 ^ (unsigned int)*(_BYTE *)(v8 + 4)) <= 0xCD ) JUMPOUT(__CS__, *(_DWORD *)(4 * *(_BYTE *)((v7 ^ *(_BYTE *)(v8 + 4)) + 0x3ED4B60) + 0x3ED4B2C)); *(_BYTE *)a6 = 1; return 0; } return result; } //----- (00004CF6) -------------------------------------------------------- int __fastcall sub_4CF6(int a1, int a2, int a3, const void *a4, int a5, int a6) { int v6; // ebx@1 v6 = a3; memcpy((void *)a3, a4, 0x20u); *MK_FP(__ES__, a3 + 32) = *(_DWORD *)a5; *MK_FP(__ES__, a3 + 36) = *(_DWORD *)(a5 + 4); *MK_FP(__ES__, a3 + 40) = *(_DWORD *)(a5 + 8); *MK_FP(__ES__, a3 + 44) = *(_DWORD *)(a5 + 12); *(_DWORD *)(a3 + 156) = 0; *(_DWORD *)(a3 + 152) = a6; sub_3210(a6, a2, a3 + 48); return v6; } //----- (00004F41) -------------------------------------------------------- char __fastcall sub_4F41(int a1, int a2, int a3) { int v3; // ebx@1 int v4; // eax@1 int v5; // edi@1 int v6; // edx@2 int v7; // edx@3 int v8; // edx@6 int v9; // edx@6 int v10; // esi@6 int v11; // edx@6 int v12; // eax@9 int v13; // edx@9 int v14; // edi@13 int v15; // ecx@13 char *v16; // esi@13 char v17; // zf@13 int v18; // eax@17 int v19; // eax@18 int v20; // edx@18 char v22; // [sp+8h] [bp-29Ch]@18 int v23; // [sp+14h] [bp-290h]@18 int v24; // [sp+28h] [bp-27Ch]@6 int v25; // [sp+2Ch] [bp-278h]@6 unsigned int v26; // [sp+30h] [bp-274h]@6 char *v27; // [sp+34h] [bp-270h]@2 int v28; // [sp+38h] [bp-26Ch]@2 int v29; // [sp+3Ch] [bp-268h]@2 int v30; // [sp+40h] [bp-264h]@3 int v31; // [sp+44h] [bp-260h]@2 unsigned int v32; // [sp+48h] [bp-25Ch]@2 unsigned int v33; // [sp+4Ch] [bp-258h]@2 char v34; // [sp+50h] [bp-254h]@18 unsigned __int8 v35; // [sp+56h] [bp-24Eh]@6 unsigned __int8 v36; // [sp+57h] [bp-24Dh]@2 char v37; // [sp+58h] [bp-24Ch]@18 char v38; // [sp+160h] [bp-144h]@12 char v39; // [sp+260h] [bp-44h]@6 unsigned int v40; // [sp+2A0h] [bp-4h]@1 int v41; // [sp+2A4h] [bp+0h]@1 v40 = (unsigned int)&v41 ^ v3EDA03C; v3 = a3; v4 = *(_DWORD *)(a3 + 1904); v5 = 0; if ( v4 ) { v32 = *(_DWORD *)(a3 + 1904); v31 = a3 + 1648; v33 = 0; v27 = 0; v28 = 0; v29 = 1; LOBYTE(v4) = sub_6FE0((int)&v36, a2, (int)&v31, (int)&v36); if ( v36 ) { while ( 1 ) { LOBYTE(v4) = sub_6FE0((int)&v30, v6, (int)&v31, (int)&v30); if ( (unsigned __int8)v30 >= 0x40u || (LOBYTE(v4) = v33, v33 > v32) || (LOBYTE(v4) = v36 - 1, v36 != 1) || (sub_2E90((int)&v39, v7, (int)&v31, (int)&v39, 0x40u), sub_1CB0((int)&v25, v8, (int)&v31, (int)&v25), sub_6FE0((int)&v35, v9, (int)&v31, (int)&v35), v10 = v35, v26 = v35, v821A(&v24, v11, &v31, &v24, v35), LOBYTE(v4) = v33, v33 > v32) || v35 > 0xFFu ) return v4; if ( !v39 ) break; v12 = (*(int (__stdcall **)(char *))(**(_DWORD **)(v3 + 552) + 4))(&v39); if ( v12 != v5 ) goto LABEL_12; LABEL_20: v5 = 0; v27 = 0; v28 = 0; v29 = 1; LOBYTE(v4) = sub_6FE0((int)&v36, v6, (int)&v31, (int)&v36); if ( !v36 ) return v4; } v12 = 0; LABEL_12: if ( (unsigned __int8)(*(int (__stdcall **)(char *, int, int, int))(**(_DWORD **)(v3 + 552) + 12))( &v38, v12, v25, v10) ) { v14 = v24; v15 = v10; v16 = &v38; v17 = 1; do { if ( !v15 ) break; v17 = *v16++ == *MK_FP(__ES__, v14++); --v15; } while ( v17 ); if ( !v17 ) { v18 = (unsigned __int8)v30 + v3 + 1908; if ( !*(_BYTE *)v18 ) { *(_BYTE *)v18 = 1; v29 = 0; v27 = &v37; v28 = 263; v34 = 3; sub_5730((int)&v34, v13, (int)&v27, (int)&v34); v19 = sub_524A((int)&v27, v20, (int)&v22, (int)&v27); sub_60F0(v19, v20, (int)&v22, v30); sub_1444((int)&v38, v20, v23, (int)&v38, v26); LOBYTE(v4) = v23; if ( *(_DWORD *)(v23 + 8) > *(_DWORD *)(v23 + 4) ) return v4; sub_7AA0(v23, v13, (int)&v22); sub_51F2((int)&v37, v13, v3, (int)&v37, *(_DWORD *)(v23 + 8)); } } } goto LABEL_20; } } return v4; } //----- (000051C5) -------------------------------------------------------- int __fastcall sub_51C5(int a1, int a2, int a3, int a4, int a5, int a6, int a7) { int v7; // ecx@1 int result; // eax@1 int v9; // et0@1 v7 = __ROL__(a3, 5); result = a7; *(_DWORD *)a6 += (a5 ^ a4 ^ *(_DWORD *)a2) + v7 + *(_DWORD *)a7 + 1859775393; v9 = __ROL__(*(_DWORD *)a2, 30); *(_DWORD *)a2 = v9; *(_DWORD *)a7 = 0; return result; } //----- (000051F2) -------------------------------------------------------- int __fastcall sub_51F2(int a1, int a2, int a3, int a4, unsigned int a5) { int v5; // esi@1 v5 = a3; sub_57D0(a1, a2, a3 + 32, a4, a5); return (*(int (**)(void))(**(_DWORD **)(v5 + 24) + 4))(); } //----- (00005210) -------------------------------------------------------- int __fastcall sub_5210(int a1, int a2, int a3, int a4, int a5, int a6, int a7) { int v7; // ecx@1 int result; // eax@1 int v9; // et0@1 v7 = __ROL__(a3, 5); result = a7; *(_DWORD *)a6 += (a4 & *(_DWORD *)a2 | a5 & ~*(_DWORD *)a2) + v7 + *(_DWORD *)a7 + 1518500249; v9 = __ROL__(*(_DWORD *)a2, 30); *(_DWORD *)a2 = v9; *(_DWORD *)a7 = 0; return result; } //----- (0000524A) -------------------------------------------------------- int __fastcall sub_524A(int a1, int a2, int a3, int a4) { int v4; // esi@1 v4 = a3; *(_DWORD *)a3 = 0; *(_DWORD *)(a3 + 4) = 0; *(_DWORD *)(a3 + 8) = 1; *(_DWORD *)(v4 + 12) = v4; sub_6D70(a1, a2, a3, a4); return v4; } //----- (00005270) -------------------------------------------------------- int __usercall sub_5270<eax>(char _CF<cf>, char _ZF<zf>, char _SF<sf>, char _OF<of>, int a5<eax>, int a6<edx>, int a7<ecx>, int a8<ebx>, int a9<edi>, int a10<esi>, char a11) { int v11; // eax@6 int v12; // eax@6 int v13; // eax@6 int v14; // edx@6 int v15; // eax@8 int v17; // [sp-4h] [bp-338h]@0 bool v18; // [sp+0h] [bp-334h]@4 int v19; // [sp+4h] [bp-330h]@1 int (*v20)(void); // [sp+8h] [bp-32Ch]@2 int v21; // [sp+334h] [bp+0h]@0 void *v22; // [sp+338h] [bp+4h]@1 v3EDA230 = a5; v3EDA22C = a7; v3EDA228 = a6; v3EDA224 = a8; v3EDA220 = a10; v3EDA21C = a9; v3EDA248 = __SS__; v3EDA23C = __CS__; v3EDA218 = __DS__; v3EDA214 = __ES__; v3EDA210 = __FS__; v3EDA20C = __GS__; __asm { pushf } v3EDA240 = v17; v3EDA234 = v21; v3EDA238 = v22; v3EDA244 = &a11; v3EDA180 = 65537; v3EDA134 = v22; v3EDA128 = -1073740791; v3EDA12C = 1; v19 = v3ED9020(65901684); v18 = v19 && (v20 = (int (*)(void))v3ED901C(v19, 65901664)) != 0 && v20(); v3EDA178 = v18; sub_11B0(); v12 = v3ED905C(v11, v14, 1, 0); v13 = v3ED9058(v12, v14); if ( !v3EDA178 ) sub_11B0(); v15 = v3ED9054(v13, v14); return v3ED9050(v15); } // 3ED901C: using guessed type int (__stdcall *)(_DWORD, _DWORD); // 3ED9020: using guessed type int (__stdcall *)(_DWORD); // 3ED9050: using guessed type int (__stdcall *)(_DWORD); // 3ED9054: using guessed type int (__fastcall *)(_DWORD, _DWORD); // 3ED9058: using guessed type int (__fastcall *)(_DWORD, _DWORD); // 3ED905C: using guessed type int (__fastcall *)(_DWORD, _DWORD, _DWORD, _DWORD); //----- (00005460) -------------------------------------------------------- signed int __stdcall sub_5460(int a1, int a2, int a3) { signed int v4; // edi@5 if ( a2 == 1 ) { sub_6E00(1); v3EDA124 = 0; if ( sub_5510(0x3ED9094u, 0x3ED909Cu) ) return 0; sub_7340(0x3ED9088u, 0x3ED9090u); v3EDA124 = 1; } v4 = sub_22A0(a1, a2, a3); if ( !a2 ) { if ( v3EDA124 ) { sub_3840(); sub_7340(0x3ED90A0u, 0x3ED90A4u); sub_7340(0x3ED90A8u, 0x3ED90ACu); v3EDA124 = 0; } } return v4; } //----- (00005510) -------------------------------------------------------- int __cdecl sub_5510(unsigned int a1, unsigned int a2) { unsigned int v2; // esi@1 int result; // eax@1 v2 = a1; for ( result = 0; v2 < a2; v2 += 4 ) { if ( result ) break; if ( *(_DWORD *)v2 ) result = (*(int (**)(void))v2)(); } return result; } //----- (00005540) -------------------------------------------------------- unsigned int __fastcall sub_5540(int a1, int a2, int a3, unsigned int a4) { unsigned int result; // eax@1 unsigned int v5; // edx@1 result = *(_DWORD *)(a3 + 8); v5 = *(_DWORD *)(a3 + 4); if ( result <= v5 && v5 - result >= a4 ) { result += a4; *(_DWORD *)(a3 + 8) = result; } else { *(_DWORD *)(a3 + 8) = v5 + 1; } return result; } //----- (00005580) -------------------------------------------------------- int __usercall sub_5580<eax>(int a1<eax>, int a2<edx>, int a3<ecx>, int a4<ebx>, int a5<edi>, int a6<esi>, char a7) { if ( a3 == v3EDA03C ) __asm { rep retn } return sub_5270( (unsigned int)a3 < v3EDA03C, a3 == v3EDA03C, a3 - v3EDA03C < 0, __OFSUB__(a3, v3EDA03C), a1, a2, a3, a4, a5, a6, a7); } //----- (00005704) -------------------------------------------------------- void *__cdecl sub_5704(void *a1, unsigned __int8 a2, unsigned int a3) { int v3; // edi@1 unsigned int v4; // eax@1 int v5; // eax@1 unsigned int v6; // ecx@1 int v7; // ecx@3 v3 = (int)a1; v4 = a2; BYTE1(v4) = a2; v5 = v4 | _byteswap_ulong(v4); v6 = a3 >> 2; if ( a3 >> 2 ) { memset32(a1, v5, v6); v3 = (int)((char *)a1 + 4 * v6); v6 = 0; } LOBYTE(v6) = 3; v7 = a3 & v6; if ( v7 ) { while ( v7 ) { *MK_FP(__ES__, v3++) = v5; --v7; } } return a1; } //----- (00005730) -------------------------------------------------------- int __fastcall sub_5730(int a1, int a2, int a3, int a4) { unsigned int v4; // edx@1 unsigned int v5; // esi@1 int result; // eax@2 v4 = *(_DWORD *)(a3 + 8); v5 = *(_DWORD *)(a3 + 4); if ( v4 <= v5 && (result = v5 - v4, v5 - v4 >= 1) ) { result = *(_DWORD *)a3; *(_BYTE *)(v4 + *(_DWORD *)a3) = *(_BYTE *)a4; ++*(_DWORD *)(a3 + 8); } else { *(_DWORD *)(a3 + 8) = v5 + 1; } return result; } //----- (000057D0) -------------------------------------------------------- int __fastcall sub_57D0(int a1, int a2, int a3, int a4, unsigned int a5) { unsigned int v5; // esi@1 int v6; // eax@2 char v7; // dl@2 int v8; // edi@2 int v9; // eax@2 int result; // eax@2 v5 = 0; if ( a5 ) { do { ++*(_BYTE *)(a3 + 256); v6 = *(_BYTE *)(a3 + 256); *(_BYTE *)(a3 + 257) += *(_BYTE *)(v6 + a3); v7 = *(_BYTE *)(v6 + a3); v8 = v6 + a3; v9 = *(_BYTE *)(a3 + 257); *(_BYTE *)v8 = *(_BYTE *)(v9 + a3); *(_BYTE *)(a3 + v9) = v7; ++v5; result = a4; *(_BYTE *)(v5 + result - 1) ^= *(_BYTE *)((unsigned __int8)(*(_BYTE *)(*(_BYTE *)(a3 + 256) + a3) + *(_BYTE *)(*(_BYTE *)(a3 + 257) + a3)) + a3); } while ( v5 < a5 ); } return result; } //----- (0000583F) -------------------------------------------------------- char __fastcall sub_583F(int a1, int a2, int a3, int a4, unsigned int a5) { int v5; // esi@1 unsigned int v6; // eax@1 v5 = a3; LOBYTE(v6) = sub_6F20(a1, a2, a3, a5); if ( (_BYTE)v6 ) { v6 = 0; if ( a5 ) { do *(_BYTE *)(v6++ + a4) = *(_BYTE *)((*(_DWORD *)(v5 + 8))++ + *(_DWORD *)v5); while ( v6 < a5 ); } } return v6; } //----- (000058A1) -------------------------------------------------------- unsigned int __fastcall sub_58A1(int a1, int a2, int a3, unsigned int a4, unsigned int a5) { unsigned int result; // eax@1 signed int v6; // edx@1 result = a4; v6 = 7; do { *(_BYTE *)(v6 + a3) = result; result = __PAIR__(a5, result) >> 8; --v6; a5 >>= 8; } while ( v6 >= 0 ); return result; } //----- (000058E8) -------------------------------------------------------- char __fastcall sub_58E8(int a1, int a2, int a3) { return sub_583F(a1, a2, a3, a2, 0x20u); } //----- (0000595D) -------------------------------------------------------- void __cdecl sub_595D(int a1, int a2, int a3) { JUMPOUT(0xA290000u); } //----- (00005990) -------------------------------------------------------- int __fastcall sub_5990(int a1, int a2, int a3) { int v3; // esi@1 int result; // eax@1 int v5; // eax@2 int v6; // [sp+4h] [bp-4h]@1 v3 = a3; result = (**(int (__stdcall ***)(_DWORD))a3)(24); v6 = result; if ( result ) { v5 = sub_5F90(24, result); if ( v5 ) { *(_DWORD *)(v5 + 8) = 65871842; *(_DWORD *)(v5 + 12) = 65887278; *(_DWORD *)v5 = 65901572; *(_DWORD *)(v5 + 4) = v3; *(_DWORD *)(v5 + 16) = 65884740; *(_DWORD *)(v5 + 20) = 0; } result = v6; } return result; } //----- (000059F0) -------------------------------------------------------- signed int __cdecl sub_59F0(int a1) { int v1; // esi@1 unsigned int v2; // edx@3 signed int v3; // eax@3 signed int result; // eax@7 int v5; // eax@8 int v6; // eax@9 v1 = a1 - 65863680; if ( a1 - 65863680 < 0 || (unsigned int)v1 > v3ED000C ) { result = 0; } else { v2 = 0; v3 = 65863748; if ( !v3ED0040 ) goto LABEL_7; while ( (unsigned int)v1 < *(_DWORD *)v3 || v1 >= (unsigned int)(*(_DWORD *)v3 + *(_DWORD *)(v3 + 4)) ) { ++v2; v3 += 12; if ( v2 >= v3ED0040 ) goto LABEL_7; } v5 = *(_DWORD *)(v3 + 8) - 2; if ( v5 && (v6 = v5 - 14) != 0 && v6 != 16 ) LABEL_7: result = 0; else result = 1; } return result; } //----- (00005A70) -------------------------------------------------------- int __fastcall sub_5A70(int a1, int a2, int a3) { int v3; // esi@1 int v4; // eax@1 int v5; // eax@2 int v6; // edx@2 int result; // eax@3 v3 = a3; v4 = (**(int (__stdcall ***)(_DWORD))a3)(60); if ( v4 && (v5 = sub_5F90(60, v4)) != 0 ) result = sub_3A00(v5, v6, v5, v3); else result = 0; return result; } //----- (00005A9C) -------------------------------------------------------- int __fastcall sub_5A9C(int a1, int a2, int a3) { int result; // eax@1 result = a3; *(_DWORD *)(a3 + 32) = 0; *(_BYTE *)(a3 + 36) = 0; return result; } //----- (00005F00) -------------------------------------------------------- unsigned int __fastcall sub_5F00(int a1, int a2, int a3, int a4) { int v4; // esi@1 int v5; // ST04_4@1 int v6; // edx@1 int v7; // eax@1 int v8; // edx@1 unsigned int result; // eax@1 unsigned int *v10; // ecx@1 unsigned __int32 v11; // [sp+Ch] [bp-Ch]@1 int v12; // [sp+10h] [bp-8h]@1 unsigned int v13; // [sp+14h] [bp-4h]@1 int v14; // [sp+18h] [bp+0h]@1 v13 = (unsigned int)&v14 ^ v3EDA03C; v4 = a3; v5 = ((-9 - (unsigned __int8)(*(_QWORD *)a3 >> 3)) & 0x3F) + 1; v6 = _byteswap_ulong(*(_QWORD *)a3); v11 = _byteswap_ulong(*(_DWORD *)(a3 + 4)); v12 = v6; v7 = sub_3D00(v5, v6, a3, (unsigned int *)0x3ED90D0, v5); sub_3D00(v7, v8, v4, (unsigned int *)&v11, 8); result = 0; v10 = (unsigned int *)(v4 + 8); do { *(_DWORD *)(a4 + 4 * result++) = _byteswap_ulong(*v10); ++v10; } while ( result < 8 ); return result; } //----- (00005F90) -------------------------------------------------------- int __cdecl sub_5F90(int a1, int a2) { return a2; } //----- (00005FA0) -------------------------------------------------------- char __fastcall sub_5FA0(int a1, int a2, int a3, int a4) { int v4; // ebx@1 int v5; // esi@1 int v6; // ecx@1 int v7; // eax@1 int v8; // edx@1 int v9; // ecx@2 int v10; // ecx@6 char result; // al@9 int v12; // edi@10 int v13; // eax@10 int v14; // ecx@12 int v15; // eax@12 int v16; // edx@12 int v17; // [sp+Ch] [bp-4h]@4 int v18; // [sp+18h] [bp+8h]@1 int v19; // [sp+18h] [bp+8h]@12 v4 = a4; v5 = a3; *(_BYTE *)(a3 + 12) = 0; *(_DWORD *)(a3 + 16) = 5; v6 = *(_DWORD *)(a4 + 8); v7 = *(_DWORD *)(a4 + 4) - v6; v8 = v6 + *(_DWORD *)a4; v18 = 0; if ( (unsigned int)v7 >= 2 ) { v18 = *(_WORD *)v8; v9 = 2; } else { v9 = v7 + 1; } v17 = 0; if ( v9 <= (unsigned int)v7 && (unsigned int)(v7 - v9) >= 4 ) { v17 = *(_DWORD *)(v9 + v8); v10 = v9 + 4; } else { v10 = v7 + 1; } if ( v10 <= (unsigned int)v7 ) { v12 = (unsigned __int16)v18; v13 = v7 - v10; if ( v13 >= (unsigned int)(unsigned __int16)v18 ) { v14 = v8 + v10; v16 = (unsigned __int16)v18; v19 = v14; v15 = sub_3CA0(v13, v16, v14); if ( v17 == v15 ) { *(_DWORD *)(v5 + 4) = v12; *(_DWORD *)v5 = v19; *(_DWORD *)(v5 + 8) = 0; sub_5540(v15, v19, v4, v12 + 6); result = 1; *(_DWORD *)(v5 + 16) = 0; *(_BYTE *)(v5 + 12) = 1; } else { sub_5540(v15, v16, v4, v12 + 6); *(_DWORD *)(v5 + 16) = 3; result = 0; } } else { *(_DWORD *)(v5 + 16) = 2; result = 0; } } else { *(_DWORD *)(v5 + 16) = 1; result = 0; } return result; } //----- (000060F0) -------------------------------------------------------- int __fastcall sub_60F0(int a1, int a2, int a3, char a4) { int result; // eax@1 unsigned int v5; // edx@1 unsigned int v6; // esi@1 result = *(_DWORD *)(a3 + 12); v5 = *(_DWORD *)(result + 8); v6 = *(_DWORD *)(result + 4); if ( v5 <= v6 && v6 - v5 >= 1 ) { *(_BYTE *)(v5 + *(_DWORD *)result) = a4; ++*(_DWORD *)(result + 8); } else { *(_DWORD *)(result + 8) = v6 + 1; } return result; } //----- (00006D70) -------------------------------------------------------- int __fastcall sub_6D70(int a1, int a2, int a3, int a4) { int v4; // eax@1 unsigned int v5; // edx@1 unsigned int v6; // esi@1 int v7; // eax@5 unsigned int v8; // esi@5 unsigned int v9; // edi@5 int v10; // eax@7 int result; // eax@7 int v12; // eax@8 *(_DWORD *)(a3 + 12) = a4; *(_DWORD *)(a3 + 16) = a4; *(_DWORD *)(a3 + 20) = *(_DWORD *)(a4 + 8); v4 = *(_DWORD *)(a3 + 12); v5 = *(_DWORD *)(v4 + 8); v6 = *(_DWORD *)(v4 + 4); if ( v5 <= v6 && v6 - v5 >= 2 ) { *(_WORD *)(v5 + *(_DWORD *)v4) = 0; *(_DWORD *)(v4 + 8) += 2; } else { *(_DWORD *)(v4 + 8) = v6 + 1; } v7 = *(_DWORD *)(a3 + 12); v8 = *(_DWORD *)(v7 + 8); v9 = *(_DWORD *)(v7 + 4); if ( v8 <= v9 && v9 - v8 >= 4 ) { *(_DWORD *)(v8 + *(_DWORD *)v7) = 0; *(_DWORD *)(v7 + 8) += 4; v12 = *(_DWORD *)(a3 + 12); *(_DWORD *)(a3 + 24) = v12; result = *(_DWORD *)(v12 + 8); *(_DWORD *)(a3 + 28) = result; } else { *(_DWORD *)(v7 + 8) = v9 + 1; v10 = *(_DWORD *)(a3 + 12); *(_DWORD *)(a3 + 24) = v10; result = *(_DWORD *)(v10 + 8); *(_DWORD *)(a3 + 28) = result; } return result; } //----- (00006E00) -------------------------------------------------------- int __usercall sub_6E00<eax>(int a1<esi>) { int result; // eax@3 int v2; // eax@4 int v3; // esi@4 int v4; // esi@4 int v5; // esi@4 int v6; // esi@4 int v7; // [sp+0h] [bp-10h]@4 int v8; // [sp+4h] [bp-Ch]@4 int v9; // [sp+8h] [bp-8h]@1 int v10; // [sp+Ch] [bp-4h]@1 v9 = 0; v10 = 0; if ( v3EDA03C != -1153374642 && v3EDA03C & 0xFFFF0000 ) { result = ~v3EDA03C; v3EDA040 = ~v3EDA03C; } else { v2 = v3ED906C(&v9, a1); v3 = v3ED9068(v2) ^ v9 ^ v10; v4 = v3ED9064() ^ v3; v5 = v3ED9024() ^ v4; result = v3ED9060(&v7); v6 = v7 ^ v8 ^ v5; if ( v6 == -1153374642 ) { v3EDA03C = -1153374641; v3EDA040 = 1153374640; } else { if ( !(v6 & 0xFFFF0000) ) { result = v6 << 16; v6 |= v6 << 16; } v3EDA03C = v6; v3EDA040 = ~v6; } } return result; } // 3ED9024: using guessed type int (*)(void); // 3ED9060: using guessed type int (__stdcall *)(_DWORD); // 3ED9064: using guessed type int (*)(void); // 3ED9068: using guessed type int (__fastcall *)(_DWORD); // 3ED906C: using guessed type int (__stdcall *)(_DWORD, _DWORD); //----- (00006EA9) -------------------------------------------------------- char __fastcall sub_6EA9(int a1, int a2, int a3, int a4) { unsigned int v4; // kr00_4@1 v4 = strlen((const char *)a4); return sub_1346(v4, a4 + 1, a3, a4, v4); } //----- (00006ECA) -------------------------------------------------------- char __fastcall sub_6ECA(int a1, int a2, int a3, int a4, int a5) { int v5; // eax@1 int v6; // eax@1 int v8; // eax@4 int v9; // esi@6 __int64 v10; // qax@6 int v11; // [sp+4h] [bp-4h]@1 v5 = *(_DWORD *)(a3 + 32); v11 = 0; v6 = v5 - 1; if ( v6 ) { if ( v6 != 1 ) return 0; v8 = (*(int (__stdcall **)(int, int *))(a3 + 20))(a4, &v11); } else { v8 = (*(int (__stdcall **)(int, int *))(a3 + 4))(a4, &v11); } v9 = v8; LODWORD(v10) = v8430(v11, 0, 0, 1); *(_QWORD *)a5 = (unsigned int)v9 + v10; return 1; } //----- (00006F20) -------------------------------------------------------- char __fastcall sub_6F20(int a1, int a2, int a3, unsigned int a4) { unsigned int v4; // edx@1 unsigned int v5; // eax@1 char result; // al@3 v4 = *(_DWORD *)(a3 + 8); v5 = *(_DWORD *)(a3 + 4); if ( v4 > v5 || v5 - v4 < a4 ) { *(_DWORD *)(a3 + 8) = v5 + 1; result = 0; } else { result = 1; } return result; } //----- (00006F50) -------------------------------------------------------- char __fastcall sub_6F50(int a1, int (__cdecl *a2)(_DWORD), int a3, int a4, int a5) { int v6; // [sp-10h] [bp-28h]@1 int *v7; // [sp+0h] [bp-18h]@1 int v8; // [sp+8h] [bp-10h]@1 signed int v9; // [sp+Ch] [bp-Ch]@1 int v10; // [sp+10h] [bp-8h]@1 int v11; // [sp+14h] [bp-4h]@1 int v12; // [sp+18h] [bp+0h]@1 v9 = 65886887; v8 = a1; v10 = v3EDA03C ^ 0x3ED9510; v7 = &v6; v11 = 0; *(_DWORD *)a3 = a2((unsigned int)&v12 ^ v3EDA03C); return 1; } //----- (00006FE0) -------------------------------------------------------- char __fastcall sub_6FE0(int a1, int a2, int a3, int a4) { unsigned int v4; // eax@1 unsigned int v5; // edx@1 *(_BYTE *)a4 = 0; v4 = *(_DWORD *)(a3 + 8); v5 = *(_DWORD *)(a3 + 4); if ( v4 <= v5 && v5 - v4 >= 1 ) { LOBYTE(v4) = *(_BYTE *)(v4 + *(_DWORD *)a3); *(_BYTE *)a4 = v4; ++*(_DWORD *)(a3 + 8); } else { *(_DWORD *)(a3 + 8) = v5 + 1; } return v4; } //----- (000070C0) -------------------------------------------------------- signed int __fastcall sub_70C0(int a1, int a2, int a3, int a4, int a5) { char v5; // dl@3 unsigned int v6; // eax@4 unsigned int v7; // ecx@4 unsigned int v8; // eax@9 unsigned int v9; // ecx@9 int v10; // ebx@9 unsigned int v11; // eax@15 unsigned int v12; // ecx@15 signed int result; // eax@21 int v14; // esi@22 int v15; // [sp+Ch] [bp-10Ch]@1 int v16; // [sp+10h] [bp-108h]@0 char v17; // [sp+14h] [bp-104h]@2 unsigned int v18; // [sp+114h] [bp-4h]@1 int v19; // [sp+118h] [bp+0h]@1 v18 = (unsigned int)&v19 ^ v3EDA03C; v15 = a3; if ( *(_BYTE *)(a4 + 12) ) sub_2E90((int)&v17, a2, a4, (int)&v17, 0x100u); v5 = *(_BYTE *)(a4 + 12); if ( v5 && ((v6 = *(_DWORD *)(a4 + 8), v7 = *(_DWORD *)(a4 + 4), v16 = 0, v6 <= v7) && v7 - v6 >= 4 ? (v16 = *(_DWORD *)(v6 + *(_DWORD *)a4), *(_DWORD *)(a4 + 8) = v6 + 4) : (*(_DWORD *)(a4 + 8) = v7 + 1), v5) ) { v8 = *(_DWORD *)(a4 + 8); v9 = *(_DWORD *)(a4 + 4); v10 = 0; if ( v8 <= v9 && v9 - v8 >= 4 ) { v10 = *(_DWORD *)(v8 + *(_DWORD *)a4); *(_DWORD *)(a4 + 8) = v8 + 4; } else { *(_DWORD *)(a4 + 8) = v9 + 1; } } else { v10 = v16; } if ( *(_BYTE *)(a4 + 12) && ((v11 = *(_DWORD *)(a4 + 8), v12 = *(_DWORD *)(a4 + 4), v11 <= v12) && v12 - v11 >= 1 ? (*(_DWORD *)(a4 + 8) = v11 + 1) : (*(_DWORD *)(a4 + 8) = v12 + 1), *(_BYTE *)(a4 + 12) && *(_DWORD *)(a4 + 8) <= *(_DWORD *)(a4 + 4)) ) { *(_DWORD *)v15 = 0; *(_DWORD *)(v15 + 4) = 0; v14 = (*(int (__fastcall **)(int, _DWORD, int, int))(*(_DWORD *)a5 + 4))( v17 != 0 ? (int)&v17 : 0, *(_DWORD *)(*(_DWORD *)a5 + 4), a5, v17 != 0 ? (int)&v17 : 0); if ( v14 ) { if ( v16 ) { *(_DWORD *)v15 = (*(int (__fastcall **)(_DWORD, _DWORD, int, int, int))(*(_DWORD *)a5 + 8))( *(_DWORD *)(*(_DWORD *)a5 + 8), *(_DWORD *)a5, a5, v14, v16); *(_DWORD *)(v15 + 4) = (*(int (__fastcall **)(_DWORD, _DWORD, int, int, int))(*(_DWORD *)a5 + 8))( *(_DWORD *)(*(_DWORD *)a5 + 8), *(_DWORD *)a5, a5, v14, v10); } } result = 0; } else { result = 3; } return result; } //----- (00007340) -------------------------------------------------------- void __cdecl sub_7340(unsigned int a1, unsigned int a2) { unsigned int i; // esi@1 for ( i = a1; i < a2; i += 4 ) { if ( *(_DWORD *)i ) (*(void (**)(void))i)(); } } //----- (00007363) -------------------------------------------------------- char __fastcall sub_7363(int a1, int a2, int a3) { return sub_1444(a1, a2, a3, a2, 0x14u); } //----- (000074A0) -------------------------------------------------------- int __fastcall sub_74A0(int a1, unsigned int *a2, int a3) { signed int v3; // eax@1 char *v4; // eax@3 unsigned int v5; // edx@4 int v6; // edi@4 int v7; // ebx@4 int v8; // edi@4 int v9; // esi@4 int v10; // ebx@4 int v11; // esi@4 int v12; // edx@4 int v13; // edi@4 unsigned __int8 v14; // sf@4 unsigned __int8 v15; // of@4 int v16; // ebx@5 int v17; // esi@5 int v18; // edi@5 int v19; // edx@5 int v20; // eax@5 int v21; // ebx@5 int v22; // ecx@5 int v23; // ecx@7 int v24; // ebx@7 int v25; // ecx@7 int v26; // ebx@7 int v27; // ecx@7 int v28; // eax@7 int v29; // edi@7 int v30; // ebx@7 int v31; // edi@7 int v32; // ebx@7 int v33; // ecx@7 int v34; // edi@7 int v35; // ecx@7 int v36; // edi@7 int v37; // ecx@7 int v38; // edx@7 int v39; // ebx@7 int v40; // ecx@7 int v41; // ebx@7 int v42; // ecx@7 int v43; // ecx@7 int v44; // edi@7 int v45; // ecx@7 int v46; // edi@7 int v47; // ecx@7 int v48; // edi@7 int v49; // ebx@7 int v50; // edi@7 int v51; // ebx@7 int v52; // ecx@7 int v53; // esi@7 int v54; // ebx@7 int v55; // esi@7 int v56; // ebx@7 int v57; // esi@7 int v58; // edi@7 int v59; // esi@7 int v60; // edi@7 int v61; // esi@7 int v62; // edi@7 int v63; // ebx@7 int v64; // edi@7 int v65; // ebx@7 int v66; // esi@7 int v67; // esi@7 int v68; // edi@7 int v69; // esi@7 int v70; // edi@7 int v71; // edi@7 int v72; // ebx@7 int v73; // edi@7 int v74; // ebx@7 int v75; // esi@7 int v76; // edi@7 int v77; // edx@7 int v78; // edi@7 int v79; // edx@7 int v80; // edi@7 int v81; // ebx@7 int v82; // edi@7 int v83; // ebx@7 int v84; // ecx@7 int v85; // esi@7 int v86; // edi@7 int v87; // esi@7 int v88; // edi@7 int v89; // esi@7 int v90; // edi@7 int v91; // esi@7 int v92; // edi@7 int v93; // esi@7 int v94; // esi@7 int v95; // edi@7 int v96; // esi@7 int v97; // edi@7 char v98; // cf@7 int v99; // edi@8 int v100; // ebx@8 int v101; // esi@8 int v102; // ecx@8 int v103; // edx@8 int v104; // ecx@8 int v105; // eax@8 int v106; // ecx@8 int v107; // eax@8 int v108; // edx@8 int result; // eax@8 char v110[8]; // [sp+4h] [bp-134h]@3 int v111; // [sp+Ch] [bp-12Ch]@2 int v112; // [sp+10h] [bp-128h]@7 int v113; // [sp+14h] [bp-124h]@7 int v114; // [sp+18h] [bp-120h]@7 int v115; // [sp+1Ch] [bp-11Ch]@7 int v116; // [sp+20h] [bp-118h]@7 int v117; // [sp+24h] [bp-114h]@7 int v118[57]; // [sp+28h] [bp-110h]@7 int v119; // [sp+10Ch] [bp-2Ch]@1 int v120; // [sp+110h] [bp-28h]@7 int v121; // [sp+114h] [bp-24h]@5 int v122; // [sp+118h] [bp-20h]@3 int v123; // [sp+11Ch] [bp-1Ch]@7 int v124; // [sp+120h] [bp-18h]@5 unsigned int v125; // [sp+124h] [bp-14h]@5 int v126; // [sp+128h] [bp-10h]@5 int v127; // [sp+12Ch] [bp-Ch]@5 int v128; // [sp+130h] [bp-8h]@5 int v129; // [sp+134h] [bp-4h]@7 v119 = a3; v3 = 0; do { *(&v111 + v3++) = _byteswap_ulong(*a2); ++a2; } while ( v3 < 16 ); v122 = v3; v4 = &v110[4 * v3]; do { v5 = *((_DWORD *)v4 - 13); v6 = __ROR__(*(_DWORD *)v4, 19); v7 = __ROR__(*(_DWORD *)v4, 17); v8 = (*(_DWORD *)v4 >> 10) ^ v7 ^ v6; v9 = __ROR__(v5, 18); v10 = __ROR__(*((_DWORD *)v4 - 13), 7); v11 = (v5 >> 3) ^ v10 ^ v9; v12 = v122 + 1; v13 = *((_DWORD *)v4 - 5) + *((_DWORD *)v4 - 14) + v11 + v8; v4 += 4; v15 = __OFSUB__(v122 + 1, 64); v14 = v122 - 63 < 0; *((_DWORD *)v4 + 1) = v13; v122 = v12; } while ( v14 ^ v15 ); v16 = *(_DWORD *)(a3 + 20); v17 = *(_DWORD *)a3; v18 = *(_DWORD *)(a3 + 16); v19 = *(_DWORD *)(a3 + 8); v124 = *(_DWORD *)(a3 + 4); v20 = *(_DWORD *)(a3 + 12); v122 = v16; v21 = *(_DWORD *)(a3 + 24); v22 = *(_DWORD *)(a3 + 28); v121 = v17; v127 = v18; v128 = v21; v126 = v22; v125 = 0; while ( 1 ) { v23 = __ROR__(v18, 25); v24 = __ROR__(v18, 11); v25 = v24 ^ v23; v26 = __ROR__(v18, 6); v120 = v26 ^ v25; v27 = v126 + *(int *)((char *)&v111 + v125) + *(_DWORD *)(v125 + 65900816) + (v18 & v122 ^ v128 & ~v18) + (v26 ^ v25); v28 = v27 + v20; v129 = v27; v120 = v17 & v124; v123 = v17 ^ v124; v29 = __ROR__(v17, 22); v30 = __ROR__(v17, 13); v31 = v30 ^ v29; v32 = __ROR__(v17, 2); v126 = v27 + (v32 ^ v31) + (v17 & v124 ^ v19 & (v17 ^ v124)); v33 = __ROR__(v28, 25); v34 = __ROR__(v28, 11); v35 = v34 ^ v33; v36 = __ROR__(v28, 6); v37 = v128 + *(_DWORD *)(v125 + 65900820) + *(int *)((char *)&v112 + v125) + (v28 & v127 ^ v122 & ~v28) + (v36 ^ v35); v38 = v37 + v19; v129 = v37; v39 = __ROR__(v126, 22); v40 = __ROR__(v126, 13); v41 = v40 ^ v39; v42 = __ROR__(v126, 2); v128 = v129 + (v42 ^ v41) + (v17 & v124 ^ v126 & (v17 ^ v124)); v43 = __ROR__(v38, 25); v44 = __ROR__(v38, 11); v45 = v44 ^ v43; v46 = __ROR__(v38, 6); v47 = v122 + *(_DWORD *)(v125 + 65900824) + *(int *)((char *)&v113 + v125) + (v38 & v28 ^ v127 & ~v38) + (v46 ^ v45); v124 += v47; v129 = v47; v48 = __ROR__(v128, 22); v49 = __ROR__(v128, 13); v50 = v49 ^ v48; v51 = __ROR__(v128, 2); v52 = v47 + (v51 ^ v50) + (v17 & v128 ^ v126 & (v17 ^ v128)); v53 = __ROR__(v124, 25); v54 = __ROR__(v124, 11); v55 = v54 ^ v53; v56 = __ROR__(v124, 6); v123 = v56 ^ v55; v57 = v127 + *(_DWORD *)(v125 + 65900828) + *(int *)((char *)&v114 + v125) + (v124 & v38 ^ v28 & ~v124) + (v56 ^ v55); v121 += v57; v129 = v57; v58 = __ROR__(v52, 22); v59 = __ROR__(v52, 13); v60 = v59 ^ v58; v61 = __ROR__(v52, 2); v127 = v129 + (v61 ^ v60) + (v52 & v128 ^ v126 & (v52 ^ v128)); v62 = __ROR__(v121, 25); v63 = __ROR__(v121, 11); v64 = v63 ^ v62; v65 = __ROR__(v121, 6); v123 = v65 ^ v64; v66 = v28 + *(_DWORD *)(v125 + 65900832) + *(int *)((char *)&v115 + v125) + (v121 & v124 ^ v38 & ~v121) + (v65 ^ v64); v126 += v66; v129 = v66; v67 = __ROR__(v127, 22); v68 = __ROR__(v127, 13); v69 = v68 ^ v67; v70 = __ROR__(v127, 2); v20 = v129 + (v70 ^ v69) + (v127 & v52 ^ v128 & (v127 ^ v52)); v71 = __ROR__(v126, 25); v72 = __ROR__(v126, 11); v73 = v72 ^ v71; v74 = __ROR__(v126, 6); v123 = v74 ^ v73; v75 = v38 + *(_DWORD *)(v125 + 65900836) + *(int *)((char *)&v116 + v125) + (v121 & v126 ^ v124 & ~v126) + (v74 ^ v73); v128 += v75; v76 = __ROR__(v20, 22); v77 = __ROR__(v20, 13); v78 = v77 ^ v76; v79 = __ROR__(v20, 2); v19 = v75 + (v79 ^ v78) + (v20 & v127 ^ v52 & (v20 ^ v127)); v80 = __ROR__(v128, 25); v81 = __ROR__(v128, 11); v82 = v81 ^ v80; v83 = __ROR__(v128, 6); v123 = v83 ^ v82; v84 = v124 + *(_DWORD *)(v125 + 65900840) + *(int *)((char *)&v117 + v125) + (v128 & v126 ^ v121 & ~v128) + (v83 ^ v82) + v52; v129 = v124 + *(_DWORD *)(v125 + 65900840) + *(int *)((char *)&v117 + v125) + (v128 & v126 ^ v121 & ~v128) + (v83 ^ v82); v85 = __ROR__(v19, 22); v86 = __ROR__(v19, 13); v87 = v86 ^ v85; v88 = __ROR__(v19, 2); v122 = v84; v124 = v129 + (v88 ^ v87) + (v19 & v20 ^ v127 & (v19 ^ v20)); v89 = __ROR__(v84, 25); v90 = __ROR__(v84, 11); v91 = v90 ^ v89; v92 = __ROR__(v84, 6); v93 = v121 + *(_DWORD *)(v125 + 65900844) + v118[v125 / 4] + (v84 & v128 ^ v126 & ~v84) + (v92 ^ v91); v127 += v93; v129 = v93; v94 = __ROR__(v124, 22); v95 = __ROR__(v124, 13); v96 = v95 ^ v94; v97 = __ROR__(v124, 2); v17 = (v124 & v19 ^ v20 & (v124 ^ v19)) + v129 + (v97 ^ v96); v98 = v125 + 32 < 0x100; v121 = v17; v125 += 32; if ( !v98 ) break; v18 = v127; } v99 = v119; v100 = v17 + *(_DWORD *)v119; v101 = v124 + *(_DWORD *)(v119 + 4); v102 = v19 + *(_DWORD *)(v119 + 8); v103 = v122; *(_DWORD *)(v119 + 8) = v102; v104 = v20 + *(_DWORD *)(v99 + 12); v105 = *(_DWORD *)(v99 + 16); *(_DWORD *)(v99 + 12) = v104; v106 = v128; *(_DWORD *)(v99 + 16) = v127 + v105; v107 = v103 + *(_DWORD *)(v99 + 20); v108 = v126; *(_DWORD *)(v99 + 20) = v107; *(_DWORD *)(v99 + 24) += v106; result = v108 + *(_DWORD *)(v99 + 28); *(_DWORD *)v99 = v100; *(_DWORD *)(v99 + 4) = v101; *(_DWORD *)(v99 + 28) = result; return result; } // 74A0: using guessed type char var_134[8]; // 74A0: using guessed type int var_110[57]; //----- (00007AA0) -------------------------------------------------------- unsigned int __fastcall sub_7AA0(int a1, int a2, int a3) { int v3; // esi@1 int v4; // eax@1 int v5; // ecx@1 unsigned __int16 v6; // dx@1 unsigned __int16 v7; // bx@1 int v8; // ecx@1 unsigned int v9; // edx@1 unsigned int v10; // edi@1 int v11; // esi@5 unsigned int result; // eax@5 unsigned int v13; // edx@5 int v14; // [sp+Ch] [bp-Ch]@1 unsigned int v15; // [sp+10h] [bp-8h]@1 int v16; // [sp+14h] [bp-4h]@1 v3 = a3; v4 = *(_DWORD *)(a3 + 12); v5 = *(_DWORD *)(a3 + 24); v6 = *(_WORD *)(v5 + 8) - *(_WORD *)(v3 + 28); v14 = v4; v15 = *(_DWORD *)(v4 + 8); *(_DWORD *)(v5 + 8) = *(_DWORD *)(v3 + 28); v7 = v6; v16 = sub_3CA0(*(_DWORD *)(v3 + 12), v6, **(_DWORD **)(v3 + 12) + *(_DWORD *)(*(_DWORD *)(v3 + 12) + 8)); *(_DWORD *)(*(_DWORD *)(v3 + 16) + 8) = *(_DWORD *)(v3 + 20); v8 = *(_DWORD *)(v3 + 12); v9 = *(_DWORD *)(v8 + 8); v10 = *(_DWORD *)(v8 + 4); if ( v9 <= v10 && v10 - v9 >= 2 ) { *(_WORD *)(v9 + *(_DWORD *)v8) = v7; *(_DWORD *)(v8 + 8) += 2; } else { *(_DWORD *)(v8 + 8) = v10 + 1; } v11 = *(_DWORD *)(v3 + 12); result = *(_DWORD *)(v11 + 8); v13 = *(_DWORD *)(v11 + 4); if ( result <= v13 && v13 - result >= 4 ) { *(_DWORD *)(result + *(_DWORD *)v11) = v16; *(_DWORD *)(v11 + 8) += 4; result = v15; *(_DWORD *)(v14 + 8) = v15; } else { *(_DWORD *)(v11 + 8) = v13 + 1; *(_DWORD *)(v14 + 8) = v15; } return result; } //----- (00007B60) -------------------------------------------------------- int __fastcall sub_7B60(int a1, int a2, int a3, int a4) { int v4; // esi@1 int v5; // eax@1 int v6; // edx@1 int v7; // eax@1 int v8; // edx@1 int v9; // eax@1 int v10; // edx@1 int v11; // eax@1 int v12; // edx@1 char v14; // [sp+8h] [bp-78h]@1 char v15; // [sp+68h] [bp-18h]@1 unsigned int v16; // [sp+7Ch] [bp-4h]@1 int v17; // [sp+80h] [bp+0h]@1 v16 = (unsigned int)&v17 ^ v3EDA03C; v4 = a3; v5 = sub_109F((int)&v15, a2, a3, (int)&v15); sub_1EF0(v5, v6, (int)&v14); LOBYTE(v9) = sub_1346(v7, v8, (int)&v14, v4 + 160, 0x40u); LOBYTE(v11) = sub_1346(v9, v10, (int)&v14, (int)&v15, 0x14u); return sub_109F(v11, v12, (int)&v14, a4); } //----- (00007BC2) -------------------------------------------------------- char __fastcall sub_7BC2(int a1, int a2, int a3) { return sub_583F(a1, a2, a3, a2, 0x10u); } //----- (00007C0D) -------------------------------------------------------- char __fastcall sub_7C0D(int a1, int a2, int a3, int a4, int a5, int a6) { int v6; // edi@1 int v7; // eax@1 int v8; // ebx@1 signed int v9; // esi@1 int v10; // edx@1 int v12; // edx@5 int v13; // eax@6 int v14; // edx@6 int v15; // ebx@8 char v16; // bl@15 int v17; // eax@17 int v18; // edx@17 unsigned __int64 v19; // [sp+Ch] [bp-10h]@5 int v20; // [sp+14h] [bp-8h]@1 int v21; // [sp+18h] [bp-4h]@1 v6 = a6; v7 = *(_DWORD *)a6; v8 = a3; v9 = 16384; v20 = a3; a6 = (*(int (__fastcall **)(int, int, int, signed int))v7)(v7, a2, a6, 16384); if ( !(unsigned __int8)v8249(&v21, v10, v8, a4, &v21) ) { (*(void (__fastcall **)(_DWORD, int, int, int))(*(_DWORD *)v6 + 4))(*(_DWORD *)v6, v10, v6, a6); return 0; } if ( !sub_6ECA((int)&v19, v10, v8, v21, (int)&v19) ) { v13 = (*(int (__fastcall **)(_DWORD, int, int, int))(*(_DWORD *)v6 + 4))(*(_DWORD *)v6, v12, v6, a6); v82D3(v13, v14, v8, v21); return 0; } if ( v19 ) { v15 = a5; while ( 1 ) { if ( v19 <= (unsigned int)v9 ) v9 = v19; if ( !(unsigned __int8)v8280(&a4, v12, v20, v21, a6, v9, &a4) || v9 != a4 ) break; (**(void (__fastcall ***)(void (__fastcall **)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD), int, int, int, signed int))v15)( *(void (__fastcall ***)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD))v15, v12, v15, a6, v9); v19 -= (unsigned int)v9; if ( !v19 ) goto LABEL_15; v9 = 16384; } v16 = 0; } else { LABEL_15: v16 = 1; } v17 = (*(int (__fastcall **)(_DWORD, int, int, int))(*(_DWORD *)v6 + 4))(*(_DWORD *)v6, v12, v6, a6); v82D3(v17, v18, v20, v21); return v16; } //----- (00007E52) -------------------------------------------------------- void __usercall sub_7E52(int a1<eax>, int a2<esi>) { signed int v2; // ecx@1 int v3; // ebx@2 char *v4; // eax@3 int v5; // edi@4 int v6; // edi@5 int v7; // eax@5 int v8; // ebx@5 int v9; // ebx@7 char v10[56]; // [sp+0h] [bp-194h]@3 int *v11; // [sp+28h] [bp-16Ch]@9 char *v12; // [sp+2Ch] [bp-168h]@9 int v13; // [sp+38h] [bp-15Ch]@2 char v14[80]; // [sp+3Ch] [bp-158h]@5 char v15; // [sp+8Ch] [bp-108h]@7 int v16; // [sp+178h] [bp-1Ch]@5 int v17; // [sp+17Ch] [bp-18h]@5 int v18; // [sp+180h] [bp-14h]@5 int v19; // [sp+184h] [bp-10h]@5 int v20; // [sp+188h] [bp-Ch]@5 int v21; // [sp+18Ch] [bp-8h]@5 int v22; // [sp+190h] [bp-4h]@5 v2 = 0; do { BYTE3(v3) = 0; *(_WORD *)((char *)&v3 + 1) = *(_BYTE *)a1; LOBYTE(v3) = *(_BYTE *)(a1 + 1); *(&v13 + v2++) = *(_BYTE *)(a1 + 3) | ((*(_BYTE *)(a1 + 2) | (v3 << 8)) << 8); a1 += 4; } while ( v2 < 16 ); v4 = &v10[4 * v2]; do { ++v2; v5 = __ROL__(*(_DWORD *)v4 ^ *((_DWORD *)v4 - 2) ^ *((_DWORD *)v4 + 6) ^ *((_DWORD *)v4 + 11), 1); *((_DWORD *)v4 + 14) = v5; v4 += 4; } while ( v2 < 80 ); v6 = *(_DWORD *)(a2 + 12); v21 = *(_DWORD *)a2; v19 = *(_DWORD *)(a2 + 4); v22 = *(_DWORD *)(a2 + 8); v7 = *(_DWORD *)(a2 + 16); v18 = v6; v20 = v7; v8 = (int)v14; v16 = 4; v17 = 20; do { sub_5210((int)&v20, (int)&v19, v21, v22, v6, (int)&v20, v8 - 4); sub_5210((int)&v18, (int)&v21, v20, v19, v22, (int)&v18, v8); sub_5210((int)&v22, (int)&v20, v18, v21, v19, (int)&v22, v8 + 4); sub_5210((int)&v19, (int)&v18, v22, v20, v21, (int)&v19, v8 + 8); v6 = v18; sub_5210((int)&v21, (int)&v22, v19, v18, v20, (int)&v21, v8 + 12); v8 += 20; --v16; } while ( v16 ); v9 = (int)&v15; do { sub_51C5((int)&v20, (int)&v19, v21, v22, v6, (int)&v20, v9 - 4); sub_51C5((int)&v18, (int)&v21, v20, v19, v22, (int)&v18, v9); sub_51C5((int)&v22, (int)&v20, v18, v21, v19, (int)&v22, v9 + 4); sub_51C5((int)&v19, (int)&v18, v22, v20, v21, (int)&v19, v9 + 8); v6 = v18; sub_51C5((int)&v21, (int)&v22, v19, v18, v20, (int)&v21, v9 + 12); v17 += 5; v9 += 20; } while ( v17 < 40 ); v12 = &v14[4 * v17 - 4]; v11 = &v20; JUMPOUT(v8000); } // 7E52: using guessed type char var_194[56]; // 7E52: using guessed type char var_158[80]; // ALL OK, 75 function(s) have been successfully decompiled
  12. No decency at all ? He is kind enough to answer your crying "I need a trial key" when he actually get a "trial subscription", and the first thing you do is willing to share to help crack his bot ? BTW, they don't need trial key in order to crack a software that is publicly available for download...
  13. I don't think you even understand what I said.
  14. The updates are not there "to protect it" lol, but to improve it^^ And there been like 8 days between the 2 last updates^^
  15. NP, remember, there is no "account rank" check on our forum, you are free to come by and drop your profiles... or just ask for help. (unless it's a cracked version related issue ofc, like something not working "because" of the crack) => You can check if you have the same issue with leggit trial before posting.