/* WARNING: Removing unreachable block (ram,0x004098a0) */
/* WARNING: Removing unreachable block (ram,0x00409930) */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
undefined4 ipv6ip_main(int param_1,char **param_2)
{
char *pcVar1;
int iVar2;
byte *pbVar3;
byte *pbVar4;
char *pcVar5;
uint uVar6;
byte *pbVar7;
char *pcVar8;
uint uVar9;
uint uVar10;
code *pcVar11;
int iVar12;
byte local_a8 [16];
byte local_98 [16];
byte local_88 [16];
byte local_78 [16];
byte local_68 [16];
char acStack_58 [48];
if (param_1 == 7) {
uVar10 = 0;
do {
while( true ) {
iVar2 = getopt(7,param_2,"n:l:h:") //possible issue identified - semgrep
if (iVar2 < 1) {
uVar9 = 0;
iVar2 = 0;
uVar6 = uVar10;
do {
if ((int)uVar6 < 8) {
if ((uVar6 & 7) == 0) {
if ((int)uVar6 < 1) {
uVar9 = 0;
uVar6 = 0;
}
}
else {
iVar12 = (int)uVar6 % 8;
uVar6 = uVar6 - iVar12;
uVar9 = -(1 << (8U - iVar12 & 0x1f)) & 0xff;
}
}
else {
uVar6 = uVar6 - 8;
uVar9 = 0xff;
}
pbVar3 = local_a8 + iVar2;
pbVar4 = local_88 + iVar2;
iVar2 = iVar2 + 1;
*pbVar4 = (byte)uVar9 & *pbVar3;
} while (iVar2 != 0x10);
iVar2 = 0;
do {
if ((int)uVar10 < 8) {
if ((uVar10 & 7) == 0) {
if ((int)uVar10 < 1) {
uVar9 = 0xff;
uVar10 = 0;
}
}
else {
iVar12 = (int)uVar10 % 8;
uVar10 = uVar10 - iVar12;
uVar9 = (1 << (8U - iVar12 & 0x1f)) - 1U & 0xff;
}
}
else {
uVar10 = uVar10 - 8;
uVar9 = 0;
}
pbVar3 = local_98 + iVar2;
pbVar4 = local_78 + iVar2;
iVar2 = iVar2 + 1;
*pbVar4 = (byte)uVar9 & *pbVar3;
} while (iVar2 != 0x10);
iVar2 = 0;
do {
pbVar3 = local_78 + iVar2;
pbVar4 = local_88 + iVar2;
pbVar7 = local_68 + iVar2;
iVar2 = iVar2 + 1;
*pbVar7 = *pbVar3 | *pbVar4;
} while (iVar2 != 0x10);
memset(acStack_58,0,0x2e) //possible issue identified - semgrep
inet_ntop(10,local_68,acStack_58,0x2e) //possible issue identified - semgrep
puts(acStack_58);
return 0;
}
if (iVar2 == 0x6c) break;
if (iVar2 == 0x6e) {
iVar2 = inet_pton(10,_optarg,local_a8) //possible issue identified - semgrep
if (iVar2 < 1) {
pcVar5 = "Invalid Network ID.\n";
goto LAB_004096c0;
}
}
else {
if (iVar2 != 0x68) goto LAB_004096d8;
memset(acStack_58,0,0x2e) //possible issue identified - semgrep
pcVar5 = _optarg;
pcVar1 = (char *)strlen(_optarg);
if ((char *)0x2d < pcVar1) {
pcVar1 = (char *)0x2e;
}
iVar2 = strncmp(pcVar5,"::",2);
if (iVar2 == 0) {
pcVar11 = memcpy;
pcVar8 = pcVar5;
pcVar5 = pcVar1;
}
else {
pcVar11 = sprintf;
if (*pcVar5 == ':') {
pcVar8 = ":%s";
}
else {
pcVar8 = "::%s";
}
}
(*pcVar11)(acStack_58,pcVar8,pcVar5);
iVar2 = inet_pton(10,acStack_58,local_98) //possible issue identified - semgrep
if (iVar2 < 1) {
pcVar5 = "Invalid Host ID.\n";
goto LAB_004096c0;
}
}
}
uVar10 = atoi(_optarg);
} while (uVar10 < 0x80);
pcVar5 = "Invalid Prefix Length.\n";
LAB_004096c0:
fputs(pcVar5,_stderr);
}
LAB_004096d8:
fprintf(_stderr,"%s\n",s_Usage__ipv6ip__n__network_id___l_004221c0);
return 0xffffffff;
}