1800635f5:	8b f8                	mov    %eax,%edi
1800635f7:	85 c0                	test   %eax,%eax
1800635f9:	0f 88 50 ff ff ff    	js     0x18006354f
1800635ff:	48 8b 05 fa 15 14 00 	mov    0x1415fa(%rip),%rax        # 0x1801a4c00
180063606:	48 8d 15 f3 15 14 00 	lea    0x1415f3(%rip),%rdx        # 0x1801a4c00
18006360d:	48 39 50 08          	cmp    %rdx,0x8(%rax)
180063611:	74 07                	je     0x18006361a
180063613:	b9 03 00 00 00       	mov    $0x3,%ecx
180063618:	cd 29                	int    $0x29
18006361a:	48 89 03             	mov    %rax,(%rbx)
18006361d:	48 89 53 08          	mov    %rdx,0x8(%rbx)
180063621:	48 89 58 08          	mov    %rbx,0x8(%rax)
180063625:	48 89 1d d4 15 14 00 	mov    %rbx,0x1415d4(%rip)        # 0x1801a4c00
18006362c:	4c 89 3d f5 15 14 00 	mov    %r15,0x1415f5(%rip)        # 0x1801a4c28
180063633:	e9 1f ff ff ff       	jmp    0x180063557
180063638:	44 89 4c 24 20       	mov    %r9d,0x20(%rsp)
18006363d:	48 89 54 24 10       	mov    %rdx,0x10(%rsp)
180063642:	48 89 4c 24 08       	mov    %rcx,0x8(%rsp)
180063647:	53                   	push   %rbx
180063648:	55                   	push   %rbp
180063649:	56                   	push   %rsi
18006364a:	57                   	push   %rdi
18006364b:	41 54                	push   %r12
18006364d:	41 55                	push   %r13
18006364f:	41 56                	push   %r14
180063651:	41 57                	push   %r15
180063653:	48 83 ec 58          	sub    $0x58,%rsp
180063657:	0f b6 7a 2e          	movzbl 0x2e(%rdx),%edi
18006365b:	49 8b f0             	mov    %r8,%rsi
18006365e:	45 0f be 78 02       	movsbl 0x2(%r8),%r15d
180063663:	4c 8b ea             	mov    %rdx,%r13
180063666:	0f b6 6a 49          	movzbl 0x49(%rdx),%ebp
18006366a:	89 ac 24 b0 00 00 00 	mov    %ebp,0xb0(%rsp)
180063671:	44 3b ff             	cmp    %edi,%r15d
180063674:	0f 87 5e 01 00 00    	ja     0x1800637d8
18006367a:	41 0f be 40 03       	movsbl 0x3(%r8),%eax
18006367f:	3b c5                	cmp    %ebp,%eax
180063681:	0f 87 51 01 00 00    	ja     0x1800637d8
180063687:	45 0f b6 60 01       	movzbl 0x1(%r8),%r12d
18006368c:	8b dd                	mov    %ebp,%ebx
18006368e:	2b d8                	sub    %eax,%ebx
180063690:	43 8d 04 27          	lea    (%r15,%r12,1),%eax
180063694:	3b c7                	cmp    %edi,%eax
180063696:	0f 87 3c 01 00 00    	ja     0x1800637d8
18006369c:	45 0f b6 30          	movzbl (%r8),%r14d
1800636a0:	42 8d 04 33          	lea    (%rbx,%r14,1),%eax
1800636a4:	3b c5                	cmp    %ebp,%eax
1800636a6:	0f 87 2c 01 00 00    	ja     0x1800637d8
1800636ac:	48 8b 0d 6d 15 14 00 	mov    0x14156d(%rip),%rcx        # 0x1801a4c20
1800636b3:	33 d2                	xor    %edx,%edx
1800636b5:	44 8d 42 5a          	lea    0x5a(%rdx),%r8d
1800636b9:	e8 c2 25 0d 00       	call   0x180135c80
1800636be:	4c 8b 4e 08          	mov    0x8(%rsi),%r9
1800636c2:	41 bb 80 00 00 00    	mov    $0x80,%r11d
1800636c8:	0f af df             	imul   %edi,%ebx
1800636cb:	41 03 df             	add    %r15d,%ebx
1800636ce:	45 85 f6             	test   %r14d,%r14d
1800636d1:	74 7c                	je     0x18006374f
1800636d3:	4c 8b 2d 46 15 14 00 	mov    0x141546(%rip),%r13        # 0x1801a4c20
1800636da:	45 8b d6             	mov    %r14d,%r10d
1800636dd:	41 8b eb             	mov    %r11d,%ebp
1800636e0:	8b cb                	mov    %ebx,%ecx
1800636e2:	8b d3                	mov    %ebx,%edx
1800636e4:	83 e1 07             	and    $0x7,%ecx
1800636e7:	48 c1 ea 03          	shr    $0x3,%rdx
1800636eb:	44 8b c5             	mov    %ebp,%r8d
1800636ee:	49 03 d5             	add    %r13,%rdx
1800636f1:	41 d3 f8             	sar    %cl,%r8d
1800636f4:	45 85 e4             	test   %r12d,%r12d
1800636f7:	74 3f                	je     0x180063738
1800636f9:	49 8b f4             	mov    %r12,%rsi
1800636fc:	45 84 19             	test   %r11b,(%r9)
1800636ff:	74 03                	je     0x180063704
180063701:	44 08 02             	or     %r8b,(%rdx)
180063704:	41 d1 eb             	shr    $1,%r11d
180063707:	49 8d 41 01          	lea    0x1(%r9),%rax
18006370b:	41 8b cb             	mov    %r11d,%ecx
18006370e:	44 0f 44 dd          	cmove  %ebp,%r11d
180063712:	85 c9                	test   %ecx,%ecx
180063714:	49 0f 45 c1          	cmovne %r9,%rax
180063718:	41 d1 e8             	shr    $1,%r8d
18006371b:	41 8b c8             	mov    %r8d,%ecx
18006371e:	4c 8b c8             	mov    %rax,%r9
180063721:	44 0f 44 c5          	cmove  %ebp,%r8d
180063725:	48 8d 42 01          	lea    0x1(%rdx),%rax
180063729:	85 c9                	test   %ecx,%ecx
18006372b:	48 0f 45 c2          	cmovne %rdx,%rax
18006372f:	48 8b d0             	mov    %rax,%rdx
180063732:	48 83 ee 01          	sub    $0x1,%rsi
180063736:	75 c4                	jne    0x1800636fc
180063738:	03 df                	add    %edi,%ebx
18006373a:	49 83 ea 01          	sub    $0x1,%r10
18006373e:	75 a0                	jne    0x1800636e0
180063740:	8b ac 24 b0 00 00 00 	mov    0xb0(%rsp),%ebp
180063747:	4c 8b ac 24 a8 00 00 	mov    0xa8(%rsp),%r13
18006374e:	00
18006374f:	48 8b 9c 24 a0 00 00 	mov    0xa0(%rsp),%rbx
180063756:	00
180063757:	4c 8d 8c 24 b0 00 00 	lea    0xb0(%rsp),%r9
18006375e:	00
18006375f:	48 8b 05 ba 14 14 00 	mov    0x1414ba(%rip),%rax        # 0x1801a4c20
180063766:	49 8b cd             	mov    %r13,%rcx
180063769:	83 64 24 40 00       	andl   $0x0,0x40(%rsp)
18006376e:	89 7c 24 34          	mov    %edi,0x34(%rsp)
180063772:	44 8b 43 34          	mov    0x34(%rbx),%r8d
180063776:	8b 53 30             	mov    0x30(%rbx),%edx
180063779:	0f af fd             	imul   %ebp,%edi
18006377c:	48 89 44 24 48       	mov    %rax,0x48(%rsp)
180063781:	48 8d 84 24 a8 00 00 	lea    0xa8(%rsp),%rax
180063788:	00
180063789:	89 6c 24 30          	mov    %ebp,0x30(%rsp)
18006378d:	c7 44 24 38 01 00 00 	movl   $0x1,0x38(%rsp)
180063794:	00
180063795:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
18006379a:	83 c7 07             	add    $0x7,%edi
18006379d:	c1 ef 03             	shr    $0x3,%edi
1800637a0:	89 7c 24 3c          	mov    %edi,0x3c(%rsp)
1800637a4:	e8 b3 f7 ff ff       	call   0x180062f5c
1800637a9:	44 8b 8c 24 a8 00 00 	mov    0xa8(%rsp),%r9d
1800637b0:	00
1800637b1:	48 8d 54 24 30       	lea    0x30(%rsp),%rdx
1800637b6:	44 8b 84 24 b0 00 00 	mov    0xb0(%rsp),%r8d
1800637bd:	00
1800637be:	48 8b cb             	mov    %rbx,%rcx
1800637c1:	44 03 8c 24 c0 00 00 	add    0xc0(%rsp),%r9d
1800637c8:	00
1800637c9:	44 03 84 24 b8 00 00 	add    0xb8(%rsp),%r8d
1800637d0:	00
1800637d1:	e8 82 06 00 00       	call   0x180063e58
1800637d6:	eb 05                	jmp    0x1800637dd
1800637d8:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
1800637dd:	48 83 c4 58          	add    $0x58,%rsp
1800637e1:	41 5f                	pop    %r15
1800637e3:	41 5e                	pop    %r14
1800637e5:	41 5d                	pop    %r13
1800637e7:	41 5c                	pop    %r12
1800637e9:	5f                   	pop    %rdi
1800637ea:	5e                   	pop    %rsi
1800637eb:	5d                   	pop    %rbp
1800637ec:	5b                   	pop    %rbx
1800637ed:	c3                   	ret
1800637ee:	cc                   	int3
1800637ef:	cc                   	int3
1800637f0:	48 8b c4             	mov    %rsp,%rax
1800637f3:	48 89 58 10          	mov    %rbx,0x10(%rax)
1800637f7:	48 89 68 18          	mov    %rbp,0x18(%rax)
1800637fb:	48 89 70 20          	mov    %rsi,0x20(%rax)
1800637ff:	57                   	push   %rdi
180063800:	41 56                	push   %r14
180063802:	41 57                	push   %r15
180063804:	48 83 ec 40          	sub    $0x40,%rsp
180063808:	48 83 60 08 00       	andq   $0x0,0x8(%rax)
18006380d:	45 8b f8             	mov    %r8d,%r15d
180063810:	44 0f b7 c2          	movzwl %dx,%r8d
180063814:	45 8b f1             	mov    %r9d,%r14d
180063817:	0f b7 da             	movzwl %dx,%ebx
18006381a:	4c 8d 48 d8          	lea    -0x28(%rax),%r9
18006381e:	8b 51 34             	mov    0x34(%rcx),%edx
180063821:	48 8b e9             	mov    %rcx,%rbp
180063824:	e8 93 f7 ff ff       	call   0x180062fbc
180063829:	8b f8                	mov    %eax,%edi
18006382b:	85 c0                	test   %eax,%eax
18006382d:	0f 88 89 00 00 00    	js     0x1800638bc
180063833:	48 8b 74 24 30       	mov    0x30(%rsp),%rsi
180063838:	4c 8d 44 24 60       	lea    0x60(%rsp),%r8
18006383d:	48 8b ce             	mov    %rsi,%rcx
180063840:	0f b7 d3             	movzwl %bx,%edx
180063843:	e8 04 f6 ff ff       	call   0x180062e4c
180063848:	48 8b 5c 24 60       	mov    0x60(%rsp),%rbx
18006384d:	8b f8                	mov    %eax,%edi
18006384f:	85 c0                	test   %eax,%eax
180063851:	78 4e                	js     0x1800638a1
180063853:	45 8b cf             	mov    %r15d,%r9d
180063856:	44 89 74 24 20       	mov    %r14d,0x20(%rsp)
18006385b:	4c 8b c3             	mov    %rbx,%r8
18006385e:	48 8b d6             	mov    %rsi,%rdx
180063861:	48 8b cd             	mov    %rbp,%rcx
180063864:	e8 cf fd ff ff       	call   0x180063638
180063869:	8b f8                	mov    %eax,%edi
18006386b:	85 c0                	test   %eax,%eax
18006386d:	78 32                	js     0x1800638a1
18006386f:	48 8b 8c 24 80 00 00 	mov    0x80(%rsp),%rcx
180063876:	00
180063877:	48 8b 94 24 88 00 00 	mov    0x88(%rsp),%rdx
18006387e:	00
18006387f:	48 85 c9             	test   %rcx,%rcx
180063882:	75 05                	jne    0x180063889
180063884:	48 85 d2             	test   %rdx,%rdx
180063887:	74 18                	je     0x1800638a1
180063889:	44 0f b6 46 2e       	movzbl 0x2e(%rsi),%r8d
18006388e:	48 85 d2             	test   %rdx,%rdx
180063891:	74 06                	je     0x180063899
180063893:	0f b6 46 49          	movzbl 0x49(%rsi),%eax
180063897:	89 02                	mov    %eax,(%rdx)
180063899:	48 85 c9             	test   %rcx,%rcx
18006389c:	74 03                	je     0x1800638a1
18006389e:	44 89 01             	mov    %r8d,(%rcx)
1800638a1:	48 85 db             	test   %rbx,%rbx
1800638a4:	74 16                	je     0x1800638bc
1800638a6:	48 8b 4b 08          	mov    0x8(%rbx),%rcx
1800638aa:	48 85 c9             	test   %rcx,%rcx
1800638ad:	74 05                	je     0x1800638b4
1800638af:	e8 48 67 03 00       	call   0x180099ffc
1800638b4:	48 8b cb             	mov    %rbx,%rcx
1800638b7:	e8 40 67 03 00       	call   0x180099ffc
1800638bc:	48 8b 5c 24 68       	mov    0x68(%rsp),%rbx
1800638c1:	8b c7                	mov    %edi,%eax
1800638c3:	48 8b 6c 24 70       	mov    0x70(%rsp),%rbp
1800638c8:	48 8b 74 24 78       	mov    0x78(%rsp),%rsi
1800638cd:	48 83 c4 40          	add    $0x40,%rsp
1800638d1:	41 5f                	pop    %r15
1800638d3:	41 5e                	pop    %r14
1800638d5:	5f                   	pop    %rdi
1800638d6:	c3                   	ret
1800638d7:	cc                   	int3
1800638d8:	48 8b c4             	mov    %rsp,%rax
1800638db:	48 89 58 08          	mov    %rbx,0x8(%rax)
1800638df:	48 89 68 10          	mov    %rbp,0x10(%rax)
1800638e3:	48 89 70 18          	mov    %rsi,0x18(%rax)
1800638e7:	48 89 78 20          	mov    %rdi,0x20(%rax)
1800638eb:	41 56                	push   %r14
1800638ed:	48 83 ec 30          	sub    $0x30,%rsp
1800638f1:	48 83 60 30 00       	andq   $0x0,0x30(%rax)
1800638f6:	4c 8d 40 30          	lea    0x30(%rax),%r8
1800638fa:	48 8b f2             	mov    %rdx,%rsi
1800638fd:	4c 8b f1             	mov    %rcx,%r14
180063900:	48 8b ce             	mov    %rsi,%rcx
180063903:	ba 20 00 00 00       	mov    $0x20,%edx
180063908:	41 8b e9             	mov    %r9d,%ebp
18006390b:	e8 3c f5 ff ff       	call   0x180062e4c
180063910:	48 8b 5c 24 68       	mov    0x68(%rsp),%rbx
180063915:	8b f8                	mov    %eax,%edi
180063917:	85 c0                	test   %eax,%eax
180063919:	78 1b                	js     0x180063936
18006391b:	8b 44 24 60          	mov    0x60(%rsp),%eax
18006391f:	44 8b cd             	mov    %ebp,%r9d
180063922:	4c 8b c3             	mov    %rbx,%r8
180063925:	89 44 24 20          	mov    %eax,0x20(%rsp)
180063929:	48 8b d6             	mov    %rsi,%rdx
18006392c:	49 8b ce             	mov    %r14,%rcx
18006392f:	e8 04 fd ff ff       	call   0x180063638
180063934:	8b f8                	mov    %eax,%edi
180063936:	48 85 db             	test   %rbx,%rbx
180063939:	74 16                	je     0x180063951
18006393b:	48 8b 4b 08          	mov    0x8(%rbx),%rcx
18006393f:	48 85 c9             	test   %rcx,%rcx
180063942:	74 05                	je     0x180063949
180063944:	e8 b3 66 03 00       	call   0x180099ffc
180063949:	48 8b cb             	mov    %rbx,%rcx
18006394c:	e8 ab 66 03 00       	call   0x180099ffc
180063951:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
180063956:	8b c7                	mov    %edi,%eax
180063958:	48 8b 7c 24 58       	mov    0x58(%rsp),%rdi
18006395d:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
180063962:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
180063967:	48 83 c4 30          	add    $0x30,%rsp
18006396b:	41 5e                	pop    %r14
18006396d:	c3                   	ret
18006396e:	cc                   	int3
18006396f:	cc                   	int3
180063970:	40 55                	rex push %rbp
180063972:	53                   	push   %rbx
180063973:	56                   	push   %rsi
180063974:	57                   	push   %rdi
180063975:	41 54                	push   %r12
180063977:	41 55                	push   %r13
180063979:	41 57                	push   %r15
18006397b:	48 8b ec             	mov    %rsp,%rbp
18006397e:	48 83 ec 50          	sub    $0x50,%rsp
180063982:	44 8b ea             	mov    %edx,%r13d
180063985:	4c 8d 45 58          	lea    0x58(%rbp),%r8
180063989:	8b 51 34             	mov    0x34(%rcx),%edx
18006398c:	33 f6                	xor    %esi,%esi
18006398e:	48 89 75 f0          	mov    %rsi,-0x10(%rbp)
180063992:	48 8b f9             	mov    %rcx,%rdi
180063995:	e8 ea f6 ff ff       	call   0x180063084
18006399a:	8b d8                	mov    %eax,%ebx
18006399c:	85 c0                	test   %eax,%eax
18006399e:	0f 88 f4 00 00 00    	js     0x180063a98
1800639a4:	41 83 fd 01          	cmp    $0x1,%r13d
1800639a8:	75 0a                	jne    0x1800639b4
1800639aa:	44 8b 7f 0c          	mov    0xc(%rdi),%r15d
1800639ae:	44 8b 67 08          	mov    0x8(%rdi),%r12d
1800639b2:	eb 08                	jmp    0x1800639bc
1800639b4:	44 8b 7f 40          	mov    0x40(%rdi),%r15d
1800639b8:	44 8b 67 44          	mov    0x44(%rdi),%r12d
1800639bc:	48 8b 5d 58          	mov    0x58(%rbp),%rbx
1800639c0:	48 8d 45 50          	lea    0x50(%rbp),%rax
1800639c4:	44 8b 47 34          	mov    0x34(%rdi),%r8d
1800639c8:	4c 8d 4d 40          	lea    0x40(%rbp),%r9
1800639cc:	8b 57 30             	mov    0x30(%rdi),%edx
1800639cf:	48 8b cb             	mov    %rbx,%rcx
1800639d2:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
1800639d7:	e8 80 f5 ff ff       	call   0x180062f5c
1800639dc:	44 8b 45 50          	mov    0x50(%rbp),%r8d
1800639e0:	44 03 47 14          	add    0x14(%rdi),%r8d
1800639e4:	8b 55 40             	mov    0x40(%rbp),%edx
1800639e7:	45 8b c8             	mov    %r8d,%r9d
1800639ea:	03 57 10             	add    0x10(%rdi),%edx
1800639ed:	0f b6 4b 49          	movzbl 0x49(%rbx),%ecx
1800639f1:	0f b6 43 2e          	movzbl 0x2e(%rbx),%eax
1800639f5:	48 21 75 e8          	and    %rsi,-0x18(%rbp)
1800639f9:	44 89 45 58          	mov    %r8d,0x58(%rbp)
1800639fd:	44 8b c2             	mov    %edx,%r8d
180063a00:	89 44 24 28          	mov    %eax,0x28(%rsp)
180063a04:	89 55 e0             	mov    %edx,-0x20(%rbp)
180063a07:	48 8d 55 e8          	lea    -0x18(%rbp),%rdx
180063a0b:	89 4c 24 20          	mov    %ecx,0x20(%rsp)
180063a0f:	48 8b cf             	mov    %rdi,%rcx
180063a12:	44 89 65 40          	mov    %r12d,0x40(%rbp)
180063a16:	44 89 7d 50          	mov    %r15d,0x50(%rbp)
180063a1a:	e8 e9 05 00 00       	call   0x180064008
180063a1f:	8b d8                	mov    %eax,%ebx
180063a21:	85 c0                	test   %eax,%eax
180063a23:	78 25                	js     0x180063a4a
180063a25:	48 8b 4d e8          	mov    -0x18(%rbp),%rcx
180063a29:	48 8d 45 f0          	lea    -0x10(%rbp),%rax
180063a2d:	4c 8d 4d 40          	lea    0x40(%rbp),%r9
180063a31:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
180063a36:	4c 8d 45 50          	lea    0x50(%rbp),%r8
180063a3a:	ba 01 00 00 00       	mov    $0x1,%edx
180063a3f:	e8 64 01 00 00       	call   0x180063ba8
180063a44:	48 8b 75 f0          	mov    -0x10(%rbp),%rsi
180063a48:	8b d8                	mov    %eax,%ebx
180063a4a:	48 83 7d e8 00       	cmpq   $0x0,-0x18(%rbp)
180063a4f:	74 0f                	je     0x180063a60
180063a51:	48 39 75 e8          	cmp    %rsi,-0x18(%rbp)
180063a55:	74 09                	je     0x180063a60
180063a57:	48 8b 4d e8          	mov    -0x18(%rbp),%rcx
180063a5b:	e8 a0 07 00 00       	call   0x180064200
180063a60:	85 db                	test   %ebx,%ebx
180063a62:	78 27                	js     0x180063a8b
180063a64:	44 8b 4d 58          	mov    0x58(%rbp),%r9d
180063a68:	48 8b d6             	mov    %rsi,%rdx
180063a6b:	44 8b 45 e0          	mov    -0x20(%rbp),%r8d
180063a6f:	48 8b cf             	mov    %rdi,%rcx
180063a72:	e8 e1 03 00 00       	call   0x180063e58
180063a77:	8b d8                	mov    %eax,%ebx
180063a79:	85 c0                	test   %eax,%eax
180063a7b:	78 0e                	js     0x180063a8b
180063a7d:	41 83 fd 01          	cmp    $0x1,%r13d
180063a81:	75 08                	jne    0x180063a8b
180063a83:	44 89 7f 40          	mov    %r15d,0x40(%rdi)
180063a87:	44 89 67 44          	mov    %r12d,0x44(%rdi)
180063a8b:	48 85 f6             	test   %rsi,%rsi
180063a8e:	74 08                	je     0x180063a98
180063a90:	48 8b ce             	mov    %rsi,%rcx
180063a93:	e8 68 07 00 00       	call   0x180064200
180063a98:	8b c3                	mov    %ebx,%eax
180063a9a:	48 83 c4 50          	add    $0x50,%rsp