/* 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; }