x86BiosTranslateAddress
INT64 *__stdcall x86BiosTranslateAddress(UINT16 a1, UINT16 a2){
unsigned int v2;
__int64 v4;
unsigned int v5;
char *v6;
v2 = (a2 + 16 * a1) & 0xFFFFF;
if( v2 > 0x8FFFF && v2 - 655360 > 0x1FFFF )
return(INT64 *)(qword_140C4A4D8 + v2);
if( v2 >= 0xA0000 )
{
v4 = qword_140C4A4B8;
v6 = (char *)v2;
if( !qword_140C4A4B8 )
v4 = qword_140C4A4D8;
return(INT64 *)&v6[v4];
}
v4 = (unsigned __int16)(a2 + 16 * a1);
v5 = HIWORD(v2);
if( v5 )
{
if( v5 != 1 && v5 <= 3 && (unsigned int)v4 < dword_140C50718 )
return(INT64 *)(qword_140C50720 + v4);
}
else if( (unsigned int)v4 <= 0x800 )
{
v6 = (char *)&unk_140C4A4E0;
return(INT64 *)&v6[v4];
}
dword_140C4A4C0[0] = 0;
return(INT64 *)dword_140C4A4C0;
}Referenced by:
HalInitializeBios
XmEmulateInterrupt
XmEvaluateAddressSpecifier
XmGetCodeByte
XmGetLongImmediate
XmGetOffsetAddress
XmGetStringAddress
XmGetStringAddressRange
XmGetWordImmediate
XmInitializeEmulator
XmIntOp
XmPopStack
XmPushStack
x86BiosReadMemory
x86BiosWriteMemory