/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1400e2630 FUN_1400e2630 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ longlong * FUN_1400e2630(undefined8 *param_1,undefined8 *param_2) { IUnknown *pIVar1; IUnknown *This; ULONG UVar2; int iVar3; HRESULT HVar4; undefined8 *puVar5; longlong *plVar6; longlong lVar7; undefined8 uVar8; longlong *plVar9; undefined1 auStackY_428 [32]; longlong *local_3e8; undefined1 local_3e0 [4]; short local_3dc; undefined8 *local_3d8; int local_3d0; longlong *local_3c8; longlong *local_3c0; longlong *local_3b8; longlong *local_3b0; LPUNKNOWN local_3a8; longlong *local_3a0; longlong *local_398; undefined8 *local_390; longlong *local_388; longlong *local_380; IUnknown *local_378; longlong *local_370; undefined4 local_368; undefined1 local_358 [24]; undefined1 local_340 [24]; undefined4 local_328; undefined1 *local_320; undefined4 local_318; undefined8 local_310; undefined1 *local_308; longlong *local_2f8; longlong *local_2f0; longlong *local_2e8; longlong *local_2e0; longlong *local_2d8; longlong *local_2d0; longlong *local_2c8; longlong *local_2c0; longlong *local_2b8; longlong *local_2b0; longlong *local_2a8; longlong *local_2a0; longlong *local_298; longlong *local_290; longlong local_288 [3]; longlong local_270 [3]; longlong local_258 [4]; undefined8 local_238; undefined4 local_228; undefined4 uStack_224; undefined4 uStack_220; undefined4 uStack_21c; undefined1 local_210 [8]; undefined4 local_208; undefined4 uStack_204; undefined4 uStack_200; undefined4 uStack_1fc; longlong local_1f8 [3]; undefined1 local_1e0 [24]; longlong local_1c8 [3]; longlong local_1b0 [3]; longlong local_198 [4]; short local_178; short local_176; short local_174; undefined8 local_172; undefined8 local_16a; undefined8 uStack_162; undefined8 local_15a; undefined8 uStack_152; wchar_t local_14a [16]; wchar_t local_12a [17]; undefined4 local_108; undefined4 uStack_104; undefined4 local_100; undefined2 local_fc; undefined8 local_fa; undefined8 local_f2; undefined8 local_ea; undefined8 local_e2; undefined8 local_da; undefined8 local_d2; undefined4 local_ca; short local_c6; undefined8 local_c4; undefined8 local_bc; undefined8 local_b4; undefined8 local_ac; undefined8 local_a4; wchar_t local_9c [50]; ulonglong local_38; local_238 = 0xfffffffffffffffe; local_38 = DAT_1403463c0 ^ (ulonglong)auStackY_428; plVar9 = (longlong *)0x0; local_fa = 0; local_f2 = 0; local_ea = 0; local_e2 = 0; local_da = 0; local_d2 = 0; local_ca = 0; local_c6 = 0; local_c4 = 0; local_bc = 0; local_b4 = 0; local_ac = 0; local_a4 = 0; local_9c[0] = L'\0'; local_9c[1] = L'\0'; local_9c[2] = L'\0'; local_9c[3] = L'\0'; local_9c[4] = L'\0'; local_9c[5] = L'\0'; local_9c[6] = L'\0'; local_9c[7] = L'\0'; local_9c[8] = L'\0'; local_9c[9] = L'\0'; local_9c[10] = L'\0'; local_9c[0xb] = L'\0'; local_9c[0xc] = L'\0'; local_9c[0xd] = L'\0'; local_9c[0xe] = L'\0'; local_9c[0xf] = L'\0'; local_9c[0x10] = L'\0'; local_9c[0x11] = L'\0'; local_9c[0x12] = L'\0'; local_9c[0x13] = L'\0'; local_9c[0x14] = L'\0'; local_9c[0x15] = L'\0'; local_9c[0x16] = L'\0'; local_9c[0x17] = L'\0'; local_9c[0x18] = L'\0'; local_9c[0x19] = L'\0'; local_9c[0x1a] = L'\0'; local_9c[0x1b] = L'\0'; local_9c[0x1c] = L'\0'; local_9c[0x1d] = L'\0'; local_9c[0x1e] = L'\0'; local_9c[0x1f] = L'\0'; local_9c[0x20] = L'\0'; local_9c[0x21] = L'\0'; local_9c[0x22] = L'\0'; local_9c[0x23] = L'\0'; local_9c[0x24] = L'\0'; local_9c[0x25] = L'\0'; local_9c[0x26] = L'\0'; local_9c[0x27] = L'\0'; local_9c[0x28] = L'\0'; local_9c[0x29] = L'\0'; local_9c[0x2a] = L'\0'; local_9c[0x2b] = L'\0'; local_9c[0x2c] = L'\0'; local_9c[0x2d] = L'\0'; local_9c[0x2e] = L'\0'; local_9c[0x2f] = L'\0'; local_100 = *(undefined4 *)(param_2 + 1); _local_108 = CONCAT44((int)((ulonglong)*param_2 >> 0x20),0x23440000); local_fc = 0xec; _local_108 = CONCAT62(stack0xfffffffffffffefa,0xcc); local_178 = *(short *)((longlong)param_2 + 0x3e); local_176 = *(short *)(param_2 + 8); local_174 = *(short *)((longlong)param_2 + 0x42); local_172 = *(undefined8 *)((longlong)param_2 + 0x44); local_16a = *(undefined8 *)((longlong)param_2 + 0x4c); uStack_162 = *(undefined8 *)((longlong)param_2 + 0x54); local_15a = *(undefined8 *)((longlong)param_2 + 0x5c); uStack_152 = *(undefined8 *)((longlong)param_2 + 100); local_3d8 = param_1; local_390 = param_2; wcsncpy_s(local_14a,0x10,(wchar_t *)((longlong)param_2 + 0x6c),0xf); wcsncpy_s(local_12a,0x10,(wchar_t *)((longlong)param_2 + 0x8c),0xf); local_fa = *(undefined8 *)((longlong)param_2 + 0xe); local_f2 = *(undefined8 *)((longlong)param_2 + 0x16); local_ea = *(undefined8 *)((longlong)param_2 + 0x1e); local_e2 = *(undefined8 *)((longlong)param_2 + 0x26); local_da = *(undefined8 *)((longlong)param_2 + 0x2e); local_d2 = *(undefined8 *)((longlong)param_2 + 0x36); local_ca = CONCAT22(local_176,local_178); local_c6 = local_174; local_c4 = local_172; local_bc = local_16a; local_b4 = uStack_162; local_ac = local_15a; local_a4 = uStack_152; if (&stack0x00000000 != (undefined1 *)0x14a) { wcsncpy_s(local_9c,0x10,local_14a,0xf); } if (&stack0x00000000 != (undefined1 *)0x12a) { wcsncpy_s(local_9c + 0x10,0x10,local_12a,0xf); } if (*(wchar_t *)((longlong)param_2 + 0xac) != L'\0') { wcsncpy_s(local_9c + 0x20,0x10,(wchar_t *)((longlong)param_2 + 0xac),0xf); } pIVar1 = *(IUnknown **)*param_1; if (pIVar1 == (IUnknown *)0x0) { LAB_1400e29d2: iVar3 = FUN_1400a80c0(param_1); if (iVar3 == 0) { FUN_1400a8040(param_1,param_2,0); local_fc = 0xffff; iVar3 = FUN_1400a7630(*(undefined8 *)(param_1[0x22] + 0xf0),&local_108); if (iVar3 == 0) { FUN_1400a6d80(param_1[0x23],"DBResultQueue_Error.Log","DB Result Queue push error"); } return (longlong *)0x0; } } else { local_3d0 = 0; UVar2 = (*pIVar1->lpVtbl[0xb].AddRef)(pIVar1); if ((int)UVar2 < 0) { _com_issue_errorex(UVar2,pIVar1,(_GUID *)&DAT_14029e018); } if (local_3d0 == 0) goto LAB_1400e29d2; } local_3e8 = (longlong *)0x0; iVar3 = FUN_140001990(&local_3e8); if ((iVar3 < 0) && (iVar3 != -0x7fffbffe)) { /* WARNING: Subroutine does not return */ FUN_140218220(iVar3); } local_378 = (IUnknown *)0x0; local_370 = (longlong *)0x0; Ordinal_8(local_358); Ordinal_8(local_340); pIVar1 = local_378; if ((local_378 != (IUnknown *)0x0) && (local_378 = (IUnknown *)0x0, pIVar1 != (IUnknown *)0x0)) { (*pIVar1->lpVtbl->Release)(pIVar1); } local_308 = &DAT_14029e010; local_320 = &DAT_14029e010; local_318 = 0; local_310 = 0; if (local_378 != (IUnknown *)0x0) { (*local_378->lpVtbl->Release)(local_378); } HVar4 = CoCreateInstance((IID *)&DAT_14029e088,(LPUNKNOWN)0x0,0x17,(IID *)&DAT_14029dfb0, &local_3a8); if (-1 < HVar4) { HVar4 = OleRun(local_3a8); if (-1 < HVar4) { HVar4 = (*local_3a8->lpVtbl->QueryInterface)(local_3a8,(IID *)&DAT_14029e078,&local_378); } (*local_3a8->lpVtbl->Release)(local_3a8); if (-1 < HVar4) goto LAB_1400e2b64; } local_378 = (IUnknown *)0x0; LAB_1400e2b64: local_328 = 2; local_368 = 1; local_3e0[0] = 1; puVar5 = (undefined8 *)FUN_140001f40(*param_1,&local_2f8); FUN_140001700(&local_3e8,*puVar5,"dbo.up_insert_guild_member"); if (local_2f8 != (longlong *)0x0) { (**(code **)(*local_2f8 + 0x10))(); } local_3c8 = local_1b0; local_228 = (undefined4)local_16a; uStack_224 = local_16a._4_4_; uStack_220 = (undefined4)uStack_162; uStack_21c = uStack_162._4_4_; FUN_140063820(local_1b0,&local_228); plVar6 = operator_new(0x18); local_2e8 = plVar9; local_388 = plVar6; if (plVar6 != (longlong *)0x0) { plVar6[1] = 0; *(undefined4 *)(plVar6 + 2) = 1; lVar7 = FUN_1402182d0("guild_id"); *plVar6 = lVar7; local_2e8 = plVar6; } if (local_2e8 == (longlong *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x8007000e); } plVar6 = (longlong *)FUN_140001870(&local_3e8,&local_3b0,&local_2e8,0xca); local_3c8 = plVar6; if (local_3e8 == (longlong *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } puVar5 = (undefined8 *)FUN_140001650(local_3e8,&local_2a0); pIVar1 = (IUnknown *)*puVar5; if (pIVar1 == (IUnknown *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } UVar2 = (*pIVar1->lpVtbl[3].AddRef)(pIVar1); if ((int)UVar2 < 0) { _com_issue_errorex(UVar2,pIVar1,(_GUID *)&DAT_14029dfc0); } if (local_2a0 != (longlong *)0x0) { (**(code **)(*local_2a0 + 0x10))(); } if ((longlong *)*plVar6 != (longlong *)0x0) { (**(code **)(*(longlong *)*plVar6 + 0x10))(); } local_3b0 = local_1f8; local_208 = (undefined4)local_15a; uStack_204 = local_15a._4_4_; uStack_200 = (undefined4)uStack_152; uStack_1fc = uStack_152._4_4_; FUN_140063820(local_1f8,&local_208); plVar6 = operator_new(0x18); local_2c0 = plVar9; local_3c8 = plVar6; if (plVar6 != (longlong *)0x0) { plVar6[1] = 0; *(undefined4 *)(plVar6 + 2) = 1; lVar7 = FUN_1402182d0("character_id"); *plVar6 = lVar7; local_2c0 = plVar6; } if (local_2c0 == (longlong *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x8007000e); } plVar6 = (longlong *)FUN_140001870(&local_3e8,&local_3c0,&local_2c0,0xca); local_3b0 = plVar6; if (local_3e8 == (longlong *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } puVar5 = (undefined8 *)FUN_140001650(local_3e8,&local_290); pIVar1 = (IUnknown *)*puVar5; if (pIVar1 == (IUnknown *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } UVar2 = (*pIVar1->lpVtbl[3].AddRef)(pIVar1); if ((int)UVar2 < 0) { _com_issue_errorex(UVar2,pIVar1,(_GUID *)&DAT_14029dfc0); } if (local_290 != (longlong *)0x0) { (**(code **)(*local_290 + 0x10))(); } if ((longlong *)*plVar6 != (longlong *)0x0) { (**(code **)(*(longlong *)*plVar6 + 0x10))(); } local_3c0 = local_1c8; FUN_140063990(local_1c8,local_14a); plVar6 = operator_new(0x18); local_2f0 = plVar9; local_3b0 = plVar6; if (plVar6 != (longlong *)0x0) { plVar6[1] = 0; *(undefined4 *)(plVar6 + 2) = 1; lVar7 = FUN_1402182d0(&DAT_1402a5b74); *plVar6 = lVar7; local_2f0 = plVar6; } if (local_2f0 == (longlong *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x8007000e); } plVar6 = (longlong *)FUN_140001870(&local_3e8,&local_3b8,&local_2f0,0xca); local_3c0 = plVar6; if (local_3e8 == (longlong *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } puVar5 = (undefined8 *)FUN_140001650(local_3e8,&local_2d8); pIVar1 = (IUnknown *)*puVar5; if (pIVar1 == (IUnknown *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } UVar2 = (*pIVar1->lpVtbl[3].AddRef)(pIVar1); if ((int)UVar2 < 0) { _com_issue_errorex(UVar2,pIVar1,(_GUID *)&DAT_14029dfc0); } if (local_2d8 != (longlong *)0x0) { (**(code **)(*local_2d8 + 0x10))(); } if ((longlong *)*plVar6 != (longlong *)0x0) { (**(code **)(*(longlong *)*plVar6 + 0x10))(); } local_3b8 = local_198; FUN_140063990(local_198,local_12a); plVar6 = operator_new(0x18); local_2c8 = plVar9; local_3c0 = plVar6; if (plVar6 != (longlong *)0x0) { plVar6[1] = 0; *(undefined4 *)(plVar6 + 2) = 1; lVar7 = FUN_1402182d0("alias_name"); *plVar6 = lVar7; local_2c8 = plVar6; } if (local_2c8 == (longlong *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x8007000e); } plVar6 = (longlong *)FUN_140001870(&local_3e8,&local_398,&local_2c8,0xca); local_3b8 = plVar6; if (local_3e8 == (longlong *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } puVar5 = (undefined8 *)FUN_140001650(local_3e8,&local_2b8); pIVar1 = (IUnknown *)*puVar5; if (pIVar1 == (IUnknown *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } UVar2 = (*pIVar1->lpVtbl[3].AddRef)(pIVar1); if ((int)UVar2 < 0) { _com_issue_errorex(UVar2,pIVar1,(_GUID *)&DAT_14029dfc0); } if (local_2b8 != (longlong *)0x0) { (**(code **)(*local_2b8 + 0x10))(); } if ((longlong *)*plVar6 != (longlong *)0x0) { (**(code **)(*(longlong *)*plVar6 + 0x10))(); } local_398 = local_288; iVar3 = (int)local_176; Ordinal_8(local_288); FUN_140063620(local_288,iVar3); plVar6 = operator_new(0x18); local_2b0 = plVar9; local_3b8 = plVar6; if (plVar6 != (longlong *)0x0) { plVar6[1] = 0; *(undefined4 *)(plVar6 + 2) = 1; lVar7 = FUN_1402182d0("grade"); *plVar6 = lVar7; local_2b0 = plVar6; } if (local_2b0 == (longlong *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x8007000e); } plVar6 = (longlong *)FUN_140001870(&local_3e8,&local_3a0,&local_2b0,3); local_398 = plVar6; if (local_3e8 == (longlong *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } puVar5 = (undefined8 *)FUN_140001650(local_3e8,&local_2a8); pIVar1 = (IUnknown *)*puVar5; if (pIVar1 == (IUnknown *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } UVar2 = (*pIVar1->lpVtbl[3].AddRef)(pIVar1); if ((int)UVar2 < 0) { _com_issue_errorex(UVar2,pIVar1,(_GUID *)&DAT_14029dfc0); } if (local_2a8 != (longlong *)0x0) { (**(code **)(*local_2a8 + 0x10))(); } if ((longlong *)*plVar6 != (longlong *)0x0) { (**(code **)(*(longlong *)*plVar6 + 0x10))(); } local_3a0 = local_270; iVar3 = (int)local_178; Ordinal_8(local_270); FUN_140063620(local_270,iVar3); plVar6 = operator_new(0x18); local_2e0 = plVar9; local_398 = plVar6; if (plVar6 != (longlong *)0x0) { plVar6[1] = 0; *(undefined4 *)(plVar6 + 2) = 1; lVar7 = FUN_1402182d0("class"); *plVar6 = lVar7; local_2e0 = plVar6; } if (local_2e0 == (longlong *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x8007000e); } plVar6 = (longlong *)FUN_140001870(&local_3e8,&local_380,&local_2e0,3); local_3a0 = plVar6; if (local_3e8 == (longlong *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } puVar5 = (undefined8 *)FUN_140001650(local_3e8,&local_298); pIVar1 = (IUnknown *)*puVar5; if (pIVar1 != (IUnknown *)0x0) { UVar2 = (*pIVar1->lpVtbl[3].AddRef)(pIVar1); if ((int)UVar2 < 0) { _com_issue_errorex(UVar2,pIVar1,(_GUID *)&DAT_14029dfc0); } if (local_298 != (longlong *)0x0) { (**(code **)(*local_298 + 0x10))(); } if ((longlong *)*plVar6 != (longlong *)0x0) { (**(code **)(*(longlong *)*plVar6 + 0x10))(); } local_380 = local_258; iVar3 = (int)local_174; Ordinal_8(local_258); FUN_140063620(local_258,iVar3); plVar6 = operator_new(0x18); local_2d0 = plVar9; local_3a0 = plVar6; if (plVar6 != (longlong *)0x0) { plVar6[1] = 0; *(undefined4 *)(plVar6 + 2) = 1; lVar7 = FUN_1402182d0("level"); *plVar6 = lVar7; local_2d0 = plVar6; } if (local_2d0 == (longlong *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x8007000e); } plVar6 = (longlong *)FUN_140001870(&local_3e8,local_210,&local_2d0,3); local_380 = plVar6; if (local_3e8 == (longlong *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } puVar5 = (undefined8 *)FUN_140001650(local_3e8,&local_388); pIVar1 = (IUnknown *)*puVar5; if (pIVar1 != (IUnknown *)0x0) { UVar2 = (*pIVar1->lpVtbl[3].AddRef)(pIVar1); if ((int)UVar2 < 0) { _com_issue_errorex(UVar2,pIVar1,(_GUID *)&DAT_14029dfc0); } if (local_388 != (longlong *)0x0) { (**(code **)(*local_388 + 0x10))(); } if ((longlong *)*plVar6 != (longlong *)0x0) { (**(code **)(*(longlong *)*plVar6 + 0x10))(); } puVar5 = (undefined8 *)FUN_1400016c0(&local_3e8,&local_3c8); This = local_378; pIVar1 = (IUnknown *)*puVar5; if (local_378 != pIVar1) { local_378 = pIVar1; if (pIVar1 != (IUnknown *)0x0) { (*pIVar1->lpVtbl->AddRef)(pIVar1); } if (This != (IUnknown *)0x0) { (*This->lpVtbl->Release)(This); } } if (local_3c8 != (longlong *)0x0) { (**(code **)(*local_3c8 + 0x10))(); } pIVar1 = local_378; if (local_378 != (IUnknown *)0x0) { local_3dc = 0; UVar2 = (*local_378->lpVtbl[6].Release)(local_378); if ((int)UVar2 < 0) { _com_issue_errorex(UVar2,pIVar1,(_GUID *)&DAT_14029e038); } if (local_3dc == -1) { local_fc = 0xfffc; plVar6 = plVar9; } else { uVar8 = FUN_140002290(&local_378,local_1e0,"result_code",local_3e0); FUN_140199590(uVar8); iVar3 = FUN_140063af0(uVar8); Ordinal_9(local_1e0); plVar6 = (longlong *)0x1; if (iVar3 != 1) { local_fc = (undefined2)iVar3; plVar6 = plVar9; } } iVar3 = FUN_1400a7630(*(undefined8 *)(param_1[0x22] + 0xf0),&local_108); if (iVar3 == 0) { FUN_1400a6d80(param_1[0x23],"DBResultQueue_Error.Log","DB Result Queue push error"); } pIVar1 = local_378; if (local_378 != (IUnknown *)0x0) { local_3d8 = (undefined8 *)((ulonglong)local_3d8 & 0xffffffff00000000); UVar2 = (*local_378->lpVtbl[0x12].AddRef)(local_378); if ((int)UVar2 < 0) { _com_issue_errorex(UVar2,pIVar1,(_GUID *)&DAT_14029e038); } pIVar1 = local_378; if ((int)local_3d8 != 0) { if (local_378 == (IUnknown *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } UVar2 = (*local_378->lpVtbl[10].Release)(local_378); if ((int)UVar2 < 0) { _com_issue_errorex(UVar2,pIVar1,(_GUID *)&DAT_14029e038); } } if (local_378 != (IUnknown *)0x0) { (*local_378->lpVtbl->Release)(local_378); local_378 = (IUnknown *)0x0; } } local_310 = 0; local_308 = &DAT_14029e010; local_320 = &DAT_14029e010; local_318 = 0; local_328 = 0; Ordinal_9(local_340); Ordinal_9(local_358); if (local_370 != (longlong *)0x0) { (**(code **)(*local_370 + 0x10))(); } if (local_378 != (IUnknown *)0x0) { (*local_378->lpVtbl->Release)(local_378); } if (local_3e8 != (longlong *)0x0) { (**(code **)(*local_3e8 + 0x10))(); } return plVar6; } /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); }