/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1401c2b40 FUN_1401c2b40 * Pseudocode, not original source. */ /* WARNING: Function: __chkstk replaced with injection: alloca_probe */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ void FUN_1401c2b40(int *param_1,longlong param_2,undefined8 param_3) { longlong lVar1; int iVar2; longlong lVar3; undefined1 auStack_1a08 [32]; undefined1 local_19e8 [72]; undefined8 local_19a0; undefined1 local_1998 [80]; undefined1 local_1948 [3200]; longlong local_cc8; undefined4 local_cc0; int local_cbc; undefined1 local_cb8 [3200]; longlong local_38; int local_2c; ulonglong local_28; undefined8 uStack_20; uStack_20 = 0x1401c2b4e; local_19a0 = 0xfffffffffffffffe; local_28 = DAT_1403463c0 ^ (ulonglong)auStack_1a08; if (*(longlong *)(param_2 + 0xc80) == 0) { FUN_14016d300(local_19e8,PTR_u_ArrayWithExternalBuffer_is_unini_1403440d0); /* WARNING: Subroutine does not return */ _CxxThrowException(local_19e8,(ThrowInfo *)&DAT_1403417f8); } if (*(int *)(param_2 + 0xc8c) < 0) { /* WARNING: Subroutine does not return */ FUN_14016d6b0(); } lVar3 = 0; *(undefined4 *)(param_2 + 0xc88) = 0; FUN_14004eef0(param_3,0x13); FUN_14004eef0(param_3,(char)*param_1); if (*param_1 == 1) { FUN_140153c40(param_3,param_1[1]); if (*(longlong *)(param_1 + 2) == 0) { if (*(longlong *)(param_1 + 4) == 0) { /* WARNING: Subroutine does not return */ FUN_14016d1e0(); } iVar2 = param_1[6]; } else { iVar2 = *(int *)(*(longlong *)(param_1 + 2) + 0x18); } FUN_14016cac0(param_3,(longlong)iVar2); FUN_14016e080(local_1948,param_3); FUN_14016ded0(param_2,local_1948); if (local_cc8 == 0) { FUN_14016d300(local_19e8,PTR_u_ArrayWithExternalBuffer_is_unini_1403440d0); /* WARNING: Subroutine does not return */ _CxxThrowException(local_19e8,(ThrowInfo *)&DAT_1403417f8); } if (local_cbc < 0) { /* WARNING: Subroutine does not return */ FUN_14016d6b0(); } local_cc0 = 0; lVar1 = *(longlong *)(param_1 + 2); if ((lVar1 == 0) && (*(longlong *)(param_1 + 4) == 0)) { /* WARNING: Subroutine does not return */ FUN_14016d1e0(); } if (*(longlong *)(param_1 + 4) == 0) { if (lVar1 == 0) { /* WARNING: Subroutine does not return */ FUN_14016d1e0(); } if (*(int *)(lVar1 + 0x18) != 0) { lVar3 = *(longlong *)(lVar1 + 0x10); } } else { lVar3 = *(longlong *)(param_1 + 4); if (lVar3 == 0) { FUN_14016d300(local_1998,PTR_u_ArrayWithExternalBuffer_is_unini_1403440d0); /* WARNING: Subroutine does not return */ _CxxThrowException(local_1998,(ThrowInfo *)&DAT_1403417f8); } } FUN_14016de40(param_2,lVar3); } else if (*param_1 == 2) { if ((*(longlong **)(param_1 + 8) == (longlong *)0x0) || (lVar3 = **(longlong **)(param_1 + 8), lVar3 == 0)) { /* WARNING: Subroutine does not return */ FUN_14016d6b0(); } FUN_1401c3450(lVar3,param_3); FUN_140153c40(param_3,param_1[0xd]); FUN_140153c40(param_3,param_1[0xc]); FUN_14016e080(local_cb8,param_3); FUN_14016ded0(param_2,local_cb8); if (local_38 == 0) { FUN_14016d300(local_19e8,PTR_u_ArrayWithExternalBuffer_is_unini_1403440d0); /* WARNING: Subroutine does not return */ _CxxThrowException(local_19e8,(ThrowInfo *)&DAT_1403417f8); } if (local_2c < 0) { /* WARNING: Subroutine does not return */ FUN_14016d6b0(); } } return; }