53 lines
1.7 KiB
C
53 lines
1.7 KiB
C
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
|
* Ghidra 12.1.2 decompiler output for 0x14021bdd0 FUN_14021bdd0
|
|
* Pseudocode, not original source. */
|
|
|
|
void FUN_14021bdd0(longlong param_1,double param_2)
|
|
|
|
{
|
|
ulonglong *puVar1;
|
|
double *pdVar2;
|
|
double *pdVar3;
|
|
void *_Dst;
|
|
undefined4 uVar4;
|
|
undefined4 uVar5;
|
|
double local_res10;
|
|
|
|
uVar4 = SUB84(param_2,0);
|
|
uVar5 = (undefined4)((ulonglong)param_2 >> 0x20);
|
|
local_res10 = param_2;
|
|
if (param_2 < 0.0) {
|
|
uVar4 = 0x9999999a;
|
|
uVar5 = 0x3fa99999;
|
|
local_res10 = 0.05;
|
|
}
|
|
pdVar2 = *(double **)(param_1 + 0x58);
|
|
puVar1 = (ulonglong *)(param_1 + 0x50);
|
|
if ((&local_res10 < pdVar2) && (pdVar3 = (double *)*puVar1, pdVar3 <= &local_res10)) {
|
|
if (pdVar2 == *(double **)(param_1 + 0x60)) {
|
|
FUN_1401485d0(puVar1);
|
|
}
|
|
if (*(undefined8 **)(param_1 + 0x58) != (undefined8 *)0x0) {
|
|
**(undefined8 **)(param_1 + 0x58) =
|
|
*(undefined8 *)(*puVar1 + ((longlong)&local_res10 - (longlong)pdVar3 >> 3) * 8);
|
|
}
|
|
}
|
|
else {
|
|
if (pdVar2 == *(double **)(param_1 + 0x60)) {
|
|
FUN_1401485d0(puVar1);
|
|
}
|
|
if (*(undefined8 **)(param_1 + 0x58) != (undefined8 *)0x0) {
|
|
**(undefined8 **)(param_1 + 0x58) = CONCAT44(uVar5,uVar4);
|
|
}
|
|
}
|
|
*(longlong *)(param_1 + 0x58) = *(longlong *)(param_1 + 0x58) + 8;
|
|
_Dst = (void *)*puVar1;
|
|
if ((ulonglong)*(uint *)(param_1 + 0x40) <
|
|
(ulonglong)(*(longlong *)(param_1 + 0x58) - (longlong)_Dst >> 3)) {
|
|
memmove(_Dst,(void *)((longlong)_Dst + 8),
|
|
*(longlong *)(param_1 + 0x58) - ((longlong)_Dst + 8) & 0xfffffffffffffff8);
|
|
*(longlong *)(param_1 + 0x58) = *(longlong *)(param_1 + 0x58) + -8;
|
|
}
|
|
return;
|
|
}
|
|
|