/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1400fb290 FUN_1400fb290 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ undefined4 FUN_1400fb290(undefined8 *param_1,undefined8 *param_2) { IUnknown *pIVar1; undefined6 uVar2; IUnknown *This; undefined1 uVar3; undefined2 uVar4; int iVar5; HRESULT HVar6; ULONG UVar7; undefined4 uVar8; undefined8 *puVar9; wchar_t *pwVar10; longlong lVar11; longlong *plVar12; undefined8 uVar13; undefined8 uVar14; wchar_t *pwVar15; char *riid; char *ppvObject; wchar_t *pwVar16; uint uVar17; wchar_t *pwVar18; undefined1 auStackY_658 [32]; char local_618 [4]; uint local_614; short local_610; short local_60c; undefined8 local_608; undefined4 local_600; undefined2 uStack_5fc; ushort uStack_5fa; longlong *local_5f8; int local_5f0; int local_5ec; undefined4 uVar19; IUnknown *local_5d8; longlong *local_5d0; undefined4 local_5c8; undefined1 local_5b8 [24]; undefined1 local_5a0 [24]; undefined4 local_588; undefined1 *local_580; undefined4 local_578; undefined8 local_570; undefined1 *local_568; undefined8 *local_558; wchar_t *local_550; LPUNKNOWN local_548; longlong *local_540; wchar_t *local_538; undefined8 *local_530; undefined8 local_528; undefined1 local_520; undefined8 local_518; undefined1 local_510; undefined8 local_508; undefined1 local_500; longlong *local_4f8; wchar_t *local_4f0; undefined8 local_4e8; undefined1 local_4e0; undefined8 local_4d8; undefined8 local_4d0; short local_4c8 [12]; undefined1 local_4b0 [8]; undefined1 local_4a8 [32]; undefined4 local_488; undefined4 uStack_484; undefined4 uStack_480; undefined4 uStack_47c; undefined8 local_478; undefined1 local_470 [24]; undefined1 local_458 [24]; undefined1 local_440 [24]; undefined1 local_428 [24]; undefined1 local_410 [24]; longlong local_3f8 [3]; undefined1 local_3e0 [24]; undefined1 local_3c8 [24]; undefined1 local_3b0 [24]; undefined1 local_398 [24]; undefined1 local_380 [24]; undefined1 local_368 [24]; undefined1 local_350 [24]; undefined1 local_338 [24]; undefined1 local_320 [24]; undefined1 local_308 [24]; undefined1 local_2f0 [24]; undefined1 local_2d8 [24]; undefined1 local_2c0 [24]; undefined1 local_2a8 [24]; undefined1 local_290 [24]; undefined1 local_278 [24]; undefined1 local_260 [24]; undefined1 local_248 [24]; undefined1 local_230 [24]; undefined1 local_218 [24]; undefined1 local_200 [24]; undefined1 local_1e8 [24]; undefined1 local_1d0 [24]; undefined1 local_1b8 [24]; undefined1 local_1a0 [24]; undefined1 local_188 [24]; undefined1 local_170 [24]; undefined1 local_158 [24]; undefined1 local_140 [24]; undefined1 local_128 [24]; undefined1 local_110 [24]; undefined1 local_f8 [32]; IID local_d8; undefined8 local_c8; undefined2 local_c0; undefined8 local_be; undefined2 local_b6; undefined8 local_b4; undefined8 local_ac; undefined8 local_a4; undefined4 local_9c; undefined2 local_98; undefined8 local_96; undefined8 local_8e; undefined8 local_86; undefined2 local_7e; undefined1 local_7c; undefined8 local_7b; ulonglong local_73; undefined2 local_6b; undefined8 local_69; undefined8 local_61; undefined8 local_59; undefined8 local_51; undefined8 local_49; ulonglong local_38; local_478 = 0xfffffffffffffffe; local_38 = DAT_1403463c0 ^ (ulonglong)auStackY_658; pwVar16 = (wchar_t *)0x0; local_5f8 = (longlong *)0x0; local_558 = param_1; local_530 = param_2; iVar5 = FUN_140001990(&local_5f8); if ((iVar5 < 0) && (iVar5 != -0x7fffbffe)) { /* WARNING: Subroutine does not return */ FUN_140218220(iVar5); } local_5d8 = (IUnknown *)0x0; local_5d0 = (longlong *)0x0; Ordinal_8(local_5b8); Ordinal_8(local_5a0); pIVar1 = local_5d8; if ((local_5d8 != (IUnknown *)0x0) && (local_5d8 = (IUnknown *)0x0, pIVar1 != (IUnknown *)0x0)) { (*pIVar1->lpVtbl->Release)(pIVar1); } local_568 = &DAT_14029e010; local_580 = &DAT_14029e010; local_578 = 0; local_570 = 0; if (local_5d8 != (IUnknown *)0x0) { (*local_5d8->lpVtbl->Release)(local_5d8); } HVar6 = CoCreateInstance((IID *)&DAT_14029e088,(LPUNKNOWN)0x0,0x17,(IID *)&DAT_14029dfb0, &local_548); if (HVar6 < 0) { LAB_1400fb404: local_5d8 = (IUnknown *)0x0; } else { HVar6 = OleRun(local_548); if (-1 < HVar6) { HVar6 = (*local_548->lpVtbl->QueryInterface)(local_548,(IID *)&DAT_14029e078,&local_5d8); } (*local_548->lpVtbl->Release)(local_548); if (HVar6 < 0) goto LAB_1400fb404; } local_588 = 2; uVar19 = 1; local_5c8 = 1; local_618[0] = '\x01'; local_600 = *(undefined4 *)(param_2 + 1); local_608._4_4_ = (undefined4)((ulonglong)*param_2 >> 0x20); local_608._0_4_ = CONCAT22(0x2358,(short)*param_2); pwVar18 = (wchar_t *)0x0; uStack_5fc = 0xb2; uStack_5fa = 0; uVar17 = 0x10; local_614 = 0x10; pIVar1 = *(IUnknown **)*param_1; if (pIVar1 != (IUnknown *)0x0) { local_5ec = 0; UVar7 = (*pIVar1->lpVtbl[0xb].AddRef)(pIVar1); if ((int)UVar7 < 0) { _com_issue_errorex(UVar7,pIVar1,(_GUID *)&DAT_14029e018); } if (local_5ec != 0) goto LAB_1400fb5eb; } iVar5 = FUN_1400a80c0(param_1); if (iVar5 == 0) { FUN_1400a8040(param_1,param_2,0); pIVar1 = local_5d8; if (local_5d8 != (IUnknown *)0x0) { local_614 = 0; UVar7 = (*local_5d8->lpVtbl[0x12].AddRef)(local_5d8); if ((int)UVar7 < 0) { _com_issue_errorex(UVar7,pIVar1,(_GUID *)&DAT_14029e038); } pIVar1 = local_5d8; if (local_614 != 0) { if (local_5d8 == (IUnknown *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } UVar7 = (*local_5d8->lpVtbl[10].Release)(local_5d8); if ((int)UVar7 < 0) { _com_issue_errorex(UVar7,pIVar1,(_GUID *)&DAT_14029e038); } } if (local_5d8 != (IUnknown *)0x0) { (*local_5d8->lpVtbl->Release)(local_5d8); local_5d8 = (IUnknown *)0x0; } } local_570 = 0; local_568 = &DAT_14029e010; local_580 = &DAT_14029e010; local_578 = 0; local_588 = 0; Ordinal_9(local_5a0); Ordinal_9(local_5b8); if (local_5d0 != (longlong *)0x0) { (**(code **)(*local_5d0 + 0x10))(); } if (local_5d8 != (IUnknown *)0x0) { (*local_5d8->lpVtbl->Release)(local_5d8); } if (local_5f8 != (longlong *)0x0) { (**(code **)(*local_5f8 + 0x10))(); } return 0; } LAB_1400fb5eb: puVar9 = (undefined8 *)FUN_140001f40(*param_1,&local_4f8); FUN_140001700(&local_5f8,*puVar9,"dbo.up_read_item_inventory"); if (local_4f8 != (longlong *)0x0) { (**(code **)(*local_4f8 + 0x10))(); } local_540 = local_3f8; local_488 = *(undefined4 *)((longlong)param_2 + 0xe); uStack_484 = *(undefined4 *)((longlong)param_2 + 0x12); uStack_480 = *(undefined4 *)((longlong)param_2 + 0x16); uStack_47c = *(undefined4 *)((longlong)param_2 + 0x1a); FUN_140063820(local_3f8,&local_488); pwVar10 = operator_new(0x18); local_4f0 = pwVar16; local_538 = pwVar10; if (pwVar10 != (wchar_t *)0x0) { pwVar10[4] = L'\0'; pwVar10[5] = L'\0'; pwVar10[6] = L'\0'; pwVar10[7] = L'\0'; pwVar10[8] = L'\x01'; pwVar10[9] = L'\0'; lVar11 = FUN_1402182d0("character_id"); *(longlong *)pwVar10 = lVar11; local_4f0 = pwVar10; } if (local_4f0 == (wchar_t *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x8007000e); } plVar12 = (longlong *)FUN_140001870(&local_5f8,local_4b0,&local_4f0,0xca); local_540 = plVar12; if (local_5f8 == (longlong *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } puVar9 = (undefined8 *)FUN_140001650(local_5f8,&local_538); pIVar1 = (IUnknown *)*puVar9; if (pIVar1 != (IUnknown *)0x0) { UVar7 = (*pIVar1->lpVtbl[3].AddRef)(pIVar1); if ((int)UVar7 < 0) { _com_issue_errorex(UVar7,pIVar1,(_GUID *)&DAT_14029dfc0); } if (local_538 != (wchar_t *)0x0) { (**(code **)(*(longlong *)local_538 + 0x10))(); } if ((longlong *)*plVar12 != (longlong *)0x0) { (**(code **)(*(longlong *)*plVar12 + 0x10))(); } puVar9 = (undefined8 *)FUN_1400016c0(&local_5f8,&local_540); This = local_5d8; pIVar1 = (IUnknown *)*puVar9; if (local_5d8 != pIVar1) { local_5d8 = pIVar1; if (pIVar1 != (IUnknown *)0x0) { (*pIVar1->lpVtbl->AddRef)(pIVar1); } if (This != (IUnknown *)0x0) { (*This->lpVtbl->Release)(This); } } if (local_540 != (longlong *)0x0) { (**(code **)(*local_540 + 0x10))(); } pIVar1 = local_5d8; if (local_5d8 == (IUnknown *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } local_60c = 0; UVar7 = (*local_5d8->lpVtbl[6].Release)(local_5d8); if ((int)UVar7 < 0) { _com_issue_errorex(UVar7,pIVar1,(_GUID *)&DAT_14029e038); } if (local_60c != -1) { while( true ) { pIVar1 = local_5d8; if (local_5d8 == (IUnknown *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } local_610 = 0; UVar7 = (*local_5d8->lpVtbl[6].Release)(local_5d8); if ((int)UVar7 < 0) { _com_issue_errorex(UVar7,pIVar1,(_GUID *)&DAT_14029e038); } if (local_610 == -1) break; local_d8.Data1 = 0; local_d8.Data2 = 0; local_d8.Data3 = 0; local_d8.Data4[0] = '\0'; local_d8.Data4[1] = '\0'; local_d8.Data4[2] = '\0'; local_d8.Data4[3] = '\0'; local_d8.Data4[4] = '\0'; local_d8.Data4[5] = '\0'; local_d8.Data4[6] = '\0'; local_d8.Data4[7] = '\0'; local_c8 = 0; local_c0 = 0; local_be = 0; local_b6 = 0; local_b4 = 0; local_ac = 0; local_a4 = 0; local_9c = 0; local_98 = 0; local_96 = 0; local_8e = 0; local_86 = 0; local_7e = 0; local_7b = 0; local_6b = 0; local_69 = 0; local_61 = 0; local_59 = 0; local_51 = 0; local_49 = 0; local_73 = 0; local_7c = local_610 == -1; uVar13 = FUN_140002290(&local_5d8,local_110,"item_uid",local_618); FUN_140063b70(uVar13,local_4a8); Ordinal_9(local_110); uVar13 = FUN_140002290(&local_5d8,local_1b8,"page_index",local_618); FUN_140199590(uVar13); uVar4 = FUN_140063af0(uVar13); local_c8 = CONCAT62(local_c8._2_6_,uVar4); Ordinal_9(local_1b8); uVar13 = FUN_140002290(&local_5d8,local_428,"slot_index",local_618); FUN_140199590(uVar13); uVar4 = FUN_140063af0(uVar13); local_c8._0_4_ = CONCAT22(uVar4,(undefined2)local_c8); Ordinal_9(local_428); uVar13 = FUN_140002290(&local_5d8,local_278,&DAT_1402a522c,local_618); FUN_140199590(uVar13); uVar8 = FUN_140063af0(uVar13); local_c8 = CONCAT44(uVar8,(undefined4)local_c8); Ordinal_9(local_278); uVar13 = FUN_140002290(&local_5d8,local_470,"use_cnt",local_618); FUN_140199590(uVar13); local_c0 = FUN_140063af0(uVar13); Ordinal_9(local_470); uVar13 = FUN_140002290(&local_5d8,local_f8,"remain_time",local_618); FUN_140199590(uVar13); uVar8 = FUN_140063af0(uVar13); local_be = CONCAT44(local_be._4_4_,uVar8); Ordinal_9(local_f8); uVar13 = FUN_140002290(&local_5d8,local_3c8,"durability",local_618); FUN_140199590(uVar13); uVar8 = FUN_140063af0(uVar13); local_be = CONCAT44(uVar8,(undefined4)local_be); Ordinal_9(local_3c8); uVar13 = FUN_140002290(&local_5d8,local_248,"enhance_level",local_618); FUN_140199590(uVar13); local_b6 = FUN_140063af0(uVar13); Ordinal_9(local_248); uVar13 = FUN_140002290(&local_5d8,local_398,"option_1_code",local_618); FUN_140199590(uVar13); uVar8 = FUN_140063af0(uVar13); local_b4 = CONCAT44(local_b4._4_4_,uVar8); Ordinal_9(local_398); uVar13 = FUN_140002290(&local_5d8,local_188,"option_1_value",local_618); FUN_140199590(uVar13); uVar8 = FUN_140063af0(uVar13); local_b4 = CONCAT44(uVar8,(undefined4)local_b4); Ordinal_9(local_188); uVar13 = FUN_140002290(&local_5d8,local_368,"option_2_code",local_618); FUN_140199590(uVar13); uVar8 = FUN_140063af0(uVar13); local_ac = CONCAT44(local_ac._4_4_,uVar8); Ordinal_9(local_368); uVar13 = FUN_140002290(&local_5d8,local_218,"option_2_value",local_618); FUN_140199590(uVar13); uVar8 = FUN_140063af0(uVar13); local_ac = CONCAT44(uVar8,(undefined4)local_ac); Ordinal_9(local_218); uVar13 = FUN_140002290(&local_5d8,local_338,"option_3_code",local_618); FUN_140199590(uVar13); uVar8 = FUN_140063af0(uVar13); local_a4 = CONCAT44(local_a4._4_4_,uVar8); Ordinal_9(local_338); uVar13 = FUN_140002290(&local_5d8,local_128,"option_3_value",local_618); FUN_140199590(uVar13); uVar8 = FUN_140063af0(uVar13); local_a4 = CONCAT44(uVar8,(undefined4)local_a4); Ordinal_9(local_128); uVar13 = FUN_140002290(&local_5d8,local_308,"option_group",local_618); FUN_140199590(uVar13); local_9c = FUN_140063af0(uVar13); Ordinal_9(local_308); uVar13 = FUN_140002290(&local_5d8,local_1e8,"ReconNum",local_618); FUN_140199590(uVar13); uVar4 = FUN_140063af0(uVar13); local_7b = CONCAT62(local_7b._2_6_,uVar4); Ordinal_9(local_1e8); uVar13 = FUN_140002290(&local_5d8,local_2d8,"ReconState",local_618); FUN_140199590(uVar13); uVar4 = FUN_140063af0(uVar13); local_7b._0_4_ = CONCAT22(uVar4,(undefined2)local_7b); Ordinal_9(local_2d8); uVar13 = FUN_140002290(&local_5d8,local_158,"socket_count",local_618); FUN_140199590(uVar13); local_98 = FUN_140063af0(uVar13); Ordinal_9(local_158); uVar13 = FUN_140002290(&local_5d8,local_2a8,"socket_1_code",local_618); FUN_140199590(uVar13); uVar8 = FUN_140063af0(uVar13); local_96 = CONCAT44(local_96._4_4_,uVar8); Ordinal_9(local_2a8); uVar13 = FUN_140002290(&local_5d8,local_458,"socket_1_value",local_618); FUN_140199590(uVar13); uVar8 = FUN_140063af0(uVar13); local_96 = CONCAT44(uVar8,(undefined4)local_96); Ordinal_9(local_458); uVar13 = FUN_140002290(&local_5d8,local_440,"socket_2_code",local_618); FUN_140199590(uVar13); uVar8 = FUN_140063af0(uVar13); local_8e = CONCAT44(local_8e._4_4_,uVar8); Ordinal_9(local_440); uVar13 = FUN_140002290(&local_5d8,local_410,"socket_2_value",local_618); FUN_140199590(uVar13); uVar8 = FUN_140063af0(uVar13); local_8e = CONCAT44(uVar8,(undefined4)local_8e); Ordinal_9(local_410); uVar13 = FUN_140002290(&local_5d8,local_3e0,"socket_3_code",local_618); FUN_140199590(uVar13); uVar8 = FUN_140063af0(uVar13); local_86 = CONCAT44(local_86._4_4_,uVar8); Ordinal_9(local_3e0); uVar13 = FUN_140002290(&local_5d8,local_3b0,"socket_3_value",local_618); FUN_140199590(uVar13); uVar8 = FUN_140063af0(uVar13); local_86 = CONCAT44(uVar8,(undefined4)local_86); Ordinal_9(local_3b0); uVar13 = FUN_140002290(&local_5d8,local_380,"socket_1_color",local_618); FUN_140199590(uVar13); uVar3 = FUN_140063a70(uVar13); local_7e = CONCAT11(local_7e._1_1_,uVar3); Ordinal_9(local_380); uVar13 = FUN_140002290(&local_5d8,local_350,"socket_2_color",local_618); FUN_140199590(uVar13); uVar3 = FUN_140063a70(uVar13); local_7e = CONCAT11(uVar3,(undefined1)local_7e); Ordinal_9(local_350); uVar13 = FUN_140002290(&local_5d8,local_320,"socket_3_color",local_618); FUN_140199590(uVar13); local_7c = FUN_140063a70(uVar13); Ordinal_9(local_320); uVar13 = FUN_140002290(&local_5d8,local_2f0,"lock_pwd",local_618); FUN_140063de0(uVar13,&local_550); FUN_14016d8c0(); pwVar10 = (wchar_t *)PTR_DAT_1403440a0; if (PTR_DAT_1403440a0 == (undefined *)0x0) { pwVar10 = pwVar16; } if (local_550 != (wchar_t *)PTR_DAT_1403440a0) { uVar13 = FUN_14016d8c0(); local_520 = 0; local_528 = uVar13; FUN_14016db50(uVar13); local_520 = 1; if (((pwVar10 != (wchar_t *)0x0) && (pwVar10 != (wchar_t *)PTR_DAT_1403440a0)) && (pwVar10 + -4 != (wchar_t *)0x0)) { uVar14 = FUN_14016d8c0(); local_500 = 0; local_508 = uVar14; FUN_14016db50(uVar14); local_500 = 1; pwVar15 = pwVar10 + -2; *(int *)pwVar15 = *(int *)pwVar15 + -1; if (*(int *)pwVar15 == 0) { FUN_14016d970(pwVar10 + -4); } FUN_14016dbe0(uVar14); local_500 = 0; } pwVar10 = local_550; if (((local_550 != (wchar_t *)PTR_DAT_1403440a0) && (local_550 != (wchar_t *)0x0)) && (local_550 != (wchar_t *)0x8)) { *(int *)(local_550 + -2) = *(int *)(local_550 + -2) + 1; } FUN_14016dbe0(uVar13); local_520 = 0; } pwVar15 = pwVar10; if (pwVar10 == (wchar_t *)0x0) { pwVar15 = (wchar_t *)PTR_DAT_1403440a0; } wcsncpy((wchar_t *)&local_73,pwVar15,3); if (((pwVar10 != (wchar_t *)0x0) && (pwVar10 != (wchar_t *)PTR_DAT_1403440a0)) && (pwVar10 + -4 != (wchar_t *)0x0)) { uVar13 = FUN_14016d8c0(); local_510 = 0; local_518 = uVar13; FUN_14016db50(uVar13); local_510 = 1; pwVar15 = pwVar10 + -2; *(int *)pwVar15 = *(int *)pwVar15 + -1; if (*(int *)pwVar15 == 0) { FUN_14016d970(pwVar10 + -4); } FUN_14016dbe0(uVar13); local_510 = 0; } pwVar10 = local_550; if (((local_550 != (wchar_t *)0x0) && (local_550 != (wchar_t *)PTR_DAT_1403440a0)) && (pwVar15 = local_550 + -4, pwVar15 != (wchar_t *)0x0)) { uVar13 = FUN_14016d8c0(); local_4e0 = 0; local_4e8 = uVar13; FUN_14016db50(uVar13); local_4e0 = 1; pwVar10 = pwVar10 + -2; *(int *)pwVar10 = *(int *)pwVar10 + -1; if (*(int *)pwVar10 == 0) { FUN_14016d970(pwVar15); } FUN_14016dbe0(uVar13); local_4e0 = 0; } local_550 = (wchar_t *)PTR_DAT_1403440a0; Ordinal_9(local_2f0); local_73 = local_73 & 0xffffffffffff; uVar13 = FUN_140002290(&local_5d8,local_2c0,"expire_time",local_618); FUN_140199590(uVar13); uVar8 = FUN_140063af0(uVar13); local_7b = CONCAT44(uVar8,(undefined4)local_7b); Ordinal_9(local_2c0); uVar13 = FUN_140002290(&local_5d8,local_290,"activity_value",local_618); FUN_140199590(uVar13); local_6b = FUN_140063af0(uVar13); Ordinal_9(local_290); uVar13 = FUN_140002290(&local_5d8,local_260,"deferment_time",local_618); FUN_140199590(uVar13); uVar8 = FUN_140063af0(uVar13); local_59 = CONCAT44(local_59._4_4_,uVar8); Ordinal_9(local_260); uVar13 = FUN_140002290(&local_5d8,local_230,&DAT_1402a5440,local_618); FUN_140199590(uVar13); uVar4 = FUN_140063af0(uVar13); local_59._0_6_ = CONCAT24(uVar4,(undefined4)local_59); Ordinal_9(local_230); uVar13 = FUN_140002290(&local_5d8,local_200,"acquireroute",local_618); FUN_140199590(uVar13); uVar4 = FUN_140063af0(uVar13); local_59 = CONCAT26(uVar4,(undefined6)local_59); Ordinal_9(local_200); uVar13 = FUN_140002290(&local_5d8,local_1d0,"physical",local_618); FUN_140199590(uVar13); uVar8 = FUN_140063af0(uVar13); local_51 = CONCAT44(local_51._4_4_,uVar8); Ordinal_9(local_1d0); uVar13 = FUN_140002290(&local_5d8,local_1a0,"magical",local_618); FUN_140199590(uVar13); uVar8 = FUN_140063af0(uVar13); local_51 = CONCAT44(uVar8,(undefined4)local_51); Ordinal_9(local_1a0); uVar13 = FUN_140002290(&local_5d8,local_170,"durabilitymax",local_618); FUN_140199590(uVar13); uVar8 = FUN_140063af0(uVar13); local_49 = CONCAT44(local_49._4_4_,uVar8); Ordinal_9(local_170); uVar13 = FUN_140002290(&local_5d8,local_140,"weight",local_618); FUN_140199590(uVar13); uVar8 = FUN_140063af0(uVar13); local_49 = CONCAT44(uVar8,(undefined4)local_49); Ordinal_9(local_140); FUN_140002290(&local_5d8,local_4c8,"link_id",local_618); if (local_4c8[0] == 1) { local_69 = 0; local_61 = 0; } else { FUN_140063b70(local_4c8,&local_4d8); local_69 = local_4d8; local_61 = local_4d0; } riid = (char *)&local_d8; ppvObject = (char *)0x97; memcpy((void *)((longlong)(int)uVar17 + 0x130 + (longlong)param_1),riid,0x97); local_614 = uVar17 + 0x97; uStack_5fa = (short)pwVar18 + 1; pwVar18 = (wchar_t *)(ulonglong)uStack_5fa; if (50000 < local_614) { uVar2 = local_608._2_6_; local_608 = CONCAT62(local_608._2_6_,(short)local_614); uVar13 = local_608; riid = (char *)(param_1 + 0x26); local_608._4_2_ = SUB62(uVar2,2); local_608._6_2_ = SUB62(uVar2,4); ((IID *)riid)->Data1 = (undefined4)local_608; ((IID *)riid)->Data2 = local_608._4_2_; ((IID *)riid)->Data3 = local_608._6_2_; param_1[0x27] = CONCAT26(uStack_5fa,CONCAT24(uStack_5fc,local_600)); local_608 = uVar13; 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]); } local_614 = 0x10; uStack_5fa = 0; pwVar18 = pwVar16; } pIVar1 = local_5d8; uVar17 = local_614; if (local_5d8 == (IUnknown *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } HVar6 = (*local_5d8->lpVtbl[0xc].QueryInterface)(local_5d8,(IID *)riid,(void **)ppvObject); if (HVar6 < 0) { _com_issue_errorex(HVar6,pIVar1,(_GUID *)&DAT_14029e038); } Ordinal_9(local_4c8); } if (local_618[0] == '\0') { uStack_5fc = 0xb3; uVar19 = 0; } } local_608 = CONCAT62(local_608._2_6_,(short)uVar17); param_1[0x26] = local_608; param_1[0x27] = CONCAT26(uStack_5fa,CONCAT24(uStack_5fc,local_600)); iVar5 = FUN_1400a7630(*(undefined8 *)(param_1[0x22] + 0xf0)); if (iVar5 == 0) { FUN_1400a6d80(param_1[0x23],"DBResultQueue_Error.Log","DB Result Queue push error"); } pIVar1 = local_5d8; if (local_5d8 != (IUnknown *)0x0) { local_5f0 = 0; UVar7 = (*local_5d8->lpVtbl[0x12].AddRef)(local_5d8); if ((int)UVar7 < 0) { _com_issue_errorex(UVar7,pIVar1,(_GUID *)&DAT_14029e038); } pIVar1 = local_5d8; if (local_5f0 != 0) { if (local_5d8 == (IUnknown *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } UVar7 = (*local_5d8->lpVtbl[10].Release)(local_5d8); if ((int)UVar7 < 0) { _com_issue_errorex(UVar7,pIVar1,(_GUID *)&DAT_14029e038); } } if (local_5d8 != (IUnknown *)0x0) { (*local_5d8->lpVtbl->Release)(local_5d8); local_5d8 = (IUnknown *)0x0; } } local_570 = 0; local_568 = &DAT_14029e010; local_580 = &DAT_14029e010; local_578 = 0; local_588 = 0; Ordinal_9(local_5a0); Ordinal_9(local_5b8); if (local_5d0 != (longlong *)0x0) { (**(code **)(*local_5d0 + 0x10))(); } if (local_5d8 != (IUnknown *)0x0) { (*local_5d8->lpVtbl->Release)(local_5d8); } if (local_5f8 != (longlong *)0x0) { (**(code **)(*local_5f8 + 0x10))(); } return uVar19; } /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); }