
//================ FUN_1420e8804 @ 1420e8804 ================

DWORD FUN_1420e8804(undefined8 *param_1,LPCVOID param_2,DWORD param_3)

{
  HANDLE hFile;
  DWORD DVar1;
  DWORD nNumberOfBytesToWrite;
  uint local_res18 [4];
  
  hFile = (HANDLE)*param_1;
  DVar1 = 0;
  nNumberOfBytesToWrite = param_3;
  while( true ) {
    WriteFile(hFile,param_2,nNumberOfBytesToWrite,local_res18,(LPOVERLAPPED)0x0);
    if (local_res18[0] == 0xffffffff) {
      return 0xffffffff;
    }
    if (local_res18[0] == 0) break;
    DVar1 = DVar1 + local_res18[0];
    nNumberOfBytesToWrite = nNumberOfBytesToWrite - local_res18[0];
    if (DVar1 == param_3) {
      return DVar1;
    }
    param_2 = (LPCVOID)((longlong)param_2 + (ulonglong)local_res18[0]);
  }
  return DVar1;
}



//================ FUN_1420d7358 @ 1420d7358 ================

undefined4 FUN_1420d7358(longlong *param_1,undefined8 param_2,int param_3)

{
  char cVar1;
  int iVar2;
  int iVar3;
  longlong lVar4;
  
  iVar3 = (int)param_1[2];
  iVar2 = iVar3 * param_3;
  if (param_3 == 0) {
    lVar4 = param_1[1];
    if (*(int *)((longlong)param_1 + 0x14) != 0) {
      iVar3 = *(int *)((longlong)param_1 + 0x14);
    }
    if (lVar4 != 0) goto LAB_1420d738c;
  }
  lVar4 = *param_1;
LAB_1420d738c:
  cVar1 = FUN_1420e8878(lVar4,iVar2);
  if ((cVar1 != '\0') && (iVar2 = FUN_1420e8804(lVar4,param_2,iVar3), iVar2 == iVar3)) {
    return 1;
  }
  return 0;
}



//================ FUN_1420d6e74 @ 1420d6e74 ================

undefined1 FUN_1420d6e74(undefined8 *param_1)

{
  char cVar1;
  
  if ((*(char *)((longlong)param_1 + 0x21) == '\0') &&
     (cVar1 = FUN_1420e8a44(param_1[0xd],*param_1,0), cVar1 == '\0')) {
    FUN_1420e8204(param_1[0xe],0xffffe697,0,0);
    return 0;
  }
  return 1;
}



//================ FUN_1420d62a4 @ 1420d62a4 ================

ulonglong FUN_1420d62a4(longlong param_1)

{
  longlong *plVar1;
  char cVar2;
  int iVar3;
  ulonglong uVar4;
  longlong lVar5;
  undefined1 local_res8 [8];
  
  plVar1 = *(longlong **)(param_1 + 0x138);
  local_res8[0] = 0;
  if (*(char *)((longlong)plVar1 + 0x1e) == '\0') {
LAB_1420d62e1:
    if (*(char *)((longlong)plVar1 + 0x21) == '\0') {
      if ((*(char *)((longlong)plVar1 + 0x1d) == '\0') && (*(longlong *)(param_1 + 0x148) == 0)) {
        uVar4 = FUN_1420d6e74(plVar1);
        if ((char)uVar4 == '\0') goto LAB_1420d6381;
      }
    }
    else {
      *(undefined1 *)((longlong)plVar1 + 0x21) = 0;
      *(undefined1 *)((longlong)plVar1 + 0x1c) = 0;
      cVar2 = FUN_1420d66b4(plVar1,1);
      if (cVar2 == '\0') {
        do {
          iVar3 = FUN_1420e8f5c(plVar1[9],local_res8);
        } while (iVar3 != 0);
      }
      uVar4 = FUN_1420d6e74(plVar1);
      if ((char)uVar4 == '\0') goto LAB_1420d6381;
      FUN_1420e91c4(plVar1[9],0);
      plVar1[9] = 0;
      while( true ) {
        lVar5 = FUN_1420e8f30(plVar1[10]);
        if (lVar5 == 0) break;
        if (*(code **)(lVar5 + 0x30) != (code *)0x0) {
          (**(code **)(lVar5 + 0x30))(*(undefined8 *)(lVar5 + 0x18));
        }
      }
      plVar1[10] = 0;
    }
    if (*(longlong *)(param_1 + 0x148) != 0) {
      uVar4 = FUN_1420e8d00();
      if ((char)uVar4 == '\0') goto LAB_1420d6381;
    }
    lVar5 = *plVar1;
    if (*(int *)(lVar5 + 8) * 0x10 + 0x1cU < *(uint *)(lVar5 + 4)) {
      uVar4 = FUN_1420e8a8c(plVar1[0xd]);
    }
    else {
      uVar4 = CONCAT71((int7)((ulonglong)lVar5 >> 8),1);
    }
  }
  else {
    *(undefined4 *)(*plVar1 + 0x10) = 1;
    *(undefined1 *)((longlong)plVar1 + 0x1e) = 0;
    uVar4 = FUN_1420d6e74(plVar1);
    if ((char)uVar4 != '\0') goto LAB_1420d62e1;
LAB_1420d6381:
    uVar4 = uVar4 & 0xffffffffffffff00;
  }
  return uVar4;
}



//================ FUN_1420eac94 @ 1420eac94 ================

undefined8 FUN_1420eac94(longlong param_1,longlong param_2,undefined8 param_3)

{
  longlong *plVar1;
  char cVar2;
  int iVar3;
  undefined8 uVar4;
  longlong lVar5;
  ulonglong uVar6;
  uint uVar7;
  char *pcVar8;
  undefined1 local_res10 [8];
  
  local_res10[0] = 0;
  iVar3 = FUN_1420e44ec(*(undefined8 *)(param_2 + 0x130));
  uVar4 = FUN_1420e2c30(iVar3 + 1);
  cVar2 = FUN_1420e4688(*(undefined8 *)(param_2 + 0x130),&DAT_1433e7e00,uVar4,local_res10);
  if (cVar2 == '\0') {
    FUN_1420e2c94(uVar4);
  }
  else {
    lVar5 = FUN_1420e73c4(param_1,uVar4);
    FUN_1420e2c94(uVar4);
    if (lVar5 != 0) {
      cVar2 = FUN_1420e6b0c(param_2,lVar5,param_3);
      if (cVar2 == '\0') {
        return 0;
      }
      uVar6 = 0;
      if (*(int *)(param_1 + 0x1c0) != 0) {
        do {
          plVar1 = *(longlong **)(*(longlong *)(param_1 + 0x1c8) + uVar6 * 8);
          if ((int)plVar1[1] == 0) {
            if (*(longlong *)((undefined1 *)*plVar1 + 0x50) == param_2) {
              *(undefined1 *)*plVar1 = 1;
              FUN_1420ea748();
            }
          }
          else if (((((int)plVar1[1] == 1) && (lVar5 = *plVar1, *(char *)(lVar5 + 0x2e) == '\0')) &&
                   (*(longlong *)(lVar5 + 0xc0) == param_2)) &&
                  (cVar2 = FUN_1420eafb0(lVar5,param_1,4), cVar2 == '\0')) {
            return 0;
          }
          uVar7 = (int)uVar6 + 1;
          uVar6 = (ulonglong)uVar7;
        } while (uVar7 < *(uint *)(param_1 + 0x1c0));
      }
      cVar2 = FUN_1420e6b40(param_2);
      if (cVar2 == '\0') {
        FUN_1420e82e8(param_1,0xffffe693,0);
        FUN_1420e6b50(param_2);
        return 0;
      }
      uVar6 = 0;
      if (*(int *)(param_1 + 0xa0) != 0) {
        do {
          lVar5 = *(longlong *)(*(longlong *)(param_1 + 0x98) + uVar6 * 8);
          if ((lVar5 != 0) && (*(longlong *)(*(longlong *)(lVar5 + 0x60) + 0xc0) == param_2)) {
            for (pcVar8 = *(char **)(lVar5 + 0x20); pcVar8 != (char *)0x0;
                pcVar8 = *(char **)(pcVar8 + 0x58)) {
              if (*pcVar8 == '\0') {
                *pcVar8 = '\x01';
                FUN_1420ea748(pcVar8);
              }
            }
          }
          uVar7 = (int)uVar6 + 1;
          uVar6 = (ulonglong)uVar7;
        } while (uVar7 < *(uint *)(param_1 + 0xa0));
      }
      cVar2 = FUN_1420e6ba0(param_2);
      if (cVar2 == '\0') {
        return 0;
      }
      *(undefined1 *)(param_2 + 0x151) = 1;
      return 1;
    }
  }
  FUN_1420e82e8(param_1,0xffffe696,0);
  return 0;
}



