140a995a1:	33 ff                	xor    %edi,%edi
140a995a3:	48 39 7b 40          	cmp    %rdi,0x40(%rbx)
140a995a7:	76 26                	jbe    0x140a995cf
140a995a9:	33 f6                	xor    %esi,%esi
140a995ab:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
140a995b0:	48 8b 53 30          	mov    0x30(%rbx),%rdx
140a995b4:	45 33 c0             	xor    %r8d,%r8d
140a995b7:	48 03 d6             	add    %rsi,%rdx
140a995ba:	48 8b cd             	mov    %rbp,%rcx
140a995bd:	e8 ee fd ff ff       	call   0x140a993b0
140a995c2:	48 ff c7             	inc    %rdi
140a995c5:	48 83 c6 30          	add    $0x30,%rsi
140a995c9:	48 3b 7b 40          	cmp    0x40(%rbx),%rdi
140a995cd:	72 e1                	jb     0x140a995b0
140a995cf:	83 7b 04 00          	cmpl   $0x0,0x4(%rbx)
140a995d3:	74 07                	je     0x140a995dc
140a995d5:	c7 45 04 01 00 00 00 	movl   $0x1,0x4(%rbp)
140a995dc:	48 8b 5b 10          	mov    0x10(%rbx),%rbx
140a995e0:	48 85 db             	test   %rbx,%rbx
140a995e3:	75 bc                	jne    0x140a995a1
140a995e5:	48 8b 7c 24 40       	mov    0x40(%rsp),%rdi
140a995ea:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
140a995ef:	48 8b 4d 18          	mov    0x18(%rbp),%rcx
140a995f3:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140a995f8:	48 85 c9             	test   %rcx,%rcx
140a995fb:	74 1b                	je     0x140a99618
140a995fd:	48 8b 55 28          	mov    0x28(%rbp),%rdx
140a99601:	4c 8d 0d b8 01 00 00 	lea    0x1b8(%rip),%r9        # 0x140a997c0
140a99608:	41 b8 10 00 00 00    	mov    $0x10,%r8d
140a9960e:	48 83 c4 20          	add    $0x20,%rsp
140a99612:	5d                   	pop    %rbp
140a99613:	e9 e8 0c 3b 00       	jmp    0x140e4a300
140a99618:	48 83 c4 20          	add    $0x20,%rsp
140a9961c:	5d                   	pop    %rbp
140a9961d:	c3                   	ret
140a9961e:	cc                   	int3
140a9961f:	cc                   	int3
140a99620:	40 53                	rex push %rbx
140a99622:	48 83 ec 20          	sub    $0x20,%rsp
140a99626:	48 8b d9             	mov    %rcx,%rbx
140a99629:	ba 58 00 00 00       	mov    $0x58,%edx
140a9962e:	48 8b 49 18          	mov    0x18(%rcx),%rcx
140a99632:	e8 19 03 00 00       	call   0x140a99950
140a99637:	8b 15 ab 9b 91 00    	mov    0x919bab(%rip),%edx        # 0x1413b31e8
140a9963d:	89 10                	mov    %edx,(%rax)
140a9963f:	ff c2                	inc    %edx
140a99641:	33 c9                	xor    %ecx,%ecx
140a99643:	89 15 9f 9b 91 00    	mov    %edx,0x919b9f(%rip)        # 0x1413b31e8
140a99649:	89 48 04             	mov    %ecx,0x4(%rax)
140a9964c:	48 89 48 10          	mov    %rcx,0x10(%rax)
140a99650:	48 89 48 08          	mov    %rcx,0x8(%rax)
140a99654:	48 89 48 30          	mov    %rcx,0x30(%rax)
140a99658:	48 89 48 38          	mov    %rcx,0x38(%rax)
140a9965c:	48 89 48 40          	mov    %rcx,0x40(%rax)
140a99660:	48 89 48 18          	mov    %rcx,0x18(%rax)
140a99664:	48 89 48 20          	mov    %rcx,0x20(%rax)
140a99668:	48 89 48 28          	mov    %rcx,0x28(%rax)
140a9966c:	48 89 48 48          	mov    %rcx,0x48(%rax)
140a99670:	48 89 58 50          	mov    %rbx,0x50(%rax)
140a99674:	48 83 c4 20          	add    $0x20,%rsp
140a99678:	5b                   	pop    %rbx
140a99679:	c3                   	ret
140a9967a:	cc                   	int3
140a9967b:	cc                   	int3
140a9967c:	cc                   	int3
140a9967d:	cc                   	int3
140a9967e:	cc                   	int3
140a9967f:	cc                   	int3
140a99680:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
140a99685:	48 89 7c 24 20       	mov    %rdi,0x20(%rsp)
140a9968a:	41 54                	push   %r12
140a9968c:	41 56                	push   %r14
140a9968e:	41 57                	push   %r15
140a99690:	48 83 ec 20          	sub    $0x20,%rsp
140a99694:	48 8b f9             	mov    %rcx,%rdi
140a99697:	45 33 e4             	xor    %r12d,%r12d
140a9969a:	48 8b 49 28          	mov    0x28(%rcx),%rcx
140a9969e:	0f b6 ea             	movzbl %dl,%ebp
140a996a1:	41 8b c4             	mov    %r12d,%eax
140a996a4:	4c 8d 77 28          	lea    0x28(%rdi),%r14
140a996a8:	48 85 c9             	test   %rcx,%rcx
140a996ab:	74 20                	je     0x140a996cd
140a996ad:	48 8b 57 18          	mov    0x18(%rdi),%rdx
140a996b1:	4c 8b c2             	mov    %rdx,%r8
140a996b4:	41 38 28             	cmp    %bpl,(%r8)
140a996b7:	0f 84 a5 00 00 00    	je     0x140a99762
140a996bd:	48 ff c0             	inc    %rax
140a996c0:	49 83 c0 10          	add    $0x10,%r8
140a996c4:	48 3b c1             	cmp    %rcx,%rax
140a996c7:	72 eb                	jb     0x140a996b4
140a996c9:	4c 8d 77 28          	lea    0x28(%rdi),%r14
140a996cd:	48 89 5c 24 40       	mov    %rbx,0x40(%rsp)
140a996d2:	ba 58 00 00 00       	mov    $0x58,%edx
140a996d7:	48 8b 5f 50          	mov    0x50(%rdi),%rbx
140a996db:	48 89 74 24 48       	mov    %rsi,0x48(%rsp)
140a996e0:	48 8b 4b 18          	mov    0x18(%rbx),%rcx
140a996e4:	e8 67 02 00 00       	call   0x140a99950
140a996e9:	8b 0d f9 9a 91 00    	mov    0x919af9(%rip),%ecx        # 0x1413b31e8
140a996ef:	48 8b f0             	mov    %rax,%rsi
140a996f2:	89 08                	mov    %ecx,(%rax)
140a996f4:	ff c1                	inc    %ecx
140a996f6:	48 89 58 50          	mov    %rbx,0x50(%rax)
140a996fa:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
140a996ff:	44 89 60 04          	mov    %r12d,0x4(%rax)
140a99703:	4c 89 60 10          	mov    %r12,0x10(%rax)
140a99707:	4c 89 60 08          	mov    %r12,0x8(%rax)
140a9970b:	4c 89 60 30          	mov    %r12,0x30(%rax)
140a9970f:	4c 89 60 38          	mov    %r12,0x38(%rax)
140a99713:	4c 89 60 40          	mov    %r12,0x40(%rax)
140a99717:	4c 89 60 18          	mov    %r12,0x18(%rax)
140a9971b:	4c 89 60 20          	mov    %r12,0x20(%rax)
140a9971f:	4c 89 60 28          	mov    %r12,0x28(%rax)
140a99723:	4c 89 60 48          	mov    %r12,0x48(%rax)
140a99727:	4c 8b 47 20          	mov    0x20(%rdi),%r8
140a9972b:	89 0d b7 9a 91 00    	mov    %ecx,0x919ab7(%rip)        # 0x1413b31e8
140a99731:	4c 39 47 28          	cmp    %r8,0x28(%rdi)
140a99735:	75 56                	jne    0x140a9978d
140a99737:	48 8b 4f 08          	mov    0x8(%rdi),%rcx
140a9973b:	33 d2                	xor    %edx,%edx
140a9973d:	48 ff c1             	inc    %rcx
140a99740:	b8 08 00 00 00       	mov    $0x8,%eax
140a99745:	48 f7 f1             	div    %rcx
140a99748:	48 ff c0             	inc    %rax
140a9974b:	4d 85 c0             	test   %r8,%r8
140a9974e:	75 24                	jne    0x140a99774
140a99750:	48 89 47 20          	mov    %rax,0x20(%rdi)
140a99754:	48 c1 e0 04          	shl    $0x4,%rax
140a99758:	48 8b c8             	mov    %rax,%rcx
140a9975b:	e8 cc 8f 39 00       	call   0x140e3272c
140a99760:	eb 27                	jmp    0x140a99789
140a99762:	48 03 c0             	add    %rax,%rax
140a99765:	4c 39 64 c2 08       	cmp    %r12,0x8(%rdx,%rax,8)
140a9976a:	0f 84 59 ff ff ff    	je     0x140a996c9
140a99770:	33 c0                	xor    %eax,%eax
140a99772:	eb 36                	jmp    0x140a997aa
140a99774:	48 8b 4f 18          	mov    0x18(%rdi),%rcx
140a99778:	49 8d 14 00          	lea    (%r8,%rax,1),%rdx
140a9977c:	48 89 57 20          	mov    %rdx,0x20(%rdi)
140a99780:	48 c1 e2 04          	shl    $0x4,%rdx
140a99784:	e8 1f 7a 39 00       	call   0x140e311a8
140a99789:	48 89 47 18          	mov    %rax,0x18(%rdi)
140a9978d:	49 8b 06             	mov    (%r14),%rax
140a99790:	48 c1 e0 04          	shl    $0x4,%rax
140a99794:	48 03 47 18          	add    0x18(%rdi),%rax
140a99798:	48 89 70 08          	mov    %rsi,0x8(%rax)
140a9979c:	40 88 28             	mov    %bpl,(%rax)
140a9979f:	48 8b c6             	mov    %rsi,%rax
140a997a2:	48 8b 74 24 48       	mov    0x48(%rsp),%rsi
140a997a7:	49 ff 06             	incq   (%r14)
140a997aa:	48 8b 6c 24 50       	mov    0x50(%rsp),%rbp
140a997af:	48 8b 7c 24 58       	mov    0x58(%rsp),%rdi
140a997b4:	48 83 c4 20          	add    $0x20,%rsp
140a997b8:	41 5f                	pop    %r15
140a997ba:	41 5e                	pop    %r14
140a997bc:	41 5c                	pop    %r12
140a997be:	c3                   	ret
140a997bf:	cc                   	int3
140a997c0:	0f b6 12             	movzbl (%rdx),%edx
140a997c3:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
140a997c8:	38 11                	cmp    %dl,(%rcx)
140a997ca:	41 b8 01 00 00 00    	mov    $0x1,%r8d
140a997d0:	41 0f 4d c0          	cmovge %r8d,%eax
140a997d4:	c3                   	ret
140a997d5:	cc                   	int3
140a997d6:	cc                   	int3
140a997d7:	cc                   	int3
140a997d8:	cc                   	int3
140a997d9:	cc                   	int3
140a997da:	cc                   	int3
140a997db:	cc                   	int3
140a997dc:	cc                   	int3
140a997dd:	cc                   	int3
140a997de:	cc                   	int3
140a997df:	cc                   	int3
140a997e0:	4c 8b 41 28          	mov    0x28(%rcx),%r8
140a997e4:	33 c0                	xor    %eax,%eax
140a997e6:	4d 85 c0             	test   %r8,%r8
140a997e9:	74 17                	je     0x140a99802
140a997eb:	4c 8b 49 18          	mov    0x18(%rcx),%r9
140a997ef:	49 8b c9             	mov    %r9,%rcx
140a997f2:	38 11                	cmp    %dl,(%rcx)
140a997f4:	74 0f                	je     0x140a99805
140a997f6:	48 ff c0             	inc    %rax
140a997f9:	48 83 c1 10          	add    $0x10,%rcx
140a997fd:	49 3b c0             	cmp    %r8,%rax
140a99800:	72 f0                	jb     0x140a997f2
140a99802:	33 c0                	xor    %eax,%eax
140a99804:	c3                   	ret
140a99805:	48 03 c0             	add    %rax,%rax
140a99808:	49 8b 44 c1 08       	mov    0x8(%r9,%rax,8),%rax
140a9980d:	c3                   	ret
140a9980e:	cc                   	int3
140a9980f:	cc                   	int3
140a99810:	44 8b 41 28          	mov    0x28(%rcx),%r8d
140a99814:	45 33 c9             	xor    %r9d,%r9d
140a99817:	41 83 e8 01          	sub    $0x1,%r8d
140a9981b:	78 36                	js     0x140a99853
140a9981d:	4c 8b 59 18          	mov    0x18(%rcx),%r11
140a99821:	0f 1f 40 00          	nopl   0x0(%rax)
140a99825:	66 66 66 0f 1f 84 00 	data16 data16 nopw 0x0(%rax,%rax,1)
140a9982c:	00 00 00 00
140a99830:	43 8d 04 08          	lea    (%r8,%r9,1),%eax
140a99834:	d1 f8                	sar    $1,%eax
140a99836:	4c 63 d0             	movslq %eax,%r10
140a99839:	4d 03 d2             	add    %r10,%r10
140a9983c:	43 3a 14 d3          	cmp    (%r11,%r10,8),%dl
140a99840:	7e 06                	jle    0x140a99848
140a99842:	44 8d 48 01          	lea    0x1(%rax),%r9d
140a99846:	eb 06                	jmp    0x140a9984e
140a99848:	7d 0c                	jge    0x140a99856
140a9984a:	44 8d 40 ff          	lea    -0x1(%rax),%r8d
140a9984e:	45 3b c8             	cmp    %r8d,%r9d
140a99851:	7e dd                	jle    0x140a99830
140a99853:	33 c0                	xor    %eax,%eax
140a99855:	c3                   	ret
140a99856:	4b 8b 44 d3 08       	mov    0x8(%r11,%r10,8),%rax
140a9985b:	c3                   	ret
140a9985c:	cc                   	int3
140a9985d:	cc                   	int3
140a9985e:	cc                   	int3
140a9985f:	cc                   	int3
140a99860:	40 53                	rex push %rbx
140a99862:	48 83 ec 20          	sub    $0x20,%rsp
140a99866:	48 8b d9             	mov    %rcx,%rbx
140a99869:	48 8b 49 30          	mov    0x30(%rcx),%rcx
140a9986d:	e8 1e 78 39 00       	call   0x140e31090
140a99872:	48 8b 4b 18          	mov    0x18(%rbx),%rcx
140a99876:	48 83 c4 20          	add    $0x20,%rsp
140a9987a:	5b                   	pop    %rbx
140a9987b:	e9 10 78 39 00       	jmp    0x140e31090
140a99880:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140a99885:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
140a9988a:	57                   	push   %rdi
140a9988b:	48 83 ec 20          	sub    $0x20,%rsp
140a9988f:	48 8b d9             	mov    %rcx,%rbx
140a99892:	b9 08 00 00 00       	mov    $0x8,%ecx
140a99897:	e8 90 8e 39 00       	call   0x140e3272c
140a9989c:	48 85 db             	test   %rbx,%rbx
140a9989f:	bf 00 60 00 00       	mov    $0x6000,%edi
140a998a4:	b9 20 00 00 00       	mov    $0x20,%ecx
140a998a9:	48 8b f0             	mov    %rax,%rsi
140a998ac:	48 0f 45 fb          	cmovne %rbx,%rdi
140a998b0:	e8 77 8e 39 00       	call   0x140e3272c
140a998b5:	48 8b cf             	mov    %rdi,%rcx
140a998b8:	48 8b d8             	mov    %rax,%rbx
140a998bb:	e8 6c 8e 39 00       	call   0x140e3272c
140a998c0:	48 89 43 10          	mov    %rax,0x10(%rbx)
140a998c4:	48 89 43 08          	mov    %rax,0x8(%rbx)
140a998c8:	48 8b c6             	mov    %rsi,%rax
140a998cb:	48 89 3b             	mov    %rdi,(%rbx)
140a998ce:	48 c7 43 18 00 00 00 	movq   $0x0,0x18(%rbx)
140a998d5:	00
140a998d6:	48 89 1e             	mov    %rbx,(%rsi)
140a998d9:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140a998de:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
140a998e3:	48 83 c4 20          	add    $0x20,%rsp
140a998e7:	5f                   	pop    %rdi
140a998e8:	c3                   	ret
140a998e9:	cc                   	int3
140a998ea:	cc                   	int3
140a998eb:	cc                   	int3
140a998ec:	cc                   	int3
140a998ed:	cc                   	int3
140a998ee:	cc                   	int3
140a998ef:	cc                   	int3
140a998f0:	48 85 c9             	test   %rcx,%rcx
140a998f3:	74 4f                	je     0x140a99944
140a998f5:	56                   	push   %rsi
140a998f6:	48 83 ec 20          	sub    $0x20,%rsp
140a998fa:	48 89 5c 24 30       	mov    %rbx,0x30(%rsp)
140a998ff:	48 8b f1             	mov    %rcx,%rsi
140a99902:	48 8b 19             	mov    (%rcx),%rbx
140a99905:	48 85 db             	test   %rbx,%rbx
140a99908:	74 28                	je     0x140a99932
140a9990a:	48 89 7c 24 38       	mov    %rdi,0x38(%rsp)
140a9990f:	90                   	nop
140a99910:	48 8b 4b 08          	mov    0x8(%rbx),%rcx
140a99914:	48 8b 7b 18          	mov    0x18(%rbx),%rdi
140a99918:	e8 73 77 39 00       	call   0x140e31090
140a9991d:	48 8b cb             	mov    %rbx,%rcx
140a99920:	e8 6b 77 39 00       	call   0x140e31090
140a99925:	48 8b df             	mov    %rdi,%rbx
140a99928:	48 85 ff             	test   %rdi,%rdi
140a9992b:	75 e3                	jne    0x140a99910
140a9992d:	48 8b 7c 24 38       	mov    0x38(%rsp),%rdi
140a99932:	48 8b ce             	mov    %rsi,%rcx
140a99935:	e8 56 77 39 00       	call   0x140e31090
140a9993a:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140a9993f:	48 83 c4 20          	add    $0x20,%rsp
140a99943:	5e                   	pop    %rsi
140a99944:	c3                   	ret
140a99945:	cc                   	int3
140a99946:	cc                   	int3
140a99947:	cc                   	int3
140a99948:	cc                   	int3
140a99949:	cc                   	int3
140a9994a:	cc                   	int3
140a9994b:	cc                   	int3
140a9994c:	cc                   	int3
140a9994d:	cc                   	int3
140a9994e:	cc                   	int3
140a9994f:	cc                   	int3
140a99950:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
140a99955:	57                   	push   %rdi
140a99956:	48 83 ec 20          	sub    $0x20,%rsp
140a9995a:	48 8b f9             	mov    %rcx,%rdi
140a9995d:	48 85 c9             	test   %rcx,%rcx
140a99960:	74 62                	je     0x140a999c4
140a99962:	48 8b 19             	mov    (%rcx),%rbx
140a99965:	48 85 db             	test   %rbx,%rbx
140a99968:	74 5a                	je     0x140a999c4
140a9996a:	48 85 d2             	test   %rdx,%rdx
140a9996d:	74 55                	je     0x140a999c4
140a9996f:	48 8b 43 08          	mov    0x8(%rbx),%rax
140a99973:	48 2b 43 10          	sub    0x10(%rbx),%rax
140a99977:	48 89 74 24 30       	mov    %rsi,0x30(%rsp)
140a9997c:	48 8d 72 0f          	lea    0xf(%rdx),%rsi
140a99980:	48 8b 13             	mov    (%rbx),%rdx
140a99983:	48 83 e6 f0          	and    $0xfffffffffffffff0,%rsi
140a99987:	48 03 c2             	add    %rdx,%rax
140a9998a:	48 3b c6             	cmp    %rsi,%rax
140a9998d:	73 19                	jae    0x140a999a8
140a9998f:	48 3b f2             	cmp    %rdx,%rsi
140a99992:	48 8b ce             	mov    %rsi,%rcx
140a99995:	48 0f 46 ca          	cmovbe %rdx,%rcx
140a99999:	e8 42 00 00 00       	call   0x140a999e0
140a9999e:	48 89 58 18          	mov    %rbx,0x18(%rax)
140a999a2:	48 8b d8             	mov    %rax,%rbx
140a999a5:	48 89 07             	mov    %rax,(%rdi)
140a999a8:	48 8b 43 10          	mov    0x10(%rbx),%rax
140a999ac:	48 8d 0c 30          	lea    (%rax,%rsi,1),%rcx
140a999b0:	48 8b 74 24 30       	mov    0x30(%rsp),%rsi
140a999b5:	48 89 4b 10          	mov    %rcx,0x10(%rbx)
140a999b9:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
140a999be:	48 83 c4 20          	add    $0x20,%rsp
140a999c2:	5f                   	pop    %rdi
140a999c3:	c3                   	ret
140a999c4:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
140a999c9:	33 c0                	xor    %eax,%eax
140a999cb:	48 83 c4 20          	add    $0x20,%rsp
140a999cf:	5f                   	pop    %rdi
140a999d0:	c3                   	ret
140a999d1:	cc                   	int3
140a999d2:	cc                   	int3
140a999d3:	cc                   	int3
140a999d4:	cc                   	int3
140a999d5:	cc                   	int3
140a999d6:	cc                   	int3
140a999d7:	cc                   	int3
140a999d8:	cc                   	int3