/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1400a40b0 FUN_1400a40b0 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ bool FUN_1400a40b0(undefined8 *param_1,undefined8 param_2) { longlong *plVar1; IUnknown *pIVar2; undefined8 *puVar3; undefined8 *puVar4; IUnknown *This; int iVar5; HRESULT HVar6; ULONG UVar7; int iVar8; int iVar9; int iVar10; longlong lVar11; undefined8 *puVar12; undefined8 uVar13; IID *riid; longlong *plVar14; undefined8 *puVar15; longlong lVar16; char *ppvObject; ulonglong *puVar17; ulonglong *puVar18; ulonglong uVar19; bool bVar20; undefined1 auStackY_248 [32]; char local_218 [4]; uint local_214; short local_210; int local_208; undefined4 uStack_204; longlong *local_200; int local_1f8; undefined4 local_1f4; int local_1f0; undefined4 local_1ec; int local_1e8; undefined4 local_1e4; IUnknown *local_1d8; longlong *local_1d0; undefined4 local_1c8; undefined1 local_1b8 [24]; undefined1 local_1a0 [24]; undefined4 local_188; undefined1 *local_180; undefined4 local_178; undefined8 local_170; undefined1 *local_168; undefined8 *local_158; IID local_150; IID local_138; undefined8 local_120; IID local_108; IID local_f0; IID local_d8 [2]; longlong *local_b8; ulonglong local_b0; undefined1 local_a0; longlong local_98; undefined4 local_90; undefined8 local_88; undefined8 local_80; undefined8 *local_78; ulonglong local_70; undefined1 local_60; longlong local_58; undefined4 local_50; undefined8 local_48; undefined8 local_40; ulonglong local_38; local_120 = 0xfffffffffffffffe; local_38 = DAT_1403463c0 ^ (ulonglong)auStackY_248; uVar19 = 0; local_200 = (longlong *)0x0; local_158 = param_1; iVar5 = FUN_140001990(&local_200); if ((iVar5 < 0) && (iVar5 != -0x7fffbffe)) { /* WARNING: Subroutine does not return */ FUN_140218220(iVar5); } local_1d8 = (IUnknown *)0x0; local_1d0 = (longlong *)0x0; Ordinal_8(local_1b8); Ordinal_8(local_1a0); pIVar2 = local_1d8; if ((local_1d8 != (IUnknown *)0x0) && (local_1d8 = (IUnknown *)0x0, pIVar2 != (IUnknown *)0x0)) { (*pIVar2->lpVtbl->Release)(pIVar2); } local_168 = &DAT_14029e010; local_180 = &DAT_14029e010; local_178 = 0; local_170 = 0; if (local_1d8 != (IUnknown *)0x0) { (*local_1d8->lpVtbl->Release)(local_1d8); } HVar6 = CoCreateInstance((IID *)&DAT_14029e088,(LPUNKNOWN)0x0,0x17,(IID *)&DAT_14029dfb0, (LPVOID *)&local_208); if (HVar6 < 0) { LAB_1400a41fe: local_1d8 = (IUnknown *)0x0; } else { HVar6 = OleRun((LPUNKNOWN)CONCAT44(uStack_204,local_208)); if (-1 < HVar6) { HVar6 = (*(code *)**(undefined8 **)CONCAT44(uStack_204,local_208)) ((undefined8 *)CONCAT44(uStack_204,local_208),&DAT_14029e078,&local_1d8); } (**(code **)(*(longlong *)CONCAT44(uStack_204,local_208) + 0x10))(); if (HVar6 < 0) goto LAB_1400a41fe; } local_188 = 2; bVar20 = true; local_1c8 = 1; local_218[0] = '\x01'; pIVar2 = *(IUnknown **)*param_1; if (pIVar2 != (IUnknown *)0x0) { local_214 = 0; UVar7 = (*pIVar2->lpVtbl[0xb].AddRef)(pIVar2); if ((int)UVar7 < 0) { _com_issue_errorex(UVar7,pIVar2,(_GUID *)&DAT_14029e018); } if (local_214 != 0) goto LAB_1400a4395; } iVar5 = FUN_1400a80c0(param_1); if (iVar5 == 0) { FUN_1400a8040(param_1,param_2,0); pIVar2 = local_1d8; if (local_1d8 != (IUnknown *)0x0) { local_214 = 0; UVar7 = (*local_1d8->lpVtbl[0x12].AddRef)(local_1d8); if ((int)UVar7 < 0) { _com_issue_errorex(UVar7,pIVar2,(_GUID *)&DAT_14029e038); } pIVar2 = local_1d8; if (local_214 != 0) { if (local_1d8 == (IUnknown *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } UVar7 = (*local_1d8->lpVtbl[10].Release)(local_1d8); if ((int)UVar7 < 0) { _com_issue_errorex(UVar7,pIVar2,(_GUID *)&DAT_14029e038); } } if (local_1d8 != (IUnknown *)0x0) { (*local_1d8->lpVtbl->Release)(local_1d8); local_1d8 = (IUnknown *)0x0; } } local_170 = 0; local_168 = &DAT_14029e010; local_180 = &DAT_14029e010; local_178 = 0; local_188 = 0; Ordinal_9(local_1a0); Ordinal_9(local_1b8); if (local_1d0 != (longlong *)0x0) { (**(code **)(*local_1d0 + 0x10))(); } if (local_1d8 != (IUnknown *)0x0) { (*local_1d8->lpVtbl->Release)(local_1d8); } if (local_200 != (longlong *)0x0) { (**(code **)(*local_200 + 0x10))(); } return false; } LAB_1400a4395: puVar18 = &DAT_1402a81a0; puVar17 = &DAT_1402a81a0; lVar16 = 0x28; do { lVar11 = lVar16 / 2; if (puVar17[lVar11] < 0xb) { puVar17 = puVar17 + lVar11 + 1; lVar11 = lVar16 + (-1 - lVar11); } lVar16 = lVar11; } while (0 < lVar11); if (puVar17 == (ulonglong *)"dbo.up_read_realtimeevent") { puVar17 = (ulonglong *)&UNK_1402a82d8; } local_70 = *puVar17; local_78 = (undefined8 *)0x0; local_60 = 0; local_58 = 0; local_50 = 0x3f800000; local_48 = 0; local_40 = 0; lVar16 = 0x28; do { lVar11 = lVar16 / 2; if (puVar18[lVar11] < 0xb) { puVar18 = puVar18 + lVar11 + 1; lVar11 = lVar16 + (-1 - lVar11); } lVar16 = lVar11; } while (0 < lVar11); if (puVar18 == (ulonglong *)"dbo.up_read_realtimeevent") { puVar18 = (ulonglong *)&UNK_1402a82d8; } local_b0 = *puVar18; local_b8 = (longlong *)0x0; local_a0 = 0; local_98 = 0; local_90 = 0x3f800000; local_88 = 0; local_80 = 0; local_214 = 0; puVar12 = (undefined8 *)FUN_140001f40(*param_1,&local_208); FUN_140001700(&local_200,*puVar12,"dbo.up_read_cash_product_list_statistics"); if ((longlong *)CONCAT44(uStack_204,local_208) != (longlong *)0x0) { (**(code **)(*(longlong *)CONCAT44(uStack_204,local_208) + 0x10))(); } puVar12 = (undefined8 *)FUN_1400016c0(&local_200,&local_208); This = local_1d8; pIVar2 = (IUnknown *)*puVar12; if (local_1d8 != pIVar2) { local_1d8 = pIVar2; if (pIVar2 != (IUnknown *)0x0) { (*pIVar2->lpVtbl->AddRef)(pIVar2); } if (This != (IUnknown *)0x0) { (*This->lpVtbl->Release)(This); } } if ((longlong *)CONCAT44(uStack_204,local_208) != (longlong *)0x0) { (**(code **)(*(longlong *)CONCAT44(uStack_204,local_208) + 0x10))(); } pIVar2 = local_1d8; if (local_1d8 == (IUnknown *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } local_210 = 0; UVar7 = (*local_1d8->lpVtbl[6].Release)(local_1d8); if ((int)UVar7 < 0) { _com_issue_errorex(UVar7,pIVar2,(_GUID *)&DAT_14029e038); } if (local_210 != -1) { while( true ) { pIVar2 = local_1d8; if (local_1d8 == (IUnknown *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } local_210 = 0; UVar7 = (*local_1d8->lpVtbl[6].Release)(local_1d8); if ((int)UVar7 < 0) { _com_issue_errorex(UVar7,pIVar2,(_GUID *)&DAT_14029e038); } if (local_210 == -1) break; uVar13 = FUN_140002290(&local_1d8,&local_f0,"CashCode",local_218); FUN_140199590(uVar13); iVar5 = FUN_140063af0(uVar13); Ordinal_9(&local_f0); uVar13 = FUN_140002290(&local_1d8,&local_150,"State",local_218); FUN_140199590(uVar13); FUN_140063af0(uVar13); Ordinal_9(&local_150); uVar13 = FUN_140002290(&local_1d8,&local_150,"AddOpt1",local_218); FUN_140199590(uVar13); iVar8 = FUN_140063af0(uVar13); Ordinal_9(&local_150); uVar13 = FUN_140002290(&local_1d8,&local_108,"AddOpt2",local_218); FUN_140199590(uVar13); iVar9 = FUN_140063af0(uVar13); Ordinal_9(&local_108); ppvObject = "AddOpt3"; riid = local_d8; uVar13 = FUN_140002290(&local_1d8,riid,"AddOpt3",local_218); FUN_140199590(uVar13); iVar10 = FUN_140063af0(uVar13); Ordinal_9(local_d8); if (0 < iVar5) { if (local_58 != 0) { riid = (IID *)((ulonglong)(longlong)iVar5 % local_70); for (puVar12 = (undefined8 *)local_78[(longlong)riid]; puVar12 != (undefined8 *)0x0; puVar12 = (undefined8 *)*puVar12) { if (iVar5 == *(int *)(puVar12 + 1)) { if (puVar12 != (undefined8 *)0x0) { *(int *)((longlong)puVar12 + 0xc) = *(int *)((longlong)puVar12 + 0xc) + 1; goto LAB_1400a47b4; } break; } } } local_1ec = 1; ppvObject = (char *)&local_1f0; local_1f0 = iVar5; if (local_58 == 0) { riid = &local_138; FUN_1400a4e00(&local_78); } else { riid = &local_f0; FUN_1400a4c80(&local_78,riid,ppvObject,&local_1f0); } } LAB_1400a47b4: if (0 < iVar8) { if (local_98 != 0) { riid = (IID *)((ulonglong)(longlong)iVar8 % local_b0); for (puVar12 = (undefined8 *)local_b8[(longlong)riid]; puVar12 != (undefined8 *)0x0; puVar12 = (undefined8 *)*puVar12) { if (iVar8 == *(int *)(puVar12 + 1)) { if (puVar12 != (undefined8 *)0x0) { *(int *)((longlong)puVar12 + 0xc) = *(int *)((longlong)puVar12 + 0xc) + 1; goto LAB_1400a483f; } break; } } } local_1f4 = 1; ppvObject = (char *)&local_1f8; local_1f8 = iVar8; if (local_98 == 0) { riid = &local_150; FUN_1400a4e00(&local_b8); } else { riid = &local_138; FUN_1400a4c80(&local_b8,riid,ppvObject,&local_1f8); } } LAB_1400a483f: if (0 < iVar9) { if (local_98 != 0) { riid = (IID *)((ulonglong)(longlong)iVar9 % local_b0); for (puVar12 = (undefined8 *)local_b8[(longlong)riid]; puVar12 != (undefined8 *)0x0; puVar12 = (undefined8 *)*puVar12) { if (iVar9 == *(int *)(puVar12 + 1)) { if (puVar12 != (undefined8 *)0x0) { *(int *)((longlong)puVar12 + 0xc) = *(int *)((longlong)puVar12 + 0xc) + 1; goto LAB_1400a48cf; } break; } } } local_1e4 = 1; ppvObject = (char *)&local_1e8; local_1e8 = iVar9; if (local_98 == 0) { riid = &local_108; FUN_1400a4e00(&local_b8); } else { riid = &local_138; FUN_1400a4c80(&local_b8,riid,ppvObject,&local_1e8); } } LAB_1400a48cf: if (0 < iVar10) { if (local_98 != 0) { riid = (IID *)((ulonglong)(longlong)iVar10 % local_b0); for (puVar12 = (undefined8 *)local_b8[(longlong)riid]; puVar12 != (undefined8 *)0x0; puVar12 = (undefined8 *)*puVar12) { if (iVar10 == *(int *)(puVar12 + 1)) { if (puVar12 != (undefined8 *)0x0) { *(int *)((longlong)puVar12 + 0xc) = *(int *)((longlong)puVar12 + 0xc) + 1; goto LAB_1400a495d; } break; } } } uStack_204 = 1; ppvObject = (char *)&local_208; local_208 = iVar10; if (local_98 == 0) { riid = local_d8; FUN_1400a4e00(&local_b8); } else { riid = &local_138; FUN_1400a4c80(&local_b8,riid,ppvObject,&local_208); } } LAB_1400a495d: pIVar2 = local_1d8; local_214 = (int)uVar19 + 1; uVar19 = (ulonglong)local_214; if (local_1d8 == (IUnknown *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } HVar6 = (*local_1d8->lpVtbl[0xc].QueryInterface)(local_1d8,riid,(void **)ppvObject); if (HVar6 < 0) { _com_issue_errorex(HVar6,pIVar2,(_GUID *)&DAT_14029e038); } } bVar20 = local_218[0] != '\0'; } FUN_14009f190("CashCode",&local_78); printf("Completed %s Report_CashCode\n","CashCode"); FUN_14009f190("CashOption",&local_b8); printf("Completed %s Report_CashOption\n","CashOption"); printf("Total CashCode Count : %d\n",uVar19); if (local_b8 != (longlong *)0x0) { plVar1 = local_b8 + local_b0; for (plVar14 = local_b8; plVar14 != plVar1; plVar14 = plVar14 + 1) { puVar12 = (undefined8 *)*plVar14; *plVar14 = 0; while (puVar12 != (undefined8 *)0x0) { puVar15 = (undefined8 *)*puVar12; operator_delete(puVar12); puVar12 = puVar15; } } operator_delete(local_b8); local_b8 = (longlong *)0x0; } if (local_78 != (undefined8 *)0x0) { puVar12 = local_78 + local_70; for (puVar15 = local_78; puVar15 != puVar12; puVar15 = puVar15 + 1) { puVar3 = (undefined8 *)*puVar15; *puVar15 = 0; while (puVar3 != (undefined8 *)0x0) { puVar4 = (undefined8 *)*puVar3; operator_delete(puVar3); puVar3 = puVar4; } } operator_delete(local_78); local_78 = (undefined8 *)0x0; } pIVar2 = local_1d8; if (local_1d8 != (IUnknown *)0x0) { local_214 = 0; UVar7 = (*local_1d8->lpVtbl[0x12].AddRef)(local_1d8); if ((int)UVar7 < 0) { _com_issue_errorex(UVar7,pIVar2,(_GUID *)&DAT_14029e038); } pIVar2 = local_1d8; if (local_214 != 0) { if (local_1d8 == (IUnknown *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } UVar7 = (*local_1d8->lpVtbl[10].Release)(local_1d8); if ((int)UVar7 < 0) { _com_issue_errorex(UVar7,pIVar2,(_GUID *)&DAT_14029e038); } } if (local_1d8 != (IUnknown *)0x0) { (*local_1d8->lpVtbl->Release)(local_1d8); local_1d8 = (IUnknown *)0x0; } } local_170 = 0; local_168 = &DAT_14029e010; local_180 = &DAT_14029e010; local_178 = 0; local_188 = 0; Ordinal_9(local_1a0); Ordinal_9(local_1b8); if (local_1d0 != (longlong *)0x0) { (**(code **)(*local_1d0 + 0x10))(); } if (local_1d8 != (IUnknown *)0x0) { (*local_1d8->lpVtbl->Release)(local_1d8); } if (local_200 != (longlong *)0x0) { (**(code **)(*local_200 + 0x10))(); } return bVar20; }