//================ FUN_1420e07d8 @ 1420e07d8 ================

byte FUN_1420e07d8(undefined8 param_1,undefined8 param_2,undefined8 param_3)

{
  longlong lVar1;
  char cVar2;
  longlong lVar3;
  undefined8 uVar4;
  
  lVar3 = FUN_1420e35a8(param_2);
  if (lVar3 != 0) {
    lVar1 = FUN_1420e7374(param_1,lVar3);
    FUN_1420e2c94(lVar3);
    if (lVar1 != 0) {
      if (*(char *)(lVar1 + 0x151) == '\0') {
        lVar3 = FUN_1420e35a8(param_3);
        if (lVar3 != 0) {
          cVar2 = FUN_1420eac94(param_1,lVar1,lVar3);
          FUN_1420e2c94(lVar3);
          return -(cVar2 != '\0') & 1;
        }
        uVar4 = 0xffffe69c;
      }
      else {
        uVar4 = 0xffffe69b;
      }
      goto LAB_1420e086d;
    }
  }
  uVar4 = 0xffffe692;
LAB_1420e086d:
  FUN_1420e82e8(param_1,uVar4,0);
  return 0;
}



//================ FUN_1420de140 @ 1420de140 ================

undefined4 FUN_1420de140(undefined8 param_1,undefined8 param_2)

{
  char cVar1;
  undefined4 uVar2;
  longlong lVar3;
  undefined8 uVar4;
  undefined8 uVar5;
  undefined8 uVar6;
  undefined8 local_28 [2];
  undefined4 local_18;
  
  lVar3 = FUN_1420cf56c();
  uVar2 = 0;
  uVar4 = FUN_1420df9ec(lVar3);
  local_28[0] = 0;
  local_18 = 0;
  FUN_1420df9dc(lVar3,local_28);
  if (lVar3 == 0) {
    FUN_1420df9dc(0,uVar4);
    uVar2 = 0xffffd8ef;
  }
  else {
    uVar5 = FUN_1420e3570(param_1);
    uVar6 = FUN_1420e3570(param_2);
    cVar1 = FUN_1420e07d8(lVar3,uVar5,uVar6);
    if (cVar1 == '\0') {
      uVar2 = FUN_1420deb38();
    }
    FUN_1420e2c94(uVar5);
    FUN_1420e2c94(uVar6);
    FUN_1420df9dc(lVar3,uVar4);
  }
  return uVar2;
}



//================ FUN_141d75c20 @ 141d75c20 ================

int FUN_141d75c20(undefined8 param_1,undefined8 *param_2)

{
  bool bVar1;
  char cVar2;
  undefined8 uVar3;
  undefined8 uVar4;
  int local_res18 [2];
  undefined1 local_res20 [8];
  undefined1 local_28 [8];
  undefined1 local_20 [24];
  
  local_res18[0] = thunk_FUN_1420de9e0(0);
  if (local_res18[0] != 0) {
    uVar3 = FUN_1423d5720(local_20,"edb_dyn_CriticalSectionOn ERROR");
    uVar4 = FUN_1423d5720(local_res20,"dsqlOpenDeviceDB");
    uVar3 = FUN_1423d3360(local_28,uVar4,uVar3);
    FUN_1423ac220(uVar3);
    FUN_1423d59b0(local_28);
    FUN_1423d59b0(local_20);
    return 0;
  }
  bVar1 = false;
  cVar2 = thunk_FUN_1420de2bc(&DAT_1432ef45c,local_res18);
  if (cVar2 != '\0') {
    cVar2 = FUN_1423d4600(param_1,&DAT_1454551e0);
    if (cVar2 == '\0') {
      local_res18[0] = thunk_FUN_1420de210(&DAT_1432ef464);
      thunk_FUN_1420de210(&DAT_1432ef46c);
    }
    else {
      bVar1 = true;
    }
  }
  if ((local_res18[0] != 0) || (bVar1)) goto LAB_141d75d93;
  uVar3 = FUN_1423ceae0(param_1);
  local_res18[0] = thunk_FUN_1420de140(&DAT_1432ef474,uVar3);
  if (local_res18[0] == 0) {
    if (*(char *)*param_2 != '\0') {
      uVar3 = FUN_1423ceae0(param_2);
      local_res18[0] = thunk_FUN_1420de140(&DAT_1432ef47c,uVar3);
      if (local_res18[0] != 0) {
        thunk_FUN_1420de210(&DAT_1432ef484);
        thunk_FUN_1420de210(&DAT_1432ef48c);
        goto LAB_141d75d70;
      }
    }
    FUN_1423d58d0(&DAT_1454551e0,param_1);
  }
  else {
LAB_141d75d70:
    uVar3 = FUN_1423d59e0(local_res20);
    FUN_1423d5890(&DAT_1454551e0,uVar3);
    FUN_1423d59b0(local_res20);
  }
LAB_141d75d93:
  thunk_FUN_1420dea50(0);
  if (local_res18[0] != 0) {
    uVar3 = FUN_1423d5720(local_res20,"Page Manager (Close/)Open returns ERROR");
    FUN_1423ac220(uVar3);
    FUN_1423d59b0(local_res20);
  }
  return local_res18[0];
}



//================ FUN_141cad100 @ 141cad100 ================

void FUN_141cad100(longlong param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  bool bVar1;
  int iVar2;
  char local_res8 [8];
  char local_res10 [8];
  undefined1 uVar3;
  longlong lVar4;
  
  if (*(int *)(param_1 + 0xc4) != 0) {
    return;
  }
  lVar4 = param_1;
  if (*(int *)(param_1 + 0x34) - 1U < 2) {
    bVar1 = true;
    uVar3 = 1;
    if (*(char *)(param_1 + 0x150) == '\0') {
      FUN_141d75ad0();
      FUN_141d75c20(param_1 + 0x48,param_1 + 400,param_3,param_4,uVar3);
    }
    else {
      EnterCriticalSection((LPCRITICAL_SECTION)(param_1 + 0x158));
    }
  }
  else if (*(int *)(param_1 + 0x34) == 3) {
    bVar1 = true;
    uVar3 = 1;
    EnterCriticalSection((LPCRITICAL_SECTION)(param_1 + 0x120));
  }
  else {
    bVar1 = false;
    uVar3 = 0;
  }
  if (*(int *)(param_1 + 0x34) == 1) {
    if (*(int *)(param_1 + 0x38) != 1) {
LAB_141cad20b:
      local_res8[0] = '\0';
      iVar2 = (**(code **)(*(longlong *)(param_1 + 0x10) + 0x830))
                        (param_1 + 0x10,local_res8,param_3,param_4,uVar3,lVar4);
      if (iVar2 != 0) goto LAB_141cad1d4;
      if (local_res8[0] == '\0') {
        local_res10[0] = '\0';
        (**(code **)(*(longlong *)(param_1 + 0x10) + 0x838))(param_1 + 0x10,local_res10);
        if (local_res10[0] == '\0') {
          (**(code **)(*(longlong *)(param_1 + 0x10) + 0x920))(param_1 + 0x10);
          iVar2 = (**(code **)(*(longlong *)(param_1 + 0x10) + 0x100))(param_1 + 0x10);
          if (iVar2 != 0) goto LAB_141cad1d4;
          (**(code **)(*(longlong *)(param_1 + 0x10) + 0x910))(param_1 + 0x10);
        }
        else {
          (**(code **)(*(longlong *)(param_1 + 0x10) + 0x918))();
        }
      }
    }
  }
  else if (*(int *)(param_1 + 0x34) != 3) goto LAB_141cad20b;
  if (*(int *)(param_1 + 0x34) != 3) {
    (**(code **)(*(longlong *)(param_1 + 0x10) + 0xb18))(param_1 + 0x10);
  }
  (**(code **)(*(longlong *)(param_1 + 0x10) + 0xb8))(param_1 + 0x10,param_1 + 0xb8);
  if (*(int *)(param_1 + 0x34) == 1) {
    (**(code **)(*(longlong *)(param_1 + 0x10) + 0xb20))(param_1 + 0x10);
  }
LAB_141cad1d4:
  if (bVar1) {
    if (*(int *)(param_1 + 0x34) - 1U < 2) {
      if (*(char *)(param_1 + 0x150) == '\0') {
        FUN_141d75b90();
      }
      else {
        LeaveCriticalSection((LPCRITICAL_SECTION)(param_1 + 0x158));
      }
    }
    else if (*(int *)(param_1 + 0x34) == 3) {
      LeaveCriticalSection((LPCRITICAL_SECTION)(param_1 + 0x120));
    }
  }
  return;
}



