冒险解谜游戏中文网 ChinaAVG

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

作者: shane007    时间: 2010-1-8 00:12
标题: 神秘纪事2字库函数
发现了一个和字库有关的函数,研究中。 9 z+ }9 Q( W% T; g

" G! [3 P8 n) S0132D7E0  $  81EC 98040000 sub    esp, 498 " d" A) U0 s. o/ O% I
0132D7E6  .  A1 7CD13A01  mov    eax, dword ptr [13AD17C] $ ?1 u# f3 Y9 g8 J" I+ K
0132D7EB  .  33C4          xor    eax, esp 9 L; I/ g) R3 x4 f3 {+ t& K
0132D7ED  .  898424 940400>mov    dword ptr [esp+494], eax
5 `$ z- {/ F% F& h& d0132D7F4  .  8B8424 A00400>mov    eax, dword ptr [esp+4A0] 7 V' D( A' X' Z3 h( T
0132D7FB  .  53            push    ebx 6 U& k) u: W  h! n% u
0132D7FC  .  56            push    esi
( a0 N8 J  {1 @; N8 N0132D7FD  .  8BB424 A40400>mov    esi, dword ptr [esp+4A4]
0 S# t2 A* Q) I3 V6 n" m" D5 |0 j# {0132D804  .  57            push    edi & I' h. p8 x+ f/ `+ \
0132D805  .  6A 30        push    30                              ; /n = 30 (48.) * j9 }6 r: i( ], g" u7 X
0132D807  .  8BF9          mov    edi, ecx                        ; |
0 T9 ?9 q9 V% y% Z: F% D4 A0132D809  .  8B8C24 B40400>mov    ecx, dword ptr [esp+4B4]        ; |
  X" K5 t/ b" A4 ?6 \  ^+ V0 w* A0132D810  .  8D5424 74    lea    edx, dword ptr [esp+74]          ; |
