--------------------------------------------------------------------------
                        [BUG/PRB.] VFP 9.0 FIX - FIX the GRID.BEFOREROWCOLCHANGE EVENT
                                November 2026
                 --------------------------------------------------------------------------
                                     CCB



1. BUG:

     In vfp9 (and vfp6, vfp7, vfp8), if there is the DODEFAULT() function in the Grid.BeforeRowColChange event,
     when we clicking the delete mark in the Grid control, and the clicked record is the last record and it is not fully visible,
     VFP will call the Grid.BeforeRowColChange event, VFP will call the DODEFAULT() function,
     VFP will scroll up the clicked record, and then the clicked record is fully visible,
     VFP will call the Grid.BeforeRowColChange event again, VFP will call the DODEFAULT() function again,
     and then VFP will cause the error "Record is out of range (Error 5)",
     VFP will not toggle the delete mark for the clicked record.

     The bug occurs when there is the DODEFAULT() function in the Grid.BeforeRowColChange event,
     it does not occur when there is no the DODEFAULT() function in the Grid.BeforeRowColChange event.

     The bug was reported by Gamaliel Perez Yanez.

     In VFP Advanced, if there is the DODEFAULT() function in the Grid.BeforeRowColChange event,
     when we clicking the delete mark in the Grid control, and the clicked record is the last record and it is not fully visible,
     VFP will call the Grid.BeforeRowColChange event, VFP will call the DODEFAULT() function,
     VFP will scroll up the clicked record, and then the clicked record is fully visible,
     VFP will not call the Grid.BeforeRowColChange event again,
     VFP will not toggle the delete mark for the clicked record.


2. CAUSE:

     There are some BUGs in the following code.


