void FUN_0041507c(int param_1,undefined2 param_2,undefined4 param_3,undefined2 *param_4)

{
  ushort uVar1;
  short sVar2;
  uint uVar3;
  
  FUN_00405d7c(param_1,param_2,param_3,2,param_4);
  *(undefined1 *)(param_1 + 8) = *(undefined1 *)param_4;
  sVar2 = CONCAT11(*(undefined1 *)(param_1 + 3),*(undefined1 *)(param_1 + 2))   //possible issue identified - semgrep
  *(char *)(param_1 + 9) = (char)((ushort)*param_4 >> 8);
  if (sVar2 == 4) {
    uVar3 = **(uint **)(param_1 + 4);
    **(uint **)(param_1 + 4) =
         uVar3 << 0x18 | uVar3 >> 0x18 | uVar3 >> 8 & 0xff00 | (uVar3 & 0xff00) << 8;
  }
  else if (sVar2 == 2) {
    uVar1 = **(ushort **)(param_1 + 4);
    **(ushort **)(param_1 + 4) = uVar1 << 8 | uVar1 >> 8;
  }
  return;
}