/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1400fc920 FUN_1400fc920 * Pseudocode, not original source. */ /* WARNING: Removing unreachable block (ram,0x0001400fcc42) */ /* WARNING: Removing unreachable block (ram,0x0001400fcc4b) */ /* WARNING: Removing unreachable block (ram,0x0001400fcc56) */ /* WARNING: Removing unreachable block (ram,0x0001400fcc66) */ /* WARNING: Removing unreachable block (ram,0x0001400fcb0a) */ /* WARNING: Removing unreachable block (ram,0x0001400fcb13) */ /* WARNING: Removing unreachable block (ram,0x0001400fcb1e) */ /* WARNING: Removing unreachable block (ram,0x0001400fcb2e) */ undefined8 FUN_1400fc920(undefined8 *param_1,undefined8 *param_2) { undefined4 uVar1; IUnknown *pIVar2; int iVar3; HRESULT HVar4; ULONG UVar5; undefined8 uVar6; longlong *local_e8; LPUNKNOWN local_e0; undefined8 local_d8; undefined2 local_cc; IUnknown *local_c8; longlong *local_c0; undefined4 local_b8; undefined1 local_a8 [24]; undefined1 local_90 [24]; undefined4 local_78; undefined1 *local_70; undefined4 local_68; undefined8 local_60; undefined1 *local_58; undefined8 local_48; local_48 = 0xfffffffffffffffe; local_e8 = (longlong *)0x0; iVar3 = FUN_140001990(&local_e8); if ((iVar3 < 0) && (iVar3 != -0x7fffbffe)) { /* WARNING: Subroutine does not return */ FUN_140218220(iVar3); } local_c8 = (IUnknown *)0x0; local_c0 = (longlong *)0x0; Ordinal_8(local_a8); Ordinal_8(local_90); pIVar2 = local_c8; if ((local_c8 != (IUnknown *)0x0) && (local_c8 = (IUnknown *)0x0, pIVar2 != (IUnknown *)0x0)) { (*pIVar2->lpVtbl->Release)(pIVar2); } local_58 = &DAT_14029e010; local_70 = &DAT_14029e010; local_68 = 0; local_60 = 0; if (local_c8 != (IUnknown *)0x0) { (*local_c8->lpVtbl->Release)(local_c8); } HVar4 = CoCreateInstance((IID *)&DAT_14029e088,(LPUNKNOWN)0x0,0x17,(IID *)&DAT_14029dfb0,&local_e0 ); if (-1 < HVar4) { HVar4 = OleRun(local_e0); if (-1 < HVar4) { HVar4 = (*local_e0->lpVtbl->QueryInterface)(local_e0,(IID *)&DAT_14029e078,&local_c8); } (*local_e0->lpVtbl->Release)(local_e0); if (-1 < HVar4) goto LAB_1400fca3b; } local_c8 = (IUnknown *)0x0; LAB_1400fca3b: local_78 = 2; local_b8 = 1; uVar1 = *(undefined4 *)(param_2 + 1); local_cc = *(undefined2 *)((longlong)param_2 + 0xc); local_d8._4_4_ = (undefined4)((ulonglong)*param_2 >> 0x20); local_d8._0_4_ = CONCAT22(0x244b,(short)*param_2); pIVar2 = *(IUnknown **)*param_1; if ((pIVar2 != (IUnknown *)0x0) && (UVar5 = (*pIVar2->lpVtbl[0xb].AddRef)(pIVar2), (int)UVar5 < 0) ) { _com_issue_errorex(UVar5,pIVar2,(_GUID *)&DAT_14029e018); } iVar3 = FUN_1400a80c0(param_1); if (iVar3 == 0) { FUN_1400a8040(param_1,param_2,0); pIVar2 = local_c8; if (local_c8 != (IUnknown *)0x0) { UVar5 = (*local_c8->lpVtbl[0x12].AddRef)(local_c8); if ((int)UVar5 < 0) { _com_issue_errorex(UVar5,pIVar2,(_GUID *)&DAT_14029e038); } if (local_c8 != (IUnknown *)0x0) { (*local_c8->lpVtbl->Release)(local_c8); local_c8 = (IUnknown *)0x0; } } local_60 = 0; local_58 = &DAT_14029e010; local_70 = &DAT_14029e010; local_68 = 0; local_78 = 0; Ordinal_9(local_90); Ordinal_9(local_a8); if (local_c0 != (longlong *)0x0) { (**(code **)(*local_c0 + 0x10))(); } if (local_c8 != (IUnknown *)0x0) { (*local_c8->lpVtbl->Release)(local_c8); } if (local_e8 != (longlong *)0x0) { (**(code **)(*local_e8 + 0x10))(); } uVar6 = 0; } else { local_d8 = CONCAT62(local_d8._2_6_,0xe); param_1[0x26] = local_d8; *(undefined4 *)(param_1 + 0x27) = uVar1; *(undefined2 *)((longlong)param_1 + 0x13c) = 0xb9; iVar3 = FUN_1400a7630(*(undefined8 *)(param_1[0x22] + 0xf0)); if (iVar3 == 0) { FUN_1400a6d80(param_1[0x23],"DBResultQueue_Error.Log","DB Result Queue push error"); } pIVar2 = local_c8; if (local_c8 != (IUnknown *)0x0) { UVar5 = (*local_c8->lpVtbl[0x12].AddRef)(local_c8); if ((int)UVar5 < 0) { _com_issue_errorex(UVar5,pIVar2,(_GUID *)&DAT_14029e038); } if (local_c8 != (IUnknown *)0x0) { (*local_c8->lpVtbl->Release)(local_c8); local_c8 = (IUnknown *)0x0; } } local_60 = 0; local_58 = &DAT_14029e010; local_70 = &DAT_14029e010; local_68 = 0; local_78 = 0; Ordinal_9(local_90); Ordinal_9(local_a8); if (local_c0 != (longlong *)0x0) { (**(code **)(*local_c0 + 0x10))(); } if (local_c8 != (IUnknown *)0x0) { (*local_c8->lpVtbl->Release)(local_c8); } if (local_e8 != (longlong *)0x0) { (**(code **)(*local_e8 + 0x10))(); } uVar6 = 1; } return uVar6; }