XmIdivOp
_WORD *__fastcall XmIdivOp(INT64 a1){
__int64 v2;
int v3;
int v4;
__int64 v5;
unsigned int v6;
__int64 v7;
__int64 v8;
INT64 v9;
_DWORD *v11;
int v12;
__int64 v13;
v2 = *(int *)(a1 + 108);
if( !(_DWORD)v2 )
longjmp((_JBTYPE *)(a1 + 160), 2i64);
v3 = *(_DWORD *)(a1 + 120);
if( v3 )
{
v11 = (_DWORD *)(a1 + 32);
if( v3 == 1 )
{
v12 = (*(unsigned __int16 *)(a1 + 24) | (*(unsigned __int16 *)v11 << 16)) / *(__int16 *)(a1 + 108);
if( ((v12 ^ (v12 << 16 >> 15)) & 0xFFFF0000) == 0 )
{
LODWORD(v5) = (unsigned __int16)v12;
goto LABEL_6;
}
}
else
{
HIDWORD(v13) = *v11;
LODWORD(v13) = *(_DWORD *)(a1 + 24);
v5 = v13 / v2;
if( HIDWORD(v5) == (int)v5 >> 31 )
goto LABEL_6;
}
LABEL_11:
longjmp((_JBTYPE *)(a1 + 160), 3i64);
}
v4 = *(__int16 *)(a1 + 24) / *(char *)(a1 + 108);
if( ((v4 ^ (v4 << 24 >> 23)) & 0xFFFFFF00) != 0 )
goto LABEL_11;
LODWORD(v5) = (unsigned __int8)v4;
LABEL_6:
XmStoreResult(a1, (unsigned int)v5);
*(_QWORD *)(v7 + 88) = v8;
return XmStoreResult(v9, v6);
}Referenced by:
No references.