冒险解谜游戏中文网 ChinaAVG

标题: 神秘纪事2字库函数 [打印本页]

作者: shane007    时间: 2010-1-8 00:12
标题: 神秘纪事2字库函数
发现了一个和字库有关的函数,研究中。
8 h2 K7 Y- B- ^6 m/ y
% @% I. o1 M8 D/ S0132D7E0  $  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( K0132D7EB  .  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# [, h0132D804  .  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( G0132D809  .  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% Z0132D816  .  52            push    edx                              ; |s
' L3 ~& D1 }0 c4 h0132D817  .  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( j0132D827  .  E8 284B0500  call    <jmp.&MSVCR80.memset>            ; \memset . @- t9 }; x% o
0132D82C  .  83C4 0C      add    esp, 0C
$ }! @$ ~  Y' I4 x0132D82F  .  80BC24 CC0400>cmp    byte ptr [esp+4CC], 0 " m& _  m, C& O/ f) ]# O
0132D837  .  74 12        je      short 0132D84B
' g- w' |5 _) l: q0132D839  .  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 r0132D859  .  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 N0132D86B  .  83C0 01      add    eax, 1
) }# X* P6 a0 z( g- C+ Q0132D86E  .  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 I0132D88C  >  6A 00        push    0
9 J% v/ b+ N- O0132D88E  .  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, Q0132D89A  .  8B8C24 C80400>mov    ecx, dword ptr [esp+4C8] 6 F3 W) O4 J1 S/ k
0132D8A1  .  6A 00        push    0
( z+ W' t. g0 T0132D8A3  .  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* c0132D8AD  .  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! I0132D8B2  .  8B52 54      mov    edx, dword ptr [edx+54]
0 b! Z# G' s" @+ R6 Y) K0132D8B5  .  51            push    ecx
0 o& C* X- v9 k9 x7 W0132D8B6  .  8BC8          mov    ecx, eax , n7 l( [2 \  S- o& \- T
0132D8B8  .  FFD2          call    edx
( V& B: _& M; j$ n9 S* W- g( h, U0132D8BA  .  85C0          test    eax, eax
: @+ o) x; T# F; ?# o# a0132D8BC  .  75 07        jnz    short 0132D8C5
# G0 m) ^) m% [$ x- S# h% |0 r0132D8BE  .  32C0          xor    al, al 0 D: H+ e" p5 U  t4 @7 w
0132D8C0  .  E9 B4030000  jmp    0132DC79
- J, B2 B, A- B2 d0132D8C5  >  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 R0132D8CA  .  8B80 88000000 mov    eax, dword ptr [eax+88]
3 @/ a' t5 o& ^. `# Z0132D8D0  .  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 F0132D8D8  .  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$ L0132D8E0  .  8D4C24 70    lea    ecx, dword ptr [esp+70]
1 W* q( t8 V6 i; ~5 P; Y9 J0132D8E4  .  51            push    ecx " L' `( g+ v- t" `$ V( k# P. v
0132D8E5  .  8BE8          mov    ebp, eax
9 h" d; n# ?+ g  Q% h: E0132D8E7  .  FF15 24A83801 call    dword ptr [<&VxMath.VxCreateBitm>;  VxMath.VxCreateBitmap
& t  X% e+ b. D9 T0132D8ED  .  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. V0132D8F7  .  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) X0132D8FC  .  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 I0132D916  .  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$ z0132D91B  .  895F 14      mov    dword ptr [edi+14], ebx          ; ||
/ p& d  M/ ?3 \% g( K0132D91E  .  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 C0132D925  .  53            push    ebx                              ; |Multiplicand
! i, e: X, p1 p* ]/ _6 N0132D926  .  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 h0132D937  .  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/ J0132D93F  .  6A 00        push    0                                ; |PitchAndFamily = DEFAULT_PITCH|FF_DONTCARE # d; S  r% M! y% [! i
0132D941  .  52            push    edx                              ; |Quality
. }* z" ]( _$ _  N* u" u0132D942  .  6A 00        push    0                                ; |ClipPrecision = CLIP_DEFAULT_PRECIS
) U! f2 A1 t$ J; d4 e) y6 T0132D944  .  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 |' H0132D94A  .  8BD1          mov    edx, ecx                        ; | 2 X% a! j( l5 }! m5 J9 l" ?
0132D94C  .  D1EA          shr    edx, 1                          ; |
; m0 U! Y6 @% x7 u1 M: I: q0132D94E  .  83E2 01      and    edx, 1                          ; |
+ w- a* X  X; a0132D951  .  52            push    edx                              ; |Underline 8 m) u) I0 y% S
0132D952  .  83E1 01      and    ecx, 1                          ; |
. w* C; H8 f% N1 L- C0 i0132D955  .  51            push    ecx                              ; |Italic
  k7 M( {8 U: D3 x, O" ?6 V0132D956  .  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 u0132D962  .  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: O0132D966  .  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( V0132D96D  .  50            push    eax   @4 F/ h+ k0 R% v; v; i3 W
0132D96E  .  55            push    ebp
9 z+ G, t. L( s0 g5 N0132D96F  .  894424 38    mov    dword ptr [esp+38], eax
2 \/ ^6 l1 D. P+ ]  C1 Z  d0132D973  .  FFD6          call    esi
  i8 `% C4 g- o3 `0 E0132D975  .  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; H0132D981  .  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& Z0132D986  .  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. y0132D990  .  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( m0132D996  .  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# {: i0132D9A1  .  0F90C1        seto    cl & D1 b- v: ^! c% o
0132D9A4  .  F7D9          neg    ecx + E5 K* U. ]5 E
0132D9A6  .  0BC8          or      ecx, eax
# N0 ^" ?# O# K0132D9A8  .  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, s0132D9B5  .  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 ]& N0132D9BF  >  D951 FC      fst    dword ptr [ecx-4]
9 D; F% _- r1 q! r7 \0132D9C2  .  83C1 20      add    ecx, 20
$ m" i& |. f  y0132D9C5  .  83EE 01      sub    esi, 1 ! _3 ]: o1 K! ]
0132D9C8  .  D951 E0      fst    dword ptr [ecx-20]
1 e" `4 i7 {, Q/ w/ b0132D9CB  .  D951 D4      fst    dword ptr [ecx-2C]
, i" e# f  t- }  |5 c0132D9CE  .  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 V0132D9F0  .  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 M0132DA09  .  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- j0132DA0F  .  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+ j0132DA18  .  55            push    ebp                              ; |hDC 3 B5 l. m! |+ g7 M9 ?+ l7 [
0132DA19  .  FF15 54A43801 call    dword ptr [<&GDI32.SetBkColor>]  ; \SetBkColor
) J1 _$ K5 W- j0132DA1F  .  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( I0132DA2D  .  55            push    ebp                              ; |hDC
1 a$ [' H- z+ r0132DA2E  .  FF15 4CA43801 call    dword ptr [<&GDI32.SetBkMode>]  ; \SetBkMode
; t1 ?1 L7 U3 }% d7 Z1 L3 O* I0132DA34  .  33F6          xor    esi, esi
: F) \. L+ c! |- F& _0132DA36  .  3977 1C      cmp    dword ptr [edi+1C], esi
4 M# y6 d6 r: `9 t0132DA39  .  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 o0132DA46  .  897424 1C    mov    dword ptr [esp+1C], esi
) I2 v: m9 z/ T: W3 A0132DA4A  .  0F8E 20010000 jle    0132DB70 5 q* o& c: K6 l
0132DA50  .  DB8424 C80400>fild    dword ptr [esp+4C8]
; s# X$ C+ d: \/ T1 n9 y0132DA57  .  8B4424 10    mov    eax, dword ptr [esp+10]
4 c4 j. X0 Q8 F9 c0132DA5B  .  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- G0132DA63  .  D95C24 38    fstp    dword ptr [esp+38]
* d- p% f6 }3 O1 D" D7 D. j/ T0132DA67  .  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, J0132DA74  >  8B4424 10    mov    eax, dword ptr [esp+10]
5 s  |) }3 d' F2 A' D; `9 h0132DA78  >  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( I0132DA7E  .  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+ I0132DA8C  .  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, Z0132DA8E  .  50            push    eax                              ; |FirstChar
1 r" F- ^2 L, Q5 A0132DA8F  .  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/ R0132DAB0  >  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, J0132DACE  .  72 14        jb      short 0132DAE4
6 ?4 ?1 X4 x$ W6 Q6 ?7 u0132DAD0  .  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/ D0132DAD8  .  8D4410 01    lea    eax, dword ptr [eax+edx+1]
% S3 l9 t5 g. d2 f) \" d0132DADC  .  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  J0132DAEA  .  85C9          test    ecx, ecx
* m# e7 q1 s9 i) C2 e4 F0132DAEC  .  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 C0132DAF6  .  DEFA          fdivp  st(2), st
; b& q6 B- y1 y8 m& u3 F0132DAF8  .  D9C9          fxch    st(1)
3 g, l- R$ V( d! J0132DAFA  .  D91E          fstp    dword ptr [esi]
- j1 v8 p" e2 ]- M& L& e0132DAFC  .  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 _, ?, c0132DB04  .  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$ n0132DB25  .  D95E 08      fstp    dword ptr [esi+8]                ; |
* B- v3 r: p6 k6 f0132DB28  .  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, B0132DB3B  .  55            push    ebp                              ; |hDC 0 H+ g1 S! _6 _6 `
0132DB3C  .  D95E 0C      fstp    dword ptr [esi+C]                ; |
. k' Q2 s# {" h$ [& n, }) z/ q0132DB3F  .  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 a0132DB49  .  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 h0132DB6E  .  33F6          xor    esi, esi
" ~; d/ f- e. L2 R- W0132DB70  >  8B4F 24      mov    ecx, dword ptr [edi+24]
! a$ L& s0 D. O0132DB73  .  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 c0132DB7F  .  3BDE          cmp    ebx, esi
( h3 \# k3 [9 i# Q% g1 \$ j  R0 B0132DB81  .  74 74        je      short 0132DBF7
6 Y0 V1 I( j# Z5 Q% y' Y) Z5 _( r0132DB83  .  8B4424 24    mov    eax, dword ptr [esp+24]
/ S3 w- ^' [8 S+ T0132DB87  .  8D5424 40    lea    edx, dword ptr [esp+40]
/ n9 h# X0 e7 d% N9 i3 x% M0132DB8B  .  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 o0132DB95  .  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 [! A0132DBA1  .  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! m0132DBAF  .  7E 46        jle    short 0132DBF7
* e) T8 {9 N4 Z; A" f0132DBB1  .  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: l0132DBB7  .  85D2          test    edx, edx
* s! G2 O0 q7 @- R2 B3 F0132DBB9  .  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 u0132DBC0  >  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 w0132DBC6  .  81CA FFFFFF00 or      edx, 0FFFFFF
! V4 B' [% r2 \+ `2 c0132DBCC  .  891483        mov    dword ptr [ebx+eax*4], edx
! G' H# Z" o9 E- n* B0132DBCF  .  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 I0132DBDD  .  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  W0132DBE5  .  2B7424 4C    sub    esi, dword ptr [esp+4C]
* C6 ?  Y+ g" j0132DBE9  .  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 L0132DBFF  .  E8 9A8D0300  call    <jmp.&CK2.CKBitmapData::ReleaseS>
' _0 W8 d9 N0 E2 `0 m0132DC04  .  8B4424 34    mov    eax, dword ptr [esp+34]
9 L8 M. f2 M; X$ J! F  V0132DC08  .  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 g0132DC0F  .  55            push    ebp                              ; |hDC
* K) y+ h  D! J9 j2 b0132DC10  .  FFD6          call    esi                              ; \SelectObject
8 e' F1 m6 R, u( g0132DC12  .  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 S0132DC21  .  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 B0132DC26  .  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 y0132DC36  .  55            push    ebp                              ; /hDC
5 J& z' `4 f: j) h0132DC37  .  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, |! P0132DC44  .  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, a0132DC4C  .  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 W0132DC51  .  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 w0132DC5C  .  8B11          mov    edx, dword ptr [ecx]
- F2 E6 N9 `$ T2 j9 t8 N3 j0132DC5E  .  8B42 78      mov    eax, dword ptr [edx+78]
/ ^- ^" L% z% {) n0 S+ B0 a0132DC61  .  6A 00        push    0
$ F7 N1 P1 a: m; _& o+ U5 y0132DC63  .  FFD0          call    eax
6 o' \. }+ r- w/ N5 A/ }0132DC65  .  8B4F 18      mov    ecx, dword ptr [edi+18]
! `' W  G8 ?6 a& G2 Y0132DC68  .  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 S0132DC76  .  0F9CC0        setl    al
9 \9 C. [9 ^: B" y0132DC79  >  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 w0132DC85  .  E8 E2460500  call    0138236C
4 C# P# m' U6 o! c8 @5 Y- l0132DC8A  .  81C4 98040000 add    esp, 498
7 L6 w# T, I$ U  m( J0132DC90  .  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