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