-----------------------------------------------------------------------------------------------------------------------------
                      [BUG/PRB.] VFP 9.0 FIX - APPEND THE PATH OF THE FILE CHOSEN IN THE OPEN DIALOG BOX TO THE VISUAL FOXPRO SEARCH PATH
                                 October 2024
                 -----------------------------------------------------------------------------------------------------------------------------
                                     CCB



1. BUG:

     In vfp9 (and vfp6, vfp7, vfp8), after we choose a file in some open dialog boxes,
     it will append the path of the file to the Visual FoxPro search path.

     The bug occurs in the following dialog boxes:
     LOCFILE() function (Open dialog box)
     NEWOBJECT() function (Locate class dialog box)
     MODIFY QUERY | CREATE QUERY command (Locate table file dialog box)
     MODIFY VIEW | CREATE SQL VIEW - SQL command (Locate table file dialog box)
     REPORT FORM | LABEL FORM command (Locate image file dialog box)
     SYSTEM MENU: Table --> Append Records (Locate macimp.app dialog box)
     DataEnvironment object (Locate database dialog box)
     IntelliSense Manager (Locate foxcode.dbf dialog box)

     The bug does not occur in the following dialog boxes:
     GETDIR() function (Select directory dialog box)
     GETFILE() function (Open dialog box)
     GETPICT() function (Open picture dialog box)
     PUTFILE() function (Save as dialog box)

     In VFP Advanced, if we disable appending the path of the file chosen in the open dialog box to the Visual FoxPro search path,
     after we choose a file in some open dialog boxes, it will not append the path of the file to the Visual FoxPro search path.


2. CAUSE:

     There are some BUGs in the following code.


