/* WARNING: Removing unreachable block (ram,0x0008e628) */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

bool RtmpOSNetDevAttach(undefined4 param_1,int param_2,undefined4 *param_3)

{
  char cVar1;
  code *pcVar2;
  uint uVar3;
  int iVar4;
  int iVar5;
  
  iVar5 = *(int *)(param_2 + 0xb4);
  if (2 < RTDebugLevel) {
    printk("RtmpOSNetDevAttach()--->\n");
  }
  cVar1 = '\0';
  if (param_3 != (undefined4 *)0x0) {
    *(undefined4 *)(iVar5 + 8) = *param_3;
    *(undefined4 *)(iVar5 + 0xc) = param_3[1];
    *(undefined4 *)(iVar5 + 0x10) = param_3[2];
    *(undefined4 *)(iVar5 + 0x2c) = param_3[3];
    *(undefined1 **)(param_2 + 0xb8) = RALINK_Ethtool_Ops;
    if (param_3[4] != 0) {
      *(undefined4 *)(iVar5 + 0x40) = param_3[4];
    }
    if (*(int *)(param_2 + 0x1ec) != 0) {
      *(uint *)(*(int *)(param_2 + 0x1ec) + 4) = param_3[8] & 0xffff;
    }
    memmove(*(void **)(param_2 + 0x140),param_3 + 9,6)   //possible issue identified - semgrep
    cVar1 = *(char *)((int)param_3 + 0x3a)   //possible issue identified - semgrep
  }
  *(undefined4 *)(iVar5 + 0x28) = 0;
  if (cVar1 == '\0') {
    pcVar2 = register_netdev;
  }
  else {
    pcVar2 = register_netdevice;
  }
  iVar5 = (*pcVar2)(param_2);
  iVar4 = *(int *)(param_2 + 0x194);
  if (_kill_pid << 0xf < 0) {
    *(uint *)(iVar4 + 8) = *(uint *)(iVar4 + 8) & 0xfffffffe | 1;
  }
  else {
    uVar3 = Status & 1;
    *(uint *)(iVar4 + 8) = *(uint *)(iVar4 + 8) | 1;
    Status = Status & 0xfffffffe;
    if (uVar3 != 0) {
      Status = Status | 1;
    }
  }
  if (2 < RTDebugLevel) {
    printk("<---RtmpOSNetDevAttach(), ret=%d\n",iVar5);
  }
  return iVar5 != 0;
}