void RT28XXDMAEnable(int param_1)

{
  char cVar1;
  uint uVar2;
  int iVar3;
  
  if (*(char *)(param_1 + 0xec) == '\0') {
    *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x1004) = 4;
  }
  iVar3 = 0;
  cVar1 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
  while (iVar3 = iVar3 + 1, cVar1 == '\0') {
    uVar2 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x208);
    if ((uVar2 & 10) == 0) goto LAB_0005459c;
    if (2 < RTDebugLevel) {
      printk("==>  DMABusy\n");
    }
    RTMPusecDelay(1000);
    if (iVar3 == 200) goto LAB_0005459c;
    cVar1 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
  }
  uVar2 = 0;
LAB_0005459c:
  RTMPusecDelay(0x32);
  uVar2 = uVar2 & 0xffffff8a | 0x65;
  if (2 < RTDebugLevel) {
    printk("<== WRITE DMA offset 0x208 = 0x%x\n",uVar2);
  }
  if (*(char *)(param_1 + 0xec) == '\0') {
    *(uint *)(*(int *)(param_1 + 0xdc) + 0x208) = uVar2;
  }
  return;
}