server-re/decomp/DBCServer_Release_x64/full/functions/0x1400ceb70.c

608 lines
20 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x1400ceb70 FUN_1400ceb70
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
/* WARNING: Removing unreachable block (ram,0x0001400cfa2c) */
/* WARNING: Removing unreachable block (ram,0x0001400cfa3a) */
/* WARNING: Removing unreachable block (ram,0x0001400cfa41) */
/* WARNING: Removing unreachable block (ram,0x0001400cfa46) */
/* WARNING: Removing unreachable block (ram,0x0001400cfa50) */
/* WARNING: Removing unreachable block (ram,0x0001400cfa85) */
/* WARNING: Removing unreachable block (ram,0x0001400cfaa0) */
/* WARNING: Removing unreachable block (ram,0x0001400cfac4) */
/* WARNING: Removing unreachable block (ram,0x0001400cfade) */
/* WARNING: Removing unreachable block (ram,0x0001400cfaef) */
/* WARNING: Removing unreachable block (ram,0x0001400cfafb) */
/* WARNING: Removing unreachable block (ram,0x0001400cfb08) */
/* WARNING: Removing unreachable block (ram,0x0001400cfb13) */
/* WARNING: Removing unreachable block (ram,0x0001400cfb23) */
/* WARNING: Removing unreachable block (ram,0x0001400cfb34) */
/* WARNING: Removing unreachable block (ram,0x0001400cfb41) */
/* WARNING: Removing unreachable block (ram,0x0001400cfb4f) */
/* WARNING: Removing unreachable block (ram,0x0001400cfba2) */
/* WARNING: Removing unreachable block (ram,0x0001400cfba9) */
/* WARNING: Removing unreachable block (ram,0x0001400cfbb6) */
/* WARNING: Removing unreachable block (ram,0x0001400cfbbd) */
/* WARNING: Removing unreachable block (ram,0x0001400cfbc7) */
/* WARNING: Removing unreachable block (ram,0x0001400cfbcf) */
undefined4 FUN_1400ceb70(undefined8 *param_1,undefined8 *param_2)
{
undefined4 uVar1;
IUnknown *pIVar2;
undefined6 uVar3;
IUnknown *This;
undefined1 uVar4;
int iVar5;
HRESULT HVar6;
ULONG UVar7;
undefined8 *puVar8;
undefined8 uVar9;
undefined8 uVar10;
wchar_t *pwVar11;
char *riid;
wchar_t *pwVar12;
char *ppvObject;
wchar_t *pwVar13;
uint uVar14;
ushort uVar15;
wchar_t *pwVar16;
undefined1 auStackY_628 [32];
char local_5f8 [4];
undefined8 local_5e8;
longlong *local_5d0;
int local_5c4;
wchar_t *local_5c0;
wchar_t *local_5b8;
wchar_t *local_5b0;
LPUNKNOWN local_5a8 [2];
IUnknown *local_598;
longlong *local_590;
undefined4 local_588;
undefined1 local_578 [24];
undefined1 local_560 [24];
undefined4 local_548;
undefined1 *local_540;
undefined4 local_538;
undefined8 local_530;
undefined1 *local_528;
undefined8 *local_518;
undefined8 *local_510;
undefined4 local_508;
undefined4 local_504;
undefined4 local_500;
undefined4 local_4fc;
undefined4 local_4f8;
uchar local_4f4 [4];
uchar local_4f0 [4];
undefined4 local_4ec;
undefined8 local_4e8;
undefined1 local_4e0;
undefined8 local_4d8;
undefined1 local_4d0;
longlong *local_4c8;
undefined8 local_4c0;
undefined1 local_4b8;
undefined8 local_4b0;
undefined1 local_4a8;
undefined8 local_4a0;
undefined1 local_498;
undefined8 local_490;
undefined1 local_488;
undefined8 local_480;
undefined1 local_478;
undefined8 local_470;
undefined1 local_468;
undefined8 local_460;
undefined1 local_458;
undefined8 local_450;
undefined1 local_448;
undefined8 local_440;
undefined1 local_438;
longlong *local_430;
undefined8 local_428;
undefined1 local_420;
undefined8 local_418;
undefined1 local_400 [24];
undefined1 local_3e8 [24];
undefined1 local_3d0 [24];
undefined1 local_3b8 [24];
undefined1 local_3a0 [24];
undefined1 local_388 [24];
undefined1 local_370 [24];
undefined1 local_358 [24];
undefined1 local_340 [24];
undefined1 local_328 [32];
IID local_308;
undefined4 local_2f8;
undefined4 local_2f4;
undefined4 local_2f0;
undefined4 local_2ec;
undefined4 local_2e8;
undefined2 local_2e4;
undefined1 local_2e2;
wchar_t local_2e1 [12];
ulonglong local_2c9;
wchar_t local_2c1 [49];
undefined2 local_25f;
wchar_t local_25d [254];
undefined2 local_61;
undefined8 local_5f;
ulonglong local_48;
local_418 = 0xfffffffffffffffe;
local_48 = DAT_1403463c0 ^ (ulonglong)auStackY_628;
pwVar13 = (wchar_t *)0x0;
local_5d0 = (longlong *)0x0;
local_518 = param_2;
local_510 = param_1;
iVar5 = FUN_140001990(&local_5d0);
if ((iVar5 < 0) && (iVar5 != -0x7fffbffe)) {
/* WARNING: Subroutine does not return */
FUN_140218220(iVar5);
}
local_598 = (IUnknown *)0x0;
local_590 = (longlong *)0x0;
Ordinal_8(local_578);
Ordinal_8(local_560);
pIVar2 = local_598;
if ((local_598 != (IUnknown *)0x0) && (local_598 = (IUnknown *)0x0, pIVar2 != (IUnknown *)0x0)) {
(*pIVar2->lpVtbl->Release)(pIVar2);
}
local_528 = &DAT_14029e010;
local_540 = &DAT_14029e010;
local_538 = 0;
local_530 = 0;
if (local_598 != (IUnknown *)0x0) {
(*local_598->lpVtbl->Release)(local_598);
}
HVar6 = CoCreateInstance((IID *)&DAT_14029e088,(LPUNKNOWN)0x0,0x17,(IID *)&DAT_14029dfb0,local_5a8
);
if (-1 < HVar6) {
HVar6 = OleRun(local_5a8[0]);
if (-1 < HVar6) {
HVar6 = (*local_5a8[0]->lpVtbl->QueryInterface)(local_5a8[0],(IID *)&DAT_14029e078,&local_598)
;
}
(*local_5a8[0]->lpVtbl->Release)(local_5a8[0]);
if (-1 < HVar6) goto LAB_1400cecf0;
}
local_598 = (IUnknown *)0x0;
LAB_1400cecf0:
local_548 = 2;
local_588 = 1;
local_5f8[0] = '\x01';
pwVar16 = (wchar_t *)0x0;
uVar1 = *(undefined4 *)(param_2 + 1);
local_5e8 = CONCAT44((int)((ulonglong)*param_2 >> 0x20),0x24010000);
uVar14 = 0x10;
pIVar2 = *(IUnknown **)*param_1;
if ((pIVar2 != (IUnknown *)0x0) && (UVar7 = (*pIVar2->lpVtbl[0xb].AddRef)(pIVar2), (int)UVar7 < 0)
) {
_com_issue_errorex(UVar7,pIVar2,(_GUID *)&DAT_14029e018);
}
iVar5 = FUN_1400a80c0(param_1);
if (iVar5 != 0) {
puVar8 = (undefined8 *)FUN_140001f40(*param_1,&local_4c8);
FUN_140001700(&local_5d0,*puVar8,"dbo.up_read_Inquiry");
if (local_4c8 != (longlong *)0x0) {
(**(code **)(*local_4c8 + 0x10))();
}
puVar8 = (undefined8 *)FUN_1400016c0(&local_5d0,&local_430);
This = local_598;
pIVar2 = (IUnknown *)*puVar8;
if (local_598 != pIVar2) {
local_598 = pIVar2;
if (pIVar2 != (IUnknown *)0x0) {
(*pIVar2->lpVtbl->AddRef)(pIVar2);
}
if (This != (IUnknown *)0x0) {
(*This->lpVtbl->Release)(This);
}
}
if (local_430 != (longlong *)0x0) {
(**(code **)(*local_430 + 0x10))();
}
pIVar2 = local_598;
if (local_598 == (IUnknown *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x80004003);
}
UVar7 = (*local_598->lpVtbl[6].Release)(local_598);
if ((int)UVar7 < 0) {
_com_issue_errorex(UVar7,pIVar2,(_GUID *)&DAT_14029e038);
}
while( true ) {
pIVar2 = local_598;
if (local_598 == (IUnknown *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x80004003);
}
UVar7 = (*local_598->lpVtbl[6].Release)(local_598);
if ((int)UVar7 < 0) {
_com_issue_errorex(UVar7,pIVar2,(_GUID *)&DAT_14029e038);
}
local_308.Data1 = 0;
local_308.Data2 = 0;
local_308.Data3 = 0;
local_308.Data4[0] = '\0';
local_308.Data4[1] = '\0';
local_308.Data4[2] = '\0';
local_308.Data4[3] = '\0';
local_308.Data4[4] = '\0';
local_308.Data4[5] = '\0';
local_308.Data4[6] = '\0';
local_308.Data4[7] = '\0';
local_2f8 = 0;
local_2f4 = 0;
local_2f0 = 0;
local_2ec = 0;
local_2e8 = 0;
local_2e4 = 0;
local_2e2 = 0;
local_5f = 0;
local_2e1[0] = L'\0';
local_2e1[1] = L'\0';
local_2e1[2] = L'\0';
local_2e1[3] = L'\0';
local_2e1[4] = L'\0';
local_2e1[5] = L'\0';
local_2e1[6] = L'\0';
local_2e1[7] = L'\0';
local_2e1[8] = L'\0';
local_2e1[9] = L'\0';
local_2e1[10] = L'\0';
local_2e1[0xb] = L'\0';
local_2c9 = 0;
memset(local_2c1,0,100);
memset(local_25d,0,0x1fe);
uVar9 = FUN_140002290(&local_598,local_388,"inquiry_id",local_5f8);
FUN_140199590(uVar9);
local_308.Data1 = FUN_1400dc990(uVar9);
Ordinal_9(local_388);
uVar9 = FUN_140002290(&local_598,local_340,"auth_id",local_5f8);
FUN_140063b70(uVar9,&local_4f8);
local_308.Data2 = (ushort)local_4f8;
local_308.Data3 = local_4f8._2_2_;
local_308.Data4[0] = local_4f4[0];
local_308.Data4[1] = local_4f4[1];
local_308.Data4[2] = local_4f4[2];
local_308.Data4[3] = local_4f4[3];
local_308.Data4[4] = local_4f0[0];
local_308.Data4[5] = local_4f0[1];
local_308.Data4[6] = local_4f0[2];
local_308.Data4[7] = local_4f0[3];
local_2f8 = local_4ec;
Ordinal_9(local_340);
uVar9 = FUN_140002290(&local_598,local_328,"character_id",local_5f8);
FUN_140063b70(uVar9,&local_508);
local_2f4 = local_508;
local_2f0 = local_504;
local_2ec = local_500;
local_2e8 = local_4fc;
Ordinal_9(local_328);
uVar9 = FUN_140002290(&local_598,local_3b8,&DAT_1402aa2b4,local_5f8);
FUN_140199590(uVar9);
uVar4 = FUN_140063a70(uVar9);
local_2e4 = CONCAT11(local_2e4._1_1_,uVar4);
Ordinal_9(local_3b8);
uVar9 = FUN_140002290(&local_598,local_358,"count",local_5f8);
FUN_140199590(uVar9);
uVar4 = FUN_140063a70(uVar9);
local_2e4 = CONCAT11(uVar4,(undefined1)local_2e4);
Ordinal_9(local_358);
uVar9 = FUN_140002290(&local_598,local_400,"compulsion",local_5f8);
FUN_140199590(uVar9);
local_2e2 = FUN_140063a70(uVar9);
Ordinal_9(local_400);
uVar9 = FUN_140002290(&local_598,local_3e8,&DAT_1402a6210,local_5f8);
FUN_140199590(uVar9);
local_5f = FUN_14009f050(uVar9);
Ordinal_9(local_3e8);
uVar9 = FUN_140002290(&local_598,local_3d0,"character_name",local_5f8);
FUN_140063de0(uVar9,&local_5c0);
FUN_14016d8c0();
pwVar12 = (wchar_t *)PTR_DAT_1403440a0;
if (PTR_DAT_1403440a0 == (undefined *)0x0) {
pwVar12 = pwVar13;
}
if (local_5c0 != (wchar_t *)PTR_DAT_1403440a0) {
uVar9 = FUN_14016d8c0();
local_488 = 0;
local_490 = uVar9;
FUN_14016db50(uVar9);
local_488 = 1;
if (((pwVar12 != (wchar_t *)0x0) && (pwVar12 != (wchar_t *)PTR_DAT_1403440a0)) &&
(pwVar12 + -4 != (wchar_t *)0x0)) {
uVar10 = FUN_14016d8c0();
local_4e0 = 0;
local_4e8 = uVar10;
FUN_14016db50(uVar10);
local_4e0 = 1;
pwVar11 = pwVar12 + -2;
*(int *)pwVar11 = *(int *)pwVar11 + -1;
if (*(int *)pwVar11 == 0) {
FUN_14016d970(pwVar12 + -4);
}
FUN_14016dbe0(uVar10);
local_4e0 = 0;
}
pwVar12 = local_5c0;
if (((local_5c0 != (wchar_t *)PTR_DAT_1403440a0) && (local_5c0 != (wchar_t *)0x0)) &&
(local_5c0 != (wchar_t *)0x8)) {
*(int *)(local_5c0 + -2) = *(int *)(local_5c0 + -2) + 1;
}
FUN_14016dbe0(uVar9);
local_488 = 0;
}
pwVar11 = pwVar12;
if (pwVar12 == (wchar_t *)0x0) {
pwVar11 = (wchar_t *)PTR_DAT_1403440a0;
}
wcsncpy(local_2e1,pwVar11,0xf);
if (((pwVar12 != (wchar_t *)0x0) && (pwVar12 != (wchar_t *)PTR_DAT_1403440a0)) &&
(pwVar12 + -4 != (wchar_t *)0x0)) {
uVar9 = FUN_14016d8c0();
local_448 = 0;
local_450 = uVar9;
FUN_14016db50(uVar9);
local_448 = 1;
pwVar11 = pwVar12 + -2;
*(int *)pwVar11 = *(int *)pwVar11 + -1;
if (*(int *)pwVar11 == 0) {
FUN_14016d970(pwVar12 + -4);
}
FUN_14016dbe0(uVar9);
local_448 = 0;
}
pwVar12 = local_5c0;
if (((local_5c0 != (wchar_t *)0x0) && (local_5c0 != (wchar_t *)PTR_DAT_1403440a0)) &&
(pwVar11 = local_5c0 + -4, pwVar11 != (wchar_t *)0x0)) {
uVar9 = FUN_14016d8c0();
local_468 = 0;
local_470 = uVar9;
FUN_14016db50(uVar9);
local_468 = 1;
pwVar12 = pwVar12 + -2;
*(int *)pwVar12 = *(int *)pwVar12 + -1;
if (*(int *)pwVar12 == 0) {
FUN_14016d970(pwVar11);
}
FUN_14016dbe0(uVar9);
local_468 = 0;
}
local_5c0 = (wchar_t *)PTR_DAT_1403440a0;
Ordinal_9(local_3d0);
uVar9 = FUN_140002290(&local_598,local_3a0,"bcust_id",local_5f8);
FUN_140063de0(uVar9,&local_5b0);
FUN_14016d8c0();
pwVar12 = (wchar_t *)PTR_DAT_1403440a0;
if (PTR_DAT_1403440a0 == (undefined *)0x0) {
pwVar12 = pwVar13;
}
if (local_5b0 != (wchar_t *)PTR_DAT_1403440a0) {
uVar9 = FUN_14016d8c0();
local_498 = 0;
local_4a0 = uVar9;
FUN_14016db50(uVar9);
local_498 = 1;
if (((pwVar12 != (wchar_t *)0x0) && (pwVar12 != (wchar_t *)PTR_DAT_1403440a0)) &&
(pwVar12 + -4 != (wchar_t *)0x0)) {
uVar10 = FUN_14016d8c0();
local_4a8 = 0;
local_4b0 = uVar10;
FUN_14016db50(uVar10);
local_4a8 = 1;
pwVar11 = pwVar12 + -2;
*(int *)pwVar11 = *(int *)pwVar11 + -1;
if (*(int *)pwVar11 == 0) {
FUN_14016d970(pwVar12 + -4);
}
FUN_14016dbe0(uVar10);
local_4a8 = 0;
}
pwVar12 = local_5b0;
if (((local_5b0 != (wchar_t *)PTR_DAT_1403440a0) && (local_5b0 != (wchar_t *)0x0)) &&
(local_5b0 != (wchar_t *)0x8)) {
*(int *)(local_5b0 + -2) = *(int *)(local_5b0 + -2) + 1;
}
FUN_14016dbe0(uVar9);
local_498 = 0;
}
pwVar11 = pwVar12;
if (pwVar12 == (wchar_t *)0x0) {
pwVar11 = (wchar_t *)PTR_DAT_1403440a0;
}
wcsncpy(local_2c1,pwVar11,0x31);
if (((pwVar12 != (wchar_t *)0x0) && (pwVar12 != (wchar_t *)PTR_DAT_1403440a0)) &&
(pwVar12 + -4 != (wchar_t *)0x0)) {
uVar9 = FUN_14016d8c0();
local_478 = 0;
local_480 = uVar9;
FUN_14016db50(uVar9);
local_478 = 1;
pwVar11 = pwVar12 + -2;
*(int *)pwVar11 = *(int *)pwVar11 + -1;
if (*(int *)pwVar11 == 0) {
FUN_14016d970(pwVar12 + -4);
}
FUN_14016dbe0(uVar9);
local_478 = 0;
}
pwVar12 = local_5b0;
if (((local_5b0 != (wchar_t *)0x0) && (local_5b0 != (wchar_t *)PTR_DAT_1403440a0)) &&
(pwVar11 = local_5b0 + -4, pwVar11 != (wchar_t *)0x0)) {
uVar9 = FUN_14016d8c0();
local_458 = 0;
local_460 = uVar9;
FUN_14016db50(uVar9);
local_458 = 1;
pwVar12 = pwVar12 + -2;
*(int *)pwVar12 = *(int *)pwVar12 + -1;
if (*(int *)pwVar12 == 0) {
FUN_14016d970(pwVar11);
}
FUN_14016dbe0(uVar9);
local_458 = 0;
}
local_5b0 = (wchar_t *)PTR_DAT_1403440a0;
Ordinal_9(local_3a0);
uVar9 = FUN_140002290(&local_598,local_370,&DAT_1402aa6c8,local_5f8);
FUN_140063de0(uVar9,&local_5b8);
FUN_14016d8c0();
pwVar12 = (wchar_t *)PTR_DAT_1403440a0;
if (PTR_DAT_1403440a0 == (undefined *)0x0) {
pwVar12 = pwVar13;
}
if (local_5b8 != (wchar_t *)PTR_DAT_1403440a0) {
uVar9 = FUN_14016d8c0();
local_420 = 0;
local_428 = uVar9;
FUN_14016db50(uVar9);
local_420 = 1;
if (((pwVar12 != (wchar_t *)0x0) && (pwVar12 != (wchar_t *)PTR_DAT_1403440a0)) &&
(pwVar12 + -4 != (wchar_t *)0x0)) {
uVar10 = FUN_14016d8c0();
local_438 = 0;
local_440 = uVar10;
FUN_14016db50(uVar10);
local_438 = 1;
pwVar11 = pwVar12 + -2;
*(int *)pwVar11 = *(int *)pwVar11 + -1;
if (*(int *)pwVar11 == 0) {
FUN_14016d970(pwVar12 + -4);
}
FUN_14016dbe0(uVar10);
local_438 = 0;
}
pwVar12 = local_5b8;
if (((local_5b8 != (wchar_t *)PTR_DAT_1403440a0) && (local_5b8 != (wchar_t *)0x0)) &&
(local_5b8 != (wchar_t *)0x8)) {
*(int *)(local_5b8 + -2) = *(int *)(local_5b8 + -2) + 1;
}
FUN_14016dbe0(uVar9);
local_420 = 0;
}
pwVar11 = pwVar12;
if (pwVar12 == (wchar_t *)0x0) {
pwVar11 = (wchar_t *)PTR_DAT_1403440a0;
}
wcsncpy(local_25d,pwVar11,0xfe);
if (((pwVar12 != (wchar_t *)0x0) && (pwVar12 != (wchar_t *)PTR_DAT_1403440a0)) &&
(pwVar12 + -4 != (wchar_t *)0x0)) {
uVar9 = FUN_14016d8c0();
local_4d0 = 0;
local_4d8 = uVar9;
FUN_14016db50(uVar9);
local_4d0 = 1;
pwVar11 = pwVar12 + -2;
*(int *)pwVar11 = *(int *)pwVar11 + -1;
if (*(int *)pwVar11 == 0) {
FUN_14016d970(pwVar12 + -4);
}
FUN_14016dbe0(uVar9);
local_4d0 = 0;
}
pwVar12 = local_5b8;
if (((local_5b8 != (wchar_t *)0x0) && (local_5b8 != (wchar_t *)PTR_DAT_1403440a0)) &&
(pwVar11 = local_5b8 + -4, pwVar11 != (wchar_t *)0x0)) {
uVar9 = FUN_14016d8c0();
local_4b8 = 0;
local_4c0 = uVar9;
FUN_14016db50(uVar9);
local_4b8 = 1;
pwVar12 = pwVar12 + -2;
*(int *)pwVar12 = *(int *)pwVar12 + -1;
if (*(int *)pwVar12 == 0) {
FUN_14016d970(pwVar11);
}
FUN_14016dbe0(uVar9);
local_4b8 = 0;
}
local_5b8 = (wchar_t *)PTR_DAT_1403440a0;
Ordinal_9(local_370);
local_2c9 = local_2c9 & 0xffffffffffff;
local_25f = 0;
local_61 = 0;
riid = (char *)&local_308;
ppvObject = (char *)0x2b1;
memcpy((void *)((longlong)(int)uVar14 + 0x130 + (longlong)param_1),riid,0x2b1);
uVar14 = uVar14 + 0x2b1;
uVar15 = (short)pwVar16 + 1;
pwVar16 = (wchar_t *)(ulonglong)uVar15;
if (50000 < uVar14) {
uVar3 = local_5e8._2_6_;
local_5e8 = CONCAT62(local_5e8._2_6_,(short)uVar14);
uVar9 = local_5e8;
riid = (char *)(param_1 + 0x26);
local_5e8._4_2_ = SUB62(uVar3,2);
local_5e8._6_2_ = SUB62(uVar3,4);
((IID *)riid)->Data1 = (undefined4)local_5e8;
((IID *)riid)->Data2 = local_5e8._4_2_;
((IID *)riid)->Data3 = local_5e8._6_2_;
param_1[0x27] = CONCAT26(uVar15,CONCAT24(0x11e,uVar1));
iVar5 = FUN_1400a7630(*(undefined8 *)(param_1[0x22] + 0xf0));
if (iVar5 == 0) {
ppvObject = "DB Result Queue push error";
riid = "DBResultQueue_Error.Log";
FUN_1400a6d80(param_1[0x23]);
}
uVar14 = 0x10;
pwVar16 = pwVar13;
local_5e8 = uVar9;
}
pIVar2 = local_598;
if (local_598 == (IUnknown *)0x0) break;
HVar6 = (*local_598->lpVtbl[0xc].QueryInterface)(local_598,(IID *)riid,(void **)ppvObject);
if (HVar6 < 0) {
_com_issue_errorex(HVar6,pIVar2,(_GUID *)&DAT_14029e038);
}
}
/* WARNING: Subroutine does not return */
FUN_140218220(0x80004003);
}
FUN_1400a8040(param_1,param_2,0);
pIVar2 = local_598;
if (local_598 != (IUnknown *)0x0) {
local_5c4 = 0;
UVar7 = (*local_598->lpVtbl[0x12].AddRef)(local_598);
if ((int)UVar7 < 0) {
_com_issue_errorex(UVar7,pIVar2,(_GUID *)&DAT_14029e038);
}
pIVar2 = local_598;
if (local_5c4 != 0) {
if (local_598 == (IUnknown *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x80004003);
}
UVar7 = (*local_598->lpVtbl[10].Release)(local_598);
if ((int)UVar7 < 0) {
_com_issue_errorex(UVar7,pIVar2,(_GUID *)&DAT_14029e038);
}
}
if (local_598 != (IUnknown *)0x0) {
(*local_598->lpVtbl->Release)(local_598);
local_598 = (IUnknown *)0x0;
}
}
local_530 = 0;
local_528 = &DAT_14029e010;
local_540 = &DAT_14029e010;
local_538 = 0;
local_548 = 0;
Ordinal_9(local_560);
Ordinal_9(local_578);
if (local_590 != (longlong *)0x0) {
(**(code **)(*local_590 + 0x10))();
}
if (local_598 != (IUnknown *)0x0) {
(*local_598->lpVtbl->Release)(local_598);
}
if (local_5d0 != (longlong *)0x0) {
(**(code **)(*local_5d0 + 0x10))();
}
return 0;
}