/* DxeIplDecodeSetup @ 0xffc1872b size=0x57 */
int __fastcall DxeIplDecodeSetup(int *a1, char *a2)
{
unsigned int n4096; // esi
unsigned __int8 n0xE1; // al
int v5; // edx
n4096 = (unsigned __int8)a2[1] | (((unsigned __int8)a2[2] | (*(unsigned __int16 *)(a2 + 3) << 8)) << 8); /*0xffc18749*/
if ( n4096 < 0x1000 ) /*0xffc18752*/
n4096 = 4096; /*0xffc18754*/
n0xE1 = *a2; /*0xffc18756*/
a1[3] = n4096; /*0xffc18758*/
if ( n0xE1 >= 0xE1u ) /*0xffc1875d*/
return 4; /*0xffc18761*/
*a1 = n0xE1 % 9; /*0xffc18772*/
v5 = n0xE1 / 9 % 5; /*0xffc18776*/
a1[2] = n0xE1 / 9 / 5; /*0xffc18779*/
a1[1] = v5; /*0xffc1877e*/
return 0; /*0xffc18762*/
}