void FUN_00405ba8(undefined1 *param_1,uint param_2,uint param_3,undefined4 param_4)

{
  undefined4 uVar1;
  ushort local_18 [4];
  
  param_2 = param_2 & 0xffff;
  param_1[6] = (char)param_2;
  param_1[7] = (char)(param_2 >> 8);
  param_1[1] = (char)((param_3 & 0xffff) >> 8);
  *param_1 = (char)(param_3 & 0xffff);
  local_18[0] = (ushort)(byte)param_1[6] << 8 | (ushort)(param_2 >> 8);
  FUN_00405914(param_4,2,local_18);
  local_18[0] = CONCAT11(*param_1,param_1[1]);
  uVar1 = FUN_00405914(param_4,2,local_18);
  *(undefined4 *)(param_1 + 2) = uVar1;
  return;
}