############ FUN_ 180536300 size=475 ############

void FUN_180536300(longlong param_1,undefined8 param_2,undefined8 param_3,longlong param_4,
                  int param_5,undefined8 param_6,longlong param_7)

{
  longlong lVar1;
  longlong lVar2;
  longlong lVar3;
  longlong lVar4;
  float fVar5;
  int iVar6;
  int iVar7;
  
  iVar7 = *(int *)(param_1 + 0x240080);
  lVar1 = param_7 + (longlong)(param_5 * 8) * 4;
  lVar2 = lVar1 + (longlong)param_5 * 4;
  fVar5 = *(float *)(param_1 + 0x24);
  lVar3 = lVar2 + (longlong)(param_5 * 2) * 4;
  lVar4 = lVar3 + (longlong)(param_5 * 2) * 4;
  iVar6 = __std_type_info_compare(0x182650db8,0x182650db8);
  FUN_18052da00(lVar1,param_3,(float)(DAT_1824c4248 / (double)((float)iVar7 * fVar5)),param_5);
  if (*(char *)(param_4 + 0x810) == '\0') {
    FUN_18052db50(lVar3,DAT_1824c3ea4,param_5);
    FUN_18052db50(lVar4,0,param_5);
    if (0 < *(int *)(param_4 + 0x814)) {
      if (iVar6 == 0) {
        FUN_180535880();
      }
      else {
        FUN_180536f90(lVar2,param_7,param_4,lVar1,param_5);
      }
      iVar7 = __std_type_info_compare(0x182650db8,0x182650db8);
      if (iVar7 == 0) {
                    /* WARNING: Subroutine does not return */
        thunk_FUN_181ba94b0();
      }
                    /* WARNING: Subroutine does not return */
      thunk_FUN_181ba94b0(lVar2,param_7,param_5);
    }
    if ((1 < *(int *)(param_4 + 0x814)) &&
       (*(char *)((longlong)(*(int *)(param_4 + 0x814) + -1) + 0x818 + param_4) == '\0')) {
      FUN_18052d990(lVar4,lVar3,param_5);
    }
    FUN_18052dbc0(param_2,lVar4,param_5);
  }
  else {
    FUN_18052db50(param_2,DAT_1824c3ea4,param_5);
  }
  return;
}



############ FUN_ 180535880 size=283 ############

/* WARNING: Removing unreachable block (ram,0x000180535987) */
/* WARNING: Removing unreachable block (ram,0x0001805359d3) */
/* WARNING: Removing unreachable block (ram,0x00018053598d) */

void FUN_180535880(undefined8 param_1,undefined8 param_2,undefined8 *param_3,undefined8 param_4,
                  undefined4 param_5)

{
  double *pdVar1;
  double *pdVar2;
  undefined1 auStack_c8 [32];
  undefined8 local_a8;
  float local_a0;
  float local_9c;
  float local_98;
  float local_90;
  float local_8c;
  float local_88;
  ulonglong local_80;
  
  local_80 = DAT_182615970 ^ (ulonglong)auStack_c8;
  pdVar1 = (double *)*param_3;
  pdVar2 = (double *)param_3[1];
  local_8c = (float)pdVar2[1];
  local_9c = (float)pdVar1[1];
  local_88 = (float)pdVar2[2];
  local_a0 = (float)*pdVar1;
  local_90 = (float)*pdVar2;
  local_98 = (float)pdVar1[2];
  local_a8 = param_4;
                    /* WARNING: Subroutine does not return */
  thunk_FUN_181ba94b0(local_a0,param_2,param_5);
}



############ FUN_ 180536f90 size=249 ############

/* WARNING: Removing unreachable block (ram,0x000180537079) */
/* WARNING: Removing unreachable block (ram,0x0001805370c8) */
/* WARNING: Removing unreachable block (ram,0x00018053707f) */

void FUN_180536f90(undefined8 param_1,undefined8 param_2,undefined8 *param_3,undefined8 param_4,
                  undefined4 param_5)

