void FUN_00400bd8(undefined1 *param_1,undefined2 *param_2,byte *param_3,undefined4 param_4)
{
byte bVar1;
bool bVar2;
undefined2 uVar3;
size_t sVar4;
undefined1 *puVar5;
byte *pbVar6;
int iVar7;
memset(param_1,0,0x3e) //possible issue identified - semgrep
sVar4 = strlen((char *)param_3);
pbVar6 = param_3 + sVar4;
while (bVar2 = (int)sVar4 < 0x10, sVar4 = sVar4 + 1, bVar2) { //possible issue identified - semgrep
*pbVar6 = 0x20;
pbVar6 = pbVar6 + 1;
}
param_3[0xf] = 0;
uVar3 = *param_2;
param_1[1] = (char)((ushort)uVar3 >> 8);
param_1[2] = 0x84;
param_1[7] = 1;
*param_1 = (char)uVar3;
param_1[0xc] = 0x20;
param_1[3] = 0;
param_1[4] = 0;
param_1[5] = 0;
param_1[6] = 0;
param_1[8] = 0;
param_1[9] = 0;
param_1[10] = 0;
param_1[0xb] = 0;
iVar7 = 0;
puVar5 = param_1;
do {
iVar7 = iVar7 + 1;
puVar5[0xd] = *param_3 >> 4;
bVar1 = *param_3;
param_3 = param_3 + 1;
puVar5[0xe] = bVar1 & 0xf;
puVar5 = puVar5 + 2;
} while (iVar7 != 0x10);
iVar7 = 1;
puVar5 = param_1;
do {
iVar7 = iVar7 + 1;
puVar5[0xd] = puVar5[0xd] + 'A';
puVar5 = puVar5 + 1;
} while (iVar7 != 0x21);
param_1[0x2f] = 0x20;
param_1[0x31] = 1;
param_1[0x2d] = 0;
param_1[0x2e] = 0;
param_1[0x30] = 0;
*(undefined4 *)(param_1 + 0x32) = 0x100e0000;
param_1[0x37] = 6;
param_1[0x3a] = (char)param_4;
param_1[0x38] = 0x40;
param_1[0x3d] = (char)((uint)param_4 >> 0x18);
param_1[0x3c] = (char)((uint)param_4 >> 0x10);
param_1[0x3b] = (char)((uint)param_4 >> 8);
param_1[0x36] = 0;
param_1[0x39] = 0;
return;
}