1801135c0:	49 8b c4             	mov    %r12,%rax
1801135c3:	49 d3 e9             	shr    %cl,%r9
1801135c6:	49 8b 4f 28          	mov    0x28(%r15),%rcx
1801135ca:	48 d3 e0             	shl    %cl,%rax
1801135cd:	48 8b ca             	mov    %rdx,%rcx
1801135d0:	4c 0b c8             	or     %rax,%r9
1801135d3:	49 d1 ea             	shr    $1,%r10
1801135d6:	49 d3 ea             	shr    %cl,%r10
1801135d9:	49 8b 4f 28          	mov    0x28(%r15),%rcx
1801135dd:	49 d3 e0             	shl    %cl,%r8
1801135e0:	49 8b 4f 20          	mov    0x20(%r15),%rcx
1801135e4:	4d 0b d0             	or     %r8,%r10
1801135e7:	48 8b c1             	mov    %rcx,%rax
1801135ea:	49 f7 e1             	mul    %r9
1801135ed:	4d 8d 04 02          	lea    (%r10,%rax,1),%r8
1801135f1:	4d 3b c2             	cmp    %r10,%r8
1801135f4:	49 13 d1             	adc    %r9,%rdx
1801135f7:	4d 85 d2             	test   %r10,%r10
1801135fa:	79 0e                	jns    0x18011360a
1801135fc:	48 d1 e9             	shr    $1,%rcx
1801135ff:	4a 8d 04 01          	lea    (%rcx,%r8,1),%rax
180113603:	49 3b c0             	cmp    %r8,%rax
180113606:	48 83 d2 00          	adc    $0x0,%rdx
18011360a:	49 8b 4f 38          	mov    0x38(%r15),%rcx
18011360e:	4c 8b ce             	mov    %rsi,%r9
180113611:	4c 8b c7             	mov    %rdi,%r8
180113614:	e8 0f de ff ff       	call   0x180111428
180113619:	4c 2b e0             	sub    %rax,%r12
18011361c:	75 13                	jne    0x180113631
18011361e:	49 8b 57 38          	mov    0x38(%r15),%rdx
180113622:	4c 8b c6             	mov    %rsi,%r8
180113625:	48 8b cf             	mov    %rdi,%rcx
180113628:	e8 3b cf ff ff       	call   0x180110568
18011362d:	85 c0                	test   %eax,%eax
18011362f:	78 49                	js     0x18011367a
180113631:	49 8b 57 38          	mov    0x38(%r15),%rdx
180113635:	48 85 f6             	test   %rsi,%rsi
180113638:	75 04                	jne    0x18011363e
18011363a:	33 c0                	xor    %eax,%eax
18011363c:	eb 24                	jmp    0x180113662
18011363e:	48 8b c6             	mov    %rsi,%rax
180113641:	4c 8b c7             	mov    %rdi,%r8
180113644:	48 c1 e0 06          	shl    $0x6,%rax
180113648:	48 8b cf             	mov    %rdi,%rcx
18011364b:	48 3d 00 01 00 00    	cmp    $0x100,%rax
180113651:	75 07                	jne    0x18011365a
180113653:	e8 08 f8 01 00       	call   0x180132e60
180113658:	eb 08                	jmp    0x180113662
18011365a:	4c 8b ce             	mov    %rsi,%r9
18011365d:	e8 ce f7 01 00       	call   0x180132e30
180113662:	4c 3b e0             	cmp    %rax,%r12
180113665:	74 13                	je     0x18011367a
180113667:	33 db                	xor    %ebx,%ebx
180113669:	4d 85 f6             	test   %r14,%r14
18011366c:	74 0c                	je     0x18011367a
18011366e:	41 c7 46 10 05 00 00 	movl   $0x5,0x10(%r14)
180113675:	00
180113676:	eb 02                	jmp    0x18011367a
180113678:	33 db                	xor    %ebx,%ebx
18011367a:	41 2b ed             	sub    %r13d,%ebp
18011367d:	b8 40 00 00 00       	mov    $0x40,%eax
180113682:	85 db                	test   %ebx,%ebx
180113684:	0f 85 be fe ff ff    	jne    0x180113548
18011368a:	e9 b3 00 00 00       	jmp    0x180113742
18011368f:	85 ed                	test   %ebp,%ebp
180113691:	0f 89 b7 00 00 00    	jns    0x18011374e
180113697:	49 8b 57 30          	mov    0x30(%r15),%rdx
18011369b:	44 8b e5             	mov    %ebp,%r12d
18011369e:	41 f7 dc             	neg    %r12d
1801136a1:	4c 8b ce             	mov    %rsi,%r9
1801136a4:	44 3b e0             	cmp    %eax,%r12d
1801136a7:	4c 8b c7             	mov    %rdi,%r8
1801136aa:	44 0f 4f e0          	cmovg  %eax,%r12d
1801136ae:	48 83 64 24 40 00    	andq   $0x0,0x40(%rsp)
1801136b4:	48 0f af 17          	imul   (%rdi),%rdx
1801136b8:	41 8b c4             	mov    %r12d,%eax
1801136bb:	f7 d8                	neg    %eax
1801136bd:	48 f7 da             	neg    %rdx
1801136c0:	89 44 24 38          	mov    %eax,0x38(%rsp)
1801136c4:	8d 48 40             	lea    0x40(%rax),%ecx
1801136c7:	48 83 c8 ff          	or     $0xffffffffffffffff,%rax
1801136cb:	48 d3 e8             	shr    %cl,%rax
1801136ce:	89 4c 24 30          	mov    %ecx,0x30(%rsp)
1801136d2:	48 23 d0             	and    %rax,%rdx
1801136d5:	49 8b 4f 38          	mov    0x38(%r15),%rcx
1801136d9:	e8 ee dc ff ff       	call   0x1801113cc
1801136de:	4c 8b e8             	mov    %rax,%r13
1801136e1:	85 db                	test   %ebx,%ebx
1801136e3:	74 2c                	je     0x180113711
1801136e5:	8b 54 24 38          	mov    0x38(%rsp),%edx
1801136e9:	48 8d 44 24 40       	lea    0x40(%rsp),%rax
1801136ee:	4c 89 74 24 28       	mov    %r14,0x28(%rsp)
1801136f3:	4c 8b ce             	mov    %rsi,%r9
1801136f6:	4c 8b c7             	mov    %rdi,%r8
1801136f9:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
1801136fe:	48 8b cf             	mov    %rdi,%rcx
180113701:	e8 62 de ff ff       	call   0x180111568
180113706:	85 c0                	test   %eax,%eax
180113708:	74 07                	je     0x180113711
18011370a:	bb 01 00 00 00       	mov    $0x1,%ebx
18011370f:	eb 02                	jmp    0x180113713
180113711:	33 db                	xor    %ebx,%ebx
180113713:	8b 4c 24 30          	mov    0x30(%rsp),%ecx
180113717:	49 d3 e5             	shl    %cl,%r13
18011371a:	4c 09 6c f7 f8       	or     %r13,-0x8(%rdi,%rsi,8)
18011371f:	85 db                	test   %ebx,%ebx
180113721:	74 17                	je     0x18011373a
180113723:	48 83 7c 24 40 00    	cmpq   $0x0,0x40(%rsp)
180113729:	74 0f                	je     0x18011373a
18011372b:	33 db                	xor    %ebx,%ebx
18011372d:	4d 85 f6             	test   %r14,%r14
180113730:	74 08                	je     0x18011373a
180113732:	41 c7 46 10 05 00 00 	movl   $0x5,0x10(%r14)
180113739:	00
18011373a:	41 03 ec             	add    %r12d,%ebp
18011373d:	b8 40 00 00 00       	mov    $0x40,%eax
180113742:	85 db                	test   %ebx,%ebx
180113744:	0f 85 45 ff ff ff    	jne    0x18011368f
18011374a:	eb 02                	jmp    0x18011374e
18011374c:	33 db                	xor    %ebx,%ebx
18011374e:	8b c3                	mov    %ebx,%eax
180113750:	48 83 c4 58          	add    $0x58,%rsp
180113754:	41 5f                	pop    %r15
180113756:	41 5e                	pop    %r14
180113758:	41 5d                	pop    %r13
18011375a:	41 5c                	pop    %r12
18011375c:	5f                   	pop    %rdi
18011375d:	5e                   	pop    %rsi
18011375e:	5d                   	pop    %rbp
18011375f:	5b                   	pop    %rbx
180113760:	c3                   	ret
180113761:	cc                   	int3
180113762:	cc                   	int3
180113763:	cc                   	int3
180113764:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180113769:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
18011376e:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
180113773:	57                   	push   %rdi
180113774:	41 54                	push   %r12
180113776:	41 55                	push   %r13
180113778:	41 56                	push   %r14
18011377a:	41 57                	push   %r15
18011377c:	48 83 ec 40          	sub    $0x40,%rsp
180113780:	49 8b 31             	mov    (%r9),%rsi
180113783:	4d 8b e1             	mov    %r9,%r12
180113786:	4d 8b e8             	mov    %r8,%r13
180113789:	4c 8b ce             	mov    %rsi,%r9
18011378c:	48 8b fa             	mov    %rdx,%rdi
18011378f:	4c 8b f9             	mov    %rcx,%r15
180113792:	bb 01 00 00 00       	mov    $0x1,%ebx
180113797:	33 ed                	xor    %ebp,%ebp
180113799:	4d 8b 44 24 38       	mov    0x38(%r12),%r8
18011379e:	e8 45 cd ff ff       	call   0x1801104e8
1801137a3:	4c 8b b4 24 90 00 00 	mov    0x90(%rsp),%r14
1801137aa:	00
1801137ab:	85 c0                	test   %eax,%eax
1801137ad:	78 4d                	js     0x1801137fc
1801137af:	48 8b ce             	mov    %rsi,%rcx
1801137b2:	48 c1 e1 03          	shl    $0x3,%rcx
1801137b6:	e8 95 66 f8 ff       	call   0x180099e50
1801137bb:	48 8b e8             	mov    %rax,%rbp
1801137be:	48 85 c0             	test   %rax,%rax
1801137c1:	74 31                	je     0x1801137f4
1801137c3:	4d 8b 44 24 38       	mov    0x38(%r12),%r8
1801137c8:	49 8d 44 24 20       	lea    0x20(%r12),%rax
1801137cd:	4c 89 74 24 38       	mov    %r14,0x38(%rsp)
1801137d2:	4c 8b ce             	mov    %rsi,%r9
1801137d5:	48 89 6c 24 30       	mov    %rbp,0x30(%rsp)
1801137da:	48 8b d7             	mov    %rdi,%rdx
1801137dd:	48 83 64 24 28 00    	andq   $0x0,0x28(%rsp)
1801137e3:	49 8b cf             	mov    %r15,%rcx
1801137e6:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
1801137eb:	e8 98 01 00 00       	call   0x180113988
1801137f0:	85 c0                	test   %eax,%eax
1801137f2:	75 02                	jne    0x1801137f6
1801137f4:	33 db                	xor    %ebx,%ebx
1801137f6:	4c 8b fd             	mov    %rbp,%r15
1801137f9:	48 8b fe             	mov    %rsi,%rdi
1801137fc:	85 db                	test   %ebx,%ebx
1801137fe:	74 7a                	je     0x18011387a
180113800:	48 85 ff             	test   %rdi,%rdi
180113803:	74 18                	je     0x18011381d
180113805:	48 8d 47 ff          	lea    -0x1(%rdi),%rax
180113809:	49 8d 04 c7          	lea    (%r15,%rax,8),%rax
18011380d:	48 83 38 00          	cmpq   $0x0,(%rax)
180113811:	75 0a                	jne    0x18011381d
180113813:	48 83 e8 08          	sub    $0x8,%rax
180113817:	48 83 ef 01          	sub    $0x1,%rdi
18011381b:	75 f0                	jne    0x18011380d
18011381d:	48 3b fe             	cmp    %rsi,%rdi
180113820:	76 0f                	jbe    0x180113831
180113822:	4d 85 f6             	test   %r14,%r14
180113825:	74 34                	je     0x18011385b
180113827:	41 c7 46 10 06 00 00 	movl   $0x6,0x10(%r14)
18011382e:	00
18011382f:	eb 2a                	jmp    0x18011385b
180113831:	48 8b df             	mov    %rdi,%rbx
180113834:	49 8b d7             	mov    %r15,%rdx
180113837:	48 c1 e3 03          	shl    $0x3,%rbx
18011383b:	49 8b cd             	mov    %r13,%rcx
18011383e:	4c 8b c3             	mov    %rbx,%r8
180113841:	e8 7a 21 02 00       	call   0x1801359c0
180113846:	48 2b f7             	sub    %rdi,%rsi
180113849:	4a 8d 0c 2b          	lea    (%rbx,%r13,1),%rcx
18011384d:	48 c1 e6 03          	shl    $0x3,%rsi
180113851:	33 d2                	xor    %edx,%edx
180113853:	4c 8b c6             	mov    %rsi,%r8
180113856:	e8 25 24 02 00       	call   0x180135c80
18011385b:	41 8b 54 24 18       	mov    0x18(%r12),%edx
180113860:	4d 8b cc             	mov    %r12,%r9
180113863:	4d 8b c5             	mov    %r13,%r8
180113866:	4c 89 74 24 20       	mov    %r14,0x20(%rsp)
18011386b:	49 8b cd             	mov    %r13,%rcx
18011386e:	e8 49 fc ff ff       	call   0x1801134bc
180113873:	33 db                	xor    %ebx,%ebx
180113875:	85 c0                	test   %eax,%eax
180113877:	0f 95 c3             	setne  %bl
18011387a:	48 85 ed             	test   %rbp,%rbp
18011387d:	74 08                	je     0x180113887
18011387f:	48 8b cd             	mov    %rbp,%rcx
180113882:	e8 75 67 f8 ff       	call   0x180099ffc
180113887:	4c 8d 5c 24 40       	lea    0x40(%rsp),%r11
18011388c:	8b c3                	mov    %ebx,%eax
18011388e:	49 8b 5b 30          	mov    0x30(%r11),%rbx
180113892:	49 8b 6b 38          	mov    0x38(%r11),%rbp
180113896:	49 8b 73 40          	mov    0x40(%r11),%rsi
18011389a:	49 8b e3             	mov    %r11,%rsp
18011389d:	41 5f                	pop    %r15
18011389f:	41 5e                	pop    %r14
1801138a1:	41 5d                	pop    %r13
1801138a3:	41 5c                	pop    %r12
1801138a5:	5f                   	pop    %rdi
1801138a6:	c3                   	ret
1801138a7:	cc                   	int3
1801138a8:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1801138ad:	57                   	push   %rdi
1801138ae:	48 83 ec 20          	sub    $0x20,%rsp
1801138b2:	48 8b 79 38          	mov    0x38(%rcx),%rdi
1801138b6:	48 8b d9             	mov    %rcx,%rbx
1801138b9:	48 85 ff             	test   %rdi,%rdi
1801138bc:	74 19                	je     0x1801138d7
1801138be:	48 8b 09             	mov    (%rcx),%rcx
1801138c1:	33 c0                	xor    %eax,%eax
1801138c3:	48 c1 e1 03          	shl    $0x3,%rcx
1801138c7:	f3 aa                	rep stos %al,%es:(%rdi)
1801138c9:	48 8b 4b 38          	mov    0x38(%rbx),%rcx
1801138cd:	e8 2a 67 f8 ff       	call   0x180099ffc
1801138d2:	48 83 63 38 00       	andq   $0x0,0x38(%rbx)
1801138d7:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1801138dc:	48 83 c4 20          	add    $0x20,%rsp
1801138e0:	5f                   	pop    %rdi
1801138e1:	c3                   	ret
1801138e2:	cc                   	int3
1801138e3:	cc                   	int3
1801138e4:	48 8b c4             	mov    %rsp,%rax
1801138e7:	48 89 58 08          	mov    %rbx,0x8(%rax)
1801138eb:	48 89 68 10          	mov    %rbp,0x10(%rax)
1801138ef:	48 89 70 18          	mov    %rsi,0x18(%rax)
1801138f3:	48 89 78 20          	mov    %rdi,0x20(%rax)
1801138f7:	4c 8b 11             	mov    (%rcx),%r10
1801138fa:	49 8b d9             	mov    %r9,%rbx
1801138fd:	48 8b 69 08          	mov    0x8(%rcx),%rbp
180113901:	45 33 c9             	xor    %r9d,%r9d
180113904:	49 8b f8             	mov    %r8,%rdi
180113907:	4c 8b da             	mov    %rdx,%r11
18011390a:	4c 3b d2             	cmp    %rdx,%r10
18011390d:	72 13                	jb     0x180113922
18011390f:	48 8b 44 24 28       	mov    0x28(%rsp),%rax
180113914:	48 85 c0             	test   %rax,%rax
180113917:	74 55                	je     0x18011396e
180113919:	c7 40 10 06 00 00 00 	movl   $0x6,0x10(%rax)
180113920:	eb 4c                	jmp    0x18011396e
180113922:	48 be 00 00 00 00 00 	movabs $0x8000000000000000,%rsi
180113929:	00 00 80
18011392c:	49 8b c1             	mov    %r9,%rax
18011392f:	4c 8b c5             	mov    %rbp,%r8
180113932:	49 c1 e8 3f          	shr    $0x3f,%r8
180113936:	4c 03 ce             	add    %rsi,%r9
180113939:	49 8b cb             	mov    %r11,%rcx
18011393c:	49 2b ca             	sub    %r10,%rcx
18011393f:	4b 8d 14 10          	lea    (%r8,%r10,1),%rdx
180113943:	48 3b d1             	cmp    %rcx,%rdx
180113946:	4c 0f 42 c8          	cmovb  %rax,%r9
18011394a:	49 8b c0             	mov    %r8,%rax
18011394d:	49 2b c3             	sub    %r11,%rax
180113950:	48 3b d1             	cmp    %rcx,%rdx
180113953:	49 0f 42 c0          	cmovb  %r8,%rax
180113957:	48 03 ed             	add    %rbp,%rbp
18011395a:	48 d1 ee             	shr    $1,%rsi
18011395d:	4e 8d 14 50          	lea    (%rax,%r10,2),%r10
180113961:	75 c9                	jne    0x18011392c
180113963:	4c 89 0f             	mov    %r9,(%rdi)
180113966:	44 8b 4c 24 30       	mov    0x30(%rsp),%r9d
18011396b:	4c 89 13             	mov    %r10,(%rbx)
18011396e:	48 8b 5c 24 08       	mov    0x8(%rsp),%rbx
180113973:	41 8b c1             	mov    %r9d,%eax
180113976:	48 8b 6c 24 10       	mov    0x10(%rsp),%rbp
18011397b:	48 8b 74 24 18       	mov    0x18(%rsp),%rsi
180113980:	48 8b 7c 24 20       	mov    0x20(%rsp),%rdi
180113985:	c3                   	ret
180113986:	cc                   	int3
180113987:	cc                   	int3
180113988:	40 53                	rex push %rbx
18011398a:	55                   	push   %rbp
18011398b:	56                   	push   %rsi
18011398c:	57                   	push   %rdi
18011398d:	41 54                	push   %r12
18011398f:	41 55                	push   %r13
180113991:	41 56                	push   %r14
180113993:	41 57                	push   %r15
180113995:	48 81 ec 88 00 00 00 	sub    $0x88,%rsp
18011399c:	48 8b 05 cd 8f 05 00 	mov    0x58fcd(%rip),%rax        # 0x18016c970
1801139a3:	48 33 c4             	xor    %rsp,%rax
1801139a6:	48 89 44 24 78       	mov    %rax,0x78(%rsp)
1801139ab:	48 8b 84 24 f0 00 00 	mov    0xf0(%rsp),%rax
1801139b2:	00
1801139b3:	49 8b f9             	mov    %r9,%rdi
1801139b6:	4c 8b ac 24 f8 00 00 	mov    0xf8(%rsp),%r13
1801139bd:	00
1801139be:	4d 8b f8             	mov    %r8,%r15
1801139c1:	48 8b b4 24 00 01 00 	mov    0x100(%rsp),%rsi
1801139c8:	00
1801139c9:	4c 8b f2             	mov    %rdx,%r14
1801139cc:	48 8b 9c 24 08 01 00 	mov    0x108(%rsp),%rbx
1801139d3:	00
1801139d4:	4c 8b e1             	mov    %rcx,%r12
1801139d7:	48 89 44 24 40       	mov    %rax,0x40(%rsp)
1801139dc:	bd 01 00 00 00       	mov    $0x1,%ebp
1801139e1:	4d 85 c9             	test   %r9,%r9
1801139e4:	75 17                	jne    0x1801139fd
1801139e6:	33 ed                	xor    %ebp,%ebp
1801139e8:	48 85 db             	test   %rbx,%rbx
1801139eb:	0f 84 a3 02 00 00    	je     0x180113c94
1801139f1:	c7 43 10 03 00 00 00 	movl   $0x3,0x10(%rbx)
1801139f8:	e9 97 02 00 00       	jmp    0x180113c94
1801139fd:	4d 85 e4             	test   %r12,%r12
180113a00:	0f 84 80 02 00 00    	je     0x180113c86
180113a06:	4d 85 ff             	test   %r15,%r15
180113a09:	0f 84 77 02 00 00    	je     0x180113c86
180113a0f:	48 85 f6             	test   %rsi,%rsi
180113a12:	0f 84 6e 02 00 00    	je     0x180113c86
180113a18:	4d 3b e5             	cmp    %r13,%r12
180113a1b:	0f 84 55 02 00 00    	je     0x180113c76
180113a21:	4c 3b e6             	cmp    %rsi,%r12
180113a24:	0f 84 4c 02 00 00    	je     0x180113c76
180113a2a:	4d 3b fd             	cmp    %r13,%r15
180113a2d:	0f 84 43 02 00 00    	je     0x180113c76
180113a33:	4c 3b fe             	cmp    %rsi,%r15
180113a36:	0f 84 3a 02 00 00    	je     0x180113c76
180113a3c:	4b 8b 54 c8 f8       	mov    -0x8(%r8,%r9,8),%rdx