冒险解谜游戏中文网 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- G0132D7E0  $  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 ~# {+ j0132D7F4  .  8B8424 A00400>mov    eax, dword ptr [esp+4A0]
+ n  o: P4 k) B' h/ C0132D7FB  .  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: W0132D805  .  6A 30        push    30                              ; /n = 30 (48.) - ?" r) G* p" W: s
0132D807  .  8BF9          mov    edi, ecx                        ; |
0 X6 v! v1 a/ J) ^7 h0132D809  .  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& s0132D814  .  6A 00        push    0                                ; |c = 00
2 V$ ^* n: N8 M& N0132D816  .  52            push    edx                              ; |s
" O0 v& y+ q- y5 x0132D817  .  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. O0132D82F  .  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! m0132D846  .  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; T0132D852  .  8B4F 1C      mov    ecx, dword ptr [edi+1C]
" z  [; V! X, U0 x8 ?, I0132D855  .  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- X0132D860  >  8D50 20      lea    edx, dword ptr [eax+20]
7 g% Q& x7 @! q. T& ?& Z# p0132D863  .  66:899444 A00>mov    word ptr [esp+eax*2+A0], dx
5 ~4 F* w( _( }4 C6 G4 N0132D86B  .  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 P0132D879  .  894424 0C    mov    dword ptr [esp+C], eax
! @0 Y+ \- K) o2 _. s" g4 q4 J0132D87D  >  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& E0132D882  .  8D5F 0C      lea    ebx, dword ptr [edi+C] , E5 }: {+ i* y. j: n
0132D885  .  75 05        jnz    short 0132D88C
- D* J" L* g, ?( h0132D887  .  B8 16263901  mov    eax, 01392616
5 J5 N. m: D1 b9 P0132D88C  >  6A 00        push    0 / v$ _8 [9 D3 C5 ?  Q+ I4 J: s
0132D88E  .  6A 00        push    0
* _" s# c) J5 U, r, z0132D890  .  50            push    eax
& f9 s( b6 \, M- g* k0132D891  .  6A 1F        push    1F
$ l# E3 }" t. I$ c4 |6 v0132D893  .  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 Y0132D89A  .  8B8C24 C80400>mov    ecx, dword ptr [esp+4C8] 0 U5 \) Z2 w3 ?' S/ j
0132D8A1  .  6A 00        push    0
: d0 ^! w, U* f- J0132D8A3  .  6A 20        push    20
2 k: |* Z+ ]% h2 h. E* k0132D8A5  .  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 p0132D8AD  .  8947 24      mov    dword ptr [edi+24], eax
3 l; o' q# g1 g6 W0132D8B0  .  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 T0132D8BC  .  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 R0132D8D5  .  52            push    edx
, J# b4 a/ |4 C& I% Q' ?7 o! K0132D8D6  .  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( P0132D8E0  .  8D4C24 70    lea    ecx, dword ptr [esp+70]
$ u0 |# _$ ]7 G5 N9 g# r0132D8E4  .  51            push    ecx
5 z4 A& X7 N! j. Y* Q7 v0132D8E5  .  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 y0132D8F3  .  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 C0132D8FE  .  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 B0132D909  .  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; w0132D916  .  6A 48        push    48                              ; /Divisor = 48 (72.)
! \/ f+ p: w$ i; X2 [% x5 x0132D918  .  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 F0132D91B  .  895F 14      mov    dword ptr [edi+14], ebx          ; ||
1 a3 Z, ~3 G& j  i# I% f+ i0132D91E  .  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 s0132D93F  .  6A 00        push    0                                ; |PitchAndFamily = DEFAULT_PITCH|FF_DONTCARE
0 u3 ^$ O! Y7 u" M5 K# [* |$ E0132D941  .  52            push    edx                              ; |Quality
5 X7 J& @1 |/ q0 d3 b+ h* t0132D942  .  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. g0132D94A  .  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 o0132D951  .  52            push    edx                              ; |Underline
+ @: S- b& z/ O* b0132D952  .  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* d0132D95D  .  51            push    ecx                              ; |Weight
+ l5 h  u: a  M1 f1 D% t0132D95E  .  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! o0132D962  .  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 t0132D96E  .  55            push    ebp
- \( O. l" L3 |( R# r8 p0132D96F  .  894424 38    mov    dword ptr [esp+38], eax
, l/ ]1 S! @; q: c  V0132D973  .  FFD6          call    esi
3 {0 K) _; O9 M& K& q) O0132D975  .  8D5424 58    lea    edx, dword ptr [esp+58]
! W( R0 y& P2 `: r0132D979  .  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; }/ e0132D986  .  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 Y0132D990  .  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! S0132D996  .  33C9          xor    ecx, ecx
/ l( i; M9 x) Y- ^3 e) g0132D998  .  8BC6          mov    eax, esi * |0 B# C6 p# g( L+ V4 g2 u
0132D99A  .  BA 20000000  mov    edx, 20
+ T) {8 U8 ~) j0132D99F  .  F7E2          mul    edx 5 a0 H4 M) x( h5 s( c
0132D9A1  .  0F90C1        seto    cl
% M1 W, b+ p% O6 R' r" t& u0132D9A4  .  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 z0132D9A9  .  E8 964A0500  call    <jmp.&MSVCR80.operator new>
& N/ \. C, C- l; c0132D9AE  .  83C4 04      add    esp, 4
9 X( ]: g; I9 c$ v: O% w6 x0132D9B1  .  85C0          test    eax, eax
- e8 G$ S/ O/ \# @6 ~/ O, L% @1 F; O0132D9B3  .  74 28        je      short 0132D9DD
) |) q% N3 \% @2 i. p0132D9B5  .  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# L0132D9BA  .  D9EE          fldz # Y9 j$ ]- p% K  X
0132D9BC  .  8D48 0C      lea    ecx, dword ptr [eax+C]
: h+ e7 r5 R7 B0 @1 ]4 q0132D9BF  >  D951 FC      fst    dword ptr [ecx-4]
, n" R+ Z; P! F6 S; @) Q, `9 w0132D9C2  .  83C1 20      add    ecx, 20
% ~' L, \/ s0 l0132D9C5  .  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 o0132D9D4  .  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 i0132D9DB  .  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 W0132D9E6  .  8947 20      mov    dword ptr [edi+20], eax
+ M4 a' R2 E1 L) g0132D9E9  .  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# t0132D9F1  .  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 m0132D9F4  .  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/ C0132D9FA  .  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 u0132DA10  .  FF15 68A73801 call    dword ptr [<&USER32.FillRect>]  ; \FillRect
) u8 ]* R, k8 S* ]: n( I0132DA16  .  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 h0132DA19  .  FF15 54A43801 call    dword ptr [<&GDI32.SetBkColor>]  ; \SetBkColor
% R6 q1 |2 I7 S% K0132DA1F  .  68 FFFFFF00  push    0FFFFFF                          ; /Color = <WHITE>
2 f0 _* |, }5 `4 c$ l% h0132DA24  .  55            push    ebp                              ; |hDC
8 @& k7 E5 a6 j; x& E0132DA25  .  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- E0132DA2E  .  FF15 4CA43801 call    dword ptr [<&GDI32.SetBkMode>]  ; \SetBkMode
; g, c& Q' O( @/ z6 w* j0132DA34  .  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* p0132DA3E  .  895C24 18    mov    dword ptr [esp+18], ebx
/ b1 _5 a- h# W! G4 M0132DA42  .  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, o0132DA4A  .  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' W0132DA5B  .  897424 20    mov    dword ptr [esp+20], esi
$ T" @6 ~0 G" [& M0132DA5F  .  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 Q0132DA78  >  8B77 20      mov    esi, dword ptr [edi+20]
) c, ]! a$ L9 ^+ l6 o; W6 ?; n) V, y0132DA7B  .  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; N0132DA82  .  66:894E 10    mov    word ptr [esi+10], cx
7 |* P* Y  {! ^; p# H* n0132DA86  .  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 P0132DA8C  .  51            push    ecx                              ; /pABC
7 E7 ]. r$ k9 D6 s' k2 o0132DA8D  .  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- d0132DA96  .  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/ X0132DAB0  >  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 ]% B0132DACA  .  8B4424 14    mov    eax, dword ptr [esp+14]
: [3 H. |( H7 E+ ]5 C" k' o5 N0132DACE  .  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/ t0132DAE4  >  DB4424 18    fild    dword ptr [esp+18]
+ Q' ?4 N- _# o8 q, c' J0132DAE8  .  03CB          add    ecx, ebx
! f3 l6 h, |3 |# K# A/ K- h0132DAEA  .  85C9          test    ecx, ecx
5 X3 D7 w, I  w" {3 r) z- V. E4 A, J0132DAEC  .  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 o0132DAF2  .  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# f0132DAF8  .  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 i0132DB06  .  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+ d0132DB0A  .  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  Y0132DB13  .  D805 50B03801 fadd    dword ptr [138B050]
7 P$ ?3 a: X2 L% I" g; j0132DB19  >  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 w0132DB22  .  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 \" i0132DB2D  .  894C24 24    mov    dword ptr [esp+24], ecx          ; |
4 w3 o* E( ?8 @7 W/ Z$ A$ c- u5 T0132DB31  .  DA7C24 24    fidivr  dword ptr [esp+24]              ; |
9 ?) b: L$ W: ^4 z  ]/ O0132DB35  .  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' u0132DB3B  .  55            push    ebp                              ; |hDC
, K) j1 e  ?% _7 X# E9 L( G0132DB3C  .  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% H0132DB49  .  8B4E 18      mov    ecx, dword ptr [esi+18]
4 g' y+ U  s# g- u  A5 d) }. D) E0132DB4C  .  834424 20 20  add    dword ptr [esp+20], 20
1 F) O" `8 z) O0132DB51  .  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% x0132DB59  .  3B47 1C      cmp    eax, dword ptr [edi+1C]
% N, q' U/ O" x2 C, L/ n! W' x0132DB5C  .  8D5C0B 01    lea    ebx, dword ptr [ebx+ecx+1]
0 Q: t% \6 C4 f# A0132DB60  .  895C24 18    mov    dword ptr [esp+18], ebx
! v4 l5 D/ F, o# [( W  O0132DB64  .  894424 1C    mov    dword ptr [esp+1C], eax
( ~( [; n! v* M% x/ c0132DB68  .^ 0F8C 06FFFFFF jl      0132DA74
' x! p- M+ J8 [3 {0132DB6E  .  33F6          xor    esi, esi
! ~- c! r+ W8 E. w0132DB70  >  8B4F 24      mov    ecx, dword ptr [edi+24] . e) E7 }) C! c" I
0132DB73  .  6A FF        push    -1
$ |# U& a  {0 @7 F9 ~7 z0132DB75  .  83C1 38      add    ecx, 38
, p2 @5 F" t2 A. v0132DB78  .  E8 278E0300  call    <jmp.&CK2.CKBitmapData::LockSurf>
6 }2 L5 [7 x  I0132DB7D  .  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' S0132DB8B  .  52            push    edx                              ; /Buffer
& y5 i$ M/ q8 r: |- h) i( H0132DB8C  .  6A 18        push    18                              ; |BufSize = 18 (24.)
- C( F- W2 x/ k* m6 B/ W0 j0132DB8E  .  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( r0132DB99  .  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) X0132DBA5  .  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( b0132DBB7  .  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 e0132DBD3  .  83C0 01      add    eax, 1
! \* g% G. W, A1 v. _: {/ C/ I0132DBD6  .  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 P0132DBEC  .  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 G0132DBF1  .  894424 14    mov    dword ptr [esp+14], eax
& k& A0 v3 \. ^# H' c0132DBF5  .^ 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* U0132DBFA  .  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 B0132DC08  .  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 ]' o0132DC10  .  FFD6          call    esi                              ; \SelectObject
* f4 ~% @5 P9 Y- p( h: C; O' D0132DC12  .  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% U0132DC17  .  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 z0132DC47  .  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) j0132DC51  .  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/ x0132DC5E  .  8B42 78      mov    eax, dword ptr [edx+78]
' N+ l! g" n7 Q$ E1 M0132DC61  .  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 V0132DC68  .  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% c0132DC82  .  5B            pop    ebx
) v# b4 ~. t; S0 U% }2 I$ w0132DC83  .  33CC          xor    ecx, esp
! e% ~& Z! ~* s, I2 h0132DC85  .  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