1800523ec:	48 89 45 f0          	mov    %rax,-0x10(%rbp)
1800523f0:	4c 8b f9             	mov    %rcx,%r15
1800523f3:	4d 3b c8             	cmp    %r8,%r9
1800523f6:	0f 84 4b 01 00 00    	je     0x180052547
1800523fc:	8a 49 2a             	mov    0x2a(%rcx),%cl
1800523ff:	48 8b 42 78          	mov    0x78(%rdx),%rax
180052403:	48 d3 e8             	shr    %cl,%rax
180052406:	0f b6 c0             	movzbl %al,%eax
180052409:	48 8d 0c 40          	lea    (%rax,%rax,2),%rcx
18005240d:	49 8b 47 38          	mov    0x38(%r15),%rax
180052411:	48 8d 34 c8          	lea    (%rax,%rcx,8),%rsi
180052415:	4d 39 41 08          	cmp    %r8,0x8(%r9)
180052419:	0f 85 42 01 00 00    	jne    0x180052561
18005241f:	49 8b 40 08          	mov    0x8(%r8),%rax
180052423:	4c 39 00             	cmp    %r8,(%rax)
180052426:	0f 85 35 01 00 00    	jne    0x180052561
18005242c:	4c 89 08             	mov    %r9,(%rax)
18005242f:	49 89 41 08          	mov    %rax,0x8(%r9)
180052433:	49 8b 10             	mov    (%r8),%rdx
180052436:	48 3b d6             	cmp    %rsi,%rdx
180052439:	0f 84 c9 00 00 00    	je     0x180052508
18005243f:	48 8b 5d f8          	mov    -0x8(%rbp),%rbx
180052443:	45 0f b7 77 28       	movzwl 0x28(%r15),%r14d
180052448:	66 41 83 e6 04       	and    $0x4,%r14w
18005244d:	75 0f                	jne    0x18005245e
18005244f:	8b 87 84 00 00 00    	mov    0x84(%rdi),%eax
180052455:	39 42 c4             	cmp    %eax,-0x3c(%rdx)
180052458:	0f 85 9e 00 00 00    	jne    0x1800524fc
18005245e:	4c 8b 52 b8          	mov    -0x48(%rdx),%r10
180052462:	4c 8b 4f 78          	mov    0x78(%rdi),%r9
180052466:	4d 3b d1             	cmp    %r9,%r10
180052469:	76 14                	jbe    0x18005247f
18005246b:	8b 87 80 00 00 00    	mov    0x80(%rdi),%eax
180052471:	49 8b ca             	mov    %r10,%rcx
180052474:	49 2b c9             	sub    %r9,%rcx
180052477:	48 3b c8             	cmp    %rax,%rcx
18005247a:	0f 92 c0             	setb   %al
18005247d:	eb 0d                	jmp    0x18005248c
18005247f:	8b 42 c0             	mov    -0x40(%rdx),%eax
180052482:	4d 2b ca             	sub    %r10,%r9
180052485:	4c 3b c8             	cmp    %rax,%r9
180052488:	73 72                	jae    0x1800524fc
18005248a:	b0 01                	mov    $0x1,%al
18005248c:	84 c0                	test   %al,%al
18005248e:	74 6c                	je     0x1800524fc
180052490:	4c 8b 4a 08          	mov    0x8(%rdx),%r9
180052494:	eb 3f                	jmp    0x1800524d5
180052496:	66 45 85 f6          	test   %r14w,%r14w
18005249a:	75 09                	jne    0x1800524a5
18005249c:	8b 42 c4             	mov    -0x3c(%rdx),%eax
18005249f:	41 39 41 c4          	cmp    %eax,-0x3c(%r9)
1800524a3:	75 2c                	jne    0x1800524d1
1800524a5:	4d 8b 59 b8          	mov    -0x48(%r9),%r11
1800524a9:	4d 3b da             	cmp    %r10,%r11
1800524ac:	76 0e                	jbe    0x1800524bc
1800524ae:	8b 42 c0             	mov    -0x40(%rdx),%eax
1800524b1:	4d 2b da             	sub    %r10,%r11
1800524b4:	4c 3b d8             	cmp    %rax,%r11
1800524b7:	0f 92 c0             	setb   %al
1800524ba:	eb 11                	jmp    0x1800524cd
1800524bc:	41 8b 41 c0          	mov    -0x40(%r9),%eax
1800524c0:	49 8b ca             	mov    %r10,%rcx
1800524c3:	49 2b cb             	sub    %r11,%rcx
1800524c6:	48 3b c8             	cmp    %rax,%rcx
1800524c9:	73 06                	jae    0x1800524d1
1800524cb:	b0 01                	mov    $0x1,%al
1800524cd:	84 c0                	test   %al,%al
1800524cf:	75 2b                	jne    0x1800524fc
1800524d1:	4d 8b 49 08          	mov    0x8(%r9),%r9
1800524d5:	4c 3b ce             	cmp    %rsi,%r9
1800524d8:	75 bc                	jne    0x180052496
1800524da:	48 8d 4d f0          	lea    -0x10(%rbp),%rcx
1800524de:	48 8d 42 f0          	lea    -0x10(%rdx),%rax
1800524e2:	48 39 0b             	cmp    %rcx,(%rbx)
1800524e5:	75 7a                	jne    0x180052561
1800524e7:	48 89 58 08          	mov    %rbx,0x8(%rax)
1800524eb:	48 8d 4d f0          	lea    -0x10(%rbp),%rcx
1800524ef:	48 89 08             	mov    %rcx,(%rax)
1800524f2:	48 89 03             	mov    %rax,(%rbx)
1800524f5:	48 8b d8             	mov    %rax,%rbx
1800524f8:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
1800524fc:	48 8b 12             	mov    (%rdx),%rdx
1800524ff:	48 3b d6             	cmp    %rsi,%rdx
180052502:	0f 85 3b ff ff ff    	jne    0x180052443
180052508:	4d 89 40 08          	mov    %r8,0x8(%r8)
18005250c:	4d 89 00             	mov    %r8,(%r8)
18005250f:	eb 29                	jmp    0x18005253a
180052511:	4c 8b 00             	mov    (%rax),%r8
180052514:	49 39 40 08          	cmp    %rax,0x8(%r8)
180052518:	75 47                	jne    0x180052561
18005251a:	48 8b 50 08          	mov    0x8(%rax),%rdx
18005251e:	48 39 02             	cmp    %rax,(%rdx)
180052521:	75 3e                	jne    0x180052561
180052523:	4c 89 02             	mov    %r8,(%rdx)
180052526:	49 89 50 08          	mov    %rdx,0x8(%r8)
18005252a:	48 8b 88 68 ff ff ff 	mov    -0x98(%rax),%rcx
180052531:	48 83 e9 28          	sub    $0x28,%rcx
180052535:	e8 7e 4c ff ff       	call   0x1800471b8
18005253a:	48 8b 45 f0          	mov    -0x10(%rbp),%rax
18005253e:	48 8d 4d f0          	lea    -0x10(%rbp),%rcx
180052542:	48 3b c1             	cmp    %rcx,%rax
180052545:	75 ca                	jne    0x180052511
180052547:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
18005254c:	48 8b 74 24 58       	mov    0x58(%rsp),%rsi
180052551:	48 8b 7c 24 60       	mov    0x60(%rsp),%rdi
180052556:	48 83 c4 30          	add    $0x30,%rsp
18005255a:	41 5f                	pop    %r15
18005255c:	41 5e                	pop    %r14
18005255e:	5d                   	pop    %rbp
18005255f:	c3                   	ret
180052560:	cc                   	int3
180052561:	b9 03 00 00 00       	mov    $0x3,%ecx
180052566:	cd 29                	int    $0x29
180052568:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18005256d:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
180052572:	48 89 7c 24 18       	mov    %rdi,0x18(%rsp)
180052577:	41 56                	push   %r14
180052579:	48 83 ec 20          	sub    $0x20,%rsp
18005257d:	48 8b 41 40          	mov    0x40(%rcx),%rax
180052581:	33 ff                	xor    %edi,%edi
180052583:	4c 8b f2             	mov    %rdx,%r14
180052586:	48 8b f1             	mov    %rcx,%rsi
180052589:	bb 01 00 00 00       	mov    $0x1,%ebx
18005258e:	39 78 08             	cmp    %edi,0x8(%rax)
180052591:	76 6f                	jbe    0x180052602
180052593:	48 8b 06             	mov    (%rsi),%rax
180052596:	44 8b c7             	mov    %edi,%r8d
180052599:	49 8b d6             	mov    %r14,%rdx
18005259c:	48 8b ce             	mov    %rsi,%rcx
18005259f:	48 8b 80 d8 00 00 00 	mov    0xd8(%rax),%rax
1800525a6:	ff d0                	call   *%rax
1800525a8:	0f 1f 00             	nopl   (%rax)
1800525ab:	84 c0                	test   %al,%al
1800525ad:	74 44                	je     0x1800525f3
1800525af:	0f b6 4e 2a          	movzbl 0x2a(%rsi),%ecx
1800525b3:	4d 8b 0e             	mov    (%r14),%r9
1800525b6:	44 8b c7             	mov    %edi,%r8d
1800525b9:	49 c1 e0 04          	shl    $0x4,%r8
1800525bd:	4d 03 46 08          	add    0x8(%r14),%r8
1800525c1:	49 d3 e1             	shl    %cl,%r9
1800525c4:	45 33 d2             	xor    %r10d,%r10d
1800525c7:	49 8b 10             	mov    (%r8),%rdx
1800525ca:	eb 17                	jmp    0x1800525e3
1800525cc:	39 5a 20             	cmp    %ebx,0x20(%rdx)
1800525cf:	75 17                	jne    0x1800525e8
1800525d1:	4c 39 4a 10          	cmp    %r9,0x10(%rdx)
1800525d5:	75 11                	jne    0x1800525e8
1800525d7:	8b 42 18             	mov    0x18(%rdx),%eax
1800525da:	48 8b 12             	mov    (%rdx),%rdx
1800525dd:	4c 03 c8             	add    %rax,%r9
1800525e0:	44 03 d0             	add    %eax,%r10d
1800525e3:	49 3b d0             	cmp    %r8,%rdx
1800525e6:	75 e4                	jne    0x1800525cc
1800525e8:	48 8b c3             	mov    %rbx,%rax
1800525eb:	48 d3 e0             	shl    %cl,%rax
1800525ee:	44 3b d0             	cmp    %eax,%r10d
1800525f1:	75 0d                	jne    0x180052600
1800525f3:	48 8b 46 40          	mov    0x40(%rsi),%rax
1800525f7:	03 fb                	add    %ebx,%edi
1800525f9:	3b 78 08             	cmp    0x8(%rax),%edi
1800525fc:	73 04                	jae    0x180052602
1800525fe:	eb 93                	jmp    0x180052593
180052600:	32 db                	xor    %bl,%bl
180052602:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
180052607:	8a c3                	mov    %bl,%al
180052609:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
18005260e:	48 8b 7c 24 40       	mov    0x40(%rsp),%rdi
180052613:	48 83 c4 20          	add    $0x20,%rsp
180052617:	41 5e                	pop    %r14
180052619:	c3                   	ret
18005261a:	cc                   	int3
18005261b:	cc                   	int3
18005261c:	48 8b c4             	mov    %rsp,%rax
18005261f:	48 89 58 10          	mov    %rbx,0x10(%rax)
180052623:	48 89 68 18          	mov    %rbp,0x18(%rax)
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