//================ FUN_141cac390 @ 141cac390 ================

undefined8 FUN_141cac390(longlong *param_1)

{
  char cVar1;
  int iVar2;
  undefined8 uVar3;
  undefined1 local_res8 [8];
  undefined1 local_res10 [8];
  undefined1 local_res18 [8];
  char local_38 [8];
  longlong local_30;
  
  uVar3 = FUN_1423d5980(local_res8,param_1 + 8);
  uVar3 = FUN_1423d32c0(local_res10,uVar3,"/export.pdb");
  FUN_1423d5890(param_1 + 9,uVar3);
  FUN_1423d59b0(local_res10);
  uVar3 = FUN_1423d5980(local_res8,param_1 + 8);
  uVar3 = FUN_1423d32c0(local_res10,uVar3,"/exportExt.pdb");
  FUN_1423d5890(param_1 + 0x32,uVar3);
  FUN_1423d59b0(local_res10);
  uVar3 = FUN_1423eb8a0(local_res18,param_1 + 0xb);
  uVar3 = FUN_1423e99a0(uVar3,local_res10);
  uVar3 = FUN_1419f6820(local_res8,uVar3);
  FUN_1423d5890(param_1 + 10,uVar3);
  FUN_1423d59b0(local_res8);
  FUN_1423d59b0(local_res10);
  FUN_1423d59b0(local_res18);
  uVar3 = FUN_1423eb8a0(local_res8,param_1 + 9);
  cVar1 = FUN_1423afbf0(uVar3);
  FUN_1423d59b0(local_res8);
  if (cVar1 == '\0') {
    uVar3 = FUN_1423eb8a0(local_res10,param_1 + 8);
    FUN_1423e8960(uVar3,local_res8);
    FUN_1423d59b0(local_res8);
    FUN_1423d59b0(local_res10);
    if (*(char *)param_1[0x32] != '\0') {
      uVar3 = FUN_1423eb8a0(local_res8,param_1 + 0x32);
      FUN_1423af8d0(uVar3);
      FUN_1423d59b0(local_res8);
    }
    (**(code **)(*param_1 + 0x4d0))(param_1);
    *(undefined1 *)((longlong)param_1 + 0x31) = 1;
  }
  else {
    FUN_141d75ad0();
    uVar3 = FUN_1423eb8a0(local_res10,param_1 + 9);
    FUN_1423e99a0(uVar3,local_res8);
    FUN_1423d59b0(local_res10);
    cVar1 = FUN_141bc53d0(local_res8);
    if (cVar1 == '\0') {
      iVar2 = FUN_141bc54d0(param_1 + 9,param_1 + 0x32,local_res8);
      if (iVar2 == 0) {
        iVar2 = FUN_141be4370();
      }
    }
    else {
      iVar2 = -1;
    }
    FUN_141d75e00(param_1 + 9);
    FUN_141d75b90();
    FUN_1423d59b0(local_res8);
    if (iVar2 == 0) {
      *(undefined1 *)((longlong)param_1 + 0x31) = 1;
      FUN_141cad100(param_1);
      FUN_141c84cf0(local_38,param_1);
      iVar2 = (**(code **)(param_1[2] + 0x30))();
      *(bool *)((longlong)param_1 + 0x6d) = iVar2 != 0;
      if (local_38[0] != '\0') {
        if (*(int *)(local_30 + 0x34) - 1U < 2) {
          if (*(char *)(local_30 + 0x150) == '\0') {
            FUN_141d75b90();
          }
          else {
            LeaveCriticalSection((LPCRITICAL_SECTION)(local_30 + 0x158));
          }
        }
        else if (*(int *)(local_30 + 0x34) == 3) {
          LeaveCriticalSection((LPCRITICAL_SECTION)(local_30 + 0x120));
        }
      }
    }
    else {
      *(undefined1 *)((longlong)param_1 + 0x31) = 0;
    }
  }
  return 0;
}



//================ FUN_141b8b4c0 @ 141b8b4c0 ================

void FUN_141b8b4c0(longlong param_1,longlong *param_2)

