/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x14013c210 FUN_14013c210 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ void FUN_14013c210(longlong param_1,undefined4 param_2,undefined8 *param_3,undefined8 param_4) { undefined *puVar1; int *piVar2; int iVar3; int iVar4; undefined8 uVar5; undefined *puVar6; int iVar7; undefined1 auStack_c8 [32]; undefined **local_a8; undefined4 *local_a0; undefined *local_98; undefined8 local_90; undefined4 local_88; undefined2 local_84; undefined4 local_82 [2]; undefined8 local_78; undefined1 local_70; undefined8 local_68; undefined2 local_60; undefined2 uStack_5e; undefined4 uStack_5c; undefined4 local_58; undefined2 local_54; undefined8 local_52; undefined8 local_4a; ulonglong local_40; local_68 = 0xfffffffffffffffe; local_40 = DAT_1403463c0 ^ (ulonglong)auStack_c8; local_54 = 0; local_82[0] = 0; uStack_5e = 0x504; local_60 = 0x1e; uStack_5c = 0; local_52 = *param_3; local_4a = param_3[1]; local_84 = 1; local_90 = 0x5040012; local_88 = param_2; local_58 = param_2; FUN_1400d55f0(*(undefined8 *)(param_1 + 0xe0),&local_60,&local_90); *(int *)(param_1 + 0x6a4) = *(int *)(param_1 + 0x6a4) + 1; FUN_14016d8c0(); local_98 = PTR_DAT_1403440a0; iVar3 = FUN_14016d740(param_4); iVar7 = 0; if ((local_98 != (undefined *)0x0) && (iVar7 = 0, local_98 != PTR_DAT_1403440a0)) { iVar7 = *(int *)(local_98 + -8); } iVar4 = iVar3; if (((iVar3 <= iVar7) && (iVar4 = 0, local_98 != (undefined *)0x0)) && (local_98 != PTR_DAT_1403440a0)) { iVar4 = *(int *)(local_98 + -8); } iVar7 = 1; if (1 < iVar4) { iVar7 = iVar4; } iVar4 = 0; if ((local_98 != (undefined *)0x0) && (iVar4 = 0, local_98 != PTR_DAT_1403440a0)) { iVar4 = *(int *)(local_98 + -8); } if (iVar4 < iVar7) { FUN_14004e770(&local_98,iVar7); } FUN_14004e850(&local_98); puVar6 = local_98; if (local_98 == (undefined *)0x0) { puVar6 = PTR_DAT_1403440a0; } FUN_14016d770(puVar6,param_4,iVar3); puVar6 = local_98; if (local_98 == (undefined *)0x0) { puVar6 = PTR_DAT_1403440a0; } iVar3 = FUN_14016d740(puVar6); iVar7 = 0; if (0 < iVar3) { iVar7 = iVar3; } iVar3 = 0; if ((local_98 != (undefined *)0x0) && (local_98 != PTR_DAT_1403440a0)) { iVar3 = *(int *)(local_98 + -8); } if ((iVar3 <= iVar7) && (iVar7 = 0, local_98 != (undefined *)0x0)) { if (local_98 == PTR_DAT_1403440a0) goto LAB_14013c3b0; iVar7 = *(int *)(local_98 + -8); } if (((local_98 != PTR_DAT_1403440a0) && (local_98 != (undefined *)0x0)) && ((int *)(local_98 + -8) != (int *)0x0)) { *(int *)(local_98 + -8) = iVar7; *(undefined2 *)(local_98 + (longlong)iVar7 * 2) = 0; } LAB_14013c3b0: local_a0 = local_82; local_a8 = &local_98; (**(code **)(*(longlong *)(param_1 + 0xa8) + 0x420)) ((longlong *)(param_1 + 0xa8),param_2,&DAT_1403440f0,&local_52); puVar6 = local_98; if (((local_98 != (undefined *)0x0) && (local_98 != PTR_DAT_1403440a0)) && (puVar1 = local_98 + -8, puVar1 != (undefined *)0x0)) { uVar5 = FUN_14016d8c0(); local_78 = uVar5; FUN_14016db50(uVar5); local_70 = 1; piVar2 = (int *)(puVar6 + -4); *piVar2 = *piVar2 + -1; if (*piVar2 == 0) { FUN_14016d970(puVar1); } FUN_14016dbe0(uVar5); } return; }