冒险解谜游戏中文网 ChinaAVG
标题:
神秘纪事2字库函数
[打印本页]
作者:
shane007
时间:
2010-1-8 00:12
标题:
神秘纪事2字库函数
发现了一个和字库有关的函数,研究中。
9 z+ }9 Q( W% T; g
" G! [3 P8 n) S
0132D7E0 $ 81EC 98040000 sub esp, 498
" d" A) U0 s. o/ O% I
0132D7E6 . A1 7CD13A01 mov eax, dword ptr [13AD17C]
$ ?1 u# f3 Y9 g8 J" I+ K
0132D7EB . 33C4 xor eax, esp
9 L; I/ g) R3 x4 f3 {+ t& K
0132D7ED . 898424 940400>mov dword ptr [esp+494], eax
5 `$ z- {/ F% F& h& d
0132D7F4 . 8B8424 A00400>mov eax, dword ptr [esp+4A0]
7 V' D( A' X' Z3 h( T
0132D7FB . 53 push ebx
6 U& k) u: W h! n% u
0132D7FC . 56 push esi
( a0 N8 J {1 @; N8 N
0132D7FD . 8BB424 A40400>mov esi, dword ptr [esp+4A4]
0 S# t2 A* Q) I3 V6 n" m" D5 |0 j# {
0132D804 . 57 push edi
& I' h. p8 x+ f/ `+ \
0132D805 . 6A 30 push 30 ; /n = 30 (48.)
* j9 }6 r: i( ], g" u7 X
0132D807 . 8BF9 mov edi, ecx ; |
0 T9 ?9 q9 V% y% Z: F% D4 A
0132D809 . 8B8C24 B40400>mov ecx, dword ptr [esp+4B4] ; |
X" K5 t/ b" A4 ?6 \ ^+ V0 w* A
0132D810 . 8D5424 74 lea edx, dword ptr [esp+74] ; |
; Z2 v! z7 }- j/ _
0132D814 . 6A 00 push 0 ; |c = 00
" K* T" c5 \% I4 Q- _
0132D816 . 52 push edx ; |s
* r" j8 e l9 a, ~
0132D817 . 894424 30 mov dword ptr [esp+30], eax ; |
! o" J5 w- P5 A# x9 l) G5 I: c
0132D81B . 894C24 24 mov dword ptr [esp+24], ecx ; |
1 e3 a9 X8 j' B8 O1 K% i9 H& \% s
0132D81F . C74424 78 340>mov dword ptr [esp+78], 34 ; |
' t9 N7 H, Q$ i9 A
0132D827 . E8 284B0500 call <jmp.&MSVCR80.memset> ; \memset
8 Y6 u3 T" r: f( b' W) A/ f5 u9 c
0132D82C . 83C4 0C add esp, 0C
+ Q, c( X# @' K* P" e! _
0132D82F . 80BC24 CC0400>cmp byte ptr [esp+4CC], 0
( m" o+ V+ n: O; M2 L$ R& \/ l# i
0132D837 . 74 12 je short 0132D84B
$ Y. G0 I R8 F/ [& O
0132D839 . A1 F8F63A01 mov eax, dword ptr [13AF6F8]
5 {" @% J; p# m F o' ]6 ?
0132D83E . C74424 0C F0D>mov dword ptr [esp+C], 013AD6F0 ; UNICODE " !""#%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\^_abcdefghijklmnopqrstuvwxyz"
2 w: I. @5 g0 } E
0132D846 . 8947 1C mov dword ptr [edi+1C], eax
6 {: P2 Y2 L& A0 t) s0 N! r/ Q7 N
0132D849 . EB 32 jmp short 0132D87D
) `- a! g$ c" p: }. d
0132D84B > C747 1C 60010>mov dword ptr [edi+1C], 160
1 X6 G. E7 Z3 G, h! T
0132D852 . 8B4F 1C mov ecx, dword ptr [edi+1C]
' r5 o6 _+ q: T
0132D855 . 33C0 xor eax, eax
3 U( h5 H! L2 ~
0132D857 . EB 07 jmp short 0132D860
]* u: @" N/ @% Y8 f
0132D859 . 8DA424 000000>lea esp, dword ptr [esp]
4 ~8 ^; q0 t# v+ ?
0132D860 > 8D50 20 lea edx, dword ptr [eax+20]
0 L* W& s1 C {. w; e; ?0 j; O
0132D863 . 66:899444 A00>mov word ptr [esp+eax*2+A0], dx
" C- t& e, x- k% y
0132D86B . 83C0 01 add eax, 1
% K! A; _. L* V/ B$ Y! t
0132D86E . 3BC1 cmp eax, ecx
8 t; E) t! i. a7 V% o& ^1 Y
0132D870 .^ 7C EE jl short 0132D860
l5 k* r" |/ H9 s; D7 p: s; W1 i
0132D872 . 8D8424 A00000>lea eax, dword ptr [esp+A0]
: z- P$ ~( o O) s& o
0132D879 . 894424 0C mov dword ptr [esp+C], eax
; r2 b, n* i" C" Y+ ^3 j- r
0132D87D > 8B47 0C mov eax, dword ptr [edi+C]
* F/ L4 _ q9 B3 s1 |, s
0132D880 . 85C0 test eax, eax
6 \& `6 c, U& G4 c5 E5 O
0132D882 . 8D5F 0C lea ebx, dword ptr [edi+C]
5 g5 ?* N" q3 Y+ @' Z
0132D885 . 75 05 jnz short 0132D88C
0 U+ X9 d% h$ A$ G
0132D887 . B8 16263901 mov eax, 01392616
2 k, `6 b, b, [. C9 w! k5 N
0132D88C > 6A 00 push 0
+ J/ p2 U/ P( t! N
0132D88E . 6A 00 push 0
" C3 Y6 U& r6 ^4 G* T F
0132D890 . 50 push eax
l6 D8 f/ w! v
0132D891 . 6A 1F push 1F
* R; q! k7 \( G# v$ ^$ z E( }; n+ |
0132D893 . 8BCE mov ecx, esi
z: F* Q+ W L" ~7 l6 Y
0132D895 . E8 FA8E0300 call <jmp.&CK2.CKContext::CreateObjec>
. l( K9 ?$ O# {9 W4 l7 z, K3 x0 s+ F3 r
0132D89A . 8B8C24 C80400>mov ecx, dword ptr [esp+4C8]
( e- p+ U& @; O0 j7 ~/ y
0132D8A1 . 6A 00 push 0
; s2 F9 o/ T+ Y6 }2 Z0 c. i
0132D8A3 . 6A 20 push 20
1 x) [# t# `8 O) p
0132D8A5 . 51 push ecx
) \1 x# n0 [- A
0132D8A6 . 8B8C24 D00400>mov ecx, dword ptr [esp+4D0]
) g. r8 M9 X$ @) y; s
0132D8AD . 8947 24 mov dword ptr [edi+24], eax
3 d/ ~5 u0 _ c; O+ k
0132D8B0 . 8B10 mov edx, dword ptr [eax]
# a2 J \5 {/ A c. d4 @
0132D8B2 . 8B52 54 mov edx, dword ptr [edx+54]
8 D; z# Y: O1 ]& e6 C: s
0132D8B5 . 51 push ecx
+ {0 h* u& | D- `6 U& f. X) C
0132D8B6 . 8BC8 mov ecx, eax
% O4 k+ ~) ]1 C! r. Q: z( D1 L- M9 b
0132D8B8 . FFD2 call edx
: s) l; S: e# I- n0 E0 t2 w
0132D8BA . 85C0 test eax, eax
; S* W3 t* N7 d* R5 {+ v6 b0 E
0132D8BC . 75 07 jnz short 0132D8C5
" g6 Q% Z1 R* }
0132D8BE . 32C0 xor al, al
/ v6 `& k0 n5 r
0132D8C0 . E9 B4030000 jmp 0132DC79
( E: z4 Y5 u4 r% c$ D6 d; g
0132D8C5 > 8B4F 24 mov ecx, dword ptr [edi+24]
- D# n4 R2 [1 z, y2 ?
0132D8C8 . 8B01 mov eax, dword ptr [ecx]
1 ], g& E+ l' i% Z [, L8 m
0132D8CA . 8B80 88000000 mov eax, dword ptr [eax+88]
! \9 Z) M& U7 |9 f& T1 B
0132D8D0 . 55 push ebp
7 _4 f+ u* B! p3 K! Y
0132D8D1 . 8D5424 70 lea edx, dword ptr [esp+70]
0 I2 C) e/ H/ I9 c2 s
0132D8D5 . 52 push edx
6 t; H4 E& S, L$ w t& r8 Z; O% l
0132D8D6 . FFD0 call eax
+ C$ \% e6 c1 L' w- ~- Z, b+ q
0132D8D8 . 6A 00 push 0 ; /hDC = NULL
" \( a% {4 p7 D7 O0 ~# k& ~* J
0132D8DA . FF15 34A43801 call dword ptr [<&GDI32.CreateCompati>; \CreateCompatibleDC
8 Q( @5 Y0 F" _5 f( e" X
0132D8E0 . 8D4C24 70 lea ecx, dword ptr [esp+70]
2 o3 A4 R8 L, A$ [: a. @3 ?
0132D8E4 . 51 push ecx
$ f& P& Y; O) R) M c
0132D8E5 . 8BE8 mov ebp, eax
! h& `8 H% ~0 W
0132D8E7 . FF15 24A83801 call dword ptr [<&VxMath.VxCreateBitm>; VxMath.VxCreateBitmap
: v' ~+ A+ s: M9 A$ d2 p
0132D8ED . 8B35 70A43801 mov esi, dword ptr [<&GDI32.SelectOb>; GDI32.SelectObject
8 o* j' h a& W* Y3 R/ K( h9 U' `: Y
0132D8F3 . 83C4 04 add esp, 4
( i4 x7 j! _/ `+ K. s/ l0 A- I
0132D8F6 . 50 push eax ; /hObject
2 q. Y. U$ U P7 x! @& {: V
0132D8F7 . 55 push ebp ; |hDC
8 f/ M v3 f) b- a
0132D8F8 . 894424 2C mov dword ptr [esp+2C], eax ; |
) M; W! v5 K. W# X+ M" W, M
0132D8FC . FFD6 call esi ; \SelectObject
9 E% y1 B! r$ ^
0132D8FE . 8B5424 28 mov edx, dword ptr [esp+28]
+ e; c0 F1 v/ r4 H: ], @* b
0132D902 . 52 push edx
, K8 A& f7 u4 h: q$ }$ ^) D
0132D903 . 8BCB mov ecx, ebx
: j1 z( M3 {5 @+ p( z. H
0132D905 . 894424 40 mov dword ptr [esp+40], eax
7 Y# s7 x( P8 f
0132D909 . FF15 BCA83801 call dword ptr [<&VxMath.XString::ope>; VxMath.XString::operator=
: v% ?) Y: r" l7 V, X( V: R
0132D90F . 8B9C24 B80400>mov ebx, dword ptr [esp+4B8]
( j# }4 Q$ q! M- B: c( h
0132D916 . 6A 48 push 48 ; /Divisor = 48 (72.)
$ I. W* b$ S) m: z7 ?5 J5 h6 C% G ~
0132D918 . 6A 5A push 5A ; |/Index = LOGPIXELSY
W4 W8 B3 b6 m: `) A1 }: g
0132D91A . 55 push ebp ; ||hDC
# ?1 l: F4 p: r- k( p
0132D91B . 895F 14 mov dword ptr [edi+14], ebx ; ||
3 ~% S, v3 U6 j' N
0132D91E . FF15 64A43801 call dword ptr [<&GDI32.GetDeviceCaps>; |\GetDeviceCaps
2 {! h9 k7 w+ d6 H' ?
0132D924 . 50 push eax ; |Multiplier
9 l5 @2 ?' ~/ c$ e- Y
0132D925 . 53 push ebx ; |Multiplicand
* j2 A, x: K* O4 ~6 D) Z& T5 c. ]
0132D926 . FF15 DCA43801 call dword ptr [<&KERNEL32.MulDiv>] ; \MulDiv
- U! R! l* u0 G5 r2 I9 q
0132D92C . 8B4C24 1C mov ecx, dword ptr [esp+1C]
3 H/ z# _8 j9 g8 M! O0 }7 d
0132D930 . 8B9424 C00400>mov edx, dword ptr [esp+4C0]
5 t9 Q" K+ S8 B, c5 ^
0132D937 . 51 push ecx ; /FaceName
0 i5 N: C" N- _) f
0132D938 . 8B8C24 C80400>mov ecx, dword ptr [esp+4C8] ; |
/ }' O: z: _9 d
0132D93F . 6A 00 push 0 ; |PitchAndFamily = DEFAULT_PITCH|FF_DONTCARE
+ d& T6 @7 k, i' Z$ t: w
0132D941 . 52 push edx ; |Quality
' Y1 Y! p# l4 E0 o6 `" P' G/ S6 x" M* a
0132D942 . 6A 00 push 0 ; |ClipPrecision = CLIP_DEFAULT_PRECIS
$ K" c! B- o" I; ]( }
0132D944 . 6A 07 push 7 ; |OutputPrecision = OUT_TT_ONLY_PRECIS
+ W, k6 m( U2 d1 o& |; g7 R8 ^
0132D946 . 6A 01 push 1 ; |CharSet = DEFAULT_CHARSET
. m9 p+ y5 i/ j$ Y
0132D948 . 6A 00 push 0 ; |StrikeOut = FALSE
2 Z4 q: ]; B; r, L6 O+ c
0132D94A . 8BD1 mov edx, ecx ; |
. j2 b# c, P, {
0132D94C . D1EA shr edx, 1 ; |
* Z, l3 B9 v. r
0132D94E . 83E2 01 and edx, 1 ; |
& L- i0 \1 t/ e6 f7 S7 A2 B6 X
0132D951 . 52 push edx ; |Underline
! a1 [1 M/ I: o! N7 o
0132D952 . 83E1 01 and ecx, 1 ; |
M1 `$ z7 R) Y( k% k
0132D955 . 51 push ecx ; |Italic
" O- {7 L6 C( z% g) u$ [; P
0132D956 . 8B8C24 E00400>mov ecx, dword ptr [esp+4E0] ; |
8 \- H# G' Q% q$ `% \
0132D95D . 51 push ecx ; |Weight
* z8 v- @/ N- h. f& c0 R! _
0132D95E . 6A 00 push 0 ; |Orientation = 0
$ |3 i( o8 O7 ~( R0 W$ C1 R
0132D960 . 6A 00 push 0 ; |Escapement = 0
2 Q0 H5 a( [ L2 y2 y, m. E9 v9 y! w
0132D962 . F7D8 neg eax ; |
3 z+ k, \& z6 B' t$ a S$ t
0132D964 . 6A 00 push 0 ; |Width = 0
* X) i9 k* L' X: B( h
0132D966 . 50 push eax ; |Height
* \ c6 |8 J: b# i
0132D967 . FF15 60A43801 call dword ptr [<&GDI32.CreateFontA>] ; \CreateFontA
2 `- }$ T! {, T! n' _+ R' a
0132D96D . 50 push eax
5 F, h2 Z) D; n% _
0132D96E . 55 push ebp
8 F6 ^% \, F( X* W) A; p+ i5 |
0132D96F . 894424 38 mov dword ptr [esp+38], eax
6 O& ]$ U) Q8 J" [
0132D973 . FFD6 call esi
1 ` G* o5 V* ~# K2 v2 {
0132D975 . 8D5424 58 lea edx, dword ptr [esp+58]
- u6 O; h% g* _3 e
0132D979 . 52 push edx ; /pSize
) k0 Y6 z9 ?1 X- [' T
0132D97A . 6A 01 push 1 ; |TextLen = 1
6 \+ K- C8 ~# y2 d1 X
0132D97C . 68 4CED3801 push 0138ED4C ; |Text = "A"
) ]6 M/ `& v5 J' Z$ u' p% G' T
0132D981 . 55 push ebp ; |hDC
3 N% w3 e# J; Q( G7 L
0132D982 . 894424 44 mov dword ptr [esp+44], eax ; |
& d ^7 j- u1 t6 w1 T
0132D986 . FF15 5CA43801 call dword ptr [<&GDI32.GetTextExtent>; \GetTextExtentPointA
3 h" c! y& i/ P' m: d
0132D98C . 8B4424 5C mov eax, dword ptr [esp+5C]
V7 ]& d+ _) l5 j8 g) l( G
0132D990 . 8B77 1C mov esi, dword ptr [edi+1C]
; w) ]4 ~! [7 ?0 E3 X
0132D993 . 8947 18 mov dword ptr [edi+18], eax
' S1 Q: O4 w$ {, [& U C) p
0132D996 . 33C9 xor ecx, ecx
1 V' S# S- t, s/ X2 R% P
0132D998 . 8BC6 mov eax, esi
/ y+ U$ Z' ~! R. n6 ?
0132D99A . BA 20000000 mov edx, 20
$ b( I1 V& \% _
0132D99F . F7E2 mul edx
4 p9 m8 k$ }# l" [
0132D9A1 . 0F90C1 seto cl
& b1 U4 E0 N- t& J: m/ n7 R
0132D9A4 . F7D9 neg ecx
: ^+ k/ g5 v, S
0132D9A6 . 0BC8 or ecx, eax
/ z9 }+ y4 R# F7 D4 |* A) C, @- |
0132D9A8 . 51 push ecx
: S: w0 s3 p& \: T/ A6 |, G
0132D9A9 . E8 964A0500 call <jmp.&MSVCR80.operator new>
/ E) c' \9 x, `% f
0132D9AE . 83C4 04 add esp, 4
4 [; o2 m# e+ y5 R' f4 p$ O& @
0132D9B1 . 85C0 test eax, eax
4 i8 Q, {6 j3 C$ X- I; b
0132D9B3 . 74 28 je short 0132D9DD
, p# |$ {& o5 m$ }$ Z- u
0132D9B5 . 83C6 FF add esi, -1
J9 ] k# b: `+ v2 a b
0132D9B8 . 78 25 js short 0132D9DF
! V3 s; d; b3 N0 V% S
0132D9BA . D9EE fldz
& o1 i5 E+ k. ?" s
0132D9BC . 8D48 0C lea ecx, dword ptr [eax+C]
* I7 N- U) I; J1 S; G
0132D9BF > D951 FC fst dword ptr [ecx-4]
* M) H1 l: C8 ]" v% R
0132D9C2 . 83C1 20 add ecx, 20
1 Z- V1 K! R; P/ @# K4 }5 q# D
0132D9C5 . 83EE 01 sub esi, 1
' n. P2 v: j6 ]7 U) t" j! S* e1 E
0132D9C8 . D951 E0 fst dword ptr [ecx-20]
% p0 P- P' a, b" e3 c5 I
0132D9CB . D951 D4 fst dword ptr [ecx-2C]
0 e( T% j+ B- N' }
0132D9CE . D951 D8 fst dword ptr [ecx-28]
: H4 u; C5 ?1 ^* a
0132D9D1 . D951 DC fst dword ptr [ecx-24]
i- f% F& y0 B8 q
0132D9D4 . D951 E0 fst dword ptr [ecx-20]
# f" l" W: [' p; j& I9 Y5 |# p
0132D9D7 .^ 79 E6 jns short 0132D9BF
: M ~/ ~' @6 N8 i# E6 `& q4 E
0132D9D9 . DDD8 fstp st
( ?8 t% ]/ y) o& J
0132D9DB . EB 02 jmp short 0132D9DF
& }' A9 f5 A9 V$ t' b; x' j' ^
0132D9DD > 33C0 xor eax, eax
! _" ~9 o3 G8 P0 f0 E
0132D9DF > 8B8C24 C80400>mov ecx, dword ptr [esp+4C8]
8 g7 \! q, |# }" Q* _
0132D9E6 . 8947 20 mov dword ptr [edi+20], eax
: e( B: T6 ~4 Y& p2 a- J2 A
0132D9E9 . 8B8424 CC0400>mov eax, dword ptr [esp+4CC]
+ p' i9 r* a" z+ b! [3 B. V
0132D9F0 . 50 push eax ; /Bottom
Z' y8 N, n' B# e0 n( y, `, t! u
0132D9F1 . 51 push ecx ; |Right
2 B( S. M* A# R K* s
0132D9F2 . 6A 00 push 0 ; |Top = 0
1 u( }; [; Y( k0 d% r
0132D9F4 . 6A 00 push 0 ; |Left = 0
+ a- g! v# T( }9 @5 c7 H
0132D9F6 . 8D5424 70 lea edx, dword ptr [esp+70] ; |
4 Q- ^) ?, v+ X6 p! I' T& ~2 y4 l
0132D9FA . 52 push edx ; |pRect
: @- p, N" E8 v3 u; H0 P3 N, _- i7 I
0132D9FB . FF15 64A73801 call dword ptr [<&USER32.SetRect>] ; \SetRect
T. j9 @/ K5 ^/ d
0132DA01 . 6A 04 push 4 ; /ObjType = BLACK_BRUSH
4 ^3 z* a* S4 [- ]
0132DA03 . FF15 58A43801 call dword ptr [<&GDI32.GetStockObjec>; \GetStockObject
+ ]& P) K- s, j$ _$ a
0132DA09 . 50 push eax ; /hBrush
/ {% u& I i$ k
0132DA0A . 8D4424 64 lea eax, dword ptr [esp+64] ; |
/ I- i% s8 V. j7 s A& {
0132DA0E . 50 push eax ; |pRect
5 \2 g* p# H C8 k0 B/ F
0132DA0F . 55 push ebp ; |hDC
9 T) r9 Y& P9 M# ]( ~- `6 {
0132DA10 . FF15 68A73801 call dword ptr [<&USER32.FillRect>] ; \FillRect
- a M! z# X: _! C, a. ?
0132DA16 . 6A 00 push 0 ; /Color = <BLACK>
7 C' M a9 g0 P$ O; C) N0 Q A
0132DA18 . 55 push ebp ; |hDC
+ E& b" e8 ~* t+ j
0132DA19 . FF15 54A43801 call dword ptr [<&GDI32.SetBkColor>] ; \SetBkColor
% B6 L; b8 V, N
0132DA1F . 68 FFFFFF00 push 0FFFFFF ; /Color = <WHITE>
' b2 H1 F* M. e8 T
0132DA24 . 55 push ebp ; |hDC
1 P' z2 S6 K, P5 z% b4 Z- D! ^
0132DA25 . FF15 50A43801 call dword ptr [<&GDI32.SetTextColor>>; \SetTextColor
9 V1 o0 Q/ {4 |/ M$ G* r. x8 _
0132DA2B . 6A 01 push 1 ; /BkMode = TRANSPARENT
: C" J. S" E% d2 L: F
0132DA2D . 55 push ebp ; |hDC
+ h* o" f% O; I* n( c8 I
0132DA2E . FF15 4CA43801 call dword ptr [<&GDI32.SetBkMode>] ; \SetBkMode
: f" a4 ~7 k' U/ a* R3 m& J
0132DA34 . 33F6 xor esi, esi
' H+ G7 E; Z: O6 ?* h
0132DA36 . 3977 1C cmp dword ptr [edi+1C], esi
# t+ D/ Q8 e5 p$ E( r
0132DA39 . BB 01000000 mov ebx, 1
4 x* f! E# K8 k2 p. D
0132DA3E . 895C24 18 mov dword ptr [esp+18], ebx
6 ~9 y- A3 Z) m% ]
0132DA42 . 897424 14 mov dword ptr [esp+14], esi
0 y' h3 u, Y. y% y* E! i
0132DA46 . 897424 1C mov dword ptr [esp+1C], esi
/ ]5 v4 {, g1 M( W+ Y
0132DA4A . 0F8E 20010000 jle 0132DB70
: g4 ^, Z* s) E% G2 ~8 V
0132DA50 . DB8424 C80400>fild dword ptr [esp+4C8]
2 {& c, r& F+ A8 ?2 ~; }
0132DA57 . 8B4424 10 mov eax, dword ptr [esp+10]
! _! ^, Y5 U( G1 O3 x
0132DA5B . 897424 20 mov dword ptr [esp+20], esi
: O7 `/ \, [2 |- j8 c
0132DA5F . 894424 10 mov dword ptr [esp+10], eax
2 X9 K& R( P$ p! c* ^8 O
0132DA63 . D95C24 38 fstp dword ptr [esp+38]
. H. A# n8 N; p; \. U2 R
0132DA67 . DB8424 CC0400>fild dword ptr [esp+4CC]
2 G/ ]) K$ P) c6 \
0132DA6E . D95C24 2C fstp dword ptr [esp+2C]
9 Q, [& q3 w6 S- u: F" E
0132DA72 . EB 04 jmp short 0132DA78
! p8 y; X) g3 L, G1 I
0132DA74 > 8B4424 10 mov eax, dword ptr [esp+10]
5 X' B$ X0 G, G* Y; X
0132DA78 > 8B77 20 mov esi, dword ptr [edi+20]
) K9 x) k7 v& J9 I, u# h0 H; r2 k
0132DA7B . 66:8B08 mov cx, word ptr [eax]
4 O6 V( x9 x; m- a; z0 q
0132DA7E . 037424 20 add esi, dword ptr [esp+20]
% H) A+ y `' T( \5 Z0 Z9 h2 s: y
0132DA82 . 66:894E 10 mov word ptr [esi+10], cx
2 R8 c6 W( `8 F7 D \0 b9 h
0132DA86 . 0FB700 movzx eax, word ptr [eax]
% C, j0 K( C2 A. m# J
0132DA89 . 8D4E 14 lea ecx, dword ptr [esi+14]
5 R* N' W) B; {) F/ H9 g/ ~
0132DA8C . 51 push ecx ; /pABC
7 e$ ]. i+ M4 u" ~; y- r* h' n/ {
0132DA8D . 50 push eax ; |LastChar
9 t) Q" G4 r2 i# ?5 i
0132DA8E . 50 push eax ; |FirstChar
) ^; M c8 T, F1 R; }
0132DA8F . 55 push ebp ; |hDC
8 I! R/ Z# l- Z2 R: M% Z
0132DA90 . FF15 48A43801 call dword ptr [<&GDI32.GetCharABCWid>; \GetCharABCWidthsW
$ E7 q. I- f' U8 F) P
0132DA96 . 8B5424 10 mov edx, dword ptr [esp+10]
8 L5 q8 ?7 q* L( x
0132DA9A . 66:833A 20 cmp word ptr [edx], 20
4 E' ^" I0 v4 j0 W; q
0132DA9E . 73 10 jnb short 0132DAB0
4 n& F0 v4 n, U$ ]$ t4 E
0132DAA0 . C746 14 00000>mov dword ptr [esi+14], 0
8 B6 V" C" ]& j& R: R; G5 p
0132DAA7 . C746 1C 00000>mov dword ptr [esi+1C], 0
* b0 n% n ~' ]7 l. q
0132DAAE . EB 0C jmp short 0132DABC
! w" |( _: Q( p
0132DAB0 > 8346 14 FF add dword ptr [esi+14], -1
4 Q- Z! e4 ~! l* m, p$ ^6 ?% Y/ {
0132DAB4 . 8346 18 02 add dword ptr [esi+18], 2
* i* D/ `7 @* S9 y
0132DAB8 . 8346 1C FF add dword ptr [esi+1C], -1
# V2 L5 W- N3 V# ~3 d1 c/ @
0132DABC > 8B4E 18 mov ecx, dword ptr [esi+18]
' u6 A- P+ d$ q( _/ i$ E8 H
0132DABF . 8D4419 01 lea eax, dword ptr [ecx+ebx+1]
7 ^: x2 N/ _2 |" H; U
0132DAC3 . 3B8424 C80400>cmp eax, dword ptr [esp+4C8]
& J. i+ ~4 E% _
0132DACA . 8B4424 14 mov eax, dword ptr [esp+14]
4 i, E/ g4 a8 t ~# X/ v
0132DACE . 72 14 jb short 0132DAE4
- U" a, o% O. o
0132DAD0 . 8B57 18 mov edx, dword ptr [edi+18]
/ u: b8 j! N2 {5 x' J4 |! v
0132DAD3 . BB 01000000 mov ebx, 1
, |/ N2 B4 z0 f
0132DAD8 . 8D4410 01 lea eax, dword ptr [eax+edx+1]
$ p, `. K/ ?: G
0132DADC . 895C24 18 mov dword ptr [esp+18], ebx
" N# R I: k [+ T. W6 t5 ~& b# x
0132DAE0 . 894424 14 mov dword ptr [esp+14], eax
% P! \0 U* h; M
0132DAE4 > DB4424 18 fild dword ptr [esp+18]
0 ]3 h" ]4 R9 a3 ^
0132DAE8 . 03CB add ecx, ebx
2 P: w* Y$ @- V) a' l& T$ M
0132DAEA . 85C9 test ecx, ecx
* u" R3 I7 w" }
0132DAEC . D94424 38 fld dword ptr [esp+38]
) P9 W4 X% o$ T9 f
0132DAF0 . D9C0 fld st
( i4 ?0 h6 Y& l7 T) r9 V
0132DAF2 . 894C24 18 mov dword ptr [esp+18], ecx
$ S9 ^ D& k4 `- D e3 \* w( E
0132DAF6 . DEFA fdivp st(2), st
9 {1 l4 ~/ Y4 C5 g' S7 S1 ? O0 b
0132DAF8 . D9C9 fxch st(1)
7 r) h( x, @; h- s/ v7 D
0132DAFA . D91E fstp dword ptr [esi]
y3 z% S# s1 G& ?& b1 b
0132DAFC . DB4424 14 fild dword ptr [esp+14]
' g; X3 s! o4 z' x/ O5 V
0132DB00 . D94424 2C fld dword ptr [esp+2C]
" a4 }1 Q: |( ]2 p* j; O$ `3 K
0132DB04 . D9C0 fld st
7 o/ e9 {; o, \/ I* i
0132DB06 . DEFA fdivp st(2), st
2 Y9 Y. h& Q/ X# M
0132DB08 . D9C9 fxch st(1)
C6 Z7 k2 B3 A: G
0132DB0A . D95E 04 fstp dword ptr [esi+4]
/ E' E* W$ o* U7 B' J7 o
0132DB0D . DB4424 18 fild dword ptr [esp+18]
+ w* l/ \% B3 S, ] Y2 l
0132DB11 . 7D 06 jge short 0132DB19
! Y: h7 X6 S: a1 ^8 O5 v
0132DB13 . D805 50B03801 fadd dword ptr [138B050]
+ ?2 Q* @8 H' D( O: ~, s
0132DB19 > DEF2 fdivrp st(2), st
+ D& \+ r- S" N" S6 K3 G4 H- Y; [
0132DB1B . 8B5424 10 mov edx, dword ptr [esp+10]
2 @* ?% n3 `5 b7 i1 z
0132DB1F . 6A 01 push 1 ; /StringSize = 1
( `; k7 ^; P i- E: s# o$ T- f Q: c
0132DB21 . 52 push edx ; |String
6 Z3 {8 G+ A$ Z r5 B, p: X7 y# t7 Q
0132DB22 . 50 push eax ; |YStart
4 n2 f2 E& F% v/ L# f" i
0132DB23 . D9C9 fxch st(1) ; |
2 i5 @- a U0 s. ~
0132DB25 . D95E 08 fstp dword ptr [esi+8] ; |
9 U n3 }) j4 G* W6 O6 A
0132DB28 . 8B4F 18 mov ecx, dword ptr [edi+18] ; |
3 u+ ]# Q2 y+ |, i' T
0132DB2B . 03C8 add ecx, eax ; |
' H1 [! N) R) s* I5 ~3 A |" k% _9 E
0132DB2D . 894C24 24 mov dword ptr [esp+24], ecx ; |
; f& ~& a3 E2 u* S9 t: l7 @5 t' G
0132DB31 . DA7C24 24 fidivr dword ptr [esp+24] ; |
6 @) t P& @7 F1 Z- @: x
0132DB35 . 8BC3 mov eax, ebx ; |
8 i- ]) \: H. r3 D, [4 s; {+ ~
0132DB37 . 2B46 14 sub eax, dword ptr [esi+14] ; |
4 ^( ^* h4 p% x' w6 O, `/ N1 L
0132DB3A . 50 push eax ; |XStart
3 W" g# p) {+ ]4 ?
0132DB3B . 55 push ebp ; |hDC
- {2 t7 Y) F/ K# i3 s* I
0132DB3C . D95E 0C fstp dword ptr [esi+C] ; |
! y* }# P- W! G u# {5 U8 b
0132DB3F . FF15 44A43801 call dword ptr [<&GDI32.TextOutW>] ; \TextOutW
" @& C0 z8 m; W& ^2 x" t
0132DB45 . 8B4424 1C mov eax, dword ptr [esp+1C]
$ g! b" p( o0 L
0132DB49 . 8B4E 18 mov ecx, dword ptr [esi+18]
2 K4 f1 m D7 W, w
0132DB4C . 834424 20 20 add dword ptr [esp+20], 20
+ |7 B+ P% |% R
0132DB51 . 834424 10 02 add dword ptr [esp+10], 2
- [6 z4 v0 K5 Z: |
0132DB56 . 83C0 01 add eax, 1
7 a1 R/ n; I1 H {) i( [
0132DB59 . 3B47 1C cmp eax, dword ptr [edi+1C]
6 o$ y+ a( ^7 c* q/ m% g1 x
0132DB5C . 8D5C0B 01 lea ebx, dword ptr [ebx+ecx+1]
. c j* O5 b! E4 o' K0 \% U2 f
0132DB60 . 895C24 18 mov dword ptr [esp+18], ebx
( y' `: I& A# T" T3 d- K
0132DB64 . 894424 1C mov dword ptr [esp+1C], eax
: ]- `% x9 E9 E* q. n1 M
0132DB68 .^ 0F8C 06FFFFFF jl 0132DA74
7 d b6 E* F2 P+ ]
0132DB6E . 33F6 xor esi, esi
8 }/ O7 a; B) q' J( A/ b
0132DB70 > 8B4F 24 mov ecx, dword ptr [edi+24]
8 M; M3 @& Y5 l& N9 P6 F
0132DB73 . 6A FF push -1
2 p4 Y7 h1 H0 g* x1 y( A
0132DB75 . 83C1 38 add ecx, 38
& [ o8 ]" h5 J: i
0132DB78 . E8 278E0300 call <jmp.&CK2.CKBitmapData::LockSurf>
+ B: t6 n' o% K" m& e
0132DB7D . 8BD8 mov ebx, eax
& A( V6 I L- R3 ` W, m N
0132DB7F . 3BDE cmp ebx, esi
j# S$ @) t; y/ p9 v. F9 q, y0 S& e
0132DB81 . 74 74 je short 0132DBF7
" F/ [& S& W8 {1 u" C" n0 Y3 v
0132DB83 . 8B4424 24 mov eax, dword ptr [esp+24]
' y, C) ?$ w8 D' c4 p9 g' b
0132DB87 . 8D5424 40 lea edx, dword ptr [esp+40]
2 u7 Z1 }8 O, P! X& u3 c
0132DB8B . 52 push edx ; /Buffer
+ y9 @! v: Y3 M: i8 B
0132DB8C . 6A 18 push 18 ; |BufSize = 18 (24.)
( w. H9 f2 V$ F F& U2 m
0132DB8E . 50 push eax ; |hObject
/ [: I8 F) H+ w
0132DB8F . FF15 40A43801 call dword ptr [<&GDI32.GetObjectA>] ; \GetObjectA
% U: A# J7 I0 X: o$ Q
0132DB95 . 8B4C24 48 mov ecx, dword ptr [esp+48]
6 @2 l \0 W9 r+ G
0132DB99 . 8D71 FF lea esi, dword ptr [ecx-1]
( A; y9 x- x6 \( X
0132DB9C . 0FAF7424 4C imul esi, dword ptr [esp+4C]
0 V! g, T+ @$ V! [/ F1 O/ `
0132DBA1 . 037424 54 add esi, dword ptr [esp+54]
5 J9 J0 x* U4 t+ M0 |4 @
0132DBA5 . 85C9 test ecx, ecx
2 O- Z$ I0 f0 b8 F/ i9 B" C
0132DBA7 . C74424 14 000>mov dword ptr [esp+14], 0
* L9 l# T4 M. m
0132DBAF . 7E 46 jle short 0132DBF7
7 E% m! V4 _' d' W
0132DBB1 . 8B5424 44 mov edx, dword ptr [esp+44]
9 B& p' A( P- U( p5 j1 f
0132DBB5 > 33C0 xor eax, eax
6 J4 q9 t- O' j$ o
0132DBB7 . 85D2 test edx, edx
- [/ D; B! P3 Q+ K0 n
0132DBB9 . 7E 26 jle short 0132DBE1
Y6 ^* c3 e7 o5 _) K4 h" `& S
0132DBBB . 8BCE mov ecx, esi
2 o! _, S4 n7 h- K. Y
0132DBBD . 8D49 00 lea ecx, dword ptr [ecx]
- `9 `9 e; {. y U3 g
0132DBC0 > 0FB611 movzx edx, byte ptr [ecx]
$ ]3 N; U* k' L1 t" @3 V
0132DBC3 . C1E2 18 shl edx, 18
1 f( y' u5 U) P0 `- e- a+ I" i
0132DBC6 . 81CA FFFFFF00 or edx, 0FFFFFF
( D4 J" U- q& o& @$ d4 z/ h+ q+ h4 B
0132DBCC . 891483 mov dword ptr [ebx+eax*4], edx
* T$ z7 e5 A3 g( i1 k
0132DBCF . 8B5424 44 mov edx, dword ptr [esp+44]
, @: k3 E4 q7 T, W2 {2 [
0132DBD3 . 83C0 01 add eax, 1
+ W# S, W5 Y- T" C$ a1 C* l
0132DBD6 . 83C1 03 add ecx, 3
$ F' S' o% Q H0 C1 B% A( e
0132DBD9 . 3BC2 cmp eax, edx
% [- W5 }/ l7 I6 {
0132DBDB .^ 7C E3 jl short 0132DBC0
" a* i9 ?5 S; a6 A
0132DBDD . 8B4C24 48 mov ecx, dword ptr [esp+48]
" P) {* c$ Q5 S3 @5 v) I! ~( v( e
0132DBE1 > 8B4424 14 mov eax, dword ptr [esp+14]
. m" E. U! x+ V- j9 w# S) z& Q
0132DBE5 . 2B7424 4C sub esi, dword ptr [esp+4C]
$ L5 G. Q8 G! H2 c A
0132DBE9 . 83C0 01 add eax, 1
: a X& m: G$ A! D" k- r7 K
0132DBEC . 3BC1 cmp eax, ecx
1 m: z n I; G/ \; H/ ]% |
0132DBEE . 8D1C93 lea ebx, dword ptr [ebx+edx*4]
0 M3 h p( W2 A0 a/ Y
0132DBF1 . 894424 14 mov dword ptr [esp+14], eax
/ o" I% A( ~" T, H, M
0132DBF5 .^ 7C BE jl short 0132DBB5
^, X, U2 P* B- Z
0132DBF7 > 8B4F 24 mov ecx, dword ptr [edi+24]
& i4 K2 l! z/ Y/ ~% `3 |6 |# }
0132DBFA . 6A FF push -1
* g* Y- a6 a/ J( D8 W
0132DBFC . 83C1 38 add ecx, 38
7 B. K% @& j8 ^1 f: O
0132DBFF . E8 9A8D0300 call <jmp.&CK2.CKBitmapData::ReleaseS>
* K2 v2 |: e5 m; L! C
0132DC04 . 8B4424 34 mov eax, dword ptr [esp+34]
6 F$ `1 x* b4 W7 K
0132DC08 . 8B35 70A43801 mov esi, dword ptr [<&GDI32.SelectOb>; GDI32.SelectObject
7 R0 }0 ~ W5 ?, S1 @
0132DC0E . 50 push eax ; /hObject
! s- {# p; a" o0 s: ^
0132DC0F . 55 push ebp ; |hDC
2 I6 }, K! {) U/ c. X$ _
0132DC10 . FFD6 call esi ; \SelectObject
/ F4 \6 c2 f! a) c9 R
0132DC12 . 8B4C24 30 mov ecx, dword ptr [esp+30]
" e+ W" u! b2 v$ E: r$ G2 j
0132DC16 . 51 push ecx
# B3 N& z$ j# C' z# _
0132DC17 . FF15 28A83801 call dword ptr [<&VxMath.VxDeleteFont>; VxMath.VxDeleteFont
) Q ?- e- K) I5 k* `) j
0132DC1D . 8B5424 40 mov edx, dword ptr [esp+40]
0 B/ ?0 k; K8 B! |: E- t. y# q
0132DC21 . 83C4 04 add esp, 4
' u. l" A& y1 P% r" [
0132DC24 . 52 push edx
! y( F4 f0 G/ y( O/ m7 M5 I
0132DC25 . 55 push ebp
/ j4 a* A' z0 G7 N5 J% G/ |8 P
0132DC26 . FFD6 call esi
& L# F1 z$ T2 r: s+ k4 H
0132DC28 . 8B4424 24 mov eax, dword ptr [esp+24]
* K9 G# ^2 h" f! H9 X3 F# d
0132DC2C . 50 push eax
& I5 l4 }3 }" o' l& S1 h8 z
0132DC2D . FF15 2CA83801 call dword ptr [<&VxMath.VxDeleteBitm>; VxMath.VxDeleteFont
8 N3 A6 m: s/ z. C+ l3 Y. ]
0132DC33 . 83C4 04 add esp, 4
7 H" i- o& |8 Q+ C
0132DC36 . 55 push ebp ; /hDC
1 a t" _6 z; _0 `/ x1 h% r
0132DC37 . FF15 3CA43801 call dword ptr [<&GDI32.DeleteDC>] ; \DeleteDC
$ U5 ?) N( Q8 c4 n# T, G( G Q
0132DC3D . 8B4C24 28 mov ecx, dword ptr [esp+28]
o2 N" a f3 Q
0132DC41 . 6A 00 push 0
9 W! [! M0 v' ]6 f" @' Y1 P
0132DC43 . 51 push ecx
6 h4 w+ ?2 o$ ~7 j3 e% \
0132DC44 . 8B4F 24 mov ecx, dword ptr [edi+24]
" x- ^* G4 o9 j& I( P: s
0132DC47 . E8 4C8A0300 call <jmp.&CK2.CKObject::SetName>
# |# a2 e, }( n5 [% J
0132DC4C . 8B4F 24 mov ecx, dword ptr [edi+24]
, k* p; P Q* N8 I/ i: {" f% {
0132DC4F . 6A 01 push 1
4 C; r9 _1 p0 N( W) a8 r# D
0132DC51 . 83C1 38 add ecx, 38
0 L# t$ H' L) N: j0 P7 m
0132DC54 . E8 7B8D0300 call <jmp.&CK2.CKBitmapData::SetDesir>
2 T, Q; i6 F+ _- h
0132DC59 . 8B4F 24 mov ecx, dword ptr [edi+24]
9 q; S; _4 A# x( J5 l
0132DC5C . 8B11 mov edx, dword ptr [ecx]
. @% ~6 L& b* d8 r
0132DC5E . 8B42 78 mov eax, dword ptr [edx+78]
7 U8 _' A; g- o3 {" t
0132DC61 . 6A 00 push 0
& H* p% [% x$ M; a7 X& l0 ]8 }
0132DC63 . FFD0 call eax
U1 ^9 h" Z2 ~+ V( r ]" Q) v
0132DC65 . 8B4F 18 mov ecx, dword ptr [edi+18]
8 R k0 M6 R3 {% @
0132DC68 . 034C24 14 add ecx, dword ptr [esp+14]
`1 c' z5 N q) @5 b& {
0132DC6C . 33C0 xor eax, eax
( D: H8 ?4 k1 A, Q2 E! e# V
0132DC6E . 3B8C24 CC0400>cmp ecx, dword ptr [esp+4CC]
1 E% l; `2 m( ^# e
0132DC75 . 5D pop ebp
5 ^6 ?; B3 ^8 k) e, W6 }
0132DC76 . 0F9CC0 setl al
; o1 W" k) l# Y9 T+ g
0132DC79 > 8B8C24 A00400>mov ecx, dword ptr [esp+4A0]
1 I6 S+ A. g. r" f
0132DC80 . 5F pop edi
) P% Q/ z9 y" X% |
0132DC81 . 5E pop esi
7 ~2 ^$ l. L8 Y. V b8 }
0132DC82 . 5B pop ebx
/ B; l0 T) K0 V) a
0132DC83 . 33CC xor ecx, esp
7 U d& c7 X$ R$ p# ^/ `
0132DC85 . E8 E2460500 call 0138236C
: `$ ?0 }% y* x/ D( Y9 ~
0132DC8A . 81C4 98040000 add esp, 498
1 q( a3 m( d5 T: C
0132DC90 . C2 2800 retn 28
作者:
beegame
时间:
2010-1-10 13:23
不懂,希望能把分析发出来给新人学习 谢谢 [s:45]
作者:
beegame
时间:
2010-1-10 13:24
再请教 这个调试软件是什么,那里有下载。。
作者:
shane007
时间:
2010-1-10 16:37
回楼上,这个调试软件叫ollydbg,即OD,我用的是其修改版olly ice.
# I! X2 t9 ` z6 c8 I
分析说明也许以后会补上。
% ]: y2 {, q9 W5 [6 E
W4 C& T6 I& W8 K
加油!
欢迎光临 冒险解谜游戏中文网 ChinaAVG (https://chinaavg.com/)
Powered by Discuz! X3.2