void FUN_00405ee8(int *param_1)
{
uint uVar1;
int *piVar2;
int *piVar3;
int iVar4;
if (param_1 == (int *)0x0) {
while (piVar3 = DAT_0041cf20, (int **)DAT_0041cf20 != &DAT_0041cf20) {
iVar4 = *DAT_0041cf20;
piVar2 = (int *)DAT_0041cf20[1];
uVar1 = DAT_0041cf20[2];
*piVar2 = iVar4;
*piVar3 = 0;
*(int **)(iVar4 + 4) = piVar2;
*piVar3 = (int)DAT_0041cf00;
DAT_0041cf00[1] = (int)piVar3;
piVar3[2] = uVar1 & 0xfffffeff;
DAT_0041cf00 = piVar3;
piVar3[1] = (int)&DAT_0041cf00;
}
return;
}
iVar4 = *param_1;
piVar3 = (int *)param_1[1];
uVar1 = param_1[2];
*piVar3 = iVar4;
*param_1 = 0;
*(int **)(iVar4 + 4) = piVar3;
*param_1 = (int)DAT_0041cf00;
DAT_0041cf00[1] = (int)param_1;
DAT_0041cf00 = param_1;
param_1[2] = uVar1 & 0xfffffeff;
param_1[1] = (int)&DAT_0041cf00;
return;
}