1400499b2:	41 57                	push   %r15
1400499b4:	48 83 ec 20          	sub    $0x20,%rsp
1400499b8:	49 8b e8             	mov    %r8,%rbp
1400499bb:	4c 8b f1             	mov    %rcx,%r14
1400499be:	48 8b 09             	mov    (%rcx),%rcx
1400499c1:	48 b8 b7 6d db b6 6d 	movabs $0x6db6db6db6db6db7,%rax
1400499c8:	db b6 6d
1400499cb:	4c 8b fa             	mov    %rdx,%r15
1400499ce:	4d 8b 46 10          	mov    0x10(%r14),%r8
1400499d2:	4c 2b c1             	sub    %rcx,%r8
1400499d5:	49 c1 f8 03          	sar    $0x3,%r8
1400499d9:	4c 0f af c0          	imul   %rax,%r8
1400499dd:	49 3b e8             	cmp    %r8,%rbp
1400499e0:	0f 86 81 00 00 00    	jbe    0x140049a67
1400499e6:	48 bb 92 24 49 92 24 	movabs $0x492492492492492,%rbx
1400499ed:	49 92 04
1400499f0:	48 3b eb             	cmp    %rbx,%rbp
1400499f3:	0f 87 dc 00 00 00    	ja     0x140049ad5
1400499f9:	49 8b d0             	mov    %r8,%rdx
1400499fc:	48 8b c3             	mov    %rbx,%rax
1400499ff:	48 d1 ea             	shr    $1,%rdx
140049a02:	48 2b c2             	sub    %rdx,%rax
140049a05:	4c 3b c0             	cmp    %rax,%r8
140049a08:	77 0b                	ja     0x140049a15
140049a0a:	4a 8d 1c 02          	lea    (%rdx,%r8,1),%rbx
140049a0e:	48 3b dd             	cmp    %rbp,%rbx
140049a11:	48 0f 42 dd          	cmovb  %rbp,%rbx
140049a15:	33 ff                	xor    %edi,%edi
140049a17:	48 85 c9             	test   %rcx,%rcx
140049a1a:	74 31                	je     0x140049a4d
140049a1c:	49 6b c0 38          	imul   $0x38,%r8,%rax
140049a20:	48 3d 00 10 00 00    	cmp    $0x1000,%rax
140049a26:	72 14                	jb     0x140049a3c
140049a28:	48 8b 51 f8          	mov    -0x8(%rcx),%rdx
140049a2c:	48 2b ca             	sub    %rdx,%rcx
140049a2f:	48 8d 41 f8          	lea    -0x8(%rcx),%rax
140049a33:	48 83 f8 1f          	cmp    $0x1f,%rax
140049a37:	77 27                	ja     0x140049a60
140049a39:	48 8b ca             	mov    %rdx,%rcx
140049a3c:	ff 15 7e 2e ac 00    	call   *0xac2e7e(%rip)        # 0x140b0c8c0
140049a42:	49 89 3e             	mov    %rdi,(%r14)
140049a45:	49 89 7e 08          	mov    %rdi,0x8(%r14)
140049a49:	49 89 7e 10          	mov    %rdi,0x10(%r14)
140049a4d:	48 8b d3             	mov    %rbx,%rdx
140049a50:	49 8b ce             	mov    %r14,%rcx
140049a53:	e8 ac 57 fd ff       	call   0x14001f204
140049a58:	49 8b 3e             	mov    (%r14),%rdi
140049a5b:	49 8b d7             	mov    %r15,%rdx
140049a5e:	eb 32                	jmp    0x140049a92
140049a60:	ff 15 32 2f ac 00    	call   *0xac2f32(%rip)        # 0x140b0c998
140049a66:	cc                   	int3
140049a67:	49 8b 76 08          	mov    0x8(%r14),%rsi
140049a6b:	48 2b f1             	sub    %rcx,%rsi
140049a6e:	48 c1 fe 03          	sar    $0x3,%rsi
140049a72:	48 0f af f0          	imul   %rax,%rsi
140049a76:	48 3b ee             	cmp    %rsi,%rbp
140049a79:	76 30                	jbe    0x140049aab
140049a7b:	48 6b de 38          	imul   $0x38,%rsi,%rbx
140049a7f:	4c 8b c3             	mov    %rbx,%r8
140049a82:	e8 df 69 aa 00       	call   0x140af0466
140049a87:	49 8b 7e 08          	mov    0x8(%r14),%rdi
140049a8b:	4a 8d 14 3b          	lea    (%rbx,%r15,1),%rdx
140049a8f:	48 2b ee             	sub    %rsi,%rbp
140049a92:	48 6b dd 38          	imul   $0x38,%rbp,%rbx
140049a96:	48 8b cf             	mov    %rdi,%rcx
140049a99:	4c 8b c3             	mov    %rbx,%r8
140049a9c:	e8 c5 69 aa 00       	call   0x140af0466
140049aa1:	48 8d 04 3b          	lea    (%rbx,%rdi,1),%rax
140049aa5:	49 89 46 08          	mov    %rax,0x8(%r14)
140049aa9:	eb 11                	jmp    0x140049abc
140049aab:	4c 6b c5 38          	imul   $0x38,%rbp,%r8
140049aaf:	4a 8d 1c 01          	lea    (%rcx,%r8,1),%rbx
140049ab3:	e8 ae 69 aa 00       	call   0x140af0466
140049ab8:	49 89 5e 08          	mov    %rbx,0x8(%r14)
140049abc:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
140049ac1:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
140049ac6:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
140049acb:	48 83 c4 20          	add    $0x20,%rsp
140049acf:	41 5f                	pop    %r15
140049ad1:	41 5e                	pop    %r14
140049ad3:	5f                   	pop    %rdi
140049ad4:	c3                   	ret
140049ad5:	e8 8e 22 fd ff       	call   0x14001bd68
140049ada:	cc                   	int3
140049adb:	90                   	nop
140049adc:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140049ae1:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
140049ae6:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
140049aeb:	57                   	push   %rdi
140049aec:	41 54                	push   %r12
140049aee:	41 55                	push   %r13
140049af0:	41 56                	push   %r14
140049af2:	41 57                	push   %r15
140049af4:	48 83 ec 40          	sub    $0x40,%rsp
140049af8:	49 8b f8             	mov    %r8,%rdi
140049afb:	48 8b ea             	mov    %rdx,%rbp
140049afe:	4c 8b f1             	mov    %rcx,%r14
140049b01:	48 8b 31             	mov    (%rcx),%rsi
140049b04:	48 8b 41 10          	mov    0x10(%rcx),%rax
140049b08:	48 2b c6             	sub    %rsi,%rax
140049b0b:	48 c1 f8 03          	sar    $0x3,%rax
140049b0f:	48 b9 cd cc cc cc cc 	movabs $0xcccccccccccccccd,%rcx
140049b16:	cc cc cc
140049b19:	48 0f af c1          	imul   %rcx,%rax
140049b1d:	4c 3b c0             	cmp    %rax,%r8
140049b20:	76 43                	jbe    0x140049b65
140049b22:	49 8b d0             	mov    %r8,%rdx
140049b25:	49 8b ce             	mov    %r14,%rcx
140049b28:	e8 af 07 00 00       	call   0x14004a2dc
140049b2d:	49 8b 06             	mov    (%r14),%rax
140049b30:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
140049b35:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
140049b3a:	4c 89 74 24 30       	mov    %r14,0x30(%rsp)
140049b3f:	48 85 ff             	test   %rdi,%rdi
140049b42:	74 1c                	je     0x140049b60
140049b44:	48 8b d5             	mov    %rbp,%rdx
140049b47:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
140049b4c:	e8 bf 61 00 00       	call   0x14004fd10
140049b51:	48 83 c5 28          	add    $0x28,%rbp
140049b55:	48 83 ef 01          	sub    $0x1,%rdi
140049b59:	75 e9                	jne    0x140049b44
140049b5b:	48 8b 44 24 28       	mov    0x28(%rsp),%rax
140049b60:	e9 bf 00 00 00       	jmp    0x140049c24
140049b65:	49 8b 46 08          	mov    0x8(%r14),%rax
140049b69:	4c 8b f8             	mov    %rax,%r15
140049b6c:	4c 2b fe             	sub    %rsi,%r15
140049b6f:	49 c1 ff 03          	sar    $0x3,%r15
140049b73:	4c 0f af f9          	imul   %rcx,%r15
140049b77:	49 3b ff             	cmp    %r15,%rdi
140049b7a:	0f 86 ad 00 00 00    	jbe    0x140049c2d
140049b80:	48 3b f0             	cmp    %rax,%rsi
140049b83:	74 6f                	je     0x140049bf4
140049b85:	4c 8d 66 18          	lea    0x18(%rsi),%r12
140049b89:	4c 8d 6a 18          	lea    0x18(%rdx),%r13
140049b8d:	0f 10 45 00          	movups 0x0(%rbp),%xmm0
140049b91:	f3 0f 7f 06          	movdqu %xmm0,(%rsi)
140049b95:	41 8b 45 f8          	mov    -0x8(%r13),%eax
140049b99:	41 89 44 24 f8       	mov    %eax,-0x8(%r12)
140049b9e:	41 8b 45 fc          	mov    -0x4(%r13),%eax
140049ba2:	41 89 44 24 fc       	mov    %eax,-0x4(%r12)
140049ba7:	4d 3b e5             	cmp    %r13,%r12
140049baa:	74 2f                	je     0x140049bdb
140049bac:	49 8b 1c 24          	mov    (%r12),%rbx
140049bb0:	4c 8b 43 08          	mov    0x8(%rbx),%r8
140049bb4:	49 8b d4             	mov    %r12,%rdx
140049bb7:	49 8b cc             	mov    %r12,%rcx
140049bba:	e8 6d 4a fd ff       	call   0x14001e62c
140049bbf:	48 89 5b 08          	mov    %rbx,0x8(%rbx)
140049bc3:	48 89 1b             	mov    %rbx,(%rbx)
140049bc6:	48 89 5b 10          	mov    %rbx,0x10(%rbx)
140049bca:	49 83 64 24 08 00    	andq   $0x0,0x8(%r12)
140049bd0:	49 8b d5             	mov    %r13,%rdx
140049bd3:	49 8b cc             	mov    %r12,%rcx
140049bd6:	e8 2d 04 00 00       	call   0x14004a008
140049bdb:	48 83 c6 28          	add    $0x28,%rsi
140049bdf:	49 83 c4 28          	add    $0x28,%r12
140049be3:	48 83 c5 28          	add    $0x28,%rbp
140049be7:	49 83 c5 28          	add    $0x28,%r13
140049beb:	49 8b 46 08          	mov    0x8(%r14),%rax
140049bef:	48 3b f0             	cmp    %rax,%rsi
140049bf2:	75 99                	jne    0x140049b8d
140049bf4:	49 2b ff             	sub    %r15,%rdi
140049bf7:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
140049bfc:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
140049c01:	4c 89 74 24 30       	mov    %r14,0x30(%rsp)
140049c06:	74 1c                	je     0x140049c24
140049c08:	48 8b d5             	mov    %rbp,%rdx
140049c0b:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
140049c10:	e8 fb 60 00 00       	call   0x14004fd10
140049c15:	48 83 c5 28          	add    $0x28,%rbp
140049c19:	48 83 ef 01          	sub    $0x1,%rdi
140049c1d:	75 e9                	jne    0x140049c08
140049c1f:	48 8b 44 24 28       	mov    0x28(%rsp),%rax
140049c24:	49 89 46 08          	mov    %rax,0x8(%r14)
140049c28:	e9 a8 00 00 00       	jmp    0x140049cd5
140049c2d:	4b 8d 04 80          	lea    (%r8,%r8,4),%rax
140049c31:	4c 8d 2c c6          	lea    (%rsi,%rax,8),%r13
140049c35:	48 85 ff             	test   %rdi,%rdi
140049c38:	74 62                	je     0x140049c9c
140049c3a:	4c 8d 7e 18          	lea    0x18(%rsi),%r15
140049c3e:	48 83 c5 18          	add    $0x18,%rbp
140049c42:	0f 10 45 e8          	movups -0x18(%rbp),%xmm0
140049c46:	f3 0f 7f 06          	movdqu %xmm0,(%rsi)
140049c4a:	8b 45 f8             	mov    -0x8(%rbp),%eax
140049c4d:	41 89 47 f8          	mov    %eax,-0x8(%r15)
140049c51:	8b 45 fc             	mov    -0x4(%rbp),%eax
140049c54:	41 89 47 fc          	mov    %eax,-0x4(%r15)
140049c58:	4c 3b fd             	cmp    %rbp,%r15
140049c5b:	74 2d                	je     0x140049c8a
140049c5d:	49 8b 1f             	mov    (%r15),%rbx
140049c60:	4c 8b 43 08          	mov    0x8(%rbx),%r8
140049c64:	49 8b d7             	mov    %r15,%rdx
140049c67:	49 8b cf             	mov    %r15,%rcx
140049c6a:	e8 bd 49 fd ff       	call   0x14001e62c
140049c6f:	48 89 5b 08          	mov    %rbx,0x8(%rbx)
140049c73:	48 89 1b             	mov    %rbx,(%rbx)
140049c76:	48 89 5b 10          	mov    %rbx,0x10(%rbx)
140049c7a:	49 83 67 08 00       	andq   $0x0,0x8(%r15)
140049c7f:	48 8b d5             	mov    %rbp,%rdx
140049c82:	49 8b cf             	mov    %r15,%rcx
140049c85:	e8 7e 03 00 00       	call   0x14004a008
140049c8a:	48 83 c6 28          	add    $0x28,%rsi
140049c8e:	49 83 c7 28          	add    $0x28,%r15
140049c92:	48 83 c5 28          	add    $0x28,%rbp
140049c96:	48 83 ef 01          	sub    $0x1,%rdi
140049c9a:	75 a6                	jne    0x140049c42
140049c9c:	49 8b 7e 08          	mov    0x8(%r14),%rdi
140049ca0:	4c 3b ef             	cmp    %rdi,%r13
140049ca3:	74 2c                	je     0x140049cd1
140049ca5:	49 8d 5d 18          	lea    0x18(%r13),%rbx
140049ca9:	4c 8b 03             	mov    (%rbx),%r8
140049cac:	4d 8b 40 08          	mov    0x8(%r8),%r8
140049cb0:	48 8b d3             	mov    %rbx,%rdx
140049cb3:	48 8b cb             	mov    %rbx,%rcx
140049cb6:	e8 71 49 fd ff       	call   0x14001e62c
140049cbb:	48 8b 0b             	mov    (%rbx),%rcx
140049cbe:	ff 15 fc 2b ac 00    	call   *0xac2bfc(%rip)        # 0x140b0c8c0
140049cc4:	48 83 c3 28          	add    $0x28,%rbx
140049cc8:	48 8d 43 e8          	lea    -0x18(%rbx),%rax
140049ccc:	48 3b c7             	cmp    %rdi,%rax
140049ccf:	75 d8                	jne    0x140049ca9
140049cd1:	4d 89 6e 08          	mov    %r13,0x8(%r14)
140049cd5:	4c 8d 5c 24 40       	lea    0x40(%rsp),%r11
140049cda:	49 8b 5b 30          	mov    0x30(%r11),%rbx
140049cde:	49 8b 6b 38          	mov    0x38(%r11),%rbp
140049ce2:	49 8b 73 40          	mov    0x40(%r11),%rsi
140049ce6:	49 8b e3             	mov    %r11,%rsp
140049ce9:	41 5f                	pop    %r15
140049ceb:	41 5e                	pop    %r14
140049ced:	41 5d                	pop    %r13
140049cef:	41 5c                	pop    %r12
140049cf1:	5f                   	pop    %rdi
140049cf2:	c3                   	ret
140049cf3:	90                   	nop
140049cf4:	48 8b c4             	mov    %rsp,%rax
140049cf7:	48 89 58 08          	mov    %rbx,0x8(%rax)
140049cfb:	48 89 68 10          	mov    %rbp,0x10(%rax)
140049cff:	48 89 70 18          	mov    %rsi,0x18(%rax)
140049d03:	48 89 78 20          	mov    %rdi,0x20(%rax)
140049d07:	41 54                	push   %r12
140049d09:	41 56                	push   %r14
140049d0b:	41 57                	push   %r15
140049d0d:	48 83 ec 40          	sub    $0x40,%rsp
140049d11:	49 8b f8             	mov    %r8,%rdi
140049d14:	4c 8b fa             	mov    %rdx,%r15
140049d17:	4c 8b f1             	mov    %rcx,%r14
140049d1a:	48 8b 31             	mov    (%rcx),%rsi
140049d1d:	48 8b 41 10          	mov    0x10(%rcx),%rax
140049d21:	48 2b c6             	sub    %rsi,%rax
140049d24:	48 c1 f8 03          	sar    $0x3,%rax
140049d28:	48 b9 b7 6d db b6 6d 	movabs $0x6db6db6db6db6db7,%rcx
140049d2f:	db b6 6d
140049d32:	48 0f af c1          	imul   %rcx,%rax
140049d36:	4c 3b c0             	cmp    %rax,%r8
140049d39:	76 64                	jbe    0x140049d9f
140049d3b:	49 8b d0             	mov    %r8,%rdx
140049d3e:	49 8b ce             	mov    %r14,%rcx
140049d41:	e8 b2 06 00 00       	call   0x14004a3f8
140049d46:	49 8b 1e             	mov    (%r14),%rbx
140049d49:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
140049d4e:	48 89 5c 24 28       	mov    %rbx,0x28(%rsp)
140049d53:	4c 89 74 24 30       	mov    %r14,0x30(%rsp)
140049d58:	48 85 ff             	test   %rdi,%rdi
140049d5b:	74 3d                	je     0x140049d9a
140049d5d:	49 8d 77 1c          	lea    0x1c(%r15),%rsi
140049d61:	48 8d 56 e4          	lea    -0x1c(%rsi),%rdx
140049d65:	48 8b cb             	mov    %rbx,%rcx
140049d68:	e8 0f e6 ff ff       	call   0x14004837c
140049d6d:	8a 46 fc             	mov    -0x4(%rsi),%al
140049d70:	88 43 18             	mov    %al,0x18(%rbx)
140049d73:	8b 06                	mov    (%rsi),%eax
140049d75:	89 43 1c             	mov    %eax,0x1c(%rbx)
140049d78:	8b 46 04             	mov    0x4(%rsi),%eax
140049d7b:	89 43 20             	mov    %eax,0x20(%rbx)
140049d7e:	0f 10 46 08          	movups 0x8(%rsi),%xmm0
140049d82:	f3 0f 7f 43 24       	movdqu %xmm0,0x24(%rbx)
140049d87:	48 83 c3 38          	add    $0x38,%rbx
140049d8b:	48 89 5c 24 28       	mov    %rbx,0x28(%rsp)
140049d90:	48 8d 76 38          	lea    0x38(%rsi),%rsi
140049d94:	48 83 ef 01          	sub    $0x1,%rdi
140049d98:	75 c7                	jne    0x140049d61
140049d9a:	e9 55 01 00 00       	jmp    0x140049ef4
140049d9f:	49 8b 5e 08          	mov    0x8(%r14),%rbx
140049da3:	48 8b eb             	mov    %rbx,%rbp
140049da6:	48 2b ee             	sub    %rsi,%rbp
140049da9:	48 c1 fd 03          	sar    $0x3,%rbp
140049dad:	48 0f af e9          	imul   %rcx,%rbp
140049db1:	48 3b fd             	cmp    %rbp,%rdi
140049db4:	0f 86 b4 00 00 00    	jbe    0x140049e6e
140049dba:	48 3b f3             	cmp    %rbx,%rsi
140049dbd:	74 59                	je     0x140049e18
140049dbf:	49 bc ab aa aa aa aa 	movabs $0xaaaaaaaaaaaaaaab,%r12
140049dc6:	aa aa aa
140049dc9:	49 3b f7             	cmp    %r15,%rsi
140049dcc:	74 1a                	je     0x140049de8
140049dce:	4d 8b 47 08          	mov    0x8(%r15),%r8
140049dd2:	4d 2b 07             	sub    (%r15),%r8
140049dd5:	49 c1 f8 04          	sar    $0x4,%r8
140049dd9:	4d 0f af c4          	imul   %r12,%r8
140049ddd:	49 8b 17             	mov    (%r15),%rdx
140049de0:	48 8b ce             	mov    %rsi,%rcx
140049de3:	e8 80 35 00 00       	call   0x14004d368
140049de8:	41 8a 47 18          	mov    0x18(%r15),%al
140049dec:	88 46 18             	mov    %al,0x18(%rsi)
140049def:	41 8b 47 1c          	mov    0x1c(%r15),%eax
140049df3:	89 46 1c             	mov    %eax,0x1c(%rsi)
140049df6:	41 8b 47 20          	mov    0x20(%r15),%eax
140049dfa:	89 46 20             	mov    %eax,0x20(%rsi)
140049dfd:	41 0f 10 47 24       	movups 0x24(%r15),%xmm0
140049e02:	f3 0f 7f 46 24       	movdqu %xmm0,0x24(%rsi)
140049e07:	48 83 c6 38          	add    $0x38,%rsi
140049e0b:	49 83 c7 38          	add    $0x38,%r15
140049e0f:	49 8b 5e 08          	mov    0x8(%r14),%rbx
140049e13:	48 3b f3             	cmp    %rbx,%rsi
140049e16:	75 b1                	jne    0x140049dc9
140049e18:	48 2b fd             	sub    %rbp,%rdi
140049e1b:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
140049e20:	48 89 5c 24 28       	mov    %rbx,0x28(%rsp)
140049e25:	4c 89 74 24 30       	mov    %r14,0x30(%rsp)
140049e2a:	74 3d                	je     0x140049e69
140049e2c:	49 8d 77 1c          	lea    0x1c(%r15),%rsi
140049e30:	48 8d 56 e4          	lea    -0x1c(%rsi),%rdx
140049e34:	48 8b cb             	mov    %rbx,%rcx
140049e37:	e8 40 e5 ff ff       	call   0x14004837c
140049e3c:	8a 46 fc             	mov    -0x4(%rsi),%al
140049e3f:	88 43 18             	mov    %al,0x18(%rbx)
140049e42:	8b 06                	mov    (%rsi),%eax
140049e44:	89 43 1c             	mov    %eax,0x1c(%rbx)
140049e47:	8b 46 04             	mov    0x4(%rsi),%eax
140049e4a:	89 43 20             	mov    %eax,0x20(%rbx)
140049e4d:	0f 10 46 08          	movups 0x8(%rsi),%xmm0
140049e51:	f3 0f 7f 43 24       	movdqu %xmm0,0x24(%rbx)
140049e56:	48 83 c3 38          	add    $0x38,%rbx
140049e5a:	48 89 5c 24 28       	mov    %rbx,0x28(%rsp)
140049e5f:	48 8d 76 38          	lea    0x38(%rsi),%rsi
140049e63:	48 83 ef 01          	sub    $0x1,%rdi
140049e67:	75 c7                	jne    0x140049e30
140049e69:	e9 86 00 00 00       	jmp    0x140049ef4
140049e6e:	48 6b df 38          	imul   $0x38,%rdi,%rbx
140049e72:	48 03 de             	add    %rsi,%rbx
140049e75:	48 85 ff             	test   %rdi,%rdi
140049e78:	74 5d                	je     0x140049ed7
140049e7a:	49 83 c7 18          	add    $0x18,%r15
140049e7e:	49 bc ab aa aa aa aa 	movabs $0xaaaaaaaaaaaaaaab,%r12
140049e85:	aa aa aa
140049e88:	49 8d 57 e8          	lea    -0x18(%r15),%rdx
140049e8c:	48 3b f2             	cmp    %rdx,%rsi
140049e8f:	74 1a                	je     0x140049eab
140049e91:	4d 8b 47 f0          	mov    -0x10(%r15),%r8
140049e95:	4c 2b 02             	sub    (%rdx),%r8