/* 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; }