-------------------------------------------------------------------------------------------------
                      VFP 9.0 FIX - CREATE THE PRIVATE VARIABLE IN THE TEXT ... ENDTEXT COMMAND AUTOMATICALLY
                                September 2019
                 -------------------------------------------------------------------------------------------------
                                     CCB



1. BUG:

     In vfp9 (and vfp6, vfp7, vfp8), if we declare a private variable but we don't store data to the private variable,
     the TEXT ... ENDTEXT command will not create the private variable.


2. CAUSE:

     There are some BUGs in the following code.


3. RESOLUTION:

     We can write some code to fix the BUG.

     Label8f67f9 ::
             push ebp                                                        ;0x008f67f9 :        55
             mov ebp , esp                                                   ;0x008f67fa :        8bec
             sub esp , 0108h                                                 ;0x008f67fc :        81ec08010000
             mov eax ,  dword ptr [ Data946f8c ]                             ;0x008f6802 :        a18c6f9400
             push ebx                                                        ;0x008f6807 :        53
             mov  dword ptr [ ebp - 68 ] , eax                               ;0x008f6808 :        8945bc
             mov eax ,  dword ptr [ Data93db94 ]                             ;0x008f680b :        a194db9300
             push esi                                                        ;0x008f6810 :        56
             xor ebx , ebx                                                   ;0x008f6811 :        33db
             mov  dword ptr [ ebp - 72 ] , eax                               ;0x008f6813 :        8945b8
             mov eax ,  dword ptr [ Data946f90 ]                             ;0x008f6816 :        a1906f9400
             push edi                                                        ;0x008f681b :        57
             mov  dword ptr [ ebp - 12 ] , ebx                               ;0x008f681c :        895df4
             mov  dword ptr [ ebp - 8 ] , ebx                                ;0x008f681f :        895df8
             mov  dword ptr [ ebp - 4 ] , ebx                                ;0x008f6822 :        895dfc
             mov  dword ptr [ ebp - 64 ] , eax                               ;0x008f6825 :        8945c0
             call Fun54fa84                                                  ;0x008f6828 :        e85792c5ff
             lea edx ,  dword ptr [ ebp - 76 ]                               ;0x008f682d :        8d55b4
             lea eax ,  dword ptr [ ebp + 0FFFFFEF8h ]                       ;0x008f6830 :        8d85f8feffff
             mov  dword ptr [ Data946f90 ] , ebx                             ;0x008f6836 :        891d906f9400
             call Fun42c27f                                                  ;0x008f683c :        e83e5ab3ff
             push ebx                                                        ;0x008f6841 :        53
             push eax                                                        ;0x008f6842 :        50
             call Fun42c2be                                                  ;0x008f6843 :        e8765ab3ff
             cmp eax , ebx                                                   ;0x008f6848 :        3bc3
             pop ecx                                                         ;0x008f684a :        59
             pop ecx                                                         ;0x008f684b :        59
             mov  dword ptr [ ebp - 16 ] , eax                               ;0x008f684c :        8945f0
             jne Label8f6ab2                                                 ;0x008f684f :        0f855d020000
             mov eax ,  dword ptr [ Data9393ac ]                             ;0x008f6855 :        a1ac939300
             cmp  byte ptr [eax] , 028h                                      ;0x008f685a :        803828
             jne Label8f68ec                                                 ;0x008f685d :        0f8589000000
             inc  dword ptr [ Data9393ac ]                                   ;0x008f6863 :        ff05ac939300
             xor edx , edx                                                   ;0x008f6869 :        33d2
             lea ecx ,  dword ptr [ ebp - 104 ]                              ;0x008f686b :        8d4d98
             call Fun52c1c4                                                  ;0x008f686e :        e85159c3ff
             mov  ecx , dword ptr [ Data93d748 ]                             ;0x008f6873 :        8b0d48d79300
             cmp ecx , ebx                                                   ;0x008f6879 :        3bcb
             je Label8f6898                                                  ;0x008f687b :        741b
             call Fun42c1e2                                                  ;0x008f687d :        e86059b3ff
             mov ecx , 0414h                                                 ;0x008f6882 :        b914040000
             mov  dword ptr [ Data93d748 ] , ebx                             ;0x008f6887 :        891d48d79300
             mov  dword ptr [ Data93ca70 ] , ebx                             ;0x008f688d :        891d70ca9300
             call Fun544742                                                  ;0x008f6893 :        e8aadec4ff

     Label8f6898 ::
             test  byte ptr [ Data93d878 ] , 01h                             ;0x008f6898 :        f60578d8930001
             je Label8f68ca                                                  ;0x008f689f :        7429
             cmp  dword ptr [ ebp - 100 ] , 0FFFFFFFFh                       ;0x008f68a1 :        837d9cff
             jne Label8f68ca                                                 ;0x008f68a5 :        7523
             mov  esi , dword ptr [ ebp - 104 ]                              ;0x008f68a7 :        8b7598
             mov  ecx , dword ptr [ Data9388e4 ]                             ;0x008f68aa :        8b0de4889300
             lea eax ,  dword ptr [ esi + 4 * esi ]                          ;0x008f68b0 :        8d04b6
             movzx ecx ,word ptr [ ecx + 4 * eax + 14 ]                      ;0x008f68b3 :        0fb74c810e
             push ebx                                                        ;0x008f68b8 :        53
             dec ecx                                                         ;0x008f68b9 :        49
             call Fun53c57a                                                  ;0x008f68ba :        e8bb5cc4ff
             cmp eax , 0FFFFFFFFh                                            ;0x008f68bf :        83f8ff
             jne Label8f68ca                                                 ;0x008f68c2 :        7506
             push esi                                                        ;0x008f68c4 :        56
             call Fun73f247                                                  ;0x008f68c5 :        e87d89e4ff

     Label8f68ca ::
             xor esi , esi                                                   ;0x008f68ca :        33f6
             inc esi                                                         ;0x008f68cc :        46
             pushd 01013h                                                    ;0x008f68cd :        6813100000
             xor eax , eax                                                   ;0x008f68d2 :        33c0
             mov  dword ptr [ ebp - 12 ] , esi                               ;0x008f68d4 :        8975f4
             call Fun42bf2a                                                  ;0x008f68d7 :        e84e56b3ff
             mov dword ptr [ Data93d748 ] ,  eax                             ;0x008f68dc :        a348d79300
             mov  dword ptr [ Data93ca70 ] , ebx                             ;0x008f68e1 :        891d70ca9300
             mov  dword ptr [ ebp - 4 ] , esi                                ;0x008f68e7 :        8975fc
             jmp Label8f68ef                                                 ;0x008f68ea :        eb03

     Label8f68ec ::
             xor esi , esi                                                   ;0x008f68ec :        33f6
             inc esi                                                         ;0x008f68ee :        46

     Label8f68ef ::
             mov  edx , dword ptr [ Data9393ac ]                             ;0x008f68ef :        8b15ac939300
             cmp  byte ptr [edx] , 060h                                      ;0x008f68f5 :        803a60
             jne Label8f6907                                                 ;0x008f68f8 :        750d
             inc edx                                                         ;0x008f68fa :        42
             mov  dword ptr [ Data9393ac ] , edx                             ;0x008f68fb :        8915ac939300
             mov  dword ptr [ Data946f8c ] , esi                             ;0x008f6901 :        89358c6f9400

     Label8f6907 ::
             cmp  byte ptr [edx] , 0CEh                                      ;0x008f6907 :        803ace
             jne Label8f6919                                                 ;0x008f690a :        750d
             inc edx                                                         ;0x008f690c :        42
             mov  dword ptr [ Data9393ac ] , edx                             ;0x008f690d :        8915ac939300
             mov  dword ptr [ Data93db94 ] , ebx                             ;0x008f6913 :        891d94db9300

     Label8f6919 ::
             pushd 0Bh                                                       ;0x008f6919 :        6a0b
             xor eax , eax                                                   ;0x008f691b :        33c0
             pop ecx                                                         ;0x008f691d :        59
             lea edi ,  dword ptr [ ebp - 60 ]                               ;0x008f691e :        8d7dc4
             rep stosd                                                       ;0x008f6921 :        f3ab
             cmp  byte ptr [edx] , 01h                                       ;0x008f6923 :        803a01
             jne Label8f69d9                                                 ;0x008f6926 :        0f85ad000000
             inc edx                                                         ;0x008f692c :        42
             cmp  dword ptr [ ebp - 4 ] , ebx                                ;0x008f692d :        395dfc
             mov  dword ptr [ Data9393ac ] , edx                             ;0x008f6930 :        8915ac939300
             jne Label8f6942                                                 ;0x008f6936 :        750a
             mov ecx , 0C8h                                                  ;0x008f6938 :        b9c8000000
             call Fun544742                                                  ;0x008f693d :        e800dec4ff

     Label8f6942 ::
             lea edx ,  dword ptr [ ebp - 80 ]                               ;0x008f6942 :        8d55b0
             lea eax ,  dword ptr [ ebp + 0FFFFFF48h ]                       ;0x008f6945 :        8d8548ffffff
             mov  dword ptr [ ebp - 8 ] , esi                                ;0x008f694b :        8975f8
             call Fun42c27f                                                  ;0x008f694e :        e82c59b3ff
             push ebx                                                        ;0x008f6953 :        53
             push eax                                                        ;0x008f6954 :        50
             call Fun42c2be                                                  ;0x008f6955 :        e86459b3ff
             mov edi , eax                                                   ;0x008f695a :        8bf8
             cmp edi , ebx                                                   ;0x008f695c :        3bfb
             pop ecx                                                         ;0x008f695e :        59
             pop ecx                                                         ;0x008f695f :        59
             jne Label8f6973                                                 ;0x008f6960 :        7511
             mov bx , 011h                                                   ;0x008f6962 :        66bb1100
             lea edx ,  dword ptr [ ebp - 104 ]                              ;0x008f6966 :        8d5598
             lea esi ,  dword ptr [ ebp - 60 ]                               ;0x008f6969 :        8d75c4
             call Fun52a5d6                                                  ;0x008f696c :        e8653cc3ff
             xor ebx , ebx                                                   ;0x008f6971 :        33db

     Label8f6973 ::
             lea eax ,  dword ptr [ ebp - 80 ]                               ;0x008f6973 :        8d45b0
             push eax                                                        ;0x008f6976 :        50
             lea eax ,  dword ptr [ ebp + 0FFFFFF48h ]                       ;0x008f6977 :        8d8548ffffff
             call Fun42d200                                                  ;0x008f697d :        e87e68b3ff
             mov  ecx , dword ptr [ ebp - 28 ]                               ;0x008f6982 :        8b4de4
             call Fun42c1e2                                                  ;0x008f6985 :        e85858b3ff
             cmp edi , ebx                                                   ;0x008f698a :        3bfb
             je Label8f69c9                                                  ;0x008f698c :        743b
             cmp edi , 0AAh                                                  ;0x008f698e :        81ffaa000000
             jne Label8f69c5                                                 ;0x008f6994 :        752f
             pushd 01013h                                                    ;0x008f6996 :        6813100000
             xor eax , eax                                                   ;0x008f699b :        33c0
             mov  byte ptr [ ebp - 60 ] , 048h                               ;0x008f699d :        c645c448
             mov  dword ptr [ ebp - 56 ] , ebx                               ;0x008f69a1 :        895dc8
             mov  dword ptr [ ebp - 52 ] , ebx                               ;0x008f69a4 :        895dcc
             call Fun42bf2a                                                  ;0x008f69a7 :        e87e55b3ff


     ;
     ;                 -------------------------------------------------------------------------------------------------
     ;                      VFP 9.0 FIX - CREATE THE PRIVATE VARIABLE IN THE TEXT ... ENDTEXT COMMAND AUTOMATICALLY
     ;                                September 2019
     ;                 -------------------------------------------------------------------------------------------------
     ;                                     CCB
     ;
     ; Create the private variable in the TEXT ... ENDTEXT command automatically (if the variable doesn't exist).
     ;
     ; 2019/9/30, by ccb
     ;

             cmp dword ptr vfpa_sys9025_data,00h
             je Label8f69ac
             pushd 01h
             jmp Label8f69ad


     Label8f69ac ::
             push ebx                                                        ;0x008f69ac :        53

     Label8f69ad ::
             lea edx ,  dword ptr [ ebp - 104 ]                              ;0x008f69ad :        8d5598
             lea ecx ,  dword ptr [ ebp - 60 ]                               ;0x008f69b0 :        8d4dc4
             mov  dword ptr [ ebp - 28 ] , eax                               ;0x008f69b3 :        8945e4
             call Fun52bf26                                                  ;0x008f69b6 :        e86b55c3ff
             mov  ecx , dword ptr [ ebp - 28 ]                               ;0x008f69bb :        8b4de4
             call Fun42c1e2                                                  ;0x008f69be :        e81f58b3ff
             jmp Label8f69d9                                                 ;0x008f69c3 :        eb14

     Label8f69c5 ::
             mov ecx , edi                                                   ;0x008f69c5 :        8bcf
             jmp Label8f69d4                                                 ;0x008f69c7 :        eb0b

     Label8f69c9 ::
             cmp  byte ptr [ ebp - 60 ] , 048h                               ;0x008f69c9 :        807dc448
             je Label8f69d9                                                  ;0x008f69cd :        740a
             mov ecx , 0385h                                                 ;0x008f69cf :        b985030000

     Label8f69d4 ::
             call Fun544742                                                  ;0x008f69d4 :        e869ddc4ff

     Label8f69d9 ::
             mov eax ,  dword ptr [ Data9393ac ]                             ;0x008f69d9 :        a1ac939300
             cmp  byte ptr [eax] , 0C3h                                      ;0x008f69de :        8038c3
             jne Label8f6a3b                                                 ;0x008f69e1 :        7558
             inc  dword ptr [ Data9393ac ]                                   ;0x008f69e3 :        ff05ac939300
             pushd 08h                                                       ;0x008f69e9 :        6a08
             call Fun420bce                                                  ;0x008f69eb :        e8dea1b2ff
             mov edi , eax                                                   ;0x008f69f0 :        8bf8
             cmp  byte ptr [edi] , 048h                                      ;0x008f69f2 :        803f48
             je Label8f6a25                                                  ;0x008f69f5 :        742e
             call Fun529a6e                                                  ;0x008f69f7 :        e87230c3ff
             cmp  byte ptr [edi] , 049h                                      ;0x008f69fc :        803f49
             jne Label8f6a0f                                                 ;0x008f69ff :        750e
             mov  eax , dword ptr [ edi + 12 ]                               ;0x008f6a01 :        8b470c
             cmp eax , ebx                                                   ;0x008f6a04 :        3bc3
             jl Label8f6a0f                                                  ;0x008f6a06 :        7c07
             test eax , 0FFFFFFF0h                                           ;0x008f6a08 :        a9f0ffffff
             je Label8f6a19                                                  ;0x008f6a0d :        740a

     Label8f6a0f ::
             mov ecx , 0385h                                                 ;0x008f6a0f :        b985030000
             call Fun544742                                                  ;0x008f6a14 :        e829ddc4ff

     Label8f6a19 ::
             mov  eax , dword ptr [ edi + 12 ]                               ;0x008f6a19 :        8b470c
             neg eax                                                         ;0x008f6a1c :        f7d8
             mov dword ptr [ Data947db4 ] ,  eax                             ;0x008f6a1e :        a3b47d9400
             jmp Label8f6a3b                                                 ;0x008f6a23 :        eb16

     Label8f6a25 ::
             mov  eax , dword ptr [ edi + 8 ]                                ;0x008f6a25 :        8b4708
             mov dword ptr [ Data947db4 ] ,  eax                             ;0x008f6a28 :        a3b47d9400
             mov  eax , dword ptr [ edi + 32 ]                               ;0x008f6a2d :        8b4720
             mov  byte ptr [edi] , 04Ch                                      ;0x008f6a30 :        c6074c
             mov dword ptr [ Data947db8 ] ,  eax                             ;0x008f6a33 :        a3b87d9400
             mov  dword ptr [ edi + 32 ] , ebx                               ;0x008f6a38 :        895f20

     Label8f6a3b ::
             mov eax ,  dword ptr [ Data9393ac ]                             ;0x008f6a3b :        a1ac939300
             cmp  byte ptr [eax] , 0C4h                                      ;0x008f6a40 :        8038c4
             jne Label8f6a91                                                 ;0x008f6a43 :        754c
             inc  dword ptr [ Data9393ac ]                                   ;0x008f6a45 :        ff05ac939300
             pushd 08h                                                       ;0x008f6a4b :        6a08
             call Fun420bce                                                  ;0x008f6a4d :        e87ca1b2ff
             mov edi , eax                                                   ;0x008f6a52 :        8bf8
             call Fun529a6e                                                  ;0x008f6a54 :        e81530c3ff
             cmp  byte ptr [edi] , 049h                                      ;0x008f6a59 :        803f49
             jne Label8f6a6c                                                 ;0x008f6a5c :        750e
             mov  eax , dword ptr [ edi + 12 ]                               ;0x008f6a5e :        8b470c
             cmp eax , ebx                                                   ;0x008f6a61 :        3bc3
             jl Label8f6a6c                                                  ;0x008f6a63 :        7c07
             test eax , 0FFFFFFFCh                                           ;0x008f6a65 :        a9fcffffff
             je Label8f6a76                                                  ;0x008f6a6a :        740a

     Label8f6a6c ::
             mov ecx , 0385h                                                 ;0x008f6a6c :        b985030000
             call Fun544742                                                  ;0x008f6a71 :        e8ccdcc4ff

     Label8f6a76 ::
             mov  eax , dword ptr [ edi + 12 ]                               ;0x008f6a76 :        8b470c
             test al , 01h                                                   ;0x008f6a79 :        a801
             mov dword ptr [ Data946f90 ] ,  eax                             ;0x008f6a7b :        a3906f9400
             je Label8f6a91                                                  ;0x008f6a80 :        740f
             cmp  dword ptr [ ebp - 12 ] , ebx                               ;0x008f6a82 :        395df4
             jne Label8f6a91                                                 ;0x008f6a85 :        750a
             or eax , 08000h                                                 ;0x008f6a87 :        0d00800000
             mov dword ptr [ Data946f90 ] ,  eax                             ;0x008f6a8c :        a3906f9400

     Label8f6a91 ::
             inc  dword ptr [ Data94740c ]                                   ;0x008f6a91 :        ff050c749400

     Label8f6a97 ::
             call Fun4cf664                                                  ;0x008f6a97 :        e8c88bbdff
             mov eax ,  dword ptr [ Data9393ac ]                             ;0x008f6a9c :        a1ac939300
             mov  al , byte ptr [eax]                                        ;0x008f6aa1 :        8a00
             cmp al , 0FBh                                                   ;0x008f6aa3 :        3cfb
             je Label8f6aab                                                  ;0x008f6aa5 :        7404
             cmp al , 0D9h                                                   ;0x008f6aa7 :        3cd9
             jne Label8f6ab2                                                 ;0x008f6aa9 :        7507

     Label8f6aab ::
             call Fun8f66ee                                                  ;0x008f6aab :        e83efcffff
             jmp Label8f6a97                                                 ;0x008f6ab0 :        ebe5

     Label8f6ab2 ::
             lea eax ,  dword ptr [ ebp - 76 ]                               ;0x008f6ab2 :        8d45b4
             push eax                                                        ;0x008f6ab5 :        50
             lea eax ,  dword ptr [ ebp + 0FFFFFEF8h ]                       ;0x008f6ab6 :        8d85f8feffff
             call Fun42d200                                                  ;0x008f6abc :        e83f67b3ff
             mov  ecx , dword ptr [ Data947db8 ]                             ;0x008f6ac1 :        8b0db87d9400
             dec  dword ptr [ Data94740c ]                                   ;0x008f6ac7 :        ff0d0c749400
             cmp ecx , ebx                                                   ;0x008f6acd :        3bcb
             mov  eax , dword ptr [ ebp - 64 ]                               ;0x008f6acf :        8b45c0
             mov dword ptr [ Data946f90 ] ,  eax                             ;0x008f6ad2 :        a3906f9400
             je Label8f6ae4                                                  ;0x008f6ad7 :        740b
             call Fun42c1e2                                                  ;0x008f6ad9 :        e80457b3ff
             mov  dword ptr [ Data947db8 ] , ebx                             ;0x008f6ade :        891db87d9400

     Label8f6ae4 ::
             cmp  dword ptr [ ebp - 16 ] , ebx                               ;0x008f6ae4 :        395df0
             mov  eax , dword ptr [ ebp - 68 ]                               ;0x008f6ae7 :        8b45bc
             mov dword ptr [ Data946f8c ] ,  eax                             ;0x008f6aea :        a38c6f9400
             mov  eax , dword ptr [ ebp - 72 ]                               ;0x008f6aef :        8b45b8
             mov  dword ptr [ Data947db4 ] , ebx                             ;0x008f6af2 :        891db47d9400
             mov dword ptr [ Data93db94 ] ,  eax                             ;0x008f6af8 :        a394db9300
             je Label8f6b18                                                  ;0x008f6afd :        7419
             mov  ecx , dword ptr [ Data93d748 ]                             ;0x008f6aff :        8b0d48d79300
             call Fun42c1e2                                                  ;0x008f6b05 :        e8d856b3ff
             mov  ecx , dword ptr [ ebp - 16 ]                               ;0x008f6b0a :        8b4df0
             mov  dword ptr [ Data93d748 ] , ebx                             ;0x008f6b0d :        891d48d79300
             call Fun544742                                                  ;0x008f6b13 :        e82adcc4ff

     Label8f6b18 ::
             cmp  dword ptr [ ebp - 12 ] , ebx                               ;0x008f6b18 :        395df4
             je Label8f6bd9                                                  ;0x008f6b1b :        0f84b8000000
             cmp  dword ptr [ ebp - 8 ] , ebx                                ;0x008f6b21 :        395df8
             je Label8f6b99                                                  ;0x008f6b24 :        7473
             pushd 0Bh                                                       ;0x008f6b26 :        6a0b
             pop ecx                                                         ;0x008f6b28 :        59
             xor eax , eax                                                   ;0x008f6b29 :        33c0
             lea edi ,  dword ptr [ ebp - 60 ]                               ;0x008f6b2b :        8d7dc4
             mov bx , 011h                                                   ;0x008f6b2e :        66bb1100
             lea edx ,  dword ptr [ ebp - 104 ]                              ;0x008f6b32 :        8d5598
             lea esi ,  dword ptr [ ebp - 60 ]                               ;0x008f6b35 :        8d75c4
             rep stosd                                                       ;0x008f6b38 :        f3ab
             call Fun52a5d6                                                  ;0x008f6b3a :        e8973ac3ff
             cmp  byte ptr [ ebp - 60 ] , 048h                               ;0x008f6b3f :        807dc448
             jne Label8f6b54                                                 ;0x008f6b43 :        750f
             cmp  dword ptr [ ebp - 28 ] , 00h                               ;0x008f6b45 :        837de400
             je Label8f6b54                                                  ;0x008f6b49 :        7409
             cmp  dword ptr [ Data93d748 ] , 00h                             ;0x008f6b4b :        833d48d7930000
             jne Label8f6b5e                                                 ;0x008f6b52 :        750a

     Label8f6b54 ::
             mov ecx , 0385h                                                 ;0x008f6b54 :        b985030000
             call Fun544742                                                  ;0x008f6b59 :        e8e4dbc4ff

     Label8f6b5e ::
             mov  eax , dword ptr [ ebp - 52 ]                               ;0x008f6b5e :        8b45cc
             mov  ecx , dword ptr [ Data93ca70 ]                             ;0x008f6b61 :        8b0d70ca9300
             pushd 00h                                                       ;0x008f6b67 :        6a00
             push  dword ptr [ ebp - 28 ]                                    ;0x008f6b69 :        ff75e4
             add ecx , eax                                                   ;0x008f6b6c :        03c8
             call Fun42c2c4                                                  ;0x008f6b6e :        e85157b3ff
             mov  eax , dword ptr [ ebp - 28 ]                               ;0x008f6b73 :        8b45e4
             mov  ecx , dword ptr [eax]                                      ;0x008f6b76 :        8b08
             mov eax ,  dword ptr [ Data93d748 ]                             ;0x008f6b78 :        a148d79300
             push  dword ptr [ Data93ca70 ]                                  ;0x008f6b7d :        ff3570ca9300
             add  ecx , dword ptr [ ebp - 52 ]                               ;0x008f6b83 :        034dcc
             mov  edx , dword ptr [eax]                                      ;0x008f6b86 :        8b10
             call Fun42c19b                                                  ;0x008f6b88 :        e80e56b3ff
             mov eax ,  dword ptr [ Data93ca70 ]                             ;0x008f6b8d :        a170ca9300
             add  dword ptr [ ebp - 52 ] , eax                               ;0x008f6b92 :        0145cc
             xor ebx , ebx                                                   ;0x008f6b95 :        33db
             jmp Label8f6bc0                                                 ;0x008f6b97 :        eb27

     Label8f6b99 ::
             mov eax ,  dword ptr [ Data93d748 ]                             ;0x008f6b99 :        a148d79300
             cmp eax , ebx                                                   ;0x008f6b9e :        3bc3
             mov  byte ptr [ ebp - 60 ] , 048h                               ;0x008f6ba0 :        c645c448
             mov  dword ptr [ ebp - 56 ] , ebx                               ;0x008f6ba4 :        895dc8
             jne Label8f6bb5                                                 ;0x008f6ba7 :        750c
             pushd 01013h                                                    ;0x008f6ba9 :        6813100000
             xor eax , eax                                                   ;0x008f6bae :        33c0
             call Fun42bf2a                                                  ;0x008f6bb0 :        e87553b3ff

     Label8f6bb5 ::
             mov  dword ptr [ ebp - 28 ] , eax                               ;0x008f6bb5 :        8945e4
             mov eax ,  dword ptr [ Data93ca70 ]                             ;0x008f6bb8 :        a170ca9300
             mov  dword ptr [ ebp - 52 ] , eax                               ;0x008f6bbd :        8945cc

     Label8f6bc0 ::


     ;
     ;                 -------------------------------------------------------------------------------------------------
     ;                      VFP 9.0 FIX - CREATE THE PRIVATE VARIABLE IN THE TEXT ... ENDTEXT COMMAND AUTOMATICALLY
     ;                                September 2019
     ;                 -------------------------------------------------------------------------------------------------
     ;                                     CCB
     ;
     ; Create the private variable in the TEXT ... ENDTEXT command automatically (if the variable doesn't exist).
     ;
     ; 2019/9/30, by ccb
     ;

             cmp dword ptr vfpa_sys9025_data,00h
             je Label8f6bc1
             pushd 01h
             jmp Label8f6bc2


     Label8f6bc1 ::
             push ebx                                                        ;0x008f6bc0 :        53

     Label8f6bc2 ::
             lea edx ,  dword ptr [ ebp - 104 ]                              ;0x008f6bc1 :        8d5598
             lea ecx ,  dword ptr [ ebp - 60 ]                               ;0x008f6bc4 :        8d4dc4
             call Fun52bf26                                                  ;0x008f6bc7 :        e85a53c3ff
             cmp  dword ptr [ ebp - 8 ] , ebx                                ;0x008f6bcc :        395df8
             je Label8f6bd9                                                  ;0x008f6bcf :        7408
             mov  ecx , dword ptr [ ebp - 28 ]                               ;0x008f6bd1 :        8b4de4
             call Fun42c1e2                                                  ;0x008f6bd4 :        e80956b3ff

     Label8f6bd9 ::
             cmp  dword ptr [ ebp - 4 ] , ebx                                ;0x008f6bd9 :        395dfc
             je Label8f6bf5                                                  ;0x008f6bdc :        7417
             mov  ecx , dword ptr [ Data93d748 ]                             ;0x008f6bde :        8b0d48d79300
             call Fun42c1e2                                                  ;0x008f6be4 :        e8f955b3ff
             mov  dword ptr [ Data93d748 ] , ebx                             ;0x008f6be9 :        891d48d79300
             mov  dword ptr [ Data93ca70 ] , ebx                             ;0x008f6bef :        891d70ca9300

     Label8f6bf5 ::
             mov eax ,  dword ptr [ Data9393ac ]                             ;0x008f6bf5 :        a1ac939300
             cmp  byte ptr [eax] , 01Fh                                      ;0x008f6bfa :        80381f
             jne Fun5495f1                                                   ;0x008f6bfd :        0f85ee29c5ff
             pop edi                                                         ;0x008f6c03 :        5f
             pop esi                                                         ;0x008f6c04 :        5e
             pop ebx                                                         ;0x008f6c05 :        5b
             leave                                                           ;0x008f6c06 :        c9
             ret                                                             ;0x008f6c07 :        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_vfp9fix93.asp

     2, tek-tips.com:
     https://www.tek-tips.com/viewthread.cfm?qid=1780183


6. OTHER:

     For reference only, there is no guarantees.

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