void FUN_00418e08(int param_1,void *param_2,uint param_3)
{
undefined4 uVar1;
undefined4 uVar2;
uint uVar3;
undefined4 uVar4;
undefined4 uVar5;
undefined4 *puVar6;
undefined4 *puVar7;
int iVar8;
undefined4 *puVar9;
int iVar10;
undefined4 *puVar11;
uVar3 = *(uint *)(param_1 + 0x10);
*(uint *)(param_1 + 0x10) = param_3 + uVar3;
if (param_3 + uVar3 < uVar3) {
*(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 1;
}
uVar3 = 0x40 - (uVar3 & 0x3f);
puVar11 = (undefined4 *)(param_1 + 0x18);
if (param_3 < uVar3) {
puVar11 = (undefined4 *)(param_1 + (0x58 - uVar3));
}
else {
memcpy((void *)((int)puVar11 + (0x40 - uVar3)),param_2,uVar3) //possible issue identified - semgrep
iVar8 = 0x10;
puVar7 = puVar11;
do {
iVar8 = iVar8 + -1;
*puVar7 = *puVar7;
puVar7 = puVar7 + 1;
} while (iVar8 != 0);
param_3 = param_3 - uVar3;
FUN_00418160(param_1,puVar11);
param_2 = (void *)((int)param_2 + uVar3);
if (0x3f < param_3) {
iVar10 = 0;
iVar8 = 0;
do {
puVar6 = (undefined4 *)((int)param_2 + iVar8);
puVar9 = puVar6 + 0x10;
puVar7 = puVar11;
do {
uVar1 = *puVar6;
uVar2 = puVar6[1];
uVar4 = puVar6[2];
uVar5 = puVar6[3];
puVar6 = puVar6 + 4;
*puVar7 = uVar1;
puVar7[1] = uVar2;
puVar7[2] = uVar4;
puVar7[3] = uVar5;
puVar7 = puVar7 + 4;
} while (puVar6 != puVar9);
iVar8 = 0x10;
puVar7 = puVar11;
do {
iVar8 = iVar8 + -1;
*puVar7 = *puVar7;
puVar7 = puVar7 + 1;
} while (iVar8 != 0);
iVar10 = iVar10 + -0x40;
FUN_00418160(param_1,puVar11);
iVar8 = -iVar10;
} while (0x3f < iVar10 + param_3);
param_2 = (void *)((int)param_2 + ((param_3 - 0x40 >> 6) + 1) * 0x40);
param_3 = param_3 - 0x40 & 0x3f;
}
}
(*(code *)(undefined *)0x0)(puVar11,param_2,param_3);
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
FUN_004024d0();
return;
}