add agent manager release decomp
This commit is contained in:
parent
31ff800b2a
commit
fac6117145
7019 changed files with 254032 additions and 5 deletions
229
decomp/AgentManager_Release_x64/full/functions/0x1400daa10.c
Normal file
229
decomp/AgentManager_Release_x64/full/functions/0x1400daa10.c
Normal file
|
|
@ -0,0 +1,229 @@
|
|||
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
|
||||
* Ghidra 12.1.2 decompiler output for 0x1400daa10 FUN_1400daa10
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
ulonglong FUN_1400daa10(char *param_1,uint param_2,longlong param_3,uint param_4,int param_5)
|
||||
|
||||
{
|
||||
byte bVar1;
|
||||
uint *puVar2;
|
||||
undefined4 uVar3;
|
||||
undefined4 *puVar4;
|
||||
undefined4 extraout_var;
|
||||
undefined4 extraout_var_00;
|
||||
int *piVar5;
|
||||
uint uVar6;
|
||||
ulonglong uVar7;
|
||||
byte *pbVar8;
|
||||
longlong lVar9;
|
||||
bool bVar10;
|
||||
uint local_res8;
|
||||
int iVar11;
|
||||
uint local_38;
|
||||
uint local_34;
|
||||
uint local_30;
|
||||
uint local_2c;
|
||||
longlong local_28;
|
||||
|
||||
uVar7 = (ulonglong)param_4;
|
||||
if ((param_1 == (char *)0x0) || (param_3 == 0)) {
|
||||
return 0x10;
|
||||
}
|
||||
if ((param_2 < 2) || ((*param_1 != '0' && (*param_1 != '1')))) {
|
||||
return 7;
|
||||
}
|
||||
bVar1 = param_1[1];
|
||||
local_34 = 1;
|
||||
if (bVar1 < 0x80) {
|
||||
local_res8 = (uint)bVar1;
|
||||
local_34 = 2;
|
||||
}
|
||||
else if ((char)bVar1 < '\0') {
|
||||
if (bVar1 < 0x81) {
|
||||
return 7;
|
||||
}
|
||||
if (0x83 < bVar1) {
|
||||
return 7;
|
||||
}
|
||||
uVar6 = bVar1 & 0x7f;
|
||||
local_34 = 2;
|
||||
if (param_2 < uVar6 + 2) {
|
||||
return 7;
|
||||
}
|
||||
local_res8 = 0;
|
||||
if ((bVar1 & 0x7f) != 0) {
|
||||
pbVar8 = (byte *)(param_1 + 2);
|
||||
local_34 = uVar6 + 2;
|
||||
do {
|
||||
bVar1 = *pbVar8;
|
||||
pbVar8 = pbVar8 + 1;
|
||||
local_res8 = local_res8 << 8 | (uint)bVar1;
|
||||
uVar6 = uVar6 - 1;
|
||||
} while (uVar6 != 0);
|
||||
}
|
||||
}
|
||||
else {
|
||||
local_res8 = (uint)param_1;
|
||||
}
|
||||
if (param_2 < local_res8 + local_34) {
|
||||
return 7;
|
||||
}
|
||||
if (param_4 != 0) {
|
||||
puVar4 = (undefined4 *)(param_3 + 0x14);
|
||||
do {
|
||||
*puVar4 = 0;
|
||||
puVar4 = puVar4 + 0xe;
|
||||
uVar7 = uVar7 - 1;
|
||||
} while (uVar7 != 0);
|
||||
}
|
||||
local_30 = 0;
|
||||
local_28 = 0;
|
||||
if (param_4 != 0) {
|
||||
do {
|
||||
lVar9 = local_28 * 0x38;
|
||||
local_2c = *(uint *)(lVar9 + 0x10 + param_3);
|
||||
iVar11 = *(int *)(lVar9 + param_3);
|
||||
puVar2 = *(uint **)(lVar9 + 8 + param_3);
|
||||
if ((param_5 == 0) && (*(int *)(lVar9 + 0x14 + param_3) == 1)) goto LAB_1400dac10;
|
||||
if (iVar11 == 0) break;
|
||||
local_38 = local_res8;
|
||||
switch(iVar11) {
|
||||
case 1:
|
||||
uVar7 = FUN_1400e31e0(param_1 + local_34,local_res8,puVar2);
|
||||
if ((int)uVar7 != 0) {
|
||||
return uVar7;
|
||||
}
|
||||
uVar7 = FUN_1400e31c0(&local_38);
|
||||
break;
|
||||
case 2:
|
||||
uVar7 = FUN_1400e3030((byte *)(param_1 + local_34),local_res8,(longlong)puVar2);
|
||||
if ((int)uVar7 == 0) {
|
||||
uVar7 = FUN_1400e2f30((longlong)puVar2,(int *)&local_38);
|
||||
break;
|
||||
}
|
||||
goto LAB_1400dabf4;
|
||||
case 3:
|
||||
uVar7 = FUN_1400e2ed0((byte *)(param_1 + local_34),local_res8,puVar2);
|
||||
if ((int)uVar7 != 0) goto LAB_1400dabf4;
|
||||
uVar3 = FUN_1400e2e80(*puVar2,(int *)&local_38);
|
||||
uVar7 = CONCAT44(extraout_var,uVar3);
|
||||
break;
|
||||
case 4:
|
||||
uVar7 = FUN_1400e2d20((byte *)(param_1 + local_34),local_res8,(longlong)puVar2,&local_2c);
|
||||
if ((int)uVar7 != 0) goto LAB_1400dabf4;
|
||||
*(uint *)(lVar9 + 0x10 + param_3) = local_2c;
|
||||
uVar7 = FUN_1400e2cd0((ulonglong)local_2c,(int *)&local_38);
|
||||
break;
|
||||
case 5:
|
||||
uVar7 = FUN_1400e2bd0((byte *)(param_1 + local_34),local_res8,(byte *)puVar2,&local_2c);
|
||||
if ((int)uVar7 != 0) goto LAB_1400dabf4;
|
||||
*(uint *)(lVar9 + 0x10 + param_3) = local_2c;
|
||||
uVar7 = FUN_1400e2b80(local_2c,(int *)&local_38);
|
||||
break;
|
||||
case 6:
|
||||
if (((local_res8 < 2) || (param_1[local_34] != '\x05')) || (param_1[local_34 + 1] != '\0'))
|
||||
{
|
||||
if (param_5 != 0) {
|
||||
return 7;
|
||||
}
|
||||
goto LAB_1400dac10;
|
||||
}
|
||||
local_38 = 2;
|
||||
goto LAB_1400dabb8;
|
||||
case 7:
|
||||
uVar7 = FUN_1400e2a00((byte *)(param_1 + local_34),local_res8,puVar2,&local_2c);
|
||||
if ((int)uVar7 != 0) goto LAB_1400dabf4;
|
||||
*(uint *)(lVar9 + 0x10 + param_3) = local_2c;
|
||||
uVar7 = FUN_1400e28d0(puVar2,local_2c,(int *)&local_38);
|
||||
break;
|
||||
case 8:
|
||||
uVar7 = FUN_1400e2790((byte *)(param_1 + local_34),local_res8,(undefined1 *)puVar2,&local_2c
|
||||
);
|
||||
if ((int)uVar7 != 0) goto LAB_1400dabf4;
|
||||
*(uint *)(lVar9 + 0x10 + param_3) = local_2c;
|
||||
uVar7 = FUN_1400e26f0((byte *)puVar2,local_2c,(int *)&local_38);
|
||||
break;
|
||||
case 9:
|
||||
uVar7 = FUN_1400e2550((byte *)(param_1 + local_34),local_res8,(undefined1 *)puVar2,&local_2c
|
||||
);
|
||||
if ((int)uVar7 != 0) goto LAB_1400dabf4;
|
||||
*(uint *)(lVar9 + 0x10 + param_3) = local_2c;
|
||||
uVar7 = FUN_1400e24b0((byte *)puVar2,local_2c,(int *)&local_38);
|
||||
break;
|
||||
case 10:
|
||||
uVar7 = FUN_1400e22b0((byte *)(param_1 + local_34),local_res8,(ushort *)puVar2,&local_2c);
|
||||
if ((int)uVar7 != 0) goto LAB_1400dabf4;
|
||||
*(uint *)(lVar9 + 0x10 + param_3) = local_2c;
|
||||
uVar7 = FUN_1400e21a0((ushort *)puVar2,local_2c,(int *)&local_38);
|
||||
break;
|
||||
case 0xb:
|
||||
iVar11 = FUN_1400e1ea0((longlong)(param_1 + local_34),&local_38,puVar2);
|
||||
uVar7 = CONCAT44(extraout_var_00,iVar11);
|
||||
goto joined_r0x0001400daeb6;
|
||||
case 0xc:
|
||||
uVar7 = FUN_1400e18b0((byte *)(param_1 + local_34),&local_38,(longlong)puVar2,local_2c);
|
||||
iVar11 = (int)uVar7;
|
||||
joined_r0x0001400daeb6:
|
||||
if (iVar11 == 0) goto LAB_1400dabb8;
|
||||
LAB_1400dabf4:
|
||||
if (param_5 != 0) {
|
||||
return uVar7;
|
||||
}
|
||||
goto LAB_1400dac10;
|
||||
case 0xd:
|
||||
case 0xf:
|
||||
if (iVar11 == 0xf) {
|
||||
bVar10 = (param_1[local_34] & 0x3fU) == 0x31;
|
||||
LAB_1400dae92:
|
||||
if (!bVar10) {
|
||||
return 7;
|
||||
}
|
||||
}
|
||||
else if (iVar11 == 0xd) {
|
||||
bVar10 = (param_1[local_34] & 0x3fU) == 0x30;
|
||||
goto LAB_1400dae92;
|
||||
}
|
||||
iVar11 = 1;
|
||||
goto LAB_1400dae34;
|
||||
case 0xe:
|
||||
iVar11 = 0;
|
||||
LAB_1400dae34:
|
||||
uVar7 = FUN_1400daa10(param_1 + local_34,local_res8,(longlong)puVar2,local_2c,iVar11);
|
||||
if ((int)uVar7 == 0) {
|
||||
uVar7 = FUN_1400e1c20((longlong)puVar2,local_2c,(int *)&local_38);
|
||||
break;
|
||||
}
|
||||
goto LAB_1400dabf4;
|
||||
default:
|
||||
return 0x10;
|
||||
}
|
||||
if ((int)uVar7 != 0) {
|
||||
return uVar7;
|
||||
}
|
||||
LAB_1400dabb8:
|
||||
local_34 = local_34 + local_38;
|
||||
local_res8 = local_res8 - local_38;
|
||||
*(undefined4 *)(lVar9 + 0x14 + param_3) = 1;
|
||||
if (param_5 == 0) {
|
||||
local_30 = 0xffffffff;
|
||||
local_28 = -1;
|
||||
}
|
||||
LAB_1400dac10:
|
||||
local_30 = local_30 + 1;
|
||||
local_28 = local_28 + 1;
|
||||
} while (local_30 < param_4);
|
||||
}
|
||||
uVar6 = 0;
|
||||
if (param_4 != 0) {
|
||||
piVar5 = (int *)(param_3 + 0x14);
|
||||
do {
|
||||
if (*piVar5 == 0) {
|
||||
return 7;
|
||||
}
|
||||
uVar6 = uVar6 + 1;
|
||||
piVar5 = piVar5 + 0xe;
|
||||
} while (uVar6 < param_4);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue