mirror of
https://github.com/UberGames/ioef.git
synced 2024-11-24 05:01:40 +00:00
415 lines
4.7 KiB
Text
415 lines
4.7 KiB
Text
.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
|