Newer
Older
AMI-Aptio-BIOS-Reversed / MdeModulePkg / Core / DxeIplPeim / DxeIplGetNextFfsFile.c
@Ajax Dong Ajax Dong 2 days ago 1 KB Full restructure
/* DxeIplGetNextFfsFile @ 0xffc158a3 size=0x110 */
int __thiscall DxeIplGetNextFfsFile(void *this)
{
  int i_1; // esi
  int v2; // edi
  int v3; // eax
  int v4; // eax
  int i; // ecx
  int v6; // ecx
  int v7; // eax
  _BYTE v9[2]; // [esp+10h] [ebp-18h] BYREF
  int v10; // [esp+12h] [ebp-16h]
  int v11; // [esp+18h] [ebp-10h] BYREF
  _BYTE *v12; // [esp+1Ch] [ebp-Ch] BYREF
  _BYTE v13[6]; // [esp+20h] [ebp-8h] BYREF

  i_1 = 0; /*0xffc158b8*/
  v2 = sub_FFC16226(this, &v12); /*0xffc158bf*/
  if ( v2 >= 0 ) /*0xffc158ca*/
  {
    *(_DWORD *)v13 = v9; /*0xffc158e3*/
    __sidt(v9); /*0xffc158e9*/
    v2 = (*(int (__cdecl **)(_DWORD, _BYTE *))v12)(*(_DWORD *)(v10 - 4), v12); /*0xffc158fa*/
  }
  else
  {
    sub_FFC16F4A(-2147483646, 50532358); /*0xffc158d6*/
  }
  if ( v2 >= 0 /*0xffc1591d*/
    && (v3 = sub_FFC16008(), (v4 = sub_FFC16056(&unk_FFC18CB8, v3)) != 0)
    && !*(_BYTE *)(v4 + 32)
    && *(_QWORD *)(v4 + 24) )
  {
    sub_FFC16085(); /*0xffc15925*/
    for ( i = 0; sub_FFC16254(i, &v11) >= 0; i = i_1 ) /*0xffc1592a*/
      ++i_1; /*0xffc1592e*/
  }
  else
  {
    v12 = v9; /*0xffc15942*/
    __sidt(v9); /*0xffc15948*/
    v6 = *(_DWORD *)(v10 - 4); /*0xffc1594e*/
    v12 = v13; /*0xffc15954*/
    __sidt(v13); /*0xffc1595a*/
    (*(void (__cdecl **)(int, int, int, _DWORD, _DWORD, _DWORD))(**(_DWORD **)(*(_DWORD *)&v13[2] - 4) + 88))( /*0xffc1596f*/
      v6,
      -2147483646,
      50532359,
      0,
      0,
      0);
    v7 = sub_FFC16386(); /*0xffc15972*/
    if ( (*(unsigned __int8 (__cdecl **)(int))(v7 + 24))(9) ) /*0xffc15979*/
    {
      v12 = v9; /*0xffc15986*/
      __sidt(v9); /*0xffc1598c*/
      (*(void (__cdecl **)(int, _DWORD, _DWORD, _DWORD))(**(_DWORD **)(v10 - 4) + 128))(2, 0, 0, 0); /*0xffc1599c*/
      sub_FFC15FB3(); /*0xffc159a5*/
    }
  }
  return i_1; /*0xffc159aa*/
}