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