Newer
Older
AMI-Aptio-BIOS-Reversed / MdeModulePkg / Core / DxeIplPeim / DxeIplLzmaDecodeLiteral.c
@Ajax Dong Ajax Dong 2 days ago 1 KB Full restructure
/* DxeIplLzmaDecodeLiteral @ 0xffc17e29 size=0x7e */
char __fastcall DxeIplLzmaDecodeLiteral(_DWORD *a1, unsigned int n0x112_1)
{
  unsigned int n0x112; // edi
  unsigned int v4; // edx
  int v5; // ebp
  unsigned int n0x112_2; // esi
  unsigned int v7; // ebx
  int v9; // [esp+8h] [ebp-4h]

  n0x112 = a1[18]; /*0xffc17e2c*/
  if ( n0x112 && n0x112 < 0x112 )
  {
    v4 = a1[9]; /*0xffc17e3d*/
    n0x112_1 -= v4; /*0xffc17e40*/
    v5 = a1[5]; /*0xffc17e47*/
    n0x112_2 = a1[18]; /*0xffc17e4b*/
    v9 = a1[10]; /*0xffc17e4d*/
    v7 = a1[14]; /*0xffc17e51*/
    if ( n0x112_1 < n0x112 ) /*0xffc17e5a*/
      n0x112_2 = n0x112_1; /*0xffc17e5c*/
    if ( !a1[12] ) /*0xffc17e5e*/
    {
      n0x112_1 = a1[3] - a1[11]; /*0xffc17e69*/
      if ( n0x112_1 <= n0x112_2 ) /*0xffc17e6e*/
        a1[12] = a1[3]; /*0xffc17e70*/
    }
    a1[11] += n0x112_2; /*0xffc17e77*/
    for ( a1[18] = n0x112 - n0x112_2; n0x112_2; --n0x112_2 )
    {
      LOBYTE(n0x112_1) = *(_BYTE *)(v4 + (v4 < v7 ? v9 : 0) - v7 + v5);
      *(_BYTE *)(v4 + v5) = n0x112_1; /*0xffc17e94*/
      ++v4; /*0xffc17e97*/
    }
    a1[9] = v4; /*0xffc17e9f*/
  }
  return n0x112_1; /*0xffc17ea3*/
}