------------------------------------------------------------ [BUG/PRB.] VFP 9.0 FIX - FIX THE IMPORT COMMAND July 2025 ------------------------------------------------------------ CCB 1. BUG: In vfp9 (and vfp6, vfp7, vfp8), if we use the IMPORT command to import data from Microsoft Excel 5.0 and 97 (XLS), sometimes VFP will crash. 2. CAUSE: There are some BUGs in the following code. 3. RESOLUTION: We can write some code to fix the BUG. Fun7ae10e :: ; proc near pushd 02E0h ;0x007ae10e : 68e0020000 pushd offset Data92b6c0 ;0x007ae113 : 68c0b69200 call Fun42c14f ;0x007ae118 : e832e0c7ff mov eax , dword ptr [ Data937090 ] ;0x007ae11d : a190709300 mov dword ptr [ ebp - 28 ] , eax ;0x007ae122 : 8945e4 mov esi , dword ptr [ ebp + 8 ] ;0x007ae125 : 8b7508 xor ebx , ebx ;0x007ae128 : 33db mov dword ptr [ ebp + 0FFFFFDA0h ] , ebx ;0x007ae12a : 899da0fdffff mov dword ptr [ ebp + 0FFFFFDACh ] , ebx ;0x007ae130 : 899dacfdffff mov dword ptr [ ebp + 0FFFFFDB4h ] , ebx ;0x007ae136 : 899db4fdffff mov dword ptr [ ebp + 0FFFFFDB8h ] , ebx ;0x007ae13c : 899db8fdffff pushd 0105h ;0x007ae142 : 6805010000 lea ecx , dword ptr [ esi + 93 ] ;0x007ae147 : 8d4e5d lea edi , dword ptr [ ebp + 0FFFFFDD8h ] ;0x007ae14a : 8dbdd8fdffff call Fun4a742a ;0x007ae150 : e8d592cfff call Fun53d093 ;0x007ae155 : e839efd8ff push eax ;0x007ae15a : 50 push ebx ;0x007ae15b : 53 pushd 0FFFFFFFFh ;0x007ae15c : 6aff mov eax , edi ;0x007ae15e : 8bc7 push eax ;0x007ae160 : 50 lea ebx , dword ptr [ ebp + 0FFFFFDA4h ] ;0x007ae161 : 8d9da4fdffff call Fun4d9aab ;0x007ae167 : e83fb9d2ff test eax , eax ;0x007ae16c : 85c0 je Label7ae17c ;0x007ae16e : 740c mov edi , eax ;0x007ae170 : 8bf8 mov ecx , 01AAh ;0x007ae172 : b9aa010000 call Fun791bc8 ;0x007ae177 : e84c3afeff Label7ae17c :: add esi , 0162h ;0x007ae17c : 81c662010000 push esi ;0x007ae182 : 56 xor ebx , ebx ;0x007ae183 : 33db push ebx ;0x007ae185 : 53 push ebx ;0x007ae186 : 53 pushd 010h ;0x007ae187 : 6a10 push ebx ;0x007ae189 : 53 push dword ptr [ ebp + 0FFFFFDA4h ] ;0x007ae18a : ffb5a4fdffff call StgOpenStorage ;0x007ae190 : ff15c07b9100 mov edi , eax ;0x007ae196 : 8bf8 lea esi , dword ptr [ ebp + 0FFFFFDA4h ] ;0x007ae198 : 8db5a4fdffff call Fun4d6e5f ;0x007ae19e : e8bc8cd2ff cmp edi , ebx ;0x007ae1a3 : 3bfb je Label7ae1b1 ;0x007ae1a5 : 740a mov ecx , 01AAh ;0x007ae1a7 : b9aa010000 call Fun791bc8 ;0x007ae1ac : e8173afeff Label7ae1b1 :: lea edx , dword ptr [ ebp + 0FFFFFD90h ] ;0x007ae1b1 : 8d9590fdffff lea eax , dword ptr [ ebp + 0FFFFFD10h ] ;0x007ae1b7 : 8d8510fdffff call Fun42c27f ;0x007ae1bd : e8bde0c7ff push dword ptr [ ebp - 4 ] ;0x007ae1c2 : ff75fc pushd offset Label9163e7 ;0x007ae1c5 : 68e7639100 pushd 02h ;0x007ae1ca : 6a02 push eax ;0x007ae1cc : 50 call Fun42c2be ;0x007ae1cd : e8ece0c7ff add esp , 010h ;0x007ae1d2 : 83c410 mov dword ptr [ ebp - 24 ] , esp ;0x007ae1d5 : 8965e8 mov dword ptr [ ebp + 0FFFFFDA8h ] , eax ;0x007ae1d8 : 8985a8fdffff cmp eax , ebx ;0x007ae1de : 3bc3 jne Label7ae7ba ;0x007ae1e0 : 0f85d4050000 pushd 0107Dh ;0x007ae1e6 : 687d100000 mov edi , 080h ;0x007ae1eb : bf80000000 mov eax , edi ;0x007ae1f0 : 8bc7 call Fun42bf2a ;0x007ae1f2 : e833ddc7ff mov esi , dword ptr [ ebp + 8 ] ;0x007ae1f7 : 8b7508 mov dword ptr [ esi + 73 ] , eax ;0x007ae1fa : 894649 push edi ;0x007ae1fd : 57 mov edx , offset Data926390 ;0x007ae1fe : ba90639200 mov ecx , dword ptr [eax] ;0x007ae203 : 8b08 call Fun42c19b ;0x007ae205 : e891dfc7ff mov byte ptr [ esi + 69 ] , 020h ;0x007ae20a : c6464520 mov dword ptr [ esi + 81 ] , ebx ;0x007ae20e : 895e51 xor eax , eax ;0x007ae211 : 33c0 mov cl , byte ptr [ esi + 14 ] ;0x007ae213 : 8a4e0e cmp cl , 0C7h ;0x007ae216 : 80f9c7 je Label7ae225 ;0x007ae219 : 740a cmp cl , 0BBh ;0x007ae21b : 80f9bb je Label7ae225 ;0x007ae21e : 7405 cmp cl , 0BAh ;0x007ae220 : 80f9ba jne Label7ae241 ;0x007ae223 : 751c Label7ae225 :: mov eax , dword ptr [ esi + 0162h ] ;0x007ae225 : 8b8662010000 mov ecx , dword ptr [eax] ;0x007ae22b : 8b08 lea edx , dword ptr [ esi + 0166h ] ;0x007ae22d : 8d9666010000 push edx ;0x007ae233 : 52 push ebx ;0x007ae234 : 53 pushd 010h ;0x007ae235 : 6a10 push ebx ;0x007ae237 : 53 pushd offset Data92986c ;0x007ae238 : 686c989200 push eax ;0x007ae23d : 50 call dword ptr [ ecx + 16 ] ;0x007ae23e : ff5110 Label7ae241 :: cmp eax , ebx ;0x007ae241 : 3bc3 je Label7ae271 ;0x007ae243 : 742c mov eax , dword ptr [ esi + 0162h ] ;0x007ae245 : 8b8662010000 mov ecx , dword ptr [eax] ;0x007ae24b : 8b08 lea edx , dword ptr [ esi + 0166h ] ;0x007ae24d : 8d9666010000 push edx ;0x007ae253 : 52 push ebx ;0x007ae254 : 53 pushd 010h ;0x007ae255 : 6a10 push ebx ;0x007ae257 : 53 pushd offset Data928d54 ;0x007ae258 : 68548d9200 push eax ;0x007ae25d : 50 call dword ptr [ ecx + 16 ] ;0x007ae25e : ff5110 cmp eax , ebx ;0x007ae261 : 3bc3 je Label7ae271 ;0x007ae263 : 740c mov edi , eax ;0x007ae265 : 8bf8 mov ecx , 01AAh ;0x007ae267 : b9aa010000 call Fun791bc8 ;0x007ae26c : e85739feff Label7ae271 :: pushd 08h ;0x007ae271 : 6a08 pop ebx ;0x007ae273 : 5b mov dword ptr [ Data946c30 ] , ebx ;0x007ae274 : 891d306c9400 pushd 04h ;0x007ae27a : 6a04 lea eax , dword ptr [ ebp + 0FFFFFD80h ] ;0x007ae27c : 8d8580fdffff push eax ;0x007ae282 : 50 push dword ptr [ esi + 61 ] ;0x007ae283 : ff763d mov eax , esi ;0x007ae286 : 8bc6 call Fun7ae818 ;0x007ae288 : e88b050000 mov edi , 0295h ;0x007ae28d : bf95020000 test eax , eax ;0x007ae292 : 85c0 jne Label7ae29d ;0x007ae294 : 7507 mov ecx , edi ;0x007ae296 : 8bcf call Fun544742 ;0x007ae298 : e8a564d9ff Label7ae29d :: cmp word ptr [ ebp + 0FFFFFD80h ] , 0809h ;0x007ae29d : 6681bd80fdffff0908 je Label7ae2af ;0x007ae2a6 : 7407 mov ecx , edi ;0x007ae2a8 : 8bcf call Fun544742 ;0x007ae2aa : e89364d9ff Label7ae2af :: push ebx ;0x007ae2af : 53 lea eax , dword ptr [ ebp + 0FFFFFD78h ] ;0x007ae2b0 : 8d8578fdffff push eax ;0x007ae2b6 : 50 push dword ptr [ esi + 61 ] ;0x007ae2b7 : ff763d mov eax , esi ;0x007ae2ba : 8bc6 call Fun7ae818 ;0x007ae2bc : e857050000 test eax , eax ;0x007ae2c1 : 85c0 jne Label7ae2cc ;0x007ae2c3 : 7507 mov ecx , edi ;0x007ae2c5 : 8bcf call Fun544742 ;0x007ae2c7 : e87664d9ff Label7ae2cc :: cmp word ptr [ ebp + 0FFFFFD7Ah ] , 05h ;0x007ae2cc : 6683bd7afdffff05 je Label7ae2dd ;0x007ae2d4 : 7407 mov ecx , edi ;0x007ae2d6 : 8bcf call Fun544742 ;0x007ae2d8 : e86564d9ff Label7ae2dd :: ; ; ------------------------------------------------- ; VFP 9.0 FIX - FIX THE IMPORT COMMAND ; July 2025 ; ------------------------------------------------- ; CCB ; ; In vfp9, if we use the IMPORT command to import data from Microsoft Excel 5.0 and 97 (XLS), sometimes VFP will crash. ; ; 2025/7/9, by ccb ; cmp dword ptr vfpa_sys9189_data,00h je Label7ae2de cmp word ptr [ ebp + 0FFFFFD82h ] , 0010h jne Label7ae2de pushd 08h push dword ptr [ esi + 65 ] push dword ptr [ esi + 61 ] mov eax , esi call Fun7ae818 Label7ae2de :: mov ax , word ptr [ ebp + 0FFFFFD78h ] ;0x007ae2dd : 668b8578fdffff mov word ptr [esi] , ax ;0x007ae2e4 : 668906 and dword ptr [ ebp + 0FFFFFDC8h ] , 00h ;0x007ae2e7 : 83a5c8fdffff00 mov ebx , dword ptr [ ebp + 0FFFFFDCCh ] ;0x007ae2ee : 8b9dccfdffff Label7ae2f4 :: pushd 04h ;0x007ae2f4 : 6a04 push dword ptr [ esi + 65 ] ;0x007ae2f6 : ff7641 push dword ptr [ esi + 61 ] ;0x007ae2f9 : ff763d mov eax , esi ;0x007ae2fc : 8bc6 call Fun7ae818 ;0x007ae2fe : e815050000 ; ; ------------------------------------------------- ; VFP 9.0 FIX - FIX THE IMPORT COMMAND ; July 2025 ; ------------------------------------------------- ; CCB ; ; In vfp9, if we use the IMPORT command to import data from Microsoft Excel 5.0 and 97 (XLS), sometimes VFP will crash. ; ; 2025/7/9, by ccb ; cmp dword ptr vfpa_sys9189_data,00h je Label7ae303 mov ecx , dword ptr [ esi + 65 ] cmp dword ptr [ecx] , 000180C1h je Label7ae302 cmp dword ptr [ecx] , 000180C9h je Label7ae302 cmp dword ptr [ecx] , 0001C0C1h je Label7ae302 cmp dword ptr [ecx] , 0001C0C9h je Label7ae302 jmp Label7ae303 Label7ae302 :: mov dword ptr [ecx] , 00000000h Label7ae303 :: test eax , eax ;0x007ae303 : 85c0 jne Label7ae311 ;0x007ae305 : 750a mov ecx , 0295h ;0x007ae307 : b995020000 call Fun544742 ;0x007ae30c : e83164d9ff Label7ae311 :: mov eax , dword ptr [ esi + 65 ] ;0x007ae311 : 8b4641 xor ecx , ecx ;0x007ae314 : 33c9 mov cl , byte ptr [eax] ;0x007ae316 : 8a08 and ecx , 0FFh ;0x007ae318 : 81e1ff000000 mov edi , ecx ;0x007ae31e : 8bf9 mov dword ptr [ ebp + 0FFFFFD88h ] , edi ;0x007ae320 : 89bd88fdffff xor ecx , ecx ;0x007ae326 : 33c9 mov cx , word ptr [ eax + 2 ] ;0x007ae328 : 668b4802 mov dword ptr [ ebp + 0FFFFFD8Ch ] , ecx ;0x007ae32c : 898d8cfdffff cmp di , 0Ah ;0x007ae332 : 6683ff0a jne Label7ae37c ;0x007ae336 : 7544 cmp dword ptr [ ebp + 0FFFFFDC8h ] , 00h ;0x007ae338 : 83bdc8fdffff00 jne Label7ae365 ;0x007ae33f : 7524 mov edi , dword ptr [ ebp + 12 ] ;0x007ae341 : 8b7d0c add edi , 0216h ;0x007ae344 : 81c716020000 cmp byte ptr [edi] , 00h ;0x007ae34a : 803f00 jne Label7ae359 ;0x007ae34d : 750a mov ecx , 0306h ;0x007ae34f : b906030000 call Fun544742 ;0x007ae354 : e8e963d9ff Label7ae359 :: pushd 0307h ;0x007ae359 : 6807030000 mov eax , edi ;0x007ae35e : 8bc7 call Fun73f199 ;0x007ae360 : e8340ef9ff Label7ae365 :: mov edx , dword ptr [ esi + 016Ah ] ;0x007ae365 : 8b966a010000 mov ecx , dword ptr [ esi + 61 ] ;0x007ae36b : 8b4e3d mov eax , esi ;0x007ae36e : 8bc6 call Fun7ae851 ;0x007ae370 : e8dc040000 xor ebx , ebx ;0x007ae375 : 33db jmp Label7ae7bd ;0x007ae377 : e941040000 Label7ae37c :: test cx , cx ;0x007ae37c : 6685c9 je Label7ae39e ;0x007ae37f : 741d ; ; ------------------------------------------------- ; VFP 9.0 FIX - FIX THE IMPORT COMMAND ; July 2025 ; ------------------------------------------------- ; CCB ; ; In vfp9, if we use the IMPORT command to import data from Microsoft Excel 5.0 and 97 (XLS), sometimes VFP will crash. ; ; 2025/7/9, by ccb ; cmp dword ptr vfpa_sys9189_data,00h je Label7ae381 movzx ecx , cx cmp ecx , 2710h jbe Label7ae384 mov ecx , 2710h jmp Label7ae384 Label7ae381 :: movsx ecx , cx ;0x007ae381 : 0fbfc9 Label7ae384 :: push ecx ;0x007ae384 : 51 push eax ;0x007ae385 : 50 push dword ptr [ esi + 61 ] ;0x007ae386 : ff763d mov eax , esi ;0x007ae389 : 8bc6 call Fun7ae818 ;0x007ae38b : e888040000 test eax , eax ;0x007ae390 : 85c0 jne Label7ae39e ;0x007ae392 : 750a mov ecx , 0295h ;0x007ae394 : b995020000 call Fun544742 ;0x007ae399 : e8a463d9ff Label7ae39e :: cmp di , 0FCh ;0x007ae39e : 6681fffc00 je Label7ae47f ;0x007ae3a3 : 0f84d6000000 cmp di , 03Ch ;0x007ae3a9 : 6683ff3c jne Label7ae3bc ;0x007ae3ad : 750d cmp dword ptr [ ebp + 0FFFFFDACh ] , 00h ;0x007ae3af : 83bdacfdffff00 jne Label7ae47f ;0x007ae3b6 : 0f85c3000000 Label7ae3bc :: and dword ptr [ ebp + 0FFFFFDACh ] , 00h ;0x007ae3bc : 83a5acfdffff00 Label7ae3c3 :: mov eax , dword ptr [ ebp + 0FFFFFD88h ] ;0x007ae3c3 : 8b8588fdffff cmp ax , 085h ;0x007ae3c9 : 663d8500 jne Label7ae7ab ;0x007ae3cd : 0f85d8030000 cmp dword ptr [ ebp + 0FFFFFDC8h ] , 00h ;0x007ae3d3 : 83bdc8fdffff00 jne Label7ae2f4 ;0x007ae3da : 0f8514ffffff mov edi , dword ptr [ esi + 65 ] ;0x007ae3e0 : 8b7e41 cmp word ptr [esi] , 0600h ;0x007ae3e3 : 66813e0006 jne Label7ae769 ;0x007ae3e8 : 0f857b030000 cmp byte ptr [ edi + 7 ] , 00h ;0x007ae3ee : 807f0700 je Label7ae764 ;0x007ae3f2 : 0f846c030000 lea ecx , dword ptr [ edi + 8 ] ;0x007ae3f8 : 8d4f08 xor eax , eax ;0x007ae3fb : 33c0 push eax ;0x007ae3fd : 50 push eax ;0x007ae3fe : 50 push eax ;0x007ae3ff : 50 lea edx , dword ptr [ ebp + 0FFFFFEE0h ] ;0x007ae400 : 8d95e0feffff push edx ;0x007ae406 : 52 movzx edx ,byte ptr [ edi + 6 ] ;0x007ae407 : 0fb65706 push edx ;0x007ae40b : 52 push ecx ;0x007ae40c : 51 push eax ;0x007ae40d : 50 push eax ;0x007ae40e : 50 call WideCharToMultiByte ;0x007ae40f : ff1598719100 mov dword ptr [ ebp + 0FFFFFDC0h ] , eax ;0x007ae415 : 8985c0fdffff test eax , eax ;0x007ae41b : 85c0 je Label7ae454 ;0x007ae41d : 7435 mov eax , 0FEh ;0x007ae41f : b8fe000000 cmp dword ptr [ ebp + 0FFFFFDC0h ] , eax ;0x007ae424 : 3985c0fdffff jl Label7ae432 ;0x007ae42a : 7c06 mov dword ptr [ ebp + 0FFFFFDC0h ] , eax ;0x007ae42c : 8985c0fdffff Label7ae432 :: xor ecx , ecx ;0x007ae432 : 33c9 push ecx ;0x007ae434 : 51 push ecx ;0x007ae435 : 51 push dword ptr [ ebp + 0FFFFFDC0h ] ;0x007ae436 : ffb5c0fdffff lea eax , dword ptr [ ebp + 0FFFFFEE0h ] ;0x007ae43c : 8d85e0feffff push eax ;0x007ae442 : 50 movzx eax ,byte ptr [ edi + 6 ] ;0x007ae443 : 0fb64706 push eax ;0x007ae447 : 50 lea eax , dword ptr [ edi + 8 ] ;0x007ae448 : 8d4708 push eax ;0x007ae44b : 50 push ecx ;0x007ae44c : 51 push ecx ;0x007ae44d : 51 call WideCharToMultiByte ;0x007ae44e : ff1598719100 Label7ae454 :: mov eax , dword ptr [ ebp + 0FFFFFDC0h ] ;0x007ae454 : 8b85c0fdffff mov byte ptr [ ebp + eax + 0FFFFFEE0h ] , 00h ;0x007ae45a : c68405e0feffff00 mov eax , dword ptr [ ebp + 12 ] ;0x007ae462 : 8b450c add eax , 0216h ;0x007ae465 : 0516020000 cmp byte ptr [eax] , 00h ;0x007ae46a : 803800 je Label7ae794 ;0x007ae46d : 0f8421030000 push eax ;0x007ae473 : 50 lea eax , dword ptr [ ebp + 0FFFFFEE0h ] ;0x007ae474 : 8d85e0feffff jmp Label7ae783 ;0x007ae47a : e904030000 Label7ae47f :: mov dword ptr [ ebp + 0FFFFFDACh ] , 01h ;0x007ae47f : c785acfdffff01000000 cmp di , 0FCh ;0x007ae489 : 6681fffc00 jne Label7ae4bf ;0x007ae48e : 752f mov edi , dword ptr [ esi + 65 ] ;0x007ae490 : 8b7e41 mov eax , dword ptr [ edi + 4 ] ;0x007ae493 : 8b4704 mov dword ptr [ esi + 57 ] , eax ;0x007ae496 : 894639 pushd 0107Dh ;0x007ae499 : 687d100000 mov eax , dword ptr [ edi + 4 ] ;0x007ae49e : 8b4704 shl eax , 02h ;0x007ae4a1 : c1e002 call Fun42bf2a ;0x007ae4a4 : e881dac7ff mov dword ptr [ esi + 81 ] , eax ;0x007ae4a9 : 894651 mov eax , dword ptr [eax] ;0x007ae4ac : 8b00 mov dword ptr [ ebp + 0FFFFFD84h ] , eax ;0x007ae4ae : 898584fdffff add edi , 08h ;0x007ae4b4 : 83c708 mov dword ptr [ ebp + 0FFFFFDD4h ] , edi ;0x007ae4b7 : 89bdd4fdffff jmp Label7ae4c8 ;0x007ae4bd : eb09 Label7ae4bf :: mov eax , dword ptr [ esi + 65 ] ;0x007ae4bf : 8b4641 mov dword ptr [ ebp + 0FFFFFDD4h ] , eax ;0x007ae4c2 : 8985d4fdffff Label7ae4c8 :: movsx eax ,word ptr [ ebp + 0FFFFFD8Ch ] ;0x007ae4c8 : 0fbf858cfdffff add eax , dword ptr [ esi + 65 ] ;0x007ae4cf : 034641 mov dword ptr [ ebp + 0FFFFFD98h ] , eax ;0x007ae4d2 : 898598fdffff mov edi , dword ptr [ ebp + 0FFFFFDA0h ] ;0x007ae4d8 : 8bbda0fdffff test edi , edi ;0x007ae4de : 85ff jle Label7ae516 ;0x007ae4e0 : 7e34 inc dword ptr [ ebp + 0FFFFFDD4h ] ;0x007ae4e2 : ff85d4fdffff push edi ;0x007ae4e8 : 57 mov ecx , ebx ;0x007ae4e9 : 8bcb sub ecx , edi ;0x007ae4eb : 2bcf add ecx , dword ptr [ ebp + 0FFFFFD9Ch ] ;0x007ae4ed : 038d9cfdffff mov edx , dword ptr [ ebp + 0FFFFFDD4h ] ;0x007ae4f3 : 8b95d4fdffff call Fun42c19b ;0x007ae4f9 : e89ddcc7ff mov eax , dword ptr [ ebp + 0FFFFFD9Ch ] ;0x007ae4fe : 8b859cfdffff mov byte ptr [ eax + ebx ] , 00h ;0x007ae504 : c6041800 mov eax , dword ptr [ ebp + 0FFFFFDBCh ] ;0x007ae508 : 8b85bcfdffff add eax , edi ;0x007ae50e : 03c7 add dword ptr [ ebp + 0FFFFFDD4h ] , eax ;0x007ae510 : 0185d4fdffff Label7ae516 :: mov eax , dword ptr [ ebp + 0FFFFFDB8h ] ;0x007ae516 : 8b85b8fdffff test eax , eax ;0x007ae51c : 85c0 jle Label7ae537 ;0x007ae51e : 7e17 mov ecx , dword ptr [ ebp + 0FFFFFDD4h ] ;0x007ae520 : 8b8dd4fdffff lea eax , dword ptr [ eax + ecx + 1 ] ;0x007ae526 : 8d440801 mov dword ptr [ ebp + 0FFFFFDD4h ] , eax ;0x007ae52a : 8985d4fdffff and dword ptr [ ebp + 0FFFFFDB8h ] , 00h ;0x007ae530 : 83a5b8fdffff00 Label7ae537 :: mov eax , dword ptr [ ebp + 0FFFFFDB4h ] ;0x007ae537 : 8b85b4fdffff cmp eax , dword ptr [ esi + 57 ] ;0x007ae53d : 3b4639 jnb Label7ae3c3 ;0x007ae540 : 0f837dfeffff mov eax , dword ptr [ Data937220 ] ;0x007ae546 : a120729300 mov dword ptr [ ebp + 0FFFFFD74h ] , eax ;0x007ae54b : 898574fdffff xor edi , edi ;0x007ae551 : 33ff mov dword ptr [ ebp - 4 ] , edi ;0x007ae553 : 897dfc xor eax , eax ;0x007ae556 : 33c0 mov dword ptr [ ebp + 0FFFFFDC4h ] , eax ;0x007ae558 : 8985c4fdffff mov ecx , dword ptr [ ebp + 0FFFFFDD4h ] ;0x007ae55e : 8b8dd4fdffff movzx ebx ,word ptr [ecx] ;0x007ae564 : 0fb719 mov dword ptr [ ebp + 0FFFFFDCCh ] , ebx ;0x007ae567 : 899dccfdffff cmp ebx , 0FEh ;0x007ae56d : 81fbfe000000 jbe Label7ae58e ;0x007ae573 : 7619 lea edi , dword ptr [ ebx + 0FFFFFF02h ] ;0x007ae575 : 8dbb02ffffff mov dword ptr [ ebp + 0FFFFFDBCh ] , edi ;0x007ae57b : 89bdbcfdffff mov ebx , 0FEh ;0x007ae581 : bbfe000000 mov dword ptr [ ebp + 0FFFFFDCCh ] , ebx ;0x007ae586 : 899dccfdffff jmp Label7ae594 ;0x007ae58c : eb06 Label7ae58e :: mov dword ptr [ ebp + 0FFFFFDBCh ] , edi ;0x007ae58e : 89bdbcfdffff Label7ae594 :: add dword ptr [ ebp + 0FFFFFDD4h ] , 02h ;0x007ae594 : 8385d4fdffff02 mov ecx , dword ptr [ ebp + 0FFFFFDD4h ] ;0x007ae59b : 8b8dd4fdffff mov cl , byte ptr [ecx] ;0x007ae5a1 : 8a09 mov byte ptr [ ebp + 0FFFFFDD3h ] , cl ;0x007ae5a3 : 888dd3fdffff inc dword ptr [ ebp + 0FFFFFDD4h ] ;0x007ae5a9 : ff85d4fdffff test byte ptr cl , 01h ;0x007ae5af : f6c101 je Label7ae5c5 ;0x007ae5b2 : 7411 add ebx , ebx ;0x007ae5b4 : 03db mov dword ptr [ ebp + 0FFFFFDCCh ] , ebx ;0x007ae5b6 : 899dccfdffff lea edx , dword ptr [ edi + edi ] ;0x007ae5bc : 8d143f mov dword ptr [ ebp + 0FFFFFDBCh ] , edx ;0x007ae5bf : 8995bcfdffff Label7ae5c5 :: test byte ptr cl , 08h ;0x007ae5c5 : f6c108 je Label7ae5e3 ;0x007ae5c8 : 7419 mov eax , dword ptr [ ebp + 0FFFFFDD4h ] ;0x007ae5ca : 8b85d4fdffff movzx eax ,word ptr [eax] ;0x007ae5d0 : 0fb700 shl eax , 02h ;0x007ae5d3 : c1e002 mov dword ptr [ ebp + 0FFFFFDC4h ] , eax ;0x007ae5d6 : 8985c4fdffff add dword ptr [ ebp + 0FFFFFDD4h ] , 02h ;0x007ae5dc : 8385d4fdffff02 Label7ae5e3 :: test byte ptr cl , 04h ;0x007ae5e3 : f6c104 je Label7ae5fd ;0x007ae5e6 : 7415 mov ecx , dword ptr [ ebp + 0FFFFFDD4h ] ;0x007ae5e8 : 8b8dd4fdffff add eax , dword ptr [ecx] ;0x007ae5ee : 0301 mov dword ptr [ ebp + 0FFFFFDC4h ] , eax ;0x007ae5f0 : 8985c4fdffff add dword ptr [ ebp + 0FFFFFDD4h ] , 04h ;0x007ae5f6 : 8385d4fdffff04 Label7ae5fd :: or dword ptr [ ebp - 4 ] , 0FFFFFFFFh ;0x007ae5fd : 834dfcff jmp Label7ae614 ;0x007ae601 : eb11 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_vfp9fix384.asp 6. OTHER: For reference only, there is no guarantees. Any questions or suggestions, please send me an email at ccb2000@163.com. |