{
  undefined4 uVar1;
  char cVar2;
  char cVar3;
  int iVar4;
  int iVar5;
  undefined8 *puVar6;
  undefined8 uVar7;
  longlong *plVar8;
  undefined8 uVar9;
  longlong lVar10;
  longlong *plVar11;
  int iVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  longlong lVar16;
  longlong lVar17;
  uint uVar18;
  uint uVar19;
  longlong *plVar20;
  uint uVar21;
  undefined4 uVar22;
  uint *puVar23;
  longlong lVar24;
  bool bVar25;
  uint local_res18 [2];
  undefined8 local_res20;
  ulonglong in_stack_fffffffffffffec0;
  ulonglong in_stack_fffffffffffffec8;
  ulonglong in_stack_fffffffffffffed0;
  undefined8 *in_stack_fffffffffffffee0;
  int local_108;
  int local_104;
  longlong local_100;
  int local_f4;
  longlong *local_f0;
  undefined8 local_e8;
  longlong local_e0;
  undefined8 local_d8;
  longlong *local_d0;
  undefined1 local_c8 [8];
  undefined1 local_c0 [8];
  LPCRITICAL_SECTION local_b8;
  undefined8 local_b0;
  undefined8 local_a8;
  undefined8 local_a0;
  undefined8 local_98;
  undefined1 local_90 [8];
  undefined1 local_88 [8];
  undefined1 local_80 [8];
  undefined1 local_78 [8];
  undefined1 local_70 [8];
  undefined1 local_68 [8];
  undefined1 local_60 [8];
  longlong local_58;
  undefined1 local_50 [16];
  
  uVar18 = 0;
  local_res20 = local_res20 & 0xffffffff00000000;
  if (*(longlong *)(param_1 + 0x9a0) == 0) {
    return;
  }
  cVar2 = FUN_1423cce60(param_1 + 0x498);
  if (cVar2 != '\0') {
    return;
  }
  FUN_1423cd250(&local_100,param_1 + 0x498);
  FUN_1423cd020(param_1 + 0x498,param_2);
  bVar25 = false;
  lVar16 = *param_2;
  lVar10 = lVar16 + (longlong)*(int *)((longlong)param_2 + 0xc) * 8;
  iVar4 = local_f4;
  if (lVar16 != lVar10) {
    do {
      FUN_1423d5980(local_res18,lVar16);
      puVar6 = (undefined8 *)FUN_1423ce820(&local_b8,local_res18);
      cVar2 = FUN_1423ccab0(&local_100,*puVar6);
      if (cVar2 == '\0') {
        bVar25 = true;
      }
      FUN_1423d59b0(local_res18);
      lVar16 = lVar16 + 8;
    } while (lVar16 != lVar10);
    iVar4 = local_f4;
    if (bVar25) {
      local_104 = 0;
      if (0 < *(int *)((longlong)param_2 + 0xc)) {
        do {
          plVar11 = (longlong *)0x0;
          uVar7 = FUN_1423ccd30(param_2,local_104);
          puVar6 = (undefined8 *)FUN_1423ce820(local_50,uVar7);
          iVar4 = FUN_1423cc9f0(&local_100,*puVar6,0,0);
          uVar22 = (undefined4)(in_stack_fffffffffffffec0 >> 0x20);
          if (iVar4 == -1) {
            local_108 = 0;
            local_d0 = (longlong *)0x0;
            local_res18[0] = local_res18[0] & 0xffffff00;
            plVar8 = (longlong *)FUN_14217c644(0x40);
            plVar20 = plVar11;
            local_f0 = plVar8;
            if (plVar8 != (longlong *)0x0) {
              *plVar8 = 0;
              plVar8[1] = 0;
              FUN_1423d59e0(plVar8 + 2);
              *(undefined1 *)(plVar8 + 3) = 0;
              FUN_1423d59e0(plVar8 + 4);
              FUN_1423d59e0(plVar8 + 5);
              FUN_1423d59e0(plVar8 + 6);
              *(undefined4 *)(plVar8 + 7) = 0;
              *(undefined1 *)((longlong)plVar8 + 0x3c) = 0;
              plVar20 = plVar8;
            }
            uVar7 = FUN_1423ccd30(param_2,local_104);
            iVar4 = FUN_141b8c1e0(param_1,uVar7,plVar20);
            if (iVar4 == 0) {
              EnterCriticalSection((LPCRITICAL_SECTION)(param_1 + 0x740));
              cVar2 = FUN_1423d45a0(plVar20 + 5,"rekordbox cloud");
              cVar3 = FUN_1423d45a0(plVar20 + 2,"CLOUD");
              if ((cVar3 == '\0') && (0x17 < *(int *)(param_1 + 0x65c))) {
                iVar4 = 4;
              }
              else {
                if ((char)plVar20[3] == '\0') {
                  uVar7 = FUN_1423d5720(local_88,"/PIONEER");
                  uVar18 = uVar18 | 2;
                }
                else {
                  uVar7 = FUN_1423d5720(local_80,"/.PIONEER");
                  uVar18 = uVar18 | 1;
                }
                local_res20 = CONCAT44(local_res20._4_4_,uVar18);
                uVar9 = FUN_1423d5980(local_90,plVar20 + 4);
                FUN_1423d3360(local_c0,uVar9,uVar7);
                uVar19 = uVar18;
                if ((uVar18 & 2) != 0) {
                  uVar19 = uVar18 & 0xfffffffd;
                  local_res20 = CONCAT44(local_res20._4_4_,uVar18) & 0xfffffffffffffffd;
                  FUN_1423d59b0(local_88);
                }
                uVar18 = uVar19;
                if ((uVar19 & 1) != 0) {
                  uVar18 = uVar19 & 0xfffffffe;
                  local_res20 = CONCAT44(local_res20._4_4_,uVar19) & 0xfffffffffffffffe;
                  FUN_1423d59b0(local_80);
                }
                uVar7 = FUN_1423d5720(local_70,"/rekordbox");
                uVar9 = FUN_1423d5980(local_78,local_c0);
                FUN_1423d3360(local_c8,uVar9,uVar7);
                FUN_1423d59b0(local_70);
                cVar3 = FUN_141a18ec0(plVar20 + 2);
                if (cVar3 == '\0') {
                  if (cVar2 == '\0') {
                    iVar4 = FUN_141b8c4d0(param_1,plVar20 + 4,(char)plVar20[3]);
                    plVar11 = local_d0;
                    if (iVar4 == 0) {
                      uVar1 = *(undefined4 *)(param_1 + 0x660);
                      lVar10 = FUN_14217c644();
                      local_58 = lVar10;
                      if (lVar10 == 0) {
                        plVar11 = (longlong *)0x0;
                      }
                      else {
                        local_98 = 0;
                        FUN_1423d59e0(&local_98);
                        local_a0 = 0;
                        FUN_1423d59e0(&local_a0);
                        local_res20 = CONCAT44(local_res20._4_4_,uVar18) | 0x30;
                        in_stack_fffffffffffffee0 = &local_a0;
                        plVar11 = (longlong *)
                                  FUN_141c8f1e0(lVar10,1,local_c8,local_c0,(char)plVar20[3],
                                                CONCAT44(uVar22,*(undefined4 *)(param_1 + 0x660)),
                                                in_stack_fffffffffffffec8 & 0xffffffffffffff00,1,0,
                                                in_stack_fffffffffffffee0,&local_98);
                        uVar18 = uVar18 | 0x30;
                      }
                      *plVar20 = (longlong)plVar11;
                      uVar19 = uVar18;
                      if ((uVar18 & 0x20) != 0) {
                        uVar19 = uVar18 & 0xffffffdf;
                        local_res20 = CONCAT44(local_res20._4_4_,uVar18) & 0xffffffffffffffdf;
                        FUN_1423d59b0(&local_a0);
                        plVar11 = (longlong *)*plVar20;
                      }
                      uVar18 = uVar19;
                      if ((uVar19 & 0x10) != 0) {
                        uVar18 = uVar19 & 0xffffffef;
                        local_res20 = CONCAT44(local_res20._4_4_,uVar19) & 0xffffffffffffffef;
                        FUN_1423d59b0(&local_98);
                        plVar11 = (longlong *)*plVar20;
                      }
                      (**(code **)(*plVar11 + 0x4e0))(plVar11,0);
                      puVar6 = (undefined8 *)*plVar20;
                      if (*(char *)((longlong)puVar6 + 0x31) == '\0') {
                        if (puVar6 != (undefined8 *)0x0) {
                          (**(code **)*puVar6)(puVar6,1);
                        }
                        lVar10 = FUN_14217c644();
                        if (lVar10 == 0) {
                          plVar11 = (longlong *)0x0;
                        }
                        else {
                          plVar11 = (longlong *)FUN_1423d59e0(lVar10);
                        }
                        goto LAB_141b8baad;
                      }
                      FUN_1423d58d0(plVar20 + 6,puVar6 + 9);
                      *(undefined4 *)(plVar20 + 1) = *(undefined4 *)(param_1 + 0x660);
                      *(int *)(param_1 + 0x660) = *(int *)(param_1 + 0x660) + 1;
                      *(undefined4 *)((longlong)plVar20 + 0xc) = 1;
                      *(undefined4 *)(plVar20 + 7) = 0xffffffff;
                      iVar12 = *(int *)(param_1 + 0x65c);
                      iVar5 = iVar12 + 1;
                      if (*(int *)(param_1 + 0x658) < iVar5) {
                        if (iVar5 < 0) {
                          iVar5 = iVar12 + 2;
                        }
                        FUN_140c708a0((longlong *)(param_1 + 0x650),
                                      iVar12 + 9 + (iVar5 >> 1) & 0xfffffff8);
                      }
                      iVar5 = *(int *)(param_1 + 0x65c);
                      *(int *)(param_1 + 0x65c) = iVar5 + 1;
                      *(longlong **)(*(longlong *)(param_1 + 0x650) + (longlong)iVar5 * 8) = plVar20
                      ;
                      local_108 = (int)plVar20[1];
                      local_res18[0] =
                           CONCAT31(local_res18[0]._1_3_,*(undefined1 *)(*plVar20 + 0x6d));
                      FUN_141b81990(param_1,local_60,local_108);
                      FUN_1423d59b0(local_60);
                      cVar2 = FUN_141b4b2f0(param_1,1);
                      if ((cVar2 != '\0') ||
                         (cVar2 = FUN_141cc0fe0(local_c8), plVar11 = local_d0, cVar2 != '\0')) {
                        FUN_141b4a770(param_1,uVar1);
                        plVar11 = local_d0;
                      }
                    }
                  }
                  else {
                    plVar11 = (longlong *)0x0;
                    iVar4 = 0;
                    lVar10 = FUN_14217c644(0x490);
                    uVar22 = (undefined4)(in_stack_fffffffffffffec8 >> 0x20);
                    plVar8 = plVar11;
                    local_e0 = lVar10;
                    if (lVar10 != 0) {
                      local_a8 = 0;
                      FUN_1423d59e0(&local_a8);
                      local_b0 = 0;
                      FUN_1423d59e0(&local_b0);
                      local_res20 = CONCAT44(local_res20._4_4_,uVar18) | 0xc;
                      in_stack_fffffffffffffee0 =
                           (undefined8 *)((ulonglong)in_stack_fffffffffffffee0 & 0xffffffffffffff00)
                      ;
                      plVar8 = (longlong *)
                               FUN_141c413b0(lVar10,param_1,1,local_c8,local_c0,(char)plVar20[3],
                                             CONCAT44(uVar22,*(undefined4 *)(param_1 + 0x660)),
                                             in_stack_fffffffffffffed0 & 0xffffffffffffff00,1,
                                             in_stack_fffffffffffffee0,&local_b0,&local_a8);
                      uVar18 = uVar18 | 0xc;
                    }
                    *plVar20 = (longlong)plVar8;
                    uVar19 = uVar18;
                    if ((uVar18 & 8) != 0) {
                      uVar19 = uVar18 & 0xfffffff7;
                      local_res20 = CONCAT44(local_res20._4_4_,uVar18) & 0xfffffffffffffff7;
                      FUN_1423d59b0(&local_b0);
                    }
                    uVar18 = uVar19;
                    if ((uVar19 & 4) != 0) {
                      uVar18 = uVar19 & 0xfffffffb;
                      local_res20 = CONCAT44(local_res20._4_4_,uVar19) & 0xfffffffffffffffb;
                      FUN_1423d59b0(&local_a8);
                    }
                    puVar6 = (undefined8 *)*plVar20;
                    if (*(char *)((longlong)puVar6 + 0x31) == '\0') {
                      if (puVar6 != (undefined8 *)0x0) {
                        (**(code **)*puVar6)(puVar6,1);
                      }
                      lVar10 = FUN_14217c644();
                      if (lVar10 != 0) {
                        plVar11 = (longlong *)FUN_1423d59e0(lVar10);
                      }
LAB_141b8baad:
                      iVar4 = 5;
                      uVar7 = FUN_1423ccd30(param_2,local_104);
                      FUN_1423d58d0(plVar11,uVar7);
                    }
                    else {
                      FUN_1423d58d0(plVar20 + 6,puVar6 + 9);
                      *(undefined4 *)(plVar20 + 1) = *(undefined4 *)(param_1 + 0x660);
                      *(int *)(param_1 + 0x660) = *(int *)(param_1 + 0x660) + 1;
                      *(undefined4 *)((longlong)plVar20 + 0xc) = 1;
                      *(undefined4 *)(plVar20 + 7) = 0xffffffff;
                      iVar5 = *(int *)(param_1 + 0x65c) + 1;
                      if (*(int *)(param_1 + 0x658) < iVar5) {
                        iVar12 = iVar5;
                        if (iVar5 < 0) {
                          iVar12 = *(int *)(param_1 + 0x65c) + 2;
                        }
                        FUN_140c708a0((longlong *)(param_1 + 0x650),
                                      (iVar12 >> 1) + 8 + iVar5 & 0xfffffff8);
                      }
                      iVar5 = *(int *)(param_1 + 0x65c);
                      *(int *)(param_1 + 0x65c) = iVar5 + 1;
                      *(longlong **)(*(longlong *)(param_1 + 0x650) + (longlong)iVar5 * 8) = plVar20
                      ;
                      local_108 = (int)plVar20[1];
                      local_res18[0] =
                           CONCAT31(local_res18[0]._1_3_,*(undefined1 *)(*plVar20 + 0x6d));
                      FUN_141b81990(param_1,local_68,local_108);
                      FUN_1423d59b0(local_68);
                      plVar11 = local_d0;
                    }
                  }
                }
                else {
                  *plVar20 = 0;
                  uVar7 = FUN_1423d59e0(&local_b8);
                  FUN_1423d5890(plVar20 + 6,uVar7);
                  FUN_1423d59b0(&local_b8);
                  *(undefined4 *)(plVar20 + 1) = *(undefined4 *)(param_1 + 0x660);
                  *(int *)(param_1 + 0x660) = *(int *)(param_1 + 0x660) + 1;
                  *(undefined4 *)((longlong)plVar20 + 0xc) = 1;
                  *(undefined4 *)(plVar20 + 7) = 0xffffffff;
                  iVar12 = *(int *)(param_1 + 0x65c);
                  iVar5 = iVar12 + 1;
                  if (*(int *)(param_1 + 0x658) < iVar5) {
                    if (iVar5 < 0) {
                      iVar5 = iVar12 + 2;
                    }
                    FUN_140c708a0((longlong *)(param_1 + 0x650),
                                  iVar12 + 9 + (iVar5 >> 1) & 0xfffffff8);
                  }
                  iVar5 = *(int *)(param_1 + 0x65c);
                  *(int *)(param_1 + 0x65c) = iVar5 + 1;
                  *(longlong **)(*(longlong *)(param_1 + 0x650) + (longlong)iVar5 * 8) = plVar20;
                  local_108 = (int)plVar20[1];
                  local_res18[0] = local_res18[0] & 0xffffff00;
                  plVar11 = local_d0;
                }
                FUN_1423d59b0(local_c8);
                FUN_1423d59b0(local_c0);
              }
              LeaveCriticalSection((LPCRITICAL_SECTION)(param_1 + 0x740));
            }
            if ((iVar4 != 0) && (plVar20 != (longlong *)0x0)) {
              FUN_141b8e650(plVar20,1);
            }
            in_stack_fffffffffffffec0 = (ulonglong)(byte)local_res18[0];
            in_stack_fffffffffffffed0 = 0;
            in_stack_fffffffffffffec8 = 0;
            FUN_141ad57a0(param_1,2,(longlong)local_108,(longlong)iVar4,plVar11,
                          in_stack_fffffffffffffec0,0,0);
          }
          local_104 = local_104 + 1;
        } while (local_104 < *(int *)((longlong)param_2 + 0xc));
      }
      goto LAB_141b8c184;
    }
  }
  while (iVar4 = iVar4 + -1, -1 < iVar4) {
    uVar7 = FUN_1423ccd30(&local_100,iVar4);
    puVar6 = (undefined8 *)FUN_1423ce820(local_res18,uVar7);
    cVar2 = FUN_1423ccab0(param_2,*puVar6);
    if (cVar2 != '\0') {
      FUN_1423cc8c0(&local_100,iVar4);
    }
  }
  local_f0 = (longlong *)0x0;
  local_e8 = 0;
  lVar10 = 0;
  local_e0 = 0;
  iVar5 = 0;
  local_d8 = 0;
  uVar18 = 0;
  local_b8 = (LPCRITICAL_SECTION)(param_1 + 0x740);
  EnterCriticalSection(local_b8);
  local_res18[0] = 0;
  iVar4 = local_f4;
  uVar19 = 0;
  if (0 < local_f4) {
    do {
      uVar18 = uVar19;
      uVar15 = 0;
      uVar19 = local_res18[0];
      if (0 < *(int *)(param_1 + 0x65c)) {
        local_res20 = 0;
LAB_141b8bdb3:
        if (uVar15 < *(uint *)(param_1 + 0x65c)) {
          lVar16 = *(longlong *)(local_res20 + *(longlong *)(param_1 + 0x650));
        }
        else {
          lVar16 = 0;
        }
        cVar2 = FUN_1423d45a0(lVar16 + 0x10,"CLOUD");
        if (cVar2 != '\0') {
          uVar7 = FUN_1423ccd30(&local_100,uVar19);
          puVar6 = (undefined8 *)FUN_1423ce840(&local_58,"rbcloud://");
          cVar2 = FUN_1423d1780(uVar7,*puVar6);
          uVar19 = local_res18[0];
          if (cVar2 == '\0') goto LAB_141b8bf70;
          uVar19 = 0;
          uVar21 = uVar18;
          uVar13 = 0;
          if (0 < (int)uVar18) {
            do {
              uVar19 = uVar13;
              iVar4 = *(int *)(lVar10 + (longlong)(int)uVar19 * 4);
              if ((iVar4 <= (int)uVar15) && ((int)uVar15 <= iVar4)) goto LAB_141b8bef8;
              uVar13 = (int)(uVar19 + uVar21) >> 1;
              iVar4 = *(int *)(lVar10 + (longlong)(int)uVar13 * 4);
              if (uVar13 == uVar19) goto LAB_141b8bef3;
              if ((int)uVar15 < iVar4) {
                uVar14 = 0xffffffff;
              }
              else {
                uVar14 = (uint)(iVar4 < (int)uVar15);
              }
              if ((int)uVar14 < 0) {
                uVar21 = uVar13;
                uVar13 = uVar19;
              }
              uVar19 = uVar13;
              uVar13 = uVar19;
            } while ((int)uVar19 < (int)uVar21);
          }
          goto LAB_141b8befa;
        }
        uVar7 = FUN_1423ccd30(&local_100,uVar19);
        if (uVar15 < *(uint *)(param_1 + 0x65c)) {
          lVar16 = *(longlong *)(local_res20 + *(longlong *)(param_1 + 0x650));
        }
        else {
          lVar16 = 0;
        }
        cVar2 = FUN_1423d4600(lVar16 + 0x20,uVar7);
        if (cVar2 != '\0') {
          uVar19 = 0;
          uVar21 = uVar18;
          uVar13 = 0;
          if (0 < (int)uVar18) {
            do {
              uVar19 = uVar13;
              iVar4 = *(int *)(lVar10 + (longlong)(int)uVar19 * 4);
              if ((iVar4 <= (int)uVar15) && ((int)uVar15 <= iVar4)) goto LAB_141b8bef8;
              uVar13 = (int)(uVar19 + uVar21) >> 1;
              iVar4 = *(int *)(lVar10 + (longlong)(int)uVar13 * 4);
              if (uVar13 == uVar19) goto LAB_141b8bef3;
              if ((int)uVar15 < iVar4) {
                uVar14 = 0xffffffff;
              }
              else {
                uVar14 = (uint)(iVar4 < (int)uVar15);
              }
              if ((int)uVar14 < 0) {
                uVar21 = uVar13;
                uVar13 = uVar19;
              }
              uVar19 = uVar13;
              uVar13 = uVar19;
            } while ((int)uVar19 < (int)uVar21);
          }
          goto LAB_141b8befa;
        }
        goto LAB_141b8bf70;
      }
LAB_141b8bfa1:
      local_res18[0] = uVar19 + 1;
      uVar19 = uVar18;
    } while ((int)local_res18[0] < iVar4);
  }
  plVar11 = (longlong *)(param_1 + 0x650);
  uVar19 = uVar18 - 1;
  lVar16 = (longlong)(int)uVar19;
  if (-1 < (int)uVar19) {
    do {
      lVar17 = lVar16 * 4;
      if (uVar19 < uVar18) {
        uVar15 = *(uint *)(lVar10 + lVar17);
      }
      else {
        uVar15 = 0;
      }
      if (uVar15 < *(uint *)(param_1 + 0x65c)) {
        plVar20 = *(longlong **)(*plVar11 + (longlong)(int)uVar15 * 8);
      }
      else {
        plVar20 = (longlong *)0x0;
      }
      puVar6 = (undefined8 *)*plVar20;
      if (puVar6 != (undefined8 *)0x0) {
        (**(code **)*puVar6)(puVar6,1);
      }
      if (uVar19 < uVar18) {
        uVar15 = *(uint *)(lVar10 + lVar17);
      }
      else {
        uVar15 = 0;
      }
      if (uVar15 < *(uint *)(param_1 + 0x65c)) {
        lVar24 = *(longlong *)(*plVar11 + (longlong)(int)uVar15 * 8);
      }
      else {
        lVar24 = 0;
      }
      iVar4 = local_e8._4_4_ + 1;
      iVar5 = local_e8._4_4_;
      if ((int)local_e8 < iVar4) {
        if (iVar4 < 0) {
          iVar4 = local_e8._4_4_ + 2;
        }
        FUN_140c8ae10(&local_f0,local_e8._4_4_ + 9 + (iVar4 >> 1) & 0xfffffff8);
        iVar5 = local_e8._4_4_;
      }
      local_e8 = CONCAT44(iVar5 + 1,(int)local_e8);
      *(undefined4 *)((longlong)local_f0 + (longlong)iVar5 * 4) = *(undefined4 *)(lVar24 + 8);
      if (uVar19 < uVar18) {
        uVar15 = *(uint *)(lVar10 + lVar17);
      }
      else {
        uVar15 = 0;
      }
      lVar17 = 0;
      uVar21 = *(uint *)(param_1 + 0x65c);
      if (uVar15 < uVar21) {
        plVar20 = (longlong *)(*plVar11 + (longlong)(int)uVar15 * 8);
        lVar17 = *plVar20;
        FUN_1422fd540(plVar20,plVar20 + 1);
        *(int *)(param_1 + 0x65c) = *(int *)(param_1 + 0x65c) + -1;
        uVar21 = *(uint *)(param_1 + 0x65c);
      }
      if (((int)(uVar21 * 2) < *(int *)(param_1 + 0x658)) &&
         ((int)uVar21 < *(int *)(param_1 + 0x658))) {
        FUN_140c708a0(plVar11);
      }
      if (lVar17 != 0) {
        FUN_141b8e650(lVar17,1);
      }
      uVar19 = uVar19 - 1;
      lVar16 = lVar16 + -1;
    } while (-1 < lVar16);
  }
  LeaveCriticalSection(local_b8);
  FUN_14230889c(lVar10);
  plVar11 = local_f0;
  uVar19 = 0;
  uVar18 = local_e8._4_4_;
  if (0 < (int)local_e8._4_4_) {
    bVar25 = local_e8._4_4_ != 0;
    plVar20 = local_f0;
    do {
      iVar4 = 0;
      uVar22 = 0;
      if (bVar25) {
        uVar22 = (int)*plVar20;
      }
      FUN_141ad7ec0(param_1,1,uVar22);
      if (bVar25) {
        iVar4 = (int)*plVar20;
      }
      FUN_141ad57a0(param_1,3,(longlong)iVar4,0,0,0,0,0);
      uVar19 = uVar19 + 1;
      plVar20 = (longlong *)((longlong)plVar20 + 4);
      bVar25 = uVar19 < uVar18;
    } while ((int)uVar19 < (int)uVar18);
  }
  if ((uVar18 == 0) && (local_f4 != 0)) {
    FUN_141ad57a0(param_1,3,0,0,0,0,0,0);
  }
  FUN_14230889c(plVar11);
LAB_141b8c184:
  iVar4 = 0;
  if (0 < local_f4) {
    do {
      FUN_1423d59b0(local_100 + (longlong)iVar4 * 8);
      iVar4 = iVar4 + 1;
    } while (iVar4 < local_f4);
  }
  local_f4 = 0;
  FUN_14230889c(local_100);
  return;
LAB_141b8bef3:
  if (iVar4 <= (int)uVar15) {
LAB_141b8bef8:
    uVar19 = uVar19 + 1;
  }
LAB_141b8befa:
  iVar4 = uVar18 + 1;
  if (iVar5 < iVar4) {
    iVar5 = iVar4;
    if (iVar4 < 0) {
      iVar5 = uVar18 + 2;
    }
    FUN_140c8ae10(&local_e0,(iVar5 >> 1) + 8 + iVar4 & 0xfffffff8);
    lVar10 = local_e0;
    uVar18 = local_d8._4_4_;
    iVar5 = (int)local_d8;
  }
  if (uVar19 < uVar18) {
    puVar23 = (uint *)(lVar10 + (longlong)(int)uVar19 * 4);
    FUN_1422fd540(puVar23 + 1,puVar23);
  }
  else {
    puVar23 = (uint *)(lVar10 + (longlong)(int)uVar18 * 4);
  }
  uVar18 = uVar18 + 1;
  local_d8 = CONCAT44(uVar18,(int)local_d8);
  *puVar23 = uVar15;
  uVar19 = local_res18[0];
LAB_141b8bf70:
  uVar15 = uVar15 + 1;
  local_res20 = local_res20 + 8;
  iVar4 = local_f4;
  if (*(int *)(param_1 + 0x65c) <= (int)uVar15) goto LAB_141b8bfa1;
  goto LAB_141b8bdb3;
}



