A1 C0 4B 53 00    mov     eax, lpLenLBA64

52                push    edx
8B 50 04          mov     edx, [eax+4]
85 D2             test    edx, edx
5A                pop     edx


05 4C 02 00 00    add     eax, 24Ch
89 10             mov     [eax], edx



8B 0D 60 4E 53 00 mov     ecx, lpxxMultipler
80 39 FA          cmp     byte ptr [ecx], 0FAh
72 09             jb      @Grid_SetRowCount
05 4C 02 00 00    add     eax, 24Ch
89 10             mov     [eax], edx
EB 05             jmp     @Skip


8B 0D 60 4E 53 00    mov     ecx, lpxxMultipler
80 39 FA             cmp     byte ptr [ecx], 0FAh
7D 22                jge     @Skip
FF 75 F0             push    [ebp+var_10]
8B 0D 98 74 53 00    mov     ecx, CurRow
0F B7 15 94 74 53 00 movzx   edx, CurCol
A1 08 4A 53 00       mov     eax, lpObj
8B 00                mov     eax, [eax]
8B 80 88 06 00 00    mov     eax, [eax+688h]
E8 BE 55 FD FF       call    @Grids@TStringGrid@SetCells
@Skip:
66 C7 05 68 74 53 00 00 00  mov     word_537468, 0




4.46 orig

.text:00504538 8D 45 F0                             lea     eax, [ebp+var_10]
.text:0050453B 8A 15 A0 74 53 00                    mov     dl, byte_5374A0
.text:00504541 E8 1A 07 F0 FF                       call    unknown_libname_79 ; BDS 2005-2007 and Delphi6-7 Visual Component Library
.text:00504546 8B 45 F0                             mov     eax, [ebp+var_10]
.text:00504549 50                                   push    eax             ; AValue (String)   // <--- nop
.text:0050454A 8B 0D 98 74 53 00                    mov     ecx, CurRow
.text:00504550 85 C9                                test    ecx, ecx
.text:00504552 79 05                                jns     short loc_504559
.text:00504554 E8 43 F6 EF FF                       call    Error_TRuntimeError
.text:00504559                      ; ---------------------------------------------------------------------------
.text:00504559
.text:00504559                      loc_504559:                             ; CODE XREF: ScanFunc+3Aj
.text:00504559 0F B7 15 94 74 53 00                 movzx   edx, CurCol
.text:00504560 A1 08 4A 53 00                       mov     eax, lpObj
.text:00504565 8B 00                                mov     eax, [eax]
.text:00504567 8B 80 88 06 00 00                    mov     eax, [eax+688h]
.text:0050456D E8 BE 55 FD FF                       call    @Grids@TStringGrid@SetCells   // <--- nop
.text:00504572 C6 05 69 74 53 00 00                 mov     byte_537469, 0
.text:00504579 C6 05 68 74 53 00 00                 mov     byte_537468, 0
.text:00504580 0F B7 05 94 74 53 00                 movzx   eax, CurCol
.text:00504587 0F B7 15 C8 44 53 00                 movzx   edx, word_5344C8
.text:0050458E 83 EA 01                             sub     edx, 1
.text:00504591 71 05                                jno     short loc_504598
.text:00504593 E8 0C F6 EF FF                       call    System_Error_5
.text:00504598                      ; ---------------------------------------------------------------------------
.text:00504598
.text:00504598                      loc_504598:                             ; CODE XREF: ScanFunc+79j
.text:00504598 3B C2                                cmp     eax, edx
.text:0050459A 7D 11                                jge     short loc_5045AD
.text:0050459C 66 83 05 94 74 53 00+                add     CurCol, 1
.text:005045A4 73 05                                jnb     short loc_5045AB
.text:005045A6 E8 F9 F5 EF FF                       call    System_Error_5
.text:005045AB                      ; ---------------------------------------------------------------------------
.text:005045AB
.text:005045AB                      loc_5045AB:                             ; CODE XREF: ScanFunc+8Cj
.text:005045AB EB 67                                jmp     short loc_504614

.text:005045AD 66 C7 05 94 74 53 00+                mov     CurCol, 0
.text:005045B6 A1 08 4A 53 00                       mov     eax, lpObj
.text:005045BB 8B 00                                mov     eax, [eax]
.text:005045BD 8B 80 88 06 00 00                    mov     eax, [eax+688h]
.text:005045C3 8B 90 4C 02 00 00                    mov     edx, [eax+24Ch]
.text:005045C9 83 C2 01                             add     edx, 1
.text:005045CC 71 05                                jno     short loc_5045D3
.text:005045CE E8 D1 F5 EF FF                       call    System_Error_5
.text:005045D3                      ; ---------------------------------------------------------------------------
.text:005045D3
.text:005045D3                      loc_5045D3:                             ; CODE XREF: ScanFunc+B4j
.text:005045D3 A1 08 4A 53 00                       mov     eax, lpObj
.text:005045D8 8B 00                                mov     eax, [eax]
.text:005045DA 8B 80 88 06 00 00                    mov     eax, [eax+688h]
.text:005045E0 E8 7F 33 FD FF                       call    @Grids@TCustomGrid@SetRowCount   // <--- nop
.text:005045E5 83 05 98 74 53 00 01                 add     CurRow, 1
.text:005045EC 73 05                                jnb     short loc_5045F3
.text:005045EE E8 B1 F5 EF FF                       call    System_Error_5
.text:005045F3                      ; ---------------------------------------------------------------------------
.text:005045F3
.text:005045F3                      loc_5045F3:                             ; CODE XREF: ScanFunc+D4j
.text:005045F3 8B 15 98 74 53 00                    mov     edx, CurRow

