18004132b:	48 89 70 18          	mov    %rsi,0x18(%rax)
18004132f:	48 89 78 20          	mov    %rdi,0x20(%rax)
180041333:	41 56                	push   %r14
180041335:	48 83 ec 20          	sub    $0x20,%rsp
180041339:	48 8b f9             	mov    %rcx,%rdi
18004133c:	45 33 f6             	xor    %r14d,%r14d
18004133f:	b9 50 01 00 00       	mov    $0x150,%ecx
180041344:	41 8b ee             	mov    %r14d,%ebp
180041347:	e8 c8 55 00 00       	call   0x180046914
18004134c:	48 8b d8             	mov    %rax,%rbx
18004134f:	48 85 c0             	test   %rax,%rax
180041352:	74 19                	je     0x18004136d
180041354:	4c 89 70 08          	mov    %r14,0x8(%rax)
180041358:	4c 89 70 10          	mov    %r14,0x10(%rax)
18004135c:	66 44 89 70 18       	mov    %r14w,0x18(%rax)
180041361:	48 8d 05 b8 1c 10 00 	lea    0x101cb8(%rip),%rax        # 0x180143020
180041368:	48 89 03             	mov    %rax,(%rbx)
18004136b:	eb 03                	jmp    0x180041370
18004136d:	49 8b de             	mov    %r14,%rbx
180041370:	48 85 db             	test   %rbx,%rbx
180041373:	0f 84 79 02 00 00    	je     0x1800415f2
180041379:	ba 02 00 00 00       	mov    $0x2,%edx
18004137e:	48 8b c3             	mov    %rbx,%rax
180041381:	48 8b cf             	mov    %rdi,%rcx
180041384:	44 8d 42 7e          	lea    0x7e(%rdx),%r8d
180041388:	0f 10 01             	movups (%rcx),%xmm0
18004138b:	0f 11 00             	movups %xmm0,(%rax)
18004138e:	0f 10 49 10          	movups 0x10(%rcx),%xmm1
180041392:	0f 11 48 10          	movups %xmm1,0x10(%rax)
180041396:	0f 10 41 20          	movups 0x20(%rcx),%xmm0
18004139a:	0f 11 40 20          	movups %xmm0,0x20(%rax)
18004139e:	0f 10 49 30          	movups 0x30(%rcx),%xmm1
1800413a2:	0f 11 48 30          	movups %xmm1,0x30(%rax)
1800413a6:	0f 10 41 40          	movups 0x40(%rcx),%xmm0
1800413aa:	0f 11 40 40          	movups %xmm0,0x40(%rax)
1800413ae:	0f 10 49 50          	movups 0x50(%rcx),%xmm1
1800413b2:	0f 11 48 50          	movups %xmm1,0x50(%rax)
1800413b6:	0f 10 41 60          	movups 0x60(%rcx),%xmm0
1800413ba:	0f 11 40 60          	movups %xmm0,0x60(%rax)
1800413be:	49 03 c0             	add    %r8,%rax
1800413c1:	0f 10 49 70          	movups 0x70(%rcx),%xmm1
1800413c5:	49 03 c8             	add    %r8,%rcx
1800413c8:	0f 11 48 f0          	movups %xmm1,-0x10(%rax)
1800413cc:	48 83 ea 01          	sub    $0x1,%rdx
1800413d0:	75 b6                	jne    0x180041388
1800413d2:	0f 10 01             	movups (%rcx),%xmm0
1800413d5:	4c 8d 43 30          	lea    0x30(%rbx),%r8
1800413d9:	0f 11 00             	movups %xmm0,(%rax)
1800413dc:	0f 10 49 10          	movups 0x10(%rcx),%xmm1
1800413e0:	0f 11 48 10          	movups %xmm1,0x10(%rax)
1800413e4:	0f 10 41 20          	movups 0x20(%rcx),%xmm0
1800413e8:	0f 11 40 20          	movups %xmm0,0x20(%rax)
1800413ec:	0f 10 49 30          	movups 0x30(%rcx),%xmm1
1800413f0:	0f 11 48 30          	movups %xmm1,0x30(%rax)
1800413f4:	0f 10 41 40          	movups 0x40(%rcx),%xmm0
1800413f8:	0f 11 40 40          	movups %xmm0,0x40(%rax)
1800413fc:	4d 89 30             	mov    %r14,(%r8)
1800413ff:	4c 89 73 38          	mov    %r14,0x38(%rbx)
180041403:	4c 89 b3 a0 00 00 00 	mov    %r14,0xa0(%rbx)
18004140a:	4c 89 b3 b8 00 00 00 	mov    %r14,0xb8(%rbx)
180041411:	4c 89 b3 c0 00 00 00 	mov    %r14,0xc0(%rbx)
180041418:	4c 89 b3 18 01 00 00 	mov    %r14,0x118(%rbx)
18004141f:	4c 89 b3 40 01 00 00 	mov    %r14,0x140(%rbx)
180041426:	48 8b 4f 30          	mov    0x30(%rdi),%rcx
18004142a:	48 85 c9             	test   %rcx,%rcx
18004142d:	74 12                	je     0x180041441
18004142f:	ba 00 01 00 00       	mov    $0x100,%edx
180041434:	e8 9f e8 ff ff       	call   0x18003fcd8
180041439:	85 c0                	test   %eax,%eax
18004143b:	0f 88 99 01 00 00    	js     0x1800415da
180041441:	48 8b 4f 38          	mov    0x38(%rdi),%rcx
180041445:	48 85 c9             	test   %rcx,%rcx
180041448:	74 16                	je     0x180041460
18004144a:	4c 8d 43 38          	lea    0x38(%rbx),%r8
18004144e:	ba 00 04 00 00       	mov    $0x400,%edx
180041453:	e8 80 e8 ff ff       	call   0x18003fcd8
180041458:	85 c0                	test   %eax,%eax
18004145a:	0f 88 7a 01 00 00    	js     0x1800415da
180041460:	4c 39 b7 a0 00 00 00 	cmp    %r14,0xa0(%rdi)
180041467:	74 30                	je     0x180041499
180041469:	0f b7 b3 f0 00 00 00 	movzwl 0xf0(%rbx),%esi
180041470:	8b ce                	mov    %esi,%ecx
180041472:	e8 9d 54 00 00       	call   0x180046914
180041477:	48 89 83 a0 00 00 00 	mov    %rax,0xa0(%rbx)
18004147e:	48 85 c0             	test   %rax,%rax
180041481:	0f 84 53 01 00 00    	je     0x1800415da
180041487:	48 8b 97 a0 00 00 00 	mov    0xa0(%rdi),%rdx
18004148e:	44 8b c6             	mov    %esi,%r8d
180041491:	48 8b c8             	mov    %rax,%rcx
180041494:	e8 27 45 0f 00       	call   0x1801359c0
180041499:	4c 39 b7 b8 00 00 00 	cmp    %r14,0xb8(%rdi)
1800414a0:	74 34                	je     0x1800414d6
1800414a2:	8b 83 b4 00 00 00    	mov    0xb4(%rbx),%eax
1800414a8:	c1 e0 04             	shl    $0x4,%eax
1800414ab:	8b c8                	mov    %eax,%ecx
1800414ad:	8b f0                	mov    %eax,%esi
1800414af:	e8 60 54 00 00       	call   0x180046914
1800414b4:	48 89 83 b8 00 00 00 	mov    %rax,0xb8(%rbx)
1800414bb:	48 85 c0             	test   %rax,%rax
1800414be:	0f 84 16 01 00 00    	je     0x1800415da
1800414c4:	48 8b 97 b8 00 00 00 	mov    0xb8(%rdi),%rdx
1800414cb:	44 8b c6             	mov    %esi,%r8d
1800414ce:	48 8b c8             	mov    %rax,%rcx
1800414d1:	e8 ea 44 0f 00       	call   0x1801359c0
1800414d6:	4c 39 b7 c0 00 00 00 	cmp    %r14,0xc0(%rdi)
1800414dd:	0f 84 80 00 00 00    	je     0x180041563
1800414e3:	be 40 00 00 00       	mov    $0x40,%esi
1800414e8:	8b ce                	mov    %esi,%ecx
1800414ea:	e8 25 54 00 00       	call   0x180046914
1800414ef:	48 85 c0             	test   %rax,%rax
1800414f2:	74 2b                	je     0x18004151f
1800414f4:	48 8d 48 08          	lea    0x8(%rax),%rcx
1800414f8:	4c 89 30             	mov    %r14,(%rax)
1800414fb:	48 89 49 08          	mov    %rcx,0x8(%rcx)
1800414ff:	48 89 09             	mov    %rcx,(%rcx)
180041502:	8d 4e c6             	lea    -0x3a(%rsi),%ecx
180041505:	89 48 28             	mov    %ecx,0x28(%rax)
180041508:	89 48 38             	mov    %ecx,0x38(%rax)
18004150b:	4c 89 70 18          	mov    %r14,0x18(%rax)
18004150f:	c7 40 20 01 00 00 00 	movl   $0x1,0x20(%rax)
180041516:	89 70 24             	mov    %esi,0x24(%rax)
180041519:	48 89 70 30          	mov    %rsi,0x30(%rax)
18004151d:	eb 03                	jmp    0x180041522
18004151f:	49 8b c6             	mov    %r14,%rax
180041522:	48 89 83 c0 00 00 00 	mov    %rax,0xc0(%rbx)
180041529:	48 85 c0             	test   %rax,%rax
18004152c:	0f 84 a8 00 00 00    	je     0x1800415da
180041532:	48 ba 00 00 00 00 00 	movabs $0x10000000000,%rdx
180041539:	01 00 00
18004153c:	48 8b c8             	mov    %rax,%rcx
18004153f:	e8 24 22 00 00       	call   0x180043768
180041544:	85 c0                	test   %eax,%eax
180041546:	0f 88 8e 00 00 00    	js     0x1800415da
18004154c:	48 8b 93 c0 00 00 00 	mov    0xc0(%rbx),%rdx
180041553:	48 8b 8f c0 00 00 00 	mov    0xc0(%rdi),%rcx
18004155a:	e8 61 27 00 00       	call   0x180043cc0
18004155f:	85 c0                	test   %eax,%eax
180041561:	78 77                	js     0x1800415da
180041563:	4c 39 b7 18 01 00 00 	cmp    %r14,0x118(%rdi)
18004156a:	74 30                	je     0x18004159c
18004156c:	8b 83 10 01 00 00    	mov    0x110(%rbx),%eax
180041572:	c1 e0 04             	shl    $0x4,%eax
180041575:	8b c8                	mov    %eax,%ecx
180041577:	8b f0                	mov    %eax,%esi
180041579:	e8 96 53 00 00       	call   0x180046914
18004157e:	48 89 83 18 01 00 00 	mov    %rax,0x118(%rbx)
180041585:	48 85 c0             	test   %rax,%rax
180041588:	74 50                	je     0x1800415da
18004158a:	48 8b 97 18 01 00 00 	mov    0x118(%rdi),%rdx
180041591:	44 8b c6             	mov    %esi,%r8d
180041594:	48 8b c8             	mov    %rax,%rcx
180041597:	e8 24 44 0f 00       	call   0x1801359c0
18004159c:	4c 39 b7 40 01 00 00 	cmp    %r14,0x140(%rdi)
1800415a3:	74 2f                	je     0x1800415d4
1800415a5:	48 8b 43 48          	mov    0x48(%rbx),%rax
1800415a9:	48 c1 e8 19          	shr    $0x19,%rax
1800415ad:	8b c8                	mov    %eax,%ecx
1800415af:	8b f0                	mov    %eax,%esi
1800415b1:	e8 5e 53 00 00       	call   0x180046914
1800415b6:	48 89 83 40 01 00 00 	mov    %rax,0x140(%rbx)
1800415bd:	48 85 c0             	test   %rax,%rax
1800415c0:	74 18                	je     0x1800415da
1800415c2:	48 8b 97 40 01 00 00 	mov    0x140(%rdi),%rdx
1800415c9:	44 8b c6             	mov    %esi,%r8d
1800415cc:	48 8b c8             	mov    %rax,%rcx
1800415cf:	e8 ec 43 0f 00       	call   0x1801359c0
1800415d4:	48 8b eb             	mov    %rbx,%rbp
1800415d7:	49 8b de             	mov    %r14,%rbx
1800415da:	48 85 db             	test   %rbx,%rbx
1800415dd:	74 13                	je     0x1800415f2
1800415df:	48 8b 03             	mov    (%rbx),%rax
1800415e2:	ba 01 00 00 00       	mov    $0x1,%edx
1800415e7:	48 8b cb             	mov    %rbx,%rcx
1800415ea:	48 8b 00             	mov    (%rax),%rax
1800415ed:	ff d0                	call   *%rax
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