вообще, мне сейчас вникать не особо есть возможность, но есть мнение, что виноват вот этот код:
## Код:
```
0000009BH:   DC 0D 7C 00 00 64    FMUL   DOUBLE [1677721724]
000000A1H:   DC 1C 24    FCOMP   DOUBLE [ESP]
```

мы здесь видим что? а видим мы сравнение 80-bit real (внутреннего формата FPU) — и округлённого до 64 бит результата предыдущего выражения. в тех же случаях, которые я процитировал, оба результата округляются (потому что сохраняются в память) — и бага нет.

как вариант — насильно перевести FPU в режим 64-битных вычислений, например. или просто смириться, запомнить, что результат вычислений с плавающей точкой имеет нестабильный ULP, и писать код с учётом этого.