/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x14013a450 FUN_14013a450 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ void FUN_14013a450(longlong param_1,undefined4 param_2,undefined4 param_3,char *param_4) { int *piVar1; undefined *puVar2; int iVar3; int iVar4; undefined8 uVar5; undefined *puVar6; int iVar7; int iVar8; undefined1 auStack_128 [32]; undefined **local_108; undefined *local_f8; undefined4 local_f0 [2]; undefined8 local_e8; undefined8 local_e0; undefined1 local_d8; undefined8 local_d0; undefined4 local_c8; undefined2 local_c4; undefined8 local_c2; undefined8 local_ba; undefined8 local_b2; undefined8 local_aa; undefined1 local_a2; undefined2 local_98; undefined2 uStack_96; undefined4 uStack_94; undefined4 local_90; undefined2 local_8c; char local_8a [66]; ulonglong local_48; local_e8 = 0xfffffffffffffffe; local_48 = DAT_1403463c0 ^ (ulonglong)auStack_128; local_8c = 0; local_8a[0] = '\0'; local_8a[1] = '\0'; local_8a[2] = '\0'; local_8a[3] = '\0'; local_8a[4] = '\0'; local_8a[5] = '\0'; local_8a[6] = '\0'; local_8a[7] = '\0'; local_8a[8] = '\0'; local_8a[9] = '\0'; local_8a[10] = '\0'; local_8a[0xb] = '\0'; local_8a[0xc] = '\0'; local_8a[0xd] = '\0'; local_8a[0xe] = '\0'; local_8a[0xf] = '\0'; local_8a[0x10] = '\0'; local_8a[0x11] = '\0'; local_8a[0x12] = '\0'; local_8a[0x13] = '\0'; local_8a[0x14] = '\0'; local_8a[0x15] = '\0'; local_8a[0x16] = '\0'; local_8a[0x17] = '\0'; local_8a[0x18] = '\0'; local_8a[0x19] = '\0'; local_8a[0x1a] = '\0'; local_8a[0x1b] = '\0'; local_8a[0x1c] = '\0'; local_8a[0x1d] = '\0'; local_8a[0x1e] = '\0'; local_8a[0x1f] = '\0'; local_8a[0x20] = '\0'; local_8a[0x21] = '\0'; local_8a[0x22] = '\0'; local_8a[0x23] = '\0'; local_8a[0x24] = '\0'; local_8a[0x25] = '\0'; local_8a[0x26] = '\0'; local_8a[0x27] = '\0'; local_8a[0x28] = '\0'; local_8a[0x29] = '\0'; local_8a[0x2a] = '\0'; local_8a[0x2b] = '\0'; local_8a[0x2c] = '\0'; local_8a[0x2d] = '\0'; local_8a[0x2e] = '\0'; local_8a[0x2f] = '\0'; local_8a[0x30] = '\0'; local_8a[0x31] = '\0'; local_8a[0x32] = 0; local_d0 = 0; local_c8 = 0; local_c4 = 0; local_c2 = 0; local_ba = 0; local_b2 = 0; local_aa = 0; local_a2 = 0; uStack_96 = 0x520; local_98 = 0x41; uStack_94 = param_3; local_90 = param_2; strncpy(local_8a,param_4,0x32); local_c8 = local_90; local_c4 = 0x17d; local_d0 = CONCAT62((int6)(CONCAT44(uStack_94,CONCAT22(uStack_96,local_98)) >> 0x10),0x2f); FUN_14012d5a0(*(undefined8 *)(param_1 + 0xe0),&local_98,&local_d0); *(int *)(param_1 + 0x6d8) = *(int *)(param_1 + 0x6d8) + 1; FUN_14016d8c0(); local_f8 = PTR_DAT_140344098; iVar3 = FUN_14016d7e0(&local_c2); iVar7 = 0; iVar8 = iVar7; if ((local_f8 != (undefined *)0x0) && (local_f8 != PTR_DAT_140344098)) { iVar8 = *(int *)(local_f8 + -8); } iVar4 = iVar3; if (((iVar3 <= iVar8) && (iVar4 = iVar7, local_f8 != (undefined *)0x0)) && (local_f8 != PTR_DAT_140344098)) { iVar4 = *(int *)(local_f8 + -8); } iVar8 = 1; if (1 < iVar4) { iVar8 = iVar4; } iVar4 = iVar7; if ((local_f8 != (undefined *)0x0) && (local_f8 != PTR_DAT_140344098)) { iVar4 = *(int *)(local_f8 + -8); } if (iVar4 < iVar8) { FUN_14013c520(&local_f8); } FUN_14013c600(&local_f8); puVar6 = local_f8; if (local_f8 == (undefined *)0x0) { puVar6 = PTR_DAT_140344098; } FUN_14016d810(puVar6,&local_c2,iVar3); puVar6 = local_f8; if (local_f8 == (undefined *)0x0) { puVar6 = PTR_DAT_140344098; } iVar3 = FUN_14016d7e0(puVar6); iVar8 = 0; if (0 < iVar3) { iVar8 = iVar3; } iVar3 = iVar7; if ((local_f8 != (undefined *)0x0) && (local_f8 != PTR_DAT_140344098)) { iVar3 = *(int *)(local_f8 + -8); } if ((iVar3 <= iVar8) && (iVar8 = iVar7, local_f8 != (undefined *)0x0)) { if (local_f8 == PTR_DAT_140344098) goto LAB_14013a63e; iVar8 = *(int *)(local_f8 + -8); } if (((local_f8 != PTR_DAT_140344098) && (local_f8 != (undefined *)0x0)) && (piVar1 = (int *)(local_f8 + -8), piVar1 != (int *)0x0)) { *piVar1 = iVar8; *(undefined1 *)((longlong)iVar8 + 8 + (longlong)piVar1) = 0; } LAB_14013a63e: local_108 = &local_f8; local_f0[0] = param_3; (**(code **)(*(longlong *)(param_1 + 0xa8) + 0x4f0)) ((longlong *)(param_1 + 0xa8),param_2,&DAT_1403440f0,local_f0); puVar6 = local_f8; if (((local_f8 != (undefined *)0x0) && (local_f8 != PTR_DAT_140344098)) && (puVar2 = local_f8 + -8, puVar2 != (undefined *)0x0)) { uVar5 = FUN_14016d8c0(); local_e0 = uVar5; FUN_14016db50(uVar5); local_d8 = 1; piVar1 = (int *)(puVar6 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14016d970(puVar2); } FUN_14016dbe0(uVar5); } return; }