70 lines
1.7 KiB
C
70 lines
1.7 KiB
C
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
|
|
* Ghidra 12.1.2 decompiler output for 0x1400da8d0 FUN_1400da8d0
|
|
* Pseudocode, not original source. */
|
|
|
|
ulonglong FUN_1400da8d0(char *param_1,uint param_2,int param_3,undefined4 param_4,undefined8 param_5
|
|
)
|
|
|
|
{
|
|
int iVar1;
|
|
void *_Memory;
|
|
ulonglong uVar2;
|
|
undefined8 *puVar3;
|
|
uint uVar4;
|
|
ulonglong uVar5;
|
|
undefined8 *puVar6;
|
|
undefined8 uVar7;
|
|
|
|
if (param_1 == (char *)0x0) {
|
|
return 0x10;
|
|
}
|
|
uVar5 = 0;
|
|
uVar4 = 0;
|
|
uVar2 = uVar5;
|
|
if (param_3 != 0) {
|
|
puVar3 = ¶m_5;
|
|
iVar1 = param_3;
|
|
do {
|
|
if (0xe < iVar1 - 1U) {
|
|
return 0x10;
|
|
}
|
|
iVar1 = *(int *)(puVar3 + 1);
|
|
uVar2 = (ulonglong)((int)uVar2 + 1);
|
|
puVar3 = puVar3 + 3;
|
|
} while (iVar1 != 0);
|
|
}
|
|
if ((int)uVar2 == 0) {
|
|
return 2;
|
|
}
|
|
_Memory = calloc(0x38,uVar2);
|
|
if (_Memory == (void *)0x0) {
|
|
return 0xd;
|
|
}
|
|
puVar3 = ¶m_5;
|
|
if (param_3 != 0) {
|
|
puVar6 = (undefined8 *)((longlong)_Memory + 8);
|
|
uVar7 = param_5;
|
|
do {
|
|
if (0xe < param_3 - 1U) {
|
|
uVar2 = 0x10;
|
|
goto LAB_1400da9ea;
|
|
}
|
|
*(int *)(puVar6 + -1) = param_3;
|
|
*(undefined4 *)(puVar6 + 1) = param_4;
|
|
*puVar6 = uVar7;
|
|
param_3 = *(int *)(puVar3 + 1);
|
|
param_4 = *(undefined4 *)(puVar3 + 2);
|
|
uVar7 = puVar3[3];
|
|
puVar3 = puVar3 + 3;
|
|
uVar4 = (int)uVar5 + 1;
|
|
uVar5 = (ulonglong)uVar4;
|
|
puVar6 = puVar6 + 7;
|
|
} while (param_3 != 0);
|
|
}
|
|
uVar2 = FUN_1400daa10(param_1,param_2,(longlong)_Memory,uVar4,1);
|
|
uVar2 = uVar2 & 0xffffffff;
|
|
LAB_1400da9ea:
|
|
free(_Memory);
|
|
return uVar2;
|
|
}
|
|
|