949 lines
28 KiB
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);
|
|
}
|
|
|