{
  undefined8 *puVar1;
  undefined8 *puVar2;
  undefined1 auStack_f8 [32];
  undefined8 local_d8;
  undefined8 local_c8;
  undefined8 uStack_c0;
  undefined8 local_b8;
  undefined4 local_b0;
  undefined4 uStack_ac;
  undefined4 uStack_a8;
  undefined4 uStack_a4;
  undefined8 local_a0;
  undefined4 local_98;
  undefined4 uStack_94;
  undefined4 uStack_90;
  undefined4 uStack_8c;
  ulonglong local_88;
  
  local_88 = DAT_182615970 ^ (ulonglong)auStack_f8;
  puVar1 = (undefined8 *)*param_3;
  puVar2 = (undefined8 *)param_3[1];
  local_b0 = *(undefined4 *)(puVar1 + 1);
  uStack_ac = *(undefined4 *)((longlong)puVar1 + 0xc);
  uStack_a8 = *(undefined4 *)(puVar1 + 2);
  uStack_a4 = *(undefined4 *)((longlong)puVar1 + 0x14);
  local_98 = *(undefined4 *)(puVar2 + 1);
  uStack_94 = *(undefined4 *)((longlong)puVar2 + 0xc);
  uStack_90 = *(undefined4 *)(puVar2 + 2);
  uStack_8c = *(undefined4 *)((longlong)puVar2 + 0x14);
  local_c8 = *puVar1;
  local_a0 = *puVar2;
  uStack_c0 = 0;
  local_d8 = param_4;
  local_b8 = local_c8;
                    /* WARNING: Subroutine does not return */
  thunk_FUN_181ba94b0(&local_c8,param_2,param_5);
}



############ FUN_ 18052e260 size=577 ############

undefined8 FUN_18052e260(longlong param_1,int param_2)

{
  undefined8 uVar1;
  int iVar2;
  undefined4 uVar3;
  int iVar4;
  int iVar5;
  uint uVar6;
  undefined8 uVar7;
  longlong lVar8;
  longlong *plVar9;
  undefined4 uVar10;
  
  iVar5 = *(int *)(param_1 + 100) / 2 + 1;
  if (*(char *)(param_1 + 0x240464) != '\0') {
    *(undefined1 *)(param_1 + 0x240464) = 0;
    FUN_18052fbd0(param_1 + 0x3d8);
  }
  uVar1 = *(undefined8 *)(param_1 + 0x540788);
  iVar4 = *(int *)(param_1 + 0x2404d8);
  if (iVar4 < 1) {
    if (*(char *)(param_1 + 0x5408ad) != '\0') {
      *(undefined1 *)(param_1 + 0x5408ad) = 0;
      *(int *)(param_1 + 0x2404d8) = iVar5;
    }
    return 0;
  }
  iVar2 = iVar5;
  if (iVar4 < iVar5) {
    iVar2 = iVar4;
  }
  *(int *)(param_1 + 0x2404d8) = iVar2;
  if (iVar2 < param_2) {
    param_2 = iVar2;
  }
  uVar6 = 0;
  if (0 < *(int *)(param_1 + 0x2404d0)) {
    plVar9 = (longlong *)(param_1 + 0x5407e8);
    lVar8 = 0;
    do {
      if (uVar6 < *(uint *)(param_1 + 0x444)) {
        uVar7 = *(undefined8 *)(lVar8 + *(longlong *)(param_1 + 0x438));
      }
      else {
        uVar7 = 0;
      }
      FUN_180536300(param_1 + 0x3d8,*plVar9 + (longlong)(iVar5 - iVar2) * 4,
                    *(longlong *)(param_1 + 0x540758) + (longlong)(iVar5 - iVar2) * 4,uVar7,param_2)
      ;
      uVar6 = uVar6 + 1;
      plVar9 = plVar9 + 2;
      lVar8 = lVar8 + 8;
    } while ((int)uVar6 < *(int *)(param_1 + 0x2404d0));
  }
  *(int *)(param_1 + 0x2404d8) = *(int *)(param_1 + 0x2404d8) - param_2;
  if ((*(int *)(param_1 + 0x2404d8) < 1) && (0 < *(int *)(param_1 + 0x30))) {
    expf(DAT_1824c4208);
    uVar3 = DAT_1824c3ea4;
    uVar10 = (undefined4)DAT_1824c4140;
    iVar4 = __std_type_info_compare(0x182650db8,0x182650db8);
    if (iVar4 != 0) {
                    /* WARNING: Subroutine does not return */
      thunk_FUN_181ba94b0(uVar10,uVar1,iVar5);
    }
                    /* WARNING: Subroutine does not return */
    thunk_FUN_181ba94b0(uVar3);
  }
  return 1;
}



