Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- signed int __thiscall sub_69ABB0(_DWORD *this, unsigned __int64 a2, unsigned int a3)
- {
- _DWORD *v3; // esi
- int v4; // ecx
- int v5; // eax
- int v6; // ecx
- char v7; // al
- unsigned int v8; // edi
- unsigned int v9; // ebx
- _BYTE *v10; // edi
- bool v11; // zf
- int v12; // eax
- int v13; // ecx
- unsigned __int64 v15; // [esp+10h] [ebp-14h]
- v3 = this;
- v4 = this[1];
- if ( !v4 || 8 * (*(_DWORD *)(v4 + 12) - *(_DWORD *)(v4 + 16)) == v3[2] )
- {
- if ( !v3[4] )
- return -2147467259;
- v5 = sub_69C850(v3[3]);
- if ( !v5 )
- return -2147467259;
- v6 = v3[4];
- sub_69C350(v5);
- v3[1] = *(_DWORD *)(v3[4] + 4);
- }
- v7 = a2;
- v8 = a3;
- v15 = a2;
- if ( !a3 )
- return 0;
- while ( 1 )
- {
- v9 = 8 - v3[2];
- if ( v9 > v8 )
- v9 = v8;
- if ( v3[2] )
- {
- v10 = *(_BYTE **)(v3[1] + 16);
- *v10 |= sub_B900E0(v3[2], 0);
- v8 = a3;
- }
- else
- {
- **(_BYTE **)(v3[1] + 16) = ((1 << v9) - 1) & v7;
- }
- v8 -= v9;
- v11 = (((_BYTE)v9 + (unsigned __int8)v3[2]) & 7) == 0;
- a3 = v8;
- v15 >>= *(_OWORD *)&_mm_cvtsi32_si128(v9);
- v3[2] = ((_BYTE)v9 + (unsigned __int8)v3[2]) & 7;
- if ( !v11 )
- goto LABEL_17;
- if ( ++*(_DWORD *)(v3[1] + 16) != *(_DWORD *)(v3[1] + 12) )
- goto LABEL_17;
- if ( !v3[4] )
- break;
- v12 = sub_69C850(v3[3]);
- if ( !v12 )
- return -2147467259;
- v13 = v3[4];
- sub_69C350(v12);
- v3[1] = *(_DWORD *)(v3[4] + 4);
- LABEL_17:
- if ( !v8 )
- return 0;
- v7 = v15;
- }
- if ( !v8 )
- return 0;
- return -2147467259;
- }
Advertisement
Add Comment
Please, Sign In to add comment