undefined4 RtmpDoAte(int param_1,uint *param_2)

{
  bool bVar1;
  uint *puVar2;
  uint uVar3;
  int *piVar4;
  uint *puVar5;
  int iVar6;
  int iVar7;
  uint uVar8;
  undefined4 uVar9;
  int unaff_gp;
  uint *local_20 [2];
  
  os_alloc_mem_suspend(param_1,local_20,0x80c);
  uVar9 = 0xfffffff4;
  if (local_20[0] != (uint *)0x0) {
    memset(local_20[0],0,0x80c)   //possible issue identified - semgrep
    uVar8 = (uint)(ushort)param_2[1];
    if (((uVar8 + *param_2 | *param_2 | uVar8) & *(uint *)(unaff_gp + 0x18)) == 0) {
      __copy_user(local_20[0]);
    }
    puVar2 = local_20[0];
    uVar9 = 0xfffffff2;
    if (uVar8 == 0) {
      uVar8 = *local_20[0];
      if ((((uVar8 >> 0x10) << 0x18 | (uVar8 >> 0x18) << 0x10) >> 0x10) +
          ((uVar8 & 0xff) << 8 | uVar8 >> 8 & 0xff) * 0x10000 == 0x18142880) {
        uVar8 = (*(ushort *)((int)local_20[0] + 6) & 0xff) << 8 |
                (uint)(*(ushort *)((int)local_20[0] + 6) >> 8);
        if (2 < RTDebugLevel) {
          printk("\n%s: Command_Id = 0x%04x !\n","RACfgCMDHandler",uVar8);
        }
        piVar4 = &DAT_000e4360;
        iVar7 = 0;
        do {
          iVar6 = uVar8 - *piVar4;
          if ((-1 < iVar6) && (iVar6 < piVar4[-1])) {
            if (*(code **)((&RACFG_CMD_TABLES)[iVar7 * 3] + iVar6 * 4) != (code *)0x0) {
              uVar9 = (**(code **)((&RACFG_CMD_TABLES)[iVar7 * 3] + iVar6 * 4))
                                (param_1,param_2,puVar2);
              goto LAB_000add24;
            }
            break;
          }
          iVar7 = iVar7 + 1;
          piVar4 = piVar4 + 3;
        } while (iVar7 != 5);
        uVar9 = 0;
LAB_000add24:
        if (*(char *)(param_1 + 0x76a0d) != '\0') {
          puVar5 = &allowedCmds_43098;
          do {
            if (puVar5 == (uint *)"RACfgCMDHandler") {
              bVar1 = false;
              goto LAB_000add68;
            }
            uVar3 = *puVar5;
            puVar5 = puVar5 + 1;
          } while (uVar8 != uVar3);
          bVar1 = true;
LAB_000add68:
          if (((uVar8 != 9) ||
              ((uVar8 = ((ushort)puVar2[3] & 0xff) << 8 | (uint)(ushort)((ushort)puVar2[3] >> 8),
               uVar8 != 0x1b && (8 < uVar8 - 0xae)))) && (!bVar1)) {
            ResponseToGUI(puVar2,param_2,2,0);
            uVar9 = 1;
          }
        }
      }
      else {
        uVar9 = 1;
        if (RTDebugLevel != 0) {
          printk("Unknown magic number of RACFG command = %x\n");
          uVar9 = 1;
        }
      }
    }
    os_free_mem(0,local_20[0]);
  }
  return uVar9;
}