incorrect range check error / compiling 32 bit with -CpCOREAVX2

FPC 3.3.1 (maybe others / others not tested)

Using a 32bit fpc on Windows (Win 10)

Compile with fpc.exe -MObjFPC -Scaghi -Cirot -O2 -gw3 -gl -l -vewnhibq -CpCOREAVX2 project1.lpr

The range check error only happens with -CpCOREAVX2

program Project1;
{$Mode objfpc}

function MathRound(AValue: ValReal): Int64; inline;
begin
  if AValue >= 0 then
    Result := Trunc(AValue + 0.5)
  else
    Result := Trunc(AValue - 0.5);
end;

function MulDiv(nNumber, nNumerator, nDenominator: Integer): Integer;
begin
  if nDenominator = 0 then
    Result := -1
  else
  if nNumerator = nDenominator then
    Result := nNumber
  else
    Result := MathRound(int64(nNumber) * int64(nNumerator) / nDenominator);
end;

begin
  writeln(
    MulDiv(-13, 72, 96)
  );
end.
0000000000401636 66660F1F840000000000     nop word ptr [eax+eax+$00000000]
0000000000401640 D97C241C                 fnstcw word ptr [esp+$1C]
0000000000401644 D97C2418                 fnstcw word ptr [esp+$18]
0000000000401648 66814C241C000F           or [esp+$1C],$0F00
000000000040164F DB6C2408                 fld tbyte ptr [esp+$08]
0000000000401653 DB2D10F04000             fld tbyte ptr [$0040F010]
0000000000401659 DEE9                     fsubp st(1),st(0)
000000000040165B D96C241C                 fldcw word ptr [esp+$1C]
000000000040165F DF7C2420                 fistp qword ptr [esp+$20]
0000000000401663 D96C2418                 fldcw word ptr [esp+$18]
0000000000401667 9B                       fwait 
0000000000401668 8B742420                 mov esi,[esp+$20]
000000000040166C 8B442424                 mov eax,[esp+$24]
0000000000401670 85C0                     test eax,eax
0000000000401672 740A                     jz +$0A    # $000000000040167E MulDiv+206 project1.lpr:20
0000000000401674 83F8FF                   cmp eax,$FF
0000000000401677 7414                     jz +$14    # $000000000040168D MulDiv+221 project1.lpr:20
0000000000401679 E8123C0000               call +$00003C12    # $0000000000405290 fpc_rangeerror

000000000040167E 81FEFFFFFF7F             cmp esi,$7FFFFFFF
0000000000401684 7610                     jbe +$10    # $0000000000401696 MulDiv+230 project1.lpr:20
0000000000401686 E8053C0000               call +$00003C05    # $0000000000405290 fpc_rangeerror
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

000000000040168B EB09                     jmp +$09    # $0000000000401696 MulDiv+230 project1.lpr:20
000000000040168D 85F6                     test esi,esi
000000000040168F 7C05                     jl +$05    # $0000000000401696 MulDiv+230 project1.lpr:20
0000000000401691 E8FA3B0000               call +$00003BFA    # $0000000000405290 fpc_rangeerror
0000000000401696 89F3                     mov ebx,esi
C:\Users\martin\AppData\Local\Temp\project1.lpr:21  end;

The error happens at 0040168B (2nd last line). esi is 0 / eax is 201