//================ FUN_141aca850 @ 141aca850 ================

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_141aca850(longlong param_1)

{
  undefined4 uVar1;
  longlong lVar2;
  char cVar3;
  char cVar4;
  undefined8 *puVar5;
  undefined8 uVar6;
  longlong lVar7;
  longlong *plVar8;
  undefined8 uVar9;
  undefined8 *puVar10;
  undefined8 *puVar11;
  int iVar12;
  uint uVar13;
  longlong lVar14;
  undefined1 auStack_5f8 [32];
  undefined8 local_5d8;
  uint local_5c8;
  undefined8 *local_5c0;
  undefined8 *local_5b8;
  int local_5ac;
  char *local_5a8;
  longlong local_5a0;
  int local_594;
  longlong local_590;
  undefined8 uStack_588;
  undefined4 local_580;
  undefined1 local_578 [8];
  longlong local_570;
  int local_564;
  undefined **local_560;
  longlong local_558;
  undefined ***local_528;
  undefined1 local_518 [1232];
  ulonglong local_48;
  
  local_48 = DAT_14519c398 ^ (ulonglong)auStack_5f8;
  puVar11 = (undefined8 *)0x0;
  local_5c8 = 0;
  local_5c0 = (undefined8 *)((ulonglong)local_5c0 & 0xffffffff00000000);
  lVar7 = *(longlong *)(param_1 + 0x4a8);
  uVar9 = DAT_144c87478;
  while (lVar7 == 0) {
    cVar3 = FUN_1423c96e0(param_1);
    if (cVar3 != '\0') {
      return;
    }
    FUN_1423c9430(param_1,uVar9);
    lVar7 = *(longlong *)(param_1 + 0x4a8);
  }
  *(undefined1 *)(param_1 + 0x4fc) = 1;
  puVar5 = (undefined8 *)FUN_14217c644(0x78);
  puVar10 = puVar11;
  local_5b8 = puVar5;
  if (puVar5 != (undefined8 *)0x0) {
    local_5d8 = 0;
    FUN_141a08b30(puVar5,0x1234,0,0);
    *(undefined4 *)(puVar5 + 7) = 5;
    puVar5[8] = 1;
    puVar5[9] = 0xf;
    puVar5[10] = 1;
    *puVar5 = db::DBCommonMessage::vftable;
    puVar5[0xb] = 0;
    puVar5[0xc] = 0;
    puVar5[0xd] = 0;
    puVar5[0xe] = 0;
    puVar10 = puVar5;
  }
  thunk_FUN_141a08cc0(*(undefined8 *)(param_1 + 0x4a8),puVar10);
  if (*(longlong *)(param_1 + 0x4e8) != 0) {
    puVar5 = (undefined8 *)FUN_14217c644(0x78);
    puVar10 = puVar11;
    local_5b8 = puVar5;
    if (puVar5 != (undefined8 *)0x0) {
      local_5d8 = 0;
      FUN_141a08b30(puVar5,0x1234,0,0);
      *(undefined4 *)(puVar5 + 7) = 5;
      puVar5[8] = 1;
      puVar5[9] = 0xf;
      puVar5[10] = 1;
      *puVar5 = db::DBCommonMessage::vftable;
      puVar5[0xb] = 0;
      puVar5[0xc] = 0;
      puVar5[0xd] = 0;
      puVar5[0xe] = 0;
      puVar10 = puVar5;
    }
    thunk_FUN_141a08cc0(*(undefined8 *)(param_1 + 0x4e8),puVar10);
  }
  uVar6 = FUN_140ff8e40(local_518);
  FUN_141ad87e0(param_1,0xf,uVar6);
  FUN_140ff9950(local_518);
  lVar7 = FUN_141b988e0(param_1);
  if ((*(longlong *)(param_1 + 0x9a0) != 0) && (lVar7 != 0)) {
    uVar6 = FUN_1419718d0();
    cVar3 = FUN_14197c3b0(uVar6);
    if ((cVar3 != '\0') &&
       ((plVar8 = (longlong *)FUN_141c9e670(lVar7), plVar8 != (longlong *)0x0 &&
        (uVar13 = *(int *)((longlong)plVar8 + 0xc) - 1, -1 < (int)uVar13)))) {
      lVar14 = (longlong)(int)uVar13;
      do {
        if ((uVar13 < *(uint *)((longlong)plVar8 + 0xc)) &&
           (lVar2 = *(longlong *)(*plVar8 + lVar14 * 8), lVar2 != 0)) {
          local_5c0 = (undefined8 *)((ulonglong)local_5c0 & 0xffffffff00000000);
          FUN_141ca0db0(lVar7,*(undefined4 *)(lVar2 + 8),&local_5c0,lVar2);
          if ((((((ulonglong)local_5c0 & 1) == 0) ||
               (((((ulonglong)local_5c0 & 0x1000) != 0 || (((ulonglong)local_5c0 & 0x4000) != 0)) ||
                (((ulonglong)local_5c0 & 0x2000) != 0)))) &&
              ((*(char *)(lVar2 + 0x3a8) != '\0' && (((ulonglong)local_5c0 & 2) == 0)))) &&
             (((*(uint *)(lVar2 + 1000) >> 0x18 & 1) == 0 ||
              ((*(uint *)(lVar2 + 1000) >> 0x1b & 1) != 0)))) {
            uVar6 = FUN_1423eb8a0(&local_5b8,lVar2 + 0x88);
            cVar3 = FUN_1423afbb0(uVar6);
            FUN_1423d59b0(&local_5b8);
            if (cVar3 != '\0') {
              if (*(longlong *)(param_1 + 0x4a8) != 0) {
                puVar10 = (undefined8 *)FUN_14217c644(0x78);
                local_5b8 = puVar10;
                if (puVar10 == (undefined8 *)0x0) {
                  thunk_FUN_141a08cc0(*(undefined8 *)(param_1 + 0x4a8),0);
                }
                else {
                  local_5d8 = 0;
                  FUN_141a08b30(puVar10,0x1234,0,0);
                  *(undefined4 *)(puVar10 + 7) = 5;
                  puVar10[8] = 0xd;
                  puVar10[9] = 0;
                  puVar10[10] = 0;
                  *puVar10 = db::DBCommonMessage::vftable;
                  puVar10[0xb] = 0;
                  puVar10[0xc] = 0;
                  puVar10[0xd] = 0;
                  puVar10[0xe] = 0;
                  thunk_FUN_141a08cc0(*(undefined8 *)(param_1 + 0x4a8),puVar10);
                }
              }
              break;
            }
          }
        }
        uVar13 = uVar13 - 1;
        lVar14 = lVar14 + -1;
      } while (-1 < lVar14);
    }
  }
  FUN_1423d59e0(&local_5a8);
  puVar10 = puVar11;
  do {
    cVar3 = FUN_1423c96e0(param_1);
    if (cVar3 != '\0') goto LAB_141acb13b;
    uVar6 = FUN_141a02330(&local_5b8);
    FUN_1423d5890(&local_5a8,uVar6);
    FUN_1423d59b0(&local_5b8);
    if (*local_5a8 != '\0') break;
    FUN_1423c9430(param_1,uVar9);
    uVar13 = (int)puVar10 + 1;
    puVar10 = (undefined8 *)(ulonglong)uVar13;
  } while ((int)uVar13 < 100);
  iVar12 = *(int *)(param_1 + 0x500);
  if ((iVar12 != 0) && (*(longlong *)(param_1 + 0x4a8) != 0)) {
    puVar5 = (undefined8 *)FUN_14217c644(0x78);
    puVar10 = puVar11;
    local_5b8 = puVar5;
    if (puVar5 != (undefined8 *)0x0) {
      local_5d8 = 0;
      FUN_141a08b30(puVar5,0x1234,0,0);
      *(undefined4 *)(puVar5 + 7) = 5;
      puVar5[8] = 0xe;
      puVar5[9] = 0;
      puVar5[10] = (longlong)iVar12;
      *puVar5 = db::DBCommonMessage::vftable;
      puVar5[0xb] = 0;
      puVar5[0xc] = 0;
      puVar5[0xd] = 0;
      puVar5[0xe] = 0;
      puVar10 = puVar5;
    }
    thunk_FUN_141a08cc0(*(undefined8 *)(param_1 + 0x4a8),puVar10);
  }
  FUN_1423cd250(&local_5a0,param_1 + 0x498);
  if (*(longlong *)(param_1 + 0x490) != 0) {
    uVar9 = FUN_141a18d30(*(longlong *)(param_1 + 0x490),&local_5b8);
    FUN_1423ccb40(&local_5a0,uVar9,0,0xffffffff);
    puVar10 = puVar11;
    if (0 < local_5ac) {
      do {
        FUN_1423d59b0(local_5b8 + (int)puVar10);
        uVar13 = (int)puVar10 + 1;
        puVar10 = (undefined8 *)(ulonglong)uVar13;
      } while ((int)uVar13 < local_5ac);
    }
    local_5ac = 0;
    FUN_14230889c(local_5b8);
  }
  FUN_141b8b4c0(param_1,&local_5a0);
  local_560 = std::_Func_impl_no_alloc<<lambda_b2816ee0d001ae4b6724f21d3e028302>,void>::vftable;
  local_528 = &local_560;
  local_558 = param_1;
  FUN_1424704f0(&local_560);
  local_560 = std::_Func_impl_no_alloc<<lambda_cc2fa92366270e3331ff36d4b5f67bbe>,void>::vftable;
  local_528 = &local_560;
  local_558 = param_1;
  FUN_1424704f0(&local_560);
  if (*(longlong *)(param_1 + 0x9a0) != 0) {
    local_590 = _DAT_143135940;
    uStack_588 = _UNK_143135948;
    local_580 = 0;
    cVar3 = FUN_141c79800(&local_5c0,&local_590);
    if (((cVar3 != '\0') && ((int)local_5c0 == 2)) && (*(longlong *)(param_1 + 0x4a8) != 0)) {
      puVar10 = (undefined8 *)FUN_14217c644(0x78);
      local_5b8 = puVar10;
      if (puVar10 != (undefined8 *)0x0) {
        local_5d8 = 0;
        FUN_141a08b30(puVar10,0x1234,0,0);
        *(undefined4 *)(puVar10 + 7) = 5;
        puVar10[8] = 0x15;
        puVar10[9] = 0;
        puVar10[10] = 0;
        *puVar10 = db::DBCommonMessage::vftable;
        puVar10[0xb] = 0;
        puVar10[0xc] = 0;
        puVar10[0xd] = 0;
        puVar10[0xe] = 0;
        puVar11 = puVar10;
      }
      thunk_FUN_141a08cc0(*(undefined8 *)(param_1 + 0x4a8),puVar11);
    }
  }
  cVar3 = FUN_1423c96e0(param_1);
  uVar9 = DAT_144c874b8;
  do {
    if (cVar3 != '\0') {
LAB_141acb108:
      iVar12 = 0;
      if (0 < local_594) {
        do {
          FUN_1423d59b0(local_5a0 + (longlong)iVar12 * 8);
          iVar12 = iVar12 + 1;
        } while (iVar12 < local_594);
      }
      local_594 = 0;
      FUN_14230889c(local_5a0);
LAB_141acb13b:
      FUN_1423d59b0(&local_5a8);
      return;
    }
    puVar11 = (undefined8 *)FUN_141a09090(param_1 + 0x250,0xffffffff);
    if (puVar11 == (undefined8 *)0x0) {
      FUN_1423d5720(local_578,"common message parameter error");
      FUN_1423ac220(local_578);
      FUN_1423d59b0(local_578);
    }
    else {
      if (*(int *)(puVar11 + 7) == 1) {
        (**(code **)*puVar11)(puVar11,1);
        goto LAB_141acb108;
      }
      puVar10 = (undefined8 *)puVar11[8];
      if ((*(int *)(puVar11 + 7) != 100) || (puVar10 == (undefined8 *)0x0)) {
        FUN_1423d5720(&local_5b8,"message parameter error");
        FUN_1423ac220(&local_5b8);
        FUN_1423d59b0(&local_5b8);
        (**(code **)*puVar11)(puVar11,1);
        goto LAB_141acb0e6;
      }
      *(undefined4 *)(param_1 + 0x73c) = *(undefined4 *)((longlong)puVar10 + 0xc);
      uVar1 = *(undefined4 *)(puVar10 + 1);
      cVar3 = '\0';
      cVar4 = FUN_1423c96e0(param_1);
      while ((cVar4 == '\0' && (cVar3 = FUN_1423aa4b0(param_1 + 0x610), cVar3 == '\0'))) {
        FUN_1423c9430(param_1,uVar9);
        cVar4 = FUN_1423c96e0(param_1);
      }
      switch(uVar1) {
      case 1:
        cVar4 = FUN_1423c96e0(param_1);
        if (cVar4 == '\0') {
          if (*(longlong *)(param_1 + 0x490) == 0) {
            uVar6 = FUN_1423cd280(&local_570);
            uVar13 = local_5c8 | 2;
          }
          else {
            uVar6 = FUN_141a18d30(*(longlong *)(param_1 + 0x490),&local_590);
            uVar13 = local_5c8 | 1;
          }
          local_5c0 = (undefined8 *)CONCAT44(local_5c0._4_4_,uVar13);
          local_5c8 = uVar13;
          FUN_141b8b4c0(param_1,uVar6);
          if ((uVar13 & 2) != 0) {
            uVar13 = uVar13 & 0xfffffffd;
            iVar12 = 0;
            local_5c8 = uVar13;
            if (0 < local_564) {
              do {
                FUN_1423d59b0(local_570 + (longlong)iVar12 * 8);
                iVar12 = iVar12 + 1;
              } while (iVar12 < local_564);
            }
            local_564 = 0;
            FUN_14230889c(local_570);
          }
          if ((uVar13 & 1) != 0) {
            local_5c8 = uVar13 & 0xfffffffe;
            iVar12 = 0;
            if (0 < uStack_588._4_4_) {
              do {
                FUN_1423d59b0(local_590 + (longlong)iVar12 * 8);
                iVar12 = iVar12 + 1;
              } while (iVar12 < uStack_588._4_4_);
            }
            uStack_588 = uStack_588 & 0xffffffff;
            FUN_14230889c(local_590);
          }
        }
        break;
      case 2:
        local_5c0 = puVar10;
        cVar4 = FUN_1423c96e0(param_1);
        if (cVar4 == '\0') {
          FUN_141b0a540(param_1,puVar10);
        }
        (**(code **)*puVar10)(puVar10,1);
        FUN_1423aa1e0();
        goto LAB_141acb08b;
      case 4:
        cVar4 = FUN_1423c96e0(param_1);
        if (cVar4 == '\0') {
          FUN_141b395e0(param_1,puVar10);
        }
        break;
      case 5:
        cVar4 = FUN_1423c96e0(param_1);
        if (cVar4 == '\0') {
          FUN_141ad8260(param_1);
        }
        break;
      case 6:
        cVar4 = FUN_1423c96e0(param_1);
        if (cVar4 == '\0') {
          FUN_141ad8520(param_1);
        }
        break;
      case 7:
        cVar4 = FUN_1423c96e0(param_1);
        if (cVar4 == '\0') {
          FUN_141b95950(param_1,0,0);
        }
      }
      (**(code **)*puVar10)(puVar10,1);
LAB_141acb08b:
      if (cVar3 != '\0') {
        LeaveCriticalSection((LPCRITICAL_SECTION)(param_1 + 0x610));
      }
      (**(code **)*puVar11)(puVar11,1);
    }
LAB_141acb0e6:
    cVar3 = FUN_1423c96e0(param_1);
  } while( true );
}



