/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x140001d50 FUN_140001d50 * Pseudocode, not original source. */ uint FUN_140001d50(longlong *param_1,char *param_2) { char cVar1; IUnknown *pIVar2; ULONG UVar3; int iVar4; undefined8 uVar5; undefined8 uVar6; undefined8 uVar7; longlong lVar8; char *pcVar9; int local_res10 [2]; undefined1 local_res18 [8]; undefined1 local_res20 [8]; undefined8 uVar10; int *piVar11; undefined1 *puVar12; undefined1 *puVar13; uVar10 = 0xfffffffffffffffe; if (param_2 != (char *)0x0) { pIVar2 = (IUnknown *)*param_1; if (pIVar2 != (IUnknown *)0x0) { local_res10[0] = 0; UVar3 = (*pIVar2->lpVtbl[0xb].AddRef)(pIVar2); if ((int)UVar3 < 0) { _com_issue_errorex(UVar3,pIVar2,(_GUID *)&DAT_14029e018); } if (local_res10[0] != 0) { return 0; } } lVar8 = -1; pcVar9 = param_2; do { if (lVar8 == 0) break; lVar8 = lVar8 + -1; cVar1 = *pcVar9; pcVar9 = pcVar9 + 1; } while (cVar1 != '\0'); if (lVar8 != -2) { param_1[1] = (longlong)param_2; piVar11 = local_res10; puVar12 = local_res18; puVar13 = local_res20; uVar5 = FUN_140001000(local_res10,&DAT_14029e010); uVar6 = FUN_140001000(local_res18,&DAT_14029e010); uVar7 = FUN_140001000(local_res20,param_1[1]); if (*param_1 == 0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } iVar4 = FUN_140001be0(*param_1,uVar7,uVar6,uVar5,uVar10,piVar11,puVar12,puVar13); if (iVar4 == 0) { pIVar2 = (IUnknown *)*param_1; if (pIVar2 == (IUnknown *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } UVar3 = (*pIVar2->lpVtbl[9].Release)(pIVar2); if ((int)UVar3 < 0) { _com_issue_errorex(UVar3,pIVar2,(_GUID *)&DAT_14029e018); } } return -(uint)(iVar4 != 0) & 0xfffffffe; } } return 0xffffffff; }