	.file	"sillysaverestore"
	.text
	.globl	sillysaverestore
	.align	16, 0x90
	.type	sillysaverestore,@function
sillysaverestore:                       # @sillysaverestore
.Leh_func_begin0:
# BB#0:                                 # %entry
	pushq	%rbp
.Ltmp0:
	pushq	%r15
.Ltmp1:
	pushq	%r14
.Ltmp2:
	pushq	%r13
.Ltmp3:
	pushq	%r12
.Ltmp4:
	pushq	%rbx
.Ltmp5:
	subq	$72, %rsp
.Ltmp6:
	movaps	%xmm2, 32(%rsp)         # 16-byte Spill
	movq	%rsi, %rbx
	movapd	%xmm1, 16(%rsp)         # 16-byte Spill
	movapd	%xmm0, (%rsp)           # 16-byte Spill
	movd	%xmm0, %esi
                                        # kill: RSI<def> ESI<kill>
	leaq	(%rsi,%rbx), %rax
	movd	%xmm1, %r14d
	movslq	%r14d, %r8
	cmpq	%rax, (%rcx,%r8,8)
	movq	%rcx, %r15
	movq	%rdx, %r12
	movq	%rdi, %r13
	je	.LBB0_2
# BB#1:                                 # %if-true-block
	movq	%r13, %rdi
	movl	%r14d, %edx
	movq	%rax, %rcx
	movq	%r12, %r8
	movq	%r15, %r9
	callq	expensive_func
.LBB0_2:                                # %endif-block
	movapd	32(%rsp), %xmm2         # 16-byte Reload
	movd	%xmm2, %eax
	shll	$4, %r14d
	addl	%eax, %r14d
	movdqa	(%rsp), %xmm0           # 16-byte Reload
	pextrd	$1, %xmm0, %esi
                                        # kill: RSI<def> ESI<kill>
	leaq	(%rsi,%rbx), %rcx
	movdqa	16(%rsp), %xmm1         # 16-byte Reload
	pextrd	$1, %xmm1, %ebp
	movslq	%ebp, %rax
	cmpq	%rcx, (%r15,%rax,8)
	movslq	%r14d, %rax
	movd	(%r12,%rax,4), %xmm0
	movapd	%xmm0, 48(%rsp)         # 16-byte Spill
	je	.LBB0_4
# BB#3:                                 # %if-true-block2
	movq	%r13, %rdi
	movl	%ebp, %edx
	movq	%r12, %r8
	movq	%r15, %r9
	callq	expensive_func
.LBB0_4:                                # %endif-block1
	movdqa	32(%rsp), %xmm2         # 16-byte Reload
	pextrd	$1, %xmm2, %eax
	shll	$4, %ebp
	addl	%eax, %ebp
	movdqa	(%rsp), %xmm0           # 16-byte Reload
	pextrd	$2, %xmm0, %esi
                                        # kill: RSI<def> ESI<kill>
	leaq	(%rsi,%rbx), %rcx
	movdqa	16(%rsp), %xmm1         # 16-byte Reload
	pextrd	$2, %xmm1, %r14d
	movslq	%r14d, %rax
	cmpq	%rcx, (%r15,%rax,8)
	movslq	%ebp, %rax
	movdqa	48(%rsp), %xmm0         # 16-byte Reload
	pinsrd	$1, (%r12,%rax,4), %xmm0
	movdqa	%xmm0, 48(%rsp)         # 16-byte Spill
	je	.LBB0_6
# BB#5:                                 # %if-true-block4
	movq	%r13, %rdi
	movl	%r14d, %edx
	movq	%r12, %r8
	movq	%r15, %r9
	callq	expensive_func
.LBB0_6:                                # %endif-block3
	movdqa	32(%rsp), %xmm2         # 16-byte Reload
	pextrd	$2, %xmm2, %eax
	shll	$4, %r14d
	addl	%eax, %r14d
	movdqa	(%rsp), %xmm0           # 16-byte Reload
	pextrd	$3, %xmm0, %esi
                                        # kill: RSI<def> ESI<kill>
	addq	%rsi, %rbx
	movdqa	16(%rsp), %xmm1         # 16-byte Reload
	pextrd	$3, %xmm1, %ebp
	movslq	%ebp, %rax
	cmpq	%rbx, (%r15,%rax,8)
	movslq	%r14d, %rax
	movdqa	48(%rsp), %xmm0         # 16-byte Reload
	pinsrd	$2, (%r12,%rax,4), %xmm0
	movdqa	%xmm0, 48(%rsp)         # 16-byte Spill
	je	.LBB0_8
