XmDivOp
_WORD *__fastcall XmDivOp(INT64 a1, INT64 a2, VOID *a3){
unsigned __int64 v3;
int v4;
unsigned __int16 *v5;
unsigned int v6;
unsigned __int64 v7;
unsigned __int64 v8;
INT64 v9;
__int64 v10;
unsigned __int64 v12;
v3 = *(unsigned int *)(a1 + 108);
if( !(_DWORD)v3 )
longjmp((_JBTYPE *)(a1 + 160), 2i64);
v4 = *(_DWORD *)(a1 + 120);
if( v4 )
{
v5 = (unsigned __int16 *)(a1 + 32);
if( v4 == 1 )
{
LODWORD(v7) = (*(unsigned __int16 *)(a1 + 24) | (unsigned __int64)(*v5 << 16)) / (unsigned int)v3;
v6 = (unsigned int)(*(unsigned __int16 *)(a1 + 24) | (*v5 << 16)) >> 16;
LODWORD(v8) = (*(unsigned __int16 *)(a1 + 24) | (unsigned __int64)(*v5 << 16)) % (unsigned int)v3;
}
else
{
v6 = *(_DWORD *)v5;
LODWORD(v12) = *(_DWORD *)(a1 + 24);
HIDWORD(v12) = *(_DWORD *)v5;
v7 = v12 / v3;
v8 = v12 % v3;
}
}
else
{
LODWORD(v7) = *(unsigned __int16 *)(a1 + 24) / (unsigned int)v3;
v6 = HIBYTE(*(unsigned __int16 *)(a1 + 24));
LODWORD(v8) = *(unsigned __int16 *)(a1 + 24) % (unsigned int)v3;
}
if( v6 >= (unsigned int)v3 )
longjmp((_JBTYPE *)(a1 + 160), 3i64);
XmStoreResult(a1, (unsigned int)v7);
*(_QWORD *)(v9 + 88) = v10;
return XmStoreResult(v9, (unsigned int)v8);
}Referenced by:
No references.