Newer
Older
AMI-Aptio-BIOS-Reversed / EarlyVideoPei / MicroSecondDelay.c
@Ajax Dong Ajax Dong 2 days ago 706 bytes Init
int __fastcall MicroSecondDelay(int a1)
{
  unsigned __int32 v1; // eax
  unsigned __int32 i_1; // esi
  unsigned int v3; // eax
  unsigned int v4; // ecx
  unsigned int i_2; // edi
  unsigned __int32 v6; // eax
  unsigned __int32 i_3; // eax
  unsigned __int32 i; // eax
  unsigned __int32 v9; // eax

  v1 = __indword(0x508u);
  i_1 = v1 & 0xFFFFFF;
  v3 = 358 * a1 / 0x64u;
  v4 = (v3 + i_1 + 1) >> 24;
  i_2 = (v3 + i_1 + 1) & 0xFFFFFF;
  while ( v4 )
  {
    v6 = __indword(0x508u);
    i_3 = v6 & 0xFFFFFF;
    if ( i_3 <= i_1 )
      --v4;
    i_1 = i_3;
  }
  for ( i = i_1; i_2 > i; i = v9 & 0xFFFFFF )
  {
    if ( i_1 > i )
      break;
    i_1 = i;
    v9 = __indword(0x508u);
  }
  return 0;
}