/* 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;
}