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