| 6.2修正版的2个新功能代码
 1、整形变量格式化文字
 
 0044CF28  /$  55            PUSH EBP
 0044CF29  |.  8BEC          MOV EBP,ESP
 0044CF2B  |.  51            PUSH ECX
 0044CF2C  |.  6A 00         PUSH 0
 0044CF2E  |.  68 358E5000   PUSH 00508E35
 0044CF33  |.  83EC 1C       SUB ESP,1C
 0044CF36  |.  0FB641 01     MOVZX EAX,BYTE PTR DS:[ECX+1]
 0044CF3A  |.  2C 2B         SUB AL,2B
 0044CF3C  |.  3C 05         CMP AL,5
 0044CF3E  |.  73 5E         JNB SHORT 0044CF9E
 0044CF40  |.  8945 F0       MOV DWORD PTR SS:[EBP-10],EAX
 0044CF43  |.  8A41 02       MOV AL,BYTE PTR DS:[ECX+2]
 0044CF46  |.  3C 30         CMP AL,30
 0044CF48  |.  72 54         JB SHORT 0044CF9E
 0044CF4A  |.  3C 39         CMP AL,39
 0044CF4C  |.  77 50         JA SHORT 0044CF9E
 0044CF4E  |.  8B4D FC       MOV ECX,DWORD PTR SS:[EBP-4]
 0044CF51  |.  83C1 02       ADD ECX,2
 0044CF54  |.  51            PUSH ECX                                 ; /Arg1
 0044CF55  |.  E8 0A9FFDFF   CALL 00426E64                            ; \00426E64
 0044CF5A  |.  8945 EC       MOV DWORD PTR SS:[EBP-14],EAX
 0044CF5D  |.  8955 E8       MOV DWORD PTR SS:[EBP-18],EDX
 0044CF60  |.  8A45 F0       MOV AL,BYTE PTR SS:[EBP-10]
 0044CF63  |.  3C 04         CMP AL,4
 0044CF65  |.  75 1A                JNZ SHORT 0044CF81
 0044CF67  |.  833D 9C5F5000 00     CMP DWORD PTR DS:[505F9C],0       ;  找到一个"/"
 0044CF6E  |.  75 5A                JNZ SHORT 0044CFCA                ;如果是历史情报 跳转
 0044CF70  |.  8D45 D8       LEA EAX,DWORD PTR SS:[EBP-28]
 0044CF73  |.  50            PUSH EAX                                 ; /Arg2
 0044CF74  |.  FF75 EC       PUSH DWORD PTR SS:[EBP-14]               ; |Arg1
 0044CF77  |.  E8 5A090000   CALL 0044D8D6                            ; 其他情况直接显示出数字
 0044CF7C  |.  8D45 D8       LEA EAX,DWORD PTR SS:[EBP-28]
 0044CF7F  |.  EB 38         JMP SHORT 0044CFB9
 0044CF81  |>  3C 03         CMP AL,3
 0044CF83  |.  75 12         JNZ SHORT 0044CF97
 0044CF85  |.  FF75 EC       PUSH DWORD PTR SS:[EBP-14]               ; /Arg1
 0044CF88  |.  E8 5792FBFF   CALL 004061E4                            ; \004061E4
 0044CF8D  |.  E8 E3A7FBFF   CALL 00407775
 0044CF92  |.  EB 25         JMP SHORT 0044CFB9
 0044CF94  |>  FF45 F8       INC DWORD PTR SS:[EBP-8]
 0044CF97  |>  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
 0044CF9A  |.  3C 09         CMP AL,9
 0044CF9C  |.  72 02         JB SHORT 0044CFA0
 0044CF9E  |>  EB 2A         JMP SHORT 0044CFCA
 0044CFA0  |>  6BC0 0A       IMUL EAX,EAX,0A
 0044CFA3  |.  0345 F4       ADD EAX,DWORD PTR SS:[EBP-C]
 0044CFA6  |.  0FB708        MOVZX ECX,WORD PTR DS:[EAX]
 0044CFA9  |.  394D EC       CMP DWORD PTR SS:[EBP-14],ECX
 0044CFAC  |.^ 75 E6         JNZ SHORT 0044CF94
 0044CFAE  |.  8B4D F0       MOV ECX,DWORD PTR SS:[EBP-10]
 0044CFB1  |.  6BC9 05       IMUL ECX,ECX,5
 0044CFB4  |.  03C1          ADD EAX,ECX
 0044CFB6  |.  83C0 02       ADD EAX,2
 0044CFB9  |>  50            PUSH EAX                                  ; /Arg2
 0044CFBA  |.  FF75 08       PUSH DWORD PTR SS:[EBP+8]                 ; |Arg1
 0044CFBD  |.  E8 C7B2FBFF   CALL 00408289                             ; \00408289
 0044CFC2  |.  8B55 E8       MOV EDX,DWORD PTR SS:[EBP-18]
 0044CFC5  |.  83C2 02       ADD EDX,2
 0044CFC8  |.  EB 02         JMP SHORT 0044CFCC
 0044CFCA  |>  33C0          XOR EAX,EAX
 0044CFCC  |>  8BE5          MOV ESP,EBP
 0044CFCE  |.  5D            POP EBP
 0044CFCF  \.  C2 0400       RETN 4
 
 0044D8D6  /$  55            PUSH EBP                                 ;  把数字重新转为文本
 0044D8D7  |.  8BEC          MOV EBP,ESP
 0044D8D9  |.  8B45 08       MOV EAX,DWORD PTR SS:[EBP+8]
 0044D8DC  |.  6BC0 04       IMUL EAX,EAX,4
 0044D8DF  |.  05 00205000   ADD EAX,00502000
 0044D8E4  |.  FF30          PUSH DWORD PTR DS:[EAX]                  ; /<%d>
 0044D8E6  |.  68 C0B34800   PUSH 0048B3C0                            ; |Format = "%d"
 0044D8EB  |.  FF75 0C       PUSH DWORD PTR SS:[EBP+C]                ; |s
 0044D8EE  |.  FF15 C0624800 CALL DWORD PTR DS:[<&USER32.wsprintfA>]  ; \wsprintfA
 0044D8F4  |.  83C4 0C       ADD ESP,0C
 0044D8F7  |.  5D            POP EBP
 0044D8F8  \.  C2 0800       RETN 8
 
 004D2623    E8 D3B2F7FF     CALL  0044D8FB   '原函数 004D2796废弃
 
 0044D8FB  /.  55            PUSH EBP
 0044D8FC  |.  8BEC          MOV EBP,ESP
 0044D8FE  |.  51            PUSH ECX
 0044D8FF  |.  6A 00         PUSH 0
 0044D901  |.  51            PUSH ECX
 0044D902  |.  51            PUSH ECX
 0044D903  |.  81EC 00040000 SUB ESP,400
 0044D909  |.  8D85 F0FBFFFF LEA EAX,DWORD PTR SS:[EBP-410]
 0044D90F  |.  8945 F4              MOV DWORD PTR SS:[EBP-C],EAX
 0044D912  |.  803D 705F5000 00     CMP BYTE PTR DS:[505F70],0
 0044D919  |.  75 18                JNZ SHORT 0044D933
 0044D91B  |>  8B45 FC       /MOV EAX,DWORD PTR SS:[EBP-4]
 0044D91E  |.  8038 3A       |CMP BYTE PTR DS:[EAX],3A
 0044D921  |.  73 10         |JNB SHORT 0044D933
 0044D923  |.  8038 30       |CMP BYTE PTR DS:[EAX],30
 0044D926  |.  72 0B         |JB SHORT 0044D933
 0044D928  |.  FF45 FC       |INC DWORD PTR SS:[EBP-4]
 0044D92B  |.^ EB EE         \JMP SHORT 0044D91B
 0044D92D  |>  FF45 F4       /INC DWORD PTR SS:[EBP-C]
 0044D930  |.  FF45 FC       |INC DWORD PTR SS:[EBP-4]
 0044D933  |>  8B45 F8        MOV EAX,DWORD PTR SS:[EBP-8]
 0044D936  |.  3C 01         |CMP AL,1
 0044D938  |.  74 65         |JE SHORT 0044D99F
 0044D93A  |.  3C 02         |CMP AL,2
 0044D93C  |.  74 61         |JE SHORT 0044D99F
 0044D93E  |.  8B4D FC       |MOV ECX,DWORD PTR SS:[EBP-4]
 0044D941  |.  0FBE01        |MOVSX EAX,BYTE PTR DS:[ECX]
 0044D944  |.  3C 2A         |CMP AL,2A
 0044D946  |.  75 22         |JNZ SHORT 0044D96A
 0044D948  |.  8079 01 2F    |CMP BYTE PTR DS:[ECX+1],2F              ; 判断是不是“/ ”
 0044D94C  |.  75 1C         |JNZ SHORT 0044D96A
 0044D94E  |.  83C1 02       |ADD ECX,2
 0044D951  |.  51            |PUSH ECX                                ; /Arg1
 0044D952  |.  E8 0D95FDFF   |CALL 00426E64                  ; 把字符数字转成数字
 0044D957  |.  42            |INC EDX
 0044D958  |.  0155 FC       |ADD DWORD PTR SS:[EBP-4],EDX
 0044D95B  |.  FF75 F4       |PUSH DWORD PTR SS:[EBP-C]               ; /Arg2
 0044D95E  |.  50            |PUSH EAX                                ; |Arg1
 0044D95F  |.  E8 72FFFFFF   |CALL 0044D8D6                  ; \0044D8D6
 0044D964  |.  48            |DEC EAX
 0044D965  |.  0145 F4       |ADD DWORD PTR SS:[EBP-C],EAX
 0044D968  |.^ EB C3         |JMP SHORT 0044D92D
 0044D96A  |>  8B55 F4       |MOV EDX,DWORD PTR SS:[EBP-C]
 0044D96D  |.  8802          |MOV BYTE PTR DS:[EDX],AL
 0044D96F  |.  85C0          |TEST EAX,EAX
 0044D971  |.  75 06         |JNZ SHORT 0044D979
 0044D973  |.  C645 F8 02    |MOV BYTE PTR SS:[EBP-8],2
 0044D977  |.^ EB B4         |JMP SHORT 0044D92D
 0044D979  |>  83F8 26       |CMP EAX,26
 0044D97C  |.  74 0A         |JE SHORT 0044D988
 0044D97E  |.  83F8 0A       |CMP EAX,0A
 0044D981  |.^ 75 AA         |JNZ SHORT 0044D92D
 0044D983  |.  8845 F0       |MOV BYTE PTR SS:[EBP-10],AL
 0044D986  |.  EB 0B         |JMP SHORT 0044D993
 0044D988  |>  FF45 FC       |INC DWORD PTR SS:[EBP-4]
 0044D98B  |.  8B55 FC       |MOV EDX,DWORD PTR SS:[EBP-4]
 0044D98E  |.  8A02          |MOV AL,BYTE PTR DS:[EDX]
 0044D990  |.  8845 F0       |MOV BYTE PTR SS:[EBP-10],AL
 0044D993  |>  C645 F8 01    |MOV BYTE PTR SS:[EBP-8],1
 0044D997  |.  8B45 F4       |MOV EAX,DWORD PTR SS:[EBP-C]
 0044D99A  |.  C600 00       |MOV BYTE PTR DS:[EAX],0
 0044D99D  |.^ EB 8E         \JMP SHORT 0044D92D
 0044D99F  |>  8A75 F8       MOV DH,BYTE PTR SS:[EBP-8]
 0044D9A2  |.  8A55 F0       MOV DL,BYTE PTR SS:[EBP-10]
 0044D9A5  |.  8D8D F0FBFFFF LEA ECX,DWORD PTR SS:[EBP-410]
 0044D9AB  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
 0044D9AE  |.  8BE5          MOV ESP,EBP
 0044D9B0  |.  5D            POP EBP
 0044D9B1  \.  C3            RETN
 
 2 每回合开始时自动存档
 
 0044E199   .  837D 08 00    CMP DWORD PTR SS:[EBP+8],0
 0044E19D   .  75 08         JNZ SHORT 0044E1A7
 0044E19F   .  8B4D C8       MOV ECX,DWORD PTR SS:[EBP-38]
 0044E1A2   .  E8 0E49FCFF   CALL 00412AB5                   ; 这里是回合开始时的自动存档
 0044E1A7   >  837D F4 00    CMP DWORD PTR SS:[EBP-C],0
 0044E1AB   .  74 34         JE SHORT 0044E1E1
 0044E1AD   .  6A 14         PUSH 14
 0044E1AF   .  E8 3149FCFF   CALL 00412AE5                   ; 这里是回合结束时的自动存档
 0044E1B4   .  90            NOP
 0044E1B5   .  90            NOP
 0044E1B6   .  90            NOP
 0044E1B7   .  90            NOP
 0044E1B8   .  90            NOP
 0044E1B9   .  90            NOP
 0044E1BA   .  90            NOP
 0044E1BB   .  90            NOP
 0044E1BC   .  90            NOP
 0044E1BD   .  90            NOP
 0044E1BE   .  90            NOP
 0044E1BF   .  90            NOP
 0044E1C0   .  90            NOP
 0044E1C1   .  90            NOP
 0044E1C2   .  90            NOP
 0044E1C3   .  90            NOP
 0044E1C4   .  90            NOP
 0044E1C5   .  90            NOP
 0044E1C6   .  90            NOP
 0044E1C7   .  90            NOP
 0044E1C8   .  90            NOP
 0044E1C9   .  90            NOP
 0044E1CA   .  90            NOP
 0044E1CB   .  90            NOP
 0044E1CC   .  90            NOP
 0044E1CD   .  90            NOP
 0044E1CE   .  90            NOP
 0044E1CF   .  90            NOP
 0044E1D0   .  90            NOP
 0044E1D1   .  90            NOP
 0044E1D2   .  90            NOP
 0044E1D3   .  90            NOP
 0044E1D4   .  90            NOP
 0044E1D5   .  90            NOP
 0044E1D6   .  90            NOP
 0044E1D7   .  90            NOP
 0044E1D8   .  90            NOP
 0044E1D9   .  90            NOP
 0044E1DA   .  90            NOP
 0044E1DB   .  90            NOP
 
 00412AB5  /$  55                      PUSH EBP
 00412AB6  |.  8BEC                    MOV EBP,ESP
 00412AB8  |.  803D 350E5000 00        CMP BYTE PTR DS:[500E35],0               ;  这个是a键开关
 00412ABF  |.  74 22                   JE SHORT 00412AE3                                    ;  这句nop掉则永久开启
 00412AC1  |.  B8 520F5000             MOV EAX,00500F52
 00412AC6  |.  50                      PUSH EAX
 00412AC7  |.  FF30                    PUSH DWORD PTR DS:[EAX]
 00412AC9  |.  C600 0A                 MOV BYTE PTR DS:[EAX],0A
 00412ACC  |.  0FB641 02               MOVZX EAX,BYTE PTR DS:[ECX+2]
 00412AD0  |.  33D2                    XOR EDX,EDX
 00412AD2  |.  B9 14000000             MOV ECX,14
 00412AD7  |.  F7F1                    DIV ECX
 00412AD9  |.  52                      PUSH EDX                                 ; /Arg1
 00412ADA  |.  E8 06000000             CALL 00412AE5
 00412ADF  |.  59                      POP ECX
 00412AE0  |.  58                      POP EAX
 00412AE1  |.  8808                    MOV BYTE PTR DS:[EAX],CL
 00412AE3  |>  5D                      POP EBP
 00412AE4  \.  C3                      RETN
 
 00412AE5  /$  55                      PUSH EBP
 00412AE6  |.  8BEC                    MOV EBP,ESP
 00412AE8  |.  833D FC0F5000 00        CMP DWORD PTR DS:[500FFC],0
 00412AEF  |.  74 3B                   JE SHORT   00412B2C
 00412AF1  |.  837D 08 14              CMP DWORD PTR SS:[EBP+8],14
 00412AF5  |.  75 09                   JNZ SHORT  00412B00
 00412AF7  |.  803D F90D5000 00        CMP BYTE PTR DS:[500DF9],0
 00412AFE  |.  74 2C                   JE SHORT   00412B2C
 00412B00  |>  66:C705 99524000 EB4A   MOV WORD PTR DS:[405299],4AEB
 00412B09  |.  66:C705 F7524000 EB12   MOV WORD PTR DS:[4052F7],12EB
 00412B12  |.  FF75 08                 PUSH DWORD PTR SS:[EBP+8]                ; /Arg1
 00412B15  |.  E8 5127FFFF             CALL   0040526B                   ;
 00412B1A  |.  66:C705 99524000 8B4D   MOV WORD PTR DS:[405299],4D8B
 00412B23  |.  66:C705 F7524000 6A01   MOV WORD PTR DS:[4052F7],16A
 00412B2C  |>  5D                      POP EBP
 00412B2D  \.  C2 0400                 RETN 4
 
 00405BB2  /$  55            PUSH EBP                                 ;存档翻页处理
 00405BB3  |.  8BEC          MOV EBP,ESP
 00405BB5  |.  B8 520F5000   MOV EAX,  00500F52
 00405BBA  |.  837D 0C 03    CMP DWORD PTR SS:[EBP+C],3
 00405BBE  |.  75 02         JNZ SHORT 00405BC2
 00405BC0  |.  FE08          DEC BYTE PTR DS:[EAX]
 00405BC2  |>  837D 0C 04    CMP DWORD PTR SS:[EBP+C],4
 00405BC6  |.  75 02         JNZ SHORT 00405BCA
 00405BC8  |.  FE00          INC BYTE PTR DS:[EAX]
 00405BCA  |>  8038 0B       CMP BYTE PTR DS:[EAX],0B
 00405BCD  |.  75 05         JNZ SHORT 00405BD4
 00405BCF  |.  C600 00       MOV BYTE PTR DS:[EAX],0
 00405BD2  |.  EB 08         JMP SHORT 00405BDC
 00405BD4  |>  8038 FF       CMP BYTE PTR DS:[EAX],0FF
 00405BD7  |.  75 03         JNZ SHORT 00405BDC
 00405BD9  |.  C600 0A       MOV BYTE PTR DS:[EAX],0A
 00405BDC  |>  83C1 0C       ADD ECX,0C
 00405BDF  |.  6A 01         PUSH 1                                   ; /Arg1 = 00000001
 00405BE1  |.  E8 C43D0000   CALL 004099AA                            ; \004099AA
 00405BE6  |.  5D            POP EBP
 00405BE7  \.  C3            RETN
 
 0041C485  |.  8038 FF       CMP BYTE PTR DS:[EAX],0FF                ;如果把这个0FF改为0A,则自动存档页
 不能手动存档
 0041C498  |.  8038 FF       CMP BYTE PTR DS:[EAX],0FF                ;如果把这个0FF改为0A,则自动存档页
 不能手动存档
 
 这些代码均来自于6.2修正版,如果要移植于其他版本,不能保证可以正常运行,请自行排查错误。
 
 [ 本帖最后由 star175 于 2021-5-31 16:41 编辑 ]
 |