标题: 【函数】寻找可以移动的点
性别:未知-离线 砖家叫兽

Rank: 3Rank: 3Rank: 3
组别 士兵
级别 忠义校尉
功绩 3
帖子 274
编号 406021
注册 2010-12-7


发表于 2011-3-24 21:40 资料 短消息 只看该作者
【函数】寻找可以移动的点

挑选其中精华一段

00438572  |.  C605 282C4B00 F>MOV BYTE PTR DS:[4B2C28],0FF
00438579  |.  C605 202C4B00 F>MOV BYTE PTR DS:[4B2C20],0FF
00438580  |.  C605 442C4B00 F>MOV BYTE PTR DS:[4B2C44],0FF
00438587  |.  C745 B0 ACC74A0>MOV DWORD PTR SS:[EBP-50],Ekd5.004AC7AC
0043858E  |.  8B45 98         MOV EAX,DWORD PTR SS:[EBP-68]
00438591  |.  FF30            PUSH DWORD PTR DS:[EAX]                  ; /Arg1
00438593  |.  E8 4CDCFCFF     CALL Ekd5.004061E4                       ; \Ekd5.004061E4
00438598  |.  894D A8         MOV DWORD PTR SS:[EBP-58],ECX
0043859B  |.  E8 BCE0FCFF     CALL Ekd5.0040665C                       ;  移动相关?
004385A0  |.  FF75 B0         PUSH DWORD PTR SS:[EBP-50]               ; /Arg5
004385A3  |.  FF75 98         PUSH DWORD PTR SS:[EBP-68]               ; |Arg4
004385A6  |.  FF75 A8         PUSH DWORD PTR SS:[EBP-58]               ; |Arg3
004385A9  |.  50              PUSH EAX                                 ; |Arg2
004385AA  |.  6A 00           PUSH 0                                   ; |Arg1 = 00000000
004385AC  |.  E8 77A40000     CALL Ekd5.00442A28                       ; \Ekd5.00442A28
004385B1  |.  C601 FF         MOV BYTE PTR DS:[ECX],0FF
004385B4  |.  837D F4 00      CMP DWORD PTR SS:[EBP-C],0
004385B8  |.  75 0B           JNZ SHORT Ekd5.004385C5
004385BA  |.  FF75 08         PUSH DWORD PTR SS:[EBP+8]                ; /Arg1
004385BD  |.  8B4D 98         MOV ECX,DWORD PTR SS:[EBP-68]            ; |
004385C0  |.  E8 641F0000     CALL Ekd5.0043A529                       ; \Ekd5.0043A529
004385C5  |>  FF75 08         PUSH DWORD PTR SS:[EBP+8]                ; /Arg1
004385C8  |.  E8 C4D3FFFF     CALL Ekd5.00435991                       ; \地形指针
004385CD  |.  83C4 04         ADD ESP,4
004385D0  |.  50              PUSH EAX                                 ; /地形指针
004385D1  |.  8B4D 98         MOV ECX,DWORD PTR SS:[EBP-68]            ; |
004385D4  |.  E8 EA710000     CALL Ekd5.0043F7C3                       ; \移动计算?
004385D9  |.  3C FF           CMP AL,0FF
004385DB  |.  0F84 2C030000   JE Ekd5.0043890D
004385E1  |.  C645 E0 00      MOV BYTE PTR SS:[EBP-20],0               ;  计数
004385E5  |.  EB 06           JMP SHORT Ekd5.004385ED
004385E7  |>  8A45 BC         /MOV AL,BYTE PTR SS:[EBP-44]
004385EA  |.  8845 E0         |MOV BYTE PTR SS:[EBP-20],AL
004385ED  |>  837D E8 00       CMP DWORD PTR SS:[EBP-18],0
004385F1  |.  0F84 16030000   |JE Ekd5.0043890D                        ;  0结束
004385F7  |.  0FB64D E0       |MOVZX ECX,BYTE PTR SS:[EBP-20]
004385FB  |.  0FB655 0C       |MOVZX EDX,BYTE PTR SS:[EBP+C]
004385FF  |.  3BCA            |CMP ECX,EDX
00438601  |.  0F8D 06030000   |JGE Ekd5.0043890D                       ;  不小于结束
00438607  |.  33C9            |XOR ECX,ECX
00438609  |.  894D E8         |MOV DWORD PTR SS:[EBP-18],ECX
0043860C  |.  894D D0         |MOV DWORD PTR SS:[EBP-30],ECX
0043860F  |.  FEC9            |DEC CL
00438611  |.  894D BC         |MOV DWORD PTR SS:[EBP-44],ECX
00438614  |.  894D FC         |MOV DWORD PTR SS:[EBP-4],ECX            ;  循环检测可以移动的点
00438617  |.  EB 03           |JMP SHORT Ekd5.0043861C
00438619  |>  FF45 D0         |/INC DWORD PTR SS:[EBP-30]              ;  Y坐标
0043861C  |>  0FB60D 2D424B00 | MOVZX ECX,BYTE PTR DS:[4B422D]
00438623  |.  394D D0         ||CMP DWORD PTR SS:[EBP-30],ECX
00438626  |.  0F83 DC020000   ||JNB Ekd5.00438908
0043862C  |.  C745 DC 0000000>||MOV DWORD PTR SS:[EBP-24],0
00438633  |.  EB 03           ||JMP SHORT Ekd5.00438638
00438635  |>  FF45 DC         ||/INC DWORD PTR SS:[EBP-24]             ;  X坐标
00438638      0FB605 2C424B00 MOVZX EAX,BYTE PTR DS:[4B422C]
0043863F      3945 DC         CMP DWORD PTR SS:[EBP-24],EAX
00438642      0F83 90020000   JNB Ekd5.004388D8
00438648      8B4D B4         MOV ECX,DWORD PTR SS:[EBP-4C]
0043864B  |.  034D DC         |||ADD ECX,DWORD PTR SS:[EBP-24]
0043864E  |.  0FB615 2C424B00 |||MOVZX EDX,BYTE PTR DS:[4B422C]
00438655  |.  8B45 D0         |||MOV EAX,DWORD PTR SS:[EBP-30]
00438658  |.  0FAFC2          |||IMUL EAX,EDX
0043865B  |.  8A0C01          |||MOV CL,BYTE PTR DS:[ECX+EAX]
0043865E  |.  884D A4         |||MOV BYTE PTR SS:[EBP-5C],CL           ;  坐标指针偏移量
00438661  |.  0FB645 A4       |||MOVZX EAX,BYTE PTR SS:[EBP-5C]
00438665  |.  0FB655 E0       |||MOVZX EDX,BYTE PTR SS:[EBP-20]
00438669  |.  3BC2            |||CMP EAX,EDX
0043866B  |.  7E 0F           |||JLE SHORT Ekd5.0043867C
0043866D  |.  3C FF           |||CMP AL,0FF
0043866F  |.  74 0B           |||JE SHORT Ekd5.0043867C
00438671  |.  0FB64D FC       |||MOVZX ECX,BYTE PTR SS:[EBP-4]
00438675  |.  3BC8            |||CMP ECX,EAX
00438677  |.  7E 03           |||JLE SHORT Ekd5.0043867C
00438679  |.  8845 FC         |||MOV BYTE PTR SS:[EBP-4],AL
0043867C  |>  3BC2            |||CMP EAX,EDX
0043867E  |.^ 75 B5           |||JNZ SHORT Ekd5.00438635
00438680  |.  8A4D DC         |||MOV CL,BYTE PTR SS:[EBP-24]           ;  X坐标
00438683  |.  884D C4         |||MOV BYTE PTR SS:[EBP-3C],CL           ;  记录坐标
00438686  |.  8A55 D0         |||MOV DL,BYTE PTR SS:[EBP-30]           ;  Y坐标
00438689  |.  8855 C5         |||MOV BYTE PTR SS:[EBP-3B],DL           ;  记录坐标
0043868C  |.  8D45 C4         |||LEA EAX,DWORD PTR SS:[EBP-3C]
0043868F  |.  50              |||PUSH EAX                              ; /坐标指针
00438690  |.  FF75 08         |||PUSH DWORD PTR SS:[EBP+8]             ; |人物坐标?
00438693  |.  E8 882D0000     |||CALL Ekd5.0043B420                    ; \人物当前坐标
00438698  |.  83C4 08         |||ADD ESP,8
0043869B  |.  85C0            |||TEST EAX,EAX
0043869D  |.  75 16           |||JNZ SHORT Ekd5.004386B5
0043869F  |.  837D 1C 00      |||CMP DWORD PTR SS:[EBP+1C],0
004386A3  |.  74 10           |||JE SHORT Ekd5.004386B5
004386A5  |.  8D55 C4         |||LEA EDX,DWORD PTR SS:[EBP-3C]         ;  坐标指针
004386A8  |.  52              |||PUSH EDX                              ; /Arg1
004386A9  |.  8B4D 98         |||MOV ECX,DWORD PTR SS:[EBP-68]         ; |战场内存
004386AC  |.  E8 A8F6FFFF     |||CALL Ekd5.00437D59                    ; \Ekd5.00437D59
004386B1  |.  85C0            |||TEST EAX,EAX
004386B3  |.^ 75 80           |||JNZ SHORT Ekd5.00438635
004386B5  |>  33C0            |||XOR EAX,EAX
004386B7  |.  8945 CC         |||MOV DWORD PTR SS:[EBP-34],EAX         ;  计数
004386BA  |.  EB 03           |||JMP SHORT Ekd5.004386BF
004386BC  |>  FF45 CC         |||/INC DWORD PTR SS:[EBP-34]
004386BF  |>  837D CC 04      ||| CMP DWORD PTR SS:[EBP-34],4
004386C3  |.  0F83 0A020000   ||||JNB Ekd5.004388D3
004386C9  |.  FF75 CC         ||||PUSH DWORD PTR SS:[EBP-34]           ; /计数变量
004386CC  |.  8D55 C4         ||||LEA EDX,DWORD PTR SS:[EBP-3C]        ; |
004386CF  |.  52              ||||PUSH EDX                             ; |坐标指针
004386D0  |.  E8 20D3FFFF     ||||CALL Ekd5.004359F5                   ; \Ekd5.004359F5
004386D5  |.  83C4 08         ||||ADD ESP,8
004386D8  |.  50              ||||PUSH EAX                             ; /Arg1
004386D9  |.  8D4D B8         ||||LEA ECX,DWORD PTR SS:[EBP-48]        ; |
004386DC  |.  E8 BADEFCFF     ||||CALL Ekd5.0040659B                   ; \Ekd5.0040659B
004386E1  |.  8B45 B8         ||||MOV EAX,DWORD PTR SS:[EBP-48]
004386E4  |.  3C FF           ||||CMP AL,0FF
004386E6  |.^ 74 D4           ||||JE SHORT Ekd5.004386BC
004386E8  |.  0FB64D B8       ||||MOVZX ECX,BYTE PTR SS:[EBP-48]
004386EC  |.  0FB655 B9       ||||MOVZX EDX,BYTE PTR SS:[EBP-47]
004386F0  |.  0FB605 2C424B00 ||||MOVZX EAX,BYTE PTR DS:[4B422C]
004386F7  |.  0FAFD0          ||||IMUL EDX,EAX
004386FA  |.  03CA            ||||ADD ECX,EDX
004386FC  |.  894D E4         ||||MOV DWORD PTR SS:[EBP-1C],ECX
004386FF  |.  8B4D B4         ||||MOV ECX,DWORD PTR SS:[EBP-4C]
00438702  |.  034D E4         ||||ADD ECX,DWORD PTR SS:[EBP-1C]
00438705  |.  894D D4         ||||MOV DWORD PTR SS:[EBP-2C],ECX
00438708  |.  6A 04           ||||PUSH 4                               ; /Arg3 = 00000004
0043870A  |.  6A 00           ||||PUSH 0                               ; |Arg2 = 00000000
0043870C  |.  6A 00           ||||PUSH 0                               ; |Arg1 = 00000000
0043870E  |.  B9 38EB4A00     ||||MOV ECX,Ekd5.004AEB38                ; |
00438713  |.  E8 28730400     ||||CALL Ekd5.0047FA40                   ; \清屏
00438718  |.  8B55 E4         ||||MOV EDX,DWORD PTR SS:[EBP-1C]
0043871B  |.  8D8410 800C0000 ||||LEA EAX,DWORD PTR DS:[EAX+EDX+C80]
00438722  |.  8945 D8         ||||MOV DWORD PTR SS:[EBP-28],EAX
00438725  |.  6A 04           ||||PUSH 4                               ; /Arg3 = 00000004
00438727  |.  6A 00           ||||PUSH 0                               ; |Arg2 = 00000000
00438729  |.  6A 00           ||||PUSH 0                               ; |Arg1 = 00000000
0043872B  |.  B9 68AB4A00     ||||MOV ECX,Ekd5.004AAB68                ; |
00438730  |.  E8 0B730400     ||||CALL Ekd5.0047FA40                   ; \清屏
00438735  |.  8B4D E4         ||||MOV ECX,DWORD PTR SS:[EBP-1C]
00438738  |.  8D9408 40060000 ||||LEA EDX,DWORD PTR DS:[EAX+ECX+640]
0043873F  |.  8955 F8         ||||MOV DWORD PTR SS:[EBP-8],EDX
00438742  |.  8B45 D4         ||||MOV EAX,DWORD PTR SS:[EBP-2C]
00438745  |.  0FB608          ||||MOVZX ECX,BYTE PTR DS:[EAX]
00438748  |.  80F9 FF         ||||CMP CL,0FF
0043874B  |.^ 0F85 6BFFFFFF   ||||JNZ Ekd5.004386BC
00438751  |.  8D55 B8         ||||LEA EDX,DWORD PTR SS:[EBP-48]
00438754  |.  52              ||||PUSH EDX                             ; /指针?
00438755  |.  E8 37D2FFFF     ||||CALL Ekd5.00435991                   ; \获取地形
0043875A  |.  83C4 04         ||||ADD ESP,4
0043875D  |.  8845 9C         ||||MOV BYTE PTR SS:[EBP-64],AL          ;  地形
00438760  |.  50              ||||PUSH EAX                             ; /Arg1
00438761  |.  8B4D 98         ||||MOV ECX,DWORD PTR SS:[EBP-68]        ; |战场内存
00438764  |.  E8 5A700000     ||||CALL Ekd5.0043F7C3                   ; \计算
00438769  |.  8845 A0         ||||MOV BYTE PTR SS:[EBP-60],AL          ;  消耗移动?
0043876C      3C FF           CMP AL,0FF
0043876E      74 55           JE SHORT Ekd5.004387C5
00438770      0FB655 A0       MOVZX EDX,BYTE PTR SS:[EBP-60]           ;  消耗移动?
00438774  |.  0FB645 A4       ||||MOVZX EAX,BYTE PTR SS:[EBP-5C]       ;  总消耗移动?
00438778  |.  03D0            ||||ADD EDX,EAX                          ;  计算步长
0043877A  |.  0FB64D 0C       ||||MOVZX ECX,BYTE PTR SS:[EBP+C]
0043877E  |.  3BD1            ||||CMP EDX,ECX                          ;  是否消耗完移动力
00438780  |.  7F 43           ||||JG SHORT Ekd5.004387C5
00438782  |.  8B55 D8         ||||MOV EDX,DWORD PTR SS:[EBP-28]
00438785  |.  803A FF         ||||CMP BYTE PTR DS:[EDX],0FF
00438788  |.  74 40           ||||JE SHORT Ekd5.004387CA               ;  不能移动?
0043878A  |.  8B4D 98         ||||MOV ECX,DWORD PTR SS:[EBP-68]
0043878D  |.  E8 FDDDFCFF     ||||CALL Ekd5.0040658F
00438792  |.  6A 22           ||||PUSH 22                              ; /Arg1 = 00000022
00438794  |.  E8 70F2FCFF     ||||CALL Ekd5.00407A09                   ; \Ekd5.00407A09
00438799  |.  85C0            ||||TEST EAX,EAX
0043879B  |.  75 2D           ||||JNZ SHORT Ekd5.004387CA
0043879D  |.  8B75 C0         ||||MOV ESI,DWORD PTR SS:[EBP-40]
004387A0  |.  81E6 FF000000   ||||AND ESI,0FF
004387A6  |.  8B4D D8         ||||MOV ECX,DWORD PTR SS:[EBP-28]
004387A9  |.  8A09            ||||MOV CL,BYTE PTR DS:[ECX]
004387AB  |.  E8 49DAFCFF     ||||CALL Ekd5.004061F9
004387B0  |.  E8 5BDFFCFF     ||||CALL Ekd5.00406710
004387B5  |.  3BF0            ||||CMP ESI,EAX
004387B7  |.  74 11           ||||JE SHORT Ekd5.004387CA
004387B9  |.  837D 1C 00      ||||CMP DWORD PTR SS:[EBP+1C],0
004387BD  |.  75 06           ||||JNZ SHORT Ekd5.004387C5
004387BF  |.  837D F4 00      ||||CMP DWORD PTR SS:[EBP-C],0
004387C3  |.  75 05           ||||JNZ SHORT Ekd5.004387CA
004387C5  |>^ E9 F2FEFFFF     ||||JMP Ekd5.004386BC
004387CA  |>  0FB645 A4       ||||MOVZX EAX,BYTE PTR SS:[EBP-5C]
004387CE      0FB64D A0       MOVZX ECX,BYTE PTR SS:[EBP-60]
004387D2      03C1            ||||ADD EAX,ECX
004387D4  |.  8B55 D4         ||||MOV EDX,DWORD PTR SS:[EBP-2C]
004387D7  |.  8802            ||||MOV BYTE PTR DS:[EDX],AL
004387D9  |.  C745 E8 0100000>||||MOV DWORD PTR SS:[EBP-18],1
004387E0  |.  0FB645 BC       ||||MOVZX EAX,BYTE PTR SS:[EBP-44]
004387E4  |.  8B4D D4         ||||MOV ECX,DWORD PTR SS:[EBP-2C]
004387E7  |.  0FB611          ||||MOVZX EDX,BYTE PTR DS:[ECX]
004387EA  |.  3BC2            ||||CMP EAX,EDX
004387EC  |.  7E 40           ||||JLE SHORT Ekd5.0043882E
004387EE  |.  837D 1C 00      ||||CMP DWORD PTR SS:[EBP+1C],0
004387F2  |.  74 32           ||||JE SHORT Ekd5.00438826
004387F4  |.  837D F4 00      ||||CMP DWORD PTR SS:[EBP-C],0
004387F8  |.  75 2C           ||||JNZ SHORT Ekd5.00438826
004387FA  |.  8D45 B8         ||||LEA EAX,DWORD PTR SS:[EBP-48]
004387FD  |.  50              ||||PUSH EAX                             ; /Arg1
004387FE  |.  8B4D 98         ||||MOV ECX,DWORD PTR SS:[EBP-68]        ; |战场内存
00438801  |.  E8 53F5FFFF     ||||CALL Ekd5.00437D59                   ; \Ekd5.00437D59
00438806  |.  85C0            ||||TEST EAX,EAX
00438808  |.  75 24           ||||JNZ SHORT Ekd5.0043882E
0043880A  |.  8B4D D4         ||||MOV ECX,DWORD PTR SS:[EBP-2C]
0043880D  |.  8A11            ||||MOV DL,BYTE PTR DS:[ECX]
0043880F  |.  8855 BC         ||||MOV BYTE PTR SS:[EBP-44],DL
00438812  |.  0FB645 BC       ||||MOVZX EAX,BYTE PTR SS:[EBP-44]
00438816  |.  0FB64D FC       ||||MOVZX ECX,BYTE PTR SS:[EBP-4]
0043881A  |.  3BC1            ||||CMP EAX,ECX
0043881C  |.  7E 10           ||||JLE SHORT Ekd5.0043882E
0043881E  |.  8A55 FC         ||||MOV DL,BYTE PTR SS:[EBP-4]           ;  移动力足够?
00438821  |.  8855 BC         ||||MOV BYTE PTR SS:[EBP-44],DL
00438824  |.  EB 08           ||||JMP SHORT Ekd5.0043882E
00438826  |>  8B45 D4         ||||MOV EAX,DWORD PTR SS:[EBP-2C]
00438829  |.  8A08            ||||MOV CL,BYTE PTR DS:[EAX]
0043882B  |.  884D BC         ||||MOV BYTE PTR SS:[EBP-44],CL
0043882E  |>  0FB655 10       ||||MOVZX EDX,BYTE PTR SS:[EBP+10]
00438832  |.  83E2 08         ||||AND EDX,8
00438835  |.  85D2            ||||TEST EDX,EDX
00438837  |.  74 5B           ||||JE SHORT Ekd5.00438894
00438839  |.  6A 04           ||||PUSH 4                               ; /Arg3 = 00000004
0043883B  |.  6A 00           ||||PUSH 0                               ; |Arg2 = 00000000
0043883D  |.  6A 00           ||||PUSH 0                               ; |Arg1 = 00000000
0043883F  |.  B9 68AB4A00     ||||MOV ECX,Ekd5.004AAB68                ; |
00438844  |.  E8 F7710400     ||||CALL Ekd5.0047FA40                   ; \Ekd5.0047FA40
00438849  |.  8B4D E4         ||||MOV ECX,DWORD PTR SS:[EBP-1C]
0043884C  |.  0FB61408        ||||MOVZX EDX,BYTE PTR DS:[EAX+ECX]
00438850  |.  81FA FF000000   ||||CMP EDX,0FF
00438856  |.  74 3C           ||||JE SHORT Ekd5.00438894


顶部

正在浏览此帖的会员 - 共 1 人在线




当前时区 GMT+8, 现在时间是 2025-2-1 04:04
京ICP备2023018092号 轩辕春秋 2003-2023 www.xycq.org.cn

Powered by Discuz! 5.0.0 2001-2006 Comsenz Inc.
Processed in 0.013224 second(s), 8 queries , Gzip enabled

清除 Cookies - 联系我们 - 轩辕春秋 - Archiver - WAP