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