416 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			416 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
.486
 | 
						|
.model flat
 | 
						|
extrn __fltused:near
 | 
						|
extrn __ftol:near
 | 
						|
_DATA segment
 | 
						|
public _x
 | 
						|
align 4
 | 
						|
_x label byte
 | 
						|
dd 1
 | 
						|
dd 2
 | 
						|
dd 3
 | 
						|
dd 4
 | 
						|
public _main
 | 
						|
_DATA ends
 | 
						|
_TEXT segment
 | 
						|
_main:
 | 
						|
push ebx
 | 
						|
push esi
 | 
						|
push edi
 | 
						|
push ebp
 | 
						|
mov ebp,esp
 | 
						|
sub esp,8
 | 
						|
lea edi,(L2)
 | 
						|
push edi
 | 
						|
call _print
 | 
						|
add esp,4
 | 
						|
lea edi,(L4)
 | 
						|
push edi
 | 
						|
lea edi,(L3)
 | 
						|
push edi
 | 
						|
call _print
 | 
						|
add esp,8
 | 
						|
push 10
 | 
						|
push 3
 | 
						|
lea edi,(L5)
 | 
						|
push edi
 | 
						|
call _print
 | 
						|
add esp,12
 | 
						|
push 10
 | 
						|
push 4
 | 
						|
lea edi,(L8)
 | 
						|
push edi
 | 
						|
lea edi,(L7)
 | 
						|
push edi
 | 
						|
lea edi,(L6)
 | 
						|
push edi
 | 
						|
call _print
 | 
						|
add esp,20
 | 
						|
push 10
 | 
						|
fld qword ptr (L10)
 | 
						|
sub esp,8
 | 
						|
fstp qword ptr [esp]
 | 
						|
lea edi,(L8)
 | 
						|
push edi
 | 
						|
lea edi,(L7)
 | 
						|
push edi
 | 
						|
lea edi,(L9)
 | 
						|
push edi
 | 
						|
call _print
 | 
						|
add esp,24
 | 
						|
lea edi,(_x)
 | 
						|
mov dword ptr (-8)[ebp],edi
 | 
						|
mov esi,edi
 | 
						|
mov dword ptr (-4)[ebp],esi
 | 
						|
sub esp,16
 | 
						|
mov edi,esp
 | 
						|
mov ecx,16
 | 
						|
rep movsb
 | 
						|
mov edi,dword ptr (-8)[ebp]
 | 
						|
mov esi,edi
 | 
						|
sub esp,16
 | 
						|
mov edi,esp
 | 
						|
mov ecx,16
 | 
						|
rep movsb
 | 
						|
mov edi,dword ptr (-8)[ebp]
 | 
						|
mov esi,edi
 | 
						|
sub esp,16
 | 
						|
mov edi,esp
 | 
						|
mov ecx,16
 | 
						|
rep movsb
 | 
						|
mov edi,dword ptr (-8)[ebp]
 | 
						|
mov esi,edi
 | 
						|
sub esp,16
 | 
						|
mov edi,esp
 | 
						|
mov ecx,16
 | 
						|
rep movsb
 | 
						|
mov edi,dword ptr (-8)[ebp]
 | 
						|
mov esi,edi
 | 
						|
sub esp,16
 | 
						|
mov edi,esp
 | 
						|
mov ecx,16
 | 
						|
rep movsb
 | 
						|
mov edi,dword ptr (-8)[ebp]
 | 
						|
mov esi,edi
 | 
						|
sub esp,16
 | 
						|
mov edi,esp
 | 
						|
mov ecx,16
 | 
						|
rep movsb
 | 
						|
lea edi,(L11)
 | 
						|
push edi
 | 
						|
call _print
 | 
						|
add esp,100
 | 
						|
mov eax,0
 | 
						|
L1:
 | 
						|
mov esp,ebp
 | 
						|
pop ebp
 | 
						|
pop edi
 | 
						|
pop esi
 | 
						|
pop ebx
 | 
						|
ret
 | 
						|
public _print
 | 
						|
_print:
 | 
						|
push ebx
 | 
						|
push esi
 | 
						|
push edi
 | 
						|
push ebp
 | 
						|
mov ebp,esp
 | 
						|
sub esp,28
 | 
						|
lea edi,(24)[ebp]
 | 
						|
mov dword ptr (-4)[ebp],edi
 | 
						|
jmp L17
 | 
						|
L14:
 | 
						|
mov edi,dword ptr (20)[ebp]
 | 
						|
movsx edi,byte ptr [edi]
 | 
						|
cmp edi,37
 | 
						|
jne L18
 | 
						|
mov edi,dword ptr (20)[ebp]
 | 
						|
lea edi,(1)[edi]
 | 
						|
mov dword ptr (20)[ebp],edi
 | 
						|
movsx edi,byte ptr [edi]
 | 
						|
mov dword ptr (-8)[ebp],edi
 | 
						|
mov edi,dword ptr (-8)[ebp]
 | 
						|