//================ FUN_1423c9ab0 @ 1423c9ab0 ================

void FUN_1423c9ab0(longlong *param_1)

{
  int *piVar1;
  int iVar2;
  ulonglong uVar3;
  uint uVar4;
  ulonglong *puVar5;
  longlong lVar6;
  longlong lVar7;
  char cVar8;
  DWORD DVar9;
  undefined8 *puVar10;
  HANDLE hThread;
  undefined8 *local_res18 [2];
  
  FUN_1423c9c20(local_res18);
  puVar10 = (undefined8 *)FUN_140c6d7f0(local_res18[0] + 2);
  *puVar10 = param_1;
  cVar8 = FUN_1423a8dc0(param_1 + 0x12,DAT_144c87620);
  if (cVar8 != '\0') {
    if ((int)param_1[0x3d] != 0) {
      uVar4 = *(uint *)(param_1 + 0x3d);
      hThread = GetCurrentThread();
      SetThreadAffinityMask(hThread,(ulonglong)uVar4);
    }
    MXCSR = MXCSR | 0x8000;
    (**(code **)(*param_1 + 8))(param_1);
  }
  puVar10 = local_res18[0];
  DVar9 = GetCurrentThreadId();
  for (puVar5 = (ulonglong *)puVar10[2]; puVar5 != (ulonglong *)0x0; puVar5 = (ulonglong *)puVar5[1]
      ) {
    LOCK();
    uVar3 = *puVar5;
    if (DVar9 == uVar3) {
      *puVar5 = 0;
    }
    UNLOCK();
    if (DVar9 == uVar3) break;
  }
  cVar8 = *(char *)((longlong)param_1 + 0x1ec);
  CloseHandle((HANDLE)param_1[2]);
  LOCK();
  param_1[3] = 0;
  UNLOCK();
  LOCK();
  param_1[2] = 0;
  UNLOCK();
  if (cVar8 != '\0') {
    (**(code **)*param_1)(param_1,1);
  }
  if (local_res18[0] != (undefined8 *)0x0) {
    LOCK();
    piVar1 = (int *)(local_res18[0] + 1);
    iVar2 = *piVar1;
    *piVar1 = *piVar1 + -1;
    UNLOCK();
    if (iVar2 == 1) {
      lVar7 = local_res18[0][2];
      while (lVar7 != 0) {
        lVar6 = *(longlong *)(lVar7 + 8);
        thunk_FUN_14217cc5c(lVar7,0x18);
        lVar7 = lVar6;
      }
      *local_res18[0] = juce::ReferenceCountedObject::vftable;
      thunk_FUN_14217cc5c(local_res18[0],0x18);
      return;
    }
  }
  return;
}


