14052453b:	48 8b d7             	mov    %rdi,%rdx
14052453e:	48 8b c8             	mov    %rax,%rcx
140524541:	e8 5a 14 00 00       	call   0x1405259a0
140524546:	48 63 f0             	movslq %eax,%rsi
140524549:	48 83 c6 04          	add    $0x4,%rsi
14052454d:	49 03 f4             	add    %r12,%rsi
140524550:	48 89 74 24 48       	mov    %rsi,0x48(%rsp)
140524555:	45 0f b6 7e 02       	movzbl 0x2(%r14),%r15d
14052455a:	48 8b c5             	mov    %rbp,%rax
14052455d:	48 2b c6             	sub    %rsi,%rax
140524560:	4c 3b f8             	cmp    %rax,%r15
140524563:	0f 8f 96 02 00 00    	jg     0x1405247ff
140524569:	49 89 5e 18          	mov    %rbx,0x18(%r14)
14052456d:	b9 18 00 00 00       	mov    $0x18,%ecx
140524572:	e8 91 6b 8f 00       	call   0x140e1b108
140524577:	48 8b c8             	mov    %rax,%rcx
14052457a:	48 85 c0             	test   %rax,%rax
14052457d:	74 0d                	je     0x14052458c
14052457f:	48 89 18             	mov    %rbx,(%rax)
140524582:	48 89 58 08          	mov    %rbx,0x8(%rax)
140524586:	48 89 58 10          	mov    %rbx,0x10(%rax)
14052458a:	eb 03                	jmp    0x14052458f
14052458c:	48 8b cb             	mov    %rbx,%rcx
14052458f:	49 89 4e 10          	mov    %rcx,0x10(%r14)
140524593:	4c 89 7c 24 40       	mov    %r15,0x40(%rsp)
140524598:	48 8b 41 10          	mov    0x10(%rcx),%rax
14052459c:	48 2b 01             	sub    (%rcx),%rax
14052459f:	48 c1 f8 03          	sar    $0x3,%rax
1405245a3:	4c 3b f8             	cmp    %rax,%r15
1405245a6:	76 0a                	jbe    0x1405245b2
1405245a8:	48 8d 54 24 40       	lea    0x40(%rsp),%rdx
1405245ad:	e8 6e 10 ea ff       	call   0x1403c5620
1405245b2:	45 85 ff             	test   %r15d,%r15d
1405245b5:	0f 84 7c 00 00 00    	je     0x140524637
1405245bb:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
1405245c0:	b9 18 00 00 00       	mov    $0x18,%ecx
1405245c5:	e8 3e 6b 8f 00       	call   0x140e1b108
1405245ca:	48 89 44 24 40       	mov    %rax,0x40(%rsp)
1405245cf:	48 85 c0             	test   %rax,%rax
1405245d2:	74 0b                	je     0x1405245df
1405245d4:	48 89 18             	mov    %rbx,(%rax)
1405245d7:	89 58 08             	mov    %ebx,0x8(%rax)
1405245da:	89 58 10             	mov    %ebx,0x10(%rax)
1405245dd:	eb 03                	jmp    0x1405245e2
1405245df:	48 8b c3             	mov    %rbx,%rax
1405245e2:	49 89 46 18          	mov    %rax,0x18(%r14)
1405245e6:	45 8b cd             	mov    %r13d,%r9d
1405245e9:	4c 8b c5             	mov    %rbp,%r8
1405245ec:	48 8b d6             	mov    %rsi,%rdx
1405245ef:	48 8b c8             	mov    %rax,%rcx
1405245f2:	e8 a9 13 00 00       	call   0x1405259a0
1405245f7:	4c 63 e8             	movslq %eax,%r13
1405245fa:	4d 8b 4e 10          	mov    0x10(%r14),%r9
1405245fe:	49 8b 51 08          	mov    0x8(%r9),%rdx
140524602:	49 3b 51 10          	cmp    0x10(%r9),%rdx
140524606:	74 0e                	je     0x140524616
140524608:	49 8b 4e 18          	mov    0x18(%r14),%rcx
14052460c:	48 89 0a             	mov    %rcx,(%rdx)
14052460f:	49 83 41 08 08       	addq   $0x8,0x8(%r9)
140524614:	eb 0c                	jmp    0x140524622
140524616:	4d 8d 46 18          	lea    0x18(%r14),%r8
14052461a:	49 8b c9             	mov    %r9,%rcx
14052461d:	e8 9e 0e ea ff       	call   0x1403c54c0
140524622:	49 03 f5             	add    %r13,%rsi
140524625:	49 89 5e 18          	mov    %rbx,0x18(%r14)
140524629:	49 83 ef 01          	sub    $0x1,%r15
14052462d:	44 8b ac 24 00 01 00 	mov    0x100(%rsp),%r13d
140524634:	00
140524635:	75 89                	jne    0x1405245c0
140524637:	48 8b 44 24 48       	mov    0x48(%rsp),%rax
14052463c:	2b f0                	sub    %eax,%esi
14052463e:	48 63 fe             	movslq %esi,%rdi
140524641:	48 03 f8             	add    %rax,%rdi
140524644:	41 2b fc             	sub    %r12d,%edi
140524647:	41 0f b6 46 20       	movzbl 0x20(%r14),%eax
14052464c:	3c 0b                	cmp    $0xb,%al
14052464e:	0f 84 9a 00 00 00    	je     0x1405246ee
140524654:	3c 0e                	cmp    $0xe,%al
140524656:	0f 85 45 01 00 00    	jne    0x1405247a1
14052465c:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
140524661:	48 8b 36             	mov    (%rsi),%rsi
140524664:	48 8b 0d 05 74 f0 00 	mov    0xf07405(%rip),%rcx        # 0x14142ba70
14052466b:	48 85 c9             	test   %rcx,%rcx
14052466e:	0f 84 ff 00 00 00    	je     0x140524773
140524674:	e8 b7 0e 2f 00       	call   0x140815530
140524679:	84 c0                	test   %al,%al
14052467b:	0f 84 f2 00 00 00    	je     0x140524773
140524681:	49 8b 46 08          	mov    0x8(%r14),%rax
140524685:	44 0f b7 60 12       	movzwl 0x12(%rax),%r12d
14052468a:	44 0f b7 68 10       	movzwl 0x10(%rax),%r13d
14052468f:	48 8b 28             	mov    (%rax),%rbp
140524692:	44 8b 78 08          	mov    0x8(%rax),%r15d
140524696:	b9 28 00 00 00       	mov    $0x28,%ecx
14052469b:	e8 68 6a 8f 00       	call   0x140e1b108
1405246a0:	48 89 44 24 48       	mov    %rax,0x48(%rsp)
1405246a5:	48 85 c0             	test   %rax,%rax
1405246a8:	74 11                	je     0x1405246bb
1405246aa:	4c 8b c5             	mov    %rbp,%r8
1405246ad:	41 8b d7             	mov    %r15d,%edx
1405246b0:	48 8b c8             	mov    %rax,%rcx
1405246b3:	e8 38 d5 20 00       	call   0x140731bf0
1405246b8:	48 8b d8             	mov    %rax,%rbx
1405246bb:	48 89 5c 24 40       	mov    %rbx,0x40(%rsp)
1405246c0:	48 8b 4e 48          	mov    0x48(%rsi),%rcx
1405246c4:	45 0f b7 0e          	movzwl (%r14),%r9d
1405246c8:	4c 89 64 24 30       	mov    %r12,0x30(%rsp)
1405246cd:	4c 89 6c 24 28       	mov    %r13,0x28(%rsp)
1405246d2:	48 8d 44 24 40       	lea    0x40(%rsp),%rax
1405246d7:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
1405246dc:	4c 8b 46 18          	mov    0x18(%rsi),%r8
1405246e0:	48 8b 51 28          	mov    0x28(%rcx),%rdx
1405246e4:	e8 e7 24 00 00       	call   0x140526bd0
1405246e9:	e9 85 00 00 00       	jmp    0x140524773
1405246ee:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
1405246f3:	48 8b 36             	mov    (%rsi),%rsi
1405246f6:	48 8b 0d 93 73 f0 00 	mov    0xf07393(%rip),%rcx        # 0x14142ba90
1405246fd:	48 85 c9             	test   %rcx,%rcx
140524700:	74 71                	je     0x140524773
140524702:	e8 29 0e 2f 00       	call   0x140815530
140524707:	84 c0                	test   %al,%al
140524709:	74 68                	je     0x140524773
14052470b:	49 8b 46 08          	mov    0x8(%r14),%rax
14052470f:	44 0f b7 60 12       	movzwl 0x12(%rax),%r12d
140524714:	44 0f b7 68 10       	movzwl 0x10(%rax),%r13d
140524719:	48 8b 28             	mov    (%rax),%rbp
14052471c:	44 8b 78 08          	mov    0x8(%rax),%r15d
140524720:	b9 28 00 00 00       	mov    $0x28,%ecx
140524725:	e8 de 69 8f 00       	call   0x140e1b108
14052472a:	48 89 44 24 48       	mov    %rax,0x48(%rsp)
14052472f:	48 85 c0             	test   %rax,%rax
140524732:	74 11                	je     0x140524745
140524734:	4c 8b c5             	mov    %rbp,%r8
140524737:	41 8b d7             	mov    %r15d,%edx
14052473a:	48 8b c8             	mov    %rax,%rcx
14052473d:	e8 ae d4 20 00       	call   0x140731bf0
140524742:	48 8b d8             	mov    %rax,%rbx
140524745:	48 89 5c 24 50       	mov    %rbx,0x50(%rsp)
14052474a:	48 8b 4e 48          	mov    0x48(%rsi),%rcx
14052474e:	45 0f b7 0e          	movzwl (%r14),%r9d
140524752:	4c 89 64 24 30       	mov    %r12,0x30(%rsp)
140524757:	4c 89 6c 24 28       	mov    %r13,0x28(%rsp)
14052475c:	48 8d 44 24 50       	lea    0x50(%rsp),%rax
140524761:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
140524766:	4c 8b 46 18          	mov    0x18(%rsi),%r8
14052476a:	48 8b 51 28          	mov    0x28(%rcx),%rdx
14052476e:	e8 4d 27 00 00       	call   0x140526ec0
140524773:	41 c7 46 24 01 00 00 	movl   $0x1,0x24(%r14)
14052477a:	00
14052477b:	8b c7                	mov    %edi,%eax
14052477d:	48 8b 8c 24 88 00 00 	mov    0x88(%rsp),%rcx
140524784:	00
140524785:	48 33 cc             	xor    %rsp,%rcx
140524788:	e8 73 6d 8f 00       	call   0x140e1b500
14052478d:	48 81 c4 98 00 00 00 	add    $0x98,%rsp
140524794:	41 5f                	pop    %r15
140524796:	41 5e                	pop    %r14
140524798:	41 5d                	pop    %r13
14052479a:	41 5c                	pop    %r12
14052479c:	5f                   	pop    %rdi
14052479d:	5e                   	pop    %rsi
14052479e:	5d                   	pop    %rbp
14052479f:	5b                   	pop    %rbx
1405247a0:	c3                   	ret
1405247a1:	49 8b ce             	mov    %r14,%rcx
1405247a4:	e8 f7 3b ea ff       	call   0x1403c83a0
1405247a9:	44 0f b6 c0          	movzbl %al,%r8d
1405247ad:	48 8d 15 bc 6a ae 00 	lea    0xae6abc(%rip),%rdx        # 0x14100b270
1405247b4:	48 8d 4c 24 58       	lea    0x58(%rsp),%rcx
1405247b9:	e8 a2 38 c9 ff       	call   0x1401b8060
1405247be:	48 8d 15 5b c3 e7 00 	lea    0xe7c35b(%rip),%rdx        # 0x1413a0b20
1405247c5:	48 8d 4c 24 58       	lea    0x58(%rsp),%rcx
1405247ca:	e8 49 80 8f 00       	call   0x140e1c818
1405247cf:	cc                   	int3
1405247d0:	41 2b ec             	sub    %r12d,%ebp
1405247d3:	44 8b cd             	mov    %ebp,%r9d
1405247d6:	41 b8 04 00 00 00    	mov    $0x4,%r8d
1405247dc:	48 8d 15 45 6a ae 00 	lea    0xae6a45(%rip),%rdx        # 0x14100b228
1405247e3:	48 8d 4c 24 58       	lea    0x58(%rsp),%rcx
1405247e8:	e8 03 49 c8 ff       	call   0x1401a90f0
1405247ed:	48 8d 15 dc c1 e7 00 	lea    0xe7c1dc(%rip),%rdx        # 0x1413a09d0
1405247f4:	48 8d 4c 24 58       	lea    0x58(%rsp),%rcx
1405247f9:	e8 1a 80 8f 00       	call   0x140e1c818
1405247fe:	cc                   	int3
1405247ff:	2b ee                	sub    %esi,%ebp
140524801:	44 8b cd             	mov    %ebp,%r9d
140524804:	45 8b c7             	mov    %r15d,%r8d
140524807:	48 8d 15 32 6a ae 00 	lea    0xae6a32(%rip),%rdx        # 0x14100b240
14052480e:	48 8d 4c 24 58       	lea    0x58(%rsp),%rcx
140524813:	e8 d8 48 c8 ff       	call   0x1401a90f0
140524818:	48 8d 15 b1 c1 e7 00 	lea    0xe7c1b1(%rip),%rdx        # 0x1413a09d0
14052481f:	48 8d 4c 24 58       	lea    0x58(%rsp),%rcx
140524824:	e8 ef 7f 8f 00       	call   0x140e1c818
140524829:	cc                   	int3
14052482a:	cc                   	int3
14052482b:	cc                   	int3
14052482c:	cc                   	int3
14052482d:	cc                   	int3
14052482e:	cc                   	int3
14052482f:	cc                   	int3
140524830:	40 53                	rex push %rbx
140524832:	56                   	push   %rsi
140524833:	57                   	push   %rdi
140524834:	41 54                	push   %r12
140524836:	48 81 ec 88 00 00 00 	sub    $0x88,%rsp
14052483d:	48 8b 05 bc 46 e9 00 	mov    0xe946bc(%rip),%rax        # 0x1413b8f00
140524844:	48 33 c4             	xor    %rsp,%rax
140524847:	48 89 44 24 58       	mov    %rax,0x58(%rsp)
14052484c:	48 8b da             	mov    %rdx,%rbx
14052484f:	4d 8b e1             	mov    %r9,%r12
140524852:	48 83 c2 0a          	add    $0xa,%rdx
140524856:	49 8b f0             	mov    %r8,%rsi
140524859:	48 8b f9             	mov    %rcx,%rdi
14052485c:	49 3b d0             	cmp    %r8,%rdx
14052485f:	0f 87 ad 01 00 00    	ja     0x140524a12
140524865:	48 8d 4b 08          	lea    0x8(%rbx),%rcx
140524869:	48 3b d1             	cmp    %rcx,%rdx
14052486c:	0f 82 a0 01 00 00    	jb     0x140524a12
140524872:	0f b7 03             	movzwl (%rbx),%eax
140524875:	48 89 ac 24 80 00 00 	mov    %rbp,0x80(%rsp)
14052487c:	00
14052487d:	4c 89 7c 24 68       	mov    %r15,0x68(%rsp)
140524882:	44 8b bc 24 d0 00 00 	mov    0xd0(%rsp),%r15d
140524889:	00
14052488a:	41 83 ff 01          	cmp    $0x1,%r15d
14052488e:	75 16                	jne    0x1405248a6
140524890:	66 89 07             	mov    %ax,(%rdi)
140524893:	0f b7 43 02          	movzwl 0x2(%rbx),%eax
140524897:	66 89 47 02          	mov    %ax,0x2(%rdi)
14052489b:	8b 43 04             	mov    0x4(%rbx),%eax
14052489e:	89 47 04             	mov    %eax,0x4(%rdi)
1405248a1:	0f b7 01             	movzwl (%rcx),%eax
1405248a4:	eb 22                	jmp    0x1405248c8
1405248a6:	66 c1 c8 08          	ror    $0x8,%ax
1405248aa:	66 89 07             	mov    %ax,(%rdi)
1405248ad:	0f b7 43 02          	movzwl 0x2(%rbx),%eax
1405248b1:	66 c1 c8 08          	ror    $0x8,%ax
1405248b5:	66 89 47 02          	mov    %ax,0x2(%rdi)
1405248b9:	8b 43 04             	mov    0x4(%rbx),%eax
1405248bc:	0f c8                	bswap  %eax
1405248be:	89 47 04             	mov    %eax,0x4(%rdi)
1405248c1:	0f b7 01             	movzwl (%rcx),%eax
1405248c4:	66 c1 c8 08          	ror    $0x8,%ax
1405248c8:	44 0f b7 c0          	movzwl %ax,%r8d
1405248cc:	48 8d 6b 0a          	lea    0xa(%rbx),%rbp
1405248d0:	49 03 e8             	add    %r8,%rbp
1405248d3:	66 89 47 08          	mov    %ax,0x8(%rdi)
1405248d7:	48 3b ee             	cmp    %rsi,%rbp
1405248da:	0f 87 06 01 00 00    	ja     0x1405249e6
1405248e0:	48 3b ea             	cmp    %rdx,%rbp
1405248e3:	0f 82 fd 00 00 00    	jb     0x1405249e6
1405248e9:	4c 89 6c 24 78       	mov    %r13,0x78(%rsp)
1405248ee:	48 8d 4f 10          	lea    0x10(%rdi),%rcx
1405248f2:	4c 89 74 24 70       	mov    %r14,0x70(%rsp)
1405248f7:	e8 64 9a c8 ff       	call   0x1401ae360
1405248fc:	45 33 ed             	xor    %r13d,%r13d
1405248ff:	48 8b c5             	mov    %rbp,%rax
140524902:	48 2b c3             	sub    %rbx,%rax
140524905:	41 8b cd             	mov    %r13d,%ecx
140524908:	48 99                	cqto
14052490a:	83 e2 03             	and    $0x3,%edx
14052490d:	48 03 c2             	add    %rdx,%rax
140524910:	83 e0 03             	and    $0x3,%eax
140524913:	48 2b c2             	sub    %rdx,%rax
140524916:	ba 04 00 00 00       	mov    $0x4,%edx
14052491b:	2b d0                	sub    %eax,%edx
14052491d:	85 c0                	test   %eax,%eax
14052491f:	0f 45 ca             	cmovne %edx,%ecx
140524922:	4c 63 f1             	movslq %ecx,%r14
140524925:	b9 30 00 00 00       	mov    $0x30,%ecx
14052492a:	4c 03 f5             	add    %rbp,%r14
14052492d:	e8 d6 67 8f 00       	call   0x140e1b108
140524932:	48 89 44 24 30       	mov    %rax,0x30(%rsp)
140524937:	48 85 c0             	test   %rax,%rax
14052493a:	74 22                	je     0x14052495e
14052493c:	44 88 28             	mov    %r13b,(%rax)
14052493f:	c7 40 04 ff ff ff ff 	movl   $0xffffffff,0x4(%rax)
140524946:	4c 89 68 08          	mov    %r13,0x8(%rax)
14052494a:	4c 89 68 10          	mov    %r13,0x10(%rax)
14052494e:	4c 89 68 18          	mov    %r13,0x18(%rax)
140524952:	4c 89 68 20          	mov    %r13,0x20(%rax)
140524956:	66 c7 40 28 00 0f    	movw   $0xf00,0x28(%rax)
14052495c:	eb 03                	jmp    0x140524961
14052495e:	49 8b c5             	mov    %r13,%rax
140524961:	4d 8b cc             	mov    %r12,%r9
140524964:	48 89 47 20          	mov    %rax,0x20(%rdi)
140524968:	4c 8b c6             	mov    %rsi,%r8
14052496b:	44 89 7c 24 20       	mov    %r15d,0x20(%rsp)
140524970:	49 8b d6             	mov    %r14,%rdx
140524973:	48 8b c8             	mov    %rax,%rcx
140524976:	e8 15 f7 ff ff       	call   0x140524090
14052497b:	48 8b 0d fe 70 f0 00 	mov    0xf070fe(%rip),%rcx        # 0x14142ba80
140524982:	44 2b f3             	sub    %ebx,%r14d
140524985:	49 8b 1c 24          	mov    (%r12),%rbx
140524989:	4c 8b 6c 24 78       	mov    0x78(%rsp),%r13
14052498e:	41 8d 34 06          	lea    (%r14,%rax,1),%esi
140524992:	4c 8b 74 24 70       	mov    0x70(%rsp),%r14
140524997:	48 85 c9             	test   %rcx,%rcx
14052499a:	74 1a                	je     0x1405249b6
14052499c:	e8 8f 0b 2f 00       	call   0x140815530
1405249a1:	84 c0                	test   %al,%al
1405249a3:	74 11                	je     0x1405249b6
1405249a5:	48 8b 4b 48          	mov    0x48(%rbx),%rcx
1405249a9:	4c 8b 43 18          	mov    0x18(%rbx),%r8
1405249ad:	48 8b 51 28          	mov    0x28(%rcx),%rdx
1405249b1:	e8 fa 23 00 00       	call   0x140526db0
1405249b6:	48 8b ac 24 80 00 00 	mov    0x80(%rsp),%rbp
1405249bd:	00
1405249be:	8b c6                	mov    %esi,%eax
1405249c0:	4c 8b 7c 24 68       	mov    0x68(%rsp),%r15
1405249c5:	c7 47 28 01 00 00 00 	movl   $0x1,0x28(%rdi)
1405249cc:	48 8b 4c 24 58       	mov    0x58(%rsp),%rcx
1405249d1:	48 33 cc             	xor    %rsp,%rcx
1405249d4:	e8 27 6b 8f 00       	call   0x140e1b500
1405249d9:	48 81 c4 88 00 00 00 	add    $0x88,%rsp
1405249e0:	41 5c                	pop    %r12
1405249e2:	5f                   	pop    %rdi
1405249e3:	5e                   	pop    %rsi
1405249e4:	5b                   	pop    %rbx
1405249e5:	c3                   	ret
1405249e6:	2b f3                	sub    %ebx,%esi
1405249e8:	48 8d 15 e9 6a ae 00 	lea    0xae6ae9(%rip),%rdx        # 0x14100b4d8
1405249ef:	44 8b ce             	mov    %esi,%r9d
1405249f2:	48 8d 4c 24 38       	lea    0x38(%rsp),%rcx
1405249f7:	41 83 c0 0a          	add    $0xa,%r8d
1405249fb:	e8 f0 46 c8 ff       	call   0x1401a90f0
140524a00:	48 8d 15 c9 bf e7 00 	lea    0xe7bfc9(%rip),%rdx        # 0x1413a09d0
140524a07:	48 8d 4c 24 38       	lea    0x38(%rsp),%rcx
140524a0c:	e8 07 7e 8f 00       	call   0x140e1c818
140524a11:	cc                   	int3
140524a12:	2b f3                	sub    %ebx,%esi
140524a14:	48 8d 15 8d 6a ae 00 	lea    0xae6a8d(%rip),%rdx        # 0x14100b4a8
140524a1b:	44 8b ce             	mov    %esi,%r9d
140524a1e:	48 8d 4c 24 38       	lea    0x38(%rsp),%rcx
140524a23:	41 b8 0a 00 00 00    	mov    $0xa,%r8d
140524a29:	e8 c2 46 c8 ff       	call   0x1401a90f0
140524a2e:	48 8d 15 9b bf e7 00 	lea    0xe7bf9b(%rip),%rdx        # 0x1413a09d0
140524a35:	48 8d 4c 24 38       	lea    0x38(%rsp),%rcx
140524a3a:	e8 d9 7d 8f 00       	call   0x140e1c818
140524a3f:	cc                   	int3
140524a40:	40 53                	rex push %rbx
140524a42:	55                   	push   %rbp
140524a43:	56                   	push   %rsi
140524a44:	57                   	push   %rdi
140524a45:	41 56                	push   %r14
140524a47:	41 57                	push   %r15
140524a49:	48 83 ec 58          	sub    $0x58,%rsp
140524a4d:	48 8b 05 ac 44 e9 00 	mov    0xe944ac(%rip),%rax        # 0x1413b8f00
140524a54:	48 33 c4             	xor    %rsp,%rax
140524a57:	48 89 44 24 48       	mov    %rax,0x48(%rsp)
140524a5c:	48 8b 41 10          	mov    0x10(%rcx),%rax