140046652:	48 83 c4 30          	add    $0x30,%rsp
140046656:	41 5f                	pop    %r15
140046658:	c3                   	ret
140046659:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
14004665e:	45 33 c9             	xor    %r9d,%r9d
140046661:	45 33 c0             	xor    %r8d,%r8d
140046664:	33 d2                	xor    %edx,%edx
140046666:	33 c9                	xor    %ecx,%ecx
140046668:	e8 87 4f fe ff       	call   0x14002b5f4
14004666d:	90                   	nop
14004666e:	cc                   	int3
14004666f:	cc                   	int3
140046670:	e9 03 ff ff ff       	jmp    0x140046578
140046675:	cc                   	int3
140046676:	cc                   	int3
140046677:	cc                   	int3
140046678:	cc                   	int3
140046679:	cc                   	int3
14004667a:	cc                   	int3
14004667b:	cc                   	int3
14004667c:	cc                   	int3
14004667d:	cc                   	int3
14004667e:	cc                   	int3
14004667f:	cc                   	int3
140046680:	41 54                	push   %r12
140046682:	41 55                	push   %r13
140046684:	41 56                	push   %r14
140046686:	48 81 ec 50 04 00 00 	sub    $0x450,%rsp
14004668d:	48 8b 05 84 b9 02 00 	mov    0x2b984(%rip),%rax        # 0x140072018
140046694:	48 33 c4             	xor    %rsp,%rax
140046697:	48 89 84 24 10 04 00 	mov    %rax,0x410(%rsp)
14004669e:	00
14004669f:	4d 8b e1             	mov    %r9,%r12
1400466a2:	4d 8b f0             	mov    %r8,%r14
1400466a5:	4c 8b e9             	mov    %rcx,%r13
1400466a8:	48 85 c9             	test   %rcx,%rcx
1400466ab:	75 1a                	jne    0x1400466c7
1400466ad:	48 85 d2             	test   %rdx,%rdx
1400466b0:	74 15                	je     0x1400466c7
1400466b2:	e8 81 53 fe ff       	call   0x14002ba38
1400466b7:	c7 00 16 00 00 00    	movl   $0x16,(%rax)
1400466bd:	e8 e2 4e fe ff       	call   0x14002b5a4
1400466c2:	e9 a9 03 00 00       	jmp    0x140046a70
1400466c7:	4d 85 f6             	test   %r14,%r14
1400466ca:	74 e6                	je     0x1400466b2
1400466cc:	4d 85 e4             	test   %r12,%r12
1400466cf:	74 e1                	je     0x1400466b2
1400466d1:	48 83 fa 02          	cmp    $0x2,%rdx
1400466d5:	0f 82 95 03 00 00    	jb     0x140046a70
1400466db:	48 89 9c 24 48 04 00 	mov    %rbx,0x448(%rsp)
1400466e2:	00
1400466e3:	48 89 ac 24 40 04 00 	mov    %rbp,0x440(%rsp)
1400466ea:	00
1400466eb:	48 89 b4 24 38 04 00 	mov    %rsi,0x438(%rsp)
1400466f2:	00
1400466f3:	48 89 bc 24 30 04 00 	mov    %rdi,0x430(%rsp)
1400466fa:	00
1400466fb:	4c 89 bc 24 28 04 00 	mov    %r15,0x428(%rsp)
140046702:	00
140046703:	4c 8d 7a ff          	lea    -0x1(%rdx),%r15
140046707:	4d 0f af fe          	imul   %r14,%r15
14004670b:	4c 03 f9             	add    %rcx,%r15
14004670e:	33 c9                	xor    %ecx,%ecx
140046710:	48 89 4c 24 20       	mov    %rcx,0x20(%rsp)
140046715:	66 66 66 0f 1f 84 00 	data16 data16 nopw 0x0(%rax,%rax,1)
14004671c:	00 00 00 00
140046720:	33 d2                	xor    %edx,%edx
140046722:	49 8b c7             	mov    %r15,%rax
140046725:	49 2b c5             	sub    %r13,%rax
140046728:	49 f7 f6             	div    %r14
14004672b:	48 8d 58 01          	lea    0x1(%rax),%rbx
14004672f:	48 83 fb 08          	cmp    $0x8,%rbx
140046733:	0f 87 9b 00 00 00    	ja     0x1400467d4
140046739:	4d 3b fd             	cmp    %r13,%r15
14004673c:	76 75                	jbe    0x1400467b3
14004673e:	4b 8d 34 2e          	lea    (%r14,%r13,1),%rsi
140046742:	49 8b dd             	mov    %r13,%rbx
140046745:	48 8b fe             	mov    %rsi,%rdi
140046748:	49 3b f7             	cmp    %r15,%rsi
14004674b:	77 2a                	ja     0x140046777
14004674d:	0f 1f 00             	nopl   (%rax)
140046750:	49 ba 70 89 de 5e 95 	movabs $0x9375b7955ede8970,%r10
140046757:	b7 75 93
14004675a:	48 8b d3             	mov    %rbx,%rdx
14004675d:	48 8b cf             	mov    %rdi,%rcx
140046760:	49 8b c4             	mov    %r12,%rax
140046763:	ff 15 e7 5c 00 00    	call   *0x5ce7(%rip)        # 0x14004c450
140046769:	85 c0                	test   %eax,%eax
14004676b:	48 0f 4f df          	cmovg  %rdi,%rbx
14004676f:	49 03 fe             	add    %r14,%rdi
140046772:	49 3b ff             	cmp    %r15,%rdi
140046775:	76 d9                	jbe    0x140046750
140046777:	4d 8b c6             	mov    %r14,%r8
14004677a:	49 8b d7             	mov    %r15,%rdx
14004677d:	49 3b df             	cmp    %r15,%rbx
140046780:	74 24                	je     0x1400467a6
140046782:	49 2b df             	sub    %r15,%rbx
140046785:	66 66 66 0f 1f 84 00 	data16 data16 nopw 0x0(%rax,%rax,1)
14004678c:	00 00 00 00
140046790:	0f b6 02             	movzbl (%rdx),%eax
140046793:	0f b6 0c 13          	movzbl (%rbx,%rdx,1),%ecx
140046797:	88 04 13             	mov    %al,(%rbx,%rdx,1)
14004679a:	88 0a                	mov    %cl,(%rdx)
14004679c:	48 8d 52 01          	lea    0x1(%rdx),%rdx
1400467a0:	49 83 e8 01          	sub    $0x1,%r8
1400467a4:	75 ea                	jne    0x140046790
1400467a6:	4d 2b fe             	sub    %r14,%r15
1400467a9:	4d 3b fd             	cmp    %r13,%r15
1400467ac:	77 94                	ja     0x140046742
1400467ae:	48 8b 4c 24 20       	mov    0x20(%rsp),%rcx
1400467b3:	48 83 e9 01          	sub    $0x1,%rcx
1400467b7:	48 89 4c 24 20       	mov    %rcx,0x20(%rsp)
1400467bc:	0f 88 86 02 00 00    	js     0x140046a48
1400467c2:	4c 8b 6c cc 30       	mov    0x30(%rsp,%rcx,8),%r13
1400467c7:	4c 8b bc cc 20 02 00 	mov    0x220(%rsp,%rcx,8),%r15
1400467ce:	00
1400467cf:	e9 4c ff ff ff       	jmp    0x140046720
1400467d4:	48 d1 eb             	shr    $1,%rbx
1400467d7:	49 0f af de          	imul   %r14,%rbx
1400467db:	4a 8d 34 2b          	lea    (%rbx,%r13,1),%rsi
1400467df:	49 ba 70 89 de 5e 95 	movabs $0x9375b7955ede8970,%r10
1400467e6:	b7 75 93
1400467e9:	48 8b d6             	mov    %rsi,%rdx
1400467ec:	49 8b cd             	mov    %r13,%rcx
1400467ef:	49 8b c4             	mov    %r12,%rax
1400467f2:	ff 15 58 5c 00 00    	call   *0x5c58(%rip)        # 0x14004c450
1400467f8:	85 c0                	test   %eax,%eax
1400467fa:	7e 2f                	jle    0x14004682b
1400467fc:	4d 8b ce             	mov    %r14,%r9
1400467ff:	4c 8b c6             	mov    %rsi,%r8
140046802:	4c 3b ee             	cmp    %rsi,%r13
140046805:	74 24                	je     0x14004682b
140046807:	66 0f 1f 84 00 00 00 	nopw   0x0(%rax,%rax,1)
14004680e:	00 00
140046810:	41 0f b6 00          	movzbl (%r8),%eax
140046814:	49 8b d0             	mov    %r8,%rdx
140046817:	48 2b d3             	sub    %rbx,%rdx
14004681a:	0f b6 0a             	movzbl (%rdx),%ecx
14004681d:	88 02                	mov    %al,(%rdx)
14004681f:	41 88 08             	mov    %cl,(%r8)
140046822:	49 ff c0             	inc    %r8
140046825:	49 83 e9 01          	sub    $0x1,%r9
140046829:	75 e5                	jne    0x140046810
14004682b:	49 ba 70 89 de 5e 95 	movabs $0x9375b7955ede8970,%r10
140046832:	b7 75 93
140046835:	49 8b d7             	mov    %r15,%rdx
140046838:	49 8b cd             	mov    %r13,%rcx
14004683b:	49 8b c4             	mov    %r12,%rax
14004683e:	ff 15 0c 5c 00 00    	call   *0x5c0c(%rip)        # 0x14004c450
140046844:	85 c0                	test   %eax,%eax
140046846:	7e 30                	jle    0x140046878
140046848:	4d 8b c6             	mov    %r14,%r8
14004684b:	49 8b d7             	mov    %r15,%rdx
14004684e:	4d 3b ef             	cmp    %r15,%r13
140046851:	74 25                	je     0x140046878
140046853:	4d 8b cd             	mov    %r13,%r9
140046856:	4d 2b cf             	sub    %r15,%r9
140046859:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
140046860:	0f b6 02             	movzbl (%rdx),%eax
140046863:	41 0f b6 0c 11       	movzbl (%r9,%rdx,1),%ecx
140046868:	41 88 04 11          	mov    %al,(%r9,%rdx,1)
14004686c:	88 0a                	mov    %cl,(%rdx)
14004686e:	48 8d 52 01          	lea    0x1(%rdx),%rdx
140046872:	49 83 e8 01          	sub    $0x1,%r8
140046876:	75 e8                	jne    0x140046860
140046878:	49 ba 70 89 de 5e 95 	movabs $0x9375b7955ede8970,%r10
14004687f:	b7 75 93
140046882:	49 8b d7             	mov    %r15,%rdx
140046885:	48 8b ce             	mov    %rsi,%rcx
140046888:	49 8b c4             	mov    %r12,%rax
14004688b:	ff 15 bf 5b 00 00    	call   *0x5bbf(%rip)        # 0x14004c450
140046891:	85 c0                	test   %eax,%eax
140046893:	7e 33                	jle    0x1400468c8
140046895:	4d 8b c6             	mov    %r14,%r8
140046898:	49 8b d7             	mov    %r15,%rdx
14004689b:	49 3b f7             	cmp    %r15,%rsi
14004689e:	74 28                	je     0x1400468c8
1400468a0:	4c 8b ce             	mov    %rsi,%r9
1400468a3:	4d 2b cf             	sub    %r15,%r9
1400468a6:	66 66 0f 1f 84 00 00 	data16 nopw 0x0(%rax,%rax,1)
1400468ad:	00 00 00
1400468b0:	0f b6 02             	movzbl (%rdx),%eax
1400468b3:	41 0f b6 0c 11       	movzbl (%r9,%rdx,1),%ecx
1400468b8:	41 88 04 11          	mov    %al,(%r9,%rdx,1)
1400468bc:	88 0a                	mov    %cl,(%rdx)
1400468be:	48 8d 52 01          	lea    0x1(%rdx),%rdx
1400468c2:	49 83 e8 01          	sub    $0x1,%r8
1400468c6:	75 e8                	jne    0x1400468b0
1400468c8:	49 8b dd             	mov    %r13,%rbx
1400468cb:	49 8b ff             	mov    %r15,%rdi
1400468ce:	66 90                	xchg   %ax,%ax
1400468d0:	48 3b f3             	cmp    %rbx,%rsi
1400468d3:	76 2b                	jbe    0x140046900
1400468d5:	49 03 de             	add    %r14,%rbx
1400468d8:	48 3b de             	cmp    %rsi,%rbx
1400468db:	73 23                	jae    0x140046900
1400468dd:	49 ba 70 89 de 5e 95 	movabs $0x9375b7955ede8970,%r10
1400468e4:	b7 75 93
1400468e7:	48 8b d6             	mov    %rsi,%rdx
1400468ea:	48 8b cb             	mov    %rbx,%rcx
1400468ed:	49 8b c4             	mov    %r12,%rax
1400468f0:	ff 15 5a 5b 00 00    	call   *0x5b5a(%rip)        # 0x14004c450
1400468f6:	85 c0                	test   %eax,%eax
1400468f8:	7e db                	jle    0x1400468d5
1400468fa:	eb 29                	jmp    0x140046925
1400468fc:	0f 1f 40 00          	nopl   0x0(%rax)
140046900:	49 03 de             	add    %r14,%rbx
140046903:	49 3b df             	cmp    %r15,%rbx
140046906:	77 1d                	ja     0x140046925
140046908:	49 ba 70 89 de 5e 95 	movabs $0x9375b7955ede8970,%r10
14004690f:	b7 75 93
140046912:	48 8b d6             	mov    %rsi,%rdx
140046915:	48 8b cb             	mov    %rbx,%rcx
140046918:	49 8b c4             	mov    %r12,%rax
14004691b:	ff 15 2f 5b 00 00    	call   *0x5b2f(%rip)        # 0x14004c450
140046921:	85 c0                	test   %eax,%eax
140046923:	7e db                	jle    0x140046900
140046925:	48 8b ef             	mov    %rdi,%rbp
140046928:	49 2b fe             	sub    %r14,%rdi
14004692b:	48 3b fe             	cmp    %rsi,%rdi
14004692e:	76 1d                	jbe    0x14004694d
140046930:	49 ba 70 89 de 5e 95 	movabs $0x9375b7955ede8970,%r10
140046937:	b7 75 93
14004693a:	48 8b d6             	mov    %rsi,%rdx
14004693d:	48 8b cf             	mov    %rdi,%rcx
140046940:	49 8b c4             	mov    %r12,%rax
140046943:	ff 15 07 5b 00 00    	call   *0x5b07(%rip)        # 0x14004c450
140046949:	85 c0                	test   %eax,%eax
14004694b:	7f d8                	jg     0x140046925
14004694d:	48 3b fb             	cmp    %rbx,%rdi
140046950:	72 38                	jb     0x14004698a
140046952:	4d 8b c6             	mov    %r14,%r8
140046955:	48 8b d7             	mov    %rdi,%rdx
140046958:	74 1e                	je     0x140046978
14004695a:	4c 8b cb             	mov    %rbx,%r9
14004695d:	4c 2b cf             	sub    %rdi,%r9
140046960:	0f b6 02             	movzbl (%rdx),%eax
140046963:	41 0f b6 0c 11       	movzbl (%r9,%rdx,1),%ecx
140046968:	41 88 04 11          	mov    %al,(%r9,%rdx,1)
14004696c:	88 0a                	mov    %cl,(%rdx)
14004696e:	48 8d 52 01          	lea    0x1(%rdx),%rdx
140046972:	49 83 e8 01          	sub    $0x1,%r8
140046976:	75 e8                	jne    0x140046960
140046978:	48 3b f7             	cmp    %rdi,%rsi
14004697b:	48 8b c3             	mov    %rbx,%rax
14004697e:	48 0f 45 c6          	cmovne %rsi,%rax
140046982:	48 8b f0             	mov    %rax,%rsi
140046985:	e9 46 ff ff ff       	jmp    0x1400468d0
14004698a:	48 3b f5             	cmp    %rbp,%rsi
14004698d:	73 28                	jae    0x1400469b7
14004698f:	90                   	nop
140046990:	49 2b ee             	sub    %r14,%rbp
140046993:	48 3b ee             	cmp    %rsi,%rbp
140046996:	76 1f                	jbe    0x1400469b7
140046998:	49 ba 70 89 de 5e 95 	movabs $0x9375b7955ede8970,%r10
14004699f:	b7 75 93
1400469a2:	48 8b d6             	mov    %rsi,%rdx
1400469a5:	48 8b cd             	mov    %rbp,%rcx
1400469a8:	49 8b c4             	mov    %r12,%rax
1400469ab:	ff 15 9f 5a 00 00    	call   *0x5a9f(%rip)        # 0x14004c450
1400469b1:	85 c0                	test   %eax,%eax
1400469b3:	74 db                	je     0x140046990
1400469b5:	eb 25                	jmp    0x1400469dc
1400469b7:	49 2b ee             	sub    %r14,%rbp
1400469ba:	49 3b ed             	cmp    %r13,%rbp
1400469bd:	76 1d                	jbe    0x1400469dc
1400469bf:	49 ba 70 89 de 5e 95 	movabs $0x9375b7955ede8970,%r10
1400469c6:	b7 75 93
1400469c9:	48 8b d6             	mov    %rsi,%rdx
1400469cc:	48 8b cd             	mov    %rbp,%rcx
1400469cf:	49 8b c4             	mov    %r12,%rax
1400469d2:	ff 15 78 5a 00 00    	call   *0x5a78(%rip)        # 0x14004c450
1400469d8:	85 c0                	test   %eax,%eax
1400469da:	74 db                	je     0x1400469b7
1400469dc:	49 8b cf             	mov    %r15,%rcx
1400469df:	48 8b c5             	mov    %rbp,%rax
1400469e2:	48 2b cb             	sub    %rbx,%rcx
1400469e5:	49 2b c5             	sub    %r13,%rax
1400469e8:	48 3b c1             	cmp    %rcx,%rax
1400469eb:	48 8b 4c 24 20       	mov    0x20(%rsp),%rcx
1400469f0:	7c 2b                	jl     0x140046a1d
1400469f2:	4c 3b ed             	cmp    %rbp,%r13
1400469f5:	73 15                	jae    0x140046a0c
1400469f7:	4c 89 6c cc 30       	mov    %r13,0x30(%rsp,%rcx,8)
1400469fc:	48 89 ac cc 20 02 00 	mov    %rbp,0x220(%rsp,%rcx,8)
140046a03:	00
140046a04:	48 ff c1             	inc    %rcx
140046a07:	48 89 4c 24 20       	mov    %rcx,0x20(%rsp)
140046a0c:	49 3b df             	cmp    %r15,%rbx
140046a0f:	0f 83 9e fd ff ff    	jae    0x1400467b3
140046a15:	4c 8b eb             	mov    %rbx,%r13
140046a18:	e9 03 fd ff ff       	jmp    0x140046720
140046a1d:	49 3b df             	cmp    %r15,%rbx
140046a20:	73 15                	jae    0x140046a37
140046a22:	48 89 5c cc 30       	mov    %rbx,0x30(%rsp,%rcx,8)
140046a27:	4c 89 bc cc 20 02 00 	mov    %r15,0x220(%rsp,%rcx,8)
140046a2e:	00
140046a2f:	48 ff c1             	inc    %rcx
140046a32:	48 89 4c 24 20       	mov    %rcx,0x20(%rsp)
140046a37:	4c 3b ed             	cmp    %rbp,%r13
140046a3a:	0f 83 73 fd ff ff    	jae    0x1400467b3
140046a40:	4c 8b fd             	mov    %rbp,%r15
140046a43:	e9 d8 fc ff ff       	jmp    0x140046720
140046a48:	48 8b bc 24 30 04 00 	mov    0x430(%rsp),%rdi
140046a4f:	00
140046a50:	48 8b b4 24 38 04 00 	mov    0x438(%rsp),%rsi
140046a57:	00
140046a58:	48 8b ac 24 40 04 00 	mov    0x440(%rsp),%rbp
140046a5f:	00
140046a60:	48 8b 9c 24 48 04 00 	mov    0x448(%rsp),%rbx
140046a67:	00
140046a68:	4c 8b bc 24 28 04 00 	mov    0x428(%rsp),%r15
140046a6f:	00
140046a70:	48 8b 8c 24 10 04 00 	mov    0x410(%rsp),%rcx
140046a77:	00
140046a78:	48 33 cc             	xor    %rsp,%rcx
140046a7b:	e8 80 e0 fd ff       	call   0x140024b00
140046a80:	48 81 c4 50 04 00 00 	add    $0x450,%rsp
140046a87:	41 5e                	pop    %r14
140046a89:	41 5d                	pop    %r13
140046a8b:	41 5c                	pop    %r12
140046a8d:	c3                   	ret
140046a8e:	cc                   	int3
140046a8f:	cc                   	int3
140046a90:	48 83 ec 28          	sub    $0x28,%rsp
140046a94:	e8 77 92 ff ff       	call   0x14003fd10
140046a99:	33 c9                	xor    %ecx,%ecx
140046a9b:	84 c0                	test   %al,%al
140046a9d:	0f 94 c1             	sete   %cl
140046aa0:	8b c1                	mov    %ecx,%eax
140046aa2:	48 83 c4 28          	add    $0x28,%rsp
140046aa6:	c3                   	ret
140046aa7:	cc                   	int3
140046aa8:	48 83 ec 28          	sub    $0x28,%rsp
140046aac:	83 3d 15 15 03 00 00 	cmpl   $0x0,0x31515(%rip)        # 0x140077fc8
140046ab3:	75 36                	jne    0x140046aeb
140046ab5:	48 85 c9             	test   %rcx,%rcx
140046ab8:	75 1a                	jne    0x140046ad4
140046aba:	e8 79 4f fe ff       	call   0x14002ba38
140046abf:	c7 00 16 00 00 00    	movl   $0x16,(%rax)
140046ac5:	e8 da 4a fe ff       	call   0x14002b5a4
140046aca:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
140046acf:	48 83 c4 28          	add    $0x28,%rsp
140046ad3:	c3                   	ret
140046ad4:	48 85 d2             	test   %rdx,%rdx
140046ad7:	74 e1                	je     0x140046aba
140046ad9:	49 81 f8 ff ff ff 7f 	cmp    $0x7fffffff,%r8
140046ae0:	77 d8                	ja     0x140046aba
140046ae2:	48 83 c4 28          	add    $0x28,%rsp
140046ae6:	e9 6d 02 00 00       	jmp    0x140046d58