📄 file.cod
字号:
00 00 cmp DWORD PTR _OutputFileptr, 0
0001f 75 04 jne SHORT $L719
; 73 : return 0;
00021 33 c0 xor eax, eax
00023 eb 05 jmp SHORT $L720
$L719:
; 74 : else
; 75 : return 1;
00025 b8 01 00 00 00 mov eax, 1
$L720:
; 76 : }
0002a 5f pop edi
0002b 5e pop esi
0002c 5b pop ebx
0002d 8b e5 mov esp, ebp
0002f 5d pop ebp
00030 c3 ret 0
_IsAnnalFileOpened ENDP
_TEXT ENDS
PUBLIC _FlushFileBuffer
PUBLIC ??_C@_09NDFD@SUCCEED?$CB?6?$AA@ ; `string'
; COMDAT ??_C@_09NDFD@SUCCEED?$CB?6?$AA@
; File C:\Documents and Settings\Administrator\桌面\07412 4 LIFT\File.c
CONST SEGMENT
??_C@_09NDFD@SUCCEED?$CB?6?$AA@ DB 'SUCCEED!', 0aH, 00H ; `string'
CONST ENDS
; COMDAT _FlushFileBuffer
_TEXT SEGMENT
_FlushFileBuffer PROC NEAR ; COMDAT
; 80 : {
00000 55 push ebp
00001 8b ec mov ebp, esp
00003 83 ec 40 sub esp, 64 ; 00000040H
00006 53 push ebx
00007 56 push esi
00008 57 push edi
00009 8d 7d c0 lea edi, DWORD PTR [ebp-64]
0000c b9 10 00 00 00 mov ecx, 16 ; 00000010H
00011 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
00016 f3 ab rep stosd
; 81 : if(!fflush(InputFileptr))
00018 a1 00 00 00 00 mov eax, DWORD PTR _InputFileptr
0001d 50 push eax
0001e e8 00 00 00 00 call _fflush
00023 83 c4 04 add esp, 4
00026 85 c0 test eax, eax
00028 75 0f jne SHORT $L724
; 82 : printf("SUCCEED!\n");
0002a 68 00 00 00 00 push OFFSET FLAT:??_C@_09NDFD@SUCCEED?$CB?6?$AA@ ; `string'
0002f e8 00 00 00 00 call _printf
00034 83 c4 04 add esp, 4
; 83 : else
00037 eb 0d jmp SHORT $L726
$L724:
; 84 : printf("ERROR\n");
00039 68 00 00 00 00 push OFFSET FLAT:??_C@_06OMND@ERROR?6?$AA@ ; `string'
0003e e8 00 00 00 00 call _printf
00043 83 c4 04 add esp, 4
$L726:
; 85 : }
00046 5f pop edi
00047 5e pop esi
00048 5b pop ebx
00049 83 c4 40 add esp, 64 ; 00000040H
0004c 3b ec cmp ebp, esp
0004e e8 00 00 00 00 call __chkesp
00053 8b e5 mov esp, ebp
00055 5d pop ebp
00056 c3 ret 0
_FlushFileBuffer ENDP
_TEXT ENDS
PUBLIC _Output
PUBLIC ??_C@_08NGMJ@?$CF10d?$CF8d?6?$AA@ ; `string'
PUBLIC ??_C@_09BIKK@?$CFd?5?5?5?5?$CFd?6?$AA@ ; `string'
EXTRN _free:NEAR
EXTRN _fprintf:NEAR
; COMDAT ??_C@_08NGMJ@?$CF10d?$CF8d?6?$AA@
; File C:\Documents and Settings\Administrator\桌面\07412 4 LIFT\File.c
CONST SEGMENT
??_C@_08NGMJ@?$CF10d?$CF8d?6?$AA@ DB '%10d%8d', 0aH, 00H ; `string'
CONST ENDS
; COMDAT ??_C@_09BIKK@?$CFd?5?5?5?5?$CFd?6?$AA@
CONST SEGMENT
??_C@_09BIKK@?$CFd?5?5?5?5?$CFd?6?$AA@ DB '%d %d', 0aH, 00H ; `string'
CONST ENDS
; COMDAT _Output
_TEXT SEGMENT
_startPtr$ = 8
_Output PROC NEAR ; COMDAT
; 90 : {
00000 55 push ebp
00001 8b ec mov ebp, esp
00003 83 ec 40 sub esp, 64 ; 00000040H
00006 53 push ebx
00007 56 push esi
00008 57 push edi
00009 8d 7d c0 lea edi, DWORD PTR [ebp-64]
0000c b9 10 00 00 00 mov ecx, 16 ; 00000010H
00011 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
00016 f3 ab rep stosd
; 91 : if((*startPtr)!=NULL){
00018 8b 45 08 mov eax, DWORD PTR _startPtr$[ebp]
0001b 83 38 00 cmp DWORD PTR [eax], 0
0001e 74 60 je SHORT $L731
; 92 : printf("%10d%8d\n",(*startPtr)->PauseTime,(*startPtr)->PauseFloor);
00020 8b 4d 08 mov ecx, DWORD PTR _startPtr$[ebp]
00023 8b 11 mov edx, DWORD PTR [ecx]
00025 8b 42 04 mov eax, DWORD PTR [edx+4]
00028 50 push eax
00029 8b 4d 08 mov ecx, DWORD PTR _startPtr$[ebp]
0002c 8b 11 mov edx, DWORD PTR [ecx]
0002e 8b 02 mov eax, DWORD PTR [edx]
00030 50 push eax
00031 68 00 00 00 00 push OFFSET FLAT:??_C@_08NGMJ@?$CF10d?$CF8d?6?$AA@ ; `string'
00036 e8 00 00 00 00 call _printf
0003b 83 c4 0c add esp, 12 ; 0000000cH
; 93 : fprintf(RecordFileptr,"%d %d\n",(*startPtr)->PauseTime,(*startPtr)->PauseFloor);
0003e 8b 4d 08 mov ecx, DWORD PTR _startPtr$[ebp]
00041 8b 11 mov edx, DWORD PTR [ecx]
00043 8b 42 04 mov eax, DWORD PTR [edx+4]
00046 50 push eax
00047 8b 4d 08 mov ecx, DWORD PTR _startPtr$[ebp]
0004a 8b 11 mov edx, DWORD PTR [ecx]
0004c 8b 02 mov eax, DWORD PTR [edx]
0004e 50 push eax
0004f 68 00 00 00 00 push OFFSET FLAT:??_C@_09BIKK@?$CFd?5?5?5?5?$CFd?6?$AA@ ; `string'
00054 8b 0d 00 00 00
00 mov ecx, DWORD PTR _RecordFileptr
0005a 51 push ecx
0005b e8 00 00 00 00 call _fprintf
00060 83 c4 10 add esp, 16 ; 00000010H
; 94 : fflush(RecordFileptr);
00063 8b 15 00 00 00
00 mov edx, DWORD PTR _RecordFileptr
00069 52 push edx
0006a e8 00 00 00 00 call _fflush
0006f 83 c4 04 add esp, 4
; 95 : free(*startPtr);
00072 8b 45 08 mov eax, DWORD PTR _startPtr$[ebp]
00075 8b 08 mov ecx, DWORD PTR [eax]
00077 51 push ecx
00078 e8 00 00 00 00 call _free
0007d 83 c4 04 add esp, 4
$L731:
; 97 : *startPtr=NULL;
00080 8b 55 08 mov edx, DWORD PTR _startPtr$[ebp]
00083 c7 02 00 00 00
00 mov DWORD PTR [edx], 0
; 98 : }
00089 5f pop edi
0008a 5e pop esi
0008b 5b pop ebx
0008c 83 c4 40 add esp, 64 ; 00000040H
0008f 3b ec cmp ebp, esp
00091 e8 00 00 00 00 call __chkesp
00096 8b e5 mov esp, ebp
00098 5d pop ebp
00099 c3 ret 0
_Output ENDP
_TEXT ENDS
PUBLIC _IsFileOpened
PUBLIC ??_C@_0M@IAF@D?3?2lift?4txt?$AA@ ; `string'
; COMDAT ??_C@_0M@IAF@D?3?2lift?4txt?$AA@
; File C:\Documents and Settings\Administrator\桌面\07412 4 LIFT\File.c
CONST SEGMENT
??_C@_0M@IAF@D?3?2lift?4txt?$AA@ DB 'D:\lift.txt', 00H ; `string'
CONST ENDS
; COMDAT _IsFileOpened
_TEXT SEGMENT
_IsFileOpened PROC NEAR ; COMDAT
; 104 : {
00000 55 push ebp
00001 8b ec mov ebp, esp
00003 83 ec 40 sub esp, 64 ; 00000040H
00006 53 push ebx
00007 56 push esi
00008 57 push edi
00009 8d 7d c0 lea edi, DWORD PTR [ebp-64]
0000c b9 10 00 00 00 mov ecx, 16 ; 00000010H
00011 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
00016 f3 ab rep stosd
; 105 : if((InputFileptr=fopen("D:\\lift.txt","w"))==NULL)
00018 68 00 00 00 00 push OFFSET FLAT:??_C@_01LLF@w?$AA@ ; `string'
0001d 68 00 00 00 00 push OFFSET FLAT:??_C@_0M@IAF@D?3?2lift?4txt?$AA@ ; `string'
00022 e8 00 00 00 00 call _fopen
00027 83 c4 08 add esp, 8
0002a a3 00 00 00 00 mov DWORD PTR _InputFileptr, eax
0002f 83 3d 00 00 00
00 00 cmp DWORD PTR _InputFileptr, 0
00036 75 04 jne SHORT $L738
; 106 : return 0;
00038 33 c0 xor eax, eax
0003a eb 05 jmp SHORT $L740
$L738:
; 107 : else
; 108 : return 1;
0003c b8 01 00 00 00 mov eax, 1
$L740:
; 109 : }
00041 5f pop edi
00042 5e pop esi
00043 5b pop ebx
00044 83 c4 40 add esp, 64 ; 00000040H
00047 3b ec cmp ebp, esp
00049 e8 00 00 00 00 call __chkesp
0004e 8b e5 mov esp, ebp
00050 5d pop ebp
00051 c3 ret 0
_IsFileOpened ENDP
_TEXT ENDS
PUBLIC _ReadFromFile
PUBLIC ??_C@_0BH@HJKC@?G?k?J?d?H?k?R?$KK?$LE?r?$LP?$KK?$LF?D?N?D?$LM?$PO?C?$PL?$KD?$LK?$AA@ ; `string'
PUBLIC ??_C@_01LHO@r?$AA@ ; `string'
PUBLIC ??_C@_0O@LFNL@?N?D?$LM?$PO?$LC?$LL?$LE?f?T?Z?$KD?$KB?6?$AA@ ; `string'
PUBLIC ??_C@_05JMIL@?$CFd?5?$CFc?$AA@ ; `string'
EXTRN _fscanf:NEAR
EXTRN _gets:NEAR
; COMDAT ??_C@_0BH@HJKC@?G?k?J?d?H?k?R?$KK?$LE?r?$LP?$KK?$LF?D?N?D?$LM?$PO?C?$PL?$KD?$LK?$AA@
; File C:\Documents and Settings\Administrator\桌面\07412 4 LIFT\File.c
CONST SEGMENT
??_C@_0BH@HJKC@?G?k?J?d?H?k?R?$KK?$LE?r?$LP?$KK?$LF?D?N?D?$LM?$PO?C?$PL?$KD?$LK?$AA@ DB 0c7H
DB 0ebH, 0caH, 0e4H, 0c8H, 0ebH, 0d2H, 0aaH, 0b4H, 0f2H, 0bfH, 0aaH
DB 0b5H, 0c4H, 0ceH, 0c4H, 0bcH, 0feH, 0c3H, 0fbH, 0a3H, 0baH, 00H ; `string'
CONST ENDS
; COMDAT ??_C@_01LHO@r?$AA@
CONST SEGMENT
??_C@_01LHO@r?$AA@ DB 'r', 00H ; `string'
CONST ENDS
; COMDAT ??_C@_0O@LFNL@?N?D?$LM?$PO?$LC?$LL?$LE?f?T?Z?$KD?$KB?6?$AA@
CONST SEGMENT
??_C@_0O@LFNL@?N?D?$LM?$PO?$LC?$LL?$LE?f?T?Z?$KD?$KB?6?$AA@ DB 0ceH, 0c4H
DB 0bcH, 0feH, 0b2H, 0bbH, 0b4H, 0e6H, 0d4H, 0daH, 0a3H, 0a1H, 0aH
DB 00H ; `string'
CONST ENDS
; COMDAT ??_C@_05JMIL@?$CFd?5?$CFc?$AA@
CONST SEGMENT
??_C@_05JMIL@?$CFd?5?$CFc?$AA@ DB '%d %c', 00H ; `string'
CONST ENDS
; COMDAT _ReadFromFile
_TEXT SEGMENT
_fptr$ = -4
_ch$ = -32
_i$ = -36
_ReadFromFile PROC NEAR ; COMDAT
; 112 : {
00000 55 push ebp
00001 8b ec mov ebp, esp
00003 83 ec 64 sub esp, 100 ; 00000064H
00006 53 push ebx
00007 56 push esi
00008 57 push edi
00009 8d 7d 9c lea edi, DWORD PTR [ebp-100]
0000c b9 19 00 00 00 mov ecx, 25 ; 00000019H
00011 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
00016 f3 ab rep stosd
; 113 : FILE *fptr;
; 114 : int time;
; 115 : char command;
; 116 : char ch[20];
; 117 : int i = 0;
00018 c7 45 dc 00 00
00 00 mov DWORD PTR _i$[ebp], 0
; 118 :
; 119 : if (OutputFileptr == NULL) {
0001f 83 3d 00 00 00
00 00 cmp DWORD PTR _OutputFileptr, 0
00026 75 44 jne SHORT $L748
; 120 : printf("请输入要打开的文件名:");
00028 68 00 00 00 00 push OFFSET FLAT:??_C@_0BH@HJKC@?G?k?J?d?H?k?R?$KK?$LE?r?$LP?$KK?$LF?D?N?D?$LM?$PO?C?$PL?$KD?$LK?$AA@ ; `string'
0002d e8 00 00 00 00 call _printf
00032 83 c4 04 add esp, 4
; 121 : gets(ch);
00035 8d 45 e0 lea eax, DWORD PTR _ch$[ebp]
00038 50 push eax
00039 e8 00 00 00 00 call _gets
0003e 83 c4 04 add esp, 4
; 122 : fptr = fopen(ch, "r");
00041 68 00 00 00 00 push OFFSET FLAT:??_C@_01LHO@r?$AA@ ; `string'
00046 8d 4d e0 lea ecx, DWORD PTR _ch$[ebp]
00049 51 push ecx
0004a e8 00 00 00 00 call _fopen
0004f 83 c4 08 add esp, 8
00052 89 45 fc mov DWORD PTR _fptr$[ebp], eax
; 123 : if (!fptr) {
00055 83 7d fc 00 cmp DWORD PTR _fptr$[ebp], 0
00059 75 0f jne SHORT $L751
; 124 : printf("文件不存在!\n");
0005b 68 00 00 00 00 push OFFSET FLAT:??_C@_0O@LFNL@?N?D?$LM?$PO?$LC?$LL?$LE?f?T?Z?$KD?$KB?6?$AA@ ; `string'
00060 e8 00 00 00 00 call _printf
00065 83 c4 04 add esp, 4
; 125 : return;
00068 eb 71 jmp SHORT $L741
$L751:
; 128 : else {
0006a eb 09 jmp SHORT $L753
$L748:
; 129 : fptr = OutputFileptr;
0006c 8b 15 00 00 00
00 mov edx, DWORD PTR _OutputFileptr
00072 89 55 fc mov DWORD PTR _fptr$[ebp], edx
$L753:
; 131 :
; 132 : fscanf(fptr, "%d %c", &cmd[0].time, &cmd[0].command);
00075 68 04 00 00 00 push OFFSET FLAT:_cmd+4
0007a 68 00 00 00 00 push OFFSET FLAT:_cmd
0007f 68 00 00 00 00 push OFFSET FLAT:??_C@_05JMIL@?$CFd?5?$CFc?$AA@ ; `string'
00084 8b 45 fc mov eax, DWORD PTR _fptr$[ebp]
00087 50 push eax
00088 e8 00 00 00 00 call _fscanf
0008d 83 c4 10 add esp, 16 ; 00000010H
$L756:
; 133 : while (!feof(fptr)) {
00090 8b 4d fc mov ecx, DWORD PTR _fptr$[ebp]
00093 8b 51 0c mov edx, DWORD PTR [ecx+12]
00096 83 e2 10 and edx, 16 ; 00000010H
00099 85 d2 test edx, edx
0009b 75 32 jne SHORT $L757
; 134 : i++;
0009d 8b 45 dc mov eax, DWORD PTR _i$[ebp]
000a0 83 c0 01 add eax, 1
000a3 89 45 dc mov DWORD PTR _i$[ebp], eax
; 135 : fscanf(fptr, "%d %c", &cmd[i].time, &cmd[i].command);
000a6 8b 4d dc mov ecx, DWORD PTR _i$[ebp]
000a9 8d 14 cd 04 00
00 00 lea edx, DWORD PTR _cmd[ecx*8+4]
000b0 52 push edx
000b1 8b 45 dc mov eax, DWORD PTR _i$[ebp]
000b4 8d 0c c5 00 00
00 00 lea ecx, DWORD PTR _cmd[eax*8]
000bb 51 push ecx
000bc 68 00 00 00 00 push OFFSET FLAT:??_C@_05JMIL@?$CFd?5?$CFc?$AA@ ; `string'
000c1 8b 55 fc mov edx, DWORD PTR _fptr$[ebp]
000c4 52 push edx
000c5 e8 00 00 00 00 call _fscanf
000ca 83 c4 10 add esp, 16 ; 00000010H
; 136 : }
000cd eb c1 jmp SHORT $L756
$L757:
; 137 :
; 138 : fclose(fptr);
000cf 8b 45 fc mov eax, DWORD PTR _fptr$[ebp]
000d2 50 push eax
000d3 e8 00 00 00 00 call _fclose
000d8 83 c4 04 add esp, 4
$L741:
; 139 : }
000db 5f pop edi
000dc 5e pop esi
000dd 5b pop ebx
000de 83 c4 64 add esp, 100 ; 00000064H
000e1 3b ec cmp ebp, esp
000e3 e8 00 00 00 00 call __chkesp
000e8 8b e5 mov esp, ebp
000ea 5d pop ebp
000eb c3 ret 0
_ReadFromFile ENDP
_TEXT ENDS
PUBLIC _GetInput2
EXTRN _translatecalling:NEAR
; COMDAT _GetInput2
_TEXT SEGMENT
_curTime$ = 8
_GetInput2 PROC NEAR ; COMDAT
; 143 : {
00000 55 push ebp
00001 8b ec mov ebp, esp
00003 83 ec 40 sub esp, 64 ; 00000040H
00006 53 push ebx
00007 56 push esi
00008 57 push edi
00009 8d 7d c0 lea edi, DWORD PTR [ebp-64]
0000c b9 10 00 00 00 mov ecx, 16 ; 00000010H
00011 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
00016 f3 ab rep stosd
$L765:
; 144 : static int i = 0;
; 145 :
; 146 : while (cmd[i].time == curTime) {
00018 a1 00 00 00 00 mov eax, DWORD PTR _?i@?1??GetInput2@@9@9
0001d 8b 0c c5 00 00
00 00 mov ecx, DWORD PTR _cmd[eax*8]
00024 3b 4d 08 cmp ecx, DWORD PTR _curTime$[ebp]
00027 75 28 jne SHORT $L766
; 147 : translatecalling(cmd[i].command);
00029 8b 15 00 00 00
00 mov edx, DWORD PTR _?i@?1??GetInput2@@9@9
0002f 0f be 04 d5 04
00 00 00 movsx eax, BYTE PTR _cmd[edx*8+4]
00037 50 push eax
00038 e8 00 00 00 00 call _translatecalling
0003d 83 c4 04 add esp, 4
; 148 : i++;
00040 8b 0d 00 00 00
00 mov ecx, DWORD PTR _?i@?1??GetInput2@@9@9
00046 83 c1 01 add ecx, 1
00049 89 0d 00 00 00
00 mov DWORD PTR _?i@?1??GetInput2@@9@9, ecx
; 149 : }
0004f eb c7 jmp SHORT $L765
$L766:
; 150 : }
00051 5f pop edi
00052 5e pop esi
00053 5b pop ebx
00054 83 c4 40 add esp, 64 ; 00000040H
00057 3b ec cmp ebp, esp
00059 e8 00 00 00 00 call __chkesp
0005e 8b e5 mov esp, ebp
00060 5d pop ebp
00061 c3 ret 0
_GetInput2 ENDP
_TEXT ENDS
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -