undefined4 DO_RACFG_CMD_ATE_STOP(int param_1,undefined4 param_2,int param_3)

{
  byte bVar1;
  undefined1 uVar2;
  int iVar3;
  
  if (2 < RTDebugLevel) {
    printk("RACFG_CMD_ATE_STOP\n");
  }
  *(undefined1 *)(param_1 + 0x76a51) = 0;
  if (RTDebugLevel < 3) {
    bVar1 = *(byte *)(param_3 + 9);
  }
  else {
    printk("pAd->ate.bQAEnabled = %s\n","FALSE");
    bVar1 = *(byte *)(param_3 + 9);
  }
  uVar2 = *(undefined1 *)(param_3 + 8);
  *(undefined1 *)(param_3 + 9) = uVar2;
  *(byte *)(param_3 + 8) = bVar1;
  if (((CONCAT11(bVar1,uVar2) & 0xff) << 8 | (uint)bVar1) == 4) {
    memcpy((void *)(param_1 + 0x76ac0),(void *)(param_3 + 0xc),4)   //possible issue identified - semgrep
    ResponseToGUI(param_3,param_2,2,0);
    iVar3 = kill_pid(*(undefined4 *)(param_1 + 0x76ac0),0xf,1);
    if ((iVar3 != 0) && (RTDebugLevel != 0)) {
      printk("%s: unable to kill ate thread\n",*(undefined4 *)(param_1 + 4));
    }
  }
  if ((*(char *)(param_1 + 0x76a0c) != -0x80) && (Set_ATE_Proc(param_1,"ATESTOP"), 2 < RTDebugLevel)
     ) {
    printk("RACFG_CMD_AP_START is done !\n");
  }
  return 0;
}