int __thiscall sub_FFD80563(int this)
{
int v2; // ebx
unsigned int v3; // esi
v2 = sub_FFD8CBBA(0, 31, 1); /*0xffd80574*/
if ( (*(_DWORD *)(this + 2727) & 2) != 0 ) /*0xffd8057f*/
sub_FFD8CCD3( /*0xffd805aa*/
v2 + 112,
(*(_DWORD *)(this + 2727) >> 21) & 7
| (unsigned __int16)(8 * ((32 * *(unsigned __int8 *)(this + 2728)) | HIWORD(*(_DWORD *)(this + 2727)) & 0x1F)));
v3 = *(_DWORD *)(this + 2731); /*0xffd805af*/
if ( !v3 ) /*0xffd805b7*/
v3 = -19922944; /*0xffd805b9*/
*(_BYTE *)(v2 + 96) = *(_BYTE *)(v2 + 96) & 0xFC | (v3 >> 12) & 3 | 0x80; /*0xffd805d0*/
if ( (*(_BYTE *)(this + 2727) & 1) != 0 ) /*0xffd805dd*/
*(_DWORD *)(v3 + 16) |= 1u; /*0xffd805e5*/
sub_FFD8CF04(v3, 0); /*0xffd805ed*/
return sub_FFD8D005(v3, 0); /*0xffd805ff*/
}