server-re/decomp/DBCServer_Release_x64/full/functions/0x14021c130.c

53 lines
1.4 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x14021c130 FUN_14021c130
* Pseudocode, not original source. */
undefined8 *
FUN_14021c130(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
{
undefined8 *puVar1;
double *pdVar2;
longlong lVar3;
double dVar4;
double dVar5;
*param_1 = Clock::vftable;
param_1[1] = Clock::vftable;
param_1[2] = 0;
param_1[3] = 0;
param_1[4] = 0;
*(undefined4 *)(param_1 + 5) = 0;
param_1[6] = 0;
param_1[7] = 0;
param_1[10] = 0;
param_1[0xb] = 0;
param_1[0xc] = 0;
param_1[0xe] = 0;
param_1[0xf] = 0;
param_1[0x10] = 0;
param_1[0x12] = 0x3fc999999999999a;
puVar1 = (undefined8 *)param_1[2];
if (puVar1 != (undefined8 *)0x0) {
(**(code **)*puVar1)(puVar1,1,param_3,param_4,0xfffffffffffffffe);
}
param_1[2] = 0;
param_1[0x12] = 0x3fe0000000000000;
FUN_14021c0b0(param_1,0x3f9eb851eb851eb8);
dVar5 = 0.0;
pdVar2 = (double *)param_1[10];
if (pdVar2 != (double *)param_1[0xb]) {
do {
dVar5 = dVar5 + *pdVar2;
pdVar2 = pdVar2 + 1;
} while (pdVar2 != (double *)param_1[0xb]);
}
lVar3 = (longlong)(param_1[0xb] - param_1[10]) >> 3;
dVar4 = (double)lVar3;
if (lVar3 < 0) {
dVar4 = dVar4 + 1.8446744073709552e+19;
}
param_1[4] = dVar5 / dVar4;
return param_1;
}