发现了一个和字库有关的函数,研究中。
- _ }9 r" }9 Q* s, {4 G( v: P4 e9 @9 f0 P% c1 L0 q
0132D7E0 $ 81EC 98040000 sub esp, 498
- C- }) M+ G6 ?4 t3 M/ _) |* D' _0132D7E6 . A1 7CD13A01 mov eax, dword ptr [13AD17C] : W! {7 q* `% y' Q* c3 ^- |! {
0132D7EB . 33C4 xor eax, esp 7 v7 X& h( ?! B& }) Z& e0 G1 ^# H
0132D7ED . 898424 940400>mov dword ptr [esp+494], eax ) P2 z8 h! v* g
0132D7F4 . 8B8424 A00400>mov eax, dword ptr [esp+4A0] + B" I; s k3 _! O+ K4 w( ^
0132D7FB . 53 push ebx
7 p3 J# m2 P) J- l5 [3 G0132D7FC . 56 push esi
8 v9 S- p* U, P$ l% j+ q3 l0132D7FD . 8BB424 A40400>mov esi, dword ptr [esp+4A4]
% i- h$ D& }# e3 x; H/ b0132D804 . 57 push edi - E1 B7 y+ g3 V: _
0132D805 . 6A 30 push 30 ; /n = 30 (48.)
+ f$ n. {2 Q/ d) Z3 v2 c% }0132D807 . 8BF9 mov edi, ecx ; | 2 [9 ~4 ^; O. R
0132D809 . 8B8C24 B40400>mov ecx, dword ptr [esp+4B4] ; |
5 C! E$ p1 e& f( g# p$ r0132D810 . 8D5424 74 lea edx, dword ptr [esp+74] ; |
5 P) |' z5 S/ N B4 z0132D814 . 6A 00 push 0 ; |c = 00 h( ~6 g W1 u
0132D816 . 52 push edx ; |s 2 C" w' W3 Q8 n
0132D817 . 894424 30 mov dword ptr [esp+30], eax ; | 6 b/ w0 P7 k( B) n; ~# Q& b
0132D81B . 894C24 24 mov dword ptr [esp+24], ecx ; |
) r& o& U+ e, [0132D81F . C74424 78 340>mov dword ptr [esp+78], 34 ; | ' o0 L Y0 A9 F
0132D827 . E8 284B0500 call <jmp.&MSVCR80.memset> ; \memset
6 b" c, S0 q$ v' k% m0132D82C . 83C4 0C add esp, 0C * V2 d6 j" i, d& H6 T
0132D82F . 80BC24 CC0400>cmp byte ptr [esp+4CC], 0
& F& b$ B; y7 Y6 W% O |! u0132D837 . 74 12 je short 0132D84B & X2 I5 F/ V* H* `: o
0132D839 . A1 F8F63A01 mov eax, dword ptr [13AF6F8] 8 d8 Q8 [) J( }& s! r2 x% k
0132D83E . C74424 0C F0D>mov dword ptr [esp+C], 013AD6F0 ; UNICODE " !""#%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\^_abcdefghijklmnopqrstuvwxyz" 6 h: V, r4 r3 A* \3 s6 X5 P& q5 R
0132D846 . 8947 1C mov dword ptr [edi+1C], eax
o; p; N. `, q( g. \0132D849 . EB 32 jmp short 0132D87D 6 M4 ^) _2 p# f6 C) E
0132D84B > C747 1C 60010>mov dword ptr [edi+1C], 160 & W4 W* {( n2 v5 s
0132D852 . 8B4F 1C mov ecx, dword ptr [edi+1C]
! j6 ]/ S( h8 [0132D855 . 33C0 xor eax, eax
7 E! t* n/ e) D0 N5 d0132D857 . EB 07 jmp short 0132D860 , f5 R6 B! G" A4 D: G" h U, J
0132D859 . 8DA424 000000>lea esp, dword ptr [esp] 5 S) ]" m: _, M" w% p' q' o
0132D860 > 8D50 20 lea edx, dword ptr [eax+20] 5 u8 k' W& W! h$ M' ?: }
0132D863 . 66:899444 A00>mov word ptr [esp+eax*2+A0], dx 7 t$ S) _( S/ @4 [0 [9 S
0132D86B . 83C0 01 add eax, 1
% e' \! ]) u4 m0132D86E . 3BC1 cmp eax, ecx / b, u u& j! C* X* y+ j2 M
0132D870 .^ 7C EE jl short 0132D860 9 ^) R. `0 T0 f
0132D872 . 8D8424 A00000>lea eax, dword ptr [esp+A0] , l- Z. @# G/ Y; B' C
0132D879 . 894424 0C mov dword ptr [esp+C], eax
' S/ c- [; ]8 m! q& x- s* |% U# A0132D87D > 8B47 0C mov eax, dword ptr [edi+C] . b/ Z3 b* w! B, \1 q! T
0132D880 . 85C0 test eax, eax
0 Q& w6 D5 X* s5 H* C5 M. L* c, e0132D882 . 8D5F 0C lea ebx, dword ptr [edi+C] # Z+ P; x( X& c5 L P& ^9 ~
0132D885 . 75 05 jnz short 0132D88C
' |7 t8 {$ r- [7 e- R' T0132D887 . B8 16263901 mov eax, 01392616
& {- \% h1 k4 o" q- e# p0132D88C > 6A 00 push 0
- ~% `8 c3 L! p( Q$ H0132D88E . 6A 00 push 0 + A; e( y# C/ g- U7 H3 x4 ~
0132D890 . 50 push eax
U: e: Z. [; Q- X! D' T8 z0132D891 . 6A 1F push 1F ) K- } B; F2 M7 d7 [+ l
0132D893 . 8BCE mov ecx, esi 3 F7 ^$ N+ ^7 l6 K, H6 m
0132D895 . E8 FA8E0300 call <jmp.&CK2.CKContext::CreateObjec>
u0 t: U4 r: _* I d. z0132D89A . 8B8C24 C80400>mov ecx, dword ptr [esp+4C8] . i9 z+ y9 I( k& I+ p' Y: l! G. O
0132D8A1 . 6A 00 push 0
! r9 b+ b0 W( @5 m0132D8A3 . 6A 20 push 20
# [$ {4 O9 K9 U% z4 l0132D8A5 . 51 push ecx
# {: U4 A) v3 b/ q1 ~0132D8A6 . 8B8C24 D00400>mov ecx, dword ptr [esp+4D0] $ U* G1 u1 A( E: B9 D& _
0132D8AD . 8947 24 mov dword ptr [edi+24], eax # _( ]) e5 h7 v3 d
0132D8B0 . 8B10 mov edx, dword ptr [eax] ! J6 i& ]: n2 k* F" g; M1 m
0132D8B2 . 8B52 54 mov edx, dword ptr [edx+54]
6 u7 x* J! u* A: G( p; m+ X0132D8B5 . 51 push ecx " _$ p" W3 x) W5 F; }! g0 T% I
0132D8B6 . 8BC8 mov ecx, eax $ x( N' Y/ T% [3 U O/ T+ Z
0132D8B8 . FFD2 call edx * K( }9 R: E7 X- f
0132D8BA . 85C0 test eax, eax
$ F. g& v0 N' r/ f" p! d) K% T0132D8BC . 75 07 jnz short 0132D8C5 ) E% y/ x" G/ p( I5 Z) ~
0132D8BE . 32C0 xor al, al 1 T% I) j, s$ R/ k
0132D8C0 . E9 B4030000 jmp 0132DC79
1 o& W) q }5 [8 Z, N8 g0132D8C5 > 8B4F 24 mov ecx, dword ptr [edi+24] , Y: x; y3 D& i- J- d- }* r
0132D8C8 . 8B01 mov eax, dword ptr [ecx]
/ a6 E( L2 h; g0132D8CA . 8B80 88000000 mov eax, dword ptr [eax+88]
X# Q, u; O# k) j& p0132D8D0 . 55 push ebp
1 Y' W4 ?0 t3 p$ E8 [' m0132D8D1 . 8D5424 70 lea edx, dword ptr [esp+70] , Q; R% e$ f- z+ `! @
0132D8D5 . 52 push edx
9 s- G6 n! }5 ]( c/ m2 a0132D8D6 . FFD0 call eax
! L7 c+ c" r- R/ |" ~7 L, |0132D8D8 . 6A 00 push 0 ; /hDC = NULL ' Q& K0 s' w% _, L( n8 V
0132D8DA . FF15 34A43801 call dword ptr [<&GDI32.CreateCompati>; \CreateCompatibleDC 3 M0 |4 ^3 L6 \$ I1 w
0132D8E0 . 8D4C24 70 lea ecx, dword ptr [esp+70] ; R8 d. V' @7 d+ n4 g$ n# e
0132D8E4 . 51 push ecx ! f; i) S& o+ z9 s5 Q; Z/ Z9 N
0132D8E5 . 8BE8 mov ebp, eax ' u3 a$ X3 o& o: m& `
0132D8E7 . FF15 24A83801 call dword ptr [<&VxMath.VxCreateBitm>; VxMath.VxCreateBitmap 8 L/ B) p2 O7 {& Q
0132D8ED . 8B35 70A43801 mov esi, dword ptr [<&GDI32.SelectOb>; GDI32.SelectObject 0 b" U) {* F9 d4 \0 Z- y! x
0132D8F3 . 83C4 04 add esp, 4
& V' b5 Y- e7 G# d' K0132D8F6 . 50 push eax ; /hObject ) {& t7 y$ k8 c5 U0 y
0132D8F7 . 55 push ebp ; |hDC
+ r5 w j6 s. J* Y7 ~: C. A1 |6 F) b1 L0132D8F8 . 894424 2C mov dword ptr [esp+2C], eax ; |
* ~# `+ d9 u1 R. @% r+ U, @; I0132D8FC . FFD6 call esi ; \SelectObject
2 {$ S: ]3 l- r4 p- Q# E! w0 Y3 q0132D8FE . 8B5424 28 mov edx, dword ptr [esp+28] / A) z3 \& ^$ F& G( L
0132D902 . 52 push edx
" O, Q( L# [% I: A+ r' v# W0132D903 . 8BCB mov ecx, ebx
- \2 \7 C; l6 }: J0132D905 . 894424 40 mov dword ptr [esp+40], eax
3 O" z# ]+ G3 ^" I# [8 v. q0132D909 . FF15 BCA83801 call dword ptr [<&VxMath.XString::ope>; VxMath.XString::operator= 1 C( l1 r5 P: ]6 W! |' c
0132D90F . 8B9C24 B80400>mov ebx, dword ptr [esp+4B8] ' ]6 X0 f. n) [/ x- W# e0 J" x
0132D916 . 6A 48 push 48 ; /Divisor = 48 (72.) ' l* a+ O7 j: t. F
0132D918 . 6A 5A push 5A ; |/Index = LOGPIXELSY - W \$ E R$ g1 Z# N+ U# d
0132D91A . 55 push ebp ; ||hDC x: K, `: G% G% W. d- a
0132D91B . 895F 14 mov dword ptr [edi+14], ebx ; ||
3 O; I1 i( M: ^) @: k+ e0132D91E . FF15 64A43801 call dword ptr [<&GDI32.GetDeviceCaps>; |\GetDeviceCaps
+ i+ T# s# E' H4 @' b& j* i2 @$ r+ I0132D924 . 50 push eax ; |Multiplier E: b2 v2 c, C- J4 R
0132D925 . 53 push ebx ; |Multiplicand 1 `7 |( z+ t2 `; V2 R1 V, E, j
0132D926 . FF15 DCA43801 call dword ptr [<&KERNEL32.MulDiv>] ; \MulDiv ! M) x8 p, m; P: Q6 u
0132D92C . 8B4C24 1C mov ecx, dword ptr [esp+1C]
2 _5 I/ ^ n# U% q$ x0132D930 . 8B9424 C00400>mov edx, dword ptr [esp+4C0] ' e: B; F/ `2 Q2 g0 |" {
0132D937 . 51 push ecx ; /FaceName
4 ?; A; j: j' `; o0132D938 . 8B8C24 C80400>mov ecx, dword ptr [esp+4C8] ; |
( N6 O0 q2 f6 O- ~$ h. F8 n0132D93F . 6A 00 push 0 ; |PitchAndFamily = DEFAULT_PITCH|FF_DONTCARE
/ G: F- F k; }# v8 h6 o0 N0132D941 . 52 push edx ; |Quality 7 f, o1 \& o' O# g" n
0132D942 . 6A 00 push 0 ; |ClipPrecision = CLIP_DEFAULT_PRECIS
, V# ~% { w# U9 `8 r( d" |/ i0132D944 . 6A 07 push 7 ; |OutputPrecision = OUT_TT_ONLY_PRECIS
) x; U4 v0 C# _/ s0132D946 . 6A 01 push 1 ; |CharSet = DEFAULT_CHARSET j" w4 ~5 ?& F9 `
0132D948 . 6A 00 push 0 ; |StrikeOut = FALSE
8 n3 {3 z6 I* K0132D94A . 8BD1 mov edx, ecx ; | 4 d+ S2 t5 P* g5 y7 B" |3 k6 _0 B
0132D94C . D1EA shr edx, 1 ; |
1 u0 H8 [/ b/ ]5 \2 g: R% J+ z0132D94E . 83E2 01 and edx, 1 ; |
) c1 ? Q( M/ _ ]& o: L4 b% S0132D951 . 52 push edx ; |Underline
! ?- z0 L6 R+ l5 \" m' P0132D952 . 83E1 01 and ecx, 1 ; | 6 G* S6 \ L0 C2 G
0132D955 . 51 push ecx ; |Italic 1 @- | U; _, Q$ ^5 A' {. O
0132D956 . 8B8C24 E00400>mov ecx, dword ptr [esp+4E0] ; |
' b5 b: L5 t, i" ~0132D95D . 51 push ecx ; |Weight 9 f/ Z" Q0 L! I# p
0132D95E . 6A 00 push 0 ; |Orientation = 0 . ]8 O' Y. o4 f0 S. }
0132D960 . 6A 00 push 0 ; |Escapement = 0
* V \' \# q6 s" y: ~0132D962 . F7D8 neg eax ; |
r9 W: l: }7 N2 b0132D964 . 6A 00 push 0 ; |Width = 0 9 v/ x* f: q8 e: L* a# ]" S5 r J9 a
0132D966 . 50 push eax ; |Height
+ R3 X8 a- p8 z: |# R. X0 ]0132D967 . FF15 60A43801 call dword ptr [<&GDI32.CreateFontA>] ; \CreateFontA % |9 D. M, A+ i9 }& I# E
0132D96D . 50 push eax W' w+ B2 v$ |0 V t
0132D96E . 55 push ebp + l1 H: a3 v" T6 [
0132D96F . 894424 38 mov dword ptr [esp+38], eax ( j! U3 W* x6 k! _! g) K
0132D973 . FFD6 call esi $ f/ d& V% d8 z, o9 F! M8 @
0132D975 . 8D5424 58 lea edx, dword ptr [esp+58] 7 Y E Q7 z2 C, y
0132D979 . 52 push edx ; /pSize
- ?: h7 o( O: y5 J5 S# S/ l, B0132D97A . 6A 01 push 1 ; |TextLen = 1 2 a, I" r, B | O( T$ I
0132D97C . 68 4CED3801 push 0138ED4C ; |Text = "A" # O- |3 D* |7 y4 @5 P
0132D981 . 55 push ebp ; |hDC
2 n4 e9 t: q6 G! n0 Z0132D982 . 894424 44 mov dword ptr [esp+44], eax ; | 0 ~1 |2 s. I6 a4 w; u4 s
0132D986 . FF15 5CA43801 call dword ptr [<&GDI32.GetTextExtent>; \GetTextExtentPointA ; p: }* k7 _2 h/ |+ a, k
0132D98C . 8B4424 5C mov eax, dword ptr [esp+5C]
3 J. j3 m0 O4 j1 L5 K5 e0132D990 . 8B77 1C mov esi, dword ptr [edi+1C] . c X2 ~5 z3 i! y0 \5 j
0132D993 . 8947 18 mov dword ptr [edi+18], eax
! I9 q$ z$ H; `0132D996 . 33C9 xor ecx, ecx + ]4 o; q# h; s: |0 v
0132D998 . 8BC6 mov eax, esi ' c V1 V$ Z3 O h2 f g. Y
0132D99A . BA 20000000 mov edx, 20 4 B# \" F" G4 J, Z: W$ P
0132D99F . F7E2 mul edx 2 z6 Q$ P' Y* F9 F$ A
0132D9A1 . 0F90C1 seto cl
! j: D- X& b% {- H$ W0132D9A4 . F7D9 neg ecx
2 W/ \$ P3 B8 ~- V" s- V; I0132D9A6 . 0BC8 or ecx, eax : {2 G# M: E! o& P4 T C1 b6 |
0132D9A8 . 51 push ecx 9 v( q7 @* o4 U
0132D9A9 . E8 964A0500 call <jmp.&MSVCR80.operator new>
& W& J$ v! b( X0132D9AE . 83C4 04 add esp, 4
" R0 D) N% I3 C+ z5 e8 `9 [0132D9B1 . 85C0 test eax, eax $ F! I7 x! H7 |5 C# M/ N
0132D9B3 . 74 28 je short 0132D9DD 4 X+ _7 X4 A8 R3 f# i
0132D9B5 . 83C6 FF add esi, -1 - N, Q M0 N: \$ v* ~6 _
0132D9B8 . 78 25 js short 0132D9DF
" Y* @; w' A9 [- s5 u0132D9BA . D9EE fldz
+ e* o3 D* r% B) V$ }, h- f' A0132D9BC . 8D48 0C lea ecx, dword ptr [eax+C] 8 V" \5 \' p6 D# o" j1 ~
0132D9BF > D951 FC fst dword ptr [ecx-4]
?+ ?. t8 D# ]& B0 \9 j( w0132D9C2 . 83C1 20 add ecx, 20 5 Q- R o9 Z v
0132D9C5 . 83EE 01 sub esi, 1
& d+ u8 o" ]$ j/ D0132D9C8 . D951 E0 fst dword ptr [ecx-20] * w& _6 w/ _$ \
0132D9CB . D951 D4 fst dword ptr [ecx-2C] - E9 {9 N6 I+ T, }3 Z' t4 h* s
0132D9CE . D951 D8 fst dword ptr [ecx-28]
; z4 u ^" K7 f) f, o: x4 X0132D9D1 . D951 DC fst dword ptr [ecx-24]
" q1 v7 D* P2 k0 _4 Q- {+ N0132D9D4 . D951 E0 fst dword ptr [ecx-20]
5 \) p8 X" B3 F# m, e; O* ^0132D9D7 .^ 79 E6 jns short 0132D9BF
* c3 L: p0 {; L6 V0 \4 o$ ]* a0132D9D9 . DDD8 fstp st $ \* n# Q" s/ Z/ B2 x
0132D9DB . EB 02 jmp short 0132D9DF
. ^* }, P8 g" d! ]% F$ ^4 I0132D9DD > 33C0 xor eax, eax * w5 o7 i+ Y# U" G& Z
0132D9DF > 8B8C24 C80400>mov ecx, dword ptr [esp+4C8] 6 f2 f6 N% [$ v, D' G$ C
0132D9E6 . 8947 20 mov dword ptr [edi+20], eax
b' U" Z, D: i( i0132D9E9 . 8B8424 CC0400>mov eax, dword ptr [esp+4CC]
! b* ?' \; k" A' @0132D9F0 . 50 push eax ; /Bottom
0 o$ ^ g) q H) w$ T; h! M0132D9F1 . 51 push ecx ; |Right
4 S! S) s9 m. `0132D9F2 . 6A 00 push 0 ; |Top = 0
1 Y9 c" V) q1 r% m+ C0132D9F4 . 6A 00 push 0 ; |Left = 0 2 Z+ Q8 L8 Y' q5 x& H
0132D9F6 . 8D5424 70 lea edx, dword ptr [esp+70] ; |
! }" `: P% R) u H t& N0132D9FA . 52 push edx ; |pRect
' ~3 X$ w3 e) d* r% R! }7 m: ~; V0132D9FB . FF15 64A73801 call dword ptr [<&USER32.SetRect>] ; \SetRect ) f4 v+ w5 S, b$ N( P8 J; t( X
0132DA01 . 6A 04 push 4 ; /ObjType = BLACK_BRUSH
7 r. m1 Y4 T% m0 [0132DA03 . FF15 58A43801 call dword ptr [<&GDI32.GetStockObjec>; \GetStockObject
; h! H+ ]. l1 U- _0132DA09 . 50 push eax ; /hBrush ! w2 q o# S3 E1 B9 h; F
0132DA0A . 8D4424 64 lea eax, dword ptr [esp+64] ; | ) B- M, a4 ?% {4 r& w1 G
0132DA0E . 50 push eax ; |pRect
& f2 Q% @4 u! M9 L. Q' s0132DA0F . 55 push ebp ; |hDC
5 n% ]9 e( {9 p5 s4 v( \; d0132DA10 . FF15 68A73801 call dword ptr [<&USER32.FillRect>] ; \FillRect
0 W6 {1 y7 `: j0132DA16 . 6A 00 push 0 ; /Color = <BLACK>
. J% }4 l% o( e# v0132DA18 . 55 push ebp ; |hDC
5 M Z9 `$ W4 K- N4 l# a4 ^: T0132DA19 . FF15 54A43801 call dword ptr [<&GDI32.SetBkColor>] ; \SetBkColor % m' X _. k7 s( @% @: Z
0132DA1F . 68 FFFFFF00 push 0FFFFFF ; /Color = <WHITE>
- e$ D' l: Z* e- E* s. L9 n$ }+ g4 { l0132DA24 . 55 push ebp ; |hDC & P0 g' a" \" {+ k! ?
0132DA25 . FF15 50A43801 call dword ptr [<&GDI32.SetTextColor>>; \SetTextColor
! E0 p5 y1 b5 o! ] n0132DA2B . 6A 01 push 1 ; /BkMode = TRANSPARENT
% i8 v7 c! N8 m# f+ V( n9 `0132DA2D . 55 push ebp ; |hDC ) d" c: c4 z: M, T
0132DA2E . FF15 4CA43801 call dword ptr [<&GDI32.SetBkMode>] ; \SetBkMode
2 R6 P, H. o e0 n5 M+ {, C( J" j, n0132DA34 . 33F6 xor esi, esi
8 C1 w# R& T- G8 e8 i' d9 H0132DA36 . 3977 1C cmp dword ptr [edi+1C], esi
$ F: X" c; N, b4 G) E0 E0132DA39 . BB 01000000 mov ebx, 1
3 M# m; n6 Y0 m+ I) l) k0132DA3E . 895C24 18 mov dword ptr [esp+18], ebx
: i$ ^$ {% Q. d+ z0132DA42 . 897424 14 mov dword ptr [esp+14], esi
$ @+ ^' @9 ?0 A1 D2 U3 A& D. i4 o0132DA46 . 897424 1C mov dword ptr [esp+1C], esi
$ X6 c9 Y( p1 i0132DA4A . 0F8E 20010000 jle 0132DB70
+ B S# i- U( e1 h. ?0132DA50 . DB8424 C80400>fild dword ptr [esp+4C8]
3 v0 ~, c7 F7 s% h9 k/ Y9 U( F; J0132DA57 . 8B4424 10 mov eax, dword ptr [esp+10]
% k5 f0 F) J2 _) O" H1 U) L& x0132DA5B . 897424 20 mov dword ptr [esp+20], esi " w7 j- F$ a! g' ?0 ~3 E
0132DA5F . 894424 10 mov dword ptr [esp+10], eax ; e# g c% Z! \& l1 n! T( B" b! _
0132DA63 . D95C24 38 fstp dword ptr [esp+38]
: @ L9 B9 i! B, J: z. J0132DA67 . DB8424 CC0400>fild dword ptr [esp+4CC]
# V" g* i5 a2 P: c( R0132DA6E . D95C24 2C fstp dword ptr [esp+2C] - }1 a) h$ r: q
0132DA72 . EB 04 jmp short 0132DA78 : I0 i# L. _4 G+ T7 Q2 l3 [
0132DA74 > 8B4424 10 mov eax, dword ptr [esp+10] % B* P" X- J2 w0 `, X. c4 }
0132DA78 > 8B77 20 mov esi, dword ptr [edi+20] : v9 I. H( n( H
0132DA7B . 66:8B08 mov cx, word ptr [eax]
0 I4 g0 h6 g% T1 M0 c: R% l0132DA7E . 037424 20 add esi, dword ptr [esp+20] ) e! d# ]" z3 L7 J
0132DA82 . 66:894E 10 mov word ptr [esi+10], cx
2 E" n, g" U. c6 v0132DA86 . 0FB700 movzx eax, word ptr [eax] + r/ [3 c% ^2 E9 j
0132DA89 . 8D4E 14 lea ecx, dword ptr [esi+14]
* c4 l0 m1 v/ Y) x; M* T0132DA8C . 51 push ecx ; /pABC
+ P4 F0 t. C" z8 s* f/ L+ U: B0 ]+ _$ [0132DA8D . 50 push eax ; |LastChar
# V) y5 F3 Q" ^5 N- F0132DA8E . 50 push eax ; |FirstChar % m! E0 }' w$ u4 l/ i
0132DA8F . 55 push ebp ; |hDC g9 I; F! y+ [$ g/ d% J
0132DA90 . FF15 48A43801 call dword ptr [<&GDI32.GetCharABCWid>; \GetCharABCWidthsW
8 W* G3 u x% g5 O! ~: z2 M0 I0132DA96 . 8B5424 10 mov edx, dword ptr [esp+10] 4 [' e4 t, E' I& Y$ [, k# F
0132DA9A . 66:833A 20 cmp word ptr [edx], 20 " {5 _& |/ o, |4 V+ K; l
0132DA9E . 73 10 jnb short 0132DAB0 7 @/ s# A) y8 b7 t
0132DAA0 . C746 14 00000>mov dword ptr [esi+14], 0 8 w1 ~. `- l% e( M
0132DAA7 . C746 1C 00000>mov dword ptr [esi+1C], 0 , Q/ c1 n, v6 L
0132DAAE . EB 0C jmp short 0132DABC ' H. f/ Q% ]% |
0132DAB0 > 8346 14 FF add dword ptr [esi+14], -1 ' F' n* t7 @7 I2 p' x
0132DAB4 . 8346 18 02 add dword ptr [esi+18], 2 ( L0 L& a3 {4 r; V2 {: |6 T
0132DAB8 . 8346 1C FF add dword ptr [esi+1C], -1 / \( x) i @; Q0 }( }* [
0132DABC > 8B4E 18 mov ecx, dword ptr [esi+18] * R) ~7 F1 ~/ t n3 G5 h$ H/ G% v
0132DABF . 8D4419 01 lea eax, dword ptr [ecx+ebx+1] / }$ t' z" w; d* ?( [
0132DAC3 . 3B8424 C80400>cmp eax, dword ptr [esp+4C8] ' l1 R! R3 @1 z3 k: I4 x. J
0132DACA . 8B4424 14 mov eax, dword ptr [esp+14] s0 E/ @5 ?4 ^) H* a: C
0132DACE . 72 14 jb short 0132DAE4
: S2 {$ b: e- \4 h- L; ^; |" F0132DAD0 . 8B57 18 mov edx, dword ptr [edi+18]
# L/ x7 Z0 |7 A7 ]5 f: R7 l2 Z0132DAD3 . BB 01000000 mov ebx, 1 ; T9 d C) B! u4 \
0132DAD8 . 8D4410 01 lea eax, dword ptr [eax+edx+1]
! z* w w5 R" F' A' j0132DADC . 895C24 18 mov dword ptr [esp+18], ebx 6 _1 z/ V6 F7 f3 g
0132DAE0 . 894424 14 mov dword ptr [esp+14], eax
/ d" Q% O( v+ P1 }' }" J0132DAE4 > DB4424 18 fild dword ptr [esp+18] ) m; X& Q) a0 ^
0132DAE8 . 03CB add ecx, ebx
/ P) x3 A0 h4 \* K* G$ X0132DAEA . 85C9 test ecx, ecx
& t& G9 B- v* g0132DAEC . D94424 38 fld dword ptr [esp+38]
2 {, E; V; M; M: J5 ]0132DAF0 . D9C0 fld st
$ e0 {' B. `& E3 R% Y2 v0132DAF2 . 894C24 18 mov dword ptr [esp+18], ecx 5 m. ^7 t, @) l( ]
0132DAF6 . DEFA fdivp st(2), st
1 V- b w5 n: X; d( B! f! ?0132DAF8 . D9C9 fxch st(1) 9 n! w% n7 `' S
0132DAFA . D91E fstp dword ptr [esi] : b/ i& y6 k- {$ b
0132DAFC . DB4424 14 fild dword ptr [esp+14] 3 S, c! l& V8 h4 h) }
0132DB00 . D94424 2C fld dword ptr [esp+2C]
2 `9 t+ I* z0 y0 u- f* b3 {; h9 l! m0132DB04 . D9C0 fld st V* U% u4 Y- C6 ~
0132DB06 . DEFA fdivp st(2), st # R7 ]- G- Z4 N7 b) ]
0132DB08 . D9C9 fxch st(1) % E# H2 @0 C. j% q( J+ M
0132DB0A . D95E 04 fstp dword ptr [esi+4]
5 x d& _7 {- y' H5 J, O( V/ e0132DB0D . DB4424 18 fild dword ptr [esp+18] 4 `% [; q$ [# D0 s/ _
0132DB11 . 7D 06 jge short 0132DB19 0 K& l. c4 h6 H+ m
0132DB13 . D805 50B03801 fadd dword ptr [138B050] 5 U* u( C& {. W# B; L5 \; x# _$ B
0132DB19 > DEF2 fdivrp st(2), st
4 j a E, J2 m k6 l2 ~# l0132DB1B . 8B5424 10 mov edx, dword ptr [esp+10] 9 j* s: [. h, s9 c# s
0132DB1F . 6A 01 push 1 ; /StringSize = 1
/ V% n. b6 @4 o h/ j# \6 n5 d/ Y) p0132DB21 . 52 push edx ; |String
8 p* w1 w' E3 z1 w9 m0132DB22 . 50 push eax ; |YStart
" Q% K1 k% J7 E! [0132DB23 . D9C9 fxch st(1) ; |
0 K- r1 x* m# U5 w3 H) S: e8 K9 ?0132DB25 . D95E 08 fstp dword ptr [esi+8] ; | + k% ]0 N7 O1 L( B; I& }
0132DB28 . 8B4F 18 mov ecx, dword ptr [edi+18] ; |
; G0 l" |5 {1 l" V0 t0132DB2B . 03C8 add ecx, eax ; | ; E' z9 E" h7 R" n1 Y
0132DB2D . 894C24 24 mov dword ptr [esp+24], ecx ; |
8 S: o& R; P1 h" ?1 a0132DB31 . DA7C24 24 fidivr dword ptr [esp+24] ; | $ j# ^& s8 r* w, c+ c. N
0132DB35 . 8BC3 mov eax, ebx ; |
! b0 K9 g6 f6 Z7 J( z: K9 [, |0132DB37 . 2B46 14 sub eax, dword ptr [esi+14] ; | ' G) v' @% g. |5 o: `% C2 J3 t
0132DB3A . 50 push eax ; |XStart
' [) X* _% o! m5 V% E0132DB3B . 55 push ebp ; |hDC
, m7 ^7 a5 i: {2 ?2 q0132DB3C . D95E 0C fstp dword ptr [esi+C] ; | ; r/ Y4 N4 H" q; G) X1 q
0132DB3F . FF15 44A43801 call dword ptr [<&GDI32.TextOutW>] ; \TextOutW . a1 D, j& w# I3 o! t2 e! f, F" W
0132DB45 . 8B4424 1C mov eax, dword ptr [esp+1C] 1 r- B5 }1 c+ e! r
0132DB49 . 8B4E 18 mov ecx, dword ptr [esi+18]
9 x) t% Y; p* p* {" j& i0132DB4C . 834424 20 20 add dword ptr [esp+20], 20
* j* w! q& }5 F% m* j! e1 X0132DB51 . 834424 10 02 add dword ptr [esp+10], 2 & Y1 e7 n( D! K3 N6 D
0132DB56 . 83C0 01 add eax, 1
) ^3 e1 O- @( y! @! s0132DB59 . 3B47 1C cmp eax, dword ptr [edi+1C]
4 O$ e; E/ g- M3 \0132DB5C . 8D5C0B 01 lea ebx, dword ptr [ebx+ecx+1] 9 R9 O( Z* H1 _# C/ f
0132DB60 . 895C24 18 mov dword ptr [esp+18], ebx $ q7 u9 j. D" n% ]- h
0132DB64 . 894424 1C mov dword ptr [esp+1C], eax 2 _) B9 B7 H3 p7 [( q
0132DB68 .^ 0F8C 06FFFFFF jl 0132DA74 " X3 Q ^: d# U5 {2 |/ k
0132DB6E . 33F6 xor esi, esi ~8 ~! E! M9 a0 W
0132DB70 > 8B4F 24 mov ecx, dword ptr [edi+24]
7 O8 K& o7 X# t4 z' U3 x0132DB73 . 6A FF push -1 ' k" l" i% A7 m7 A5 J' P0 k
0132DB75 . 83C1 38 add ecx, 38 W# j& M9 z% r' w( \- d
0132DB78 . E8 278E0300 call <jmp.&CK2.CKBitmapData::LockSurf>
: y4 {' j' Z( r* q! d( w) O0132DB7D . 8BD8 mov ebx, eax 5 ^2 w: G$ j8 J8 v8 W
0132DB7F . 3BDE cmp ebx, esi . B& i- z2 s* k7 T& ]* [. A2 i0 t
0132DB81 . 74 74 je short 0132DBF7 ( A- s8 t. o! l5 Y4 E, m( P
0132DB83 . 8B4424 24 mov eax, dword ptr [esp+24]
4 n# V0 ]% u; b# f7 {( g# ?0132DB87 . 8D5424 40 lea edx, dword ptr [esp+40]
/ J9 `( S& Y. p& ]" j' f- H0132DB8B . 52 push edx ; /Buffer
{! k+ I* } s$ ]0132DB8C . 6A 18 push 18 ; |BufSize = 18 (24.)
( |) a' O4 d- L& X/ ]; O0132DB8E . 50 push eax ; |hObject , \4 X4 E) \1 B. ?
0132DB8F . FF15 40A43801 call dword ptr [<&GDI32.GetObjectA>] ; \GetObjectA
* s1 z8 k7 [, U* x, x6 J1 Z0132DB95 . 8B4C24 48 mov ecx, dword ptr [esp+48] : Z g; p$ l! _% q% `# x D" Y
0132DB99 . 8D71 FF lea esi, dword ptr [ecx-1]
7 P1 g k0 C$ s1 O8 [. B0132DB9C . 0FAF7424 4C imul esi, dword ptr [esp+4C] ' v) v! H2 N o1 m
0132DBA1 . 037424 54 add esi, dword ptr [esp+54]
$ q( X: F6 }. W" h0132DBA5 . 85C9 test ecx, ecx ' m3 v& o$ M7 r! f
0132DBA7 . C74424 14 000>mov dword ptr [esp+14], 0
2 @2 u0 j* N# B3 l# S5 h' `( a0132DBAF . 7E 46 jle short 0132DBF7
: a* L% l0 `5 [: c' x. ?" ^2 k% c0132DBB1 . 8B5424 44 mov edx, dword ptr [esp+44]
# B" W$ s0 u; x. k8 v1 F0132DBB5 > 33C0 xor eax, eax
$ Y, O8 X4 O) o0132DBB7 . 85D2 test edx, edx # }0 i* y0 S- g! L6 r
0132DBB9 . 7E 26 jle short 0132DBE1
2 J0 {, [5 K9 x: R- @) V0132DBBB . 8BCE mov ecx, esi
5 S3 e' }0 M! J/ {0132DBBD . 8D49 00 lea ecx, dword ptr [ecx] & r0 Q, A# G0 u8 |1 @- T
0132DBC0 > 0FB611 movzx edx, byte ptr [ecx]
! x6 ^. ]8 {8 S7 P1 Q' D0132DBC3 . C1E2 18 shl edx, 18
9 X+ \7 r. m* c9 r. \2 [3 x0132DBC6 . 81CA FFFFFF00 or edx, 0FFFFFF
! G2 C0 H( p2 J5 S0132DBCC . 891483 mov dword ptr [ebx+eax*4], edx : y7 j% m& A0 I \0 S3 Y* f
0132DBCF . 8B5424 44 mov edx, dword ptr [esp+44]
! n- B. j( H1 j" d. D0132DBD3 . 83C0 01 add eax, 1 & i1 f6 }+ A) Q% a* A
0132DBD6 . 83C1 03 add ecx, 3
/ f/ E1 H/ g/ G e' L/ f) f0132DBD9 . 3BC2 cmp eax, edx
6 F: K3 X! B( J7 }0 Q% E, x# `0132DBDB .^ 7C E3 jl short 0132DBC0 7 r& \3 |$ T" g t( ^6 F a9 D
0132DBDD . 8B4C24 48 mov ecx, dword ptr [esp+48] $ k( @+ @3 k$ I- K
0132DBE1 > 8B4424 14 mov eax, dword ptr [esp+14] , J5 R' L2 S$ q, j; b& T* ?: D0 X
0132DBE5 . 2B7424 4C sub esi, dword ptr [esp+4C]
! a- z; E0 A' f4 f* I6 E" [# J9 z0132DBE9 . 83C0 01 add eax, 1
3 w0 H5 Q: @1 R) G& M0132DBEC . 3BC1 cmp eax, ecx 0 Y8 H% O2 r$ F5 ]. \. c! H/ V
0132DBEE . 8D1C93 lea ebx, dword ptr [ebx+edx*4]
) Q/ G9 P! C. L( v0132DBF1 . 894424 14 mov dword ptr [esp+14], eax
0 G3 n. d/ ]7 t0132DBF5 .^ 7C BE jl short 0132DBB5
( G v! a C, |3 Y3 g+ w0132DBF7 > 8B4F 24 mov ecx, dword ptr [edi+24]
6 a/ e& p$ m+ I. L+ o, }0132DBFA . 6A FF push -1
1 Q$ ?% ?- L$ W) g! R- R0132DBFC . 83C1 38 add ecx, 38 " _4 @: c" k ^8 }/ ~
0132DBFF . E8 9A8D0300 call <jmp.&CK2.CKBitmapData::ReleaseS> 7 r0 \2 P: ~! x6 L9 A# d' m% k- |
0132DC04 . 8B4424 34 mov eax, dword ptr [esp+34]
/ v+ {/ a, K' y% J" }7 a) f9 ^0132DC08 . 8B35 70A43801 mov esi, dword ptr [<&GDI32.SelectOb>; GDI32.SelectObject
1 p+ N) h- z% A0 c5 j0132DC0E . 50 push eax ; /hObject
3 k+ L3 }4 `9 A& Q7 ~* U! Y+ V0132DC0F . 55 push ebp ; |hDC
$ A$ J1 U/ L4 K5 ~& N, k5 \0132DC10 . FFD6 call esi ; \SelectObject / t- h. z0 @4 H& m
0132DC12 . 8B4C24 30 mov ecx, dword ptr [esp+30]
7 c) v1 }7 H0 B* F% {0132DC16 . 51 push ecx
/ p8 M2 k2 l6 U/ e& n0132DC17 . FF15 28A83801 call dword ptr [<&VxMath.VxDeleteFont>; VxMath.VxDeleteFont # P' ~3 H' T3 D5 z5 A& }
0132DC1D . 8B5424 40 mov edx, dword ptr [esp+40]
( B, O4 s6 S6 P* b9 Y2 _/ k; t0132DC21 . 83C4 04 add esp, 4
4 M+ v1 j$ `6 g, z" N0 e& I/ J0132DC24 . 52 push edx ) i0 ? g. G2 v1 x1 u
0132DC25 . 55 push ebp 6 _1 s1 X% h& E9 a+ B& W
0132DC26 . FFD6 call esi 9 Z9 T# w0 g% t E
0132DC28 . 8B4424 24 mov eax, dword ptr [esp+24]
" O3 ~6 i; @+ c! W/ X1 @1 [# Z0132DC2C . 50 push eax 3 I1 q, b9 D9 s& l+ B6 B
0132DC2D . FF15 2CA83801 call dword ptr [<&VxMath.VxDeleteBitm>; VxMath.VxDeleteFont
3 `# F/ z/ b# ~' s0 F: @6 Z% j- A0132DC33 . 83C4 04 add esp, 4
1 ]/ I' x- \* z0132DC36 . 55 push ebp ; /hDC
! X: n- U& j! ~% e9 g1 \5 ]0132DC37 . FF15 3CA43801 call dword ptr [<&GDI32.DeleteDC>] ; \DeleteDC
# K+ e W3 L+ ?0132DC3D . 8B4C24 28 mov ecx, dword ptr [esp+28] % n5 ^$ l3 ]5 Y
0132DC41 . 6A 00 push 0 ) l7 z4 o; [: Z N4 Q# ?
0132DC43 . 51 push ecx ( I; \3 @+ k! d+ `7 ~4 @
0132DC44 . 8B4F 24 mov ecx, dword ptr [edi+24]
$ d( }- k& }1 |+ v, T, _! N4 Y) X' [0132DC47 . E8 4C8A0300 call <jmp.&CK2.CKObject::SetName>
" f8 ~; T4 {* Q% F% f! I0132DC4C . 8B4F 24 mov ecx, dword ptr [edi+24]
* Q+ Q6 }7 z4 k( v T. Y- w0132DC4F . 6A 01 push 1 " Q8 O! s2 e; J$ T' b. g
0132DC51 . 83C1 38 add ecx, 38 . P8 v6 h& |* ^
0132DC54 . E8 7B8D0300 call <jmp.&CK2.CKBitmapData::SetDesir>
" z3 y) R1 H% }; S5 t0132DC59 . 8B4F 24 mov ecx, dword ptr [edi+24]
" Q# O: Z H/ _; b' w0132DC5C . 8B11 mov edx, dword ptr [ecx]
9 m" e3 F5 V5 h! l1 U% ?5 W0132DC5E . 8B42 78 mov eax, dword ptr [edx+78]
* X! b) T8 {) R9 B0 I1 N0 S& u# C0132DC61 . 6A 00 push 0
& o, O# \4 N; m6 s$ H: p6 ^& ]0 ]0132DC63 . FFD0 call eax " _( o- }) z" O& G
0132DC65 . 8B4F 18 mov ecx, dword ptr [edi+18] % I6 y1 M# c5 y1 I% g
0132DC68 . 034C24 14 add ecx, dword ptr [esp+14] 3 P0 C6 d- W$ e
0132DC6C . 33C0 xor eax, eax * O' J) L+ y0 m6 O- p) u1 W
0132DC6E . 3B8C24 CC0400>cmp ecx, dword ptr [esp+4CC] 4 v' S; F2 U/ f) m/ h! p* U
0132DC75 . 5D pop ebp
4 k G; O+ a4 C8 o9 E. c0132DC76 . 0F9CC0 setl al : a7 R1 g# M! ?& @. t- f# k0 h
0132DC79 > 8B8C24 A00400>mov ecx, dword ptr [esp+4A0] 3 \$ v: }: G/ b6 w; }; Y
0132DC80 . 5F pop edi
/ U; D, T# |/ H! i0132DC81 . 5E pop esi , g# Q2 g0 J$ d' A
0132DC82 . 5B pop ebx 2 s8 k, A: U; b* S0 d+ o
0132DC83 . 33CC xor ecx, esp
' H8 R8 L' _. q2 G' C# f0132DC85 . E8 E2460500 call 0138236C / Z9 l- t- B0 C b
0132DC8A . 81C4 98040000 add esp, 498 8 L! m1 {( m( M$ S& s- ?* Y
0132DC90 . C2 2800 retn 28 |