Newer
Older
AMI-Aptio-BIOS-Reversed / MdeModulePkg / Core / DxeIplPeim / DxeIplLzmaDecodeSymbol.c
@Ajax Dong Ajax Dong 2 days ago 996 bytes Full restructure
/* DxeIplLzmaDecodeSymbol @ 0xffc18962 size=0x6a */
int __cdecl DxeIplLzmaDecodeSymbol(char *DxeIpl)
{
  _BYTE *v1; // ecx
  _BYTE *v2; // esi
  unsigned int n7; // ebx
  char v5; // al
  char *v6; // edi

  v2 = v1; /*0xffc18963*/
  if ( !v1 ) /*0xffc18967*/
    return -2147483646; /*0xffc18969*/
  if ( !DxeIpl ) /*0xffc18977*/
    return -2147483646; /*0xffc18979*/
  n7 = DxeIplLzmaNormalize(DxeIpl); /*0xffc18988*/
  if ( n7 > 7 ) /*0xffc1898d*/
    n7 = 7; /*0xffc18991*/
  if ( DxeIplLzmaGetNumBits((unsigned int)DxeIpl, n7 + 1) ) /*0xffc18999*/
    return -2147483633; /*0xffc189a5*/
  v5 = *DxeIpl; /*0xffc189ac*/
  if ( *DxeIpl ) /*0xffc189ac*/
  {
    v6 = (char *)(DxeIpl - v2); /*0xffc189b2*/
    do /*0xffc189c1*/
    {
      if ( !n7 ) /*0xffc189b6*/
        break; /*0xffc189b6*/
      *v2++ = v5; /*0xffc189b8*/
      --n7; /*0xffc189bb*/
      v5 = v2[(_DWORD)v6]; /*0xffc189bc*/
    }
    while ( v5 ); /*0xffc189c1*/
  }
  *v2 = 0; /*0xffc189c3*/
  return 0; /*0xffc1896e*/
}