1800515f3:	57                   	push   %rdi
1800515f4:	41 54                	push   %r12
1800515f6:	41 55                	push   %r13
1800515f8:	41 56                	push   %r14
1800515fa:	41 57                	push   %r15
1800515fc:	48 83 ec 30          	sub    $0x30,%rsp
180051600:	45 33 ed             	xor    %r13d,%r13d
180051603:	4d 8d 98 20 01 00 00 	lea    0x120(%r8),%r11
18005160a:	49 8d 73 10          	lea    0x10(%r11),%rsi
18005160e:	4d 89 29             	mov    %r13,(%r9)
180051611:	4c 8b 16             	mov    (%rsi),%r10
180051614:	4d 8b f9             	mov    %r9,%r15
180051617:	4d 8b f0             	mov    %r8,%r14
18005161a:	48 8b ea             	mov    %rdx,%rbp
18005161d:	4c 8b e1             	mov    %rcx,%r12
180051620:	41 8b dd             	mov    %r13d,%ebx
180051623:	41 8b fd             	mov    %r13d,%edi
180051626:	4c 3b d6             	cmp    %rsi,%r10
180051629:	74 55                	je     0x180051680
18005162b:	49 8b 52 20          	mov    0x20(%r10),%rdx
18005162f:	49 8b 4a 28          	mov    0x28(%r10),%rcx
180051633:	48 03 ca             	add    %rdx,%rcx
180051636:	48 3b cd             	cmp    %rbp,%rcx
180051639:	76 05                	jbe    0x180051640
18005163b:	48 3b d5             	cmp    %rbp,%rdx
18005163e:	76 05                	jbe    0x180051645
180051640:	4d 8b 12             	mov    (%r10),%r10
180051643:	eb e1                	jmp    0x180051626
180051645:	49 8b 0b             	mov    (%r11),%rcx
180051648:	41 8a d5             	mov    %r13b,%dl
18005164b:	4d 8b c5             	mov    %r13,%r8
18005164e:	49 3b cb             	cmp    %r11,%rcx
180051651:	74 1e                	je     0x180051671
180051653:	48 8b 41 10          	mov    0x10(%rcx),%rax
180051657:	4c 8b c1             	mov    %rcx,%r8
18005165a:	49 3b 42 10          	cmp    0x10(%r10),%rax
18005165e:	75 0a                	jne    0x18005166a
180051660:	48 8b 41 18          	mov    0x18(%rcx),%rax
180051664:	49 3b 42 18          	cmp    0x18(%r10),%rax
180051668:	74 05                	je     0x18005166f
18005166a:	48 8b 09             	mov    (%rcx),%rcx
18005166d:	eb df                	jmp    0x18005164e
18005166f:	b2 01                	mov    $0x1,%dl
180051671:	f6 da                	neg    %dl
180051673:	48 1b ff             	sbb    %rdi,%rdi
180051676:	49 23 f8             	and    %r8,%rdi
180051679:	74 05                	je     0x180051680
18005167b:	8b 47 58             	mov    0x58(%rdi),%eax
18005167e:	eb 04                	jmp    0x180051684
180051680:	41 8b 46 50          	mov    0x50(%r14),%eax
180051684:	85 c0                	test   %eax,%eax
180051686:	0f 8e c5 00 00 00    	jle    0x180051751
18005168c:	83 f8 02             	cmp    $0x2,%eax
18005168f:	7e 4f                	jle    0x1800516e0
180051691:	83 f8 03             	cmp    $0x3,%eax
180051694:	0f 85 b7 00 00 00    	jne    0x180051751
18005169a:	8d 48 5d             	lea    0x5d(%rax),%ecx
18005169d:	e8 72 52 ff ff       	call   0x180046914
1800516a2:	48 8b d8             	mov    %rax,%rbx
1800516a5:	48 85 c0             	test   %rax,%rax
1800516a8:	74 70                	je     0x18005171a
1800516aa:	4c 89 68 18          	mov    %r13,0x18(%rax)
1800516ae:	4c 89 68 20          	mov    %r13,0x20(%rax)
1800516b2:	66 44 89 68 2a       	mov    %r13w,0x2a(%rax)
1800516b7:	4c 89 68 30          	mov    %r13,0x30(%rax)
1800516bb:	4c 89 68 38          	mov    %r13,0x38(%rax)
1800516bf:	4c 89 68 40          	mov    %r13,0x40(%rax)
1800516c3:	48 8d 05 56 22 0f 00 	lea    0xf2256(%rip),%rax        # 0x180143920
1800516ca:	48 89 03             	mov    %rax,(%rbx)
1800516cd:	b8 17 00 00 00       	mov    $0x17,%eax
1800516d2:	66 89 43 28          	mov    %ax,0x28(%rbx)
1800516d6:	44 89 6b 50          	mov    %r13d,0x50(%rbx)
1800516da:	4c 89 6b 58          	mov    %r13,0x58(%rbx)
1800516de:	eb 3d                	jmp    0x18005171d
1800516e0:	b9 50 00 00 00       	mov    $0x50,%ecx
1800516e5:	e8 2a 52 ff ff       	call   0x180046914
1800516ea:	48 8b d8             	mov    %rax,%rbx
1800516ed:	48 85 c0             	test   %rax,%rax
1800516f0:	74 28                	je     0x18005171a
1800516f2:	4c 89 68 18          	mov    %r13,0x18(%rax)
1800516f6:	4c 89 68 20          	mov    %r13,0x20(%rax)
1800516fa:	44 89 68 28          	mov    %r13d,0x28(%rax)
1800516fe:	4c 89 68 30          	mov    %r13,0x30(%rax)
180051702:	4c 89 68 38          	mov    %r13,0x38(%rax)
180051706:	4c 89 68 40          	mov    %r13,0x40(%rax)
18005170a:	48 8d 05 ff 20 0f 00 	lea    0xf20ff(%rip),%rax        # 0x180143810
180051711:	48 89 03             	mov    %rax,(%rbx)
180051714:	4c 89 6b 48          	mov    %r13,0x48(%rbx)
180051718:	eb 03                	jmp    0x18005171d
18005171a:	49 8b dd             	mov    %r13,%rbx
18005171d:	48 85 db             	test   %rbx,%rbx
180051720:	75 07                	jne    0x180051729
180051722:	bf 9a 00 00 c0       	mov    $0xc000009a,%edi
180051727:	eb 45                	jmp    0x18005176e
180051729:	48 8b 03             	mov    (%rbx),%rax
18005172c:	4d 8b ce             	mov    %r14,%r9
18005172f:	4c 8b c5             	mov    %rbp,%r8
180051732:	48 89 7c 24 20       	mov    %rdi,0x20(%rsp)
180051737:	49 8b d4             	mov    %r12,%rdx
18005173a:	48 8b cb             	mov    %rbx,%rcx
18005173d:	48 8b 40 78          	mov    0x78(%rax),%rax
180051741:	ff d0                	call   *%rax
180051743:	0f 1f 00             	nopl   (%rax)
180051746:	8b f8                	mov    %eax,%edi
180051748:	85 c0                	test   %eax,%eax
18005174a:	78 0a                	js     0x180051756
18005174c:	49 89 1f             	mov    %rbx,(%r15)
18005174f:	eb 1d                	jmp    0x18005176e
180051751:	bf 0d 00 00 c0       	mov    $0xc000000d,%edi
180051756:	48 85 db             	test   %rbx,%rbx
180051759:	74 13                	je     0x18005176e
18005175b:	48 8b 03             	mov    (%rbx),%rax
18005175e:	ba 01 00 00 00       	mov    $0x1,%edx
180051763:	48 8b cb             	mov    %rbx,%rcx
180051766:	48 8b 00             	mov    (%rax),%rax
180051769:	ff d0                	call   *%rax
18005176b:	0f 1f 00             	nopl   (%rax)
18005176e:	48 8b 5c 24 60       	mov    0x60(%rsp),%rbx
180051773:	8b c7                	mov    %edi,%eax
180051775:	48 8b 6c 24 68       	mov    0x68(%rsp),%rbp
18005177a:	48 8b 74 24 70       	mov    0x70(%rsp),%rsi
18005177f:	48 83 c4 30          	add    $0x30,%rsp
180051783:	41 5f                	pop    %r15
180051785:	41 5e                	pop    %r14
180051787:	41 5d                	pop    %r13
180051789:	41 5c                	pop    %r12
18005178b:	5f                   	pop    %rdi
18005178c:	c3                   	ret
18005178d:	cc                   	int3
18005178e:	cc                   	int3
18005178f:	cc                   	int3
180051790:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180051795:	57                   	push   %rdi
180051796:	48 83 ec 20          	sub    $0x20,%rsp
18005179a:	8b da                	mov    %edx,%ebx
18005179c:	48 8b f9             	mov    %rcx,%rdi
18005179f:	e8 1c 00 00 00       	call   0x1800517c0
1800517a4:	f6 c3 01             	test   $0x1,%bl
1800517a7:	74 08                	je     0x1800517b1
1800517a9:	48 8b cf             	mov    %rdi,%rcx
1800517ac:	e8 ab 51 ff ff       	call   0x18004695c
1800517b1:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1800517b6:	48 8b c7             	mov    %rdi,%rax
1800517b9:	48 83 c4 20          	add    $0x20,%rsp
1800517bd:	5f                   	pop    %rdi
1800517be:	c3                   	ret
1800517bf:	cc                   	int3
1800517c0:	40 53                	rex push %rbx
1800517c2:	48 83 ec 20          	sub    $0x20,%rsp
1800517c6:	48 8d 05 bb 1e 0f 00 	lea    0xf1ebb(%rip),%rax        # 0x180143688
1800517cd:	48 8b d9             	mov    %rcx,%rbx
1800517d0:	48 89 01             	mov    %rax,(%rcx)
1800517d3:	48 8b 49 40          	mov    0x40(%rcx),%rcx
1800517d7:	48 85 c9             	test   %rcx,%rcx
1800517da:	74 10                	je     0x1800517ec
1800517dc:	48 8b 01             	mov    (%rcx),%rax
1800517df:	ba 01 00 00 00       	mov    $0x1,%edx
1800517e4:	48 8b 00             	mov    (%rax),%rax
1800517e7:	ff d0                	call   *%rax
1800517e9:	0f 1f 00             	nopl   (%rax)
1800517ec:	48 8b 4b 38          	mov    0x38(%rbx),%rcx
1800517f0:	48 85 c9             	test   %rcx,%rcx
1800517f3:	74 09                	je     0x1800517fe
1800517f5:	48 83 c1 f8          	add    $0xfffffffffffffff8,%rcx
1800517f9:	e8 5e 51 ff ff       	call   0x18004695c
1800517fe:	48 8b 4b 30          	mov    0x30(%rbx),%rcx
180051802:	48 85 c9             	test   %rcx,%rcx
180051805:	74 05                	je     0x18005180c
180051807:	e8 50 51 ff ff       	call   0x18004695c
18005180c:	48 8d 05 1d 1c 0f 00 	lea    0xf1c1d(%rip),%rax        # 0x180143430
180051813:	48 89 03             	mov    %rax,(%rbx)
180051816:	48 83 c4 20          	add    $0x20,%rsp
18005181a:	5b                   	pop    %rbx
18005181b:	c3                   	ret
18005181c:	cc                   	int3
18005181d:	cc                   	int3
18005181e:	cc                   	int3
18005181f:	cc                   	int3
180051820:	4c 89 4c 24 20       	mov    %r9,0x20(%rsp)
180051825:	53                   	push   %rbx
180051826:	55                   	push   %rbp
180051827:	56                   	push   %rsi
180051828:	57                   	push   %rdi
180051829:	41 54                	push   %r12
18005182b:	41 55                	push   %r13
18005182d:	41 56                	push   %r14
18005182f:	41 57                	push   %r15
180051831:	48 83 ec 58          	sub    $0x58,%rsp
180051835:	48 8b 84 24 c0 00 00 	mov    0xc0(%rsp),%rax
18005183c:	00
18005183d:	48 8b f9             	mov    %rcx,%rdi
180051840:	83 8c 24 b0 00 00 00 	orl    $0xffffffff,0xb0(%rsp)
180051847:	ff
180051848:	33 c9                	xor    %ecx,%ecx
18005184a:	44 8a f9             	mov    %cl,%r15b
18005184d:	88 4c 24 30          	mov    %cl,0x30(%rsp)
180051851:	4d 8b f1             	mov    %r9,%r14
180051854:	89 8c 24 a8 00 00 00 	mov    %ecx,0xa8(%rsp)
18005185b:	48 89 47 20          	mov    %rax,0x20(%rdi)
18005185f:	4d 8b e0             	mov    %r8,%r12
180051862:	4c 89 4f 08          	mov    %r9,0x8(%rdi)
180051866:	4c 8b ea             	mov    %rdx,%r13
180051869:	4c 89 47 10          	mov    %r8,0x10(%rdi)
18005186d:	80 7a 42 02          	cmpb   $0x2,0x42(%rdx)
180051871:	49 8b 81 a8 00 00 00 	mov    0xa8(%r9),%rax
180051878:	48 89 84 24 c0 00 00 	mov    %rax,0xc0(%rsp)
18005187f:	00
180051880:	8d 41 01             	lea    0x1(%rcx),%eax
180051883:	89 8c 24 a0 00 00 00 	mov    %ecx,0xa0(%rsp)
18005188a:	44 89 7c 24 34       	mov    %r15d,0x34(%rsp)
18005188f:	48 89 4c 24 40       	mov    %rcx,0x40(%rsp)
180051894:	89 4c 24 38          	mov    %ecx,0x38(%rsp)
180051898:	75 14                	jne    0x1800518ae
18005189a:	48 39 8a 90 00 00 00 	cmp    %rcx,0x90(%rdx)
1800518a1:	44 0f b6 f9          	movzbl %cl,%r15d
1800518a5:	44 0f 47 f8          	cmova  %eax,%r15d
1800518a9:	44 89 7c 24 34       	mov    %r15d,0x34(%rsp)
1800518ae:	33 d2                	xor    %edx,%edx
1800518b0:	49 8b c4             	mov    %r12,%rax
1800518b3:	49 f7 b5 e8 00 00 00 	divq   0xe8(%r13)
1800518ba:	8b e9                	mov    %ecx,%ebp
1800518bc:	8b d9                	mov    %ecx,%ebx
1800518be:	8b f1                	mov    %ecx,%esi
1800518c0:	48 8b d0             	mov    %rax,%rdx
1800518c3:	49 8b 8d c0 00 00 00 	mov    0xc0(%r13),%rcx
1800518ca:	e8 0d 20 ff ff       	call   0x1800438dc
1800518cf:	48 8b c8             	mov    %rax,%rcx
1800518d2:	48 85 c0             	test   %rax,%rax
1800518d5:	74 3c                	je     0x180051913
1800518d7:	41 bf 01 00 00 00    	mov    $0x1,%r15d
1800518dd:	8b d5                	mov    %ebp,%edx
1800518df:	e8 8c d0 0e 00       	call   0x18013e970
1800518e4:	8b 68 40             	mov    0x40(%rax),%ebp
1800518e7:	33 c0                	xor    %eax,%eax
1800518e9:	3b ea                	cmp    %edx,%ebp
1800518eb:	0f 44 c6             	cmove  %esi,%eax
1800518ee:	41 8d 34 07          	lea    (%r15,%rax,1),%esi
1800518f2:	3b de                	cmp    %esi,%ebx
1800518f4:	8b c6                	mov    %esi,%eax
1800518f6:	0f 47 c3             	cmova  %ebx,%eax
1800518f9:	8b d8                	mov    %eax,%ebx
1800518fb:	e8 70 d0 0e 00       	call   0x18013e970
180051900:	3b ea                	cmp    %edx,%ebp
180051902:	0f 44 ea             	cmove  %edx,%ebp
180051905:	48 8b 48 50          	mov    0x50(%rax),%rcx
180051909:	48 85 c9             	test   %rcx,%rcx
18005190c:	75 cf                	jne    0x1800518dd
18005190e:	44 8b 7c 24 34       	mov    0x34(%rsp),%r15d
180051913:	b8 04 00 00 00       	mov    $0x4,%eax
180051918:	88 5f 2b             	mov    %bl,0x2b(%rdi)
18005191b:	8d 68 fd             	lea    -0x3(%rax),%ebp
18005191e:	40 3a dd             	cmp    %bpl,%bl
180051921:	76 07                	jbe    0x18005192a
180051923:	41 09 46 2c          	or     %eax,0x2c(%r14)
180051927:	8a 5f 2b             	mov    0x2b(%rdi),%bl
18005192a:	48 8b 57 20          	mov    0x20(%rdi),%rdx
18005192e:	48 8d 4a 58          	lea    0x58(%rdx),%rcx
180051932:	48 85 d2             	test   %rdx,%rdx
180051935:	74 05                	je     0x18005193c
180051937:	48 8b c1             	mov    %rcx,%rax
18005193a:	eb 08                	jmp    0x180051944
18005193c:	48 8b 47 08          	mov    0x8(%rdi),%rax
180051940:	48 83 c0 50          	add    $0x50,%rax
180051944:	39 68 10             	cmp    %ebp,0x10(%rax)
180051947:	76 17                	jbe    0x180051960
180051949:	48 85 d2             	test   %rdx,%rdx
18005194c:	74 05                	je     0x180051953
18005194e:	48 8b c1             	mov    %rcx,%rax
180051951:	eb 08                	jmp    0x18005195b
180051953:	48 8b 47 08          	mov    0x8(%rdi),%rax
180051957:	48 83 c0 50          	add    $0x50,%rax
18005195b:	8b 40 14             	mov    0x14(%rax),%eax
18005195e:	eb 11                	jmp    0x180051971
180051960:	41 8a c7             	mov    %r15b,%al
180051963:	f6 d8                	neg    %al
180051965:	1b c0                	sbb    %eax,%eax
180051967:	25 00 00 04 ff       	and    $0xff040000,%eax
18005196c:	05 00 00 00 01       	add    $0x1000000,%eax
180051971:	0f bd c0             	bsr    %eax,%eax
180051974:	89 44 24 38          	mov    %eax,0x38(%rsp)
180051978:	88 47 2a             	mov    %al,0x2a(%rdi)
18005197b:	48 85 d2             	test   %rdx,%rdx
18005197e:	74 05                	je     0x180051985
180051980:	48 8b c1             	mov    %rcx,%rax
180051983:	eb 08                	jmp    0x18005198d
180051985:	48 8b 47 08          	mov    0x8(%rdi),%rax
180051989:	48 83 c0 50          	add    $0x50,%rax
18005198d:	41 b8 20 00 00 00    	mov    $0x20,%r8d
180051993:	39 28                	cmp    %ebp,(%rax)
180051995:	75 05                	jne    0x18005199c
180051997:	66 44 09 47 28       	or     %r8w,0x28(%rdi)
18005199c:	40 3a dd             	cmp    %bpl,%bl
18005199f:	76 05                	jbe    0x1800519a6
1800519a1:	66 83 4f 28 02       	orw    $0x2,0x28(%rdi)
1800519a6:	48 85 d2             	test   %rdx,%rdx
1800519a9:	75 08                	jne    0x1800519b3
1800519ab:	48 8b 4f 08          	mov    0x8(%rdi),%rcx
1800519af:	48 83 c1 50          	add    $0x50,%rcx
1800519b3:	8b 51 10             	mov    0x10(%rcx),%edx
1800519b6:	48 c7 c1 ff ff ff ff 	mov    $0xffffffffffffffff,%rcx
1800519bd:	0f b6 c3             	movzbl %bl,%eax
1800519c0:	0f af d0             	imul   %eax,%edx
1800519c3:	49 8b c0             	mov    %r8,%rax
1800519c6:	48 f7 e2             	mul    %rdx
1800519c9:	48 0f 40 c1          	cmovo  %rcx,%rax
1800519cd:	48 8b c8             	mov    %rax,%rcx
1800519d0:	e8 3f 4f ff ff       	call   0x180046914
1800519d5:	48 89 47 30          	mov    %rax,0x30(%rdi)
1800519d9:	48 85 c0             	test   %rax,%rax
1800519dc:	75 0a                	jne    0x1800519e8
1800519de:	b8 9a 00 00 c0       	mov    $0xc000009a,%eax
1800519e3:	e9 1d 06 00 00       	jmp    0x180052005
1800519e8:	33 f6                	xor    %esi,%esi
1800519ea:	48 8b 57 20          	mov    0x20(%rdi),%rdx
1800519ee:	48 8b 5f 08          	mov    0x8(%rdi),%rbx
1800519f2:	48 85 d2             	test   %rdx,%rdx
1800519f5:	48 8d 4a 58          	lea    0x58(%rdx),%rcx
1800519f9:	48 8d 43 50          	lea    0x50(%rbx),%rax
1800519fd:	48 0f 44 c8          	cmove  %rax,%rcx
180051a01:	3b 71 10             	cmp    0x10(%rcx),%esi
180051a04:	73 48                	jae    0x180051a4e
180051a06:	33 db                	xor    %ebx,%ebx
180051a08:	38 5f 2b             	cmp    %bl,0x2b(%rdi)
180051a0b:	76 3d                	jbe    0x180051a4a
180051a0d:	41 b1 07             	mov    $0x7,%r9b
180051a10:	c6 44 24 20 00       	movb   $0x0,0x20(%rsp)
180051a15:	44 8b c3             	mov    %ebx,%r8d
180051a18:	8b d6                	mov    %esi,%edx
180051a1a:	48 8b cf             	mov    %rdi,%rcx
180051a1d:	e8 e6 3e 00 00       	call   0x180055908
180051a22:	44 8b c3             	mov    %ebx,%r8d
180051a25:	8b d6                	mov    %esi,%edx
180051a27:	48 8b cf             	mov    %rdi,%rcx
180051a2a:	e8 21 f9 ff ff       	call   0x180051350
180051a2f:	41 83 c9 ff          	or     $0xffffffff,%r9d
180051a33:	44 89 48 10          	mov    %r9d,0x10(%rax)
180051a37:	e8 14 f9 ff ff       	call   0x180051350
180051a3c:	03 dd                	add    %ebp,%ebx
180051a3e:	44 89 48 14          	mov    %r9d,0x14(%rax)
180051a42:	0f b6 47 2b          	movzbl 0x2b(%rdi),%eax
180051a46:	3b d8                	cmp    %eax,%ebx
180051a48:	72 c3                	jb     0x180051a0d
180051a4a:	03 f5                	add    %ebp,%esi
180051a4c:	eb 9c                	jmp    0x1800519ea
180051a4e:	4d 8b b5 e8 00 00 00 	mov    0xe8(%r13),%r14
180051a55:	33 d2                	xor    %edx,%edx
180051a57:	4d 8b bd c0 00 00 00 	mov    0xc0(%r13),%r15
180051a5e:	49 8b c4             	mov    %r12,%rax
180051a61:	49 f7 f6             	div    %r14
180051a64:	49 8b cf             	mov    %r15,%rcx