undefined4 TXFRAME(undefined4 *param_1)

{
  bool bVar1;
  char cVar2;
  undefined4 uVar3;
  uint uVar4;
  int iVar5;
  undefined4 *puVar6;
  int iVar7;
  char local_30 [8];
  
  local_30[0] = '\0';
  local_30[1] = '\0';
  local_30[2] = '\0';
  local_30[3] = '\0';
  local_30[4] = '\0';
  local_30[5] = '\0';
  local_30[6] = '\0';
  local_30[7] = '\0';
  if (2 < RTDebugLevel) {
    printk("ATE : ===> %s(Count=%u)\n","TXFRAME",param_1[0x1da90]);
  }
  *(byte *)(param_1 + 0x1da83) = *(byte *)(param_1 + 0x1da83) | 1;
  if (*(char *)((int)param_1 + 0x76a52) == '\0') {
    snprintf(local_30,4,"%u")   //possible issue identified - semgrep
    if (2 < RTDebugLevel) {
      printk("IPGstr=%s\n",local_30);
    }
    Set_ATE_IPG_Proc(param_1,local_30);
  }
  iVar5 = 0;
  do {
    uVar4 = 0;
    if (*(char *)(param_1 + 0x3b) == '\0') {
      uVar4 = *(uint *)(param_1[0x37] + 0x101c);
    }
    if ((uVar4 & 0x20000) == 0) {
      if (*(char *)(param_1 + 0x3b) == '\0') {
        *(undefined4 *)(param_1[0x37] + 0x101c) = 0xa1600;
      }
      *(undefined1 *)((int)param_1 + 0x4adf) = 0;
      if (iVar5 != 100) goto LAB_000a6404;
      break;
    }
    iVar5 = iVar5 + 1;
  } while (iVar5 != 100);
  if (RTDebugLevel != 0) {
    printk("BBP write R%d fail\n",0x16);
  }
LAB_000a6404:
  if (param_1[0x12a5] == 0x28720200) {
    if (((*(char *)(param_1 + 0x12f5) == '\x05') || ((param_1[0x12fd] & 0xf0) == 0x20)) ||
       (*(char *)(param_1 + 0x12f5) == '\v')) {
      BbpSoftReset(param_1);
      cVar2 = *(char *)(param_1 + 0x3b)   //possible issue identified - semgrep
    }
    else {
      cVar2 = *(char *)(param_1 + 0x3b)   //possible issue identified - semgrep
    }
  }
  else {
    cVar2 = *(char *)(param_1 + 0x3b)   //possible issue identified - semgrep
  }
  if (cVar2 == '\0') {
    *(uint *)(param_1[0x37] + 0x1004) = *(uint *)(param_1[0x37] + 0x1004) & 0xffffffef;
  }
  RtmpDmaEnable(param_1,0);
  if (*(char *)(param_1 + 0x3b) == '\0') {
    param_1[0x261] = *(undefined4 *)(param_1[0x37] + 0x1000);
    param_1[0x261] = *(undefined4 *)(param_1[0x37] + 0x23c);
  }
  else {
    param_1[0x261] = 0;
  }
  uVar3 = param_1[0x261];
  param_1[0x262] = uVar3;
  param_1[0x260] = uVar3;
  if (*(char *)(param_1 + 0x3b) == '\0') {
    *(undefined4 *)(param_1[0x37] + 0x238) = uVar3;
  }
  param_1[0x1da91] = 0;
  SetJapanFilter(param_1);
  uVar4 = 0;
  do {
    bVar1 = (uint)param_1[0x1da90] <= uVar4;
    uVar4 = uVar4 + 1;
    if (bVar1) break;
    iVar5 = param_1[0x260];
    iVar7 = param_1[iVar5 * 8 + 99];
    puVar6 = (undefined4 *)param_1[(iVar5 + 0xc) * 8 + 1];
    if (iVar7 != 0) {
      linux_pci_unmap_single
                (*(undefined4 *)*param_1,*puVar6,
                 (*(byte *)((int)puVar6 + 7) & 0x3f) << 8 | (uint)*(byte *)((int)puVar6 + 6),0xff00)
      ;
      RTMPFreeNdisPacket(param_1,iVar7);
    }
    iVar7 = param_1[iVar5 * 8 + 100];
    param_1[iVar5 * 8 + 99] = 0;
    if (iVar7 != 0) {
      linux_pci_unmap_single
                (*(undefined4 *)*param_1,puVar6[2],
                 (*(byte *)((int)puVar6 + 5) & 0x3f) << 8 | (uint)*(byte *)(puVar6 + 1),0xff00);
      RTMPFreeNdisPacket(param_1,iVar7);
    }
    param_1[iVar5 * 8 + 100] = 0;
    iVar5 = ATESetUpFrame(param_1,iVar5);
    if (iVar5 != 0) {
      return 1;
    }
    param_1[0x260] = param_1[0x260] + 1 & 0x3f;
  } while (uVar4 != 0x3f);
  ATESetUpFrame(param_1,param_1[0x260]);
  RtmpDmaEnable(param_1,1);
  if (*(char *)(param_1 + 0x3b) == '\0') {
    *(uint *)(param_1[0x37] + 0x1004) = *(uint *)(param_1[0x37] + 0x1004) | 4;
  }
  if ((*(char *)((int)param_1 + 0x76a53) == '\0') && (*(char *)(param_1 + 0x3b) == '\0')) {
    *(uint *)(param_1[0x37] + 0x1004) = *(uint *)(param_1[0x37] + 0x1004) & 0xfffffff7;
  }
  if (*(char *)((int)param_1 + 0x76a52) == '\x01') {
    *(undefined1 *)(param_1 + 0x1dac0) = 1;
  }
  if (*(char *)(param_1 + 0x3b) == '\0') {
    param_1[0x261] = *(undefined4 *)(param_1[0x37] + 0x1000);
    param_1[0x261] = *(undefined4 *)(param_1[0x37] + 0x23c);
  }
  else {
    param_1[0x261] = 0;
  }
  if (*(char *)(param_1 + 0x3b) == '\0') {
    *(undefined4 *)(param_1[0x37] + 0x238) = param_1[0x260];
  }
  param_1[0x1d9dd] = param_1[0x1d9dd] + 1;
  if (2 < RTDebugLevel) {
    printk("ATE : <=== %s\n","TXFRAME");
  }
  return 0;
}