undefined4 FUN_0042506c(int param_1,int param_2,int param_3,char param_4,undefined1 param_5)

{
  undefined4 uVar1;
  int iVar2;
  char local_810 [7];
  undefined1 local_809;
  undefined1 local_808;
  uint local_801;
  undefined1 local_7fd;
  undefined1 local_7fc;
  undefined1 local_7fb;
  undefined1 local_7fa;
  undefined1 local_7f9;
  undefined1 local_7f8;
  undefined1 local_7f7;
  undefined1 local_7f6;
  undefined4 local_7f5;
  undefined1 local_7f1;
  undefined1 local_7f0;
  undefined1 auStack_7ef [2019];
  
  if (param_4 == '\x02') {
    local_809 = 0;
    if (param_2 == 0) {
      local_809 = 0xff;
    }
  }
  else if (param_4 == '\x05') {
    local_808 = 0;
    local_809 = 0;
    if ((param_2 == 0) && (local_809 = 0xff, *(char *)(param_1 + 0x9f) != '\0')) {
      local_809 = 0;
    }
  }
  local_801 = param_3 + 0xe;
  local_7fa = (undefined1)(local_801 & 0xffff);
  local_7fc = *(undefined1 *)(param_1 + 0x9a);
  local_7fd = param_5;
  local_7f9 = 0xfe;
  local_7f7 = 0x37;
  local_7f6 = 0x2a;
  local_7fb = (undefined1)((local_801 & 0xffff) >> 8);
  local_7f8 = 0;
  local_7f5 = 0x1000000;
  local_810[0] = param_4;
  if (param_2 != 0) {
    iVar2 = (int)*(char *)(param_2 + 9);
    local_7f1 = 4;
    if (((8 < (iVar2 - 4U & 0xff)) && (local_7f1 = 2, iVar2 != 0xd)) &&
       (local_7f1 = 3, iVar2 != 0xe)) {
      if (iVar2 != 0xf) {
        return 0x5301;
      }
      local_7f1 = 5;
    }
    local_7f0 = 0;
    FUN_00483c90(auStack_7ef,param_2,param_3);
  }
  iVar2 = FUN_00402ff4(*(undefined4 *)(param_1 + 0x8d),local_810,param_3 + 0x21,0x4000);
  uVar1 = 0x1003;
  if (-1 < iVar2) {
    uVar1 = 0x1001;
  }
  return uVar1;
}