void RTMPIoctlGetMacTableStaInfo(int param_1,uint *param_2)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  undefined1 uVar5;
  code *pcVar6;
  uint uVar7;
  char *pcVar8;
  uint uVar9;
  int *piVar10;
  int iVar11;
  int iVar12;
  int iVar13;
  int iVar14;
  int unaff_gp;
  int *local_30 [2];
  
  local_30[0] = (int *)0x0;
  os_alloc_mem(0,local_30,0x704);
  if (local_30[0] == (int *)0x0) {
    if (RTDebugLevel == 0) {
      return;
    }
    pcVar8 = "%s: Allocate memory fail!!!\n";
    pcVar6 = printk;
    piVar10 = (int *)"RTMPIoctlGetMacTableStaInfo";
    goto LAB_0003a214;
  }
  memset(local_30[0],0,0x704)   //possible issue identified - semgrep
  pcVar8 = (char *)(param_1 + 0x5d3c9);
  iVar14 = 0;
  do {
    piVar10 = local_30[0];
    if ((*(int *)(pcVar8 + -0x491) == 1) && (*(int *)(pcVar8 + -0x21d) == 2)) {
      iVar11 = *local_30[0];
      *(char *)(local_30[0] + iVar11 * 0xe + 1) = pcVar8[-0x460];
      memcpy((void *)((int)local_30[0] + iVar11 * 0x38 + 5),
             (void *)(param_1 + iVar14 * 0xa20 + 0x5d190),6)   //possible issue identified - semgrep
      iVar12 = iVar11 * 7 + 1;
      *(char *)((int)piVar10 + iVar11 * 0x38 + 0xb) = (char)*(undefined2 *)(pcVar8 + -0x213);
      *(char *)(piVar10 + iVar12 * 2 + 1) = pcVar8[-0x221];
      *(char *)((int)piVar10 + iVar12 * 8 + 5) = pcVar8[-0x38];
      iVar13 = param_1 + iVar14 * 0xa20;
      *(char *)((int)piVar10 + iVar12 * 8 + 6) = *pcVar8;
      *(char *)((int)piVar10 + iVar12 * 8 + 7) = pcVar8[1];
      *(char *)(piVar10 + iVar12 * 2 + 2) = pcVar8[2];
      uVar7 = piVar10[iVar11 * 0xe + 6];
      piVar10[iVar11 * 0xe + 5] = *(int *)(pcVar8 + -0x1f5);
      uVar9 = *(uint *)(iVar13 + 0x5d350) & 0x7f;
      piVar10[iVar11 * 0xe + 6] = uVar7 & 0xffffff80 | uVar9;
      uVar1 = ((uint)(*(int *)(iVar13 + 0x5d350) << 0x18) >> 0x1f) << 7;
      piVar10[iVar11 * 0xe + 6] = uVar7 & 0xffffff00 | uVar9 | uVar1;
      uVar2 = ((uint)(*(int *)(iVar13 + 0x5d350) << 0x17) >> 0x1f) << 8;
      piVar10[iVar11 * 0xe + 6] = uVar7 & 0xfffffe00 | uVar9 | uVar1 | uVar2;
      uVar3 = ((uint)(*(int *)(iVar13 + 0x5d350) << 0x15) >> 0x1e) << 9;
      piVar10[iVar11 * 0xe + 6] = uVar7 & 0xfffff800 | uVar9 | uVar1 | uVar2 | uVar3;
      uVar4 = ((uint)(*(int *)(iVar13 + 0x5d350) << 0x13) >> 0x1f) << 0xb;
      piVar10[iVar11 * 0xe + 6] = uVar7 & 0xffffc000 | uVar9 | uVar1 | uVar2 | uVar3 | uVar4;
      piVar10[iVar11 * 0xe + 6] =
           uVar7 & 0xffff0000 | uVar9 | uVar1 | uVar2 | uVar3 | uVar4 |
           ((uint)(*(int *)(iVar13 + 0x5d350) << 0x10) >> 0x1e) << 0xe;
      *(undefined2 *)(piVar10 + iVar11 * 0xe + 6) = *(undefined2 *)(pcVar8 + -0x79);
      piVar10[iVar11 * 0xe + 7] = *(int *)(pcVar8 + 0x1b);
      uVar5 = RTMPMaxRssi(param_1,(int)*pcVar8,(int)pcVar8[1],(int)pcVar8[2]);
      *(undefined1 *)(piVar10 + iVar11 * 0xe + 0xe) = uVar5;
      *(char *)((int)piVar10 + iVar11 * 0x38 + 0x39) = pcVar8[-0x460];
      *local_30[0] = *local_30[0] + 1;
    }
    iVar14 = iVar14 + 1;
    pcVar8 = pcVar8 + 0xa20;
  } while (iVar14 != 0x20);
  uVar9 = *param_2;
  *(undefined2 *)(param_2 + 1) = 0x704;
  if (((uVar9 + 0x704 | uVar9) & *(uint *)(unaff_gp + 0x18)) == 0) {
    iVar14 = 0x704;
    __copy_user(uVar9,local_30[0]);
    if (iVar14 != 0) goto LAB_0003a1d0;
  }
  else {
LAB_0003a1d0:
    if (2 < RTDebugLevel) {
      printk("%s: copy_to_user() fail\n","RTMPIoctlGetMacTableStaInfo");
    }
  }
  if (local_30[0] == (int *)0x0) {
    return;
  }
  pcVar8 = (char *)0x0;
  pcVar6 = os_free_mem;
  piVar10 = local_30[0];
LAB_0003a214:
  (*pcVar6)(pcVar8,piVar10);
  return;
}