/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1400db020 FUN_1400db020 * Pseudocode, not original source. */ /* WARNING: Removing unreachable block (ram,0x0001400db4f0) */ /* WARNING: Removing unreachable block (ram,0x0001400db4fa) */ /* WARNING: Removing unreachable block (ram,0x0001400db505) */ /* WARNING: Removing unreachable block (ram,0x0001400db515) */ undefined4 FUN_1400db020(undefined8 *param_1,undefined8 param_2) { IUnknown *pIVar1; longlong *plVar2; IUnknown *This; ULONG UVar3; int iVar4; HRESULT HVar5; undefined4 uVar6; undefined8 *puVar7; undefined8 uVar8; int local_res18 [2]; short local_res20; undefined2 uStackX_22; undefined4 uStackX_24; longlong *local_e8; LPUNKNOWN local_e0; IUnknown *local_d8; longlong *local_d0; undefined4 local_c8; undefined1 local_b8 [24]; undefined1 local_a0 [24]; undefined4 local_88; undefined1 *local_80; undefined4 local_78; undefined8 local_70; undefined1 *local_68; undefined8 local_50; undefined1 local_40 [24]; local_50 = 0xfffffffffffffffe; local_res18[0] = CONCAT31(local_res18[0]._1_3_,1); pIVar1 = *(IUnknown **)*param_1; if (pIVar1 == (IUnknown *)0x0) { LAB_1400db097: iVar4 = FUN_1400a80c0(param_1); if (iVar4 == 0) { FUN_1400a8040(param_1,param_2,0); return 0xffffffff; } } else { local_res20 = 0; uStackX_22 = 0; UVar3 = (*pIVar1->lpVtbl[0xb].AddRef)(pIVar1); if ((int)UVar3 < 0) { _com_issue_errorex(UVar3,pIVar1,(_GUID *)&DAT_14029e018); } if (CONCAT22(uStackX_22,local_res20) == 0) goto LAB_1400db097; } local_d8 = (IUnknown *)0x0; local_d0 = (longlong *)0x0; Ordinal_8(local_b8); Ordinal_8(local_a0); pIVar1 = local_d8; if ((local_d8 != (IUnknown *)0x0) && (local_d8 = (IUnknown *)0x0, pIVar1 != (IUnknown *)0x0)) { (*pIVar1->lpVtbl->Release)(pIVar1); } local_68 = &DAT_14029e010; local_80 = &DAT_14029e010; local_78 = 0; local_70 = 0; if (local_d8 != (IUnknown *)0x0) { (*local_d8->lpVtbl->Release)(local_d8); } HVar5 = CoCreateInstance((IID *)&DAT_14029e088,(LPUNKNOWN)0x0,0x17,(IID *)&DAT_14029dfb0,&local_e0 ); if (-1 < HVar5) { HVar5 = OleRun(local_e0); if (-1 < HVar5) { HVar5 = (*local_e0->lpVtbl->QueryInterface)(local_e0,(IID *)&DAT_14029e078,&local_d8); } (*local_e0->lpVtbl->Release)(local_e0); if (-1 < HVar5) goto LAB_1400db19c; } local_d8 = (IUnknown *)0x0; LAB_1400db19c: local_88 = 2; local_c8 = 1; local_e8 = (longlong *)0x0; iVar4 = FUN_140001990(&local_e8); if ((iVar4 < 0) && (iVar4 != -0x7fffbffe)) { /* WARNING: Subroutine does not return */ FUN_140218220(iVar4); } puVar7 = (undefined8 *)FUN_140001f40(*param_1,&local_res20); FUN_140001700(&local_e8,*puVar7,"dbo.up_move_deletetable_character"); plVar2 = (longlong *)CONCAT44(uStackX_24,CONCAT22(uStackX_22,local_res20)); if (plVar2 != (longlong *)0x0) { (**(code **)(*plVar2 + 0x10))(); } puVar7 = (undefined8 *)FUN_1400016c0(&local_e8,&local_res20); This = local_d8; pIVar1 = (IUnknown *)*puVar7; if (local_d8 != pIVar1) { local_d8 = pIVar1; if (pIVar1 != (IUnknown *)0x0) { (*pIVar1->lpVtbl->AddRef)(pIVar1); } if (This != (IUnknown *)0x0) { (*This->lpVtbl->Release)(This); } } plVar2 = (longlong *)CONCAT44(uStackX_24,CONCAT22(uStackX_22,local_res20)); if (plVar2 != (longlong *)0x0) { (**(code **)(*plVar2 + 0x10))(); } pIVar1 = local_d8; if (local_d8 != (IUnknown *)0x0) { local_res20 = 0; UVar3 = (*local_d8->lpVtbl[6].Release)(local_d8); if ((int)UVar3 < 0) { _com_issue_errorex(UVar3,pIVar1,(_GUID *)&DAT_14029e038); } pIVar1 = local_d8; uVar6 = 0; if (local_res20 != -1) { if (local_d8 == (IUnknown *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } local_res20 = 0; UVar3 = (*local_d8->lpVtbl[6].Release)(local_d8); if ((int)UVar3 < 0) { _com_issue_errorex(UVar3,pIVar1,(_GUID *)&DAT_14029e038); } uVar6 = 0; if (local_res20 != -1) { uVar8 = FUN_140002290(&local_d8,local_40,&DAT_1402aaf6c,local_res18); FUN_140199590(uVar8); uVar6 = FUN_140063af0(uVar8); Ordinal_9(local_40); if ((char)local_res18[0] == '\0') { if (local_e8 != (longlong *)0x0) { (**(code **)(*local_e8 + 0x10))(); } pIVar1 = local_d8; if (local_d8 != (IUnknown *)0x0) { local_res18[0] = 0; UVar3 = (*local_d8->lpVtbl[0x12].AddRef)(local_d8); if ((int)UVar3 < 0) { _com_issue_errorex(UVar3,pIVar1,(_GUID *)&DAT_14029e038); } pIVar1 = local_d8; if (local_res18[0] != 0) { if (local_d8 == (IUnknown *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } UVar3 = (*local_d8->lpVtbl[10].Release)(local_d8); if ((int)UVar3 < 0) { _com_issue_errorex(UVar3,pIVar1,(_GUID *)&DAT_14029e038); } } if (local_d8 != (IUnknown *)0x0) { (*local_d8->lpVtbl->Release)(local_d8); local_d8 = (IUnknown *)0x0; } } local_70 = 0; local_68 = &DAT_14029e010; local_80 = &DAT_14029e010; local_78 = 0; local_88 = 0; Ordinal_9(local_a0); Ordinal_9(local_b8); if (local_d0 != (longlong *)0x0) { (**(code **)(*local_d0 + 0x10))(); } if (local_d8 != (IUnknown *)0x0) { (*local_d8->lpVtbl->Release)(local_d8); } return 0xffffffff; } } } if (local_e8 != (longlong *)0x0) { (**(code **)(*local_e8 + 0x10))(); } pIVar1 = local_d8; if (local_d8 != (IUnknown *)0x0) { UVar3 = (*local_d8->lpVtbl[0x12].AddRef)(local_d8); if ((int)UVar3 < 0) { _com_issue_errorex(UVar3,pIVar1,(_GUID *)&DAT_14029e038); } if (local_d8 != (IUnknown *)0x0) { (*local_d8->lpVtbl->Release)(local_d8); local_d8 = (IUnknown *)0x0; } } local_70 = 0; local_68 = &DAT_14029e010; local_80 = &DAT_14029e010; local_78 = 0; local_88 = 0; Ordinal_9(local_a0); Ordinal_9(local_b8); if (local_d0 != (longlong *)0x0) { (**(code **)(*local_d0 + 0x10))(); } if (local_d8 != (IUnknown *)0x0) { (*local_d8->lpVtbl->Release)(local_d8); } return uVar6; } /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); }