/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
undefined4 main(int param_1,char **param_2)
{
char cVar1;
byte bVar2;
int iVar3;
FILE *__stream;
byte *pbVar4;
int iVar5;
char *pcVar6;
size_t sVar7;
byte bVar8;
undefined4 uVar9;
char *__s;
uint uVar10;
char *__s_00;
char acStack_148 [16];
undefined2 local_138;
undefined2 local_136;
undefined4 local_134;
char local_128 [256];
while (iVar3 = getopt(param_1,param_2,"hvi:c:"), 0 < iVar3) { //possible issue identified - semgrep
if (iVar3 == 0x68) {
uVar9 = 0;
LAB_00401544:
FUN_004013a8(uVar9);
}
else if (iVar3 < 0x69) {
uVar9 = 0xffffffff;
if (iVar3 != 99) goto LAB_00401544;
DAT_00416af4 = _optarg;
}
else if (iVar3 == 0x69) {
DAT_00416af8 = _optarg;
}
else {
uVar9 = 0xffffffff;
if (iVar3 != 0x76) goto LAB_00401544;
DAT_00416afc = DAT_00416afc + 1;
}
}
if (DAT_00416af8 == (char *)0x0) {
fputs("No interface specify!!\n",_stderr);
FUN_0040135c(1);
}
if (DAT_00416af4 == (char *)0x0) {
fputs("No config file !!\n",_stderr);
FUN_0040135c(2);
}
FUN_00401300("interface: %s\n",DAT_00416af8);
FUN_00401300("config : %s\n",DAT_00416af4);
pcVar6 = DAT_00416af4;
__stream = fopen(DAT_00416af4,"r") //possible issue identified - semgrep
if (__stream == (FILE *)0x0) {
FUN_00401300("Can\'t open config file [%s] to read!\n",pcVar6);
}
else {
LAB_00401aac:
pcVar6 = fgets(local_128,0x100,__stream) //possible issue identified - semgrep
if (pcVar6 != (char *)0x0) {
sVar7 = strlen(local_128);
pcVar6 = local_128 + sVar7;
while( true ) {
sVar7 = sVar7 - 1 //possible issue identified - semgrep
__s_00 = local_128;
if (((int)sVar7 < 0) || //possible issue identified - semgrep
((((cVar1 = pcVar6[-1], cVar1 != ' ' && (cVar1 != '\t')) && (cVar1 != '\n')) && //possible issue identified - semgrep
(cVar1 != '\r')))) break;
pcVar6[-1] = '\0';
pcVar6 = pcVar6 + -1;
}
for (; cVar1 = *__s_00, cVar1 != '\0'; __s_00 = __s_00 + 1) {
if (((cVar1 != ' ') && (cVar1 != '\t')) && ((cVar1 != '\n' && (cVar1 != '\r')))) {
if (cVar1 != '#') {
pcVar6 = strchr(__s_00,0x3d);
__s = pcVar6 + 1;
if (pcVar6 != (char *)0x0) {
*pcVar6 = '\0';
FUN_00401300("get %s = %s\n",__s_00,__s);
iVar3 = strcmp(__s_00,"ipaddr");
if (iVar3 == 0) {
_g_ip = inet_addr(__s);
if (DAT_00416afc != 0) {
uVar10 = 0;
while( true ) {
pbVar4 = &g_ip + uVar10;
uVar10 = uVar10 + 1;
printf("%02x ",(uint)*pbVar4);
if (uVar10 == 4) break;
if ((uVar10 & 0xf) == 0) {
putchar(10);
}
}
putchar(10);
}
}
else {
iVar3 = strcmp(__s_00,"netmask");
if (iVar3 == 0) {
g_mask.s_addr = inet_addr(__s);
}
else {
iVar3 = strcmp(__s_00,"macaddr");
pbVar4 = &g_mac;
if (iVar3 == 0) goto LAB_00401944;
iVar3 = strcmp(__s_00,"vendor");
if (iVar3 == 0) {
g_vendor = strdup(__s) //possible issue identified - semgrep
}
else {
iVar3 = strcmp(__s_00,"model");
if (iVar3 == 0) {
g_model = strdup(__s) //possible issue identified - semgrep
}
else {
iVar3 = strcmp(__s_00,"description");
if (iVar3 == 0) {
g_description = strdup(__s) //possible issue identified - semgrep
}
else {
iVar3 = strcmp(__s_00,"version");
if (iVar3 == 0) {
g_version = strdup(__s) //possible issue identified - semgrep
}
else {
iVar3 = strcmp(__s_00,"secret");
if (iVar3 == 0) {
DAT_00416af0 = strdup(__s) //possible issue identified - semgrep
}
}
}
}
}
}
}
}
}
break;
}
}
goto LAB_00401aac;
}
fclose(__stream);
}
pcVar6 = DAT_00416af8;
memset(acStack_148,0,0x20) //possible issue identified - semgrep
iVar3 = socket(2,3,0xff);
if (iVar3 < 0) {
LAB_00401c08:
FUN_00401300(&DAT_00406638,pcVar6);
pcVar6 = inet_ntoa(_g_ip);
FUN_00401300("ip:%s, ",pcVar6);
pcVar6 = inet_ntoa(g_mask);
FUN_00401300("mask:%s, ",pcVar6);
FUN_00401300("mac %02x:%02x:%02x:%02x:%02x:%02x\n",g_mac,DAT_00416ad9,DAT_00416ada,DAT_00416adb,
DAT_00416adc,DAT_00416add);
}
else {
local_138 = 2;
strcpy(acStack_148,pcVar6) //possible issue identified - semgrep
iVar5 = ioctl(iVar3,0x8915,acStack_148);
if (iVar5 == 0) {
_g_ip = local_134;
iVar5 = ioctl(iVar3,0x891b,acStack_148);
if (iVar5 == 0) {
g_mask.s_addr = local_134;
iVar5 = ioctl(iVar3,0x8927,acStack_148);
if (iVar5 == 0) {
_g_mac = local_136;
_DAT_00416adc = local_134._2_2_;
_DAT_00416ada = (undefined2)local_134;
close(iVar3);
goto LAB_00401c08;
}
}
}
close(iVar3);
}
NEAP_Initialize();
iVar3 = NEAP_OpenNEAPService();
pcVar6 = DAT_00416af0;
if (DAT_00416af0 != (char *)0x0) {
sVar7 = strlen(DAT_00416af0);
NEAP_SetSecurity(iVar3,1,pcVar6,sVar7);
}
if (iVar3 != 0) {
NEAP_BindAdapter(iVar3,DAT_00416af8);
NEAP_ListenAdapter(iVar3,0,FUN_00401e58,0);
NEAP_CloseNEAPService(iVar3);
}
NEAP_Deinitialize();
if (g_vendor != (char *)0x0) {
free(g_vendor);
}
if (g_description != (char *)0x0) {
free(g_description);
}
if (g_model != (char *)0x0) {
free(g_model);
}
if (g_version != (char *)0x0) {
free(g_version);
}
FUN_0040135c(0);
return 0;
while( true ) {
if ((cVar1 == ':') || (pcVar6 = __s, cVar1 == '.')) {
pcVar6 = __s + 1;
}
cVar1 = *pcVar6;
bVar2 = cVar1 - 0x30;
__s = pcVar6 + 1;
if (((9 < bVar2) && (bVar2 = cVar1 + 0xa9, 5 < (byte)(cVar1 + 0x9fU))) &&
(bVar2 = 0, (byte)(cVar1 + 0xbfU) < 6)) {
bVar2 = cVar1 - 0x37;
}
*pbVar4 = bVar2;
if (*__s != '\0') {
*pbVar4 = bVar2 * '\x10';
cVar1 = *__s;
bVar8 = cVar1 - 0x30;
if (((9 < bVar8) && (bVar8 = cVar1 + 0xa9, 5 < (byte)(cVar1 + 0x9fU))) &&
(bVar8 = 0, (byte)(cVar1 + 0xbfU) < 6)) {
bVar8 = cVar1 - 0x37;
}
*pbVar4 = bVar8 + bVar2 * '\x10';
__s = pcVar6 + 2;
}
pbVar4 = pbVar4 + 1;
if (pbVar4 == (byte *)0x416ade) break;
LAB_00401944:
cVar1 = *__s;
if (cVar1 == '\0') break;
}
goto LAB_00401aac;
}