############ FUN_ 180541f20 size=5019 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
/* WARNING: Type propagation algorithm not settling */

void FUN_180541f20(undefined8 *param_1,undefined8 param_2)

{
  longlong ***ppplVar1;
  char cVar2;
  short sVar3;
  short sVar4;
  int iVar5;
  uint uVar6;
  undefined4 uVar7;
  int iVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  longlong lVar11;
  longlong lVar12;
  longlong lVar13;
  undefined8 uVar14;
  ulonglong uVar15;
  undefined8 *puVar16;
  undefined8 uVar17;
  void *pvVar18;
  ulonglong uVar19;
  uint uVar20;
  uint *puVar21;
  longlong ***_Memory;
  longlong ***ppplVar22;
  undefined1 *puVar23;
  undefined8 *puVar24;
  undefined1 auStack_338 [32];
  undefined8 *local_318;
  longlong local_310;
  ulonglong local_308;
  longlong local_300;
  int local_2f8;
  int local_2f4;
  longlong ***local_2f0;
  undefined2 local_2e8;
  undefined2 local_2e6;
  undefined2 local_2e4;
  int local_2e0;
  undefined2 local_2dc;
  undefined8 *local_2d8;
  uint local_2d0;
  longlong ***local_2c8;
  undefined1 *local_2c0;
  undefined1 *local_2b8;
  ulonglong local_2b0;
  longlong local_2a8;
  longlong local_2a0;
  longlong local_298;
  longlong local_290;
  longlong local_288;
  longlong local_280;
  longlong local_278;
  longlong local_270;
  longlong local_268;
  longlong local_260;
  longlong local_258;
  undefined8 local_250;
  longlong local_248;
  undefined8 local_240;
  longlong local_238;
  undefined8 local_230;
  longlong local_228;
  longlong local_220;
  longlong ***local_218;
  undefined8 local_210;
  undefined8 local_208;
  undefined8 local_200;
  undefined8 local_1f8;
  undefined8 local_1f0;
  undefined8 local_1e8;
  undefined8 ****local_1e0;
  void *local_1d8;
  undefined8 local_1d0;
  void *local_1c8;
  undefined8 local_1c0;
  void *local_1b8;
  undefined8 local_1b0;
  void *local_1a8;
  undefined8 local_1a0;
  longlong local_198;
  longlong local_190;
  longlong local_188;
  longlong local_180;
  longlong local_178;
  undefined8 local_170;
  undefined8 local_168;
  undefined8 local_160;
  undefined8 local_158;
  longlong local_150;
  longlong local_148;
  longlong local_140;
  undefined8 local_138;
  undefined8 local_130;
  undefined8 local_128;
  undefined8 local_120;
  undefined8 local_118 [2];
  longlong local_108 [6];
  undefined8 local_d8;
  undefined8 *local_d0;
  undefined8 local_c8;
  void *local_a0 [7];
  undefined1 local_68 [16];
  undefined1 local_58 [31];
  undefined1 local_39;
  ulonglong local_38 [2];
  
  local_d8 = 0xfffffffffffffffe;
  local_38[0] = DAT_182615970 ^ (ulonglong)auStack_338;
  local_318 = param_1;
  local_d0 = param_1;
  FUN_18049c4e0(&local_150,"WAV file");
  *param_1 = juce::AudioFormatReader::vftable;
  uVar19 = 0;
  param_1[1] = 0;
  *(undefined4 *)(param_1 + 2) = 0;
  param_1[3] = 0;
  *(undefined4 *)(param_1 + 4) = 0;
  *(undefined1 *)((longlong)param_1 + 0x24) = 0;
  puVar24 = param_1 + 5;
  *puVar24 = 0;
  param_1[6] = 0;
  param_1[7] = 0;
  param_1[8] = 0;
  *(undefined1 *)(param_1 + 9) = 1;
  param_1[10] = param_2;
  param_1[0xb] = local_150;
  puVar21 = (uint *)(local_150 + -0x10);
  if ((*puVar21 & 0x30000000) == 0) {
    LOCK();
    *puVar21 = *puVar21 + 1;
    UNLOCK();
  }
  local_2d8 = puVar24;
  if ((*puVar21 & 0x30000000) == 0) {
    LOCK();
    uVar6 = *puVar21;
    *puVar21 = *puVar21 - 1;
    UNLOCK();
    if (uVar6 == 0) {
                    /* WARNING: Subroutine does not return */
      free(puVar21);
    }
  }
  *param_1 = juce::WavAudioFormatReader::vftable;
  param_1[0xc] = 0;
  param_1[0xd] = 0;
  param_1[0xe] = 0;
  param_1[0xf] = 0;
  *(undefined4 *)(param_1 + 0x10) = 0;
  *(undefined2 *)((longlong)param_1 + 0x84) = 0;
  param_1[0x11] = 0;
  param_1[0x14] = 4;
  *(undefined4 *)(param_1 + 0x15) = 0xffffffff;
  *(undefined1 *)((longlong)param_1 + 0xac) = 0;
  param_1[0x12] = 0;
  param_1[0x13] = 0;
  local_2b0 = 0;
  local_2f4 = 0;
  local_2f8 = 0;
  local_2e0 = 0;
  local_130 = (**(code **)(*(longlong *)param_1[10] + 0xa8))();
  iVar5 = (**(code **)(*(longlong *)param_1[10] + 0x40))();
  if (iVar5 == 0x34364652) {
    (**(code **)(*(longlong *)param_1[10] + 0xb8))((longlong *)param_1[10],4);
    *(undefined1 *)((longlong)param_1 + 0x84) = 1;
  }
  else {
    if (iVar5 != 0x46464952) {
    }
    uVar6 = (**(code **)(*(longlong *)param_1[10] + 0x40))();
    lVar11 = (**(code **)(*(longlong *)param_1[10] + 0xa8))();
    uVar19 = (ulonglong)uVar6 + lVar11;
    local_2b0 = uVar19;
  }
  lVar11 = (**(code **)(*(longlong *)param_1[10] + 0xa8))();
  iVar5 = (**(code **)(*(longlong *)param_1[10] + 0x40))();
  if (iVar5 == 0x45564157) {
    if ((*(char *)((longlong)param_1 + 0x84) != '\0') &&
       (iVar5 = (**(code **)(*(longlong *)param_1[10] + 0x40))(), iVar5 == 0x34367364)) {
      uVar6 = (**(code **)(*(longlong *)param_1[10] + 0x40))();
      if (uVar6 < 0x1c) {
      }
      lVar12 = (**(code **)(*(longlong *)param_1[10] + 0xa8))();
      lVar13 = (**(code **)(*(longlong *)param_1[10] + 0x50))();
      uVar19 = lVar11 + lVar13;
      local_2b0 = uVar19;
      uVar14 = (**(code **)(*(longlong *)param_1[10] + 0x50))();
      param_1[0xf] = uVar14;
      (**(code **)(*(longlong *)param_1[10] + 0xb0))
                ((longlong *)param_1[10],(ulonglong)(uVar6 & 1) + lVar12 + (ulonglong)uVar6);
    }
    uVar15 = (**(code **)(*(longlong *)param_1[10] + 0xa8))();
    if (uVar15 < uVar19) {
      do {
        cVar2 = (**(code **)(*(longlong *)param_1[10] + 0x10))();
        if (cVar2 != '\0') break;
        iVar5 = (**(code **)(*(longlong *)param_1[10] + 0x40))();
        uVar6 = (**(code **)(*(longlong *)param_1[10] + 0x40))();
        uVar19 = (ulonglong)uVar6;
        lVar11 = (**(code **)(*(longlong *)local_318[10] + 0xa8))();
        param_1 = local_318;
        local_310 = (ulonglong)(uVar6 & 1) + lVar11 + (ulonglong)uVar6;
        if (iVar5 == 0x20746d66) {
          sVar3 = (**(code **)(*(longlong *)local_318[10] + 0x30))();
          sVar4 = (**(code **)(*(longlong *)param_1[10] + 0x30))();
          *(int *)(param_1 + 4) = (int)sVar4;
          iVar5 = (**(code **)(*(longlong *)param_1[10] + 0x40))();
          param_1[1] = (double)iVar5;
          iVar5 = (**(code **)(*(longlong *)param_1[10] + 0x40))();
          (**(code **)(*(longlong *)local_318[10] + 0xb8))((longlong *)local_318[10],2);
          sVar4 = (**(code **)(*(longlong *)local_318[10] + 0x30))();
          puVar24 = local_318;
          uVar20 = (uint)sVar4;
          *(uint *)(local_318 + 2) = uVar20;
          if (uVar20 < 0x41) {
            *(uint *)(local_318 + 0x10) = *(int *)(local_318 + 4) * uVar20 >> 3;
          }
          else {
            *(int *)(local_318 + 0x10) = iVar5 / (int)(double)local_318[1];
            *(uint *)(local_318 + 2) =
                 (uint)((iVar5 / (int)(double)local_318[1]) * 8) / *(uint *)(local_318 + 4);
          }
          param_1 = local_318;
          if (sVar3 == 3) {
            *(undefined1 *)((longlong)local_318 + 0x24) = 1;
          }
          else if (sVar3 == -2) {
            if (0x27 < uVar6) {
              (**(code **)(*(longlong *)local_318[10] + 0xb8))((longlong *)local_318[10],4);
              uVar7 = (**(code **)(*(longlong *)puVar24[10] + 0x40))();
              FUN_18049c4e0(&local_2a0,"ChannelMask");
              lVar11 = FUN_181233e10(local_38,uVar7);
              FUN_180495150(&local_2a8,lVar11,&local_39 + -lVar11);
              FUN_18122c880(puVar24 + 5,&local_2a0,&local_2a8);
              puVar21 = (uint *)(local_2a8 + -0x10);
              if ((*puVar21 & 0x30000000) == 0) {
                LOCK();
                uVar6 = *puVar21;
                *puVar21 = *puVar21 - 1;
                UNLOCK();
                if (uVar6 == 0) {
                    /* WARNING: Subroutine does not return */
                  free(puVar21);
                }
              }
              puVar21 = (uint *)(local_2a0 + -0x10);
              if ((*puVar21 & 0x30000000) == 0) {
                LOCK();
                uVar6 = *puVar21;
                *puVar21 = *puVar21 - 1;
                UNLOCK();
                if (uVar6 == 0) {
                    /* WARNING: Subroutine does not return */
                  free(puVar21);
                }
              }
              puVar16 = (undefined8 *)FUN_180543b30(local_a0,uVar7,*(undefined4 *)(puVar24 + 4));
              local_c8 = puVar24[0x11];
              puVar24[0x11] = *puVar16;
              *puVar16 = local_c8;
              uVar14 = puVar16[2];
              puVar24[0x12] = puVar16[1];
              puVar24[0x13] = uVar14;
              puVar24[0x14] = puVar16[3];
              *(undefined4 *)(puVar24 + 0x15) = *(undefined4 *)(puVar16 + 4);
              *(undefined1 *)((longlong)puVar24 + 0xac) = *(undefined1 *)((longlong)puVar16 + 0x24);
                    /* WARNING: Subroutine does not return */
              free(local_a0[0]);
            }
            *(undefined4 *)(local_318 + 0x10) = 0;
          }
          else {
            if (((ushort)(sVar3 + 0x98b1U) < 3) || ((ushort)(sVar3 + 0x9891U) < 3)) {
              *(undefined1 *)((longlong)local_318 + 0x85) = 1;
              local_318[1] = 0;
              (**(code **)(*(longlong *)local_318[10] + 0xb0))((longlong *)local_318[10],local_130);
            }
            if (sVar3 != 1) {
              *(undefined4 *)(local_318 + 0x10) = 0;
            }
          }
        }
        else if (iVar5 == 0x61746164) {
          if (*(char *)((longlong)local_318 + 0x84) == '\0') {
            local_318[0xf] = uVar19;
          }
          else if (0 < (longlong)local_318[0xf]) {
            lVar11 = local_318[0xf];
            lVar12 = (**(code **)(*(longlong *)local_318[10] + 0xa8))();
            local_310 = (ulonglong)((uint)lVar11 & 1) + lVar12 + lVar11;
          }
          uVar14 = (**(code **)(*(longlong *)param_1[10] + 0xa8))();
          param_1[0xe] = uVar14;
          if (*(int *)(param_1 + 0x10) < 1) {
            param_1[3] = 0;
          }
          else {
            param_1[3] = (longlong)param_1[0xf] / (longlong)*(int *)(param_1 + 0x10);
          }
        }
        else {
          if (iVar5 == 0x74786562) {
            uVar14 = (**(code **)(*(longlong *)local_318[10] + 0xa8))();
            param_1[0xc] = uVar14;
            param_1[0xd] = uVar19;
                    /* WARNING: Subroutine does not return */
            free((void *)0x0);
          }
          if (iVar5 == 0x6c706d73) {
                    /* WARNING: Subroutine does not return */
            free((void *)0x0);
          }
          if ((iVar5 == 0x74736e69) || (iVar5 == 0x54534e49)) {
                    /* WARNING: Subroutine does not return */
            free((void *)0x0);
          }
          if (iVar5 == 0x20657563) {
                    /* WARNING: Subroutine does not return */
            free((void *)0x0);
          }
          if (iVar5 == 0x6c6d7861) {
            local_1d8 = (void *)0x0;
            local_1d0 = 0;
            (**(code **)(*(longlong *)local_318[10] + 0xa0))
                      ((longlong *)local_318[10],&local_1d8,uVar19);
            if (local_1d8 != (void *)0x0) {
              iVar5 = (int)local_1d0;
              if (iVar5 < 0) {
                FUN_18049c9e0(&local_2c0);
                goto LAB_1805427be;
              }
              if (0 < iVar5) {
                FUN_18124a8a0(&local_2c0,local_1d8,(longlong)iVar5 + (longlong)local_1d8);
                goto LAB_1805427be;
              }
            }
            local_2c0 = &DAT_1821dbf98;
LAB_1805427be:
            FUN_18136dab0(param_1 + 5,&local_2c0);
            puVar21 = (uint *)(local_2c0 + -0x10);
            if ((*puVar21 & 0x30000000) == 0) {
              LOCK();
              uVar6 = *puVar21;
              *puVar21 = *puVar21 - 1;
              UNLOCK();
              if (uVar6 == 0) {
                    /* WARNING: Subroutine does not return */
                free(puVar21);
              }
            }
                    /* WARNING: Subroutine does not return */
            free(local_1d8);
          }
          if (iVar5 == 0x5453494c) {
            iVar5 = (**(code **)(*(longlong *)local_318[10] + 0x40))();
            if ((iVar5 == 0x6f666e69) || (iVar5 == 0x4f464e49)) {
              FUN_18136e1e0(param_1 + 5,param_1[10],local_310);
            }
            else if ((iVar5 == 0x6c746461) &&
                    (lVar11 = (**(code **)(*(longlong *)param_1[10] + 0xa8))(), lVar11 < local_310))
            {
              do {
                iVar8 = (**(code **)(*(longlong *)param_1[10] + 0x40))();
                uVar6 = (**(code **)(*(longlong *)param_1[10] + 0x40))();
                local_2d0 = uVar6;
                local_140 = (**(code **)(*(longlong *)param_1[10] + 0xa8))();
                iVar5 = local_2e0;
                local_140 = local_140 + (ulonglong)((uVar6 & 1) + uVar6);
                if ((iVar8 == 0x6c62616c) || (iVar8 == 0x65746f6e)) {
                  ppplVar22 = (longlong ***)&DAT_1821dbf98;
                  local_2f0 = (longlong ***)&DAT_1821dbf98;
                  if (iVar8 == 0x6c62616c) {
                    lVar11 = -1;
                    do {
                      lVar12 = lVar11;
                      lVar11 = lVar12 + 1;
                    } while ((&DAT_1821dbf99)[lVar12] != '\0');
                    FUN_1812342b0(&local_2f0,lVar12 + 9);
                    ppplVar22 = local_2f0;
                    puVar23 = (undefined1 *)((longlong)(int)(lVar12 + 1) + (longlong)local_2f0);
                    memcpy(puVar23,"CueLabel",8);
                    puVar23[8] = 0;
                    pvVar18 = (void *)FUN_181233e10(local_68,local_2f8);
                    uVar6 = (int)local_68 - (int)pvVar18;
                    local_308 = (ulonglong)uVar6;
                    if (0 < (int)uVar6) {
                      lVar11 = -1;
                      do {
                        lVar11 = lVar11 + 1;
                      } while (*(char *)((longlong)ppplVar22 + lVar11) != '\0');
                      FUN_1812342b0(&local_2f0,(int)uVar6 + lVar11);
                      ppplVar22 = local_2f0;
                      puVar23 = (undefined1 *)((longlong)(int)lVar11 + (longlong)local_2f0);
                      memcpy(puVar23,pvVar18,(longlong)(int)local_308);
                      puVar23[(int)local_308] = 0;
                    }
                    local_2f8 = local_2f8 + 1;
                    param_1 = local_318;
                  }
                  else if (iVar8 == 0x65746f6e) {
                    lVar11 = -1;
                    do {
                      lVar12 = lVar11;
                      lVar11 = lVar12 + 1;
                    } while ((&DAT_1821dbf99)[lVar12] != '\0');
                    FUN_1812342b0(&local_2f0,lVar12 + 8);
                    ppplVar22 = local_2f0;
                    puVar23 = (undefined1 *)((longlong)(int)(lVar12 + 1) + (longlong)local_2f0);
                    memcpy(puVar23,"CueNote",7);
                    puVar23[7] = 0;
                    pvVar18 = (void *)FUN_181233e10(local_58,local_2f4);
                    uVar6 = (int)local_58 - (int)pvVar18;
                    local_308 = (ulonglong)uVar6;
                    if (0 < (int)uVar6) {
                      lVar11 = -1;
                      do {
                        lVar11 = lVar11 + 1;
                      } while (*(char *)((longlong)ppplVar22 + lVar11) != '\0');
                      FUN_1812342b0(&local_2f0,(int)uVar6 + lVar11);
                      ppplVar22 = local_2f0;
                      puVar23 = (undefined1 *)((longlong)(int)lVar11 + (longlong)local_2f0);
                      memcpy(puVar23,pvVar18,(longlong)(int)local_308);
                      puVar23[(int)local_308] = 0;
                    }
                    local_2f4 = local_2f4 + 1;
                    param_1 = local_318;
                  }
                  uVar7 = (**(code **)(*(longlong *)param_1[10] + 0x40))();
                  local_1c8 = (void *)0x0;
                  local_1c0 = 0;
                  (**(code **)(*(longlong *)param_1[10] + 0xa0))
                            ((longlong *)param_1[10],&local_1c8,(longlong)(int)(local_2d0 - 4));
                  FUN_181211fd0(&local_220,uVar7);
                  ppplVar1 = ppplVar22 + -2;
                  if (((ulonglong)*ppplVar1 & 0x30000000) == 0) {
                    LOCK();
                    *(uint *)ppplVar1 = *(uint *)ppplVar1 + 1;
                    UNLOCK();
                  }
                  local_1e0 = &local_2c8;
                  local_2c8 = ppplVar22;
                  FUN_181232e20(&local_2c8,"Identifier","");
                  local_1e0 = (undefined8 ****)local_2c8;
                  ppplVar22 = local_2c8 + -2;
                  if (((ulonglong)*ppplVar22 & 0x30000000) == 0) {
                    LOCK();
                    *(uint *)ppplVar22 = *(uint *)ppplVar22 + 1;
                    UNLOCK();
                  }
                  _Memory = local_2c8 + -2;
                  if (((ulonglong)*_Memory & 0x30000000) == 0) {
                    LOCK();
                    uVar6 = *(uint *)_Memory;
                    *(uint *)_Memory = *(uint *)_Memory - 1;
                    UNLOCK();
                    if (uVar6 == 0) {
                    /* WARNING: Subroutine does not return */
                      free(_Memory);
                    }
                  }
                  FUN_18122c880(param_1 + 5,&local_1e0,&local_220);
                  if (((ulonglong)*ppplVar22 & 0x30000000) == 0) {
                    LOCK();
                    uVar6 = *(uint *)ppplVar22;
                    *(uint *)ppplVar22 = *(uint *)ppplVar22 - 1;
                    UNLOCK();
                    if (uVar6 == 0) {
                    /* WARNING: Subroutine does not return */
                      free(ppplVar22);
                    }
                  }
                  puVar21 = (uint *)(local_220 + -0x10);
                  if ((*puVar21 & 0x30000000) == 0) {
                    LOCK();
                    uVar6 = *puVar21;
                    *puVar21 = *puVar21 - 1;
                    UNLOCK();
                    if (uVar6 == 0) {
                    /* WARNING: Subroutine does not return */
                      free(puVar21);
                    }
                  }
                  if (local_1c8 != (void *)0x0) {
                    iVar5 = (int)local_1c0;
                    if (iVar5 < 0) {
                      FUN_18049c9e0(&local_2b8);
                      goto LAB_180543133;
                    }
                    if (0 < iVar5) {
                      FUN_18124a8a0(&local_2b8,local_1c8,(longlong)iVar5 + (longlong)local_1c8);
                      goto LAB_180543133;
                    }
                  }
                  local_2b8 = &DAT_1821dbf98;
LAB_180543133:
                  local_218 = local_2f0;
                  if (((ulonglong)*ppplVar1 & 0x30000000) == 0) {
                    LOCK();
                    *(uint *)ppplVar1 = *(uint *)ppplVar1 + 1;
                    UNLOCK();
                  }
                  uVar14 = FUN_1812465e0(&local_148,&local_218,&DAT_1824acc88);
                  FUN_18122c880(param_1 + 5,uVar14,&local_2b8);
                  puVar21 = (uint *)(local_148 + -0x10);
                  if ((*puVar21 & 0x30000000) == 0) {
                    LOCK();
                    uVar6 = *puVar21;
                    *puVar21 = *puVar21 - 1;
                    UNLOCK();
                    if (uVar6 == 0) {
                    /* WARNING: Subroutine does not return */
                      free(puVar21);
                    }
                  }
                  puVar21 = (uint *)(local_2b8 + -0x10);
                  if ((*puVar21 & 0x30000000) == 0) {
                    LOCK();
                    uVar6 = *puVar21;
                    *puVar21 = *puVar21 - 1;
                    UNLOCK();
                    if (uVar6 == 0) {
                    /* WARNING: Subroutine does not return */
                      free(puVar21);
                    }
                  }
                    /* WARNING: Subroutine does not return */
                  free(local_1c8);
                }
                if (iVar8 == 0x7478746c) {
                  uVar14 = FUN_18124a960(local_108,local_2e0);
                  FUN_181246550(&local_300,"CueRegion",uVar14);
                  local_2e0 = iVar5 + 1;
                  puVar21 = (uint *)(local_108[0] + -0x10);
                  if ((*puVar21 & 0x30000000) == 0) {
                    LOCK();
                    uVar6 = *puVar21;
                    *puVar21 = *puVar21 - 1;
                    UNLOCK();
                    if (uVar6 == 0) {
                    /* WARNING: Subroutine does not return */
                      free(puVar21);
                    }
                  }
                  uVar7 = (**(code **)(*(longlong *)param_1[10] + 0x40))();
                  uVar9 = (**(code **)(*(longlong *)param_1[10] + 0x40))();
                  uVar10 = (**(code **)(*(longlong *)param_1[10] + 0x40))();
                  local_2dc = (**(code **)(*(longlong *)local_318[10] + 0x30))();
                  local_2e8 = (**(code **)(*(longlong *)local_318[10] + 0x30))();
                  local_2e6 = (**(code **)(*(longlong *)local_318[10] + 0x30))();
                  local_2e4 = (**(code **)(*(longlong *)local_318[10] + 0x30))();
                  local_1b8 = (void *)0x0;
                  local_1b0 = 0;
                  (**(code **)(*(longlong *)local_318[10] + 0xa0))
                            ((longlong *)local_318[10],&local_1b8,(longlong)(int)(local_2d0 - 0x14))
                  ;
                  FUN_181211fd0(&local_290,uVar7);
                  lVar11 = local_300;
                  local_298 = local_300;
                  if ((*(uint *)(local_300 + -0x10) & 0x30000000) == 0) {
                    LOCK();
                    *(int *)(local_300 + -0x10) = *(int *)(local_300 + -0x10) + 1;
                    UNLOCK();
                  }
                  uVar14 = FUN_1812465e0(&local_198,&local_298,"Identifier");
                  FUN_18122c880(local_2d8,uVar14,&local_290);
                  puVar21 = (uint *)(local_198 + -0x10);
                  if ((*puVar21 & 0x30000000) == 0) {
                    LOCK();
                    uVar6 = *puVar21;
                    *puVar21 = *puVar21 - 1;
                    UNLOCK();
                    if (uVar6 == 0) {
                    /* WARNING: Subroutine does not return */
                      free(puVar21);
                    }
                  }
                  puVar21 = (uint *)(local_290 + -0x10);
                  if ((*puVar21 & 0x30000000) == 0) {
                    LOCK();
                    uVar6 = *puVar21;
                    *puVar21 = *puVar21 - 1;
                    UNLOCK();
                    if (uVar6 == 0) {
                    /* WARNING: Subroutine does not return */
                      free(puVar21);
                    }
                  }
                  FUN_181211fd0(&local_280,uVar9);
                  local_288 = local_300;
                  if ((*(uint *)(lVar11 + -0x10) & 0x30000000) == 0) {
                    LOCK();
                    *(int *)(lVar11 + -0x10) = *(int *)(lVar11 + -0x10) + 1;
                    UNLOCK();
                  }
                  uVar14 = FUN_1812465e0(&local_190,&local_288,"SampleLength");
                  puVar24 = local_2d8;
                  FUN_18122c880(local_2d8,uVar14,&local_280);
                  puVar21 = (uint *)(local_190 + -0x10);
                  if ((*puVar21 & 0x30000000) == 0) {
                    LOCK();
                    uVar6 = *puVar21;
                    *puVar21 = *puVar21 - 1;
                    UNLOCK();
                    if (uVar6 == 0) {
                    /* WARNING: Subroutine does not return */
                      free(puVar21);
                    }
                  }
                  puVar21 = (uint *)(local_280 + -0x10);
                  if ((*puVar21 & 0x30000000) == 0) {
                    LOCK();
                    uVar6 = *puVar21;
                    *puVar21 = *puVar21 - 1;
                    UNLOCK();
                    if (uVar6 == 0) {
                    /* WARNING: Subroutine does not return */
                      free(puVar21);
                    }
                  }
                  FUN_181211fd0(&local_270,uVar10);
                  local_278 = local_300;
                  if ((*(uint *)(lVar11 + -0x10) & 0x30000000) == 0) {
                    LOCK();
                    *(int *)(lVar11 + -0x10) = *(int *)(lVar11 + -0x10) + 1;
                    UNLOCK();
                  }
                  uVar14 = FUN_1812465e0(&local_188,&local_278,"Purpose");
                  FUN_18122c880(puVar24,uVar14,&local_270);
                  puVar21 = (uint *)(local_188 + -0x10);
                  if ((*puVar21 & 0x30000000) == 0) {
                    LOCK();
                    uVar6 = *puVar21;
                    *puVar21 = *puVar21 - 1;
                    UNLOCK();
                    if (uVar6 == 0) {
                    /* WARNING: Subroutine does not return */
                      free(puVar21);
                    }
                  }
                  puVar21 = (uint *)(local_270 + -0x10);
                  if ((*puVar21 & 0x30000000) == 0) {
                    LOCK();
                    uVar6 = *puVar21;
                    *puVar21 = *puVar21 - 1;
                    UNLOCK();
                    if (uVar6 == 0) {
                    /* WARNING: Subroutine does not return */
                      free(puVar21);
                    }
                  }
                  FUN_181211fd0(&local_260,local_2dc);
                  local_268 = local_300;
                  if ((*(uint *)(lVar11 + -0x10) & 0x30000000) == 0) {
                    LOCK();
                    *(int *)(lVar11 + -0x10) = *(int *)(lVar11 + -0x10) + 1;
                    UNLOCK();
                  }
                  uVar14 = FUN_1812465e0(&local_180,&local_268,"Country");
                  FUN_18122c880(puVar24,uVar14,&local_260);
                  puVar21 = (uint *)(local_180 + -0x10);
                  if ((*puVar21 & 0x30000000) == 0) {
                    LOCK();
                    uVar6 = *puVar21;
                    *puVar21 = *puVar21 - 1;
                    UNLOCK();
                    if (uVar6 == 0) {
                    /* WARNING: Subroutine does not return */
                      free(puVar21);
                    }
                  }
                  puVar21 = (uint *)(local_260 + -0x10);
                  if ((*puVar21 & 0x30000000) == 0) {
                    LOCK();
                    uVar6 = *puVar21;
                    *puVar21 = *puVar21 - 1;
                    UNLOCK();
                    if (uVar6 == 0) {
                    /* WARNING: Subroutine does not return */
                      free(puVar21);
                    }
                  }
                  FUN_181211fd0(&local_250,local_2e8);
                  local_258 = local_300;
                  if ((*(uint *)(lVar11 + -0x10) & 0x30000000) == 0) {
                    LOCK();
                    *(int *)(lVar11 + -0x10) = *(int *)(lVar11 + -0x10) + 1;
                    UNLOCK();
                  }
                  uVar14 = FUN_1812465e0(&local_178,&local_258,"Language");
                  FUN_18122c880(puVar24,uVar14,&local_250);
                  puVar21 = (uint *)(local_178 + -0x10);
                  if ((*puVar21 & 0x30000000) == 0) {
                    LOCK();
                    uVar6 = *puVar21;
                    *puVar21 = *puVar21 - 1;
                    UNLOCK();
                    if (uVar6 == 0) {
                    /* WARNING: Subroutine does not return */
                      free(puVar21);
                    }
                  }
                  FUN_180495200(local_250);
                  FUN_181211fd0(&local_240,local_2e6);
                  local_248 = local_300;
                  if ((*(uint *)(lVar11 + -0x10) & 0x30000000) == 0) {
                    LOCK();
                    *(int *)(lVar11 + -0x10) = *(int *)(lVar11 + -0x10) + 1;
                    UNLOCK();
                  }
                  uVar14 = FUN_1812465e0(&local_170,&local_248,"Dialect");
                  FUN_18122c880(puVar24,uVar14,&local_240);
                  FUN_180495200(local_170);
                  FUN_180495200(local_240);
                  FUN_181211fd0(&local_230,local_2e4);
                  local_238 = local_300;
                  if ((*(uint *)(lVar11 + -0x10) & 0x30000000) == 0) {
                    LOCK();
                    *(int *)(lVar11 + -0x10) = *(int *)(lVar11 + -0x10) + 1;
                    UNLOCK();
                  }
                  uVar14 = FUN_1812465e0(&local_168,&local_238,"CodePage");
                  FUN_18122c880(puVar24,uVar14,&local_230);
                  FUN_180495200(local_168);
                  FUN_180495200(local_230);
                  uVar14 = FUN_18123a690(&local_1b8,&local_158);
                  local_228 = local_300;
                  if ((*(uint *)(lVar11 + -0x10) & 0x30000000) == 0) {
                    LOCK();
                    *(int *)(lVar11 + -0x10) = *(int *)(lVar11 + -0x10) + 1;
                    UNLOCK();
                  }
                  uVar17 = FUN_1812465e0(&local_160,&local_228,&DAT_1824acc88);
                  FUN_18122c880(local_2d8,uVar17,uVar14);
                  FUN_180495200(local_160);
                  FUN_180495200(local_158);
                    /* WARNING: Subroutine does not return */
                  free(local_1b8);
                }
                (**(code **)(*(longlong *)param_1[10] + 0xb0))((longlong *)param_1[10],local_140);
                lVar11 = (**(code **)(*(longlong *)param_1[10] + 0xa8))();
              } while (lVar11 < local_310);
            }
          }
          else if (iVar5 == 0x64696361) {
            local_108[1] = 0;
            local_108[2] = 0;
            local_108[3] = 0;
            uVar20 = 0x18;
            if (uVar19 < 0x18) {
              uVar20 = uVar6;
            }
            (**(code **)(*(longlong *)local_318[10] + 0x18))
                      ((longlong *)local_318[10],local_108 + 1,uVar20);
            FUN_180541960(local_108 + 1,param_1 + 5);
          }
          else {
            if (iVar5 == 0x6e6b7254) {
              local_1a8 = (void *)0x0;
              local_1a0 = 0;
              (**(code **)(*(longlong *)local_318[10] + 0xa0))
                        ((longlong *)local_318[10],&local_1a8,uVar19);
              FUN_18049c4e0(&local_210,"tracktion loop info");
              uVar14 = FUN_18123a690(&local_1a8,&local_138);
              FUN_18122c880(param_1 + 5,&local_210,uVar14);
              FUN_180495200(local_138);
              FUN_180495200(local_210);
                    /* WARNING: Subroutine does not return */
              free(local_1a8);
            }
            lVar11 = (**(code **)(*(longlong *)local_318[10] + 0xa8))();
            if (local_310 <= lVar11) break;
          }
        }
        (**(code **)(*(longlong *)param_1[10] + 0xb0))((longlong *)param_1[10],local_310);
        uVar19 = (**(code **)(*(longlong *)param_1[10] + 0xa8))();
      } while (uVar19 < local_2b0);
      iVar5 = local_2f8;
      if (0 < local_2f8) {
        FUN_18049c4e0(&local_208,"NumCueLabels");
        uVar14 = FUN_18124a960(&local_128,iVar5);
        FUN_18122c880(param_1 + 5,&local_208,uVar14);
        FUN_180495200(local_128);
        FUN_180495200(local_208);
      }
      iVar5 = local_2f4;
      puVar24 = param_1 + 5;
      if (0 < local_2f4) {
        FUN_18049c4e0(&local_200,"NumCueNotes");
        uVar14 = FUN_18124a960(&local_120,iVar5);
        FUN_18122c880(puVar24,&local_200,uVar14);
        FUN_180495200(local_120);
        FUN_180495200(local_200);
      }
      iVar5 = local_2e0;
      if (0 < local_2e0) {
        FUN_18049c4e0(&local_1f8,"NumCueRegions");
        uVar14 = FUN_18124a960(local_118,iVar5);
        FUN_18122c880(puVar24,&local_1f8,uVar14);
        FUN_180495200(local_118[0]);
        FUN_180495200(local_1f8);
      }
    }
  }
  if (0 < *(int *)((longlong)puVar24 + 0xc)) {
    FUN_18049c4e0(&local_1e8,&DAT_1824acfe4);
    FUN_18049c4e0(&local_1f0,"MetaDataSource");
    FUN_18122c880(puVar24,&local_1f0,&local_1e8);
    FUN_180495200(local_1f0);
    FUN_180495200(local_1e8);
  }
}



############ FUN_ 18054f390 size=3435 ############
