undefined4 * FUN_00476e1c(int param_1)
{
char cVar1;
int *piVar2;
undefined4 *puVar3;
int *piVar4;
int *piVar5;
undefined4 uVar6;
undefined4 uVar7;
int iVar8;
char *pcVar9;
undefined4 uVar10;
code *UNRECOVERED_JUMPTABLE;
pcVar9 = *(char **)(param_1 + 0xc);
cVar1 = *pcVar9;
if (cVar1 == 'L') {
UNRECOVERED_JUMPTABLE = FUN_00476c3c;
LAB_00476e84:
/* WARNING: Could not recover jumptable at 0x00476e9c. Too many branches */
/* WARNING: Treating indirect jump as call */
puVar3 = (undefined4 *)(*UNRECOVERED_JUMPTABLE)();
return puVar3;
}
if (cVar1 == 'T') {
UNRECOVERED_JUMPTABLE = FUN_00473368;
goto LAB_00476e84;
}
if ((cVar1 == 's') && (pcVar9[1] == 'r')) {
*(char **)(param_1 + 0xc) = pcVar9 + 2;
piVar4 = (int *)FUN_004754f4();
piVar5 = (int *)FUN_00475f2c(param_1);
if (**(char **)(param_1 + 0xc) == 'I') {
uVar10 = FUN_004771ac(param_1);
piVar5 = (int *)FUN_00473000(param_1,4,piVar5,uVar10);
}
uVar10 = 1;
}
else {
piVar4 = (int *)FUN_00475d0c(param_1);
if (piVar4 == (int *)0x0) {
return (undefined4 *)0x0;
}
iVar8 = *piVar4;
if (iVar8 == 0x29) {
uVar10 = *(undefined4 *)piVar4[1];
*(int *)(param_1 + 0x30) = *(int *)(param_1 + 0x30) + ((undefined4 *)piVar4[1])[2] + -2;
iVar8 = FUN_00483d20(uVar10,"st");
if (iVar8 != 0) {
LAB_00477010:
iVar8 = *(int *)(piVar4[1] + 0xc);
goto LAB_0047702c;
}
UNRECOVERED_JUMPTABLE = FUN_004754f4;
LAB_00477050:
piVar5 = (int *)(*UNRECOVERED_JUMPTABLE)(param_1);
uVar10 = 0x2c;
}
else {
if (iVar8 == 0x2a) {
iVar8 = piVar4[1];
}
else {
if (iVar8 != 0x2b) {
if (iVar8 != 0x29) {
return (undefined4 *)0x0;
}
goto LAB_00477010;
}
iVar8 = 1;
}
LAB_0047702c:
if (iVar8 == 2) {
uVar10 = FUN_00476e1c(param_1);
uVar6 = FUN_00476e1c(param_1);
piVar5 = (int *)FUN_00473000(param_1,0x2e,uVar10,uVar6);
uVar10 = 0x2d;
}
else {
if (iVar8 != 3) {
if (iVar8 != 1) {
return (undefined4 *)0x0;
}
UNRECOVERED_JUMPTABLE = FUN_00476e1c;
goto LAB_00477050;
}
uVar10 = FUN_00476e1c(param_1);
uVar6 = FUN_00476e1c(param_1);
uVar7 = FUN_00476e1c(param_1);
uVar6 = FUN_00473000(param_1,0x31,uVar6,uVar7);
piVar5 = (int *)FUN_00473000(param_1,0x30,uVar10,uVar6);
uVar10 = 0x2f;
}
}
}
switch(uVar10) {
case 1:
case 2:
case 3:
case 4:
case 10:
case 0x1c:
case 0x26:
case 0x2c:
case 0x2d:
case 0x2e:
case 0x2f:
case 0x30:
case 0x31:
case 0x32:
case 0x33:
case 0x35:
if (piVar4 == (int *)0x0) {
return (undefined4 *)0x0;
}
case 0x25:
piVar2 = piVar5;
break;
default:
return (undefined4 *)0x0;
case 8:
case 9:
case 0xb:
case 0xc:
case 0xd:
case 0xe:
case 0xf:
case 0x10:
case 0x11:
case 0x12:
case 0x13:
case 0x14:
case 0x1d:
case 0x1e:
case 0x1f:
case 0x20:
case 0x21:
case 0x23:
case 0x27:
case 0x28:
case 0x2b:
case 0x34:
piVar2 = piVar4;
break;
case 0x16:
case 0x17:
case 0x18:
case 0x19:
case 0x1a:
case 0x1b:
case 0x24:
goto switchD_0047303c_caseD_16;
}
puVar3 = (undefined4 *)0x0;
if (piVar2 != (int *)0x0) {
switchD_0047303c_caseD_16:
iVar8 = *(int *)(param_1 + 0x14);
puVar3 = (undefined4 *)0x0;
if (iVar8 < *(int *)(param_1 + 0x18)) {
puVar3 = (undefined4 *)(*(int *)(param_1 + 0x10) + iVar8 * 0xc);
*(int *)(param_1 + 0x14) = iVar8 + 1;
if (puVar3 != (undefined4 *)0x0) {
*puVar3 = uVar10;
puVar3[1] = piVar4;
puVar3[2] = piVar5;
return puVar3;
}
}
}
return puVar3;
}