; Z2 v! z7 }- j/ _0132D814  .  6A 00        push    0                                ; |c = 00 " K* T" c5 \% I4 Q- _
0132D816  .  52            push    edx                              ; |s * r" j8 e  l9 a, ~
0132D817  .  894424 30    mov    dword ptr [esp+30], eax          ; | ! o" J5 w- P5 A# x9 l) G5 I: c
0132D81B  .  894C24 24    mov    dword ptr [esp+24], ecx          ; | 1 e3 a9 X8 j' B8 O1 K% i9 H& \% s
0132D81F  .  C74424 78 340>mov    dword ptr [esp+78], 34          ; | ' t9 N7 H, Q$ i9 A
0132D827  .  E8 284B0500  call    <jmp.&MSVCR80.memset>            ; \memset
8 Y6 u3 T" r: f( b' W) A/ f5 u9 c0132D82C  .  83C4 0C      add    esp, 0C + Q, c( X# @' K* P" e! _
0132D82F  .  80BC24 CC0400>cmp    byte ptr [esp+4CC], 0
( m" o+ V+ n: O; M2 L$ R& \/ l# i0132D837  .  74 12        je      short 0132D84B $ Y. G0 I  R8 F/ [& O
0132D839  .  A1 F8F63A01  mov    eax, dword ptr [13AF6F8]
5 {" @% J; p# m  F  o' ]6 ?0132D83E . C74424 0C F0D>mov dword ptr [esp+C], 013AD6F0 ; UNICODE " !""#%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\^_abcdefghijklmnopqrstuvwxyz"
2 w: I. @5 g0 }  E0132D846  .  8947 1C      mov    dword ptr [edi+1C], eax
6 {: P2 Y2 L& A0 t) s0 N! r/ Q7 N0132D849  .  EB 32        jmp    short 0132D87D
) `- a! g$ c" p: }. d0132D84B  >  C747 1C 60010>mov    dword ptr [edi+1C], 160 1 X6 G. E7 Z3 G, h! T
0132D852  .  8B4F 1C      mov    ecx, dword ptr [edi+1C]
' r5 o6 _+ q: T0132D855  .  33C0          xor    eax, eax 3 U( h5 H! L2 ~
0132D857  .  EB 07        jmp    short 0132D860
  ]* u: @" N/ @% Y8 f0132D859  .  8DA424 000000>lea    esp, dword ptr [esp] 4 ~8 ^; q0 t# v+ ?
0132D860  >  8D50 20      lea    edx, dword ptr [eax+20] 0 L* W& s1 C  {. w; e; ?0 j; O
0132D863  .  66:899444 A00>mov    word ptr [esp+eax*2+A0], dx " C- t& e, x- k% y
0132D86B  .  83C0 01      add    eax, 1 % K! A; _. L* V/ B$ Y! t
0132D86E  .  3BC1          cmp    eax, ecx 8 t; E) t! i. a7 V% o& ^1 Y
0132D870  .^ 7C EE        jl      short 0132D860   l5 k* r" |/ H9 s; D7 p: s; W1 i
0132D872  .  8D8424 A00000>lea    eax, dword ptr [esp+A0]
: z- P$ ~( o  O) s& o0132D879  .  894424 0C    mov    dword ptr [esp+C], eax
; r2 b, n* i" C" Y+ ^3 j- r0132D87D  >  8B47 0C      mov    eax, dword ptr [edi+C] * F/ L4 _  q9 B3 s1 |, s
0132D880  .  85C0          test    eax, eax 6 \& `6 c, U& G4 c5 E5 O
0132D882  .  8D5F 0C      lea    ebx, dword ptr [edi+C] 5 g5 ?* N" q3 Y+ @' Z
0132D885  .  75 05        jnz    short 0132D88C
0 U+ X9 d% h$ A$ G0132D887  .  B8 16263901  mov    eax, 01392616 2 k, `6 b, b, [. C9 w! k5 N
0132D88C  >  6A 00        push    0
+ J/ p2 U/ P( t! N0132D88E  .  6A 00        push    0
" C3 Y6 U& r6 ^4 G* T  F0132D890  .  50            push    eax
  l6 D8 f/ w! v0132D891  .  6A 1F        push    1F * R; q! k7 \( G# v$ ^$ z  E( }; n+ |
0132D893  .  8BCE          mov    ecx, esi
  z: F* Q+ W  L" ~7 l6 Y0132D895  .  E8 FA8E0300  call    <jmp.&CK2.CKContext::CreateObjec> . l( K9 ?$ O# {9 W4 l7 z, K3 x0 s+ F3 r
0132D89A  .  8B8C24 C80400>mov    ecx, dword ptr [esp+4C8]
( e- p+ U& @; O0 j7 ~/ y0132D8A1  .  6A 00        push    0 ; s2 F9 o/ T+ Y6 }2 Z0 c. i
0132D8A3  .  6A 20        push    20 1 x) [# t# `8 O) p
0132D8A5  .  51            push    ecx
) \1 x# n0 [- A0132D8A6  .  8B8C24 D00400>mov    ecx, dword ptr [esp+4D0] ) g. r8 M9 X$ @) y; s
0132D8AD  .  8947 24      mov    dword ptr [edi+24], eax
3 d/ ~5 u0 _  c; O+ k0132D8B0  .  8B10          mov    edx, dword ptr [eax] # a2 J  \5 {/ A  c. d4 @
0132D8B2  .  8B52 54      mov    edx, dword ptr [edx+54]
8 D; z# Y: O1 ]& e6 C: s0132D8B5  .  51            push    ecx + {0 h* u& |  D- `6 U& f. X) C
0132D8B6  .  8BC8          mov    ecx, eax
% O4 k+ ~) ]1 C! r. Q: z( D1 L- M9 b0132D8B8  .  FFD2          call    edx : s) l; S: e# I- n0 E0 t2 w
0132D8BA  .  85C0          test    eax, eax
; S* W3 t* N7 d* R5 {+ v6 b0 E0132D8BC  .  75 07        jnz    short 0132D8C5 " g6 Q% Z1 R* }
0132D8BE  .  32C0          xor    al, al / v6 `& k0 n5 r
0132D8C0  .  E9 B4030000  jmp    0132DC79
( E: z4 Y5 u4 r% c$ D6 d; g0132D8C5  >  8B4F 24      mov    ecx, dword ptr [edi+24]
- D# n4 R2 [1 z, y2 ?0132D8C8  .  8B01          mov    eax, dword ptr [ecx] 1 ], g& E+ l' i% Z  [, L8 m
0132D8CA  .  8B80 88000000 mov    eax, dword ptr [eax+88] ! \9 Z) M& U7 |9 f& T1 B
0132D8D0  .  55            push    ebp
7 _4 f+ u* B! p3 K! Y0132D8D1  .  8D5424 70    lea    edx, dword ptr [esp+70] 0 I2 C) e/ H/ I9 c2 s
0132D8D5  .  52            push    edx
6 t; H4 E& S, L$ w  t& r8 Z; O% l0132D8D6  .  FFD0          call    eax
+ C$ \% e6 c1 L' w- ~- Z, b+ q0132D8D8  .  6A 00        push    0                                ; /hDC = NULL " \( a% {4 p7 D7 O0 ~# k& ~* J
0132D8DA  .  FF15 34A43801 call    dword ptr [<&GDI32.CreateCompati>; \CreateCompatibleDC 8 Q( @5 Y0 F" _5 f( e" X
0132D8E0  .  8D4C24 70    lea    ecx, dword ptr [esp+70] 2 o3 A4 R8 L, A$ [: a. @3 ?
0132D8E4  .  51            push    ecx $ f& P& Y; O) R) M  c
0132D8E5  .  8BE8          mov    ebp, eax ! h& `8 H% ~0 W
0132D8E7  .  FF15 24A83801 call    dword ptr [<&VxMath.VxCreateBitm>;  VxMath.VxCreateBitmap
: v' ~+ A+ s: M9 A$ d2 p0132D8ED  .  8B35 70A43801 mov    esi, dword ptr [<&GDI32.SelectOb>;  GDI32.SelectObject 8 o* j' h  a& W* Y3 R/ K( h9 U' `: Y
0132D8F3  .  83C4 04      add    esp, 4 ( i4 x7 j! _/ `+ K. s/ l0 A- I
0132D8F6  .  50            push    eax                              ; /hObject 2 q. Y. U$ U  P7 x! @& {: V
0132D8F7  .  55            push    ebp                              ; |hDC
8 f/ M  v3 f) b- a0132D8F8  .  894424 2C    mov    dword ptr [esp+2C], eax          ; |
) M; W! v5 K. W# X+ M" W, M0132D8FC  .  FFD6          call    esi                              ; \SelectObject 9 E% y1 B! r$ ^
0132D8FE  .  8B5424 28    mov    edx, dword ptr [esp+28] + e; c0 F1 v/ r4 H: ], @* b
0132D902  .  52            push    edx , K8 A& f7 u4 h: q$ }$ ^) D
0132D903  .  8BCB          mov    ecx, ebx
: j1 z( M3 {5 @+ p( z. H0132D905  .  894424 40    mov    dword ptr [esp+40], eax 7 Y# s7 x( P8 f
0132D909  .  FF15 BCA83801 call    dword ptr [<&VxMath.XString::ope>;  VxMath.XString::operator= : v% ?) Y: r" l7 V, X( V: R
0132D90F  .  8B9C24 B80400>mov    ebx, dword ptr [esp+4B8] ( j# }4 Q$ q! M- B: c( h
0132D916  .  6A 48        push    48                              ; /Divisor = 48 (72.)
$ I. W* b$ S) m: z7 ?5 J5 h6 C% G  ~0132D918  .  6A 5A        push    5A                              ; |/Index = LOGPIXELSY
  W4 W8 B3 b6 m: `) A1 }: g0132D91A  .  55            push    ebp                              ; ||hDC
# ?1 l: F4 p: r- k( p0132D91B  .  895F 14      mov    dword ptr [edi+14], ebx          ; || 3 ~% S, v3 U6 j' N
0132D91E  .  FF15 64A43801 call    dword ptr [<&GDI32.GetDeviceCaps>; |\GetDeviceCaps
2 {! h9 k7 w+ d6 H' ?0132D924  .  50            push    eax                              ; |Multiplier
9 l5 @2 ?' ~/ c$ e- Y0132D925  .  53            push    ebx                              ; |Multiplicand * j2 A, x: K* O4 ~6 D) Z& T5 c. ]
0132D926  .  FF15 DCA43801 call    dword ptr [<&KERNEL32.MulDiv>]  ; \MulDiv - U! R! l* u0 G5 r2 I9 q
0132D92C  .  8B4C24 1C    mov    ecx, dword ptr [esp+1C] 3 H/ z# _8 j9 g8 M! O0 }7 d
0132D930  .  8B9424 C00400>mov    edx, dword ptr [esp+4C0] 5 t9 Q" K+ S8 B, c5 ^
0132D937  .  51            push    ecx                              ; /FaceName 0 i5 N: C" N- _) f
0132D938  .  8B8C24 C80400>mov    ecx, dword ptr [esp+4C8]        ; |
/ }' O: z: _9 d0132D93F  .  6A 00        push    0                                ; |PitchAndFamily = DEFAULT_PITCH|FF_DONTCARE
+ d& T6 @7 k, i' Z$ t: w0132D941  .  52            push    edx                              ; |Quality ' Y1 Y! p# l4 E0 o6 `" P' G/ S6 x" M* a
0132D942  .  6A 00        push    0                                ; |ClipPrecision = CLIP_DEFAULT_PRECIS
$ K" c! B- o" I; ]( }0132D944  .  6A 07        push    7                                ; |OutputPrecision = OUT_TT_ONLY_PRECIS
+ W, k6 m( U2 d1 o& |; g7 R8 ^0132D946  .  6A 01        push    1                                ; |CharSet = DEFAULT_CHARSET . m9 p+ y5 i/ j$ Y
0132D948  .  6A 00        push    0                                ; |StrikeOut = FALSE 2 Z4 q: ]; B; r, L6 O+ c
0132D94A  .  8BD1          mov    edx, ecx                        ; | . j2 b# c, P, {
0132D94C  .  D1EA          shr    edx, 1                          ; |
* Z, l3 B9 v. r0132D94E  .  83E2 01      and    edx, 1                          ; | & L- i0 \1 t/ e6 f7 S7 A2 B6 X
0132D951  .  52            push    edx                              ; |Underline
! a1 [1 M/ I: o! N7 o0132D952  .  83E1 01      and    ecx, 1                          ; |   M1 `$ z7 R) Y( k% k
0132D955  .  51            push    ecx                              ; |Italic
" O- {7 L6 C( z% g) u$ [; P0132D956  .  8B8C24 E00400>mov    ecx, dword ptr [esp+4E0]        ; | 8 \- H# G' Q% q$ `% \
0132D95D  .  51            push    ecx                              ; |Weight
* z8 v- @/ N- h. f& c0 R! _0132D95E  .  6A 00        push    0                                ; |Orientation = 0 $ |3 i( o8 O7 ~( R0 W$ C1 R
0132D960  .  6A 00        push    0                                ; |Escapement = 0 2 Q0 H5 a( [  L2 y2 y, m. E9 v9 y! w
0132D962  .  F7D8          neg    eax                              ; |
3 z+ k, \& z6 B' t$ a  S$ t0132D964  .  6A 00        push    0                                ; |Width = 0 * X) i9 k* L' X: B( h
0132D966  .  50            push    eax                              ; |Height
* \  c6 |8 J: b# i0132D967  .  FF15 60A43801 call    dword ptr [<&GDI32.CreateFontA>] ; \CreateFontA 2 `- }$ T! {, T! n' _+ R' a
0132D96D  .  50            push    eax
5 F, h2 Z) D; n% _0132D96E  .  55            push    ebp
8 F6 ^% \, F( X* W) A; p+ i5 |0132D96F  .  894424 38    mov    dword ptr [esp+38], eax 6 O& ]$ U) Q8 J" [
0132D973  .  FFD6          call    esi 1 `  G* o5 V* ~# K2 v2 {
0132D975  .  8D5424 58    lea    edx, dword ptr [esp+58]
- u6 O; h% g* _3 e0132D979  .  52            push    edx                              ; /pSize ) k0 Y6 z9 ?1 X- [' T
0132D97A  .  6A 01        push    1                                ; |TextLen = 1 6 \+ K- C8 ~# y2 d1 X
0132D97C  .  68 4CED3801  push    0138ED4C                        ; |Text = "A"
) ]6 M/ `& v5 J' Z$ u' p% G' T0132D981  .  55            push    ebp                              ; |hDC 3 N% w3 e# J; Q( G7 L
0132D982  .  894424 44    mov    dword ptr [esp+44], eax          ; |
& d  ^7 j- u1 t6 w1 T0132D986  .  FF15 5CA43801 call    dword ptr [<&GDI32.GetTextExtent>; \GetTextExtentPointA 3 h" c! y& i/ P' m: d
0132D98C  .  8B4424 5C    mov    eax, dword ptr [esp+5C]   V7 ]& d+ _) l5 j8 g) l( G
0132D990  .  8B77 1C      mov    esi, dword ptr [edi+1C]
; w) ]4 ~! [7 ?0 E3 X0132D993  .  8947 18      mov    dword ptr [edi+18], eax
' S1 Q: O4 w$ {, [& U  C) p0132D996  .  33C9          xor    ecx, ecx
1 V' S# S- t, s/ X2 R% P0132D998  .  8BC6          mov    eax, esi
/ y+ U$ Z' ~! R. n6 ?0132D99A  .  BA 20000000  mov    edx, 20
$ b( I1 V& \% _0132D99F  .  F7E2          mul    edx
4 p9 m8 k$ }# l" [0132D9A1  .  0F90C1        seto    cl & b1 U4 E0 N- t& J: m/ n7 R
0132D9A4  .  F7D9          neg    ecx : ^+ k/ g5 v, S
0132D9A6  .  0BC8          or      ecx, eax / z9 }+ y4 R# F7 D4 |* A) C, @- |
0132D9A8  .  51            push    ecx : S: w0 s3 p& \: T/ A6 |, G
0132D9A9  .  E8 964A0500  call    <jmp.&MSVCR80.operator new>
/ E) c' \9 x, `% f0132D9AE  .  83C4 04      add    esp, 4 4 [; o2 m# e+ y5 R' f4 p$ O& @
0132D9B1  .  85C0          test    eax, eax
4 i8 Q, {6 j3 C$ X- I; b0132D9B3  .  74 28        je      short 0132D9DD , p# |$ {& o5 m$ }$ Z- u
0132D9B5  .  83C6 FF      add    esi, -1   J9 ]  k# b: `+ v2 a  b
0132D9B8  .  78 25        js      short 0132D9DF ! V3 s; d; b3 N0 V% S
0132D9BA  .  D9EE          fldz
& o1 i5 E+ k. ?" s0132D9BC  .  8D48 0C      lea    ecx, dword ptr [eax+C]
* I7 N- U) I; J1 S; G0132D9BF  >  D951 FC      fst    dword ptr [ecx-4]
* M) H1 l: C8 ]" v% R0132D9C2  .  83C1 20      add    ecx, 20
1 Z- V1 K! R; P/ @# K4 }5 q# D0132D9C5  .  83EE 01      sub    esi, 1
' n. P2 v: j6 ]7 U) t" j! S* e1 E0132D9C8  .  D951 E0      fst    dword ptr [ecx-20] % p0 P- P' a, b" e3 c5 I
0132D9CB  .  D951 D4      fst    dword ptr [ecx-2C]
0 e( T% j+ B- N' }0132D9CE  .  D951 D8      fst    dword ptr [ecx-28]
: H4 u; C5 ?1 ^* a0132D9D1  .  D951 DC      fst    dword ptr [ecx-24]
  i- f% F& y0 B8 q0132D9D4  .  D951 E0      fst    dword ptr [ecx-20]
# f" l" W: [' p; j& I9 Y5 |# p0132D9D7  .^ 79 E6        jns    short 0132D9BF
: M  ~/ ~' @6 N8 i# E6 `& q4 E0132D9D9  .  DDD8          fstp    st
( ?8 t% ]/ y) o& J0132D9DB  .  EB 02        jmp    short 0132D9DF & }' A9 f5 A9 V$ t' b; x' j' ^
0132D9DD  >  33C0          xor    eax, eax
! _" ~9 o3 G8 P0 f0 E0132D9DF  >  8B8C24 C80400>mov    ecx, dword ptr [esp+4C8]
8 g7 \! q, |# }" Q* _0132D9E6  .  8947 20      mov    dword ptr [edi+20], eax : e( B: T6 ~4 Y& p2 a- J2 A
0132D9E9  .  8B8424 CC0400>mov    eax, dword ptr [esp+4CC] + p' i9 r* a" z+ b! [3 B. V
0132D9F0  .  50            push    eax                              ; /Bottom
  Z' y8 N, n' B# e0 n( y, `, t! u0132D9F1  .  51            push    ecx                              ; |Right
