XmGetStringAddress
INT64 *__fastcall XmGetStringAddress(INT64 a1, UINT64 a2, UINT64 a3){
__int64 v4;
int v5;
unsigned int v6;
unsigned int v7;
v4 = (unsigned int)a2;
v5 = *(_DWORD *)(a1 + 120) + 1;
if( (*(_DWORD *)(a1 + 16) & 0x400) != 0 )
v5 = -v5;
if( *(_BYTE *)(a1 + 137) )
{
v6 = *(_DWORD *)(a1 + 4i64 * (unsigned int)a3 + 24);
*(_DWORD *)(a1 + 4i64 * (unsigned int)a3 + 24) = v6 + v5;
}
else
{
v6 = *(unsigned __int16 *)(a1 + 4i64 * (unsigned int)a3 + 24);
*(_WORD *)(a1 + 4i64 * (unsigned int)a3 + 24) = v5 + v6;
}
v7 = *(unsigned __int16 *)(a1 + 2 * v4 + 68);
if( v6 > v7 || v6 + *(_DWORD *)(a1 + 120) > v7 )
longjmp((_JBTYPE *)(a1 + 160), 14i64);
return x86BiosTranslateAddress(*(_WORD *)(a1 + 2 * v4 + 56), v6);
}Referenced by:
XmCmpsOp
XmInsOp
XmLodsOp
XmMovsOp
XmOutsOp
XmScasOp
XmStosOp