cmp edi,115
 | 
						|
je L34
 | 
						|
cmp edi,115
 | 
						|
jg L39
 | 
						|
L38:
 | 
						|
mov edi,dword ptr (-8)[ebp]
 | 
						|
cmp edi,98
 | 
						|
jl L20
 | 
						|
cmp edi,102
 | 
						|
jg L20
 | 
						|
jmp dword ptr (L40-392)[edi*4]
 | 
						|
_TEXT ends
 | 
						|
_TEXT segment
 | 
						|
align 4
 | 
						|
L40 label byte
 | 
						|
dd L23
 | 
						|
dd L28
 | 
						|
dd L30
 | 
						|
dd L20
 | 
						|
dd L36
 | 
						|
_TEXT ends
 | 
						|
_TEXT segment
 | 
						|
L39:
 | 
						|
cmp dword ptr (-8)[ebp],119
 | 
						|
je L32
 | 
						|
jmp L20
 | 
						|
L23:
 | 
						|
mov edi,dword ptr (-4)[ebp]
 | 
						|
lea edi,(16)[edi]
 | 
						|
mov dword ptr (-28)[ebp],edi
 | 
						|
mov dword ptr (-4)[ebp],edi
 | 
						|
lea edi,(-24)[ebp]
 | 
						|
mov esi,dword ptr (-28)[ebp]
 | 
						|
lea esi,(-16)[esi]
 | 
						|
mov ecx,16
 | 
						|
rep movsb
 | 
						|
mov edi,dword ptr (-12)[ebp]
 | 
						|
push edi
 | 
						|
mov edi,dword ptr (-16)[ebp]
 | 
						|
push edi
 | 
						|
mov edi,dword ptr (-20)[ebp]
 | 
						|
push edi
 | 
						|
mov edi,dword ptr (-24)[ebp]
 | 
						|
push edi
 | 
						|
lea edi,(L24)
 | 
						|
push edi
 | 
						|
call _printf
 | 
						|
add esp,20
 | 
						|
jmp L19
 | 
						|
L28:
 | 
						|
mov edi,dword ptr (-4)[ebp]
 | 
						|
lea edi,(4)[edi]
 | 
						|
mov dword ptr (-4)[ebp],edi
 | 
						|
movsx edi,byte ptr (-4)[edi]
 | 
						|
push edi
 | 
						|
lea edi,(L29)
 | 
						|
push edi
 | 
						|
call _printf
 | 
						|
add esp,8
 | 
						|
jmp L19
 | 
						|
L30:
 | 
						|
mov edi,dword ptr (-4)[ebp]
 | 
						|
lea edi,(4)[edi]
 | 
						|
mov dword ptr (-4)[ebp],edi
 | 
						|
mov edi,dword ptr (-4)[edi]
 | 
						|
push edi
 | 
						|
lea edi,(L31)
 | 
						|
push edi
 | 
						|
call _printf
 | 
						|
add esp,8
 | 
						|
jmp L19
 | 
						|
L32:
 | 
						|
mov edi,dword ptr (-4)[ebp]
 | 
						|
lea edi,(4)[edi]
 | 
						|
mov dword ptr (-4)[ebp],edi
 | 
						|
movsx edi,word ptr (-4)[edi]
 | 
						|
push edi
 | 
						|
lea edi,(L33)
 | 
						|
push edi
 | 
						|
call _printf
 | 
						|
add esp,8
 | 
						|
jmp L19
 | 
						|
L34:
 | 
						|
mov edi,dword ptr (-4)[ebp]
 | 
						|
lea edi,(4)[edi]
 | 
						|
mov dword ptr (-4)[ebp],edi
 | 
						|
mov edi,dword ptr (-4)[edi]
 | 
						|
push edi
 | 
						|
lea edi,(L35)
 | 
						|
push edi
 | 
						|
call _printf
 | 
						|
add esp,8
 | 
						|
jmp L19
 | 
						|
L36:
 | 
						|
mov edi,dword ptr (-4)[ebp]
 | 
						|
lea edi,(8)[edi]
 | 
						|
mov dword ptr (-4)[ebp],edi
 | 
						|
fld qword ptr (-8)[edi]
 | 
						|
sub esp,8
 | 
						|
fstp qword ptr [esp]
 | 
						|
lea edi,(L37)
 | 
						|
push edi
 | 
						|
call _printf
 | 
						|
add esp,12
 | 
						|
jmp L19
 | 
						|
L20:
 | 
						|
mov edi,dword ptr (20)[ebp]
 | 
						|
movsx edi,byte ptr [edi]
 | 
						|
push edi
 | 
						|
lea edi,(L29)
 | 
						|
push edi
 | 
						|
call _printf
 | 
						|
add esp,8
 | 
						|
jmp L19
 | 
						|
L18:
 | 
						|
mov edi,dword ptr (20)[ebp]
 | 
						|
movsx edi,byte ptr [edi]
 | 
						|
push edi
 | 
						|
