void FUN_00404ca0(char *param_1,byte *param_2,int param_3,int param_4)

{
  char *pcVar1;
  uint uVar2;
  
  if ((param_4 == 0) || (uVar2 = (uint)param_2[1], uVar2 == 0)) {
    if ((param_2[3] & 7) == 0) {
      pcVar1 = "";
    }
    else {
      pcVar1 = " (updated)";
    }
    sprintf(param_1,"Quality:%d  Signal level:%d  Noise level:%d%s",(uint)*param_2,(uint)param_2[1],
            (uint)param_2[2],pcVar1)   //possible issue identified - semgrep
  }
  else if (*(byte *)(param_3 + 0x2d) < uVar2) {
    if ((param_2[3] & 7) == 0) {
      pcVar1 = "";
    }
    else {
      pcVar1 = " (updated)";
    }
    sprintf(param_1,"Quality:%d/%d  Signal level:%d dBm  Noise level:%d dBm%s",(uint)*param_2,
            (uint)*(byte *)(param_3 + 0x2c),uVar2 - 0x100,param_2[2] - 0x100,pcVar1)   //possible issue identified - semgrep
  }
  else {
    if ((param_2[3] & 7) == 0) {
      pcVar1 = "";
    }
    else {
      pcVar1 = " (updated)";
    }
    sprintf(param_1,"Quality:%d/%d  Signal level:%d/%d  Noise level:%d/%d%s",(uint)*param_2,
            (uint)*(byte *)(param_3 + 0x2c),uVar2,(uint)*(byte *)(param_3 + 0x2d),(uint)param_2[2],
            (uint)*(byte *)(param_3 + 0x2e),pcVar1)   //possible issue identified - semgrep
  }
  return;
}