.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