3. RESOLUTION:

     We can write some code to fix the BUG.

     Fun67ec4d :: ; proc near
             push ebp                                                        ;0x0067ec4d :        55
             lea ebp ,  dword ptr [ esp - 96 ]                               ;0x0067ec4e :        8d6c24a0
             sub esp , 059Ch                                                 ;0x0067ec52 :        81ec9c050000
             mov eax ,  dword ptr [ Data937090 ]                             ;0x0067ec58 :        a190709300
             and  dword ptr [ ebp + 0FFFFFB20h ] , 00h                       ;0x0067ec5d :        83a520fbffff00
             push ebx                                                        ;0x0067ec64 :        53
             push esi                                                        ;0x0067ec65 :        56
             push edi                                                        ;0x0067ec66 :        57
             mov  edi , dword ptr [ ebp + 104 ]                              ;0x0067ec67 :        8b7d68
             mov  ebx , dword ptr [ edi + 88 ]                               ;0x0067ec6a :        8b5f58
             test  dword ptr ebx , 080000h                                   ;0x0067ec6d :        f7c300000800
             mov  dword ptr [ ebp + 92 ] , eax                               ;0x0067ec73 :        89455c
             jne Label67f588                                                 ;0x0067ec76 :        0f850c090000
             test  byte ptr bh , 02h                                         ;0x0067ec7c :        f6c702
             je Label67ec8a                                                  ;0x0067ec7f :        7409
             mov  eax , dword ptr [ edi + 0F8h ]                             ;0x0067ec81 :        8b87f8000000
             mov  dword ptr [ ebp + 116 ] , eax                              ;0x0067ec87 :        894574

     Label67ec8a ::
             mov  ecx , dword ptr [ ebp + 112 ]                              ;0x0067ec8a :        8b4d70
             mov  edx , dword ptr [ edi + 053Ch ]                            ;0x0067ec8d :        8b973c050000
             mov eax , edi                                                   ;0x0067ec93 :        8bc7
             call Fun51b871                                                  ;0x0067ec95 :        e8d7cbe9ff
             xor esi , esi                                                   ;0x0067ec9a :        33f6
             inc esi                                                         ;0x0067ec9c :        46
             and ebx , esi                                                   ;0x0067ec9d :        23de
             mov  dword ptr [ ebp + 0FFFFFB34h ] , eax                       ;0x0067ec9f :        898534fbffff
             mov ecx , 0800000h                                              ;0x0067eca5 :        b900008000
             jne Label67ecb5                                                 ;0x0067ecaa :        7509
             test  dword ptr [ edi + 96 ] , ecx                              ;0x0067ecac :        854f60
             jne Label67ed75                                                 ;0x0067ecaf :        0f85c0000000

     Label67ecb5 ::
             xor edx , edx                                                   ;0x0067ecb5 :        33d2
             cmp ebx , edx                                                   ;0x0067ecb7 :        3bda
             je Label67ed38                                                  ;0x0067ecb9 :        747d
             cmp  dword ptr [ ebp + 0FFFFFB34h ] , edx                       ;0x0067ecbb :        399534fbffff
             mov  eax , dword ptr [ edi + 090h ]                             ;0x0067ecc1 :        8b8790000000
             je Label67ece1                                                  ;0x0067ecc7 :        7418
             cmp  eax , dword ptr [ ebp + 116 ]                              ;0x0067ecc9 :        3b4574
             je Label67ecdc                                                  ;0x0067eccc :        740e
             test  dword ptr [ edi + 96 ] , ecx                              ;0x0067ecce :        854f60
             je Label67ecdc                                                  ;0x0067ecd1 :        7409
             mov  dword ptr [ edi + 108 ] , 02h                              ;0x0067ecd3 :        c7476c02000000
             jmp Label67ecf7                                                 ;0x0067ecda :        eb1b

     Label67ecdc ::
             mov  dword ptr [ edi + 108 ] , edx                              ;0x0067ecdc :        89576c
             jmp Label67ecf7                                                 ;0x0067ecdf :        eb16

     Label67ece1 ::
             cmp  eax , dword ptr [ ebp + 116 ]                              ;0x0067ece1 :        3b4574
             je Label67ecf4                                                  ;0x0067ece4 :        740e
             test  dword ptr [ edi + 96 ] , ecx                              ;0x0067ece6 :        854f60
             je Label67ecf4                                                  ;0x0067ece9 :        7409
             mov  dword ptr [ edi + 108 ] , 03h                              ;0x0067eceb :        c7476c03000000
             jmp Label67ed38                                                 ;0x0067ecf2 :        eb44

     Label67ecf4 ::
             mov  dword ptr [ edi + 108 ] , esi                              ;0x0067ecf4 :        89776c

     Label67ecf7 ::
             cmp  dword ptr [ ebp + 0FFFFFB34h ] , edx                       ;0x0067ecf7 :        399534fbffff
             je Label67ed38                                                  ;0x0067ecfd :        7439
             cmp  eax , dword ptr [ ebp + 116 ]                              ;0x0067ecff :        3b4574
             jne Label67ed38                                                 ;0x0067ed02 :        7534
             mov  ecx , dword ptr [ edi + 20 ]                               ;0x0067ed04 :        8b4f14
             cmp  ecx , dword ptr [ ebp + 108 ]                              ;0x0067ed07 :        3b4d6c
             jne Label67ed38                                                 ;0x0067ed0a :        752c
             test  byte ptr [ edi + 95 ] , 010h                              ;0x0067ed0c :        f6475f10
             je Label67ed2e                                                  ;0x0067ed10 :        741c
             imul eax , eax , 0158h                                          ;0x0067ed12 :        69c058010000
             mov  eax , dword ptr [ eax + edi + 0868h ]                      ;0x0067ed18 :        8b843868080000
             cmp eax , edx                                                   ;0x0067ed1f :        3bc2
             je Label67ed2a                                                  ;0x0067ed21 :        7407
             mov ecx , eax                                                   ;0x0067ed23 :        8bc8
             call Fun4de849                                                  ;0x0067ed25 :        e81ffbe5ff

     Label67ed2a ::
             and  byte ptr [ edi + 95 ] , 0EFh                               ;0x0067ed2a :        80675fef

     Label67ed2e ::
             test  byte ptr [ edi + 96 ] , 08h                               ;0x0067ed2e :        f6476008
             je Label67f588                                                  ;0x0067ed32 :        0f8450080000

     Label67ed38 ::
             mov  edx , dword ptr [ ebp + 0FFFFFB34h ]                       ;0x0067ed38 :        8b9534fbffff
             push esi                                                        ;0x0067ed3e :        56
             push esi                                                        ;0x0067ed3f :        56
             mov ecx , edi                                                   ;0x0067ed40 :        8bcf
             call Fun51e9aa                                                  ;0x0067ed42 :        e863fce9ff
             test eax , eax                                                  ;0x0067ed47 :        85c0
             jne Label67ed53                                                 ;0x0067ed49 :        7508
             or  dword ptr [ edi + 88 ] , esi                                ;0x0067ed4b :        097758
             jmp Label67f588                                                 ;0x0067ed4e :        e935080000

     Label67ed53 ::
             cmp  dword ptr [ ebp + 0FFFFFB34h ] , 00h                       ;0x0067ed53 :        83bd34fbffff00
             jne Label67ed75                                                 ;0x0067ed5a :        7519
             cmp  dword ptr [ edi + 0320h ] , 00h                            ;0x0067ed5c :        83bf2003000000
             je Label67f588                                                  ;0x0067ed63 :        0f841f080000
             push  dword ptr [ edi + 053Ch ]                                 ;0x0067ed69 :        ffb73c050000
             push edi                                                        ;0x0067ed6f :        57
             call Fun51e049                                                  ;0x0067ed70 :        e8d4f2e9ff

     Label67ed75 ::
             and  dword ptr [ edi + 96 ] , 0FFFFFFF7h                        ;0x0067ed75 :        836760f7
             cmp  dword ptr [ ebp + 0FFFFFB34h ] , 00h                       ;0x0067ed79 :        83bd34fbffff00
             jne Label67edae                                                 ;0x0067ed80 :        752c


     ;
     ;                 -------------------------------------------------------------
     ;                      VFP 9.0 FIX - FIX THE GRID.BEFOREROWCOLCHANGE EVENT
     ;                                November 2026
     ;                 -------------------------------------------------------------
     ;                                     CCB
     ;
     ; Fix the Grid.BeforeRowColChange event.
     ;
     ; 2026/11/12, by ccb
     ;

             cmp dword ptr vfpa_sys9215_data,00h
             je Label67ed82
             mov  eax , dword ptr [ edi + 12 ]
             call Fun433d0b
             add eax , 03E8h
             mov  edx , dword ptr [ ebp + 112 ]
             mov  edx , dword ptr [edx]
             cmp edx , eax
             jl Label67ed82

             mov  eax , dword ptr [ ebp + 108 ]
             imul eax , eax , 074h
             lea eax ,  dword ptr [ eax + edi + 0138h ]
             ;; #define FOXGRID_DELETEMARK            00000200h
             test dword ptr [ eax + 8 ] , 00000200h
             je Label67ed82
             mov ecx ,  dword ptr [ eax + 60 ]
             test ecx , ecx
             je Label67ed82
             mov edx ,  dword ptr [ eax + 112 ]
             test edx , edx
             je Label67ed82

             mov  eax , dword ptr [ ebp + 112 ]
             add edx , 04h
             dec ecx
             test ecx , ecx
             je Label67ed82

     Label67ed80 ::
             cmp dword ptr [edx] , eax
             jne Label67ed81
             sub edx , 04h
             mov eax , dword ptr [edx]
             mov dword ptr [ ebp + 112 ] ,  eax
             jmp Label67ed82
             
     Label67ed81 ::
             add edx , 04h
             dec ecx
             test ecx , ecx
             jne Label67ed80
             jmp Label67ed82


     Label67ed82 ::
             mov  eax , dword ptr [ ebp + 112 ]                              ;0x0067ed82 :        8b4570
             mov  eax , dword ptr [eax]                                      ;0x0067ed85 :        8b00
             cmp  eax , dword ptr [ edi + 0530h ]                            ;0x0067ed87 :        3b8730050000
             jne Label67edae                                                 ;0x0067ed8d :        751f
             lea ebx ,  dword ptr [ edi + 0728h ]                            ;0x0067ed8f :        8d9f28070000
             mov  ecx , dword ptr [ebx]                                      ;0x0067ed95 :        8b0b
             test ecx , ecx                                                  ;0x0067ed97 :        85c9
             je Label67edae                                                  ;0x0067ed99 :        7413
             mov  eax , dword ptr [ edi + 053Ch ]                            ;0x0067ed9b :        8b873c050000
             cmp  dword ptr [eax] , 00h                                      ;0x0067eda1 :        833800
             je Label67edae                                                  ;0x0067eda4 :        7408
             call Fun42c1e2                                                  ;0x0067eda6 :        e837d4daff
             and  dword ptr [ebx] , 00h                                      ;0x0067edab :        832300

     Label67edae ::
             cmp  dword ptr [ edi + 12 ] , 00h                               ;0x0067edae :        837f0c00
             je Label67f588                                                  ;0x0067edb2 :        0f84d0070000
             test  byte ptr [ edi + 88 ] , 02h                               ;0x0067edb8 :        f6475802
             je Label67ede4                                                  ;0x0067edbc :        7426
             push  dword ptr [ edi + 053Ch ]                                 ;0x0067edbe :        ffb73c050000
             mov ebx , edi                                                   ;0x0067edc4 :        8bdf
             call Fun675986                                                  ;0x0067edc6 :        e8bb6bffff
             cmp  dword ptr [ ebp + 0FFFFFB34h ] , 00h                       ;0x0067edcb :        83bd34fbffff00
             je Label67ede4                                                  ;0x0067edd2 :        7410
             mov  edx , dword ptr [ edi + 053Ch ]                            ;0x0067edd4 :        8b973c050000
             mov  ecx , dword ptr [ ebp + 112 ]                              ;0x0067edda :        8b4d70
             mov eax , edi                                                   ;0x0067eddd :        8bc7
             call Fun51b456                                                  ;0x0067eddf :        e872c6e9ff

     Label67ede4 ::
             push  dword ptr [ ebp + 112 ]                                   ;0x0067ede4 :        ff7570
             mov ebx , edi                                                   ;0x0067ede7 :        8bdf
             call Fun519a5f                                                  ;0x0067ede9 :        e871ace9ff
             mov  edx , dword ptr [ ebp + 112 ]                              ;0x0067edee :        8b5570
             mov  ecx , dword ptr [ edi + 053Ch ]                            ;0x0067edf1 :        8b8f3c050000
             mov eax , edi                                                   ;0x0067edf7 :        8bc7
             call Fun51b456                                                  ;0x0067edf9 :        e858c6e9ff
             cmp  dword ptr [ ebp + 0FFFFFB34h ] , 00h                       ;0x0067edfe :        83bd34fbffff00
             jne Label67ee14                                                 ;0x0067ee05 :        750d
             test  byte ptr [ edi + 97 ] , 08h                               ;0x0067ee07 :        f6476108
             jne Label67ee14                                                 ;0x0067ee0b :        7507
             mov esi , edi                                                   ;0x0067ee0d :        8bf7
             call Fun67e6fa                                                  ;0x0067ee0f :        e8e6f8ffff

     Label67ee14 ::
             mov  eax , dword ptr [ edi + 88 ]                               ;0x0067ee14 :        8b4758
             and  byte ptr [ edi + 97 ] , 0F7h                               ;0x0067ee17 :        806761f7
             test eax , 0400000h                                             ;0x0067ee1b :        a900004000
             je Label67ee2c                                                  ;0x0067ee20 :        740a
             and eax , 0FFBFFFFFh                                            ;0x0067ee22 :        25ffffbfff
             mov  dword ptr [ edi + 88 ] , eax                               ;0x0067ee27 :        894758
             jmp Label67ee35                                                 ;0x0067ee2a :        eb09

     Label67ee2c ::
             push  dword ptr [ ebp + 116 ]                                   ;0x0067ee2c :        ff7574
             push edi                                                        ;0x0067ee2f :        57
             call Fun67e808                                                  ;0x0067ee30 :        e8d3f9ffff

     Label67ee35 ::
             mov  eax , dword ptr [ ebp + 116 ]                              ;0x0067ee35 :        8b4574
             imul eax , eax , 0158h                                          ;0x0067ee38 :        69c058010000
             lea ebx ,  dword ptr [ eax + edi + 0740h ]                      ;0x0067ee3e :        8d9c3840070000
             xor ecx , ecx                                                   ;0x0067ee45 :        33c9
             mov  dword ptr [ ebp + 0FFFFFB2Ch ] , ebx                       ;0x0067ee47 :        899d2cfbffff
             call Fun425165                                                  ;0x0067ee4d :        e81363daff
             cmp  dword ptr [ ebx + 8 ] , 044h                               ;0x0067ee52 :        837b0844
             jne Label67ee6f                                                 ;0x0067ee56 :        7517
             mov eax ,  dword ptr [ Data9370f8 ]                             ;0x0067ee58 :        a1f8709300
             mov  eax , dword ptr [eax]                                      ;0x0067ee5d :        8b00
             cmp  dword ptr [ eax + 0128h ] , 00h                            ;0x0067ee5f :        83b82801000000
             je Label67ee6f                                                  ;0x0067ee66 :        7407
             mov  dword ptr [ ebx + 12 ] , 0Ah                               ;0x0067ee68 :        c7430c0a000000

     Label67ee6f ::
             mov  eax , dword ptr [ ebp + 116 ]                              ;0x0067ee6f :        8b4574
             or  dword ptr [ edi + 88 ] , 01h                                ;0x0067ee72 :        834f5801
             mov edx , edi                                                   ;0x0067ee76 :        8bd7
             call Fun679f81                                                  ;0x0067ee78 :        e804b1ffff
             mov  eax , dword ptr [ ebp + 108 ]                              ;0x0067ee7d :        8b456c
             and  dword ptr [ edi + 088h ] , 00h                             ;0x0067ee80 :        83a78800000000
             and  dword ptr [ edi + 08Ch ] , 00h                             ;0x0067ee87 :        83a78c00000000
             and  dword ptr [ edi + 88 ] , 0FFFFFFFDh                        ;0x0067ee8e :        836758fd
             cmp  eax , dword ptr [ edi + 20 ]                               ;0x0067ee92 :        3b4714
             je Label67eeb0                                                  ;0x0067ee95 :        7419
             mov esi , edi                                                   ;0x0067ee97 :        8bf7
             mov  dword ptr [ edi + 20 ] , eax                               ;0x0067ee99 :        894714
             call Fun51b5b8                                                  ;0x0067ee9c :        e817c7e9ff
             test  byte ptr [ edi + 89 ] , 01h                               ;0x0067eea1 :        f6475901
             je Label67eeb0                                                  ;0x0067eea5 :        7409
             pushd 00h                                                       ;0x0067eea7 :        6a00
             mov eax , edi                                                   ;0x0067eea9 :        8bc7
             call Fun458bc1                                                  ;0x0067eeab :        e8119dddff

     Label67eeb0 ::
             xor eax , eax                                                   ;0x0067eeb0 :        33c0
             mov  dword ptr [ ebp + 0FFFFFB28h ] , eax                       ;0x0067eeb2 :        898528fbffff
             mov  byte ptr [ ebp + 0FFFFFC38h ] , al                         ;0x0067eeb8 :        888538fcffff
             mov  dword ptr [ ebp + 0FFFFFB30h ] , eax                       ;0x0067eebe :        898530fbffff
             mov  dword ptr [ ebp + 0FFFFFB34h ] , eax                       ;0x0067eec4 :        898534fbffff
             lea eax ,  dword ptr [ ebp + 0FFFFFF54h ]                       ;0x0067eeca :        8d8554ffffff
             push eax                                                        ;0x0067eed0 :        50
             push edi                                                        ;0x0067eed1 :        57
             mov esi , ebx                                                   ;0x0067eed2 :        8bf3
             call Fun51981d                                                  ;0x0067eed4 :        e844a9e9ff
             test eax , eax                                                  ;0x0067eed9 :        85c0
             je Label67ef10                                                  ;0x0067eedb :        7433
             lea ecx ,  dword ptr [ ebp + 0FFFFFF54h ]                       ;0x0067eedd :        8d8d54ffffff
             mov edx , 0150h                                                 ;0x0067eee3 :        ba50010000
             lea eax ,  dword ptr [ ebp + 0FFFFFC38h ]                       ;0x0067eee8 :        8d8538fcffff
             call Fun42c33e                                                  ;0x0067eeee :        e84bd4daff
             pushd 00h                                                       ;0x0067eef3 :        6a00
             lea eax ,  dword ptr [ ebp + 0FFFFFC38h ]                       ;0x0067eef5 :        8d8538fcffff
             push eax                                                        ;0x0067eefb :        50
             lea edi ,  dword ptr [ ebp + 0FFFFFAFCh ]                       ;0x0067eefc :        8dbdfcfaffff
             call Fun50d4f0                                                  ;0x0067ef02 :        e8e9e5e8ff
             mov  edi , dword ptr [ ebp + 104 ]                              ;0x0067ef07 :        8b7d68
             mov  dword ptr [ ebp + 0FFFFFB34h ] , eax                       ;0x0067ef0a :        898534fbffff

     Label67ef10 ::
             pushd 00h                                                       ;0x0067ef10 :        6a00
             push ebx                                                        ;0x0067ef12 :        53
             lea eax ,  dword ptr [ ebp + 0FFFFFF28h ]                       ;0x0067ef13 :        8d8528ffffff
             push eax                                                        ;0x0067ef19 :        50
             push edi                                                        ;0x0067ef1a :        57
             call Fun51972a                                                  ;0x0067ef1b :        e80aa8e9ff
             test eax , eax                                                  ;0x0067ef20 :        85c0
             jne Label67ef86                                                 ;0x0067ef22 :        7562
             test  byte ptr [ ebx + 012Dh ] , 080h                           ;0x0067ef24 :        f6832d01000080
             je Label67ef58                                                  ;0x0067ef2b :        742b
             push  dword ptr [ebx]                                           ;0x0067ef2d :        ff33
             mov eax , edi                                                   ;0x0067ef2f :        8bc7
             call Fun45b393                                                  ;0x0067ef31 :        e85dc4ddff
             test eax , eax                                                  ;0x0067ef36 :        85c0
             je Label67ef46                                                  ;0x0067ef38 :        740c
             mov  dword ptr [ ebp + 0FFFFFB28h ] , 01h                       ;0x0067ef3a :        c78528fbffff01000000
             jmp Label67ef86                                                 ;0x0067ef44 :        eb40

     Label67ef46 ::
             push  dword ptr [ ebx + 4 ]                                     ;0x0067ef46 :        ff7304
             mov  edx , dword ptr [ebx]                                      ;0x0067ef49 :        8b13
             lea ecx ,  dword ptr [ ebp + 0FFFFFF28h ]                       ;0x0067ef4b :        8d8d28ffffff
             call Fun43c868                                                  ;0x0067ef51 :        e812d9dbff
             jmp Label67ef86                                                 ;0x0067ef56 :        eb2e

     Label67ef58 ::
             pushd 04Bh                                                      ;0x0067ef58 :        6a4b
             xor eax , eax                                                   ;0x0067ef5a :        33c0
             pop ecx                                                         ;0x0067ef5c :        59
             lea edi ,  dword ptr [ ebp + 0FFFFFF28h ]                       ;0x0067ef5d :        8dbd28ffffff
             rep stosd                                                       ;0x0067ef63 :        f3ab
             and  dword ptr [ ebp + 0FFFFFF2Ch ] , eax                       ;0x0067ef65 :        21852cffffff
             mov  edi , dword ptr [ ebp + 104 ]                              ;0x0067ef6b :        8b7d68
             mov  byte ptr [ ebp + 0FFFFFF28h ] , 043h                       ;0x0067ef6e :        c68528ffffff43
             mov  dword ptr [ ebp + 0FFFFFF30h ] , 01h                       ;0x0067ef75 :        c78530ffffff01000000
             mov  byte ptr [ ebp + 0FFFFFF54h ] , 020h                       ;0x0067ef7f :        c68554ffffff20

     Label67ef86 ::
             pushd 01h                                                       ;0x0067ef86 :        6a01
             push edi                                                        ;0x0067ef88 :        57
             mov ecx , ebx                                                   ;0x0067ef89 :        8bcb
             call Fun45ba26                                                  ;0x0067ef8b :        e896caddff
             push edi                                                        ;0x0067ef90 :        57
             mov eax , ebx                                                   ;0x0067ef91 :        8bc3
             call Fun67c046                                                  ;0x0067ef93 :        e8aed0ffff
             pushd 04Bh                                                      ;0x0067ef98 :        6a4b
             add edi , 0540h                                                 ;0x0067ef9a :        81c740050000
             cmp  dword ptr [ ebp + 0FFFFFB28h ] , 00h                       ;0x0067efa0 :        83bd28fbffff00
             pop ecx                                                         ;0x0067efa7 :        59
             lea esi ,  dword ptr [ ebp + 0FFFFFF28h ]                       ;0x0067efa8 :        8db528ffffff
             rep movsd                                                       ;0x0067efae :        f3a5
             jne Label67f174                                                 ;0x0067efb0 :        0f85be010000
             cmp  byte ptr [ ebp + 0FFFFFC38h ] , 00h                        ;0x0067efb6 :        80bd38fcffff00
             jne Label67efe8                                                 ;0x0067efbd :        7529
             lea eax ,  dword ptr [ ebp + 0FFFFFAFCh ]                       ;0x0067efbf :        8d85fcfaffff
             push eax                                                        ;0x0067efc5 :        50
             lea eax ,  dword ptr [ ebp + 0FFFFFC38h ]                       ;0x0067efc6 :        8d8538fcffff
             push eax                                                        ;0x0067efcc :        50
             push  dword ptr [ ebx + 0128h ]                                 ;0x0067efcd :        ffb328010000
             call Fun67e954                                                  ;0x0067efd3 :        e87cf9ffff
             test eax , eax                                                  ;0x0067efd8 :        85c0
             je Label67eff7                                                  ;0x0067efda :        741b
             mov  dword ptr [ ebp + 0FFFFFB30h ] , 01h                       ;0x0067efdc :        c78530fbffff01000000
             jmp Label67f010                                                 ;0x0067efe6 :        eb28

     Label67efe8 ::
             mov  eax , dword ptr [ ebp + 0FFFFFB34h ]                       ;0x0067efe8 :        8b8534fbffff
             test eax , eax                                                  ;0x0067efee :        85c0
             je Label67f010                                                  ;0x0067eff0 :        741e
             cmp  byte ptr [eax] , 00h                                       ;0x0067eff2 :        803800
             jne Label67f010                                                 ;0x0067eff5 :        7519

     Label67eff7 ::
             lea eax ,  dword ptr [ ebp + 0FFFFFAFCh ]                       ;0x0067eff7 :        8d85fcfaffff
             push eax                                                        ;0x0067effd :        50
             lea eax ,  dword ptr [ ebp + 0FFFFFC38h ]                       ;0x0067effe :        8d8538fcffff
             lea ecx ,  dword ptr [ ebp + 0FFFFFF28h ]                       ;0x0067f004 :        8d8d28ffffff
             push eax                                                        ;0x0067f00a :        50
             call Fun67eb3f                                                  ;0x0067f00b :        e82ffbffff

     Label67f010 ::
             mov  eax , dword ptr [ ebx + 8 ]                                ;0x0067f010 :        8b4308
             cmp eax , 056h                                                  ;0x0067f013 :        83f856
             je Label67f021                                                  ;0x0067f016 :        7409
             cmp eax , 051h                                                  ;0x0067f018 :        83f851
             jne Label67f143                                                 ;0x0067f01b :        0f8522010000

     Label67f021 ::
             cmp  dword ptr [ ebp + 0FFFFFB30h ] , 00h                       ;0x0067f021 :        83bd30fbffff00
             je Label67f143                                                  ;0x0067f028 :        0f8415010000
             xor eax , eax                                                   ;0x0067f02e :        33c0
             lea edi ,  dword ptr [ ebp + 0FFFFFB0Ch ]                       ;0x0067f030 :        8dbd0cfbffff
             stosd                                                           ;0x0067f036 :        ab
             stosd                                                           ;0x0067f037 :        ab
             stosd                                                           ;0x0067f038 :        ab
             stosd                                                           ;0x0067f039 :        ab
             lea ecx ,  dword ptr [ ebp + 0FFFFFC38h ]                       ;0x0067f03a :        8d8d38fcffff
             mov edx , 01A0h                                                 ;0x0067f040 :        baa0010000
             lea eax ,  dword ptr [ ebp + 0FFFFFD88h ]                       ;0x0067f045 :        8d8588fdffff
             call Fun42c33e                                                  ;0x0067f04b :        e8eed2daff
             pushd 01h                                                       ;0x0067f050 :        6a01
             lea eax ,  dword ptr [ ebp + 0FFFFFD88h ]                       ;0x0067f052 :        8d8588fdffff
             push eax                                                        ;0x0067f058 :        50
             lea edi ,  dword ptr [ ebp + 0FFFFFB0Ch ]                       ;0x0067f059 :        8dbd0cfbffff
             call Fun50d4f0                                                  ;0x0067f05f :        e88ce4e8ff
             test  byte ptr [ ebp + 0FFFFFB0Fh ] , 01h                       ;0x0067f064 :        f6850ffbffff01
             je Label67f095                                                  ;0x0067f06b :        7428
             lea eax ,  dword ptr [ ebp + 0FFFFFD88h ]                       ;0x0067f06d :        8d8588fdffff
             jmp Label67f086                                                 ;0x0067f073 :        eb11

     Label67f075 ::
             lea ecx ,  dword ptr [ eax + 1 ]                                ;0x0067f075 :        8d4801
             mov esi , eax                                                   ;0x0067f078 :        8bf0
             sub esi , ecx                                                   ;0x0067f07a :        2bf1

     Label67f07c ::
             mov  dl , byte ptr [ecx]                                        ;0x0067f07c :        8a11
             mov  byte ptr [ ecx + esi ] , dl                                ;0x0067f07e :        881431
             inc ecx                                                         ;0x0067f081 :        41
             test dl , dl                                                    ;0x0067f082 :        84d2
             jne Label67f07c                                                 ;0x0067f084 :        75f6

     Label67f086 ::
             pushd 046h                                                      ;0x0067f086 :        6a46
             push eax                                                        ;0x0067f088 :        50
             call  _mbschr = qword ptr [ Data9370b0 ]                                  ;0x0067f089 :        ff15b0709300
             test eax , eax                                                  ;0x0067f08f :        85c0
             pop ecx                                                         ;0x0067f091 :        59
             pop ecx                                                         ;0x0067f092 :        59
             jne Label67f075                                                 ;0x0067f093 :        75e0

     Label67f095 ::
             test  byte ptr [ ebp + 0FFFFFB0Eh ] , 01h                       ;0x0067f095 :        f6850efbffff01
             jne Label67f0f8                                                 ;0x0067f09c :        755a
             cmp  byte ptr [ ebp + 0FFFFFD88h ] , 040h                       ;0x0067f09e :        80bd88fdffff40
             lea eax ,  dword ptr [ ebp + 0FFFFFD89h ]                       ;0x0067f0a5 :        8d8589fdffff
             lea edx ,  dword ptr [ eax + 1 ]                                ;0x0067f0ab :        8d5001
             jne Label67f0ce                                                 ;0x0067f0ae :        751e

     Label67f0b0 ::
             mov  cl , byte ptr [eax]                                        ;0x0067f0b0 :        8a08
             inc eax                                                         ;0x0067f0b2 :        40
             test cl , cl                                                    ;0x0067f0b3 :        84c9
             jne Label67f0b0                                                 ;0x0067f0b5 :        75f9
             sub eax , edx                                                   ;0x0067f0b7 :        2bc2
             inc eax                                                         ;0x0067f0b9 :        40
             push eax                                                        ;0x0067f0ba :        50
             lea edx ,  dword ptr [ ebp + 0FFFFFD89h ]                       ;0x0067f0bb :        8d9589fdffff
             lea ecx ,  dword ptr [ ebp + 0FFFFFD8Ah ]                       ;0x0067f0c1 :        8d8d8afdffff
             call Fun42c19b                                                  ;0x0067f0c7 :        e8cfd0daff
             jmp Label67f0f1                                                 ;0x0067f0cc :        eb23

     Label67f0ce ::
             mov  cl , byte ptr [eax]                                        ;0x0067f0ce :        8a08
             inc eax                                                         ;0x0067f0d0 :        40
             test cl , cl                                                    ;0x0067f0d1 :        84c9
             jne Label67f0ce                                                 ;0x0067f0d3 :        75f9
             sub eax , edx                                                   ;0x0067f0d5 :        2bc2
             inc eax                                                         ;0x0067f0d7 :        40
             push eax                                                        ;0x0067f0d8 :        50
             lea edx ,  dword ptr [ ebp + 0FFFFFD89h ]                       ;0x0067f0d9 :        8d9589fdffff
             lea ecx ,  dword ptr [ ebp + 0FFFFFD8Bh ]                       ;0x0067f0df :        8d8d8bfdffff
             call Fun42c19b                                                  ;0x0067f0e5 :        e8b1d0daff
             mov  byte ptr [ ebp + 0FFFFFD8Ah ] , 020h                       ;0x0067f0ea :        c6858afdffff20

     Label67f0f1 ::
             mov  byte ptr [ ebp + 0FFFFFD89h ] , 04Eh                       ;0x0067f0f1 :        c68589fdffff4e

     Label67f0f8 ::
             lea esi ,  dword ptr [ ebp + 0FFFFFAFCh ]                       ;0x0067f0f8 :        8db5fcfaffff
             lea edi ,  dword ptr [ ebp + 0FFFFFB0Ch ]                       ;0x0067f0fe :        8dbd0cfbffff
             movsd                                                           ;0x0067f104 :        a5
             movsd                                                           ;0x0067f105 :        a5
             movsd                                                           ;0x0067f106 :        a5
             movsd                                                           ;0x0067f107 :        a5
             mov  eax , dword ptr [ ebp + 0FFFFFB0Ch ]                       ;0x0067f108 :        8b850cfbffff
             mov  edi , dword ptr [ ebp + 104 ]                              ;0x0067f10e :        8b7d68
             and eax , 0FEFFFFFFh                                            ;0x0067f111 :        25fffffffe
             or eax , 010000h                                                ;0x0067f116 :        0d00000100
             pushd 00h                                                       ;0x0067f11b :        6a00
             mov  dword ptr [ ebp + 0FFFFFB0Ch ] , eax                       ;0x0067f11d :        89850cfbffff
             lea eax ,  dword ptr [ ebp + 0FFFFFB0Ch ]                       ;0x0067f123 :        8d850cfbffff
             push eax                                                        ;0x0067f129 :        50
             pushd 01h                                                       ;0x0067f12a :        6a01
             lea eax ,  dword ptr [ ebp + 0FFFFFB38h ]                       ;0x0067f12c :        8d8538fbffff
             push eax                                                        ;0x0067f132 :        50
             push edi                                                        ;0x0067f133 :        57
             lea ecx ,  dword ptr [ ebp + 0FFFFFD88h ]                       ;0x0067f134 :        8d8d88fdffff
             mov edx , ebx                                                   ;0x0067f13a :        8bd3
             call Fun519746                                                  ;0x0067f13c :        e805a6e9ff
             jmp Label67f168                                                 ;0x0067f141 :        eb25

     Label67f143 ::
             pushd 00h                                                       ;0x0067f143 :        6a00
             lea eax ,  dword ptr [ ebp + 0FFFFFAFCh ]                       ;0x0067f145 :        8d85fcfaffff
             push eax                                                        ;0x0067f14b :        50
             pushd 01h                                                       ;0x0067f14c :        6a01
             lea eax ,  dword ptr [ ebp + 0FFFFFB38h ]                       ;0x0067f14e :        8d8538fbffff
             push eax                                                        ;0x0067f154 :        50
             push  dword ptr [ ebp + 104 ]                                   ;0x0067f155 :        ff7568
             lea ecx ,  dword ptr [ ebp + 0FFFFFC38h ]                       ;0x0067f158 :        8d8d38fcffff
             mov edx , ebx                                                   ;0x0067f15e :        8bd3
             call Fun519746                                                  ;0x0067f160 :        e8e1a5e9ff
             mov  edi , dword ptr [ ebp + 104 ]                              ;0x0067f165 :        8b7d68

     Label67f168 ::
             and  dword ptr [ edi + 051Ch ] , 00h                            ;0x0067f168 :        83a71c05000000
             mov  dword ptr [ ebx + 12 ] , eax                               ;0x0067f16f :        89430c
             jmp Label67f177                                                 ;0x0067f172 :        eb03

     Label67f174 ::
             mov  edi , dword ptr [ ebp + 104 ]                              ;0x0067f174 :        8b7d68

     Label67f177 ::
             mov  ebx , dword ptr [ edi + 0320h ]                            ;0x0067f177 :        8b9f20030000
             xor eax , eax                                                   ;0x0067f17d :        33c0
             inc eax                                                         ;0x0067f17f :        40
             call Fun42534c                                                  ;0x0067f180 :        e8c761daff
             push  dword ptr [ ebp + 108 ]                                   ;0x0067f185 :        ff756c
             push edi                                                        ;0x0067f188 :        57
             call Fun67f8cc                                                  ;0x0067f189 :        e83e070000
             mov  ebx , dword ptr [ ebp + 0FFFFFB2Ch ]                       ;0x0067f18e :        8b9d2cfbffff
             mov  esi , dword ptr [ ebx + 0128h ]                            ;0x0067f194 :        8bb328010000
             test esi , esi                                                  ;0x0067f19a :        85f6
             je Label67f3bc                                                  ;0x0067f19c :        0f841a020000
             cmp  dword ptr [ ebp + 0FFFFFB30h ] , 00h                       ;0x0067f1a2 :        83bd30fbffff00
             jne Label67f1b7                                                 ;0x0067f1a9 :        750c
             lea eax ,  dword ptr [ ebp + 0FFFFFC38h ]                       ;0x0067f1ab :        8d8538fcffff
             push eax                                                        ;0x0067f1b1 :        50
             call Fun67eaf5                                                  ;0x0067f1b2 :        e83ef9ffff

     Label67f1b7 ::
             cmp  dword ptr [ ebp + 0FFFFFB28h ] , 00h                       ;0x0067f1b7 :        83bd28fbffff00
             jne Label67f1ec                                                 ;0x0067f1be :        752c
             test  dword ptr [ ebp + 120 ] , 02h                             ;0x0067f1c0 :        f7457802000000
             je Label67f1ec                                                  ;0x0067f1c7 :        7423
             mov  eax , dword ptr [ ebp + 108 ]                              ;0x0067f1c9 :        8b456c
             imul eax , eax , 074h                                           ;0x0067f1cc :        6bc074
             test  byte ptr [ eax + edi + 0140h ] , 040h                     ;0x0067f1cf :        f684384001000040
             mov  dword ptr [ ebp + 0FFFFFB30h ] , 01h                       ;0x0067f1d7 :        c78530fbffff01000000
             je Label67f1ec                                                  ;0x0067f1e1 :        7409
             test  byte ptr [ ebx + 012Dh ] , 010h                           ;0x0067f1e3 :        f6832d01000010
             jne Label67f1f3                                                 ;0x0067f1ea :        7507

     Label67f1ec ::
             and  dword ptr [ ebp + 0FFFFFB30h ] , 00h                       ;0x0067f1ec :        83a530fbffff00

     Label67f1f3 ::
             push  dword ptr [ ebx + 0128h ]                                 ;0x0067f1f3 :        ffb328010000
             mov esi , 0160h                                                 ;0x0067f1f9 :        be60010000
             mov ecx , esi                                                   ;0x0067f1fe :        8bce
             call Fun433c43                                                  ;0x0067f200 :        e83e4adbff
             test eax , eax                                                  ;0x0067f205 :        85c0
             je Label67f244                                                  ;0x0067f207 :        743b
             mov  eax , dword ptr [ ebp + 0FFFFFB30h ]                       ;0x0067f209 :        8b8530fbffff
             mov  edx , dword ptr [ Data9388dc ]                             ;0x0067f20f :        8b15dc889300
             pushd 0FFFFFFFFh                                                ;0x0067f215 :        6aff
             pushd 04h                                                       ;0x0067f217 :        6a04
             mov  dword ptr [ ebp + 0FFFFFB2Ch ] , eax                       ;0x0067f219 :        89852cfbffff
             mov  eax , dword ptr [ ebx + 0128h ]                            ;0x0067f21f :        8b8328010000
             lea ecx ,  dword ptr [ ebp + 0FFFFFB2Ch ]                       ;0x0067f225 :        8d8d2cfbffff
             push ecx                                                        ;0x0067f22b :        51
             lea ecx ,  dword ptr [ eax + 4 * eax ]                          ;0x0067f22c :        8d0c80
             shl ecx , 05h                                                   ;0x0067f22f :        c1e105
             push  dword ptr [ ecx + edx + 116 ]                             ;0x0067f232 :        ff741174
             pushd 00h                                                       ;0x0067f236 :        6a00
             pushd 0FFFFFFFFh                                                ;0x0067f238 :        6aff
             push esi                                                        ;0x0067f23a :        56
             push eax                                                        ;0x0067f23b :        50
             call Fun41c715                                                  ;0x0067f23c :        e8d4d4d9ff
             add esp , 020h                                                  ;0x0067f241 :        83c420

     Label67f244 ::
             xor eax , eax                                                   ;0x0067f244 :        33c0
             call Fun42c118                                                  ;0x0067f246 :        e8cdcedaff
             mov  esi , dword ptr [ edi + 0524h ]                            ;0x0067f24b :        8bb724050000
             mov eax , esp                                                   ;0x0067f251 :        8bc4
             sub  eax , dword ptr [ Data9370c4 ]                             ;0x0067f253 :        2b05c4709300
             shl esi , 02h                                                   ;0x0067f259 :        c1e602
             cmp eax , esi                                                   ;0x0067f25c :        3bc6
             jle Label67f275                                                 ;0x0067f25e :        7e15
             mov eax , esi                                                   ;0x0067f260 :        8bc6
             add eax , 07h                                                   ;0x0067f262 :        83c007
             and eax , 0FFFFFFF8h                                            ;0x0067f265 :        83e0f8
             call Fun42c118                                                  ;0x0067f268 :        e8abcedaff
             mov  dword ptr [ ebp + 0FFFFFB30h ] , esp                       ;0x0067f26d :        89a530fbffff
             jmp Label67f27c                                                 ;0x0067f273 :        eb07

     Label67f275 ::
             and  dword ptr [ ebp + 0FFFFFB30h ] , 00h                       ;0x0067f275 :        83a530fbffff00

     Label67f27c ::
             xor eax , eax                                                   ;0x0067f27c :        33c0
             call Fun42c118                                                  ;0x0067f27e :        e895cedaff
             mov eax , esp                                                   ;0x0067f283 :        8bc4
             sub  eax , dword ptr [ Data9370c4 ]                             ;0x0067f285 :        2b05c4709300
             cmp eax , esi                                                   ;0x0067f28b :        3bc6
             jle Label67f2a4                                                 ;0x0067f28d :        7e15
             mov eax , esi                                                   ;0x0067f28f :        8bc6
             add eax , 07h                                                   ;0x0067f291 :        83c007
             and eax , 0FFFFFFF8h                                            ;0x0067f294 :        83e0f8
             call Fun42c118                                                  ;0x0067f297 :        e87ccedaff
             mov  dword ptr [ ebp + 0FFFFFB34h ] , esp                       ;0x0067f29c :        89a534fbffff
             jmp Label67f2ab                                                 ;0x0067f2a2 :        eb07

     Label67f2a4 ::
             and  dword ptr [ ebp + 0FFFFFB34h ] , 00h                       ;0x0067f2a4 :        83a534fbffff00

     Label67f2ab ::
             cmp  dword ptr [ ebp + 0FFFFFB30h ] , 00h                       ;0x0067f2ab :        83bd30fbffff00
             je Label67f2d4                                                  ;0x0067f2b2 :        7420
             cmp  dword ptr [ ebp + 0FFFFFB34h ] , 00h                       ;0x0067f2b4 :        83bd34fbffff00
             je Label67f2d4                                                  ;0x0067f2bb :        7417
             push  dword ptr [ ebp + 0FFFFFB30h ]                            ;0x0067f2bd :        ffb530fbffff
             call Fun519c4f                                                  ;0x0067f2c3 :        e887a9e9ff
             mov  eax , dword ptr [ ebp + 116 ]                              ;0x0067f2c8 :        8b4574
             mov  edi , dword ptr [ ebp + 104 ]                              ;0x0067f2cb :        8b7d68
             mov  dword ptr [ ebp + 0FFFFFB1Ch ] , eax                       ;0x0067f2ce :        89851cfbffff

     Label67f2d4 ::
             test  byte ptr [ edi + 95 ] , 04h                               ;0x0067f2d4 :        f6475f04
             je Label67f36e                                                  ;0x0067f2d8 :        0f8490000000
             mov eax ,  dword ptr [ Data9370f8 ]                             ;0x0067f2de :        a1f8709300
             mov  eax , dword ptr [eax]                                      ;0x0067f2e3 :        8b00
             mov  esi , dword ptr [ eax + 24 ]                               ;0x0067f2e5 :        8b7018
             mov  eax , dword ptr [ ebx + 0128h ]                            ;0x0067f2e8 :        8b8328010000
             call Fun50d098                                                  ;0x0067f2ee :        e8a5dde8ff
             test eax , eax                                                  ;0x0067f2f3 :        85c0
             jne Label67f350                                                 ;0x0067f2f5 :        7559
             test  byte ptr [ edi + 98 ] , 080h                              ;0x0067f2f7 :        f6476280
             je Label67f350                                                  ;0x0067f2fb :        7453
             mov  ecx , dword ptr [ ebx + 0128h ]                            ;0x0067f2fd :        8b8b28010000
             call Fun51b6c8                                                  ;0x0067f303 :        e8c0c3e9ff
             test eax , eax                                                  ;0x0067f308 :        85c0
             je Label67f33d                                                  ;0x0067f30a :        7431
             mov  edx , dword ptr [ Data9388dc ]                             ;0x0067f30c :        8b15dc889300
             and  dword ptr [ ebp + 0FFFFFB2Ch ] , 00h                       ;0x0067f312 :        83a52cfbffff00
             pushd 0FFFFFFFFh                                                ;0x0067f319 :        6aff
             pushd 04h                                                       ;0x0067f31b :        6a04
             lea ecx ,  dword ptr [ ebp + 0FFFFFB2Ch ]                       ;0x0067f31d :        8d8d2cfbffff
             push ecx                                                        ;0x0067f323 :        51
             lea ecx ,  dword ptr [ eax + 4 * eax ]                          ;0x0067f324 :        8d0c80
             shl ecx , 05h                                                   ;0x0067f327 :        c1e105
             push  dword ptr [ ecx + edx + 116 ]                             ;0x0067f32a :        ff741174
             pushd 00h                                                       ;0x0067f32e :        6a00
             pushd 0FFFFFFFFh                                                ;0x0067f330 :        6aff
             pushd 04h                                                       ;0x0067f332 :        6a04
             push eax                                                        ;0x0067f334 :        50
             call Fun41c715                                                  ;0x0067f335 :        e8dbd3d9ff
             add esp , 020h                                                  ;0x0067f33a :        83c420

     Label67f33d ::
             mov  eax , dword ptr [ ebp + 124 ]                              ;0x0067f33d :        8b457c
             mov  edx , dword ptr [ ebx + 0128h ]                            ;0x0067f340 :        8b9328010000
             mov ecx , 0BDh                                                  ;0x0067f346 :        b9bd000000
             call Fun4f6226                                                  ;0x0067f34b :        e8d66ee7ff

     Label67f350 ::
             mov eax ,  dword ptr [ Data9370f8 ]                             ;0x0067f350 :        a1f8709300
             mov  eax , dword ptr [eax]                                      ;0x0067f355 :        8b00
             mov  eax , dword ptr [ eax + 24 ]                               ;0x0067f357 :        8b4018
             cmp eax , esi                                                   ;0x0067f35a :        3bc6
             je Label67f36e                                                  ;0x0067f35c :        7410
             mov  ecx , dword ptr [ edi + 12 ]                               ;0x0067f35e :        8b4f0c
             pushd 00h                                                       ;0x0067f361 :        6a00
             mov  dword ptr [ ebp + 0FFFFFB20h ] , eax                       ;0x0067f363 :        898520fbffff
             call Fun52da49                                                  ;0x0067f369 :        e8dbe6eaff

     Label67f36e ::
             cmp  dword ptr [ ebp + 0FFFFFB30h ] , 00h                       ;0x0067f36e :        83bd30fbffff00
             je Label67f3bc                                                  ;0x0067f375 :        7445
             cmp  dword ptr [ ebp + 0FFFFFB34h ] , 00h                       ;0x0067f377 :        83bd34fbffff00
             je Label67f3bc                                                  ;0x0067f37e :        743c
             push  dword ptr [ ebp + 0FFFFFB34h ]                            ;0x0067f380 :        ffb534fbffff
             call Fun519c4f                                                  ;0x0067f386 :        e8c4a8e9ff
             mov  eax , dword ptr [ ebp + 104 ]                              ;0x0067f38b :        8b4568
             mov  ecx , dword ptr [ ebp + 0FFFFFB1Ch ]                       ;0x0067f38e :        8b8d1cfbffff
             cmp  ecx , dword ptr [ eax + 090h ]                             ;0x0067f394 :        3b8890000000
             jne Label67f588                                                 ;0x0067f39a :        0f85e8010000
             mov  ecx , dword ptr [ ebp + 0FFFFFB34h ]                       ;0x0067f3a0 :        8b8d34fbffff
             mov  edx , dword ptr [ ebp + 0FFFFFB30h ]                       ;0x0067f3a6 :        8b9530fbffff
             call Fun51b871                                                  ;0x0067f3ac :        e8c0c4e9ff
             test eax , eax                                                  ;0x0067f3b1 :        85c0
             je Label67f588                                                  ;0x0067f3b3 :        0f84cf010000
             mov  edi , dword ptr [ ebp + 104 ]                              ;0x0067f3b9 :        8b7d68

     Label67f3bc ::
             push  dword ptr [ edi + 053Ch ]                                 ;0x0067f3bc :        ffb73c050000
             push edi                                                        ;0x0067f3c2 :        57
             call Fun51e049                                                  ;0x0067f3c3 :        e881ece9ff
             mov  eax , dword ptr [ ebx + 012Ch ]                            ;0x0067f3c8 :        8b832c010000
             test ah , ah                                                    ;0x0067f3ce :        84e4
             jns Label67f422                                                 ;0x0067f3d0 :        7950
             cmp  dword ptr [ ebp + 0FFFFFB28h ] , 00h                       ;0x0067f3d2 :        83bd28fbffff00
             jne Label67f422                                                 ;0x0067f3d9 :        7547
             test  byte ptr [ edi + 92 ] , 01h                               ;0x0067f3db :        f6475c01
             jne Label67f422                                                 ;0x0067f3df :        7541
             mov  edx , dword ptr [ edi + 88 ]                               ;0x0067f3e1 :        8b5758
             test edx , edx                                                  ;0x0067f3e4 :        85d2
             js Label67f422                                                  ;0x0067f3e6 :        783a
             test  byte ptr [ edi + 98 ] , 080h                              ;0x0067f3e8 :        f6476280
             je Label67f422                                                  ;0x0067f3ec :        7434
             cmp  dword ptr [ ebx + 112 ] , 00h                              ;0x0067f3ee :        837b7000
             jne Label67f422                                                 ;0x0067f3f2 :        752e
             test al , 01h                                                   ;0x0067f3f4 :        a801
             jne Label67f422                                                 ;0x0067f3f6 :        752a
             mov  eax , dword ptr [ebx]                                      ;0x0067f3f8 :        8b03
             mov  ecx , dword ptr [ eax + 16 ]                               ;0x0067f3fa :        8b4810
             test  byte ptr cl , 040h                                        ;0x0067f3fd :        f6c140
             jne Label67f422                                                 ;0x0067f400 :        7520
             test  byte ptr dh , 08h                                         ;0x0067f402 :        f6c608
             je Label67f414                                                  ;0x0067f405 :        740d
             mov  edx , dword ptr [ ebp + 112 ]                              ;0x0067f407 :        8b5570
             mov  edx , dword ptr [edx]                                      ;0x0067f40a :        8b12
             cmp  edx , dword ptr [ edi + 0538h ]                            ;0x0067f40c :        3b9738050000
             jle Label67f422                                                 ;0x0067f412 :        7e0e

     Label67f414 ::
             cmp  eax , dword ptr [ edi + 12 ]                               ;0x0067f414 :        3b470c
             je Label67f41e                                                  ;0x0067f417 :        7405
             test  byte ptr cl , 01h                                         ;0x0067f419 :        f6c101
             jne Label67f422                                                 ;0x0067f41c :        7504

     Label67f41e ::
             xor eax , eax                                                   ;0x0067f41e :        33c0
             jmp Label67f425                                                 ;0x0067f420 :        eb03

     Label67f422 ::
             xor eax , eax                                                   ;0x0067f422 :        33c0
             inc eax                                                         ;0x0067f424 :        40

     Label67f425 ::
             shl eax , 02h                                                   ;0x0067f425 :        c1e002
             xor  eax , dword ptr [ edi + 88 ]                               ;0x0067f428 :        334758
             and eax , 04h                                                   ;0x0067f42b :        83e004
             xor  dword ptr [ edi + 88 ] , eax                               ;0x0067f42e :        314758
             mov  eax , dword ptr [ ebx + 0128h ]                            ;0x0067f431 :        8b8328010000
             test eax , eax                                                  ;0x0067f437 :        85c0
             je Label67f4f5                                                  ;0x0067f439 :        0f84b6000000
             mov esi , 012Dh                                                 ;0x0067f43f :        be2d010000
             push eax                                                        ;0x0067f444 :        50
             mov ecx , esi                                                   ;0x0067f445 :        8bce
             call Fun433c43                                                  ;0x0067f447 :        e8f747dbff
             test eax , eax                                                  ;0x0067f44c :        85c0
             je Label67f48f                                                  ;0x0067f44e :        743f
             movzx eax ,byte ptr [ edi + 88 ]                                ;0x0067f450 :        0fb64758
             mov  edx , dword ptr [ Data9388dc ]                             ;0x0067f454 :        8b15dc889300
             pushd 0FFFFFFFFh                                                ;0x0067f45a :        6aff
             shr eax , 02h                                                   ;0x0067f45c :        c1e802
             pushd 04h                                                       ;0x0067f45f :        6a04
             and eax , 01h                                                   ;0x0067f461 :        83e001
             mov  dword ptr [ ebp + 0FFFFFB24h ] , eax                       ;0x0067f464 :        898524fbffff
             mov  eax , dword ptr [ ebx + 0128h ]                            ;0x0067f46a :        8b8328010000
             lea ecx ,  dword ptr [ ebp + 0FFFFFB24h ]                       ;0x0067f470 :        8d8d24fbffff
             push ecx                                                        ;0x0067f476 :        51
             lea ecx ,  dword ptr [ eax + 4 * eax ]                          ;0x0067f477 :        8d0c80
             shl ecx , 05h                                                   ;0x0067f47a :        c1e105
             push  dword ptr [ ecx + edx + 116 ]                             ;0x0067f47d :        ff741174
             pushd 00h                                                       ;0x0067f481 :        6a00
             pushd 0FFFFFFFFh                                                ;0x0067f483 :        6aff
             push esi                                                        ;0x0067f485 :        56
             push eax                                                        ;0x0067f486 :        50
             call Fun41c715                                                  ;0x0067f487 :        e889d2d9ff
             add esp , 020h                                                  ;0x0067f48c :        83c420

     Label67f48f ::
             push  dword ptr [ ebx + 0128h ]                                 ;0x0067f48f :        ffb328010000
             pushd 030h                                                      ;0x0067f495 :        6a30
             pop ecx                                                         ;0x0067f497 :        59
             call Fun433c43                                                  ;0x0067f498 :        e8a647dbff
             test eax , eax                                                  ;0x0067f49d :        85c0
             je Label67f4f5                                                  ;0x0067f49f :        7454
             xor esi , esi                                                   ;0x0067f4a1 :        33f6
             cmp  dword ptr [ ebp + 0FFFFFB28h ] , esi                       ;0x0067f4a3 :        39b528fbffff
             je Label67f4be                                                  ;0x0067f4a9 :        7413
             test  byte ptr [ ebx + 012Eh ] , 08h                            ;0x0067f4ab :        f6832e01000008
             mov  dword ptr [ ebp + 0FFFFFB24h ] , 01h                       ;0x0067f4b2 :        c78524fbffff01000000
             jne Label67f4c4                                                 ;0x0067f4bc :        7506

     Label67f4be ::
             mov  dword ptr [ ebp + 0FFFFFB24h ] , esi                       ;0x0067f4be :        89b524fbffff

     Label67f4c4 ::
             mov  ebx , dword ptr [ ebx + 0128h ]                            ;0x0067f4c4 :        8b9b28010000
             mov  ecx , dword ptr [ Data9388dc ]                             ;0x0067f4ca :        8b0ddc889300
             pushd 0FFFFFFFFh                                                ;0x0067f4d0 :        6aff
             pushd 04h                                                       ;0x0067f4d2 :        6a04
             lea eax ,  dword ptr [ ebp + 0FFFFFB24h ]                       ;0x0067f4d4 :        8d8524fbffff
             push eax                                                        ;0x0067f4da :        50
             lea eax ,  dword ptr [ ebx + 4 * ebx ]                          ;0x0067f4db :        8d049b
             shl eax , 05h                                                   ;0x0067f4de :        c1e005
             push  dword ptr [ eax + ecx + 116 ]                             ;0x0067f4e1 :        ff740874
             push esi                                                        ;0x0067f4e5 :        56
             pushd 0FFFFFFFFh                                                ;0x0067f4e6 :        6aff
             pushd 030h                                                      ;0x0067f4e8 :        6a30
             push ebx                                                        ;0x0067f4ea :        53
             call Fun41c715                                                  ;0x0067f4eb :        e825d2d9ff
             add esp , 020h                                                  ;0x0067f4f0 :        83c420
             jmp Label67f4f7                                                 ;0x0067f4f3 :        eb02

     Label67f4f5 ::
             xor esi , esi                                                   ;0x0067f4f5 :        33f6

     Label67f4f7 ::
             mov  eax , dword ptr [ ebp + 120 ]                              ;0x0067f4f7 :        8b4578
             and eax , 01h                                                   ;0x0067f4fa :        83e001
             push eax                                                        ;0x0067f4fd :        50
             push  dword ptr [ ebp + 108 ]                                   ;0x0067f4fe :        ff756c
             mov eax , edi                                                   ;0x0067f501 :        8bc7
             call Fun674f29                                                  ;0x0067f503 :        e8215affff
             mov eax , edi                                                   ;0x0067f508 :        8bc7
             call Fun67fc8c                                                  ;0x0067f50a :        e87d070000
             mov  eax , dword ptr [ edi + 0320h ]                            ;0x0067f50f :        8b8720030000
             call Fun4defb8                                                  ;0x0067f515 :        e89efae5ff
             mov  eax , dword ptr [ ebp + 116 ]                              ;0x0067f51a :        8b4574
             inc eax                                                         ;0x0067f51d :        40
             mov  dword ptr [ ebp + 0FFFFFAE0h ] , eax                       ;0x0067f51e :        8985e0faffff
             mov eax ,  dword ptr [ Data9370f8 ]                             ;0x0067f524 :        a1f8709300
             mov  eax , dword ptr [eax]                                      ;0x0067f529 :        8b00
             mov  ebx , dword ptr [ eax + 24 ]                               ;0x0067f52b :        8b5818
             mov  eax , dword ptr [ edi + 96 ]                               ;0x0067f52e :        8b4760
             shr eax , 017h                                                  ;0x0067f531 :        c1e817
             and eax , 01h                                                   ;0x0067f534 :        83e001
             jne Label67f53f                                                 ;0x0067f537 :        7506
             cmp  dword ptr [ edi + 108 ] , 01h                              ;0x0067f539 :        837f6c01
             jne Label67f562                                                 ;0x0067f53d :        7523

     Label67f53f ::
             cmp eax , esi                                                   ;0x0067f53f :        3bc6
             jne Label67f549                                                 ;0x0067f541 :        7506
             mov  dword ptr [ ebp + 0FFFFFAE0h ] , esi                       ;0x0067f543 :        89b5e0faffff

     Label67f549 ::
             push esi                                                        ;0x0067f549 :        56
             push esi                                                        ;0x0067f54a :        56
             pushd 01h                                                       ;0x0067f54b :        6a01
             push esi                                                        ;0x0067f54d :        56
             lea eax ,  dword ptr [ ebp + 0FFFFFAC8h ]                       ;0x0067f54e :        8d85c8faffff
             push eax                                                        ;0x0067f554 :        50
             pushd 0Ch                                                       ;0x0067f555 :        6a0c
             push  dword ptr [ edi + 06D0h ]                                 ;0x0067f557 :        ffb7d0060000
             call Fun43c117                                                  ;0x0067f55d :        e8b5cbdbff

     Label67f562 ::
             mov eax ,  dword ptr [ Data9370f8 ]                             ;0x0067f562 :        a1f8709300
             mov  dword ptr [ edi + 108 ] , esi                              ;0x0067f567 :        89776c
             mov  eax , dword ptr [eax]                                      ;0x0067f56a :        8b00
             mov  eax , dword ptr [ eax + 24 ]                               ;0x0067f56c :        8b4018
             cmp eax , ebx                                                   ;0x0067f56f :        3bc3
             je Label67f579                                                  ;0x0067f571 :        7406
             mov  dword ptr [ ebp + 0FFFFFB20h ] , eax                       ;0x0067f573 :        898520fbffff

     Label67f579 ::
             mov  ecx , dword ptr [ ebp + 0FFFFFB20h ]                       ;0x0067f579 :        8b8d20fbffff
             cmp ecx , esi                                                   ;0x0067f57f :        3bce
             je Label67f588                                                  ;0x0067f581 :        7405
             call Fun52a6f6                                                  ;0x0067f583 :        e86eb1eaff

     Label67f588 ::
             lea esp ,  dword ptr [ ebp + 0FFFFFAB8h ]                       ;0x0067f588 :        8da5b8faffff
             mov  ecx , dword ptr [ ebp + 92 ]                               ;0x0067f58e :        8b4d5c
             call Fun42bf1d                                                  ;0x0067f591 :        e887c9daff
             pop edi                                                         ;0x0067f596 :        5f
             pop esi                                                         ;0x0067f597 :        5e
             pop ebx                                                         ;0x0067f598 :        5b
             add ebp , 060h                                                  ;0x0067f599 :        83c560
             leave                                                           ;0x0067f59c :        c9
             ret 018h                                                        ;0x0067f59d :        c21800


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_vfp9fix433.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix14.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix141.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix398.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix399.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix431.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix432.asp


6. OTHER:

     For reference only, there is no guarantees.

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