# BB#7:                                 # %if-true-block6
	movq	%r13, %rdi
	movl	%ebp, %edx
	movq	%rbx, %rcx
	movq	%r12, %r8
	movq	%r15, %r9
	callq	expensive_func
.LBB0_8:                                # %endif-block5
	movdqa	32(%rsp), %xmm2         # 16-byte Reload
	pextrd	$3, %xmm2, %eax
	shll	$4, %ebp
	addl	%eax, %ebp
	movslq	%ebp, %rax
	movdqa	48(%rsp), %xmm0         # 16-byte Reload
	pinsrd	$3, (%r12,%rax,4), %xmm0
	addq	$72, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	ret
.Ltmp7:
	.size	sillysaverestore, .Ltmp7-sillysaverestore
.Leh_func_end0:

	.section	.eh_frame,"aw",@progbits
.LEH_frame0:
.Lsection_eh_frame0:
.Leh_frame_common0:
.Lset0 = .Leh_frame_common_end0-.Leh_frame_common_begin0 # Length of Common Information Entry
	.long	.Lset0
.Leh_frame_common_begin0:
	.long	0                       # CIE Identifier Tag
	.byte	1                       # DW_CIE_VERSION
	.asciz	 "zR"                   # CIE Augmentation
	.uleb128	1               # CIE Code Alignment Factor
	.sleb128	-8              # CIE Data Alignment Factor
	.byte	16                      # CIE Return Address Column
	.uleb128	1               # Augmentation Size
	.byte	3                       # FDE Encoding = udata4
	.byte	12                      # DW_CFA_def_cfa
	.uleb128	7               # Register
	.uleb128	8               # Offset
	.byte	144                     # DW_CFA_offset + Reg (16)
	.uleb128	1               # Offset
	.align	8
.Leh_frame_common_end0:
.Lsillysaverestore.eh:
.Lset1 = .Leh_frame_end0-.Leh_frame_begin0 # Length of Frame Information Entry
	.long	.Lset1
.Leh_frame_begin0:
.Lset2 = .Leh_frame_begin0-.Leh_frame_common0 # FDE CIE offset
	.long	.Lset2
	.long	.Leh_func_begin0        # FDE initial location
.Lset3 = .Leh_func_end0-.Leh_func_begin0 # FDE address range
	.long	.Lset3
	.uleb128	0               # Augmentation size
	.byte	4                       # DW_CFA_advance_loc4
.Lset4 = .Ltmp0-.Leh_func_begin0
	.long	.Lset4
	.byte	14                      # DW_CFA_def_cfa_offset
	.uleb128	16              # Offset
	.byte	4                       # DW_CFA_advance_loc4
.Lset5 = .Ltmp1-.Ltmp0
	.long	.Lset5
	.byte	14                      # DW_CFA_def_cfa_offset
	.uleb128	24              # Offset
	.byte	4                       # DW_CFA_advance_loc4
.Lset6 = .Ltmp2-.Ltmp1
	.long	.Lset6
	.byte	14                      # DW_CFA_def_cfa_offset
	.uleb128	32              # Offset
	.byte	4                       # DW_CFA_advance_loc4
.Lset7 = .Ltmp3-.Ltmp2
	.long	.Lset7
	.byte	14                      # DW_CFA_def_cfa_offset
	.uleb128	40              # Offset
	.byte	4                       # DW_CFA_advance_loc4
.Lset8 = .Ltmp4-.Ltmp3
	.long	.Lset8
	.byte	14                      # DW_CFA_def_cfa_offset
	.uleb128	48              # Offset
	.byte	4                       # DW_CFA_advance_loc4
.Lset9 = .Ltmp5-.Ltmp4
	.long	.Lset9
	.byte	14                      # DW_CFA_def_cfa_offset
	.uleb128	56              # Offset
	.byte	4                       # DW_CFA_advance_loc4
.Lset10 = .Ltmp6-.Ltmp5
	.long	.Lset10
	.byte	14                      # DW_CFA_def_cfa_offset
	.uleb128	128             # Offset
	.byte	131                     # DW_CFA_offset + Reg (3)
	.uleb128	7               # Offset
	.byte	140                     # DW_CFA_offset + Reg (12)
	.uleb128	6               # Offset
	.byte	141                     # DW_CFA_offset + Reg (13)
	.uleb128	5               # Offset
	.byte	142                     # DW_CFA_offset + Reg (14)
	.uleb128	4               # Offset
	.byte	143                     # DW_CFA_offset + Reg (15)
	.uleb128	3               # Offset
	.byte	134                     # DW_CFA_offset + Reg (6)
	.uleb128	2               # Offset
	.align	8
.Leh_frame_end0:


	.section	.note.GNU-stack,"",@progbits
