
===== TARGET FUN_1400e35d0 @ 1400e35d0 =====

undefined4 FUN_1400e35d0(uint param_1,uint param_2,int param_3,int param_4)

{
  int iVar1;
  undefined4 uVar2;
  longlong lVar3;
  longlong lVar4;
  int *piVar5;
  
  lVar4 = (longlong)(int)param_1;
  lVar3 = (longlong)(int)param_2;
  if (param_1 < 0x400) {
    if (param_2 == 0xffffffff) {
      if (param_3 == -1) {
        if ((&DAT_182bbb1a8)[lVar4 * 0x6e0] == -1) {
          if ((&DAT_182bbb1a4)[lVar4 * 0x6e0] == -1) {
            return 0;
          }
          FUN_1400ca7c0(param_1,(&DAT_182bbb1a4)[lVar4 * 0x6e0],(&DAT_182bbb1ac)[lVar4 * 0x6e0]);
          if (DAT_1ad04adc0 != 0) {
            (&DAT_18329b1e0)[lVar4] = (&DAT_18329b1e0)[lVar4] + 1;
            return 1;
          }
        }
        else {
          FUN_1400ca9b0(param_1);
          if (DAT_1ad04adc0 != 0) {
            (&DAT_18329b1e0)[lVar4] = (&DAT_18329b1e0)[lVar4] + 1;
            return 1;
          }
        }
        return 1;
      }
      piVar5 = &DAT_1832a4dd8 + (longlong)param_4 * 10 + (longlong)param_3 * 0x1bfe;
      if (*piVar5 < 2) {
        if (param_4 < 2) {
          if (0 < *piVar5) {
            return 0;
          }
        }
        else if ((param_4 == 2) &&
                (*(int *)(&DAT_182a7e190 + (longlong)(int)(&DAT_182bbb194)[lVar4 * 0x6e0] * 0x13d0)
                 == 0)) {
          return 0;
        }
        if ((param_4 < 3) ||
           (*(int *)(&DAT_182a7e190 + (longlong)(int)(&DAT_182bbb194)[lVar4 * 0x6e0] * 0x13d0) == 0)
           ) {
          if ((&DAT_182bbb1a8)[lVar4 * 0x6e0] != -1) {
            FUN_1400ca9b0(param_1);
            (&DAT_182bbb1a8)[lVar4 * 0x6e0] = 0xffffffff;
          }
          if ((&DAT_182bbb1a4)[lVar4 * 0x6e0] != -1) {
            FUN_1400ca7c0(param_1,(&DAT_182bbb1a4)[lVar4 * 0x6e0],(&DAT_182bbb1ac)[lVar4 * 0x6e0]);
          }
          iVar1 = *piVar5;
          if (iVar1 < 8) {
            (&DAT_182bbb1a4)[lVar4 * 0x6e0] = param_3;
            (&DAT_182bbb1ac)[lVar4 * 0x6e0] = param_4;
            (&DAT_1832a4ddc)[(longlong)param_3 * 0x1bfe + (longlong)param_4 * 10 + (longlong)iVar1]
                 = param_1;
            *piVar5 = *piVar5 + 1;
          }
          if (DAT_1ad04adc0 == 0) {
            return 1;
          }
          (&DAT_18329b1e0)[lVar4] = (&DAT_18329b1e0)[lVar4] + 1;
          return 1;
        }
      }
    }
    else {
      piVar5 = &DAT_182bbb1b4 + lVar4 * 0x6e0;
      iVar1 = *piVar5;
      uVar2 = (&DAT_182bbb1ac)[lVar3 * 0x6e0];
      if ((iVar1 < 8) &&
         (*(int *)(&DAT_182a7e29c +
                  ((longlong)(int)(&DAT_182bbb194)[lVar4 * 0x6e0] +
                  (longlong)(int)(&DAT_182bbb194)[lVar3 * 0x6e0] * 0x4f4) * 4) != 0)) {
        if ((&DAT_182bbb194)[lVar3 * 0x6e0] - 0x11 < 2) {
          if (4 < iVar1) {
            return 0;
          }
        }
        else if (0 < iVar1) {
          return 0;
        }
        *(uint *)(&DAT_182bbb1b8 + (lVar4 * 0x6e0 + (longlong)iVar1) * 4) = param_2;
        *piVar5 = *piVar5 + 1;
        (&DAT_182bbb1a8)[lVar3 * 0x6e0] = param_1;
        (&DAT_182bbb1ac)[lVar3 * 0x6e0] = iVar1;
        if ((&DAT_182bbb1a4)[lVar3 * 0x6e0] != -1) {
          FUN_1400ca7c0(param_2,(&DAT_182bbb1a4)[lVar3 * 0x6e0],uVar2);
        }
        if (DAT_1ad04adc0 == 0) {
          return 1;
        }
        (&DAT_18329b1e0)[lVar4] = (&DAT_18329b1e0)[lVar4] + 1;
        if (0x3ff < param_2) {
          return 1;
        }
        (&DAT_18329b1e0)[lVar3] = (&DAT_18329b1e0)[lVar3] + 1;
        return 1;
      }
    }
  }
  return 0;
}


