回复 #18 lewulezo 的帖子
当然不同了,先看6楼的链接,再看代码:
0040D487 $ 55 PUSH EBP
0040D488 . 8BEC MOV EBP,ESP
0040D48A . 83EC 14 SUB ESP,14
0040D48D . 53 PUSH EBX
0040D48E . 56 PUSH ESI
0040D48F . 57 PUSH EDI
0040D490 . 894D F0 MOV DWORD PTR SS:[EBP-10],ECX
0040D493 . 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10]
0040D496 . 33C9 XOR ECX,ECX
0040D498 . 8A48 25 MOV CL,BYTE PTR DS:[EAX+25]
0040D49B . 894D F8 MOV DWORD PTR SS:[EBP-8],ECX
0040D49E . 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10]
0040D4A1 . 8A40 24 MOV AL,BYTE PTR DS:[EAX+24]
0040D4A4 . 8845 FC MOV BYTE PTR SS:[EBP-4],AL
0040D4A7 . C745 F4 000000>MOV DWORD PTR SS:[EBP-C],0
0040D4AE . 33C0 XOR EAX,EAX
0040D4B0 . 8A45 FC MOV AL,BYTE PTR SS:[EBP-4]
0040D4B3 . 83F8 1F CMP EAX,1F
0040D4B6 . 0F8E 4E000000 JLE 0040D50A
0040D4BC . 33C0 XOR EAX,EAX
0040D4BE . 8A45 FC MOV AL,BYTE PTR SS:[EBP-4]
0040D4C1 . 83F8 28 CMP EAX,28
0040D4C4 . 0F83 40000000 JNB 0040D50A
0040D4CA . 33C0 XOR EAX,EAX
0040D4CC . 8A45 FC MOV AL,BYTE PTR SS:[EBP-4]
0040D4CF . 83F8 20 CMP EAX,20
0040D4D2 . 0F84 0E000000 JE 0040D4E6
0040D4D8 . 33C0 XOR EAX,EAX
0040D4DA . 8A45 FC MOV AL,BYTE PTR SS:[EBP-4]
0040D4DD . 83F8 21 CMP EAX,21
0040D4E0 . 0F85 09000000 JNZ 0040D4EF
0040D4E6 > C645 FC 20 MOV BYTE PTR SS:[EBP-4],20
0040D4EA . E9 1B000000 JMP 0040D50A
0040D4EF > 33C0 XOR EAX,EAX
0040D4F1 . 8A45 FC MOV AL,BYTE PTR SS:[EBP-4]
0040D4F4 . 83F8 26 CMP EAX,26
0040D4F7 . 0F85 09000000 JNZ 0040D506
0040D4FD . C645 FC 12 MOV BYTE PTR SS:[EBP-4],12
0040D501 . E9 04000000 JMP 0040D50A
0040D506 > C645 FC 1E MOV BYTE PTR SS:[EBP-4],1E
0040D50A > 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10]
0040D50D . 33C9 XOR ECX,ECX
0040D50F . 8A48 24 MOV CL,BYTE PTR DS:[EAX+24]
0040D512 . 51 PUSH ECX
0040D513 . E8 2D010000 CALL 0040D645 ——根据大兵种得出余数
0040D518 . 83C4 04 ADD ESP,4
0040D51B . 8945 EC MOV DWORD PTR SS:[EBP-14],EAX
0040D51E . E9 E2000000 JMP 0040D605
0040D605 > 837D EC 00 CMP DWORD PTR SS:[EBP-14],0
0040D609 .^0F84 A8FFFFFF JE 0040D5B7
0040D60F . 837D EC 01 CMP DWORD PTR SS:[EBP-14],1
0040D613 .^0F84 54FFFFFF JE 0040D56D
0040D619 . 837D EC 02 CMP DWORD PTR SS:[EBP-14],2
0040D61D .^0F84 00FFFFFF JE 0040D523
0040D623 . E9 00000000 JMP 0040D628
0040D523 > 33C0 XOR EAX,EAX
0040D525 . 8A45 FC MOV AL,BYTE PTR SS:[EBP-4]
0040D528 . 33C9 XOR ECX,ECX
0040D52A . 8A4D 08 MOV CL,BYTE PTR SS:[EBP+8]
0040D52D . 8BD1 MOV EDX,ECX
0040D52F . C1E1 05 SHL ECX,5
0040D532 . 03CA ADD ECX,EDX
0040D534 . 33D2 XOR EDX,EDX
0040D536 . 8A9408 6EEB440>MOV DL,BYTE PTR DS:[EAX+ECX+44EB6E]
0040D53D . 85D2 TEST EDX,EDX
0040D53F . 0F8E 24000000 JLE 0040D569
0040D545 . 33C0 XOR EAX,EAX
0040D547 . 8A45 FC MOV AL,BYTE PTR SS:[EBP-4]
0040D54A . 33C9 XOR ECX,ECX
0040D54C . 8A4D 08 MOV CL,BYTE PTR SS:[EBP+8]
0040D54F . 8BD1 MOV EDX,ECX
0040D551 . C1E1 05 SHL ECX,5
0040D554 . 03CA ADD ECX,EDX
0040D556 . 33D2 XOR EDX,EDX
0040D558 . 8A9408 6EEB440>MOV DL,BYTE PTR DS:[EAX+ECX+44EB6E]
0040D55F . 8D4452 03 LEA EAX,DWORD PTR DS:[EDX+EDX*2+3]
0040D563 . 8D0480 LEA EAX,DWORD PTR DS:[EAX+EAX*4]
0040D566 . 0145 F4 ADD DWORD PTR SS:[EBP-C],EAX
0040D569 > 836D F8 0F SUB DWORD PTR SS:[EBP-8],0F
0040D56D > 33C0 XOR EAX,EAX
0040D56F . 8A45 FC MOV AL,BYTE PTR SS:[EBP-4]
0040D572 . 33C9 XOR ECX,ECX
0040D574 . 8A4D 08 MOV CL,BYTE PTR SS:[EBP+8]
0040D577 . 8BD1 MOV EDX,ECX
0040D579 . C1E1 05 SHL ECX,5
0040D57C . 03CA ADD ECX,EDX
0040D57E . 33D2 XOR EDX,EDX
0040D580 . 8A9408 6FEB440>MOV DL,BYTE PTR DS:[EAX+ECX+44EB6F]
0040D587 . 85D2 TEST EDX,EDX
0040D589 . 0F8E 24000000 JLE 0040D5B3
0040D58F . 33C0 XOR EAX,EAX
0040D591 . 8A45 FC MOV AL,BYTE PTR SS:[EBP-4]
0040D594 . 33C9 XOR ECX,ECX
0040D596 . 8A4D 08 MOV CL,BYTE PTR SS:[EBP+8]
0040D599 . 8BD1 MOV EDX,ECX
0040D59B . C1E1 05 SHL ECX,5
0040D59E . 03CA ADD ECX,EDX
0040D5A0 . 33D2 XOR EDX,EDX
0040D5A2 . 8A9408 6FEB440>MOV DL,BYTE PTR DS:[EAX+ECX+44EB6F]
0040D5A9 . 8D4452 03 LEA EAX,DWORD PTR DS:[EDX+EDX*2+3]
0040D5AD . 8D0480 LEA EAX,DWORD PTR DS:[EAX+EAX*4]
0040D5B0 . 0145 F4 ADD DWORD PTR SS:[EBP-C],EAX
0040D5B3 > 836D F8 0F SUB DWORD PTR SS:[EBP-8],0F
0040D5B7 > 33C0 XOR EAX,EAX
0040D5B9 . 8A45 FC MOV AL,BYTE PTR SS:[EBP-4]
0040D5BC . 33C9 XOR ECX,ECX
0040D5BE . 8A4D 08 MOV CL,BYTE PTR SS:[EBP+8]
0040D5C1 . 8BD1 MOV EDX,ECX
0040D5C3 . C1E1 05 SHL ECX,5
0040D5C6 . 03CA ADD ECX,EDX
0040D5C8 . 33D2 XOR EDX,EDX
0040D5CA . 8A9408 70EB440>MOV DL,BYTE PTR DS:[EAX+ECX+44EB70]
0040D5D1 . 85D2 TEST EDX,EDX
0040D5D3 . 0F8E 22000000 JLE 0040D5FB
0040D5D9 . 33C0 XOR EAX,EAX
0040D5DB . 8A45 08 MOV AL,BYTE PTR SS:[EBP+8]
0040D5DE . 8BC8 MOV ECX,EAX
0040D5E0 . C1E0 05 SHL EAX,5
0040D5E3 . 03C1 ADD EAX,ECX
0040D5E5 . 33C9 XOR ECX,ECX
0040D5E7 . 8A4D FC MOV CL,BYTE PTR SS:[EBP-4]
0040D5EA . 33D2 XOR EDX,EDX
0040D5EC . 8A9408 70EB440>MOV DL,BYTE PTR DS:[EAX+ECX+44EB70]
0040D5F3 . 42 INC EDX
0040D5F4 . 0FAF55 F8 IMUL EDX,DWORD PTR SS:[EBP-8]
0040D5F8 . 0155 F4 ADD DWORD PTR SS:[EBP-C],EDX
0040D5FB > E9 28000000 JMP 0040D628
0040D600 . E9 23000000 JMP 0040D628
0040D628 > 33C0 XOR EAX,EAX
0040D62A . 8A45 08 MOV AL,BYTE PTR SS:[EBP+8]
0040D62D . 83F8 03 CMP EAX,3
0040D630 . 0F84 00000000 JE 0040D636
0040D636 > 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C]
0040D639 . E9 00000000 JMP 0040D63E
0040D63E > 5F POP EDI
0040D63F . 5E POP ESI
0040D640 . 5B POP EBX
0040D641 . C9 LEAVE
0040D642 . C2 0400 RETN 4
[ 本帖最后由 godtype 于 2010-7-30 20:36 编辑 ]
|