/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1401b6440 FUN_1401b6440 * Pseudocode, not original source. */ void FUN_1401b6440(undefined8 *param_1) { int iVar1; longlong lVar2; longlong lVar3; longlong lVar4; if (param_1[0xce] != 0) { iVar1 = *(int *)(param_1 + 0xd2); lVar4 = 0; if (0 < (longlong)iVar1) { do { if (*(int *)(param_1 + 0xd2) == 0) { lVar3 = 0; } else { lVar3 = param_1[0xd1]; } lVar3 = *(longlong *)(lVar3 + lVar4 * 8); lVar2 = param_1[0xce]; if ((*(short *)(lVar3 + -8) != 0x1de6) || (*(longlong *)(lVar3 + 0x50) != 0)) { /* WARNING: Subroutine does not return */ FUN_14016d6b0(); } lVar4 = lVar4 + 1; *(undefined8 *)(lVar3 + 0x50) = *(undefined8 *)(lVar2 + 0x80); *(short **)(lVar2 + 0x80) = (short *)(lVar3 + -8); } while (lVar4 < iVar1); } } FUN_1401c2dc0(param_1 + 0xcf,0); if ((100 < (ulonglong)param_1[2]) && ((void *)*param_1 != (void *)0x0)) { operator_delete__((void *)*param_1); *param_1 = 0; } param_1[1] = 0; param_1[2] = 100; *(undefined4 *)(param_1 + 0xd5) = DAT_140344450; *(undefined2 *)((longlong)param_1 + 0x6ac) = DAT_140344454; param_1[0xce] = 0; *(undefined4 *)(param_1 + 0xd6) = 0xffffffff; return; }