180052627:	56                   	push   %rsi
180052628:	57                   	push   %rdi
180052629:	41 56                	push   %r14
18005262b:	48 83 ec 40          	sub    $0x40,%rsp
18005262f:	83 60 20 00          	andl   $0x0,0x20(%rax)
180052633:	48 8b da             	mov    %rdx,%rbx
180052636:	33 d2                	xor    %edx,%edx
180052638:	c6 40 08 00          	movb   $0x0,0x8(%rax)
18005263c:	41 21 51 04          	and    %edx,0x4(%r9)
180052640:	49 8b e9             	mov    %r9,%rbp
180052643:	48 8b 41 40          	mov    0x40(%rcx),%rax
180052647:	4c 8b f1             	mov    %rcx,%r14
18005264a:	48 85 c0             	test   %rax,%rax
18005264d:	0f 84 b6 00 00 00    	je     0x180052709
180052653:	48 39 50 28          	cmp    %rdx,0x28(%rax)
180052657:	0f 84 ac 00 00 00    	je     0x180052709
18005265d:	41 8b f8             	mov    %r8d,%edi
180052660:	48 03 fb             	add    %rbx,%rdi
180052663:	e9 86 00 00 00       	jmp    0x1800526ee
180052668:	41 8a 4e 2a          	mov    0x2a(%r14),%cl
18005266c:	ba 01 00 00 00       	mov    $0x1,%edx
180052671:	48 d3 e2             	shl    %cl,%rdx
180052674:	8d 42 ff             	lea    -0x1(%rdx),%eax
180052677:	23 c3                	and    %ebx,%eax
180052679:	2b d0                	sub    %eax,%edx
18005267b:	48 8b c7             	mov    %rdi,%rax
18005267e:	48 2b c3             	sub    %rbx,%rax
180052681:	8b f2                	mov    %edx,%esi
180052683:	48 3b c6             	cmp    %rsi,%rax
180052686:	73 04                	jae    0x18005268c
180052688:	8b f7                	mov    %edi,%esi
18005268a:	2b f3                	sub    %ebx,%esi
18005268c:	49 8b 06             	mov    (%r14),%rax
18005268f:	4c 8d 44 24 78       	lea    0x78(%rsp),%r8
180052694:	48 8b d3             	mov    %rbx,%rdx
180052697:	49 8b ce             	mov    %r14,%rcx
18005269a:	48 8b 80 80 00 00 00 	mov    0x80(%rax),%rax
1800526a1:	ff d0                	call   *%rax
1800526a3:	0f 1f 00             	nopl   (%rax)
1800526a6:	41 8a 4e 2a          	mov    0x2a(%r14),%cl
1800526aa:	4c 8b c8             	mov    %rax,%r9
1800526ad:	49 d3 e9             	shr    %cl,%r9
1800526b0:	4c 8b c0             	mov    %rax,%r8
1800526b3:	48 8d 4c 24 60       	lea    0x60(%rsp),%rcx
1800526b8:	8b d6                	mov    %esi,%edx
1800526ba:	48 89 4c 24 30       	mov    %rcx,0x30(%rsp)
1800526bf:	48 8d 0d 62 00 00 00 	lea    0x62(%rip),%rcx        # 0x180052728
1800526c6:	48 89 4c 24 28       	mov    %rcx,0x28(%rsp)
1800526cb:	8b 4c 24 78          	mov    0x78(%rsp),%ecx
1800526cf:	89 4c 24 20          	mov    %ecx,0x20(%rsp)
1800526d3:	49 8b 4e 40          	mov    0x40(%r14),%rcx
1800526d7:	e8 b4 8a 00 00       	call   0x18005b190
1800526dc:	8b d0                	mov    %eax,%edx
1800526de:	85 c0                	test   %eax,%eax
1800526e0:	78 2f                	js     0x180052711
1800526e2:	80 7c 24 60 00       	cmpb   $0x0,0x60(%rsp)
1800526e7:	75 17                	jne    0x180052700
1800526e9:	8b ce                	mov    %esi,%ecx
1800526eb:	48 03 d9             	add    %rcx,%rbx
1800526ee:	48 3b df             	cmp    %rdi,%rbx
1800526f1:	0f 82 71 ff ff ff    	jb     0x180052668
1800526f7:	c7 45 04 01 00 00 00 	movl   $0x1,0x4(%rbp)
1800526fe:	eb 11                	jmp    0x180052711
180052700:	c7 45 04 04 00 00 00 	movl   $0x4,0x4(%rbp)
180052707:	eb 08                	jmp    0x180052711
180052709:	41 c7 41 04 01 00 00 	movl   $0x1,0x4(%r9)
180052710:	00
180052711:	48 8b 5c 24 68       	mov    0x68(%rsp),%rbx
180052716:	8b c2                	mov    %edx,%eax
180052718:	48 8b 6c 24 70       	mov    0x70(%rsp),%rbp
18005271d:	48 83 c4 40          	add    $0x40,%rsp
180052721:	41 5e                	pop    %r14
180052723:	5f                   	pop    %rdi
180052724:	5e                   	pop    %rsi
180052725:	c3                   	ret
180052726:	cc                   	int3
180052727:	cc                   	int3
180052728:	33 d2                	xor    %edx,%edx
18005272a:	83 f9 02             	cmp    $0x2,%ecx
18005272d:	75 1a                	jne    0x180052749
18005272f:	41 8b 40 20          	mov    0x20(%r8),%eax
180052733:	ff c8                	dec    %eax
180052735:	83 f8 01             	cmp    $0x1,%eax
180052738:	77 0a                	ja     0x180052744
18005273a:	48 8b 44 24 30       	mov    0x30(%rsp),%rax
18005273f:	c6 00 01             	movb   $0x1,(%rax)
180052742:	eb 05                	jmp    0x180052749
180052744:	ba 0d 00 00 c0       	mov    $0xc000000d,%edx
180052749:	8b c2                	mov    %edx,%eax
18005274b:	c3                   	ret
18005274c:	cc                   	int3
18005274d:	cc                   	int3
18005274e:	cc                   	int3
18005274f:	cc                   	int3
180052750:	48 83 ec 28          	sub    $0x28,%rsp
180052754:	e8 0f fe ff ff       	call   0x180052568
180052759:	48 83 c4 28          	add    $0x28,%rsp
18005275d:	c3                   	ret
18005275e:	cc                   	int3
18005275f:	cc                   	int3
180052760:	4c 8b d2             	mov    %rdx,%r10
180052763:	48 8b 42 18          	mov    0x18(%rdx),%rax
180052767:	4c 8b d9             	mov    %rcx,%r11
18005276a:	4c 3b 42 20          	cmp    0x20(%rdx),%r8
18005276e:	76 04                	jbe    0x180052774
180052770:	4c 89 42 20          	mov    %r8,0x20(%rdx)
180052774:	48 8b 52 10          	mov    0x10(%rdx),%rdx
180052778:	4c 3b c2             	cmp    %rdx,%r8
18005277b:	72 05                	jb     0x180052782
18005277d:	48 85 d2             	test   %rdx,%rdx
180052780:	75 04                	jne    0x180052786
180052782:	4d 89 42 10          	mov    %r8,0x10(%r10)
180052786:	48 8b d0             	mov    %rax,%rdx
180052789:	45 84 c9             	test   %r9b,%r9b
18005278c:	74 11                	je     0x18005279f
18005278e:	4c 3b c0             	cmp    %rax,%r8
180052791:	72 05                	jb     0x180052798
180052793:	48 85 c0             	test   %rax,%rax
180052796:	75 07                	jne    0x18005279f
180052798:	4d 89 42 18          	mov    %r8,0x18(%r10)
18005279c:	49 8b d0             	mov    %r8,%rdx
18005279f:	48 85 d2             	test   %rdx,%rdx
1800527a2:	75 4d                	jne    0x1800527f1
1800527a4:	49 8d 42 30          	lea    0x30(%r10),%rax
1800527a8:	48 8b 10             	mov    (%rax),%rdx
1800527ab:	48 39 42 08          	cmp    %rax,0x8(%rdx)
1800527af:	0f 85 ea 00 00 00    	jne    0x18005289f
1800527b5:	48 8b 48 08          	mov    0x8(%rax),%rcx
1800527b9:	48 39 01             	cmp    %rax,(%rcx)
1800527bc:	0f 85 dd 00 00 00    	jne    0x18005289f
1800527c2:	48 89 11             	mov    %rdx,(%rcx)
1800527c5:	48 89 4a 08          	mov    %rcx,0x8(%rdx)
1800527c9:	49 8b 4b 40          	mov    0x40(%r11),%rcx
1800527cd:	48 81 c1 08 01 00 00 	add    $0x108,%rcx
1800527d4:	48 8b 51 08          	mov    0x8(%rcx),%rdx
1800527d8:	48 39 0a             	cmp    %rcx,(%rdx)
1800527db:	0f 85 be 00 00 00    	jne    0x18005289f
1800527e1:	48 89 08             	mov    %rcx,(%rax)
1800527e4:	48 89 50 08          	mov    %rdx,0x8(%rax)
1800527e8:	48 89 02             	mov    %rax,(%rdx)
1800527eb:	48 89 41 08          	mov    %rax,0x8(%rcx)
1800527ef:	c3                   	ret
1800527f0:	cc                   	int3
1800527f1:	48 3b c2             	cmp    %rdx,%rax
1800527f4:	74 f9                	je     0x1800527ef
1800527f6:	80 7c 24 28 00       	cmpb   $0x0,0x28(%rsp)
1800527fb:	48 8b 41 40          	mov    0x40(%rcx),%rax
1800527ff:	48 8d 88 f8 00 00 00 	lea    0xf8(%rax),%rcx
180052806:	74 49                	je     0x180052851
180052808:	48 8b 01             	mov    (%rcx),%rax
18005280b:	eb 09                	jmp    0x180052816
18005280d:	48 39 50 e8          	cmp    %rdx,-0x18(%rax)
180052811:	77 08                	ja     0x18005281b
180052813:	48 8b 00             	mov    (%rax),%rax
180052816:	48 3b c1             	cmp    %rcx,%rax
180052819:	75 f2                	jne    0x18005280d
18005281b:	49 8d 4a 30          	lea    0x30(%r10),%rcx
18005281f:	4c 8b 01             	mov    (%rcx),%r8
180052822:	49 39 48 08          	cmp    %rcx,0x8(%r8)
180052826:	75 77                	jne    0x18005289f
180052828:	48 8b 51 08          	mov    0x8(%rcx),%rdx
18005282c:	48 39 0a             	cmp    %rcx,(%rdx)
18005282f:	75 6e                	jne    0x18005289f
180052831:	4c 89 02             	mov    %r8,(%rdx)
180052834:	49 89 50 08          	mov    %rdx,0x8(%r8)
180052838:	48 8b 50 08          	mov    0x8(%rax),%rdx
18005283c:	48 39 02             	cmp    %rax,(%rdx)
18005283f:	75 5e                	jne    0x18005289f
180052841:	48 89 01             	mov    %rax,(%rcx)
180052844:	48 89 51 08          	mov    %rdx,0x8(%rcx)
180052848:	48 89 0a             	mov    %rcx,(%rdx)
18005284b:	48 89 48 08          	mov    %rcx,0x8(%rax)
18005284f:	c3                   	ret
180052850:	cc                   	int3
180052851:	48 8b 80 00 01 00 00 	mov    0x100(%rax),%rax
180052858:	eb 0a                	jmp    0x180052864
18005285a:	48 39 50 e8          	cmp    %rdx,-0x18(%rax)
18005285e:	72 09                	jb     0x180052869
180052860:	48 8b 40 08          	mov    0x8(%rax),%rax
180052864:	48 3b c1             	cmp    %rcx,%rax
180052867:	75 f1                	jne    0x18005285a
180052869:	49 8d 4a 30          	lea    0x30(%r10),%rcx
18005286d:	4c 8b 01             	mov    (%rcx),%r8
180052870:	49 39 48 08          	cmp    %rcx,0x8(%r8)
180052874:	75 29                	jne    0x18005289f
180052876:	48 8b 51 08          	mov    0x8(%rcx),%rdx
18005287a:	48 39 0a             	cmp    %rcx,(%rdx)
18005287d:	75 20                	jne    0x18005289f
18005287f:	4c 89 02             	mov    %r8,(%rdx)
180052882:	49 89 50 08          	mov    %rdx,0x8(%r8)
180052886:	48 8b 10             	mov    (%rax),%rdx
180052889:	48 39 42 08          	cmp    %rax,0x8(%rdx)
18005288d:	75 10                	jne    0x18005289f
18005288f:	48 89 11             	mov    %rdx,(%rcx)
180052892:	48 89 41 08          	mov    %rax,0x8(%rcx)
180052896:	48 89 4a 08          	mov    %rcx,0x8(%rdx)
18005289a:	48 89 08             	mov    %rcx,(%rax)
18005289d:	c3                   	ret
18005289e:	cc                   	int3
18005289f:	b9 03 00 00 00       	mov    $0x3,%ecx
1800528a4:	cd 29                	int    $0x29
1800528a6:	cc                   	int3
1800528a7:	cc                   	int3
1800528a8:	48 89 5c 24 18       	mov    %rbx,0x18(%rsp)
1800528ad:	44 88 4c 24 20       	mov    %r9b,0x20(%rsp)
1800528b2:	55                   	push   %rbp
1800528b3:	56                   	push   %rsi
1800528b4:	57                   	push   %rdi
1800528b5:	41 54                	push   %r12
1800528b7:	41 55                	push   %r13
1800528b9:	41 56                	push   %r14
1800528bb:	41 57                	push   %r15
1800528bd:	48 83 ec 40          	sub    $0x40,%rsp
1800528c1:	48 8b 05 80 c3 0f 00 	mov    0xfc380(%rip),%rax        # 0x18014ec48
1800528c8:	4c 8b e9             	mov    %rcx,%r13
1800528cb:	48 8b 5a 18          	mov    0x18(%rdx),%rbx
1800528cf:	33 ed                	xor    %ebp,%ebp
1800528d1:	48 89 42 10          	mov    %rax,0x10(%rdx)
1800528d5:	49 8b f8             	mov    %r8,%rdi
1800528d8:	48 89 42 18          	mov    %rax,0x18(%rdx)
1800528dc:	48 8b f2             	mov    %rdx,%rsi
1800528df:	48 8b 49 40          	mov    0x40(%rcx),%rcx
1800528e3:	41 b4 01             	mov    $0x1,%r12b
1800528e6:	39 69 08             	cmp    %ebp,0x8(%rcx)
1800528e9:	0f 86 02 02 00 00    	jbe    0x180052af1
1800528ef:	44 8b fd             	mov    %ebp,%r15d
1800528f2:	49 c1 e7 04          	shl    $0x4,%r15
1800528f6:	4c 03 7e 08          	add    0x8(%rsi),%r15
1800528fa:	4d 8b 37             	mov    (%r15),%r14
1800528fd:	e9 40 01 00 00       	jmp    0x180052a42
180052902:	4d 8b de             	mov    %r14,%r11
180052905:	4d 8b 36             	mov    (%r14),%r14
180052908:	4d 8b 43 30          	mov    0x30(%r11),%r8
18005290c:	49 8b c0             	mov    %r8,%rax
18005290f:	49 8b d0             	mov    %r8,%rdx
180052912:	4c 3b c7             	cmp    %rdi,%r8
180052915:	0f 83 ea 00 00 00    	jae    0x180052a05
18005291b:	45 84 c9             	test   %r9b,%r9b
18005291e:	74 2b                	je     0x18005294b
180052920:	4d 39 5e 08          	cmp    %r11,0x8(%r14)
180052924:	0f 85 c0 01 00 00    	jne    0x180052aea
18005292a:	49 8b 43 08          	mov    0x8(%r11),%rax
18005292e:	4c 39 18             	cmp    %r11,(%rax)
180052931:	0f 85 b3 01 00 00    	jne    0x180052aea
180052937:	4c 89 30             	mov    %r14,(%rax)
18005293a:	49 8b cb             	mov    %r11,%rcx
18005293d:	49 89 46 08          	mov    %rax,0x8(%r14)
180052941:	e8 72 ed 00 00       	call   0x1800616b8
180052946:	e9 ef 00 00 00       	jmp    0x180052a3a
18005294b:	41 83 7b 20 02       	cmpl   $0x2,0x20(%r11)
180052950:	0f 84 af 00 00 00    	je     0x180052a05
180052956:	45 8b 53 18          	mov    0x18(%r11),%r10d
18005295a:	49 8b 45 08          	mov    0x8(%r13),%rax
18005295e:	49 8b 53 10          	mov    0x10(%r11),%rdx
180052962:	49 2b 53 28          	sub    0x28(%r11),%rdx
180052966:	45 8b 4b 38          	mov    0x38(%r11),%r9d
18005296a:	4c 8b e2             	mov    %rdx,%r12
18005296d:	48 8b 80 50 01 00 00 	mov    0x150(%rax),%rax
180052974:	48 89 84 24 88 00 00 	mov    %rax,0x88(%rsp)
18005297b:	00
18005297c:	44 89 94 24 80 00 00 	mov    %r10d,0x80(%rsp)
180052983:	00
180052984:	48 8b 48 50          	mov    0x50(%rax),%rcx
180052988:	41 8b c2             	mov    %r10d,%eax
18005298b:	ff 41 10             	incl   0x10(%rcx)
18005298e:	48 01 41 40          	add    %rax,0x40(%rcx)
180052992:	48 29 41 48          	sub    %rax,0x48(%rcx)
180052996:	48 85 d2             	test   %rdx,%rdx
180052999:	74 04                	je     0x18005299f
18005299b:	4e 8d 24 0a          	lea    (%rdx,%r9,1),%r12
18005299f:	4c 8b 94 24 88 00 00 	mov    0x88(%rsp),%r10
1800529a6:	00
1800529a7:	41 03 c1             	add    %r9d,%eax
1800529aa:	c7 44 24 28 06 00 00 	movl   $0x6,0x28(%rsp)
1800529b1:	00
1800529b2:	48 85 d2             	test   %rdx,%rdx
1800529b5:	0f 45 84 24 80 00 00 	cmovne 0x80(%rsp),%eax
1800529bc:	00
1800529bd:	33 d2                	xor    %edx,%edx
1800529bf:	4d 8b 52 08          	mov    0x8(%r10),%r10
1800529c3:	41 8b 4a 7c          	mov    0x7c(%r10),%ecx
1800529c7:	f7 f1                	div    %ecx
1800529c9:	33 d2                	xor    %edx,%edx
1800529cb:	44 8b c8             	mov    %eax,%r9d
1800529ce:	49 8b c4             	mov    %r12,%rax
1800529d1:	48 f7 f1             	div    %rcx
1800529d4:	41 8b c8             	mov    %r8d,%ecx
1800529d7:	49 8d 52 18          	lea    0x18(%r10),%rdx
1800529db:	48 03 c1             	add    %rcx,%rax
1800529de:	44 89 4c 24 20       	mov    %r9d,0x20(%rsp)
1800529e3:	4c 8b c8             	mov    %rax,%r9
1800529e6:	45 33 c0             	xor    %r8d,%r8d
1800529e9:	b9 37 08 00 00       	mov    $0x837,%ecx
1800529ee:	e8 85 41 ff ff       	call   0x180046b78
1800529f3:	49 8b c3             	mov    %r11,%rax
1800529f6:	41 c7 43 20 02 00 00 	movl   $0x2,0x20(%r11)
1800529fd:	00
1800529fe:	48 8b 40 30          	mov    0x30(%rax),%rax
180052a02:	48 8b d0             	mov    %rax,%rdx
180052a05:	48 8b 4e 10          	mov    0x10(%rsi),%rcx
180052a09:	48 3b c1             	cmp    %rcx,%rax
180052a0c:	72 08                	jb     0x180052a16
180052a0e:	48 8b c2             	mov    %rdx,%rax
180052a11:	48 85 c9             	test   %rcx,%rcx
180052a14:	75 04                	jne    0x180052a1a
180052a16:	48 89 46 10          	mov    %rax,0x10(%rsi)
180052a1a:	41 83 7b 20 01       	cmpl   $0x1,0x20(%r11)
180052a1f:	75 16                	jne    0x180052a37
180052a21:	49 8b 4b 30          	mov    0x30(%r11),%rcx
180052a25:	48 8b 46 18          	mov    0x18(%rsi),%rax
180052a29:	48 3b c8             	cmp    %rax,%rcx
180052a2c:	72 05                	jb     0x180052a33
180052a2e:	48 85 c0             	test   %rax,%rax
180052a31:	75 04                	jne    0x180052a37
180052a33:	48 89 4e 18          	mov    %rcx,0x18(%rsi)
180052a37:	45 32 e4             	xor    %r12b,%r12b
180052a3a:	44 8a 8c 24 98 00 00 	mov    0x98(%rsp),%r9b
180052a41:	00
180052a42:	4d 3b f7             	cmp    %r15,%r14
180052a45:	0f 85 b7 fe ff ff    	jne    0x180052902
180052a4b:	49 8b 4d 40          	mov    0x40(%r13),%rcx
180052a4f:	ff c5                	inc    %ebp
180052a51:	3b 69 08             	cmp    0x8(%rcx),%ebp
180052a54:	0f 82 95 fe ff ff    	jb     0x1800528ef
180052a5a:	45 84 e4             	test   %r12b,%r12b
180052a5d:	0f 85 8e 00 00 00    	jne    0x180052af1
180052a63:	48 8b 56 18          	mov    0x18(%rsi),%rdx
180052a67:	48 85 d2             	test   %rdx,%rdx
180052a6a:	75 29                	jne    0x180052a95
180052a6c:	48 83 c6 30          	add    $0x30,%rsi
180052a70:	48 8b 0e             	mov    (%rsi),%rcx
180052a73:	48 39 71 08          	cmp    %rsi,0x8(%rcx)
180052a77:	75 71                	jne    0x180052aea
180052a79:	48 8b 46 08          	mov    0x8(%rsi),%rax
180052a7d:	48 39 30             	cmp    %rsi,(%rax)
180052a80:	75 68                	jne    0x180052aea
180052a82:	48 89 08             	mov    %rcx,(%rax)
180052a85:	48 89 41 08          	mov    %rax,0x8(%rcx)
180052a89:	49 8b 45 40          	mov    0x40(%r13),%rax
180052a8d:	48 05 08 01 00 00    	add    $0x108,%rax
180052a93:	eb 3c                	jmp    0x180052ad1
180052a95:	48 3b da             	cmp    %rdx,%rbx
180052a98:	74 5f                	je     0x180052af9
180052a9a:	48 81 c1 f8 00 00 00 	add    $0xf8,%rcx
180052aa1:	48 8b 01             	mov    (%rcx),%rax
180052aa4:	eb 09                	jmp    0x180052aaf
180052aa6:	48 39 50 e8          	cmp    %rdx,-0x18(%rax)
180052aaa:	77 08                	ja     0x180052ab4
180052aac:	48 8b 00             	mov    (%rax),%rax
180052aaf:	48 3b c1             	cmp    %rcx,%rax