1405a5691:	48 89 1e             	mov    %rbx,(%rsi)
1405a5694:	c6 46 08 00          	movb   $0x0,0x8(%rsi)
1405a5698:	48 8b c6             	mov    %rsi,%rax
1405a569b:	4c 8d 5c 24 40       	lea    0x40(%rsp),%r11
1405a56a0:	49 8b 5b 38          	mov    0x38(%r11),%rbx
1405a56a4:	49 8b 6b 40          	mov    0x40(%r11),%rbp
1405a56a8:	49 8b 73 48          	mov    0x48(%r11),%rsi
1405a56ac:	49 8b e3             	mov    %r11,%rsp
1405a56af:	41 5f                	pop    %r15
1405a56b1:	41 5e                	pop    %r14
1405a56b3:	41 5d                	pop    %r13
1405a56b5:	41 5c                	pop    %r12
1405a56b7:	5f                   	pop    %rdi
1405a56b8:	c3                   	ret
1405a56b9:	4c 8b fb             	mov    %rbx,%r15
1405a56bc:	48 8d 45 08          	lea    0x8(%rbp),%rax
1405a56c0:	48 b9 92 24 49 92 24 	movabs $0x492492492492492,%rcx
1405a56c7:	49 92 04
1405a56ca:	48 39 4d 10          	cmp    %rcx,0x10(%rbp)
1405a56ce:	0f 84 82 01 00 00    	je     0x1405a5856
1405a56d4:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
1405a56d9:	48 c7 44 24 28 00 00 	movq   $0x0,0x28(%rsp)
1405a56e0:	00 00
1405a56e2:	b9 38 00 00 00       	mov    $0x38,%ecx
1405a56e7:	e8 1c 5a 87 00       	call   0x140e1b108
1405a56ec:	48 8b f8             	mov    %rax,%rdi
1405a56ef:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
1405a56f4:	49 8b d6             	mov    %r14,%rdx
1405a56f7:	48 8d 48 10          	lea    0x10(%rax),%rcx
1405a56fb:	e8 10 24 00 00       	call   0x1405a7b10
1405a5700:	49 8b 0c 24          	mov    (%r12),%rcx
1405a5704:	48 89 4f 30          	mov    %rcx,0x30(%rdi)
1405a5708:	48 8b 4d 10          	mov    0x10(%rbp),%rcx
1405a570c:	48 83 c1 01          	add    $0x1,%rcx
1405a5710:	0f 57 c0             	xorps  %xmm0,%xmm0
1405a5713:	78 07                	js     0x1405a571c
1405a5715:	f3 48 0f 2a c1       	cvtsi2ss %rcx,%xmm0
1405a571a:	eb 15                	jmp    0x1405a5731
1405a571c:	48 8b c1             	mov    %rcx,%rax
1405a571f:	48 d1 e8             	shr    $1,%rax
1405a5722:	83 e1 01             	and    $0x1,%ecx
1405a5725:	48 0b c1             	or     %rcx,%rax
1405a5728:	f3 48 0f 2a c0       	cvtsi2ss %rax,%xmm0
1405a572d:	f3 0f 58 c0          	addss  %xmm0,%xmm0
1405a5731:	48 8b 5d 38          	mov    0x38(%rbp),%rbx
1405a5735:	f3 0f 10 5d 00       	movss  0x0(%rbp),%xmm3
1405a573a:	0f 57 d2             	xorps  %xmm2,%xmm2
1405a573d:	48 85 db             	test   %rbx,%rbx
1405a5740:	78 07                	js     0x1405a5749
1405a5742:	f3 48 0f 2a d3       	cvtsi2ss %rbx,%xmm2
1405a5747:	eb 18                	jmp    0x1405a5761
1405a5749:	48 8b cb             	mov    %rbx,%rcx
1405a574c:	48 d1 e9             	shr    $1,%rcx
1405a574f:	48 8b c3             	mov    %rbx,%rax
1405a5752:	83 e0 01             	and    $0x1,%eax
1405a5755:	48 0b c8             	or     %rax,%rcx
1405a5758:	f3 48 0f 2a d1       	cvtsi2ss %rcx,%xmm2
1405a575d:	f3 0f 58 d2          	addss  %xmm2,%xmm2
1405a5761:	0f 28 c8             	movaps %xmm0,%xmm1
1405a5764:	f3 0f 5e ca          	divss  %xmm2,%xmm1
1405a5768:	0f 2f cb             	comiss %xmm3,%xmm1
1405a576b:	0f 86 89 00 00 00    	jbe    0x1405a57fa
1405a5771:	f3 0f 5e c3          	divss  %xmm3,%xmm0
1405a5775:	e8 a6 b9 88 00       	call   0x140e31120
1405a577a:	33 c9                	xor    %ecx,%ecx
1405a577c:	f3 0f 10 0d e0 8e a0 	movss  0xa08ee0(%rip),%xmm1        # 0x140fae664
1405a5783:	00
1405a5784:	0f 2f c1             	comiss %xmm1,%xmm0
1405a5787:	72 16                	jb     0x1405a579f
1405a5789:	f3 0f 5c c1          	subss  %xmm1,%xmm0
1405a578d:	0f 2f c1             	comiss %xmm1,%xmm0
1405a5790:	73 0d                	jae    0x1405a579f
1405a5792:	48 b8 00 00 00 00 00 	movabs $0x8000000000000000,%rax
1405a5799:	00 00 80
1405a579c:	48 8b c8             	mov    %rax,%rcx
1405a579f:	f3 48 0f 2c c0       	cvttss2si %xmm0,%rax
1405a57a4:	48 03 c1             	add    %rcx,%rax
1405a57a7:	b9 08 00 00 00       	mov    $0x8,%ecx
1405a57ac:	48 3b c1             	cmp    %rcx,%rax
1405a57af:	48 0f 47 c8          	cmova  %rax,%rcx
1405a57b3:	48 3b d9             	cmp    %rcx,%rbx
1405a57b6:	73 19                	jae    0x1405a57d1
1405a57b8:	48 81 fb 00 02 00 00 	cmp    $0x200,%rbx
1405a57bf:	73 0d                	jae    0x1405a57ce
1405a57c1:	48 8d 1c dd 00 00 00 	lea    0x0(,%rbx,8),%rbx
1405a57c8:	00
1405a57c9:	48 3b d9             	cmp    %rcx,%rbx
1405a57cc:	73 03                	jae    0x1405a57d1
1405a57ce:	48 8b d9             	mov    %rcx,%rbx
1405a57d1:	48 8b d3             	mov    %rbx,%rdx
1405a57d4:	48 8b cd             	mov    %rbp,%rcx
1405a57d7:	e8 b4 1f 00 00       	call   0x1405a7790
1405a57dc:	48 8b 5c 24 70       	mov    0x70(%rsp),%rbx
1405a57e1:	4c 8b cb             	mov    %rbx,%r9
1405a57e4:	4c 8d 47 10          	lea    0x10(%rdi),%r8
1405a57e8:	48 8d 54 24 30       	lea    0x30(%rsp),%rdx
1405a57ed:	48 8b cd             	mov    %rbp,%rcx
1405a57f0:	e8 6b fd ff ff       	call   0x1405a5560
1405a57f5:	4c 8b 38             	mov    (%rax),%r15
1405a57f8:	eb 05                	jmp    0x1405a57ff
1405a57fa:	48 8b 5c 24 70       	mov    0x70(%rsp),%rbx
1405a57ff:	49 8b 57 08          	mov    0x8(%r15),%rdx
1405a5803:	48 ff 45 10          	incq   0x10(%rbp)
1405a5807:	4c 89 3f             	mov    %r15,(%rdi)
1405a580a:	48 89 57 08          	mov    %rdx,0x8(%rdi)
1405a580e:	48 89 3a             	mov    %rdi,(%rdx)
1405a5811:	49 89 7f 08          	mov    %rdi,0x8(%r15)
1405a5815:	48 8b 4d 18          	mov    0x18(%rbp),%rcx
1405a5819:	48 8b 45 30          	mov    0x30(%rbp),%rax
1405a581d:	48 23 c3             	and    %rbx,%rax
1405a5820:	48 03 c0             	add    %rax,%rax
1405a5823:	4c 8b 04 c1          	mov    (%rcx,%rax,8),%r8
1405a5827:	4c 3b 45 08          	cmp    0x8(%rbp),%r8
1405a582b:	75 06                	jne    0x1405a5833
1405a582d:	48 89 3c c1          	mov    %rdi,(%rcx,%rax,8)
1405a5831:	eb 12                	jmp    0x1405a5845
1405a5833:	4d 3b c7             	cmp    %r15,%r8
1405a5836:	75 06                	jne    0x1405a583e
1405a5838:	48 89 3c c1          	mov    %rdi,(%rcx,%rax,8)
1405a583c:	eb 0c                	jmp    0x1405a584a
1405a583e:	48 39 54 c1 08       	cmp    %rdx,0x8(%rcx,%rax,8)
1405a5843:	75 05                	jne    0x1405a584a
1405a5845:	48 89 7c c1 08       	mov    %rdi,0x8(%rcx,%rax,8)
1405a584a:	48 89 3e             	mov    %rdi,(%rsi)
1405a584d:	c6 46 08 01          	movb   $0x1,0x8(%rsi)
1405a5851:	e9 42 fe ff ff       	jmp    0x1405a5698
1405a5856:	48 8d 0d 43 8c a0 00 	lea    0xa08c43(%rip),%rcx        # 0x140fae4a0
1405a585d:	e8 52 5b 85 00       	call   0x140dfb3b4
1405a5862:	cc                   	int3
1405a5863:	cc                   	int3
1405a5864:	cc                   	int3
1405a5865:	cc                   	int3
1405a5866:	cc                   	int3
1405a5867:	cc                   	int3
1405a5868:	cc                   	int3
1405a5869:	cc                   	int3
1405a586a:	cc                   	int3
1405a586b:	cc                   	int3
1405a586c:	cc                   	int3
1405a586d:	cc                   	int3
1405a586e:	cc                   	int3
1405a586f:	cc                   	int3
1405a5870:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1405a5875:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
1405a587a:	57                   	push   %rdi
1405a587b:	48 83 ec 20          	sub    $0x20,%rsp
1405a587f:	48 8b da             	mov    %rdx,%rbx
1405a5882:	48 8b f9             	mov    %rcx,%rdi
1405a5885:	48 8b 11             	mov    (%rcx),%rdx
1405a5888:	49 8b f0             	mov    %r8,%rsi
1405a588b:	48 8b 0b             	mov    (%rbx),%rcx
1405a588e:	e8 8d 23 00 00       	call   0x1405a7c20
1405a5893:	84 c0                	test   %al,%al
1405a5895:	74 0c                	je     0x1405a58a3
1405a5897:	48 8b 07             	mov    (%rdi),%rax
1405a589a:	4c 8b 0b             	mov    (%rbx),%r9
1405a589d:	48 89 03             	mov    %rax,(%rbx)
1405a58a0:	4c 89 0f             	mov    %r9,(%rdi)
1405a58a3:	48 8b 13             	mov    (%rbx),%rdx
1405a58a6:	48 8b 0e             	mov    (%rsi),%rcx
1405a58a9:	e8 72 23 00 00       	call   0x1405a7c20
1405a58ae:	84 c0                	test   %al,%al
1405a58b0:	74 24                	je     0x1405a58d6
1405a58b2:	48 8b 03             	mov    (%rbx),%rax
1405a58b5:	48 8b 0e             	mov    (%rsi),%rcx
1405a58b8:	48 89 06             	mov    %rax,(%rsi)
1405a58bb:	48 89 0b             	mov    %rcx,(%rbx)
1405a58be:	48 8b 17             	mov    (%rdi),%rdx
1405a58c1:	e8 5a 23 00 00       	call   0x1405a7c20
1405a58c6:	84 c0                	test   %al,%al
1405a58c8:	74 0c                	je     0x1405a58d6
1405a58ca:	48 8b 07             	mov    (%rdi),%rax
1405a58cd:	48 8b 0b             	mov    (%rbx),%rcx
1405a58d0:	48 89 03             	mov    %rax,(%rbx)
1405a58d3:	48 89 0f             	mov    %rcx,(%rdi)
1405a58d6:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1405a58db:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
1405a58e0:	48 83 c4 20          	add    $0x20,%rsp
1405a58e4:	5f                   	pop    %rdi
1405a58e5:	c3                   	ret
1405a58e6:	cc                   	int3
1405a58e7:	cc                   	int3
1405a58e8:	cc                   	int3
1405a58e9:	cc                   	int3
1405a58ea:	cc                   	int3
1405a58eb:	cc                   	int3
1405a58ec:	cc                   	int3
1405a58ed:	cc                   	int3
1405a58ee:	cc                   	int3
1405a58ef:	cc                   	int3
1405a58f0:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
1405a58f5:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
1405a58fa:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
1405a58ff:	48 89 4c 24 08       	mov    %rcx,0x8(%rsp)
1405a5904:	57                   	push   %rdi
1405a5905:	41 54                	push   %r12
1405a5907:	41 55                	push   %r13
1405a5909:	41 56                	push   %r14
1405a590b:	41 57                	push   %r15
1405a590d:	48 83 ec 20          	sub    $0x20,%rsp
1405a5911:	49 8b c0             	mov    %r8,%rax
1405a5914:	49 8d 70 f8          	lea    -0x8(%r8),%rsi
1405a5918:	48 2b c2             	sub    %rdx,%rax
1405a591b:	48 8b e9             	mov    %rcx,%rbp
1405a591e:	48 c1 f8 04          	sar    $0x4,%rax
1405a5922:	41 0f b6 d9          	movzbl %r9b,%ebx
1405a5926:	4d 8b e8             	mov    %r8,%r13
1405a5929:	4c 8b e2             	mov    %rdx,%r12
1405a592c:	48 8b ca             	mov    %rdx,%rcx
1405a592f:	48 8d 3c c2          	lea    (%rdx,%rax,8),%rdi
1405a5933:	48 8b c6             	mov    %rsi,%rax
1405a5936:	48 2b c2             	sub    %rdx,%rax
1405a5939:	48 c1 f8 03          	sar    $0x3,%rax
1405a593d:	48 83 f8 28          	cmp    $0x28,%rax
1405a5941:	7e 6e                	jle    0x1405a59b1
1405a5943:	48 ff c0             	inc    %rax
1405a5946:	48 c1 f8 03          	sar    $0x3,%rax
1405a594a:	4c 8b f8             	mov    %rax,%r15
1405a594d:	49 c1 e7 04          	shl    $0x4,%r15
1405a5951:	4c 8d 34 c5 00 00 00 	lea    0x0(,%rax,8),%r14
1405a5958:	00
1405a5959:	49 8d 2c 16          	lea    (%r14,%rdx,1),%rbp
1405a595d:	4d 8d 04 17          	lea    (%r15,%rdx,1),%r8
1405a5961:	48 8b d5             	mov    %rbp,%rdx
1405a5964:	e8 07 ff ff ff       	call   0x1405a5870
1405a5969:	48 8b cf             	mov    %rdi,%rcx
1405a596c:	4d 8d 04 3e          	lea    (%r14,%rdi,1),%r8
1405a5970:	49 2b ce             	sub    %r14,%rcx
1405a5973:	44 0f b6 cb          	movzbl %bl,%r9d
1405a5977:	48 8b d7             	mov    %rdi,%rdx
1405a597a:	e8 f1 fe ff ff       	call   0x1405a5870
1405a597f:	4d 8d 45 f8          	lea    -0x8(%r13),%r8
1405a5983:	49 2b f6             	sub    %r14,%rsi
1405a5986:	49 8b c8             	mov    %r8,%rcx
1405a5989:	44 0f b6 cb          	movzbl %bl,%r9d
1405a598d:	49 2b cf             	sub    %r15,%rcx
1405a5990:	48 8b d6             	mov    %rsi,%rdx
1405a5993:	e8 d8 fe ff ff       	call   0x1405a5870
1405a5998:	44 0f b6 cb          	movzbl %bl,%r9d
1405a599c:	4c 8b c6             	mov    %rsi,%r8
1405a599f:	48 8b d7             	mov    %rdi,%rdx
1405a59a2:	48 8b cd             	mov    %rbp,%rcx
1405a59a5:	e8 c6 fe ff ff       	call   0x1405a5870
1405a59aa:	48 8b 6c 24 50       	mov    0x50(%rsp),%rbp
1405a59af:	eb 0b                	jmp    0x1405a59bc
1405a59b1:	4c 8b c6             	mov    %rsi,%r8
1405a59b4:	48 8b d7             	mov    %rdi,%rdx
1405a59b7:	e8 b4 fe ff ff       	call   0x1405a5870
1405a59bc:	48 8d 77 08          	lea    0x8(%rdi),%rsi
1405a59c0:	4c 3b e7             	cmp    %rdi,%r12
1405a59c3:	73 36                	jae    0x1405a59fb
1405a59c5:	66 66 66 0f 1f 84 00 	data16 data16 nopw 0x0(%rax,%rax,1)
1405a59cc:	00 00 00 00
1405a59d0:	48 8b 4f f8          	mov    -0x8(%rdi),%rcx
1405a59d4:	48 8d 5f f8          	lea    -0x8(%rdi),%rbx
1405a59d8:	48 8b 17             	mov    (%rdi),%rdx
1405a59db:	e8 40 22 00 00       	call   0x1405a7c20
1405a59e0:	84 c0                	test   %al,%al
1405a59e2:	75 17                	jne    0x1405a59fb
1405a59e4:	48 8b 13             	mov    (%rbx),%rdx
1405a59e7:	48 8b 0f             	mov    (%rdi),%rcx
1405a59ea:	e8 31 22 00 00       	call   0x1405a7c20
1405a59ef:	84 c0                	test   %al,%al
1405a59f1:	75 08                	jne    0x1405a59fb
1405a59f3:	48 8b fb             	mov    %rbx,%rdi
1405a59f6:	4c 3b e3             	cmp    %rbx,%r12
1405a59f9:	72 d5                	jb     0x1405a59d0
1405a59fb:	49 3b f5             	cmp    %r13,%rsi
1405a59fe:	73 27                	jae    0x1405a5a27
1405a5a00:	48 8b 17             	mov    (%rdi),%rdx
1405a5a03:	48 8b 0e             	mov    (%rsi),%rcx
1405a5a06:	e8 15 22 00 00       	call   0x1405a7c20
1405a5a0b:	84 c0                	test   %al,%al
1405a5a0d:	75 18                	jne    0x1405a5a27
1405a5a0f:	48 8b 16             	mov    (%rsi),%rdx
1405a5a12:	48 8b 0f             	mov    (%rdi),%rcx
1405a5a15:	e8 06 22 00 00       	call   0x1405a7c20
1405a5a1a:	84 c0                	test   %al,%al
1405a5a1c:	75 09                	jne    0x1405a5a27
1405a5a1e:	48 83 c6 08          	add    $0x8,%rsi
1405a5a22:	49 3b f5             	cmp    %r13,%rsi
1405a5a25:	72 d9                	jb     0x1405a5a00
1405a5a27:	48 8b de             	mov    %rsi,%rbx
1405a5a2a:	4c 8b ff             	mov    %rdi,%r15
1405a5a2d:	0f 1f 00             	nopl   (%rax)
1405a5a30:	49 3b dd             	cmp    %r13,%rbx
1405a5a33:	73 3c                	jae    0x1405a5a71
1405a5a35:	48 8b 13             	mov    (%rbx),%rdx
1405a5a38:	48 8b 0f             	mov    (%rdi),%rcx
1405a5a3b:	e8 e0 21 00 00       	call   0x1405a7c20
1405a5a40:	84 c0                	test   %al,%al
1405a5a42:	75 24                	jne    0x1405a5a68
1405a5a44:	48 8b 17             	mov    (%rdi),%rdx
1405a5a47:	48 8b 0b             	mov    (%rbx),%rcx
1405a5a4a:	e8 d1 21 00 00       	call   0x1405a7c20
1405a5a4f:	84 c0                	test   %al,%al
1405a5a51:	75 1e                	jne    0x1405a5a71
1405a5a53:	48 3b f3             	cmp    %rbx,%rsi
1405a5a56:	74 0c                	je     0x1405a5a64
1405a5a58:	48 8b 03             	mov    (%rbx),%rax
1405a5a5b:	48 8b 0e             	mov    (%rsi),%rcx
1405a5a5e:	48 89 06             	mov    %rax,(%rsi)
1405a5a61:	48 89 0b             	mov    %rcx,(%rbx)
1405a5a64:	48 83 c6 08          	add    $0x8,%rsi
1405a5a68:	48 83 c3 08          	add    $0x8,%rbx
1405a5a6c:	49 3b dd             	cmp    %r13,%rbx
1405a5a6f:	72 c4                	jb     0x1405a5a35
1405a5a71:	4d 3b fc             	cmp    %r12,%r15
1405a5a74:	76 4d                	jbe    0x1405a5ac3
1405a5a76:	4d 8d 77 f8          	lea    -0x8(%r15),%r14
1405a5a7a:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)
1405a5a80:	48 8b 17             	mov    (%rdi),%rdx
1405a5a83:	49 8b 0e             	mov    (%r14),%rcx
1405a5a86:	e8 95 21 00 00       	call   0x1405a7c20
1405a5a8b:	84 c0                	test   %al,%al
1405a5a8d:	75 24                	jne    0x1405a5ab3
1405a5a8f:	49 8b 16             	mov    (%r14),%rdx
1405a5a92:	48 8b 0f             	mov    (%rdi),%rcx
1405a5a95:	e8 86 21 00 00       	call   0x1405a7c20
1405a5a9a:	84 c0                	test   %al,%al
1405a5a9c:	75 22                	jne    0x1405a5ac0
1405a5a9e:	48 83 ef 08          	sub    $0x8,%rdi
1405a5aa2:	49 3b fe             	cmp    %r14,%rdi
1405a5aa5:	74 0c                	je     0x1405a5ab3
1405a5aa7:	49 8b 06             	mov    (%r14),%rax
1405a5aaa:	48 8b 0f             	mov    (%rdi),%rcx
1405a5aad:	48 89 07             	mov    %rax,(%rdi)
1405a5ab0:	49 89 0e             	mov    %rcx,(%r14)
1405a5ab3:	49 83 ef 08          	sub    $0x8,%r15
1405a5ab7:	49 83 ee 08          	sub    $0x8,%r14
1405a5abb:	4d 3b e7             	cmp    %r15,%r12
1405a5abe:	72 c0                	jb     0x1405a5a80
1405a5ac0:	4d 3b fc             	cmp    %r12,%r15
1405a5ac3:	75 33                	jne    0x1405a5af8
1405a5ac5:	49 3b dd             	cmp    %r13,%rbx
1405a5ac8:	74 77                	je     0x1405a5b41
1405a5aca:	48 3b f3             	cmp    %rbx,%rsi
1405a5acd:	74 0c                	je     0x1405a5adb
1405a5acf:	48 8b 06             	mov    (%rsi),%rax
1405a5ad2:	48 8b 0f             	mov    (%rdi),%rcx
1405a5ad5:	48 89 07             	mov    %rax,(%rdi)
1405a5ad8:	48 89 0e             	mov    %rcx,(%rsi)
1405a5adb:	48 8b 03             	mov    (%rbx),%rax
1405a5ade:	48 83 c6 08          	add    $0x8,%rsi
1405a5ae2:	48 8b 0f             	mov    (%rdi),%rcx
1405a5ae5:	48 89 07             	mov    %rax,(%rdi)
1405a5ae8:	48 83 c7 08          	add    $0x8,%rdi
1405a5aec:	48 89 0b             	mov    %rcx,(%rbx)
1405a5aef:	48 83 c3 08          	add    $0x8,%rbx
1405a5af3:	e9 38 ff ff ff       	jmp    0x1405a5a30