495 lines
19 KiB
C
495 lines
19 KiB
C
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
|
|
* Ghidra 12.1.2 decompiler output for 0x14007cae0 FUN_14007cae0
|
|
* Pseudocode, not original source. */
|
|
|
|
/* WARNING: Function: __chkstk replaced with injection: alloca_probe */
|
|
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
|
/* WARNING: Removing unreachable block (ram,0x00014007d18c) */
|
|
|
|
void FUN_14007cae0(longlong param_1,uint *param_2,wchar_t *param_3,longlong param_4)
|
|
|
|
{
|
|
uint uVar1;
|
|
char *pcVar2;
|
|
code *pcVar3;
|
|
LPVOID pvVar4;
|
|
int iVar5;
|
|
ulonglong uVar6;
|
|
undefined8 uVar7;
|
|
longlong lVar8;
|
|
ulonglong uVar9;
|
|
undefined4 *puVar10;
|
|
int *piVar11;
|
|
uint uVar12;
|
|
wchar_t *pwVar13;
|
|
undefined1 *puVar14;
|
|
longlong lVar15;
|
|
longlong *plVar16;
|
|
ulonglong uVar17;
|
|
undefined1 *puVar18;
|
|
undefined1 *puVar19;
|
|
uint uVar20;
|
|
undefined8 *puVar21;
|
|
longlong lVar22;
|
|
undefined8 *puVar23;
|
|
SIZE_T *pSVar24;
|
|
longlong lVar25;
|
|
ulonglong uVar26;
|
|
undefined1 auStack_1b88 [32];
|
|
int local_1b68 [2];
|
|
longlong *local_1b60;
|
|
longlong *local_1b58;
|
|
undefined **local_1b50;
|
|
longlong *local_1b48;
|
|
LPVOID local_1b40;
|
|
undefined8 local_1b38;
|
|
undefined8 local_1b30;
|
|
uint local_1b28;
|
|
int local_1b20 [2];
|
|
longlong local_1b18;
|
|
longlong local_1b10;
|
|
uint local_1b08;
|
|
int local_1b04;
|
|
int *local_1af8;
|
|
undefined1 local_1af0;
|
|
undefined4 local_1ae8;
|
|
undefined4 uStack_1ae4;
|
|
undefined4 local_1ad8;
|
|
undefined4 uStack_1ad4;
|
|
int *local_1ad0;
|
|
undefined1 local_1ac8;
|
|
SIZE_T local_1ac0;
|
|
undefined1 local_1ab8;
|
|
longlong local_1ab0;
|
|
uint uStack_1aa8;
|
|
undefined4 uStack_1aa4;
|
|
SIZE_T local_1aa0;
|
|
undefined1 local_1a98;
|
|
longlong local_1a90;
|
|
uint uStack_1a88;
|
|
undefined4 uStack_1a84;
|
|
undefined8 local_1a80;
|
|
exception local_1a78 [88];
|
|
undefined8 local_1a20;
|
|
undefined4 local_1a18 [2];
|
|
longlong local_1a10;
|
|
longlong local_1a08;
|
|
uint local_1a00;
|
|
int local_19fc;
|
|
undefined1 local_19f0 [136];
|
|
longlong local_1968;
|
|
undefined8 uStack_1960;
|
|
longlong *local_ce8;
|
|
undefined4 local_ce0;
|
|
int local_cdc;
|
|
undefined1 local_cd8 [3200];
|
|
undefined1 *local_58;
|
|
undefined4 local_50;
|
|
int local_4c;
|
|
ulonglong local_48;
|
|
undefined8 uStack_40;
|
|
|
|
uStack_40 = 0x14007caf6;
|
|
puVar18 = auStack_1b88;
|
|
puVar19 = auStack_1b88;
|
|
local_1a80 = 0xfffffffffffffffe;
|
|
local_48 = DAT_14016f5a0 ^ (ulonglong)local_1b68;
|
|
uVar17 = 0;
|
|
local_1b48 = (longlong *)0x0;
|
|
local_1b40 = (LPVOID)0x0;
|
|
local_1b38 = 0;
|
|
local_1b30 = 0;
|
|
local_1b50 = Proud::BypassDestList::vftable;
|
|
pwVar13 = param_3;
|
|
uVar6 = thunk_FUN_140075b20(param_2,(longlong)&local_1b50,param_3,param_4);
|
|
puVar14 = auStack_1b88;
|
|
if (((char)uVar6 == '\0') ||
|
|
(uVar6 = FUN_140075580(param_2,&local_1b58,pwVar13,param_4), plVar16 = local_1b58,
|
|
puVar14 = auStack_1b88, (char)uVar6 == '\0')) {
|
|
LAB_14007d2db:
|
|
pvVar4 = local_1b40;
|
|
plVar16 = local_1b48;
|
|
local_1b50 = Proud::CFastArray<Proud::BypassDest,0>::vftable;
|
|
if (local_1b40 == (LPVOID)0x0) goto LAB_14007d30b;
|
|
puVar19 = puVar14;
|
|
if (local_1b48 != (longlong *)0x0) {
|
|
pcVar3 = *(code **)(*local_1b48 + 0x18);
|
|
*(undefined8 *)(puVar14 + -8) = 0x14007d304;
|
|
(*pcVar3)(plVar16,pvVar4);
|
|
goto LAB_14007d30b;
|
|
}
|
|
}
|
|
else {
|
|
uVar20 = (uint)local_1b58;
|
|
if ((-1 < (int)uVar20) && ((int)uVar20 < DAT_14016f140)) {
|
|
uVar1 = *param_2;
|
|
uVar12 = (int)uVar1 >> 0x1f & 7;
|
|
iVar5 = FUN_14004d230((longlong)param_2,(ulonglong)uVar12,pwVar13,param_4);
|
|
if (((int)(uVar12 + uVar1) >> 3) + uVar20 != iVar5) {
|
|
param_4 = 2;
|
|
FUN_14006c410(*(longlong **)(param_1 + 0x148),param_3,
|
|
"msg.GetReadOffset() + payloadLength == msg.GetLength()",2);
|
|
}
|
|
FUN_140074fb0(local_1b20);
|
|
uVar6 = (ulonglong)plVar16 & 0xffffffff;
|
|
uVar7 = FUN_140075210(param_2,local_1b20,uVar20,param_4);
|
|
if ((char)uVar7 == '\0') {
|
|
FUN_14006c410(*(longlong **)(param_1 + 0x148),param_3,"0",2);
|
|
local_1b58 = &local_1b18;
|
|
FUN_14008a320(&local_1b18);
|
|
puVar14 = auStack_1b88;
|
|
if (local_1b10 != 0) {
|
|
if (local_1b04 < 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14003dec0();
|
|
}
|
|
local_1b08 = 0;
|
|
puVar14 = auStack_1b88;
|
|
}
|
|
}
|
|
else {
|
|
lVar8 = (longlong)(int)local_1b38;
|
|
local_1b60 = (longlong *)CONCAT44(local_1b60._4_4_,(int)local_1b38);
|
|
if ((int)local_1b38 < 1) {
|
|
local_1b58 = &local_1b18;
|
|
FUN_14008a320(&local_1b18);
|
|
puVar14 = auStack_1b88;
|
|
if (local_1b10 != 0) {
|
|
if (local_1b04 < 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14003dec0();
|
|
}
|
|
local_1b08 = 0;
|
|
puVar14 = auStack_1b88;
|
|
}
|
|
}
|
|
else {
|
|
lVar25 = lVar8 * 0x18;
|
|
uVar26 = lVar25 + 0x10;
|
|
if (uVar26 < 0x401) {
|
|
uVar9 = lVar25 + 0x1f;
|
|
if (uVar9 <= uVar26) {
|
|
uVar9 = 0xffffffffffffff0;
|
|
}
|
|
lVar25 = -(uVar9 & 0xfffffffffffffff0);
|
|
puVar18 = auStack_1b88 + lVar25;
|
|
puVar10 = (undefined4 *)((longlong)local_1b68 + lVar25);
|
|
puVar23 = (undefined8 *)0x0;
|
|
if (puVar10 != (undefined4 *)0x0) {
|
|
*puVar10 = 0xcccc;
|
|
puVar18 = auStack_1b88 + lVar25;
|
|
LAB_14007ccbb:
|
|
puVar23 = (undefined8 *)(puVar10 + 4);
|
|
}
|
|
}
|
|
else {
|
|
puVar10 = malloc(uVar26);
|
|
puVar23 = (undefined8 *)0x0;
|
|
if (puVar10 != (undefined4 *)0x0) {
|
|
*puVar10 = 0xdddd;
|
|
puVar18 = auStack_1b88;
|
|
goto LAB_14007ccbb;
|
|
}
|
|
}
|
|
pwVar13 = (wchar_t *)**(longlong **)(param_1 + 0x148);
|
|
pcVar3 = *(code **)(pwVar13 + 0x2c);
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007cccc;
|
|
piVar11 = (int *)(*pcVar3)();
|
|
local_1ad0 = piVar11;
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007ccdb;
|
|
FUN_14003d040(piVar11);
|
|
local_1ac8 = 1;
|
|
if (DAT_14017614f != '\0') {
|
|
uVar6 = **(ulonglong **)(param_1 + 0x148);
|
|
pwVar13 = L"Proud::CNetThreads_S::NetWorkerThread_ProcessMessage_ReliableRelay1";
|
|
pcVar3 = *(code **)(uVar6 + 200);
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007cd03;
|
|
(*pcVar3)();
|
|
}
|
|
pcVar3 = *(code **)(*(longlong *)param_3 + 0x10);
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007cd0d;
|
|
local_1b28 = (*pcVar3)();
|
|
local_1b68[0] = 0;
|
|
puVar21 = puVar23;
|
|
uVar26 = uVar17;
|
|
if (0 < lVar8) {
|
|
do {
|
|
pvVar4 = local_1b40;
|
|
if ((longlong)uVar17 < 0) {
|
|
LAB_14007cdae:
|
|
/* WARNING: Subroutine does not return */
|
|
*(undefined **)(puVar18 + -8) = &UNK_14007cdb3;
|
|
FUN_14003def0(param_3,pwVar13,uVar6,param_4);
|
|
}
|
|
if ((int)local_1b38 <= (int)uVar26) goto LAB_14007cdae;
|
|
uVar20 = *(uint *)((longlong)local_1b40 + uVar17 * 8);
|
|
pwVar13 = (wchar_t *)(ulonglong)uVar20;
|
|
lVar8 = *(longlong *)(param_1 + 0x148);
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007cd4f;
|
|
lVar8 = FUN_14004f000(lVar8,uVar20);
|
|
if (lVar8 != 0) {
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007cd63;
|
|
FUN_140091240(lVar8 + 0xc0);
|
|
local_1ae8 = *(undefined4 *)((longlong)pvVar4 + uVar17 * 8 + 4);
|
|
local_1ad8 = *(undefined4 *)((longlong)pvVar4 + uVar17 * 8);
|
|
*puVar21 = CONCAT44(uStack_1ae4,local_1ae8);
|
|
puVar21[1] = lVar8;
|
|
puVar21[2] = CONCAT44(uStack_1ad4,local_1ad8);
|
|
local_1b68[0] = local_1b68[0] + 1;
|
|
puVar21 = puVar21 + 3;
|
|
}
|
|
uVar17 = uVar17 + 1;
|
|
param_3 = (wchar_t *)(longlong)(int)local_1b60;
|
|
uVar26 = (ulonglong)((int)uVar26 + 1);
|
|
} while ((longlong)uVar17 < (longlong)param_3);
|
|
}
|
|
piVar11 = local_1ad0;
|
|
iVar5 = local_1b68[0];
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007cdc0;
|
|
FUN_14003d0d0((longlong)piVar11);
|
|
local_1ac8 = 0;
|
|
lVar8 = (longlong)iVar5;
|
|
while ((0 < lVar8 && (lVar25 = 0, 0 < lVar8))) {
|
|
lVar22 = lVar8 * 0x18 + -0x18;
|
|
do {
|
|
uVar6 = puVar23[lVar25 * 3];
|
|
local_1b60 = (longlong *)puVar23[lVar25 * 3 + 1];
|
|
local_1a20 = puVar23[lVar25 * 3 + 2];
|
|
pcVar3 = *(code **)(*(longlong *)(puVar23[lVar25 * 3 + 1] + 0x108) + 0x10);
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007ce1b;
|
|
piVar11 = (int *)(*pcVar3)();
|
|
local_1af0 = 0;
|
|
local_1af8 = piVar11;
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007ce32;
|
|
FUN_140074fb0(local_1a18);
|
|
pSVar24 = (SIZE_T *)0x80;
|
|
puVar14 = local_19f0;
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007ce4c;
|
|
FUN_140074c30((longlong)local_1a18,(longlong)puVar14,0x80,param_4);
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007ce5b;
|
|
FUN_140029d80((longlong)local_1a18,CONCAT71((int7)((ulonglong)puVar14 >> 8),0x17),
|
|
(SIZE_T)pSVar24,param_4);
|
|
uVar17 = (ulonglong)local_1b28;
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007ce6a;
|
|
FUN_140029e60((longlong)local_1a18,uVar17,(SIZE_T)pSVar24,param_4);
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007ce78;
|
|
FUN_140029e60((longlong)local_1a18,uVar6 & 0xffffffff,(SIZE_T)pSVar24,param_4);
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007ce8b;
|
|
FUN_140074a00((longlong *)&local_1ae8,(longlong)local_1a18);
|
|
lVar15 = (longlong)(int)local_1b58;
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007ce9c;
|
|
FUN_140076380((longlong)local_1a18,lVar15,(SIZE_T)pSVar24,param_4);
|
|
local_4c = 200;
|
|
local_50 = 0;
|
|
local_58 = local_cd8;
|
|
local_cdc = 200;
|
|
local_ce0 = 0;
|
|
local_ce8 = &local_1968;
|
|
if (local_1a10 == 0) {
|
|
uVar20 = local_1a00;
|
|
if (local_1a08 == 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007d24d;
|
|
FUN_14008a420(0,lVar15,pSVar24,param_4);
|
|
}
|
|
}
|
|
else {
|
|
uVar20 = *(uint *)(local_1a10 + 0x18);
|
|
}
|
|
lVar15 = local_1a08;
|
|
if (local_1a08 == 0) {
|
|
if (local_1a10 == 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
*(undefined **)(puVar18 + -8) = &UNK_14007d247;
|
|
FUN_14008a420(0,(ulonglong)uVar20,pSVar24,param_4);
|
|
}
|
|
lVar15 = 0;
|
|
if (*(int *)(local_1a10 + 0x18) != 0) {
|
|
lVar15 = *(longlong *)(local_1a10 + 0x10);
|
|
}
|
|
}
|
|
local_ce0 = 1;
|
|
uStack_1960 = CONCAT44(uStack_1aa4,uVar20);
|
|
plVar16 = &local_1968;
|
|
local_1ab0 = lVar15;
|
|
uStack_1aa8 = uVar20;
|
|
local_1968 = lVar15;
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007cf53;
|
|
FUN_14004dc30((longlong)local_cd8,(longlong)plVar16,pSVar24,param_4);
|
|
if (local_ce8 == (longlong *)0x0) {
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007d22e;
|
|
FUN_14003db10(local_1a78,(wchar_t *)PTR_u_ArrayWithExternalBuffer_is_unini_140170368
|
|
,pSVar24,param_4);
|
|
/* WARNING: Subroutine does not return */
|
|
*(undefined **)(puVar18 + -8) = &UNK_14007d241;
|
|
_CxxThrowException(local_1a78,(ThrowInfo *)&DAT_14016c210);
|
|
}
|
|
if (local_cdc < 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
*(undefined **)(puVar18 + -8) = &UNK_14007d21a;
|
|
FUN_14003dec0();
|
|
}
|
|
local_cdc = 200;
|
|
local_ce0 = 0;
|
|
local_ce8 = &local_1968;
|
|
if (local_1b18 == 0) {
|
|
uVar20 = local_1b08;
|
|
if (local_1b10 == 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007d214;
|
|
FUN_14008a420(0,plVar16,pSVar24,param_4);
|
|
}
|
|
}
|
|
else {
|
|
uVar20 = *(uint *)(local_1b18 + 0x18);
|
|
}
|
|
lVar15 = local_1b10;
|
|
if (local_1b10 == 0) {
|
|
if (local_1b18 == 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
*(undefined **)(puVar18 + -8) = &UNK_14007d20e;
|
|
FUN_14008a420(0,(ulonglong)uVar20,pSVar24,param_4);
|
|
}
|
|
lVar15 = 0;
|
|
if (*(int *)(local_1b18 + 0x18) != 0) {
|
|
lVar15 = *(longlong *)(local_1b18 + 0x10);
|
|
}
|
|
}
|
|
local_ce0 = 1;
|
|
uStack_1960 = CONCAT44(uStack_1a84,uVar20);
|
|
local_1a90 = lVar15;
|
|
uStack_1a88 = uVar20;
|
|
local_1968 = lVar15;
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007cffd;
|
|
FUN_14004dc30((longlong)local_cd8,(longlong)&local_1968,pSVar24,param_4);
|
|
if (local_ce8 == (longlong *)0x0) {
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007d1f5;
|
|
FUN_14003db10(local_1a78,(wchar_t *)PTR_u_ArrayWithExternalBuffer_is_unini_140170368
|
|
,pSVar24,param_4);
|
|
/* WARNING: Subroutine does not return */
|
|
*(undefined **)(puVar18 + -8) = &UNK_14007d208;
|
|
_CxxThrowException(local_1a78,(ThrowInfo *)&DAT_14016c210);
|
|
}
|
|
if (local_cdc < 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
*(undefined **)(puVar18 + -8) = &UNK_14007d1e1;
|
|
FUN_14003dec0();
|
|
}
|
|
if (lVar25 == 0) {
|
|
local_1af0 = 1;
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007d0b5;
|
|
FUN_14003d040(piVar11);
|
|
plVar16 = local_1b60;
|
|
local_1aa0 = 0;
|
|
local_1a98 = 1;
|
|
pSVar24 = &local_1aa0;
|
|
pcVar2 = *(char **)((longlong)local_1b60 + 0x748);
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007d0e1;
|
|
FUN_140091090(pcVar2,(longlong)local_cd8,pSVar24,param_4);
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007d0e9;
|
|
FUN_14003d0d0((longlong)piVar11);
|
|
local_1af0 = 0;
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007d0fa;
|
|
FUN_140091250((longlong)plVar16 + 0xc0);
|
|
puVar23[1] = 0;
|
|
*puVar23 = *(undefined8 *)(lVar22 + (longlong)puVar23);
|
|
puVar23[1] = *(undefined8 *)(lVar22 + 8 + (longlong)puVar23);
|
|
puVar23[2] = *(undefined8 *)(lVar22 + 0x10 + (longlong)puVar23);
|
|
LAB_14007d11b:
|
|
local_1b68[0] = local_1b68[0] + -1;
|
|
lVar8 = lVar8 + -1;
|
|
lVar22 = lVar22 + -0x18;
|
|
}
|
|
else {
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007d02a;
|
|
local_1af0 = FUN_14003d090(piVar11);
|
|
if ((bool)local_1af0) {
|
|
local_1ac0 = 0;
|
|
local_1ab8 = 1;
|
|
pSVar24 = &local_1ac0;
|
|
pcVar2 = *(char **)((longlong)local_1b60 + 0x748);
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007d068;
|
|
FUN_140091090(pcVar2,(longlong)local_cd8,pSVar24,param_4);
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007d070;
|
|
FUN_14003d0d0((longlong)piVar11);
|
|
local_1af0 = 0;
|
|
lVar15 = (longlong)local_1b60 + 0xc0;
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007d085;
|
|
FUN_140091250(lVar15);
|
|
puVar23[lVar25 * 3 + 1] = 0;
|
|
puVar23[lVar25 * 3] = *(undefined8 *)(lVar22 + (longlong)puVar23);
|
|
puVar23[lVar25 * 3 + 1] = *(undefined8 *)(lVar22 + 8 + (longlong)puVar23);
|
|
puVar23[lVar25 * 3 + 2] = *(undefined8 *)(lVar22 + 0x10 + (longlong)puVar23);
|
|
goto LAB_14007d11b;
|
|
}
|
|
}
|
|
if (local_58 == (undefined1 *)0x0) {
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007d1c8;
|
|
FUN_14003db10(local_1a78,(wchar_t *)PTR_u_ArrayWithExternalBuffer_is_unini_140170368
|
|
,pSVar24,param_4);
|
|
/* WARNING: Subroutine does not return */
|
|
*(undefined **)(puVar18 + -8) = &UNK_14007d1db;
|
|
_CxxThrowException(local_1a78,(ThrowInfo *)&DAT_14016c210);
|
|
}
|
|
if (local_4c < 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
*(undefined **)(puVar18 + -8) = &UNK_14007d1b4;
|
|
FUN_14003dec0();
|
|
}
|
|
local_50 = 0;
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007d152;
|
|
FUN_140074a20((longlong *)&local_1ae8);
|
|
local_1b60 = &local_1a10;
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007d16a;
|
|
FUN_14008a320(&local_1a10);
|
|
if (local_1a08 != 0) {
|
|
if (local_19fc < 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007d1ae;
|
|
FUN_14003dec0();
|
|
}
|
|
local_1a00 = 0;
|
|
}
|
|
lVar25 = lVar25 + 1;
|
|
} while (lVar25 < lVar8);
|
|
}
|
|
if ((puVar23 != (undefined8 *)0x0) && (*(int *)(puVar23 + -2) == 0xdddd)) {
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007d265;
|
|
free(puVar23 + -2);
|
|
}
|
|
local_1b58 = &local_1b18;
|
|
*(undefined8 *)(puVar18 + -8) = 0x14007d277;
|
|
FUN_14008a320(&local_1b18);
|
|
puVar14 = puVar18;
|
|
if (local_1b10 != 0) {
|
|
if (local_1b04 < 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
*(undefined **)(puVar18 + -8) = &UNK_14007d28a;
|
|
FUN_14003dec0();
|
|
}
|
|
local_1b08 = 0;
|
|
}
|
|
}
|
|
}
|
|
goto LAB_14007d2db;
|
|
}
|
|
FUN_14006c410(*(longlong **)(param_1 + 0x148),param_3,"0",2);
|
|
local_1b50 = Proud::CFastArray<Proud::BypassDest,0>::vftable;
|
|
puVar14 = auStack_1b88;
|
|
if (local_1b40 == (LPVOID)0x0) goto LAB_14007d30b;
|
|
if (local_1b48 != (longlong *)0x0) {
|
|
(**(code **)(*local_1b48 + 0x18))();
|
|
puVar14 = auStack_1b88;
|
|
goto LAB_14007d30b;
|
|
}
|
|
}
|
|
pvVar4 = local_1b40;
|
|
local_1b50 = Proud::CFastArray<Proud::BypassDest,0>::vftable;
|
|
*(undefined8 *)(puVar19 + -8) = 0x14007d30b;
|
|
FUN_14003e8b0(pvVar4);
|
|
puVar14 = puVar19;
|
|
LAB_14007d30b:
|
|
*(undefined8 *)(puVar14 + -8) = 0x14007d31a;
|
|
return;
|
|
}
|
|
|