void FUN_00401e58(undefined4 param_1,undefined4 param_2,char param_3,undefined4 param_4)

{
  int iVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  undefined4 uVar7;
  code *pcVar8;
  undefined4 local_20;
  int local_1c;
  uint local_18;
  
  local_20 = 0;
  local_1c = 0;
  local_18 = 0;
  if (param_3 == '\x03') {
    FUN_00401300("recv SET_REQUEST!\n");
    local_20 = 1;
    local_1c = NEAP_DuplicateResponse(param_1,param_4);
    if (local_1c == 0) {
      return;
    }
    local_18 = local_18 & 0xffffff00;
    NEAP_WalkThroughAttributeList(param_4,FUN_00402110,&local_20);
    pcVar8 = NEAP_SendSetResponse;
  }
  else {
    if (param_3 != '\x05') {
      if (param_3 != '\x01') {
        FUN_00401300("Unsupported code %d\n");
        return;
      }
      FUN_00401300("recv DISCOVERY_REQUEST!\n");
      iVar1 = NEAP_DuplicateResponse(param_1,param_4);
      if (iVar1 == 0) {
        FUN_00401300("NEAP_DuplicateResponse fail!\n");
        return;
      }
      iVar2 = mib_get_supported_class(iVar1,0,DAT_004168c0,&DAT_004168c1);
      iVar3 = mib_get_model_name(iVar1,0,DAT_004168c4,&DAT_004168c5);
      iVar4 = mib_get_system_mac_address(iVar1,0,DAT_004168c8,&DAT_004168c9);
      iVar5 = mib_get_system_ip_address(iVar1,0,DAT_004168cc,&DAT_004168cd);
      iVar6 = mib_get_system_netmask(iVar1,0,DAT_004168d0,&DAT_004168d1);
      uVar7 = 0;
      if ((iVar6 == 0) &&
         (uVar7 = 2, (char)((iVar2 != 0) + (iVar3 != 0) + (iVar4 != 0) + (iVar5 != 0)) != '\0')) {
        uVar7 = 0;
      }
      NEAP_SendDiscoverResponse(param_1,uVar7,iVar1);
      goto LAB_004020d8;
    }
    FUN_00401300("recv GET_REQUEST!\n");
    local_20 = 0;
    local_1c = NEAP_DuplicateResponse(param_1,param_4);
    if (local_1c == 0) {
      return;
    }
    local_18 = local_18 & 0xffffff00;
    NEAP_WalkThroughAttributeList(param_4,FUN_00402110,&local_20);
    pcVar8 = NEAP_SendGetResponse;
  }
  (*pcVar8)(param_1,(undefined1)local_18,local_1c);
  iVar1 = local_1c;
LAB_004020d8:
  NEAP_ReleaseAttributeList(iVar1);
  return;
}