.file "x86.c" .comm i,4,4 .comm a,48,32 .comm buf,200,32 .text .globl get_int .type get_int, @function get_int: .LFB0: .cfi_startproc pushl %ebp .cfi_def_cfa_offset 8 .cfi_offset 5, -8 movl %esp, %ebp .cfi_def_cfa_register 5 subl $24, %esp movl $0, -12(%ebp) .L3: subl $4, %esp pushl $1 popl %edx pushl $buf popl %ecx pushl $0 popl %ebx pushl $3 popl %eax //call read int $0x80 addl $16, %esp movzbl buf, %eax cmpb $10, %al je .L2 movzbl buf, %eax cmpb $32, %al je .L2 movl -12(%ebp), %edx movl %edx, %eax sall $2, %eax addl %edx, %eax addl %eax, %eax movl %eax, %edx movzbl buf, %eax movsbl %al, %eax subl $48, %eax addl %edx, %eax movl %eax, -12(%ebp) jmp .L3 .L2: movl -12(%ebp), %eax leave .cfi_restore 5 .cfi_def_cfa 4, 4 ret .cfi_endproc .LFE0: .size get_int, .-get_int .globl write_int .type write_int, @function write_int: .LFB1: .cfi_startproc pushl %ebp .cfi_def_cfa_offset 8 .cfi_offset 5, -8 movl %esp, %ebp .cfi_def_cfa_register 5 subl $8, %esp cmpl $0, 8(%ebp) jle .L7 movl 8(%ebp), %ecx movl $1717986919, %edx movl %ecx, %eax imull %edx sarl $2, %edx movl %ecx, %eax sarl $31, %eax subl %eax, %edx movl %edx, %eax subl $12, %esp pushl %eax call write_int addl $16, %esp movl 8(%ebp), %ecx movl $1717986919, %edx movl %ecx, %eax imull %edx sarl $2, %edx movl %ecx, %eax sarl $31, %eax subl %eax, %edx movl %edx, %eax sall $2, %eax addl %edx, %eax addl %eax, %eax subl %eax, %ecx movl %ecx, %edx movl %edx, %eax addl $48, %eax movb %al, buf subl $4, %esp pushl $1 popl %edx pushl $buf popl %ecx pushl $1 popl %ebx pushl $4 popl %eax int $0x80 addl $16, %esp .L7: nop leave .cfi_restore 5 .cfi_def_cfa 4, 4 ret .cfi_endproc .LFE1: .size write_int, .-write_int .globl main .type main, @function main: .LFB2: .cfi_startproc leal 4(%esp), %ecx .cfi_def_cfa 1, 0 andl $-16, %esp pushl -4(%ecx) pushl %ebp .cfi_escape 0x10,0x5,0x2,0x75,0 movl %esp, %ebp pushl %esi pushl %ebx pushl %ecx .cfi_escape 0xf,0x3,0x75,0x74,0x6 .cfi_escape 0x10,0x6,0x2,0x75,0x7c .cfi_escape 0x10,0x3,0x2,0x75,0x78 subl $28, %esp movl $0, -28(%ebp) jmp .L9 .L11: call get_int movl %eax, %edx movl -28(%ebp), %eax movl %edx, a(,%eax,4) cmpl $2, -28(%ebp) jle .L10 movl -28(%ebp), %eax movl a(,%eax,4), %ebx movl -28(%ebp), %ecx movl $1431655766, %edx movl %ecx, %eax imull %edx movl %ecx, %eax sarl $31, %eax subl %eax, %edx movl %edx, %eax movl %eax, %edx addl %edx, %edx addl %eax, %edx movl %ecx, %eax subl %edx, %eax movl a(,%eax,4), %eax subl %eax, %ebx movl %ebx, %edx movl -28(%ebp), %eax movl %edx, a(,%eax,4) .L10: addl $1, -28(%ebp) .L9: cmpl $11, -28(%ebp) jle .L11 movl a+12, %eax movl a+28, %ecx movl a+44, %edx imull %edx, %ecx movl a+32, %ebx movl a+40, %edx imull %ebx, %edx subl %edx, %ecx movl %ecx, %edx imull %eax, %edx movl a+16, %eax movl a+32, %ebx movl a+36, %ecx imull %ecx, %ebx movl a+44, %esi movl a+24, %ecx imull %esi, %ecx subl %ecx, %ebx movl %ebx, %ecx imull %ecx, %eax leal (%edx,%eax), %esi movl a+20, %eax movl a+40, %ecx movl a+24, %edx imull %edx, %ecx movl a+28, %ebx movl a+36, %edx imull %ebx, %edx subl %edx, %ecx movl %ecx, %edx imull %edx, %eax leal (%esi,%eax), %ecx movl $715827883, %edx movl %ecx, %eax imull %edx movl %ecx, %eax sarl $31, %eax subl %eax, %edx movl %edx, %eax subl $12, %esp pushl %eax call write_int addl $16, %esp movl $0, %eax leal -12(%ebp), %esp popl %ecx .cfi_restore 1 .cfi_def_cfa 1, 0 popl %ebx .cfi_restore 3 popl %esi .cfi_restore 6 popl %ebp .cfi_restore 5 leal -4(%ecx), %esp .cfi_def_cfa 4, 4 ret .cfi_endproc .LFE2: .size main, .-main .ident "GCC: (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609" .section .note.GNU-stack,"",@progbits