int FUN_004771ac(int param_1)
{
char cVar1;
int iVar2;
int *piVar3;
undefined4 uVar4;
code *pcVar5;
int local_30 [2];
uVar4 = *(undefined4 *)(param_1 + 0x2c);
local_30[0] = 0;
if (**(char **)(param_1 + 0xc) == 'I') {
*(char **)(param_1 + 0xc) = *(char **)(param_1 + 0xc) + 1;
local_30[0] = 0;
piVar3 = local_30;
do {
cVar1 = **(char **)(param_1 + 0xc) //possible issue identified - semgrep
if (cVar1 == 'L') {
pcVar5 = FUN_00476c3c;
LAB_0047729c:
iVar2 = (*pcVar5)(param_1);
}
else {
pcVar5 = FUN_004754f4;
if (cVar1 != 'X') goto LAB_0047729c;
*(char **)(param_1 + 0xc) = *(char **)(param_1 + 0xc) + 1;
iVar2 = FUN_00476e1c(param_1);
if (**(char **)(param_1 + 0xc) != 'E') {
return 0;
}
*(char **)(param_1 + 0xc) = *(char **)(param_1 + 0xc) + 1;
}
if (iVar2 == 0) {
return 0;
}
iVar2 = FUN_00473000(param_1,0x28,iVar2,0);
*piVar3 = iVar2;
piVar3 = (int *)(iVar2 + 8);
if (iVar2 == 0) {
return 0;
}
} while (**(char **)(param_1 + 0xc) != 'E');
*(undefined4 *)(param_1 + 0x2c) = uVar4;
*(char **)(param_1 + 0xc) = *(char **)(param_1 + 0xc) + 1;
}
return local_30[0];
}