14000567b:	57                   	push   %rdi
14000567c:	41 54                	push   %r12
14000567e:	41 55                	push   %r13
140005680:	41 56                	push   %r14
140005682:	41 57                	push   %r15
140005684:	48 83 ec 60          	sub    $0x60,%rsp
140005688:	48 c7 40 a8 fe ff ff 	movq   $0xfffffffffffffffe,-0x58(%rax)
14000568f:	ff
140005690:	48 89 58 08          	mov    %rbx,0x8(%rax)
140005694:	48 89 68 10          	mov    %rbp,0x10(%rax)
140005698:	48 89 70 18          	mov    %rsi,0x18(%rax)
14000569c:	4d 8b f9             	mov    %r9,%r15
14000569f:	49 8b e8             	mov    %r8,%rbp
1400056a2:	4c 8b e2             	mov    %rdx,%r12
1400056a5:	48 8b d9             	mov    %rcx,%rbx
1400056a8:	44 8b ac 24 b8 00 00 	mov    0xb8(%rsp),%r13d
1400056af:	00
1400056b0:	44 89 68 a0          	mov    %r13d,-0x60(%rax)
1400056b4:	4c 8b b4 24 b0 00 00 	mov    0xb0(%rsp),%r14
1400056bb:	00
1400056bc:	4c 89 70 98          	mov    %r14,-0x68(%rax)
1400056c0:	e8 03 04 00 00       	call   0x140005ac8
1400056c5:	84 c0                	test   %al,%al
1400056c7:	74 07                	je     0x1400056d0
1400056c9:	b0 01                	mov    $0x1,%al
1400056cb:	e9 fe 00 00 00       	jmp    0x1400057ce
1400056d0:	49 8d 56 20          	lea    0x20(%r14),%rdx
1400056d4:	48 03 d5             	add    %rbp,%rdx
1400056d7:	48 8d 4b 18          	lea    0x18(%rbx),%rcx
1400056db:	48 83 39 00          	cmpq   $0x0,(%rcx)
1400056df:	0f 85 a2 00 00 00    	jne    0x140005787
1400056e5:	0f 57 c0             	xorps  %xmm0,%xmm0
1400056e8:	f3 0f 7f 44 24 38    	movdqu %xmm0,0x38(%rsp)
1400056ee:	0f 57 c9             	xorps  %xmm1,%xmm1
1400056f1:	f3 0f 7f 4c 24 48    	movdqu %xmm1,0x48(%rsp)
1400056f7:	48 83 c2 0a          	add    $0xa,%rdx
1400056fb:	48 8d 4c 24 38       	lea    0x38(%rsp),%rcx
140005700:	e8 9f f6 ff ff       	call   0x140004da4
140005705:	84 c0                	test   %al,%al
140005707:	74 52                	je     0x14000575b
140005709:	4c 8b 4c 24 48       	mov    0x48(%rsp),%r9
14000570e:	48 8b 54 24 38       	mov    0x38(%rsp),%rdx
140005713:	4c 2b ca             	sub    %rdx,%r9
140005716:	45 33 c0             	xor    %r8d,%r8d
140005719:	48 8b cb             	mov    %rbx,%rcx
14000571c:	e8 1b fe ff ff       	call   0x14000553c
140005721:	48 8b 44 24 50       	mov    0x50(%rsp),%rax
140005726:	33 ff                	xor    %edi,%edi
140005728:	48 8b 73 30          	mov    0x30(%rbx),%rsi
14000572c:	48 89 43 30          	mov    %rax,0x30(%rbx)
140005730:	48 85 f6             	test   %rsi,%rsi
140005733:	74 20                	je     0x140005755
140005735:	48 ff 15 fc 54 02 00 	rex.W call *0x254fc(%rip)        # 0x14002ac38
14000573c:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
140005741:	48 8b c8             	mov    %rax,%rcx
140005744:	4c 8b c6             	mov    %rsi,%r8
140005747:	33 d2                	xor    %edx,%edx
140005749:	48 ff 15 f0 55 02 00 	rex.W call *0x255f0(%rip)        # 0x14002ad40
140005750:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
140005755:	c6 43 3a 01          	movb   $0x1,0x3a(%rbx)
140005759:	eb 05                	jmp    0x140005760
14000575b:	48 8b 7c 24 50       	mov    0x50(%rsp),%rdi
140005760:	48 85 ff             	test   %rdi,%rdi
140005763:	74 4e                	je     0x1400057b3
140005765:	48 ff 15 cc 54 02 00 	rex.W call *0x254cc(%rip)        # 0x14002ac38
14000576c:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
140005771:	48 8b c8             	mov    %rax,%rcx
140005774:	4c 8b c7             	mov    %rdi,%r8
140005777:	33 d2                	xor    %edx,%edx
140005779:	48 ff 15 c0 55 02 00 	rex.W call *0x255c0(%rip)        # 0x14002ad40
140005780:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
140005785:	eb 2c                	jmp    0x1400057b3
140005787:	80 7b 3a 00          	cmpb   $0x0,0x3a(%rbx)
14000578b:	74 26                	je     0x1400057b3
14000578d:	4c 8b 41 10          	mov    0x10(%rcx),%r8
140005791:	4c 2b 01             	sub    (%rcx),%r8
140005794:	48 8b 41 08          	mov    0x8(%rcx),%rax
140005798:	48 2b 01             	sub    (%rcx),%rax
14000579b:	48 03 c2             	add    %rdx,%rax
14000579e:	49 3b c0             	cmp    %r8,%rax
1400057a1:	72 10                	jb     0x1400057b3
1400057a3:	4b 8d 04 00          	lea    (%r8,%r8,1),%rax
1400057a7:	48 3b d0             	cmp    %rax,%rdx
1400057aa:	48 0f 42 d0          	cmovb  %rax,%rdx
1400057ae:	e8 f1 f5 ff ff       	call   0x140004da4
1400057b3:	44 89 6c 24 28       	mov    %r13d,0x28(%rsp)
1400057b8:	4c 89 74 24 20       	mov    %r14,0x20(%rsp)
1400057bd:	4d 8b cf             	mov    %r15,%r9
1400057c0:	4c 8b c5             	mov    %rbp,%r8
1400057c3:	49 8b d4             	mov    %r12,%rdx
1400057c6:	48 8b cb             	mov    %rbx,%rcx
1400057c9:	e8 fa 02 00 00       	call   0x140005ac8
1400057ce:	4c 8d 5c 24 60       	lea    0x60(%rsp),%r11
1400057d3:	49 8b 5b 30          	mov    0x30(%r11),%rbx
1400057d7:	49 8b 6b 38          	mov    0x38(%r11),%rbp
1400057db:	49 8b 73 40          	mov    0x40(%r11),%rsi
1400057df:	49 8b e3             	mov    %r11,%rsp
1400057e2:	41 5f                	pop    %r15
1400057e4:	41 5e                	pop    %r14
1400057e6:	41 5d                	pop    %r13
1400057e8:	41 5c                	pop    %r12
1400057ea:	5f                   	pop    %rdi
1400057eb:	c3                   	ret
1400057ec:	cc                   	int3
1400057ed:	cc                   	int3
1400057ee:	cc                   	int3
1400057ef:	cc                   	int3
1400057f0:	cc                   	int3
1400057f1:	cc                   	int3
1400057f2:	cc                   	int3
1400057f3:	cc                   	int3
1400057f4:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
1400057f9:	4c 89 4c 24 20       	mov    %r9,0x20(%rsp)
1400057fe:	55                   	push   %rbp
1400057ff:	56                   	push   %rsi
140005800:	57                   	push   %rdi
140005801:	41 54                	push   %r12
140005803:	41 55                	push   %r13
140005805:	41 56                	push   %r14
140005807:	41 57                	push   %r15
140005809:	48 8b ec             	mov    %rsp,%rbp
14000580c:	48 83 ec 70          	sub    $0x70,%rsp
140005810:	0f b7 41 06          	movzwl 0x6(%rcx),%eax
140005814:	48 8d 7a 04          	lea    0x4(%rdx),%rdi
140005818:	49 83 cc ff          	or     $0xffffffffffffffff,%r12
14000581c:	66 89 45 b8          	mov    %ax,-0x48(%rbp)
140005820:	8a 41 08             	mov    0x8(%rcx),%al
140005823:	33 db                	xor    %ebx,%ebx
140005825:	0f 57 c0             	xorps  %xmm0,%xmm0
140005828:	88 45 ba             	mov    %al,-0x46(%rbp)
14000582b:	4d 8b f0             	mov    %r8,%r14
14000582e:	4c 8b ea             	mov    %rdx,%r13
140005831:	45 8d 5c 24 05       	lea    0x5(%r12),%r11d
140005836:	4c 8b f9             	mov    %rcx,%r15
140005839:	45 8d 54 24 03       	lea    0x3(%r12),%r10d
14000583e:	89 5d bc             	mov    %ebx,-0x44(%rbp)
140005841:	66 89 5d c0          	mov    %bx,-0x40(%rbp)
140005845:	f3 0f 7f 45 c8       	movdqu %xmm0,-0x38(%rbp)
14000584a:	48 39 59 10          	cmp    %rbx,0x10(%rcx)
14000584e:	0f 86 3d 01 00 00    	jbe    0x140005991
140005854:	48 8b 41 20          	mov    0x20(%rcx),%rax
140005858:	33 d2                	xor    %edx,%edx
14000585a:	49 2b c0             	sub    %r8,%rax
14000585d:	48 f7 71 10          	divq   0x10(%rcx)
140005861:	8b 0f                	mov    (%rdi),%ecx
140005863:	48 3b c8             	cmp    %rax,%rcx
140005866:	76 3f                	jbe    0x1400058a7
140005868:	3b c8                	cmp    %eax,%ecx
14000586a:	74 3b                	je     0x1400058a7
14000586c:	89 07                	mov    %eax,(%rdi)
14000586e:	41 8a 45 02          	mov    0x2(%r13),%al
140005872:	3c 01                	cmp    $0x1,%al
140005874:	75 13                	jne    0x140005889
140005876:	0f b7 07             	movzwl (%rdi),%eax
140005879:	4c 8d 45 40          	lea    0x40(%rbp),%r8
14000587d:	66 89 45 40          	mov    %ax,0x40(%rbp)
140005881:	45 8b ca             	mov    %r10d,%r9d
140005884:	41 8b d2             	mov    %r10d,%edx
140005887:	eb 0e                	jmp    0x140005897
140005889:	41 3a c2             	cmp    %r10b,%al
14000588c:	75 19                	jne    0x1400058a7
14000588e:	4d 8b cb             	mov    %r11,%r9
140005891:	4c 8b c7             	mov    %rdi,%r8
140005894:	49 8b d3             	mov    %r11,%rdx
140005897:	49 8b 4d 10          	mov    0x10(%r13),%rcx
14000589b:	48 ff 15 6e 56 02 00 	rex.W call *0x2566e(%rip)        # 0x14002af10
1400058a2:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
1400058a7:	8b 37                	mov    (%rdi),%esi
1400058a9:	0f 57 c0             	xorps  %xmm0,%xmm0
1400058ac:	49 8b 47 10          	mov    0x10(%r15),%rax
1400058b0:	48 8b 7d 60          	mov    0x60(%rbp),%rdi
1400058b4:	48 0f af c6          	imul   %rsi,%rax
1400058b8:	f3 0f 7f 45 e8       	movdqu %xmm0,-0x18(%rbp)
1400058bd:	89 5d dc             	mov    %ebx,-0x24(%rbp)
1400058c0:	49 03 c6             	add    %r14,%rax
1400058c3:	66 89 5d e0          	mov    %bx,-0x20(%rbp)
1400058c7:	48 89 45 b0          	mov    %rax,-0x50(%rbp)
1400058cb:	41 0f b7 47 06       	movzwl 0x6(%r15),%eax
1400058d0:	66 89 45 d8          	mov    %ax,-0x28(%rbp)
1400058d4:	41 8a 47 08          	mov    0x8(%r15),%al
1400058d8:	88 45 da             	mov    %al,-0x26(%rbp)
1400058db:	eb 61                	jmp    0x14000593e
1400058dd:	49 8b 47 10          	mov    0x10(%r15),%rax
1400058e1:	48 8d 55 40          	lea    0x40(%rbp),%rdx
1400058e5:	4d 8b 47 20          	mov    0x20(%r15),%r8
1400058e9:	48 8d 4d d8          	lea    -0x28(%rbp),%rcx
1400058ed:	4c 8b ee             	mov    %rsi,%r13
1400058f0:	49 d1 ed             	shr    $1,%r13
1400058f3:	49 0f af c5          	imul   %r13,%rax
1400058f7:	49 03 c6             	add    %r14,%rax
1400058fa:	48 89 45 40          	mov    %rax,0x40(%rbp)
1400058fe:	e8 45 fa ff ff       	call   0x140005348
140005903:	0f b7 45 e0          	movzwl -0x20(%rbp),%eax
140005907:	48 3b f8             	cmp    %rax,%rdi
14000590a:	75 14                	jne    0x140005920
14000590c:	48 8b 55 f0          	mov    -0x10(%rbp),%rdx
140005910:	4c 8b c7             	mov    %rdi,%r8
140005913:	48 8b 4d 58          	mov    0x58(%rbp),%rcx
140005917:	e8 01 07 02 00       	call   0x14002601d
14000591c:	8b c8                	mov    %eax,%ecx
14000591e:	eb 08                	jmp    0x140005928
140005920:	0f b7 45 e0          	movzwl -0x20(%rbp),%eax
140005924:	8b cf                	mov    %edi,%ecx
140005926:	2b c8                	sub    %eax,%ecx
140005928:	85 c9                	test   %ecx,%ecx
14000592a:	7e 0f                	jle    0x14000593b
14000592c:	4c 8b 75 40          	mov    0x40(%rbp),%r14
140005930:	49 8b c4             	mov    %r12,%rax
140005933:	49 2b c5             	sub    %r13,%rax
140005936:	48 03 f0             	add    %rax,%rsi
140005939:	eb 03                	jmp    0x14000593e
14000593b:	49 8b f5             	mov    %r13,%rsi
14000593e:	48 85 f6             	test   %rsi,%rsi
140005941:	75 9a                	jne    0x1400058dd
140005943:	4c 3b 75 b0          	cmp    -0x50(%rbp),%r14
140005947:	0f 83 57 01 00 00    	jae    0x140005aa4
14000594d:	4d 8b 47 20          	mov    0x20(%r15),%r8
140005951:	48 8d 55 40          	lea    0x40(%rbp),%rdx
140005955:	48 8d 4d b8          	lea    -0x48(%rbp),%rcx
140005959:	4c 89 75 40          	mov    %r14,0x40(%rbp)
14000595d:	e8 e6 f9 ff ff       	call   0x140005348
140005962:	0f b7 45 c0          	movzwl -0x40(%rbp),%eax
140005966:	48 3b f8             	cmp    %rax,%rdi
140005969:	75 18                	jne    0x140005983
14000596b:	48 8b 55 d0          	mov    -0x30(%rbp),%rdx
14000596f:	4c 8b c7             	mov    %rdi,%r8
140005972:	48 8b 4d 58          	mov    0x58(%rbp),%rcx
140005976:	e8 a2 06 02 00       	call   0x14002601d
14000597b:	44 8b e0             	mov    %eax,%r12d
14000597e:	e9 ab 00 00 00       	jmp    0x140005a2e
140005983:	0f b7 45 c0          	movzwl -0x40(%rbp),%eax
140005987:	2b f8                	sub    %eax,%edi
140005989:	44 8b e7             	mov    %edi,%r12d
14000598c:	e9 9d 00 00 00       	jmp    0x140005a2e
140005991:	8b f3                	mov    %ebx,%esi
140005993:	39 1f                	cmp    %ebx,(%rdi)
140005995:	0f 86 09 01 00 00    	jbe    0x140005aa4
14000599b:	4d 8b 47 20          	mov    0x20(%r15),%r8
14000599f:	48 8d 55 40          	lea    0x40(%rbp),%rdx
1400059a3:	48 8d 4d b8          	lea    -0x48(%rbp),%rcx
1400059a7:	4c 89 75 40          	mov    %r14,0x40(%rbp)
1400059ab:	e8 98 f9 ff ff       	call   0x140005348
1400059b0:	84 c0                	test   %al,%al
1400059b2:	74 3c                	je     0x1400059f0
1400059b4:	0f b7 45 c0          	movzwl -0x40(%rbp),%eax
1400059b8:	48 8b 4d 60          	mov    0x60(%rbp),%rcx
1400059bc:	48 3b c8             	cmp    %rax,%rcx
1400059bf:	75 15                	jne    0x1400059d6
1400059c1:	48 8b 55 d0          	mov    -0x30(%rbp),%rdx
1400059c5:	4c 8b c1             	mov    %rcx,%r8
1400059c8:	48 8b 4d 58          	mov    0x58(%rbp),%rcx
1400059cc:	e8 4c 06 02 00       	call   0x14002601d
1400059d1:	44 8b e0             	mov    %eax,%r12d
1400059d4:	eb 09                	jmp    0x1400059df
1400059d6:	0f b7 45 c0          	movzwl -0x40(%rbp),%eax
1400059da:	2b c8                	sub    %eax,%ecx
1400059dc:	44 8b e1             	mov    %ecx,%r12d
1400059df:	45 85 e4             	test   %r12d,%r12d
1400059e2:	7e 4d                	jle    0x140005a31
1400059e4:	4c 8b 75 40          	mov    0x40(%rbp),%r14
1400059e8:	ff c6                	inc    %esi
1400059ea:	3b 37                	cmp    (%rdi),%esi
1400059ec:	72 ad                	jb     0x14000599b
1400059ee:	eb 3e                	jmp    0x140005a2e
1400059f0:	39 37                	cmp    %esi,(%rdi)
1400059f2:	74 3a                	je     0x140005a2e
1400059f4:	41 8a 45 02          	mov    0x2(%r13),%al
1400059f8:	89 37                	mov    %esi,(%rdi)
1400059fa:	3c 01                	cmp    $0x1,%al
1400059fc:	75 10                	jne    0x140005a0e
1400059fe:	66 89 75 40          	mov    %si,0x40(%rbp)
140005a02:	4c 8d 45 40          	lea    0x40(%rbp),%r8
140005a06:	41 b9 02 00 00 00    	mov    $0x2,%r9d
140005a0c:	eb 0d                	jmp    0x140005a1b
140005a0e:	3c 02                	cmp    $0x2,%al
140005a10:	75 1c                	jne    0x140005a2e
140005a12:	41 b9 04 00 00 00    	mov    $0x4,%r9d
140005a18:	4c 8b c7             	mov    %rdi,%r8
140005a1b:	49 8b 4d 10          	mov    0x10(%r13),%rcx
140005a1f:	49 8b d1             	mov    %r9,%rdx
140005a22:	48 ff 15 e7 54 02 00 	rex.W call *0x254e7(%rip)        # 0x14002af10
140005a29:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
140005a2e:	45 85 e4             	test   %r12d,%r12d
140005a31:	75 71                	jne    0x140005aa4
140005a33:	44 8a 45 ba          	mov    -0x46(%rbp),%r8b
140005a37:	45 84 c0             	test   %r8b,%r8b
140005a3a:	40 0f 95 c7          	setne  %dil
140005a3e:	45 84 c0             	test   %r8b,%r8b
140005a41:	74 4c                	je     0x140005a8f
140005a43:	44 8b 4d 68          	mov    0x68(%rbp),%r9d
140005a47:	44 03 4d bc          	add    -0x44(%rbp),%r9d
140005a4b:	44 39 4d bc          	cmp    %r9d,-0x44(%rbp)
140005a4f:	74 3e                	je     0x140005a8f
140005a51:	44 89 4d bc          	mov    %r9d,-0x44(%rbp)
140005a55:	41 80 f8 01          	cmp    $0x1,%r8b
140005a59:	75 11                	jne    0x140005a6c
140005a5b:	66 44 89 4d 40       	mov    %r9w,0x40(%rbp)
140005a60:	4c 8d 45 40          	lea    0x40(%rbp),%r8
140005a64:	41 b9 02 00 00 00    	mov    $0x2,%r9d
140005a6a:	eb 10                	jmp    0x140005a7c
140005a6c:	41 80 f8 02          	cmp    $0x2,%r8b
140005a70:	75 1d                	jne    0x140005a8f
140005a72:	41 b9 04 00 00 00    	mov    $0x4,%r9d
140005a78:	4c 8d 45 bc          	lea    -0x44(%rbp),%r8
140005a7c:	48 8b 4d c8          	mov    -0x38(%rbp),%rcx
140005a80:	49 8b d1             	mov    %r9,%rdx
140005a83:	48 ff 15 86 54 02 00 	rex.W call *0x25486(%rip)        # 0x14002af10
140005a8a:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
140005a8f:	40 84 ff             	test   %dil,%dil
140005a92:	75 06                	jne    0x140005a9a
140005a94:	41 38 5f 38          	cmp    %bl,0x38(%r15)
140005a98:	74 02                	je     0x140005a9c
140005a9a:	b3 01                	mov    $0x1,%bl
140005a9c:	41 88 5f 38          	mov    %bl,0x38(%r15)
140005aa0:	33 c0                	xor    %eax,%eax
140005aa2:	eb 03                	jmp    0x140005aa7
140005aa4:	49 8b c6             	mov    %r14,%rax
140005aa7:	48 8b 9c 24 b8 00 00 	mov    0xb8(%rsp),%rbx
140005aae:	00
140005aaf:	48 83 c4 70          	add    $0x70,%rsp
140005ab3:	41 5f                	pop    %r15
140005ab5:	41 5e                	pop    %r14
140005ab7:	41 5d                	pop    %r13
140005ab9:	41 5c                	pop    %r12
140005abb:	5f                   	pop    %rdi
140005abc:	5e                   	pop    %rsi
140005abd:	5d                   	pop    %rbp
140005abe:	c3                   	ret
140005abf:	cc                   	int3
140005ac0:	cc                   	int3
140005ac1:	cc                   	int3
140005ac2:	cc                   	int3
140005ac3:	cc                   	int3
140005ac4:	cc                   	int3
140005ac5:	cc                   	int3
140005ac6:	cc                   	int3
140005ac7:	cc                   	int3
140005ac8:	48 8b c4             	mov    %rsp,%rax
140005acb:	48 89 58 10          	mov    %rbx,0x10(%rax)
140005acf:	48 89 70 18          	mov    %rsi,0x18(%rax)
140005ad3:	48 89 78 20          	mov    %rdi,0x20(%rax)
140005ad7:	55                   	push   %rbp
140005ad8:	41 54                	push   %r12
140005ada:	41 55                	push   %r13
140005adc:	41 56                	push   %r14
140005ade:	41 57                	push   %r15
140005ae0:	48 8d 68 b1          	lea    -0x4f(%rax),%rbp
140005ae4:	48 81 ec a0 00 00 00 	sub    $0xa0,%rsp
140005aeb:	48 8b 79 18          	mov    0x18(%rcx),%rdi
140005aef:	48 8b d9             	mov    %rcx,%rbx