81 lines
2.9 KiB
C
81 lines
2.9 KiB
C
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
|
|
* Ghidra 12.1.2 decompiler output for 0x140006740 FUN_140006740
|
|
* Pseudocode, not original source. */
|
|
|
|
void FUN_140006740(longlong param_1,longlong param_2,int *param_3)
|
|
|
|
{
|
|
int *piVar1;
|
|
undefined8 *puVar2;
|
|
uint *puVar3;
|
|
int *piVar4;
|
|
longlong lVar5;
|
|
uint *puVar6;
|
|
wchar_t *pwVar7;
|
|
uint *puVar8;
|
|
undefined8 uVar9;
|
|
ulonglong uVar10;
|
|
undefined *local_res8;
|
|
|
|
FUN_14003d040((int *)(param_1 + 0xe0));
|
|
uVar10 = (ulonglong)*(int *)(param_2 + 0x30);
|
|
if (*(longlong *)(DAT_14017cf38 + 0x58) != 0) {
|
|
for (puVar2 = *(undefined8 **)
|
|
(*(longlong *)(DAT_14017cf38 + 0x38) +
|
|
(uVar10 % *(ulonglong *)(DAT_14017cf38 + 0x40)) * 8); puVar2 != (undefined8 *)0x0
|
|
; puVar2 = (undefined8 *)*puVar2) {
|
|
if (*(int *)(param_2 + 0x30) == *(int *)(puVar2 + 1)) {
|
|
if ((puVar2 != (undefined8 *)0x0) && (puVar3 = (uint *)puVar2[2], puVar3 != (uint *)0x0)) {
|
|
puVar8 = puVar3 + 2;
|
|
puVar6 = puVar8;
|
|
if (7 < *(ulonglong *)(puVar3 + 8)) {
|
|
puVar6 = *(uint **)puVar8;
|
|
}
|
|
uVar9 = 0;
|
|
FUN_140012160(param_1,(short *)puVar6,0,uVar10);
|
|
FUN_140071d40(param_3,(longlong *)&local_res8,uVar9,uVar10);
|
|
if (7 < *(ulonglong *)(puVar3 + 8)) {
|
|
puVar8 = *(uint **)puVar8;
|
|
}
|
|
uVar10 = (ulonglong)*puVar3;
|
|
pwVar7 = L"MONITOR DISCONNECT : Name:[%s] HostID:[%d] Error:[%s] ";
|
|
lVar5 = DAT_14017c8a8;
|
|
FUN_1400ef250(DAT_14017c8a8,L"MONITOR DISCONNECT : Name:[%s] HostID:[%d] Error:[%s] ",
|
|
puVar8,uVar10);
|
|
if (((local_res8 != (undefined *)0x0) && (local_res8 != PTR_DAT_14016f010)) &&
|
|
(local_res8 + -8 != (undefined *)0x0)) {
|
|
piVar4 = (int *)FUN_14003e7c0(lVar5,pwVar7,puVar8,uVar10);
|
|
FUN_14003d040(piVar4);
|
|
piVar1 = (int *)(local_res8 + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_14003e8b0(local_res8 + -8);
|
|
}
|
|
FUN_14003d0d0((longlong)piVar4);
|
|
}
|
|
local_res8 = PTR_DAT_14016f010;
|
|
uVar10 = (ulonglong)*puVar3 % (ulonglong)*(uint *)(param_1 + 0xb0);
|
|
if (*(longlong *)(param_1 + 0x90) == 0) goto LAB_1400068df;
|
|
puVar8 = *(uint **)(*(longlong *)(param_1 + 0x90) + uVar10 * 8);
|
|
goto joined_r0x0001400068b1;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
goto LAB_1400068ee;
|
|
joined_r0x0001400068b1:
|
|
if ((puVar8 == (uint *)0x0) || ((uint)uVar10 != puVar8[8] % *(uint *)(param_1 + 0xb0)))
|
|
goto LAB_1400068df;
|
|
if (*puVar8 != *puVar3) {
|
|
puVar8 = *(uint **)(puVar8 + 4);
|
|
goto joined_r0x0001400068b1;
|
|
}
|
|
FUN_1400069f0((char *)(param_1 + 0x88),puVar8);
|
|
LAB_1400068df:
|
|
FUN_14000dcb0(DAT_14017cf38,*puVar3);
|
|
LAB_1400068ee:
|
|
FUN_14003d0d0(param_1 + 0xe0);
|
|
return;
|
|
}
|
|
|