- // 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_142109BA0(__int64 a1)
- {
- __int64 v1; // rsi
- char v2; // dl
- int v3; // ecx
- unsigned __int64 v4; // rax
- int v5; // eax
- __int64 v6; // rcx
- __int64 v7; // rbx
- bool v8; // cf
- bool v9; // of
- int v10; // eax
- __int64 v11; // rdx
- __int64 v12; // rax
- unsigned __int64 v13; // rdx
- __int16 v14; // cx
- unsigned __int64 v15; // r8
- unsigned __int64 v16; // rax
- __int16 v17; // cx
- char v18; // dl
- char v19; // al
- bool v20; // cl
- char v21; // cl
- char v22; // dl
- char v23; // dl
- char v24; // al
- char v25; // cl
- __int64 v26; // [rsp-11248h] [rbp-11298h]
- _QWORD v27[8773]; // [rsp-11210h] [rbp-11260h] BYREF
- if ( (unsigned int)((__int64 (__fastcall *)(__int64, __int64, _QWORD *))sub_142116B90)(a1, 1i64, v27) )
- {
- if ( !v2 )
- {
- v4 = __rdtsc();
- ((void (__fastcall *)(_QWORD, _QWORD, _QWORD))loc_142117341)((unsigned int)(v3 + 1027895471), HIDWORD(v4), v27[4]);
- v5 = ((__int64 (*)(void))((char *)&sub_142127BE0 + 2))();
- v7 = (unsigned int)(-117 * *(_DWORD *)(v1 + 1218337789));
- v8 = __CFADD__((unsigned __int64)(-117i64 * *(int *)(v1 + 1218337789)) >> 32 != 0, v5);
- v9 = __OFADD__((unsigned __int64)(-117i64 * *(int *)(v1 + 1218337789)) >> 32 != 0, v5);
- v10 = ((unsigned __int64)(-117i64 * *(int *)(v1 + 1218337789)) >> 32 != 0) + v5;
- v8 |= __CFADD__(v10, 11594992);
- v9 |= __OFADD__(11594992, v10);
- v10 += 11594992;
- if ( !v8 && v8 )
- {
- if ( !((v10 < 0) ^ v9 | (v10 == 0)) )
- {
- if ( v10 < 0 != v9 )
- {
- if ( (v10 < 0) ^ v9 | (v10 == 0) )
- {
- v11 = v26;
- if ( !(_BYTE)v10 )
- {
- BYTE1(v11) = -84;
- ((void (__fastcall *)(__int64, __int64))((char *)&loc_142112CCA + 5))(v6, v11);
- v12 = ((__int64 (*)(void))((char *)&loc_14211D9ED + 2))();
- if ( v8 )
- {
- HIBYTE(v14) += 112;
- LOBYTE(v13) = v13 - 62;
- *(_DWORD *)(v7 + 93024313) ^= 0xB0ECA3u;
- v16 = v13 + v12;
- if ( v15 >= v13 && v15 < v16 )
- {
- if ( (__int64)v15 >= (__int64)v16 || ((v16 & 0x8000) != 0) != v9 )
- JUMPOUT(0x14210A1C6i64);
- v17 = v14 + 5533;
- if ( HIBYTE(v17) == 114 )
- JUMPOUT(0x142115FC4i64);
- _enable();
- if ( (_BYTE)v17 == 0xE8 )
- goto LABEL_48;
- if ( *(_BYTE *)(v15 - 7) != 0xFF || (v18 = *(_BYTE *)(v15 - 6), (((v18 & 0x38) - 16) & 0xF7) != 0) )
- {
- v18 = *(_BYTE *)(v15 - 6);
- v19 = 0;
- }
- else
- {
- v19 = 1;
- }
- v20 = v18 == -1 && (((v17 & 0x38) - 16) & 0xF7) == 0;
- v21 = v19 | v20;
- if ( *(_BYTE *)(v15 - 4) != 0xFF || (v22 = *(_BYTE *)(v15 - 3), (((v22 & 0x38) - 16) & 0xF7) != 0) )
- v22 = *(_BYTE *)(v15 - 3);
- else
- v21 = 1;
- if ( v22 != -1 || (v23 = *(_BYTE *)(v15 - 2), (((v23 & 0x38) - 16) & 0xF7) != 0) )
- {
- v23 = *(_BYTE *)(v15 - 2);
- v24 = 0;
- }
- else
- {
- v24 = 1;
- }
- if ( (v25 = v24 | v21, v23 == -1) && (((*(_BYTE *)(v15 - 1) & 0x38) - 16) & 0xF7) == 0 || v25 )
- LABEL_48:
- JUMPOUT(0x14210A2D0i64);
- }
- JUMPOUT(0x14210A4D9i64);
- }
- JUMPOUT(0x142117882i64);
- }
- JUMPOUT(0x142128988i64);
- }
- JUMPOUT(0x14210A0FBi64);
- }
- JUMPOUT(0x14210A176i64);
- }
- JUMPOUT(0x142114945i64);
- }
- JUMPOUT(0x14210A167i64);
- }
- JUMPOUT(0x14210A111i64);
- }
- JUMPOUT(0x142109C01i64);
- }