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