Newer
Older
AMI-Aptio-BIOS-Reversed / LnvDriverPei / DivU64x32Remainder.c
@Ajax Dong Ajax Dong 2 days ago 950 bytes Init
_BYTE *__fastcall DivU64x32Remainder(_BYTE *_r_n, unsigned int n16, int a3, unsigned int a4)
{
  _BYTE *_r_n_1; // esi
  int v6; // eax
  int v7; // eax
  int v8; // edx
  unsigned __int64 v9; // rtt
  unsigned int v11; // [esp-4h] [ebp-1Ch]
  int v12; // [esp+Ch] [ebp-Ch] BYREF
  int *v13; // [esp+10h] [ebp-8h]
  unsigned int n16_1; // [esp+14h] [ebp-4h]

  _r_n_1 = _r_n;
  v13 = &v12;
  n16_1 = n16;
  *_r_n = 0;
  do
  {
    if ( !n16 )
    {
      v6 = GetDebugService();
      if ( v6 )
        (*(void (__cdecl **)(const char *, int, const char *))(v6 + 4))(
          "e:\\hs\\MdePkg\\Library\\BaseLib\\DivU64x32Remainder.c",
          47,
          "Divisor != 0");
    }
    v11 = a4 / n16_1;
    LODWORD(v9) = a3;
    HIDWORD(v9) = a4 % n16_1;
    v7 = v9 / n16_1;
    v8 = v9 % n16_1;
    if ( v13 )
      *v13 = v8;
    ++_r_n_1;
    a3 = v7;
    a4 = v11;
    *_r_n_1 = byte_FFE3E094[v12];
  }
  while ( v11 | v7 );
  return _r_n_1;
}