void FUN_00405c58(undefined4 *param_1,undefined **param_2,int param_3)
{
undefined4 *puVar1;
undefined4 uVar2;
undefined **ppuVar3;
undefined2 local_20 [6];
puVar1 = param_1;
ppuVar3 = param_2;
if (param_3 == 0) {
puVar1 = (undefined4 *)FUN_0047082c(4);
ppuVar3 = &PTR_PTR_FUN_004af1e0;
*puVar1 = 0x1005;
FUN_00472734(puVar1,&PTR_PTR_FUN_004af1e0,0);
}
local_20[0] = CONCAT11(*(undefined1 *)puVar1,*(undefined1 *)((int)puVar1 + 1));
FUN_00405914(ppuVar3,2,local_20);
local_20[0] = CONCAT11(*(undefined1 *)((int)param_1 + 2),*(undefined1 *)((int)param_1 + 3));
FUN_00405914(param_2,2,local_20);
uVar2 = FUN_00405914(param_2,*(undefined2 *)((int)param_1 + 2),param_3);
param_1[1] = uVar2;
return;
}