void FUN_00418ffc(undefined4 *param_1,undefined4 *param_2)
{
undefined1 *puVar1;
undefined4 uVar2;
undefined4 *puVar3;
undefined4 uVar4;
undefined4 uVar5;
size_t __n;
int iVar6;
undefined4 *puVar7;
puVar7 = param_1 + 6;
iVar6 = -(param_1[4] & 0x3f);
__n = iVar6 + 0x37 //possible issue identified - semgrep
puVar1 = (undefined1 *)((int)puVar7 + (param_1[4] & 0x3f));
*puVar1 = 0x80;
puVar3 = (undefined4 *)(puVar1 + 1);
if ((int)__n < 0) { //possible issue identified - semgrep
memset(puVar3,0,iVar6 + 0x3f) //possible issue identified - semgrep
iVar6 = 0x10;
puVar3 = puVar7;
do {
iVar6 = iVar6 + -1;
*puVar3 = *puVar3;
puVar3 = puVar3 + 1;
} while (iVar6 != 0);
FUN_00418160(param_1,puVar7);
__n = 0x38 //possible issue identified - semgrep
puVar3 = puVar7;
}
memset(puVar3,0,__n);
iVar6 = 0xe;
puVar3 = puVar7;
do {
iVar6 = iVar6 + -1;
*puVar3 = *puVar3;
puVar3 = puVar3 + 1;
} while (iVar6 != 0);
param_1[0x15] = (uint)param_1[4] >> 0x1d | param_1[5] << 3;
param_1[0x14] = param_1[4] << 3;
FUN_00418160(param_1,puVar7);
iVar6 = 4;
puVar3 = param_1;
do {
iVar6 = iVar6 + -1;
*puVar3 = *puVar3;
puVar3 = puVar3 + 1;
} while (iVar6 != 0);
uVar4 = param_1[2];
uVar5 = param_1[3];
uVar2 = param_1[1];
*param_2 = *param_1;
param_2[1] = uVar2;
param_2[2] = uVar4;
param_2[3] = uVar5;
/* WARNING: Could not recover jumptable at 0x0041916c. Too many branches */
/* WARNING: Treating indirect jump as call */
memset(param_1,0,0x58) //possible issue identified - semgrep
return;
}