decompiled agent_release
This commit is contained in:
parent
baac905ef2
commit
11a3488883
6439 changed files with 229565 additions and 1 deletions
108
decomp/Agent_Release_x64/full/functions/0x14001b020.c
Normal file
108
decomp/Agent_Release_x64/full/functions/0x14001b020.c
Normal file
|
|
@ -0,0 +1,108 @@
|
|||
/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
|
||||
* Ghidra 12.1.2 decompiler output for 0x14001b020 FUN_14001b020
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
uint * FUN_14001b020(uint *param_1,ulonglong *param_2,undefined8 param_3,undefined8 param_4)
|
||||
|
||||
{
|
||||
void *_Src;
|
||||
void *_Dst;
|
||||
uint *puVar1;
|
||||
code *pcVar2;
|
||||
uint uVar3;
|
||||
uint *puVar4;
|
||||
ulonglong uVar5;
|
||||
ulonglong uVar6;
|
||||
int iVar7;
|
||||
undefined8 uVar8;
|
||||
uint uVar9;
|
||||
uint local_res10 [2];
|
||||
uint local_res18 [4];
|
||||
|
||||
puVar4 = local_res10;
|
||||
uVar8 = 4;
|
||||
FUN_140080600(param_1,(undefined8 *)puVar4,4);
|
||||
uVar3 = local_res10[0];
|
||||
if (((int)local_res10[0] < 0) || (DAT_140155140 <= (int)local_res10[0])) {
|
||||
FUN_14009d5d0(local_res10[0],puVar4,uVar8,param_4);
|
||||
}
|
||||
FUN_14000b0f0((longlong *)param_2,(longlong)(int)uVar3);
|
||||
_Src = (void *)param_2[1];
|
||||
_Dst = (void *)*param_2;
|
||||
if (((longlong)_Src - (longlong)_Dst >> 2 != 0) && (_Dst != _Src)) {
|
||||
memmove(_Dst,_Src,0);
|
||||
param_2[1] = (ulonglong)_Dst;
|
||||
}
|
||||
iVar7 = 0;
|
||||
uVar9 = local_res10[0];
|
||||
if (0 < (int)uVar3) {
|
||||
do {
|
||||
uVar8 = FUN_140080600(param_1,(undefined8 *)local_res18,4);
|
||||
puVar4 = (uint *)param_2[1];
|
||||
if ((char)uVar8 != '\0') {
|
||||
uVar9 = local_res18[0];
|
||||
}
|
||||
if ((local_res10 < puVar4) && (puVar1 = (uint *)*param_2, puVar1 <= local_res10)) {
|
||||
if (puVar4 == (uint *)param_2[2]) {
|
||||
uVar5 = (longlong)puVar4 - (longlong)puVar1 >> 2;
|
||||
if (0x3ffffffffffffffe < uVar5) {
|
||||
std::_Xlength_error("vector<T> too long");
|
||||
pcVar2 = (code *)swi(3);
|
||||
puVar4 = (uint *)(*pcVar2)();
|
||||
return puVar4;
|
||||
}
|
||||
uVar5 = uVar5 + 1;
|
||||
uVar6 = (longlong)param_2[2] - (longlong)puVar1 >> 2;
|
||||
if (uVar6 < uVar5) {
|
||||
if (0x3fffffffffffffff - (uVar6 >> 1) < uVar6) {
|
||||
uVar6 = 0;
|
||||
}
|
||||
else {
|
||||
uVar6 = uVar6 + (uVar6 >> 1);
|
||||
}
|
||||
if (uVar6 < uVar5) {
|
||||
uVar6 = uVar5;
|
||||
}
|
||||
FUN_14000b0f0((longlong *)param_2,uVar6);
|
||||
}
|
||||
}
|
||||
if ((undefined4 *)param_2[1] != (undefined4 *)0x0) {
|
||||
*(undefined4 *)param_2[1] =
|
||||
*(undefined4 *)(*param_2 + ((longlong)local_res10 - (longlong)puVar1 >> 2) * 4);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (puVar4 == (uint *)param_2[2]) {
|
||||
uVar5 = (longlong)((longlong)puVar4 - *param_2) >> 2;
|
||||
if (0x3ffffffffffffffe < uVar5) {
|
||||
std::_Xlength_error("vector<T> too long");
|
||||
pcVar2 = (code *)swi(3);
|
||||
puVar4 = (uint *)(*pcVar2)();
|
||||
return puVar4;
|
||||
}
|
||||
uVar5 = uVar5 + 1;
|
||||
uVar6 = (longlong)((longlong)param_2[2] - *param_2) >> 2;
|
||||
if (uVar6 < uVar5) {
|
||||
if (0x3fffffffffffffff - (uVar6 >> 1) < uVar6) {
|
||||
uVar6 = 0;
|
||||
}
|
||||
else {
|
||||
uVar6 = uVar6 + (uVar6 >> 1);
|
||||
}
|
||||
if (uVar6 < uVar5) {
|
||||
uVar6 = uVar5;
|
||||
}
|
||||
FUN_14000b0f0((longlong *)param_2,uVar6);
|
||||
}
|
||||
}
|
||||
if ((uint *)param_2[1] != (uint *)0x0) {
|
||||
*(uint *)param_2[1] = uVar9;
|
||||
}
|
||||
}
|
||||
param_2[1] = param_2[1] + 4;
|
||||
iVar7 = iVar7 + 1;
|
||||
} while (iVar7 < (int)uVar3);
|
||||
}
|
||||
return param_1;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue