14000374a:	49 8b 47 10          	mov    0x10(%r15),%rax
14000374e:	48 8d 55 40          	lea    0x40(%rbp),%rdx
140003752:	4d 8b 47 20          	mov    0x20(%r15),%r8
140003756:	48 8d 4d d8          	lea    -0x28(%rbp),%rcx
14000375a:	4c 8b ee             	mov    %rsi,%r13
14000375d:	49 d1 ed             	shr    $1,%r13
140003760:	49 0f af c5          	imul   %r13,%rax
140003764:	49 03 c6             	add    %r14,%rax
140003767:	48 89 45 40          	mov    %rax,0x40(%rbp)
14000376b:	e8 78 fa ff ff       	call   0x1400031e8
140003770:	0f b7 45 e0          	movzwl -0x20(%rbp),%eax
140003774:	48 3b f8             	cmp    %rax,%rdi
140003777:	75 14                	jne    0x14000378d
140003779:	48 8b 55 f0          	mov    -0x10(%rbp),%rdx
14000377d:	4c 8b c7             	mov    %rdi,%r8
140003780:	48 8b 4d 58          	mov    0x58(%rbp),%rcx
140003784:	e8 ce 6a 01 00       	call   0x14001a257
140003789:	8b c8                	mov    %eax,%ecx
14000378b:	eb 08                	jmp    0x140003795
14000378d:	0f b7 45 e0          	movzwl -0x20(%rbp),%eax
140003791:	8b cf                	mov    %edi,%ecx
140003793:	2b c8                	sub    %eax,%ecx
140003795:	85 c9                	test   %ecx,%ecx
140003797:	7e 0f                	jle    0x1400037a8
140003799:	4c 8b 75 40          	mov    0x40(%rbp),%r14
14000379d:	49 8b c4             	mov    %r12,%rax
1400037a0:	49 2b c5             	sub    %r13,%rax
1400037a3:	48 03 f0             	add    %rax,%rsi
1400037a6:	eb 03                	jmp    0x1400037ab
1400037a8:	49 8b f5             	mov    %r13,%rsi
1400037ab:	48 85 f6             	test   %rsi,%rsi
1400037ae:	75 9a                	jne    0x14000374a
1400037b0:	4c 3b 75 b0          	cmp    -0x50(%rbp),%r14
1400037b4:	0f 83 49 01 00 00    	jae    0x140003903
1400037ba:	4d 8b 47 20          	mov    0x20(%r15),%r8
1400037be:	48 8d 55 40          	lea    0x40(%rbp),%rdx
1400037c2:	48 8d 4d b8          	lea    -0x48(%rbp),%rcx
1400037c6:	4c 89 75 40          	mov    %r14,0x40(%rbp)
1400037ca:	e8 19 fa ff ff       	call   0x1400031e8
1400037cf:	0f b7 45 c0          	movzwl -0x40(%rbp),%eax
1400037d3:	48 3b f8             	cmp    %rax,%rdi
1400037d6:	75 18                	jne    0x1400037f0
1400037d8:	48 8b 55 d0          	mov    -0x30(%rbp),%rdx
1400037dc:	4c 8b c7             	mov    %rdi,%r8
1400037df:	48 8b 4d 58          	mov    0x58(%rbp),%rcx
1400037e3:	e8 6f 6a 01 00       	call   0x14001a257
1400037e8:	44 8b e0             	mov    %eax,%r12d
1400037eb:	e9 a4 00 00 00       	jmp    0x140003894
1400037f0:	0f b7 45 c0          	movzwl -0x40(%rbp),%eax
1400037f4:	2b f8                	sub    %eax,%edi
1400037f6:	44 8b e7             	mov    %edi,%r12d
1400037f9:	e9 96 00 00 00       	jmp    0x140003894
1400037fe:	8b f3                	mov    %ebx,%esi
140003800:	39 1f                	cmp    %ebx,(%rdi)
140003802:	0f 86 fb 00 00 00    	jbe    0x140003903
140003808:	4d 8b 47 20          	mov    0x20(%r15),%r8
14000380c:	48 8d 55 40          	lea    0x40(%rbp),%rdx
140003810:	48 8d 4d b8          	lea    -0x48(%rbp),%rcx
140003814:	4c 89 75 40          	mov    %r14,0x40(%rbp)
140003818:	e8 cb f9 ff ff       	call   0x1400031e8
14000381d:	84 c0                	test   %al,%al
14000381f:	74 3c                	je     0x14000385d
140003821:	0f b7 45 c0          	movzwl -0x40(%rbp),%eax
140003825:	48 8b 4d 60          	mov    0x60(%rbp),%rcx
140003829:	48 3b c8             	cmp    %rax,%rcx
14000382c:	75 15                	jne    0x140003843
14000382e:	48 8b 55 d0          	mov    -0x30(%rbp),%rdx
140003832:	4c 8b c1             	mov    %rcx,%r8
140003835:	48 8b 4d 58          	mov    0x58(%rbp),%rcx
140003839:	e8 19 6a 01 00       	call   0x14001a257
14000383e:	44 8b e0             	mov    %eax,%r12d
140003841:	eb 09                	jmp    0x14000384c
140003843:	0f b7 45 c0          	movzwl -0x40(%rbp),%eax
140003847:	2b c8                	sub    %eax,%ecx
140003849:	44 8b e1             	mov    %ecx,%r12d
14000384c:	45 85 e4             	test   %r12d,%r12d
14000384f:	7e 46                	jle    0x140003897
140003851:	4c 8b 75 40          	mov    0x40(%rbp),%r14
140003855:	ff c6                	inc    %esi
140003857:	3b 37                	cmp    (%rdi),%esi
140003859:	72 ad                	jb     0x140003808
14000385b:	eb 37                	jmp    0x140003894
14000385d:	39 37                	cmp    %esi,(%rdi)
14000385f:	74 33                	je     0x140003894
140003861:	41 8a 45 02          	mov    0x2(%r13),%al
140003865:	89 37                	mov    %esi,(%rdi)
140003867:	3c 01                	cmp    $0x1,%al
140003869:	75 10                	jne    0x14000387b
14000386b:	66 89 75 40          	mov    %si,0x40(%rbp)
14000386f:	4c 8d 45 40          	lea    0x40(%rbp),%r8
140003873:	41 b9 02 00 00 00    	mov    $0x2,%r9d
140003879:	eb 0d                	jmp    0x140003888
14000387b:	3c 02                	cmp    $0x2,%al
14000387d:	75 15                	jne    0x140003894
14000387f:	41 b9 04 00 00 00    	mov    $0x4,%r9d
140003885:	4c 8b c7             	mov    %rdi,%r8
140003888:	49 8b 4d 10          	mov    0x10(%r13),%rcx
14000388c:	49 8b d1             	mov    %r9,%rdx
14000388f:	e8 a4 57 00 00       	call   0x140009038
140003894:	45 85 e4             	test   %r12d,%r12d
140003897:	75 6a                	jne    0x140003903
140003899:	44 8a 45 ba          	mov    -0x46(%rbp),%r8b
14000389d:	45 84 c0             	test   %r8b,%r8b
1400038a0:	40 0f 95 c7          	setne  %dil
1400038a4:	45 84 c0             	test   %r8b,%r8b
1400038a7:	74 45                	je     0x1400038ee
1400038a9:	44 8b 4d 68          	mov    0x68(%rbp),%r9d
1400038ad:	44 03 4d bc          	add    -0x44(%rbp),%r9d
1400038b1:	44 39 4d bc          	cmp    %r9d,-0x44(%rbp)
1400038b5:	74 37                	je     0x1400038ee
1400038b7:	44 89 4d bc          	mov    %r9d,-0x44(%rbp)
1400038bb:	41 80 f8 01          	cmp    $0x1,%r8b
1400038bf:	75 11                	jne    0x1400038d2
1400038c1:	66 44 89 4d 40       	mov    %r9w,0x40(%rbp)
1400038c6:	4c 8d 45 40          	lea    0x40(%rbp),%r8
1400038ca:	41 b9 02 00 00 00    	mov    $0x2,%r9d
1400038d0:	eb 10                	jmp    0x1400038e2
1400038d2:	41 80 f8 02          	cmp    $0x2,%r8b
1400038d6:	75 16                	jne    0x1400038ee
1400038d8:	41 b9 04 00 00 00    	mov    $0x4,%r9d
1400038de:	4c 8d 45 bc          	lea    -0x44(%rbp),%r8
1400038e2:	48 8b 4d c8          	mov    -0x38(%rbp),%rcx
1400038e6:	49 8b d1             	mov    %r9,%rdx
1400038e9:	e8 4a 57 00 00       	call   0x140009038
1400038ee:	40 84 ff             	test   %dil,%dil
1400038f1:	75 06                	jne    0x1400038f9
1400038f3:	41 38 5f 38          	cmp    %bl,0x38(%r15)
1400038f7:	74 02                	je     0x1400038fb
1400038f9:	b3 01                	mov    $0x1,%bl
1400038fb:	41 88 5f 38          	mov    %bl,0x38(%r15)
1400038ff:	33 c0                	xor    %eax,%eax
140003901:	eb 03                	jmp    0x140003906
140003903:	49 8b c6             	mov    %r14,%rax
140003906:	48 8b 9c 24 b8 00 00 	mov    0xb8(%rsp),%rbx
14000390d:	00
14000390e:	48 83 c4 70          	add    $0x70,%rsp
140003912:	41 5f                	pop    %r15
140003914:	41 5e                	pop    %r14
140003916:	41 5d                	pop    %r13
140003918:	41 5c                	pop    %r12
14000391a:	5f                   	pop    %rdi
14000391b:	5e                   	pop    %rsi
14000391c:	5d                   	pop    %rbp
14000391d:	c3                   	ret
14000391e:	cc                   	int3
14000391f:	cc                   	int3
140003920:	cc                   	int3
140003921:	cc                   	int3
140003922:	cc                   	int3
140003923:	cc                   	int3
140003924:	cc                   	int3
140003925:	cc                   	int3
140003926:	cc                   	int3
140003927:	cc                   	int3
140003928:	48 89 5c 24 18       	mov    %rbx,0x18(%rsp)
14000392d:	4c 89 4c 24 20       	mov    %r9,0x20(%rsp)
140003932:	48 89 54 24 10       	mov    %rdx,0x10(%rsp)
140003937:	55                   	push   %rbp
140003938:	56                   	push   %rsi
140003939:	57                   	push   %rdi
14000393a:	41 54                	push   %r12
14000393c:	41 55                	push   %r13
14000393e:	41 56                	push   %r14
140003940:	41 57                	push   %r15
140003942:	48 8b ec             	mov    %rsp,%rbp
140003945:	48 81 ec 80 00 00 00 	sub    $0x80,%rsp
14000394c:	48 8b 79 18          	mov    0x18(%rcx),%rdi
140003950:	48 8b d9             	mov    %rcx,%rbx
140003953:	33 c9                	xor    %ecx,%ecx
140003955:	4d 8b f9             	mov    %r9,%r15
140003958:	4d 8b e8             	mov    %r8,%r13
14000395b:	4c 8b f2             	mov    %rdx,%r14
14000395e:	48 85 ff             	test   %rdi,%rdi
140003961:	0f 84 93 03 00 00    	je     0x140003cfa
140003967:	0f b7 43 02          	movzwl 0x2(%rbx),%eax
14000396b:	0f 57 c0             	xorps  %xmm0,%xmm0
14000396e:	66 89 45 c0          	mov    %ax,-0x40(%rbp)
140003972:	48 83 c7 0a          	add    $0xa,%rdi
140003976:	8a 43 04             	mov    0x4(%rbx),%al
140003979:	44 8a e1             	mov    %cl,%r12b
14000397c:	88 45 c2             	mov    %al,-0x3e(%rbp)
14000397f:	89 4d c4             	mov    %ecx,-0x3c(%rbp)
140003982:	66 89 4d c8          	mov    %cx,-0x38(%rbp)
140003986:	f3 0f 7f 45 d0       	movdqu %xmm0,-0x30(%rbp)
14000398b:	88 4d 40             	mov    %cl,0x40(%rbp)
14000398e:	e9 43 01 00 00       	jmp    0x140003ad6
140003993:	0f b7 4d c8          	movzwl -0x38(%rbp),%ecx
140003997:	4c 3b e9             	cmp    %rcx,%r13
14000399a:	75 16                	jne    0x1400039b2
14000399c:	48 8b 55 d8          	mov    -0x28(%rbp),%rdx
1400039a0:	4d 8b c5             	mov    %r13,%r8
1400039a3:	49 8b ce             	mov    %r14,%rcx
1400039a6:	e8 ac 68 01 00       	call   0x14001a257
1400039ab:	8b c8                	mov    %eax,%ecx
1400039ad:	45 33 d2             	xor    %r10d,%r10d
1400039b0:	eb 09                	jmp    0x1400039bb
1400039b2:	0f b7 45 c8          	movzwl -0x38(%rbp),%eax
1400039b6:	41 8b cd             	mov    %r13d,%ecx
1400039b9:	2b c8                	sub    %eax,%ecx
1400039bb:	85 c9                	test   %ecx,%ecx
1400039bd:	0f 88 bd 01 00 00    	js     0x140003b80
1400039c3:	0f 84 75 01 00 00    	je     0x140003b3e
1400039c9:	48 8b 7d b8          	mov    -0x48(%rbp),%rdi
1400039cd:	48 89 7d b8          	mov    %rdi,-0x48(%rbp)
1400039d1:	4c 39 53 10          	cmp    %r10,0x10(%rbx)
1400039d5:	76 71                	jbe    0x140003a48
1400039d7:	48 8b 43 20          	mov    0x20(%rbx),%rax
1400039db:	33 d2                	xor    %edx,%edx
1400039dd:	48 2b 43 18          	sub    0x18(%rbx),%rax
1400039e1:	48 f7 73 10          	divq   0x10(%rbx)
1400039e5:	8b 75 c4             	mov    -0x3c(%rbp),%esi
1400039e8:	48 3b f0             	cmp    %rax,%rsi
1400039eb:	76 4c                	jbe    0x140003a39
1400039ed:	3b f0                	cmp    %eax,%esi
1400039ef:	74 48                	je     0x140003a39
1400039f1:	8b f0                	mov    %eax,%esi
1400039f3:	89 45 c4             	mov    %eax,-0x3c(%rbp)
1400039f6:	8a 45 c2             	mov    -0x3e(%rbp),%al
1400039f9:	3c 01                	cmp    $0x1,%al
1400039fb:	75 1f                	jne    0x140003a1c
1400039fd:	48 8b 4d d0          	mov    -0x30(%rbp),%rcx
140003a01:	4c 8d 45 b0          	lea    -0x50(%rbp),%r8
140003a05:	41 b9 02 00 00 00    	mov    $0x2,%r9d
140003a0b:	0f b7 c6             	movzwl %si,%eax
140003a0e:	41 8b d1             	mov    %r9d,%edx
140003a11:	66 89 45 b0          	mov    %ax,-0x50(%rbp)
140003a15:	e8 1e 56 00 00       	call   0x140009038
140003a1a:	eb 1d                	jmp    0x140003a39
140003a1c:	3c 02                	cmp    $0x2,%al
140003a1e:	75 19                	jne    0x140003a39
140003a20:	48 8b 4d d0          	mov    -0x30(%rbp),%rcx
140003a24:	4c 8d 45 c4          	lea    -0x3c(%rbp),%r8
140003a28:	41 b9 04 00 00 00    	mov    $0x4,%r9d
140003a2e:	41 8b d1             	mov    %r9d,%edx
140003a31:	e8 02 56 00 00       	call   0x140009038
140003a36:	8b 75 c4             	mov    -0x3c(%rbp),%esi
140003a39:	8b c6                	mov    %esi,%eax
140003a3b:	48 0f af 43 10       	imul   0x10(%rbx),%rax
140003a40:	48 03 f8             	add    %rax,%rdi
140003a43:	e9 8e 00 00 00       	jmp    0x140003ad6
140003a48:	0f b7 43 06          	movzwl 0x6(%rbx),%eax
140003a4c:	0f 57 c0             	xorps  %xmm0,%xmm0
140003a4f:	44 8b 75 c4          	mov    -0x3c(%rbp),%r14d
140003a53:	41 8b f2             	mov    %r10d,%esi
140003a56:	66 89 45 e0          	mov    %ax,-0x20(%rbp)
140003a5a:	8a 43 08             	mov    0x8(%rbx),%al
140003a5d:	88 45 e2             	mov    %al,-0x1e(%rbp)
140003a60:	44 89 55 e4          	mov    %r10d,-0x1c(%rbp)
140003a64:	66 44 89 55 e8       	mov    %r10w,-0x18(%rbp)
140003a69:	f3 0f 7f 45 f0       	movdqu %xmm0,-0x10(%rbp)
140003a6e:	45 85 f6             	test   %r14d,%r14d
140003a71:	74 24                	je     0x140003a97
140003a73:	4c 8b 43 20          	mov    0x20(%rbx),%r8
140003a77:	48 8d 55 b8          	lea    -0x48(%rbp),%rdx
140003a7b:	48 8d 4d e0          	lea    -0x20(%rbp),%rcx
140003a7f:	e8 64 f7 ff ff       	call   0x1400031e8
140003a84:	84 c0                	test   %al,%al
140003a86:	74 07                	je     0x140003a8f
140003a88:	ff c6                	inc    %esi
140003a8a:	41 3b f6             	cmp    %r14d,%esi
140003a8d:	72 e4                	jb     0x140003a73
140003a8f:	48 8b 7d b8          	mov    -0x48(%rbp),%rdi
140003a93:	4c 8b 7d 58          	mov    0x58(%rbp),%r15
140003a97:	44 3b f6             	cmp    %esi,%r14d
140003a9a:	74 36                	je     0x140003ad2
140003a9c:	8a 45 c2             	mov    -0x3e(%rbp),%al
140003a9f:	89 75 c4             	mov    %esi,-0x3c(%rbp)
140003aa2:	3c 01                	cmp    $0x1,%al
140003aa4:	75 13                	jne    0x140003ab9
140003aa6:	41 b9 02 00 00 00    	mov    $0x2,%r9d
140003aac:	66 89 75 b0          	mov    %si,-0x50(%rbp)
140003ab0:	41 8b d1             	mov    %r9d,%edx
140003ab3:	4c 8d 45 b0          	lea    -0x50(%rbp),%r8
140003ab7:	eb 10                	jmp    0x140003ac9
140003ab9:	3c 02                	cmp    $0x2,%al
140003abb:	75 15                	jne    0x140003ad2
140003abd:	ba 04 00 00 00       	mov    $0x4,%edx
140003ac2:	4c 8d 45 c4          	lea    -0x3c(%rbp),%r8
140003ac6:	44 8b ca             	mov    %edx,%r9d
140003ac9:	48 8b 4d d0          	mov    -0x30(%rbp),%rcx
140003acd:	e8 66 55 00 00       	call   0x140009038
140003ad2:	4c 8b 75 48          	mov    0x48(%rbp),%r14
140003ad6:	4c 8b 43 20          	mov    0x20(%rbx),%r8
140003ada:	48 8d 55 b8          	lea    -0x48(%rbp),%rdx
140003ade:	48 8d 4d c0          	lea    -0x40(%rbp),%rcx
140003ae2:	48 89 7d b8          	mov    %rdi,-0x48(%rbp)
140003ae6:	e8 fd f6 ff ff       	call   0x1400031e8
140003aeb:	45 33 d2             	xor    %r10d,%r10d
140003aee:	40 8a f0             	mov    %al,%sil
140003af1:	84 c0                	test   %al,%al
140003af3:	0f 85 9a fe ff ff    	jne    0x140003993
140003af9:	48 8b 7d b8          	mov    -0x48(%rbp),%rdi
140003afd:	48 89 7b 20          	mov    %rdi,0x20(%rbx)
140003b01:	40 8a 75 c2          	mov    -0x3e(%rbp),%sil
140003b05:	49 8b ca             	mov    %r10,%rcx
140003b08:	45 84 e4             	test   %r12b,%r12b
140003b0b:	0f 85 9b 00 00 00    	jne    0x140003bac
140003b11:	0f b7 45 c0          	movzwl -0x40(%rbp),%eax
140003b15:	41 bf 01 00 00 00    	mov    $0x1,%r15d
140003b1b:	44 89 7d c4          	mov    %r15d,-0x3c(%rbp)
140003b1f:	4d 8b e2             	mov    %r10,%r12
140003b22:	66 44 89 6d c8       	mov    %r13w,-0x38(%rbp)
140003b27:	4c 89 55 d0          	mov    %r10,-0x30(%rbp)
140003b2b:	4c 89 75 d8          	mov    %r14,-0x28(%rbp)
140003b2f:	66 85 c0             	test   %ax,%ax
140003b32:	75 5e                	jne    0x140003b92
140003b34:	41 0f b7 cd          	movzwl %r13w,%ecx
140003b38:	48 83 c1 02          	add    $0x2,%rcx
140003b3c:	eb 57                	jmp    0x140003b95
140003b3e:	8b 45 68             	mov    0x68(%rbp),%eax
140003b41:	48 8d 55 c0          	lea    -0x40(%rbp),%rdx
140003b45:	48 8b 4d 60          	mov    0x60(%rbp),%rcx
140003b49:	4d 8b cf             	mov    %r15,%r9
140003b4c:	4c 8b 45 b8          	mov    -0x48(%rbp),%r8
140003b50:	89 44 24 28          	mov    %eax,0x28(%rsp)
140003b54:	48 89 4c 24 20       	mov    %rcx,0x20(%rsp)
140003b59:	48 8b cb             	mov    %rbx,%rcx
140003b5c:	e8 07 fb ff ff       	call   0x140003668
140003b61:	45 33 d2             	xor    %r10d,%r10d
140003b64:	48 89 45 b8          	mov    %rax,-0x48(%rbp)
140003b68:	48 8b f8             	mov    %rax,%rdi
140003b6b:	48 85 c0             	test   %rax,%rax
140003b6e:	75 07                	jne    0x140003b77
140003b70:	b0 01                	mov    $0x1,%al
140003b72:	e9 85 01 00 00       	jmp    0x140003cfc
140003b77:	41 b4 01             	mov    $0x1,%r12b
140003b7a:	44 88 65 40          	mov    %r12b,0x40(%rbp)
140003b7e:	eb 04                	jmp    0x140003b84
140003b80:	48 89 7d b8          	mov    %rdi,-0x48(%rbp)
140003b84:	40 84 f6             	test   %sil,%sil
140003b87:	0f 85 74 ff ff ff    	jne    0x140003b01
140003b8d:	e9 6b ff ff ff       	jmp    0x140003afd
140003b92:	48 8b c8             	mov    %rax,%rcx
140003b95:	41 3a f7             	cmp    %r15b,%sil
140003b98:	75 06                	jne    0x140003ba0
140003b9a:	48 83 c1 02          	add    $0x2,%rcx
140003b9e:	eb 14                	jmp    0x140003bb4
140003ba0:	40 80 fe 02          	cmp    $0x2,%sil
140003ba4:	75 0e                	jne    0x140003bb4
140003ba6:	48 83 c1 04          	add    $0x4,%rcx
140003baa:	eb 08                	jmp    0x140003bb4
140003bac:	4c 8b 65 d0          	mov    -0x30(%rbp),%r12
140003bb0:	44 8b 7d c4          	mov    -0x3c(%rbp),%r15d
140003bb4:	44 8b 45 68          	mov    0x68(%rbp),%r8d
140003bb8:	0f b7 43 06          	movzwl 0x6(%rbx),%eax
140003bbc:	8a 53 08             	mov    0x8(%rbx),%dl
140003bbf:	4c 8b 4d 58          	mov    0x58(%rbp),%r9
140003bc3:	44 89 45 e4          	mov    %r8d,-0x1c(%rbp)
140003bc7:	4c 8b 45 60          	mov    0x60(%rbp),%r8
140003bcb:	66 44 89 45 e8       	mov    %r8w,-0x18(%rbp)