140051657:	48 83 ec 20          	sub    $0x20,%rsp
14005165b:	48 85 d2             	test   %rdx,%rdx
14005165e:	0f 84 9f 00 00 00    	je     0x140051703
140051664:	48 89 d7             	mov    %rdx,%rdi
140051667:	48 89 ce             	mov    %rcx,%rsi
14005166a:	49 bf f7 ff ff ff ff 	movabs $0x7ffffffffffffff7,%r15
140051671:	ff ff 7f
140051674:	48 89 d1             	mov    %rdx,%rcx
140051677:	e8 14 60 03 00       	call   0x140087690
14005167c:	4c 39 f8             	cmp    %r15,%rax
14005167f:	0f 87 80 00 00 00    	ja     0x140051705
140051685:	48 89 c3             	mov    %rax,%rbx
140051688:	48 83 f8 16          	cmp    $0x16,%rax
14005168c:	77 3d                	ja     0x1400516cb
14005168e:	88 5e 17             	mov    %bl,0x17(%rsi)
140051691:	48 89 f1             	mov    %rsi,%rcx
140051694:	4c 8d 34 19          	lea    (%rcx,%rbx,1),%r14
140051698:	48 39 cf             	cmp    %rcx,%rdi
14005169b:	0f 92 c0             	setb   %al
14005169e:	4c 39 f7             	cmp    %r14,%rdi
1400516a1:	0f 93 c2             	setae  %dl
1400516a4:	08 c2                	or     %al,%dl
1400516a6:	74 5b                	je     0x140051703
1400516a8:	48 85 db             	test   %rbx,%rbx
1400516ab:	74 0b                	je     0x1400516b8
1400516ad:	48 89 fa             	mov    %rdi,%rdx
1400516b0:	49 89 d8             	mov    %rbx,%r8
1400516b3:	e8 b8 c4 04 00       	call   0x14009db70
1400516b8:	41 c6 06 00          	movb   $0x0,(%r14)
1400516bc:	48 89 f0             	mov    %rsi,%rax
1400516bf:	48 83 c4 20          	add    $0x20,%rsp
1400516c3:	5b                   	pop    %rbx
1400516c4:	5f                   	pop    %rdi
1400516c5:	5e                   	pop    %rsi
1400516c6:	41 5e                	pop    %r14
1400516c8:	41 5f                	pop    %r15
1400516ca:	c3                   	ret
1400516cb:	48 89 d8             	mov    %rbx,%rax
1400516ce:	48 83 c8 07          	or     $0x7,%rax
1400516d2:	48 8d 48 01          	lea    0x1(%rax),%rcx
1400516d6:	48 83 f8 17          	cmp    $0x17,%rax
1400516da:	41 be 19 00 00 00    	mov    $0x19,%r14d
1400516e0:	4c 0f 45 f1          	cmovne %rcx,%r14
1400516e4:	4c 89 f1             	mov    %r14,%rcx
1400516e7:	e8 a8 c7 01 00       	call   0x14006de94
1400516ec:	48 89 c1             	mov    %rax,%rcx
1400516ef:	48 89 06             	mov    %rax,(%rsi)
1400516f2:	49 83 c7 09          	add    $0x9,%r15
1400516f6:	4d 09 f7             	or     %r14,%r15
1400516f9:	4c 89 7e 10          	mov    %r15,0x10(%rsi)
1400516fd:	48 89 5e 08          	mov    %rbx,0x8(%rsi)
140051701:	eb 91                	jmp    0x140051694
140051703:	0f 0b                	ud2
140051705:	48 89 f1             	mov    %rsi,%rcx
140051708:	e8 33 dc 04 00       	call   0x14009f340
14005170d:	cc                   	int3
14005170e:	cc                   	int3
14005170f:	cc                   	int3
140051710:	41 57                	push   %r15
140051712:	41 56                	push   %r14
140051714:	41 55                	push   %r13
140051716:	41 54                	push   %r12
140051718:	56                   	push   %rsi
140051719:	57                   	push   %rdi
14005171a:	55                   	push   %rbp
14005171b:	53                   	push   %rbx
14005171c:	48 83 ec 28          	sub    $0x28,%rsp
140051720:	48 89 ce             	mov    %rcx,%rsi
140051723:	48 bd f7 ff ff ff ff 	movabs $0x7ffffffffffffff7,%rbp
14005172a:	ff ff 7f
14005172d:	48 89 e8             	mov    %rbp,%rax
140051730:	48 29 d0             	sub    %rdx,%rax
140051733:	49 39 c0             	cmp    %rax,%r8
140051736:	0f 87 df 00 00 00    	ja     0x14005181b
14005173c:	4c 89 cb             	mov    %r9,%rbx
14005173f:	48 89 d7             	mov    %rdx,%rdi
140051742:	80 7e 17 00          	cmpb   $0x0,0x17(%rsi)
140051746:	49 89 f6             	mov    %rsi,%r14
140051749:	0f 88 94 00 00 00    	js     0x1400517e3
14005174f:	4c 8b a4 24 90 00 00 	mov    0x90(%rsp),%r12
140051756:	00
140051757:	48 b8 f2 ff ff ff ff 	movabs $0x3ffffffffffffff2,%rax
14005175e:	ff ff 3f
140051761:	49 89 ef             	mov    %rbp,%r15
140051764:	48 39 c7             	cmp    %rax,%rdi
140051767:	77 34                	ja     0x14005179d
140051769:	48 8d 04 3f          	lea    (%rdi,%rdi,1),%rax
14005176d:	49 01 f8             	add    %rdi,%r8
140051770:	49 39 c0             	cmp    %rax,%r8
140051773:	4c 0f 46 c0          	cmovbe %rax,%r8
140051777:	4c 89 c0             	mov    %r8,%rax
14005177a:	48 83 c8 07          	or     $0x7,%rax
14005177e:	48 8d 48 01          	lea    0x1(%rax),%rcx
140051782:	48 83 f8 17          	cmp    $0x17,%rax
140051786:	b8 19 00 00 00       	mov    $0x19,%eax
14005178b:	48 0f 45 c1          	cmovne %rcx,%rax
14005178f:	49 83 f8 17          	cmp    $0x17,%r8
140051793:	41 bf 17 00 00 00    	mov    $0x17,%r15d
140051799:	4c 0f 43 f8          	cmovae %rax,%r15
14005179d:	4c 89 f9             	mov    %r15,%rcx
1400517a0:	e8 ef c6 01 00       	call   0x14006de94
1400517a5:	49 89 c5             	mov    %rax,%r13
1400517a8:	4d 85 e4             	test   %r12,%r12
1400517ab:	75 48                	jne    0x1400517f5
1400517ad:	48 8b 94 24 98 00 00 	mov    0x98(%rsp),%rdx
1400517b4:	00
1400517b5:	4a 8d 04 22          	lea    (%rdx,%r12,1),%rax
1400517b9:	48 39 c3             	cmp    %rax,%rbx
1400517bc:	75 65                	jne    0x140051823
1400517be:	48 83 ff 16          	cmp    $0x16,%rdi
1400517c2:	75 27                	jne    0x1400517eb
1400517c4:	4c 89 2e             	mov    %r13,(%rsi)
1400517c7:	48 83 c5 09          	add    $0x9,%rbp
1400517cb:	49 09 ef             	or     %rbp,%r15
1400517ce:	4c 89 7e 10          	mov    %r15,0x10(%rsi)
1400517d2:	48 83 c4 28          	add    $0x28,%rsp
1400517d6:	5b                   	pop    %rbx
1400517d7:	5d                   	pop    %rbp
1400517d8:	5f                   	pop    %rdi
1400517d9:	5e                   	pop    %rsi
1400517da:	41 5c                	pop    %r12
1400517dc:	41 5d                	pop    %r13
1400517de:	41 5e                	pop    %r14
1400517e0:	41 5f                	pop    %r15
1400517e2:	c3                   	ret
1400517e3:	4c 8b 36             	mov    (%rsi),%r14
1400517e6:	e9 64 ff ff ff       	jmp    0x14005174f
1400517eb:	4c 89 f1             	mov    %r14,%rcx
1400517ee:	e8 dd c6 01 00       	call   0x14006ded0
1400517f3:	eb cf                	jmp    0x1400517c4
1400517f5:	78 68                	js     0x14005185f
1400517f7:	4b 8d 04 2c          	lea    (%r12,%r13,1),%rax
1400517fb:	4d 39 ee             	cmp    %r13,%r14
1400517fe:	0f 92 c1             	setb   %cl
140051801:	49 39 c6             	cmp    %rax,%r14
140051804:	0f 93 c0             	setae  %al
140051807:	08 c8                	or     %cl,%al
140051809:	74 54                	je     0x14005185f
14005180b:	4c 89 e9             	mov    %r13,%rcx
14005180e:	4c 89 f2             	mov    %r14,%rdx
140051811:	4d 89 e0             	mov    %r12,%r8
140051814:	e8 57 c3 04 00       	call   0x14009db70
140051819:	eb 92                	jmp    0x1400517ad
14005181b:	48 89 f1             	mov    %rsi,%rcx
14005181e:	e8 1d db 04 00       	call   0x14009f340
140051823:	48 29 c3             	sub    %rax,%rbx
140051826:	78 37                	js     0x14005185f
140051828:	4c 01 f2             	add    %r14,%rdx
14005182b:	4c 01 e2             	add    %r12,%rdx
14005182e:	4c 89 e9             	mov    %r13,%rcx
140051831:	4c 01 e1             	add    %r12,%rcx
140051834:	48 03 8c 24 a0 00 00 	add    0xa0(%rsp),%rcx
14005183b:	00
14005183c:	48 8d 04 19          	lea    (%rcx,%rbx,1),%rax
140051840:	48 39 ca             	cmp    %rcx,%rdx
140051843:	41 0f 92 c0          	setb   %r8b
140051847:	48 39 c2             	cmp    %rax,%rdx
14005184a:	0f 93 c0             	setae  %al
14005184d:	44 08 c0             	or     %r8b,%al
140051850:	74 0d                	je     0x14005185f
140051852:	49 89 d8             	mov    %rbx,%r8
140051855:	e8 16 c3 04 00       	call   0x14009db70
14005185a:	e9 5f ff ff ff       	jmp    0x1400517be
14005185f:	0f 0b                	ud2
140051861:	cc                   	int3
140051862:	cc                   	int3
140051863:	cc                   	int3
140051864:	cc                   	int3
140051865:	cc                   	int3
140051866:	cc                   	int3
140051867:	cc                   	int3
140051868:	cc                   	int3
140051869:	cc                   	int3
14005186a:	cc                   	int3
14005186b:	cc                   	int3
14005186c:	cc                   	int3
14005186d:	cc                   	int3
14005186e:	cc                   	int3
14005186f:	cc                   	int3
140051870:	41 57                	push   %r15
140051872:	41 56                	push   %r14
140051874:	56                   	push   %rsi
140051875:	57                   	push   %rdi
140051876:	53                   	push   %rbx
140051877:	48 83 ec 20          	sub    $0x20,%rsp
14005187b:	48 89 ce             	mov    %rcx,%rsi
14005187e:	49 bf f7 ff ff ff ff 	movabs $0x7ffffffffffffff7,%r15
140051885:	ff ff 7f
140051888:	48 8b 7a 08          	mov    0x8(%rdx),%rdi
14005188c:	4c 39 ff             	cmp    %r15,%rdi
14005188f:	0f 87 81 00 00 00    	ja     0x140051916
140051895:	48 8b 1a             	mov    (%rdx),%rbx
140051898:	48 83 ff 16          	cmp    $0x16,%rdi
14005189c:	77 3e                	ja     0x1400518dc
14005189e:	40 88 7e 17          	mov    %dil,0x17(%rsi)
1400518a2:	48 89 f1             	mov    %rsi,%rcx
1400518a5:	4c 8d 34 39          	lea    (%rcx,%rdi,1),%r14
1400518a9:	48 39 cb             	cmp    %rcx,%rbx
1400518ac:	0f 92 c0             	setb   %al
1400518af:	4c 39 f3             	cmp    %r14,%rbx
1400518b2:	0f 93 c2             	setae  %dl
1400518b5:	08 c2                	or     %al,%dl
1400518b7:	74 5b                	je     0x140051914
1400518b9:	48 85 ff             	test   %rdi,%rdi
1400518bc:	74 0b                	je     0x1400518c9
1400518be:	48 89 da             	mov    %rbx,%rdx
1400518c1:	49 89 f8             	mov    %rdi,%r8
1400518c4:	e8 a7 c2 04 00       	call   0x14009db70
1400518c9:	41 c6 06 00          	movb   $0x0,(%r14)
1400518cd:	48 89 f0             	mov    %rsi,%rax
1400518d0:	48 83 c4 20          	add    $0x20,%rsp
1400518d4:	5b                   	pop    %rbx
1400518d5:	5f                   	pop    %rdi
1400518d6:	5e                   	pop    %rsi
1400518d7:	41 5e                	pop    %r14
1400518d9:	41 5f                	pop    %r15
1400518db:	c3                   	ret
1400518dc:	48 89 f8             	mov    %rdi,%rax
1400518df:	48 83 c8 07          	or     $0x7,%rax
1400518e3:	48 8d 48 01          	lea    0x1(%rax),%rcx
1400518e7:	48 83 f8 17          	cmp    $0x17,%rax
1400518eb:	41 be 19 00 00 00    	mov    $0x19,%r14d
1400518f1:	4c 0f 45 f1          	cmovne %rcx,%r14
1400518f5:	4c 89 f1             	mov    %r14,%rcx
1400518f8:	e8 97 c5 01 00       	call   0x14006de94
1400518fd:	48 89 c1             	mov    %rax,%rcx
140051900:	48 89 06             	mov    %rax,(%rsi)
140051903:	49 83 c7 09          	add    $0x9,%r15
140051907:	4d 09 f7             	or     %r14,%r15
14005190a:	4c 89 7e 10          	mov    %r15,0x10(%rsi)
14005190e:	48 89 7e 08          	mov    %rdi,0x8(%rsi)
140051912:	eb 91                	jmp    0x1400518a5
140051914:	0f 0b                	ud2
140051916:	48 89 f1             	mov    %rsi,%rcx
140051919:	e8 22 da 04 00       	call   0x14009f340
14005191e:	cc                   	int3
14005191f:	cc                   	int3
140051920:	41 57                	push   %r15
140051922:	41 56                	push   %r14
140051924:	41 55                	push   %r13
140051926:	41 54                	push   %r12
140051928:	56                   	push   %rsi
140051929:	57                   	push   %rdi
14005192a:	55                   	push   %rbp
14005192b:	53                   	push   %rbx
14005192c:	48 83 ec 28          	sub    $0x28,%rsp
140051930:	48 89 ce             	mov    %rcx,%rsi
140051933:	48 c7 41 58 00 00 00 	movq   $0x0,0x58(%rcx)
14005193a:	00
14005193b:	48 8d 79 40          	lea    0x40(%rcx),%rdi
14005193f:	48 0f be 49 57       	movsbq 0x57(%rcx),%rcx
140051944:	48 85 c9             	test   %rcx,%rcx
140051947:	0f 88 aa 01 00 00    	js     0x140051af7
14005194d:	49 89 fd             	mov    %rdi,%r13
140051950:	48 89 cd             	mov    %rcx,%rbp
140051953:	8b 46 60             	mov    0x60(%rsi),%eax
140051956:	a8 08                	test   $0x8,%al
140051958:	74 1f                	je     0x140051979
14005195a:	4c 89 ea             	mov    %r13,%rdx
14005195d:	48 01 ea             	add    %rbp,%rdx
140051960:	48 89 56 58          	mov    %rdx,0x58(%rsi)
140051964:	48 85 ed             	test   %rbp,%rbp
140051967:	0f 88 88 01 00 00    	js     0x140051af5
14005196d:	4c 89 6e 10          	mov    %r13,0x10(%rsi)
140051971:	4c 89 6e 18          	mov    %r13,0x18(%rsi)
140051975:	48 89 56 20          	mov    %rdx,0x20(%rsi)
140051979:	a8 10                	test   $0x10,%al
14005197b:	0f 84 11 01 00 00    	je     0x140051a92
140051981:	4c 89 e8             	mov    %r13,%rax
140051984:	48 01 e8             	add    %rbp,%rax
140051987:	48 89 46 58          	mov    %rax,0x58(%rsi)
14005198b:	b8 16 00 00 00       	mov    $0x16,%eax
140051990:	84 c9                	test   %cl,%cl
140051992:	0f 88 e5 01 00 00    	js     0x140051b7d
140051998:	0f b6 d9             	movzbl %cl,%ebx
14005199b:	49 89 c6             	mov    %rax,%r14
14005199e:	49 29 de             	sub    %rbx,%r14
1400519a1:	0f 86 01 01 00 00    	jbe    0x140051aa8
1400519a7:	b9 16 00 00 00       	mov    $0x16,%ecx
1400519ac:	ba 16 00 00 00       	mov    $0x16,%edx
1400519b1:	48 29 da             	sub    %rbx,%rdx
1400519b4:	4c 39 f2             	cmp    %r14,%rdx
1400519b7:	0f 83 e6 00 00 00    	jae    0x140051aa3
1400519bd:	48 ba ff ff ff ff ff 	movabs $0x7fffffffffffffff,%rdx
1400519c4:	ff ff 7f
1400519c7:	4c 8d 04 10          	lea    (%rax,%rdx,1),%r8
1400519cb:	49 83 c0 09          	add    $0x9,%r8
1400519cf:	48 83 c2 1f          	add    $0x1f,%rdx
1400519d3:	49 39 d0             	cmp    %rdx,%r8
1400519d6:	0f 82 28 01 00 00    	jb     0x140051b04
1400519dc:	48 8d 14 09          	lea    (%rcx,%rcx,1),%rdx
1400519e0:	48 39 d0             	cmp    %rdx,%rax
1400519e3:	48 0f 47 d0          	cmova  %rax,%rdx
1400519e7:	48 89 d0             	mov    %rdx,%rax
1400519ea:	48 83 c8 07          	or     $0x7,%rax
1400519ee:	4c 8d 40 01          	lea    0x1(%rax),%r8
1400519f2:	48 83 f8 17          	cmp    $0x17,%rax
1400519f6:	b8 19 00 00 00       	mov    $0x19,%eax
1400519fb:	49 0f 45 c0          	cmovne %r8,%rax
1400519ff:	48 83 fa 17          	cmp    $0x17,%rdx
140051a03:	41 bf 17 00 00 00    	mov    $0x17,%r15d
140051a09:	4c 0f 43 f8          	cmovae %rax,%r15
140051a0d:	48 83 f9 16          	cmp    $0x16,%rcx
140051a11:	0f 94 c0             	sete   %al
140051a14:	89 44 24 24          	mov    %eax,0x24(%rsp)
140051a18:	4c 89 f9             	mov    %r15,%rcx
140051a1b:	e8 74 c4 01 00       	call   0x14006de94
140051a20:	49 89 c4             	mov    %rax,%r12
140051a23:	48 85 db             	test   %rbx,%rbx
140051a26:	0f 85 9b 00 00 00    	jne    0x140051ac7
140051a2c:	80 7c 24 24 00       	cmpb   $0x0,0x24(%rsp)
140051a31:	0f 84 83 00 00 00    	je     0x140051aba
140051a37:	4c 89 66 40          	mov    %r12,0x40(%rsi)
140051a3b:	48 b8 ff ff ff ff ff 	movabs $0x7fffffffffffffff,%rax
140051a42:	ff ff 7f
140051a45:	48 ff c0             	inc    %rax
140051a48:	49 09 c7             	or     %rax,%r15
140051a4b:	4c 89 7e 50          	mov    %r15,0x50(%rsi)
140051a4f:	48 89 5e 48          	mov    %rbx,0x48(%rsi)
140051a53:	49 8d 0c 1c          	lea    (%r12,%rbx,1),%rcx
140051a57:	31 d2                	xor    %edx,%edx
140051a59:	4d 89 f0             	mov    %r14,%r8
140051a5c:	e8 af c7 04 00       	call   0x14009e210
140051a61:	4c 01 f3             	add    %r14,%rbx
140051a64:	80 7e 57 00          	cmpb   $0x0,0x57(%rsi)
140051a68:	79 47                	jns    0x140051ab1
140051a6a:	48 89 5e 48          	mov    %rbx,0x48(%rsi)
140051a6e:	41 c6 04 1c 00       	movb   $0x0,(%r12,%rbx,1)
140051a73:	48 0f be 46 57       	movsbq 0x57(%rsi),%rax
140051a78:	48 85 c0             	test   %rax,%rax
140051a7b:	78 6f                	js     0x140051aec
140051a7d:	4c 01 e8             	add    %r13,%rax
140051a80:	4c 89 6e 30          	mov    %r13,0x30(%rsi)
140051a84:	4c 89 6e 28          	mov    %r13,0x28(%rsi)
140051a88:	48 89 46 38          	mov    %rax,0x38(%rsi)
140051a8c:	f6 46 60 03          	testb  $0x3,0x60(%rsi)
140051a90:	75 7a                	jne    0x140051b0c
140051a92:	48 83 c4 28          	add    $0x28,%rsp
140051a96:	5b                   	pop    %rbx
140051a97:	5d                   	pop    %rbp
140051a98:	5f                   	pop    %rdi
140051a99:	5e                   	pop    %rsi
140051a9a:	41 5c                	pop    %r12
140051a9c:	41 5d                	pop    %r13
140051a9e:	41 5e                	pop    %r14
140051aa0:	41 5f                	pop    %r15
140051aa2:	c3                   	ret
140051aa3:	49 89 fc             	mov    %rdi,%r12
140051aa6:	eb ab                	jmp    0x140051a53
140051aa8:	88 46 57             	mov    %al,0x57(%rsi)