发现了一个和字库有关的函数,研究中。
! N" _3 w/ m' N8 p4 N* y7 T) [* {+ \5 r& w* S
0132D7E0 $ 81EC 98040000 sub esp, 498
" }8 a7 v$ L" `8 }' ^" Q5 R0132D7E6 . A1 7CD13A01 mov eax, dword ptr [13AD17C] 2 y" X$ I m# G! V: J9 a
0132D7EB . 33C4 xor eax, esp 1 h/ J( z( I# W3 b
0132D7ED . 898424 940400>mov dword ptr [esp+494], eax
% {" R: A8 F* n" v3 P; C5 |. [0132D7F4 . 8B8424 A00400>mov eax, dword ptr [esp+4A0] 2 x+ m# W( T9 z5 ]3 [
0132D7FB . 53 push ebx
3 L- t7 c' @6 v& v, r7 J% l% `8 h0132D7FC . 56 push esi
3 w+ D( U R+ a; C* e, g0132D7FD . 8BB424 A40400>mov esi, dword ptr [esp+4A4] - f$ x( N8 p( T7 t4 F1 ]$ U- w
0132D804 . 57 push edi 4 F$ j9 V9 k4 M2 U; c" _
0132D805 . 6A 30 push 30 ; /n = 30 (48.) G2 ]5 s0 p! X3 r
0132D807 . 8BF9 mov edi, ecx ; | 2 ~* `' m) O3 _7 m: u
0132D809 . 8B8C24 B40400>mov ecx, dword ptr [esp+4B4] ; |
4 r: [- L# _- K4 I7 V$ x0 n7 S" U0132D810 . 8D5424 74 lea edx, dword ptr [esp+74] ; |
5 S' j9 T& L6 C6 u8 ?0132D814 . 6A 00 push 0 ; |c = 00
4 ]/ K) T5 J& ]% G; @0132D816 . 52 push edx ; |s
8 @, @& A) \5 A' y; \2 P0132D817 . 894424 30 mov dword ptr [esp+30], eax ; | ; M8 i, ^5 h, v4 z( e5 ] t/ O
0132D81B . 894C24 24 mov dword ptr [esp+24], ecx ; |
. x0 r/ U+ q7 i) h9 u0132D81F . C74424 78 340>mov dword ptr [esp+78], 34 ; | # D* L6 y$ H2 I3 J
0132D827 . E8 284B0500 call <jmp.&MSVCR80.memset> ; \memset
# n# ^% |: ?: F2 \- n* T0132D82C . 83C4 0C add esp, 0C $ w" k. F# D' M- d! `
0132D82F . 80BC24 CC0400>cmp byte ptr [esp+4CC], 0 9 a$ f( @( j: i
0132D837 . 74 12 je short 0132D84B
1 y' v/ e0 c; [, L9 \0 V0132D839 . A1 F8F63A01 mov eax, dword ptr [13AF6F8] 7 l' i' W' r4 T7 P6 L
0132D83E . C74424 0C F0D>mov dword ptr [esp+C], 013AD6F0 ; UNICODE " !""#%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\^_abcdefghijklmnopqrstuvwxyz"
$ V5 N" ?% \7 t/ m4 a" i( ?0132D846 . 8947 1C mov dword ptr [edi+1C], eax ) P( w) f6 n2 [6 Y" N
0132D849 . EB 32 jmp short 0132D87D . e/ t4 w7 f9 k# B, l8 @
0132D84B > C747 1C 60010>mov dword ptr [edi+1C], 160
+ R4 x! `2 y& i8 `1 _0 Q0132D852 . 8B4F 1C mov ecx, dword ptr [edi+1C]
' I' O }4 T5 g1 @' @- o3 f0132D855 . 33C0 xor eax, eax
1 q% B3 J$ E8 W3 ]- i" H7 c6 x N2 s% i0132D857 . EB 07 jmp short 0132D860 . e! x H3 c* b. _
0132D859 . 8DA424 000000>lea esp, dword ptr [esp] 3 f7 o5 e- W, E. K0 K/ {
0132D860 > 8D50 20 lea edx, dword ptr [eax+20] " _0 `) A# z% s! d: W g8 R' l
0132D863 . 66:899444 A00>mov word ptr [esp+eax*2+A0], dx
* n* z3 I7 E6 F4 n; b0132D86B . 83C0 01 add eax, 1 & I' K7 j" t: t$ d Y ~
0132D86E . 3BC1 cmp eax, ecx
1 J( c" ~! u7 m) O0 d8 k0132D870 .^ 7C EE jl short 0132D860
" [8 b/ N3 c k2 l2 V: u/ J0132D872 . 8D8424 A00000>lea eax, dword ptr [esp+A0]
! Q4 A) ~" z# d% h0132D879 . 894424 0C mov dword ptr [esp+C], eax
" [6 X" D* i" Q) S0132D87D > 8B47 0C mov eax, dword ptr [edi+C] , {5 L/ c3 r4 F, r
0132D880 . 85C0 test eax, eax
/ C X/ @9 ]/ }4 A" ~0132D882 . 8D5F 0C lea ebx, dword ptr [edi+C]
2 v. ]8 s, Q) p8 e, i' H# S0132D885 . 75 05 jnz short 0132D88C $ e1 [% W4 `/ Q* j9 k
0132D887 . B8 16263901 mov eax, 01392616
3 l' p7 V/ a2 m$ o$ w0132D88C > 6A 00 push 0 7 j' e3 O+ N# k# P" T9 I9 e& a. k
0132D88E . 6A 00 push 0 2 U6 d; w4 O6 p0 u0 a
0132D890 . 50 push eax : O, u$ C" T6 e
0132D891 . 6A 1F push 1F
9 m$ ]: y* |1 n7 }( K1 ^0132D893 . 8BCE mov ecx, esi ( {" l8 U. ~+ u+ {9 o- ?
0132D895 . E8 FA8E0300 call <jmp.&CK2.CKContext::CreateObjec>
# i2 m. _2 [2 u/ x4 x( ^) z2 `/ O; ?0132D89A . 8B8C24 C80400>mov ecx, dword ptr [esp+4C8]
3 [1 ~ k K" o) z- e/ |0132D8A1 . 6A 00 push 0
6 Y+ I5 H! i1 R3 @ R; N- O; d0132D8A3 . 6A 20 push 20
; c/ c3 x9 Y* K. u8 k0132D8A5 . 51 push ecx
5 v1 s8 x/ G) _5 g% a; G- n0132D8A6 . 8B8C24 D00400>mov ecx, dword ptr [esp+4D0] |1 a; Q- k) W$ H* a' W
0132D8AD . 8947 24 mov dword ptr [edi+24], eax
5 F! ^, W1 g) G9 V0132D8B0 . 8B10 mov edx, dword ptr [eax] ' j) }. h9 b- \- B
0132D8B2 . 8B52 54 mov edx, dword ptr [edx+54]
+ r" t* Z3 Y9 l; X+ r0132D8B5 . 51 push ecx ' L' g9 k7 D; ~2 Z
0132D8B6 . 8BC8 mov ecx, eax
" o* P# C7 l: v0 y, }, s7 W0132D8B8 . FFD2 call edx
- `; t/ ?$ M: @2 _. b0132D8BA . 85C0 test eax, eax
: M$ |% Z. S* J6 e" f3 a# H+ C+ J0132D8BC . 75 07 jnz short 0132D8C5 7 Q, ^, e9 L2 Z6 q5 I1 i# x
0132D8BE . 32C0 xor al, al
- u1 d; j$ ?9 A! E% h6 ?0 L$ [0132D8C0 . E9 B4030000 jmp 0132DC79 , P, C) i1 E. u5 R. |8 C
0132D8C5 > 8B4F 24 mov ecx, dword ptr [edi+24] - D3 V9 Z R4 H3 d3 U# V1 B
0132D8C8 . 8B01 mov eax, dword ptr [ecx]
9 U S; z9 d! R5 e. K3 R0132D8CA . 8B80 88000000 mov eax, dword ptr [eax+88] . Y& Z! M: \9 ]' B' E
0132D8D0 . 55 push ebp , s; u, G) A* ^. w, ~
0132D8D1 . 8D5424 70 lea edx, dword ptr [esp+70]
" K" U# o- g+ Z+ O$ k0 p0132D8D5 . 52 push edx
6 d7 S! M% E5 X, [& c" D0132D8D6 . FFD0 call eax
- ^( l: p0 ?+ C. v+ }0132D8D8 . 6A 00 push 0 ; /hDC = NULL
( @" r# e! r' i- H, }8 a4 J3 X% G0132D8DA . FF15 34A43801 call dword ptr [<&GDI32.CreateCompati>; \CreateCompatibleDC . m; q0 T7 R: n5 M
0132D8E0 . 8D4C24 70 lea ecx, dword ptr [esp+70] 5 e- q1 f$ f6 y( Z2 T- Q
0132D8E4 . 51 push ecx / h; C2 X: h4 d
0132D8E5 . 8BE8 mov ebp, eax * P& A5 F( j7 s1 d8 j9 v
0132D8E7 . FF15 24A83801 call dword ptr [<&VxMath.VxCreateBitm>; VxMath.VxCreateBitmap
) c* v3 O6 B& e/ u0132D8ED . 8B35 70A43801 mov esi, dword ptr [<&GDI32.SelectOb>; GDI32.SelectObject - }% D/ N. ^5 r8 O& y& W7 ~
0132D8F3 . 83C4 04 add esp, 4 . D N8 q5 `' v: Z6 B5 u1 c2 [
0132D8F6 . 50 push eax ; /hObject
8 C9 ^, m7 j- M/ g) J$ ^8 c* g, h0132D8F7 . 55 push ebp ; |hDC 3 N/ u# w' J- G& W: h) N, w
0132D8F8 . 894424 2C mov dword ptr [esp+2C], eax ; |
3 e0 J7 w; q1 g+ y& b0132D8FC . FFD6 call esi ; \SelectObject 6 [: _4 ~7 n7 S9 d5 X0 p2 ^
0132D8FE . 8B5424 28 mov edx, dword ptr [esp+28]
8 `* N( s/ H$ o8 i( g0132D902 . 52 push edx ! f3 T; g) ?/ | \" m7 B) Y" F" o! [
0132D903 . 8BCB mov ecx, ebx
- Q( X' n. [# k, q/ X! h& C# i5 r0132D905 . 894424 40 mov dword ptr [esp+40], eax
: C1 W* W2 F' M0132D909 . FF15 BCA83801 call dword ptr [<&VxMath.XString::ope>; VxMath.XString::operator=
. u( f. X* J% l- u0132D90F . 8B9C24 B80400>mov ebx, dword ptr [esp+4B8]
3 f- X/ ]- F% u0132D916 . 6A 48 push 48 ; /Divisor = 48 (72.) 2 j/ r% O! k8 z3 `% E# r6 M& R
0132D918 . 6A 5A push 5A ; |/Index = LOGPIXELSY
6 {) w s- |) K9 O0132D91A . 55 push ebp ; ||hDC
: l# F0 p- I( G! {0132D91B . 895F 14 mov dword ptr [edi+14], ebx ; || 1 ?$ n' k2 Z& d: U
0132D91E . FF15 64A43801 call dword ptr [<&GDI32.GetDeviceCaps>; |\GetDeviceCaps
2 J2 z0 r( f$ i0132D924 . 50 push eax ; |Multiplier % d1 K% F4 F" a$ g3 z; ^. X
0132D925 . 53 push ebx ; |Multiplicand
. x5 A2 a* K/ @: O- I h z/ E0132D926 . FF15 DCA43801 call dword ptr [<&KERNEL32.MulDiv>] ; \MulDiv
: |3 F7 i3 y+ c- }1 F0132D92C . 8B4C24 1C mov ecx, dword ptr [esp+1C]
7 e1 I! P+ |" A7 [6 ~8 @0132D930 . 8B9424 C00400>mov edx, dword ptr [esp+4C0]
6 A- N' J% s- T4 o0132D937 . 51 push ecx ; /FaceName
5 d2 e5 ]' ^& N6 s! ~* L$ n0132D938 . 8B8C24 C80400>mov ecx, dword ptr [esp+4C8] ; | - c! d- x9 F3 Z% Q0 V M
0132D93F . 6A 00 push 0 ; |PitchAndFamily = DEFAULT_PITCH|FF_DONTCARE
' ]7 T/ v/ C# D4 I0132D941 . 52 push edx ; |Quality 0 M6 s8 M+ Z! v; t7 B' M$ \
0132D942 . 6A 00 push 0 ; |ClipPrecision = CLIP_DEFAULT_PRECIS
# f4 q) G) ?1 [0 h( w5 H& d0 O) x0132D944 . 6A 07 push 7 ; |OutputPrecision = OUT_TT_ONLY_PRECIS * G* @" O) U: P( V+ C/ P
0132D946 . 6A 01 push 1 ; |CharSet = DEFAULT_CHARSET
9 ?9 U0 l2 E4 T1 {0132D948 . 6A 00 push 0 ; |StrikeOut = FALSE 7 U" F! m8 f' [ K- l, n& U$ W. f
0132D94A . 8BD1 mov edx, ecx ; |
m# r* M, R! {9 C4 h8 B" k9 C0132D94C . D1EA shr edx, 1 ; |
0 x( p0 z+ b0 P7 f0132D94E . 83E2 01 and edx, 1 ; | 5 a; ?0 Q% H/ F
0132D951 . 52 push edx ; |Underline 9 z P) J& {; t7 N" \# f, L
0132D952 . 83E1 01 and ecx, 1 ; |
% J! h: E+ Y1 [# J3 Q. }; p0132D955 . 51 push ecx ; |Italic
. n2 ~2 Y5 K# W t. w! B# m0132D956 . 8B8C24 E00400>mov ecx, dword ptr [esp+4E0] ; | ) a) j n! F! D3 C! d4 }4 ]5 \ ] E
0132D95D . 51 push ecx ; |Weight
% x- `% ?# |$ F0132D95E . 6A 00 push 0 ; |Orientation = 0
: v2 v$ h( W* E; O+ ~3 ?* X4 h5 p0132D960 . 6A 00 push 0 ; |Escapement = 0
# m0 \/ o; c. p6 K" Z( M; a0132D962 . F7D8 neg eax ; |
) O7 a5 e9 T7 G* Y7 Q0132D964 . 6A 00 push 0 ; |Width = 0
" d* X3 {& n+ [: A* h- l0132D966 . 50 push eax ; |Height A- q: V6 {; c x/ R
0132D967 . FF15 60A43801 call dword ptr [<&GDI32.CreateFontA>] ; \CreateFontA $ p5 D4 a4 @7 n% L7 |! ~/ F
0132D96D . 50 push eax
9 i0 t, ?9 H4 k7 Y$ W0132D96E . 55 push ebp 7 Y7 r7 a3 A4 q! z& X: H
0132D96F . 894424 38 mov dword ptr [esp+38], eax - \; g- g6 D6 F. l W/ q# q: A/ V
0132D973 . FFD6 call esi
" U* h3 D# E2 I* M1 A5 l$ V! e0132D975 . 8D5424 58 lea edx, dword ptr [esp+58] # k5 z8 {7 b6 d: O6 h3 m! N3 [6 q
0132D979 . 52 push edx ; /pSize 0 J3 b+ K$ n/ G; {6 w6 W& l3 `7 j
0132D97A . 6A 01 push 1 ; |TextLen = 1
& K5 ]' z: r9 U, q0132D97C . 68 4CED3801 push 0138ED4C ; |Text = "A" ; `2 g/ K. F% Y1 S! V; A" ]1 z
0132D981 . 55 push ebp ; |hDC % E7 N' C8 S1 i' V3 G
0132D982 . 894424 44 mov dword ptr [esp+44], eax ; |
. S& c& e% f/ k0132D986 . FF15 5CA43801 call dword ptr [<&GDI32.GetTextExtent>; \GetTextExtentPointA
9 s: s: J: ?) _" l; ~6 R0132D98C . 8B4424 5C mov eax, dword ptr [esp+5C] 7 g6 H0 D# ^$ g0 s2 o, w& o% x
0132D990 . 8B77 1C mov esi, dword ptr [edi+1C] ' n3 p( w$ r- ?+ J d/ d
0132D993 . 8947 18 mov dword ptr [edi+18], eax
1 p5 \1 i. U# g9 y+ k' Z$ Y/ c; J0132D996 . 33C9 xor ecx, ecx 9 q! q" _- B8 C7 D% u h6 B
0132D998 . 8BC6 mov eax, esi ) r" D( A# Y) g6 D3 {
0132D99A . BA 20000000 mov edx, 20
$ u1 \& Z# \" \3 f9 w0132D99F . F7E2 mul edx
7 G V$ z9 g, ^+ c0132D9A1 . 0F90C1 seto cl
9 n! Z# b8 ?3 |0132D9A4 . F7D9 neg ecx
& ~5 J( A( _# s5 w$ w3 D0132D9A6 . 0BC8 or ecx, eax . o3 C4 m' w5 \7 Z
0132D9A8 . 51 push ecx ( R9 x9 U0 c# B
0132D9A9 . E8 964A0500 call <jmp.&MSVCR80.operator new> $ \) M* u0 d6 x; L o, |4 B5 Z
0132D9AE . 83C4 04 add esp, 4 " v, C& @2 Z; r. c* Z: u: E( F
0132D9B1 . 85C0 test eax, eax
( n/ t4 o8 P: J" a( k0132D9B3 . 74 28 je short 0132D9DD
/ }8 }/ H0 _. \0132D9B5 . 83C6 FF add esi, -1
5 K: w1 a( `& D0132D9B8 . 78 25 js short 0132D9DF ) {' K8 p/ o* Q
0132D9BA . D9EE fldz . W) l& f: G( F& B
0132D9BC . 8D48 0C lea ecx, dword ptr [eax+C] - ^1 d i& r; @
0132D9BF > D951 FC fst dword ptr [ecx-4]
8 y/ J- R" v6 j8 P& R- V0132D9C2 . 83C1 20 add ecx, 20 / M4 W7 P, g4 d/ D0 o7 @
0132D9C5 . 83EE 01 sub esi, 1 " d K. g; L! p, f
0132D9C8 . D951 E0 fst dword ptr [ecx-20]
. C% q3 |% E+ }" [: o0132D9CB . D951 D4 fst dword ptr [ecx-2C] $ U3 I1 ~, A0 e6 \, y ^- A
0132D9CE . D951 D8 fst dword ptr [ecx-28] 3 t; Y ^3 u J+ A
0132D9D1 . D951 DC fst dword ptr [ecx-24]
/ q* h" f" a2 K# R+ S0132D9D4 . D951 E0 fst dword ptr [ecx-20]
, {4 F! K1 ^/ J- S8 u8 Q9 o0132D9D7 .^ 79 E6 jns short 0132D9BF
3 e. p7 m4 {% P2 L/ e) r" D0132D9D9 . DDD8 fstp st % u9 _& \1 h3 ?; o3 o/ ^% e
0132D9DB . EB 02 jmp short 0132D9DF
4 J' g! c" t2 n5 b6 J0132D9DD > 33C0 xor eax, eax
* ~ t2 q4 r! I; Z' H0132D9DF > 8B8C24 C80400>mov ecx, dword ptr [esp+4C8] 2 e1 X+ n+ s0 z$ D$ z( |
0132D9E6 . 8947 20 mov dword ptr [edi+20], eax
6 b O/ [5 c& _6 K5 I2 v) v0132D9E9 . 8B8424 CC0400>mov eax, dword ptr [esp+4CC] / }0 ~' T( z" G! C
0132D9F0 . 50 push eax ; /Bottom : l' }/ K5 f2 W
0132D9F1 . 51 push ecx ; |Right $ ]6 r0 l2 R1 [
0132D9F2 . 6A 00 push 0 ; |Top = 0
8 u: K# h7 F1 V8 L+ Q4 m0132D9F4 . 6A 00 push 0 ; |Left = 0 6 P* U! B2 U6 N
0132D9F6 . 8D5424 70 lea edx, dword ptr [esp+70] ; | * u- b/ M& \. |% p" d
0132D9FA . 52 push edx ; |pRect
9 X- T1 N) T: a) ~* P0132D9FB . FF15 64A73801 call dword ptr [<&USER32.SetRect>] ; \SetRect 3 b+ T: n. W! H. Z' {) w3 f
0132DA01 . 6A 04 push 4 ; /ObjType = BLACK_BRUSH
i# i; U7 O# D+ J+ r# b5 Y/ z: b0132DA03 . FF15 58A43801 call dword ptr [<&GDI32.GetStockObjec>; \GetStockObject
2 x |$ ^0 I! I) g d" u Y0132DA09 . 50 push eax ; /hBrush
- u4 S/ F2 U2 ?) r8 f0132DA0A . 8D4424 64 lea eax, dword ptr [esp+64] ; | 3 u; \' J! b9 u* l
0132DA0E . 50 push eax ; |pRect + O" M! f/ F* g+ X, J* v
0132DA0F . 55 push ebp ; |hDC
" t3 o( `8 m- o/ F! ^0132DA10 . FF15 68A73801 call dword ptr [<&USER32.FillRect>] ; \FillRect 1 C4 Y) H1 b$ h! N4 q, {
0132DA16 . 6A 00 push 0 ; /Color = <BLACK>
/ z/ _' H5 M6 |% C9 z5 p0132DA18 . 55 push ebp ; |hDC 0 M9 c: T, b9 t. h
0132DA19 . FF15 54A43801 call dword ptr [<&GDI32.SetBkColor>] ; \SetBkColor 9 {/ k1 ^# \, t1 m- f/ ?
0132DA1F . 68 FFFFFF00 push 0FFFFFF ; /Color = <WHITE>
. ]4 N2 g2 ?& a' Z f0132DA24 . 55 push ebp ; |hDC
. w* |- h* T' ~$ q0132DA25 . FF15 50A43801 call dword ptr [<&GDI32.SetTextColor>>; \SetTextColor % L! @5 P0 ?; a
0132DA2B . 6A 01 push 1 ; /BkMode = TRANSPARENT 5 U) d3 y. M( U; D; Q
0132DA2D . 55 push ebp ; |hDC
& F, G. u# ~/ t7 a8 V% a7 i0132DA2E . FF15 4CA43801 call dword ptr [<&GDI32.SetBkMode>] ; \SetBkMode
6 f U$ I- U2 O) {% S0132DA34 . 33F6 xor esi, esi
' q0 H3 N. G' K. \0132DA36 . 3977 1C cmp dword ptr [edi+1C], esi
8 k/ J' e: t1 z" o0 ?6 j8 Q0132DA39 . BB 01000000 mov ebx, 1
. c! a) O) V! J! `# I0 z& U0132DA3E . 895C24 18 mov dword ptr [esp+18], ebx + D& u" h5 @ w
0132DA42 . 897424 14 mov dword ptr [esp+14], esi
/ V3 o$ E! E- b0132DA46 . 897424 1C mov dword ptr [esp+1C], esi 2 N5 a+ R( _. u" s
0132DA4A . 0F8E 20010000 jle 0132DB70 2 q6 D* B! Y2 [8 |4 k
0132DA50 . DB8424 C80400>fild dword ptr [esp+4C8] % M( s) ~" ^( ^ d
0132DA57 . 8B4424 10 mov eax, dword ptr [esp+10] 2 {6 O1 O/ L) k! M) U5 \
0132DA5B . 897424 20 mov dword ptr [esp+20], esi
0 w' D) e' A7 e+ P0 Y, _0132DA5F . 894424 10 mov dword ptr [esp+10], eax / g( I7 b* }, z2 J4 H; h. o
0132DA63 . D95C24 38 fstp dword ptr [esp+38] 0 M# d$ {0 ~# g1 `
0132DA67 . DB8424 CC0400>fild dword ptr [esp+4CC] 4 e3 Y8 F, K/ b
0132DA6E . D95C24 2C fstp dword ptr [esp+2C]
' O1 ~8 ^! T3 h0 z1 T( V5 u3 ^5 f0132DA72 . EB 04 jmp short 0132DA78 # @( @7 W1 |5 @" x1 A
0132DA74 > 8B4424 10 mov eax, dword ptr [esp+10] 8 e8 r7 v: r: \
0132DA78 > 8B77 20 mov esi, dword ptr [edi+20] 4 J/ X. O* ^7 q; t2 [
0132DA7B . 66:8B08 mov cx, word ptr [eax]
2 C' M* B* T, Z6 v' v w; Y/ Y A0132DA7E . 037424 20 add esi, dword ptr [esp+20]
# k+ G' C( ~" d1 ]1 }1 u0132DA82 . 66:894E 10 mov word ptr [esi+10], cx ' c2 s6 C3 l7 u: \6 {: p* M
0132DA86 . 0FB700 movzx eax, word ptr [eax] 4 R* z# c3 ^; D8 k6 k& r# N+ j; a
0132DA89 . 8D4E 14 lea ecx, dword ptr [esi+14] , K% p, q7 k$ w' J9 n2 r/ J
0132DA8C . 51 push ecx ; /pABC
y1 j) X. d# j0 t; H0132DA8D . 50 push eax ; |LastChar ' f. n: o3 V4 o
0132DA8E . 50 push eax ; |FirstChar
( X5 F! u4 U i' F0132DA8F . 55 push ebp ; |hDC
4 W- l. Z, O. F. g1 v. Y0132DA90 . FF15 48A43801 call dword ptr [<&GDI32.GetCharABCWid>; \GetCharABCWidthsW 1 F( x+ ?# V7 u
0132DA96 . 8B5424 10 mov edx, dword ptr [esp+10]
6 Q7 x& X! l. c% _$ [ l0132DA9A . 66:833A 20 cmp word ptr [edx], 20 . Y9 E) V( {' f4 I
0132DA9E . 73 10 jnb short 0132DAB0 . ]9 O1 k: N7 K8 H- `' v
0132DAA0 . C746 14 00000>mov dword ptr [esi+14], 0
3 o3 Q+ J% S1 v- H+ X1 B0132DAA7 . C746 1C 00000>mov dword ptr [esi+1C], 0 2 U7 J& n3 A2 d
0132DAAE . EB 0C jmp short 0132DABC
5 |1 }- E: F: M- r& A0132DAB0 > 8346 14 FF add dword ptr [esi+14], -1 1 u2 |# E I6 t0 \7 T8 _" f, l
0132DAB4 . 8346 18 02 add dword ptr [esi+18], 2
( k k \! p- S9 P5 B( k0132DAB8 . 8346 1C FF add dword ptr [esi+1C], -1
& j4 j; u' J1 E; O1 ~ M6 g0132DABC > 8B4E 18 mov ecx, dword ptr [esi+18] b, J5 F1 T2 y
0132DABF . 8D4419 01 lea eax, dword ptr [ecx+ebx+1] 3 {+ L( T- A$ v; R
0132DAC3 . 3B8424 C80400>cmp eax, dword ptr [esp+4C8]
5 G; h, u8 z4 a) R0132DACA . 8B4424 14 mov eax, dword ptr [esp+14]
* J. ]4 q9 ~3 C# r/ o0132DACE . 72 14 jb short 0132DAE4
$ c0 U$ m* d8 Y+ a0 v# y( z0132DAD0 . 8B57 18 mov edx, dword ptr [edi+18] 4 m# q$ I+ w) v+ w1 V F: R6 z
0132DAD3 . BB 01000000 mov ebx, 1
. t6 U; G. u2 Y8 f0132DAD8 . 8D4410 01 lea eax, dword ptr [eax+edx+1]
) M' r4 N# s, O7 N4 b0132DADC . 895C24 18 mov dword ptr [esp+18], ebx
s0 g! [5 s. `: u4 ^* f0132DAE0 . 894424 14 mov dword ptr [esp+14], eax
! B4 T% I9 W) {& p. |& \* y0132DAE4 > DB4424 18 fild dword ptr [esp+18] ) L) h5 F. j) o
0132DAE8 . 03CB add ecx, ebx 9 C4 K6 p5 R# H8 y& S
0132DAEA . 85C9 test ecx, ecx ! z6 F3 g2 @# x* p' R* ]: q- t
0132DAEC . D94424 38 fld dword ptr [esp+38] ( S' P5 u: e8 }+ T4 i
0132DAF0 . D9C0 fld st
) J3 ?/ y/ s6 v# i- P0132DAF2 . 894C24 18 mov dword ptr [esp+18], ecx
$ K( Y/ ^/ Y G4 j( k4 R0132DAF6 . DEFA fdivp st(2), st 3 }7 c% N- i7 W
0132DAF8 . D9C9 fxch st(1)
$ I5 [0 N( Z! A: ]: w" p0132DAFA . D91E fstp dword ptr [esi]
( ~* k, ^! A& t8 B& S0132DAFC . DB4424 14 fild dword ptr [esp+14] - a- w8 d# t+ ~" b
0132DB00 . D94424 2C fld dword ptr [esp+2C]
& E* K" E% B0 I" U' l2 F0132DB04 . D9C0 fld st % h q! q$ M. `, ]1 i. y4 C' ]
0132DB06 . DEFA fdivp st(2), st
: V. r; D' r# p& W1 ?( c0132DB08 . D9C9 fxch st(1)
$ H3 U( l+ Q" T, G; p I0132DB0A . D95E 04 fstp dword ptr [esi+4]
7 s: D# G% C- ]/ N0132DB0D . DB4424 18 fild dword ptr [esp+18] 7 @4 C0 w \$ p+ L2 m( g
0132DB11 . 7D 06 jge short 0132DB19 . K% B% G( X, L5 ?& x3 G
0132DB13 . D805 50B03801 fadd dword ptr [138B050] ; C B; q7 f8 G' c' W0 S' R( O
0132DB19 > DEF2 fdivrp st(2), st 9 Z0 o+ ^1 U4 G( M, L" r& z
0132DB1B . 8B5424 10 mov edx, dword ptr [esp+10]
6 G, N# i" \/ _0 U4 i0 W0132DB1F . 6A 01 push 1 ; /StringSize = 1
, L1 S: U p- @/ }3 G0132DB21 . 52 push edx ; |String
" e7 t- i2 A0 R1 B( Q, h/ v4 w0132DB22 . 50 push eax ; |YStart 9 W3 F ~+ P3 E' U
0132DB23 . D9C9 fxch st(1) ; |
) A$ f# Q; e3 K- C0132DB25 . D95E 08 fstp dword ptr [esi+8] ; | 7 \% V& S& M! P7 k
0132DB28 . 8B4F 18 mov ecx, dword ptr [edi+18] ; |
; @' I, j( P4 g! K2 S0132DB2B . 03C8 add ecx, eax ; |
, K0 p4 I- x/ \0132DB2D . 894C24 24 mov dword ptr [esp+24], ecx ; | B9 T0 u% G% Q* e' W. T1 @7 D
0132DB31 . DA7C24 24 fidivr dword ptr [esp+24] ; |
5 V6 H0 {0 p) n* @0132DB35 . 8BC3 mov eax, ebx ; |
5 v1 ~8 I) ~2 W9 @0132DB37 . 2B46 14 sub eax, dword ptr [esi+14] ; | 4 K# d3 \& O+ K0 f8 E
0132DB3A . 50 push eax ; |XStart # q ^2 I8 I5 a: K- A5 M
0132DB3B . 55 push ebp ; |hDC 3 K3 o5 ]: P$ D, h
0132DB3C . D95E 0C fstp dword ptr [esi+C] ; |
, G- m+ M3 ~: f% j0132DB3F . FF15 44A43801 call dword ptr [<&GDI32.TextOutW>] ; \TextOutW
* y% h: v, w+ K( |% N' q0132DB45 . 8B4424 1C mov eax, dword ptr [esp+1C] 1 S0 C1 u: Z0 v! H8 t
0132DB49 . 8B4E 18 mov ecx, dword ptr [esi+18] - c- K6 ]2 v' C2 O: v7 `
0132DB4C . 834424 20 20 add dword ptr [esp+20], 20 + N A, K- m4 n3 `- z# y& ~
0132DB51 . 834424 10 02 add dword ptr [esp+10], 2 # f+ @5 z! c! a5 S+ h
0132DB56 . 83C0 01 add eax, 1
& X: o+ q4 s, P) E {0132DB59 . 3B47 1C cmp eax, dword ptr [edi+1C]
/ ]; Z) ^6 \; S8 C& t0132DB5C . 8D5C0B 01 lea ebx, dword ptr [ebx+ecx+1]
; q8 o, d6 a- K9 U! G) g0132DB60 . 895C24 18 mov dword ptr [esp+18], ebx
9 Y1 I0 g. o+ Z0132DB64 . 894424 1C mov dword ptr [esp+1C], eax
/ a' N5 } e1 b# h$ o" m1 t, w! u4 Y( i0132DB68 .^ 0F8C 06FFFFFF jl 0132DA74 ' D0 @7 o4 ]. d1 \/ X" t
0132DB6E . 33F6 xor esi, esi
( J1 T& M) U+ V! V4 I' g, s6 C0132DB70 > 8B4F 24 mov ecx, dword ptr [edi+24] # G: E9 a3 [9 R2 e5 S; i+ V
0132DB73 . 6A FF push -1 & _5 @4 x: K# U+ O
0132DB75 . 83C1 38 add ecx, 38 7 W. \- W% h& A p) S/ c
0132DB78 . E8 278E0300 call <jmp.&CK2.CKBitmapData::LockSurf> ' e* |) [' [& R2 m* r
0132DB7D . 8BD8 mov ebx, eax - _+ q- j' q6 [- c W( _% W9 K: U' N
0132DB7F . 3BDE cmp ebx, esi ; b1 K8 z" a' h! n
0132DB81 . 74 74 je short 0132DBF7 ' m4 w% C8 r. Q. z
0132DB83 . 8B4424 24 mov eax, dword ptr [esp+24] + F2 O( {" O9 P9 |1 V. F
0132DB87 . 8D5424 40 lea edx, dword ptr [esp+40] % _# O- H' R" L; {6 k( e7 Y) ]
0132DB8B . 52 push edx ; /Buffer * l ]& b' r5 D
0132DB8C . 6A 18 push 18 ; |BufSize = 18 (24.) 6 \' K) h8 D4 y3 h- ^
0132DB8E . 50 push eax ; |hObject & r6 A8 {0 t$ a
0132DB8F . FF15 40A43801 call dword ptr [<&GDI32.GetObjectA>] ; \GetObjectA + @& u9 m0 c# m
0132DB95 . 8B4C24 48 mov ecx, dword ptr [esp+48] / A; R3 e. B8 P# T3 ]
0132DB99 . 8D71 FF lea esi, dword ptr [ecx-1] 5 j4 u) X$ W! e8 a t
0132DB9C . 0FAF7424 4C imul esi, dword ptr [esp+4C] 3 t! x- V& q, S2 J( W
0132DBA1 . 037424 54 add esi, dword ptr [esp+54] T9 x, b( s O. U6 B; u' X2 C
0132DBA5 . 85C9 test ecx, ecx 0 d7 L$ u. M% s2 R
0132DBA7 . C74424 14 000>mov dword ptr [esp+14], 0
3 P# C- x, a; }2 J0132DBAF . 7E 46 jle short 0132DBF7 9 _; d: V$ P6 j* \
0132DBB1 . 8B5424 44 mov edx, dword ptr [esp+44]
( \1 v- ?* w7 x: w4 a- W" m0132DBB5 > 33C0 xor eax, eax $ S* N' t1 A, q( v0 @) N2 E5 ^
0132DBB7 . 85D2 test edx, edx 8 N; j$ V* k; Y
0132DBB9 . 7E 26 jle short 0132DBE1
, E$ ]; s: T# w; `7 B- g0132DBBB . 8BCE mov ecx, esi " t1 H8 T/ @+ x7 _6 Q
0132DBBD . 8D49 00 lea ecx, dword ptr [ecx]
0 v. a0 I4 E# z9 d0132DBC0 > 0FB611 movzx edx, byte ptr [ecx] # ]+ ~. m0 @$ p: z# j# T
0132DBC3 . C1E2 18 shl edx, 18
8 d1 E- c6 o* _+ O$ Y+ m! u( y0132DBC6 . 81CA FFFFFF00 or edx, 0FFFFFF
V& l% }; S% W% Z2 r9 |: G0132DBCC . 891483 mov dword ptr [ebx+eax*4], edx 3 w6 h4 K& P. @
0132DBCF . 8B5424 44 mov edx, dword ptr [esp+44]
( c$ i3 b4 N/ B: [" z* b2 w0132DBD3 . 83C0 01 add eax, 1 ! X' {- r- _; n
0132DBD6 . 83C1 03 add ecx, 3
- m, k0 ?1 ~% h6 d( a0132DBD9 . 3BC2 cmp eax, edx 3 T$ M8 Y- l, N9 w
0132DBDB .^ 7C E3 jl short 0132DBC0
# c; m3 J2 |6 ]2 n" d Y. D0132DBDD . 8B4C24 48 mov ecx, dword ptr [esp+48]
2 Z% c! @2 d+ T F3 F* \! M1 V0132DBE1 > 8B4424 14 mov eax, dword ptr [esp+14]
' g; _3 C. I! {& q0132DBE5 . 2B7424 4C sub esi, dword ptr [esp+4C] 3 ]. }! d, i! d
0132DBE9 . 83C0 01 add eax, 1 0 U; q$ D! U7 y1 y- S! u
0132DBEC . 3BC1 cmp eax, ecx $ @. w Z( z7 P, u
0132DBEE . 8D1C93 lea ebx, dword ptr [ebx+edx*4] ! J! \1 g$ m2 _% T* q
0132DBF1 . 894424 14 mov dword ptr [esp+14], eax 1 _0 `, o, ]# t* O! z! M D7 h. q
0132DBF5 .^ 7C BE jl short 0132DBB5 1 ^) K# l$ S; `: ^7 h) r% [
0132DBF7 > 8B4F 24 mov ecx, dword ptr [edi+24]
: W) \ ^1 }" n1 f3 y0132DBFA . 6A FF push -1 % Q; N2 W0 O6 x) N, P* y! |
0132DBFC . 83C1 38 add ecx, 38
" X9 G) g3 }0 x$ R4 V: K& I0132DBFF . E8 9A8D0300 call <jmp.&CK2.CKBitmapData::ReleaseS>
6 |7 n6 e# p9 u7 k9 m( x5 F5 t0132DC04 . 8B4424 34 mov eax, dword ptr [esp+34]
9 g% L) O) ~* V3 ]0132DC08 . 8B35 70A43801 mov esi, dword ptr [<&GDI32.SelectOb>; GDI32.SelectObject % I& J; c7 N }
0132DC0E . 50 push eax ; /hObject & u4 F) J+ z" t) e0 m" j! Q' x3 U3 n
0132DC0F . 55 push ebp ; |hDC i- l$ A, i! p; i& M, q0 c
0132DC10 . FFD6 call esi ; \SelectObject " u6 r1 s8 i+ r6 ?) R
0132DC12 . 8B4C24 30 mov ecx, dword ptr [esp+30] # G: p. n3 f7 i" d5 f2 z- r/ J
0132DC16 . 51 push ecx 4 c L9 f7 _; u; |3 R
0132DC17 . FF15 28A83801 call dword ptr [<&VxMath.VxDeleteFont>; VxMath.VxDeleteFont / m5 T1 B5 ?8 e# S, {+ q1 s* @; \
0132DC1D . 8B5424 40 mov edx, dword ptr [esp+40] ! h6 \( Q7 Z) O5 b
0132DC21 . 83C4 04 add esp, 4 4 `. A0 A! l3 m2 A
0132DC24 . 52 push edx % P* c1 H+ K1 n$ I
0132DC25 . 55 push ebp
* U9 T" _* x# g6 Q6 e4 A0132DC26 . FFD6 call esi 9 [4 m! G: J- G; L) f- X
0132DC28 . 8B4424 24 mov eax, dword ptr [esp+24]
+ E' }4 l i/ p# L$ ^; y0132DC2C . 50 push eax
& w7 l {# [! T0132DC2D . FF15 2CA83801 call dword ptr [<&VxMath.VxDeleteBitm>; VxMath.VxDeleteFont
# Z( S* T! v( m4 f' u3 n$ E3 L0132DC33 . 83C4 04 add esp, 4 $ v+ G& Y& f, X. m( ]
0132DC36 . 55 push ebp ; /hDC 6 d9 B2 K, l) A! j6 T% m6 v
0132DC37 . FF15 3CA43801 call dword ptr [<&GDI32.DeleteDC>] ; \DeleteDC
+ y, T! O& Y4 K1 z3 c& }0132DC3D . 8B4C24 28 mov ecx, dword ptr [esp+28]
6 `7 h% R( ]. v% A& f4 w1 r0132DC41 . 6A 00 push 0 " s3 L _' d3 q& f9 o3 i" _
0132DC43 . 51 push ecx - S+ {; R6 s: ?; P
0132DC44 . 8B4F 24 mov ecx, dword ptr [edi+24]
5 V2 @7 ]! p- \0132DC47 . E8 4C8A0300 call <jmp.&CK2.CKObject::SetName> 0 x5 G1 I$ |0 q2 t% b$ X
0132DC4C . 8B4F 24 mov ecx, dword ptr [edi+24]
# K( }" j% B* H4 v0 T- D8 ]: Z0132DC4F . 6A 01 push 1
8 U G8 c$ N& m4 a# P' Y0132DC51 . 83C1 38 add ecx, 38
8 U; f) a1 P/ D) I* F7 _0132DC54 . E8 7B8D0300 call <jmp.&CK2.CKBitmapData::SetDesir>
5 \" j9 S! `: @# z0132DC59 . 8B4F 24 mov ecx, dword ptr [edi+24] 4 G: J, ~" j' @
0132DC5C . 8B11 mov edx, dword ptr [ecx] % _- \0 P- f" H
0132DC5E . 8B42 78 mov eax, dword ptr [edx+78]
& I$ g1 M' s3 E. i* G) N1 A0132DC61 . 6A 00 push 0
! I2 Y+ [" Y# [7 d6 n9 w0132DC63 . FFD0 call eax
% G) e: P" N. Z2 O. `( K9 k0132DC65 . 8B4F 18 mov ecx, dword ptr [edi+18]
* h* f1 ^' i4 V% x9 ~6 O+ C0132DC68 . 034C24 14 add ecx, dword ptr [esp+14]
0 A) p O! o$ V% _ U- R$ U0132DC6C . 33C0 xor eax, eax
: R4 p& n" f, r$ D& V) K0132DC6E . 3B8C24 CC0400>cmp ecx, dword ptr [esp+4CC]
& |: D! A- s2 W. {% p0132DC75 . 5D pop ebp
$ p% Z0 C2 h# H' R3 H0132DC76 . 0F9CC0 setl al 5 r; u0 d/ B4 E2 F7 ?$ H% i/ a
0132DC79 > 8B8C24 A00400>mov ecx, dword ptr [esp+4A0] 0 R7 o! A2 y$ b. A, J' m, Z$ ]2 |
0132DC80 . 5F pop edi 3 g* _. b9 f* S/ `) k2 a
0132DC81 . 5E pop esi - L2 ~& l3 G: v5 a
0132DC82 . 5B pop ebx
9 [8 P3 o5 j9 C0132DC83 . 33CC xor ecx, esp
\3 w! ^0 u- X; }0132DC85 . E8 E2460500 call 0138236C
# x/ z" n) h8 i( n" X* o# ^, v. J0132DC8A . 81C4 98040000 add esp, 498
, S! A0 n& H# S0132DC90 . C2 2800 retn 28 |