lea edi,(L29)
 | 
						|
push edi
 | 
						|
call _printf
 | 
						|
add esp,8
 | 
						|
L19:
 | 
						|
L15:
 | 
						|
inc dword ptr (20)[ebp]
 | 
						|
L17:
 | 
						|
mov edi,dword ptr (20)[ebp]
 | 
						|
movsx edi,byte ptr [edi]
 | 
						|
cmp edi,0
 | 
						|
jne L14
 | 
						|
mov dword ptr (-4)[ebp],0
 | 
						|
mov eax,0
 | 
						|
L12:
 | 
						|
mov esp,ebp
 | 
						|
pop ebp
 | 
						|
pop edi
 | 
						|
pop esi
 | 
						|
pop ebx
 | 
						|
ret
 | 
						|
_TEXT ends
 | 
						|
extrn _printf:near
 | 
						|
_TEXT segment
 | 
						|
_TEXT ends
 | 
						|
_TEXT segment
 | 
						|
align 1
 | 
						|
L37 label byte
 | 
						|
db 37
 | 
						|
db 102
 | 
						|
db 0
 | 
						|
align 1
 | 
						|
L35 label byte
 | 
						|
db 37
 | 
						|
db 115
 | 
						|
db 0
 | 
						|
align 1
 | 
						|
L33 label byte
 | 
						|
db 37
 | 
						|
db 120
 | 
						|
db 0
 | 
						|
align 1
 | 
						|
L31 label byte
 | 
						|
db 37
 | 
						|
db 100
 | 
						|
db 0
 | 
						|
align 1
 | 
						|
L29 label byte
 | 
						|
db 37
 | 
						|
db 99
 | 
						|
db 0
 | 
						|
align 1
 | 
						|
L24 label byte
 | 
						|
db 123
 | 
						|
db 37
 | 
						|
db 100
 | 
						|
db 32
 | 
						|
db 37
 | 
						|
db 100
 | 
						|
db 32
 | 
						|
db 37
 | 
						|
db 100
 | 
						|
db 32
 | 
						|
db 37
 | 
						|
db 100
 | 
						|
db 125
 | 
						|
db 0
 | 
						|
align 1
 | 
						|
L11 label byte
 | 
						|
db 37
 | 
						|
db 98
 | 
						|
db 32
 | 
						|
db 37
 | 
						|
db 98
 | 
						|
db 32
 | 
						|
db 37
 | 
						|
db 98
 | 
						|
db 32
 | 
						|
db 37
 | 
						|
db 98
 | 
						|
db 32
 | 
						|
db 37
 | 
						|
db 98
 | 
						|
db 32
 | 
						|
db 37
 | 
						|
db 98
 | 
						|
db 10
 | 
						|
db 0
 | 
						|
align 4
 | 
						|
L10 label byte
 | 
						|
dd 00H
 | 
						|
dd 040140000H
 | 
						|
align 1
 | 
						|
L9 label byte
 | 
						|
db 37
 | 
						|
db 115
 | 
						|
db 37
 | 
						|
db 115
 | 
						|
db 32
 | 
						|
db 37
 | 
						|
db 102
 | 
						|
db 37
 | 
						|
db 99
 | 
						|
db 0
 | 
						|
align 1
 | 
						|
L8 label byte
 | 
						|
db 115
 | 
						|
db 116
 | 
						|
db 0
 | 
						|
align 1
 | 
						|
L7 label byte
 | 
						|
db 116
 | 
						|
db 101
 | 
						|
db 0
 | 
						|
align 1
 | 
						|
L6 label byte
 | 
						|
db 37
 | 
						|
db 115
 | 
						|
db 37
 | 
						|
db 115
 | 
						|
db 32
 | 
						|
db 37
 | 
						|
db 119
 | 
						|
db 37
 | 
						|
db 99
 | 
						|
db 0
 | 
						|
align 1
 | 
						|
L5 label byte
 | 
						|
db 116
 | 
						|
db 101
 | 
						|
db 115
 | 
						|
db 116
 | 
						|
db 32
 | 
						|
db 37
 | 
						|
db 100
 | 
						|
db 37
 | 
						|
db 99
 | 
						|
db 0
 | 
						|
align 1
 | 
						|
L4 label byte
 | 
						|
db 50
 | 
						|
db 0
 | 
						|
align 1
 | 
						|
L3 label byte
 | 
						|
db 116
 | 
						|
db 101
 | 
						|
db 115
 | 
						|
db 116
 | 
						|
db 32
 | 
						|
db 37
 | 
						|
db 115
 | 
						|
db 10
 | 
						|
db 0
 | 
						|
align 1
 | 
						|
L2 label byte
 | 
						|
db 116
 | 
						|
db 101
 | 
						|
db 115
 | 
						|
db 116
 | 
						|
db 32
 | 
						|
db 49
 | 
						|
db 10
 | 
						|
db 0
 | 
						|
_TEXT ends
 | 
						|
end
 |