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/0x14003e8e0.c
Normal file
108
decomp/Agent_Release_x64/full/functions/0x14003e8e0.c
Normal file
|
|
@ -0,0 +1,108 @@
|
|||
/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
|
||||
* Ghidra 12.1.2 decompiler output for 0x14003e8e0 FUN_14003e8e0
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
void FUN_14003e8e0(undefined8 *param_1,longlong param_2,longlong param_3)
|
||||
|
||||
{
|
||||
ulonglong uVar1;
|
||||
undefined8 *puVar2;
|
||||
longlong lVar3;
|
||||
undefined8 *puVar4;
|
||||
int iVar5;
|
||||
undefined8 *puVar6;
|
||||
longlong lVar7;
|
||||
|
||||
if (param_2 < 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14002f590();
|
||||
}
|
||||
if (-1 < param_3) {
|
||||
param_1[3] = param_3;
|
||||
}
|
||||
if (param_2 == 0) {
|
||||
if ((100 < (ulonglong)param_1[2]) && ((void *)*param_1 != (void *)0x0)) {
|
||||
operator_delete__((void *)*param_1);
|
||||
*param_1 = 0;
|
||||
}
|
||||
param_1[1] = 0;
|
||||
param_1[2] = 100;
|
||||
return;
|
||||
}
|
||||
uVar1 = param_1[2];
|
||||
if ((longlong)uVar1 < param_2) {
|
||||
lVar3 = param_1[3];
|
||||
if (lVar3 == 0) {
|
||||
lVar3 = (longlong)(param_1[1] + (ulonglong)((uint)((longlong)param_1[1] >> 0x3f) & 7)) >> 3;
|
||||
if (lVar3 < 4) {
|
||||
lVar3 = 4;
|
||||
}
|
||||
else if (0x400 < lVar3) {
|
||||
lVar3 = 0x400;
|
||||
}
|
||||
}
|
||||
lVar7 = param_2;
|
||||
if (param_2 < (longlong)(lVar3 + uVar1)) {
|
||||
lVar7 = lVar3 + uVar1;
|
||||
}
|
||||
if (lVar7 < (longlong)uVar1) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14002f590();
|
||||
}
|
||||
puVar4 = operator_new(lVar7 << 5);
|
||||
puVar2 = param_1 + 4;
|
||||
if (100 < (ulonglong)param_1[2]) {
|
||||
puVar2 = (undefined8 *)*param_1;
|
||||
}
|
||||
FUN_14003d310(puVar4,(longlong)puVar2,param_1[1]);
|
||||
memset(puVar4 + param_1[1] * 4,0,(param_2 - param_1[1]) * 0x20);
|
||||
iVar5 = 0;
|
||||
lVar3 = param_2 - param_1[1];
|
||||
if (0 < lVar3) {
|
||||
puVar6 = puVar4 + param_1[1] * 4 + 3;
|
||||
do {
|
||||
if (puVar6 + -3 != (undefined8 *)0x0) {
|
||||
*(undefined4 *)(puVar6 + -3) = 0;
|
||||
puVar6[-2] = 0;
|
||||
*puVar6 = 0;
|
||||
puVar6[-1] = 0;
|
||||
}
|
||||
iVar5 = iVar5 + 1;
|
||||
puVar6 = puVar6 + 4;
|
||||
} while (iVar5 < lVar3);
|
||||
}
|
||||
if (100 < (ulonglong)param_1[2]) {
|
||||
operator_delete__(puVar2);
|
||||
}
|
||||
*param_1 = puVar4;
|
||||
param_1[2] = lVar7;
|
||||
}
|
||||
else {
|
||||
puVar2 = param_1 + 4;
|
||||
if (100 < uVar1) {
|
||||
puVar2 = (undefined8 *)*param_1;
|
||||
}
|
||||
lVar3 = param_1[1];
|
||||
if (lVar3 < param_2) {
|
||||
iVar5 = 0;
|
||||
if (0 < param_2 - lVar3) {
|
||||
puVar2 = puVar2 + lVar3 * 4 + 3;
|
||||
do {
|
||||
if (puVar2 + -3 != (undefined8 *)0x0) {
|
||||
*(undefined4 *)(puVar2 + -3) = 0;
|
||||
puVar2[-2] = 0;
|
||||
*puVar2 = 0;
|
||||
puVar2[-1] = 0;
|
||||
}
|
||||
iVar5 = iVar5 + 1;
|
||||
puVar2 = puVar2 + 4;
|
||||
} while ((longlong)iVar5 < param_2 - lVar3);
|
||||
param_1[1] = param_2;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
param_1[1] = param_2;
|
||||
return;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue