180109352:	89 43 28             	mov    %eax,0x28(%rbx)
180109355:	41 8b 10             	mov    (%r8),%edx
180109358:	e8 9f e4 ff ff       	call   0x1801077fc
18010935d:	8b 47 04             	mov    0x4(%rdi),%eax
180109360:	89 43 2c             	mov    %eax,0x2c(%rbx)
180109363:	33 c0                	xor    %eax,%eax
180109365:	eb 05                	jmp    0x18010936c
180109367:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
18010936c:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180109371:	48 83 c4 20          	add    $0x20,%rsp
180109375:	5f                   	pop    %rdi
180109376:	c3                   	ret
180109377:	cc                   	int3
180109378:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18010937d:	4c 89 4c 24 20       	mov    %r9,0x20(%rsp)
180109382:	4c 89 44 24 18       	mov    %r8,0x18(%rsp)
180109387:	55                   	push   %rbp
180109388:	56                   	push   %rsi
180109389:	57                   	push   %rdi
18010938a:	41 54                	push   %r12
18010938c:	41 55                	push   %r13
18010938e:	41 56                	push   %r14
180109390:	41 57                	push   %r15
180109392:	48 8b ec             	mov    %rsp,%rbp
180109395:	48 83 ec 50          	sub    $0x50,%rsp
180109399:	45 33 ff             	xor    %r15d,%r15d
18010939c:	45 33 f6             	xor    %r14d,%r14d
18010939f:	33 db                	xor    %ebx,%ebx
1801093a1:	4c 89 7d e8          	mov    %r15,-0x18(%rbp)
1801093a5:	4c 89 75 f0          	mov    %r14,-0x10(%rbp)
1801093a9:	49 8b c1             	mov    %r9,%rax
1801093ac:	48 8b f2             	mov    %rdx,%rsi
1801093af:	4c 8b e9             	mov    %rcx,%r13
1801093b2:	48 85 d2             	test   %rdx,%rdx
1801093b5:	0f 84 d9 01 00 00    	je     0x180109594
1801093bb:	48 85 c0             	test   %rax,%rax
1801093be:	0f 84 d0 01 00 00    	je     0x180109594
1801093c4:	8b 05 fe c5 08 00    	mov    0x8c5fe(%rip),%eax        # 0x1801959c8
1801093ca:	8b 0d f4 c5 08 00    	mov    0x8c5f4(%rip),%ecx        # 0x1801959c4
1801093d0:	89 45 48             	mov    %eax,0x48(%rbp)
1801093d3:	89 45 d8             	mov    %eax,-0x28(%rbp)
1801093d6:	89 4d d0             	mov    %ecx,-0x30(%rbp)
1801093d9:	89 4d dc             	mov    %ecx,-0x24(%rbp)
1801093dc:	41 39 45 00          	cmp    %eax,0x0(%r13)
1801093e0:	0f 87 ae 01 00 00    	ja     0x180109594
1801093e6:	48 8b 45 d8          	mov    -0x28(%rbp),%rax
1801093ea:	48 c1 e8 20          	shr    $0x20,%rax
1801093ee:	41 39 45 04          	cmp    %eax,0x4(%r13)
1801093f2:	0f 87 9c 01 00 00    	ja     0x180109594
1801093f8:	45 8d 67 48          	lea    0x48(%r15),%r12d
1801093fc:	41 8b cc             	mov    %r12d,%ecx
1801093ff:	e8 4c 0a f9 ff       	call   0x180099e50
180109404:	48 8b f8             	mov    %rax,%rdi
180109407:	48 85 c0             	test   %rax,%rax
18010940a:	75 0a                	jne    0x180109416
18010940c:	bb 17 00 00 c0       	mov    $0xc0000017,%ebx
180109411:	e9 73 01 00 00       	jmp    0x180109589
180109416:	4d 8b c4             	mov    %r12,%r8
180109419:	33 d2                	xor    %edx,%edx
18010941b:	48 8b cf             	mov    %rdi,%rcx
18010941e:	e8 5d c8 02 00       	call   0x180135c80
180109423:	48 8b 45 50          	mov    0x50(%rbp),%rax
180109427:	48 85 c0             	test   %rax,%rax
18010942a:	74 1a                	je     0x180109446
18010942c:	0f 10 00             	movups (%rax),%xmm0
18010942f:	4c 8d 67 28          	lea    0x28(%rdi),%r12
180109433:	41 0f 11 04 24       	movups %xmm0,(%r12)
180109438:	f2 0f 10 48 10       	movsd  0x10(%rax),%xmm1
18010943d:	f2 41 0f 11 4c 24 10 	movsd  %xmm1,0x10(%r12)
180109444:	eb 34                	jmp    0x18010947a
180109446:	48 8d 55 d8          	lea    -0x28(%rbp),%rdx
18010944a:	33 c9                	xor    %ecx,%ecx
18010944c:	e8 83 f0 ff ff       	call   0x1801084d4
180109451:	8b d8                	mov    %eax,%ebx
180109453:	85 c0                	test   %eax,%eax
180109455:	0f 88 26 01 00 00    	js     0x180109581
18010945b:	83 4f 2c ff          	orl    $0xffffffff,0x2c(%rdi)
18010945f:	4c 8d 67 28          	lea    0x28(%rdi),%r12
180109463:	45 21 34 24          	and    %r14d,(%r12)
180109467:	48 8b 4d d8          	mov    -0x28(%rbp),%rcx
18010946b:	44 21 77 3c          	and    %r14d,0x3c(%rdi)
18010946f:	48 89 4f 30          	mov    %rcx,0x30(%rdi)
180109473:	c7 47 38 12 00 00 00 	movl   $0x12,0x38(%rdi)
18010947a:	f6 45 60 01          	testb  $0x1,0x60(%rbp)
18010947e:	75 30                	jne    0x1801094b0
180109480:	4d 85 e4             	test   %r12,%r12
180109483:	0f 84 ce 00 00 00    	je     0x180109557
180109489:	4c 8d 45 d8          	lea    -0x28(%rbp),%r8
18010948d:	49 8b cc             	mov    %r12,%rcx
180109490:	48 8d 55 dc          	lea    -0x24(%rbp),%rdx
180109494:	e8 7f 06 00 00       	call   0x180109b18
180109499:	8b 45 dc             	mov    -0x24(%rbp),%eax
18010949c:	33 db                	xor    %ebx,%ebx
18010949e:	39 46 04             	cmp    %eax,0x4(%rsi)
1801094a1:	73 03                	jae    0x1801094a6
1801094a3:	89 46 04             	mov    %eax,0x4(%rsi)
1801094a6:	48 8b 45 d8          	mov    -0x28(%rbp),%rax
1801094aa:	39 06                	cmp    %eax,(%rsi)
1801094ac:	73 02                	jae    0x1801094b0
1801094ae:	89 06                	mov    %eax,(%rsi)
1801094b0:	41 8b 45 00          	mov    0x0(%r13),%eax
1801094b4:	03 06                	add    (%rsi),%eax
1801094b6:	3b 45 48             	cmp    0x48(%rbp),%eax
1801094b9:	0f 87 9f 00 00 00    	ja     0x18010955e
1801094bf:	8b 46 04             	mov    0x4(%rsi),%eax
1801094c2:	41 03 45 04          	add    0x4(%r13),%eax
1801094c6:	3b 45 d0             	cmp    -0x30(%rbp),%eax
1801094c9:	0f 87 8f 00 00 00    	ja     0x18010955e
1801094cf:	f6 45 60 02          	testb  $0x2,0x60(%rbp)
1801094d3:	75 27                	jne    0x1801094fc
1801094d5:	4c 8d 45 e8          	lea    -0x18(%rbp),%r8
1801094d9:	ba 20 00 00 00       	mov    $0x20,%edx
1801094de:	48 8b ce             	mov    %rsi,%rcx
1801094e1:	e8 e2 e4 ff ff       	call   0x1801079c8
1801094e6:	4c 8b 7d e8          	mov    -0x18(%rbp),%r15
1801094ea:	8b d8                	mov    %eax,%ebx
1801094ec:	85 c0                	test   %eax,%eax
1801094ee:	78 77                	js     0x180109567
1801094f0:	41 8b 14 24          	mov    (%r12),%edx
1801094f4:	49 8b cf             	mov    %r15,%rcx
1801094f7:	e8 00 e3 ff ff       	call   0x1801077fc
1801094fc:	f6 45 60 09          	testb  $0x9,0x60(%rbp)
180109500:	74 1f                	je     0x180109521
180109502:	4c 8d 45 f0          	lea    -0x10(%rbp),%r8
180109506:	ba 20 00 00 00       	mov    $0x20,%edx
18010950b:	48 8b ce             	mov    %rsi,%rcx
18010950e:	e8 b5 e4 ff ff       	call   0x1801079c8
180109513:	4c 8b 75 f0          	mov    -0x10(%rbp),%r14
180109517:	8b d8                	mov    %eax,%ebx
180109519:	85 c0                	test   %eax,%eax
18010951b:	78 4a                	js     0x180109567
18010951d:	4c 89 77 20          	mov    %r14,0x20(%rdi)
180109521:	f6 45 60 04          	testb  $0x4,0x60(%rbp)
180109525:	49 8b 45 00          	mov    0x0(%r13),%rax
180109529:	f2 0f 10 06          	movsd  (%rsi),%xmm0
18010952d:	48 89 07             	mov    %rax,(%rdi)
180109530:	8b 46 08             	mov    0x8(%rsi),%eax
180109533:	f2 0f 11 47 08       	movsd  %xmm0,0x8(%rdi)
180109538:	89 47 10             	mov    %eax,0x10(%rdi)
18010953b:	8b 45 68             	mov    0x68(%rbp),%eax
18010953e:	89 47 44             	mov    %eax,0x44(%rdi)
180109541:	4c 89 7f 18          	mov    %r15,0x18(%rdi)
180109545:	c7 47 40 01 00 00 00 	movl   $0x1,0x40(%rdi)
18010954c:	74 15                	je     0x180109563
18010954e:	c7 47 40 05 00 00 00 	movl   $0x5,0x40(%rdi)
180109555:	eb 0c                	jmp    0x180109563
180109557:	bb 0d 00 00 c0       	mov    $0xc000000d,%ebx
18010955c:	eb 23                	jmp    0x180109581
18010955e:	bb 0d 00 00 c0       	mov    $0xc000000d,%ebx
180109563:	85 db                	test   %ebx,%ebx
180109565:	79 22                	jns    0x180109589
180109567:	4d 85 ff             	test   %r15,%r15
18010956a:	74 08                	je     0x180109574
18010956c:	49 8b cf             	mov    %r15,%rcx
18010956f:	e8 cc e5 ff ff       	call   0x180107b40
180109574:	4d 85 f6             	test   %r14,%r14
180109577:	74 08                	je     0x180109581
180109579:	49 8b ce             	mov    %r14,%rcx
18010957c:	e8 bf e5 ff ff       	call   0x180107b40
180109581:	48 8b cf             	mov    %rdi,%rcx
180109584:	e8 73 0a f9 ff       	call   0x180099ffc
180109589:	48 8b 45 58          	mov    0x58(%rbp),%rax
18010958d:	48 89 38             	mov    %rdi,(%rax)
180109590:	8b c3                	mov    %ebx,%eax
180109592:	eb 05                	jmp    0x180109599
180109594:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
180109599:	48 8b 9c 24 90 00 00 	mov    0x90(%rsp),%rbx
1801095a0:	00
1801095a1:	48 83 c4 50          	add    $0x50,%rsp
1801095a5:	41 5f                	pop    %r15
1801095a7:	41 5e                	pop    %r14
1801095a9:	41 5d                	pop    %r13
1801095ab:	41 5c                	pop    %r12
1801095ad:	5f                   	pop    %rdi
1801095ae:	5e                   	pop    %rsi
1801095af:	5d                   	pop    %rbp
1801095b0:	c3                   	ret
1801095b1:	cc                   	int3
1801095b2:	cc                   	int3
1801095b3:	cc                   	int3
1801095b4:	48 85 c9             	test   %rcx,%rcx
1801095b7:	74 42                	je     0x1801095fb
1801095b9:	53                   	push   %rbx
1801095ba:	48 83 ec 20          	sub    $0x20,%rsp
1801095be:	f6 41 40 01          	testb  $0x1,0x40(%rcx)
1801095c2:	48 8b d9             	mov    %rcx,%rbx
1801095c5:	74 2f                	je     0x1801095f6
1801095c7:	48 8b 49 18          	mov    0x18(%rcx),%rcx
1801095cb:	48 85 c9             	test   %rcx,%rcx
1801095ce:	74 05                	je     0x1801095d5
1801095d0:	e8 6b e5 ff ff       	call   0x180107b40
1801095d5:	48 8b 4b 20          	mov    0x20(%rbx),%rcx
1801095d9:	48 85 c9             	test   %rcx,%rcx
1801095dc:	74 05                	je     0x1801095e3
1801095de:	e8 5d e5 ff ff       	call   0x180107b40
1801095e3:	f6 43 3c 01          	testb  $0x1,0x3c(%rbx)
1801095e7:	74 05                	je     0x1801095ee
1801095e9:	e8 46 04 00 00       	call   0x180109a34
1801095ee:	48 8b cb             	mov    %rbx,%rcx
1801095f1:	e8 06 0a f9 ff       	call   0x180099ffc
1801095f6:	48 83 c4 20          	add    $0x20,%rsp
1801095fa:	5b                   	pop    %rbx
1801095fb:	c3                   	ret
1801095fc:	cc                   	int3
1801095fd:	cc                   	int3
1801095fe:	cc                   	int3
1801095ff:	cc                   	int3
180109600:	48 8b c4             	mov    %rsp,%rax
180109603:	48 89 58 20          	mov    %rbx,0x20(%rax)
180109607:	44 89 40 18          	mov    %r8d,0x18(%rax)
18010960b:	48 89 50 10          	mov    %rdx,0x10(%rax)
18010960f:	55                   	push   %rbp
180109610:	56                   	push   %rsi
180109611:	57                   	push   %rdi
180109612:	41 54                	push   %r12
180109614:	41 55                	push   %r13
180109616:	41 56                	push   %r14
180109618:	41 57                	push   %r15
18010961a:	48 8d 68 a9          	lea    -0x57(%rax),%rbp
18010961e:	48 81 ec 90 00 00 00 	sub    $0x90,%rsp
180109625:	48 8b c2             	mov    %rdx,%rax
180109628:	4d 8b e9             	mov    %r9,%r13
18010962b:	33 d2                	xor    %edx,%edx
18010962d:	48 8b f9             	mov    %rcx,%rdi
180109630:	89 55 e7             	mov    %edx,-0x19(%rbp)
180109633:	48 89 55 f7          	mov    %rdx,-0x9(%rbp)
180109637:	48 85 c9             	test   %rcx,%rcx
18010963a:	0f 84 d3 03 00 00    	je     0x180109a13
180109640:	f6 41 40 01          	testb  $0x1,0x40(%rcx)
180109644:	0f 84 c9 03 00 00    	je     0x180109a13
18010964a:	48 85 c0             	test   %rax,%rax
18010964d:	75 10                	jne    0x18010965f
18010964f:	48 8b d1             	mov    %rcx,%rdx
180109652:	48 8b 49 18          	mov    0x18(%rcx),%rcx
180109656:	e8 e9 e0 ff ff       	call   0x180107744
18010965b:	8b d8                	mov    %eax,%ebx
18010965d:	eb 19                	jmp    0x180109678
18010965f:	45 8b e0             	mov    %r8d,%r12d
180109662:	41 83 e4 02          	and    $0x2,%r12d
180109666:	74 17                	je     0x18010967f
180109668:	48 39 55 7f          	cmp    %rdx,0x7f(%rbp)
18010966c:	74 05                	je     0x180109673
18010966e:	4d 85 ed             	test   %r13,%r13
180109671:	74 11                	je     0x180109684
180109673:	bb 0d 00 00 c0       	mov    $0xc000000d,%ebx
180109678:	8b c3                	mov    %ebx,%eax
18010967a:	e9 99 03 00 00       	jmp    0x180109a18
18010967f:	4d 85 ed             	test   %r13,%r13
180109682:	75 05                	jne    0x180109689
180109684:	39 51 44             	cmp    %edx,0x44(%rcx)
180109687:	75 ea                	jne    0x180109673
180109689:	49 83 ce ff          	or     $0xffffffffffffffff,%r14
18010968d:	49 ff c6             	inc    %r14
180109690:	66 42 39 14 70       	cmp    %dx,(%rax,%r14,2)
180109695:	75 f6                	jne    0x18010968d
180109697:	89 55 5f             	mov    %edx,0x5f(%rbp)
18010969a:	8b da                	mov    %edx,%ebx
18010969c:	8b f2                	mov    %edx,%esi
18010969e:	44 8b fa             	mov    %edx,%r15d
1801096a1:	45 85 f6             	test   %r14d,%r14d
1801096a4:	74 66                	je     0x18010970c
1801096a6:	48 83 c1 28          	add    $0x28,%rcx
1801096aa:	48 89 45 ff          	mov    %rax,-0x1(%rbp)
1801096ae:	33 d2                	xor    %edx,%edx
1801096b0:	4c 8d 45 df          	lea    -0x21(%rbp),%r8
1801096b4:	48 89 55 17          	mov    %rdx,0x17(%rbp)
1801096b8:	0f 57 c0             	xorps  %xmm0,%xmm0
1801096bb:	48 8d 55 07          	lea    0x7(%rbp),%rdx
1801096bf:	48 89 54 24 28       	mov    %rdx,0x28(%rsp)
1801096c4:	48 8b d1             	mov    %rcx,%rdx
1801096c7:	0f b7 08             	movzwl (%rax),%ecx
1801096ca:	0f 11 45 07          	movups %xmm0,0x7(%rbp)
1801096ce:	e8 9d 2d 00 00       	call   0x18010c470
1801096d3:	33 d2                	xor    %edx,%edx
1801096d5:	8b d8                	mov    %eax,%ebx
1801096d7:	85 c0                	test   %eax,%eax
1801096d9:	78 9d                	js     0x180109678
1801096db:	03 75 df             	add    -0x21(%rbp),%esi
1801096de:	45 85 e4             	test   %r12d,%r12d
1801096e1:	74 05                	je     0x1801096e8
1801096e3:	3b 77 08             	cmp    0x8(%rdi),%esi
1801096e6:	77 1a                	ja     0x180109702
1801096e8:	48 8b 45 ff          	mov    -0x1(%rbp),%rax
1801096ec:	41 ff c7             	inc    %r15d
1801096ef:	48 83 c0 02          	add    $0x2,%rax
1801096f3:	48 89 45 ff          	mov    %rax,-0x1(%rbp)
1801096f7:	45 3b fe             	cmp    %r14d,%r15d
1801096fa:	73 0e                	jae    0x18010970a
1801096fc:	48 8d 4f 28          	lea    0x28(%rdi),%rcx
180109700:	eb ac                	jmp    0x1801096ae
180109702:	41 8b df             	mov    %r15d,%ebx
180109705:	89 5d 5f             	mov    %ebx,0x5f(%rbp)
180109708:	eb 02                	jmp    0x18010970c
18010970a:	8b da                	mov    %edx,%ebx
18010970c:	4c 8d 7f 28          	lea    0x28(%rdi),%r15
180109710:	4d 85 ff             	test   %r15,%r15
180109713:	0f 84 5a ff ff ff    	je     0x180109673
180109719:	4c 8d 45 ff          	lea    -0x1(%rbp),%r8
18010971d:	49 8b cf             	mov    %r15,%rcx
180109720:	48 8d 55 03          	lea    0x3(%rbp),%rdx
180109724:	e8 ef 03 00 00       	call   0x180109b18
180109729:	8b 45 03             	mov    0x3(%rbp),%eax
18010972c:	3b 47 0c             	cmp    0xc(%rdi),%eax
18010972f:	89 75 07             	mov    %esi,0x7(%rbp)
180109732:	0f 47 47 0c          	cmova  0xc(%rdi),%eax
180109736:	89 45 0b             	mov    %eax,0xb(%rbp)
180109739:	89 75 0f             	mov    %esi,0xf(%rbp)
18010973c:	4d 85 ed             	test   %r13,%r13
18010973f:	75 09                	jne    0x18010974a
180109741:	8b 47 08             	mov    0x8(%rdi),%eax
180109744:	3b f0                	cmp    %eax,%esi
180109746:	76 0e                	jbe    0x180109756
180109748:	eb 09                	jmp    0x180109753
18010974a:	45 39 75 00          	cmp    %r14d,0x0(%r13)
18010974e:	75 06                	jne    0x180109756
180109750:	8d 46 04             	lea    0x4(%rsi),%eax
180109753:	89 45 07             	mov    %eax,0x7(%rbp)
180109756:	41 bb 20 00 00 00    	mov    $0x20,%r11d
18010975c:	85 db                	test   %ebx,%ebx
18010975e:	74 4d                	je     0x1801097ad
180109760:	4c 8b 45 67          	mov    0x67(%rbp),%r8
180109764:	8b d3                	mov    %ebx,%edx
180109766:	4c 8b 4d 7f          	mov    0x7f(%rbp),%r9
18010976a:	8b c3                	mov    %ebx,%eax
18010976c:	49 8d 0c 40          	lea    (%r8,%rax,2),%rcx
180109770:	49 89 09             	mov    %rcx,(%r9)
180109773:	66 44 39 19          	cmp    %r11w,(%rcx)
180109777:	77 13                	ja     0x18010978c
180109779:	0f b7 01             	movzwl (%rcx),%eax
18010977c:	49 ba 00 26 00 00 01 	movabs $0x100002600,%r10
180109783:	00 00 00
180109786:	49 0f a3 c2          	bt     %rax,%r10
18010978a:	72 0b                	jb     0x180109797
18010978c:	48 83 e9 02          	sub    $0x2,%rcx
180109790:	83 c2 ff             	add    $0xffffffff,%edx
180109793:	74 18                	je     0x1801097ad
180109795:	eb dc                	jmp    0x180109773
180109797:	8d 4a 01             	lea    0x1(%rdx),%ecx
18010979a:	89 55 5f             	mov    %edx,0x5f(%rbp)
18010979d:	41 8d 46 ff          	lea    -0x1(%r14),%eax
1801097a1:	3b d0                	cmp    %eax,%edx
1801097a3:	0f 43 ca             	cmovae %edx,%ecx
1801097a6:	49 8d 0c 48          	lea    (%r8,%rcx,2),%rcx
1801097aa:	49 89 09             	mov    %rcx,(%r9)
1801097ad:	4c 8d 45 f7          	lea    -0x9(%rbp),%r8
1801097b1:	41 8b d3             	mov    %r11d,%edx
1801097b4:	48 8d 4d 07          	lea    0x7(%rbp),%rcx
1801097b8:	e8 0b e2 ff ff       	call   0x1801079c8
1801097bd:	8b d8                	mov    %eax,%ebx
1801097bf:	85 c0                	test   %eax,%eax