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);
}