1401563a6:	75 90                	jne    0x140156338
1401563a8:	ba 01 00 00 00       	mov    $0x1,%edx
1401563ad:	4c 89 f9             	mov    %r15,%rcx
1401563b0:	e8 eb 47 f4 ff       	call   0x14009aba0
1401563b5:	49 8b 47 08          	mov    0x8(%r15),%rax
1401563b9:	eb 8a                	jmp    0x140156345
1401563bb:	f3 41 0f 6f 46 58    	movdqu 0x58(%r14),%xmm0
1401563c1:	45 8b 56 44          	mov    0x44(%r14),%r10d
1401563c5:	0f 12 c8             	movhlps %xmm0,%xmm1
1401563c8:	66 49 0f 7e c3       	movq   %xmm0,%r11
1401563cd:	66 0f c6 c0 01       	shufpd $0x1,%xmm0,%xmm0
1401563d2:	41 0f 11 46 58       	movups %xmm0,0x58(%r14)
1401563d7:	66 49 0f 7e cd       	movq   %xmm1,%r13
1401563dc:	45 85 d2             	test   %r10d,%r10d
1401563df:	0f 8e d4 0b 00 00    	jle    0x140156fb9
1401563e5:	4c 89 ea             	mov    %r13,%rdx
1401563e8:	31 c0                	xor    %eax,%eax
1401563ea:	66 66 2e 0f 1f 84 00 	data16 cs nopw 0x0(%rax,%rax,1)
1401563f1:	00 00 00 00
1401563f5:	66 66 2e 0f 1f 84 00 	data16 cs nopw 0x0(%rax,%rax,1)
1401563fc:	00 00 00 00
140156400:	c7 02 ff ff ff ff    	movl   $0xffffffff,(%rdx)
140156406:	45 8b 56 44          	mov    0x44(%r14),%r10d
14015640a:	83 c0 01             	add    $0x1,%eax
14015640d:	48 83 c2 04          	add    $0x4,%rdx
140156411:	44 39 d0             	cmp    %r10d,%eax
140156414:	7c ea                	jl     0x140156400
140156416:	45 85 d2             	test   %r10d,%r10d
140156419:	0f 8e 9a 0b 00 00    	jle    0x140156fb9
14015641f:	4d 8d 63 08          	lea    0x8(%r11),%r12
140156423:	4c 89 5c 24 20       	mov    %r11,0x20(%rsp)
140156428:	49 8d 45 f8          	lea    -0x8(%r13),%rax
14015642c:	31 c9                	xor    %ecx,%ecx
14015642e:	41 b8 fe ff ff ff    	mov    $0xfffffffe,%r8d
140156434:	be ff ff ff ff       	mov    $0xffffffff,%esi
140156439:	bb ff ff ff ff       	mov    $0xffffffff,%ebx
14015643e:	4d 29 ec             	sub    %r13,%r12
140156441:	4d 8d 4d 14          	lea    0x14(%r13),%r9
140156445:	eb 5d                	jmp    0x1401564a4
140156447:	66 0f 1f 84 00 00 00 	nopw   0x0(%rax,%rax,1)
14015644e:	00 00
140156450:	8d 3c 12             	lea    (%rdx,%rdx,1),%edi
140156453:	39 cf                	cmp    %ecx,%edi
140156455:	0f 8f 48 0c 00 00    	jg     0x1401570a3
14015645b:	0f 84 cf 04 00 00    	je     0x140156930
140156461:	8b 68 04             	mov    0x4(%rax),%ebp
140156464:	4c 8d 58 04          	lea    0x4(%rax),%r11
140156468:	85 ed                	test   %ebp,%ebp
14015646a:	0f 88 e0 04 00 00    	js     0x140156950
140156470:	39 ea                	cmp    %ebp,%edx
140156472:	74 21                	je     0x140156495
140156474:	0f 8d 0f 0c 00 00    	jge    0x140157089
14015647a:	44 8b 10             	mov    (%rax),%r10d
14015647d:	45 85 d2             	test   %r10d,%r10d
140156480:	0f 89 e9 0b 00 00    	jns    0x14015706f
140156486:	89 10                	mov    %edx,(%rax)
140156488:	83 fb ff             	cmp    $0xffffffff,%ebx
14015648b:	0f 84 a8 07 00 00    	je     0x140156c39
140156491:	45 8b 56 44          	mov    0x44(%r14),%r10d
140156495:	83 c1 01             	add    $0x1,%ecx
140156498:	41 83 c0 01          	add    $0x1,%r8d
14015649c:	4c 89 d8             	mov    %r11,%rax
14015649f:	44 39 d1             	cmp    %r10d,%ecx
1401564a2:	7d 1b                	jge    0x1401564bf
1401564a4:	41 8b 14 04          	mov    (%r12,%rax,1),%edx
1401564a8:	85 d2                	test   %edx,%edx
1401564aa:	79 a4                	jns    0x140156450
1401564ac:	4c 8d 58 04          	lea    0x4(%rax),%r11
1401564b0:	83 c1 01             	add    $0x1,%ecx
1401564b3:	41 83 c0 01          	add    $0x1,%r8d
1401564b7:	4c 89 d8             	mov    %r11,%rax
1401564ba:	44 39 d1             	cmp    %r10d,%ecx
1401564bd:	7c e5                	jl     0x1401564a4
1401564bf:	4d 63 c2             	movslq %r10d,%r8
1401564c2:	4c 8b 5c 24 20       	mov    0x20(%rsp),%r11
1401564c7:	45 31 d2             	xor    %r10d,%r10d
1401564ca:	4d 85 c0             	test   %r8,%r8
1401564cd:	0f 85 8f 0a 00 00    	jne    0x140156f62
1401564d3:	43 8b 44 85 fc       	mov    -0x4(%r13,%r8,4),%eax
1401564d8:	85 c0                	test   %eax,%eax
1401564da:	0f 89 d8 08 00 00    	jns    0x140156db8
1401564e0:	41 83 ea 01          	sub    $0x1,%r10d
1401564e4:	45 89 56 44          	mov    %r10d,0x44(%r14)
1401564e8:	45 85 d2             	test   %r10d,%r10d
1401564eb:	0f 8e c7 08 00 00    	jle    0x140156db8
1401564f1:	8d 43 ff             	lea    -0x1(%rbx),%eax
1401564f4:	45 31 ed             	xor    %r13d,%r13d
1401564f7:	31 ed                	xor    %ebp,%ebp
1401564f9:	45 31 e4             	xor    %r12d,%r12d
1401564fc:	89 44 24 20          	mov    %eax,0x20(%rsp)
140156500:	48 8d 7c 24 40       	lea    0x40(%rsp),%rdi
140156505:	eb 6c                	jmp    0x140156573
140156507:	66 0f 1f 84 00 00 00 	nopw   0x0(%rax,%rax,1)
14015650e:	00 00
140156510:	48 63 d0             	movslq %eax,%rdx
140156513:	44 8d 04 00          	lea    (%rax,%rax,1),%r8d
140156517:	45 89 e9             	mov    %r13d,%r9d
14015651a:	48 c1 e2 04          	shl    $0x4,%rdx
14015651e:	49 03 56 50          	add    0x50(%r14),%rdx
140156522:	45 39 c5             	cmp    %r8d,%r13d
140156525:	0f 84 05 09 00 00    	je     0x140156e30
14015652b:	39 f0                	cmp    %esi,%eax
14015652d:	0f 84 9e 08 00 00    	je     0x140156dd1
140156533:	41 39 d9             	cmp    %ebx,%r9d
140156536:	7d 0c                	jge    0x140156544
140156538:	66 45 85 e4          	test   %r12w,%r12w
14015653c:	74 06                	je     0x140156544
14015653e:	c7 01 ff ff ff ff    	movl   $0xffffffff,(%rcx)
140156544:	41 b8 2f 00 00 00    	mov    $0x2f,%r8d
14015654a:	48 89 f9             	mov    %rdi,%rcx
14015654d:	4c 89 7c 24 40       	mov    %r15,0x40(%rsp)
140156552:	48 89 6c 24 48       	mov    %rbp,0x48(%rsp)
140156557:	e8 a4 f3 ff ff       	call   0x140155900
14015655c:	4c 8b 7c 24 40       	mov    0x40(%rsp),%r15
140156561:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
140156566:	49 63 46 44          	movslq 0x44(%r14),%rax
14015656a:	49 83 c5 01          	add    $0x1,%r13
14015656e:	44 39 e8             	cmp    %r13d,%eax
140156571:	7e 58                	jle    0x1401565cb
140156573:	49 8b 46 58          	mov    0x58(%r14),%rax
140156577:	4a 8d 0c a8          	lea    (%rax,%r13,4),%rcx
14015657b:	8b 01                	mov    (%rcx),%eax
14015657d:	85 c0                	test   %eax,%eax
14015657f:	79 8f                	jns    0x140156510
140156581:	49 8b 17             	mov    (%r15),%rdx
140156584:	48 85 d2             	test   %rdx,%rdx
140156587:	0f 84 8d 08 00 00    	je     0x140156e1a
14015658d:	49 8b 47 08          	mov    0x8(%r15),%rax
140156591:	48 29 c2             	sub    %rax,%rdx
140156594:	48 83 fa 01          	cmp    $0x1,%rdx
140156598:	0f 84 7c 08 00 00    	je     0x140156e1a
14015659e:	49 8b 57 10          	mov    0x10(%r15),%rdx
1401565a2:	48 8d 48 01          	lea    0x1(%rax),%rcx
1401565a6:	49 83 c5 01          	add    $0x1,%r13
1401565aa:	48 83 c5 01          	add    $0x1,%rbp
1401565ae:	49 89 4f 08          	mov    %rcx,0x8(%r15)
1401565b2:	c6 04 02 20          	movb   $0x20,(%rdx,%rax,1)
1401565b6:	49 8b 47 08          	mov    0x8(%r15),%rax
1401565ba:	49 8b 57 10          	mov    0x10(%r15),%rdx
1401565be:	c6 04 02 00          	movb   $0x0,(%rdx,%rax,1)
1401565c2:	49 63 46 44          	movslq 0x44(%r14),%rax
1401565c6:	44 39 e8             	cmp    %r13d,%eax
1401565c9:	7f a8                	jg     0x140156573
1401565cb:	85 c0                	test   %eax,%eax
1401565cd:	0f 8e e7 07 00 00    	jle    0x140156dba
1401565d3:	4d 8b 46 58          	mov    0x58(%r14),%r8
1401565d7:	31 d2                	xor    %edx,%edx
1401565d9:	41 8b 0c 90          	mov    (%r8,%rdx,4),%ecx
1401565dd:	85 c9                	test   %ecx,%ecx
1401565df:	0f 88 72 08 00 00    	js     0x140156e57
1401565e5:	41 89 d1             	mov    %edx,%r9d
1401565e8:	41 d1 f9             	sar    $1,%r9d
1401565eb:	44 39 c9             	cmp    %r9d,%ecx
1401565ee:	0f 84 63 08 00 00    	je     0x140156e57
1401565f4:	4d 63 46 14          	movslq 0x14(%r14),%r8
1401565f8:	31 c0                	xor    %eax,%eax
1401565fa:	4c 39 c5             	cmp    %r8,%rbp
1401565fd:	0f 83 8a 01 00 00    	jae    0x14015678d
140156603:	49 29 e8             	sub    %rbp,%r8
140156606:	ba 20 00 00 00       	mov    $0x20,%edx
14015660b:	4c 89 f9             	mov    %r15,%rcx
14015660e:	89 44 24 20          	mov    %eax,0x20(%rsp)
140156612:	e8 79 57 f4 ff       	call   0x14009bd90
140156617:	8b 44 24 20          	mov    0x20(%rsp),%eax
14015661b:	e9 6d 01 00 00       	jmp    0x14015678d
140156620:	45 8b 46 10          	mov    0x10(%r14),%r8d
140156624:	41 83 f8 02          	cmp    $0x2,%r8d
140156628:	0f 8e 00 0a 00 00    	jle    0x14015702e
14015662e:	41 8b 56 18          	mov    0x18(%r14),%edx
140156632:	85 d2                	test   %edx,%edx
140156634:	0f 88 da 09 00 00    	js     0x140157014
14015663a:	41 8b 46 2c          	mov    0x2c(%r14),%eax
14015663e:	44 01 c0             	add    %r8d,%eax
140156641:	8d 44 00 fa          	lea    -0x6(%rax,%rax,1),%eax
140156645:	39 c2                	cmp    %eax,%edx
140156647:	0f 8d c7 09 00 00    	jge    0x140157014
14015664d:	41 8b 46 3c          	mov    0x3c(%r14),%eax
140156651:	85 c0                	test   %eax,%eax
140156653:	0f 8e 86 08 00 00    	jle    0x140156edf
140156659:	31 ff                	xor    %edi,%edi
14015665b:	31 ed                	xor    %ebp,%ebp
14015665d:	48 8d 5c 24 40       	lea    0x40(%rsp),%rbx
140156662:	31 f6                	xor    %esi,%esi
140156664:	eb 4e                	jmp    0x1401566b4
140156666:	66 2e 0f 1f 84 00 00 	cs nopw 0x0(%rax,%rax,1)
14015666d:	00 00 00
140156670:	49 8b 47 08          	mov    0x8(%r15),%rax
140156674:	48 29 c2             	sub    %rax,%rdx
140156677:	48 83 fa 01          	cmp    $0x1,%rdx
14015667b:	0f 84 9d 00 00 00    	je     0x14015671e
140156681:	49 8b 57 10          	mov    0x10(%r15),%rdx
140156685:	48 8d 48 01          	lea    0x1(%rax),%rcx
140156689:	48 83 c7 01          	add    $0x1,%rdi
14015668d:	48 83 c5 01          	add    $0x1,%rbp
140156691:	49 89 4f 08          	mov    %rcx,0x8(%r15)
140156695:	c6 04 02 20          	movb   $0x20,(%rdx,%rax,1)
140156699:	49 8b 47 08          	mov    0x8(%r15),%rax
14015669d:	49 8b 57 10          	mov    0x10(%r15),%rdx
1401566a1:	c6 04 02 00          	movb   $0x0,(%rdx,%rax,1)
1401566a5:	41 8b 46 3c          	mov    0x3c(%r14),%eax
1401566a9:	39 f8                	cmp    %edi,%eax
1401566ab:	0f 8e bf 07 00 00    	jle    0x140156e70
1401566b1:	49 8b 0e             	mov    (%r14),%rcx
1401566b4:	48 89 fa             	mov    %rdi,%rdx
1401566b7:	48 c1 e2 04          	shl    $0x4,%rdx
1401566bb:	49 03 56 48          	add    0x48(%r14),%rdx
1401566bf:	48 39 0a             	cmp    %rcx,(%rdx)
1401566c2:	0f 84 2e 05 00 00    	je     0x140156bf6
1401566c8:	85 f6                	test   %esi,%esi
1401566ca:	74 24                	je     0x1401566f0
1401566cc:	41 8b 46 18          	mov    0x18(%r14),%eax
1401566d0:	85 c0                	test   %eax,%eax
1401566d2:	0f 85 c0 04 00 00    	jne    0x140156b98
1401566d8:	41 83 7e 20 04       	cmpl   $0x4,0x20(%r14)
1401566dd:	75 11                	jne    0x1401566f0
1401566df:	41 39 7e 28          	cmp    %edi,0x28(%r14)
1401566e3:	0f 8c b5 04 00 00    	jl     0x140156b9e
1401566e9:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
1401566f0:	41 b8 7c 00 00 00    	mov    $0x7c,%r8d
1401566f6:	48 89 d9             	mov    %rbx,%rcx
1401566f9:	4c 89 7c 24 40       	mov    %r15,0x40(%rsp)
1401566fe:	48 89 6c 24 48       	mov    %rbp,0x48(%rsp)
140156703:	e8 f8 f1 ff ff       	call   0x140155900
140156708:	4c 8b 7c 24 40       	mov    0x40(%rsp),%r15
14015670d:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
140156712:	49 8b 17             	mov    (%r15),%rdx
140156715:	48 85 d2             	test   %rdx,%rdx
140156718:	0f 85 52 ff ff ff    	jne    0x140156670
14015671e:	ba 01 00 00 00       	mov    $0x1,%edx
140156723:	4c 89 f9             	mov    %r15,%rcx
140156726:	e8 75 44 f4 ff       	call   0x14009aba0
14015672b:	49 8b 47 08          	mov    0x8(%r15),%rax
14015672f:	e9 4d ff ff ff       	jmp    0x140156681
140156734:	48 8d 15 ac be 0c 00 	lea    0xcbeac(%rip),%rdx        # 0x1402225e7
14015673b:	41 b8 03 00 00 00    	mov    $0x3,%r8d
140156741:	4c 89 f9             	mov    %r15,%rcx
140156744:	e8 67 52 f4 ff       	call   0x14009b9b0
140156749:	41 8b 46 10          	mov    0x10(%r14),%eax
14015674d:	41 8b 56 1c          	mov    0x1c(%r14),%edx
140156751:	83 f8 02             	cmp    $0x2,%eax
140156754:	7e 11                	jle    0x140156767
140156756:	41 8b 76 3c          	mov    0x3c(%r14),%esi
14015675a:	8d 4e ff             	lea    -0x1(%rsi),%ecx
14015675d:	41 39 4e 24          	cmp    %ecx,0x24(%r14)
140156761:	0f 8c a2 07 00 00    	jl     0x140156f09
140156767:	41 89 56 20          	mov    %edx,0x20(%r14)
14015676b:	bd 03 00 00 00       	mov    $0x3,%ebp
140156770:	31 c0                	xor    %eax,%eax
140156772:	41 c7 46 1c 03 00 00 	movl   $0x3,0x1c(%r14)
140156779:	00
14015677a:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)
140156780:	4d 63 46 14          	movslq 0x14(%r14),%r8
140156784:	4c 39 c5             	cmp    %r8,%rbp
140156787:	0f 82 76 fe ff ff    	jb     0x140156603
14015678d:	48 8b 1d 5c 23 0e 00 	mov    0xe235c(%rip),%rbx        # 0x140238af0
140156794:	48 8b 54 24 58       	mov    0x58(%rsp),%rdx
140156799:	48 2b 13             	sub    (%rbx),%rdx
14015679c:	0f 85 c8 08 00 00    	jne    0x14015706a
1401567a2:	48 83 c4 68          	add    $0x68,%rsp
1401567a6:	5b                   	pop    %rbx
1401567a7:	5e                   	pop    %rsi
1401567a8:	5f                   	pop    %rdi
1401567a9:	5d                   	pop    %rbp
1401567aa:	41 5c                	pop    %r12
1401567ac:	41 5d                	pop    %r13
1401567ae:	41 5e                	pop    %r14
1401567b0:	41 5f                	pop    %r15
1401567b2:	c3                   	ret
1401567b3:	41 8b 46 3c          	mov    0x3c(%r14),%eax
1401567b7:	31 db                	xor    %ebx,%ebx
1401567b9:	31 ed                	xor    %ebp,%ebp
1401567bb:	31 f6                	xor    %esi,%esi
1401567bd:	48 8d 7c 24 40       	lea    0x40(%rsp),%rdi
1401567c2:	85 c0                	test   %eax,%eax
1401567c4:	79 4b                	jns    0x140156811
1401567c6:	e9 b5 05 00 00       	jmp    0x140156d80
1401567cb:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
1401567d0:	49 8b 47 08          	mov    0x8(%r15),%rax
1401567d4:	48 29 c2             	sub    %rax,%rdx
1401567d7:	48 83 fa 01          	cmp    $0x1,%rdx
1401567db:	0f 84 ba 00 00 00    	je     0x14015689b
1401567e1:	49 8b 57 10          	mov    0x10(%r15),%rdx
1401567e5:	48 8d 48 01          	lea    0x1(%rax),%rcx
1401567e9:	48 83 c3 01          	add    $0x1,%rbx
1401567ed:	48 83 c5 01          	add    $0x1,%rbp
1401567f1:	49 89 4f 08          	mov    %rcx,0x8(%r15)
1401567f5:	c6 04 02 20          	movb   $0x20,(%rdx,%rax,1)
1401567f9:	49 8b 47 08          	mov    0x8(%r15),%rax
1401567fd:	49 8b 57 10          	mov    0x10(%r15),%rdx
140156801:	c6 04 02 00          	movb   $0x0,(%rdx,%rax,1)
140156805:	41 8b 46 3c          	mov    0x3c(%r14),%eax
140156809:	39 d8                	cmp    %ebx,%eax
14015680b:	0f 8c 6b 05 00 00    	jl     0x140156d7c
140156811:	89 d9                	mov    %ebx,%ecx
140156813:	39 d8                	cmp    %ebx,%eax
140156815:	0f 84 6d 02 00 00    	je     0x140156a88
14015681b:	48 89 da             	mov    %rbx,%rdx
14015681e:	49 8b 06             	mov    (%r14),%rax
140156821:	48 c1 e2 04          	shl    $0x4,%rdx
140156825:	49 03 56 48          	add    0x48(%r14),%rdx
140156829:	48 39 02             	cmp    %rax,(%rdx)
14015682c:	0f 84 61 02 00 00    	je     0x140156a93
140156832:	85 f6                	test   %esi,%esi
140156834:	74 11                	je     0x140156847
140156836:	41 83 7e 30 01       	cmpl   $0x1,0x30(%r14)
14015683b:	0f 8f 84 03 00 00    	jg     0x140156bc5
140156841:	0f 84 8c 04 00 00    	je     0x140156cd3
140156847:	41 83 7e 20 05       	cmpl   $0x5,0x20(%r14)
14015684c:	75 1f                	jne    0x14015686d
14015684e:	8d 04 1b             	lea    (%rbx,%rbx,1),%eax
140156851:	4d 8b 46 60          	mov    0x60(%r14),%r8
140156855:	48 98                	cltq
140156857:	48 83 c0 01          	add    $0x1,%rax
14015685b:	4c 8d 0c 85 00 00 00 	lea    0x0(,%rax,4),%r9
140156862:	00
140156863:	41 39 0c 80          	cmp    %ecx,(%r8,%rax,4)
140156867:	0f 84 2b 04 00 00    	je     0x140156c98
14015686d:	41 b8 7c 00 00 00    	mov    $0x7c,%r8d
140156873:	48 89 f9             	mov    %rdi,%rcx
140156876:	4c 89 7c 24 40       	mov    %r15,0x40(%rsp)
14015687b:	48 89 6c 24 48       	mov    %rbp,0x48(%rsp)
140156880:	e8 7b f0 ff ff       	call   0x140155900
140156885:	4c 8b 7c 24 40       	mov    0x40(%rsp),%r15
14015688a:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
14015688f:	49 8b 17             	mov    (%r15),%rdx
140156892:	48 85 d2             	test   %rdx,%rdx
140156895:	0f 85 35 ff ff ff    	jne    0x1401567d0
14015689b:	ba 01 00 00 00       	mov    $0x1,%edx
1401568a0:	4c 89 f9             	mov    %r15,%rcx
1401568a3:	e8 f8 42 f4 ff       	call   0x14009aba0
1401568a8:	49 8b 47 08          	mov    0x8(%r15),%rax
1401568ac:	e9 30 ff ff ff       	jmp    0x1401567e1
1401568b1:	ba 01 00 00 00       	mov    $0x1,%edx
1401568b6:	4c 89 e1             	mov    %r12,%rcx
1401568b9:	e8 e2 42 f4 ff       	call   0x14009aba0
1401568be:	49 8b 44 24 08       	mov    0x8(%r12),%rax
1401568c3:	e9 24 fa ff ff       	jmp    0x1401562ec
1401568c8:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
1401568cf:	00
1401568d0:	41 8b 47 30          	mov    0x30(%r15),%eax
1401568d4:	85 c0                	test   %eax,%eax
1401568d6:	7f 0f                	jg     0x1401568e7
1401568d8:	41 8b 47 10          	mov    0x10(%r15),%eax
1401568dc:	83 e8 01             	sub    $0x1,%eax
1401568df:	39 f0                	cmp    %esi,%eax
1401568e1:	0f 8e b2 f9 ff ff    	jle    0x140156299
1401568e7:	49 8b 16             	mov    (%r14),%rdx
1401568ea:	48 85 d2             	test   %rdx,%rdx
1401568ed:	0f 84 ed 00 00 00    	je     0x1401569e0
1401568f3:	49 8b 46 08          	mov    0x8(%r14),%rax