冒险解谜游戏中文网 ChinaAVG

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

作者: shane007    时间: 2010-1-8 00:12
标题: 神秘纪事2字库函数
发现了一个和字库有关的函数,研究中。
8 D' T) C9 v. I( I0 Z8 m+ W4 h- [* D4 q( F1 F0 {- P
0132D7E0  $  81EC 98040000 sub    esp, 498
* H; M% r4 `/ {6 V6 s) f! w0132D7E6  .  A1 7CD13A01  mov    eax, dword ptr [13AD17C] & H. v' W8 `  B. U# |
0132D7EB  .  33C4          xor    eax, esp
% b- b1 ~. y; ?9 G  B0132D7ED  .  898424 940400>mov    dword ptr [esp+494], eax
* c* T/ [" m; P# a7 Q0 e% h0132D7F4  .  8B8424 A00400>mov    eax, dword ptr [esp+4A0]
  A9 \1 I' h( B2 W0132D7FB  .  53            push    ebx
4 c# x/ T  a1 p. |; U1 c) ]0132D7FC  .  56            push    esi 6 V8 B& t9 c6 [
0132D7FD  .  8BB424 A40400>mov    esi, dword ptr [esp+4A4] 6 c4 z" I" }/ O0 t5 I  ~/ u' T
0132D804  .  57            push    edi
) {( \5 e- V/ A6 E) o0132D805  .  6A 30        push    30                              ; /n = 30 (48.) " Y. p! N1 w' v5 e0 O
0132D807  .  8BF9          mov    edi, ecx                        ; | ( x, H4 G# |* h2 D* C5 j
0132D809  .  8B8C24 B40400>mov    ecx, dword ptr [esp+4B4]        ; | 9 u; h  s6 Y( J; a, x8 P
0132D810  .  8D5424 74    lea    edx, dword ptr [esp+74]          ; | * f* S. t+ V9 m4 p6 W
0132D814  .  6A 00        push    0                                ; |c = 00
* D; L; }# z- f9 I0 s3 m0132D816  .  52            push    edx                              ; |s ) _: n: ~6 m8 I& w
0132D817  .  894424 30    mov    dword ptr [esp+30], eax          ; |   w, W0 u7 r% N2 C# q7 K
0132D81B  .  894C24 24    mov    dword ptr [esp+24], ecx          ; |
) |5 R1 }3 J; x5 o( o0132D81F  .  C74424 78 340>mov    dword ptr [esp+78], 34          ; | 0 T0 H, K& V+ z: I6 O8 h" P, x
0132D827  .  E8 284B0500  call    <jmp.&MSVCR80.memset>            ; \memset
" _: G( @0 n6 p" k0132D82C  .  83C4 0C      add    esp, 0C 7 m$ |4 ]3 f0 w6 B  r; v
0132D82F  .  80BC24 CC0400>cmp    byte ptr [esp+4CC], 0
; S7 }/ c2 p5 c: {0132D837  .  74 12        je      short 0132D84B
0 R+ f9 e7 T5 n; Q# _0 x0132D839  .  A1 F8F63A01  mov    eax, dword ptr [13AF6F8]
% c7 {  O  k9 h' p  a. j- u2 U0132D83E . C74424 0C F0D>mov dword ptr [esp+C], 013AD6F0 ; UNICODE " !""#%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\^_abcdefghijklmnopqrstuvwxyz"
- B! Y3 h; g; a: w" M0132D846  .  8947 1C      mov    dword ptr [edi+1C], eax 9 \+ i' d5 i* `
0132D849  .  EB 32        jmp    short 0132D87D ; h, A9 i5 e3 e/ |+ _  z
0132D84B  >  C747 1C 60010>mov    dword ptr [edi+1C], 160   `  {* R8 s' x/ p* `1 L6 F8 ?
0132D852  .  8B4F 1C      mov    ecx, dword ptr [edi+1C] % X. E" N6 K! e" @* S$ V7 n7 t. W) o
0132D855  .  33C0          xor    eax, eax
# b: _; P) S# g% k- Z1 S, I0132D857  .  EB 07        jmp    short 0132D860
& b4 I$ F/ E9 x# S# `0132D859  .  8DA424 000000>lea    esp, dword ptr [esp]
$ N+ B8 d6 a: ?7 s0132D860  >  8D50 20      lea    edx, dword ptr [eax+20] ; F, K; \% e; p8 |7 }# c
0132D863  .  66:899444 A00>mov    word ptr [esp+eax*2+A0], dx
8 ?( ^5 _, L" k4 G+ @1 E0132D86B  .  83C0 01      add    eax, 1 ! ]/ S+ @" L' J: X
0132D86E  .  3BC1          cmp    eax, ecx * u' p# h" n7 p! z% |' C) L' K
0132D870  .^ 7C EE        jl      short 0132D860 % L" S" e% D; G2 y5 o1 J9 y
0132D872  .  8D8424 A00000>lea    eax, dword ptr [esp+A0] 1 {3 f, H& B  S
0132D879  .  894424 0C    mov    dword ptr [esp+C], eax
6 ^  F7 U2 C' n" X0132D87D  >  8B47 0C      mov    eax, dword ptr [edi+C]
8 Y3 ?: w4 r3 p+ H1 e0132D880  .  85C0          test    eax, eax % V7 S: X! s# b
0132D882  .  8D5F 0C      lea    ebx, dword ptr [edi+C]
0 c9 R2 b3 c0 c( ~1 y9 ^0132D885  .  75 05        jnz    short 0132D88C - ~5 b' K/ J- _9 Z" O# ~% F: V
0132D887  .  B8 16263901  mov    eax, 01392616 6 w$ D& [7 C1 l6 i7 b4 d
0132D88C  >  6A 00        push    0
! K+ Y! d3 G+ w* ]0132D88E  .  6A 00        push    0
" [( x+ s1 H- ~# V0 `0132D890  .  50            push    eax
% w( H0 {9 J! S1 |0132D891  .  6A 1F        push    1F
% E" y, Q2 X. _0132D893  .  8BCE          mov    ecx, esi 6 v8 H6 h  S) O+ X) A* V
0132D895  .  E8 FA8E0300  call    <jmp.&CK2.CKContext::CreateObjec>
! q1 g  h* T" c. b: H0132D89A  .  8B8C24 C80400>mov    ecx, dword ptr [esp+4C8]
0 X7 h; f1 u: d  P6 S* t1 P# s- \1 ~0132D8A1  .  6A 00        push    0
! t+ J# L- X3 F0132D8A3  .  6A 20        push    20 + Y: G; y3 a" G9 m
0132D8A5  .  51            push    ecx / N( e$ A- M  v
0132D8A6  .  8B8C24 D00400>mov    ecx, dword ptr [esp+4D0] 3 d  B1 O$ H8 ^$ s) k) K, q9 {2 r, W
0132D8AD  .  8947 24      mov    dword ptr [edi+24], eax & o9 u! o) D/ ^
0132D8B0  .  8B10          mov    edx, dword ptr [eax] 0 x. N! k9 m. G5 ]
0132D8B2  .  8B52 54      mov    edx, dword ptr [edx+54] 0 ~( t9 E1 m" `
0132D8B5  .  51            push    ecx 7 s: B' N, D. s$ ]3 E
0132D8B6  .  8BC8          mov    ecx, eax
# m' ?7 f0 \5 r0132D8B8  .  FFD2          call    edx 8 G7 Q& v- z0 Z/ A5 I( {: F& b
0132D8BA  .  85C0          test    eax, eax
/ g# `8 n* A4 J' [: t0132D8BC  .  75 07        jnz    short 0132D8C5
2 Y" @) B9 J& t) X% i7 {1 e# W0132D8BE  .  32C0          xor    al, al - S+ x2 x" ~( `( _  A
0132D8C0  .  E9 B4030000  jmp    0132DC79
& f1 e/ O! M$ h% W# q0132D8C5  >  8B4F 24      mov    ecx, dword ptr [edi+24] 5 @( n5 r3 ?8 J
0132D8C8  .  8B01          mov    eax, dword ptr [ecx] # Q6 t, u1 w2 s/ d$ Y
0132D8CA  .  8B80 88000000 mov    eax, dword ptr [eax+88] 2 p+ V  s" b, t
0132D8D0  .  55            push    ebp
; {1 T! U& D6 b. Z0132D8D1  .  8D5424 70    lea    edx, dword ptr [esp+70] - h- U8 c' ]/ L" l' V9 _9 _6 k& H
0132D8D5  .  52            push    edx 5 r9 D# }) u! n  y. R& v4 m
0132D8D6  .  FFD0          call    eax
7 N6 X2 r( p: ~* M0132D8D8  .  6A 00        push    0                                ; /hDC = NULL   D1 E6 [/ Z* j4 ]$ H( P
0132D8DA  .  FF15 34A43801 call    dword ptr [<&GDI32.CreateCompati>; \CreateCompatibleDC 4 r) e7 a8 J; U
0132D8E0  .  8D4C24 70    lea    ecx, dword ptr [esp+70] * V1 T/ G9 D2 u
0132D8E4  .  51            push    ecx / P5 h9 ]& ?* s* X9 O0 N/ |$ {
0132D8E5  .  8BE8          mov    ebp, eax
2 Y' t/ u+ e; s5 r0132D8E7  .  FF15 24A83801 call    dword ptr [<&VxMath.VxCreateBitm>;  VxMath.VxCreateBitmap + ~' G, z. m8 }# u2 u1 h4 d
0132D8ED  .  8B35 70A43801 mov    esi, dword ptr [<&GDI32.SelectOb>;  GDI32.SelectObject ( r5 B, n5 X" Q
0132D8F3  .  83C4 04      add    esp, 4
' @8 S0 J( C( j; t1 y0 ^% c, _, m# i0132D8F6  .  50            push    eax                              ; /hObject 6 l0 p$ o$ c1 q
0132D8F7  .  55            push    ebp                              ; |hDC 3 b- a0 D8 h9 s8 C7 ^$ u
0132D8F8  .  894424 2C    mov    dword ptr [esp+2C], eax          ; | - E6 |0 D" H8 O; @3 Q' ^
0132D8FC  .  FFD6          call    esi                              ; \SelectObject ' i; |) f  C/ e
0132D8FE  .  8B5424 28    mov    edx, dword ptr [esp+28]
9 q7 f9 z/ Y% D; M, h6 I, N/ g0132D902  .  52            push    edx . S) Q0 h5 N8 H% R+ O( \1 a: ~
0132D903  .  8BCB          mov    ecx, ebx
1 W+ ~% I) d+ [  G" v0132D905  .  894424 40    mov    dword ptr [esp+40], eax
3 l; `7 _6 e# q  g& K" \0132D909  .  FF15 BCA83801 call    dword ptr [<&VxMath.XString::ope>;  VxMath.XString::operator= $ n: o" V" `' [
0132D90F  .  8B9C24 B80400>mov    ebx, dword ptr [esp+4B8] 0 [1 c9 I1 H, L, S4 g- C) Q" J- z
0132D916  .  6A 48        push    48                              ; /Divisor = 48 (72.)
% J8 v0 d( b; u# R% `' `' ]- W0132D918  .  6A 5A        push    5A                              ; |/Index = LOGPIXELSY / q6 ^2 g* |7 X5 b. I5 ~
0132D91A  .  55            push    ebp                              ; ||hDC 8 u1 D( H3 E: _
0132D91B  .  895F 14      mov    dword ptr [edi+14], ebx          ; ||
6 x& p* H8 B1 l0132D91E  .  FF15 64A43801 call    dword ptr [<&GDI32.GetDeviceCaps>; |\GetDeviceCaps
0 i" h& v/ A5 w2 c/ y7 L: N0132D924  .  50            push    eax                              ; |Multiplier   W) s$ S" K9 e& E& l0 A# h
0132D925  .  53            push    ebx                              ; |Multiplicand
2 o* `9 r" q4 @+ c. z  @$ y0132D926  .  FF15 DCA43801 call    dword ptr [<&KERNEL32.MulDiv>]  ; \MulDiv 4 S, C$ W& c( b4 M5 z
0132D92C  .  8B4C24 1C    mov    ecx, dword ptr [esp+1C] & ]/ X% D2 @* P! t% a% Z
0132D930  .  8B9424 C00400>mov    edx, dword ptr [esp+4C0]
4 W4 M$ U: z) O8 G" H+ V/ @0132D937  .  51            push    ecx                              ; /FaceName % e, V$ t3 e( Z. \2 @# }* Z. w# }
0132D938  .  8B8C24 C80400>mov    ecx, dword ptr [esp+4C8]        ; |
& f: M7 A- Y9 T! G. `8 B4 I0132D93F  .  6A 00        push    0                                ; |PitchAndFamily = DEFAULT_PITCH|FF_DONTCARE / }7 c$ o* q' V7 {3 N
0132D941  .  52            push    edx                              ; |Quality - ^# [8 T$ U9 V6 I/ ~
0132D942  .  6A 00        push    0                                ; |ClipPrecision = CLIP_DEFAULT_PRECIS # a$ Z1 @$ i3 W! A" x; f  M# y8 L
0132D944  .  6A 07        push    7                                ; |OutputPrecision = OUT_TT_ONLY_PRECIS % W  d( m: J% d, T) z
0132D946  .  6A 01        push    1                                ; |CharSet = DEFAULT_CHARSET - f4 ^' n. ~2 Y; y
0132D948  .  6A 00        push    0                                ; |StrikeOut = FALSE
3 l! x% ]* G7 e. f5 ]" K7 b( t$ B0132D94A  .  8BD1          mov    edx, ecx                        ; |
6 [4 c0 B6 y/ d0 @; V: X0132D94C  .  D1EA          shr    edx, 1                          ; | / {. T& E3 n2 m8 k
0132D94E  .  83E2 01      and    edx, 1                          ; | , |9 A! ?0 q. c3 _% t# f) @
0132D951  .  52            push    edx                              ; |Underline - C1 p" v/ j& s; `
0132D952  .  83E1 01      and    ecx, 1                          ; | # w# ]# d$ f$ ]0 _% `7 Z
0132D955  .  51            push    ecx                              ; |Italic 9 _! s3 i" j( L- D- w2 [
0132D956  .  8B8C24 E00400>mov    ecx, dword ptr [esp+4E0]        ; | ( U2 b0 _+ g, B8 U/ e  v6 ]& |" F
0132D95D  .  51            push    ecx                              ; |Weight ( n$ t) z  M  v0 d
0132D95E  .  6A 00        push    0                                ; |Orientation = 0
  V+ a' i7 L& }4 J; `8 y0132D960  .  6A 00        push    0                                ; |Escapement = 0
; m& d. B) n* I3 h( g5 |0132D962  .  F7D8          neg    eax                              ; | 9 P" x, F2 z; k2 d
0132D964  .  6A 00        push    0                                ; |Width = 0 # a  m3 I! v5 e; b3 Q! `9 ^
0132D966  .  50            push    eax                              ; |Height : k' B7 S. ^( h( I% a$ N
0132D967  .  FF15 60A43801 call    dword ptr [<&GDI32.CreateFontA>] ; \CreateFontA ; l* ]2 n) T7 C. R7 P% s4 {- q
0132D96D  .  50            push    eax
6 s- r+ Z  O7 m  E$ G* ]7 `+ a0132D96E  .  55            push    ebp + Q7 S" H6 U. u" Y: A0 O
0132D96F  .  894424 38    mov    dword ptr [esp+38], eax - ?# J1 g; s  S/ D6 |: S( i
0132D973  .  FFD6          call    esi 9 O8 ]9 R9 L  J9 p7 V7 e9 b
0132D975  .  8D5424 58    lea    edx, dword ptr [esp+58] 3 H1 p5 V" b/ R. R
0132D979  .  52            push    edx                              ; /pSize
, e9 X- ]' m/ Y0132D97A  .  6A 01        push    1                                ; |TextLen = 1 . N. [  W4 S0 F0 ?/ Z$ N, E
0132D97C  .  68 4CED3801  push    0138ED4C                        ; |Text = "A" & c' b( D% t$ u
0132D981  .  55            push    ebp                              ; |hDC
# N0 I4 ~9 }/ V0132D982  .  894424 44    mov    dword ptr [esp+44], eax          ; |
6 S0 \" L) L! t7 y1 \7 z& i0132D986  .  FF15 5CA43801 call    dword ptr [<&GDI32.GetTextExtent>; \GetTextExtentPointA 0 b# x0 I# i9 o( w
0132D98C  .  8B4424 5C    mov    eax, dword ptr [esp+5C] ( K+ i$ U+ \+ n. O
0132D990  .  8B77 1C      mov    esi, dword ptr [edi+1C] ' B) S- i5 L+ c  J- a& Y4 p
0132D993  .  8947 18      mov    dword ptr [edi+18], eax $ l' B# i! b) }% P" D$ T5 a
0132D996  .  33C9          xor    ecx, ecx
. O$ T- Y! }/ ^" B0132D998  .  8BC6          mov    eax, esi ! _0 c) y  T& ~/ c& u( o8 m
0132D99A  .  BA 20000000  mov    edx, 20 8 K( }5 f* x6 ]2 c
0132D99F  .  F7E2          mul    edx
( {4 t& \- R. c0 U6 x4 U/ E0132D9A1  .  0F90C1        seto    cl " l, h4 |! \. Z$ u# }4 @1 a
0132D9A4  .  F7D9          neg    ecx
4 p, t1 s$ g! X8 [( s9 J0132D9A6  .  0BC8          or      ecx, eax % \. d; ]/ I# \3 w8 W# c
0132D9A8  .  51            push    ecx
4 y# f5 G. n# [" A/ k0132D9A9  .  E8 964A0500  call    <jmp.&MSVCR80.operator new> 9 u% r) k4 S/ s/ ~
0132D9AE  .  83C4 04      add    esp, 4
5 f1 Q* h# L+ U7 j) s% S0132D9B1  .  85C0          test    eax, eax / g" h2 Q3 T7 C
0132D9B3  .  74 28        je      short 0132D9DD
4 g  ^9 H. r+ T& t0132D9B5  .  83C6 FF      add    esi, -1 % Q1 E, K' X* P3 U/ u- A* ]
0132D9B8  .  78 25        js      short 0132D9DF ' {; W3 w  D/ \; J# M
0132D9BA  .  D9EE          fldz % v. }& @- z. K2 S
0132D9BC  .  8D48 0C      lea    ecx, dword ptr [eax+C]
7 v9 T+ W3 P2 l$ e% f0132D9BF  >  D951 FC      fst    dword ptr [ecx-4]
: M( |5 S+ M, ?6 w! G0132D9C2  .  83C1 20      add    ecx, 20
3 ?3 E3 C1 `8 O' p1 Y1 h0132D9C5  .  83EE 01      sub    esi, 1
# F* f$ y% j4 A+ I0132D9C8  .  D951 E0      fst    dword ptr [ecx-20]
  V3 s/ I$ u/ G+ J1 A: [" L% V4 U0132D9CB  .  D951 D4      fst    dword ptr [ecx-2C] ( m" a9 ]$ X$ H% H. B6 U. F
0132D9CE  .  D951 D8      fst    dword ptr [ecx-28]
4 r. K+ A- A; e& V6 ]" [0132D9D1  .  D951 DC      fst    dword ptr [ecx-24]
  b# C& v: P4 A  h# X! G0132D9D4  .  D951 E0      fst    dword ptr [ecx-20] ) J" Z; O' H/ H# Y- U. D
0132D9D7  .^ 79 E6        jns    short 0132D9BF 5 L2 a/ {" k2 w& c! n
0132D9D9  .  DDD8          fstp    st 8 h- p8 _0 ~; u: U7 d
0132D9DB  .  EB 02        jmp    short 0132D9DF # s( |  \# `9 V+ V, o1 V, g  J( B
0132D9DD  >  33C0          xor    eax, eax - u% u4 ~. k" h$ |
0132D9DF  >  8B8C24 C80400>mov    ecx, dword ptr [esp+4C8]
* f! _% d% ]) p. [, \0132D9E6  .  8947 20      mov    dword ptr [edi+20], eax
: K5 C4 i1 ~9 |3 T7 a0132D9E9  .  8B8424 CC0400>mov    eax, dword ptr [esp+4CC]
6 M3 f: D/ {9 a  y* I& D4 Q0132D9F0  .  50            push    eax                              ; /Bottom
* ]- T) k' i: v' Z0132D9F1  .  51            push    ecx                              ; |Right   D8 q, }1 V1 ^6 f9 }# B  a
0132D9F2  .  6A 00        push    0                                ; |Top = 0   H$ e' D0 l& Z0 d% p
0132D9F4  .  6A 00        push    0                                ; |Left = 0 & x5 @0 {. {+ H" L1 c+ _
0132D9F6  .  8D5424 70    lea    edx, dword ptr [esp+70]          ; | 0 R4 r" N% q( M
0132D9FA  .  52            push    edx                              ; |pRect 2 i: I) s% {, v
0132D9FB  .  FF15 64A73801 call    dword ptr [<&USER32.SetRect>]    ; \SetRect 2 g, T- k! ~( p$ |# r% W! {2 v
0132DA01  .  6A 04        push    4                                ; /ObjType = BLACK_BRUSH 3 v9 q8 A7 e: A. y& B1 W0 S
0132DA03  .  FF15 58A43801 call    dword ptr [<&GDI32.GetStockObjec>; \GetStockObject # r( h, l/ |0 B2 O/ r" b9 q
0132DA09  .  50            push    eax                              ; /hBrush
2 P1 E9 K4 H+ Q! h0 M% S  H0132DA0A  .  8D4424 64    lea    eax, dword ptr [esp+64]          ; | - F. |  W- U# K% |
0132DA0E  .  50            push    eax                              ; |pRect 1 K7 Q# y+ ]5 |
0132DA0F  .  55            push    ebp                              ; |hDC 0 S  e) X) J$ }
0132DA10  .  FF15 68A73801 call    dword ptr [<&USER32.FillRect>]  ; \FillRect
, `0 p5 S8 k4 x1 E$ ~$ h0132DA16  .  6A 00        push    0                                ; /Color = <BLACK>
0 a  b* e1 D% o/ l8 ~0132DA18  .  55            push    ebp                              ; |hDC
/ b8 `& e. l4 y0132DA19  .  FF15 54A43801 call    dword ptr [<&GDI32.SetBkColor>]  ; \SetBkColor
( ?1 k2 [: P" ~5 q) \0132DA1F  .  68 FFFFFF00  push    0FFFFFF                          ; /Color = <WHITE> 5 s/ d4 I) h0 w4 `* B' d
0132DA24  .  55            push    ebp                              ; |hDC
- l3 }2 i* R8 \6 c, k) m0132DA25  .  FF15 50A43801 call    dword ptr [<&GDI32.SetTextColor>>; \SetTextColor . [% L6 L7 o( Q0 p
0132DA2B  .  6A 01        push    1                                ; /BkMode = TRANSPARENT
# W" O6 T! i; L( j4 I3 m0132DA2D  .  55            push    ebp                              ; |hDC
7 A3 T$ b  q7 k. n! q  ?& c4 i4 T/ }0132DA2E  .  FF15 4CA43801 call    dword ptr [<&GDI32.SetBkMode>]  ; \SetBkMode , h- r4 H7 z$ ^; @# B+ f
0132DA34  .  33F6          xor    esi, esi ) h- q) R/ z5 z% e7 w; D: ~
0132DA36  .  3977 1C      cmp    dword ptr [edi+1C], esi / N1 T4 U  Y9 @) X: E3 W& e2 \
0132DA39  .  BB 01000000  mov    ebx, 1 7 C" Z9 I" H6 R
0132DA3E  .  895C24 18    mov    dword ptr [esp+18], ebx
6 W5 r2 E6 a: i' _; T) ^% e! C0132DA42  .  897424 14    mov    dword ptr [esp+14], esi
2 {& i5 [' K4 Q2 Y! Z# E0132DA46  .  897424 1C    mov    dword ptr [esp+1C], esi
. a# k4 H/ `( o8 e0132DA4A  .  0F8E 20010000 jle    0132DB70
( {, c2 l- j, ], m9 [; `0132DA50  .  DB8424 C80400>fild    dword ptr [esp+4C8] 7 P) [7 o9 P! {8 O
0132DA57  .  8B4424 10    mov    eax, dword ptr [esp+10]   c* v: [% G' I# Y' q+ T
0132DA5B  .  897424 20    mov    dword ptr [esp+20], esi 0 G! E1 \5 D* h# R9 \
0132DA5F  .  894424 10    mov    dword ptr [esp+10], eax
0 C  j6 w3 I2 Z& _, c; I0132DA63  .  D95C24 38    fstp    dword ptr [esp+38]
" v& s& \+ v5 L5 ]# v0132DA67  .  DB8424 CC0400>fild    dword ptr [esp+4CC]
3 y; l9 o8 J: [, }8 y- Z8 ~0132DA6E  .  D95C24 2C    fstp    dword ptr [esp+2C]
5 W+ m0 X# k* R4 N% A0 T! w0132DA72  .  EB 04        jmp    short 0132DA78 5 N  n9 |3 q7 Q1 h: t2 x$ _
0132DA74  >  8B4424 10    mov    eax, dword ptr [esp+10]
+ I- S. m; Q& S0132DA78  >  8B77 20      mov    esi, dword ptr [edi+20] ' D7 F& G5 |, K. |- T; I/ s2 ?8 j; r
0132DA7B  .  66:8B08      mov    cx, word ptr [eax] ( {" ^( @  K% m% [+ w$ I
0132DA7E  .  037424 20    add    esi, dword ptr [esp+20] + n) P" @% s  W( T( V+ L
0132DA82  .  66:894E 10    mov    word ptr [esi+10], cx
; Q, G- ?. b4 }1 O, O0132DA86  .  0FB700        movzx  eax, word ptr [eax]
! x" R* z" \% h( ?" Z0132DA89  .  8D4E 14      lea    ecx, dword ptr [esi+14] : @5 E3 b5 T* e7 O
0132DA8C  .  51            push    ecx                              ; /pABC
( S8 c, N) i% w# Y) [1 E0132DA8D  .  50            push    eax                              ; |LastChar 1 v( x" G: P( h3 I" w( ~( h
0132DA8E  .  50            push    eax                              ; |FirstChar
, _, w" Y2 c$ [" W# U0 s0132DA8F  .  55            push    ebp                              ; |hDC
" b! B6 |7 `$ x+ g4 l3 q0132DA90  .  FF15 48A43801 call    dword ptr [<&GDI32.GetCharABCWid>; \GetCharABCWidthsW
7 M2 F8 w" T  K0132DA96  .  8B5424 10    mov    edx, dword ptr [esp+10]
+ r! z, u  v! ?0132DA9A  .  66:833A 20    cmp    word ptr [edx], 20 6 e/ x6 c, x- o; P
0132DA9E  .  73 10        jnb    short 0132DAB0 " Y5 Q/ O5 L7 h
0132DAA0  .  C746 14 00000>mov    dword ptr [esi+14], 0
& s& ~6 e: S% T0132DAA7  .  C746 1C 00000>mov    dword ptr [esi+1C], 0 0 c) U# K: ~; u5 p
0132DAAE  .  EB 0C        jmp    short 0132DABC ( |! x7 J4 I1 C3 r$ Z
0132DAB0  >  8346 14 FF    add    dword ptr [esi+14], -1 1 X* D3 U! O8 \& @
0132DAB4  .  8346 18 02    add    dword ptr [esi+18], 2
9 u0 {+ m) q. l% e0 g4 I( i9 G0132DAB8  .  8346 1C FF    add    dword ptr [esi+1C], -1 - @, D8 ^, N- a4 }! C- M# r% K
0132DABC  >  8B4E 18      mov    ecx, dword ptr [esi+18]
: K8 G9 q0 d2 }5 c) ?) K0132DABF  .  8D4419 01    lea    eax, dword ptr [ecx+ebx+1]
! w; x% U9 ~1 i% ?2 ?, w! Y4 u9 F0132DAC3  .  3B8424 C80400>cmp    eax, dword ptr [esp+4C8]
4 R' \/ d1 t& ]. U$ X0132DACA  .  8B4424 14    mov    eax, dword ptr [esp+14]
* x5 J7 g  K  B) ~0132DACE  .  72 14        jb      short 0132DAE4
) z- _/ i% }; T9 }5 y$ }9 o0132DAD0  .  8B57 18      mov    edx, dword ptr [edi+18] # T5 M# C: x! P2 S! n+ S; s+ W
0132DAD3  .  BB 01000000  mov    ebx, 1 2 r# _8 |1 ^$ L1 k6 ]* U
0132DAD8  .  8D4410 01    lea    eax, dword ptr [eax+edx+1]
7 e& n7 q7 |; a1 Y& B0 @0132DADC  .  895C24 18    mov    dword ptr [esp+18], ebx : R* o( ~' W7 b2 S, K  f. c
0132DAE0  .  894424 14    mov    dword ptr [esp+14], eax
4 @& \) |9 i5 Q0132DAE4  >  DB4424 18    fild    dword ptr [esp+18] # N- p! M4 z1 H4 w2 ~9 Y
0132DAE8  .  03CB          add    ecx, ebx
5 L5 c9 s% ~  c6 U" g; R( B0132DAEA  .  85C9          test    ecx, ecx + D  k! F. H4 s0 l6 Q& y
0132DAEC  .  D94424 38    fld    dword ptr [esp+38]
& S" [2 ?0 {8 c* c; ^0 k( `; u* [7 W6 u0132DAF0  .  D9C0          fld    st 5 i2 z6 A% E6 x$ n) ]% I
0132DAF2  .  894C24 18    mov    dword ptr [esp+18], ecx / |: p- G4 U1 a; x  ?- p9 F
0132DAF6  .  DEFA          fdivp  st(2), st
" l, l- B5 I& z3 J" y5 H0132DAF8  .  D9C9          fxch    st(1)
: w+ @8 U: t8 t/ ~- Q0132DAFA  .  D91E          fstp    dword ptr [esi]
1 h* R% e8 \2 W( A9 r% e0132DAFC  .  DB4424 14    fild    dword ptr [esp+14] $ _$ N% W+ q2 f: m+ m% t- V. G
0132DB00  .  D94424 2C    fld    dword ptr [esp+2C] ; M$ Q/ v5 b7 b
0132DB04  .  D9C0          fld    st
+ W; ~" N) \9 d3 l0132DB06  .  DEFA          fdivp  st(2), st
, {9 P* l) Z( X: t3 M( ?" ]' `* t0132DB08  .  D9C9          fxch    st(1)
5 s7 g- h" M7 }) y( G% m; B0132DB0A  .  D95E 04      fstp    dword ptr [esi+4] % z$ g2 f# W$ `/ p0 w  P3 Z3 B
0132DB0D  .  DB4424 18    fild    dword ptr [esp+18]
* L0 c! ~: I* R% P( X* [0132DB11  .  7D 06        jge    short 0132DB19 & z/ H1 u* a' q/ w. z9 p
0132DB13  .  D805 50B03801 fadd    dword ptr [138B050]
4 q7 n: l! W: w, O0132DB19  >  DEF2          fdivrp  st(2), st & y$ E; M4 n8 s) q& n
0132DB1B  .  8B5424 10    mov    edx, dword ptr [esp+10]
8 D1 v# M# h2 u0132DB1F  .  6A 01        push    1                                ; /StringSize = 1
: ?3 j: L, s2 J' A0132DB21  .  52            push    edx                              ; |String 8 \0 W+ L6 R2 n+ `3 `
0132DB22  .  50            push    eax                              ; |YStart 9 g3 y1 z6 J* B5 Y2 _6 g8 B
0132DB23  .  D9C9          fxch    st(1)                            ; |
5 R2 V7 D1 ?, B6 L( B+ b$ N0132DB25  .  D95E 08      fstp    dword ptr [esi+8]                ; |
6 Z4 j3 O9 a; f5 s( M4 q0132DB28  .  8B4F 18      mov    ecx, dword ptr [edi+18]          ; | ( Z  W4 x5 B: D
0132DB2B  .  03C8          add    ecx, eax                        ; | ) ~; B9 [, e) Z, \0 j
0132DB2D  .  894C24 24    mov    dword ptr [esp+24], ecx          ; |
7 L5 e. \; `0 U5 C2 Z) f+ x0132DB31  .  DA7C24 24    fidivr  dword ptr [esp+24]              ; | % Y' Q! {) D. g
0132DB35  .  8BC3          mov    eax, ebx                        ; | 7 I7 X; k, R; N, ?1 O* y$ g
0132DB37  .  2B46 14      sub    eax, dword ptr [esi+14]          ; |
; ^; K; O* S6 Z0132DB3A  .  50            push    eax                              ; |XStart
* j' V5 e  {, e+ @0132DB3B  .  55            push    ebp                              ; |hDC ( y5 ?5 X/ x7 r; i! j5 G
0132DB3C  .  D95E 0C      fstp    dword ptr [esi+C]                ; |
9 M# ?0 I& r, w) e1 X( M: Q0132DB3F  .  FF15 44A43801 call    dword ptr [<&GDI32.TextOutW>]    ; \TextOutW " q, G' p- m- n! a
0132DB45  .  8B4424 1C    mov    eax, dword ptr [esp+1C]
6 \" m- `, Z6 f2 T4 @8 y" C0132DB49  .  8B4E 18      mov    ecx, dword ptr [esi+18]
0 N6 z" n8 V, }2 H; j0132DB4C  .  834424 20 20  add    dword ptr [esp+20], 20
2 A+ l4 ?* _0 N4 M4 M0132DB51  .  834424 10 02  add    dword ptr [esp+10], 2
3 q4 V8 i2 b* R! q6 K0132DB56  .  83C0 01      add    eax, 1
! M& ~+ h, f0 N3 p1 }8 w4 Y0132DB59  .  3B47 1C      cmp    eax, dword ptr [edi+1C] : c- f3 V1 ^# E4 Y$ L
0132DB5C  .  8D5C0B 01    lea    ebx, dword ptr [ebx+ecx+1]
: y" g/ l! U  p1 ^- U0132DB60  .  895C24 18    mov    dword ptr [esp+18], ebx
3 `) S9 A* Q6 M6 c. o1 J3 l: s0132DB64  .  894424 1C    mov    dword ptr [esp+1C], eax 6 T  s2 h% h' @. M. r: S* V* t
0132DB68  .^ 0F8C 06FFFFFF jl      0132DA74 % U  \3 m1 {. X0 q
0132DB6E  .  33F6          xor    esi, esi
2 `1 ]! ^; a8 ]# Q0132DB70  >  8B4F 24      mov    ecx, dword ptr [edi+24]
# m: h2 c& O0 [; S! D0132DB73  .  6A FF        push    -1 : [8 y; g1 T9 R# [
0132DB75  .  83C1 38      add    ecx, 38
9 w) a* u( [6 c& n; ?( B0132DB78  .  E8 278E0300  call    <jmp.&CK2.CKBitmapData::LockSurf> $ E% A3 ~2 n1 z/ E% h* Z
0132DB7D  .  8BD8          mov    ebx, eax 5 f* c# F9 U. n" o7 O
0132DB7F  .  3BDE          cmp    ebx, esi % ?8 _; a2 B3 r( T0 I+ h5 V! }2 {
0132DB81  .  74 74        je      short 0132DBF7 " E2 w  t. H8 U
0132DB83  .  8B4424 24    mov    eax, dword ptr [esp+24]
/ H7 @& h$ S; F" D0132DB87  .  8D5424 40    lea    edx, dword ptr [esp+40]
+ D% R: K. }- K0 o: K. B! n0132DB8B  .  52            push    edx                              ; /Buffer
* j# J1 p- v6 ^0 @# |0 U0 X0132DB8C  .  6A 18        push    18                              ; |BufSize = 18 (24.) ) }8 n1 Z7 V7 i3 n/ ]
0132DB8E  .  50            push    eax                              ; |hObject
4 c) A4 Q. z2 b3 Y2 u- W' q0132DB8F  .  FF15 40A43801 call    dword ptr [<&GDI32.GetObjectA>]  ; \GetObjectA   j# F1 e  A2 c1 y7 [/ n3 S
0132DB95  .  8B4C24 48    mov    ecx, dword ptr [esp+48]
  _; S  t0 l; D% z6 |6 o0132DB99  .  8D71 FF      lea    esi, dword ptr [ecx-1] / W( U* O% c! X1 n" F. r
0132DB9C  .  0FAF7424 4C  imul    esi, dword ptr [esp+4C] . s: K3 @- M; X
0132DBA1  .  037424 54    add    esi, dword ptr [esp+54]
0 F. x4 z) b" Z# z4 e0 r, z0132DBA5  .  85C9          test    ecx, ecx
3 K) z  n% ?( A- C) O0132DBA7  .  C74424 14 000>mov    dword ptr [esp+14], 0
7 \$ e3 r- h: n* f) N2 u2 [* t0132DBAF  .  7E 46        jle    short 0132DBF7 1 ?$ d3 ?9 _0 M- i; E4 v1 o
0132DBB1  .  8B5424 44    mov    edx, dword ptr [esp+44] . {& K7 D2 K! O; |
0132DBB5  >  33C0          xor    eax, eax 5 |$ H( v( y" W$ @$ W, x
0132DBB7  .  85D2          test    edx, edx
* o# a! k0 }6 C( ?0132DBB9  .  7E 26        jle    short 0132DBE1
, o$ ?8 r7 }- a( H3 J1 r0 |0132DBBB  .  8BCE          mov    ecx, esi
8 _- }; l" x4 |6 i# Z0132DBBD  .  8D49 00      lea    ecx, dword ptr [ecx] ( w" e  a/ l0 x  O1 i5 d% T
0132DBC0  >  0FB611        movzx  edx, byte ptr [ecx] 0 }6 C5 ~; V! p' ]# G" s$ q
0132DBC3  .  C1E2 18      shl    edx, 18 ! Q% l" a8 C! Y( u9 U0 g
0132DBC6  .  81CA FFFFFF00 or      edx, 0FFFFFF 8 G/ T+ a) M( y# M
0132DBCC  .  891483        mov    dword ptr [ebx+eax*4], edx
8 v4 l8 }- d8 }, X+ Y& |# y0132DBCF  .  8B5424 44    mov    edx, dword ptr [esp+44] . H1 a0 X. {2 ~- P( u0 \- |. C/ X; o# i' b
0132DBD3  .  83C0 01      add    eax, 1
2 r8 {2 n4 W  L; M+ v' L0132DBD6  .  83C1 03      add    ecx, 3 % G6 ?# ^( [; O" F
0132DBD9  .  3BC2          cmp    eax, edx
2 q0 T4 s; r4 y2 l7 E0132DBDB  .^ 7C E3        jl      short 0132DBC0 8 e* j) e! x: r4 D2 E8 [7 S
0132DBDD  .  8B4C24 48    mov    ecx, dword ptr [esp+48]
( W+ z; g3 Y& E: T8 p$ Z; B3 m( \2 }0132DBE1  >  8B4424 14    mov    eax, dword ptr [esp+14]
9 x8 g6 X( A; z* D; s" E$ `0 Q0132DBE5  .  2B7424 4C    sub    esi, dword ptr [esp+4C] * y7 A  q: N* d" u( W2 I  D
0132DBE9  .  83C0 01      add    eax, 1
4 g& F$ J' R, o0132DBEC  .  3BC1          cmp    eax, ecx
: {" H! e) r& q- K6 W0132DBEE  .  8D1C93        lea    ebx, dword ptr [ebx+edx*4] * b2 K; O7 x! K8 _( R% I
0132DBF1  .  894424 14    mov    dword ptr [esp+14], eax
2 c$ W( g2 K+ {/ ?! X0132DBF5  .^ 7C BE        jl      short 0132DBB5 2 Q2 I: w! x5 O. Z
0132DBF7  >  8B4F 24      mov    ecx, dword ptr [edi+24]
4 }* V( f! K$ f. h  j% S2 h# n" s0132DBFA  .  6A FF        push    -1
9 ^, m# t8 r1 R- ~0132DBFC  .  83C1 38      add    ecx, 38
) u( ^  e$ I1 ?2 d. x. b+ x0132DBFF  .  E8 9A8D0300  call    <jmp.&CK2.CKBitmapData::ReleaseS>
2 |3 D5 Z6 E# S7 l2 `0132DC04  .  8B4424 34    mov    eax, dword ptr [esp+34] 4 C6 E6 \! ]( B  K8 J# g
0132DC08  .  8B35 70A43801 mov    esi, dword ptr [<&GDI32.SelectOb>;  GDI32.SelectObject 5 y& l3 I) z4 e
0132DC0E  .  50            push    eax                              ; /hObject
+ L1 Z3 x( Z0 n( V( m% V1 E0132DC0F  .  55            push    ebp                              ; |hDC ' R6 j5 f2 d  {: |( g5 o
0132DC10  .  FFD6          call    esi                              ; \SelectObject
& ~6 e" m. G; D9 o7 S  `+ f- B0132DC12  .  8B4C24 30    mov    ecx, dword ptr [esp+30]
% K. x* H0 M% g! e$ J0132DC16  .  51            push    ecx 6 I3 _: R3 y0 c% o0 H9 p* F
0132DC17  .  FF15 28A83801 call    dword ptr [<&VxMath.VxDeleteFont>;  VxMath.VxDeleteFont
. e2 S! }. ]+ V: q0132DC1D  .  8B5424 40    mov    edx, dword ptr [esp+40]
$ R; b9 X" B9 k7 b5 G; E0132DC21  .  83C4 04      add    esp, 4 9 T" V; ^2 T# S/ U3 y7 I1 ^
0132DC24  .  52            push    edx
& R. t1 p9 D+ f" g9 }8 J3 Q0132DC25  .  55            push    ebp * `/ f& H* v* z  T# Q
0132DC26  .  FFD6          call    esi
2 z6 C* `  d  N* V9 r, P3 `; \1 ~0132DC28  .  8B4424 24    mov    eax, dword ptr [esp+24]
. o4 A4 [: O4 }# Y5 s0 o& B% O0132DC2C  .  50            push    eax
6 a) T5 `- O+ h; w, t0 L0132DC2D  .  FF15 2CA83801 call    dword ptr [<&VxMath.VxDeleteBitm>;  VxMath.VxDeleteFont
) w3 f% J7 N, k8 ^0132DC33  .  83C4 04      add    esp, 4 ; g6 d, L- i2 e
0132DC36  .  55            push    ebp                              ; /hDC ! i, j; T; y! d
0132DC37  .  FF15 3CA43801 call    dword ptr [<&GDI32.DeleteDC>]    ; \DeleteDC , F- I* ^# X# \3 i" s7 p- N
0132DC3D  .  8B4C24 28    mov    ecx, dword ptr [esp+28]
1 }4 @/ W. G3 m5 F% G9 [0132DC41  .  6A 00        push    0 ! p) B. A/ t& c# \9 `  n
0132DC43  .  51            push    ecx
8 H$ t# x+ {  d, Q) Y8 U0132DC44  .  8B4F 24      mov    ecx, dword ptr [edi+24] + \. s5 h: T& m( b
0132DC47  .  E8 4C8A0300  call    <jmp.&CK2.CKObject::SetName> 1 ^" U, _4 O4 @+ h, N& k6 ?* Z# P
0132DC4C  .  8B4F 24      mov    ecx, dword ptr [edi+24]
+ g+ j2 F  Q, i& ^0132DC4F  .  6A 01        push    1 + w6 d* C/ V/ ]9 _( C) Q8 h; }
0132DC51  .  83C1 38      add    ecx, 38
# {  m: V% z& |. \0 U3 l" P0132DC54  .  E8 7B8D0300  call    <jmp.&CK2.CKBitmapData::SetDesir>
) M# s* T2 B0 E0132DC59  .  8B4F 24      mov    ecx, dword ptr [edi+24] * }6 j4 u2 u2 r- s
0132DC5C  .  8B11          mov    edx, dword ptr [ecx] 5 w# e  g: F% q  t+ t2 q8 l
0132DC5E  .  8B42 78      mov    eax, dword ptr [edx+78] ' z& e5 U# Z* b+ L2 e0 c4 V  f
0132DC61  .  6A 00        push    0 1 u3 q0 D% O, G" I( J9 s4 v
0132DC63  .  FFD0          call    eax & J5 \0 k3 h0 j
0132DC65  .  8B4F 18      mov    ecx, dword ptr [edi+18] ; \+ N! W2 B0 n9 k
0132DC68  .  034C24 14    add    ecx, dword ptr [esp+14] , t2 e) c7 J: n  ]$ Z
0132DC6C  .  33C0          xor    eax, eax 7 E$ u$ M; C) p
0132DC6E  .  3B8C24 CC0400>cmp    ecx, dword ptr [esp+4CC] 5 X8 o& d) J3 n. |. P" H+ M5 O5 }( @$ Z
0132DC75  .  5D            pop    ebp - S/ }% t* a% C, N, x
0132DC76  .  0F9CC0        setl    al ; M/ k" j! ?. |* ^+ Z6 {
0132DC79  >  8B8C24 A00400>mov    ecx, dword ptr [esp+4A0] 6 G0 H- c1 S6 T( z8 b$ T# F  X
0132DC80  .  5F            pop    edi
- b. G; b  X: A, R0132DC81  .  5E            pop    esi - p" x8 l4 I5 k6 p: `# I( h
0132DC82  .  5B            pop    ebx
# _1 A% L, P3 d* t0132DC83  .  33CC          xor    ecx, esp
# M" h8 ~" _( A0132DC85  .  E8 E2460500  call    0138236C 5 {- h' q# p1 b* b' `
0132DC8A  .  81C4 98040000 add    esp, 498 / r+ Z7 `3 H, x4 L$ u
0132DC90  .  C2 2800      retn    28
作者: beegame    时间: 2010-1-10 13:23
不懂,希望能把分析发出来给新人学习  谢谢 [s:45]
作者: beegame    时间: 2010-1-10 13:24
再请教 这个调试软件是什么,那里有下载。。
作者: shane007    时间: 2010-1-10 16:37
回楼上,这个调试软件叫ollydbg,即OD,我用的是其修改版olly ice.! A2 `8 X4 a( e& @0 b3 }: T
分析说明也许以后会补上。
4 L+ D; T1 v, r& H1 r4 I% X: F# A& B/ j8 ^
加油!




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