/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1401ecf40 FUN_1401ecf40 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ void FUN_1401ecf40(longlong param_1,longlong param_2) { undefined8 *puVar1; char cVar2; undefined8 uVar3; longlong *plVar4; longlong lVar5; longlong lVar6; undefined1 auStack_da8 [32]; longlong *local_d88; undefined8 local_d80; undefined4 uStack_d78; undefined4 uStack_d74; undefined1 local_d70 [8]; longlong local_d68; longlong local_d60; undefined4 local_d58; int local_d54; undefined8 local_d48; undefined1 local_d40; undefined **local_d38; undefined4 local_d30; undefined2 local_d2c; undefined4 local_d28 [2]; undefined8 local_d20; undefined1 local_d18; undefined4 local_d14; undefined1 local_d10; undefined1 local_d0f; undefined8 local_d08; undefined1 local_d00 [72]; undefined4 local_cb8; undefined4 uStack_cb4; undefined4 uStack_cb0; undefined4 uStack_cac; undefined4 *local_38; undefined4 local_30; int local_2c; ulonglong local_28; local_d08 = 0xfffffffffffffffe; local_28 = DAT_1403463c0 ^ (ulonglong)auStack_da8; cVar2 = FUN_14016b370(param_2,&local_d80,8); if (cVar2 != '\0') { uVar3 = (**(code **)(**(longlong **)(param_1 + 0x108) + 0x58))(); local_d48 = uVar3; FUN_14016db50(uVar3); local_d40 = 1; local_d38 = Proud::AddrPort::vftable; local_d30 = *(undefined4 *)(param_2 + 0x38); local_d2c = *(undefined2 *)(param_2 + 0x3c); plVar4 = (longlong *)FUN_1401d0f00(*(undefined8 *)(param_1 + 0x108),&local_d88,&local_d38); lVar6 = 0; if ((longlong *)*plVar4 != (longlong *)0x0) { lVar6 = *(longlong *)*plVar4; } if ((local_d88 != (longlong *)0x0) && (local_d88[1] = local_d88[1] + -1, uVar3 = local_d48, local_d88[1] == 0)) { puVar1 = (undefined8 *)*local_d88; if (puVar1 != (undefined8 *)0x0) { (**(code **)*puVar1)(puVar1,1); } FUN_14016d970(local_d88); uVar3 = local_d48; } if ((lVar6 != 0) && (*(int *)(lVar6 + 0x56c) != 1)) { FUN_14016b440(local_d70); FUN_14016abe0(local_d70); FUN_14016b5a0(local_d70,0x800); FUN_14016b5a0(local_d70,0); FUN_14004eef0(local_d70,0x21); FUN_14004ee00(local_d70,local_d80); local_2c = 200; local_30 = 0; local_38 = &local_cb8; if (local_d68 == 0) { uStack_d78 = local_d58; if (local_d60 == 0) { /* WARNING: Subroutine does not return */ FUN_14016d1e0(); } } else { uStack_d78 = *(undefined4 *)(local_d68 + 0x18); } lVar5 = local_d60; if (local_d60 == 0) { if (local_d68 == 0) { /* WARNING: Subroutine does not return */ FUN_14016d1e0(); } lVar5 = 0; if (*(int *)(local_d68 + 0x18) != 0) { lVar5 = *(longlong *)(local_d68 + 0x10); } } local_30 = 1; local_d80._0_4_ = (undefined4)lVar5; local_d80._4_4_ = (undefined4)((ulonglong)lVar5 >> 0x20); local_cb8 = (undefined4)local_d80; uStack_cb4 = local_d80._4_4_; uStack_cac = uStack_d74; local_d28[0] = 0; local_d20 = 0; local_d18 = 1; local_d14 = 0xffffffff; local_d10 = 1; local_d0f = DAT_140344dfc; local_d80 = (longlong *)lVar5; uStack_cb0 = uStack_d78; FUN_1401fa510(lVar6 + 0x668,&local_cb8,local_d28); if (local_38 == (undefined4 *)0x0) { FUN_14016d300(local_d00,PTR_u_ArrayWithExternalBuffer_is_unini_1403440d0); /* WARNING: Subroutine does not return */ _CxxThrowException(local_d00,(ThrowInfo *)&DAT_1403417f8); } if (local_2c < 0) { /* WARNING: Subroutine does not return */ FUN_14016d6b0(); } local_30 = 0; local_d80 = &local_d68; FUN_14016d0e0(&local_d68); if (local_d60 != 0) { if (local_d54 < 0) { /* WARNING: Subroutine does not return */ FUN_14016d6b0(); } local_d58 = 0; } } FUN_14016dbe0(uVar3); } return; }