/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
undefined4 gethostip_main(int param_1,undefined4 *param_2)
{
bool bVar1;
int iVar2;
hostent *phVar3;
byte *pbVar4;
char *pcVar5;
int iVar6;
uint uVar7;
undefined4 uVar8;
char acStack_70 [16];
char acStack_60 [48];
char *local_30;
uint local_2c;
DAT_00422a30 = *param_2;
uVar7 = 0;
bVar1 = false;
while (iVar2 = getopt_long(param_1,param_2,"dxfnDh6",&PTR_s_hexadecimal_00422014,0), iVar2 != -1) //possible issue identified - semgrep
{
if (iVar2 == 0x66) {
uVar7 = 7;
}
else if (iVar2 < 0x67) {
if (iVar2 == 0x44) {
uVar7 = 8;
}
else if (iVar2 == 100) {
uVar7 = uVar7 | 2;
}
else {
uVar8 = 0x40;
if (iVar2 == 0x36) {
bVar1 = true;
}
else {
LAB_00404750:
FUN_00404610(uVar8);
}
}
}
else if (iVar2 == 0x6e) {
uVar7 = uVar7 | 1;
}
else {
if (iVar2 != 0x78) {
uVar8 = 0;
if (iVar2 != 0x68) {
uVar8 = 0x40;
}
goto LAB_00404750;
}
uVar7 = uVar7 | 4;
}
}
if (_optind == param_1) {
FUN_00404610(0x40);
}
if (uVar7 == 0) {
uVar7 = 7;
}
local_2c = uVar7 & 1;
uVar8 = 0;
param_2 = param_2 + _optind;
local_30 = acStack_60;
iVar2 = _optind;
do {
if (param_1 <= iVar2) {
return uVar8;
}
if (bVar1) {
phVar3 = gethostbyname2((char *)*param_2,10);
}
else {
phVar3 = gethostbyname((char *)*param_2);
}
if (phVar3 == (hostent *)0x0) {
uVar8 = 1;
herror((char *)*param_2);
}
else {
if (bVar1) {
memset(local_30,0,0x2e) //possible issue identified - semgrep
pcVar5 = inet_ntop(10,*phVar3->h_addr_list,local_30,0x2e) //possible issue identified - semgrep
printf("%s",pcVar5);
}
else {
if ((phVar3->h_addrtype != 2) || (phVar3->h_length != 4)) {
fprintf(_stderr,"%s: No IPv4 address associated with name\n",*param_2);
uVar8 = 1;
goto LAB_00404a90;
}
pcVar5 = "";
if (local_2c != 0) {
printf("%s%s","",phVar3->h_name);
pcVar5 = " ";
}
if ((uVar7 & 2) != 0) {
pbVar4 = (byte *)*phVar3->h_addr_list;
sprintf(acStack_70,"%u.%u.%u.%u",(uint)*pbVar4,(uint)pbVar4[1],(uint)pbVar4[2],
(uint)pbVar4[3]) //possible issue identified - semgrep
printf("%s%s",pcVar5,acStack_70);
pcVar5 = " ";
}
if ((uVar7 & 4) != 0) {
pbVar4 = (byte *)*phVar3->h_addr_list;
printf("%s%08lX",pcVar5,
(uint)pbVar4[3] + (uint)*pbVar4 * 0x1000000 + (uint)pbVar4[1] * 0x10000 +
(uint)pbVar4[2] * 0x100);
pcVar5 = " ";
}
iVar6 = 0;
if (uVar7 == 8) {
while( true ) {
pbVar4 = *(byte **)((int)phVar3->h_addr_list + iVar6);
iVar6 = iVar6 + 4;
if (pbVar4 == (byte *)0x0) break;
sprintf(acStack_70,"%u.%u.%u.%u",(uint)*pbVar4,(uint)pbVar4[1],(uint)pbVar4[2],
(uint)pbVar4[3]) //possible issue identified - semgrep
printf("%s%s",pcVar5,acStack_70);
pcVar5 = " ";
}
}
}
fputc(10,_stdout);
}
LAB_00404a90:
iVar2 = iVar2 + 1;
param_2 = param_2 + 1;
} while( true );
}