/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x140023c90 FUN_140023c90 * Pseudocode, not original source. */ undefined1 FUN_140023c90(longlong *param_1,undefined8 param_2,SIZE_T param_3,undefined8 param_4, longlong *param_5,longlong *param_6,longlong *param_7) { undefined1 uVar1; undefined8 uVar2; byte *pbVar3; ulonglong *puVar4; byte *pbVar5; uint *puVar6; ulonglong *puVar7; undefined8 uVar8; ulonglong uVar9; undefined4 local_50 [2]; longlong local_48; longlong local_40; int local_34; uVar9 = param_3 & 0xffffffff; uVar2 = param_2; uVar8 = param_4; FUN_140074fb0(local_50); FUN_140074a40((longlong)local_50,uVar2,param_3,uVar8); FUN_14002a2d0((longlong)local_50,0x85fd,param_3,uVar8); FUN_140029e60((longlong)local_50,(param_5[1] - *param_5) / 0x30,param_3,uVar8); pbVar5 = (byte *)*param_5; if (pbVar5 != (byte *)param_5[1]) { do { FUN_140029d80((longlong)local_50,(ulonglong)*pbVar5,param_3,uVar8); if (*(ulonglong *)(pbVar5 + 0x20) < 8) { pbVar3 = pbVar5 + 8; } else { pbVar3 = *(byte **)(pbVar5 + 8); } FUN_1400767c0((longlong)local_50,(short *)pbVar3); pbVar5 = pbVar5 + 0x30; } while (pbVar5 != (byte *)param_5[1]); } FUN_140029e60((longlong)local_50,(param_6[1] - *param_6) / 0xa0,param_3,uVar8); puVar6 = (uint *)*param_6; if (puVar6 != (uint *)param_6[1]) { puVar7 = (ulonglong *)(puVar6 + 0x1a); do { FUN_140029e60((longlong)local_50,(ulonglong)*puVar6,param_3,uVar8); FUN_140029e60((longlong)local_50,(ulonglong)*(uint *)((longlong)puVar7 + -100),param_3,uVar8); FUN_140029e60((longlong)local_50,(ulonglong)(uint)puVar7[-0xc],param_3,uVar8); FUN_140029d80((longlong)local_50,(ulonglong)*(byte *)((longlong)puVar7 + -0x5c),param_3,uVar8) ; FUN_140029e60((longlong)local_50,(ulonglong)(uint)puVar7[-0xb],param_3,uVar8); FUN_140029e60((longlong)local_50,(ulonglong)*(uint *)((longlong)puVar7 + -0x54),param_3,uVar8) ; FUN_140029e60((longlong)local_50,(ulonglong)(uint)puVar7[-10],param_3,uVar8); FUN_140029e60((longlong)local_50,(ulonglong)*(uint *)((longlong)puVar7 + -0x4c),param_3,uVar8) ; FUN_140029d80((longlong)local_50,(ulonglong)(byte)puVar7[-9],param_3,uVar8); if (puVar7[-5] < 8) { puVar4 = puVar7 + -8; } else { puVar4 = (ulonglong *)puVar7[-8]; } FUN_1400767c0((longlong)local_50,(short *)puVar4); if (*puVar7 < 8) { puVar4 = puVar7 + -3; } else { puVar4 = (ulonglong *)puVar7[-3]; } FUN_1400767c0((longlong)local_50,(short *)puVar4); if (puVar7[5] < 8) { puVar4 = puVar7 + 2; } else { puVar4 = (ulonglong *)puVar7[2]; } FUN_1400767c0((longlong)local_50,(short *)puVar4); puVar6 = puVar6 + 0x28; puVar7 = puVar7 + 0x14; } while (puVar6 != (uint *)param_6[1]); } FUN_140029e60((longlong)local_50,(param_7[1] - *param_7) / 0xa0,param_3,uVar8); puVar6 = (uint *)*param_7; if (puVar6 != (uint *)param_7[1]) { puVar7 = (ulonglong *)(puVar6 + 0x1a); do { FUN_140029e60((longlong)local_50,(ulonglong)*puVar6,param_3,uVar8); FUN_140029e60((longlong)local_50,(ulonglong)*(uint *)((longlong)puVar7 + -100),param_3,uVar8); FUN_140029e60((longlong)local_50,(ulonglong)(uint)puVar7[-0xc],param_3,uVar8); FUN_140029d80((longlong)local_50,(ulonglong)*(byte *)((longlong)puVar7 + -0x5c),param_3,uVar8) ; FUN_140029e60((longlong)local_50,(ulonglong)(uint)puVar7[-0xb],param_3,uVar8); FUN_140029e60((longlong)local_50,(ulonglong)*(uint *)((longlong)puVar7 + -0x54),param_3,uVar8) ; FUN_140029e60((longlong)local_50,(ulonglong)(uint)puVar7[-10],param_3,uVar8); FUN_140029e60((longlong)local_50,(ulonglong)*(uint *)((longlong)puVar7 + -0x4c),param_3,uVar8) ; FUN_140029d80((longlong)local_50,(ulonglong)(byte)puVar7[-9],param_3,uVar8); if (puVar7[-5] < 8) { puVar4 = puVar7 + -8; } else { puVar4 = (ulonglong *)puVar7[-8]; } FUN_1400767c0((longlong)local_50,(short *)puVar4); if (*puVar7 < 8) { puVar4 = puVar7 + -3; } else { puVar4 = (ulonglong *)puVar7[-3]; } FUN_1400767c0((longlong)local_50,(short *)puVar4); if (puVar7[5] < 8) { puVar4 = puVar7 + 2; } else { puVar4 = (ulonglong *)puVar7[2]; } FUN_1400767c0((longlong)local_50,(short *)puVar4); puVar6 = puVar6 + 0x28; puVar7 = puVar7 + 0x14; } while (puVar6 != (uint *)param_7[1]); } uVar1 = (**(code **)(*param_1 + 0x18)) (param_1,param_2,uVar9,param_4,local_50,L"PT_AGENT_DATA",0x85fd); FUN_14008a320(&local_48); if ((local_40 != 0) && (local_34 < 0)) { /* WARNING: Subroutine does not return */ FUN_14003dec0(); } return uVar1; }