- // bad sp value at call has been detected, the output may be wrong!
- // positive sp value has been detected, the output may be wrong!
- void __fastcall sub_142109130(__int64 a1)
- {
- int v1; // eax
- unsigned __int64 v2; // rdx
- unsigned __int64 v3; // r8
- __int64 v4; // rcx
- bool v5; // sf
- int v6; // eax
- int v7; // eax
- int v8; // ebp
- unsigned __int64 v9; // rax
- __int64 v10; // rdx
- __int64 v11; // rcx
- __int64 v12; // rcx
- char v13; // cf
- char v14; // zf
- unsigned __int64 v15; // rdx
- int v16; // ecx
- int v17; // esi
- unsigned __int64 v18; // rax
- __int64 v19; // rdx
- __int64 v20; // rcx
- __int64 v21; // [rsp-11200h] [rbp-11250h]
- int v22; // [rsp-111F8h] [rbp-11248h]
- _QWORD v23[2]; // [rsp-111D8h] [rbp-11228h] BYREF
- __int16 v24; // [rsp-111C4h] [rbp-11214h]
- unsigned __int64 v25; // [rsp-111B8h] [rbp-11208h]
- __int64 v26; // [rsp-88B4h] [rbp-8904h]
- __int64 v27; // [rsp-88ACh] [rbp-88FCh]
- unsigned __int64 v28; // [rsp-8894h] [rbp-88E4h]
- int v29; // [rsp-885Ch] [rbp-88ACh]
- v1 = ((__int64 (__fastcall *)(__int64, __int64, _QWORD *))sub_142116B90)(a1, 1i64, v23);
- v3 = v25;
- if ( v1 )
- {
- v6 = (unsigned __int16)v24;
- v4 = 65533i64;
- LOWORD(v6) = v24 & 0xFFF9 | 4;
- v5 = v24 < 0;
- v24 = v6;
- if ( !v5 && v5 )
- {
- v7 = v6 + 1047664835;
- BYTE1(v4) = -60;
- if ( __SETP__(-60, 0) )
- {
- v8 = v22;
- if ( !__SETP__(-60, 0) )
- JUMPOUT(0x1421096CBi64);
- *(_BYTE *)(v21 - 574669393) = __ROL1__(*(_BYTE *)(v21 - 574669393), 139);
- v9 = v2 + (unsigned int)(v7 + 11597555);
- v23[1] = v3;
- if ( v3 < v2 || v3 >= v9 )
- {
- if ( BYTE1(v2) )
- {
- BYTE1(v2) = -BYTE1(v2);
- ((void (__fastcall *)(__int64, unsigned __int64, _QWORD))((char *)&loc_14211C0FF + 5))(v4, v2, 0i64);
- BYTE1(v10) -= 100;
- ((void (__fastcall *)(__int64, __int64))loc_14210A855)(v11, v10);
- v27 = 897967353i64;
- v26 = 897967353i64;
- *(char *)(2i64 * (unsigned int)(v8 - 1372943025) + 0x44894C82) >>= 4;
- v12 = v29;
- v15 = v28 % v29;
- *(_BYTE *)v28 = v28 / v29;
- if ( v13 | v14 )
- {
- if ( !(v13 | v14) )
- {
- BYTE1(v15) = -BYTE1(v15);
- ((void (__fastcall *)(__int64, unsigned __int64))((char *)&loc_14211DE6F + 4))(v12, v15);
- v17 = v26;
- ((void (__fastcall *)(_QWORD))loc_14211F25F)((unsigned int)(v16 + 2068842122));
- v18 = __rdtsc();
- v19 = HIDWORD(v18);
- BYTE1(v19) = BYTE5(v18) + 47;
- ((void (__fastcall *)(__int64, __int64))((char *)&loc_142124DE9 + 1))(v20, v19);
- if ( !v13 )
- {
- __rdtsc();
- *(_QWORD *)((unsigned int)(v17 + 29) + 0x44C748DAi64) -= 558913572i64;
- JUMPOUT(0x142109B44i64);
- }
- JUMPOUT(0x14210A1B1i64);
- }
- JUMPOUT(0x142109AFEi64);
- }
- JUMPOUT(0x142109AF8i64);
- }
- JUMPOUT(0x142109AB3i64);
- }
- JUMPOUT(0x142109776i64);
- }
- JUMPOUT(0x1421172D5i64);
- }
- JUMPOUT(0x1421096C1i64);
- }
- JUMPOUT(0x142109169i64);
- }