432 lines
14 KiB
C
432 lines
14 KiB
C
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
|
* Ghidra 12.1.2 decompiler output for 0x1400d2760 FUN_1400d2760
|
|
* Pseudocode, not original source. */
|
|
|
|
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
|
|
|
longlong * FUN_1400d2760(longlong *param_1,undefined8 *param_2)
|
|
|
|
{
|
|
IUnknown *pIVar1;
|
|
IUnknown *pIVar2;
|
|
ULONG UVar3;
|
|
int iVar4;
|
|
HRESULT HVar5;
|
|
undefined8 *puVar6;
|
|
longlong *plVar7;
|
|
longlong lVar8;
|
|
undefined8 uVar9;
|
|
longlong *plVar10;
|
|
longlong *plVar11;
|
|
undefined1 auStackY_308 [32];
|
|
char local_2c8 [4];
|
|
short local_2c4;
|
|
longlong *local_2c0;
|
|
longlong *local_2b8;
|
|
longlong *local_2b0;
|
|
int local_2a8;
|
|
int local_2a4;
|
|
longlong *local_2a0;
|
|
LPUNKNOWN local_298;
|
|
longlong *local_290;
|
|
longlong *local_288;
|
|
undefined8 *local_280;
|
|
longlong *local_278 [2];
|
|
IUnknown *local_268;
|
|
longlong *local_260;
|
|
undefined4 local_258;
|
|
undefined1 local_248 [24];
|
|
undefined1 local_230 [24];
|
|
undefined4 local_218;
|
|
undefined1 *local_210;
|
|
undefined4 local_208;
|
|
undefined8 local_200;
|
|
undefined1 *local_1f8;
|
|
undefined1 *local_1e8;
|
|
longlong *local_1e0;
|
|
longlong *local_1d8;
|
|
longlong *local_1d0;
|
|
longlong *local_1c8;
|
|
undefined1 *local_1c0;
|
|
longlong *local_1b8;
|
|
undefined1 *local_1b0;
|
|
longlong *local_1a8;
|
|
undefined1 *local_1a0;
|
|
longlong *local_198;
|
|
longlong *local_190;
|
|
undefined1 local_188 [16];
|
|
undefined4 local_178;
|
|
undefined4 uStack_174;
|
|
undefined4 uStack_170;
|
|
undefined4 uStack_16c;
|
|
undefined1 local_160 [8];
|
|
undefined4 local_158;
|
|
undefined4 uStack_154;
|
|
undefined4 uStack_150;
|
|
undefined4 uStack_14c;
|
|
undefined1 local_148 [16];
|
|
undefined4 local_138;
|
|
undefined4 uStack_134;
|
|
undefined4 uStack_130;
|
|
undefined4 uStack_12c;
|
|
undefined1 local_128 [8];
|
|
undefined1 local_120 [16];
|
|
undefined8 local_110;
|
|
longlong local_108 [3];
|
|
undefined1 local_f0 [24];
|
|
undefined1 local_d8 [24];
|
|
undefined1 local_c0 [24];
|
|
undefined1 local_a8 [24];
|
|
longlong local_90 [3];
|
|
undefined1 local_78 [24];
|
|
undefined4 local_60;
|
|
undefined4 uStack_5c;
|
|
undefined4 local_58;
|
|
undefined2 local_54;
|
|
undefined1 local_52;
|
|
wchar_t local_51 [12];
|
|
ulonglong local_39;
|
|
ulonglong local_30;
|
|
|
|
local_110 = 0xfffffffffffffffe;
|
|
local_30 = DAT_1403463c0 ^ (ulonglong)auStackY_308;
|
|
local_52 = 0;
|
|
local_51[0] = L'\0';
|
|
local_51[1] = L'\0';
|
|
local_51[2] = L'\0';
|
|
local_51[3] = L'\0';
|
|
local_51[4] = L'\0';
|
|
local_51[5] = L'\0';
|
|
local_51[6] = L'\0';
|
|
local_51[7] = L'\0';
|
|
local_51[8] = L'\0';
|
|
local_51[9] = L'\0';
|
|
local_51[10] = L'\0';
|
|
local_51[0xb] = L'\0';
|
|
local_39 = 0;
|
|
local_58 = *(undefined4 *)(param_2 + 1);
|
|
_local_60 = CONCAT44((int)((ulonglong)*param_2 >> 0x20),0x243f0000);
|
|
local_54 = 1;
|
|
_local_60 = CONCAT62(stack0xffffffffffffffa2,0x2f);
|
|
pIVar1 = *(IUnknown **)*param_1;
|
|
plVar10 = (longlong *)0x0;
|
|
local_2c0 = param_1;
|
|
local_290 = param_1;
|
|
local_280 = param_2;
|
|
if (pIVar1 == (IUnknown *)0x0) {
|
|
LAB_1400d2840:
|
|
iVar4 = FUN_1400a80c0(param_1);
|
|
if (iVar4 == 0) {
|
|
FUN_1400a8040(param_1,param_2,0);
|
|
return (longlong *)0x0;
|
|
}
|
|
}
|
|
else {
|
|
local_2a8 = 0;
|
|
UVar3 = (*pIVar1->lpVtbl[0xb].AddRef)(pIVar1);
|
|
if ((int)UVar3 < 0) {
|
|
_com_issue_errorex(UVar3,pIVar1,(_GUID *)&DAT_14029e018);
|
|
}
|
|
if (local_2a8 == 0) goto LAB_1400d2840;
|
|
}
|
|
local_2b8 = (longlong *)0x0;
|
|
iVar4 = FUN_140001990(&local_2b8);
|
|
if ((iVar4 < 0) && (iVar4 != -0x7fffbffe)) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_140218220(iVar4);
|
|
}
|
|
local_268 = (IUnknown *)0x0;
|
|
local_260 = (longlong *)0x0;
|
|
Ordinal_8(local_248);
|
|
Ordinal_8(local_230);
|
|
pIVar1 = local_268;
|
|
if ((local_268 != (IUnknown *)0x0) && (local_268 = (IUnknown *)0x0, pIVar1 != (IUnknown *)0x0)) {
|
|
(*pIVar1->lpVtbl->Release)(pIVar1);
|
|
}
|
|
local_1f8 = &DAT_14029e010;
|
|
local_210 = &DAT_14029e010;
|
|
local_208 = 0;
|
|
local_200 = 0;
|
|
if (local_268 != (IUnknown *)0x0) {
|
|
(*local_268->lpVtbl->Release)(local_268);
|
|
}
|
|
HVar5 = CoCreateInstance((IID *)&DAT_14029e088,(LPUNKNOWN)0x0,0x17,(IID *)&DAT_14029dfb0,
|
|
&local_298);
|
|
if (-1 < HVar5) {
|
|
HVar5 = OleRun(local_298);
|
|
if (-1 < HVar5) {
|
|
HVar5 = (*local_298->lpVtbl->QueryInterface)(local_298,(IID *)&DAT_14029e078,&local_268);
|
|
}
|
|
(*local_298->lpVtbl->Release)(local_298);
|
|
if (-1 < HVar5) goto LAB_1400d297e;
|
|
}
|
|
local_268 = (IUnknown *)0x0;
|
|
LAB_1400d297e:
|
|
local_218 = 2;
|
|
local_258 = 1;
|
|
local_2c8[0] = '\x01';
|
|
puVar6 = (undefined8 *)FUN_140001f40(*param_1,&local_1a8);
|
|
FUN_140001700(&local_2b8,*puVar6,"dbo.up_update_character_name");
|
|
if (local_1a8 != (longlong *)0x0) {
|
|
(**(code **)(*local_1a8 + 0x10))();
|
|
}
|
|
local_2a0 = local_108;
|
|
local_158 = *(undefined4 *)((longlong)param_2 + 0xe);
|
|
uStack_154 = *(undefined4 *)((longlong)param_2 + 0x12);
|
|
uStack_150 = *(undefined4 *)((longlong)param_2 + 0x16);
|
|
uStack_14c = *(undefined4 *)((longlong)param_2 + 0x1a);
|
|
FUN_140063820(local_108,&local_158);
|
|
plVar7 = operator_new(0x18);
|
|
local_1b8 = plVar10;
|
|
local_288 = plVar7;
|
|
if (plVar7 != (longlong *)0x0) {
|
|
plVar7[1] = 0;
|
|
*(undefined4 *)(plVar7 + 2) = 1;
|
|
lVar8 = FUN_1402182d0("character_id");
|
|
*plVar7 = lVar8;
|
|
local_1b8 = plVar7;
|
|
}
|
|
if (local_1b8 == (longlong *)0x0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_140218220(0x8007000e);
|
|
}
|
|
plVar7 = (longlong *)FUN_140001870(&local_2b8,local_278,&local_1b8,0xca);
|
|
local_2a0 = plVar7;
|
|
if (local_2b8 == (longlong *)0x0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_140218220(0x80004003);
|
|
}
|
|
puVar6 = (undefined8 *)FUN_140001650(local_2b8,&local_1e0);
|
|
pIVar1 = (IUnknown *)*puVar6;
|
|
if (pIVar1 == (IUnknown *)0x0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_140218220(0x80004003);
|
|
}
|
|
UVar3 = (*pIVar1->lpVtbl[3].AddRef)(pIVar1);
|
|
if ((int)UVar3 < 0) {
|
|
_com_issue_errorex(UVar3,pIVar1,(_GUID *)&DAT_14029dfc0);
|
|
}
|
|
if (local_1e0 != (longlong *)0x0) {
|
|
(**(code **)(*local_1e0 + 0x10))();
|
|
}
|
|
if ((longlong *)*plVar7 != (longlong *)0x0) {
|
|
(**(code **)(*(longlong *)*plVar7 + 0x10))();
|
|
}
|
|
local_278[0] = local_90;
|
|
FUN_140063990(local_90,(longlong)param_2 + 0x1e);
|
|
plVar7 = operator_new(0x18);
|
|
local_1d0 = plVar10;
|
|
local_2a0 = plVar7;
|
|
if (plVar7 != (longlong *)0x0) {
|
|
plVar7[1] = 0;
|
|
*(undefined4 *)(plVar7 + 2) = 1;
|
|
lVar8 = FUN_1402182d0("character_name");
|
|
*plVar7 = lVar8;
|
|
local_1d0 = plVar7;
|
|
}
|
|
if (local_1d0 == (longlong *)0x0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_140218220(0x8007000e);
|
|
}
|
|
plVar7 = (longlong *)FUN_140001870(&local_2b8,&local_1e8,&local_1d0,0xca);
|
|
local_278[0] = plVar7;
|
|
if (local_2b8 == (longlong *)0x0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_140218220(0x80004003);
|
|
}
|
|
puVar6 = (undefined8 *)FUN_140001650(local_2b8,&local_1d8);
|
|
pIVar1 = (IUnknown *)*puVar6;
|
|
if (pIVar1 != (IUnknown *)0x0) {
|
|
UVar3 = (*pIVar1->lpVtbl[3].AddRef)(pIVar1);
|
|
if ((int)UVar3 < 0) {
|
|
_com_issue_errorex(UVar3,pIVar1,(_GUID *)&DAT_14029dfc0);
|
|
}
|
|
if (local_1d8 != (longlong *)0x0) {
|
|
(**(code **)(*local_1d8 + 0x10))();
|
|
}
|
|
if ((longlong *)*plVar7 != (longlong *)0x0) {
|
|
(**(code **)(*(longlong *)*plVar7 + 0x10))();
|
|
}
|
|
puVar6 = (undefined8 *)FUN_1400016c0(&local_2b8,&local_190);
|
|
pIVar2 = local_268;
|
|
pIVar1 = (IUnknown *)*puVar6;
|
|
if (local_268 != pIVar1) {
|
|
local_268 = pIVar1;
|
|
if (pIVar1 != (IUnknown *)0x0) {
|
|
(*pIVar1->lpVtbl->AddRef)(pIVar1);
|
|
}
|
|
if (pIVar2 != (IUnknown *)0x0) {
|
|
(*pIVar2->lpVtbl->Release)(pIVar2);
|
|
}
|
|
}
|
|
if (local_190 != (longlong *)0x0) {
|
|
(**(code **)(*local_190 + 0x10))();
|
|
}
|
|
pIVar1 = local_268;
|
|
if (local_268 == (IUnknown *)0x0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_140218220(0x80004003);
|
|
}
|
|
local_2c4 = 0;
|
|
UVar3 = (*local_268->lpVtbl[6].Release)(local_268);
|
|
if ((int)UVar3 < 0) {
|
|
_com_issue_errorex(UVar3,pIVar1,(_GUID *)&DAT_14029e038);
|
|
}
|
|
if (local_2c4 == -1) {
|
|
local_54 = 0x72;
|
|
plVar7 = local_2c0;
|
|
plVar11 = plVar10;
|
|
}
|
|
else {
|
|
uVar9 = FUN_140002290(&local_268,local_d8,"UPDATE_CHARACTER_NAME",local_2c8);
|
|
FUN_140199590(uVar9);
|
|
iVar4 = FUN_140063af0(uVar9);
|
|
Ordinal_9(local_d8);
|
|
plVar7 = local_2c0;
|
|
if (iVar4 != 0) {
|
|
local_52 = 1;
|
|
wcsncpy(local_51,(wchar_t *)((longlong)param_2 + 0x1e),0x10);
|
|
local_39 = local_39 & 0xffffffffffff;
|
|
local_2b0 = (longlong *)0x0;
|
|
iVar4 = FUN_140001990(&local_2b0);
|
|
plVar7 = local_2c0;
|
|
if ((iVar4 < 0) && (iVar4 != -0x7fffbffe)) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_140218220(iVar4);
|
|
}
|
|
puVar6 = (undefined8 *)FUN_140001f40(*local_2c0,&local_198);
|
|
FUN_140001700(&local_2b0,*puVar6,"dbo.up_update_friend_name");
|
|
if (local_198 != (longlong *)0x0) {
|
|
(**(code **)(*local_198 + 0x10))();
|
|
}
|
|
local_1e8 = local_78;
|
|
local_138 = *(undefined4 *)((longlong)param_2 + 0xe);
|
|
uStack_134 = *(undefined4 *)((longlong)param_2 + 0x12);
|
|
uStack_130 = *(undefined4 *)((longlong)param_2 + 0x16);
|
|
uStack_12c = *(undefined4 *)((longlong)param_2 + 0x1a);
|
|
FUN_140063820(local_78,&local_138);
|
|
uVar9 = FUN_140001000(local_160,"character_id");
|
|
uVar9 = FUN_140001870(&local_2b0,&local_1c0,uVar9,0xca);
|
|
FUN_1400017d0(&local_2b0,uVar9);
|
|
local_1c0 = local_a8;
|
|
FUN_140063990(local_a8,(longlong)param_2 + 0x1e);
|
|
uVar9 = FUN_140001000(local_128,"character_name");
|
|
uVar9 = FUN_140001870(&local_2b0,&local_1b0,uVar9,0xca);
|
|
FUN_1400017d0(&local_2b0,uVar9);
|
|
puVar6 = (undefined8 *)FUN_1400016c0(&local_2b0,&local_1c8);
|
|
pIVar2 = local_268;
|
|
pIVar1 = (IUnknown *)*puVar6;
|
|
if (local_268 != pIVar1) {
|
|
local_268 = pIVar1;
|
|
if (pIVar1 != (IUnknown *)0x0) {
|
|
(*pIVar1->lpVtbl->AddRef)(pIVar1);
|
|
}
|
|
if (pIVar2 != (IUnknown *)0x0) {
|
|
(*pIVar2->lpVtbl->Release)(pIVar2);
|
|
}
|
|
}
|
|
if (local_1c8 != (longlong *)0x0) {
|
|
(**(code **)(*local_1c8 + 0x10))();
|
|
}
|
|
if (local_2b0 != (longlong *)0x0) {
|
|
(**(code **)(*local_2b0 + 0x10))();
|
|
}
|
|
local_2c0 = (longlong *)0x0;
|
|
iVar4 = FUN_140001990(&local_2c0);
|
|
if ((iVar4 < 0) && (iVar4 != -0x7fffbffe)) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_140218220(iVar4);
|
|
}
|
|
puVar6 = (undefined8 *)FUN_140001f40(*plVar7,&local_288);
|
|
FUN_140001700(&local_2c0,*puVar6,"dbo.up_update_guild_member_name");
|
|
if (local_288 != (longlong *)0x0) {
|
|
(**(code **)(*local_288 + 0x10))();
|
|
}
|
|
local_1b0 = local_f0;
|
|
local_178 = *(undefined4 *)((longlong)param_2 + 0xe);
|
|
uStack_174 = *(undefined4 *)((longlong)param_2 + 0x12);
|
|
uStack_170 = *(undefined4 *)((longlong)param_2 + 0x16);
|
|
uStack_16c = *(undefined4 *)((longlong)param_2 + 0x1a);
|
|
FUN_140063820(local_f0,&local_178);
|
|
uVar9 = FUN_140001000(local_120,"character_id");
|
|
uVar9 = FUN_140001870(&local_2c0,&local_1a0,uVar9,0xca);
|
|
FUN_1400017d0(&local_2c0,uVar9);
|
|
local_1a0 = local_c0;
|
|
FUN_140063990(local_c0,(longlong)param_2 + 0x1e);
|
|
uVar9 = FUN_140001000(local_188,"character_name");
|
|
uVar9 = FUN_140001870(&local_2c0,local_148,uVar9,0xca);
|
|
FUN_1400017d0(&local_2c0,uVar9);
|
|
puVar6 = (undefined8 *)FUN_1400016c0(&local_2c0,&local_2a0);
|
|
pIVar2 = local_268;
|
|
pIVar1 = (IUnknown *)*puVar6;
|
|
if (local_268 != pIVar1) {
|
|
local_268 = pIVar1;
|
|
if (pIVar1 != (IUnknown *)0x0) {
|
|
(*pIVar1->lpVtbl->AddRef)(pIVar1);
|
|
}
|
|
if (pIVar2 != (IUnknown *)0x0) {
|
|
(*pIVar2->lpVtbl->Release)(pIVar2);
|
|
}
|
|
}
|
|
if (local_2a0 != (longlong *)0x0) {
|
|
(**(code **)(*local_2a0 + 0x10))();
|
|
}
|
|
if (local_2c0 != (longlong *)0x0) {
|
|
(**(code **)(*local_2c0 + 0x10))();
|
|
}
|
|
}
|
|
plVar11 = (longlong *)0x1;
|
|
if (local_2c8[0] == '\0') {
|
|
local_54 = 0x70;
|
|
plVar11 = plVar10;
|
|
}
|
|
}
|
|
iVar4 = FUN_1400a7630(*(undefined8 *)(plVar7[0x22] + 0xf0),&local_60);
|
|
if (iVar4 == 0) {
|
|
FUN_1400a6d80(plVar7[0x23],"DBResultQueue_Error.Log","DB Result Queue push error");
|
|
}
|
|
pIVar1 = local_268;
|
|
if (local_268 != (IUnknown *)0x0) {
|
|
local_2a4 = 0;
|
|
UVar3 = (*local_268->lpVtbl[0x12].AddRef)(local_268);
|
|
if ((int)UVar3 < 0) {
|
|
_com_issue_errorex(UVar3,pIVar1,(_GUID *)&DAT_14029e038);
|
|
}
|
|
pIVar1 = local_268;
|
|
if (local_2a4 != 0) {
|
|
if (local_268 == (IUnknown *)0x0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_140218220(0x80004003);
|
|
}
|
|
UVar3 = (*local_268->lpVtbl[10].Release)(local_268);
|
|
if ((int)UVar3 < 0) {
|
|
_com_issue_errorex(UVar3,pIVar1,(_GUID *)&DAT_14029e038);
|
|
}
|
|
}
|
|
if (local_268 != (IUnknown *)0x0) {
|
|
(*local_268->lpVtbl->Release)(local_268);
|
|
local_268 = (IUnknown *)0x0;
|
|
}
|
|
}
|
|
local_200 = 0;
|
|
local_1f8 = &DAT_14029e010;
|
|
local_210 = &DAT_14029e010;
|
|
local_208 = 0;
|
|
local_218 = 0;
|
|
Ordinal_9(local_230);
|
|
Ordinal_9(local_248);
|
|
if (local_260 != (longlong *)0x0) {
|
|
(**(code **)(*local_260 + 0x10))();
|
|
}
|
|
if (local_268 != (IUnknown *)0x0) {
|
|
(*local_268->lpVtbl->Release)(local_268);
|
|
}
|
|
if (local_2b8 != (longlong *)0x0) {
|
|
(**(code **)(*local_2b8 + 0x10))();
|
|
}
|
|
return plVar11;
|
|
}
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_140218220(0x80004003);
|
|
}
|
|
|