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