14015c3f7:	0f 89 8a 01 00 00    	jns    0x14015c587
14015c3fd:	48 8b 4e 08          	mov    0x8(%rsi),%rcx
14015c401:	4a 8d 04 19          	lea    (%rcx,%r11,1),%rax
14015c405:	48 f7 d8             	neg    %rax
14015c408:	48 85 c9             	test   %rcx,%rcx
14015c40b:	48 89 43 08          	mov    %rax,0x8(%rbx)
14015c40f:	4c 0f 45 da          	cmovne %rdx,%r11
14015c413:	44 03 d2             	add    %edx,%r10d
14015c416:	0f 89 6b 01 00 00    	jns    0x14015c587
14015c41c:	48 8b 4e 10          	mov    0x10(%rsi),%rcx
14015c420:	4a 8d 04 19          	lea    (%rcx,%r11,1),%rax
14015c424:	48 f7 d8             	neg    %rax
14015c427:	48 85 c9             	test   %rcx,%rcx
14015c42a:	48 89 43 10          	mov    %rax,0x10(%rbx)
14015c42e:	4c 0f 45 da          	cmovne %rdx,%r11
14015c432:	44 03 d2             	add    %edx,%r10d
14015c435:	0f 89 4c 01 00 00    	jns    0x14015c587
14015c43b:	48 8b 4e 18          	mov    0x18(%rsi),%rcx
14015c43f:	4a 8d 04 19          	lea    (%rcx,%r11,1),%rax
14015c443:	48 f7 d8             	neg    %rax
14015c446:	48 85 c9             	test   %rcx,%rcx
14015c449:	48 89 43 18          	mov    %rax,0x18(%rbx)
14015c44d:	4c 0f 45 da          	cmovne %rdx,%r11
14015c451:	44 03 d2             	add    %edx,%r10d
14015c454:	0f 89 2d 01 00 00    	jns    0x14015c587
14015c45a:	48 83 c6 20          	add    $0x20,%rsi
14015c45e:	48 83 c3 20          	add    $0x20,%rbx
14015c462:	e9 79 ff ff ff       	jmp    0x14015c3e0
14015c467:	4d 85 db             	test   %r11,%r11
14015c46a:	0f 84 a9 00 00 00    	je     0x14015c519
14015c470:	48 8b 0f             	mov    (%rdi),%rcx
14015c473:	48 8b c1             	mov    %rcx,%rax
14015c476:	49 2b c3             	sub    %r11,%rax
14015c479:	48 89 03             	mov    %rax,(%rbx)
14015c47c:	33 c0                	xor    %eax,%eax
14015c47e:	48 85 c9             	test   %rcx,%rcx
14015c481:	49 0f 44 c3          	cmove  %r11,%rax
14015c485:	41 ff ca             	dec    %r10d
14015c488:	4c 8b d8             	mov    %rax,%r11
14015c48b:	48 8b d0             	mov    %rax,%rdx
14015c48e:	45 85 d2             	test   %r10d,%r10d
14015c491:	0f 8e f0 00 00 00    	jle    0x14015c587
14015c497:	48 8b 4f 08          	mov    0x8(%rdi),%rcx
14015c49b:	45 33 db             	xor    %r11d,%r11d
14015c49e:	48 8b c1             	mov    %rcx,%rax
14015c4a1:	48 2b c2             	sub    %rdx,%rax
14015c4a4:	48 85 c9             	test   %rcx,%rcx
14015c4a7:	48 89 43 08          	mov    %rax,0x8(%rbx)
14015c4ab:	4c 0f 44 da          	cmove  %rdx,%r11
14015c4af:	41 ff ca             	dec    %r10d
14015c4b2:	49 8b d3             	mov    %r11,%rdx
14015c4b5:	45 85 d2             	test   %r10d,%r10d
14015c4b8:	0f 8e c9 00 00 00    	jle    0x14015c587
14015c4be:	48 8b 4f 10          	mov    0x10(%rdi),%rcx
14015c4c2:	45 33 db             	xor    %r11d,%r11d
14015c4c5:	48 8b c1             	mov    %rcx,%rax
14015c4c8:	48 2b c2             	sub    %rdx,%rax
14015c4cb:	48 85 c9             	test   %rcx,%rcx
14015c4ce:	48 89 43 10          	mov    %rax,0x10(%rbx)
14015c4d2:	4c 0f 44 da          	cmove  %rdx,%r11
14015c4d6:	41 ff ca             	dec    %r10d
14015c4d9:	45 85 d2             	test   %r10d,%r10d
14015c4dc:	0f 8e a5 00 00 00    	jle    0x14015c587
14015c4e2:	48 8b 4f 18          	mov    0x18(%rdi),%rcx
14015c4e6:	48 8b c1             	mov    %rcx,%rax
14015c4e9:	49 2b c3             	sub    %r11,%rax
14015c4ec:	48 89 43 18          	mov    %rax,0x18(%rbx)
14015c4f0:	33 c0                	xor    %eax,%eax
14015c4f2:	48 85 c9             	test   %rcx,%rcx
14015c4f5:	49 0f 44 c3          	cmove  %r11,%rax
14015c4f9:	41 ff ca             	dec    %r10d
14015c4fc:	4c 8b d8             	mov    %rax,%r11
14015c4ff:	45 85 d2             	test   %r10d,%r10d
14015c502:	0f 8e 7f 00 00 00    	jle    0x14015c587
14015c508:	48 83 c7 20          	add    $0x20,%rdi
14015c50c:	48 83 c3 20          	add    $0x20,%rbx
14015c510:	48 85 c0             	test   %rax,%rax
14015c513:	0f 85 57 ff ff ff    	jne    0x14015c470
14015c519:	45 85 d2             	test   %r10d,%r10d
14015c51c:	7e 69                	jle    0x14015c587
14015c51e:	48 8b 07             	mov    (%rdi),%rax
14015c521:	41 ff ca             	dec    %r10d
14015c524:	48 89 03             	mov    %rax,(%rbx)
14015c527:	45 85 d2             	test   %r10d,%r10d
14015c52a:	7e 5b                	jle    0x14015c587
14015c52c:	48 8d 57 10          	lea    0x10(%rdi),%rdx
14015c530:	48 2b fb             	sub    %rbx,%rdi
14015c533:	48 8d 4b 10          	lea    0x10(%rbx),%rcx
14015c537:	66 0f 1f 84 00 00 00 	nopw   0x0(%rax,%rax,1)
14015c53e:	00 00
14015c540:	48 8b 42 f8          	mov    -0x8(%rdx),%rax
14015c544:	41 ff ca             	dec    %r10d
14015c547:	48 89 41 f8          	mov    %rax,-0x8(%rcx)
14015c54b:	45 85 d2             	test   %r10d,%r10d
14015c54e:	7e 37                	jle    0x14015c587
14015c550:	48 8b 02             	mov    (%rdx),%rax
14015c553:	41 ff ca             	dec    %r10d
14015c556:	48 89 01             	mov    %rax,(%rcx)
14015c559:	45 85 d2             	test   %r10d,%r10d
14015c55c:	7e 29                	jle    0x14015c587
14015c55e:	48 8b 42 08          	mov    0x8(%rdx),%rax
14015c562:	41 ff ca             	dec    %r10d
14015c565:	48 89 41 08          	mov    %rax,0x8(%rcx)
14015c569:	45 85 d2             	test   %r10d,%r10d
14015c56c:	7e 19                	jle    0x14015c587
14015c56e:	48 8b 44 39 10       	mov    0x10(%rcx,%rdi,1),%rax
14015c573:	48 83 c1 20          	add    $0x20,%rcx
14015c577:	48 83 c2 20          	add    $0x20,%rdx
14015c57b:	41 ff ca             	dec    %r10d
14015c57e:	48 89 41 f0          	mov    %rax,-0x10(%rcx)
14015c582:	45 85 d2             	test   %r10d,%r10d
14015c585:	7f b9                	jg     0x14015c540
14015c587:	49 8b c3             	mov    %r11,%rax
14015c58a:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
14015c58f:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
14015c594:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
14015c599:	48 83 c4 20          	add    $0x20,%rsp
14015c59d:	5f                   	pop    %rdi
14015c59e:	c3                   	ret
14015c59f:	cc                   	int3
14015c5a0:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
14015c5a5:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
14015c5aa:	4c 89 4c 24 20       	mov    %r9,0x20(%rsp)
14015c5af:	56                   	push   %rsi
14015c5b0:	57                   	push   %rdi
14015c5b1:	41 54                	push   %r12
14015c5b3:	41 56                	push   %r14
14015c5b5:	41 57                	push   %r15
14015c5b7:	b8 30 00 00 00       	mov    $0x30,%eax
14015c5bc:	e8 6f 45 15 00       	call   0x1402b0b30
14015c5c1:	48 2b e0             	sub    %rax,%rsp
14015c5c4:	b8 01 00 00 00       	mov    $0x1,%eax
14015c5c9:	4c 8b f1             	mov    %rcx,%r14
14015c5cc:	33 ed                	xor    %ebp,%ebp
14015c5ce:	89 44 24 20          	mov    %eax,0x20(%rsp)
14015c5d2:	49 8b c8             	mov    %r8,%rcx
14015c5d5:	8b d8                	mov    %eax,%ebx
14015c5d7:	8b fd                	mov    %ebp,%edi
14015c5d9:	49 8b f1             	mov    %r9,%rsi
14015c5dc:	4d 8b e0             	mov    %r8,%r12
14015c5df:	4c 8b fa             	mov    %rdx,%r15
14015c5e2:	e8 a9 48 f9 ff       	call   0x1400f0e90
14015c5e7:	85 c0                	test   %eax,%eax
14015c5e9:	74 1e                	je     0x14015c609
14015c5eb:	49 8b d7             	mov    %r15,%rdx
14015c5ee:	49 8b ce             	mov    %r14,%rcx
14015c5f1:	e8 da 45 f9 ff       	call   0x1400f0bd0
14015c5f6:	48 85 c0             	test   %rax,%rax
14015c5f9:	41 89 6e 10          	mov    %ebp,0x10(%r14)
14015c5fd:	8b cd                	mov    %ebp,%ecx
14015c5ff:	0f 95 c1             	setne  %cl
14015c602:	8b c1                	mov    %ecx,%eax
14015c604:	e9 9e 02 00 00       	jmp    0x14015c8a7
14015c609:	49 8b cf             	mov    %r15,%rcx
14015c60c:	e8 7f 48 f9 ff       	call   0x1400f0e90
14015c611:	85 c0                	test   %eax,%eax
14015c613:	74 1e                	je     0x14015c633
14015c615:	49 8b d4             	mov    %r12,%rdx
14015c618:	49 8b ce             	mov    %r14,%rcx
14015c61b:	e8 b0 45 f9 ff       	call   0x1400f0bd0
14015c620:	48 85 c0             	test   %rax,%rax
14015c623:	41 89 6e 10          	mov    %ebp,0x10(%r14)
14015c627:	8b cd                	mov    %ebp,%ecx
14015c629:	0f 95 c1             	setne  %cl
14015c62c:	8b c1                	mov    %ecx,%eax
14015c62e:	e9 74 02 00 00       	jmp    0x14015c8a7
14015c633:	48 8b ce             	mov    %rsi,%rcx
14015c636:	4c 89 6c 24 60       	mov    %r13,0x60(%rsp)
14015c63b:	e8 30 ea ff ff       	call   0x14015b070
14015c640:	48 8b ce             	mov    %rsi,%rcx
14015c643:	e8 58 e7 ff ff       	call   0x14015ada0
14015c648:	48 8b ce             	mov    %rsi,%rcx
14015c64b:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
14015c650:	4c 8b e8             	mov    %rax,%r13
14015c653:	e8 48 e7 ff ff       	call   0x14015ada0
14015c658:	48 8b f0             	mov    %rax,%rsi
14015c65b:	48 85 c0             	test   %rax,%rax
14015c65e:	0f 84 32 02 00 00    	je     0x14015c896
14015c664:	49 8b d4             	mov    %r12,%rdx
14015c667:	48 8b c8             	mov    %rax,%rcx
14015c66a:	e8 b1 93 fd ff       	call   0x140135a20
14015c66f:	85 c0                	test   %eax,%eax
14015c671:	0f 84 1f 02 00 00    	je     0x14015c896
14015c677:	49 8b d7             	mov    %r15,%rdx
14015c67a:	49 8b ce             	mov    %r14,%rcx
14015c67d:	e8 9e 93 fd ff       	call   0x140135a20
14015c682:	85 c0                	test   %eax,%eax
14015c684:	0f 84 0c 02 00 00    	je     0x14015c896
14015c68a:	45 8b 7e 0c          	mov    0xc(%r14),%r15d
14015c68e:	44 8b dd             	mov    %ebp,%r11d
14015c691:	45 85 ff             	test   %r15d,%r15d
14015c694:	7e 70                	jle    0x14015c706
14015c696:	4c 63 66 0c          	movslq 0xc(%rsi),%r12
14015c69a:	4c 8b d5             	mov    %rbp,%r10
14015c69d:	0f 1f 00             	nopl   (%rax)
14015c6a0:	4d 3b d4             	cmp    %r12,%r10
14015c6a3:	7d 61                	jge    0x14015c706
14015c6a5:	48 8b 06             	mov    (%rsi),%rax
14015c6a8:	44 8b c5             	mov    %ebp,%r8d
14015c6ab:	49 8b 16             	mov    (%r14),%rdx
14015c6ae:	41 b9 10 00 00 00    	mov    $0x10,%r9d
14015c6b4:	4a 8b 0c d0          	mov    (%rax,%r10,8),%rcx
14015c6b8:	4a 8b 04 d2          	mov    (%rdx,%r10,8),%rax
14015c6bc:	8b d5                	mov    %ebp,%edx
14015c6be:	48 0b c1             	or     %rcx,%rax
14015c6c1:	8b cd                	mov    %ebp,%ecx
14015c6c3:	48 f7 d0             	not    %rax
14015c6c6:	66 66 0f 1f 84 00 00 	data16 nopw 0x0(%rax,%rax,1)
14015c6cd:	00 00 00
14015c6d0:	23 d8                	and    %eax,%ebx
14015c6d2:	48 d1 e8             	shr    $1,%rax
14015c6d5:	03 fb                	add    %ebx,%edi
14015c6d7:	23 d8                	and    %eax,%ebx
14015c6d9:	48 d1 e8             	shr    $1,%rax
14015c6dc:	44 03 c3             	add    %ebx,%r8d
14015c6df:	23 d8                	and    %eax,%ebx
14015c6e1:	48 d1 e8             	shr    $1,%rax
14015c6e4:	03 d3                	add    %ebx,%edx
14015c6e6:	23 d8                	and    %eax,%ebx
14015c6e8:	03 cb                	add    %ebx,%ecx
14015c6ea:	48 d1 e8             	shr    $1,%rax
14015c6ed:	49 83 e9 01          	sub    $0x1,%r9
14015c6f1:	75 dd                	jne    0x14015c6d0
14015c6f3:	8d 04 11             	lea    (%rcx,%rdx,1),%eax
14015c6f6:	41 ff c3             	inc    %r11d
14015c6f9:	41 03 c0             	add    %r8d,%eax
14015c6fc:	49 ff c2             	inc    %r10
14015c6ff:	03 f8                	add    %eax,%edi
14015c701:	45 3b df             	cmp    %r15d,%r11d
14015c704:	7c 9a                	jl     0x14015c6a0
14015c706:	44 8b c7             	mov    %edi,%r8d
14015c709:	49 8b d6             	mov    %r14,%rdx
14015c70c:	49 8b ce             	mov    %r14,%rcx
14015c70f:	e8 bc 93 fd ff       	call   0x140135ad0
14015c714:	85 c0                	test   %eax,%eax
14015c716:	0f 84 7a 01 00 00    	je     0x14015c896
14015c71c:	44 8b c7             	mov    %edi,%r8d
14015c71f:	48 8b d6             	mov    %rsi,%rdx
14015c722:	48 8b ce             	mov    %rsi,%rcx
14015c725:	e8 a6 93 fd ff       	call   0x140135ad0
14015c72a:	85 c0                	test   %eax,%eax
14015c72c:	0f 84 64 01 00 00    	je     0x14015c896
14015c732:	45 8b 66 08          	mov    0x8(%r14),%r12d
14015c736:	49 8b ce             	mov    %r14,%rcx
14015c739:	44 3b 66 08          	cmp    0x8(%rsi),%r12d
14015c73d:	44 0f 4c 66 08       	cmovl  0x8(%rsi),%r12d
14015c742:	41 ff c4             	inc    %r12d
14015c745:	41 8b d4             	mov    %r12d,%edx
14015c748:	e8 83 54 f9 ff       	call   0x1400f1bd0
14015c74d:	48 85 c0             	test   %rax,%rax
14015c750:	0f 84 40 01 00 00    	je     0x14015c896
14015c756:	41 8b d4             	mov    %r12d,%edx
14015c759:	48 8b ce             	mov    %rsi,%rcx
14015c75c:	e8 6f 54 f9 ff       	call   0x1400f1bd0
14015c761:	48 85 c0             	test   %rax,%rax
14015c764:	0f 84 2c 01 00 00    	je     0x14015c896
14015c76a:	41 8b d4             	mov    %r12d,%edx
14015c76d:	49 8b cd             	mov    %r13,%rcx
14015c770:	e8 5b 54 f9 ff       	call   0x1400f1bd0
14015c775:	48 85 c0             	test   %rax,%rax
14015c778:	0f 84 18 01 00 00    	je     0x14015c896
14015c77e:	49 8b 06             	mov    (%r14),%rax
14015c781:	45 8b cc             	mov    %r12d,%r9d
14015c784:	4c 8b c6             	mov    %rsi,%r8
14015c787:	49 8b d6             	mov    %r14,%rdx
14015c78a:	48 8b 08             	mov    (%rax),%rcx
14015c78d:	48 f7 d1             	not    %rcx
14015c790:	83 e1 01             	and    $0x1,%ecx
14015c793:	e8 c8 42 f9 ff       	call   0x1400f0a60
14015c798:	49 8b ce             	mov    %r14,%rcx
14015c79b:	e8 b0 49 f9 ff       	call   0x1400f1150
14015c7a0:	48 8b ce             	mov    %rsi,%rcx
14015c7a3:	8b d8                	mov    %eax,%ebx
14015c7a5:	e8 a6 49 f9 ff       	call   0x1400f1150
14015c7aa:	3b d8                	cmp    %eax,%ebx
14015c7ac:	44 8b fd             	mov    %ebp,%r15d
14015c7af:	0f 4d c3             	cmovge %ebx,%eax
14015c7b2:	44 8d 68 02          	lea    0x2(%rax),%r13d
14015c7b6:	46 8d 2c 68          	lea    (%rax,%r13,2),%r13d
14015c7ba:	45 85 ed             	test   %r13d,%r13d
14015c7bd:	0f 8e a8 00 00 00    	jle    0x14015c86b
14015c7c3:	0f 1f 40 00          	nopl   0x0(%rax)
14015c7c7:	66 0f 1f 84 00 00 00 	nopw   0x0(%rax,%rax,1)
14015c7ce:	00 00
14015c7d0:	8b 4e 08             	mov    0x8(%rsi),%ecx
14015c7d3:	45 8b cc             	mov    %r12d,%r9d
14015c7d6:	8b 44 24 20          	mov    0x20(%rsp),%eax
14015c7da:	ff c9                	dec    %ecx
14015c7dc:	c1 e9 1f             	shr    $0x1f,%ecx
14015c7df:	f7 d8                	neg    %eax
14015c7e1:	f7 d1                	not    %ecx
14015c7e3:	c1 e8 1f             	shr    $0x1f,%eax
14015c7e6:	23 c8                	and    %eax,%ecx
14015c7e8:	4c 8b c6             	mov    %rsi,%r8
14015c7eb:	48 8b 06             	mov    (%rsi),%rax
14015c7ee:	49 8b d6             	mov    %r14,%rdx
14015c7f1:	23 08                	and    (%rax),%ecx
14015c7f3:	8b d9                	mov    %ecx,%ebx
14015c7f5:	41 31 5e 10          	xor    %ebx,0x10(%r14)
14015c7f9:	e8 62 42 f9 ff       	call   0x1400f0a60
14015c7fe:	8b 44 24 20          	mov    0x20(%rsp),%eax
14015c802:	8b cb                	mov    %ebx,%ecx
14015c804:	f7 d9                	neg    %ecx
14015c806:	f7 d8                	neg    %eax
14015c808:	23 c8                	and    %eax,%ecx
14015c80a:	4d 8b c6             	mov    %r14,%r8
14015c80d:	8d 43 ff             	lea    -0x1(%rbx),%eax
14015c810:	48 8b d6             	mov    %rsi,%rdx
14015c813:	23 44 24 20          	and    0x20(%rsp),%eax
14015c817:	48 8b 5c 24 28       	mov    0x28(%rsp),%rbx
14015c81c:	0b c8                	or     %eax,%ecx
14015c81e:	ff c1                	inc    %ecx
14015c820:	89 4c 24 20          	mov    %ecx,0x20(%rsp)
14015c824:	48 8b cb             	mov    %rbx,%rcx
14015c827:	e8 94 e9 ff ff       	call   0x14015b1c0
14015c82c:	85 c0                	test   %eax,%eax
14015c82e:	74 66                	je     0x14015c896
14015c830:	8b 4e 08             	mov    0x8(%rsi),%ecx
14015c833:	45 8b cc             	mov    %r12d,%r9d
14015c836:	48 8b 06             	mov    (%rsi),%rax
14015c839:	ff c9                	dec    %ecx
14015c83b:	c1 e9 1f             	shr    $0x1f,%ecx
14015c83e:	4c 8b c3             	mov    %rbx,%r8
14015c841:	f7 d1                	not    %ecx
14015c843:	48 8b d6             	mov    %rsi,%rdx
14015c846:	23 08                	and    (%rax),%ecx
14015c848:	83 e1 01             	and    $0x1,%ecx
14015c84b:	e8 10 42 f9 ff       	call   0x1400f0a60
14015c850:	48 8b d6             	mov    %rsi,%rdx
14015c853:	48 8b ce             	mov    %rsi,%rcx
14015c856:	e8 e5 93 fd ff       	call   0x140135c40
14015c85b:	85 c0                	test   %eax,%eax
14015c85d:	74 37                	je     0x14015c896
14015c85f:	41 ff c7             	inc    %r15d
14015c862:	45 3b fd             	cmp    %r13d,%r15d
14015c865:	0f 8c 65 ff ff ff    	jl     0x14015c7d0
14015c86b:	44 8b c7             	mov    %edi,%r8d
14015c86e:	41 89 6e 10          	mov    %ebp,0x10(%r14)
14015c872:	49 8b d6             	mov    %r14,%rdx
14015c875:	49 8b ce             	mov    %r14,%rcx
14015c878:	e8 03 90 fd ff       	call   0x140135880
14015c87d:	85 c0                	test   %eax,%eax
14015c87f:	74 15                	je     0x14015c896
14015c881:	49 8b d6             	mov    %r14,%rdx
14015c884:	49 8b ce             	mov    %r14,%rcx
14015c887:	e8 b4 93 fd ff       	call   0x140135c40
14015c88c:	85 c0                	test   %eax,%eax
14015c88e:	b8 01 00 00 00       	mov    $0x1,%eax
14015c893:	0f 45 e8             	cmovne %eax,%ebp
14015c896:	48 8b 4c 24 78       	mov    0x78(%rsp),%rcx