/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1400aa510 FUN_1400aa510 * Pseudocode, not original source. */ void FUN_1400aa510(undefined8 param_1,longlong param_2,undefined8 param_3,undefined8 param_4, undefined4 param_5,undefined8 param_6) { longlong *plVar1; void *pvVar2; undefined8 uVar3; longlong *plVar4; longlong lVar5; longlong *local_40; longlong *local_38; longlong *local_30; undefined8 local_28; local_28 = 0xfffffffffffffffe; FUN_140001170(param_2,&local_30); FUN_1400010e0(param_2,&local_38); uVar3 = FUN_140001200(param_2); plVar4 = operator_new(0x18); if (plVar4 == (longlong *)0x0) { plVar4 = (longlong *)0x0; } else { plVar4[1] = 0; *(undefined4 *)(plVar4 + 2) = 1; local_40 = plVar4; lVar5 = FUN_1402182d0(uVar3); *plVar4 = lVar5; } local_40 = plVar4; if (plVar4 == (longlong *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x8007000e); } FUN_1400aa6e0(param_1,&local_30,&local_38,&local_40,param_3,param_4,param_5,param_6, *(undefined4 *)(param_2 + 8)); plVar4 = local_40; if (local_40 != (longlong *)0x0) { LOCK(); plVar1 = local_40 + 2; lVar5 = *plVar1; *(int *)plVar1 = (int)*plVar1 + -1; UNLOCK(); if ((int)lVar5 == 1) { if (*local_40 != 0) { Ordinal_6(); } pvVar2 = (void *)plVar4[1]; if (pvVar2 != (void *)0x0) { operator_delete__(pvVar2); } operator_delete(plVar4); } } if (local_38 != (longlong *)0x0) { LOCK(); plVar4 = local_38 + 2; lVar5 = *plVar4; *(int *)plVar4 = (int)*plVar4 + -1; UNLOCK(); if ((int)lVar5 == 1) { if (*local_38 != 0) { Ordinal_6(); } if ((void *)local_38[1] != (void *)0x0) { operator_delete__((void *)local_38[1]); } operator_delete(local_38); } } if (local_30 != (longlong *)0x0) { LOCK(); plVar4 = local_30 + 2; lVar5 = *plVar4; *(int *)plVar4 = (int)*plVar4 + -1; UNLOCK(); if ((int)lVar5 == 1) { if (*local_30 != 0) { Ordinal_6(); } if ((void *)local_30[1] != (void *)0x0) { operator_delete__((void *)local_30[1]); } operator_delete(local_30); } } return; }