发现了一个和字库有关的函数,研究中。
1 L u4 q) S" h2 X. P8 w. K0 n0 ]+ R- c
0132D7E0 $ 81EC 98040000 sub esp, 498 3 C5 P+ Q% _9 U/ h
0132D7E6 . A1 7CD13A01 mov eax, dword ptr [13AD17C] ( H; n& v" E) X% \
0132D7EB . 33C4 xor eax, esp 9 J0 J6 r6 F( d' M9 O( H: y/ a- X& |! ]( o
0132D7ED . 898424 940400>mov dword ptr [esp+494], eax * \7 H: |1 M' \ G
0132D7F4 . 8B8424 A00400>mov eax, dword ptr [esp+4A0] + Y) W% r+ Q; [4 z7 @$ c9 r0 m
0132D7FB . 53 push ebx
, o6 S6 w+ h+ r0 L0132D7FC . 56 push esi 5 }: Z' S1 F1 c+ k( @6 D1 b
0132D7FD . 8BB424 A40400>mov esi, dword ptr [esp+4A4]
! \# `& L; A* C0132D804 . 57 push edi
( x4 W; Q/ K' O0132D805 . 6A 30 push 30 ; /n = 30 (48.)
6 L& l0 [) _+ h+ Z- B0132D807 . 8BF9 mov edi, ecx ; | : g* T3 |; K, U- V3 l+ P
0132D809 . 8B8C24 B40400>mov ecx, dword ptr [esp+4B4] ; |
z3 W" w6 r$ {0132D810 . 8D5424 74 lea edx, dword ptr [esp+74] ; | " ^( i9 }- Q$ Q) t
0132D814 . 6A 00 push 0 ; |c = 00
6 L! ~7 \% r. o3 e8 W0132D816 . 52 push edx ; |s
/ \3 f1 W( b' }, o% M+ f0132D817 . 894424 30 mov dword ptr [esp+30], eax ; |
. U( Z" ]) B; }/ {6 W* R% l6 o& q' G0132D81B . 894C24 24 mov dword ptr [esp+24], ecx ; | . @1 R" f2 j# z/ U. ?: R5 \
0132D81F . C74424 78 340>mov dword ptr [esp+78], 34 ; |
- d" T5 `% j4 u" C' u z o0132D827 . E8 284B0500 call <jmp.&MSVCR80.memset> ; \memset
5 p/ A8 T5 m# ^) O2 Z8 R, ?1 |& m0132D82C . 83C4 0C add esp, 0C
- t% s. W% \9 g6 `0132D82F . 80BC24 CC0400>cmp byte ptr [esp+4CC], 0 $ @9 K, G0 z6 A; n! z5 Y
0132D837 . 74 12 je short 0132D84B
9 w8 v6 c8 r, j$ o0132D839 . A1 F8F63A01 mov eax, dword ptr [13AF6F8]
/ Q3 q0 w0 l. j$ N% W0132D83E . C74424 0C F0D>mov dword ptr [esp+C], 013AD6F0 ; UNICODE " !""#%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\^_abcdefghijklmnopqrstuvwxyz"
. I2 k$ d& m0 F8 U0 i7 }0132D846 . 8947 1C mov dword ptr [edi+1C], eax 0 _% j0 n5 F+ m! s8 ]
0132D849 . EB 32 jmp short 0132D87D
+ c5 ]6 y! F3 O1 t3 ]0132D84B > C747 1C 60010>mov dword ptr [edi+1C], 160 , _( [: {" M1 Z( e# i
0132D852 . 8B4F 1C mov ecx, dword ptr [edi+1C] $ j+ }: |8 n/ ~9 E" J
0132D855 . 33C0 xor eax, eax
7 O0 C& @# `4 @0132D857 . EB 07 jmp short 0132D860 & C/ ?5 `- L# Q
0132D859 . 8DA424 000000>lea esp, dword ptr [esp]
! L2 z7 r0 D$ J2 }0132D860 > 8D50 20 lea edx, dword ptr [eax+20]
e* e4 @7 m- @; t% U* J; g$ o0132D863 . 66:899444 A00>mov word ptr [esp+eax*2+A0], dx
3 |8 S2 a' C8 m8 j0132D86B . 83C0 01 add eax, 1
- H. F- _# O* y0132D86E . 3BC1 cmp eax, ecx % d* \ t" i0 A+ I X5 _ m
0132D870 .^ 7C EE jl short 0132D860
! |; p( d, }3 ~! w0132D872 . 8D8424 A00000>lea eax, dword ptr [esp+A0] 1 n" K1 |8 Z2 S5 r
0132D879 . 894424 0C mov dword ptr [esp+C], eax
: J; v1 u- f1 R v1 E6 A3 `. b/ M0132D87D > 8B47 0C mov eax, dword ptr [edi+C] 6 v7 H/ c& Y% h3 e3 L r1 O
0132D880 . 85C0 test eax, eax 8 J; _. Q- m; v% X
0132D882 . 8D5F 0C lea ebx, dword ptr [edi+C] % O, f* A8 y2 V/ T }9 _
0132D885 . 75 05 jnz short 0132D88C
0 ]% p/ j% B* C3 K! v+ O0132D887 . B8 16263901 mov eax, 01392616 - T. R: F! i& Q9 z
0132D88C > 6A 00 push 0 0 `" d1 v O- \4 V
0132D88E . 6A 00 push 0
4 b: [: o7 |' {( J, ~0132D890 . 50 push eax 5 }6 V9 N5 N" c2 |/ E
0132D891 . 6A 1F push 1F 5 T- ^' g3 c0 W0 L
0132D893 . 8BCE mov ecx, esi
5 O$ E2 ~9 H6 n5 h% j2 U0132D895 . E8 FA8E0300 call <jmp.&CK2.CKContext::CreateObjec>
V7 F8 l7 P: A4 e( w' d* l0132D89A . 8B8C24 C80400>mov ecx, dword ptr [esp+4C8] $ z' b/ q0 t1 B9 N4 e; T
0132D8A1 . 6A 00 push 0 ! Z+ o, Y6 C2 U( {4 G/ g& M' Z
0132D8A3 . 6A 20 push 20 2 @8 y5 L3 V' w- @ |
0132D8A5 . 51 push ecx 0 e& [ l& w* \2 C4 @
0132D8A6 . 8B8C24 D00400>mov ecx, dword ptr [esp+4D0] R8 k8 N1 s2 _; E( X
0132D8AD . 8947 24 mov dword ptr [edi+24], eax 2 o. Z, r7 z9 X- ]& b
0132D8B0 . 8B10 mov edx, dword ptr [eax]
$ ^3 l5 J0 I5 J1 [0132D8B2 . 8B52 54 mov edx, dword ptr [edx+54]
; {( V( x+ h# {+ X8 f0132D8B5 . 51 push ecx ; I& z3 k# E1 J7 A( C$ i. {
0132D8B6 . 8BC8 mov ecx, eax
/ Z% v- K; S1 Z& n6 S0132D8B8 . FFD2 call edx % `/ g" r; d9 p: K
0132D8BA . 85C0 test eax, eax
+ z+ O& }' X2 b+ @* s! {6 Y Z0132D8BC . 75 07 jnz short 0132D8C5
( N8 @3 @7 t/ I0132D8BE . 32C0 xor al, al + U1 N' s% z8 O* s4 U" K; w) I
0132D8C0 . E9 B4030000 jmp 0132DC79
8 a6 o: y) B: E* J/ x! f* w0132D8C5 > 8B4F 24 mov ecx, dword ptr [edi+24] + c: Y% S+ w6 x; A9 r0 Y
0132D8C8 . 8B01 mov eax, dword ptr [ecx]
" S9 n' Y/ A/ X2 _4 b0132D8CA . 8B80 88000000 mov eax, dword ptr [eax+88] 1 f6 H5 Z# `8 Q( K; u5 {4 {5 \0 @
0132D8D0 . 55 push ebp + n2 B8 G) a, Y3 C4 g1 s
0132D8D1 . 8D5424 70 lea edx, dword ptr [esp+70] ' l, C- Y3 I1 P8 F
0132D8D5 . 52 push edx
# p' e5 ^' r3 l# [+ P4 I E! F0132D8D6 . FFD0 call eax . j$ K. p+ b7 M3 D! G. k
0132D8D8 . 6A 00 push 0 ; /hDC = NULL & O- {! K' |3 r d! s) m
0132D8DA . FF15 34A43801 call dword ptr [<&GDI32.CreateCompati>; \CreateCompatibleDC ' Z4 J) H2 D, x7 W; u' n( L
0132D8E0 . 8D4C24 70 lea ecx, dword ptr [esp+70] % J( [5 c4 A& l' L0 x4 ]3 K
0132D8E4 . 51 push ecx ) n& [1 V& G: E: s
0132D8E5 . 8BE8 mov ebp, eax 5 }; Q, {3 N" G. z$ S6 q6 R$ Z
0132D8E7 . FF15 24A83801 call dword ptr [<&VxMath.VxCreateBitm>; VxMath.VxCreateBitmap
, W" {3 v+ W& ]+ u, u0132D8ED . 8B35 70A43801 mov esi, dword ptr [<&GDI32.SelectOb>; GDI32.SelectObject
7 y( S. Y( q) z/ p0132D8F3 . 83C4 04 add esp, 4 7 B. T+ \5 O) P' O* K7 k, D( z& C
0132D8F6 . 50 push eax ; /hObject : Y) b) u( j& w8 o6 O8 U7 N9 U" B
0132D8F7 . 55 push ebp ; |hDC % C- d& k1 K3 |! v1 h8 W: i
0132D8F8 . 894424 2C mov dword ptr [esp+2C], eax ; |
0 G7 ^+ o) a: I. o& P* F0132D8FC . FFD6 call esi ; \SelectObject + t' F, r0 S* B: x
0132D8FE . 8B5424 28 mov edx, dword ptr [esp+28]
+ g6 S% v9 k7 @# r8 [0132D902 . 52 push edx * L9 m( B4 H# W2 F5 Q$ M
0132D903 . 8BCB mov ecx, ebx * p. ^9 ]3 J% M: x4 Q
0132D905 . 894424 40 mov dword ptr [esp+40], eax ( t) S) w' v3 S+ l: ^: R
0132D909 . FF15 BCA83801 call dword ptr [<&VxMath.XString::ope>; VxMath.XString::operator= $ F/ ]4 H4 Q7 I& B$ X! [
0132D90F . 8B9C24 B80400>mov ebx, dword ptr [esp+4B8]
4 F: @. x+ _* V3 B+ J0 ^) F0132D916 . 6A 48 push 48 ; /Divisor = 48 (72.) # A1 e% P9 m2 L4 R+ T* a* p/ W3 F
0132D918 . 6A 5A push 5A ; |/Index = LOGPIXELSY
& y: B, T( z5 e0 P, m- R" @3 C0132D91A . 55 push ebp ; ||hDC ( T4 ?' K) Z7 k8 Y9 y' y+ [# r
0132D91B . 895F 14 mov dword ptr [edi+14], ebx ; || $ v2 w5 P& G- i2 j
0132D91E . FF15 64A43801 call dword ptr [<&GDI32.GetDeviceCaps>; |\GetDeviceCaps
+ m- F) o2 D" }+ j+ K+ l0132D924 . 50 push eax ; |Multiplier " c% W- ~0 r8 }9 ?' u7 ~
0132D925 . 53 push ebx ; |Multiplicand
& t0 E/ S. ^7 w2 l, C0132D926 . FF15 DCA43801 call dword ptr [<&KERNEL32.MulDiv>] ; \MulDiv 7 y5 `2 a4 a7 u; |& F
0132D92C . 8B4C24 1C mov ecx, dword ptr [esp+1C]
/ ]( c/ ~' y: J$ ]; P0132D930 . 8B9424 C00400>mov edx, dword ptr [esp+4C0] T& Y0 y. B: ? _
0132D937 . 51 push ecx ; /FaceName
9 r9 y' S+ D- Y9 Y! _8 r7 b0132D938 . 8B8C24 C80400>mov ecx, dword ptr [esp+4C8] ; | : _" u5 Z9 Y! ]: e/ F6 h
0132D93F . 6A 00 push 0 ; |PitchAndFamily = DEFAULT_PITCH|FF_DONTCARE $ n0 f0 a2 r- A, e8 o0 G/ n* K
0132D941 . 52 push edx ; |Quality
4 M% ?+ B( r- A6 I0 ~: I0132D942 . 6A 00 push 0 ; |ClipPrecision = CLIP_DEFAULT_PRECIS
- \: K3 D. [. G1 d( U( e2 K/ Z: ~) `0132D944 . 6A 07 push 7 ; |OutputPrecision = OUT_TT_ONLY_PRECIS
7 S- |, V/ j( C+ J$ k. ]1 S0132D946 . 6A 01 push 1 ; |CharSet = DEFAULT_CHARSET
& x: s% x- z: Z$ y8 r, |' ^2 p% w' w0132D948 . 6A 00 push 0 ; |StrikeOut = FALSE 0 B5 P, ~2 c. D# r$ A
0132D94A . 8BD1 mov edx, ecx ; |
8 d6 L; u" R/ J/ w' s2 d) I0132D94C . D1EA shr edx, 1 ; | + T' L# e1 J S
0132D94E . 83E2 01 and edx, 1 ; |
1 F0 Y# j8 B7 N% v0132D951 . 52 push edx ; |Underline * t! R9 _' F8 }+ e8 y9 f5 b; V
0132D952 . 83E1 01 and ecx, 1 ; | . b( _3 c1 @& \7 ^; c& _3 J
0132D955 . 51 push ecx ; |Italic
+ G4 ?' _7 H) c& S' U0132D956 . 8B8C24 E00400>mov ecx, dword ptr [esp+4E0] ; |
9 x% _1 O# W: O# ~0 c) w: `& R" Q0132D95D . 51 push ecx ; |Weight
& ~6 | t- ?! i0132D95E . 6A 00 push 0 ; |Orientation = 0
7 q2 p" Q8 f# z# v6 m0132D960 . 6A 00 push 0 ; |Escapement = 0 ) z1 b$ L+ M& a; @9 ~
0132D962 . F7D8 neg eax ; | . m& \5 U4 ~ n; l( f" m8 j5 P; h8 D
0132D964 . 6A 00 push 0 ; |Width = 0 5 G% I# d8 a( N$ U+ f0 f
0132D966 . 50 push eax ; |Height - C( n8 S& y' L( D2 J
0132D967 . FF15 60A43801 call dword ptr [<&GDI32.CreateFontA>] ; \CreateFontA
& D7 p: e; E; _8 ]- w0132D96D . 50 push eax
; p! y0 M* G1 a9 j0132D96E . 55 push ebp
( g2 c. Z9 v) e+ r, x0132D96F . 894424 38 mov dword ptr [esp+38], eax 6 J' a- z5 ^/ l& i# c
0132D973 . FFD6 call esi
5 s% [- B, x$ m# d; S0132D975 . 8D5424 58 lea edx, dword ptr [esp+58] 3 M8 m4 G d Q2 V1 s
0132D979 . 52 push edx ; /pSize
. a+ p% ^$ Q+ P# o" n0132D97A . 6A 01 push 1 ; |TextLen = 1
& P- H- i( [* s) c! w2 c) s$ t0132D97C . 68 4CED3801 push 0138ED4C ; |Text = "A"
' g& _. ]1 F# l6 y; R0132D981 . 55 push ebp ; |hDC ) N% i. B! U! G& x
0132D982 . 894424 44 mov dword ptr [esp+44], eax ; |
$ m" L$ ?7 _0 N' Y/ t0132D986 . FF15 5CA43801 call dword ptr [<&GDI32.GetTextExtent>; \GetTextExtentPointA
1 ?+ q$ J) A" U1 k: ] Y0132D98C . 8B4424 5C mov eax, dword ptr [esp+5C]
& t$ y. z( X& g! t8 _& \0132D990 . 8B77 1C mov esi, dword ptr [edi+1C] ; e4 i. x0 A0 Y6 T3 |. z
0132D993 . 8947 18 mov dword ptr [edi+18], eax
3 [6 }* W8 q3 {0 E0132D996 . 33C9 xor ecx, ecx ; \& K$ [9 U: P8 a [" s
0132D998 . 8BC6 mov eax, esi
. o4 `* w4 N) D, T- _* ?) I0132D99A . BA 20000000 mov edx, 20
9 a$ v3 j% d; M1 ^" [1 o7 _0132D99F . F7E2 mul edx ) M5 z% @3 |9 s
0132D9A1 . 0F90C1 seto cl 0 _- O) Z J7 a
0132D9A4 . F7D9 neg ecx
$ g7 u/ d7 t% F; z6 E( h5 D0132D9A6 . 0BC8 or ecx, eax ' z9 _& h% P& R# |
0132D9A8 . 51 push ecx ! q7 [9 F o' }5 Y! k, V& Q
0132D9A9 . E8 964A0500 call <jmp.&MSVCR80.operator new> 8 V' b/ c+ p. \! }( C
0132D9AE . 83C4 04 add esp, 4 5 q* \! f1 z6 M1 c B$ m) r
0132D9B1 . 85C0 test eax, eax r. H! z8 v+ D6 E
0132D9B3 . 74 28 je short 0132D9DD , y" V+ S* H$ b$ p: K
0132D9B5 . 83C6 FF add esi, -1
- ~" q( `) o1 B* g' q( y0132D9B8 . 78 25 js short 0132D9DF 4 M# i6 m$ ?: r: b7 c: [2 H8 a
0132D9BA . D9EE fldz : Y7 W! J2 v: }+ k* z7 W
0132D9BC . 8D48 0C lea ecx, dword ptr [eax+C]
. {; A& B) _7 ^1 L* C1 ^0132D9BF > D951 FC fst dword ptr [ecx-4] # ]" r$ i* O/ L! f1 P
0132D9C2 . 83C1 20 add ecx, 20 : u' q0 a8 O# ^$ `5 c
0132D9C5 . 83EE 01 sub esi, 1 4 w0 d8 p9 Z+ J/ ~
0132D9C8 . D951 E0 fst dword ptr [ecx-20] & } J( t; {' p6 F, t) E
0132D9CB . D951 D4 fst dword ptr [ecx-2C]
% F) u) r- n, H0 R0132D9CE . D951 D8 fst dword ptr [ecx-28]
; u9 ^ k/ ?( m0132D9D1 . D951 DC fst dword ptr [ecx-24]
; c9 l5 G2 ]6 r' t5 {0132D9D4 . D951 E0 fst dword ptr [ecx-20]
8 z7 z2 I1 J# `8 o9 j0132D9D7 .^ 79 E6 jns short 0132D9BF
' Y% j$ s. ]% B0 m0132D9D9 . DDD8 fstp st 9 M. B, _+ r$ O/ l5 Q9 i/ Q2 g
0132D9DB . EB 02 jmp short 0132D9DF
1 f2 G, y7 M1 D3 s/ Q c0132D9DD > 33C0 xor eax, eax
" }+ ?. E6 F+ \ X0132D9DF > 8B8C24 C80400>mov ecx, dword ptr [esp+4C8]
) Q7 d0 F5 k9 |4 G0132D9E6 . 8947 20 mov dword ptr [edi+20], eax
6 u* d1 _& V6 R0 i. C3 N% T0132D9E9 . 8B8424 CC0400>mov eax, dword ptr [esp+4CC]
( k# g% A0 k/ u \0132D9F0 . 50 push eax ; /Bottom % m( q; S$ r1 i
0132D9F1 . 51 push ecx ; |Right 0 V5 S* r* B' E! w1 M8 C7 q: p
0132D9F2 . 6A 00 push 0 ; |Top = 0
9 F5 a- u2 {9 a( w( ^. ?0 e0132D9F4 . 6A 00 push 0 ; |Left = 0
8 q' L% u5 {" n' Z0132D9F6 . 8D5424 70 lea edx, dword ptr [esp+70] ; |
- T, k- B8 \' R; D1 J. Y0132D9FA . 52 push edx ; |pRect % ^6 A5 x, g5 v2 ^
0132D9FB . FF15 64A73801 call dword ptr [<&USER32.SetRect>] ; \SetRect
8 G1 P' d/ D" v; h3 ~1 E9 I9 P0132DA01 . 6A 04 push 4 ; /ObjType = BLACK_BRUSH
9 [6 b7 [# c" V( q: w8 {0132DA03 . FF15 58A43801 call dword ptr [<&GDI32.GetStockObjec>; \GetStockObject # ~: b8 u6 c* c) }: H& W0 J# I
0132DA09 . 50 push eax ; /hBrush ( |- `5 ?3 ]8 D J" \) V
0132DA0A . 8D4424 64 lea eax, dword ptr [esp+64] ; |
4 n. |1 R4 R+ t( ^0132DA0E . 50 push eax ; |pRect % W+ N6 }2 n3 h' N) V+ t
0132DA0F . 55 push ebp ; |hDC : g) F0 n Q, i" Q$ j: L" `; k; U# b
0132DA10 . FF15 68A73801 call dword ptr [<&USER32.FillRect>] ; \FillRect 9 o) C1 T0 C, F
0132DA16 . 6A 00 push 0 ; /Color = <BLACK>
) W' B. R) u6 O7 t. D1 D0132DA18 . 55 push ebp ; |hDC , F6 k8 [5 I8 u
0132DA19 . FF15 54A43801 call dword ptr [<&GDI32.SetBkColor>] ; \SetBkColor
3 }* u5 I8 H( \# [; J' ~8 R) N0132DA1F . 68 FFFFFF00 push 0FFFFFF ; /Color = <WHITE> - d4 {0 D: K& A6 v q4 j
0132DA24 . 55 push ebp ; |hDC [+ @3 u: _( Z t. C0 @
0132DA25 . FF15 50A43801 call dword ptr [<&GDI32.SetTextColor>>; \SetTextColor
: ^4 T3 J7 S+ `0132DA2B . 6A 01 push 1 ; /BkMode = TRANSPARENT
& c4 A8 h+ g. A& @0132DA2D . 55 push ebp ; |hDC / M" c0 v1 k6 m. _ a
0132DA2E . FF15 4CA43801 call dword ptr [<&GDI32.SetBkMode>] ; \SetBkMode
# K- q3 G7 Z* G; w1 P, J. ^( c' j, s0132DA34 . 33F6 xor esi, esi * _" m- Y1 k5 h3 @
0132DA36 . 3977 1C cmp dword ptr [edi+1C], esi
' {/ V, M, ~% R- F" l; R0132DA39 . BB 01000000 mov ebx, 1 . l& E) m; s$ ^" A
0132DA3E . 895C24 18 mov dword ptr [esp+18], ebx 8 I5 w* t" M5 t9 K+ K8 @1 E
0132DA42 . 897424 14 mov dword ptr [esp+14], esi " s6 w1 X0 ^/ o% z
0132DA46 . 897424 1C mov dword ptr [esp+1C], esi
7 D1 W5 {3 U( s3 D# X0132DA4A . 0F8E 20010000 jle 0132DB70
6 {: m1 x# _% B3 N" u0 E0132DA50 . DB8424 C80400>fild dword ptr [esp+4C8] 7 u5 D+ D9 a/ i- ?% l7 @# E
0132DA57 . 8B4424 10 mov eax, dword ptr [esp+10] 8 V4 h9 z! w. R
0132DA5B . 897424 20 mov dword ptr [esp+20], esi
' P2 S! P: C" P( `0132DA5F . 894424 10 mov dword ptr [esp+10], eax
- u/ q6 }# W' ]4 K6 a7 z' S' X0132DA63 . D95C24 38 fstp dword ptr [esp+38] , |! m# S- o9 H$ Y) g( R" Q8 F
0132DA67 . DB8424 CC0400>fild dword ptr [esp+4CC]
* Q, l; e6 ]8 e5 \0132DA6E . D95C24 2C fstp dword ptr [esp+2C] 2 ~* _6 F3 f" a4 {0 r0 K6 _, E `
0132DA72 . EB 04 jmp short 0132DA78
3 C5 o, Q$ R. N4 @' W) v0132DA74 > 8B4424 10 mov eax, dword ptr [esp+10] % b2 m; Y5 G" Y- w A
0132DA78 > 8B77 20 mov esi, dword ptr [edi+20]
% m. U4 p+ [/ ^( k1 ]2 l0132DA7B . 66:8B08 mov cx, word ptr [eax] ; g& |* d r/ Q3 Z- `
0132DA7E . 037424 20 add esi, dword ptr [esp+20] / q: c- ]7 V) q/ K
0132DA82 . 66:894E 10 mov word ptr [esi+10], cx
! Q. D) b9 ?- N5 ^0 m/ b0 X0132DA86 . 0FB700 movzx eax, word ptr [eax]
4 Q! p* F8 E7 A5 |$ R0132DA89 . 8D4E 14 lea ecx, dword ptr [esi+14]
, a2 G @ f+ D( O+ r3 T0132DA8C . 51 push ecx ; /pABC
. R7 V- r& f" [0132DA8D . 50 push eax ; |LastChar + @# [& a" I* i) \* x& u
0132DA8E . 50 push eax ; |FirstChar
9 q8 s0 k& r" v- |# @0132DA8F . 55 push ebp ; |hDC & \8 I0 W: f# {& _4 _
0132DA90 . FF15 48A43801 call dword ptr [<&GDI32.GetCharABCWid>; \GetCharABCWidthsW
$ [, o7 j2 C2 Q7 e6 t4 J$ i0132DA96 . 8B5424 10 mov edx, dword ptr [esp+10]
$ S4 \. `* M) z9 t) Y3 s) n. Q0132DA9A . 66:833A 20 cmp word ptr [edx], 20
# E9 i: |% G6 f! I) g/ w7 c- J0132DA9E . 73 10 jnb short 0132DAB0 , z) m7 I7 l8 v! _! u: V
0132DAA0 . C746 14 00000>mov dword ptr [esi+14], 0
) n2 X! d1 B9 X) R0132DAA7 . C746 1C 00000>mov dword ptr [esi+1C], 0
: z. c7 @9 Q. z7 P( |! Y9 `0132DAAE . EB 0C jmp short 0132DABC
# Z$ U0 @( x; b8 j0 `0132DAB0 > 8346 14 FF add dword ptr [esi+14], -1 ! x4 G, K' D I8 w$ \6 u% u
0132DAB4 . 8346 18 02 add dword ptr [esi+18], 2
; C4 U6 n: N2 I: ?3 w0132DAB8 . 8346 1C FF add dword ptr [esi+1C], -1 . w6 g8 ~; }" T; q8 ^" _& O
0132DABC > 8B4E 18 mov ecx, dword ptr [esi+18]
* U% |! Y6 q8 q/ Q0132DABF . 8D4419 01 lea eax, dword ptr [ecx+ebx+1]
* X6 @: }/ O& b( \9 j) ]$ r0132DAC3 . 3B8424 C80400>cmp eax, dword ptr [esp+4C8]
8 j7 u9 G' H, y& L5 q0132DACA . 8B4424 14 mov eax, dword ptr [esp+14] * X: m) M' r! Z
0132DACE . 72 14 jb short 0132DAE4
5 n2 J s7 d9 y5 [* I$ Q0132DAD0 . 8B57 18 mov edx, dword ptr [edi+18] + U# L# N) W5 ]5 r5 i: O
0132DAD3 . BB 01000000 mov ebx, 1 $ B' U' R2 U" K
0132DAD8 . 8D4410 01 lea eax, dword ptr [eax+edx+1] 0 h* g2 C- G/ R7 u4 Q
0132DADC . 895C24 18 mov dword ptr [esp+18], ebx " B1 c" J4 x+ M7 O( `2 W
0132DAE0 . 894424 14 mov dword ptr [esp+14], eax
+ l! q; t3 {% c9 ^0132DAE4 > DB4424 18 fild dword ptr [esp+18]
A! o6 W& H1 E' n7 Y0132DAE8 . 03CB add ecx, ebx ( ]$ z- Q, ~5 G' `/ h
0132DAEA . 85C9 test ecx, ecx
/ A' P5 e7 ~) X$ m s3 K4 [0132DAEC . D94424 38 fld dword ptr [esp+38]
5 b5 Y+ y/ C! i/ a7 w3 T0132DAF0 . D9C0 fld st
# t9 |% C% U- N. _$ T& |9 h( N0132DAF2 . 894C24 18 mov dword ptr [esp+18], ecx
0 e( }) }. v" H+ P7 Z5 K" Z# M( T0132DAF6 . DEFA fdivp st(2), st
0 p9 ?' k- P; J; [/ C& t0132DAF8 . D9C9 fxch st(1) 7 P- x i. M, [8 s. a, w
0132DAFA . D91E fstp dword ptr [esi] 8 J7 H5 a( P7 f* F% d4 {/ P+ w9 P
0132DAFC . DB4424 14 fild dword ptr [esp+14]
0 E, l. e y0 g0 {: {8 d5 j0132DB00 . D94424 2C fld dword ptr [esp+2C]
9 C& M5 c5 ~: R0132DB04 . D9C0 fld st
) B; `) V, J% I$ ^4 N. |4 h$ K0132DB06 . DEFA fdivp st(2), st
2 A7 j' b" x( Z u3 F6 I3 N& o5 h# o0132DB08 . D9C9 fxch st(1) ! E9 L7 ^$ w. [2 t b9 |$ V8 o- y- f
0132DB0A . D95E 04 fstp dword ptr [esi+4]
2 v$ S1 R- `/ a" W# P' }$ {0132DB0D . DB4424 18 fild dword ptr [esp+18] 2 ]1 A- t& o; l
0132DB11 . 7D 06 jge short 0132DB19
8 ]3 C- E, m5 k/ J" u& A! C0132DB13 . D805 50B03801 fadd dword ptr [138B050] 4 m9 u0 D" y% i+ k. e# ^
0132DB19 > DEF2 fdivrp st(2), st
" V, F7 N. K5 z% H$ \5 i- @0132DB1B . 8B5424 10 mov edx, dword ptr [esp+10]
' U9 }$ @0 B/ O, H+ o! v/ I& _& g7 h0132DB1F . 6A 01 push 1 ; /StringSize = 1
( E0 G Y4 M& W! {- b0132DB21 . 52 push edx ; |String 6 j' j+ n6 W6 X3 u1 V
0132DB22 . 50 push eax ; |YStart % j7 }& B4 U4 L
0132DB23 . D9C9 fxch st(1) ; |
8 Q$ W% ~9 [. e; e5 _0 y6 z0132DB25 . D95E 08 fstp dword ptr [esi+8] ; |
. j$ Y: O# S( W! A% g" S) B0132DB28 . 8B4F 18 mov ecx, dword ptr [edi+18] ; | d) T! h/ o$ x& a: ^
0132DB2B . 03C8 add ecx, eax ; | % ]7 |$ Y6 h2 X
0132DB2D . 894C24 24 mov dword ptr [esp+24], ecx ; |
3 T2 q5 H8 L C0132DB31 . DA7C24 24 fidivr dword ptr [esp+24] ; | 5 h; d, [* U4 R! O1 p6 L# K7 d
0132DB35 . 8BC3 mov eax, ebx ; | ! s' [- [0 w5 g( k; E7 u
0132DB37 . 2B46 14 sub eax, dword ptr [esi+14] ; |
) j2 b8 a8 k/ Y. K! ], K0 W% z0132DB3A . 50 push eax ; |XStart 3 [- E+ u% C- @/ p4 n# Z
0132DB3B . 55 push ebp ; |hDC 9 n) U3 |7 V- T4 ~: H' ?
0132DB3C . D95E 0C fstp dword ptr [esi+C] ; | / \$ [" q" z4 L/ @2 X6 S/ o0 M4 W
0132DB3F . FF15 44A43801 call dword ptr [<&GDI32.TextOutW>] ; \TextOutW
' ` Z) f- _! Q8 Y* s$ c. U1 e$ Y+ l- r0132DB45 . 8B4424 1C mov eax, dword ptr [esp+1C]
" R8 ^+ A4 u- u @( W' P7 |0132DB49 . 8B4E 18 mov ecx, dword ptr [esi+18]
$ ~- h# U& c8 S0132DB4C . 834424 20 20 add dword ptr [esp+20], 20
" @. s5 H S6 F0132DB51 . 834424 10 02 add dword ptr [esp+10], 2
0 Y: i% C5 A; J% w3 w6 |+ i: x: [( u0132DB56 . 83C0 01 add eax, 1
2 ~9 Z2 v- ]# R# x- a$ d ~9 O0132DB59 . 3B47 1C cmp eax, dword ptr [edi+1C] ; l6 B) n& _/ _/ ^# R( t
0132DB5C . 8D5C0B 01 lea ebx, dword ptr [ebx+ecx+1] 1 i' p' x4 l+ Y: f, h" i
0132DB60 . 895C24 18 mov dword ptr [esp+18], ebx
: k/ H: a! k1 c0132DB64 . 894424 1C mov dword ptr [esp+1C], eax
% S6 J4 `4 q1 x0 l* m0132DB68 .^ 0F8C 06FFFFFF jl 0132DA74 : E+ y% L. T; R3 ^: j5 f- ?3 G. m
0132DB6E . 33F6 xor esi, esi
8 n+ B2 t6 d' u2 {0132DB70 > 8B4F 24 mov ecx, dword ptr [edi+24] 6 [* j" [) n T( H8 \6 r
0132DB73 . 6A FF push -1
+ t8 z9 d' N3 K0132DB75 . 83C1 38 add ecx, 38 , u+ {) s1 d! s+ E, A! x2 C
0132DB78 . E8 278E0300 call <jmp.&CK2.CKBitmapData::LockSurf> 8 @* {9 T8 T- F5 L; f+ N
0132DB7D . 8BD8 mov ebx, eax ' X4 H. e' ?9 e5 \! Y
0132DB7F . 3BDE cmp ebx, esi , @1 Z( |2 _# F, k0 q
0132DB81 . 74 74 je short 0132DBF7
Q" F7 o1 F6 {- {' d) U' D9 e! e; A/ I0132DB83 . 8B4424 24 mov eax, dword ptr [esp+24]
, W, B0 O- z- g2 c0132DB87 . 8D5424 40 lea edx, dword ptr [esp+40]
" V! o4 d& H6 p# D6 ~- |9 m/ c1 S. k0132DB8B . 52 push edx ; /Buffer
9 o- m% h/ G. W- b& E, H$ A0132DB8C . 6A 18 push 18 ; |BufSize = 18 (24.)
- E* W, Z9 @3 Q4 g0 m0132DB8E . 50 push eax ; |hObject
( E9 T0 X8 ?7 H# S6 `0132DB8F . FF15 40A43801 call dword ptr [<&GDI32.GetObjectA>] ; \GetObjectA 1 U/ M; ~: H, U/ i9 b& J
0132DB95 . 8B4C24 48 mov ecx, dword ptr [esp+48] * R! ?* X+ ^$ i6 b
0132DB99 . 8D71 FF lea esi, dword ptr [ecx-1]
" p5 Z& C7 E+ U% a* X0132DB9C . 0FAF7424 4C imul esi, dword ptr [esp+4C]
2 G y! e9 ?% Z1 |3 ~3 ~+ p1 q. i. ~0132DBA1 . 037424 54 add esi, dword ptr [esp+54] ! i% k2 [: ~4 L' c9 \0 i8 G
0132DBA5 . 85C9 test ecx, ecx ' H. j2 O$ A0 x. e; K/ |6 I+ A! u
0132DBA7 . C74424 14 000>mov dword ptr [esp+14], 0 c& N; g' _- U7 {
0132DBAF . 7E 46 jle short 0132DBF7
) L8 D) K' I! F. q2 i) {* N% D0132DBB1 . 8B5424 44 mov edx, dword ptr [esp+44] & r3 w! d, |# p: S
0132DBB5 > 33C0 xor eax, eax
7 h* p1 S! f) q9 h8 L; P5 n0132DBB7 . 85D2 test edx, edx ! D% L( ]3 A8 j9 _; ]- P
0132DBB9 . 7E 26 jle short 0132DBE1 , I6 C; i/ J8 H9 \
0132DBBB . 8BCE mov ecx, esi
2 A1 ]8 H& b' C2 V$ |3 R5 v4 W/ b0132DBBD . 8D49 00 lea ecx, dword ptr [ecx] * G7 }+ ]" o+ R' b
0132DBC0 > 0FB611 movzx edx, byte ptr [ecx] 9 f0 J+ @; N4 l
0132DBC3 . C1E2 18 shl edx, 18
* n e, z& P( \( g0132DBC6 . 81CA FFFFFF00 or edx, 0FFFFFF 1 k' n% b- l. b% [# q+ K% G2 Z
0132DBCC . 891483 mov dword ptr [ebx+eax*4], edx
5 Z, w& [# |; n/ T0132DBCF . 8B5424 44 mov edx, dword ptr [esp+44] ( Q3 u( J" Z& @
0132DBD3 . 83C0 01 add eax, 1 8 \" O" l, a3 ?) I, v8 ~, e2 h y
0132DBD6 . 83C1 03 add ecx, 3
`+ J0 O3 D% g' q7 g) S# {0132DBD9 . 3BC2 cmp eax, edx
, y- H: q. e( n0132DBDB .^ 7C E3 jl short 0132DBC0
, X# y# I Q6 `. `2 m. Y, P0132DBDD . 8B4C24 48 mov ecx, dword ptr [esp+48] & X R6 S8 N1 ~* a9 x0 v
0132DBE1 > 8B4424 14 mov eax, dword ptr [esp+14] . Q# W, N: x, O3 w* x9 m* T
0132DBE5 . 2B7424 4C sub esi, dword ptr [esp+4C]
. r/ m* h) P2 @) S- h* I6 S0 f0132DBE9 . 83C0 01 add eax, 1 - K& ?4 M2 R" z! t' H* g
0132DBEC . 3BC1 cmp eax, ecx
$ G0 ^7 X8 i3 a* y* g0132DBEE . 8D1C93 lea ebx, dword ptr [ebx+edx*4]
. k* ~# A1 M: }$ v: \4 o6 l) J9 L0132DBF1 . 894424 14 mov dword ptr [esp+14], eax
& Q4 m2 v5 r/ f7 \0132DBF5 .^ 7C BE jl short 0132DBB5 " P, ^ @$ u$ \4 u8 o8 V/ o$ W
0132DBF7 > 8B4F 24 mov ecx, dword ptr [edi+24] * Q# U c9 n- r$ k) d
0132DBFA . 6A FF push -1
, W! [; {0 N7 j5 s# y4 b0132DBFC . 83C1 38 add ecx, 38
( N# V7 u% M4 {; Y0132DBFF . E8 9A8D0300 call <jmp.&CK2.CKBitmapData::ReleaseS> # M, z# K( k; o: R, _1 k4 T
0132DC04 . 8B4424 34 mov eax, dword ptr [esp+34]
3 y) ]1 b* }' Z# v0132DC08 . 8B35 70A43801 mov esi, dword ptr [<&GDI32.SelectOb>; GDI32.SelectObject ( Z8 b! a$ ~; Q6 s9 ]5 l& }# }. Z7 m/ I
0132DC0E . 50 push eax ; /hObject
: R2 C- x3 v+ Z9 a; a7 E0132DC0F . 55 push ebp ; |hDC
$ {# l/ H' p: a* \5 u0132DC10 . FFD6 call esi ; \SelectObject
- `' @# A0 t1 X# ^9 X0132DC12 . 8B4C24 30 mov ecx, dword ptr [esp+30] ( h2 y6 d5 J* t2 T7 e
0132DC16 . 51 push ecx
7 X% |$ Y2 J$ G# p- b+ A- a# [' W0132DC17 . FF15 28A83801 call dword ptr [<&VxMath.VxDeleteFont>; VxMath.VxDeleteFont 8 N! R9 N% w! t( h8 ?
0132DC1D . 8B5424 40 mov edx, dword ptr [esp+40] 0 k& E3 y, ~: Y
0132DC21 . 83C4 04 add esp, 4 " B" G& Z6 C/ S; K' j
0132DC24 . 52 push edx 0 p! g( K4 C5 `" B( k
0132DC25 . 55 push ebp ' }8 L! R- R; u1 @
0132DC26 . FFD6 call esi
. R9 P7 P( {: Q5 P0 M" }5 b0132DC28 . 8B4424 24 mov eax, dword ptr [esp+24] % A2 k& M! n* P7 f" m
0132DC2C . 50 push eax 2 Z0 K8 p7 T4 P6 |5 J
0132DC2D . FF15 2CA83801 call dword ptr [<&VxMath.VxDeleteBitm>; VxMath.VxDeleteFont
5 D5 ~; k n1 q8 C0132DC33 . 83C4 04 add esp, 4
1 e: T1 {# W5 D8 P* i0132DC36 . 55 push ebp ; /hDC - k* g4 \0 l9 `
0132DC37 . FF15 3CA43801 call dword ptr [<&GDI32.DeleteDC>] ; \DeleteDC - B d2 V2 c1 y- ]
0132DC3D . 8B4C24 28 mov ecx, dword ptr [esp+28] ) _2 {1 m" p4 ~- o, T) }2 X6 Y
0132DC41 . 6A 00 push 0
& `; e$ [8 F+ d8 e& t/ }: {0132DC43 . 51 push ecx ]1 @, R0 P' D. S/ i
0132DC44 . 8B4F 24 mov ecx, dword ptr [edi+24] 8 u# l1 ]+ C% ?8 j5 z
0132DC47 . E8 4C8A0300 call <jmp.&CK2.CKObject::SetName> # `: P# D' ^) R6 u2 W+ v1 C
0132DC4C . 8B4F 24 mov ecx, dword ptr [edi+24] 1 J. ^7 |7 t3 I. k/ r6 Y& q" a
0132DC4F . 6A 01 push 1 % k' L9 d* _* q, A" T0 i( _. E) h7 c
0132DC51 . 83C1 38 add ecx, 38 ' M; W% V1 {0 n8 T' ]
0132DC54 . E8 7B8D0300 call <jmp.&CK2.CKBitmapData::SetDesir> 0 z/ d* H. \# }. j
0132DC59 . 8B4F 24 mov ecx, dword ptr [edi+24] , t+ z9 K& z4 c$ I# `
0132DC5C . 8B11 mov edx, dword ptr [ecx] 8 n x) ?% p* t8 `. a: N
0132DC5E . 8B42 78 mov eax, dword ptr [edx+78]
" ]7 b8 }) T' [& i0132DC61 . 6A 00 push 0
' w0 {2 Q: v% ]2 ~1 M" s0132DC63 . FFD0 call eax $ k P8 P" J6 T) _1 D: d
0132DC65 . 8B4F 18 mov ecx, dword ptr [edi+18] . }. n% L/ e- H9 G7 j( Y6 w) Q& r) P
0132DC68 . 034C24 14 add ecx, dword ptr [esp+14]
. g) D: `' d; j* \. v0132DC6C . 33C0 xor eax, eax 6 H8 `4 w' J8 S5 V9 \. m7 u8 `
0132DC6E . 3B8C24 CC0400>cmp ecx, dword ptr [esp+4CC] : C* O4 d, t. M5 H& U$ M; H# j: L
0132DC75 . 5D pop ebp ' }5 `% `; O- R# q+ k" n( ^
0132DC76 . 0F9CC0 setl al
# Q* `* ?: ~) W( k9 ~5 T0132DC79 > 8B8C24 A00400>mov ecx, dword ptr [esp+4A0] 0 K& M/ J3 z9 s/ i6 o q7 W8 H" Q
0132DC80 . 5F pop edi
+ e$ u, u+ m; a0132DC81 . 5E pop esi , l3 L5 y0 P! h4 {( R2 K/ a
0132DC82 . 5B pop ebx 8 {* a |0 `9 M- l, O$ {! v
0132DC83 . 33CC xor ecx, esp
' V7 g5 x5 r }4 }3 \0132DC85 . E8 E2460500 call 0138236C
" c5 m, X9 {# c9 T0132DC8A . 81C4 98040000 add esp, 498
* `- T z9 ]# p! ]/ o3 Z* L1 O% e# x+ t' X0132DC90 . C2 2800 retn 28 |