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

46 lines
1.6 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x1401ba2f0 FUN_1401ba2f0
* Pseudocode, not original source. */
undefined8 *
FUN_1401ba2f0(undefined8 *param_1,longlong *param_2,undefined4 param_3,undefined8 param_4)
{
longlong lVar1;
float fVar2;
undefined1 local_50 [72];
FUN_1401b77f0(param_1 + 1,param_2,param_3,param_4,0xfffffffffffffffe);
*param_1 = param_2;
*(undefined4 *)((longlong)param_1 + 0x34) = 0x3e99999a;
*(undefined4 *)(param_1 + 7) = 0x3d4ccccd;
*(undefined4 *)((longlong)param_1 + 0x3c) = 0x41000000;
fVar2 = (float)*(uint *)(param_1 + 6) * 8.0;
lVar1 = 0;
if ((9.223372e+18 < fVar2) && (fVar2 = fVar2 - 9.223372e+18, fVar2 < 9.223372e+18)) {
lVar1 = -0x8000000000000000;
}
param_1[8] = (longlong)fVar2 + lVar1;
fVar2 = (float)*(uint *)(param_1 + 6) * 0.05;
lVar1 = 0;
if ((9.223372e+18 < fVar2) && (fVar2 = fVar2 - 9.223372e+18, fVar2 < 9.223372e+18)) {
lVar1 = -0x8000000000000000;
}
param_1[9] = (longlong)fVar2 + lVar1;
if ((ulonglong)((longlong)fVar2 + lVar1) < 0x11) {
param_1[9] = 0;
}
lVar1 = (**(code **)(*param_2 + 0x18))(param_2);
if (lVar1 == 0) {
/* WARNING: Subroutine does not return */
FUN_14016d6b0();
}
if (param_1[5] != 0) {
FUN_14016d300(local_50,PTR_u_Collection_object_can_use_fast_h_140344e48);
/* WARNING: Subroutine does not return */
_CxxThrowException(local_50,(ThrowInfo *)&DAT_1403417f8);
}
param_1[0xb] = lVar1;
return param_1;
}