server-re/decomp/Agent_Release_x64/full/functions/0x14005a530.c
2026-10-14 16:45:19 -04:00

648 lines
24 KiB
C

/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
* Ghidra 12.1.2 decompiler output for 0x14005a530 FUN_14005a530
* Pseudocode, not original source. */
/* WARNING: Function: __chkstk replaced with injection: alloca_probe */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
undefined8
FUN_14005a530(longlong *param_1,ulonglong **param_2,ulonglong *param_3,undefined8 param_4,
undefined4 param_5)
{
longlong lVar1;
longlong *_Memory;
double dVar2;
undefined1 **ppuVar3;
code *pcVar4;
char *pcVar5;
undefined1 *puVar6;
ulonglong **ppuVar7;
void *pvVar8;
int iVar9;
ulonglong uVar10;
longlong *plVar11;
ulonglong uVar12;
undefined4 *puVar13;
undefined8 *puVar14;
undefined8 *puVar15;
ulonglong *puVar16;
uint *puVar17;
uint *puVar18;
int *piVar19;
longlong *extraout_RAX;
longlong *extraout_RAX_00;
longlong *extraout_RAX_01;
longlong lVar20;
undefined1 **ppuVar21;
uint uVar22;
undefined1 *puVar23;
undefined1 *puVar24;
longlong lVar25;
int iVar26;
int iVar27;
ulonglong **ppuVar28;
SIZE_T SVar29;
ulonglong **ppuVar30;
uint uVar31;
int iVar32;
undefined4 uVar33;
undefined4 uVar34;
undefined1 auStack_2aa8 [32];
int local_2a88 [2];
undefined8 *local_2a80;
int local_2a78 [2];
ulonglong local_2a70;
ulonglong *local_2a68;
uint local_2a60;
int local_2a5c;
ulonglong **local_2a50;
ulonglong *local_2a48;
uint uStack_2a40;
undefined4 uStack_2a3c;
longlong *local_2a38;
ulonglong *local_2a30;
ulonglong local_2a28;
undefined1 local_2a20;
int local_2a1c;
undefined1 local_2a18;
undefined1 local_2a17;
uint local_2a10;
int *local_2a08;
undefined1 local_2a00;
int *local_29f8;
undefined1 local_29f0;
int *local_29e8;
undefined1 local_29e0;
undefined8 local_29d8;
exception local_29d0 [72];
void *local_2988;
longlong local_2980;
ulonglong local_2978;
longlong local_2970;
uint local_2968 [4];
undefined1 local_2958 [384];
ulonglong *local_27d8;
undefined8 local_27d0;
ulonglong local_27c8;
undefined8 local_27c0;
undefined1 *local_2628;
longlong local_2620;
ulonglong local_2618;
undefined8 local_2610;
undefined1 local_2608 [3200];
ulonglong *local_1988 [400];
ulonglong **local_d08;
undefined4 local_d00;
int local_cfc;
ulonglong *local_cf8;
undefined8 uStack_cf0;
ulonglong **local_78;
undefined4 local_70;
int local_6c;
ulonglong local_68;
undefined8 uStack_48;
uStack_48 = 0x14005a547;
puVar24 = auStack_2aa8;
local_29d8 = 0xfffffffffffffffe;
local_68 = DAT_1401555a0 ^ (ulonglong)local_2a88;
local_2a50 = param_2;
local_2a48 = param_3;
local_2a08 = (int *)(**(code **)(*param_1 + 0x58))();
FUN_14002e6e0(local_2a08);
local_2a00 = 1;
if (DAT_14015bfcf != '\0') {
(**(code **)(*param_1 + 200))(param_1,L"Proud::CNetServerImpl::Send_BroadcastLayer");
}
uVar31 = 0;
uVar22 = 0;
if (0 < (int)*(uint *)((longlong)param_3 + 4)) {
uVar22 = *(uint *)((longlong)param_3 + 4);
}
dVar2 = (double)param_3[1];
uVar33 = SUB84(dVar2,0);
uVar34 = (int)((ulonglong)dVar2 >> 0x20);
if (dVar2 <= 0.0) {
uVar33 = 0;
uVar34 = 0;
}
local_27d8 = (ulonglong *)0x0;
local_27c0 = 0;
local_27d0 = 0;
local_27c8 = 100;
ppuVar30 = &local_27d8;
(**(code **)(*param_1 + 0x50))(param_1,param_5,param_4);
local_2628 = (undefined1 *)0x0;
local_2610 = 0;
local_2620 = 0;
local_2618 = 100;
ppuVar28 = &local_27d8;
ppuVar21 = &local_2628;
FUN_140042e50((longlong)param_1,(longlong *)ppuVar21,(longlong *)ppuVar28);
iVar9 = (int)local_2620;
lVar25 = (longlong)iVar9 * 8;
uVar12 = lVar25 + 0x10;
if (uVar12 < 0x401) {
uVar10 = lVar25 + 0x1f;
if (uVar10 <= uVar12) {
uVar10 = 0xffffffffffffff0;
}
lVar25 = -(uVar10 & 0xfffffffffffffff0);
puVar24 = auStack_2aa8 + lVar25;
local_2a80 = (undefined8 *)((longlong)local_2a88 + lVar25);
if (local_2a80 != (undefined8 *)0x0) {
*(undefined4 *)local_2a80 = 0xcccc;
puVar24 = auStack_2aa8 + lVar25;
LAB_14005a6b8:
local_2a80 = local_2a80 + 2;
}
}
else {
local_2a80 = malloc(uVar12);
if (local_2a80 != (undefined8 *)0x0) {
*(undefined4 *)local_2a80 = 0xdddd;
puVar24 = auStack_2aa8;
goto LAB_14005a6b8;
}
}
lVar25 = (longlong)iVar9 * 8;
uVar12 = lVar25 + 0x10;
if (uVar12 < 0x401) {
uVar10 = lVar25 + 0x1f;
if (uVar10 <= uVar12) {
uVar10 = 0xffffffffffffff0;
}
*(undefined8 *)(puVar24 + -8) = 0x14005a6e6;
lVar25 = -(uVar10 & 0xfffffffffffffff0);
puVar23 = puVar24 + lVar25;
plVar11 = (longlong *)(puVar24 + lVar25 + 0x20);
puVar24 = puVar24 + lVar25;
local_2a38 = plVar11;
if (plVar11 == (longlong *)0x0) goto LAB_14005a71f;
*(undefined4 *)plVar11 = 0xcccc;
puVar24 = puVar23;
}
else {
*(undefined8 *)(puVar24 + -8) = 0x14005a705;
plVar11 = malloc(uVar12);
local_2a38 = plVar11;
if (plVar11 == (longlong *)0x0) goto LAB_14005a71f;
*(undefined4 *)plVar11 = 0xdddd;
}
local_2a38 = plVar11 + 2;
LAB_14005a71f:
plVar11 = local_2a38;
local_2a10 = 0;
iVar26 = 0;
local_2a88[0] = 0;
if ((int)*param_3 == 1) {
puVar15 = local_2a80;
if (iVar9 < 1) {
iVar27 = 0;
uVar31 = 0;
}
else {
do {
if ((iVar26 < 0) || (local_2620 <= iVar26)) {
/* WARNING: Subroutine does not return */
*(undefined **)(puVar24 + -8) = &UNK_14005a8c9;
FUN_14002f590();
}
puVar6 = local_2628;
if (local_2618 < 0x65) {
puVar6 = local_2608;
}
plVar11 = *(longlong **)(puVar6 + (longlong)iVar26 * 0x20 + 8);
if ((plVar11 == param_1 + 0xe) && (*(char *)((longlong)param_3 + 0x2d) != '\0')) {
*(undefined8 *)(puVar24 + -8) = 0x14005a79e;
FUN_1400806d0(local_2a78);
ppuVar7 = local_2a50;
piVar19 = local_2a78;
*(undefined8 *)(puVar24 + -8) = 0x14005a7ac;
FUN_1400a2150((longlong)ppuVar7,piVar19,(SIZE_T)ppuVar28,ppuVar30);
*(undefined8 *)(puVar24 + -8) = 0x14005a7b5;
uVar12 = FUN_1400a1c10((longlong)local_2a78,piVar19,ppuVar28,ppuVar30);
*(undefined8 *)(puVar24 + -8) = 0x14005a7cb;
puVar13 = FUN_140056fa0((undefined4 *)&local_2988,local_2a78,uVar12 & 0xffffffff,
CONCAT71((int7)((ulonglong)ppuVar30 >> 8),1));
ppuVar30 = (ulonglong **)0x0;
ppuVar28 = (ulonglong **)param_1[0x8d];
*(undefined8 *)(puVar24 + -8) = 0x14005a7e7;
puVar14 = FUN_14005a220(param_1 + 0x8b,puVar13,(SIZE_T)ppuVar28,0);
if ((undefined8 *)param_1[0x8d] == (undefined8 *)0x0) {
param_1[0x8c] = (longlong)puVar14;
}
else {
*(undefined8 *)param_1[0x8d] = puVar14;
}
param_1[0x8d] = (longlong)puVar14;
*(undefined8 *)(puVar24 + -8) = 0x14005a815;
FUN_140056f10((longlong)local_2958,puVar13,ppuVar28,ppuVar30);
local_2a48 = &local_2978;
*(undefined8 *)(puVar24 + -8) = 0x14005a82d;
FUN_140095270((longlong *)&local_2978);
if ((local_2970 != 0) && ((int)local_2968[1] < 0)) {
/* WARNING: Subroutine does not return */
*(undefined8 *)(puVar24 + -8) = 0x14005a8b5;
FUN_14002f590();
}
ppuVar21 = (undefined1 **)(param_1 + 0xf);
lVar25 = param_1[0x7c];
*(undefined8 *)(puVar24 + -8) = 0x14005a85a;
FUN_1400a25d0(lVar25 + 0x160,(longlong)ppuVar21,ppuVar28,ppuVar30);
local_2a48 = &local_2a70;
*(undefined8 *)(puVar24 + -8) = 0x14005a86c;
FUN_140095270((longlong *)&local_2a70);
if ((local_2a68 != (ulonglong *)0x0) && (local_2a5c < 0)) {
/* WARNING: Subroutine does not return */
*(undefined **)(puVar24 + -8) = &UNK_14005a8bb;
FUN_14002f590();
}
}
else if (plVar11 != (longlong *)0x0) {
*(undefined8 *)(puVar24 + -8) = 0x14005a889;
puVar14 = FUN_1400a2560(plVar11);
if (puVar14 != (undefined8 *)0x0) {
*(undefined8 *)(puVar24 + -8) = 0x14005a89a;
FUN_14009c460((longlong)(plVar11 + 0x18));
*puVar15 = plVar11;
uVar31 = uVar31 + 1;
puVar15 = puVar15 + 1;
}
}
iVar26 = iVar26 + 1;
iVar27 = local_2a88[0];
} while (iVar26 < iVar9);
}
}
else {
ppuVar28 = (ulonglong **)(ulonglong)uVar22;
ppuVar21 = &local_2628;
*(undefined8 *)(puVar24 + -8) = 0x14005a8e0;
FUN_1400518f0(param_1,(longlong *)ppuVar21,ppuVar28,(double)CONCAT44(uVar34,uVar33));
iVar9 = 0;
iVar32 = (int)local_2620;
param_3 = local_2a48;
iVar27 = iVar26;
if (0 < iVar32) {
do {
lVar25 = (longlong)iVar9;
if ((iVar9 < 0) || (local_2620 <= lVar25)) {
/* WARNING: Subroutine does not return */
*(undefined **)(puVar24 + -8) = &UNK_14005aadc;
FUN_14002f590();
}
puVar6 = local_2628;
if (local_2618 < 0x65) {
puVar6 = local_2608;
}
ppuVar3 = *(undefined1 ***)(puVar6 + lVar25 * 0x20 + 8);
if ((ppuVar3 == (undefined1 **)(param_1 + 0xe)) &&
(*(char *)((longlong)local_2a48 + 0x2d) != '\0')) {
*(undefined8 *)(puVar24 + -8) = 0x14005a968;
FUN_1400806d0(local_2a78);
ppuVar7 = local_2a50;
piVar19 = local_2a78;
*(undefined8 *)(puVar24 + -8) = 0x14005a976;
FUN_1400a2150((longlong)ppuVar7,piVar19,(SIZE_T)ppuVar28,ppuVar30);
*(undefined8 *)(puVar24 + -8) = 0x14005a97f;
uVar12 = FUN_1400a1c10((longlong)local_2a78,piVar19,ppuVar28,ppuVar30);
*(undefined8 *)(puVar24 + -8) = 0x14005a995;
puVar13 = FUN_140056fa0((undefined4 *)&local_2988,local_2a78,uVar12 & 0xffffffff,
CONCAT71((int7)((ulonglong)ppuVar30 >> 8),1));
ppuVar30 = (ulonglong **)0x0;
ppuVar28 = (ulonglong **)param_1[0x8d];
*(undefined8 *)(puVar24 + -8) = 0x14005a9b1;
puVar15 = FUN_14005a220(param_1 + 0x8b,puVar13,(SIZE_T)ppuVar28,0);
if ((undefined8 *)param_1[0x8d] == (undefined8 *)0x0) {
param_1[0x8c] = (longlong)puVar15;
}
else {
*(undefined8 *)param_1[0x8d] = puVar15;
}
param_1[0x8d] = (longlong)puVar15;
*(undefined8 *)(puVar24 + -8) = 0x14005a9df;
FUN_140056f10((longlong)local_2958,puVar13,ppuVar28,ppuVar30);
local_2a30 = &local_2978;
*(undefined8 *)(puVar24 + -8) = 0x14005a9f7;
FUN_140095270((longlong *)&local_2978);
if ((local_2970 != 0) && ((int)local_2968[1] < 0)) {
/* WARNING: Subroutine does not return */
*(undefined8 *)(puVar24 + -8) = 0x14005aac4;
FUN_14002f590();
}
ppuVar21 = (undefined1 **)(param_1 + 0xf);
lVar25 = param_1[0x7c];
*(undefined8 *)(puVar24 + -8) = 0x14005aa28;
FUN_1400a25d0(lVar25 + 0x160,(longlong)ppuVar21,ppuVar28,ppuVar30);
local_2a30 = &local_2a70;
*(undefined8 *)(puVar24 + -8) = 0x14005aa3a;
FUN_140095270((longlong *)&local_2a70);
if ((local_2a68 != (ulonglong *)0x0) && (local_2a5c < 0)) {
/* WARNING: Subroutine does not return */
*(undefined **)(puVar24 + -8) = &UNK_14005aaca;
FUN_14002f590();
}
}
else if (ppuVar3 != (undefined1 **)0x0) {
*(undefined8 *)(puVar24 + -8) = 0x14005aa5b;
puVar15 = FUN_1400a2560(ppuVar3);
if (puVar15 != (undefined8 *)0x0) {
*(undefined8 *)(puVar24 + -8) = 0x14005aa6b;
ppuVar21 = ppuVar3;
FUN_140054c90(param_1,(longlong *)ppuVar3,(longlong **)ppuVar28,(uint **)ppuVar30);
*(undefined8 *)(puVar24 + -8) = 0x14005aa77;
FUN_14009c460((longlong)(ppuVar3 + 0x18));
if (local_2620 <= lVar25) {
/* WARNING: Subroutine does not return */
*(undefined **)(puVar24 + -8) = &UNK_14005aad0;
FUN_14002f590();
}
puVar6 = local_2628;
if (local_2618 < 0x65) {
puVar6 = local_2608;
}
*plVar11 = (longlong)(puVar6 + lVar25 * 0x20);
local_2a88[0] = local_2a88[0] + 1;
plVar11 = plVar11 + 1;
}
}
iVar9 = iVar9 + 1;
param_3 = local_2a48;
iVar27 = local_2a88[0];
uVar31 = local_2a10;
} while (iVar9 < iVar32);
}
}
piVar19 = local_2a08;
lVar25 = 0;
*(undefined8 *)(puVar24 + -8) = 0x14005aaf3;
FUN_14002e770((longlong)piVar19);
local_2a00 = 0;
if ((int)*param_3 == 1) {
if (0 < (int)uVar31) {
do {
lVar20 = local_2a80[lVar25];
pcVar4 = *(code **)(*(longlong *)(lVar20 + 0x108) + 0x10);
*(undefined8 *)(puVar24 + -8) = 0x14005ab25;
puVar16 = (ulonglong *)(*pcVar4)();
local_2a48 = puVar16;
*(undefined8 *)(puVar24 + -8) = 0x14005ab34;
FUN_14002e6e0((int *)puVar16);
ppuVar28 = local_2a50;
uStack_2a40._0_1_ = 1;
local_2a30 = (ulonglong *)0x0;
local_2a28 = CONCAT71(local_2a28._1_7_,1);
pcVar5 = *(char **)(lVar20 + 0x748);
*(undefined8 *)(puVar24 + -8) = 0x14005ab58;
FUN_14009c2b0(pcVar5,(longlong)ppuVar28,(SIZE_T *)&local_2a30,ppuVar30);
*(undefined8 *)(puVar24 + -8) = 0x14005ab60;
FUN_14002e770((longlong)puVar16);
uStack_2a40 = (uint)uStack_2a40._1_3_ << 8;
*(undefined8 *)(puVar24 + -8) = 0x14005ab70;
FUN_14009c470(lVar20 + 0xc0);
lVar25 = lVar25 + 1;
} while (lVar25 < (int)uVar31);
}
}
else if (0 < iVar27) {
do {
puVar18 = (uint *)local_2a38[lVar25];
plVar11 = *(longlong **)(puVar18 + 2);
if (*(longlong *)(puVar18 + 4) == 0) {
if (*(longlong *)(puVar18 + 6) == 0) {
pcVar4 = *(code **)(plVar11[0x21] + 0x10);
*(undefined8 *)(puVar24 + -8) = 0x14005aeb1;
piVar19 = (int *)(*pcVar4)();
local_29f8 = piVar19;
*(undefined8 *)(puVar24 + -8) = 0x14005aec3;
FUN_14002e6e0(piVar19);
local_29f0 = 1;
local_2a30 = (ulonglong *)CONCAT44(local_2a30._4_4_,(int)param_3[4]);
local_2a28 = param_3[3];
local_2a20 = *(undefined1 *)((longlong)param_3 + 0x2d);
local_2a1c = (int)param_3[6];
local_2a18 = *(undefined1 *)((longlong)param_3 + 0x41);
local_2a17 = (undefined1)param_3[8];
pcVar4 = *(code **)(*plVar11 + 0x10);
*(undefined8 *)(puVar24 + -8) = 0x14005af02;
uVar22 = (*pcVar4)(plVar11);
ppuVar28 = local_2a50;
ppuVar21 = (undefined1 **)(ulonglong)uVar22;
ppuVar30 = &local_2a30;
*(undefined8 *)(puVar24 + -8) = 0x14005af18;
FUN_14009dae0((char *)(plVar11 + 0xe0),uVar22,(longlong)ppuVar28,(uint *)ppuVar30);
*(undefined8 *)(puVar24 + -8) = 0x14005af20;
FUN_14002e770((longlong)piVar19);
local_29f0 = 0;
}
else {
*(undefined8 *)(puVar24 + -8) = 0x14005abbb;
FUN_1400806d0(local_2a78);
*(undefined8 *)(puVar24 + -8) = 0x14005abc5;
FUN_1400801a0((longlong)local_2a78,ppuVar21,(SIZE_T)ppuVar28,ppuVar30);
*(undefined8 *)(puVar24 + -8) = 0x14005abd0;
FUN_14001ba80((longlong)local_2a78,CONCAT71((int7)((ulonglong)ppuVar21 >> 8),0x22),
(SIZE_T)ppuVar28,ppuVar30);
uVar12 = param_3[4];
*(undefined8 *)(puVar24 + -8) = 0x14005abde;
FUN_14001ba80((longlong)local_2a78,(ulonglong)(byte)uVar12,(SIZE_T)ppuVar28,ppuVar30);
uVar12 = param_3[3];
*(undefined8 *)(puVar24 + -8) = 0x14005abeb;
FUN_140081aa0((longlong)local_2a78,uVar12,(SIZE_T)ppuVar28,ppuVar30);
local_2988 = (void *)0x0;
local_2970 = 0;
local_2980 = 0;
local_2978 = 100;
do {
lVar20 = local_2980;
uVar22 = *puVar18;
if (local_2980 < 0) {
/* WARNING: Subroutine does not return */
*(undefined8 *)(puVar24 + -8) = 0x14005afc1;
FUN_14002f590();
}
lVar1 = local_2980 + 1;
SVar29 = 0xffffffffffffffff;
*(undefined8 *)(puVar24 + -8) = 0x14005ac2f;
FUN_14003f250(&local_2988,lVar1,-1);
if (local_2980 <= lVar20) {
/* WARNING: Subroutine does not return */
*(undefined **)(puVar24 + -8) = &UNK_14005afbb;
FUN_14002f590();
}
if (local_2978 < 0x65) {
puVar17 = local_2968 + lVar20;
}
else {
puVar17 = (uint *)((longlong)local_2988 + lVar20 * 4);
}
*puVar17 = uVar22;
puVar18 = *(uint **)(puVar18 + 6);
} while (puVar18 != (uint *)0x0);
uVar12 = (ulonglong)(int)local_2980;
*(undefined8 *)(puVar24 + -8) = 0x14005ac7f;
FUN_140081aa0((longlong)local_2a78,uVar12,SVar29,ppuVar30);
if (0 < local_2980) {
lVar20 = 0;
puVar16 = (ulonglong *)0x0;
do {
if ((lVar20 < 0) || (local_2980 <= lVar20)) {
/* WARNING: Subroutine does not return */
*(undefined8 *)(puVar24 + -8) = 0x14005af49;
FUN_14002f590();
}
if (local_2978 < 0x65) {
puVar18 = local_2968 + lVar20;
}
else {
puVar18 = (uint *)((longlong)local_2988 + lVar20 * 4);
}
uVar12 = (ulonglong)*puVar18;
*(undefined8 *)(puVar24 + -8) = 0x14005accd;
FUN_140021e80((longlong)local_2a78,uVar12,SVar29,ppuVar30);
uVar22 = (int)puVar16 + 1;
puVar16 = (ulonglong *)(ulonglong)uVar22;
lVar20 = (longlong)(int)uVar22;
} while (lVar20 < local_2980);
}
ppuVar28 = local_2a50;
*(undefined8 *)(puVar24 + -8) = 0x14005acea;
iVar9 = FUN_1400a1f10((longlong)ppuVar28,uVar12,SVar29,ppuVar30);
lVar20 = (longlong)iVar9;
*(undefined8 *)(puVar24 + -8) = 0x14005acf6;
FUN_140081aa0((longlong)local_2a78,lVar20,SVar29,ppuVar30);
local_cfc = 200;
local_d00 = 0;
local_d08 = local_1988;
local_6c = 200;
local_70 = 0;
local_78 = &local_cf8;
if (local_2a70 == 0) {
uVar22 = local_2a60;
if (local_2a68 == (ulonglong *)0x0) {
/* WARNING: Subroutine does not return */
*(undefined8 *)(puVar24 + -8) = 0x14005afb5;
FUN_140095370(0,lVar20,SVar29,ppuVar30);
}
}
else {
uVar22 = *(uint *)(local_2a70 + 0x18);
}
puVar16 = local_2a68;
if (local_2a68 == (ulonglong *)0x0) {
if (local_2a70 == 0) {
/* WARNING: Subroutine does not return */
*(undefined **)(puVar24 + -8) = &UNK_14005afaf;
FUN_140095370(0,(ulonglong)uVar22,SVar29,ppuVar30);
}
puVar16 = (ulonglong *)0x0;
if (*(int *)(local_2a70 + 0x18) != 0) {
puVar16 = *(ulonglong **)(local_2a70 + 0x10);
}
}
local_70 = 1;
uStack_cf0 = CONCAT44(uStack_2a3c,uVar22);
local_2a48 = puVar16;
uStack_2a40 = uVar22;
*(undefined8 *)(puVar24 + -8) = 0x14005ad99;
local_cf8 = puVar16;
FUN_140040a60((longlong)local_1988,(longlong)&local_cf8,SVar29,ppuVar30);
if (local_78 == (ulonglong **)0x0) {
*(undefined8 *)(puVar24 + -8) = 0x14005af96;
FUN_14002f1e0(local_29d0,(wchar_t *)PTR_u_ArrayWithExternalBuffer_is_unini_1401569a0,
SVar29,ppuVar30);
/* WARNING: Subroutine does not return */
*(undefined **)(puVar24 + -8) = &UNK_14005afa9;
_CxxThrowException(local_29d0,(ThrowInfo *)&DAT_140151b88);
}
if (local_6c < 0) {
/* WARNING: Subroutine does not return */
*(undefined **)(puVar24 + -8) = &UNK_14005af82;
FUN_14002f590();
}
*(undefined8 *)(puVar24 + -8) = 0x14005adc4;
FUN_140040a60((longlong)local_1988,(longlong)ppuVar28,SVar29,ppuVar30);
pcVar4 = *(code **)(plVar11[0x21] + 0x10);
*(undefined8 *)(puVar24 + -8) = 0x14005add1;
piVar19 = (int *)(*pcVar4)();
local_29e8 = piVar19;
*(undefined8 *)(puVar24 + -8) = 0x14005ade3;
FUN_14002e6e0(piVar19);
local_29e0 = 1;
local_2a30 = (ulonglong *)CONCAT44(local_2a30._4_4_,(int)param_3[4]);
local_2a28 = param_3[3];
local_2a20 = *(undefined1 *)((longlong)param_3 + 0x2d);
local_2a1c = (int)param_3[6];
local_2a18 = *(undefined1 *)((longlong)param_3 + 0x41);
local_2a17 = (undefined1)param_3[8];
ppuVar30 = &local_2a30;
ppuVar28 = local_1988;
ppuVar21 = (undefined1 **)0x0;
*(undefined8 *)(puVar24 + -8) = 0x14005ae31;
FUN_14009dae0((char *)(plVar11 + 0xe0),0,(longlong)ppuVar28,(uint *)ppuVar30);
*(undefined8 *)(puVar24 + -8) = 0x14005ae39;
FUN_14002e770((longlong)piVar19);
pvVar8 = local_2988;
local_29e0 = 0;
if (local_d08 == (ulonglong **)0x0) {
*(undefined8 *)(puVar24 + -8) = 0x14005af69;
FUN_14002f1e0(local_29d0,(wchar_t *)PTR_u_ArrayWithExternalBuffer_is_unini_1401569a0,
ppuVar28,ppuVar30);
/* WARNING: Subroutine does not return */
*(undefined **)(puVar24 + -8) = &UNK_14005af7c;
_CxxThrowException(local_29d0,(ThrowInfo *)&DAT_140151b88);
}
if (local_cfc < 0) {
/* WARNING: Subroutine does not return */
*(undefined **)(puVar24 + -8) = &UNK_14005af55;
FUN_14002f590();
}
local_d00 = 0;
if (100 < local_2978) {
*(undefined8 *)(puVar24 + -8) = 0x14005ae77;
operator_delete__(pvVar8);
}
local_2a30 = &local_2a70;
*(undefined8 *)(puVar24 + -8) = 0x14005ae89;
FUN_140095270((longlong *)&local_2a70);
if ((local_2a68 != (ulonglong *)0x0) && (local_2a5c < 0)) {
/* WARNING: Subroutine does not return */
*(undefined8 *)(puVar24 + -8) = 0x14005af4f;
FUN_14002f590();
}
}
}
*(undefined8 *)(puVar24 + -8) = 0x14005af33;
FUN_14009c470((longlong)(plVar11 + 0x18));
lVar25 = lVar25 + 1;
} while (lVar25 < iVar27);
}
if ((local_2a80 != (undefined8 *)0x0) && (piVar19 = (int *)(local_2a80 + -2), *piVar19 == 0xdddd))
{
*(undefined8 *)(puVar24 + -8) = 0x14005afdd;
free(piVar19);
}
plVar11 = local_2a38;
if ((local_2a38 != (longlong *)0x0) && (_Memory = local_2a38 + -2, (int)*_Memory == 0xdddd)) {
*(undefined8 *)(puVar24 + -8) = 0x14005aff8;
free(_Memory);
plVar11 = extraout_RAX;
}
puVar6 = local_2628;
if (100 < local_2618) {
*(undefined8 *)(puVar24 + -8) = 0x14005b00f;
operator_delete__(puVar6);
plVar11 = extraout_RAX_00;
}
puVar16 = local_27d8;
if (100 < local_27c8) {
*(undefined8 *)(puVar24 + -8) = 0x14005b026;
operator_delete__(puVar16);
plVar11 = extraout_RAX_01;
}
*(undefined8 *)(puVar24 + -8) = 0x14005b038;
return CONCAT71((int7)((ulonglong)plVar11 >> 8),1);
}