2 B( S. M* A# R  K* s0132D9F2  .  6A 00        push    0                                ; |Top = 0 1 u( }; [; Y( k0 d% r
0132D9F4  .  6A 00        push    0                                ; |Left = 0
+ a- g! v# T( }9 @5 c7 H0132D9F6  .  8D5424 70    lea    edx, dword ptr [esp+70]          ; | 4 Q- ^) ?, v+ X6 p! I' T& ~2 y4 l
0132D9FA  .  52            push    edx                              ; |pRect : @- p, N" E8 v3 u; H0 P3 N, _- i7 I
0132D9FB  .  FF15 64A73801 call    dword ptr [<&USER32.SetRect>]    ; \SetRect
  T. j9 @/ K5 ^/ d0132DA01  .  6A 04        push    4                                ; /ObjType = BLACK_BRUSH 4 ^3 z* a* S4 [- ]
0132DA03  .  FF15 58A43801 call    dword ptr [<&GDI32.GetStockObjec>; \GetStockObject
+ ]& P) K- s, j$ _$ a0132DA09  .  50            push    eax                              ; /hBrush / {% u& I  i$ k
0132DA0A  .  8D4424 64    lea    eax, dword ptr [esp+64]          ; | / I- i% s8 V. j7 s  A& {
0132DA0E  .  50            push    eax                              ; |pRect 5 \2 g* p# H  C8 k0 B/ F
0132DA0F  .  55            push    ebp                              ; |hDC
9 T) r9 Y& P9 M# ]( ~- `6 {0132DA10  .  FF15 68A73801 call    dword ptr [<&USER32.FillRect>]  ; \FillRect - a  M! z# X: _! C, a. ?
0132DA16  .  6A 00        push    0                                ; /Color = <BLACK> 7 C' M  a9 g0 P$ O; C) N0 Q  A
0132DA18  .  55            push    ebp                              ; |hDC
+ E& b" e8 ~* t+ j0132DA19  .  FF15 54A43801 call    dword ptr [<&GDI32.SetBkColor>]  ; \SetBkColor % B6 L; b8 V, N
0132DA1F  .  68 FFFFFF00  push    0FFFFFF                          ; /Color = <WHITE>
' b2 H1 F* M. e8 T0132DA24  .  55            push    ebp                              ; |hDC 1 P' z2 S6 K, P5 z% b4 Z- D! ^
0132DA25  .  FF15 50A43801 call    dword ptr [<&GDI32.SetTextColor>>; \SetTextColor 9 V1 o0 Q/ {4 |/ M$ G* r. x8 _
0132DA2B  .  6A 01        push    1                                ; /BkMode = TRANSPARENT : C" J. S" E% d2 L: F
0132DA2D  .  55            push    ebp                              ; |hDC
+ h* o" f% O; I* n( c8 I0132DA2E  .  FF15 4CA43801 call    dword ptr [<&GDI32.SetBkMode>]  ; \SetBkMode
: f" a4 ~7 k' U/ a* R3 m& J0132DA34  .  33F6          xor    esi, esi
' H+ G7 E; Z: O6 ?* h0132DA36  .  3977 1C      cmp    dword ptr [edi+1C], esi # t+ D/ Q8 e5 p$ E( r
0132DA39  .  BB 01000000  mov    ebx, 1 4 x* f! E# K8 k2 p. D
0132DA3E  .  895C24 18    mov    dword ptr [esp+18], ebx
6 ~9 y- A3 Z) m% ]0132DA42  .  897424 14    mov    dword ptr [esp+14], esi
0 y' h3 u, Y. y% y* E! i0132DA46  .  897424 1C    mov    dword ptr [esp+1C], esi / ]5 v4 {, g1 M( W+ Y
0132DA4A  .  0F8E 20010000 jle    0132DB70 : g4 ^, Z* s) E% G2 ~8 V
0132DA50  .  DB8424 C80400>fild    dword ptr [esp+4C8]
2 {& c, r& F+ A8 ?2 ~; }0132DA57  .  8B4424 10    mov    eax, dword ptr [esp+10]
! _! ^, Y5 U( G1 O3 x0132DA5B  .  897424 20    mov    dword ptr [esp+20], esi
: O7 `/ \, [2 |- j8 c0132DA5F  .  894424 10    mov    dword ptr [esp+10], eax
2 X9 K& R( P$ p! c* ^8 O0132DA63  .  D95C24 38    fstp    dword ptr [esp+38] . H. A# n8 N; p; \. U2 R
0132DA67  .  DB8424 CC0400>fild    dword ptr [esp+4CC] 2 G/ ]) K$ P) c6 \
0132DA6E  .  D95C24 2C    fstp    dword ptr [esp+2C] 9 Q, [& q3 w6 S- u: F" E
0132DA72  .  EB 04        jmp    short 0132DA78 ! p8 y; X) g3 L, G1 I
0132DA74  >  8B4424 10    mov    eax, dword ptr [esp+10] 5 X' B$ X0 G, G* Y; X
0132DA78  >  8B77 20      mov    esi, dword ptr [edi+20] ) K9 x) k7 v& J9 I, u# h0 H; r2 k
0132DA7B  .  66:8B08      mov    cx, word ptr [eax]
4 O6 V( x9 x; m- a; z0 q0132DA7E  .  037424 20    add    esi, dword ptr [esp+20]
% H) A+ y  `' T( \5 Z0 Z9 h2 s: y0132DA82  .  66:894E 10    mov    word ptr [esi+10], cx 2 R8 c6 W( `8 F7 D  \0 b9 h
0132DA86  .  0FB700        movzx  eax, word ptr [eax]
% C, j0 K( C2 A. m# J0132DA89  .  8D4E 14      lea    ecx, dword ptr [esi+14] 5 R* N' W) B; {) F/ H9 g/ ~
0132DA8C  .  51            push    ecx                              ; /pABC 7 e$ ]. i+ M4 u" ~; y- r* h' n/ {
0132DA8D  .  50            push    eax                              ; |LastChar 9 t) Q" G4 r2 i# ?5 i
0132DA8E  .  50            push    eax                              ; |FirstChar ) ^; M  c8 T, F1 R; }
0132DA8F  .  55            push    ebp                              ; |hDC
8 I! R/ Z# l- Z2 R: M% Z0132DA90  .  FF15 48A43801 call    dword ptr [<&GDI32.GetCharABCWid>; \GetCharABCWidthsW
$ E7 q. I- f' U8 F) P0132DA96  .  8B5424 10    mov    edx, dword ptr [esp+10] 8 L5 q8 ?7 q* L( x
0132DA9A  .  66:833A 20    cmp    word ptr [edx], 20
4 E' ^" I0 v4 j0 W; q0132DA9E  .  73 10        jnb    short 0132DAB0 4 n& F0 v4 n, U$ ]$ t4 E
0132DAA0  .  C746 14 00000>mov    dword ptr [esi+14], 0 8 B6 V" C" ]& j& R: R; G5 p
0132DAA7  .  C746 1C 00000>mov    dword ptr [esi+1C], 0 * b0 n% n  ~' ]7 l. q
0132DAAE  .  EB 0C        jmp    short 0132DABC
! w" |( _: Q( p0132DAB0  >  8346 14 FF    add    dword ptr [esi+14], -1 4 Q- Z! e4 ~! l* m, p$ ^6 ?% Y/ {
0132DAB4  .  8346 18 02    add    dword ptr [esi+18], 2 * i* D/ `7 @* S9 y
0132DAB8  .  8346 1C FF    add    dword ptr [esi+1C], -1 # V2 L5 W- N3 V# ~3 d1 c/ @
0132DABC  >  8B4E 18      mov    ecx, dword ptr [esi+18]
' u6 A- P+ d$ q( _/ i$ E8 H0132DABF  .  8D4419 01    lea    eax, dword ptr [ecx+ebx+1]
7 ^: x2 N/ _2 |" H; U0132DAC3  .  3B8424 C80400>cmp    eax, dword ptr [esp+4C8]
& J. i+ ~4 E% _0132DACA  .  8B4424 14    mov    eax, dword ptr [esp+14]
4 i, E/ g4 a8 t  ~# X/ v0132DACE  .  72 14        jb      short 0132DAE4
- U" a, o% O. o0132DAD0  .  8B57 18      mov    edx, dword ptr [edi+18]
/ u: b8 j! N2 {5 x' J4 |! v0132DAD3  .  BB 01000000  mov    ebx, 1
, |/ N2 B4 z0 f0132DAD8  .  8D4410 01    lea    eax, dword ptr [eax+edx+1] $ p, `. K/ ?: G
0132DADC  .  895C24 18    mov    dword ptr [esp+18], ebx
" N# R  I: k  [+ T. W6 t5 ~& b# x0132DAE0  .  894424 14    mov    dword ptr [esp+14], eax
% P! \0 U* h; M0132DAE4  >  DB4424 18    fild    dword ptr [esp+18]
0 ]3 h" ]4 R9 a3 ^0132DAE8  .  03CB          add    ecx, ebx 2 P: w* Y$ @- V) a' l& T$ M
0132DAEA  .  85C9          test    ecx, ecx
* u" R3 I7 w" }0132DAEC  .  D94424 38    fld    dword ptr [esp+38] ) P9 W4 X% o$ T9 f
0132DAF0  .  D9C0          fld    st ( i4 ?0 h6 Y& l7 T) r9 V
0132DAF2  .  894C24 18    mov    dword ptr [esp+18], ecx $ S9 ^  D& k4 `- D  e3 \* w( E
0132DAF6  .  DEFA          fdivp  st(2), st
9 {1 l4 ~/ Y4 C5 g' S7 S1 ?  O0 b0132DAF8  .  D9C9          fxch    st(1) 7 r) h( x, @; h- s/ v7 D
0132DAFA  .  D91E          fstp    dword ptr [esi]   y3 z% S# s1 G& ?& b1 b
0132DAFC  .  DB4424 14    fild    dword ptr [esp+14] ' g; X3 s! o4 z' x/ O5 V
0132DB00  .  D94424 2C    fld    dword ptr [esp+2C] " a4 }1 Q: |( ]2 p* j; O$ `3 K
0132DB04  .  D9C0          fld    st
7 o/ e9 {; o, \/ I* i0132DB06  .  DEFA          fdivp  st(2), st
2 Y9 Y. h& Q/ X# M0132DB08  .  D9C9          fxch    st(1)
  C6 Z7 k2 B3 A: G0132DB0A  .  D95E 04      fstp    dword ptr [esi+4]
/ E' E* W$ o* U7 B' J7 o0132DB0D  .  DB4424 18    fild    dword ptr [esp+18]
+ w* l/ \% B3 S, ]  Y2 l0132DB11  .  7D 06        jge    short 0132DB19 ! Y: h7 X6 S: a1 ^8 O5 v
0132DB13  .  D805 50B03801 fadd    dword ptr [138B050]
+ ?2 Q* @8 H' D( O: ~, s0132DB19  >  DEF2          fdivrp  st(2), st
+ D& \+ r- S" N" S6 K3 G4 H- Y; [0132DB1B  .  8B5424 10    mov    edx, dword ptr [esp+10] 2 @* ?% n3 `5 b7 i1 z
0132DB1F  .  6A 01        push    1                                ; /StringSize = 1
( `; k7 ^; P  i- E: s# o$ T- f  Q: c0132DB21  .  52            push    edx                              ; |String 6 Z3 {8 G+ A$ Z  r5 B, p: X7 y# t7 Q
0132DB22  .  50            push    eax                              ; |YStart
4 n2 f2 E& F% v/ L# f" i0132DB23  .  D9C9          fxch    st(1)                            ; | 2 i5 @- a  U0 s. ~
0132DB25  .  D95E 08      fstp    dword ptr [esi+8]                ; | 9 U  n3 }) j4 G* W6 O6 A
0132DB28  .  8B4F 18      mov    ecx, dword ptr [edi+18]          ; | 3 u+ ]# Q2 y+ |, i' T
0132DB2B  .  03C8          add    ecx, eax                        ; |
' H1 [! N) R) s* I5 ~3 A  |" k% _9 E0132DB2D  .  894C24 24    mov    dword ptr [esp+24], ecx          ; |
; f& ~& a3 E2 u* S9 t: l7 @5 t' G0132DB31  .  DA7C24 24    fidivr  dword ptr [esp+24]              ; | 6 @) t  P& @7 F1 Z- @: x
0132DB35  .  8BC3          mov    eax, ebx                        ; | 8 i- ]) \: H. r3 D, [4 s; {+ ~
0132DB37  .  2B46 14      sub    eax, dword ptr [esi+14]          ; | 4 ^( ^* h4 p% x' w6 O, `/ N1 L
0132DB3A  .  50            push    eax                              ; |XStart
3 W" g# p) {+ ]4 ?0132DB3B  .  55            push    ebp                              ; |hDC
- {2 t7 Y) F/ K# i3 s* I0132DB3C  .  D95E 0C      fstp    dword ptr [esi+C]                ; | ! y* }# P- W! G  u# {5 U8 b
0132DB3F  .  FF15 44A43801 call    dword ptr [<&GDI32.TextOutW>]    ; \TextOutW " @& C0 z8 m; W& ^2 x" t
0132DB45  .  8B4424 1C    mov    eax, dword ptr [esp+1C] $ g! b" p( o0 L
0132DB49  .  8B4E 18      mov    ecx, dword ptr [esi+18]
2 K4 f1 m  D7 W, w0132DB4C  .  834424 20 20  add    dword ptr [esp+20], 20
+ |7 B+ P% |% R0132DB51  .  834424 10 02  add    dword ptr [esp+10], 2 - [6 z4 v0 K5 Z: |
0132DB56  .  83C0 01      add    eax, 1
7 a1 R/ n; I1 H  {) i( [0132DB59  .  3B47 1C      cmp    eax, dword ptr [edi+1C]
6 o$ y+ a( ^7 c* q/ m% g1 x0132DB5C  .  8D5C0B 01    lea    ebx, dword ptr [ebx+ecx+1] . c  j* O5 b! E4 o' K0 \% U2 f
0132DB60  .  895C24 18    mov    dword ptr [esp+18], ebx ( y' `: I& A# T" T3 d- K
0132DB64  .  894424 1C    mov    dword ptr [esp+1C], eax
: ]- `% x9 E9 E* q. n1 M0132DB68  .^ 0F8C 06FFFFFF jl      0132DA74
7 d  b6 E* F2 P+ ]0132DB6E  .  33F6          xor    esi, esi 8 }/ O7 a; B) q' J( A/ b
0132DB70  >  8B4F 24      mov    ecx, dword ptr [edi+24] 8 M; M3 @& Y5 l& N9 P6 F
0132DB73  .  6A FF        push    -1 2 p4 Y7 h1 H0 g* x1 y( A
0132DB75  .  83C1 38      add    ecx, 38 & [  o8 ]" h5 J: i
0132DB78  .  E8 278E0300  call    <jmp.&CK2.CKBitmapData::LockSurf>
+ B: t6 n' o% K" m& e0132DB7D  .  8BD8          mov    ebx, eax & A( V6 I  L- R3 `  W, m  N
0132DB7F  .  3BDE          cmp    ebx, esi
  j# S$ @) t; y/ p9 v. F9 q, y0 S& e0132DB81  .  74 74        je      short 0132DBF7
" F/ [& S& W8 {1 u" C" n0 Y3 v0132DB83  .  8B4424 24    mov    eax, dword ptr [esp+24] ' y, C) ?$ w8 D' c4 p9 g' b
0132DB87  .  8D5424 40    lea    edx, dword ptr [esp+40] 2 u7 Z1 }8 O, P! X& u3 c
0132DB8B  .  52            push    edx                              ; /Buffer
+ y9 @! v: Y3 M: i8 B0132DB8C  .  6A 18        push    18                              ; |BufSize = 18 (24.)
( w. H9 f2 V$ F  F& U2 m0132DB8E  .  50            push    eax                              ; |hObject
/ [: I8 F) H+ w0132DB8F  .  FF15 40A43801 call    dword ptr [<&GDI32.GetObjectA>]  ; \GetObjectA % U: A# J7 I0 X: o$ Q
0132DB95  .  8B4C24 48    mov    ecx, dword ptr [esp+48] 6 @2 l  \0 W9 r+ G
0132DB99  .  8D71 FF      lea    esi, dword ptr [ecx-1] ( A; y9 x- x6 \( X
0132DB9C  .  0FAF7424 4C  imul    esi, dword ptr [esp+4C]
0 V! g, T+ @$ V! [/ F1 O/ `0132DBA1  .  037424 54    add    esi, dword ptr [esp+54] 5 J9 J0 x* U4 t+ M0 |4 @
0132DBA5  .  85C9          test    ecx, ecx
2 O- Z$ I0 f0 b8 F/ i9 B" C0132DBA7  .  C74424 14 000>mov    dword ptr [esp+14], 0 * L9 l# T4 M. m
0132DBAF  .  7E 46        jle    short 0132DBF7 7 E% m! V4 _' d' W
0132DBB1  .  8B5424 44    mov    edx, dword ptr [esp+44]
9 B& p' A( P- U( p5 j1 f0132DBB5  >  33C0          xor    eax, eax
6 J4 q9 t- O' j$ o0132DBB7  .  85D2          test    edx, edx
- [/ D; B! P3 Q+ K0 n0132DBB9  .  7E 26        jle    short 0132DBE1
  Y6 ^* c3 e7 o5 _) K4 h" `& S0132DBBB  .  8BCE          mov    ecx, esi
2 o! _, S4 n7 h- K. Y0132DBBD  .  8D49 00      lea    ecx, dword ptr [ecx] - `9 `9 e; {. y  U3 g
0132DBC0  >  0FB611        movzx  edx, byte ptr [ecx] $ ]3 N; U* k' L1 t" @3 V
0132DBC3  .  C1E2 18      shl    edx, 18 1 f( y' u5 U) P0 `- e- a+ I" i
0132DBC6  .  81CA FFFFFF00 or      edx, 0FFFFFF
( D4 J" U- q& o& @$ d4 z/ h+ q+ h4 B0132DBCC  .  891483        mov    dword ptr [ebx+eax*4], edx * T$ z7 e5 A3 g( i1 k
0132DBCF  .  8B5424 44    mov    edx, dword ptr [esp+44] , @: k3 E4 q7 T, W2 {2 [
0132DBD3  .  83C0 01      add    eax, 1
+ W# S, W5 Y- T" C$ a1 C* l0132DBD6  .  83C1 03      add    ecx, 3 $ F' S' o% Q  H0 C1 B% A( e
0132DBD9  .  3BC2          cmp    eax, edx % [- W5 }/ l7 I6 {
0132DBDB  .^ 7C E3        jl      short 0132DBC0 " a* i9 ?5 S; a6 A
0132DBDD  .  8B4C24 48    mov    ecx, dword ptr [esp+48]
" P) {* c$ Q5 S3 @5 v) I! ~( v( e0132DBE1  >  8B4424 14    mov    eax, dword ptr [esp+14]
. m" E. U! x+ V- j9 w# S) z& Q0132DBE5  .  2B7424 4C    sub    esi, dword ptr [esp+4C]
$ L5 G. Q8 G! H2 c  A0132DBE9  .  83C0 01      add    eax, 1
: a  X& m: G$ A! D" k- r7 K0132DBEC  .  3BC1          cmp    eax, ecx 1 m: z  n  I; G/ \; H/ ]% |
0132DBEE  .  8D1C93        lea    ebx, dword ptr [ebx+edx*4] 0 M3 h  p( W2 A0 a/ Y
0132DBF1  .  894424 14    mov    dword ptr [esp+14], eax / o" I% A( ~" T, H, M
0132DBF5  .^ 7C BE        jl      short 0132DBB5
  ^, X, U2 P* B- Z0132DBF7  >  8B4F 24      mov    ecx, dword ptr [edi+24]
& i4 K2 l! z/ Y/ ~% `3 |6 |# }0132DBFA  .  6A FF        push    -1 * g* Y- a6 a/ J( D8 W
0132DBFC  .  83C1 38      add    ecx, 38 7 B. K% @& j8 ^1 f: O
0132DBFF  .  E8 9A8D0300  call    <jmp.&CK2.CKBitmapData::ReleaseS> * K2 v2 |: e5 m; L! C
0132DC04  .  8B4424 34    mov    eax, dword ptr [esp+34]
6 F$ `1 x* b4 W7 K0132DC08  .  8B35 70A43801 mov    esi, dword ptr [<&GDI32.SelectOb>;  GDI32.SelectObject 7 R0 }0 ~  W5 ?, S1 @
0132DC0E  .  50            push    eax                              ; /hObject
! s- {# p; a" o0 s: ^0132DC0F  .  55            push    ebp                              ; |hDC 2 I6 }, K! {) U/ c. X$ _
0132DC10  .  FFD6          call    esi                              ; \SelectObject
/ F4 \6 c2 f! a) c9 R0132DC12  .  8B4C24 30    mov    ecx, dword ptr [esp+30]
" e+ W" u! b2 v$ E: r$ G2 j0132DC16  .  51            push    ecx
# B3 N& z$ j# C' z# _0132DC17  .  FF15 28A83801 call    dword ptr [<&VxMath.VxDeleteFont>;  VxMath.VxDeleteFont
) Q  ?- e- K) I5 k* `) j0132DC1D  .  8B5424 40    mov    edx, dword ptr [esp+40]
0 B/ ?0 k; K8 B! |: E- t. y# q0132DC21  .  83C4 04      add    esp, 4 ' u. l" A& y1 P% r" [
0132DC24  .  52            push    edx
! y( F4 f0 G/ y( O/ m7 M5 I0132DC25  .  55            push    ebp
/ j4 a* A' z0 G7 N5 J% G/ |8 P0132DC26  .  FFD6          call    esi
& L# F1 z$ T2 r: s+ k4 H0132DC28  .  8B4424 24    mov    eax, dword ptr [esp+24]
* K9 G# ^2 h" f! H9 X3 F# d0132DC2C  .  50            push    eax & I5 l4 }3 }" o' l& S1 h8 z
0132DC2D  .  FF15 2CA83801 call    dword ptr [<&VxMath.VxDeleteBitm>;  VxMath.VxDeleteFont
8 N3 A6 m: s/ z. C+ l3 Y. ]0132DC33  .  83C4 04      add    esp, 4
7 H" i- o& |8 Q+ C0132DC36  .  55            push    ebp                              ; /hDC 1 a  t" _6 z; _0 `/ x1 h% r
0132DC37  .  FF15 3CA43801 call    dword ptr [<&GDI32.DeleteDC>]    ; \DeleteDC
$ U5 ?) N( Q8 c4 n# T, G( G  Q0132DC3D  .  8B4C24 28    mov    ecx, dword ptr [esp+28]   o2 N" a  f3 Q
0132DC41  .  6A 00        push    0 9 W! [! M0 v' ]6 f" @' Y1 P
0132DC43  .  51            push    ecx 6 h4 w+ ?2 o$ ~7 j3 e% \
0132DC44  .  8B4F 24      mov    ecx, dword ptr [edi+24] " x- ^* G4 o9 j& I( P: s
0132DC47  .  E8 4C8A0300  call    <jmp.&CK2.CKObject::SetName> # |# a2 e, }( n5 [% J
0132DC4C  .  8B4F 24      mov    ecx, dword ptr [edi+24] , k* p; P  Q* N8 I/ i: {" f% {
0132DC4F  .  6A 01        push    1
4 C; r9 _1 p0 N( W) a8 r# D0132DC51  .  83C1 38      add    ecx, 38 0 L# t$ H' L) N: j0 P7 m
0132DC54  .  E8 7B8D0300  call    <jmp.&CK2.CKBitmapData::SetDesir> 2 T, Q; i6 F+ _- h
0132DC59  .  8B4F 24      mov    ecx, dword ptr [edi+24]
9 q; S; _4 A# x( J5 l0132DC5C  .  8B11          mov    edx, dword ptr [ecx]
. @% ~6 L& b* d8 r0132DC5E  .  8B42 78      mov    eax, dword ptr [edx+78] 7 U8 _' A; g- o3 {" t
0132DC61  .  6A 00        push    0 & H* p% [% x$ M; a7 X& l0 ]8 }
0132DC63  .  FFD0          call    eax
  U1 ^9 h" Z2 ~+ V( r  ]" Q) v0132DC65  .  8B4F 18      mov    ecx, dword ptr [edi+18] 8 R  k0 M6 R3 {% @
0132DC68  .  034C24 14    add    ecx, dword ptr [esp+14]   `1 c' z5 N  q) @5 b& {
0132DC6C  .  33C0          xor    eax, eax
( D: H8 ?4 k1 A, Q2 E! e# V0132DC6E  .  3B8C24 CC0400>cmp    ecx, dword ptr [esp+4CC]
1 E% l; `2 m( ^# e0132DC75  .  5D            pop    ebp 5 ^6 ?; B3 ^8 k) e, W6 }
0132DC76  .  0F9CC0        setl    al
; o1 W" k) l# Y9 T+ g0132DC79  >  8B8C24 A00400>mov    ecx, dword ptr [esp+4A0]
1 I6 S+ A. g. r" f0132DC80  .  5F            pop    edi ) P% Q/ z9 y" X% |
0132DC81  .  5E            pop    esi 7 ~2 ^$ l. L8 Y. V  b8 }
0132DC82  .  5B            pop    ebx
/ B; l0 T) K0 V) a0132DC83  .  33CC          xor    ecx, esp
7 U  d& c7 X$ R$ p# ^/ `0132DC85  .  E8 E2460500  call    0138236C : `$ ?0 }% y* x/ D( Y9 ~
0132DC8A  .  81C4 98040000 add    esp, 498 1 q( a3 m( d5 T: C
0132DC90  .  C2 2800      retn    28
作者: beegame    时间: 2010-1-10 13:23
不懂,希望能把分析发出来给新人学习  谢谢 [s:45]
作者: beegame    时间: 2010-1-10 13:24
再请教 这个调试软件是什么,那里有下载。。
作者: shane007    时间: 2010-1-10 16:37
回楼上,这个调试软件叫ollydbg,即OD,我用的是其修改版olly ice.
# I! X2 t9 `  z6 c8 I分析说明也许以后会补上。% ]: y2 {, q9 W5 [6 E

  W4 C& T6 I& W8 K加油!




欢迎光临 冒险解谜游戏中文网 ChinaAVG (https://chinaavg.com/) Powered by Discuz! X3.2