发现了一个和字库有关的函数,研究中。 $ U4 t* y& h% c) ?( n7 `8 b/ [
8 o) Q* g6 N: t# \$ A0132D7E0 $ 81EC 98040000 sub esp, 498
) g1 i. i! I8 a- v d. S( n0132D7E6 . A1 7CD13A01 mov eax, dword ptr [13AD17C] $ \: d' p, n6 Y# V
0132D7EB . 33C4 xor eax, esp
' O* G2 `& F& I# }/ }$ ~0132D7ED . 898424 940400>mov dword ptr [esp+494], eax
" H$ V( V- p& {; n1 h# ^0132D7F4 . 8B8424 A00400>mov eax, dword ptr [esp+4A0]
1 `3 c+ p" b# @" N/ R( A7 }0132D7FB . 53 push ebx 4 s0 r, D( S2 B" U# w
0132D7FC . 56 push esi
' F& P: ^' N3 o3 o0132D7FD . 8BB424 A40400>mov esi, dword ptr [esp+4A4] ) s& U2 |+ i9 h8 b6 x1 q; G
0132D804 . 57 push edi 7 R& P. i, u* L; n) T9 Y
0132D805 . 6A 30 push 30 ; /n = 30 (48.) 9 A) B1 H7 h: Y0 U
0132D807 . 8BF9 mov edi, ecx ; |
3 I" ~+ v9 \' c6 J% p; c, z) b0132D809 . 8B8C24 B40400>mov ecx, dword ptr [esp+4B4] ; | " X6 |* `" r* D: k V4 R
0132D810 . 8D5424 74 lea edx, dword ptr [esp+74] ; | 6 w, g7 s9 \4 T- i& E
0132D814 . 6A 00 push 0 ; |c = 00 ! I1 k0 I) ? }# Z& m0 z* o$ _! P, s' S$ s
0132D816 . 52 push edx ; |s % ?9 ]% F% @- F- m- e; A
0132D817 . 894424 30 mov dword ptr [esp+30], eax ; | + S. _' D: O0 K
0132D81B . 894C24 24 mov dword ptr [esp+24], ecx ; |
& u/ E. [9 d* e5 U! _8 D# Q! X" |0132D81F . C74424 78 340>mov dword ptr [esp+78], 34 ; | 5 ?0 Q$ A9 q0 p4 Y6 e
0132D827 . E8 284B0500 call <jmp.&MSVCR80.memset> ; \memset / T6 t, I' f, `
0132D82C . 83C4 0C add esp, 0C
) B( I! v, ]3 S0 L8 m0132D82F . 80BC24 CC0400>cmp byte ptr [esp+4CC], 0
: r | v3 I; g4 \0132D837 . 74 12 je short 0132D84B
' n7 v3 x- S- c: l. d* b S& s0132D839 . A1 F8F63A01 mov eax, dword ptr [13AF6F8]
1 v2 m+ `6 Q2 |) o; O0132D83E . C74424 0C F0D>mov dword ptr [esp+C], 013AD6F0 ; UNICODE " !""#%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\^_abcdefghijklmnopqrstuvwxyz" $ r* p. u5 w7 [' ?. E; y& a5 ?6 H
0132D846 . 8947 1C mov dword ptr [edi+1C], eax
( e2 s* ~0 @9 Q5 H" F0 f# _0132D849 . EB 32 jmp short 0132D87D
( e; H3 k% `1 `$ S0 T0132D84B > C747 1C 60010>mov dword ptr [edi+1C], 160
& L' j' G9 {. [1 d0132D852 . 8B4F 1C mov ecx, dword ptr [edi+1C] 5 e' D) M* s) G/ }6 _3 E! e
0132D855 . 33C0 xor eax, eax
5 N! ` ^) p% N4 L9 d/ v2 ~: k X0132D857 . EB 07 jmp short 0132D860
7 @" s5 ~, ^ H/ C9 Q( _- U0132D859 . 8DA424 000000>lea esp, dword ptr [esp]
0 A- N a! v4 o. T2 t! Y5 @6 I0132D860 > 8D50 20 lea edx, dword ptr [eax+20] 8 Z: `, L7 v; }- f* {
0132D863 . 66:899444 A00>mov word ptr [esp+eax*2+A0], dx 7 g9 H0 U, ~6 ~# v8 e
0132D86B . 83C0 01 add eax, 1 % \4 O: c& U+ f; S- F3 P
0132D86E . 3BC1 cmp eax, ecx
+ Z; h) h/ ]/ _0132D870 .^ 7C EE jl short 0132D860 - |7 i @/ o5 |! Z
0132D872 . 8D8424 A00000>lea eax, dword ptr [esp+A0] ! i" j1 P$ O' N* y* A
0132D879 . 894424 0C mov dword ptr [esp+C], eax % U9 u8 t/ K% I" @, d9 A
0132D87D > 8B47 0C mov eax, dword ptr [edi+C] 9 l* y( K a4 P, `/ D( P9 w
0132D880 . 85C0 test eax, eax 4 R, x2 B: m5 a) x* t, E
0132D882 . 8D5F 0C lea ebx, dword ptr [edi+C] % \6 }$ G" c% s3 E
0132D885 . 75 05 jnz short 0132D88C - l4 P4 W1 X/ m( \
0132D887 . B8 16263901 mov eax, 01392616
) P* ~8 F% j1 {6 S6 ]! C" z8 Y: ?0132D88C > 6A 00 push 0
4 m& y5 W2 C! U0132D88E . 6A 00 push 0
) f1 p* `/ J" ` k e0132D890 . 50 push eax & y% B8 C( Y) \
0132D891 . 6A 1F push 1F * z& a! m3 f7 c& N
0132D893 . 8BCE mov ecx, esi
) {3 O% f1 q7 m" l. F7 K# I4 z2 ^9 N0132D895 . E8 FA8E0300 call <jmp.&CK2.CKContext::CreateObjec> . N2 M4 W# H' V9 J# Z, f) G" [
0132D89A . 8B8C24 C80400>mov ecx, dword ptr [esp+4C8] " H3 f1 s8 M2 H* T
0132D8A1 . 6A 00 push 0 4 r f. i6 j* \+ _" m. @
0132D8A3 . 6A 20 push 20
! g9 T/ b H8 V$ J2 V0132D8A5 . 51 push ecx 9 r- m9 h/ Y+ n* i
0132D8A6 . 8B8C24 D00400>mov ecx, dword ptr [esp+4D0] 1 W. @0 H T- t1 i) b6 U
0132D8AD . 8947 24 mov dword ptr [edi+24], eax C2 a1 y; w/ ]
0132D8B0 . 8B10 mov edx, dword ptr [eax] ' v% a/ n5 s9 L/ Q. r( c- t
0132D8B2 . 8B52 54 mov edx, dword ptr [edx+54]
! s9 G7 Y k( u* N& R7 b0132D8B5 . 51 push ecx
; N" p$ z' H, I/ ]7 u$ W3 p4 t- y0132D8B6 . 8BC8 mov ecx, eax 0 k6 m) B. P+ @0 K- v3 H
0132D8B8 . FFD2 call edx 4 P L+ w5 n$ R5 D( G6 Y
0132D8BA . 85C0 test eax, eax
" z& D i6 ~( Y9 N; [0132D8BC . 75 07 jnz short 0132D8C5
% y1 V+ R4 m0 x( U1 X! k5 X0132D8BE . 32C0 xor al, al
0 F! {* W* B8 s: B/ Z) C, t: }/ x" v0132D8C0 . E9 B4030000 jmp 0132DC79 % r7 w6 ~- Y7 u
0132D8C5 > 8B4F 24 mov ecx, dword ptr [edi+24] : |' ?! @+ L7 i$ }
0132D8C8 . 8B01 mov eax, dword ptr [ecx] - P9 H, A9 g7 o/ g, e
0132D8CA . 8B80 88000000 mov eax, dword ptr [eax+88]
2 S8 z! B0 R0 X3 E6 s% s2 \+ m- e- {; s# L$ R0132D8D0 . 55 push ebp " B' [) W6 U% g( W
0132D8D1 . 8D5424 70 lea edx, dword ptr [esp+70]
4 G0 L! F! W; R0132D8D5 . 52 push edx
; j+ S# S: M+ z Y9 s/ N0 e0132D8D6 . FFD0 call eax
! \. [; M, D) m; p5 t# s) l& |0132D8D8 . 6A 00 push 0 ; /hDC = NULL
" e8 M4 r. n5 ?# C0132D8DA . FF15 34A43801 call dword ptr [<&GDI32.CreateCompati>; \CreateCompatibleDC
$ S, ^4 |4 @/ A0 u6 A9 l: E0132D8E0 . 8D4C24 70 lea ecx, dword ptr [esp+70]
1 V x* ^8 j6 Q: K7 D0132D8E4 . 51 push ecx ( A" T5 |' [9 `! v
0132D8E5 . 8BE8 mov ebp, eax
8 ]: _( [0 m# `% w7 ^' c0132D8E7 . FF15 24A83801 call dword ptr [<&VxMath.VxCreateBitm>; VxMath.VxCreateBitmap . F7 K: |5 U) d3 |! v, u" p V
0132D8ED . 8B35 70A43801 mov esi, dword ptr [<&GDI32.SelectOb>; GDI32.SelectObject # Z X# h8 t7 d
0132D8F3 . 83C4 04 add esp, 4
& G( _" A/ s( z& f( u Z1 U0132D8F6 . 50 push eax ; /hObject
! x7 i) J& F4 ~3 Z% g, ~5 A0132D8F7 . 55 push ebp ; |hDC
* F) v4 ^ G M& c0132D8F8 . 894424 2C mov dword ptr [esp+2C], eax ; |
/ o3 Q1 Q/ ?# P: u( H0132D8FC . FFD6 call esi ; \SelectObject 2 D+ c* r( H/ A$ i/ \( X
0132D8FE . 8B5424 28 mov edx, dword ptr [esp+28] 2 Z. c& S2 b. o% _: J
0132D902 . 52 push edx % J5 Y0 a& C7 Y3 n
0132D903 . 8BCB mov ecx, ebx
) X0 m6 }8 ~% T# _# r0132D905 . 894424 40 mov dword ptr [esp+40], eax % }% y3 B& E' Y* {* C! o
0132D909 . FF15 BCA83801 call dword ptr [<&VxMath.XString::ope>; VxMath.XString::operator=
# V6 e* a% F: S& u, O0132D90F . 8B9C24 B80400>mov ebx, dword ptr [esp+4B8] 6 D, n2 Z1 p8 K2 Y. P d% N
0132D916 . 6A 48 push 48 ; /Divisor = 48 (72.) - S; i% ~* h! Q$ \
0132D918 . 6A 5A push 5A ; |/Index = LOGPIXELSY
9 P1 A9 k) R6 O( Y3 l! R! S" X0132D91A . 55 push ebp ; ||hDC
, v1 D9 I2 Q( c9 E* c0132D91B . 895F 14 mov dword ptr [edi+14], ebx ; ||
& c% S$ v( M7 a8 Y0132D91E . FF15 64A43801 call dword ptr [<&GDI32.GetDeviceCaps>; |\GetDeviceCaps + F( ^2 F7 O, U+ k7 E6 Q
0132D924 . 50 push eax ; |Multiplier
1 S: s( Y! L3 x$ p: u# F, Y! O0132D925 . 53 push ebx ; |Multiplicand 0 z/ [; j2 U' l6 S2 O
0132D926 . FF15 DCA43801 call dword ptr [<&KERNEL32.MulDiv>] ; \MulDiv 2 G }/ X; }& z! o1 R; Q+ u
0132D92C . 8B4C24 1C mov ecx, dword ptr [esp+1C] ) S& ^, ]; N9 h- u7 l- S) X- a; A: t
0132D930 . 8B9424 C00400>mov edx, dword ptr [esp+4C0]
6 u; y) x0 K% n0132D937 . 51 push ecx ; /FaceName " v4 e5 a1 c+ p1 V
0132D938 . 8B8C24 C80400>mov ecx, dword ptr [esp+4C8] ; |
5 k& G3 f J* p2 y1 s( b" Z$ w0132D93F . 6A 00 push 0 ; |PitchAndFamily = DEFAULT_PITCH|FF_DONTCARE . C5 u3 i0 ^* C. v4 E
0132D941 . 52 push edx ; |Quality : f* p% O A5 r- {+ F
0132D942 . 6A 00 push 0 ; |ClipPrecision = CLIP_DEFAULT_PRECIS
7 P4 f5 K$ }6 M# d3 Y3 B$ o, J0132D944 . 6A 07 push 7 ; |OutputPrecision = OUT_TT_ONLY_PRECIS
( w3 p0 Y H1 ~# e6 g x6 s4 K0132D946 . 6A 01 push 1 ; |CharSet = DEFAULT_CHARSET
) F; A# ]) H# ?8 K! D# K- Z! n0132D948 . 6A 00 push 0 ; |StrikeOut = FALSE
( L+ z# D2 W, k( Y. @0132D94A . 8BD1 mov edx, ecx ; |
6 C* S4 M7 [/ s$ [0132D94C . D1EA shr edx, 1 ; |
" C/ J3 U0 z. a1 d) J5 S2 X0132D94E . 83E2 01 and edx, 1 ; |
5 c$ `, u( g* K) o5 @0132D951 . 52 push edx ; |Underline
4 m3 n; U. R% C; e: u6 j- r0132D952 . 83E1 01 and ecx, 1 ; | 8 t. d0 k( n3 T; A
0132D955 . 51 push ecx ; |Italic
) J; S0 h) L9 d+ V0132D956 . 8B8C24 E00400>mov ecx, dword ptr [esp+4E0] ; |
* a7 }) r+ k4 b9 R0132D95D . 51 push ecx ; |Weight
, p p4 c6 V! q5 p0132D95E . 6A 00 push 0 ; |Orientation = 0
* [. M! R2 j# e7 b$ I" p0132D960 . 6A 00 push 0 ; |Escapement = 0
( h$ z; O U$ N/ B0132D962 . F7D8 neg eax ; | 5 W6 ?% W0 w+ K( S% s
0132D964 . 6A 00 push 0 ; |Width = 0
2 W; _+ A0 J+ g! ?+ U, o7 A0132D966 . 50 push eax ; |Height , u3 G5 w2 ]! j% C: [/ ]& e) U
0132D967 . FF15 60A43801 call dword ptr [<&GDI32.CreateFontA>] ; \CreateFontA ( c! X; Z$ \; f* b, J# X Y# X4 P
0132D96D . 50 push eax , l$ z) ^9 d" s4 w: L$ B
0132D96E . 55 push ebp 7 m- n) w7 G+ t5 C3 }
0132D96F . 894424 38 mov dword ptr [esp+38], eax
7 Q; X# C1 u6 f0 s0132D973 . FFD6 call esi ' M3 W8 d+ }) _. l0 H
0132D975 . 8D5424 58 lea edx, dword ptr [esp+58] # U* E, `/ q/ m7 m- g/ ^5 z
0132D979 . 52 push edx ; /pSize
0 M' |3 O/ b' }- M5 ^' m0132D97A . 6A 01 push 1 ; |TextLen = 1 . c! K/ R9 A3 o: \
0132D97C . 68 4CED3801 push 0138ED4C ; |Text = "A" 5 R! v$ F1 g8 F1 F
0132D981 . 55 push ebp ; |hDC ) T1 p/ l9 G4 `: m- g' i. p
0132D982 . 894424 44 mov dword ptr [esp+44], eax ; |
( }6 {* M: ?' z& w+ o0 s0132D986 . FF15 5CA43801 call dword ptr [<&GDI32.GetTextExtent>; \GetTextExtentPointA 0 V( t! k# e }7 ]8 c3 r( g' C6 C
0132D98C . 8B4424 5C mov eax, dword ptr [esp+5C] - |. y0 m2 T' Q, m# f! f
0132D990 . 8B77 1C mov esi, dword ptr [edi+1C] / m: i/ l7 h+ t$ q. A
0132D993 . 8947 18 mov dword ptr [edi+18], eax
2 [6 d' y! k: A0132D996 . 33C9 xor ecx, ecx ; }0 x- U1 ], j2 W. v
0132D998 . 8BC6 mov eax, esi 0 G1 c9 g" [ r
0132D99A . BA 20000000 mov edx, 20 D4 y* e# j2 F" m
0132D99F . F7E2 mul edx
# T- C0 A6 a [0132D9A1 . 0F90C1 seto cl # V1 ~4 j, \) I- o9 R! u( f
0132D9A4 . F7D9 neg ecx _6 @) \7 ^7 R2 O. [
0132D9A6 . 0BC8 or ecx, eax 3 C" y5 d+ q/ B7 I) k+ }1 Q+ c; K
0132D9A8 . 51 push ecx # ?1 Y$ r: K: M; D4 j5 @; e4 v! p
0132D9A9 . E8 964A0500 call <jmp.&MSVCR80.operator new> 2 o6 Y3 W1 l( `4 l: U! F
0132D9AE . 83C4 04 add esp, 4 0 C6 G r0 j9 w% u4 R. h
0132D9B1 . 85C0 test eax, eax
0 b/ |: A4 V' O' U; t/ t0132D9B3 . 74 28 je short 0132D9DD
. `& a' x" g1 r2 x" x# d, g3 m0132D9B5 . 83C6 FF add esi, -1 0 z- p' T6 C' ]1 M: [" [' \) Q
0132D9B8 . 78 25 js short 0132D9DF & g% K5 ?( y0 A" q, J: ~/ k
0132D9BA . D9EE fldz
?/ r' t; B$ n; X/ Z; m( d5 o4 h0132D9BC . 8D48 0C lea ecx, dword ptr [eax+C] & S- D" z! s) t' G v% D
0132D9BF > D951 FC fst dword ptr [ecx-4] $ G& c/ }) D, n6 q" P, N
0132D9C2 . 83C1 20 add ecx, 20 ( v' U1 b- G, D; ]" u
0132D9C5 . 83EE 01 sub esi, 1
! @' Z. K; Y. A6 r0132D9C8 . D951 E0 fst dword ptr [ecx-20] / o5 q c1 ?9 q( p1 |+ r
0132D9CB . D951 D4 fst dword ptr [ecx-2C] 3 M& u4 g) Y. E" ^& C" n8 z L6 a
0132D9CE . D951 D8 fst dword ptr [ecx-28] 3 z$ l5 b( Y4 ^
0132D9D1 . D951 DC fst dword ptr [ecx-24] " X W6 r1 ?0 J8 U1 o5 n
0132D9D4 . D951 E0 fst dword ptr [ecx-20] 5 Q% ^0 d: n- q* g# F. T
0132D9D7 .^ 79 E6 jns short 0132D9BF 1 `) ]6 A2 W- F1 h; P2 l6 }& ]7 R) S
0132D9D9 . DDD8 fstp st ' d( G, _2 ?. U* X- \7 M& Z* s
0132D9DB . EB 02 jmp short 0132D9DF ! X2 ~) D! A0 G; j
0132D9DD > 33C0 xor eax, eax : M( e. u# L6 q/ x7 n$ @
0132D9DF > 8B8C24 C80400>mov ecx, dword ptr [esp+4C8] & k7 O5 g+ O; ?) G9 D
0132D9E6 . 8947 20 mov dword ptr [edi+20], eax
( o- y+ \. @+ L9 c+ S" ]" B0132D9E9 . 8B8424 CC0400>mov eax, dword ptr [esp+4CC]
/ n8 A9 R* t. G- a. L- J# _0132D9F0 . 50 push eax ; /Bottom ' y# L* ]- L% c6 o. F
0132D9F1 . 51 push ecx ; |Right * i! ^, B, k' \8 k" ]' w
0132D9F2 . 6A 00 push 0 ; |Top = 0
; y+ Z% |9 y: N7 C' Q0132D9F4 . 6A 00 push 0 ; |Left = 0 0 J- W' N1 W) E" p1 E
0132D9F6 . 8D5424 70 lea edx, dword ptr [esp+70] ; |
' X% ~! B; M: R$ j3 Z0 {6 q: v+ S0132D9FA . 52 push edx ; |pRect
+ W! b5 R& [2 ?( `! n5 H. W0132D9FB . FF15 64A73801 call dword ptr [<&USER32.SetRect>] ; \SetRect 0 |) x0 g! @5 o6 o
0132DA01 . 6A 04 push 4 ; /ObjType = BLACK_BRUSH
P7 V8 k9 \: z( `8 Q6 k0132DA03 . FF15 58A43801 call dword ptr [<&GDI32.GetStockObjec>; \GetStockObject ( ~' H$ q7 V3 k; f q
0132DA09 . 50 push eax ; /hBrush
) v2 j6 H1 k! D( X. _& ?% b0 }5 n0132DA0A . 8D4424 64 lea eax, dword ptr [esp+64] ; |
6 o6 N3 y4 B: M0132DA0E . 50 push eax ; |pRect
2 |+ w% s/ _3 C4 |8 F0 L0132DA0F . 55 push ebp ; |hDC 8 [4 E* Y! p6 r/ `* u, }' T ~
0132DA10 . FF15 68A73801 call dword ptr [<&USER32.FillRect>] ; \FillRect
- y( F$ O9 u) s- ?* M& W0132DA16 . 6A 00 push 0 ; /Color = <BLACK> 5 o; |6 g5 n% v4 O# X% L. h
0132DA18 . 55 push ebp ; |hDC 2 t2 W+ o; E" r- g" D( \
0132DA19 . FF15 54A43801 call dword ptr [<&GDI32.SetBkColor>] ; \SetBkColor
2 C9 s1 e3 q, O1 Z( h+ h0132DA1F . 68 FFFFFF00 push 0FFFFFF ; /Color = <WHITE> # _. `' A* D3 |
0132DA24 . 55 push ebp ; |hDC " h9 u M, G" [/ l& @. {. O
0132DA25 . FF15 50A43801 call dword ptr [<&GDI32.SetTextColor>>; \SetTextColor
9 m, d; U6 C- y8 d0 H0132DA2B . 6A 01 push 1 ; /BkMode = TRANSPARENT # `% x: y1 g! W: D. l" z
0132DA2D . 55 push ebp ; |hDC 7 z7 M. |( g( T0 q O
0132DA2E . FF15 4CA43801 call dword ptr [<&GDI32.SetBkMode>] ; \SetBkMode
. t$ d, f( f C: }0132DA34 . 33F6 xor esi, esi + M0 h3 S2 u/ Z* @1 I8 i
0132DA36 . 3977 1C cmp dword ptr [edi+1C], esi
+ {0 n, t; o/ W: Q5 Z4 @% R z" D+ t1 U0132DA39 . BB 01000000 mov ebx, 1 ' _$ L8 y+ b1 Z1 r
0132DA3E . 895C24 18 mov dword ptr [esp+18], ebx
6 N$ q3 K" q" H( Q0132DA42 . 897424 14 mov dword ptr [esp+14], esi ' y8 x* r& C* y5 Q- r
0132DA46 . 897424 1C mov dword ptr [esp+1C], esi
. v/ z3 \7 q# T5 w0 Q0132DA4A . 0F8E 20010000 jle 0132DB70 " U! I: _" ? w1 l: L7 V6 w7 C! f
0132DA50 . DB8424 C80400>fild dword ptr [esp+4C8] 1 r1 F& B% W7 i1 G* W' P- F' Z
0132DA57 . 8B4424 10 mov eax, dword ptr [esp+10] 8 p& E% ^2 t: S! T. {- {
0132DA5B . 897424 20 mov dword ptr [esp+20], esi 8 ?0 h7 k# ~; t) f0 k
0132DA5F . 894424 10 mov dword ptr [esp+10], eax T% X+ ]6 R7 K: v6 _0 A2 G9 N; P
0132DA63 . D95C24 38 fstp dword ptr [esp+38]
- z% c& H% }, i; p& x( E8 K2 T' y0132DA67 . DB8424 CC0400>fild dword ptr [esp+4CC]
- s% ?1 R" K7 ~9 E$ C0132DA6E . D95C24 2C fstp dword ptr [esp+2C] . P( P/ {! E. F1 m8 n# v* ^
0132DA72 . EB 04 jmp short 0132DA78 & }; C7 O& k u9 v& Q
0132DA74 > 8B4424 10 mov eax, dword ptr [esp+10] ; l- E4 N; T% ~$ N" Y# ]
0132DA78 > 8B77 20 mov esi, dword ptr [edi+20]
/ Q: O3 A- ]' ~+ C) B* ^0132DA7B . 66:8B08 mov cx, word ptr [eax]
- z: r$ w% I" \; \0132DA7E . 037424 20 add esi, dword ptr [esp+20] , p8 G) Q. x0 H j2 y& k! [! \0 d
0132DA82 . 66:894E 10 mov word ptr [esi+10], cx 3 b: M) ^5 U8 K! \( |
0132DA86 . 0FB700 movzx eax, word ptr [eax]
0 N; t; ]5 z7 P! R0132DA89 . 8D4E 14 lea ecx, dword ptr [esi+14] 2 x$ u: P5 M, z$ m: U2 b! T
0132DA8C . 51 push ecx ; /pABC * P$ ~1 q. |/ f; {9 i' i
0132DA8D . 50 push eax ; |LastChar : K2 _0 u' ]7 J) u; K, P; w; L
0132DA8E . 50 push eax ; |FirstChar 1 T7 G; H$ t: M2 [% `
0132DA8F . 55 push ebp ; |hDC
/ _- j: O) E0 M- j0132DA90 . FF15 48A43801 call dword ptr [<&GDI32.GetCharABCWid>; \GetCharABCWidthsW
" Y5 f4 L2 }& l+ ?+ b& j0132DA96 . 8B5424 10 mov edx, dword ptr [esp+10] " v- N$ o+ h V
0132DA9A . 66:833A 20 cmp word ptr [edx], 20
& D' x: P( [ Y- J0132DA9E . 73 10 jnb short 0132DAB0 [8 P( ]5 _3 i3 ~) K. x
0132DAA0 . C746 14 00000>mov dword ptr [esi+14], 0 $ V7 u: ~9 Q* p' y$ l7 u' n
0132DAA7 . C746 1C 00000>mov dword ptr [esi+1C], 0
( h9 R' _# F m- _) _+ q4 Z, a0132DAAE . EB 0C jmp short 0132DABC
- v8 l9 t* a" {( R7 h3 v( l0132DAB0 > 8346 14 FF add dword ptr [esi+14], -1
" p3 y; }# Z" P) r, T0132DAB4 . 8346 18 02 add dword ptr [esi+18], 2 - P* t+ L) G$ s: L( A9 x8 C- I+ |
0132DAB8 . 8346 1C FF add dword ptr [esi+1C], -1
9 E) g2 K! p8 t7 N' ]1 a) s$ {0132DABC > 8B4E 18 mov ecx, dword ptr [esi+18]
, U' ?- u; V8 F) X& C4 d) O1 u! \2 T0132DABF . 8D4419 01 lea eax, dword ptr [ecx+ebx+1] 7 W1 R- }( n) m+ b8 w5 {7 L2 m
0132DAC3 . 3B8424 C80400>cmp eax, dword ptr [esp+4C8] # N5 N& d5 ?2 g' C& W$ \
0132DACA . 8B4424 14 mov eax, dword ptr [esp+14] 5 y& P7 p& S9 Q& O) Q% d0 |# }; |( v
0132DACE . 72 14 jb short 0132DAE4 - y$ A% t4 k5 \) ?) e0 k
0132DAD0 . 8B57 18 mov edx, dword ptr [edi+18] ; `9 ~% b9 S( y) L! p9 f, C3 n
0132DAD3 . BB 01000000 mov ebx, 1 9 `, ~$ I- c5 Q" u# c
0132DAD8 . 8D4410 01 lea eax, dword ptr [eax+edx+1] $ Z x, m/ ]$ n5 k3 K& X
0132DADC . 895C24 18 mov dword ptr [esp+18], ebx 4 u) }, [8 D# b5 ~4 }. M9 M
0132DAE0 . 894424 14 mov dword ptr [esp+14], eax % k( a! i8 e# A5 [- w
0132DAE4 > DB4424 18 fild dword ptr [esp+18]
a3 q# x0 f4 ^& ^- u- e z" n0 X0132DAE8 . 03CB add ecx, ebx % e( z: Q1 b3 V: i9 X
0132DAEA . 85C9 test ecx, ecx
# ]% }" k- j4 q$ C$ I/ j) Q0132DAEC . D94424 38 fld dword ptr [esp+38] + {" |8 O" I9 Q# y$ m, s3 `, y
0132DAF0 . D9C0 fld st 4 G$ {7 n: J+ ]2 l$ s
0132DAF2 . 894C24 18 mov dword ptr [esp+18], ecx / Q2 K1 j/ M* u% z9 c8 R
0132DAF6 . DEFA fdivp st(2), st
, d! \% T) E. @, `: Q" F6 Q, ^0132DAF8 . D9C9 fxch st(1) : S+ O4 o' u; Y, ]( |$ ^0 R
0132DAFA . D91E fstp dword ptr [esi] 3 L9 N) Y M5 `& L: _$ D
0132DAFC . DB4424 14 fild dword ptr [esp+14] 0 Q8 [, V# K/ t# R9 | |
0132DB00 . D94424 2C fld dword ptr [esp+2C] * }" f" c5 v: k$ [. b" P
0132DB04 . D9C0 fld st
1 X! w. ?& f4 j* w& l0 C# ~0132DB06 . DEFA fdivp st(2), st 0 ]$ C! U5 Y! u% c' \6 t
0132DB08 . D9C9 fxch st(1) + P; {/ {/ w) T' g/ G! x
0132DB0A . D95E 04 fstp dword ptr [esi+4]
( X" ?% X) [1 h0132DB0D . DB4424 18 fild dword ptr [esp+18] 2 q' Z3 T2 `( ?6 K6 p" Y R
0132DB11 . 7D 06 jge short 0132DB19 ; r# J8 @: P9 s4 f7 @ ?9 U9 ]
0132DB13 . D805 50B03801 fadd dword ptr [138B050] * X; a4 o9 E1 x! y; f1 r9 J, W, G
0132DB19 > DEF2 fdivrp st(2), st , W% W9 r$ x: O* q
0132DB1B . 8B5424 10 mov edx, dword ptr [esp+10] L/ o) S1 ~. q8 ~
0132DB1F . 6A 01 push 1 ; /StringSize = 1
* ^7 v: W5 b2 q0132DB21 . 52 push edx ; |String $ Z: m/ n& {# w' s! U" A! I- K5 z
0132DB22 . 50 push eax ; |YStart . O1 U$ Z% k! p' F# w$ p
0132DB23 . D9C9 fxch st(1) ; |
3 ?1 r( ]" l$ w1 Q0132DB25 . D95E 08 fstp dword ptr [esi+8] ; | 1 M5 V- N6 Q r; m
0132DB28 . 8B4F 18 mov ecx, dword ptr [edi+18] ; |
; d+ I* E: v9 t1 h0132DB2B . 03C8 add ecx, eax ; | 9 Q% K$ U0 `3 G& t6 _: C
0132DB2D . 894C24 24 mov dword ptr [esp+24], ecx ; |
3 D. Y/ R5 I/ Z* I2 ~4 ^2 \" r F$ ]0132DB31 . DA7C24 24 fidivr dword ptr [esp+24] ; | 9 r) V# q, l4 W
0132DB35 . 8BC3 mov eax, ebx ; |
$ ?- n, `1 T) S) s: d0132DB37 . 2B46 14 sub eax, dword ptr [esi+14] ; |
, J5 ~8 G5 z' A3 w* B0132DB3A . 50 push eax ; |XStart . e2 ^" C7 `1 j7 ^2 ]! P
0132DB3B . 55 push ebp ; |hDC ! E- j, M3 J6 q& @: E
0132DB3C . D95E 0C fstp dword ptr [esi+C] ; | 5 l" @$ Q' U2 c0 A5 W$ g" P7 P
0132DB3F . FF15 44A43801 call dword ptr [<&GDI32.TextOutW>] ; \TextOutW - v1 C% g" \# `0 m4 u5 W' K* ]
0132DB45 . 8B4424 1C mov eax, dword ptr [esp+1C] % S: B8 i2 b: J) K1 i
0132DB49 . 8B4E 18 mov ecx, dword ptr [esi+18]
* d2 s, ?1 Y8 g0132DB4C . 834424 20 20 add dword ptr [esp+20], 20 + g. a9 N# B& F/ V, \9 N' c
0132DB51 . 834424 10 02 add dword ptr [esp+10], 2 % B& u; H' r- b% H1 }5 c
0132DB56 . 83C0 01 add eax, 1
. F9 V$ T% k# I& v, U9 R* n0132DB59 . 3B47 1C cmp eax, dword ptr [edi+1C]
/ w. h) n9 P- r6 z+ S: n) Y: v0132DB5C . 8D5C0B 01 lea ebx, dword ptr [ebx+ecx+1] . \2 r( j' R6 a9 V$ |9 ~+ n
0132DB60 . 895C24 18 mov dword ptr [esp+18], ebx
' V- V9 Q0 x F' U+ T% m; f1 Z) Q# a0132DB64 . 894424 1C mov dword ptr [esp+1C], eax : m5 L0 S2 y w$ j+ R% ~
0132DB68 .^ 0F8C 06FFFFFF jl 0132DA74
* ^% S9 h; E! ~0132DB6E . 33F6 xor esi, esi ' N- w7 \6 q/ f4 W0 P3 @/ w
0132DB70 > 8B4F 24 mov ecx, dword ptr [edi+24] : a* G5 }+ Q/ k% S3 D( _
0132DB73 . 6A FF push -1
) O5 ^2 N/ ~7 T4 L0132DB75 . 83C1 38 add ecx, 38
6 l, u: u1 l! D. e: y; z% A0132DB78 . E8 278E0300 call <jmp.&CK2.CKBitmapData::LockSurf> * j7 G$ ~ c3 |7 m5 n7 F! c; y
0132DB7D . 8BD8 mov ebx, eax 6 q' U- z: C: T, R4 |
0132DB7F . 3BDE cmp ebx, esi
3 l8 J( a4 a! d8 ~3 ?4 G$ A* h# d0132DB81 . 74 74 je short 0132DBF7
* q% \: ^& m; b1 c9 N# y# A0132DB83 . 8B4424 24 mov eax, dword ptr [esp+24] $ L8 S6 Y' F* ~; n% R
0132DB87 . 8D5424 40 lea edx, dword ptr [esp+40]
5 i4 v6 K! ~" t! Z/ Y7 x) C5 M0 u0132DB8B . 52 push edx ; /Buffer # z' `( i5 L8 \
0132DB8C . 6A 18 push 18 ; |BufSize = 18 (24.) 1 M# a8 W2 A t: p6 o
0132DB8E . 50 push eax ; |hObject |( d- A( |- `* i" h; V+ q
0132DB8F . FF15 40A43801 call dword ptr [<&GDI32.GetObjectA>] ; \GetObjectA
9 S4 O2 S; F! H2 n. J5 {7 q5 F8 j0132DB95 . 8B4C24 48 mov ecx, dword ptr [esp+48]
/ `/ E! T. J4 a5 g. @0132DB99 . 8D71 FF lea esi, dword ptr [ecx-1]
/ I: b# E8 {" d" Y7 v1 N0132DB9C . 0FAF7424 4C imul esi, dword ptr [esp+4C]
+ D3 @: q' L) `% p0132DBA1 . 037424 54 add esi, dword ptr [esp+54]
/ E! V6 p4 k* n4 G5 z* o0132DBA5 . 85C9 test ecx, ecx 7 d9 i8 b- p% f% d1 a
0132DBA7 . C74424 14 000>mov dword ptr [esp+14], 0
$ N; z+ R; c* K" I4 T& E0132DBAF . 7E 46 jle short 0132DBF7
8 c" u' b( B/ |0132DBB1 . 8B5424 44 mov edx, dword ptr [esp+44] # t- L: C( \( i- Z& R
0132DBB5 > 33C0 xor eax, eax
9 x8 r, [- F, ?4 F3 ?! W. B4 V: M4 Z0132DBB7 . 85D2 test edx, edx
9 F8 _* R7 m( f5 C0132DBB9 . 7E 26 jle short 0132DBE1 ; [+ v6 w8 |- {7 {( R
0132DBBB . 8BCE mov ecx, esi 4 q7 [4 v. e" z @2 W# S! x: `
0132DBBD . 8D49 00 lea ecx, dword ptr [ecx] ( {# p" ?$ T! e1 }
0132DBC0 > 0FB611 movzx edx, byte ptr [ecx] - ~& G* ?7 R) d' H" x2 Y- q
0132DBC3 . C1E2 18 shl edx, 18 - F( w2 L$ Z( I4 F# _! z' X
0132DBC6 . 81CA FFFFFF00 or edx, 0FFFFFF
3 V* Z P- {* T& k/ I* \0132DBCC . 891483 mov dword ptr [ebx+eax*4], edx
4 ]. H% L0 p( b1 `6 Q# U0132DBCF . 8B5424 44 mov edx, dword ptr [esp+44] 1 u3 O% u3 T0 D7 r$ G
0132DBD3 . 83C0 01 add eax, 1
* I D$ I2 `, W9 |* {0132DBD6 . 83C1 03 add ecx, 3
$ \! q* @9 K: e; }& o6 T0132DBD9 . 3BC2 cmp eax, edx
$ o- K: x$ S$ K' |/ E) @0132DBDB .^ 7C E3 jl short 0132DBC0
( K) B% @0 U T* O9 r0132DBDD . 8B4C24 48 mov ecx, dword ptr [esp+48] 7 k! g, E# [, M5 m1 g; `) \
0132DBE1 > 8B4424 14 mov eax, dword ptr [esp+14] W2 ]0 d% ]2 T) |8 b
0132DBE5 . 2B7424 4C sub esi, dword ptr [esp+4C]
1 z' B+ N1 G' w4 |* @2 c0132DBE9 . 83C0 01 add eax, 1
/ d9 s# Q% N/ B% N0132DBEC . 3BC1 cmp eax, ecx
$ j$ K% n7 x% e: K: G. h4 T0132DBEE . 8D1C93 lea ebx, dword ptr [ebx+edx*4]
5 l) y* l- }0 Z8 {6 q7 O" d0132DBF1 . 894424 14 mov dword ptr [esp+14], eax
+ ~* F7 T2 d S0132DBF5 .^ 7C BE jl short 0132DBB5 5 E! e8 X$ z8 ^! T6 f
0132DBF7 > 8B4F 24 mov ecx, dword ptr [edi+24]
! Z% Q* [ @2 l2 n4 ^0132DBFA . 6A FF push -1
8 V3 W' U! T1 ~6 i0 R) a3 e0132DBFC . 83C1 38 add ecx, 38
4 a7 F3 F. }. @0132DBFF . E8 9A8D0300 call <jmp.&CK2.CKBitmapData::ReleaseS>
. V: ]: T5 Q( |2 R0132DC04 . 8B4424 34 mov eax, dword ptr [esp+34]
* \: y! F) V2 Q) Z- ?0132DC08 . 8B35 70A43801 mov esi, dword ptr [<&GDI32.SelectOb>; GDI32.SelectObject # b% l2 z( c! ~
0132DC0E . 50 push eax ; /hObject
! u1 N7 `- q9 b7 e+ R* h0132DC0F . 55 push ebp ; |hDC 7 W9 f A* _( ]0 ?8 `
0132DC10 . FFD6 call esi ; \SelectObject
6 ]/ r& l' D: r! ]! J. B- {0132DC12 . 8B4C24 30 mov ecx, dword ptr [esp+30] ( b& R& W1 q/ E! f7 }, f
0132DC16 . 51 push ecx
: g# W5 @$ r# @' T, O6 v0132DC17 . FF15 28A83801 call dword ptr [<&VxMath.VxDeleteFont>; VxMath.VxDeleteFont
# v0 I. b+ G% O8 U4 |9 O0132DC1D . 8B5424 40 mov edx, dword ptr [esp+40] 1 l# B8 b) D& F* Y
0132DC21 . 83C4 04 add esp, 4 & ?1 b, A/ y8 n) y* S: ]- L
0132DC24 . 52 push edx
$ P7 q. h2 Y" f0132DC25 . 55 push ebp
4 u& F0 Z7 N, }* z& w7 I0132DC26 . FFD6 call esi " {9 v" N7 F$ d$ O3 u; s& P" {
0132DC28 . 8B4424 24 mov eax, dword ptr [esp+24] / b$ A; h: Z: t! z( H6 ^* @3 a
0132DC2C . 50 push eax
: H! G P" T4 c0132DC2D . FF15 2CA83801 call dword ptr [<&VxMath.VxDeleteBitm>; VxMath.VxDeleteFont ) L- N$ a1 Q2 c3 P) z
0132DC33 . 83C4 04 add esp, 4 & X4 v5 ^5 E+ K" A% H
0132DC36 . 55 push ebp ; /hDC
! u+ a1 W8 w J* ?, E0132DC37 . FF15 3CA43801 call dword ptr [<&GDI32.DeleteDC>] ; \DeleteDC 9 N6 ?4 N# H/ C+ H, d. [6 G
0132DC3D . 8B4C24 28 mov ecx, dword ptr [esp+28] : m* ~; N* {& t* {$ O- T
0132DC41 . 6A 00 push 0
; C5 c& R: O8 v5 X: N: P0132DC43 . 51 push ecx
9 }) x E! a, X0132DC44 . 8B4F 24 mov ecx, dword ptr [edi+24] 1 C7 E7 f S6 i
0132DC47 . E8 4C8A0300 call <jmp.&CK2.CKObject::SetName> ! o- w% |$ S3 K
0132DC4C . 8B4F 24 mov ecx, dword ptr [edi+24]
" t8 X; D Y6 \# Y2 A- N0132DC4F . 6A 01 push 1
: U. {5 M- Q! k/ o0132DC51 . 83C1 38 add ecx, 38
# z3 O- }! P) _9 q- T' x& Z4 s1 u2 \0132DC54 . E8 7B8D0300 call <jmp.&CK2.CKBitmapData::SetDesir>
2 m+ J0 k; ?' y) ~2 m b0132DC59 . 8B4F 24 mov ecx, dword ptr [edi+24]
4 q/ I+ X( y2 ^4 r, _) n) Z. J( Q: |0132DC5C . 8B11 mov edx, dword ptr [ecx] " C' n+ Z9 ? j5 N' i4 b' d9 z
0132DC5E . 8B42 78 mov eax, dword ptr [edx+78]
" Y+ C, O) h5 y: A3 l0132DC61 . 6A 00 push 0 " S( y {! Z8 [8 @; q
0132DC63 . FFD0 call eax . \2 Z& G; I9 U
0132DC65 . 8B4F 18 mov ecx, dword ptr [edi+18]
. [& v$ x) O+ d6 c- S0132DC68 . 034C24 14 add ecx, dword ptr [esp+14] ' v& t' ? s# v) i& R: D
0132DC6C . 33C0 xor eax, eax 9 g2 n# @2 U, ^) O0 k0 G4 `
0132DC6E . 3B8C24 CC0400>cmp ecx, dword ptr [esp+4CC] 4 L" M/ t0 u" ~) @ `* r8 [
0132DC75 . 5D pop ebp ( d: {: F# N2 l' _) J" M( D: E5 r( ^
0132DC76 . 0F9CC0 setl al ) `& i0 X4 N7 e+ _" k C5 r" y, M6 x
0132DC79 > 8B8C24 A00400>mov ecx, dword ptr [esp+4A0] : c2 P2 l3 R1 i! h6 f5 o8 h
0132DC80 . 5F pop edi : o8 ~4 j& g; [8 {/ D
0132DC81 . 5E pop esi
+ m: C7 S! q3 ^: |* Y( [/ r0132DC82 . 5B pop ebx " ~( F6 ^, n3 P. b8 H
0132DC83 . 33CC xor ecx, esp + Q3 q% c* [. o7 _% n: [/ {
0132DC85 . E8 E2460500 call 0138236C ( }7 k! u% N# D/ l/ l! }
0132DC8A . 81C4 98040000 add esp, 498 * M; {) ?$ L" R E+ f+ T
0132DC90 . C2 2800 retn 28 |