/* 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;
}