3. RESOLUTION:

     We can write some code to fix the BUG.

     CallBack7504c4 :: ; proc near
             push ebp                                                        ;0x007504c4 :        55
             mov ebp , esp                                                   ;0x007504c5 :        8bec
             and esp , 0FFFFFFF8h                                            ;0x007504c7 :        83e4f8
             sub esp , 053Ch                                                 ;0x007504ca :        81ec3c050000
             mov eax ,  dword ptr [ Data937090 ]                             ;0x007504d0 :        a190709300
             push ebx                                                        ;0x007504d5 :        53
             push esi                                                        ;0x007504d6 :        56
             push edi                                                        ;0x007504d7 :        57
             mov  dword ptr [ esp + 0544h ] , eax                            ;0x007504d8 :        89842444050000
             call Fun420d8c                                                  ;0x007504df :        e8a808cdff
             mov ecx , eax                                                   ;0x007504e4 :        8bc8
             xor eax , eax                                                   ;0x007504e6 :        33c0
             lea esi ,  dword ptr [ ecx + 8 ]                                ;0x007504e8 :        8d7108
             mov  dword ptr [ esp + 20 ] , ecx                               ;0x007504eb :        894c2414
             mov  dword ptr [ esp + 36 ] , eax                               ;0x007504ef :        89442424
             mov  dword ptr [ esp + 32 ] , eax                               ;0x007504f3 :        89442420
             lea ebx ,  dword ptr [ esp + 0138h ]                            ;0x007504f7 :        8d9c2438010000
             mov  dword ptr [ esp + 24 ] , esi                               ;0x007504fe :        89742418
             mov  dword ptr [ esp + 28 ] , esi                               ;0x00750502 :        8974241c

     Label750506 ::
             cmp  dword ptr [ Data936f1c ] , eax                             ;0x00750506 :        39051c6f9300
             mov  byte ptr [ebx] , 00h                                       ;0x0075050c :        c60300
             jle Label750549                                                 ;0x0075050f :        7e38
             lea eax ,  dword ptr [ esi - 8 ]                                ;0x00750511 :        8d46f8
             call Fun42371d                                                  ;0x00750514 :        e80432cdff
             mov  ecx , dword ptr [esi]                                      ;0x00750519 :        8b0e
             mov eax , 0FFh                                                  ;0x0075051b :        b8ff000000
             cmp ecx , eax                                                   ;0x00750520 :        3bc8
             ja Label750526                                                  ;0x00750522 :        7702
             mov eax , ecx                                                   ;0x00750524 :        8bc1

     Label750526 ::
             mov  edx , dword ptr [ esi + 24 ]                               ;0x00750526 :        8b5618
             mov  esi , dword ptr [edx]                                      ;0x00750529 :        8b32
             mov ecx , eax                                                   ;0x0075052b :        8bc8
             mov edx , ecx                                                   ;0x0075052d :        8bd1
             shr ecx , 02h                                                   ;0x0075052f :        c1e902
             mov edi , ebx                                                   ;0x00750532 :        8bfb
             rep movsd                                                       ;0x00750534 :        f3a5
             mov ecx , edx                                                   ;0x00750536 :        8bca
             and ecx , 03h                                                   ;0x00750538 :        83e103
             rep movsb                                                       ;0x0075053b :        f3a4
             mov  esi , dword ptr [ esp + 28 ]                               ;0x0075053d :        8b74241c
             mov  byte ptr [ eax + ebx ] , 00h                               ;0x00750541 :        c6041800
             mov  eax , dword ptr [ esp + 32 ]                               ;0x00750545 :        8b442420

     Label750549 ::
             inc eax                                                         ;0x00750549 :        40
             add esi , 02Ch                                                  ;0x0075054a :        83c62c
             add ebx , 0101h                                                 ;0x0075054d :        81c301010000
             cmp eax , 04h                                                   ;0x00750553 :        83f804
             mov  dword ptr [ esp + 32 ] , eax                               ;0x00750556 :        89442420
             mov  dword ptr [ esp + 28 ] , esi                               ;0x0075055a :        8974241c
             jl Label750506                                                  ;0x0075055e :        7ca6
             mov  al , byte ptr [ esp + 043Bh ]                              ;0x00750560 :        8a84243b040000
             test al , al                                                    ;0x00750567 :        84c0
             jne Label750576                                                 ;0x00750569 :        750b
             mov  dword ptr [ esp + 043Bh ] , 00h                            ;0x0075056b :        c784243b04000000000000

     Label750576 ::
             mov  al , byte ptr [ esp + 0239h ]                              ;0x00750576 :        8a842439020000
             test al , al                                                    ;0x0075057d :        84c0
             mov  dword ptr [ esp + 16 ] , 00h                               ;0x0075057f :        c744241000000000
             je Label750600                                                  ;0x00750587 :        7477
             lea eax ,  dword ptr [ esp + 16 ]                               ;0x00750589 :        8d442410
             push eax                                                        ;0x0075058d :        50
             lea ecx ,  dword ptr [ esp + 013Ch ]                            ;0x0075058e :        8d8c243c010000
             push ecx                                                        ;0x00750595 :        51
             lea edx ,  dword ptr [ esp + 56 ]                               ;0x00750596 :        8d542438
             push edx                                                        ;0x0075059a :        52
             lea eax ,  dword ptr [ esp + 0245h ]                            ;0x0075059b :        8d842445020000
             push eax                                                        ;0x007505a2 :        50
             call Fun74c904                                                  ;0x007505a3 :        e85cc3ffff
             test eax , eax                                                  ;0x007505a8 :        85c0
             je Label7508d8                                                  ;0x007505aa :        0f8428030000
             mov  eax , dword ptr [ esp + 16 ]                               ;0x007505b0 :        8b442410
             test eax , eax                                                  ;0x007505b4 :        85c0
             je Label7505f9                                                  ;0x007505b6 :        7441
             xor edx , edx                                                   ;0x007505b8 :        33d2
             lea ecx ,  dword ptr [ esp + 48 ]                               ;0x007505ba :        8d4c2430
             call Fun43d2bf                                                  ;0x007505be :        e8fcccceff
             mov esi , eax                                                   ;0x007505c3 :        8bf0
             test esi , esi                                                  ;0x007505c5 :        85f6
             je Label7505f1                                                  ;0x007505c7 :        7428
             mov  ecx , dword ptr [esi]                                      ;0x007505c9 :        8b0e
             pushd 00h                                                       ;0x007505cb :        6a00
             pushd 05Ch                                                      ;0x007505cd :        6a5c
             pushd 0100h                                                     ;0x007505cf :        6800010000
             lea edx ,  dword ptr [ esp + 0144h ]                            ;0x007505d4 :        8d942444010000
             call Fun43d33e                                                  ;0x007505db :        e85ecdceff
             mov ecx , esi                                                   ;0x007505e0 :        8bce
             call Fun42c1e2                                                  ;0x007505e2 :        e8fbbbcdff
             mov eax , 08000h                                                ;0x007505e7 :        b800800000
             jmp Label75067c                                                 ;0x007505ec :        e98b000000

     Label7505f1 ::
             mov  byte ptr [ esp + 0138h ] , 00h                             ;0x007505f1 :        c684243801000000

     Label7505f9 ::
             mov eax , 08000h                                                ;0x007505f9 :        b800800000
             jmp Label75067c                                                 ;0x007505fe :        eb7c

     Label750600 ::
             xor ebx , ebx                                                   ;0x00750600 :        33db
             lea edx ,  dword ptr [ esp + 0138h ]                            ;0x00750602 :        8d942438010000
             lea edi ,  dword ptr [ esp + 48 ]                               ;0x00750609 :        8d7c2430
             call Fun74c83d                                                  ;0x0075060d :        e82bc2ffff
             cmp eax , 01h                                                   ;0x00750612 :        83f801
             mov  dword ptr [ esp + 16 ] , eax                               ;0x00750615 :        89442410
             jne Label750651                                                 ;0x00750619 :        7536
             xor edx , edx                                                   ;0x0075061b :        33d2
             mov ecx , edi                                                   ;0x0075061d :        8bcf
             call Fun43d2bf                                                  ;0x0075061f :        e89bccceff
             mov esi , eax                                                   ;0x00750624 :        8bf0
             test esi , esi                                                  ;0x00750626 :        85f6
             je Label750649                                                  ;0x00750628 :        741f
             mov  ecx , dword ptr [esi]                                      ;0x0075062a :        8b0e
             push ebx                                                        ;0x0075062c :        53
             pushd 05Ch                                                      ;0x0075062d :        6a5c
             pushd 0100h                                                     ;0x0075062f :        6800010000
             lea edx ,  dword ptr [ esp + 0144h ]                            ;0x00750634 :        8d942444010000
             call Fun43d33e                                                  ;0x0075063b :        e8feccceff
             mov ecx , esi                                                   ;0x00750640 :        8bce
             call Fun42c1e2                                                  ;0x00750642 :        e89bbbcdff
             jmp Label750651                                                 ;0x00750647 :        eb08

     Label750649 ::
             mov  byte ptr [ esp + 0138h ] , 00h                             ;0x00750649 :        c684243801000000

     Label750651 ::
             lea eax ,  dword ptr [ esp + 0239h ]                            ;0x00750651 :        8d842439020000
             mov esi , offset Data91fb38                                              ;0x00750658 :        be38fb9100
             mov ecx , eax                                                   ;0x0075065d :        8bc8
             mov edx , 0100h                                                 ;0x0075065f :        ba00010000
             sub esi , ecx                                                   ;0x00750664 :        2bf1

     Label750666 ::
             mov  cl , byte ptr [ esi + eax ]                                ;0x00750666 :        8a0c06
             dec edx                                                         ;0x00750669 :        4a
             test cl , cl                                                    ;0x0075066a :        84c9
             je Label750675                                                  ;0x0075066c :        7407
             mov  byte ptr [eax] , cl                                        ;0x0075066e :        8808
             inc eax                                                         ;0x00750670 :        40
             test edx , edx                                                  ;0x00750671 :        85d2
             ja Label750666                                                  ;0x00750673 :        77f1

     Label750675 ::
             mov  byte ptr [eax] , 00h                                       ;0x00750675 :        c60000
             mov  eax , dword ptr [ esp + 36 ]                               ;0x00750678 :        8b442424

     Label75067c ::
             mov  ecx , dword ptr [ esp + 16 ]                               ;0x0075067c :        8b4c2410
             test ecx , ecx                                                  ;0x00750680 :        85c9
             jne Label750742                                                 ;0x00750682 :        0f85ba000000
             mov  ecx , dword ptr [ esp + 043Bh ]                            ;0x00750688 :        8b8c243b040000
             lea edx ,  dword ptr [ esp + 0138h ]                            ;0x0075068f :        8d942438010000
             push edx                                                        ;0x00750696 :        52
             pushd 00h                                                       ;0x00750697 :        6a00
             pushd 00h                                                       ;0x00750699 :        6a00
             pushd 00h                                                       ;0x0075069b :        6a00
             push ecx                                                        ;0x0075069d :        51
             pushd offset Data91aed0                                                  ;0x0075069e :        68d0ae9100
             push eax                                                        ;0x007506a3 :        50
             pushd 00h                                                       ;0x007506a4 :        6a00
             lea edx ,  dword ptr [ esp + 0259h ]                            ;0x007506a6 :        8d942459020000
             push edx                                                        ;0x007506ad :        52
             pushd 00h                                                       ;0x007506ae :        6a00
             lea edx ,  dword ptr [ esp + 88 ]                               ;0x007506b0 :        8d542458
             lea ecx ,  dword ptr [ esp + 0362h ]                            ;0x007506b4 :        8d8c2462030000
             call Fun7a0587                                                  ;0x007506bb :        e8c7fe0400
             test eax , eax                                                  ;0x007506c0 :        85c0
             jne Label7506ec                                                 ;0x007506c2 :        7528
             test  byte ptr [ Data936f10 ] , 01h                             ;0x007506c4 :        f605106f930001
             je Label7506e2                                                  ;0x007506cb :        7415
             mov eax ,  dword ptr [ Data936f14 ]                             ;0x007506cd :        a1146f9300
             test eax , eax                                                  ;0x007506d2 :        85c0
             jne Label750742                                                 ;0x007506d4 :        756c
             mov  dword ptr [ Data936f14 ] , 078h                            ;0x007506d6 :        c705146f930078000000
             jmp Label750742                                                 ;0x007506e0 :        eb60

     Label7506e2 ::
             mov ecx , 078h                                                  ;0x007506e2 :        b978000000
             call Fun544742                                                  ;0x007506e7 :        e85640dfff

     Label7506ec ::
             xor edx , edx                                                   ;0x007506ec :        33d2
             lea ecx ,  dword ptr [ esp + 48 ]                               ;0x007506ee :        8d4c2430
             call Fun43d2bf                                                  ;0x007506f2 :        e8c8cbceff
             mov  esi , dword ptr [eax]                                      ;0x007506f7 :        8b30
             mov ecx , esi                                                   ;0x007506f9 :        8bce
             lea edi ,  dword ptr [ ecx + 1 ]                                ;0x007506fb :        8d7901
             nop                                                             ;0x007506fe :        90

     Label7506ff ::
             mov  dl , byte ptr [ecx]                                        ;0x007506ff :        8a11
             inc ecx                                                         ;0x00750701 :        41
             test dl , dl                                                    ;0x00750702 :        84d2
             jne Label7506ff                                                 ;0x00750704 :        75f9
             sub ecx , edi                                                   ;0x00750706 :        2bcf
             inc ecx                                                         ;0x00750708 :        41
             mov edx , ecx                                                   ;0x00750709 :        8bd1
             shr ecx , 02h                                                   ;0x0075070b :        c1e902
             lea edi ,  dword ptr [ esp + 0138h ]                            ;0x0075070e :        8dbc2438010000
             rep movsd                                                       ;0x00750715 :        f3a5
             mov ecx , edx                                                   ;0x00750717 :        8bca
             and ecx , 03h                                                   ;0x00750719 :        83e103
             rep movsb                                                       ;0x0075071c :        f3a4
             mov ecx , eax                                                   ;0x0075071e :        8bc8
             call Fun42c1e2                                                  ;0x00750720 :        e8bdbacdff
             lea eax ,  dword ptr [ esp + 48 ]                               ;0x00750725 :        8d442430
             push eax                                                        ;0x00750729 :        50
             lea ecx ,  dword ptr [ esp + 48 ]                               ;0x0075072a :        8d4c2430
             push ecx                                                        ;0x0075072e :        51
             call Fun434bcf                                                  ;0x0075072f :        e89b44ceff


     ;
     ;                 ------------------------------------------------------------------------------------------------------------------
     ;                      VFP 9.0 FIX - APPEND THE PATH OF THE FILE CHOSEN IN THE OPEN DIALOG BOX TO THE VISUAL FOXPRO SEARCH PATH
     ;                                 October 2024
     ;                 ------------------------------------------------------------------------------------------------------------------
     ;                                     CCB
     ;
     ; Append the path of the file chosen in the open dialog box to the Visual FoxPro search path.
     ; LOCFILE() function (Open dialog box).
     ;
     ; 2024/10/11, by ccb
     ;

             cmp dword ptr vfpa_sys917401_data,00h
             je Label750742


             mov eax , offset Data93a8c0                                              ;0x00750734 :        b8c0a89300
             lea ecx ,  dword ptr [ esp + 44 ]                               ;0x00750739 :        8d4c242c
             call Fun409834                                                  ;0x0075073d :        e8f290cbff

     Label750742 ::
             mov  dl , byte ptr [ Data9428dc ]                               ;0x00750742 :        8a15dc289400
             xor dl , 01h                                                    ;0x00750748 :        80f201
             je Label750874                                                  ;0x0075074b :        0f8423010000
             mov  ecx , dword ptr [ Data9388cc ]                             ;0x00750751 :        8b0dcc889300
             mov al ,  byte ptr [ Data9388c8 ]                               ;0x00750757 :        a0c8889300
             inc ecx                                                         ;0x0075075c :        41
             test al , al                                                    ;0x0075075d :        84c0
             mov  dword ptr [ Data9388cc ] , ecx                             ;0x0075075f :        890dcc889300
             je Label75077c                                                  ;0x00750765 :        7415
             lea eax ,  dword ptr [ esp + 36 ]                               ;0x00750767 :        8d442424
             push eax                                                        ;0x0075076b :        50
             call  GetCursorPos                                ;0x0075076c :        ff1580759100
             mov  ecx , dword ptr [ esp + 36 ]                               ;0x00750772 :        8b4c2424
             mov  eax , dword ptr [ esp + 40 ]                               ;0x00750776 :        8b442428
             jmp Label750782                                                 ;0x0075077a :        eb06

     Label75077c ::
             or eax , 0FFFFFFFFh                                             ;0x0075077c :        83c8ff
             or ecx , 0FFFFFFFFh                                             ;0x0075077f :        83c9ff

     Label750782 ::
             push eax                                                        ;0x00750782 :        50
             push ecx                                                        ;0x00750783 :        51
             call  WindowFromPoint                             ;0x00750784 :        ff156c739100
             test eax , eax                                                  ;0x0075078a :        85c0
             je Label7507b9                                                  ;0x0075078c :        742b
             mov edi , eax                                                   ;0x0075078e :        8bf8
             call Fun42e58e                                                  ;0x00750790 :        e8f9ddcdff
             test eax , eax                                                  ;0x00750795 :        85c0
             je Label7507b9                                                  ;0x00750797 :        7420
             mov al ,  byte ptr [ Data9388c8 ]                               ;0x00750799 :        a0c8889300
             test al , al                                                    ;0x0075079e :        84c0
             je Label7507b9                                                  ;0x007507a0 :        7417
             mov eax ,  dword ptr [ Data942ab8 ]                             ;0x007507a2 :        a1b82a9400
             test eax , eax                                                  ;0x007507a7 :        85c0
             jne Label7507b3                                                 ;0x007507a9 :        7508
             pushd 00h                                                       ;0x007507ab :        6a00
             call  ShowCursor                                  ;0x007507ad :        ff1568759100

     Label7507b3 ::
             inc  dword ptr [ Data942ab8 ]                                   ;0x007507b3 :        ff05b82a9400

     Label7507b9 ::
             call Fun5525a2                                                  ;0x007507b9 :        e8e41de0ff
             mov  ecx , dword ptr [ Data93956c ]                             ;0x007507be :        8b0d6c959300
             test ecx , ecx                                                  ;0x007507c4 :        85c9
             je Label7507e2                                                  ;0x007507c6 :        741a
             mov  edx , dword ptr [ecx]                                      ;0x007507c8 :        8b11
             mov  eax , dword ptr [ edx + 68 ]                               ;0x007507ca :        8b4244
             test eax , 0400000h                                             ;0x007507cd :        a900004000
             jne Label7507e2                                                 ;0x007507d2 :        750e
             test al , 01h                                                   ;0x007507d4 :        a801
             je Label7507e2                                                  ;0x007507d6 :        740a
             mov edx , 01h                                                   ;0x007507d8 :        ba01000000
             call Fun43335f                                                  ;0x007507dd :        e87d2bceff

     Label7507e2 ::
             mov edx , 01h                                                   ;0x007507e2 :        ba01000000
             mov ecx , offset Data9395a0                                              ;0x007507e7 :        b9a0959300
             call Fun54ea34                                                  ;0x007507ec :        e843e2dfff
             xor ecx , ecx                                                   ;0x007507f1 :        33c9
             mov  dword ptr [ Data939580 ] , ecx                             ;0x007507f3 :        890d80959300
             xor eax , eax                                                   ;0x007507f9 :        33c0
             mov  dword ptr [ Data939584 ] , ecx                             ;0x007507fb :        890d84959300
             mov dword ptr [ Data939590 ] ,  eax                             ;0x00750801 :        a390959300
             mov  dword ptr [ Data939588 ] , ecx                             ;0x00750806 :        890d88959300
             mov dword ptr [ Data939594 ] ,  eax                             ;0x0075080c :        a394959300
             mov  dword ptr [ Data93958c ] , ecx                             ;0x00750811 :        890d8c959300
             mov  ecx , dword ptr [ Data93b9e4 ]                             ;0x00750817 :        8b0de4b99300
             test ecx , ecx                                                  ;0x0075081d :        85c9
             mov dword ptr [ Data939598 ] ,  eax                             ;0x0075081f :        a398959300
             mov dword ptr [ Data93959c ] ,  eax                             ;0x00750824 :        a39c959300
             je Label75086d                                                  ;0x00750829 :        7442
             mov  eax , dword ptr [ecx]                                      ;0x0075082b :        8b01
             test  byte ptr [ eax + 12 ] , 010h                              ;0x0075082d :        f6400c10
             je Label750845                                                  ;0x00750831 :        7412
             mov  edx , dword ptr [ Data945944 ]                             ;0x00750833 :        8b1544599400
             pushd 01h                                                       ;0x00750839 :        6a01
             pushd 07h                                                       ;0x0075083b :        6a07
             call  dword ptr [ eax + 0ACh ]                                  ;0x0075083d :        ff90ac000000
             jmp Label750859                                                 ;0x00750843 :        eb14

     Label750845 ::
             mov  ecx , dword ptr [ Data942694 ]                             ;0x00750845 :        8b0d94269400
             test ecx , ecx                                                  ;0x0075084b :        85c9
             je Label750859                                                  ;0x0075084d :        740a
             mov edx , 01h                                                   ;0x0075084f :        ba01000000
             call Fun43335f                                                  ;0x00750854 :        e8062bceff

     Label750859 ::
             mov  dword ptr [ Data93b9e4 ] , 00h                             ;0x00750859 :        c705e4b9930000000000
             mov  dword ptr [ Data945944 ] , 0FFFFFFFFh                      ;0x00750863 :        c70544599400ffffffff

     Label75086d ::
             mov  byte ptr [ Data9428dc ] , 01h                              ;0x0075086d :        c605dc28940001

     Label750874 ::
             lea eax ,  dword ptr [ esp + 0138h ]                            ;0x00750874 :        8d842438010000
             lea edx ,  dword ptr [ eax + 1 ]                                ;0x0075087b :        8d5001
             nop                                                             ;0x0075087e :        90

     Label75087f ::
             mov  cl , byte ptr [eax]                                        ;0x0075087f :        8a08
             inc eax                                                         ;0x00750881 :        40
             test cl , cl                                                    ;0x00750882 :        84c9
             jne Label75087f                                                 ;0x00750884 :        75f9
             mov  esi , dword ptr [ esp + 20 ]                               ;0x00750886 :        8b742414
             sub eax , edx                                                   ;0x0075088a :        2bc2
             mov edi , eax                                                   ;0x0075088c :        8bf8
             call Fun420d46                                                  ;0x0075088e :        e8b304cdff
             test eax , eax                                                  ;0x00750893 :        85c0
             mov eax , esi                                                   ;0x00750895 :        8bc6
             je Label7508c5                                                  ;0x00750897 :        742c
             mov  edx , dword ptr [ esp + 24 ]                               ;0x00750899 :        8b542418
             mov  dword ptr [edx] , edi                                      ;0x0075089d :        893a
             mov  edx , dword ptr [ eax + 32 ]                               ;0x0075089f :        8b5020
             mov ecx , edi                                                   ;0x007508a2 :        8bcf
             mov  byte ptr [eax] , 048h                                      ;0x007508a4 :        c60048
             mov  dword ptr [ eax + 4 ] , 00h                                ;0x007508a7 :        c7400400000000
             mov  edi , dword ptr [edx]                                      ;0x007508ae :        8b3a
             mov edx , ecx                                                   ;0x007508b0 :        8bd1
             shr ecx , 02h                                                   ;0x007508b2 :        c1e902
             lea esi ,  dword ptr [ esp + 0138h ]                            ;0x007508b5 :        8db42438010000
             rep movsd                                                       ;0x007508bc :        f3a5
             mov ecx , edx                                                   ;0x007508be :        8bca
             and ecx , 03h                                                   ;0x007508c0 :        83e103
             rep movsb                                                       ;0x007508c3 :        f3a4

     Label7508c5 ::
             mov  ecx , dword ptr [ esp + 24 ]                               ;0x007508c5 :        8b4c2418
             mov  eax , dword ptr [ eax + 32 ]                               ;0x007508c9 :        8b4020
             mov  edx , dword ptr [ecx]                                      ;0x007508cc :        8b11
             mov  eax , dword ptr [eax]                                      ;0x007508ce :        8b00
             push edx                                                        ;0x007508d0 :        52
             mov edx , eax                                                   ;0x007508d1 :        8bd0
             call Fun41ba92                                                  ;0x007508d3 :        e8bab1ccff

     Label7508d8 ::
             mov  ecx , dword ptr [ esp + 0544h ]                            ;0x007508d8 :        8b8c2444050000
             call Fun42bf1d                                                  ;0x007508df :        e839b6cdff
             pop edi                                                         ;0x007508e4 :        5f
             pop esi                                                         ;0x007508e5 :        5e
             pop ebx                                                         ;0x007508e6 :        5b
             mov esp , ebp                                                   ;0x007508e7 :        8be5
             pop ebp                                                         ;0x007508e9 :        5d
             ret                                                             ;0x007508ea :        c3


