94 lines
2.6 KiB
C
94 lines
2.6 KiB
C
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
|
|
* Ghidra 12.1.2 decompiler output for 0x14003c270 FUN_14003c270
|
|
* Pseudocode, not original source. */
|
|
|
|
void FUN_14003c270(undefined8 *param_1,longlong param_2)
|
|
|
|
{
|
|
longlong *plVar1;
|
|
ulonglong *puVar2;
|
|
ulonglong uVar3;
|
|
ulonglong *puVar4;
|
|
longlong lVar5;
|
|
longlong *plVar6;
|
|
ulonglong *puVar7;
|
|
longlong *plVar8;
|
|
longlong *local_48;
|
|
longlong *plStack_40;
|
|
|
|
FUN_14003d040((int *)(param_1 + 0xe));
|
|
if (param_1[10] == 0) {
|
|
local_48 = (longlong *)0x0;
|
|
}
|
|
else {
|
|
local_48 = (longlong *)param_1[0xc];
|
|
if (local_48 != (longlong *)0x0) {
|
|
plStack_40 = (longlong *)*local_48;
|
|
plVar8 = local_48;
|
|
goto joined_r0x00014003c2e1;
|
|
}
|
|
}
|
|
plStack_40 = (longlong *)0x0;
|
|
plVar8 = local_48;
|
|
joined_r0x00014003c2e1:
|
|
while ((plStack_40 != (longlong *)0x0 && (*(longlong *)(plStack_40[2] + 8) != param_2))) {
|
|
plStack_40 = (longlong *)*plStack_40;
|
|
while (plStack_40 == (longlong *)0x0) {
|
|
local_48 = local_48 + 1;
|
|
plVar8 = local_48;
|
|
plStack_40 = (longlong *)*local_48;
|
|
}
|
|
if (local_48 == plStack_40) {
|
|
plStack_40 = (longlong *)0x0;
|
|
}
|
|
}
|
|
printf("ApiSocket Leave [Now:%d] !!!\n");
|
|
puVar2 = (ulonglong *)plStack_40[2];
|
|
if (puVar2 != (ulonglong *)0x0) {
|
|
uVar3 = param_1[1];
|
|
lVar5 = param_1[2];
|
|
while (uVar3 != 0) {
|
|
if ((uVar3 <= puVar2) && (puVar2 < (uVar3 - 0x10) + lVar5)) {
|
|
if (uVar3 != 0) {
|
|
puVar4 = (ulonglong *)*param_1;
|
|
if ((puVar4 == (ulonglong *)0x0) || (puVar2 < puVar4)) {
|
|
*puVar2 = (ulonglong)puVar4;
|
|
*param_1 = puVar2;
|
|
}
|
|
else {
|
|
for (puVar7 = (ulonglong *)*puVar4; (puVar7 != (ulonglong *)0x0 && (puVar7 <= puVar2));
|
|
puVar7 = (ulonglong *)*puVar7) {
|
|
puVar4 = puVar7;
|
|
}
|
|
*puVar2 = *puVar4;
|
|
*puVar4 = (ulonglong)puVar2;
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
plVar1 = (longlong *)(lVar5 + -8 + uVar3);
|
|
uVar3 = *(ulonglong *)(lVar5 + -0x10 + uVar3);
|
|
lVar5 = *plVar1;
|
|
}
|
|
lVar5 = *plStack_40;
|
|
while (lVar5 == 0) {
|
|
plVar8 = plVar8 + 1;
|
|
lVar5 = *plVar8;
|
|
}
|
|
param_1[10] = param_1[10] + -1;
|
|
plVar1 = (longlong *)*local_48;
|
|
plVar6 = local_48;
|
|
while (plVar1 != plStack_40) {
|
|
plVar6 = (longlong *)*plVar6;
|
|
plVar1 = (longlong *)*plVar6;
|
|
}
|
|
*plVar6 = *plStack_40;
|
|
operator_delete(plStack_40);
|
|
if ((local_48 == (longlong *)param_1[0xc]) && (*local_48 == 0)) {
|
|
param_1[0xc] = plVar8;
|
|
}
|
|
}
|
|
FUN_14003d0d0((longlong)(param_1 + 0xe));
|
|
return;
|
|
}
|
|
|