Rev 908 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 908 | Rev 1066 | ||
---|---|---|---|
1 | DWORD equ dword |
1 | DWORD equ dword |
2 | WORD equ word |
2 | WORD equ word |
3 | BYTE equ byte |
3 | BYTE equ byte |
4 | 4 | ||
5 | PTR equ |
5 | PTR equ |
6 | 6 | ||
- | 7 | align 4 |
|
- | 8 | ||
- | 9 | _dump: |
|
- | 10 | ||
- | 11 | mov ecx, DWORD PTR [esp+4] |
|
- | 12 | @@: |
|
- | 13 | mov edx, 0x3FD |
|
- | 14 | in al, dx |
|
- | 15 | test al, 96 |
|
- | 16 | je @B |
|
- | 17 | ||
- | 18 | mov dl, -8 |
|
- | 19 | mov eax, ecx |
|
- | 20 | out dx, al |
|
- | 21 | ret |
|
- | 22 | ||
- | 23 | ||
- | 24 | align 4 |
|
7 | _putc: |
25 | _putc: |
8 | mov ecx, DWORD PTR [esp+4] |
26 | mov ecx, DWORD PTR [esp+4] |
9 | .L13: |
27 | .L13: |
10 | mov edx, 0x3FD |
28 | mov edx, 0x3FD |
11 | in al, dx |
29 | in al, dx |
12 | test al, 96 |
30 | test al, 96 |
13 | je .L13 |
31 | je .L13 |
14 | mov dl, -8 |
32 | mov dl, -8 |
15 | mov eax, ecx |
33 | mov eax, ecx |
16 | out dx, al |
34 | out dx, al |
17 | cmp ecx, 10 |
35 | cmp ecx, 10 |
18 | jne .L7 |
36 | jne .L7 |
19 | mov cl, 13 |
37 | mov cl, 13 |
20 | jmp .L13 |
38 | jmp .L13 |
21 | .L7: |
39 | .L7: |
22 | ret |
40 | ret |
23 | 41 | ||
24 | _printf: |
42 | _printf: |
25 | push ebp |
43 | push ebp |
26 | push edi |
44 | push edi |
27 | push esi |
45 | push esi |
28 | push ebx |
46 | push ebx |
29 | sub esp, 40 |
47 | sub esp, 40 |
30 | lea eax, [esp+64] |
48 | lea eax, [esp+64] |
31 | mov DWORD PTR [esp+4], eax |
49 | mov DWORD PTR [esp+4], eax |
32 | .L50: |
50 | .L50: |
33 | mov ecx, DWORD PTR [esp+60] |
51 | mov ecx, DWORD PTR [esp+60] |
34 | movzx edx, BYTE PTR [ecx] |
52 | movzx edx, BYTE PTR [ecx] |
35 | test dl, dl |
53 | test dl, dl |
36 | je .L51 |
54 | je .L51 |
37 | .L17: |
55 | .L17: |
38 | lea eax, [ecx+1] |
56 | lea eax, [ecx+1] |
39 | cmp dl, 37 |
57 | cmp dl, 37 |
40 | mov DWORD PTR [esp+60], eax |
58 | mov DWORD PTR [esp+60], eax |
41 | je .L18 |
59 | je .L18 |
42 | movsx eax, dl |
60 | movsx eax, dl |
43 | mov DWORD PTR [esp], eax |
61 | mov DWORD PTR [esp], eax |
44 | call _putc |
62 | call _putc |
45 | mov ecx, DWORD PTR [esp+60] |
63 | mov ecx, DWORD PTR [esp+60] |
46 | movzx edx, BYTE PTR [ecx] |
64 | movzx edx, BYTE PTR [ecx] |
47 | test dl, dl |
65 | test dl, dl |
48 | jne .L17 |
66 | jne .L17 |
49 | .L51: |
67 | .L51: |
50 | add esp, 40 |
68 | add esp, 40 |
51 | pop ebx |
69 | pop ebx |
52 | pop esi |
70 | pop esi |
53 | pop edi |
71 | pop edi |
54 | pop ebp |
72 | pop ebp |
55 | ret |
73 | ret |
56 | .L18: |
74 | .L18: |
57 | movzx edx, BYTE PTR [ecx+1] |
75 | movzx edx, BYTE PTR [ecx+1] |
58 | lea eax, [ecx+2] |
76 | lea eax, [ecx+2] |
59 | mov DWORD PTR [esp+60], eax |
77 | mov DWORD PTR [esp+60], eax |
60 | cmp dl, 115 |
78 | cmp dl, 115 |
61 | je .L22 |
79 | je .L22 |
62 | jg .L23 |
80 | jg .L23 |
63 | cmp dl, 100 |
81 | cmp dl, 100 |
64 | je .L21 |
82 | je .L21 |
65 | .L20: |
83 | .L20: |
66 | mov edx, DWORD PTR [esp+4] |
84 | mov edx, DWORD PTR [esp+4] |
67 | mov eax, DWORD PTR [edx] |
85 | mov eax, DWORD PTR [edx] |
68 | add edx, 4 |
86 | add edx, 4 |
69 | mov DWORD PTR [esp+4], edx |
87 | mov DWORD PTR [esp+4], edx |
70 | mov DWORD PTR [esp], eax |
88 | mov DWORD PTR [esp], eax |
71 | call _putc |
89 | call _putc |
72 | jmp .L50 |
90 | jmp .L50 |
73 | .L23: |
91 | .L23: |
74 | cmp dl, 117 |
92 | cmp dl, 117 |
75 | je .L21 |
93 | je .L21 |
76 | cmp dl, 120 |
94 | cmp dl, 120 |
77 | jne .L20 |
95 | jne .L20 |
78 | .L21: |
96 | .L21: |
79 | mov ecx, DWORD PTR [esp+4] |
97 | mov ecx, DWORD PTR [esp+4] |
80 | mov eax, DWORD PTR [ecx] |
98 | mov eax, DWORD PTR [ecx] |
81 | add ecx, 4 |
99 | add ecx, 4 |
82 | cmp dl, 100 |
100 | cmp dl, 100 |
83 | mov DWORD PTR [esp+4], ecx |
101 | mov DWORD PTR [esp+4], ecx |
84 | mov ecx, eax |
102 | mov ecx, eax |
85 | je .L52 |
103 | je .L52 |
86 | .L24: |
104 | .L24: |
87 | cmp dl, 120 |
105 | cmp dl, 120 |
88 | je .L53 |
106 | je .L53 |
89 | lea ebp, [esp+20] |
107 | lea ebp, [esp+20] |
90 | mov esi, 10 |
108 | mov esi, 10 |
91 | mov ebx, ebp |
109 | mov ebx, ebp |
92 | mov edi, ebp |
110 | mov edi, ebp |
93 | .L43: |
111 | .L43: |
94 | xor edx, edx |
112 | xor edx, edx |
95 | mov eax, ecx |
113 | mov eax, ecx |
96 | div esi |
114 | div esi |
97 | cmp edx, 9 |
115 | cmp edx, 9 |
98 | lea eax, [edx+48] |
116 | lea eax, [edx+48] |
99 | jle .L31 |
117 | jle .L31 |
100 | lea eax, [edx+87] |
118 | lea eax, [edx+87] |
101 | .L31: |
119 | .L31: |
102 | mov BYTE PTR [edi], al |
120 | mov BYTE PTR [edi], al |
103 | xor edx, edx |
121 | xor edx, edx |
104 | mov eax, ecx |
122 | mov eax, ecx |
105 | div esi |
123 | div esi |
106 | add edi, 1 |
124 | add edi, 1 |
107 | test eax, eax |
125 | test eax, eax |
108 | mov ecx, eax |
126 | mov ecx, eax |
109 | jne .L43 |
127 | jne .L43 |
110 | lea eax, [edi-1] |
128 | lea eax, [edi-1] |
111 | cmp eax, ebx |
129 | cmp eax, ebx |
112 | mov BYTE PTR [edi], 0 |
130 | mov BYTE PTR [edi], 0 |
113 | jbe .L33 |
131 | jbe .L33 |
114 | lea ecx, [edi-2] |
132 | lea ecx, [edi-2] |
115 | .L35: |
133 | .L35: |
116 | movzx eax, BYTE PTR [ebx] |
134 | movzx eax, BYTE PTR [ebx] |
117 | movzx edx, BYTE PTR [ecx+1] |
135 | movzx edx, BYTE PTR [ecx+1] |
118 | mov BYTE PTR [ebx], dl |
136 | mov BYTE PTR [ebx], dl |
119 | add ebx, 1 |
137 | add ebx, 1 |
120 | mov BYTE PTR [ecx+1], al |
138 | mov BYTE PTR [ecx+1], al |
121 | mov eax, ecx |
139 | mov eax, ecx |
122 | sub ecx, 1 |
140 | sub ecx, 1 |
123 | cmp ebx, eax |
141 | cmp ebx, eax |
124 | jb .L35 |
142 | jb .L35 |
125 | .L33: |
143 | .L33: |
126 | mov edx, ebp |
144 | mov edx, ebp |
127 | .L36: |
145 | .L36: |
128 | movzx eax, BYTE PTR [edx] |
146 | movzx eax, BYTE PTR [edx] |
129 | test al, al |
147 | test al, al |
130 | je .L50 |
148 | je .L50 |
131 | mov ebx, edx |
149 | mov ebx, edx |
132 | .L39: |
150 | .L39: |
133 | movsx eax, al |
151 | movsx eax, al |
134 | mov DWORD PTR [esp], eax |
152 | mov DWORD PTR [esp], eax |
135 | call _putc |
153 | call _putc |
136 | movzx eax, BYTE PTR [ebx+1] |
154 | movzx eax, BYTE PTR [ebx+1] |
137 | add ebx, 1 |
155 | add ebx, 1 |
138 | test al, al |
156 | test al, al |
139 | jne .L39 |
157 | jne .L39 |
140 | jmp .L50 |
158 | jmp .L50 |
141 | .L22: |
159 | .L22: |
142 | mov eax, DWORD PTR [esp+4] |
160 | mov eax, DWORD PTR [esp+4] |
143 | mov edx, DWORD PTR [eax] |
161 | mov edx, DWORD PTR [eax] |
144 | add eax, 4 |
162 | add eax, 4 |
145 | mov DWORD PTR [esp+4], eax |
163 | mov DWORD PTR [esp+4], eax |
146 | test edx, edx |
164 | test edx, edx |
147 | jne .L36 |
165 | jne .L36 |
148 | mov edx, .LC0 |
166 | mov edx, .LC0 |
149 | jmp .L36 |
167 | jmp .L36 |
150 | .L52: |
168 | .L52: |
151 | test eax, eax |
169 | test eax, eax |
152 | jns .L24 |
170 | jns .L24 |
153 | lea ebx, [esp+21] |
171 | lea ebx, [esp+21] |
154 | neg ecx |
172 | neg ecx |
155 | mov edi, ebx |
173 | mov edi, ebx |
156 | mov esi, 10 |
174 | mov esi, 10 |
157 | lea ebp, [esp+20] |
175 | lea ebp, [esp+20] |
158 | mov BYTE PTR [esp+20], 45 |
176 | mov BYTE PTR [esp+20], 45 |
159 | jmp .L43 |
177 | jmp .L43 |
160 | .L53: |
178 | .L53: |
161 | lea ebp, [esp+20] |
179 | lea ebp, [esp+20] |
162 | mov esi, 16 |
180 | mov esi, 16 |
163 | mov ebx, ebp |
181 | mov ebx, ebp |
164 | mov edi, ebp |
182 | mov edi, ebp |
165 | jmp .L43 |
183 | jmp .L43 |
166 | 184 | ||
167 | .LC0: db "(null)",0 |
185 | .LC0: db "(null)",0 |
168 | 186 | ||
169 | restore DWORD |
187 | restore DWORD |
170 | restore WORD |
188 | restore WORD |
171 | restore BYTE |
189 | restore BYTE |
172 | 190 | ||
173 | restore PTR |
191 | restore PTR |