/* 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); }