--------------------------------------------------------------------------------------
                      [BUG/PRB.] VFP 9.0 FIX - THE BUILD EXE COMMAND USES THE WINDOWS SYSTEM CACHE
                                 January 2024
                 --------------------------------------------------------------------------------------
                                     CCB



1. BUG:

     In vfp9 (and vfp6, vfp7, vfp8), somtimes the BUILD EXE command runs failed, vfp will cause the error "File is not open (Error 1113)".


2. CAUSE:

     There are some compatible problems when the BUILD EXE command calls the CreateFileA Windows API
     for the Windows Defender program or the antivirus programs.
     Now if the BUILD EXE command calls the CreateFileA Windows API failed,
     it will call the CreateFileA Windows API 3 times again.

     There are some BUGs in the following code.


3. RESOLUTION:

     We can write some code to fix the BUG.

     Fun6913f7 :: ; proc near
             pushd 07E8h                                                     ;0x006913f7 :        68e8070000
             pushd offset Data92b610                                                  ;0x006913fc :        6810b69200
             call Fun42c14f                                                  ;0x00691401 :        e849add9ff
             mov eax ,  dword ptr [ Data937090 ]                             ;0x00691406 :        a190709300
             mov  dword ptr [ ebp - 28 ] , eax                               ;0x0069140b :        8945e4
             mov  esi , dword ptr [ ebp + 28 ]                               ;0x0069140e :        8b751c
             or  dword ptr [ ebp + 0FFFFF87Ch ] , 0FFFFFFFFh                 ;0x00691411 :        838d7cf8ffffff
             xor ebx , ebx                                                   ;0x00691418 :        33db
             mov  dword ptr [ ebp + 0FFFFF86Ch ] , ebx                       ;0x0069141a :        899d6cf8ffff
             mov  dword ptr [ ebp + 0FFFFF880h ] , ebx                       ;0x00691420 :        899d80f8ffff
             mov  dword ptr [ ebp + 0FFFFF878h ] , ebx                       ;0x00691426 :        899d78f8ffff
             mov ecx , 0152h                                                 ;0x0069142c :        b952010000
             xor eax , eax                                                   ;0x00691431 :        33c0
             lea edi ,  dword ptr [ ebp + 0FFFFF888h ]                       ;0x00691433 :        8dbd88f8ffff
             rep stosd                                                       ;0x00691439 :        f3ab
             cmp esi , ebx                                                   ;0x0069143b :        3bf3
             je Label69147e                                                  ;0x0069143d :        743f
             cmp esi , 04h                                                   ;0x0069143f :        83fe04
             je Label69146b                                                  ;0x00691442 :        7427
             jle Label691463                                                 ;0x00691444 :        7e1d
             cmp esi , 06h                                                   ;0x00691446 :        83fe06
             jle Label69147e                                                 ;0x00691449 :        7e33
             cmp esi , 07h                                                   ;0x0069144b :        83fe07
             jne Label691463                                                 ;0x0069144e :        7513
             mov  byte ptr [ ebp + 0FFFFF887h ] , 074h                       ;0x00691450 :        c68587f8ffff74
             mov  dword ptr [ ebp + 0FFFFFC90h ] , 074h                      ;0x00691457 :        c78590fcffff74000000
             jmp Label69148f                                                 ;0x00691461 :        eb2c

     Label691463 ::
             xor ecx , ecx                                                   ;0x00691463 :        33c9
             inc ecx                                                         ;0x00691465 :        41
             call Fun544742                                                  ;0x00691466 :        e8d732ebff

     Label69146b ::
             mov  byte ptr [ ebp + 0FFFFF887h ] , 044h                       ;0x0069146b :        c68587f8ffff44
             mov  dword ptr [ ebp + 0FFFFFC90h ] , 044h                      ;0x00691472 :        c78590fcffff44000000
             jmp Label69148f                                                 ;0x0069147c :        eb11

     Label69147e ::
             mov  byte ptr [ ebp + 0FFFFF887h ] , 045h                       ;0x0069147e :        c68587f8ffff45
             mov  dword ptr [ ebp + 0FFFFFC90h ] , 045h                      ;0x00691485 :        c78590fcffff45000000

     Label69148f ::
             cmp esi , 07h                                                   ;0x0069148f :        83fe07
             je Label691499                                                  ;0x00691492 :        7405
             cmp esi , 04h                                                   ;0x00691494 :        83fe04
             jne Label6914af                                                 ;0x00691497 :        7516

     Label691499 ::
             mov  dword ptr [ ebp - 4 ] , ebx                                ;0x00691499 :        895dfc
             call  CoFreeUnusedLibraries                       ;0x0069149c :        ff15f47b9100
             jmp Label6914ab                                                 ;0x006914a2 :        eb07

     Label6914a4 ::
             xor eax , eax                                                   ;0x006914a4 :        33c0
             inc eax                                                         ;0x006914a6 :        40
             ret                                                             ;0x006914a7 :        c3

     Label6914a8 ::
             mov  esp , dword ptr [ ebp - 24 ]                               ;0x006914a8 :        8b65e8

     Label6914ab ::
             or  dword ptr [ ebp - 4 ] , 0FFFFFFFFh                          ;0x006914ab :        834dfcff

     Label6914af ::
             lea edx ,  dword ptr [ ebp + 0FFFFF85Ch ]                       ;0x006914af :        8d955cf8ffff
             lea eax ,  dword ptr [ ebp + 0FFFFF808h ]                       ;0x006914b5 :        8d8508f8ffff
             call Fun42c27f                                                  ;0x006914bb :        e8bfadd9ff
             push  dword ptr [ ebp - 4 ]                                     ;0x006914c0 :        ff75fc
             pushd offset Label9163e7                                                  ;0x006914c3 :        68e7639100
             pushd 02h                                                       ;0x006914c8 :        6a02
             push eax                                                        ;0x006914ca :        50
             call Fun42c2be                                                  ;0x006914cb :        e8eeadd9ff
             add esp , 010h                                                  ;0x006914d0 :        83c410
             mov  dword ptr [ ebp - 24 ] , esp                               ;0x006914d3 :        8965e8
             mov  dword ptr [ ebp + 0FFFFF864h ] , eax                       ;0x006914d6 :        898564f8ffff
             xor ebx , ebx                                                   ;0x006914dc :        33db
             cmp eax , ebx                                                   ;0x006914de :        3bc3
             jne Label691764                                                 ;0x006914e0 :        0f857e020000
             mov  esi , dword ptr [ ebp + 32 ]                               ;0x006914e6 :        8b7520
             mov  dword ptr [esi] , 01h                                      ;0x006914e9 :        c70601000000
             push ebx                                                        ;0x006914ef :        53
             mov  edi , dword ptr [ ebp + 12 ]                               ;0x006914f0 :        8b7d0c
             push edi                                                        ;0x006914f3 :        57
             call Fun42c9be                                                  ;0x006914f4 :        e8c5b4d9ff
             test eax , eax                                                  ;0x006914f9 :        85c0
             je Label691517                                                  ;0x006914fb :        741a
             push ebx                                                        ;0x006914fd :        53
             push edi                                                        ;0x006914fe :        57
             call Fun66bc11                                                  ;0x006914ff :        e80da7fdff
             call Fun546c56                                                  ;0x00691504 :        e84d57ebff
             cmp eax , ebx                                                   ;0x00691509 :        3bc3
             je Label691517                                                  ;0x0069150b :        740a
             mov  dword ptr [esi] , ebx                                      ;0x0069150d :        891e
             push eax                                                        ;0x0069150f :        50
             mov ecx , edi                                                   ;0x00691510 :        8bcf
             call Fun44d388                                                  ;0x00691512 :        e871bedbff

     Label691517 ::


     ;
     ;                 ---------------------------------------------------------------------------
     ;                      VFP 9.0 FIX - THE BUILD EXE COMMAND USES THE WINDOWS SYSTEM CACHE
     ;                                  August 2019
     ;                 ---------------------------------------------------------------------------
     ;                                     CCB
     ;
     ; The BUILD EXE command uses the windows system cache.
     ;
     ; 2019/8/3, by ccb
     ;

     ;         mov dword ptr vfpa_buildexe_isbuildexe,01h


             pushd 0Ch                                                       ;0x00691517 :        6a0c
             pop edx                                                         ;0x00691519 :        5a
             mov ecx , edi                                                   ;0x0069151a :        8bcf
             call Fun42ce21                                                  ;0x0069151c :        e800b9d9ff


     ;
     ;                 ---------------------------------------------------------------------------
     ;                      VFP 9.0 FIX - THE BUILD EXE COMMAND USES THE WINDOWS SYSTEM CACHE
     ;                                  August 2019
     ;                 ---------------------------------------------------------------------------
     ;                                     CCB
     ;
     ; The BUILD EXE command uses the windows system cache.
     ;
     ; 2019/8/3, by ccb
     ;

     Label691520 ::
     ;         mov dword ptr vfpa_buildexe_isbuildexe,00h


     Label691521 ::
             mov  dword ptr [ ebp + 0FFFFF87Ch ] , eax                       ;0x00691521 :        89857cf8ffff
             push eax                                                        ;0x00691527 :        50
             mov  al , byte ptr [ ebp + 0FFFFF887h ]                         ;0x00691528 :        8a8587f8ffff
             call Fun69124b                                                  ;0x0069152e :        e818fdffff
             test eax , eax                                                  ;0x00691533 :        85c0
             je Label691764                                                  ;0x00691535 :        0f8429020000
             mov  dword ptr [ ebp + 0FFFFF870h ] , ebx                       ;0x0069153b :        899d70f8ffff
             cmp  byte ptr [ ebp + 0FFFFF887h ] , 044h                       ;0x00691541 :        80bd87f8ffff44
             je Label691562                                                  ;0x00691548 :        7418
             cmp  byte ptr [ ebp + 0FFFFF887h ] , 074h                       ;0x0069154a :        80bd87f8ffff74
             je Label691562                                                  ;0x00691551 :        740f
             push edi                                                        ;0x00691553 :        57
             push  dword ptr [ ebp + 0FFFFF87Ch ]                            ;0x00691554 :        ffb57cf8ffff
             push  dword ptr [ ebp + 20 ]                                    ;0x0069155a :        ff7514
             call Fun690fdf                                                  ;0x0069155d :        e87dfaffff

     Label691562 ::
             push  dword ptr [ ebp + 36 ]                                    ;0x00691562 :        ff7524
             push  dword ptr [ ebp + 20 ]                                    ;0x00691565 :        ff7514
             lea eax ,  dword ptr [ ebp + 0FFFFF874h ]                       ;0x00691568 :        8d8574f8ffff
             push eax                                                        ;0x0069156e :        50
             push  dword ptr [ ebp + 24 ]                                    ;0x0069156f :        ff7518
             push edi                                                        ;0x00691572 :        57
             lea ebx ,  dword ptr [ ebp + 0FFFFF888h ]                       ;0x00691573 :        8d9d88f8ffff
             call Fun66fbcd                                                  ;0x00691579 :        e84fe6fdff
             mov  dword ptr [ ebp + 0FFFFF880h ] , eax                       ;0x0069157e :        898580f8ffff
             xor ebx , ebx                                                   ;0x00691584 :        33db
             cmp eax , ebx                                                   ;0x00691586 :        3bc3
             je Label6915dd                                                  ;0x00691588 :        7453
             mov ecx , 0CA0Ch                                                ;0x0069158a :        b90cca0000
             call Fun42c583                                                  ;0x0069158f :        e8efafd9ff
             mov ecx , eax                                                   ;0x00691594 :        8bc8
             call Fun91589d                                                  ;0x00691596 :        e802432800
             lea eax ,  dword ptr [ ebp + 0FFFFF888h ]                       ;0x0069159b :        8d8588f8ffff
             push eax                                                        ;0x006915a1 :        50
             push  dword ptr [ ebp + 20 ]                                    ;0x006915a2 :        ff7514
             call Fun83261e                                                  ;0x006915a5 :        e874101a00
             lea eax ,  dword ptr [ ebp + 0FFFFF870h ]                       ;0x006915aa :        8d8570f8ffff
             push eax                                                        ;0x006915b0 :        50
             lea eax ,  dword ptr [ ebp + 0FFFFF878h ]                       ;0x006915b1 :        8d8578f8ffff
             push eax                                                        ;0x006915b7 :        50
             push  dword ptr [ ebp + 0FFFFF874h ]                            ;0x006915b8 :        ffb574f8ffff
             lea eax ,  dword ptr [ ebp + 0FFFFF87Ch ]                       ;0x006915be :        8d857cf8ffff
             push eax                                                        ;0x006915c4 :        50
             push  dword ptr [ ebp + 20 ]                                    ;0x006915c5 :        ff7514
             push  dword ptr [ ebp + 24 ]                                    ;0x006915c8 :        ff7518
             lea eax ,  dword ptr [ ebp + 0FFFFF888h ]                       ;0x006915cb :        8d8588f8ffff
             push eax                                                        ;0x006915d1 :        50
             push  dword ptr [ ebp + 0FFFFF880h ]                            ;0x006915d2 :        ffb580f8ffff
             call Fun66ebe0                                                  ;0x006915d8 :        e803d6fdff

     Label6915dd ::
             cmp  byte ptr [ ebp + 0FFFFF887h ] , 045h                       ;0x006915dd :        80bd87f8ffff45
             je Label6915f3                                                  ;0x006915e4 :        740d
             cmp  byte ptr [ ebp + 0FFFFF887h ] , 043h                       ;0x006915e6 :        80bd87f8ffff43
             jne Label69168d                                                 ;0x006915ed :        0f859a000000

     Label6915f3 ::
             push  dword ptr [ ebp + 8 ]                                     ;0x006915f3 :        ff7508
             lea eax ,  dword ptr [ ebp + 0FFFFF860h ]                       ;0x006915f6 :        8d8560f8ffff
             push eax                                                        ;0x006915fc :        50
             call Fun434bcf                                                  ;0x006915fd :        e8cd35daff
             xor edi , edi                                                   ;0x00691602 :        33ff
             xor eax , eax                                                   ;0x00691604 :        33c0
             inc eax                                                         ;0x00691606 :        40
             lea edx ,  dword ptr [ ebp + 0FFFFFDD0h ]                       ;0x00691607 :        8d95d0fdffff
             mov  ecx , dword ptr [ ebp + 12 ]                               ;0x0069160d :        8b4d0c
             call Fun43f2b9                                                  ;0x00691610 :        e8a4dcdaff
             lea eax ,  dword ptr [ ebp + 0FFFFFDD0h ]                       ;0x00691615 :        8d85d0fdffff
             push eax                                                        ;0x0069161b :        50
             lea eax ,  dword ptr [ ebp + 0FFFFF860h ]                       ;0x0069161c :        8d8560f8ffff
             push eax                                                        ;0x00691622 :        50
             lea eax ,  dword ptr [ ebp + 0FFFFFED8h ]                       ;0x00691623 :        8d85d8feffff
             push eax                                                        ;0x00691629 :        50
             call Fun42c5c5                                                  ;0x0069162a :        e896afd9ff
             pushd offset Data9200d4                                                  ;0x0069162f :        68d4009200
             lea eax ,  dword ptr [ ebp + 0FFFFFED8h ]                       ;0x00691634 :        8d85d8feffff
             push eax                                                        ;0x0069163a :        50
             push eax                                                        ;0x0069163b :        50
             call Fun42d3ac                                                  ;0x0069163c :        e86bbdd9ff
             lea edi ,  dword ptr [ ebp + 0FFFFFED8h ]                       ;0x00691641 :        8dbdd8feffff
             dec edi                                                         ;0x00691647 :        4f

     Label691648 ::
             mov  al , byte ptr [ edi + 1 ]                                  ;0x00691648 :        8a4701
             inc edi                                                         ;0x0069164b :        47
             cmp al , bl                                                     ;0x0069164c :        3ac3
             jne Label691648                                                 ;0x0069164e :        75f8
             mov esi , offset Data92781c                                              ;0x00691650 :        be1c789200
             movsd                                                           ;0x00691655 :        a5
             movsd                                                           ;0x00691656 :        a5
             movsw                                                           ;0x00691657 :        66a5
             push ebx                                                        ;0x00691659 :        53
             lea eax ,  dword ptr [ ebp + 0FFFFFED8h ]                       ;0x0069165a :        8d85d8feffff
             push eax                                                        ;0x00691660 :        50
             call Fun42c9be                                                  ;0x00691661 :        e858b3d9ff
             test eax , eax                                                  ;0x00691666 :        85c0
             je Label69168d                                                  ;0x00691668 :        7423
             lea eax ,  dword ptr [ ebp + 0FFFFF870h ]                       ;0x0069166a :        8d8570f8ffff
             push eax                                                        ;0x00691670 :        50
             push  dword ptr [ ebp + 0FFFFF878h ]                            ;0x00691671 :        ffb578f8ffff
             lea eax ,  dword ptr [ ebp + 0FFFFF87Ch ]                       ;0x00691677 :        8d857cf8ffff
             push eax                                                        ;0x0069167d :        50
             lea eax ,  dword ptr [ ebp + 0FFFFFED8h ]                       ;0x0069167e :        8d85d8feffff
             push eax                                                        ;0x00691684 :        50
             push  dword ptr [ ebp + 20 ]                                    ;0x00691685 :        ff7514
             call Fun66ea6a                                                  ;0x00691688 :        e8ddd3fdff

     Label69168d ::
             cmp  byte ptr [ ebp + 0FFFFF887h ] , 044h                       ;0x0069168d :        80bd87f8ffff44
             je Label69169f                                                  ;0x00691694 :        7409
             cmp  byte ptr [ ebp + 0FFFFF887h ] , 074h                       ;0x00691696 :        80bd87f8ffff74
             jne Label6916b1                                                 ;0x0069169d :        7512

     Label69169f ::
             cmp  dword ptr [ ebp + 0FFFFF878h ] , ebx                       ;0x0069169f :        399d78f8ffff
             jne Label6916b1                                                 ;0x006916a5 :        750a
             mov ecx , 03EAh                                                 ;0x006916a7 :        b9ea030000
             call Fun544742                                                  ;0x006916ac :        e89130ebff

     Label6916b1 ::
             cmp  dword ptr [ ebp + 0FFFFF870h ] , ebx                       ;0x006916b1 :        399d70f8ffff
             jne Label6916ee                                                 ;0x006916b7 :        7535
             mov  ecx , dword ptr [ ebp + 0FFFFF87Ch ]                       ;0x006916b9 :        8b8d7cf8ffff
             call Fun42ddf2                                                  ;0x006916bf :        e82ec7d9ff
             push  dword ptr [ ebp + 0FFFFF878h ]                            ;0x006916c4 :        ffb578f8ffff
             push  dword ptr [ ebp + 12 ]                                    ;0x006916ca :        ff750c
             push  dword ptr [ ebp + 20 ]                                    ;0x006916cd :        ff7514
             call Fun6910c5                                                  ;0x006916d0 :        e8f0f9ffff
             pushd 04h                                                       ;0x006916d5 :        6a04
             pop edx                                                         ;0x006916d7 :        5a
             mov  ecx , dword ptr [ ebp + 12 ]                               ;0x006916d8 :        8b4d0c
             call Fun42ce21                                                  ;0x006916db :        e841b7d9ff
             mov  dword ptr [ ebp + 0FFFFF87Ch ] , eax                       ;0x006916e0 :        89857cf8ffff
             pushd 02h                                                       ;0x006916e6 :        6a02
             push ebx                                                        ;0x006916e8 :        53
             call Fun431d13                                                  ;0x006916e9 :        e82506daff

     Label6916ee ::
             pushd 041h                                                      ;0x006916ee :        6a41
             mov  ebx , dword ptr [ ebp + 16 ]                               ;0x006916f0 :        8b5d10
             mov edi , ebx                                                   ;0x006916f3 :        8bfb
             call Fun433ef7                                                  ;0x006916f5 :        e8fd27daff
             push eax                                                        ;0x006916fa :        50
             xor edx , edx                                                   ;0x006916fb :        33d2
             mov  ecx , dword ptr [ ebp + 0FFFFF87Ch ]                       ;0x006916fd :        8b8d7cf8ffff
             call Fun891e97                                                  ;0x00691703 :        e88f072000
             mov  dword ptr [ ebp + 0FFFFF86Ch ] , 01h                       ;0x00691708 :        c7856cf8ffff01000000
             cmp  dword ptr [ ebp + 0FFFFF880h ] , 00h                       ;0x00691712 :        83bd80f8ffff00
             je Label69175c                                                  ;0x00691719 :        7441
             push  dword ptr [ ebp + 0FFFFF878h ]                            ;0x0069171b :        ffb578f8ffff
             push  dword ptr [ ebp + 0FFFFF874h ]                            ;0x00691721 :        ffb574f8ffff
             push  dword ptr [ ebp + 12 ]                                    ;0x00691727 :        ff750c
             lea eax ,  dword ptr [ ebp + 0FFFFF888h ]                       ;0x0069172a :        8d8588f8ffff
             push eax                                                        ;0x00691730 :        50
             push  dword ptr [ ebp + 0FFFFF880h ]                            ;0x00691731 :        ffb580f8ffff
             push  dword ptr [ ebp + 20 ]                                    ;0x00691737 :        ff7514
             call Fun66c0db                                                  ;0x0069173a :        e89ca9fdff
             push  dword ptr [ ebp + 0FFFFF874h ]                            ;0x0069173f :        ffb574f8ffff
             push  dword ptr [ ebp + 0FFFFF880h ]                            ;0x00691745 :        ffb580f8ffff
             lea eax ,  dword ptr [ ebp + 0FFFFF888h ]                       ;0x0069174b :        8d8588f8ffff
             push eax                                                        ;0x00691751 :        50
             push  dword ptr [ ebp + 20 ]                                    ;0x00691752 :        ff7514
             call Fun66f550                                                  ;0x00691755 :        e8f6ddfdff
             jmp Label691764                                                 ;0x0069175a :        eb08

     Label69175c ::
             push  dword ptr [ ebp + 20 ]                                    ;0x0069175c :        ff7514
             call Fun6912bd                                                  ;0x0069175f :        e859fbffff

     Label691764 ::
             lea eax ,  dword ptr [ ebp + 0FFFFF85Ch ]                       ;0x00691764 :        8d855cf8ffff
             push eax                                                        ;0x0069176a :        50
             lea eax ,  dword ptr [ ebp + 0FFFFF808h ]                       ;0x0069176b :        8d8508f8ffff
             call Fun42d200                                                  ;0x00691771 :        e88abad9ff
             mov  ecx , dword ptr [ ebp + 0FFFFF87Ch ]                       ;0x00691776 :        8b8d7cf8ffff
             xor ebx , ebx                                                   ;0x0069177c :        33db
             cmp ecx , ebx                                                   ;0x0069177e :        3bcb
             jl Label691787                                                  ;0x00691780 :        7c05
             call Fun42ddf2                                                  ;0x00691782 :        e86bc6d9ff

     Label691787 ::
             cmp  dword ptr [ ebp + 0FFFFF880h ] , ebx                       ;0x00691787 :        399d80f8ffff
             je Label6917f9                                                  ;0x0069178d :        746a
             mov  eax , dword ptr [ ebp + 0FFFFF874h ]                       ;0x0069178f :        8b8574f8ffff
             cmp eax , ebx                                                   ;0x00691795 :        3bc3
             jbe Label6917ee                                                 ;0x00691797 :        7655
             mov  dword ptr [ ebp + 0FFFFF868h ] , eax                       ;0x00691799 :        898568f8ffff

     Label69179f ::
             mov  eax , dword ptr [ ebp + 0FFFFF880h ]                       ;0x0069179f :        8b8580f8ffff
             mov  esi , dword ptr [eax]                                      ;0x006917a5 :        8b30
             add esi , ebx                                                   ;0x006917a7 :        03f3
             xor edi , edi                                                   ;0x006917a9 :        33ff
             cmp  dword ptr [ esi + 0540h ] , edi                            ;0x006917ab :        39be40050000
             je Label6917e0                                                  ;0x006917b1 :        742d
             cmp  dword ptr [ esi + 053Ch ] , edi                            ;0x006917b3 :        39be3c050000
             jbe Label6917d5                                                 ;0x006917b9 :        761a

     Label6917bb ::
             mov  eax , dword ptr [ esi + 0540h ]                            ;0x006917bb :        8b8640050000
             mov  eax , dword ptr [eax]                                      ;0x006917c1 :        8b00
             mov  eax , dword ptr [ eax + 4 * edi ]                          ;0x006917c3 :        8b04b8
             mov  ecx , dword ptr [eax]                                      ;0x006917c6 :        8b08
             push eax                                                        ;0x006917c8 :        50
             call  dword ptr [ ecx + 8 ]                                     ;0x006917c9 :        ff5108
             inc edi                                                         ;0x006917cc :        47
             cmp  edi , dword ptr [ esi + 053Ch ]                            ;0x006917cd :        3bbe3c050000
             jb Label6917bb                                                  ;0x006917d3 :        72e6

     Label6917d5 ::
             mov  ecx , dword ptr [ esi + 0540h ]                            ;0x006917d5 :        8b8e40050000
             call Fun42c1e2                                                  ;0x006917db :        e802aad9ff

     Label6917e0 ::
             add ebx , 0544h                                                 ;0x006917e0 :        81c344050000
             dec  dword ptr [ ebp + 0FFFFF868h ]                             ;0x006917e6 :        ff8d68f8ffff
             jne Label69179f                                                 ;0x006917ec :        75b1

     Label6917ee ::
             mov  ecx , dword ptr [ ebp + 0FFFFF880h ]                       ;0x006917ee :        8b8d80f8ffff
             call Fun42c1e2                                                  ;0x006917f4 :        e8e9a9d9ff

     Label6917f9 ::
             mov  ecx , dword ptr [ ebp + 0FFFFF864h ]                       ;0x006917f9 :        8b8d64f8ffff
             test ecx , ecx                                                  ;0x006917ff :        85c9
             je Label691808                                                  ;0x00691801 :        7405
             call Fun544742                                                  ;0x00691803 :        e83a2febff

     Label691808 ::
             cmp  dword ptr [ ebp + 0FFFFF878h ] , 00h                       ;0x00691808 :        83bd78f8ffff00
             je Label69181b                                                  ;0x0069180f :        740a
             pushd 01h                                                       ;0x00691811 :        6a01
             push  dword ptr [ ebp + 12 ]                                    ;0x00691813 :        ff750c
             call Fun66bc11                                                  ;0x00691816 :        e8f6a3fdff

     Label69181b ::
             mov  eax , dword ptr [ ebp + 0FFFFF86Ch ]                       ;0x0069181b :        8b856cf8ffff
             mov  ecx , dword ptr [ ebp - 28 ]                               ;0x00691821 :        8b4de4
             call Fun42bf1d                                                  ;0x00691824 :        e8f4a6d9ff
             call Fun42c18a                                                  ;0x00691829 :        e85ca9d9ff
             ret 020h                                                        ;0x0069182e :        c22000


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_vfp9fix84.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix65.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix66.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix67.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix68.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix69.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix70.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix71.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix72.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix73.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix74.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix107.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix108.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix109.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix110.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix143.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix144.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix145.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix146.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix147.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix148.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix149.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix150.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix203.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix261.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix262.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix269.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix270.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix278.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix279.asp

     2, microsoft.com:
     https://devblogs.microsoft.com/oldnewthing/20120907-00/?p=6663
     https://social.msdn.microsoft.com/Forums/en-US/294ae205-ea0b-4dc1-b74b-5d9c92b5bed3/quotfile-is-not-openquot-error-when-building-exe-visual-foxpro-90-sp2

     3, foxite.com:
     https://www.foxite.com/archives/file-is-not-open-compiling-app-to-exe-0000247760.htm

     4, tek-tips.com:
     https://www.tek-tips.com/viewthread.cfm?qid=1768994

     5, csdn.net:
     https://bbs.csdn.net/topics/380166636


6. OTHER:

     For reference only, there is no guarantees.

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