发现了一个和字库有关的函数,研究中。
* ^- d9 H' s2 i; |0 d; q8 X# w" j9 q4 m* J0 s
0132D7E0 $ 81EC 98040000 sub esp, 498 . a' q# \% f0 O6 q: O
0132D7E6 . A1 7CD13A01 mov eax, dword ptr [13AD17C] + Y+ t1 J1 d6 W) e2 s
0132D7EB . 33C4 xor eax, esp
# G6 _' a1 ]& M0132D7ED . 898424 940400>mov dword ptr [esp+494], eax . |4 P5 u3 `2 G( w' C
0132D7F4 . 8B8424 A00400>mov eax, dword ptr [esp+4A0] 5 k* c/ E& B8 a/ Q7 p1 }
0132D7FB . 53 push ebx
2 S ]. o% z6 X5 u) v0132D7FC . 56 push esi 5 X/ A! Q& r- V/ [2 g
0132D7FD . 8BB424 A40400>mov esi, dword ptr [esp+4A4]
7 ?3 @) `) A9 b0 G0132D804 . 57 push edi 9 g/ b5 W s* c& I
0132D805 . 6A 30 push 30 ; /n = 30 (48.)
( T) k7 o) P( u* X+ A9 I5 l2 D: \0132D807 . 8BF9 mov edi, ecx ; | % V. |, s1 \0 e0 i, ]! ]& k
0132D809 . 8B8C24 B40400>mov ecx, dword ptr [esp+4B4] ; |
4 F9 e6 ? h$ \1 r# h- V3 }0132D810 . 8D5424 74 lea edx, dword ptr [esp+74] ; | 3 D2 r- [) J t
0132D814 . 6A 00 push 0 ; |c = 00
6 U5 t: u) }) `, M# ^0132D816 . 52 push edx ; |s 2 Y y2 e' m2 s/ A; D5 r. C
0132D817 . 894424 30 mov dword ptr [esp+30], eax ; |
' B! ?& J/ C5 g% V5 W8 O! N) l% G0132D81B . 894C24 24 mov dword ptr [esp+24], ecx ; |
: y, A) E% C- w) n; @2 c0132D81F . C74424 78 340>mov dword ptr [esp+78], 34 ; | & E/ `8 T$ i: m* Z# R1 m
0132D827 . E8 284B0500 call <jmp.&MSVCR80.memset> ; \memset 7 {& p4 s2 d1 ~6 P5 V' d
0132D82C . 83C4 0C add esp, 0C % B9 b7 P( q" q1 `
0132D82F . 80BC24 CC0400>cmp byte ptr [esp+4CC], 0
( I( ?* C5 E$ n+ s1 y4 o5 ~0132D837 . 74 12 je short 0132D84B & W% ~ `9 Z6 f8 u! X! \( M
0132D839 . A1 F8F63A01 mov eax, dword ptr [13AF6F8]
0 P. v B+ R, V$ h1 `- w( ~0132D83E . C74424 0C F0D>mov dword ptr [esp+C], 013AD6F0 ; UNICODE " !""#%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\^_abcdefghijklmnopqrstuvwxyz"
7 ]) V$ s. Z8 E$ S$ \$ [0 q0132D846 . 8947 1C mov dword ptr [edi+1C], eax
" C- L* L- O% G9 Q' D$ s0132D849 . EB 32 jmp short 0132D87D 7 a2 V/ \, w# r4 Q4 [: z+ {
0132D84B > C747 1C 60010>mov dword ptr [edi+1C], 160 ! g I" F9 e4 w' ]" U9 |( C' e
0132D852 . 8B4F 1C mov ecx, dword ptr [edi+1C] 5 r: b$ R! \; s. i# h
0132D855 . 33C0 xor eax, eax + O0 g! S$ w; `
0132D857 . EB 07 jmp short 0132D860
9 }. B9 Y6 ?% {% U' E, y0132D859 . 8DA424 000000>lea esp, dword ptr [esp]
' @2 K1 ~! k$ f( Z: B9 M0132D860 > 8D50 20 lea edx, dword ptr [eax+20]
) L2 E& r! c1 H" U+ J+ q: T0132D863 . 66:899444 A00>mov word ptr [esp+eax*2+A0], dx - }, Y7 j: R, V5 k e
0132D86B . 83C0 01 add eax, 1 * s7 i9 `+ b. S3 i8 j4 x p- Z( y
0132D86E . 3BC1 cmp eax, ecx
/ O3 }1 H8 u) S. T0132D870 .^ 7C EE jl short 0132D860
- @3 j4 j. z4 D. G( N0132D872 . 8D8424 A00000>lea eax, dword ptr [esp+A0] ; h+ G8 R3 G7 Y9 X% c
0132D879 . 894424 0C mov dword ptr [esp+C], eax
. J% u3 f! C: W2 T) w7 J0132D87D > 8B47 0C mov eax, dword ptr [edi+C]
+ V& \& r) X C0132D880 . 85C0 test eax, eax " A( x, y' p8 f
0132D882 . 8D5F 0C lea ebx, dword ptr [edi+C] ! o' J$ G! O+ ?" g3 e9 K N
0132D885 . 75 05 jnz short 0132D88C
; H1 k" Q ?: \0132D887 . B8 16263901 mov eax, 01392616 ) b/ @0 R- v3 R$ P, c) U) `
0132D88C > 6A 00 push 0 8 Q# D0 W9 j X' r+ `! Q, i
0132D88E . 6A 00 push 0 & x) z7 {1 L' y# K$ z* u" L- I
0132D890 . 50 push eax * h$ C f9 E, Q9 a
0132D891 . 6A 1F push 1F 1 B) S- \2 G. Z) y
0132D893 . 8BCE mov ecx, esi
' R% S& C2 `; N* {5 h' B6 _0132D895 . E8 FA8E0300 call <jmp.&CK2.CKContext::CreateObjec> 3 E/ a6 Y* q% ~- D, j* q' V
0132D89A . 8B8C24 C80400>mov ecx, dword ptr [esp+4C8]
! ] |% A! [1 [% a& x3 e1 N0132D8A1 . 6A 00 push 0
( M: j, F2 M, y' N0132D8A3 . 6A 20 push 20 ; \7 Q/ @3 F' s* ?9 T
0132D8A5 . 51 push ecx
# ]. k+ `+ o, Y( L0132D8A6 . 8B8C24 D00400>mov ecx, dword ptr [esp+4D0] 8 v; z( Q7 G, O/ ~
0132D8AD . 8947 24 mov dword ptr [edi+24], eax , E Z( X1 D/ X6 a: Z
0132D8B0 . 8B10 mov edx, dword ptr [eax]
4 A6 @. t, R3 }0 [0132D8B2 . 8B52 54 mov edx, dword ptr [edx+54]
/ |& s ]6 a/ P/ I" T& r( N0132D8B5 . 51 push ecx 0 V( M2 C" |. ^$ ^2 M9 b4 a$ i9 T# {
0132D8B6 . 8BC8 mov ecx, eax
) C8 ]+ [$ q+ {; u4 I1 S% L0132D8B8 . FFD2 call edx
}* a2 |- d- ]/ n8 y% Z; Y0132D8BA . 85C0 test eax, eax
4 \% n3 V: d, z4 _0132D8BC . 75 07 jnz short 0132D8C5
$ _: g/ B$ }4 S$ V0132D8BE . 32C0 xor al, al 1 E& `9 k. W; n( B8 t# g
0132D8C0 . E9 B4030000 jmp 0132DC79
1 ^( l. w8 G, v J6 I0132D8C5 > 8B4F 24 mov ecx, dword ptr [edi+24] A% m* ^3 u9 I* a6 }
0132D8C8 . 8B01 mov eax, dword ptr [ecx]
6 D! `/ F( |+ `8 @9 L- O0132D8CA . 8B80 88000000 mov eax, dword ptr [eax+88]
: x2 i! R9 U3 W5 o/ ~4 L0132D8D0 . 55 push ebp
# K' L+ i: q1 ^% _7 _* z5 W$ K0132D8D1 . 8D5424 70 lea edx, dword ptr [esp+70]
. H) \8 A# w8 d, k8 \9 u- l0132D8D5 . 52 push edx $ T1 R+ q% U# C! k0 B$ Z
0132D8D6 . FFD0 call eax
. h6 d. H Z9 p, h4 k* l+ c0132D8D8 . 6A 00 push 0 ; /hDC = NULL
# Q! o1 V& P4 F/ c) @6 ]0132D8DA . FF15 34A43801 call dword ptr [<&GDI32.CreateCompati>; \CreateCompatibleDC
* R4 E1 b3 z" t" h: x0132D8E0 . 8D4C24 70 lea ecx, dword ptr [esp+70]
1 x3 f) H8 f# e* s5 m) V; f7 N0132D8E4 . 51 push ecx ! v" I ^$ D! t( w7 [- C, s, k9 X
0132D8E5 . 8BE8 mov ebp, eax
' C S6 t0 N5 T. ` w0132D8E7 . FF15 24A83801 call dword ptr [<&VxMath.VxCreateBitm>; VxMath.VxCreateBitmap
U. w) M! c! j& X3 A; o+ x5 y/ f0132D8ED . 8B35 70A43801 mov esi, dword ptr [<&GDI32.SelectOb>; GDI32.SelectObject ' N1 R! e! H. X2 M- K) p1 \
0132D8F3 . 83C4 04 add esp, 4 ) l% q2 X8 S$ N+ R" I0 @) a ?
0132D8F6 . 50 push eax ; /hObject
% c: t5 S2 W0 q2 e. Z ]' q) k0132D8F7 . 55 push ebp ; |hDC
+ w% z" m9 n/ T( u' @4 A4 j0132D8F8 . 894424 2C mov dword ptr [esp+2C], eax ; |
( K9 H X8 }0 A% L5 _0132D8FC . FFD6 call esi ; \SelectObject g9 L k- y! @; x0 I2 [+ {
0132D8FE . 8B5424 28 mov edx, dword ptr [esp+28]
& ?$ N7 B B) R d( T' f8 l0132D902 . 52 push edx
- H3 w" W# b' M4 h r0132D903 . 8BCB mov ecx, ebx
0 Q8 q1 @& ^2 m+ J0132D905 . 894424 40 mov dword ptr [esp+40], eax
' Z! a8 w8 p6 ?; t# l1 u3 I8 p. v; }0132D909 . FF15 BCA83801 call dword ptr [<&VxMath.XString::ope>; VxMath.XString::operator= 3 X( B, Q D& P$ N$ M, z9 y/ H m
0132D90F . 8B9C24 B80400>mov ebx, dword ptr [esp+4B8]
; I( H% v& L- j0 k& i8 ?; m0132D916 . 6A 48 push 48 ; /Divisor = 48 (72.)
+ V1 T7 D, \/ m' L% d2 s: Y9 |0132D918 . 6A 5A push 5A ; |/Index = LOGPIXELSY
2 j! h; ^; _, w. o$ ^) ]0132D91A . 55 push ebp ; ||hDC
* r7 J" w7 z& \3 z0132D91B . 895F 14 mov dword ptr [edi+14], ebx ; || ; g6 Q+ w9 U& s) T+ p! r
0132D91E . FF15 64A43801 call dword ptr [<&GDI32.GetDeviceCaps>; |\GetDeviceCaps
! [" T; B) K9 w* ]* w3 K0132D924 . 50 push eax ; |Multiplier
* g# F( W3 G0 a0132D925 . 53 push ebx ; |Multiplicand
! ?7 `! h) R! u) Z- i0132D926 . FF15 DCA43801 call dword ptr [<&KERNEL32.MulDiv>] ; \MulDiv
+ {* F9 O" w* g0132D92C . 8B4C24 1C mov ecx, dword ptr [esp+1C]
/ b! `( @. v- w; k# u" ^1 q0132D930 . 8B9424 C00400>mov edx, dword ptr [esp+4C0] * v. R8 v7 y& v4 [
0132D937 . 51 push ecx ; /FaceName - E q6 R) ^8 \8 G" M1 o# p
0132D938 . 8B8C24 C80400>mov ecx, dword ptr [esp+4C8] ; | 0 v( n5 J$ _4 o2 ^: |6 W$ ^6 Z+ h
0132D93F . 6A 00 push 0 ; |PitchAndFamily = DEFAULT_PITCH|FF_DONTCARE 3 _7 N9 C8 q& J! e( U' A
0132D941 . 52 push edx ; |Quality
7 n1 y- [) F( k0132D942 . 6A 00 push 0 ; |ClipPrecision = CLIP_DEFAULT_PRECIS
% r: D! |8 Z1 ~- k! e0132D944 . 6A 07 push 7 ; |OutputPrecision = OUT_TT_ONLY_PRECIS # `# k& q, i0 N H5 G, ~; k" H( Y
0132D946 . 6A 01 push 1 ; |CharSet = DEFAULT_CHARSET ; F Q' U- w& Z, k) L7 W: @
0132D948 . 6A 00 push 0 ; |StrikeOut = FALSE % D( j5 k7 D5 x. `6 g
0132D94A . 8BD1 mov edx, ecx ; |
1 L3 S7 d1 k$ X2 D% U+ z# Y0132D94C . D1EA shr edx, 1 ; | _# H! v# n; b% u7 H3 r9 q! k
0132D94E . 83E2 01 and edx, 1 ; | K* D3 Y( F; N- ?! l. E
0132D951 . 52 push edx ; |Underline / ]# f$ z/ a# E+ E8 p* Z; d1 j
0132D952 . 83E1 01 and ecx, 1 ; |
& |$ E' d* j+ U9 B6 N4 I. o0132D955 . 51 push ecx ; |Italic
* o9 k# C" A8 O1 r$ S7 [0 n9 {, h1 F( U0132D956 . 8B8C24 E00400>mov ecx, dword ptr [esp+4E0] ; | " p3 L5 K' W% W. W2 K, C
0132D95D . 51 push ecx ; |Weight
5 V2 F9 F6 h5 L0132D95E . 6A 00 push 0 ; |Orientation = 0
7 E) b1 l3 u; C0132D960 . 6A 00 push 0 ; |Escapement = 0
" V. _5 {: \1 D0132D962 . F7D8 neg eax ; | % H; v; f! x3 i0 M9 a) g1 C/ l
0132D964 . 6A 00 push 0 ; |Width = 0
) `; V( i" U/ i# M0132D966 . 50 push eax ; |Height
0 ]. W# f/ a' C9 O. e) Y6 q0132D967 . FF15 60A43801 call dword ptr [<&GDI32.CreateFontA>] ; \CreateFontA ! o! n$ H9 S* A
0132D96D . 50 push eax
1 W1 f6 P( ]$ ^" B+ a3 D, v- ^0132D96E . 55 push ebp
" E k& h Q: G- j% \( t# Y6 e2 h0132D96F . 894424 38 mov dword ptr [esp+38], eax
8 S5 E' n7 g; @1 T9 N0132D973 . FFD6 call esi
$ C( P% |8 r' e5 k% b0132D975 . 8D5424 58 lea edx, dword ptr [esp+58]
: Y' L2 N) p l3 B* g1 Z0132D979 . 52 push edx ; /pSize
: U. f+ X1 Q _- I2 f4 F6 v+ h/ A0132D97A . 6A 01 push 1 ; |TextLen = 1
$ h1 C2 u$ `) X, z0132D97C . 68 4CED3801 push 0138ED4C ; |Text = "A" # i: X p. m7 ~( q' o+ ~
0132D981 . 55 push ebp ; |hDC " Q4 A, |$ ~" x) k" V4 o
0132D982 . 894424 44 mov dword ptr [esp+44], eax ; |
- j3 u, \! @, |( y0132D986 . FF15 5CA43801 call dword ptr [<&GDI32.GetTextExtent>; \GetTextExtentPointA % g( h& d* x& S1 o1 S1 n& _+ n
0132D98C . 8B4424 5C mov eax, dword ptr [esp+5C] 1 H8 {8 t: [2 n2 Y5 K. N+ V
0132D990 . 8B77 1C mov esi, dword ptr [edi+1C] 3 g5 k; Q3 i7 R7 }8 l
0132D993 . 8947 18 mov dword ptr [edi+18], eax
9 X0 G) H- h6 Y+ G9 J. B* g0132D996 . 33C9 xor ecx, ecx # @0 T- d* h4 F6 W4 R
0132D998 . 8BC6 mov eax, esi & {' B, H. _2 Q4 K2 T
0132D99A . BA 20000000 mov edx, 20
/ p; \, J- @2 X, T0 ]1 y0132D99F . F7E2 mul edx & d6 D' a0 s" [1 I' d
0132D9A1 . 0F90C1 seto cl 9 Z+ @; u& n/ d! t7 f* X
0132D9A4 . F7D9 neg ecx , e' h6 t4 z) Q. c& m
0132D9A6 . 0BC8 or ecx, eax 1 O4 k( p) D( \* S) {, h
0132D9A8 . 51 push ecx
. G' [4 g0 |" Z0132D9A9 . E8 964A0500 call <jmp.&MSVCR80.operator new>
) F0 n1 K* I7 j7 w% p W+ k2 o0132D9AE . 83C4 04 add esp, 4 ; `) A& W# X+ g3 \" v$ D
0132D9B1 . 85C0 test eax, eax + x: Y# [' v, W4 g0 w+ l$ w% ]
0132D9B3 . 74 28 je short 0132D9DD
0 ] v/ R y" N P% A0132D9B5 . 83C6 FF add esi, -1
8 Z1 |2 m t w- f/ o0132D9B8 . 78 25 js short 0132D9DF
9 p. [' Z- e) X5 R& W4 M0132D9BA . D9EE fldz * s: J7 p+ f3 e o
0132D9BC . 8D48 0C lea ecx, dword ptr [eax+C] . T6 N& t+ g) Z( i N& S
0132D9BF > D951 FC fst dword ptr [ecx-4] 5 s- F( |! b, T% G& h- y0 u( [; h
0132D9C2 . 83C1 20 add ecx, 20 0 n7 `; ^9 }' |* _3 `
0132D9C5 . 83EE 01 sub esi, 1
" m0 y; `' U; v1 Z0132D9C8 . D951 E0 fst dword ptr [ecx-20] 9 B* {& m& E7 d" Z& |# L; V- }
0132D9CB . D951 D4 fst dword ptr [ecx-2C]
- c, u) L9 F9 E7 @7 t9 j0132D9CE . D951 D8 fst dword ptr [ecx-28]
6 L$ ?/ `+ t; u/ H) W6 x& u# B8 S0132D9D1 . D951 DC fst dword ptr [ecx-24]
. |) |8 d. \8 u) Z5 _9 f. w0132D9D4 . D951 E0 fst dword ptr [ecx-20] 4 t% ^6 q3 e$ e
0132D9D7 .^ 79 E6 jns short 0132D9BF 0 d+ B* F) ~4 G
0132D9D9 . DDD8 fstp st 1 m1 t7 C5 ]5 n, H5 C) t$ o- ]
0132D9DB . EB 02 jmp short 0132D9DF $ ~4 i0 a3 B+ L ~$ |9 w. d
0132D9DD > 33C0 xor eax, eax
+ r, o' f. S: L! o: i9 U0132D9DF > 8B8C24 C80400>mov ecx, dword ptr [esp+4C8]
) k2 j1 {) o* B- ^0132D9E6 . 8947 20 mov dword ptr [edi+20], eax : z) F& b Y; F; c7 P
0132D9E9 . 8B8424 CC0400>mov eax, dword ptr [esp+4CC]
9 z0 C7 ~- R3 m5 B/ m2 ]# n0132D9F0 . 50 push eax ; /Bottom
# `" ~. K% X' ^% w, ~: X2 U/ a3 G! t0132D9F1 . 51 push ecx ; |Right
' ]( ], E! N5 M2 K7 @) e- X0132D9F2 . 6A 00 push 0 ; |Top = 0 9 E. ~# Y. _ ~2 J8 S
0132D9F4 . 6A 00 push 0 ; |Left = 0
' H0 D. d! r# Y. v9 _2 o; }0132D9F6 . 8D5424 70 lea edx, dword ptr [esp+70] ; | : d: f( k( ^" F" {
0132D9FA . 52 push edx ; |pRect ) T! N; x, h+ N9 O0 P9 Z4 q+ z
0132D9FB . FF15 64A73801 call dword ptr [<&USER32.SetRect>] ; \SetRect
- `. _& W1 q6 t& r0132DA01 . 6A 04 push 4 ; /ObjType = BLACK_BRUSH
3 Y6 O! c) \8 Z6 a4 X8 N0132DA03 . FF15 58A43801 call dword ptr [<&GDI32.GetStockObjec>; \GetStockObject
# Y2 D9 E8 |" i/ t5 g4 n3 Q! w0132DA09 . 50 push eax ; /hBrush 9 r1 S( `8 J' s, k
0132DA0A . 8D4424 64 lea eax, dword ptr [esp+64] ; |
4 f1 |: \: A) W1 `' _5 V( r8 ?0132DA0E . 50 push eax ; |pRect % I3 V! F! E5 [; Z$ m
0132DA0F . 55 push ebp ; |hDC
! S. @# m! X! c+ Q$ |* X0132DA10 . FF15 68A73801 call dword ptr [<&USER32.FillRect>] ; \FillRect
3 ~, j) F6 x& S1 S9 a/ H) }. l" U0132DA16 . 6A 00 push 0 ; /Color = <BLACK> ( P3 }2 l% D: P0 Z4 X
0132DA18 . 55 push ebp ; |hDC 9 N2 Y z; ^$ m4 A
0132DA19 . FF15 54A43801 call dword ptr [<&GDI32.SetBkColor>] ; \SetBkColor A t" M4 B2 h
0132DA1F . 68 FFFFFF00 push 0FFFFFF ; /Color = <WHITE> , H* M/ U" l0 k* z
0132DA24 . 55 push ebp ; |hDC 7 Y4 x% E2 n0 n$ V
0132DA25 . FF15 50A43801 call dword ptr [<&GDI32.SetTextColor>>; \SetTextColor 6 z. ?# h% j+ a4 [0 Z$ g
0132DA2B . 6A 01 push 1 ; /BkMode = TRANSPARENT
( z O+ A7 t& v2 a" L: ]0132DA2D . 55 push ebp ; |hDC & F& T4 b0 {7 _2 ]: w9 Y( ?8 h
0132DA2E . FF15 4CA43801 call dword ptr [<&GDI32.SetBkMode>] ; \SetBkMode ( w1 {# r3 v9 t% U1 g0 V
0132DA34 . 33F6 xor esi, esi
' y' @2 U* b! ]- u V% K6 o) U0132DA36 . 3977 1C cmp dword ptr [edi+1C], esi
) A8 b, `0 V, h9 |% K4 ^: n# A( r5 G0132DA39 . BB 01000000 mov ebx, 1 ) n6 v7 J J; {0 x: N7 A. G
0132DA3E . 895C24 18 mov dword ptr [esp+18], ebx - \2 |! {: G$ p. {
0132DA42 . 897424 14 mov dword ptr [esp+14], esi
4 P3 J- X- |+ p3 V* \6 w" O4 Y) c9 G0132DA46 . 897424 1C mov dword ptr [esp+1C], esi + D% U; D4 W3 t J
0132DA4A . 0F8E 20010000 jle 0132DB70
1 d2 k+ t' h8 k0132DA50 . DB8424 C80400>fild dword ptr [esp+4C8] $ m% |5 T0 X% I9 g9 m
0132DA57 . 8B4424 10 mov eax, dword ptr [esp+10] 9 f5 b; `. B1 [ |, A# m
0132DA5B . 897424 20 mov dword ptr [esp+20], esi & D% }% |" y! U" e
0132DA5F . 894424 10 mov dword ptr [esp+10], eax / i' D$ a" F& D% p. Q3 F& C3 s
0132DA63 . D95C24 38 fstp dword ptr [esp+38] , k1 q* i- j: O) I; r. H+ Y- g
0132DA67 . DB8424 CC0400>fild dword ptr [esp+4CC]
% v- L$ U; y; e7 u g% O; g0132DA6E . D95C24 2C fstp dword ptr [esp+2C] : z! r% A0 S+ a" J! e: C
0132DA72 . EB 04 jmp short 0132DA78 6 n4 Z' N: j& _9 k. Y
0132DA74 > 8B4424 10 mov eax, dword ptr [esp+10] / g( v% _- A* a8 M$ W
0132DA78 > 8B77 20 mov esi, dword ptr [edi+20] & ~. Y# ~* L2 l2 h3 i7 R4 _. D2 \
0132DA7B . 66:8B08 mov cx, word ptr [eax]
$ m# B Q" f, o2 V1 ~% s: F0132DA7E . 037424 20 add esi, dword ptr [esp+20]
% b( N0 L. I' k; C3 S. B0132DA82 . 66:894E 10 mov word ptr [esi+10], cx 2 V. D/ N4 a. u( ~2 r
0132DA86 . 0FB700 movzx eax, word ptr [eax]
- V5 _( [, \7 P6 l) Q+ a0132DA89 . 8D4E 14 lea ecx, dword ptr [esi+14]
2 H7 |5 J0 i8 k8 e0132DA8C . 51 push ecx ; /pABC 5 D8 ^7 Q4 I6 ^) F! I/ F4 V
0132DA8D . 50 push eax ; |LastChar
( n( M: X# Y5 y. R0132DA8E . 50 push eax ; |FirstChar 6 ~. p6 f' g2 [" z* N3 U
0132DA8F . 55 push ebp ; |hDC
2 z9 P; O1 i* h# f# ^0132DA90 . FF15 48A43801 call dword ptr [<&GDI32.GetCharABCWid>; \GetCharABCWidthsW " B/ }5 o! r/ J3 ]+ j
0132DA96 . 8B5424 10 mov edx, dword ptr [esp+10] 6 A% h# I {6 ~- m$ Y' ]& m
0132DA9A . 66:833A 20 cmp word ptr [edx], 20
: I5 E$ u3 F }6 g) R1 W* E5 j0132DA9E . 73 10 jnb short 0132DAB0
|% m9 w$ i9 b0 V2 w% e! l" V. T& M0132DAA0 . C746 14 00000>mov dword ptr [esi+14], 0 3 k& O3 g' W' n4 R$ C% c7 |
0132DAA7 . C746 1C 00000>mov dword ptr [esi+1C], 0 + Y( f+ s3 D/ F& Q
0132DAAE . EB 0C jmp short 0132DABC
. b L9 `+ @) L3 i7 k0132DAB0 > 8346 14 FF add dword ptr [esi+14], -1 " V# M4 x8 \ F- I0 |; P" I
0132DAB4 . 8346 18 02 add dword ptr [esi+18], 2 6 `4 I3 h* k0 b C; U
0132DAB8 . 8346 1C FF add dword ptr [esi+1C], -1
) n: X6 n6 P" M' \& Y; c0132DABC > 8B4E 18 mov ecx, dword ptr [esi+18] 7 q# ^; Y/ X6 X/ `
0132DABF . 8D4419 01 lea eax, dword ptr [ecx+ebx+1] . E* q9 M' n$ j& N
0132DAC3 . 3B8424 C80400>cmp eax, dword ptr [esp+4C8] 0 \' h5 k! f+ B" x7 W0 [7 |) l
0132DACA . 8B4424 14 mov eax, dword ptr [esp+14]
% M. `$ k) Y _0 u9 r$ H0132DACE . 72 14 jb short 0132DAE4
* P+ K7 p7 T" n/ B& j7 g5 }0132DAD0 . 8B57 18 mov edx, dword ptr [edi+18] 3 u& M5 Z, u4 ?) z
0132DAD3 . BB 01000000 mov ebx, 1
2 x4 @2 H4 N! G1 z; W0132DAD8 . 8D4410 01 lea eax, dword ptr [eax+edx+1] . t5 D/ w1 N) [' q, N4 T$ c
0132DADC . 895C24 18 mov dword ptr [esp+18], ebx 3 x# O! l$ e- o3 P* l
0132DAE0 . 894424 14 mov dword ptr [esp+14], eax
3 _& Q# _8 V: w4 o0132DAE4 > DB4424 18 fild dword ptr [esp+18]
, H( W9 r0 Q) j1 j V0132DAE8 . 03CB add ecx, ebx
2 d* A0 o* i, Z. V" \+ C9 H# ?2 W0132DAEA . 85C9 test ecx, ecx ' ]* G9 y6 i c
0132DAEC . D94424 38 fld dword ptr [esp+38]
) \) T8 E2 }/ j, m1 y0132DAF0 . D9C0 fld st
4 H; j3 J& ?% W; k6 d; F: S0 d& t0132DAF2 . 894C24 18 mov dword ptr [esp+18], ecx
4 G+ G+ K- Z& C$ t2 |# A0132DAF6 . DEFA fdivp st(2), st
0 t# x+ h+ a! @ m$ p- `, D) F0132DAF8 . D9C9 fxch st(1) $ u( f8 p, f1 q- F$ F% i
0132DAFA . D91E fstp dword ptr [esi] Y9 P: h* K+ `1 O
0132DAFC . DB4424 14 fild dword ptr [esp+14]
: d& F/ I" @: k( Y0 q0132DB00 . D94424 2C fld dword ptr [esp+2C]
) [$ [6 B& I# D; q: X0132DB04 . D9C0 fld st 5 @/ G, t- ~* H+ u
0132DB06 . DEFA fdivp st(2), st K0 H# z5 l+ u+ P$ P6 G. y
0132DB08 . D9C9 fxch st(1) ' \/ b9 n2 L0 L& V
0132DB0A . D95E 04 fstp dword ptr [esi+4] & ], s& T9 m( Y" j6 P) k
0132DB0D . DB4424 18 fild dword ptr [esp+18] ) H- p* ~1 j& [8 I$ ]9 P4 h
0132DB11 . 7D 06 jge short 0132DB19
# a' _' {: P+ `8 t9 ?0132DB13 . D805 50B03801 fadd dword ptr [138B050] 9 a7 r6 {9 k5 n3 W \, j+ q+ N$ a
0132DB19 > DEF2 fdivrp st(2), st
% c6 P8 x0 T+ Y0132DB1B . 8B5424 10 mov edx, dword ptr [esp+10] " ]+ E' h8 T# ^+ |; S9 N
0132DB1F . 6A 01 push 1 ; /StringSize = 1
) k3 s$ c- T$ c2 D& U! \( G0132DB21 . 52 push edx ; |String 4 j3 o, ^7 ^4 o" O9 z# J6 H% x
0132DB22 . 50 push eax ; |YStart
+ L: o! Z( r& S0 c. Q5 [7 p. k0132DB23 . D9C9 fxch st(1) ; | 8 w+ B, P+ |% D- t9 i
0132DB25 . D95E 08 fstp dword ptr [esi+8] ; | + j* H7 n; X$ w7 ^
0132DB28 . 8B4F 18 mov ecx, dword ptr [edi+18] ; | 8 I% U% ?) v* |, ?
0132DB2B . 03C8 add ecx, eax ; | " @# A. ~4 }" z) e
0132DB2D . 894C24 24 mov dword ptr [esp+24], ecx ; | Y; K# c# U: r
0132DB31 . DA7C24 24 fidivr dword ptr [esp+24] ; |
2 M1 x0 f2 K6 ]! |( V0132DB35 . 8BC3 mov eax, ebx ; | ; |( U! d/ t0 n$ @
0132DB37 . 2B46 14 sub eax, dword ptr [esi+14] ; |
; V# z% y* [9 L2 ~" q0132DB3A . 50 push eax ; |XStart
( z, k) N7 N( R0132DB3B . 55 push ebp ; |hDC
2 ]0 M, U. q6 Z2 K0132DB3C . D95E 0C fstp dword ptr [esi+C] ; |
' ~" V( e! P) ?# T0 \7 Q2 L0132DB3F . FF15 44A43801 call dword ptr [<&GDI32.TextOutW>] ; \TextOutW 9 l" R6 [) c N1 ?8 a
0132DB45 . 8B4424 1C mov eax, dword ptr [esp+1C]
4 X z& h* `* O; V6 ~0132DB49 . 8B4E 18 mov ecx, dword ptr [esi+18]
9 `/ w1 |3 Z4 F, [5 k3 g0 f- b0132DB4C . 834424 20 20 add dword ptr [esp+20], 20
m5 [' n m8 Q- m y0132DB51 . 834424 10 02 add dword ptr [esp+10], 2
: Z* s7 w9 p( P+ Z; e; W5 s( `0132DB56 . 83C0 01 add eax, 1 ) _: v2 @6 @( R9 [: E3 I* z% \
0132DB59 . 3B47 1C cmp eax, dword ptr [edi+1C]
& K+ C5 @- \$ t, `5 g0132DB5C . 8D5C0B 01 lea ebx, dword ptr [ebx+ecx+1]
, f9 |. [: N' Q8 {" v: t9 u6 c0132DB60 . 895C24 18 mov dword ptr [esp+18], ebx
0 @, M: Y q8 C, e% k/ c1 H3 N0132DB64 . 894424 1C mov dword ptr [esp+1C], eax
+ K$ S* `( e' _; T1 ]8 k0132DB68 .^ 0F8C 06FFFFFF jl 0132DA74
9 ~( G5 i2 ~1 O$ a6 G: q0 }0132DB6E . 33F6 xor esi, esi
3 e) V) u! g& J8 j$ u' W" L, s" l0 _0 ]0 w, b0132DB70 > 8B4F 24 mov ecx, dword ptr [edi+24] 7 P9 g- a+ V- o+ p
0132DB73 . 6A FF push -1 4 C' y4 A: Z& \& |' P8 ?- H
0132DB75 . 83C1 38 add ecx, 38 ; n8 N! W: d- H6 X" N( y9 H
0132DB78 . E8 278E0300 call <jmp.&CK2.CKBitmapData::LockSurf> ! |' M* U0 j. \; K
0132DB7D . 8BD8 mov ebx, eax
b6 o [7 L4 i3 O1 R* ^0132DB7F . 3BDE cmp ebx, esi 3 D5 G+ @$ j6 e: b/ [/ [
0132DB81 . 74 74 je short 0132DBF7 2 @# d- r- {$ M( `6 s) a- S
0132DB83 . 8B4424 24 mov eax, dword ptr [esp+24]
, e! H" h* F; j% S5 t7 j+ e0132DB87 . 8D5424 40 lea edx, dword ptr [esp+40] 4 p0 a% b! w+ d
0132DB8B . 52 push edx ; /Buffer
4 D% i7 r6 U1 b; Y0132DB8C . 6A 18 push 18 ; |BufSize = 18 (24.)
, z! k& }% m4 G0132DB8E . 50 push eax ; |hObject
) r) F) j1 [7 k4 L0132DB8F . FF15 40A43801 call dword ptr [<&GDI32.GetObjectA>] ; \GetObjectA
" N2 U4 h( z6 t1 D' z. L$ M) P0132DB95 . 8B4C24 48 mov ecx, dword ptr [esp+48]
7 \/ U, C+ u2 g# ~$ d8 x0132DB99 . 8D71 FF lea esi, dword ptr [ecx-1]
- u5 r) ~' t& a8 a; E7 u f0132DB9C . 0FAF7424 4C imul esi, dword ptr [esp+4C]
, f e$ M7 F+ g* P. f V: @8 @0132DBA1 . 037424 54 add esi, dword ptr [esp+54]
" A3 d" J$ W6 s& ~3 n9 W! r) M @* q0132DBA5 . 85C9 test ecx, ecx 0 d. o3 m ^8 y \
0132DBA7 . C74424 14 000>mov dword ptr [esp+14], 0 5 l$ q! z# W0 n8 S% s* t4 f& H5 k
0132DBAF . 7E 46 jle short 0132DBF7
M( T8 q5 o, u0132DBB1 . 8B5424 44 mov edx, dword ptr [esp+44] ; X! J# |1 ^7 _' i
0132DBB5 > 33C0 xor eax, eax
7 k2 I- T" Y+ B! H, ]# z0132DBB7 . 85D2 test edx, edx 4 ]( [1 ^0 L4 K2 p
0132DBB9 . 7E 26 jle short 0132DBE1
3 t; z3 ^" S) W0132DBBB . 8BCE mov ecx, esi % g# q5 W9 G) P. C
0132DBBD . 8D49 00 lea ecx, dword ptr [ecx]
: \8 _4 H+ i) y0 l0132DBC0 > 0FB611 movzx edx, byte ptr [ecx]
( A( @: ^( L2 k6 b; ?3 Q$ C" r0132DBC3 . C1E2 18 shl edx, 18 + E$ L7 q1 ~! u
0132DBC6 . 81CA FFFFFF00 or edx, 0FFFFFF + N6 B# q9 |- O* k7 w" {; I
0132DBCC . 891483 mov dword ptr [ebx+eax*4], edx
0 q; P8 W: V! S1 Z' J0132DBCF . 8B5424 44 mov edx, dword ptr [esp+44] 1 `3 d2 k4 [, _+ G( T% |
0132DBD3 . 83C0 01 add eax, 1 / ]9 {2 @% n9 T6 Z- j% d
0132DBD6 . 83C1 03 add ecx, 3 6 Z j1 D8 E6 D; [6 L9 c
0132DBD9 . 3BC2 cmp eax, edx ; [" [2 s& i: K
0132DBDB .^ 7C E3 jl short 0132DBC0
* ~/ E; j( h+ h; U6 U- V- q0132DBDD . 8B4C24 48 mov ecx, dword ptr [esp+48] 0 Q5 p5 ^0 I8 m. D4 l
0132DBE1 > 8B4424 14 mov eax, dword ptr [esp+14]
3 C: ` M+ w) y y4 V0 u0132DBE5 . 2B7424 4C sub esi, dword ptr [esp+4C]
: V* w I5 n( `4 {, O7 i0132DBE9 . 83C0 01 add eax, 1
2 ?1 `4 K5 F" v5 G" E0132DBEC . 3BC1 cmp eax, ecx
) T2 y- b9 G1 L: ]; M0132DBEE . 8D1C93 lea ebx, dword ptr [ebx+edx*4]
! F: d: H* }( E) ?1 l. k! ^+ s0132DBF1 . 894424 14 mov dword ptr [esp+14], eax
7 ~1 R1 i* N" ^$ E; U a3 n2 C0132DBF5 .^ 7C BE jl short 0132DBB5 4 V, y# O8 P0 P& d) V: W& o1 }
0132DBF7 > 8B4F 24 mov ecx, dword ptr [edi+24] 0 H _! j: s- Y
0132DBFA . 6A FF push -1 " P5 i2 p/ {( n: E& Q4 l1 Q
0132DBFC . 83C1 38 add ecx, 38
. m9 k6 R, q' Q) X0132DBFF . E8 9A8D0300 call <jmp.&CK2.CKBitmapData::ReleaseS>
- J6 g, _) r: V) I: E4 w" |0132DC04 . 8B4424 34 mov eax, dword ptr [esp+34]
7 F/ Q( {* N: L* C# y4 w0132DC08 . 8B35 70A43801 mov esi, dword ptr [<&GDI32.SelectOb>; GDI32.SelectObject
) ]1 b5 K( Z4 ^% Y0132DC0E . 50 push eax ; /hObject
* X9 X" V' M+ @3 h# P- C) t) B0132DC0F . 55 push ebp ; |hDC
( N9 N; x. i; B/ ^7 l0132DC10 . FFD6 call esi ; \SelectObject , Z% z1 t4 h/ G' Y6 f
0132DC12 . 8B4C24 30 mov ecx, dword ptr [esp+30] : v6 N0 @$ I+ Z6 k5 G" Z( |
0132DC16 . 51 push ecx 5 Q2 P8 l. H8 ], e# j$ t' I
0132DC17 . FF15 28A83801 call dword ptr [<&VxMath.VxDeleteFont>; VxMath.VxDeleteFont
2 ], f- Z( ]3 B7 N0 z( a5 j0132DC1D . 8B5424 40 mov edx, dword ptr [esp+40] 2 i2 Q9 |4 D; m- F; d: Y' q- w
0132DC21 . 83C4 04 add esp, 4
+ R$ Z }. a5 j3 e6 F' h2 f$ Q& P0132DC24 . 52 push edx
{3 i' V2 k! Y5 K0132DC25 . 55 push ebp : ~9 B$ S% J- J
0132DC26 . FFD6 call esi
) L" |. |6 D: g& p# |0132DC28 . 8B4424 24 mov eax, dword ptr [esp+24] , f5 o- S; S, t2 N
0132DC2C . 50 push eax / d7 d8 B: W1 [
0132DC2D . FF15 2CA83801 call dword ptr [<&VxMath.VxDeleteBitm>; VxMath.VxDeleteFont . ^ x6 V3 |5 D% A2 F$ j
0132DC33 . 83C4 04 add esp, 4
; W6 s; t, `# x1 Q0132DC36 . 55 push ebp ; /hDC
3 G5 S0 V3 J, J$ e8 |% B2 G0132DC37 . FF15 3CA43801 call dword ptr [<&GDI32.DeleteDC>] ; \DeleteDC
/ N7 C5 R' Z$ _( _, N* `0132DC3D . 8B4C24 28 mov ecx, dword ptr [esp+28]
7 D& t' F% N& W' j% }* v0132DC41 . 6A 00 push 0 % V+ l3 M$ z) b
0132DC43 . 51 push ecx 6 E' p2 n$ n4 O: m+ B2 R# h9 c- C
0132DC44 . 8B4F 24 mov ecx, dword ptr [edi+24]
) P7 ^/ y7 R/ H0 S# j5 Y0132DC47 . E8 4C8A0300 call <jmp.&CK2.CKObject::SetName> " \, ?: A1 d0 M4 k7 G7 e% b& g. G
0132DC4C . 8B4F 24 mov ecx, dword ptr [edi+24] : _- @* i5 n! E/ ?
0132DC4F . 6A 01 push 1
* T, w$ n B) Z7 t0132DC51 . 83C1 38 add ecx, 38 6 w W- k' ^1 K5 T8 }7 H# r
0132DC54 . E8 7B8D0300 call <jmp.&CK2.CKBitmapData::SetDesir> - ^% Z5 t @7 O; {- y0 I; v
0132DC59 . 8B4F 24 mov ecx, dword ptr [edi+24]
6 l, Q. O: C0 q! v. K5 ?# ]: T0132DC5C . 8B11 mov edx, dword ptr [ecx] : J3 F" G3 G, c3 T( y
0132DC5E . 8B42 78 mov eax, dword ptr [edx+78] + v& x) h/ N- ?- T6 T3 @
0132DC61 . 6A 00 push 0 8 [* {+ `' z5 _8 H8 {( U
0132DC63 . FFD0 call eax
- Y V# I- o) j9 k6 k0132DC65 . 8B4F 18 mov ecx, dword ptr [edi+18] # g% z9 \. X% i C- |: x
0132DC68 . 034C24 14 add ecx, dword ptr [esp+14] 4 F, A7 C- z9 k& X) s
0132DC6C . 33C0 xor eax, eax 3 T% G# P: n$ B: a" z, E8 L
0132DC6E . 3B8C24 CC0400>cmp ecx, dword ptr [esp+4CC] ' ^9 }& K! ^0 Y% p. S' l
0132DC75 . 5D pop ebp # G7 L* w6 L7 L4 p! U
0132DC76 . 0F9CC0 setl al ) i. i1 T# i5 K9 v- f1 u# W
0132DC79 > 8B8C24 A00400>mov ecx, dword ptr [esp+4A0]
* P9 K: f( G' \# b0132DC80 . 5F pop edi
7 s# E v9 e7 h0 y0132DC81 . 5E pop esi & t1 i$ d% A% k* e+ d/ {" }8 u! @# m2 k
0132DC82 . 5B pop ebx 7 h; j' a, h% x8 E, |
0132DC83 . 33CC xor ecx, esp
8 h6 l/ C7 _5 @2 ?+ [+ {0132DC85 . E8 E2460500 call 0138236C
1 I1 u3 Z0 [0 L6 P0132DC8A . 81C4 98040000 add esp, 498
& [' E1 } l0 {8 { y/ ^2 [0132DC90 . C2 2800 retn 28 |