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

949 lines
28 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x14012b800 FUN_14012b800
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
undefined8 FUN_14012b800(undefined8 *param_1)
{
short sVar1;
IUnknown *pIVar2;
IUnknown *This;
ULONG UVar3;
int iVar4;
HRESULT HVar5;
errno_t eVar6;
undefined4 uVar7;
undefined8 uVar8;
undefined8 *puVar9;
longlong *plVar10;
longlong lVar11;
longlong *plVar12;
undefined4 *puVar13;
longlong *plVar14;
short *psVar15;
short *psVar16;
undefined1 auStackY_4d8 [32];
longlong *local_498;
int local_490;
int local_48c;
longlong *local_488;
longlong *local_480;
longlong *local_478;
longlong *local_470;
longlong *local_468;
longlong *local_460;
longlong *local_458;
LPUNKNOWN local_450;
longlong *local_448;
longlong *local_440;
longlong *local_438;
longlong *local_430;
longlong *local_428;
undefined8 local_420;
undefined4 local_418;
longlong local_410;
undefined4 local_408;
longlong local_3f8;
undefined4 local_3f0;
longlong local_3e0;
undefined4 local_3d8;
longlong local_3c8;
undefined4 local_3c0;
longlong local_3b0;
undefined4 local_3a8;
longlong *local_398;
longlong local_390;
undefined8 local_388;
undefined8 *local_378;
longlong *local_370;
longlong local_368;
undefined1 local_360;
undefined2 local_350 [4];
longlong local_348;
longlong local_338;
undefined4 local_330;
IUnknown *local_318;
longlong *local_310;
undefined4 local_308;
undefined1 local_2f8 [24];
undefined1 local_2e0 [24];
undefined4 local_2c8;
undefined1 *local_2c0;
undefined4 local_2b8;
undefined8 local_2b0;
undefined1 *local_2a8;
longlong *local_298;
longlong *local_290;
longlong *local_288;
longlong *local_280;
longlong *local_278;
longlong *local_270;
longlong *local_268;
longlong *local_260;
longlong *local_258;
__time64_t local_250;
longlong *local_248;
longlong *local_240;
longlong *local_238;
longlong *local_230;
longlong *local_228;
longlong *local_220;
longlong *local_218;
longlong *local_210;
longlong *local_208;
longlong *local_200;
longlong *local_1f8;
longlong *local_1f0;
longlong *local_1e8;
longlong *local_1e0;
longlong *local_1d8;
longlong *local_1d0;
longlong *local_1c8;
longlong *local_1c0;
longlong local_1b8 [4];
undefined8 local_198;
undefined1 local_190 [8];
undefined2 *local_188;
undefined4 local_178;
undefined4 uStack_174;
undefined4 uStack_170;
undefined4 uStack_16c;
longlong local_168 [3];
longlong local_150 [3];
longlong local_138 [3];
undefined1 local_120 [24];
short local_108;
short local_106;
undefined2 local_104;
undefined2 local_102;
undefined2 local_100;
undefined2 local_fe;
undefined2 local_fc;
undefined2 local_fa;
tm local_f8;
undefined8 local_d0;
undefined8 local_c8;
undefined1 local_c0 [16];
short local_b0 [16];
short local_90 [16];
undefined8 local_70 [6];
undefined1 local_3e;
ulonglong local_38;
local_198 = 0xfffffffffffffffe;
local_38 = DAT_1403463c0 ^ (ulonglong)auStackY_4d8;
pIVar2 = *(IUnknown **)*param_1;
plVar14 = (longlong *)0x0;
local_378 = param_1;
if (pIVar2 == (IUnknown *)0x0) {
LAB_14012b88c:
uVar8 = FUN_1400a80c0(param_1);
if ((int)uVar8 == 0) {
return uVar8;
}
}
else {
local_490 = 0;
UVar3 = (*pIVar2->lpVtbl[0xb].AddRef)(pIVar2);
if ((int)UVar3 < 0) {
_com_issue_errorex(UVar3,pIVar2,(_GUID *)&DAT_14029e018);
}
if (local_490 == 0) goto LAB_14012b88c;
}
local_498 = (longlong *)0x0;
iVar4 = FUN_140001990(&local_498);
if ((iVar4 < 0) && (iVar4 != -0x7fffbffe)) {
/* WARNING: Subroutine does not return */
FUN_140218220(iVar4);
}
local_318 = (IUnknown *)0x0;
local_310 = (longlong *)0x0;
Ordinal_8(local_2f8);
Ordinal_8(local_2e0);
pIVar2 = local_318;
if ((local_318 != (IUnknown *)0x0) && (local_318 = (IUnknown *)0x0, pIVar2 != (IUnknown *)0x0)) {
(*pIVar2->lpVtbl->Release)(pIVar2);
}
local_2a8 = &DAT_14029e010;
local_2c0 = &DAT_14029e010;
local_2b8 = 0;
local_2b0 = 0;
if (local_318 != (IUnknown *)0x0) {
(*local_318->lpVtbl->Release)(local_318);
}
HVar5 = CoCreateInstance((IID *)&DAT_14029e088,(LPUNKNOWN)0x0,0x17,(IID *)&DAT_14029dfb0,
&local_450);
if (HVar5 < 0) {
LAB_14012b9bd:
local_318 = (IUnknown *)0x0;
}
else {
HVar5 = OleRun(local_450);
if (-1 < HVar5) {
HVar5 = (*local_450->lpVtbl->QueryInterface)(local_450,(IID *)&DAT_14029e078,&local_318);
}
(*local_450->lpVtbl->Release)(local_450);
if (HVar5 < 0) goto LAB_14012b9bd;
}
local_2c8 = 2;
local_308 = 1;
puVar9 = (undefined8 *)FUN_140001f40(*param_1,&local_298);
FUN_140001700(&local_498,*puVar9,"dbo.up_ado_data_mapping");
if (local_298 != (longlong *)0x0) {
(**(code **)(*local_298 + 0x10))();
}
local_70[0] = 0x6b726573726562;
local_3e = 0;
psVar15 = &DAT_1402ae2e8;
psVar16 = local_b0;
do {
sVar1 = *psVar15;
*psVar16 = sVar1;
psVar15 = psVar15 + 1;
psVar16 = psVar16 + 1;
} while (sVar1 != 0);
psVar15 = &DAT_1402ae2f8;
psVar16 = local_90;
do {
sVar1 = *psVar15;
*psVar16 = sVar1;
psVar15 = psVar15 + 1;
psVar16 = psVar16 + 1;
} while (sVar1 != 0);
local_250 = _time64((__time64_t *)0x0);
local_420 = 0;
local_418 = 0;
eVar6 = _localtime64_s(&local_f8,&local_250);
if (eVar6 == 0) {
local_108 = (short)local_f8.tm_year + 0x76c;
local_106 = (short)local_f8.tm_mon + 1;
local_104 = (undefined2)local_f8.tm_wday;
local_102 = (undefined2)local_f8.tm_mday;
local_100 = (undefined2)local_f8.tm_hour;
local_fe = (undefined2)local_f8.tm_min;
local_fc = (undefined2)local_f8.tm_sec;
local_fa = 0;
iVar4 = Ordinal_184(&local_108,&local_420);
local_d0 = 0;
local_c8 = 0;
if (iVar4 != 0) {
Ordinal_185((int)local_420,&local_d0);
}
}
local_188 = local_350;
Ordinal_8(local_350);
plVar10 = operator_new(0x18);
plVar12 = plVar14;
local_398 = plVar10;
if (plVar10 != (longlong *)0x0) {
plVar10[1] = 0;
*(undefined4 *)(plVar10 + 2) = 1;
lVar11 = FUN_1402182d0(local_70);
*plVar10 = lVar11;
plVar12 = plVar10;
}
local_448 = plVar12;
if (plVar12 == (longlong *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x8007000e);
}
iVar4 = Ordinal_9(local_350);
if (iVar4 < 0) {
/* WARNING: Subroutine does not return */
FUN_140218220(iVar4);
}
local_350[0] = 8;
if (*plVar12 == 0) {
local_348 = 0;
}
else {
lVar11 = *plVar12;
uVar7 = Ordinal_149(lVar11);
local_348 = Ordinal_150(lVar11,uVar7);
if (local_348 == 0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x8007000e);
}
}
LOCK();
plVar10 = plVar12 + 2;
lVar11 = *plVar10;
*(int *)plVar10 = (int)*plVar10 + -1;
UNLOCK();
if ((int)lVar11 == 1) {
if (*plVar12 != 0) {
Ordinal_6();
}
if ((void *)plVar12[1] != (void *)0x0) {
operator_delete__((void *)plVar12[1]);
}
operator_delete(plVar12);
}
plVar12 = operator_new(0x18);
local_248 = plVar14;
local_448 = plVar12;
if (plVar12 != (longlong *)0x0) {
plVar12[1] = 0;
*(undefined4 *)(plVar12 + 2) = 1;
lVar11 = FUN_1402182d0("bcust_id");
*plVar12 = lVar11;
local_248 = plVar12;
}
if (local_248 == (longlong *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x8007000e);
}
plVar12 = (longlong *)FUN_140001870(&local_498,&local_488,&local_248,0xca);
local_448 = plVar12;
if (local_498 == (longlong *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x80004003);
}
puVar9 = (undefined8 *)FUN_140001650(local_498,&local_270);
pIVar2 = (IUnknown *)*puVar9;
if (pIVar2 == (IUnknown *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x80004003);
}
UVar3 = (*pIVar2->lpVtbl[3].AddRef)(pIVar2);
if ((int)UVar3 < 0) {
_com_issue_errorex(UVar3,pIVar2,(_GUID *)&DAT_14029dfc0);
}
if (local_270 != (longlong *)0x0) {
(**(code **)(*local_270 + 0x10))();
}
if ((longlong *)*plVar12 != (longlong *)0x0) {
(**(code **)(*(longlong *)*plVar12 + 0x10))();
}
local_488 = local_168;
puVar13 = (undefined4 *)FUN_140199840(local_c0);
local_178 = *puVar13;
uStack_174 = puVar13[1];
uStack_170 = puVar13[2];
uStack_16c = puVar13[3];
FUN_140063530(local_168,&local_178);
plVar12 = operator_new(0x18);
local_210 = plVar14;
local_448 = plVar12;
if (plVar12 != (longlong *)0x0) {
plVar12[1] = 0;
*(undefined4 *)(plVar12 + 2) = 1;
lVar11 = FUN_1402182d0(&DAT_1402ae318);
*plVar12 = lVar11;
local_210 = plVar12;
}
if (local_210 == (longlong *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x8007000e);
}
plVar12 = (longlong *)FUN_140001870(&local_498,&local_438,&local_210,0xca);
local_488 = plVar12;
if (local_498 == (longlong *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x80004003);
}
puVar9 = (undefined8 *)FUN_140001650(local_498,&local_260);
pIVar2 = (IUnknown *)*puVar9;
if (pIVar2 == (IUnknown *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x80004003);
}
UVar3 = (*pIVar2->lpVtbl[3].AddRef)(pIVar2);
if ((int)UVar3 < 0) {
_com_issue_errorex(UVar3,pIVar2,(_GUID *)&DAT_14029dfc0);
}
if (local_260 != (longlong *)0x0) {
(**(code **)(*local_260 + 0x10))();
}
if ((longlong *)*plVar12 != (longlong *)0x0) {
(**(code **)(*(longlong *)*plVar12 + 0x10))();
}
local_438 = &local_3c8;
Ordinal_8(&local_3c8);
if (((short)local_3c8 == 3) || ((short)local_3c8 == 10)) {
LAB_14012bf67:
local_3c0 = 1;
}
else {
if ((short)local_3c8 != 0xb) {
iVar4 = Ordinal_9(&local_3c8);
if (iVar4 < 0) {
/* WARNING: Subroutine does not return */
FUN_140218220(iVar4);
}
local_3c8._0_2_ = 3;
goto LAB_14012bf67;
}
local_3c0 = CONCAT22(local_3c0._2_2_,0xffff);
}
plVar12 = operator_new(0x18);
local_1e0 = plVar14;
local_488 = plVar12;
if (plVar12 != (longlong *)0x0) {
plVar12[1] = 0;
*(undefined4 *)(plVar12 + 2) = 1;
lVar11 = FUN_1402182d0("OnLine");
*plVar12 = lVar11;
local_1e0 = plVar12;
}
if (local_1e0 == (longlong *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x8007000e);
}
plVar12 = (longlong *)FUN_140001870(&local_498,&local_480,&local_1e0,0x10);
local_438 = plVar12;
if (local_498 == (longlong *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x80004003);
}
puVar9 = (undefined8 *)FUN_140001650(local_498,&local_200);
pIVar2 = (IUnknown *)*puVar9;
if (pIVar2 == (IUnknown *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x80004003);
}
UVar3 = (*pIVar2->lpVtbl[3].AddRef)(pIVar2);
if ((int)UVar3 < 0) {
_com_issue_errorex(UVar3,pIVar2,(_GUID *)&DAT_14029dfc0);
}
if (local_200 != (longlong *)0x0) {
(**(code **)(*local_200 + 0x10))();
}
if ((longlong *)*plVar12 != (longlong *)0x0) {
(**(code **)(*(longlong *)*plVar12 + 0x10))();
}
local_480 = &local_410;
Ordinal_8(&local_410);
if (((short)local_410 == 3) || ((short)local_410 == 10)) {
LAB_14012c0e0:
local_408 = 0x3e9;
}
else {
if ((short)local_410 != 0xb) {
iVar4 = Ordinal_9(&local_410);
if (iVar4 < 0) {
/* WARNING: Subroutine does not return */
FUN_140218220(iVar4);
}
local_410._0_2_ = 3;
goto LAB_14012c0e0;
}
local_408 = CONCAT22(local_408._2_2_,0xffff);
}
plVar12 = operator_new(0x18);
local_240 = plVar14;
local_438 = plVar12;
if (plVar12 != (longlong *)0x0) {
plVar12[1] = 0;
*(undefined4 *)(plVar12 + 2) = 1;
lVar11 = FUN_1402182d0("ServerID");
*plVar12 = lVar11;
local_240 = plVar12;
}
if (local_240 == (longlong *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x8007000e);
}
plVar12 = (longlong *)FUN_140001870(&local_498,&local_478,&local_240,2);
local_480 = plVar12;
if (local_498 == (longlong *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x80004003);
}
puVar9 = (undefined8 *)FUN_140001650(local_498,&local_1d0);
pIVar2 = (IUnknown *)*puVar9;
if (pIVar2 == (IUnknown *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x80004003);
}
UVar3 = (*pIVar2->lpVtbl[3].AddRef)(pIVar2);
if ((int)UVar3 < 0) {
_com_issue_errorex(UVar3,pIVar2,(_GUID *)&DAT_14029dfc0);
}
if (local_1d0 != (longlong *)0x0) {
(**(code **)(*local_1d0 + 0x10))();
}
if ((longlong *)*plVar12 != (longlong *)0x0) {
(**(code **)(*(longlong *)*plVar12 + 0x10))();
}
local_478 = &local_3e0;
Ordinal_8(&local_3e0);
if (((short)local_3e0 == 3) || ((short)local_3e0 == 10)) {
LAB_14012c256:
local_3d8 = 0x309;
}
else {
if ((short)local_3e0 != 0xb) {
iVar4 = Ordinal_9(&local_3e0);
if (iVar4 < 0) {
/* WARNING: Subroutine does not return */
FUN_140218220(iVar4);
}
local_3e0._0_2_ = 3;
goto LAB_14012c256;
}
local_3d8 = CONCAT22(local_3d8._2_2_,0xffff);
}
plVar12 = operator_new(0x18);
local_230 = plVar14;
local_480 = plVar12;
if (plVar12 != (longlong *)0x0) {
plVar12[1] = 0;
*(undefined4 *)(plVar12 + 2) = 1;
lVar11 = FUN_1402182d0("ChannelID");
*plVar12 = lVar11;
local_230 = plVar12;
}
if (local_230 == (longlong *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x8007000e);
}
plVar12 = (longlong *)FUN_140001870(&local_498,&local_440,&local_230,3);
local_478 = plVar12;
if (local_498 == (longlong *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x80004003);
}
puVar9 = (undefined8 *)FUN_140001650(local_498,&local_1f0);
pIVar2 = (IUnknown *)*puVar9;
if (pIVar2 == (IUnknown *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x80004003);
}
UVar3 = (*pIVar2->lpVtbl[3].AddRef)(pIVar2);
if ((int)UVar3 < 0) {
_com_issue_errorex(UVar3,pIVar2,(_GUID *)&DAT_14029dfc0);
}
if (local_1f0 != (longlong *)0x0) {
(**(code **)(*local_1f0 + 0x10))();
}
if ((longlong *)*plVar12 != (longlong *)0x0) {
(**(code **)(*(longlong *)*plVar12 + 0x10))();
}
local_440 = local_1b8;
Ordinal_8(local_1b8);
uVar8 = FUN_140199560(local_120,0x1cbe991a14);
iVar4 = Ordinal_10(local_1b8,uVar8);
if (iVar4 < 0) {
/* WARNING: Subroutine does not return */
FUN_140218220(iVar4);
}
Ordinal_9(local_120);
plVar12 = operator_new(0x18);
local_220 = plVar14;
local_478 = plVar12;
if (plVar12 != (longlong *)0x0) {
plVar12[1] = 0;
*(undefined4 *)(plVar12 + 2) = 1;
lVar11 = FUN_1402182d0("CharExp");
*plVar12 = lVar11;
local_220 = plVar12;
}
if (local_220 == (longlong *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x8007000e);
}
plVar12 = (longlong *)FUN_140001870(&local_498,&local_428,&local_220,0x14);
local_440 = plVar12;
if (local_498 == (longlong *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x80004003);
}
puVar9 = (undefined8 *)FUN_140001650(local_498,&local_280);
pIVar2 = (IUnknown *)*puVar9;
if (pIVar2 == (IUnknown *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x80004003);
}
UVar3 = (*pIVar2->lpVtbl[3].AddRef)(pIVar2);
if ((int)UVar3 < 0) {
_com_issue_errorex(UVar3,pIVar2,(_GUID *)&DAT_14029dfc0);
}
if (local_280 != (longlong *)0x0) {
(**(code **)(*local_280 + 0x10))();
}
if ((longlong *)*plVar12 != (longlong *)0x0) {
(**(code **)(*(longlong *)*plVar12 + 0x10))();
}
local_428 = local_150;
FUN_140063990(local_150,local_b0);
plVar12 = operator_new(0x18);
local_278 = plVar14;
local_440 = plVar12;
if (plVar12 != (longlong *)0x0) {
plVar12[1] = 0;
*(undefined4 *)(plVar12 + 2) = 1;
lVar11 = FUN_1402182d0("CharName");
*plVar12 = lVar11;
local_278 = plVar12;
}
if (local_278 == (longlong *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x8007000e);
}
plVar12 = (longlong *)FUN_140001870(&local_498,&local_430,&local_278,0xca);
local_428 = plVar12;
if (local_498 == (longlong *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x80004003);
}
puVar9 = (undefined8 *)FUN_140001650(local_498,&local_290);
pIVar2 = (IUnknown *)*puVar9;
if (pIVar2 == (IUnknown *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x80004003);
}
UVar3 = (*pIVar2->lpVtbl[3].AddRef)(pIVar2);
if ((int)UVar3 < 0) {
_com_issue_errorex(UVar3,pIVar2,(_GUID *)&DAT_14029dfc0);
}
if (local_290 != (longlong *)0x0) {
(**(code **)(*local_290 + 0x10))();
}
if ((longlong *)*plVar12 != (longlong *)0x0) {
(**(code **)(*(longlong *)*plVar12 + 0x10))();
}
local_430 = local_138;
FUN_140063990(local_138,local_90);
plVar12 = operator_new(0x18);
local_238 = plVar14;
local_428 = plVar12;
if (plVar12 != (longlong *)0x0) {
plVar12[1] = 0;
*(undefined4 *)(plVar12 + 2) = 1;
lVar11 = FUN_1402182d0(&DAT_1402aa680);
*plVar12 = lVar11;
local_238 = plVar12;
}
if (local_238 == (longlong *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x8007000e);
}
plVar12 = (longlong *)FUN_140001870(&local_498,&local_460,&local_238,200);
local_430 = plVar12;
if (local_498 == (longlong *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x80004003);
}
puVar9 = (undefined8 *)FUN_140001650(local_498,&local_228);
pIVar2 = (IUnknown *)*puVar9;
if (pIVar2 == (IUnknown *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x80004003);
}
UVar3 = (*pIVar2->lpVtbl[3].AddRef)(pIVar2);
if ((int)UVar3 < 0) {
_com_issue_errorex(UVar3,pIVar2,(_GUID *)&DAT_14029dfc0);
}
if (local_228 != (longlong *)0x0) {
(**(code **)(*local_228 + 0x10))();
}
if ((longlong *)*plVar12 != (longlong *)0x0) {
(**(code **)(*(longlong *)*plVar12 + 0x10))();
}
local_460 = &local_338;
Ordinal_8(&local_338);
if ((short)local_338 != 4) {
iVar4 = Ordinal_9(&local_338);
if (iVar4 < 0) {
/* WARNING: Subroutine does not return */
FUN_140218220(iVar4);
}
local_338._0_2_ = 4;
}
local_330 = 0x3f46e979;
plVar12 = operator_new(0x18);
local_218 = plVar14;
local_430 = plVar12;
if (plVar12 != (longlong *)0x0) {
plVar12[1] = 0;
*(undefined4 *)(plVar12 + 2) = 1;
lVar11 = FUN_1402182d0("fValue");
*plVar12 = lVar11;
local_218 = plVar12;
}
if (local_218 == (longlong *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x8007000e);
}
plVar12 = (longlong *)FUN_140001870(&local_498,&local_458,&local_218,4);
local_460 = plVar12;
if (local_498 == (longlong *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x80004003);
}
puVar9 = (undefined8 *)FUN_140001650(local_498,&local_208);
pIVar2 = (IUnknown *)*puVar9;
if (pIVar2 == (IUnknown *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x80004003);
}
UVar3 = (*pIVar2->lpVtbl[3].AddRef)(pIVar2);
if ((int)UVar3 < 0) {
_com_issue_errorex(UVar3,pIVar2,(_GUID *)&DAT_14029dfc0);
}
if (local_208 != (longlong *)0x0) {
(**(code **)(*local_208 + 0x10))();
}
if ((longlong *)*plVar12 != (longlong *)0x0) {
(**(code **)(*(longlong *)*plVar12 + 0x10))();
}
local_458 = &local_368;
Ordinal_8(&local_368);
if ((short)local_368 != 0x11) {
iVar4 = Ordinal_9(&local_368);
if (iVar4 < 0) {
/* WARNING: Subroutine does not return */
FUN_140218220(iVar4);
}
local_368._0_2_ = 0x11;
}
local_360 = 0xff;
plVar12 = operator_new(0x18);
local_1f8 = plVar14;
local_460 = plVar12;
if (plVar12 != (longlong *)0x0) {
plVar12[1] = 0;
*(undefined4 *)(plVar12 + 2) = 1;
lVar11 = FUN_1402182d0("btValue");
*plVar12 = lVar11;
local_1f8 = plVar12;
}
if (local_1f8 == (longlong *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x8007000e);
}
plVar12 = (longlong *)FUN_140001870(&local_498,&local_470,&local_1f8,0x10);
local_458 = plVar12;
if (local_498 == (longlong *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x80004003);
}
puVar9 = (undefined8 *)FUN_140001650(local_498,&local_1e8);
pIVar2 = (IUnknown *)*puVar9;
if (pIVar2 == (IUnknown *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x80004003);
}
UVar3 = (*pIVar2->lpVtbl[3].AddRef)(pIVar2);
if ((int)UVar3 < 0) {
_com_issue_errorex(UVar3,pIVar2,(_GUID *)&DAT_14029dfc0);
}
if (local_1e8 != (longlong *)0x0) {
(**(code **)(*local_1e8 + 0x10))();
}
if ((longlong *)*plVar12 != (longlong *)0x0) {
(**(code **)(*(longlong *)*plVar12 + 0x10))();
}
local_470 = &local_3b0;
Ordinal_8(&local_3b0);
if (((short)local_3b0 == 3) || ((short)local_3b0 == 10)) {
LAB_14012ca45:
local_3a8 = 1;
}
else {
if ((short)local_3b0 != 0xb) {
iVar4 = Ordinal_9(&local_3b0);
if (iVar4 < 0) {
/* WARNING: Subroutine does not return */
FUN_140218220(iVar4);
}
local_3b0._0_2_ = 3;
goto LAB_14012ca45;
}
local_3a8 = CONCAT22(local_3a8._2_2_,0xffff);
}
plVar12 = operator_new(0x18);
local_1d8 = plVar14;
local_458 = plVar12;
if (plVar12 != (longlong *)0x0) {
plVar12[1] = 0;
*(undefined4 *)(plVar12 + 2) = 1;
lVar11 = FUN_1402182d0("bGift");
*plVar12 = lVar11;
local_1d8 = plVar12;
}
if (local_1d8 == (longlong *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x8007000e);
}
plVar12 = (longlong *)FUN_140001870(&local_498,&local_468,&local_1d8,0xb);
local_470 = plVar12;
if (local_498 == (longlong *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x80004003);
}
puVar9 = (undefined8 *)FUN_140001650(local_498,&local_1c0);
pIVar2 = (IUnknown *)*puVar9;
if (pIVar2 == (IUnknown *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x80004003);
}
UVar3 = (*pIVar2->lpVtbl[3].AddRef)(pIVar2);
if ((int)UVar3 < 0) {
_com_issue_errorex(UVar3,pIVar2,(_GUID *)&DAT_14029dfc0);
}
if (local_1c0 != (longlong *)0x0) {
(**(code **)(*local_1c0 + 0x10))();
}
if ((longlong *)*plVar12 != (longlong *)0x0) {
(**(code **)(*(longlong *)*plVar12 + 0x10))();
}
local_468 = &local_390;
Ordinal_8(&local_390);
if (((short)local_390 != 5) && ((short)local_390 != 7)) {
iVar4 = Ordinal_9(&local_390);
if (iVar4 < 0) {
/* WARNING: Subroutine does not return */
FUN_140218220(iVar4);
}
local_390._0_2_ = 5;
}
local_388 = local_420;
plVar12 = operator_new(0x18);
local_1c8 = plVar14;
local_470 = plVar12;
if (plVar12 != (longlong *)0x0) {
plVar12[1] = 0;
*(undefined4 *)(plVar12 + 2) = 1;
lVar11 = FUN_1402182d0("dDouble");
*plVar12 = lVar11;
local_1c8 = plVar12;
}
if (local_1c8 == (longlong *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x8007000e);
}
plVar12 = (longlong *)FUN_140001870(&local_498,&local_370,&local_1c8,5);
local_468 = plVar12;
if (local_498 == (longlong *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x80004003);
}
puVar9 = (undefined8 *)FUN_140001650(local_498,&local_268);
pIVar2 = (IUnknown *)*puVar9;
if (pIVar2 == (IUnknown *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x80004003);
}
UVar3 = (*pIVar2->lpVtbl[3].AddRef)(pIVar2);
if ((int)UVar3 < 0) {
_com_issue_errorex(UVar3,pIVar2,(_GUID *)&DAT_14029dfc0);
}
if (local_268 != (longlong *)0x0) {
(**(code **)(*local_268 + 0x10))();
}
if ((longlong *)*plVar12 != (longlong *)0x0) {
(**(code **)(*(longlong *)*plVar12 + 0x10))();
}
local_370 = &local_3f8;
Ordinal_8(&local_3f8);
if (((short)local_3f8 != 3) && ((short)local_3f8 != 10)) {
if ((short)local_3f8 == 0xb) {
local_3f0 = CONCAT22(local_3f0._2_2_,0xffff);
goto LAB_14012cd3a;
}
iVar4 = Ordinal_9(&local_3f8);
if (iVar4 < 0) {
/* WARNING: Subroutine does not return */
FUN_140218220(iVar4);
}
local_3f8._0_2_ = 3;
}
local_3f0 = 4;
LAB_14012cd3a:
plVar12 = operator_new(0x18);
local_468 = plVar12;
if (plVar12 != (longlong *)0x0) {
plVar12[1] = 0;
*(undefined4 *)(plVar12 + 2) = 1;
lVar11 = FUN_1402182d0("CharClass");
*plVar12 = lVar11;
plVar14 = plVar12;
}
local_288 = plVar14;
if (plVar14 == (longlong *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x8007000e);
}
plVar14 = (longlong *)FUN_140001870(&local_498,local_190,&local_288,3);
local_370 = plVar14;
if (local_498 == (longlong *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x80004003);
}
puVar9 = (undefined8 *)FUN_140001650(local_498,&local_258);
pIVar2 = (IUnknown *)*puVar9;
if (pIVar2 != (IUnknown *)0x0) {
UVar3 = (*pIVar2->lpVtbl[3].AddRef)(pIVar2);
if ((int)UVar3 < 0) {
_com_issue_errorex(UVar3,pIVar2,(_GUID *)&DAT_14029dfc0);
}
if (local_258 != (longlong *)0x0) {
(**(code **)(*local_258 + 0x10))();
}
if ((longlong *)*plVar14 != (longlong *)0x0) {
(**(code **)(*(longlong *)*plVar14 + 0x10))();
}
puVar9 = (undefined8 *)FUN_1400016c0(&local_498,&local_398);
This = local_318;
pIVar2 = (IUnknown *)*puVar9;
if (local_318 != pIVar2) {
local_318 = pIVar2;
if (pIVar2 != (IUnknown *)0x0) {
(*pIVar2->lpVtbl->AddRef)(pIVar2);
}
if (This != (IUnknown *)0x0) {
(*This->lpVtbl->Release)(This);
}
}
if (local_398 != (longlong *)0x0) {
(**(code **)(*local_398 + 0x10))();
}
pIVar2 = local_318;
if (local_318 != (IUnknown *)0x0) {
local_48c = 0;
UVar3 = (*local_318->lpVtbl[0x12].AddRef)(local_318);
if ((int)UVar3 < 0) {
_com_issue_errorex(UVar3,pIVar2,(_GUID *)&DAT_14029e038);
}
pIVar2 = local_318;
if (local_48c != 0) {
if (local_318 == (IUnknown *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x80004003);
}
UVar3 = (*local_318->lpVtbl[10].Release)(local_318);
if ((int)UVar3 < 0) {
_com_issue_errorex(UVar3,pIVar2,(_GUID *)&DAT_14029e038);
}
}
if (local_318 != (IUnknown *)0x0) {
(*local_318->lpVtbl->Release)(local_318);
local_318 = (IUnknown *)0x0;
}
}
local_2b0 = 0;
local_2a8 = &DAT_14029e010;
local_2c0 = &DAT_14029e010;
local_2b8 = 0;
local_2c8 = 0;
Ordinal_9(local_2e0);
Ordinal_9(local_2f8);
if (local_310 != (longlong *)0x0) {
(**(code **)(*local_310 + 0x10))();
}
if (local_318 != (IUnknown *)0x0) {
(*local_318->lpVtbl->Release)(local_318);
}
if (local_498 != (longlong *)0x0) {
(**(code **)(*local_498 + 0x10))();
}
return 1;
}
/* WARNING: Subroutine does not return */
FUN_140218220(0x80004003);
}