/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1401c2140 FUN_1401c2140 * Pseudocode, not original source. */ undefined8 FUN_1401c2140(longlong param_1) { undefined4 uVar1; char cVar2; longlong lVar3; int local_res8 [2]; undefined1 *local_res10; undefined1 local_c8 [8]; undefined1 local_c0 [8]; longlong local_b8; int local_ac; undefined8 local_a0; undefined1 local_98 [144]; local_a0 = 0xfffffffffffffffe; FUN_14016b440(local_c8); lVar3 = *(longlong *)(param_1 + 8); if ((lVar3 == 0) && (*(longlong *)(param_1 + 0x10) == 0)) { /* WARNING: Subroutine does not return */ FUN_14016d1e0(); } if (*(longlong *)(param_1 + 0x10) == 0) { if (lVar3 == 0) { /* WARNING: Subroutine does not return */ FUN_14016d1e0(); } if (*(int *)(lVar3 + 0x18) == 0) { lVar3 = 0; } else { lVar3 = *(longlong *)(lVar3 + 0x10); } } else { lVar3 = *(longlong *)(param_1 + 0x10); if (lVar3 == 0) { FUN_14016d300(local_98,PTR_u_ArrayWithExternalBuffer_is_unini_1403440d0); /* WARNING: Subroutine does not return */ _CxxThrowException(local_98,(ThrowInfo *)&DAT_1403417f8); } } FUN_14016b0c0(local_c8,lVar3); if (*(longlong *)(param_1 + 8) == 0) { if (*(longlong *)(param_1 + 0x10) == 0) { /* WARNING: Subroutine does not return */ FUN_14016d1e0(); } uVar1 = *(undefined4 *)(param_1 + 0x18); } else { uVar1 = *(undefined4 *)(*(longlong *)(param_1 + 8) + 0x18); } FUN_14016b5a0(local_c8,uVar1); cVar2 = FUN_14016bba0(local_c8,local_res8); if (cVar2 != '\0') { if (local_res8[0] == 1) { local_res10 = local_c0; FUN_14016d0e0(local_c0); if ((local_b8 != 0) && (local_ac < 0)) { /* WARNING: Subroutine does not return */ FUN_14016d6b0(); } return 1; } if (local_res8[0] == 2) { local_res10 = local_c0; FUN_14016d0e0(local_c0); if ((local_b8 != 0) && (local_ac < 0)) { /* WARNING: Subroutine does not return */ FUN_14016d6b0(); } return 2; } } local_res10 = local_c0; FUN_14016d0e0(local_c0); if ((local_b8 != 0) && (local_ac < 0)) { /* WARNING: Subroutine does not return */ FUN_14016d6b0(); } return 3; }