.file "sample.c"
.text
.globl is_all_zero
.type is_all_zero, @function
is_all_zero:
.LFB0:
.cfi_startproc
pushl %ebp
.cfi_def_cfa_offset 8
.cfi_offset 5, -8
movl %esp, %ebp
.cfi_def_cfa_register 5
subl $16, %esp
movl $0, -4(%ebp)
jmp .L2
.L5:
movl 8(%ebp), %edx
movl -4(%ebp), %eax
addl %edx, %eax
movzbl (%eax), %eax
testb %al, %al
je .L3
movl $0, %eax
jmp .L4
.L3:
addl $1, -4(%ebp)
.L2:
cmpl $99, -4(%ebp)
jbe .L5
movl $1, %eax
.L4:
leave
.cfi_restore 5
.cfi_def_cfa 4, 4
ret
.cfi_endproc
.LFE0:
.size is_all_zero, .-is_all_zero
.globl main
.type main, @function
main:
.LFB1:
.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 %ecx
.cfi_escape 0xf,0x3,0x75,0x7c,0x6
subl $372, %esp
movl $0, -12(%ebp)
movl stdin, %eax
subl $4, %esp
pushl %eax
pushl $101
leal -233(%ebp), %eax
pushl %eax
addl $16, %esp
movl $0, -16(%ebp)
jmp .L7
.L8:
leal -233(%ebp), %edx
movl -16(%ebp), %eax
addl %edx, %eax
movzbl (%eax), %eax
movsbl %al, %eax
subl $48, %eax
testl %eax, %eax
setne %dl
leal -132(%ebp), %ecx
movl -16(%ebp), %eax
addl %ecx, %eax
movb %dl, (%eax)
addl $1, -16(%ebp)
.L7:
cmpl $99, -16(%ebp)
jbe .L8
movl $0, -20(%ebp)
jmp .L9
.L12:
movl $0, -24(%ebp)
movl $0, -28(%ebp)
jmp .L10
.L11:
sall -24(%ebp)
leal -132(%ebp), %edx
movl -28(%ebp), %eax
addl %edx, %eax
movzbl (%eax), %eax
movzbl %al, %eax
addl %eax, -24(%ebp)
movl -24(%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
testl %eax, %eax
setne %dl
leal -132(%ebp), %ecx
movl -28(%ebp), %eax
addl %ecx, %eax
movb %dl, (%eax)
movl -24(%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, %eax
movl %eax, -24(%ebp)
addl $1, -28(%ebp)
.L10:
cmpl $99, -28(%ebp)
jbe .L11
movl -20(%ebp), %eax
movl -24(%ebp), %edx
movl %edx, -368(%ebp,%eax,4)
movl -20(%ebp), %eax
addl $1, %eax
movl %eax, -12(%ebp)
addl $1, -20(%ebp)
.L9:
subl $12, %esp
leal -132(%ebp), %eax
pushl %eax
call is_all_zero
addl $16, %esp
xorl $1, %eax
testb %al, %al
jne .L12
movl $0, -32(%ebp)
jmp .L13
.L14:
movl -12(%ebp), %eax
subl -32(%ebp), %eax
subl $1, %eax
movl -368(%ebp,%eax,4), %eax
addl $48, %eax
subl $12, %esp
pushl %eax
addl $16, %esp
addl $1, -32(%ebp)
.L13:
movl -12(%ebp), %eax
cmpl %eax, -32(%ebp)
jb .L14
movl $0, %eax
movl -4(%ebp), %ecx
.cfi_def_cfa 1, 0
leave
.cfi_restore 5
leal -4(%ecx), %esp
.cfi_def_cfa 4, 4
ret
.cfi_endproc
ICAgICAgICAuZmlsZSAgICJzYW1wbGUuYyIKICAgICAgICAudGV4dAogICAgICAgIC5nbG9ibCAgaXNfYWxsX3plcm8KICAgICAgICAudHlwZSAgIGlzX2FsbF96ZXJvLCBAZnVuY3Rpb24KaXNfYWxsX3plcm86Ci5MRkIwOgogICAgICAgIC5jZmlfc3RhcnRwcm9jCiAgICAgICAgcHVzaGwgICAlZWJwCiAgICAgICAgLmNmaV9kZWZfY2ZhX29mZnNldCA4CiAgICAgICAgLmNmaV9vZmZzZXQgNSwgLTgKICAgICAgICBtb3ZsICAgICVlc3AsICVlYnAKICAgICAgICAuY2ZpX2RlZl9jZmFfcmVnaXN0ZXIgNQogICAgICAgIHN1YmwgICAgJDE2LCAlZXNwCiAgICAgICAgbW92bCAgICAkMCwgLTQoJWVicCkKICAgICAgICBqbXAgICAgIC5MMgouTDU6CiAgICAgICAgbW92bCAgICA4KCVlYnApLCAlZWR4CiAgICAgICAgbW92bCAgICAtNCglZWJwKSwgJWVheAogICAgICAgIGFkZGwgICAgJWVkeCwgJWVheAogICAgICAgIG1vdnpibCAgKCVlYXgpLCAlZWF4CiAgICAgICAgdGVzdGIgICAlYWwsICVhbAogICAgICAgIGplICAgICAgLkwzCiAgICAgICAgbW92bCAgICAkMCwgJWVheAogICAgICAgIGptcCAgICAgLkw0Ci5MMzoKICAgICAgICBhZGRsICAgICQxLCAtNCglZWJwKQouTDI6CiAgICAgICAgY21wbCAgICAkOTksIC00KCVlYnApCiAgICAgICAgamJlICAgICAuTDUKICAgICAgICBtb3ZsICAgICQxLCAlZWF4Ci5MNDoKICAgICAgICBsZWF2ZQogICAgICAgIC5jZmlfcmVzdG9yZSA1CiAgICAgICAgLmNmaV9kZWZfY2ZhIDQsIDQKICAgICAgICByZXQKICAgICAgICAuY2ZpX2VuZHByb2MKLkxGRTA6CiAgICAgICAgLnNpemUgICBpc19hbGxfemVybywgLi1pc19hbGxfemVybwogICAgICAgIC5nbG9ibCAgbWFpbgogICAgICAgIC50eXBlICAgbWFpbiwgQGZ1bmN0aW9uCm1haW46Ci5MRkIxOgogICAgICAgIC5jZmlfc3RhcnRwcm9jCiAgICAgICAgbGVhbCAgICA0KCVlc3ApLCAlZWN4CiAgICAgICAgLmNmaV9kZWZfY2ZhIDEsIDAKICAgICAgICBhbmRsICAgICQtMTYsICVlc3AKICAgICAgICBwdXNobCAgIC00KCVlY3gpCiAgICAgICAgcHVzaGwgICAlZWJwCiAgICAgICAgLmNmaV9lc2NhcGUgMHgxMCwweDUsMHgyLDB4NzUsMAogICAgICAgIG1vdmwgICAgJWVzcCwgJWVicAogICAgICAgIHB1c2hsICAgJWVjeAogICAgICAgIC5jZmlfZXNjYXBlIDB4ZiwweDMsMHg3NSwweDdjLDB4NgogICAgICAgIHN1YmwgICAgJDM3MiwgJWVzcAogICAgICAgIG1vdmwgICAgJDAsIC0xMiglZWJwKQogICAgICAgIG1vdmwgICAgc3RkaW4sICVlYXgKICAgICAgICBzdWJsICAgICQ0LCAlZXNwCiAgICAgICAgcHVzaGwgICAlZWF4CiAgICAgICAgcHVzaGwgICAkMTAxCiAgICAgICAgbGVhbCAgICAtMjMzKCVlYnApLCAlZWF4CiAgICAgICAgcHVzaGwgICAlZWF4CiAgICAgICAgY2FsbCAgICBmZ2V0cwogICAgICAgIGFkZGwgICAgJDE2LCAlZXNwCiAgICAgICAgbW92bCAgICAkMCwgLTE2KCVlYnApCiAgICAgICAgam1wICAgICAuTDcKLkw4OgogICAgICAgIGxlYWwgICAgLTIzMyglZWJwKSwgJWVkeAogICAgICAgIG1vdmwgICAgLTE2KCVlYnApLCAlZWF4CiAgICAgICAgYWRkbCAgICAlZWR4LCAlZWF4CiAgICAgICAgbW92emJsICAoJWVheCksICVlYXgKICAgICAgICBtb3ZzYmwgICVhbCwgJWVheAogICAgICAgIHN1YmwgICAgJDQ4LCAlZWF4CiAgICAgICAgdGVzdGwgICAlZWF4LCAlZWF4CiAgICAgICAgc2V0bmUgICAlZGwKICAgICAgICBsZWFsICAgIC0xMzIoJWVicCksICVlY3gKICAgICAgICBtb3ZsICAgIC0xNiglZWJwKSwgJWVheAogICAgICAgIGFkZGwgICAgJWVjeCwgJWVheAogICAgICAgIG1vdmIgICAgJWRsLCAoJWVheCkKICAgICAgICBhZGRsICAgICQxLCAtMTYoJWVicCkKLkw3OgogICAgICAgIGNtcGwgICAgJDk5LCAtMTYoJWVicCkKICAgICAgICBqYmUgICAgIC5MOAogICAgICAgIG1vdmwgICAgJDAsIC0yMCglZWJwKQogICAgICAgIGptcCAgICAgLkw5Ci5MMTI6CiAgICAgICAgbW92bCAgICAkMCwgLTI0KCVlYnApCiAgICAgICAgbW92bCAgICAkMCwgLTI4KCVlYnApCiAgICAgICAgam1wICAgICAuTDEwCi5MMTE6CiAgICAgICAgc2FsbCAgICAtMjQoJWVicCkKICAgICAgICBsZWFsICAgIC0xMzIoJWVicCksICVlZHgKICAgICAgICBtb3ZsICAgIC0yOCglZWJwKSwgJWVheAogICAgICAgIGFkZGwgICAgJWVkeCwgJWVheAogICAgICAgIG1vdnpibCAgKCVlYXgpLCAlZWF4CiAgICAgICAgbW92emJsICAlYWwsICVlYXgKICAgICAgICBhZGRsICAgICVlYXgsIC0yNCglZWJwKQogICAgICAgIG1vdmwgICAgLTI0KCVlYnApLCAlZWN4CiAgICAgICAgbW92bCAgICAkMTcxNzk4NjkxOSwgJWVkeAogICAgICAgIG1vdmwgICAgJWVjeCwgJWVheAogICAgICAgIGltdWxsICAgJWVkeAogICAgICAgIHNhcmwgICAgJDIsICVlZHgKICAgICAgICBtb3ZsICAgICVlY3gsICVlYXgKICAgICAgICBzYXJsICAgICQzMSwgJWVheAogICAgICAgIHN1YmwgICAgJWVheCwgJWVkeAogICAgICAgIG1vdmwgICAgJWVkeCwgJWVheAogICAgICAgIHRlc3RsICAgJWVheCwgJWVheAogICAgICAgIHNldG5lICAgJWRsCiAgICAgICAgbGVhbCAgICAtMTMyKCVlYnApLCAlZWN4CiAgICAgICAgbW92bCAgICAtMjgoJWVicCksICVlYXgKICAgICAgICBhZGRsICAgICVlY3gsICVlYXgKICAgICAgICBtb3ZiICAgICVkbCwgKCVlYXgpCiAgICAgICAgbW92bCAgICAtMjQoJWVicCksICVlY3gKICAgICAgICBtb3ZsICAgICQxNzE3OTg2OTE5LCAlZWR4CiAgICAgICAgbW92bCAgICAlZWN4LCAlZWF4CiAgICAgICAgaW11bGwgICAlZWR4CiAgICAgICAgc2FybCAgICAkMiwgJWVkeAogICAgICAgIG1vdmwgICAgJWVjeCwgJWVheAogICAgICAgIHNhcmwgICAgJDMxLCAlZWF4CiAgICAgICAgc3VibCAgICAlZWF4LCAlZWR4CiAgICAgICAgbW92bCAgICAlZWR4LCAlZWF4CiAgICAgICAgc2FsbCAgICAkMiwgJWVheAogICAgICAgIGFkZGwgICAgJWVkeCwgJWVheAogICAgICAgIGFkZGwgICAgJWVheCwgJWVheAogICAgICAgIHN1YmwgICAgJWVheCwgJWVjeAogICAgICAgIG1vdmwgICAgJWVjeCwgJWVheAogICAgICAgIG1vdmwgICAgJWVheCwgLTI0KCVlYnApCiAgICAgICAgYWRkbCAgICAkMSwgLTI4KCVlYnApCi5MMTA6CiAgICAgICAgY21wbCAgICAkOTksIC0yOCglZWJwKQogICAgICAgIGpiZSAgICAgLkwxMQogICAgICAgIG1vdmwgICAgLTIwKCVlYnApLCAlZWF4CiAgICAgICAgbW92bCAgICAtMjQoJWVicCksICVlZHgKICAgICAgICBtb3ZsICAgICVlZHgsIC0zNjgoJWVicCwlZWF4LDQpCiAgICAgICAgbW92bCAgICAtMjAoJWVicCksICVlYXgKICAgICAgICBhZGRsICAgICQxLCAlZWF4CiAgICAgICAgbW92bCAgICAlZWF4LCAtMTIoJWVicCkKICAgICAgICBhZGRsICAgICQxLCAtMjAoJWVicCkKLkw5OgogICAgICAgIHN1YmwgICAgJDEyLCAlZXNwCiAgICAgICAgbGVhbCAgICAtMTMyKCVlYnApLCAlZWF4CiAgICAgICAgcHVzaGwgICAlZWF4CiAgICAgICAgY2FsbCAgICBpc19hbGxfemVybwogICAgICAgIGFkZGwgICAgJDE2LCAlZXNwCiAgICAgICAgeG9ybCAgICAkMSwgJWVheAogICAgICAgIHRlc3RiICAgJWFsLCAlYWwKICAgICAgICBqbmUgICAgIC5MMTIKICAgICAgICBtb3ZsICAgICQwLCAtMzIoJWVicCkKICAgICAgICBqbXAgICAgIC5MMTMKLkwxNDoKICAgICAgICBtb3ZsICAgIC0xMiglZWJwKSwgJWVheAogICAgICAgIHN1YmwgICAgLTMyKCVlYnApLCAlZWF4CiAgICAgICAgc3VibCAgICAkMSwgJWVheAogICAgICAgIG1vdmwgICAgLTM2OCglZWJwLCVlYXgsNCksICVlYXgKICAgICAgICBhZGRsICAgICQ0OCwgJWVheAogICAgICAgIHN1YmwgICAgJDEyLCAlZXNwCiAgICAgICAgcHVzaGwgICAlZWF4CiAgICAgICAgY2FsbCAgICBwdXRjaGFyCiAgICAgICAgYWRkbCAgICAkMTYsICVlc3AKICAgICAgICBhZGRsICAgICQxLCAtMzIoJWVicCkKLkwxMzoKICAgICAgICBtb3ZsICAgIC0xMiglZWJwKSwgJWVheAogICAgICAgIGNtcGwgICAgJWVheCwgLTMyKCVlYnApCiAgICAgICAgamIgICAgICAuTDE0CiAgICAgICAgbW92bCAgICAkMCwgJWVheAogICAgICAgIG1vdmwgICAgLTQoJWVicCksICVlY3gKICAgICAgICAuY2ZpX2RlZl9jZmEgMSwgMAogICAgICAgIGxlYXZlCiAgICAgICAgLmNmaV9yZXN0b3JlIDUKICAgICAgICBsZWFsICAgIC00KCVlY3gpLCAlZXNwCiAgICAgICAgLmNmaV9kZWZfY2ZhIDQsIDQKICAgICAgICByZXQKICAgICAgICAuY2ZpX2VuZHByb2M=