void FUN_00400e4c(char *param_1,int param_2)
{
int __fd;
hostent *phVar1;
ssize_t sVar2;
undefined1 auStack_680 [2];
undefined2 uStack_67e;
undefined1 auStack_90 [24];
int local_68;
int local_64;
int local_60;
sockaddr local_48;
int local_38 [2];
undefined1 *local_30;
int local_2c;
undefined1 *local_28;
undefined4 local_20;
undefined4 local_1c;
undefined4 local_18;
undefined4 local_14;
local_30 = auStack_90;
local_18 = 0x600;
local_14 = 0;
local_20 = 0x600;
local_1c = 0;
local_38[0] = 0x40;
local_28 = auStack_680;
__fd = socket(2,3,1);
if (__fd < 0) {
puts("SOCK BUG");
/* WARNING: Subroutine does not return */
exit(0);
}
memset(&local_48,0,0x10) //possible issue identified - semgrep
local_48.sa_family = 2;
phVar1 = gethostbyname(param_1);
if (phVar1 != (hostent *)0x0) {
memcpy(local_48.sa_data + 2,*phVar1->h_addr_list,4) //possible issue identified - semgrep
DAT_004148f0 = phVar1->h_name;
if (0 < local_38[0]) {
setsockopt(__fd,0,2,local_38,4);
}
memset(auStack_680,0,0x600) //possible issue identified - semgrep
auStack_680[0] = 8;
uStack_67e = 0x7b;
local_60 = 0;
do {
if (0xfe < local_60) {
return;
}
sVar2 = sendto(__fd,auStack_680,0x578,0,&local_48,0x10);
if ((sVar2 < 0) || (sVar2 != 0x578)) {
puts("pings sendto error");
}
if (local_60 == 0) {
TICKCOUNT = 1;
TICKTOTAL = sVar2;
}
else {
TICKTOTAL = TICKTOTAL + sVar2;
TICKCOUNT = TICKCOUNT + 1;
}
local_2c = local_60 % 0x32;
if (local_60 % 0x32 == 0) {
if (local_60 == 0) {
gettimeofday((timeval *)&DAT_004148fc,(__timezone_ptr_t)0x0);
}
else {
gettimeofday((timeval *)&DAT_004148f4,(__timezone_ptr_t)0x0);
if (10 < DAT_004148f4 - DAT_004148fc) {
return;
}
}
}
local_48.sa_data._2_4_ = local_48.sa_data._2_4_ + 0x1000000;
for (local_64 = 0; local_64 < param_2; local_64 = local_64 + 1) {
for (local_68 = 0; local_68 < DAT_00414474; local_68 = local_68 + 1) {
if (local_38[0] == 0) {
trap(0x1c00);
}
}
}
local_60 = local_60 + 1;
} while( true );
}
puts("HOST BUG");
/* WARNING: Subroutine does not return */
exit(0);
}