Created
December 7, 2016 03:07
-
-
Save willkill07/84306c25d3b89502de631ab6e101c9d2 to your computer and use it in GitHub Desktop.
Day 6 x86-64 Assembly generated
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
.file "Day06.c" | |
.text | |
.p2align 4,,15 | |
.globl file_size | |
.type file_size, @function | |
file_size: | |
.LFB4874: | |
.cfi_startproc | |
subq $152, %rsp | |
.cfi_def_cfa_offset 160 | |
movl %edi, %esi | |
movl $1, %edi | |
movq %rsp, %rdx | |
call __fxstat | |
movl 48(%rsp), %eax | |
addq $152, %rsp | |
.cfi_def_cfa_offset 8 | |
ret | |
.cfi_endproc | |
.LFE4874: | |
.size file_size, .-file_size | |
.section .rodata.str1.1,"aMS",@progbits,1 | |
.LC2: | |
.string "Part %d: %.8s\n" | |
.section .text.startup,"ax",@progbits | |
.p2align 4,,15 | |
.globl main | |
.type main, @function | |
main: | |
.LFB4875: | |
.cfi_startproc | |
leaq 8(%rsp), %r10 | |
.cfi_def_cfa 10, 0 | |
andq $-32, %rsp | |
xorl %eax, %eax | |
pushq -8(%r10) | |
pushq %rbp | |
.cfi_escape 0x10,0x6,0x2,0x76,0 | |
movq %rsp, %rbp | |
pushq %r12 | |
pushq %r10 | |
.cfi_escape 0xf,0x3,0x76,0x70,0x6 | |
.cfi_escape 0x10,0xc,0x2,0x76,0x78 | |
pushq %rbx | |
subq $280, %rsp | |
.cfi_escape 0x10,0x3,0x2,0x76,0x68 | |
movq 8(%rsi), %rdi | |
xorl %esi, %esi | |
call open | |
leaq -208(%rbp), %rdx | |
movl $1, %edi | |
movl %eax, %esi | |
movl %eax, %r12d | |
call __fxstat | |
xorl %r9d, %r9d | |
xorl %edi, %edi | |
movl %r12d, %r8d | |
movq -160(%rbp), %rbx | |
movl $2, %ecx | |
movl $1, %edx | |
movslq %ebx, %rsi | |
call mmap | |
testl %ebx, %ebx | |
je .L14 | |
imull $954437177, %ebx, %ebx | |
vpxor %xmm1, %xmm1, %xmm1 | |
vmovdqa .LC0(%rip), %ymm3 | |
vmovdqa .LC1(%rip), %ymm2 | |
leal -1(%rbx), %edx | |
leaq 9(%rdx,%rdx,8), %rdx | |
addq %rax, %rdx | |
.p2align 4,,10 | |
.p2align 3 | |
.L5: | |
vpmovsxbd (%rax), %ymm0 | |
addq $9, %rax | |
vpsubd %ymm3, %ymm0, %ymm0 | |
vpsllvd %ymm0, %ymm2, %ymm0 | |
vpaddd %ymm0, %ymm1, %ymm1 | |
cmpq %rdx, %rax | |
jne .L5 | |
.L4: | |
vmovd %xmm1, %edx | |
movb $0, -296(%rbp) | |
addl $33554431, %edx | |
movb $0, -287(%rbp) | |
movslq %edx, %rax | |
imulq $-2147483615, %rax, %rax | |
shrq $32, %rax | |
addl %edx, %eax | |
sarl $31, %edx | |
sarl $25, %eax | |
subl %edx, %eax | |
movl %eax, %edx | |
sall $26, %edx | |
subl %eax, %edx | |
vmovd %edx, %xmm0 | |
movabsq $6872316419617283935, %rdx | |
vpbroadcastd %xmm0, %ymm0 | |
movq %rdx, -304(%rbp) | |
vpsubd %ymm0, %ymm1, %ymm1 | |
movq %rdx, -295(%rbp) | |
vpsrld $31, %ymm1, %ymm0 | |
vpabsd %ymm1, %ymm1 | |
vpsubd %ymm0, %ymm2, %ymm2 | |
vmovd %xmm1, %eax | |
vmovdqa %ymm0, -240(%rbp) | |
vmovdqa %ymm2, -208(%rbp) | |
vmovdqa %ymm1, -272(%rbp) | |
testl %eax, %eax | |
je .L6 | |
xorl %edx, %edx | |
movl $-128, %ecx | |
lzcntl %eax, %edx | |
leal -1(%rdx), %esi | |
movslq -240(%rbp), %rdx | |
movl %ecx, %edi | |
subl %esi, %edi | |
leaq (%rdx,%rdx,8), %rdx | |
movb %dil, -304(%rbp,%rdx) | |
movl $-2147483648, %edx | |
shrx %esi, %edx, %edx | |
subl %eax, %edx | |
movl %edx, %eax | |
lzcntl %edx, %eax | |
movslq -208(%rbp), %rdx | |
subl %eax, %ecx | |
leaq (%rdx,%rdx,8), %rdx | |
movb %cl, -304(%rbp,%rdx) | |
.L6: | |
movl -268(%rbp), %edx | |
testl %edx, %edx | |
je .L7 | |
xorl %eax, %eax | |
movl $-128, %ecx | |
lzcntl %edx, %eax | |
leal -1(%rax), %esi | |
movslq -236(%rbp), %rax | |
movl %ecx, %edi | |
subl %esi, %edi | |
leaq (%rax,%rax,8), %rax | |
movb %dil, -303(%rbp,%rax) | |
movl $-2147483648, %eax | |
shrx %esi, %eax, %eax | |
subl %edx, %eax | |
movslq -204(%rbp), %rdx | |
lzcntl %eax, %eax | |
subl %eax, %ecx | |
leaq (%rdx,%rdx,8), %rdx | |
movb %cl, -303(%rbp,%rdx) | |
.L7: | |
movl -264(%rbp), %edx | |
testl %edx, %edx | |
je .L8 | |
xorl %eax, %eax | |
movl $-128, %ecx | |
lzcntl %edx, %eax | |
leal -1(%rax), %esi | |
movslq -232(%rbp), %rax | |
movl %ecx, %edi | |
subl %esi, %edi | |
leaq (%rax,%rax,8), %rax | |
movb %dil, -302(%rbp,%rax) | |
movl $-2147483648, %eax | |
shrx %esi, %eax, %eax | |
subl %edx, %eax | |
movslq -200(%rbp), %rdx | |
lzcntl %eax, %eax | |
subl %eax, %ecx | |
leaq (%rdx,%rdx,8), %rdx | |
movb %cl, -302(%rbp,%rdx) | |
.L8: | |
movl -260(%rbp), %edx | |
testl %edx, %edx | |
je .L9 | |
xorl %eax, %eax | |
movl $-128, %ecx | |
lzcntl %edx, %eax | |
leal -1(%rax), %esi | |
movslq -228(%rbp), %rax | |
movl %ecx, %edi | |
subl %esi, %edi | |
leaq (%rax,%rax,8), %rax | |
movb %dil, -301(%rbp,%rax) | |
movl $-2147483648, %eax | |
shrx %esi, %eax, %eax | |
subl %edx, %eax | |
movslq -196(%rbp), %rdx | |
lzcntl %eax, %eax | |
subl %eax, %ecx | |
leaq (%rdx,%rdx,8), %rdx | |
movb %cl, -301(%rbp,%rdx) | |
.L9: | |
movl -256(%rbp), %edx | |
testl %edx, %edx | |
je .L10 | |
xorl %eax, %eax | |
movl $-128, %ecx | |
lzcntl %edx, %eax | |
leal -1(%rax), %esi | |
movslq -224(%rbp), %rax | |
movl %ecx, %edi | |
subl %esi, %edi | |
leaq (%rax,%rax,8), %rax | |
movb %dil, -300(%rbp,%rax) | |
movl $-2147483648, %eax | |
shrx %esi, %eax, %eax | |
subl %edx, %eax | |
movslq -192(%rbp), %rdx | |
lzcntl %eax, %eax | |
subl %eax, %ecx | |
leaq (%rdx,%rdx,8), %rdx | |
movb %cl, -300(%rbp,%rdx) | |
.L10: | |
movl -252(%rbp), %edx | |
testl %edx, %edx | |
je .L11 | |
xorl %eax, %eax | |
movl $-128, %ecx | |
lzcntl %edx, %eax | |
leal -1(%rax), %esi | |
movslq -220(%rbp), %rax | |
movl %ecx, %edi | |
subl %esi, %edi | |
leaq (%rax,%rax,8), %rax | |
movb %dil, -299(%rbp,%rax) | |
movl $-2147483648, %eax | |
shrx %esi, %eax, %eax | |
subl %edx, %eax | |
movslq -188(%rbp), %rdx | |
lzcntl %eax, %eax | |
subl %eax, %ecx | |
leaq (%rdx,%rdx,8), %rdx | |
movb %cl, -299(%rbp,%rdx) | |
.L11: | |
movl -248(%rbp), %edx | |
testl %edx, %edx | |
je .L12 | |
xorl %eax, %eax | |
movl $-128, %ecx | |
lzcntl %edx, %eax | |
leal -1(%rax), %esi | |
movslq -216(%rbp), %rax | |
movl %ecx, %edi | |
subl %esi, %edi | |
leaq (%rax,%rax,8), %rax | |
movb %dil, -298(%rbp,%rax) | |
movl $-2147483648, %eax | |
shrx %esi, %eax, %eax | |
subl %edx, %eax | |
movslq -184(%rbp), %rdx | |
lzcntl %eax, %eax | |
subl %eax, %ecx | |
leaq (%rdx,%rdx,8), %rdx | |
movb %cl, -298(%rbp,%rdx) | |
.L12: | |
movl -244(%rbp), %edx | |
testl %edx, %edx | |
je .L13 | |
xorl %eax, %eax | |
movl $-128, %ecx | |
lzcntl %edx, %eax | |
leal -1(%rax), %esi | |
movslq -212(%rbp), %rax | |
movl %ecx, %edi | |
subl %esi, %edi | |
leaq (%rax,%rax,8), %rax | |
movb %dil, -297(%rbp,%rax) | |
movl $-2147483648, %eax | |
shrx %esi, %eax, %eax | |
subl %edx, %eax | |
movslq -180(%rbp), %rdx | |
lzcntl %eax, %eax | |
subl %eax, %ecx | |
leaq (%rdx,%rdx,8), %rdx | |
movb %cl, -297(%rbp,%rdx) | |
.L13: | |
leaq -304(%rbp), %rdx | |
movl $1, %esi | |
movl $.LC2, %edi | |
xorl %eax, %eax | |
vzeroupper | |
call printf | |
leaq -304(%rbp), %rax | |
movl $2, %esi | |
leaq 9(%rax), %rdx | |
movl $.LC2, %edi | |
xorl %eax, %eax | |
call printf | |
addq $280, %rsp | |
xorl %eax, %eax | |
popq %rbx | |
popq %r10 | |
.cfi_remember_state | |
.cfi_def_cfa 10, 0 | |
popq %r12 | |
popq %rbp | |
leaq -8(%r10), %rsp | |
.cfi_def_cfa 7, 8 | |
ret | |
.L14: | |
.cfi_restore_state | |
vmovdqa .LC1(%rip), %ymm2 | |
vpxor %xmm1, %xmm1, %xmm1 | |
jmp .L4 | |
.cfi_endproc | |
.LFE4875: | |
.size main, .-main | |
.section .rodata.cst32,"aM",@progbits,32 | |
.align 32 | |
.LC0: | |
.long 97 | |
.long 97 | |
.long 97 | |
.long 97 | |
.long 97 | |
.long 97 | |
.long 97 | |
.long 97 | |
.align 32 | |
.LC1: | |
.long 1 | |
.long 1 | |
.long 1 | |
.long 1 | |
.long 1 | |
.long 1 | |
.long 1 | |
.long 1 | |
.ident "GCC: (GNU) 6.2.1 20160830" | |
.section .note.GNU-stack,"",@progbits |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment