add agent manager release decomp
This commit is contained in:
parent
31ff800b2a
commit
fac6117145
7019 changed files with 254032 additions and 5 deletions
264
decomp/AgentManager_Release_x64/full/functions/0x14001f920.c
Normal file
264
decomp/AgentManager_Release_x64/full/functions/0x14001f920.c
Normal file
|
|
@ -0,0 +1,264 @@
|
|||
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
|
||||
* Ghidra 12.1.2 decompiler output for 0x14001f920 FUN_14001f920
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
/* WARNING: Type propagation algorithm not settling */
|
||||
|
||||
ulonglong FUN_14001f920(longlong *param_1,FILE *param_2)
|
||||
|
||||
{
|
||||
char cVar1;
|
||||
ulonglong uVar2;
|
||||
ulonglong uVar3;
|
||||
undefined1 auVar4 [16];
|
||||
undefined1 auVar5 [16];
|
||||
undefined1 auVar6 [16];
|
||||
ulonglong *puVar7;
|
||||
long lVar8;
|
||||
int iVar9;
|
||||
longlong *in_RAX;
|
||||
undefined4 extraout_var;
|
||||
char *pcVar10;
|
||||
size_t sVar11;
|
||||
longlong *extraout_RAX;
|
||||
longlong *extraout_RAX_00;
|
||||
__uint64 _Var12;
|
||||
ulonglong *puVar13;
|
||||
ulonglong *puVar14;
|
||||
longlong *extraout_RAX_01;
|
||||
ulonglong uVar15;
|
||||
ulonglong uVar16;
|
||||
char *pcVar17;
|
||||
char *_Src;
|
||||
char *pcVar18;
|
||||
ulonglong *local_res10;
|
||||
ulonglong *local_res18;
|
||||
ulonglong *local_res20;
|
||||
ulonglong *local_a8;
|
||||
ulonglong *local_88;
|
||||
ulonglong *local_80;
|
||||
ulonglong *local_78;
|
||||
ulonglong *local_70;
|
||||
ulonglong *local_68;
|
||||
ulonglong *local_60;
|
||||
ulonglong *local_58;
|
||||
ulonglong *local_50;
|
||||
|
||||
if (param_2 == (FILE *)0x0) {
|
||||
if ((char)param_1[0xb] != '\0') goto LAB_14001f98a;
|
||||
*(undefined1 *)(param_1 + 0xb) = 1;
|
||||
*(undefined4 *)((longlong)param_1 + 0x5c) = 2;
|
||||
pcVar10 = PTR_s_Failed_to_open_file_140174c40;
|
||||
}
|
||||
else {
|
||||
FUN_14001eca0((longlong)param_1);
|
||||
param_1[1] = -1;
|
||||
fseek(param_2,0,2);
|
||||
lVar8 = ftell(param_2);
|
||||
uVar15 = (ulonglong)lVar8;
|
||||
iVar9 = fseek(param_2,0,0);
|
||||
in_RAX = (longlong *)CONCAT44(extraout_var,iVar9);
|
||||
if (0 < lVar8) {
|
||||
local_88 = &DAT_14017ce88;
|
||||
if (DAT_14017ce90 < uVar15) {
|
||||
FUN_14001e1f0((longlong *)&local_88,uVar15);
|
||||
}
|
||||
puVar14 = local_88;
|
||||
pcVar10 = operator_new((longlong)(lVar8 + 1));
|
||||
*pcVar10 = '\0';
|
||||
sVar11 = fread(pcVar10,uVar15,1,param_2);
|
||||
if (sVar11 == 1) {
|
||||
pcVar10[uVar15] = '\0';
|
||||
pcVar18 = pcVar10;
|
||||
_Src = pcVar10;
|
||||
if (*pcVar10 != '\0') {
|
||||
local_res18 = local_70;
|
||||
local_res20 = local_60;
|
||||
local_a8 = local_50;
|
||||
pcVar17 = pcVar10;
|
||||
do {
|
||||
puVar13 = &DAT_14017ce88;
|
||||
if (*pcVar17 == '\n') {
|
||||
pcVar18 = pcVar17 + (1 - (longlong)_Src) + *puVar14;
|
||||
puVar7 = puVar14;
|
||||
if (((char *)puVar14[1] < pcVar18) &&
|
||||
(uVar15 = puVar14[1] + (longlong)pcVar18, puVar14[1] < uVar15)) {
|
||||
local_78 = &DAT_14017ce88;
|
||||
local_res10 = (ulonglong *)*puVar14;
|
||||
if (uVar15 != 0) {
|
||||
auVar4._8_8_ = 0;
|
||||
auVar4._0_8_ = uVar15 + 0x1b >> 2;
|
||||
_Var12 = SUB168(ZEXT816(4) * auVar4,0);
|
||||
if (SUB168(ZEXT816(4) * auVar4,8) != 0) {
|
||||
_Var12 = 0xffffffffffffffff;
|
||||
}
|
||||
puVar13 = operator_new(_Var12);
|
||||
*puVar13 = (ulonglong)local_res10;
|
||||
*(undefined1 *)((longlong)(puVar13 + 2) + (longlong)local_res10) = 0;
|
||||
puVar13[1] = uVar15;
|
||||
local_res18 = puVar13;
|
||||
}
|
||||
memcpy(puVar13 + 2,puVar14 + 2,*puVar14);
|
||||
local_70 = local_80;
|
||||
local_80 = local_res18;
|
||||
local_res18 = local_70;
|
||||
puVar7 = puVar13;
|
||||
local_88 = puVar13;
|
||||
local_78 = puVar14;
|
||||
if (puVar14 != &DAT_14017ce88) {
|
||||
operator_delete__(local_70);
|
||||
}
|
||||
}
|
||||
puVar14 = puVar7;
|
||||
memmove((void *)(*puVar14 + 0x10 + (longlong)puVar14),_Src,
|
||||
(size_t)(pcVar17 + (1 - (longlong)_Src)));
|
||||
*puVar14 = (ulonglong)pcVar18;
|
||||
*(char *)((longlong)puVar14 + (longlong)(pcVar18 + 0x10)) = '\0';
|
||||
pcVar18 = pcVar17 + 1;
|
||||
_Src = pcVar18;
|
||||
}
|
||||
else if (*pcVar17 == '\r') {
|
||||
sVar11 = (longlong)pcVar17 - (longlong)_Src;
|
||||
puVar13 = puVar14;
|
||||
if (0 < (longlong)sVar11) {
|
||||
uVar15 = sVar11 + *puVar14;
|
||||
if ((puVar14[1] < uVar15) && (uVar16 = puVar14[1] + uVar15, puVar14[1] < uVar16)) {
|
||||
local_68 = &DAT_14017ce88;
|
||||
uVar2 = *puVar14;
|
||||
if (uVar16 == 0) {
|
||||
local_res10 = &DAT_14017ce88;
|
||||
}
|
||||
else {
|
||||
auVar5._8_8_ = 0;
|
||||
auVar5._0_8_ = uVar16 + 0x1b >> 2;
|
||||
_Var12 = SUB168(ZEXT816(4) * auVar5,0);
|
||||
if (SUB168(ZEXT816(4) * auVar5,8) != 0) {
|
||||
_Var12 = 0xffffffffffffffff;
|
||||
}
|
||||
local_res10 = operator_new(_Var12);
|
||||
*local_res10 = uVar2;
|
||||
*(undefined1 *)((longlong)local_res10 + uVar2 + 0x10) = 0;
|
||||
local_res10[1] = uVar16;
|
||||
local_res20 = local_res10;
|
||||
}
|
||||
memcpy(local_res10 + 2,puVar14 + 2,*puVar14);
|
||||
local_60 = local_80;
|
||||
puVar13 = local_res10;
|
||||
local_88 = local_res10;
|
||||
local_80 = local_res20;
|
||||
local_res20 = local_60;
|
||||
local_68 = puVar14;
|
||||
if (puVar14 != &DAT_14017ce88) {
|
||||
operator_delete__(local_60);
|
||||
}
|
||||
}
|
||||
memmove((void *)(*puVar13 + 0x10 + (longlong)puVar13),_Src,sVar11);
|
||||
*puVar13 = uVar15;
|
||||
*(undefined1 *)(uVar15 + 0x10 + (longlong)puVar13) = 0;
|
||||
}
|
||||
local_res10 = (ulonglong *)CONCAT71(local_res10._1_7_,10);
|
||||
uVar15 = *puVar13;
|
||||
uVar16 = uVar15 + 1;
|
||||
puVar14 = puVar13;
|
||||
if ((puVar13[1] < uVar16) && (uVar2 = puVar13[1] + uVar16, puVar13[1] < uVar2)) {
|
||||
local_58 = &DAT_14017ce88;
|
||||
uVar3 = *puVar13;
|
||||
if (uVar2 == 0) {
|
||||
puVar14 = &DAT_14017ce88;
|
||||
}
|
||||
else {
|
||||
auVar6._8_8_ = 0;
|
||||
auVar6._0_8_ = uVar2 + 0x1b >> 2;
|
||||
_Var12 = SUB168(ZEXT816(4) * auVar6,0);
|
||||
if (SUB168(ZEXT816(4) * auVar6,8) != 0) {
|
||||
_Var12 = 0xffffffffffffffff;
|
||||
}
|
||||
puVar14 = operator_new(_Var12);
|
||||
*puVar14 = uVar3;
|
||||
*(undefined1 *)((longlong)puVar14 + uVar3 + 0x10) = 0;
|
||||
puVar14[1] = uVar2;
|
||||
local_a8 = puVar14;
|
||||
}
|
||||
memcpy(puVar14 + 2,puVar13 + 2,*puVar13);
|
||||
local_50 = local_80;
|
||||
local_80 = local_a8;
|
||||
local_a8 = local_50;
|
||||
local_88 = puVar14;
|
||||
local_58 = puVar13;
|
||||
if (puVar13 != &DAT_14017ce88) {
|
||||
operator_delete__(local_50);
|
||||
}
|
||||
}
|
||||
memmove((void *)(*puVar14 + 0x10 + (longlong)puVar14),&local_res10,1);
|
||||
*puVar14 = uVar16;
|
||||
*(undefined1 *)(uVar15 + 0x11 + (longlong)puVar14) = 0;
|
||||
pcVar18 = pcVar17 + 1;
|
||||
_Src = pcVar18;
|
||||
if (*pcVar18 == '\n') {
|
||||
pcVar18 = pcVar17 + 2;
|
||||
_Src = pcVar18;
|
||||
}
|
||||
}
|
||||
else {
|
||||
pcVar18 = pcVar17 + 1;
|
||||
}
|
||||
pcVar17 = pcVar18;
|
||||
} while (*pcVar18 != '\0');
|
||||
}
|
||||
if ((longlong)pcVar18 - (longlong)_Src != 0) {
|
||||
FUN_14001e3c0((longlong *)&local_88,_Src,(longlong)pcVar18 - (longlong)_Src);
|
||||
puVar14 = local_88;
|
||||
}
|
||||
operator_delete(pcVar10);
|
||||
in_RAX = (longlong *)(**(code **)(*param_1 + 0x10))(param_1,puVar14 + 2,0,0);
|
||||
if ((char)param_1[0xb] == '\0') {
|
||||
if (puVar14 != &DAT_14017ce88) {
|
||||
operator_delete__(local_80);
|
||||
in_RAX = extraout_RAX_01;
|
||||
}
|
||||
return CONCAT71((int7)((ulonglong)in_RAX >> 8),1);
|
||||
}
|
||||
}
|
||||
else {
|
||||
operator_delete(pcVar10);
|
||||
in_RAX = extraout_RAX;
|
||||
if ((char)param_1[0xb] == '\0') {
|
||||
*(undefined1 *)(param_1 + 0xb) = 1;
|
||||
*(undefined4 *)((longlong)param_1 + 0x5c) = 2;
|
||||
uVar15 = 0xffffffffffffffff;
|
||||
pcVar10 = PTR_s_Failed_to_open_file_140174c40;
|
||||
do {
|
||||
if (uVar15 == 0) break;
|
||||
uVar15 = uVar15 - 1;
|
||||
cVar1 = *pcVar10;
|
||||
pcVar10 = pcVar10 + 1;
|
||||
} while (cVar1 != '\0');
|
||||
in_RAX = FUN_14001e2c0(param_1 + 0xc,PTR_s_Failed_to_open_file_140174c40,~uVar15 - 1);
|
||||
*(undefined8 *)((longlong)param_1 + 0x74) = 0xffffffffffffffff;
|
||||
}
|
||||
}
|
||||
if (puVar14 != &DAT_14017ce88) {
|
||||
operator_delete__(local_80);
|
||||
in_RAX = extraout_RAX_00;
|
||||
}
|
||||
goto LAB_14001f98a;
|
||||
}
|
||||
if ((char)param_1[0xb] != '\0') goto LAB_14001f98a;
|
||||
*(undefined1 *)(param_1 + 0xb) = 1;
|
||||
*(undefined4 *)((longlong)param_1 + 0x5c) = 0xd;
|
||||
pcVar10 = PTR_s_Error_document_empty__140174c98;
|
||||
}
|
||||
uVar15 = 0xffffffffffffffff;
|
||||
pcVar18 = pcVar10;
|
||||
do {
|
||||
if (uVar15 == 0) break;
|
||||
uVar15 = uVar15 - 1;
|
||||
cVar1 = *pcVar18;
|
||||
pcVar18 = pcVar18 + 1;
|
||||
} while (cVar1 != '\0');
|
||||
in_RAX = FUN_14001e2c0(param_1 + 0xc,pcVar10,~uVar15 - 1);
|
||||
*(undefined8 *)((longlong)param_1 + 0x74) = 0xffffffffffffffff;
|
||||
LAB_14001f98a:
|
||||
return (ulonglong)in_RAX & 0xffffffffffffff00;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue