Newer
Older
AMI-Aptio-BIOS-Reversed / MdeModulePkg / Core / DxeIplPeim / DxeIplLzmaDecodeProp.c
@Ajax Dong Ajax Dong 2 days ago 1021 bytes Full restructure
/* DxeIplLzmaDecodeProp @ 0xffc16daf size=0xb4 */
unsigned int __fastcall DxeIplLzmaDecodeProp(unsigned __int8 *a1, unsigned __int8 *a2, unsigned __int8 **buf, int n2)
{
  int v4; // edi
  int v5; // ebx
  unsigned __int8 *v7; // ebp

  v4 = *a1 + ((a1[1] + ((a1[2] + (a1[3] << 8)) << 8)) << 8); /*0xffc16ddb*/
  v5 = a1[4] + ((a1[5] + ((a1[6] + (a1[7] << 8)) << 8)) << 8); /*0xffc16df3*/
  if ( !v5 ) /*0xffc16df5*/
    return 0; /*0xffc16df7*/
  v7 = a1 + 8; /*0xffc16dff*/
  DxeIplSetMem64(buf, 0x3438u, 0); /*0xffc16e0a*/
  if ( n2 == 1 ) /*0xffc16e19*/
  {
    *((_BYTE *)buf + 13364) = 4; /*0xffc16e29*/
  }
  else if ( n2 == 2 ) /*0xffc16e1e*/
  {
    *((_BYTE *)buf + 13364) = 5; /*0xffc16e20*/
  }
  *buf = v7; /*0xffc16e39*/
  buf[1] = a2; /*0xffc16e3b*/
  buf[8] = (unsigned __int8 *)v4; /*0xffc16e3e*/
  buf[9] = (unsigned __int8 *)v5; /*0xffc16e41*/
  DxeIplDecompressLzma((int)buf, 0x20u); /*0xffc16e44*/
  DxeIplLzmaBitDecode((int)buf); /*0xffc16e4b*/
  return *((_WORD *)buf + 20) != 0 ? 0x80000002 : 0;
}