175 lines
5.6 KiB
C
175 lines
5.6 KiB
C
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
|
* Ghidra 12.1.2 decompiler output for 0x14019fb70 FUN_14019fb70
|
|
* Pseudocode, not original source. */
|
|
|
|
/* WARNING: Function: __chkstk replaced with injection: alloca_probe */
|
|
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
|
|
|
undefined1
|
|
FUN_14019fb70(longlong *param_1,undefined8 param_2,undefined4 param_3,longlong param_4,
|
|
undefined8 param_5,int param_6)
|
|
|
|
{
|
|
undefined1 uVar1;
|
|
int iVar2;
|
|
longlong lVar3;
|
|
undefined1 auStack_1ad8 [32];
|
|
longlong local_1ab8;
|
|
undefined8 local_1aa8;
|
|
int iStack_1aa0;
|
|
undefined4 uStack_1a9c;
|
|
undefined4 local_1a98;
|
|
undefined4 local_1a94;
|
|
undefined8 local_1a90;
|
|
undefined4 local_1a88;
|
|
undefined8 local_1a80;
|
|
undefined4 local_1a78;
|
|
undefined4 local_1a74;
|
|
undefined4 local_1a70;
|
|
undefined1 local_1a6c;
|
|
undefined1 local_1a6b;
|
|
undefined1 local_1a6a;
|
|
undefined4 local_1a68;
|
|
undefined8 local_1a60;
|
|
undefined1 local_1a58;
|
|
undefined1 local_1a57;
|
|
undefined4 local_1a50;
|
|
undefined4 local_1a4c;
|
|
wchar_t *local_1a48;
|
|
undefined4 local_1a40;
|
|
undefined4 local_1a3c;
|
|
undefined8 local_1a38;
|
|
undefined1 local_1a28 [8];
|
|
longlong local_1a20;
|
|
longlong local_1a18;
|
|
undefined4 local_1a10;
|
|
int local_1a0c;
|
|
undefined1 local_1a00 [136];
|
|
undefined1 local_1978 [3200];
|
|
undefined1 *local_cf8;
|
|
int local_cf0;
|
|
int local_cec;
|
|
undefined4 local_ce8;
|
|
undefined4 uStack_ce4;
|
|
undefined4 uStack_ce0;
|
|
undefined4 uStack_cdc;
|
|
undefined4 *local_68;
|
|
undefined4 local_60;
|
|
int local_5c;
|
|
ulonglong local_58;
|
|
undefined8 uStack_48;
|
|
|
|
uStack_48 = 0x14019fb8f;
|
|
local_1a38 = 0xfffffffffffffffe;
|
|
local_58 = DAT_1403463c0 ^ (ulonglong)auStack_1ad8;
|
|
FUN_14016ec00(param_4);
|
|
FUN_14016b440(local_1a28);
|
|
FUN_14016b0c0(local_1a28,local_1a00,0x80);
|
|
FUN_14004eef0(local_1a28,2);
|
|
FUN_14016cac0(local_1a28,(longlong)param_6);
|
|
local_cec = 200;
|
|
local_cf0 = 0;
|
|
local_cf8 = local_1978;
|
|
local_5c = 200;
|
|
local_60 = 0;
|
|
local_68 = &local_ce8;
|
|
if (local_1a20 == 0) {
|
|
if (local_1a18 == 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14016d1e0();
|
|
}
|
|
}
|
|
else {
|
|
local_1a10 = *(undefined4 *)(local_1a20 + 0x18);
|
|
}
|
|
lVar3 = local_1a18;
|
|
if (local_1a18 == 0) {
|
|
if (local_1a20 == 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14016d1e0();
|
|
}
|
|
lVar3 = 0;
|
|
if (*(int *)(local_1a20 + 0x18) != 0) {
|
|
lVar3 = *(longlong *)(local_1a20 + 0x10);
|
|
}
|
|
}
|
|
local_60 = 1;
|
|
local_1aa8._0_4_ = (undefined4)lVar3;
|
|
local_1aa8._4_4_ = (undefined4)((ulonglong)lVar3 >> 0x20);
|
|
local_ce8 = (undefined4)local_1aa8;
|
|
uStack_ce4 = local_1aa8._4_4_;
|
|
uStack_cdc = uStack_1a9c;
|
|
local_1aa8 = (longlong *)lVar3;
|
|
iStack_1aa0 = local_1a10;
|
|
uStack_ce0 = local_1a10;
|
|
FUN_14016ded0(local_1978,&local_ce8);
|
|
if (local_68 == (undefined4 *)0x0) {
|
|
FUN_14016d300(&local_1a98,PTR_u_ArrayWithExternalBuffer_is_unini_1403440d0);
|
|
/* WARNING: Subroutine does not return */
|
|
_CxxThrowException(&local_1a98,(ThrowInfo *)&DAT_1403417f8);
|
|
}
|
|
if (local_5c < 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14016d6b0();
|
|
}
|
|
iStack_1aa0 = param_6;
|
|
if (local_cf8 == (undefined1 *)0x0) {
|
|
FUN_14016d300(&local_1a98,PTR_u_ArrayWithExternalBuffer_is_unini_1403440d0);
|
|
/* WARNING: Subroutine does not return */
|
|
_CxxThrowException(&local_1a98,(ThrowInfo *)&DAT_1403417f8);
|
|
}
|
|
if (local_cf0 < 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14016d6b0();
|
|
}
|
|
iVar2 = local_cf0 + 1;
|
|
if ((iVar2 < 0) || (local_cec < iVar2)) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14016d6b0();
|
|
}
|
|
*(undefined8 *)(local_cf8 + (longlong)local_cf0 * 0x10) = param_5;
|
|
*(ulonglong *)(local_cf8 + (longlong)local_cf0 * 0x10 + 8) = CONCAT44(uStack_1a9c,param_6);
|
|
local_1a98 = *(undefined4 *)(param_4 + 0x2c);
|
|
local_1a94 = *(undefined4 *)(param_4 + 8);
|
|
local_1a90 = *(undefined8 *)(param_4 + 0x10);
|
|
local_1a88 = *(undefined4 *)(param_4 + 0x18);
|
|
local_1a80 = *(undefined8 *)(param_4 + 0x20);
|
|
local_1a78 = *(undefined4 *)(param_4 + 0x28);
|
|
local_1a6b = *(undefined1 *)(param_4 + 0x30);
|
|
local_1a6c = *(undefined1 *)(param_4 + 0x40);
|
|
local_1a6a = *(undefined1 *)(param_4 + 0x41);
|
|
local_1a74 = *(undefined4 *)(param_4 + 0x54);
|
|
local_1a68 = 0xffffffff;
|
|
local_1a60 = *(undefined8 *)(param_4 + 0x48);
|
|
local_1a57 = *(undefined1 *)(param_4 + 0x50);
|
|
local_1a58 = DAT_140344dfc;
|
|
local_1a70 = *(undefined4 *)(param_4 + 0x58);
|
|
local_1ab8 = CONCAT44(local_1ab8._4_4_,param_3);
|
|
local_cf0 = iVar2;
|
|
uVar1 = (**(code **)(*param_1 + 0x28))(param_1,local_1978,&local_1a98,param_2);
|
|
local_1a50 = FUN_14019b440(local_1978);
|
|
local_1a4c = 0;
|
|
local_1a48 = L"<User Defined Message>";
|
|
local_1a40 = *(undefined4 *)(param_4 + 0x54);
|
|
local_1a3c = *(undefined4 *)(param_4 + 0x58);
|
|
local_1ab8 = param_4;
|
|
(**(code **)(*param_1 + 0x68))(param_1,param_2,param_3,&local_1a50);
|
|
if (local_cf8 == (undefined1 *)0x0) {
|
|
FUN_14016d300(&local_1a98,PTR_u_ArrayWithExternalBuffer_is_unini_1403440d0);
|
|
/* WARNING: Subroutine does not return */
|
|
_CxxThrowException(&local_1a98,(ThrowInfo *)&DAT_1403417f8);
|
|
}
|
|
if (-1 < local_cec) {
|
|
local_cf0 = 0;
|
|
local_1aa8 = &local_1a20;
|
|
FUN_14016d0e0(&local_1a20);
|
|
if ((local_1a18 != 0) && (local_1a0c < 0)) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14016d6b0();
|
|
}
|
|
return uVar1;
|
|
}
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14016d6b0();
|
|
}
|
|
|