1800415ef:	0f 1f 00             	nopl   (%rax)
1800415f2:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1800415f7:	48 8b c5             	mov    %rbp,%rax
1800415fa:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
1800415ff:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
180041604:	48 8b 7c 24 48       	mov    0x48(%rsp),%rdi
180041609:	48 83 c4 20          	add    $0x20,%rsp
18004160d:	41 5e                	pop    %r14
18004160f:	c3                   	ret
180041610:	cc                   	int3
180041611:	cc                   	int3
180041612:	cc                   	int3
180041613:	cc                   	int3
180041614:	0f b7 82 20 01 00 00 	movzwl 0x120(%rdx),%eax
18004161b:	66 89 81 20 01 00 00 	mov    %ax,0x120(%rcx)
180041622:	48 8b 82 f8 00 00 00 	mov    0xf8(%rdx),%rax
180041629:	48 89 81 f8 00 00 00 	mov    %rax,0xf8(%rcx)
180041630:	48 8b 82 28 01 00 00 	mov    0x128(%rdx),%rax
180041637:	48 89 81 28 01 00 00 	mov    %rax,0x128(%rcx)
18004163e:	48 8b 82 30 01 00 00 	mov    0x130(%rdx),%rax
180041645:	48 89 81 30 01 00 00 	mov    %rax,0x130(%rcx)
18004164c:	48 8b 82 38 01 00 00 	mov    0x138(%rdx),%rax
180041653:	48 89 81 38 01 00 00 	mov    %rax,0x138(%rcx)
18004165a:	c3                   	ret
18004165b:	cc                   	int3
18004165c:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180041661:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
180041666:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
18004166b:	57                   	push   %rdi
18004166c:	48 83 ec 20          	sub    $0x20,%rsp
180041670:	0f b6 42 11          	movzbl 0x11(%rdx),%eax
180041674:	48 8d 35 85 e9 fb ff 	lea    -0x4167b(%rip),%rsi        # 0x180000000
18004167b:	48 8b ea             	mov    %rdx,%rbp
18004167e:	88 41 18             	mov    %al,0x18(%rcx)
180041681:	8b d0                	mov    %eax,%edx
180041683:	48 8b d9             	mov    %rcx,%rbx
180041686:	48 03 d2             	add    %rdx,%rdx
180041689:	4c 8b c9             	mov    %rcx,%r9
18004168c:	48 8b cd             	mov    %rbp,%rcx
18004168f:	44 8b 84 d6 f0 de 14 	mov    0x14def0(%rsi,%rdx,8),%r8d
180041696:	00
180041697:	48 8b 94 d6 f8 de 14 	mov    0x14def8(%rsi,%rdx,8),%rdx
18004169e:	00
18004169f:	e8 04 61 00 00       	call   0x1800477a8
1800416a4:	8b f8                	mov    %eax,%edi
1800416a6:	85 c0                	test   %eax,%eax
1800416a8:	0f 88 7a 01 00 00    	js     0x180041828
1800416ae:	0f b6 4b 18          	movzbl 0x18(%rbx),%ecx
1800416b2:	8b 94 8e 08 e2 14 00 	mov    0x14e208(%rsi,%rcx,4),%edx
1800416b9:	0f b7 4b 40          	movzwl 0x40(%rbx),%ecx
1800416bd:	f7 d2                	not    %edx
1800416bf:	85 d1                	test   %edx,%ecx
1800416c1:	74 0a                	je     0x1800416cd
1800416c3:	bf 0d 00 00 c0       	mov    $0xc000000d,%edi
1800416c8:	e9 5b 01 00 00       	jmp    0x180041828
1800416cd:	83 bb 80 00 00 00 00 	cmpl   $0x0,0x80(%rbx)
1800416d4:	74 ed                	je     0x1800416c3
1800416d6:	8b 83 b4 00 00 00    	mov    0xb4(%rbx),%eax
1800416dc:	85 c0                	test   %eax,%eax
1800416de:	74 61                	je     0x180041741
1800416e0:	c1 e0 04             	shl    $0x4,%eax
1800416e3:	8b c8                	mov    %eax,%ecx
1800416e5:	e8 2a 52 00 00       	call   0x180046914
1800416ea:	48 89 83 b8 00 00 00 	mov    %rax,0xb8(%rbx)
1800416f1:	48 85 c0             	test   %rax,%rax
1800416f4:	75 0a                	jne    0x180041700
1800416f6:	bf 9a 00 00 c0       	mov    $0xc000009a,%edi
1800416fb:	e9 28 01 00 00       	jmp    0x180041828
180041700:	33 f6                	xor    %esi,%esi
180041702:	39 b3 b4 00 00 00    	cmp    %esi,0xb4(%rbx)
180041708:	76 37                	jbe    0x180041741
18004170a:	44 8b ce             	mov    %esi,%r9d
18004170d:	48 8d 15 4c c5 10 00 	lea    0x10c54c(%rip),%rdx        # 0x18014dc60
180041714:	49 c1 e1 04          	shl    $0x4,%r9
180041718:	41 b8 01 00 00 00    	mov    $0x1,%r8d
18004171e:	4c 03 8b b8 00 00 00 	add    0xb8(%rbx),%r9
180041725:	48 8b cd             	mov    %rbp,%rcx
180041728:	e8 7b 60 00 00       	call   0x1800477a8
18004172d:	8b f8                	mov    %eax,%edi
18004172f:	85 c0                	test   %eax,%eax
180041731:	0f 88 f1 00 00 00    	js     0x180041828
180041737:	ff c6                	inc    %esi
180041739:	3b b3 b4 00 00 00    	cmp    0xb4(%rbx),%esi
18004173f:	72 c9                	jb     0x18004170a
180041741:	44 8a 43 18          	mov    0x18(%rbx),%r8b
180041745:	41 80 f8 03          	cmp    $0x3,%r8b
180041749:	73 15                	jae    0x180041760
18004174b:	33 c0                	xor    %eax,%eax
18004174d:	b9 00 00 00 02       	mov    $0x2000000,%ecx
180041752:	83 7b 78 03          	cmpl   $0x3,0x78(%rbx)
180041756:	0f 44 c1             	cmove  %ecx,%eax
180041759:	48 89 83 90 00 00 00 	mov    %rax,0x90(%rbx)
180041760:	41 80 f8 04          	cmp    $0x4,%r8b
180041764:	73 28                	jae    0x18004178e
180041766:	8b 4b 78             	mov    0x78(%rbx),%ecx
180041769:	83 e9 01             	sub    $0x1,%ecx
18004176c:	74 1c                	je     0x18004178a
18004176e:	83 e9 01             	sub    $0x1,%ecx
180041771:	74 0a                	je     0x18004177d
180041773:	83 f9 01             	cmp    $0x1,%ecx
180041776:	75 16                	jne    0x18004178e
180041778:	89 4b 7c             	mov    %ecx,0x7c(%rbx)
18004177b:	eb 11                	jmp    0x18004178e
18004177d:	8b 83 80 00 00 00    	mov    0x80(%rbx),%eax
180041783:	ff c8                	dec    %eax
180041785:	89 43 7c             	mov    %eax,0x7c(%rbx)
180041788:	eb 04                	jmp    0x18004178e
18004178a:	83 63 7c 00          	andl   $0x0,0x7c(%rbx)
18004178e:	41 80 f8 06          	cmp    $0x6,%r8b
180041792:	73 14                	jae    0x1800417a8
180041794:	8b 83 88 00 00 00    	mov    0x88(%rbx),%eax
18004179a:	33 d2                	xor    %edx,%edx
18004179c:	f7 b3 80 00 00 00    	divl   0x80(%rbx)
1800417a2:	89 83 88 00 00 00    	mov    %eax,0x88(%rbx)
1800417a8:	41 80 f8 07          	cmp    $0x7,%r8b
1800417ac:	73 0e                	jae    0x1800417bc
1800417ae:	8a 43 70             	mov    0x70(%rbx),%al
1800417b1:	f6 d8                	neg    %al
1800417b3:	1b c9                	sbb    %ecx,%ecx
1800417b5:	f7 d9                	neg    %ecx
1800417b7:	ff c1                	inc    %ecx
1800417b9:	89 4b 70             	mov    %ecx,0x70(%rbx)
1800417bc:	41 80 f8 09          	cmp    $0x9,%r8b
1800417c0:	73 10                	jae    0x1800417d2
1800417c2:	83 bb a8 00 00 00 00 	cmpl   $0x0,0xa8(%rbx)
1800417c9:	74 07                	je     0x1800417d2
1800417cb:	c7 43 68 05 00 00 00 	movl   $0x5,0x68(%rbx)
1800417d2:	41 80 f8 0a          	cmp    $0xa,%r8b
1800417d6:	73 0a                	jae    0x1800417e2
1800417d8:	c7 83 b0 00 00 00 01 	movl   $0x1,0xb0(%rbx)
1800417df:	00 00 00
1800417e2:	83 bb b4 00 00 00 00 	cmpl   $0x0,0xb4(%rbx)
1800417e9:	75 07                	jne    0x1800417f2
1800417eb:	83 a3 b0 00 00 00 00 	andl   $0x0,0xb0(%rbx)
1800417f2:	41 80 f8 0b          	cmp    $0xb,%r8b
1800417f6:	73 05                	jae    0x1800417fd
1800417f8:	48 c1 63 48 1c       	shlq   $0x1c,0x48(%rbx)
1800417fd:	80 7b 42 01          	cmpb   $0x1,0x42(%rbx)
180041801:	75 25                	jne    0x180041828
180041803:	48 8b 4b 48          	mov    0x48(%rbx),%rcx
180041807:	48 c1 e9 19          	shr    $0x19,%rcx
18004180b:	8b c9                	mov    %ecx,%ecx
18004180d:	e8 02 51 00 00       	call   0x180046914
180041812:	8b cf                	mov    %edi,%ecx
180041814:	48 89 83 40 01 00 00 	mov    %rax,0x140(%rbx)
18004181b:	bf 9a 00 00 c0       	mov    $0xc000009a,%edi
180041820:	48 85 c0             	test   %rax,%rax
180041823:	0f 44 cf             	cmove  %edi,%ecx
180041826:	8b f9                	mov    %ecx,%edi
180041828:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
18004182d:	8b c7                	mov    %edi,%eax
18004182f:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
180041834:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
180041839:	48 83 c4 20          	add    $0x20,%rsp
18004183d:	5f                   	pop    %rdi
18004183e:	c3                   	ret
18004183f:	cc                   	int3
180041840:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180041845:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
18004184a:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
18004184f:	57                   	push   %rdi
180041850:	41 56                	push   %r14
180041852:	41 57                	push   %r15
180041854:	48 83 ec 20          	sub    $0x20,%rsp
180041858:	0f b6 6a 11          	movzbl 0x11(%rdx),%ebp
18004185c:	33 f6                	xor    %esi,%esi
18004185e:	4c 8b fa             	mov    %rdx,%r15
180041861:	48 8b f9             	mov    %rcx,%rdi
180041864:	44 8b f6             	mov    %esi,%r14d
180041867:	40 80 fd 06          	cmp    $0x6,%bpl
18004186b:	73 13                	jae    0x180041880
18004186d:	8b 81 88 00 00 00    	mov    0x88(%rcx),%eax
180041873:	0f af 81 80 00 00 00 	imul   0x80(%rcx),%eax
18004187a:	89 81 88 00 00 00    	mov    %eax,0x88(%rcx)
180041880:	40 80 fd 07          	cmp    $0x7,%bpl
180041884:	73 19                	jae    0x18004189f
180041886:	44 8b 71 70          	mov    0x70(%rcx),%r14d
18004188a:	41 8b ce             	mov    %r14d,%ecx
18004188d:	83 e9 01             	sub    $0x1,%ecx
180041890:	74 0a                	je     0x18004189c
180041892:	83 f9 01             	cmp    $0x1,%ecx
180041895:	75 08                	jne    0x18004189f
180041897:	89 4f 70             	mov    %ecx,0x70(%rdi)
18004189a:	eb 03                	jmp    0x18004189f
18004189c:	89 77 70             	mov    %esi,0x70(%rdi)
18004189f:	40 80 fd 0b          	cmp    $0xb,%bpl
1800418a3:	73 05                	jae    0x1800418aa
1800418a5:	48 c1 6f 48 1c       	shrq   $0x1c,0x48(%rdi)
1800418aa:	0f b7 5f 40          	movzwl 0x40(%rdi),%ebx
1800418ae:	48 8d 0d 4b e7 fb ff 	lea    -0x418b5(%rip),%rcx        # 0x180000000
1800418b5:	0f b7 84 a9 08 e2 14 	movzwl 0x14e208(%rcx,%rbp,4),%eax
1800418bc:	00
1800418bd:	48 8b d5             	mov    %rbp,%rdx
1800418c0:	48 03 d2             	add    %rdx,%rdx
1800418c3:	66 23 c3             	and    %bx,%ax
1800418c6:	66 89 47 40          	mov    %ax,0x40(%rdi)
1800418ca:	4c 8b cf             	mov    %rdi,%r9
1800418cd:	44 8b 84 d1 f0 de 14 	mov    0x14def0(%rcx,%rdx,8),%r8d
1800418d4:	00
1800418d5:	48 8b 94 d1 f8 de 14 	mov    0x14def8(%rcx,%rdx,8),%rdx
1800418dc:	00
1800418dd:	49 8b cf             	mov    %r15,%rcx
1800418e0:	e8 4b 5f 00 00       	call   0x180047830
1800418e5:	66 89 5f 40          	mov    %bx,0x40(%rdi)
1800418e9:	40 80 fd 0b          	cmp    $0xb,%bpl
1800418ed:	73 05                	jae    0x1800418f4
1800418ef:	48 c1 67 48 1c       	shlq   $0x1c,0x48(%rdi)
1800418f4:	40 80 fd 07          	cmp    $0x7,%bpl
1800418f8:	73 04                	jae    0x1800418fe
1800418fa:	44 89 77 70          	mov    %r14d,0x70(%rdi)
1800418fe:	40 80 fd 06          	cmp    $0x6,%bpl
180041902:	73 14                	jae    0x180041918
180041904:	8b 87 88 00 00 00    	mov    0x88(%rdi),%eax
18004190a:	33 d2                	xor    %edx,%edx
18004190c:	f7 b7 80 00 00 00    	divl   0x80(%rdi)
180041912:	89 87 88 00 00 00    	mov    %eax,0x88(%rdi)
180041918:	39 b7 b4 00 00 00    	cmp    %esi,0xb4(%rdi)
18004191e:	76 2d                	jbe    0x18004194d
180041920:	44 8b ce             	mov    %esi,%r9d
180041923:	48 8d 15 36 c3 10 00 	lea    0x10c336(%rip),%rdx        # 0x18014dc60
18004192a:	49 c1 e1 04          	shl    $0x4,%r9
18004192e:	41 b8 01 00 00 00    	mov    $0x1,%r8d
180041934:	4c 03 8f b8 00 00 00 	add    0xb8(%rdi),%r9
18004193b:	49 8b cf             	mov    %r15,%rcx
18004193e:	e8 ed 5e 00 00       	call   0x180047830
180041943:	ff c6                	inc    %esi
180041945:	3b b7 b4 00 00 00    	cmp    0xb4(%rdi),%esi
18004194b:	72 d3                	jb     0x180041920
18004194d:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
180041952:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
180041957:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
18004195c:	48 83 c4 20          	add    $0x20,%rsp
180041960:	41 5f                	pop    %r15
180041962:	41 5e                	pop    %r14
180041964:	5f                   	pop    %rdi
180041965:	c3                   	ret
180041966:	cc                   	int3
180041967:	cc                   	int3
180041968:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18004196d:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
180041972:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
180041977:	57                   	push   %rdi
180041978:	48 83 ec 20          	sub    $0x20,%rsp
18004197c:	0f b6 79 18          	movzbl 0x18(%rcx),%edi
180041980:	48 8b d9             	mov    %rcx,%rbx
180041983:	40 80 ff 06          	cmp    $0x6,%dil
180041987:	73 13                	jae    0x18004199c
180041989:	8b 81 88 00 00 00    	mov    0x88(%rcx),%eax
18004198f:	0f af 81 80 00 00 00 	imul   0x80(%rcx),%eax
180041996:	89 81 88 00 00 00    	mov    %eax,0x88(%rcx)
18004199c:	40 80 ff 0b          	cmp    $0xb,%dil
1800419a0:	73 05                	jae    0x1800419a7
1800419a2:	48 c1 69 48 1c       	shrq   $0x1c,0x48(%rcx)
1800419a7:	48 8d 05 42 c5 10 00 	lea    0x10c542(%rip),%rax        # 0x18014def0
1800419ae:	48 8b cf             	mov    %rdi,%rcx
1800419b1:	48 03 c9             	add    %rcx,%rcx
1800419b4:	4c 8b c3             	mov    %rbx,%r8
1800419b7:	8b 14 c8             	mov    (%rax,%rcx,8),%edx
1800419ba:	48 8b 4c c8 08       	mov    0x8(%rax,%rcx,8),%rcx
1800419bf:	e8 0c e7 00 00       	call   0x1800500d0
1800419c4:	0f b7 f0             	movzwl %ax,%esi
1800419c7:	40 80 ff 06          	cmp    $0x6,%dil
1800419cb:	73 14                	jae    0x1800419e1
1800419cd:	8b 83 88 00 00 00    	mov    0x88(%rbx),%eax
1800419d3:	33 d2                	xor    %edx,%edx
1800419d5:	f7 b3 80 00 00 00    	divl   0x80(%rbx)
1800419db:	89 83 88 00 00 00    	mov    %eax,0x88(%rbx)
1800419e1:	40 80 ff 0b          	cmp    $0xb,%dil
1800419e5:	73 05                	jae    0x1800419ec
1800419e7:	48 c1 63 48 1c       	shlq   $0x1c,0x48(%rbx)
1800419ec:	8b 83 b4 00 00 00    	mov    0xb4(%rbx),%eax
1800419f2:	33 ff                	xor    %edi,%edi
1800419f4:	85 c0                	test   %eax,%eax
1800419f6:	74 32                	je     0x180041a2a
1800419f8:	48 8b ab b8 00 00 00 	mov    0xb8(%rbx),%rbp
1800419ff:	8b d8                	mov    %eax,%ebx
180041a01:	4c 8b c7             	mov    %rdi,%r8
180041a04:	48 8d 0d 55 c2 10 00 	lea    0x10c255(%rip),%rcx        # 0x18014dc60
180041a0b:	49 c1 e0 04          	shl    $0x4,%r8
180041a0f:	ba 01 00 00 00       	mov    $0x1,%edx
180041a14:	4c 03 c5             	add    %rbp,%r8
180041a17:	e8 b4 e6 00 00       	call   0x1800500d0
180041a1c:	0f b7 c8             	movzwl %ax,%ecx
180041a1f:	48 ff c7             	inc    %rdi
180041a22:	03 f1                	add    %ecx,%esi
180041a24:	48 83 eb 01          	sub    $0x1,%rbx
180041a28:	75 d7                	jne    0x180041a01
180041a2a:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180041a2f:	8b c6                	mov    %esi,%eax
180041a31:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
180041a36:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
180041a3b:	48 83 c4 20          	add    $0x20,%rsp
180041a3f:	5f                   	pop    %rdi
180041a40:	c3                   	ret
180041a41:	cc                   	int3
180041a42:	cc                   	int3
180041a43:	cc                   	int3
180041a44:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180041a49:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
180041a4e:	57                   	push   %rdi
180041a4f:	48 83 ec 20          	sub    $0x20,%rsp
180041a53:	48 8b 41 10          	mov    0x10(%rcx),%rax
180041a57:	48 8b d9             	mov    %rcx,%rbx
180041a5a:	48 8b 48 10          	mov    0x10(%rax),%rcx
180041a5e:	48 8b 89 d8 00 00 00 	mov    0xd8(%rcx),%rcx
180041a65:	e8 06 cf 0f 00       	call   0x18013e970
180041a6a:	40 8a 7b 42          	mov    0x42(%rbx),%dil
180041a6e:	8d 57 ff             	lea    -0x1(%rdi),%edx
180041a71:	80 fa 07             	cmp    $0x7,%dl
180041a74:	0f 87 29 01 00 00    	ja     0x180041ba3
180041a7a:	48 8b 50 58          	mov    0x58(%rax),%rdx
180041a7e:	48 8d 4b 58          	lea    0x58(%rbx),%rcx
180041a82:	45 33 c0             	xor    %r8d,%r8d
180041a85:	e8 d6 e8 00 00       	call   0x180050360
180041a8a:	33 f6                	xor    %esi,%esi
180041a8c:	8b c8                	mov    %eax,%ecx
180041a8e:	85 c0                	test   %eax,%eax
180041a90:	0f 88 12 01 00 00    	js     0x180041ba8
180041a96:	39 b3 b4 00 00 00    	cmp    %esi,0xb4(%rbx)
180041a9c:	74 0d                	je     0x180041aab
180041a9e:	48 39 b3 b8 00 00 00 	cmp    %rsi,0xb8(%rbx)
180041aa5:	0f 84 f8 00 00 00    	je     0x180041ba3
180041aab:	40 80 ff 01          	cmp    $0x1,%dil
180041aaf:	74 15                	je     0x180041ac6
180041ab1:	48 8d 4b 78          	lea    0x78(%rbx),%rcx
180041ab5:	33 d2                	xor    %edx,%edx
180041ab7:	e8 ec e6 00 00       	call   0x1800501a8
180041abc:	8b c8                	mov    %eax,%ecx
180041abe:	85 c0                	test   %eax,%eax
180041ac0:	0f 88 e2 00 00 00    	js     0x180041ba8
180041ac6:	48 8b 8b 90 00 00 00 	mov    0x90(%rbx),%rcx
180041acd:	48 8d 41 ff          	lea    -0x1(%rcx),%rax
180041ad1:	48 3d fe ff ff 01    	cmp    $0x1fffffe,%rax
180041ad7:	0f 86 bf 00 00 00    	jbe    0x180041b9c
180041add:	48 83 f9 ff          	cmp    $0xffffffffffffffff,%rcx
180041ae1:	0f 84 b5 00 00 00    	je     0x180041b9c
180041ae7:	48 83 bb 98 00 00 00 	cmpq   $0xffffffffffffffff,0x98(%rbx)
180041aee:	ff
180041aef:	b9 bb 00 00 c0       	mov    $0xc00000bb,%ecx
180041af4:	0f 45 ce             	cmovne %esi,%ecx
180041af7:	0f 84 ab 00 00 00    	je     0x180041ba8
180041afd:	83 7b 78 03          	cmpl   $0x3,0x78(%rbx)
180041b01:	8b 8b 88 00 00 00    	mov    0x88(%rbx),%ecx
180041b07:	75 10                	jne    0x180041b19
180041b09:	b8 01 00 00 00       	mov    $0x1,%eax
180041b0e:	2b 83 84 00 00 00    	sub    0x84(%rbx),%eax
180041b14:	2b 43 7c             	sub    0x7c(%rbx),%eax
180041b17:	03 c8                	add    %eax,%ecx
180041b19:	8b c1                	mov    %ecx,%eax
180041b1b:	bf 40 00 00 00       	mov    $0x40,%edi