发现了一个和字库有关的函数,研究中。
$ D0 D: C( G' T: m" W7 e$ A$ t0 D
9 }' x e' }; W0132D7E0 $ 81EC 98040000 sub esp, 498
2 F& b: H! u3 V: {" \1 Z7 Y6 W0132D7E6 . A1 7CD13A01 mov eax, dword ptr [13AD17C]
( K8 l2 a% `' u: k0 V6 m0132D7EB . 33C4 xor eax, esp
% n$ j# |+ P9 o+ U2 v+ A0132D7ED . 898424 940400>mov dword ptr [esp+494], eax
! ?6 }7 B6 T: l0132D7F4 . 8B8424 A00400>mov eax, dword ptr [esp+4A0]
$ n! j1 X6 j" e2 z' e9 b2 P7 S0132D7FB . 53 push ebx
: w; Y0 H% _4 E' o. ?- G1 @0132D7FC . 56 push esi 8 W2 v! O4 \1 P
0132D7FD . 8BB424 A40400>mov esi, dword ptr [esp+4A4]
# y: O" O: u& k# G# K0132D804 . 57 push edi
4 K3 B% k! W; ?' X& Z3 C0132D805 . 6A 30 push 30 ; /n = 30 (48.)
" A4 o8 |5 O- Y O1 n- `3 [" [0132D807 . 8BF9 mov edi, ecx ; | , y7 i/ C( j* b" J. _6 l
0132D809 . 8B8C24 B40400>mov ecx, dword ptr [esp+4B4] ; |
& l7 [7 r# b* S, r% B2 h: Q0132D810 . 8D5424 74 lea edx, dword ptr [esp+74] ; |
: o1 j3 x! G) k7 K0132D814 . 6A 00 push 0 ; |c = 00
( ~; y# r! _: W, k1 S0132D816 . 52 push edx ; |s ) P+ P: i$ u5 p8 X) X% f9 k3 M/ J6 M
0132D817 . 894424 30 mov dword ptr [esp+30], eax ; |
: g6 h# g# M1 G8 c; y9 S* k) w+ t0132D81B . 894C24 24 mov dword ptr [esp+24], ecx ; | , w5 U$ D$ ]+ ~' ^! T
0132D81F . C74424 78 340>mov dword ptr [esp+78], 34 ; | 6 X6 A S5 V0 Q& l5 c
0132D827 . E8 284B0500 call <jmp.&MSVCR80.memset> ; \memset 9 q1 d: ]- x* @; k% z0 u7 ^! K
0132D82C . 83C4 0C add esp, 0C
" N& B& C" E1 {6 Y3 ]0132D82F . 80BC24 CC0400>cmp byte ptr [esp+4CC], 0
8 W+ T6 w# ~' s0132D837 . 74 12 je short 0132D84B
9 r% o" M( i# S g0132D839 . A1 F8F63A01 mov eax, dword ptr [13AF6F8]
# y$ p; T- q7 r2 W0132D83E . C74424 0C F0D>mov dword ptr [esp+C], 013AD6F0 ; UNICODE " !""#%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\^_abcdefghijklmnopqrstuvwxyz" 6 s+ J) Z' e7 g) b* P' d& S
0132D846 . 8947 1C mov dword ptr [edi+1C], eax
0 F# f+ s$ \# |* I( O( g0132D849 . EB 32 jmp short 0132D87D
$ b7 J7 j% w- V' j: o. Q8 w* B0132D84B > C747 1C 60010>mov dword ptr [edi+1C], 160 8 y% k! x- ~# G; \( r
0132D852 . 8B4F 1C mov ecx, dword ptr [edi+1C]
6 M7 X! \; h2 K5 H8 [ W5 V0132D855 . 33C0 xor eax, eax # J, M# S6 g6 f! a
0132D857 . EB 07 jmp short 0132D860
; Q) Q. o/ L/ ]& g' l, s- c0132D859 . 8DA424 000000>lea esp, dword ptr [esp]
, [6 g' ]4 [0 ?6 z: r0132D860 > 8D50 20 lea edx, dword ptr [eax+20] 1 n! U, Q6 k' U
0132D863 . 66:899444 A00>mov word ptr [esp+eax*2+A0], dx 2 ? V2 {/ ], I) u" m6 j6 f# ^. x
0132D86B . 83C0 01 add eax, 1 ! T5 z7 M2 {. d: a+ B
0132D86E . 3BC1 cmp eax, ecx 4 j6 _2 r) E S* f7 w; Q8 @8 D
0132D870 .^ 7C EE jl short 0132D860
$ ]8 X& Q' ~' P- @9 m0132D872 . 8D8424 A00000>lea eax, dword ptr [esp+A0] 8 f, {: \* `8 T" ~0 H
0132D879 . 894424 0C mov dword ptr [esp+C], eax
8 G# F$ ]: x0 ]2 l. U$ x) x: [0132D87D > 8B47 0C mov eax, dword ptr [edi+C] ' P0 E) o! i+ D& I
0132D880 . 85C0 test eax, eax + r. O. r$ n4 d4 l2 R2 G; Q
0132D882 . 8D5F 0C lea ebx, dword ptr [edi+C] |) b. `; H, ^- G5 p% A* A
0132D885 . 75 05 jnz short 0132D88C
: R1 I3 \7 A7 G* U0 Y& J0132D887 . B8 16263901 mov eax, 01392616 ) ?5 ]! v( g5 ^. o
0132D88C > 6A 00 push 0 8 g/ n+ L0 h& {6 u1 p6 L
0132D88E . 6A 00 push 0
8 D. b) A4 a6 M3 h& {0132D890 . 50 push eax , o# y6 z. w( J) H7 U$ D g; V
0132D891 . 6A 1F push 1F 2 P9 B; U. o5 {8 G/ c: @1 N$ h
0132D893 . 8BCE mov ecx, esi 3 R4 q+ [( _7 W* I* f3 ^9 e! P/ j
0132D895 . E8 FA8E0300 call <jmp.&CK2.CKContext::CreateObjec> ! u" p2 d8 M5 T" ], n
0132D89A . 8B8C24 C80400>mov ecx, dword ptr [esp+4C8] & v: H+ X( @: f3 f/ P! A
0132D8A1 . 6A 00 push 0 3 z' B& P) Q& q, L) ~8 _
0132D8A3 . 6A 20 push 20
% n& p' r. Q4 h, t! i5 k) f+ A0132D8A5 . 51 push ecx
8 X0 _2 ]2 l4 S7 N2 g/ g0132D8A6 . 8B8C24 D00400>mov ecx, dword ptr [esp+4D0] . {+ R7 l8 w& r ~
0132D8AD . 8947 24 mov dword ptr [edi+24], eax
) Z2 p; r& O# F4 ^( S& R0132D8B0 . 8B10 mov edx, dword ptr [eax]
- u7 z( M4 O0 o* @" M; q6 E) p- D0132D8B2 . 8B52 54 mov edx, dword ptr [edx+54] % `) w) J' P/ B' @' R
0132D8B5 . 51 push ecx * Q4 @; x' }' ~2 x
0132D8B6 . 8BC8 mov ecx, eax , H3 A6 e- X' a( Y
0132D8B8 . FFD2 call edx
; d# k: o W' D/ b0132D8BA . 85C0 test eax, eax 4 r! A6 a3 ]& y4 u5 _ Z
0132D8BC . 75 07 jnz short 0132D8C5
# D6 ]% g7 Z5 P7 G0132D8BE . 32C0 xor al, al
1 S$ J* Z" c/ I; _. l* S# W- T0132D8C0 . E9 B4030000 jmp 0132DC79 6 X0 s/ _. @" |* L
0132D8C5 > 8B4F 24 mov ecx, dword ptr [edi+24] , V7 _5 [9 [6 D. C
0132D8C8 . 8B01 mov eax, dword ptr [ecx] 3 Z1 g' f1 `3 i+ k+ U6 f
0132D8CA . 8B80 88000000 mov eax, dword ptr [eax+88]
. p6 ]3 h X L, t- F0132D8D0 . 55 push ebp 6 Q3 I" k3 `1 O' M$ _# t# v8 s
0132D8D1 . 8D5424 70 lea edx, dword ptr [esp+70] ' K+ g2 F% Y7 v! U
0132D8D5 . 52 push edx / J7 n* p( c# D$ X
0132D8D6 . FFD0 call eax : f* F6 |$ ]3 b0 O' C8 s0 f7 x( {
0132D8D8 . 6A 00 push 0 ; /hDC = NULL $ P9 L8 ^' ?6 r6 [
0132D8DA . FF15 34A43801 call dword ptr [<&GDI32.CreateCompati>; \CreateCompatibleDC ! d! e" q- i: e8 x2 o2 S' `1 K
0132D8E0 . 8D4C24 70 lea ecx, dword ptr [esp+70]
; @* d$ K- e4 b: E3 _) g8 I0132D8E4 . 51 push ecx 6 [: i, d# d' f% C7 c7 Y o
0132D8E5 . 8BE8 mov ebp, eax & V1 ]) n" Y9 ~! M# }" J5 x7 L
0132D8E7 . FF15 24A83801 call dword ptr [<&VxMath.VxCreateBitm>; VxMath.VxCreateBitmap / Y" X' [( q5 j$ E& f2 `/ ]. q
0132D8ED . 8B35 70A43801 mov esi, dword ptr [<&GDI32.SelectOb>; GDI32.SelectObject
9 B) S, I( g3 O8 A' W: F4 l0132D8F3 . 83C4 04 add esp, 4
; V3 U( w* h" i0132D8F6 . 50 push eax ; /hObject 9 r; X7 B5 F+ u8 d
0132D8F7 . 55 push ebp ; |hDC 6 q5 v& e3 n/ {
0132D8F8 . 894424 2C mov dword ptr [esp+2C], eax ; | 8 a2 R" e8 f6 U& g
0132D8FC . FFD6 call esi ; \SelectObject ( [7 @2 k7 W2 j2 Z7 [& O3 g
0132D8FE . 8B5424 28 mov edx, dword ptr [esp+28]
$ _. w5 z1 e- }$ {( Q& |. i0132D902 . 52 push edx
, f. |6 l; S* {6 g# `: j' S0132D903 . 8BCB mov ecx, ebx 6 v3 l% {) l' u* U. y( `
0132D905 . 894424 40 mov dword ptr [esp+40], eax / ~& Q. O6 I* O" o8 a/ `' U* f
0132D909 . FF15 BCA83801 call dword ptr [<&VxMath.XString::ope>; VxMath.XString::operator= 2 o3 ]3 ~. i6 n% \
0132D90F . 8B9C24 B80400>mov ebx, dword ptr [esp+4B8]
/ x* j- F; n5 A5 Q9 k0132D916 . 6A 48 push 48 ; /Divisor = 48 (72.) # g0 U* O& i T) p: l, j* V2 l6 N
0132D918 . 6A 5A push 5A ; |/Index = LOGPIXELSY * h A+ _% U6 K5 G3 a2 W
0132D91A . 55 push ebp ; ||hDC
$ H( A9 z* L" G0132D91B . 895F 14 mov dword ptr [edi+14], ebx ; || 5 x; i% W1 c+ f1 l( _1 o) J- P
0132D91E . FF15 64A43801 call dword ptr [<&GDI32.GetDeviceCaps>; |\GetDeviceCaps
; o$ B4 {, _0 H1 C9 C5 t$ F- `4 G0132D924 . 50 push eax ; |Multiplier
1 N; I" U; F0 ]$ L2 p4 ^: c8 u8 I0132D925 . 53 push ebx ; |Multiplicand " v: S1 `2 w$ G, ^$ l4 F3 |
0132D926 . FF15 DCA43801 call dword ptr [<&KERNEL32.MulDiv>] ; \MulDiv : z5 W# H! [- h5 d
0132D92C . 8B4C24 1C mov ecx, dword ptr [esp+1C]
# k& ~- S+ i% I0 K7 w1 `6 S0132D930 . 8B9424 C00400>mov edx, dword ptr [esp+4C0] 4 v( `- B$ i, p% y- C
0132D937 . 51 push ecx ; /FaceName 9 H6 G) e% q& v! i
0132D938 . 8B8C24 C80400>mov ecx, dword ptr [esp+4C8] ; |
- E( i W$ q0 B! u9 G, m0132D93F . 6A 00 push 0 ; |PitchAndFamily = DEFAULT_PITCH|FF_DONTCARE
( E. E6 s/ I3 P4 ~* W0132D941 . 52 push edx ; |Quality * T# H$ J- S6 p h
0132D942 . 6A 00 push 0 ; |ClipPrecision = CLIP_DEFAULT_PRECIS " S/ [- u6 ?- g1 D/ Q
0132D944 . 6A 07 push 7 ; |OutputPrecision = OUT_TT_ONLY_PRECIS
6 Y% x( v3 L9 d2 M" g3 o" W0132D946 . 6A 01 push 1 ; |CharSet = DEFAULT_CHARSET 0 |) g/ O6 f: n; J' Z5 r3 z
0132D948 . 6A 00 push 0 ; |StrikeOut = FALSE
9 L& [* l1 b) _, \0132D94A . 8BD1 mov edx, ecx ; | 1 L) D' c6 z3 b. P8 h
0132D94C . D1EA shr edx, 1 ; | ; P$ m9 G3 `: Y7 b1 C2 `
0132D94E . 83E2 01 and edx, 1 ; |
; K' O* O r0 o d" {) s6 K0132D951 . 52 push edx ; |Underline
3 _- z% Y/ B. |- C. H0132D952 . 83E1 01 and ecx, 1 ; | " F7 d# H$ b/ M# b
0132D955 . 51 push ecx ; |Italic
* h- g+ p" w1 E0132D956 . 8B8C24 E00400>mov ecx, dword ptr [esp+4E0] ; | 3 j6 u2 v# d/ k- d; N! A5 O2 |
0132D95D . 51 push ecx ; |Weight 1 Q+ d7 I1 t4 }' _
0132D95E . 6A 00 push 0 ; |Orientation = 0
2 a V6 r& N+ d9 H* G4 n/ B) o0132D960 . 6A 00 push 0 ; |Escapement = 0 4 p5 Z( S8 |+ }+ S; H
0132D962 . F7D8 neg eax ; | ( n& Z; o2 t4 S, m3 B; {
0132D964 . 6A 00 push 0 ; |Width = 0
$ g9 b8 W; t7 B" D) ?2 _0132D966 . 50 push eax ; |Height 2 D8 S; u2 \* p5 H Q* F( M
0132D967 . FF15 60A43801 call dword ptr [<&GDI32.CreateFontA>] ; \CreateFontA
$ K& k( P: X, y$ z! ~/ p5 h* Z0132D96D . 50 push eax 2 t# o U! |; Q6 ~$ n2 N
0132D96E . 55 push ebp 6 G" W& g: \% S; B1 g
0132D96F . 894424 38 mov dword ptr [esp+38], eax
& s, E) s; \) `0132D973 . FFD6 call esi ]; b- c- F" a9 q2 Q4 F) r$ \! X
0132D975 . 8D5424 58 lea edx, dword ptr [esp+58]
- Z" c: _; F, j& w! `" Z X6 M0132D979 . 52 push edx ; /pSize : [) R, I, O) `1 z( c
0132D97A . 6A 01 push 1 ; |TextLen = 1
. g; c0 ^% k8 @0132D97C . 68 4CED3801 push 0138ED4C ; |Text = "A"
% c; M }. d |9 Q" b. v/ a* O" P0132D981 . 55 push ebp ; |hDC
" r- h6 z! P( Q# A2 c0132D982 . 894424 44 mov dword ptr [esp+44], eax ; | 3 \% ?$ X$ C1 X
0132D986 . FF15 5CA43801 call dword ptr [<&GDI32.GetTextExtent>; \GetTextExtentPointA : ^0 A9 `" S/ l' L
0132D98C . 8B4424 5C mov eax, dword ptr [esp+5C] ( V& t6 ]* U% x% v6 P% n. b- E
0132D990 . 8B77 1C mov esi, dword ptr [edi+1C] / X5 _8 z8 _8 L, j4 a
0132D993 . 8947 18 mov dword ptr [edi+18], eax
8 ~1 M% D& L& P! I0132D996 . 33C9 xor ecx, ecx
4 i: E" o: E, a" L5 B0132D998 . 8BC6 mov eax, esi 2 ]- s5 I/ @! G! ?
0132D99A . BA 20000000 mov edx, 20
7 d$ n" K0 B. G/ Y7 u0132D99F . F7E2 mul edx ! f& X+ h( Z9 w8 O" K0 l
0132D9A1 . 0F90C1 seto cl 8 U2 }" g" ~' O2 `
0132D9A4 . F7D9 neg ecx
- d! \$ F' ^; U; @0132D9A6 . 0BC8 or ecx, eax - f! F' y0 T' L4 D, w
0132D9A8 . 51 push ecx * h9 p- S& P. \* I
0132D9A9 . E8 964A0500 call <jmp.&MSVCR80.operator new>
! d/ a4 ^& P$ b7 B) h& F0132D9AE . 83C4 04 add esp, 4 1 D/ _/ {6 N. q' ]
0132D9B1 . 85C0 test eax, eax
: v! C: O' R2 h. i; T0132D9B3 . 74 28 je short 0132D9DD
! e" z* V+ Y$ U6 b9 m0132D9B5 . 83C6 FF add esi, -1
. s0 L ?/ n' [( ]0132D9B8 . 78 25 js short 0132D9DF & m2 X9 m9 y7 l) }5 E7 C
0132D9BA . D9EE fldz ! g8 a7 ~: ^- e3 ?3 |' @
0132D9BC . 8D48 0C lea ecx, dword ptr [eax+C] 0 s: `1 O' s: ]' H. g$ w
0132D9BF > D951 FC fst dword ptr [ecx-4] 4 G! Y, G3 H3 e$ U
0132D9C2 . 83C1 20 add ecx, 20 ; Q0 f, L6 m0 f
0132D9C5 . 83EE 01 sub esi, 1 : r. Q( l8 H# d- W- O$ S
0132D9C8 . D951 E0 fst dword ptr [ecx-20]
1 g! E! X) F3 O* r9 E* r' z0132D9CB . D951 D4 fst dword ptr [ecx-2C]
( U4 y9 o1 p* N' x5 S' ~0132D9CE . D951 D8 fst dword ptr [ecx-28] # l9 b2 ` Y; j6 D
0132D9D1 . D951 DC fst dword ptr [ecx-24] : c6 C/ t4 [; A3 C4 X! V* d+ q
0132D9D4 . D951 E0 fst dword ptr [ecx-20] b: R, O9 Y4 k
0132D9D7 .^ 79 E6 jns short 0132D9BF
7 S3 Q3 p7 G# }- X1 T0132D9D9 . DDD8 fstp st & p! V8 U" \7 O; k! x3 H( F
0132D9DB . EB 02 jmp short 0132D9DF
5 U! I7 \; J5 u, n% u0132D9DD > 33C0 xor eax, eax 8 b7 Q d# x) M1 z0 Y/ E. p2 A/ ?( X1 L
0132D9DF > 8B8C24 C80400>mov ecx, dword ptr [esp+4C8] ! a$ N; J4 X* I0 g0 }" @
0132D9E6 . 8947 20 mov dword ptr [edi+20], eax 8 r& |) C* ~4 a, o; M g
0132D9E9 . 8B8424 CC0400>mov eax, dword ptr [esp+4CC] 1 {* z, g5 Y: C! ]
0132D9F0 . 50 push eax ; /Bottom ) v- N, b; @! O
0132D9F1 . 51 push ecx ; |Right
# v; g# Y8 w5 l0 Y5 p0132D9F2 . 6A 00 push 0 ; |Top = 0 ; Q' _& U: U% J) y5 x: h! Z
0132D9F4 . 6A 00 push 0 ; |Left = 0 8 W A/ p4 T" o1 I- W2 q, I- K
0132D9F6 . 8D5424 70 lea edx, dword ptr [esp+70] ; | 5 `* |3 m/ y P4 d. Z# ~% c
0132D9FA . 52 push edx ; |pRect & Q" N+ d% j2 `
0132D9FB . FF15 64A73801 call dword ptr [<&USER32.SetRect>] ; \SetRect
& F6 G' u L; q' F0 F5 w& Y f0132DA01 . 6A 04 push 4 ; /ObjType = BLACK_BRUSH
* m6 v( H$ K0 X' q0132DA03 . FF15 58A43801 call dword ptr [<&GDI32.GetStockObjec>; \GetStockObject
1 Q% m! e3 k9 E7 `9 X7 s6 I% I8 r& _+ x0132DA09 . 50 push eax ; /hBrush 9 _7 u! E9 n3 o V7 j0 U$ v. E
0132DA0A . 8D4424 64 lea eax, dword ptr [esp+64] ; |
6 |: V# }/ w' S* s# L0132DA0E . 50 push eax ; |pRect
5 \2 [9 K- e% r, ]$ x. z8 [0132DA0F . 55 push ebp ; |hDC 3 m0 V' c) S5 ]
0132DA10 . FF15 68A73801 call dword ptr [<&USER32.FillRect>] ; \FillRect
5 S" F6 W6 R. O4 W, ?( ~0132DA16 . 6A 00 push 0 ; /Color = <BLACK> 4 Y& P7 c9 T2 m# K; r( n" S7 ]' s
0132DA18 . 55 push ebp ; |hDC
7 H6 j2 y/ s! H; ^; O1 d6 c; e0132DA19 . FF15 54A43801 call dword ptr [<&GDI32.SetBkColor>] ; \SetBkColor
- ?$ Z* s3 z2 y5 Q0132DA1F . 68 FFFFFF00 push 0FFFFFF ; /Color = <WHITE> : p8 r; b4 z) ^# ]1 M& |
0132DA24 . 55 push ebp ; |hDC 3 J( D- ~5 q1 B8 x$ H- t0 A% I1 y
0132DA25 . FF15 50A43801 call dword ptr [<&GDI32.SetTextColor>>; \SetTextColor ( i& w1 ~4 }5 A: E
0132DA2B . 6A 01 push 1 ; /BkMode = TRANSPARENT
5 s4 y* M# K+ ~ v0132DA2D . 55 push ebp ; |hDC 9 Q- f$ ^" q* N
0132DA2E . FF15 4CA43801 call dword ptr [<&GDI32.SetBkMode>] ; \SetBkMode ; }! R2 p& d' {# Q9 J3 z7 f# T
0132DA34 . 33F6 xor esi, esi
+ Y9 J5 O; {% e! \; s. Z/ O% _0132DA36 . 3977 1C cmp dword ptr [edi+1C], esi 9 {% m8 t5 _3 s$ H
0132DA39 . BB 01000000 mov ebx, 1
( P# N& }( d4 g( g$ z0132DA3E . 895C24 18 mov dword ptr [esp+18], ebx
0 A; R; T$ P: Y0132DA42 . 897424 14 mov dword ptr [esp+14], esi , |4 i$ i) Q$ N2 v0 t. f1 U
0132DA46 . 897424 1C mov dword ptr [esp+1C], esi
' i- M5 y- l5 l* P+ \0132DA4A . 0F8E 20010000 jle 0132DB70
4 d( Z+ _1 }( ]; ~8 L( z% l0132DA50 . DB8424 C80400>fild dword ptr [esp+4C8] - a# P; R4 }6 Y9 f' ^4 _% v6 h
0132DA57 . 8B4424 10 mov eax, dword ptr [esp+10] 6 J( A. v, ]0 {/ {
0132DA5B . 897424 20 mov dword ptr [esp+20], esi & x- D& E8 f, ~; ]$ s; @
0132DA5F . 894424 10 mov dword ptr [esp+10], eax 4 r& ~; M+ ]& v, I. z' h! T
0132DA63 . D95C24 38 fstp dword ptr [esp+38] ) B1 x$ h' w. L. U
0132DA67 . DB8424 CC0400>fild dword ptr [esp+4CC] : z" {: l' J% h2 O7 p- B
0132DA6E . D95C24 2C fstp dword ptr [esp+2C] / I2 i3 j5 f' ^& a/ \7 N
0132DA72 . EB 04 jmp short 0132DA78
( l6 Q" `1 z$ B( N" W- J. q: C0132DA74 > 8B4424 10 mov eax, dword ptr [esp+10]
( o9 q4 ^) O' @8 _& D6 O1 R, U% j+ Q8 w0132DA78 > 8B77 20 mov esi, dword ptr [edi+20]
2 z6 ^/ |7 p- s0 h; F M: y4 s3 @9 T0132DA7B . 66:8B08 mov cx, word ptr [eax] 3 C$ R4 j+ y& f( Q( I) E
0132DA7E . 037424 20 add esi, dword ptr [esp+20]
8 p/ B2 @- s8 n- s0 P4 ]0132DA82 . 66:894E 10 mov word ptr [esi+10], cx . h/ y' W! f) j( W9 {
0132DA86 . 0FB700 movzx eax, word ptr [eax] ' m8 T7 k- \" p5 c
0132DA89 . 8D4E 14 lea ecx, dword ptr [esi+14] 4 @0 W* u! _- H/ ~: d
0132DA8C . 51 push ecx ; /pABC
- a, |5 R2 Y7 q% ~0132DA8D . 50 push eax ; |LastChar % k, `9 i8 F1 ?. i t' f
0132DA8E . 50 push eax ; |FirstChar
6 W; |1 A6 `( ?$ F: I( h7 t- a0132DA8F . 55 push ebp ; |hDC
! ?9 ~7 q- [% E, e0132DA90 . FF15 48A43801 call dword ptr [<&GDI32.GetCharABCWid>; \GetCharABCWidthsW 1 U$ z8 \9 r" p; J) d* `
0132DA96 . 8B5424 10 mov edx, dword ptr [esp+10] 0 S( q$ [7 ? F
0132DA9A . 66:833A 20 cmp word ptr [edx], 20
( j' }* G" m7 t( N+ F* j) Q6 p0132DA9E . 73 10 jnb short 0132DAB0
. n/ |8 u5 F+ G0132DAA0 . C746 14 00000>mov dword ptr [esi+14], 0
3 p( w! Q$ l! `% h% x' h& d0132DAA7 . C746 1C 00000>mov dword ptr [esi+1C], 0
, p3 }: p$ C# E5 t8 V4 }6 J2 e# {, A0132DAAE . EB 0C jmp short 0132DABC 0 ^ ?. `( ~, Y1 F i* J
0132DAB0 > 8346 14 FF add dword ptr [esi+14], -1
7 g) m9 O- t, _3 \3 ]* R# M' m0132DAB4 . 8346 18 02 add dword ptr [esi+18], 2
" J2 j V" X( h0132DAB8 . 8346 1C FF add dword ptr [esi+1C], -1
4 B3 ^& c+ j/ N6 e! B0132DABC > 8B4E 18 mov ecx, dword ptr [esi+18] $ V) ~$ G4 f8 F6 t$ N
0132DABF . 8D4419 01 lea eax, dword ptr [ecx+ebx+1] . T R4 W4 Q \ Z7 D
0132DAC3 . 3B8424 C80400>cmp eax, dword ptr [esp+4C8] ' i7 o* [6 \6 T5 z' ?
0132DACA . 8B4424 14 mov eax, dword ptr [esp+14] - _+ v- j6 o$ ~+ W6 [
0132DACE . 72 14 jb short 0132DAE4 " ^: P3 A, x {0 t; Z
0132DAD0 . 8B57 18 mov edx, dword ptr [edi+18] , u& P9 a! f3 H9 H% B
0132DAD3 . BB 01000000 mov ebx, 1 1 s" O2 l! ]* {, u) M9 K% g
0132DAD8 . 8D4410 01 lea eax, dword ptr [eax+edx+1]
. y! E3 a' R) [1 ~3 J# B% X- R0132DADC . 895C24 18 mov dword ptr [esp+18], ebx & x! L- L& D- w# k3 H* n0 U9 l
0132DAE0 . 894424 14 mov dword ptr [esp+14], eax $ P% @/ o+ K; S* u8 @
0132DAE4 > DB4424 18 fild dword ptr [esp+18]
0 ?7 M! ?1 q& l# n7 {0132DAE8 . 03CB add ecx, ebx # E; M- ]3 w+ k( z O
0132DAEA . 85C9 test ecx, ecx
" `) ?+ M) E( J5 D* j. T/ K0132DAEC . D94424 38 fld dword ptr [esp+38]
4 P5 M2 A: M, B V2 i# ?0132DAF0 . D9C0 fld st
- F4 p0 o" n! e+ s3 k; x8 t0132DAF2 . 894C24 18 mov dword ptr [esp+18], ecx 1 N! m8 _5 L1 p
0132DAF6 . DEFA fdivp st(2), st $ b0 ?2 c: O( N7 T
0132DAF8 . D9C9 fxch st(1) * a2 M9 H7 [9 h) j
0132DAFA . D91E fstp dword ptr [esi] + L: c P- c, ^' k9 _7 C
0132DAFC . DB4424 14 fild dword ptr [esp+14]
0 z7 L+ B$ A; b5 [% J- c# C0132DB00 . D94424 2C fld dword ptr [esp+2C]
# c! A( e2 ^: d# ~1 C0132DB04 . D9C0 fld st
2 o# V" C. M: |+ f2 h8 y5 {( L0132DB06 . DEFA fdivp st(2), st
' u7 b- \/ q6 K6 x0 t" _0132DB08 . D9C9 fxch st(1) 1 `+ i, v2 Y- Y# _* [+ \
0132DB0A . D95E 04 fstp dword ptr [esi+4] ; f" L" b4 C2 \! |# Q1 v& f8 Y
0132DB0D . DB4424 18 fild dword ptr [esp+18]
8 _7 s- E9 N1 n3 D h8 |0132DB11 . 7D 06 jge short 0132DB19 " D7 o7 k" n4 V* A7 \6 \' @
0132DB13 . D805 50B03801 fadd dword ptr [138B050] ( ?3 y4 @5 h3 J
0132DB19 > DEF2 fdivrp st(2), st
8 T$ u# N2 {2 O2 X0 ^2 V1 A0132DB1B . 8B5424 10 mov edx, dword ptr [esp+10]
. m! X+ g; K5 F% R9 M7 c0132DB1F . 6A 01 push 1 ; /StringSize = 1
& |6 N& W) V' |) `- D0132DB21 . 52 push edx ; |String
$ y7 A& D; c. D1 |0132DB22 . 50 push eax ; |YStart * @" @9 s- @- f4 G) W7 G
0132DB23 . D9C9 fxch st(1) ; |
4 m8 f* K. I* y* l0132DB25 . D95E 08 fstp dword ptr [esi+8] ; | ) S9 F2 V: a* x" d
0132DB28 . 8B4F 18 mov ecx, dword ptr [edi+18] ; |
: g$ D4 h; ]& a7 ?$ E2 F+ ?0132DB2B . 03C8 add ecx, eax ; | 6 |" \- u; H) w1 X/ E% G8 ]
0132DB2D . 894C24 24 mov dword ptr [esp+24], ecx ; |
' H- L1 I/ e5 z) W- A+ W0132DB31 . DA7C24 24 fidivr dword ptr [esp+24] ; | % g. z6 a* I. a! d8 h7 ]) l' m0 b
0132DB35 . 8BC3 mov eax, ebx ; | 5 n/ D$ {5 `+ {
0132DB37 . 2B46 14 sub eax, dword ptr [esi+14] ; |
% a0 E/ H4 P" |7 \& W0132DB3A . 50 push eax ; |XStart
C' p+ p/ ` k; k( q# S0132DB3B . 55 push ebp ; |hDC
# E* ^8 o4 n! H0 U. J0132DB3C . D95E 0C fstp dword ptr [esi+C] ; |
4 h7 Z5 U( I$ h! x; y- S8 c0132DB3F . FF15 44A43801 call dword ptr [<&GDI32.TextOutW>] ; \TextOutW " j; m' A" E) T' J n* N# d0 {
0132DB45 . 8B4424 1C mov eax, dword ptr [esp+1C]
& U- c/ L' b0 ~( t+ J0132DB49 . 8B4E 18 mov ecx, dword ptr [esi+18]
( J; p* A* q7 A; [8 _0132DB4C . 834424 20 20 add dword ptr [esp+20], 20
# A* t% A: Z _# i7 Q! k# G0132DB51 . 834424 10 02 add dword ptr [esp+10], 2
2 F o( }$ G/ }! w" n8 x# p4 r( x0132DB56 . 83C0 01 add eax, 1
" V, p: r1 x# x! y: ~0132DB59 . 3B47 1C cmp eax, dword ptr [edi+1C]
1 c" d7 i9 p: P2 O# O0132DB5C . 8D5C0B 01 lea ebx, dword ptr [ebx+ecx+1] 4 U' A1 u2 T6 b' i
0132DB60 . 895C24 18 mov dword ptr [esp+18], ebx ) O- N) y4 q6 G$ c) _
0132DB64 . 894424 1C mov dword ptr [esp+1C], eax
% N3 I' V" e: p! V* R/ s0132DB68 .^ 0F8C 06FFFFFF jl 0132DA74 / D! g" _% x. S; Y" q4 u
0132DB6E . 33F6 xor esi, esi 8 p U! x( n/ U- H' x9 ^( z4 f
0132DB70 > 8B4F 24 mov ecx, dword ptr [edi+24] + B q! D& Q, V# l* k
0132DB73 . 6A FF push -1
% y0 x0 J) n; {0 j0132DB75 . 83C1 38 add ecx, 38
2 c8 H. [& A' W. {0132DB78 . E8 278E0300 call <jmp.&CK2.CKBitmapData::LockSurf> * f F* `2 S* g" x9 K& Y" R, L5 K
0132DB7D . 8BD8 mov ebx, eax : z. w: o4 s+ R3 h$ q
0132DB7F . 3BDE cmp ebx, esi
) {! R$ L" G4 M- H4 n/ N( `: K0132DB81 . 74 74 je short 0132DBF7 , a$ d! E* ^7 q: u7 D7 f
0132DB83 . 8B4424 24 mov eax, dword ptr [esp+24] 1 W, U2 {4 n+ u N, b: t
0132DB87 . 8D5424 40 lea edx, dword ptr [esp+40] $ Q- Q5 c9 X! P
0132DB8B . 52 push edx ; /Buffer
9 e0 V. t/ Z/ P3 L+ J3 s0 x0132DB8C . 6A 18 push 18 ; |BufSize = 18 (24.) ; S* E3 M1 J5 ]: D' _
0132DB8E . 50 push eax ; |hObject
) H7 r& R; m# z$ y, \) s0132DB8F . FF15 40A43801 call dword ptr [<&GDI32.GetObjectA>] ; \GetObjectA
* }% g* Z# t9 A( V# s0132DB95 . 8B4C24 48 mov ecx, dword ptr [esp+48] & z7 s! ?& s( S1 D
0132DB99 . 8D71 FF lea esi, dword ptr [ecx-1]
7 L, g' |) ?6 h; r) K0132DB9C . 0FAF7424 4C imul esi, dword ptr [esp+4C]
- i: |0 A, s$ ~9 |+ k v0132DBA1 . 037424 54 add esi, dword ptr [esp+54] * ], t8 G2 ]: ~: d) l* F
0132DBA5 . 85C9 test ecx, ecx 7 E4 K' D# @9 p% E+ J; A" A
0132DBA7 . C74424 14 000>mov dword ptr [esp+14], 0 4 b" D6 O/ @( U8 |* D5 P9 k
0132DBAF . 7E 46 jle short 0132DBF7 6 K0 ?- h/ E3 n% z8 A% ^: ^; c
0132DBB1 . 8B5424 44 mov edx, dword ptr [esp+44]
" g( K/ V2 L! G7 G9 ^0132DBB5 > 33C0 xor eax, eax
3 A! k6 @ s9 l3 ]0132DBB7 . 85D2 test edx, edx 2 T, w8 r- F' s- `
0132DBB9 . 7E 26 jle short 0132DBE1 , a2 a& d" \0 Z; O) C
0132DBBB . 8BCE mov ecx, esi
* [" l z6 E; @* h0132DBBD . 8D49 00 lea ecx, dword ptr [ecx]
3 {. ~, `- I K3 i9 p0132DBC0 > 0FB611 movzx edx, byte ptr [ecx]
0 A1 x4 }- z. b7 L' C0132DBC3 . C1E2 18 shl edx, 18
) E* K6 P# B3 e4 O. y& \: X4 w0132DBC6 . 81CA FFFFFF00 or edx, 0FFFFFF
, {* |8 u- R8 ]) w& _0132DBCC . 891483 mov dword ptr [ebx+eax*4], edx / S* ?: ~' D2 [ j
0132DBCF . 8B5424 44 mov edx, dword ptr [esp+44]
5 z6 |+ a2 t% ?1 Q0132DBD3 . 83C0 01 add eax, 1 2 T0 }1 h$ ?0 Y' a
0132DBD6 . 83C1 03 add ecx, 3 % J* f4 m2 F4 T o
0132DBD9 . 3BC2 cmp eax, edx
* ^2 g' B* a! a$ c5 c9 L0132DBDB .^ 7C E3 jl short 0132DBC0
$ O. y0 }+ D( Y0 L0132DBDD . 8B4C24 48 mov ecx, dword ptr [esp+48]
& @5 @! d6 N1 q9 H+ v, M0132DBE1 > 8B4424 14 mov eax, dword ptr [esp+14] & |: W% }( }8 \8 F; s- ~# s
0132DBE5 . 2B7424 4C sub esi, dword ptr [esp+4C]
% _9 F/ d. W4 Q0132DBE9 . 83C0 01 add eax, 1 3 {& \; E' B3 p, t$ \; }
0132DBEC . 3BC1 cmp eax, ecx ( F1 N" v# l- z' @/ \. w8 W, O
0132DBEE . 8D1C93 lea ebx, dword ptr [ebx+edx*4]
8 q; z2 U7 R, `0 |; k5 T& ?1 u0132DBF1 . 894424 14 mov dword ptr [esp+14], eax
7 d6 @& Y- L- U5 s1 }( F' J0132DBF5 .^ 7C BE jl short 0132DBB5
* X" w7 [! @( h9 Z0132DBF7 > 8B4F 24 mov ecx, dword ptr [edi+24]
0 G5 a% }1 K* M! W0132DBFA . 6A FF push -1 4 }& h' I- t7 y
0132DBFC . 83C1 38 add ecx, 38 O0 k8 c) P$ n. C* C- V# D# R
0132DBFF . E8 9A8D0300 call <jmp.&CK2.CKBitmapData::ReleaseS> 0 }: n4 \$ b9 P/ d7 Z B+ D
0132DC04 . 8B4424 34 mov eax, dword ptr [esp+34]
1 U' @' a" o7 j$ S9 Q: z% N0132DC08 . 8B35 70A43801 mov esi, dword ptr [<&GDI32.SelectOb>; GDI32.SelectObject
* \3 z ~ ]! y4 E4 m7 ]0132DC0E . 50 push eax ; /hObject 3 U; s" f& V8 q
0132DC0F . 55 push ebp ; |hDC
2 Z" {5 L% l7 p) i+ h2 ~% g0132DC10 . FFD6 call esi ; \SelectObject
5 k$ x" A8 @; ^0132DC12 . 8B4C24 30 mov ecx, dword ptr [esp+30] " E3 u, M( ^% Z1 I1 |# O
0132DC16 . 51 push ecx ?; g6 Q: w6 w6 }: b: T
0132DC17 . FF15 28A83801 call dword ptr [<&VxMath.VxDeleteFont>; VxMath.VxDeleteFont
% B. f% P! @ x0132DC1D . 8B5424 40 mov edx, dword ptr [esp+40]
. S4 W+ W. @! z7 \( S4 U) K2 _2 m8 Y0132DC21 . 83C4 04 add esp, 4
+ A" m) S/ O; L2 ]) D1 n& F0132DC24 . 52 push edx
8 v4 T K) q9 a% s0132DC25 . 55 push ebp
) f f0 O8 t8 U4 U7 ^0132DC26 . FFD6 call esi 1 \: o, ~$ O$ z' O5 q
0132DC28 . 8B4424 24 mov eax, dword ptr [esp+24]
# D! x5 h1 L# y2 Y O9 e3 O0132DC2C . 50 push eax : s" w: ]$ e0 x( T; h$ |
0132DC2D . FF15 2CA83801 call dword ptr [<&VxMath.VxDeleteBitm>; VxMath.VxDeleteFont % \6 V: e1 R3 j T$ l; i
0132DC33 . 83C4 04 add esp, 4 0 R: U5 b. ?. H v, U8 S
0132DC36 . 55 push ebp ; /hDC
0 e3 z& S& z. B0132DC37 . FF15 3CA43801 call dword ptr [<&GDI32.DeleteDC>] ; \DeleteDC 2 a F& v4 P, K! p9 Z
0132DC3D . 8B4C24 28 mov ecx, dword ptr [esp+28]
/ v: t! h1 _/ H* E1 Q. D; j0 m0132DC41 . 6A 00 push 0
+ I' B# q) ?3 p- n' l0 U0132DC43 . 51 push ecx
, d$ c( X! T, ]7 v$ _- n0132DC44 . 8B4F 24 mov ecx, dword ptr [edi+24] 1 G( d; k4 v% S) d# Z, \* ?/ o
0132DC47 . E8 4C8A0300 call <jmp.&CK2.CKObject::SetName>
# {& |4 N! X2 n! x" u1 g* o0132DC4C . 8B4F 24 mov ecx, dword ptr [edi+24]
6 W$ M; W H: \6 W# C6 u4 y& q0132DC4F . 6A 01 push 1 / Z' o! h/ J% Q7 K. M% E
0132DC51 . 83C1 38 add ecx, 38
+ _6 x0 u" j6 k: n/ G0132DC54 . E8 7B8D0300 call <jmp.&CK2.CKBitmapData::SetDesir> B: ^ z Z( _7 }: z
0132DC59 . 8B4F 24 mov ecx, dword ptr [edi+24]
$ C; ^ n& }5 D* J9 B) z0132DC5C . 8B11 mov edx, dword ptr [ecx]
8 X3 J: v. e; w) d C* h0132DC5E . 8B42 78 mov eax, dword ptr [edx+78] : G# O: X* k3 ~: N# ?/ e: `: h; B
0132DC61 . 6A 00 push 0
2 D8 Z! Y( M6 p" g6 z0132DC63 . FFD0 call eax
: p. [# o$ ^/ _7 h& N4 O0132DC65 . 8B4F 18 mov ecx, dword ptr [edi+18] 6 Y1 a) W3 d( s [7 ?; @0 e& O! i
0132DC68 . 034C24 14 add ecx, dword ptr [esp+14] * Q4 D4 Z: t* p* V$ m8 D$ K
0132DC6C . 33C0 xor eax, eax
+ e& U; r. ?1 I0132DC6E . 3B8C24 CC0400>cmp ecx, dword ptr [esp+4CC] " |; J- R' K) H! y
0132DC75 . 5D pop ebp
6 D$ K3 P3 U, i" U+ W2 y* z& i" T0132DC76 . 0F9CC0 setl al ! L. |) y- e$ j! \5 i% {
0132DC79 > 8B8C24 A00400>mov ecx, dword ptr [esp+4A0] Z5 g k+ ~3 R# u, d
0132DC80 . 5F pop edi 2 D* v: Q- @: B: T' I
0132DC81 . 5E pop esi
- c- Q5 F0 ~' Y' l) p0132DC82 . 5B pop ebx + \: e* Z7 }& r0 H
0132DC83 . 33CC xor ecx, esp
' C% g. Z' A p* O% u' @8 a0132DC85 . E8 E2460500 call 0138236C + p u L9 M1 S) D" n- }! l
0132DC8A . 81C4 98040000 add esp, 498
7 H% ]; G' z2 k. U4 o* o6 ?( t0132DC90 . C2 2800 retn 28 |