Newer
Older
AMI-Aptio-BIOS-Reversed / MdeModulePkg / Core / DxeIplPeim / DxeIplLzmaDecodeMatch.c
@Ajax Dong Ajax Dong 2 days ago 1 KB Full restructure
/* DxeIplLzmaDecodeMatch @ 0xffc17ea7 size=0x79 */
int __fastcall DxeIplLzmaDecodeMatch(int *a1, unsigned int n0x112, unsigned int a3)
{
  unsigned int n0x112_1; // edx
  int v6; // ebx
  unsigned int v7; // ecx
  int result; // eax
  unsigned int v9; // eax

  while ( 1 ) /*0xffc17eb7*/
  {
    n0x112_1 = n0x112; /*0xffc17eb7*/
    if ( !a1[12] ) /*0xffc17eb3*/
    {
      v6 = a1[9]; /*0xffc17ec0*/
      v7 = a1[3] - a1[11]; /*0xffc17ec5*/
      if ( n0x112 - v6 > v7 ) /*0xffc17eca*/
        n0x112_1 = v6 + v7; /*0xffc17ecc*/
    }
    result = DxeIplLzmaDecodeRange(a1, n0x112_1, a3); /*0xffc17ed2*/
    if ( result ) /*0xffc17ed9*/
      break; /*0xffc17ed9*/
    if ( !a1[12] ) /*0xffc17edb*/
    {
      v9 = a1[3]; /*0xffc17ee0*/
      if ( a1[11] >= v9 ) /*0xffc17ee6*/
        a1[12] = v9; /*0xffc17ee8*/
    }
    DxeIplLzmaDecodeLiteral(a1, n0x112); /*0xffc17eef*/
    if ( a1[9] >= n0x112 || a1[6] >= a3 || (unsigned int)a1[18] >= 0x112 ) /*0xffc17f05*/
    {
      if ( (unsigned int)a1[18] > 0x112 ) /*0xffc17f0e*/
        a1[18] = 274; /*0xffc17f10*/
      return 0; /*0xffc17f17*/
    }
  }
  return result; /*0xffc17f19*/
}