【函数】寻找可以移动的点
挑选其中精华一段
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
|