/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x1400aaa10 FUN_1400aaa10 * Pseudocode, not original source. */ undefined8 FUN_1400aaa10(longlong param_1,undefined8 param_2,undefined8 param_3,uint *param_4) { undefined8 *puVar1; longlong lVar2; int *piVar3; longlong *plVar4; undefined8 uVar5; longlong **pplVar6; longlong lVar7; ulonglong uVar8; uint *puVar9; undefined8 uVar10; longlong *local_res8; puVar9 = param_4; piVar3 = (int *)(**(code **)(**(longlong **)(param_1 + 0x20) + 0x58))(); FUN_14003d040(piVar3); uVar8 = (ulonglong)*param_4; pplVar6 = &local_res8; plVar4 = FUN_1400a7920(*(longlong **)(param_1 + 0x20),(longlong *)pplVar6,*param_4); lVar7 = 0; if ((longlong *)*plVar4 != (longlong *)0x0) { lVar7 = *(longlong *)*plVar4; } if ((local_res8 != (longlong *)0x0) && (local_res8[1] = local_res8[1] + -1, local_res8[1] == 0)) { puVar1 = (undefined8 *)*local_res8; if (puVar1 != (undefined8 *)0x0) { pplVar6 = (longlong **)0x0; (**(code **)*puVar1)(puVar1,1); } FUN_14003e8b0(local_res8); } if (lVar7 != 0) { uVar5 = CONCAT71((int7)((ulonglong)pplVar6 >> 8),1); FUN_1400cf120(lVar7,'\x01'); *(undefined4 *)(lVar7 + 0x61c) = 0; uVar10 = (**(code **)(*(longlong *)(*(longlong *)(param_1 + 0x20) + 0x70) + 0x1c0))(); *(undefined8 *)(lVar7 + 0x620) = uVar10; *(undefined1 *)(lVar7 + 0x20) = 0; FUN_1400d1350(lVar7,uVar5,uVar8,puVar9); lVar2 = *(longlong *)(param_1 + 0x20); if ((*(char *)(lVar2 + 0x1790) != '\0') || (*(int *)(lVar2 + 0x6c8) != 0)) { FUN_1400a9f70(lVar2,1,L"Client %d과의 P2P 연결 상태를 완전히 리셋합니다.", (ulonglong)*(uint *)(lVar7 + 0x56c)); } } uVar5 = FUN_14003d0d0((longlong)piVar3); return CONCAT71((int7)((ulonglong)uVar5 >> 8),1); }