140559658:	e8 43 04 00 00       	call   0x140559aa0
14055965d:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
140559662:	49 8b cd             	mov    %r13,%rcx
140559665:	48 8b 56 08          	mov    0x8(%rsi),%rdx
140559669:	4c 8b ce             	mov    %rsi,%r9
14055966c:	4d 8b c7             	mov    %r15,%r8
14055966f:	e8 2c 04 00 00       	call   0x140559aa0
140559674:	90                   	nop
140559675:	4c 8b cf             	mov    %rdi,%r9
140559678:	4d 8b c4             	mov    %r12,%r8
14055967b:	48 8b d3             	mov    %rbx,%rdx
14055967e:	48 8b ce             	mov    %rsi,%rcx
140559681:	e8 9a 7b 00 00       	call   0x140561220
140559686:	49 8b c6             	mov    %r14,%rax
140559689:	48 83 c4 40          	add    $0x40,%rsp
14055968d:	41 5f                	pop    %r15
14055968f:	41 5e                	pop    %r14
140559691:	41 5d                	pop    %r13
140559693:	41 5c                	pop    %r12
140559695:	5f                   	pop    %rdi
140559696:	5e                   	pop    %rsi
140559697:	5b                   	pop    %rbx
140559698:	c3                   	ret
140559699:	e8 f2 3a c4 ff       	call   0x14019d190
14055969e:	cc                   	int3
14055969f:	e8 ec 3e c4 ff       	call   0x14019d590
1405596a4:	cc                   	int3
1405596a5:	e8 fa 0a 8d 00       	call   0x140e2a1a4
1405596aa:	cc                   	int3
1405596ab:	cc                   	int3
1405596ac:	cc                   	int3
1405596ad:	cc                   	int3
1405596ae:	cc                   	int3
1405596af:	cc                   	int3
1405596b0:	4c 89 4c 24 20       	mov    %r9,0x20(%rsp)
1405596b5:	4c 89 44 24 18       	mov    %r8,0x18(%rsp)
1405596ba:	48 89 4c 24 08       	mov    %rcx,0x8(%rsp)
1405596bf:	53                   	push   %rbx
1405596c0:	56                   	push   %rsi
1405596c1:	57                   	push   %rdi
1405596c2:	41 54                	push   %r12
1405596c4:	41 55                	push   %r13
1405596c6:	41 56                	push   %r14
1405596c8:	41 57                	push   %r15
1405596ca:	48 83 ec 40          	sub    $0x40,%rsp
1405596ce:	4c 8b ea             	mov    %rdx,%r13
1405596d1:	48 8b f1             	mov    %rcx,%rsi
1405596d4:	4c 8b 19             	mov    (%rcx),%r11
1405596d7:	4c 8b d2             	mov    %rdx,%r10
1405596da:	4d 2b d3             	sub    %r11,%r10
1405596dd:	49 b9 25 49 92 24 49 	movabs $0x4924924924924925,%r9
1405596e4:	92 24 49
1405596e7:	49 8b c1             	mov    %r9,%rax
1405596ea:	49 f7 ea             	imul   %r10
1405596ed:	4c 8b f2             	mov    %rdx,%r14
1405596f0:	49 c1 fe 04          	sar    $0x4,%r14
1405596f4:	49 8b c6             	mov    %r14,%rax
1405596f7:	48 c1 e8 3f          	shr    $0x3f,%rax
1405596fb:	4c 03 f0             	add    %rax,%r14
1405596fe:	48 8b 49 08          	mov    0x8(%rcx),%rcx
140559702:	49 2b cb             	sub    %r11,%rcx
140559705:	49 8b c1             	mov    %r9,%rax
140559708:	48 f7 e9             	imul   %rcx
14055970b:	48 c1 fa 04          	sar    $0x4,%rdx
14055970f:	48 8b c2             	mov    %rdx,%rax
140559712:	48 c1 e8 3f          	shr    $0x3f,%rax
140559716:	48 03 d0             	add    %rax,%rdx
140559719:	49 b8 92 24 49 92 24 	movabs $0x492492492492492,%r8
140559720:	49 92 04
140559723:	49 3b d0             	cmp    %r8,%rdx
140559726:	0f 84 8e 01 00 00    	je     0x1405598ba
14055972c:	4c 8d 62 01          	lea    0x1(%rdx),%r12
140559730:	48 8b 4e 10          	mov    0x10(%rsi),%rcx
140559734:	49 2b cb             	sub    %r11,%rcx
140559737:	49 8b c1             	mov    %r9,%rax
14055973a:	48 f7 e9             	imul   %rcx
14055973d:	48 c1 fa 04          	sar    $0x4,%rdx
140559741:	48 8b c2             	mov    %rdx,%rax
140559744:	48 c1 e8 3f          	shr    $0x3f,%rax
140559748:	48 03 d0             	add    %rax,%rdx
14055974b:	48 8b ca             	mov    %rdx,%rcx
14055974e:	48 d1 e9             	shr    $1,%rcx
140559751:	49 8b c0             	mov    %r8,%rax
140559754:	48 2b c1             	sub    %rcx,%rax
140559757:	48 3b d0             	cmp    %rax,%rdx
14055975a:	0f 87 54 01 00 00    	ja     0x1405598b4
140559760:	48 8d 04 11          	lea    (%rcx,%rdx,1),%rax
140559764:	49 8b fc             	mov    %r12,%rdi
140559767:	49 3b c4             	cmp    %r12,%rax
14055976a:	48 0f 43 f8          	cmovae %rax,%rdi
14055976e:	49 3b f8             	cmp    %r8,%rdi
140559771:	0f 87 3d 01 00 00    	ja     0x1405598b4
140559777:	48 6b cf 38          	imul   $0x38,%rdi,%rcx
14055977b:	48 89 7c 24 30       	mov    %rdi,0x30(%rsp)
140559780:	48 85 c9             	test   %rcx,%rcx
140559783:	75 09                	jne    0x14055978e
140559785:	33 db                	xor    %ebx,%ebx
140559787:	48 89 7c 24 30       	mov    %rdi,0x30(%rsp)
14055978c:	eb 3d                	jmp    0x1405597cb
14055978e:	48 81 f9 00 10 00 00 	cmp    $0x1000,%rcx
140559795:	72 2c                	jb     0x1405597c3
140559797:	48 8d 41 27          	lea    0x27(%rcx),%rax
14055979b:	48 3b c1             	cmp    %rcx,%rax
14055979e:	0f 86 10 01 00 00    	jbe    0x1405598b4
1405597a4:	48 8b c8             	mov    %rax,%rcx
1405597a7:	e8 5c 19 8c 00       	call   0x140e1b108
1405597ac:	48 85 c0             	test   %rax,%rax
1405597af:	0f 84 0b 01 00 00    	je     0x1405598c0
1405597b5:	48 8d 58 27          	lea    0x27(%rax),%rbx
1405597b9:	48 83 e3 e0          	and    $0xffffffffffffffe0,%rbx
1405597bd:	48 89 43 f8          	mov    %rax,-0x8(%rbx)
1405597c1:	eb 08                	jmp    0x1405597cb
1405597c3:	e8 40 19 8c 00       	call   0x140e1b108
1405597c8:	48 8b d8             	mov    %rax,%rbx
1405597cb:	48 89 9c 24 88 00 00 	mov    %rbx,0x88(%rsp)
1405597d2:	00
1405597d3:	4d 6b f6 38          	imul   $0x38,%r14,%r14
1405597d7:	4c 03 f3             	add    %rbx,%r14
1405597da:	4d 8d 7e 38          	lea    0x38(%r14),%r15
1405597de:	4c 89 7c 24 38       	mov    %r15,0x38(%rsp)
1405597e3:	48 8b 84 24 a8 00 00 	mov    0xa8(%rsp),%rax
1405597ea:	00
1405597eb:	48 8b 08             	mov    (%rax),%rcx
1405597ee:	48 89 4c 24 20       	mov    %rcx,0x20(%rsp)
1405597f3:	c6 44 24 28 01       	movb   $0x1,0x28(%rsp)
1405597f8:	48 8b 84 24 a0 00 00 	mov    0xa0(%rsp),%rax
1405597ff:	00
140559800:	4c 8b 48 10          	mov    0x10(%rax),%r9
140559804:	48 c7 40 10 00 00 00 	movq   $0x0,0x10(%rax)
14055980b:	00
14055980c:	4c 8b 40 08          	mov    0x8(%rax),%r8
140559810:	48 c7 40 08 00 00 00 	movq   $0x0,0x8(%rax)
140559817:	00
140559818:	48 8b 10             	mov    (%rax),%rdx
14055981b:	48 c7 00 00 00 00 00 	movq   $0x0,(%rax)
140559822:	48 8b 8c 24 98 00 00 	mov    0x98(%rsp),%rcx
140559829:	00
14055982a:	48 8b 09             	mov    (%rcx),%rcx
14055982d:	48 8b 84 24 90 00 00 	mov    0x90(%rsp),%rax
140559834:	00
140559835:	8b 00                	mov    (%rax),%eax
140559837:	41 89 06             	mov    %eax,(%r14)
14055983a:	49 89 4e 08          	mov    %rcx,0x8(%r14)
14055983e:	49 89 56 10          	mov    %rdx,0x10(%r14)
140559842:	4d 89 46 18          	mov    %r8,0x18(%r14)
140559846:	4d 89 4e 20          	mov    %r9,0x20(%r14)
14055984a:	0f 10 44 24 20       	movups 0x20(%rsp),%xmm0
14055984f:	41 0f 11 46 28       	movups %xmm0,0x28(%r14)
140559854:	4c 89 74 24 20       	mov    %r14,0x20(%rsp)
140559859:	48 8b 56 08          	mov    0x8(%rsi),%rdx
14055985d:	48 8b 0e             	mov    (%rsi),%rcx
140559860:	4c 3b ea             	cmp    %rdx,%r13
140559863:	75 05                	jne    0x14055986a
140559865:	4c 8b fb             	mov    %rbx,%r15
140559868:	eb 1a                	jmp    0x140559884
14055986a:	4c 8b ce             	mov    %rsi,%r9
14055986d:	4c 8b c3             	mov    %rbx,%r8
140559870:	49 8b d5             	mov    %r13,%rdx
140559873:	e8 28 02 00 00       	call   0x140559aa0
140559878:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
14055987d:	49 8b cd             	mov    %r13,%rcx
140559880:	48 8b 56 08          	mov    0x8(%rsi),%rdx
140559884:	4c 8b ce             	mov    %rsi,%r9
140559887:	4d 8b c7             	mov    %r15,%r8
14055988a:	e8 11 02 00 00       	call   0x140559aa0
14055988f:	90                   	nop
140559890:	4c 8b cf             	mov    %rdi,%r9
140559893:	4d 8b c4             	mov    %r12,%r8
140559896:	48 8b d3             	mov    %rbx,%rdx
140559899:	48 8b ce             	mov    %rsi,%rcx
14055989c:	e8 7f 79 00 00       	call   0x140561220
1405598a1:	49 8b c6             	mov    %r14,%rax
1405598a4:	48 83 c4 40          	add    $0x40,%rsp
1405598a8:	41 5f                	pop    %r15
1405598aa:	41 5e                	pop    %r14
1405598ac:	41 5d                	pop    %r13
1405598ae:	41 5c                	pop    %r12
1405598b0:	5f                   	pop    %rdi
1405598b1:	5e                   	pop    %rsi
1405598b2:	5b                   	pop    %rbx
1405598b3:	c3                   	ret
1405598b4:	e8 d7 38 c4 ff       	call   0x14019d190
1405598b9:	cc                   	int3
1405598ba:	e8 d1 3c c4 ff       	call   0x14019d590
1405598bf:	cc                   	int3
1405598c0:	e8 df 08 8d 00       	call   0x140e2a1a4
1405598c5:	cc                   	int3
1405598c6:	cc                   	int3
1405598c7:	cc                   	int3
1405598c8:	cc                   	int3
1405598c9:	cc                   	int3
1405598ca:	cc                   	int3
1405598cb:	cc                   	int3
1405598cc:	cc                   	int3
1405598cd:	cc                   	int3
1405598ce:	cc                   	int3
1405598cf:	cc                   	int3
1405598d0:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1405598d5:	57                   	push   %rdi
1405598d6:	48 83 ec 20          	sub    $0x20,%rsp
1405598da:	48 8b 42 08          	mov    0x8(%rdx),%rax
1405598de:	48 c7 00 00 00 00 00 	movq   $0x0,(%rax)
1405598e5:	48 8b 1a             	mov    (%rdx),%rbx
1405598e8:	48 85 db             	test   %rbx,%rbx
1405598eb:	74 44                	je     0x140559931
1405598ed:	0f 1f 00             	nopl   (%rax)
1405598f0:	48 8b 3b             	mov    (%rbx),%rdi
1405598f3:	48 8b 4b 18          	mov    0x18(%rbx),%rcx
1405598f7:	48 85 c9             	test   %rcx,%rcx
1405598fa:	74 20                	je     0x14055991c
1405598fc:	8b 41 10             	mov    0x10(%rcx),%eax
1405598ff:	ff c8                	dec    %eax
140559901:	89 41 10             	mov    %eax,0x10(%rcx)
140559904:	85 c0                	test   %eax,%eax
140559906:	7f 14                	jg     0x14055991c
140559908:	78 32                	js     0x14055993c
14055990a:	48 8b 01             	mov    (%rcx),%rax
14055990d:	ba 01 00 00 00       	mov    $0x1,%edx
140559912:	48 8b 00             	mov    (%rax),%rax
140559915:	ff 15 05 a1 a2 00    	call   *0xa2a105(%rip)        # 0x140f83a20
14055991b:	90                   	nop
14055991c:	ba 20 00 00 00       	mov    $0x20,%edx
140559921:	48 8b cb             	mov    %rbx,%rcx
140559924:	e8 1b 18 8c 00       	call   0x140e1b144
140559929:	48 8b df             	mov    %rdi,%rbx
14055992c:	48 85 ff             	test   %rdi,%rdi
14055992f:	75 bf                	jne    0x1405598f0
140559931:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140559936:	48 83 c4 20          	add    $0x20,%rsp
14055993a:	5f                   	pop    %rdi
14055993b:	c3                   	ret
14055993c:	b9 02 00 00 00       	mov    $0x2,%ecx
140559941:	e8 ba 0d 23 00       	call   0x14078a700
140559946:	cc                   	int3
140559947:	cc                   	int3
140559948:	cc                   	int3
140559949:	cc                   	int3
14055994a:	cc                   	int3
14055994b:	cc                   	int3
14055994c:	cc                   	int3
14055994d:	cc                   	int3
14055994e:	cc                   	int3
14055994f:	cc                   	int3
140559950:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
140559955:	48 89 54 24 10       	mov    %rdx,0x10(%rsp)
14055995a:	48 89 4c 24 08       	mov    %rcx,0x8(%rsp)
14055995f:	56                   	push   %rsi
140559960:	57                   	push   %rdi
140559961:	41 56                	push   %r14
140559963:	48 83 ec 20          	sub    $0x20,%rsp
140559967:	4c 8b f2             	mov    %rdx,%r14
14055996a:	48 8b d9             	mov    %rcx,%rbx
14055996d:	48 8b 79 08          	mov    0x8(%rcx),%rdi
140559971:	48 2b 39             	sub    (%rcx),%rdi
140559974:	48 c1 ff 04          	sar    $0x4,%rdi
140559978:	e8 23 f1 ff ff       	call   0x140558aa0
14055997d:	48 8b f0             	mov    %rax,%rsi
140559980:	48 89 44 24 50       	mov    %rax,0x50(%rsp)
140559985:	4c 8b 43 08          	mov    0x8(%rbx),%r8
140559989:	48 8b 13             	mov    (%rbx),%rdx
14055998c:	4c 2b c2             	sub    %rdx,%r8
14055998f:	48 8b c8             	mov    %rax,%rcx
140559992:	e8 79 56 98 00       	call   0x140edf010
140559997:	90                   	nop
140559998:	4d 8b 0e             	mov    (%r14),%r9
14055999b:	4c 8b c7             	mov    %rdi,%r8
14055999e:	48 8b d6             	mov    %rsi,%rdx
1405599a1:	48 8b cb             	mov    %rbx,%rcx
1405599a4:	48 8b 5c 24 58       	mov    0x58(%rsp),%rbx
1405599a9:	48 83 c4 20          	add    $0x20,%rsp
1405599ad:	41 5e                	pop    %r14
1405599af:	5f                   	pop    %rdi
1405599b0:	5e                   	pop    %rsi
1405599b1:	e9 1a 77 00 00       	jmp    0x1405610d0
1405599b6:	cc                   	int3
1405599b7:	cc                   	int3
1405599b8:	cc                   	int3
1405599b9:	cc                   	int3
1405599ba:	cc                   	int3
1405599bb:	cc                   	int3
1405599bc:	cc                   	int3
1405599bd:	cc                   	int3
1405599be:	cc                   	int3
1405599bf:	cc                   	int3
1405599c0:	40 53                	rex push %rbx
1405599c2:	48 83 ec 20          	sub    $0x20,%rsp
1405599c6:	49 8b d8             	mov    %r8,%rbx
1405599c9:	4c 8b da             	mov    %rdx,%r11
1405599cc:	48 3b ca             	cmp    %rdx,%rcx
1405599cf:	0f 84 b4 00 00 00    	je     0x140559a89
1405599d5:	4c 8b d3             	mov    %rbx,%r10
1405599d8:	48 89 7c 24 30       	mov    %rdi,0x30(%rsp)
1405599dd:	4c 2b d1             	sub    %rcx,%r10
1405599e0:	4c 8d 41 30          	lea    0x30(%rcx),%r8
1405599e4:	33 ff                	xor    %edi,%edi
1405599e6:	66 66 0f 1f 84 00 00 	data16 nopw 0x0(%rax,%rax,1)
1405599ed:	00 00 00
1405599f0:	49 8b 40 d0          	mov    -0x30(%r8),%rax
1405599f4:	48 89 03             	mov    %rax,(%rbx)
1405599f7:	49 8b 40 d8          	mov    -0x28(%r8),%rax
1405599fb:	49 8b 50 e8          	mov    -0x18(%r8),%rdx
1405599ff:	49 8b 48 e0          	mov    -0x20(%r8),%rcx
140559a03:	49 89 78 e8          	mov    %rdi,-0x18(%r8)
140559a07:	49 89 78 e0          	mov    %rdi,-0x20(%r8)
140559a0b:	49 89 78 d8          	mov    %rdi,-0x28(%r8)
140559a0f:	4b 89 44 02 d8       	mov    %rax,-0x28(%r10,%r8,1)
140559a14:	4b 89 4c 02 e0       	mov    %rcx,-0x20(%r10,%r8,1)
140559a19:	4b 89 54 02 e8       	mov    %rdx,-0x18(%r10,%r8,1)
140559a1e:	43 c6 44 02 10 ff    	movb   $0xff,0x10(%r10,%r8,1)
140559a24:	49 0f be 40 10       	movsbq 0x10(%r8),%rax
140559a29:	48 83 c0 01          	add    $0x1,%rax
140559a2d:	74 40                	je     0x140559a6f
140559a2f:	48 83 f8 01          	cmp    $0x1,%rax
140559a33:	49 8b 40 f0          	mov    -0x10(%r8),%rax
140559a37:	4b 89 44 02 f0       	mov    %rax,-0x10(%r10,%r8,1)
140559a3c:	49 8b 50 08          	mov    0x8(%r8),%rdx
140559a40:	49 8b 08             	mov    (%r8),%rcx
140559a43:	49 8b 40 f8          	mov    -0x8(%r8),%rax
140559a47:	49 89 78 08          	mov    %rdi,0x8(%r8)
140559a4b:	49 89 38             	mov    %rdi,(%r8)
140559a4e:	49 89 78 f8          	mov    %rdi,-0x8(%r8)
140559a52:	4b 89 44 02 f8       	mov    %rax,-0x8(%r10,%r8,1)
140559a57:	4b 89 0c 02          	mov    %rcx,(%r10,%r8,1)
140559a5b:	4b 89 54 02 08       	mov    %rdx,0x8(%r10,%r8,1)
140559a60:	74 08                	je     0x140559a6a
140559a62:	43 c6 44 02 10 01    	movb   $0x1,0x10(%r10,%r8,1)
140559a68:	eb 05                	jmp    0x140559a6f
140559a6a:	43 88 7c 02 10       	mov    %dil,0x10(%r10,%r8,1)
140559a6f:	49 83 c0 48          	add    $0x48,%r8
140559a73:	48 83 c3 48          	add    $0x48,%rbx
140559a77:	49 8d 48 d0          	lea    -0x30(%r8),%rcx
140559a7b:	49 3b cb             	cmp    %r11,%rcx
140559a7e:	0f 85 6c ff ff ff    	jne    0x1405599f0
140559a84:	48 8b 7c 24 30       	mov    0x30(%rsp),%rdi
140559a89:	4d 8b c1             	mov    %r9,%r8
140559a8c:	48 8b d3             	mov    %rbx,%rdx
140559a8f:	48 8b cb             	mov    %rbx,%rcx
140559a92:	e8 79 f0 ff ff       	call   0x140558b10
140559a97:	48 8b c3             	mov    %rbx,%rax
140559a9a:	48 83 c4 20          	add    $0x20,%rsp
140559a9e:	5b                   	pop    %rbx
140559a9f:	c3                   	ret
140559aa0:	40 53                	rex push %rbx
140559aa2:	48 83 ec 20          	sub    $0x20,%rsp
140559aa6:	49 8b d8             	mov    %r8,%rbx
140559aa9:	4c 8b da             	mov    %rdx,%r11
140559aac:	48 3b ca             	cmp    %rdx,%rcx
140559aaf:	74 68                	je     0x140559b19
140559ab1:	4c 8b d3             	mov    %rbx,%r10
140559ab4:	48 89 7c 24 30       	mov    %rdi,0x30(%rsp)