uint FUN_0041ced4(undefined4 param_1,int param_2,int param_3,int param_4,undefined4 *param_5)
{
ushort uVar1;
int iVar2;
undefined4 uVar3;
int iVar4;
uint local_20 [2];
uVar1 = *(ushort *)(param_3 + 2);
if (param_2 != 2) {
local_20[0] = (uint)*(ushort *)(param_3 + 2);
if (0x40 < local_20[0]) {
return 0xffffffff;
}
FUN_00483c90(param_4,*(undefined4 *)(param_3 + 8),local_20[0]);
*(undefined1 *)(param_4 + local_20[0]) = 0;
local_20[0] = FUN_00483e50(param_4);
if (local_20[0] == 0x40) {
iVar4 = FUN_0041ce28(param_4,local_20);
if (iVar4 == 0) {
return 0xffffffff;
}
*param_5 = 2;
return local_20[0];
}
if (0x3f < local_20[0]) {
return local_20[0];
}
*param_5 = 1;
return local_20[0];
}
if (uVar1 == 0xd) {
LAB_0041cf80:
FUN_00483c90(param_4,*(undefined4 *)(param_3 + 8));
*(undefined1 *)(param_4 + (uint)*(ushort *)(param_3 + 2)) = 0;
uVar1 = *(ushort *)(param_3 + 2);
uVar3 = 1;
}
else {
if (uVar1 < 0xe) {
if (uVar1 == 5) goto LAB_0041cf80;
if (uVar1 != 10) {
if (uVar1 == 0) {
return 0;
}
return 0xffffffff;
}
}
else if ((uVar1 != 0x1a) && (uVar1 != 0x20)) {
if (uVar1 != 0x10) {
return 0xffffffff;
}
goto LAB_0041cf80;
}
iVar4 = *(int *)(param_3 + 8);
local_20[0] = 0;
while( true ) {
if (*(ushort *)(param_3 + 2) <= local_20[0]) break;
FUN_00480800(param_4 + local_20[0] * 2,&DAT_0048bd6c,*(undefined1 *)(iVar4 + local_20[0]));
local_20[0] = local_20[0] + 1;
}
iVar2 = FUN_0041ce28(param_4,local_20);
if (iVar2 == 0) {
return 0xffffffff;
}
FUN_00483c90(param_4,iVar4,*(undefined2 *)(param_3 + 2));
*(undefined1 *)(param_4 + (uint)*(ushort *)(param_3 + 2)) = 0;
uVar1 = *(ushort *)(param_3 + 2);
uVar3 = 2;
}
*param_5 = uVar3;
return (uint)uVar1;
}