4. APPLIES TO:

     VFP 6.0.8167.0
     VFP 6.0.8961.0 (SP5)

     VFP 7.0.0.9262
     VFP 7.0.0.9465 (SP1)

     VFP 8.0.0.2521
     VFP 8.0.0.3117 (SP1)

     VFP 9.0.0.2412
     VFP 9.0.0.3504 (SP1)
     VFP 9.0.0.4611 (SP2)
     VFP 9.0.0.5015 (SP2)
     VFP 9.0.0.5411 (SP2)
     VFP 9.0.0.5721 (SP2)
     VFP 9.0.0.5815 (SP2)
     VFP 9.0.0.6303 (SP2)
     VFP 9.0.0.6602 (SP2)
     VFP 9.0.0.7423 (SP2)

     The bug has been fixed in VFP Advanced.


5. REFERENCE WEBSITES:

     1, baiyujia.com:
     http://www.baiyujia.com
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix356.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix100.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix102.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix103.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix287.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix354.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix355.asp

     2, foxite.com:
     https://www.foxite.com/archives/problem-running-my-exe-0000312433.htm
     https://www.foxite.com/archives/locfile-to-locate-folders-0000160957.htm

     3, tek-tips.com:
     https://www.tek-tips.com/threads/select-file-and-start-in-specific-directory-vfp-9.1658176/


6. OTHER:

     For reference only, there is no guarantees.

     Any questions or suggestions, please send me an email at ccb2000@163.com.