1627 lines
51 KiB
Plaintext
1627 lines
51 KiB
Plaintext
|
|
//================ 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;
|
|
}
|
|
|
|
|