1     .file  "test.c"
 2     .intel_syntax
 3     .section   .rodata
 4 .LC0:
 5     .string    "OMG, -10==10"
 6 .LC1:
 7     .string    "nothing special here"
 8     .text
 9 .globl main
10     .type  main, @function
11 main:
12     lea    %ecx, [%esp+4]
13     and    %esp, -16
14     push   DWORD PTR [%ecx-4]
15     push   %ebp
16     mov    %ebp, %esp
17     push   %ecx
18     sub    %esp, 20
19     mov    DWORD PTR [%ebp-8], 2
20     mov    %edx, DWORD PTR [%ebp-8]
21     mov    %eax, %edx
22     sal    %eax, 2
23     add    %eax, %edx
24     add    %eax, %eax
25     sub    %eax, 10
26     mov    %edx, %eax
27     sar    %edx, 31
28     mov    %ecx, %edx
29     xor    %ecx, %eax
30     sub    %ecx, %edx
31     mov    %eax, DWORD PTR [%ebp-8]
32     imul   %eax, %eax, -10
33     add    %eax, 10
34     mov    %edx, %eax
35     sar    %edx, 31
36     xor    %eax, %edx
37     sub    %eax, %edx
38     cmp    %ecx, %eax
39     jne    .L2
40     mov    DWORD PTR [%esp], OFFSET FLAT:.LC0
41     call   puts
42     jmp    .L6
43 .L2:
44     mov    DWORD PTR [%esp], OFFSET FLAT:.LC1
45     call   puts
46 .L6:
47     add    %esp, 20
48     pop    %ecx
49     pop    %ebp
50     lea    %esp, [%ecx-4]
51     ret
52     .size  main, .-main
53     .ident "GCC: (GNU) 4.1.2 20060928 (prerelease) (Ubuntu 4.1.1-13ubuntu5)"
54     .section   .note.GNU-stack,"",@progbits