--------------------------------------------------------------------------

4.46 orig

.text:00523BBD 8B 80 CC 06 00 00                    mov     eax, [eax+6CCh]
.text:00523BC3 E8 3C FE F3 FF                       call    @Controls@TControl@GetText$qqrv ; Controls::TControl::GetText(void)
.text:00523BC8 8B 45 D0                             mov     eax, [ebp+var_30] ; _DWORD
.text:00523BCB E8 30 B2 FE FF                       call    xxStrToInt64
.text:00523BD0 8B 0D 54 4A 53 00                    mov     ecx, lpGEndLBA64
.text:00523BD6 89 01                                mov     [ecx], eax
.text:00523BD8 89 51 04                             mov     [ecx+4], edx
.text:00523BDB A1 80 48 53 00                       mov     eax, lpAccessMode
.text:00523BE0 80 38 01                             cmp     byte ptr [eax], 1
.text:00523BE3 76 08                                jbe     short loc_523BED
.text:00523BE5 A1 B4 4C 53 00                       mov     eax, off_534CB4
.text:00523BEA C6 00 01                             mov     byte ptr [eax], 1

.text:00523EB4 A1 C8 93 53 04                       mov     eax, obj
.text:00523EB9 8B 80 CC 06 00 00                    mov     eax, [eax+6CCh]
.text:00523EBF E8 40 FB F3 FF                       call    @Controls@TControl@GetText$qqrv ; Controls::TControl::GetText(void)
.text:00523EC4 8B 45 B0                             mov     eax, [ebp+var_30] ; _DWORD
.text:00523EC7 E8 34 AF FE FF                       call    xxStrToInt64
.text:00523ECC 8B 0D 54 4A 53 00                    mov     ecx, lpGEndLBA64
.text:00523ED2 89 01                                mov     [ecx], eax
.text:00523ED4 89 51 04                             mov     [ecx+4], edx    ; *lpGEndLBA64 = xxStrToInt64(str)
.text:00523ED7 A1 F8 4E 53 00                       mov     eax, lpGBegLBA64
.text:00523EDC FF 70 04                             push    dword ptr [eax+4]
.text:00523EDF FF 30                                push    dword ptr [eax]
.text:00523EE1 8D 45 AC                             lea     eax, [ebp+var_54]
.text:00523EE4 E8 C7 55 EE FF                       call    @Sysutils@IntToStr$qqrj ; Sysutils::IntToStr(__int64)

------------------------------------------------------------------------

4.46 patch

.text:00503487                      loc_503487:                             ; CODE XREF: ScanThread+182j
.text:00503487 90                                   nop
.text:00503488 90                                   nop
.text:00503489 90                                   nop
.text:0050348A 90                                   nop
.text:0050348B 90                                   nop
.text:0050348C 90                                   nop
.text:0050348D 90                                   nop
.text:0050348E 90                                   nop
.text:0050348F 90                                   nop
.text:00503490 90                                   nop
.text:00503491 90                                   nop
.text:00503492 90                                   nop
.text:00503493 B1 40                                mov     cl, 40h
.text:00503495 66 8B 15 64 74 53 00                 mov     dx, SectorsInBlock
.text:0050349C A1 24 73 53 00                       mov     eax, dword_537324
.text:005034A1 B8 01 00 00 00                       mov     eax, 1          ; Patch Scan (FAST)
.text:005034A6 88 45 DB                             mov     [ebp+d_res], al
.text:005034A9 E9 D8 01 00 00                       jmp     loc_503686


4.46 orig

.text:00503487                      loc_503487:                             ; CODE XREF: ScanThread+182j
.text:00503487 FF 35 0C 73 53 00                    push    dword ptr CurLBA64+4
.text:0050348D FF 35 08 73 53 00                    push    dword ptr CurLBA64
.text:00503493 B1 40                                mov     cl, 40h
.text:00503495 66 8B 15 64 74 53 00                 mov     dx, SectorsInBlock
.text:0050349C A1 24 73 53 00                       mov     eax, dword_537324
.text:005034A1 E8 26 37 01 00                       call    DriveSendCmd
.text:005034A6 88 45 DB                             mov     [ebp+d_res], al
.text:005034A9 E9 D8 01 00 00                       jmp     loc_503686




