.file "perror.c"
.section .rodata
.LC0:
.string "%d"
.text
.globl myabs
.type myabs, @function
myabs:
.LFB5:
pushq %rbp
.LCFI0:
movq %rsp, %rbp
.LCFI1:
subq $16, %rsp
.LCFI2:
movl %edi, -4(%rbp)
movl -4(%rbp), %esi
movl $.LC0, %edi
movl $0, %eax
call printf
cmpl $0, -4(%rbp)
js .L2
movl -4(%rbp), %eax
movl %eax, -8(%rbp)
jmp .L4
.L2:
movl -4(%rbp), %eax
movl %eax, %edx
negl %edx
movl %edx, -8(%rbp)
.L4:
movl -8(%rbp), %eax
leave
ret
.LFE5:
.size myabs, .-myabs
.section .rodata
.LC1:
.string "OMG: -10 == 10"
.LC2:
.string "nothing special here"
.text
.globl main
.type main, @function
main:
.LFB6:
pushq %rbp
.LCFI3:
movq %rsp, %rbp
.LCFI4:
pushq %rbx
.LCFI5:
subq $24, %rsp
.LCFI6:
movl $2, -12(%rbp)
movl -12(%rbp), %edi
decl %edi
call myabs
imull $-10, %eax, %ebx
movl -12(%rbp), %edi
decl %edi
call myabs
leal (%rax,%rax), %edx
leal 0(,%rdx,4), %eax
leal (%rdx,%rax), %eax
cmpl %eax, %ebx
jne .L7
movl $.LC1, %edi
call perror
movl $-1, %edi
call exit
.L7:
movl $.LC2, %edi
call puts
movl $0, %eax
addq $24, %rsp
popq %rbx
leave
ret
.LFE6:
.size main, .-main
.section .eh_frame,"a",@progbits
.Lframe1:
.long .LECIE1-.LSCIE1
.LSCIE1:
.long 0x0
.byte 0x1
.string "zR"
.uleb128 0x1
.sleb128 -8
.byte 0x10
.uleb128 0x1
.byte 0x3
.byte 0xc
.uleb128 0x7
.uleb128 0x8
.byte 0x90
.uleb128 0x1
.align 8
.LECIE1:
.LSFDE1:
.long .LEFDE1-.LASFDE1
.LASFDE1:
.long .LASFDE1-.Lframe1
.long .LFB5
.long .LFE5-.LFB5
.uleb128 0x0
.byte 0x4
.long .LCFI0-.LFB5
.byte 0xe
.uleb128 0x10
.byte 0x86
.uleb128 0x2
.byte 0x4
.long .LCFI1-.LCFI0
.byte 0xd
.uleb128 0x6
.align 8
.LEFDE1:
.LSFDE3:
.long .LEFDE3-.LASFDE3
.LASFDE3:
.long .LASFDE3-.Lframe1
.long .LFB6
.long .LFE6-.LFB6
.uleb128 0x0
.byte 0x4
.long .LCFI3-.LFB6
.byte 0xe
.uleb128 0x10
.byte 0x86
.uleb128 0x2
.byte 0x4
.long .LCFI4-.LCFI3
.byte 0xd
.uleb128 0x6
.byte 0x4
.long .LCFI6-.LCFI4
.byte 0x83
.uleb128 0x3
.align 8
.LEFDE3:
.ident "GCC: (GNU) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)"
.section .note.GNU-stack,"",@progbits