------------------------------------------------------------------------------------------------
[ENHANCED] VFP 9.0 FIX - THE LARGE ADDRESS AWARE MODE OF THE COMPILED EXECUTABLE FILES
August 2026
------------------------------------------------------------------------------------------------
CCB
1. BUG:
We can set the large address aware mode of the compiled executable files in Visual FoxPro Advanced 32-bit.
2. CAUSE:
There are some BUGs in the following code.
3. RESOLUTION:
We can write some code to fix the BUG.
Fun6910c5 :: ; proc near
push ebp ;0x006910c5 : 55
mov ebp , esp ;0x006910c6 : 8bec
sub esp , 0938h ;0x006910c8 : 81ec38090000
mov eax , dword ptr [ Data937090 ] ;0x006910ce : a190709300
push ebx ;0x006910d3 : 53
push esi ;0x006910d4 : 56
push dword ptr [ ebp + 8 ] ;0x006910d5 : ff7508
lea ebx , dword ptr [ ebp + 0FFFFF7D0h ] ;0x006910d8 : 8d9dd0f7ffff
mov dword ptr [ ebp - 4 ] , eax ;0x006910de : 8945fc
call Fun68711f ;0x006910e1 : e83960ffff
mov eax , dword ptr [ ebp + 16 ] ;0x006910e6 : 8b4510
lea esi , dword ptr [ ebp + 0FFFFF8AEh ] ;0x006910e9 : 8db5aef8ffff
mov dword ptr [ ebp + 0FFFFFECFh ] , eax ;0x006910ef : 8985cffeffff
call Fun4110ee ;0x006910f5 : e8f4ffd7ff
lea esi , dword ptr [ ebp + 0FFFFF9ADh ] ;0x006910fa : 8db5adf9ffff
call Fun4110ee ;0x00691100 : e8e9ffd7ff
lea esi , dword ptr [ ebp + 0FFFFFAACh ] ;0x00691105 : 8db5acfaffff
call Fun4110ee ;0x0069110b : e8deffd7ff
lea esi , dword ptr [ ebp + 0FFFFFBABh ] ;0x00691110 : 8db5abfbffff
call Fun4110ee ;0x00691116 : e8d3ffd7ff
lea esi , dword ptr [ ebp + 0FFFFFCAAh ] ;0x0069111b : 8db5aafcffff
call Fun4110ee ;0x00691121 : e8c8ffd7ff
lea esi , dword ptr [ ebp + 0FFFFFDA9h ] ;0x00691126 : 8db5a9fdffff
call Fun4110ee ;0x0069112c : e8bdffd7ff
lea esi , dword ptr [ ebp + 0FFFFFEA8h ] ;0x00691131 : 8db5a8feffff
call Fun4110ee ;0x00691137 : e8b2ffd7ff
lea esi , dword ptr [ ebp + 0FFFFFEADh ] ;0x0069113c : 8db5adfeffff
call Fun4110ee ;0x00691142 : e8a7ffd7ff
lea esi , dword ptr [ ebp + 0FFFFFEB2h ] ;0x00691147 : 8db5b2feffff
call Fun4110ee ;0x0069114d : e89cffd7ff
lea esi , dword ptr [ ebp + 0FFFFFEB7h ] ;0x00691152 : 8db5b7feffff
call Fun4110ee ;0x00691158 : e891ffd7ff
xor ebx , ebx ;0x0069115d : 33db
cmp byte ptr [ ebp + 0FFFFF8AEh ] , bl ;0x0069115f : 389daef8ffff
jne Label6911bb ;0x00691165 : 7554
cmp byte ptr [ ebp + 0FFFFF9ADh ] , bl ;0x00691167 : 389dadf9ffff
jne Label6911bb ;0x0069116d : 754c
cmp byte ptr [ ebp + 0FFFFFAACh ] , bl ;0x0069116f : 389dacfaffff
jne Label6911bb ;0x00691175 : 7544
cmp byte ptr [ ebp + 0FFFFFBABh ] , bl ;0x00691177 : 389dabfbffff
jne Label6911bb ;0x0069117d : 753c
cmp byte ptr [ ebp + 0FFFFFCAAh ] , bl ;0x0069117f : 389daafcffff
jne Label6911bb ;0x00691185 : 7534
cmp byte ptr [ ebp + 0FFFFFDA9h ] , bl ;0x00691187 : 389da9fdffff
jne Label6911bb ;0x0069118d : 752c
cmp byte ptr [ ebp + 0FFFFFEA8h ] , bl ;0x0069118f : 389da8feffff
jne Label6911bb ;0x00691195 : 7524
cmp byte ptr [ ebp + 0FFFFFEADh ] , bl ;0x00691197 : 389dadfeffff
jne Label6911bb ;0x0069119d : 751c
cmp byte ptr [ ebp + 0FFFFFEB2h ] , bl ;0x0069119f : 389db2feffff
jne Label6911bb ;0x006911a5 : 7514
cmp byte ptr [ ebp + 0FFFFFEB7h ] , bl ;0x006911a7 : 389db7feffff
jne Label6911bb ;0x006911ad : 750c
cmp dword ptr [ ebp + 0FFFFFECBh ] , ebx ;0x006911af : 399dcbfeffff
je Label69123d ;0x006911b5 : 0f8482000000
Label6911bb ::
mov ecx , dword ptr [ ebp + 12 ] ;0x006911bb : 8b4d0c
xor edx , edx ;0x006911be : 33d2
push edi ;0x006911c0 : 57
inc edx ;0x006911c1 : 42
call Fun42ce21 ;0x006911c2 : e85abcd9ff
mov edi , eax ;0x006911c7 : 8bf8
lea eax , dword ptr [ ebp + 16 ] ;0x006911c9 : 8d4510
push eax ;0x006911cc : 50
lea eax , dword ptr [ ebp + 0FFFFF8AEh ] ;0x006911cd : 8d85aef8ffff
push eax ;0x006911d3 : 50
push edi ;0x006911d4 : 57
call Fun833bc0 ;0x006911d5 : e8e6291a00
mov ecx , edi ;0x006911da : 8bcf
mov esi , eax ;0x006911dc : 8bf0
call Fun42ddf2 ;0x006911de : e80fccd9ff
push ebx ;0x006911e3 : 53
push dword ptr [ ebp + 12 ] ;0x006911e4 : ff750c
call BeginUpdateResourceA ;0x006911e7 : ff1564719100
mov edi , eax ;0x006911ed : 8bf8
cmp edi , ebx ;0x006911ef : 3bfb
je Label69123c ;0x006911f1 : 7449
push dword ptr [ ebp + 16 ] ;0x006911f3 : ff7510
push dword ptr [esi] ;0x006911f6 : ff36
pushd 0409h ;0x006911f8 : 6809040000
pushd 01h ;0x006911fd : 6a01
pushd 010h ;0x006911ff : 6a10
push edi ;0x00691201 : 57
call UpdateResourceA ;0x00691202 : ff1560719100
push ebx ;0x00691208 : 53
push edi ;0x00691209 : 57
call EndUpdateResourceA ;0x0069120a : ff155c719100
mov ecx , esi ;0x00691210 : 8bce
call Fun42c1e2 ;0x00691212 : e8cbafd9ff
mov esi , dword ptr [ ebp + 8 ] ;0x00691217 : 8b7508
mov ecx , dword ptr [esi] ;0x0069121a : 8b0e
mov ecx , dword ptr [ecx] ;0x0069121c : 8b09
lea eax , dword ptr [ ebp + 0FFFFF6C8h ] ;0x0069121e : 8d85c8f6ffff
call Fun41975b ;0x00691224 : e83285d8ff
lea eax , dword ptr [ ebp + 0FFFFF6C8h ] ;0x00691229 : 8d85c8f6ffff
push eax ;0x0069122f : 50
push esi ;0x00691230 : 56
lea esi , dword ptr [ ebp + 0FFFFF7D0h ] ;0x00691231 : 8db5d0f7ffff
call Fun686e46 ;0x00691237 : e80a5cffff
Label69123c ::
pop edi ;0x0069123c : 5f
Label69123d ::
;
; -------------------------------------------------------------------------------------
; VFP 9.0 FIX - THE LARGE ADDRESS AWARE MODE OF THE COMPILED EXECUTABLE FILES
; August 2026
; -------------------------------------------------------------------------------------
; CCB
;
; The large address aware mode of the compiled executable files.
;
; 2026/8/5, by ccb
;
push dword ptr vfpa_sys9212_data
push dword ptr [ ebp + 12 ]
call vfpa_updatelargeaddressawaremode
mov ecx , dword ptr [ ebp - 4 ] ;0x0069123d : 8b4dfc
pop esi ;0x00691240 : 5e
pop ebx ;0x00691241 : 5b
call Fun42bf1d ;0x00691242 : e8d6acd9ff
leave ;0x00691247 : c9
ret 0Ch ;0x00691248 : c20c00
4. APPLIES TO:
VFP 10 (VFP Advanced)
5. REFERENCE WEBSITES:
1, baiyujia.com:
http://www.baiyujia.com
http://www.baiyujia.com/vfpdocuments/f_vfp9fix426.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix12.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix127.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix128.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix129.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix130.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix245.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix246.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix289.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix290.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix322.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix323.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix397.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix420.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix421.asp
2, microsoft.com:
https://learn.microsoft.com/en-us/cpp/build/reference/largeaddressaware-handle-large-addresses?view=msvc-170
6. OTHER:
For reference only, there is no guarantees.
Any questions or suggestions, please send me an email at ccb2000@163.com.
|