430 lines
14 KiB
C
430 lines
14 KiB
C
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
|
|
* Ghidra 12.1.2 decompiler output for 0x140007a20 FUN_140007a20
|
|
* Pseudocode, not original source. */
|
|
|
|
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
|
|
|
ulonglong FUN_140007a20(longlong param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
|
|
|
|
{
|
|
int *piVar1;
|
|
undefined8 *puVar2;
|
|
IUnknown *pIVar3;
|
|
undefined8 *puVar4;
|
|
undefined8 *puVar5;
|
|
uint uVar6;
|
|
int iVar7;
|
|
ULONG UVar8;
|
|
undefined4 uVar9;
|
|
short *psVar10;
|
|
ulonglong uVar11;
|
|
undefined4 extraout_var;
|
|
undefined4 extraout_var_00;
|
|
int *piVar12;
|
|
ulonglong *puVar13;
|
|
ulonglong *puVar14;
|
|
int *piVar15;
|
|
undefined8 uVar16;
|
|
undefined4 extraout_var_01;
|
|
int *piVar17;
|
|
ulonglong **ppuVar18;
|
|
undefined8 **ppuVar19;
|
|
int **ppiVar20;
|
|
undefined *puVar21;
|
|
int *piVar22;
|
|
IUnknown **ppIVar23;
|
|
wchar_t *pwVar24;
|
|
undefined1 auStack_198 [32];
|
|
ulonglong *local_178;
|
|
int local_170;
|
|
short local_160;
|
|
IUnknown *local_158 [2];
|
|
longlong *local_148 [2];
|
|
undefined8 *local_138;
|
|
undefined8 *local_130;
|
|
undefined8 local_128;
|
|
int *local_118;
|
|
undefined1 local_110;
|
|
int *local_108;
|
|
undefined1 local_100;
|
|
short local_f8 [16];
|
|
undefined8 local_d8;
|
|
undefined8 local_c8;
|
|
undefined4 local_c0;
|
|
undefined1 local_bc;
|
|
undefined8 local_b8;
|
|
undefined8 local_b0;
|
|
undefined1 local_a8;
|
|
undefined2 local_a0;
|
|
undefined6 uStack_9e;
|
|
undefined8 local_90;
|
|
ulonglong local_88;
|
|
undefined2 local_78;
|
|
undefined6 uStack_76;
|
|
undefined8 local_68;
|
|
ulonglong local_60;
|
|
undefined2 local_50;
|
|
undefined6 uStack_4e;
|
|
undefined8 local_40;
|
|
ulonglong local_38;
|
|
ulonglong local_28;
|
|
|
|
local_d8 = 0xfffffffffffffffe;
|
|
local_28 = DAT_14016f5a0 ^ (ulonglong)auStack_198;
|
|
FUN_140073cc0(local_148);
|
|
FUN_140073b20(local_158);
|
|
FUN_140073f70(local_148,*(IID **)(param_1 + 8),(void **)L"dbo.up_read_agentmanager");
|
|
iVar7 = *(int *)(DAT_14017cf28 + 0x154);
|
|
Ordinal_8(&local_178);
|
|
if (((short)local_178 != 3) && ((short)local_178 != 10)) {
|
|
if ((short)local_178 == 0xb) {
|
|
local_170 = CONCAT22(local_170._2_2_,-(ushort)(iVar7 != 0));
|
|
iVar7 = local_170;
|
|
}
|
|
else {
|
|
uVar6 = Ordinal_9(&local_178);
|
|
if ((int)uVar6 < 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_140048d70((ulonglong)uVar6);
|
|
}
|
|
local_178 = (ulonglong *)CONCAT62(local_178._2_6_,3);
|
|
}
|
|
}
|
|
local_170 = iVar7;
|
|
FUN_140073d70(local_148,1,(undefined4 *)&local_178);
|
|
Ordinal_9(&local_178);
|
|
FUN_140074740(local_148,(longlong *)local_158,(int *)0x0);
|
|
uVar16 = 0;
|
|
ppuVar18 = &local_178;
|
|
psVar10 = (short *)FUN_140073e60(local_148,ppuVar18,0);
|
|
FUN_140074970(psVar10,ppuVar18,uVar16,param_4);
|
|
iVar7 = FUN_14000add0(psVar10);
|
|
Ordinal_9(&local_178);
|
|
pIVar3 = local_158[0];
|
|
if (iVar7 < 0) {
|
|
wprintf(L"Failed Stored Procedure!! : %s \n",L"dbo.up_read_agentmanager");
|
|
uVar11 = FUN_140072b00(local_158);
|
|
if (local_158[0] != (IUnknown *)0x0) {
|
|
UVar8 = (*local_158[0]->lpVtbl->Release)(local_158[0]);
|
|
uVar11 = CONCAT44(extraout_var,UVar8);
|
|
}
|
|
}
|
|
else {
|
|
local_160 = 0;
|
|
UVar8 = (*local_158[0]->lpVtbl[6].Release)(local_158[0]);
|
|
if ((int)UVar8 < 0) {
|
|
_com_issue_errorex(UVar8,pIVar3,(_GUID *)&DAT_1401301b0);
|
|
}
|
|
if (local_160 == 0) {
|
|
local_138 = (undefined8 *)0x0;
|
|
local_130 = (undefined8 *)0x0;
|
|
local_128 = 0;
|
|
FUN_1400075d0((ulonglong *)&local_138,local_158);
|
|
local_c8 = 0;
|
|
local_c0 = 0;
|
|
local_bc = 0;
|
|
local_b8 = 0;
|
|
local_b0 = 0;
|
|
local_a8 = 0;
|
|
local_88 = 7;
|
|
local_90 = 0;
|
|
local_a0 = 0;
|
|
local_60 = 7;
|
|
local_68 = 0;
|
|
local_78 = 0;
|
|
local_38 = 7;
|
|
local_40 = 0;
|
|
local_50 = 0;
|
|
pwVar24 = L"World";
|
|
ppIVar23 = local_158;
|
|
ppuVar19 = &local_138;
|
|
psVar10 = FUN_140007700((short *)&local_178,ppuVar19,ppIVar23,L"World");
|
|
FUN_140074970(psVar10,ppuVar19,ppIVar23,pwVar24);
|
|
uVar9 = FUN_14000add0(psVar10);
|
|
local_c8 = CONCAT44(local_c8._4_4_,uVar9);
|
|
Ordinal_9(&local_178);
|
|
pwVar24 = L"Code";
|
|
ppIVar23 = local_158;
|
|
ppuVar19 = &local_138;
|
|
psVar10 = FUN_140007700((short *)&local_178,ppuVar19,ppIVar23,L"Code");
|
|
FUN_140074970(psVar10,ppuVar19,ppIVar23,pwVar24);
|
|
uVar9 = FUN_14000add0(psVar10);
|
|
local_c8 = CONCAT44(uVar9,(undefined4)local_c8);
|
|
Ordinal_9(&local_178);
|
|
pwVar24 = L"AgentCode";
|
|
ppIVar23 = local_158;
|
|
ppuVar19 = &local_138;
|
|
psVar10 = FUN_140007700((short *)&local_178,ppuVar19,ppIVar23,L"AgentCode");
|
|
FUN_140074970(psVar10,ppuVar19,ppIVar23,pwVar24);
|
|
local_c0 = FUN_14000add0(psVar10);
|
|
Ordinal_9(&local_178);
|
|
pwVar24 = L"Type";
|
|
ppIVar23 = local_158;
|
|
ppuVar19 = &local_138;
|
|
psVar10 = FUN_140007700((short *)&local_178,ppuVar19,ppIVar23,L"Type");
|
|
FUN_140074970(psVar10,ppuVar19,ppIVar23,pwVar24);
|
|
local_bc = FUN_14000acb0(psVar10);
|
|
Ordinal_9(&local_178);
|
|
pwVar24 = L"PrivatePort";
|
|
ppIVar23 = local_158;
|
|
ppuVar19 = &local_138;
|
|
psVar10 = FUN_140007700((short *)&local_178,ppuVar19,ppIVar23,L"PrivatePort");
|
|
FUN_140074970(psVar10,ppuVar19,ppIVar23,pwVar24);
|
|
uVar9 = FUN_14000add0(psVar10);
|
|
local_b8 = CONCAT44(local_b8._4_4_,uVar9);
|
|
Ordinal_9(&local_178);
|
|
pwVar24 = L"PublicPort";
|
|
ppIVar23 = local_158;
|
|
ppuVar19 = &local_138;
|
|
psVar10 = FUN_140007700((short *)&local_178,ppuVar19,ppIVar23,L"PublicPort");
|
|
FUN_140074970(psVar10,ppuVar19,ppIVar23,pwVar24);
|
|
uVar9 = FUN_14000add0(psVar10);
|
|
local_b8 = CONCAT44(uVar9,(undefined4)local_b8);
|
|
Ordinal_9(&local_178);
|
|
pwVar24 = L"UdpPort";
|
|
ppIVar23 = local_158;
|
|
ppuVar19 = &local_138;
|
|
psVar10 = FUN_140007700((short *)&local_178,ppuVar19,ppIVar23,L"UdpPort");
|
|
FUN_140074970(psVar10,ppuVar19,ppIVar23,pwVar24);
|
|
uVar9 = FUN_14000add0(psVar10);
|
|
local_b0 = CONCAT44(local_b0._4_4_,uVar9);
|
|
Ordinal_9(&local_178);
|
|
pwVar24 = L"UdpCount";
|
|
ppIVar23 = local_158;
|
|
ppuVar19 = &local_138;
|
|
psVar10 = FUN_140007700((short *)&local_178,ppuVar19,ppIVar23,L"UdpCount");
|
|
FUN_140074970(psVar10,ppuVar19,ppIVar23,pwVar24);
|
|
uVar9 = FUN_14000add0(psVar10);
|
|
local_b0 = CONCAT44(uVar9,(undefined4)local_b0);
|
|
Ordinal_9(&local_178);
|
|
pwVar24 = L"SessionCount";
|
|
ppIVar23 = local_158;
|
|
ppuVar19 = &local_138;
|
|
psVar10 = FUN_140007700((short *)&local_178,ppuVar19,ppIVar23,L"SessionCount");
|
|
FUN_140074970(psVar10,ppuVar19,ppIVar23,pwVar24);
|
|
local_a8 = FUN_14000acb0(psVar10);
|
|
Ordinal_9(&local_178);
|
|
pwVar24 = L"PrivateAddress";
|
|
ppIVar23 = local_158;
|
|
psVar10 = FUN_140007700(local_f8,&local_138,ppIVar23,L"PrivateAddress");
|
|
ppiVar20 = &local_108;
|
|
FUN_14000ab30(psVar10,(longlong *)ppiVar20,ppIVar23,pwVar24);
|
|
FUN_14003e7c0(psVar10,ppiVar20,ppIVar23,pwVar24);
|
|
piVar22 = (int *)PTR_DAT_14016f010;
|
|
if (PTR_DAT_14016f010 == (undefined *)0x0) {
|
|
piVar22 = (int *)0x0;
|
|
}
|
|
local_118 = piVar22;
|
|
if (local_108 != (int *)PTR_DAT_14016f010) {
|
|
puVar21 = PTR_DAT_14016f010;
|
|
piVar12 = (int *)FUN_14003e7c0(psVar10,PTR_DAT_14016f010,ppIVar23,pwVar24);
|
|
piVar17 = piVar12;
|
|
local_118 = piVar12;
|
|
FUN_14003d040(piVar12);
|
|
local_110 = 1;
|
|
if (((piVar22 != (int *)0x0) && (piVar22 != (int *)PTR_DAT_14016f010)) &&
|
|
(piVar22 + -2 != (int *)0x0)) {
|
|
puVar13 = (ulonglong *)FUN_14003e7c0(piVar17,puVar21,ppIVar23,pwVar24);
|
|
local_178 = puVar13;
|
|
FUN_14003d040((int *)puVar13);
|
|
local_170 = CONCAT31(local_170._1_3_,1);
|
|
piVar17 = piVar22 + -1;
|
|
*piVar17 = *piVar17 + -1;
|
|
if (*piVar17 == 0) {
|
|
FUN_14003e8b0(piVar22 + -2);
|
|
}
|
|
FUN_14003d0d0((longlong)puVar13);
|
|
}
|
|
local_118 = local_108;
|
|
if (((local_108 != (int *)PTR_DAT_14016f010) && (local_108 != (int *)0x0)) &&
|
|
(local_108 != (int *)0x8)) {
|
|
local_108[-1] = local_108[-1] + 1;
|
|
}
|
|
FUN_14003d0d0((longlong)piVar12);
|
|
piVar22 = local_108;
|
|
}
|
|
piVar17 = piVar22;
|
|
if (piVar22 == (int *)0x0) {
|
|
piVar17 = (int *)PTR_DAT_14016f010;
|
|
}
|
|
uVar11 = 0xffffffffffffffff;
|
|
piVar12 = piVar17;
|
|
do {
|
|
if (uVar11 == 0) break;
|
|
uVar11 = uVar11 - 1;
|
|
iVar7 = *piVar12;
|
|
piVar12 = (int *)((longlong)piVar12 + 2);
|
|
} while ((short)iVar7 != 0);
|
|
uVar11 = ~uVar11 - 1;
|
|
puVar13 = (ulonglong *)&local_a0;
|
|
piVar12 = piVar17;
|
|
FUN_140001710(puVar13,piVar17,uVar11);
|
|
if (((piVar22 != (int *)0x0) && (piVar22 != (int *)PTR_DAT_14016f010)) &&
|
|
(piVar22 + -2 != (int *)0x0)) {
|
|
puVar13 = (ulonglong *)FUN_14003e7c0(puVar13,piVar17,uVar11,piVar12);
|
|
local_178 = puVar13;
|
|
FUN_14003d040((int *)puVar13);
|
|
local_170 = CONCAT31(local_170._1_3_,1);
|
|
piVar15 = piVar22 + -1;
|
|
*piVar15 = *piVar15 + -1;
|
|
if (*piVar15 == 0) {
|
|
FUN_14003e8b0(piVar22 + -2);
|
|
}
|
|
FUN_14003d0d0((longlong)puVar13);
|
|
}
|
|
if (((local_108 != (int *)0x0) && (local_108 != (int *)PTR_DAT_14016f010)) &&
|
|
(local_108 + -2 != (int *)0x0)) {
|
|
puVar13 = (ulonglong *)FUN_14003e7c0(puVar13,piVar17,uVar11,piVar12);
|
|
local_178 = puVar13;
|
|
FUN_14003d040((int *)puVar13);
|
|
local_170 = CONCAT31(local_170._1_3_,1);
|
|
piVar22 = local_108 + -1;
|
|
*piVar22 = *piVar22 + -1;
|
|
if (*piVar22 == 0) {
|
|
FUN_14003e8b0(local_108 + -2);
|
|
}
|
|
FUN_14003d0d0((longlong)puVar13);
|
|
}
|
|
Ordinal_9(local_f8);
|
|
pwVar24 = L"PublicAddress";
|
|
ppIVar23 = local_158;
|
|
psVar10 = FUN_140007700(local_f8,&local_138,ppIVar23,L"PublicAddress");
|
|
ppiVar20 = &local_118;
|
|
FUN_14000ab30(psVar10,(longlong *)ppiVar20,ppIVar23,pwVar24);
|
|
FUN_14003e7c0(psVar10,ppiVar20,ppIVar23,pwVar24);
|
|
piVar22 = local_118;
|
|
piVar17 = (int *)PTR_DAT_14016f010;
|
|
if (PTR_DAT_14016f010 == (undefined *)0x0) {
|
|
piVar17 = (int *)0x0;
|
|
}
|
|
local_108 = piVar17;
|
|
if (local_118 != (int *)PTR_DAT_14016f010) {
|
|
puVar21 = PTR_DAT_14016f010;
|
|
puVar14 = (ulonglong *)FUN_14003e7c0(psVar10,PTR_DAT_14016f010,ppIVar23,pwVar24);
|
|
puVar13 = puVar14;
|
|
local_178 = puVar14;
|
|
FUN_14003d040((int *)puVar14);
|
|
local_170 = CONCAT31(local_170._1_3_,1);
|
|
if (((piVar17 != (int *)0x0) && (piVar17 != (int *)PTR_DAT_14016f010)) &&
|
|
(piVar17 + -2 != (int *)0x0)) {
|
|
piVar15 = (int *)FUN_14003e7c0(puVar13,puVar21,ppIVar23,pwVar24);
|
|
local_108 = piVar15;
|
|
FUN_14003d040(piVar15);
|
|
local_100 = 1;
|
|
piVar12 = piVar17 + -1;
|
|
*piVar12 = *piVar12 + -1;
|
|
if (*piVar12 == 0) {
|
|
FUN_14003e8b0(piVar17 + -2);
|
|
}
|
|
FUN_14003d0d0((longlong)piVar15);
|
|
}
|
|
local_108 = piVar22;
|
|
if (((piVar22 != (int *)PTR_DAT_14016f010) && (piVar22 != (int *)0x0)) &&
|
|
(piVar22 != (int *)0x8)) {
|
|
piVar22[-1] = piVar22[-1] + 1;
|
|
}
|
|
FUN_14003d0d0((longlong)puVar14);
|
|
piVar17 = piVar22;
|
|
}
|
|
piVar12 = piVar17;
|
|
if (piVar17 == (int *)0x0) {
|
|
piVar12 = (int *)PTR_DAT_14016f010;
|
|
}
|
|
uVar11 = 0xffffffffffffffff;
|
|
piVar15 = piVar12;
|
|
do {
|
|
if (uVar11 == 0) break;
|
|
uVar11 = uVar11 - 1;
|
|
iVar7 = *piVar15;
|
|
piVar15 = (int *)((longlong)piVar15 + 2);
|
|
} while ((short)iVar7 != 0);
|
|
uVar11 = ~uVar11 - 1;
|
|
puVar13 = (ulonglong *)&local_78;
|
|
piVar15 = piVar12;
|
|
FUN_140001710(puVar13,piVar12,uVar11);
|
|
if (((piVar17 != (int *)0x0) && (piVar17 != (int *)PTR_DAT_14016f010)) &&
|
|
(piVar17 + -2 != (int *)0x0)) {
|
|
puVar13 = (ulonglong *)FUN_14003e7c0(puVar13,piVar12,uVar11,piVar15);
|
|
local_178 = puVar13;
|
|
FUN_14003d040((int *)puVar13);
|
|
local_170 = CONCAT31(local_170._1_3_,1);
|
|
piVar1 = piVar17 + -1;
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_14003e8b0(piVar17 + -2);
|
|
}
|
|
FUN_14003d0d0((longlong)puVar13);
|
|
}
|
|
if (((piVar22 != (int *)0x0) && (piVar22 != (int *)PTR_DAT_14016f010)) &&
|
|
(piVar22 + -2 != (int *)0x0)) {
|
|
puVar13 = (ulonglong *)FUN_14003e7c0(puVar13,piVar12,uVar11,piVar15);
|
|
local_178 = puVar13;
|
|
FUN_14003d040((int *)puVar13);
|
|
local_170 = CONCAT31(local_170._1_3_,1);
|
|
piVar17 = piVar22 + -1;
|
|
*piVar17 = *piVar17 + -1;
|
|
if (*piVar17 == 0) {
|
|
FUN_14003e8b0(piVar22 + -2);
|
|
}
|
|
FUN_14003d0d0((longlong)puVar13);
|
|
}
|
|
Ordinal_9(local_f8);
|
|
FUN_140033c30((ulonglong *)&local_50,local_bc,local_c8._4_4_);
|
|
if (*(int *)(DAT_14017cf28 + 0x154) == local_c8._4_4_) {
|
|
FUN_14002fe40(DAT_14017cf28,(undefined4 *)&local_c8);
|
|
}
|
|
if (7 < local_38) {
|
|
operator_delete((void *)CONCAT62(uStack_4e,local_50));
|
|
}
|
|
local_38 = 7;
|
|
local_40 = 0;
|
|
local_50 = 0;
|
|
if (7 < local_60) {
|
|
operator_delete((void *)CONCAT62(uStack_76,local_78));
|
|
}
|
|
local_60 = 7;
|
|
local_68 = 0;
|
|
local_78 = 0;
|
|
if (7 < local_88) {
|
|
operator_delete((void *)CONCAT62(uStack_9e,local_a0));
|
|
}
|
|
puVar5 = local_130;
|
|
puVar4 = local_138;
|
|
local_88 = 7;
|
|
local_90 = 0;
|
|
local_a0 = 0;
|
|
puVar2 = local_138;
|
|
if (local_138 != (undefined8 *)0x0) {
|
|
for (; puVar2 != puVar5; puVar2 = puVar2 + 5) {
|
|
if (7 < (ulonglong)puVar2[3]) {
|
|
operator_delete((void *)*puVar2);
|
|
}
|
|
puVar2[3] = 7;
|
|
puVar2[2] = 0;
|
|
*(undefined2 *)puVar2 = 0;
|
|
}
|
|
operator_delete(puVar4);
|
|
}
|
|
uVar16 = FUN_140072b00(local_158);
|
|
if (local_158[0] != (IUnknown *)0x0) {
|
|
UVar8 = (*local_158[0]->lpVtbl->Release)(local_158[0]);
|
|
uVar16 = CONCAT44(extraout_var_01,UVar8);
|
|
}
|
|
if (local_148[0] != (longlong *)0x0) {
|
|
uVar16 = (**(code **)(*local_148[0] + 0x10))();
|
|
}
|
|
return CONCAT71((int7)((ulonglong)uVar16 >> 8),1);
|
|
}
|
|
wprintf(L"Failed Recordset!! : %s \n",L"dbo.up_read_agentmanager");
|
|
uVar11 = FUN_140072b00(local_158);
|
|
if (local_158[0] != (IUnknown *)0x0) {
|
|
UVar8 = (*local_158[0]->lpVtbl->Release)(local_158[0]);
|
|
uVar11 = CONCAT44(extraout_var_00,UVar8);
|
|
}
|
|
}
|
|
if (local_148[0] != (longlong *)0x0) {
|
|
uVar11 = (**(code **)(*local_148[0] + 0x10))();
|
|
}
|
|
return uVar11 & 0xffffffffffffff00;
|
|
}
|
|
|