/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x14007b050 FUN_14007b050 * Pseudocode, not original source. */ void FUN_14007b050(longlong param_1,longlong param_2,char *param_3,undefined8 param_4) { byte bVar1; uint uVar2; undefined8 uVar3; longlong *plVar4; uint *puVar5; int iVar6; char *pcVar7; byte local_res20; uint local_a0 [2]; uint *local_98; uint local_90; undefined8 local_20; local_20 = 0xfffffffffffffffe; local_98 = (uint *)(param_2 + 8); uVar2 = (int)(*local_98 + ((int)*local_98 >> 0x1f & 7U)) >> 3; pcVar7 = param_3; if (uVar2 != 0) { param_4 = 2; pcVar7 = "Proud::CNetThreads_S::UserWorkerThread_FinalReceiveRmi"; FUN_14006c410(*(longlong **)(param_1 + 0x148),(wchar_t *)0x0, "Proud::CNetThreads_S::UserWorkerThread_FinalReceiveRmi",2); } local_res20 = 0; iVar6 = 0; local_a0[0] = 0; puVar5 = local_a0; uVar3 = FUN_140075890(local_98,puVar5,pcVar7,param_4); if ((char)uVar3 != '\0') { local_90 = *(uint *)(*(longlong *)(param_1 + 0x148) + 0x48); plVar4 = (longlong *)(ulonglong)local_90; for (; iVar6 < (int)local_90; iVar6 = iVar6 + 1) { if ((iVar6 < 0) || (*(int *)(*(longlong *)(param_1 + 0x148) + 0x48) <= iVar6)) { /* WARNING: Subroutine does not return */ FUN_14003def0(plVar4,puVar5,pcVar7,param_4); } plVar4 = *(longlong **) (*(longlong *)(*(longlong *)(param_1 + 0x148) + 0x40) + (longlong)iVar6 * 8); FUN_140074bb0((int *)local_98,(ulonglong)uVar2,pcVar7,param_4); puVar5 = (uint *)(param_2 + 8); pcVar7 = param_3; bVar1 = (**(code **)(*plVar4 + 0x10))(); local_res20 = local_res20 | bVar1; } if (local_res20 == 0) { FUN_140074bb0((int *)local_98,(ulonglong)uVar2,pcVar7,param_4); if (*(longlong *)(*(longlong *)(param_1 + 0x148) + 0x758) != 0) { plVar4 = *(longlong **)(*(longlong *)(param_1 + 0x148) + 0x758); (**(code **)(*plVar4 + 0x28))(plVar4,local_a0[0]); } } FUN_1400977f0((undefined8 *)(param_1 + 0x160),*(undefined4 *)(param_2 + 0x30),'\0',param_4); } return; }