88 lines
2.8 KiB
C
88 lines
2.8 KiB
C
/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
|
|
* Ghidra 12.1.2 decompiler output for 0x1400c08b0 FUN_1400c08b0
|
|
* Pseudocode, not original source. */
|
|
|
|
void FUN_1400c08b0(longlong *param_1,longlong param_2,size_t param_3,undefined8 param_4)
|
|
|
|
{
|
|
int iVar1;
|
|
longlong *plVar2;
|
|
longlong lVar3;
|
|
undefined ***pppuVar4;
|
|
ulonglong uVar5;
|
|
uint uVar6;
|
|
ulonglong uVar7;
|
|
ulonglong uVar8;
|
|
undefined8 uVar9;
|
|
double dVar10;
|
|
undefined **local_30;
|
|
longlong *local_28;
|
|
LPVOID local_20;
|
|
undefined8 local_18;
|
|
undefined8 local_10;
|
|
|
|
plVar2 = (longlong *)
|
|
(**(code **)(**(longlong **)*param_1 + 0x38))
|
|
(*(longlong **)*param_1,param_2,param_3,param_4,0xfffffffffffffffe);
|
|
uVar7 = 0;
|
|
local_28 = (longlong *)0x0;
|
|
local_20 = (LPVOID)0x0;
|
|
local_18 = 0;
|
|
local_10 = 0;
|
|
local_30 = Proud::CUncompressedFrameNumberArray::vftable;
|
|
if (plVar2 == (longlong *)0x0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14002f590();
|
|
}
|
|
uVar8 = uVar7;
|
|
if (*(ulonglong **)(param_2 + 0x20) != (ulonglong *)0x0) {
|
|
uVar8 = **(ulonglong **)(param_2 + 0x20);
|
|
}
|
|
pppuVar4 = &local_30;
|
|
local_28 = plVar2;
|
|
FUN_1400a3120(uVar8,(longlong)pppuVar4,param_3,param_4);
|
|
if (0 < (int)local_18) {
|
|
iVar1 = (int)local_18 + -1;
|
|
if ((iVar1 < 0) || ((int)local_18 <= iVar1)) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14002f5c0(uVar8,pppuVar4,param_3,param_4);
|
|
}
|
|
*(undefined4 *)(*param_1 + 0xe4) = *(undefined4 *)((longlong)local_20 + (longlong)iVar1 * 4);
|
|
uVar9 = (**(code **)(**(longlong **)*param_1 + 0x18))();
|
|
*(undefined8 *)(*param_1 + 0xe8) = uVar9;
|
|
*(int *)(*param_1 + 0x30) = *(int *)(*param_1 + 0x30) + 1;
|
|
}
|
|
lVar3 = *param_1 + 8;
|
|
uVar5 = (ulonglong)*(uint *)(param_2 + 0x34);
|
|
FUN_1400b9150(lVar3,*(uint *)(param_2 + 0x34));
|
|
*(undefined4 *)(*param_1 + 0xe0) = *(undefined4 *)(param_2 + 0x34);
|
|
uVar8 = uVar7;
|
|
if (0 < (int)local_18) {
|
|
do {
|
|
if (((longlong)uVar8 < 0) || ((int)local_18 <= (int)uVar7)) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14002f5c0(lVar3,uVar5,param_3,param_4);
|
|
}
|
|
lVar3 = *param_1 + 8;
|
|
uVar6 = *(uint *)((longlong)local_20 + uVar8 * 4);
|
|
uVar5 = (ulonglong)uVar6;
|
|
FUN_1400b9110(lVar3,uVar6);
|
|
uVar6 = (int)uVar7 + 1;
|
|
uVar7 = (ulonglong)uVar6;
|
|
uVar8 = uVar8 + 1;
|
|
} while ((int)uVar6 < (int)local_18);
|
|
}
|
|
dVar10 = (double)*(int *)(*param_1 + 0x14);
|
|
*(int *)(*param_1 + 0x14) = (int)(((double)*(int *)(param_2 + 0x30) - dVar10) * 0.9 + dVar10) + 1;
|
|
local_30 = Proud::CFastArray<Proud::FrameNumber,1>::vftable;
|
|
if (local_20 != (LPVOID)0x0) {
|
|
if (local_28 == (longlong *)0x0) {
|
|
FUN_1400302f0(local_20);
|
|
}
|
|
else {
|
|
(**(code **)(*local_28 + 0x18))();
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|