18005867b:	85 d2                	test   %edx,%edx
18005867d:	74 1f                	je     0x18005869e
18005867f:	be 0d 00 00 c0       	mov    $0xc000000d,%esi
180058684:	48 8b 5c 24 68       	mov    0x68(%rsp),%rbx
180058689:	8b c6                	mov    %esi,%eax
18005868b:	48 8b 6c 24 70       	mov    0x70(%rsp),%rbp
180058690:	48 83 c4 30          	add    $0x30,%rsp
180058694:	41 5f                	pop    %r15
180058696:	41 5e                	pop    %r14
180058698:	41 5c                	pop    %r12
18005869a:	5f                   	pop    %rdi
18005869b:	5e                   	pop    %rsi
18005869c:	c3                   	ret
18005869d:	cc                   	int3
18005869e:	8b 45 28             	mov    0x28(%rbp),%eax
1800586a1:	4c 8d 7d 2c          	lea    0x2c(%rbp),%r15
1800586a5:	89 44 24 20          	mov    %eax,0x20(%rsp)
1800586a9:	33 d2                	xor    %edx,%edx
1800586ab:	48 8b 47 10          	mov    0x10(%rdi),%rax
1800586af:	45 33 f6             	xor    %r14d,%r14d
1800586b2:	48 2b 45 18          	sub    0x18(%rbp),%rax
1800586b6:	49 f7 f0             	div    %r8
1800586b9:	4c 89 7c 24 28       	mov    %r15,0x28(%rsp)
1800586be:	4c 8b e0             	mov    %rax,%r12
1800586c1:	48 8b 47 08          	mov    0x8(%rdi),%rax
1800586c5:	48 39 70 70          	cmp    %rsi,0x70(%rax)
1800586c9:	76 58                	jbe    0x180058723
1800586cb:	33 d2                	xor    %edx,%edx
1800586cd:	49 8b c6             	mov    %r14,%rax
1800586d0:	49 f7 f0             	div    %r8
1800586d3:	4c 8d 44 24 60       	lea    0x60(%rsp),%r8
1800586d8:	49 8b d6             	mov    %r14,%rdx
1800586db:	49 8d 0c 04          	lea    (%r12,%rax,1),%rcx
1800586df:	8b c9                	mov    %ecx,%ecx
1800586e1:	49 0f a3 0f          	bt     %rcx,(%r15)
1800586e5:	48 8b 07             	mov    (%rdi),%rax
1800586e8:	48 8b cf             	mov    %rdi,%rcx
1800586eb:	0f 92 c3             	setb   %bl
1800586ee:	21 74 24 60          	and    %esi,0x60(%rsp)
1800586f2:	48 8b 80 80 00 00 00 	mov    0x80(%rax),%rax
1800586f9:	ff d0                	call   *%rax
1800586fb:	0f 1f 00             	nopl   (%rax)
1800586fe:	8b 54 24 60          	mov    0x60(%rsp),%edx
180058702:	48 8b cf             	mov    %rdi,%rcx
180058705:	e8 52 01 00 00       	call   0x18005885c
18005870a:	3a c3                	cmp    %bl,%al
18005870c:	0f 85 6d ff ff ff    	jne    0x18005867f
180058712:	48 8b 47 08          	mov    0x8(%rdi),%rax
180058716:	4c 8b 45 20          	mov    0x20(%rbp),%r8
18005871a:	4d 03 f0             	add    %r8,%r14
18005871d:	4c 3b 70 70          	cmp    0x70(%rax),%r14
180058721:	72 a8                	jb     0x1800586cb
180058723:	33 db                	xor    %ebx,%ebx
180058725:	48 8b 47 20          	mov    0x20(%rdi),%rax
180058729:	48 85 c0             	test   %rax,%rax
18005872c:	74 06                	je     0x180058734
18005872e:	48 83 c0 58          	add    $0x58,%rax
180058732:	eb 08                	jmp    0x18005873c
180058734:	48 8b 47 08          	mov    0x8(%rdi),%rax
180058738:	48 83 c0 50          	add    $0x50,%rax
18005873c:	3b 58 10             	cmp    0x10(%rax),%ebx
18005873f:	0f 83 3f ff ff ff    	jae    0x180058684
180058745:	8b d3                	mov    %ebx,%edx
180058747:	48 8b cf             	mov    %rdi,%rcx
18005874a:	e8 0d 01 00 00       	call   0x18005885c
18005874f:	84 c0                	test   %al,%al
180058751:	0f 84 fc 00 00 00    	je     0x180058853
180058757:	33 f6                	xor    %esi,%esi
180058759:	33 ed                	xor    %ebp,%ebp
18005875b:	40 38 77 2b          	cmp    %sil,0x2b(%rdi)
18005875f:	0f 86 e6 00 00 00    	jbe    0x18005884b
180058765:	44 8b c5             	mov    %ebp,%r8d
180058768:	8b d3                	mov    %ebx,%edx
18005876a:	48 8b cf             	mov    %rdi,%rcx
18005876d:	e8 de 8b ff ff       	call   0x180051350
180058772:	4c 8b c8             	mov    %rax,%r9
180058775:	8a 40 02             	mov    0x2(%rax),%al
180058778:	24 0f                	and    $0xf,%al
18005877a:	3c 07                	cmp    $0x7,%al
18005877c:	0f 84 bb 00 00 00    	je     0x18005883d
180058782:	45 8b 41 14          	mov    0x14(%r9),%r8d
180058786:	41 83 f8 ff          	cmp    $0xffffffff,%r8d
18005878a:	0f 84 ad 00 00 00    	je     0x18005883d
180058790:	e8 bb 8b ff ff       	call   0x180051350
180058795:	4c 8b f0             	mov    %rax,%r14
180058798:	44 8b c3             	mov    %ebx,%r8d
18005879b:	41 0f b7 01          	movzwl (%r9),%eax
18005879f:	41 c6 41 03 08       	movb   $0x8,0x3(%r9)
1800587a4:	66 83 c8 02          	or     $0x2,%ax
1800587a8:	66 41 89 01          	mov    %ax,(%r9)
1800587ac:	41 0f b7 06          	movzwl (%r14),%eax
1800587b0:	41 c6 46 03 01       	movb   $0x1,0x3(%r14)
1800587b5:	66 83 c8 02          	or     $0x2,%ax
1800587b9:	66 41 89 06          	mov    %ax,(%r14)
1800587bd:	48 8b 4f 08          	mov    0x8(%rdi),%rcx
1800587c1:	45 8b 49 10          	mov    0x10(%r9),%r9d
1800587c5:	48 8b 57 10          	mov    0x10(%rdi),%rdx
1800587c9:	48 8b 89 18 01 00 00 	mov    0x118(%rcx),%rcx
1800587d0:	e8 fb 54 0e 00       	call   0x18013dcd0
1800587d5:	48 8b cf             	mov    %rdi,%rcx
1800587d8:	48 85 c0             	test   %rax,%rax
1800587db:	74 0a                	je     0x1800587e7
1800587dd:	48 8b d0             	mov    %rax,%rdx
1800587e0:	e8 a3 ce ff ff       	call   0x180055688
1800587e5:	eb 0a                	jmp    0x1800587f1
1800587e7:	44 8b c5             	mov    %ebp,%r8d
1800587ea:	8b d3                	mov    %ebx,%edx
1800587ec:	e8 cb cd ff ff       	call   0x1800555bc
1800587f1:	8b f0                	mov    %eax,%esi
1800587f3:	85 c0                	test   %eax,%eax
1800587f5:	0f 88 89 fe ff ff    	js     0x180058684
1800587fb:	48 8b 4f 08          	mov    0x8(%rdi),%rcx
1800587ff:	44 8b c3             	mov    %ebx,%r8d
180058802:	45 8b 4e 10          	mov    0x10(%r14),%r9d
180058806:	48 8b 57 10          	mov    0x10(%rdi),%rdx
18005880a:	48 8b 89 18 01 00 00 	mov    0x118(%rcx),%rcx
180058811:	e8 ba 54 0e 00       	call   0x18013dcd0
180058816:	48 8b cf             	mov    %rdi,%rcx
180058819:	48 85 c0             	test   %rax,%rax
18005881c:	74 0a                	je     0x180058828
18005881e:	48 8b d0             	mov    %rax,%rdx
180058821:	e8 62 ce ff ff       	call   0x180055688
180058826:	eb 0b                	jmp    0x180058833
180058828:	45 8b 46 10          	mov    0x10(%r14),%r8d
18005882c:	8b d3                	mov    %ebx,%edx
18005882e:	e8 89 cd ff ff       	call   0x1800555bc
180058833:	8b f0                	mov    %eax,%esi
180058835:	85 c0                	test   %eax,%eax
180058837:	0f 88 47 fe ff ff    	js     0x180058684
18005883d:	0f b6 47 2b          	movzbl 0x2b(%rdi),%eax
180058841:	ff c5                	inc    %ebp
180058843:	3b e8                	cmp    %eax,%ebp
180058845:	0f 82 1a ff ff ff    	jb     0x180058765
18005884b:	85 f6                	test   %esi,%esi
18005884d:	0f 88 31 fe ff ff    	js     0x180058684
180058853:	ff c3                	inc    %ebx
180058855:	e9 cb fe ff ff       	jmp    0x180058725
18005885a:	cc                   	int3
18005885b:	cc                   	int3
18005885c:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180058861:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
180058866:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
18005886b:	57                   	push   %rdi
18005886c:	48 83 ec 20          	sub    $0x20,%rsp
180058870:	33 db                	xor    %ebx,%ebx
180058872:	8b ea                	mov    %edx,%ebp
180058874:	8b f3                	mov    %ebx,%esi
180058876:	48 8b f9             	mov    %rcx,%rdi
180058879:	e8 26 8c ff ff       	call   0x1800514a4
18005887e:	84 c0                	test   %al,%al
180058880:	75 6b                	jne    0x1800588ed
180058882:	44 0f b6 57 2b       	movzbl 0x2b(%rdi),%r10d
180058887:	44 8d 5b 01          	lea    0x1(%rbx),%r11d
18005888b:	44 8b cb             	mov    %ebx,%r9d
18005888e:	45 85 d2             	test   %r10d,%r10d
180058891:	74 39                	je     0x1800588cc
180058893:	45 8b c1             	mov    %r9d,%r8d
180058896:	8b d5                	mov    %ebp,%edx
180058898:	48 8b cf             	mov    %rdi,%rcx
18005889b:	e8 b0 8a ff ff       	call   0x180051350
1800588a0:	44 8b 40 14          	mov    0x14(%rax),%r8d
1800588a4:	41 83 f8 ff          	cmp    $0xffffffff,%r8d
1800588a8:	74 1a                	je     0x1800588c4
1800588aa:	e8 a1 8a ff ff       	call   0x180051350
1800588af:	8a 48 02             	mov    0x2(%rax),%cl
1800588b2:	80 e1 0f             	and    $0xf,%cl
1800588b5:	8d 41 fe             	lea    -0x2(%rcx),%eax
1800588b8:	a8 f9                	test   $0xf9,%al
1800588ba:	75 05                	jne    0x1800588c1
1800588bc:	80 f9 06             	cmp    $0x6,%cl
1800588bf:	75 2c                	jne    0x1800588ed
1800588c1:	41 03 f3             	add    %r11d,%esi
1800588c4:	45 03 cb             	add    %r11d,%r9d
1800588c7:	45 3b ca             	cmp    %r10d,%r9d
1800588ca:	72 c7                	jb     0x180058893
1800588cc:	48 8b 4f 20          	mov    0x20(%rdi),%rcx
1800588d0:	48 85 c9             	test   %rcx,%rcx
1800588d3:	74 06                	je     0x1800588db
1800588d5:	48 83 c1 58          	add    $0x58,%rcx
1800588d9:	eb 08                	jmp    0x1800588e3
1800588db:	48 8b 4f 08          	mov    0x8(%rdi),%rcx
1800588df:	48 83 c1 50          	add    $0x50,%rcx
1800588e3:	3b 71 08             	cmp    0x8(%rcx),%esi
1800588e6:	0f b6 db             	movzbl %bl,%ebx
1800588e9:	41 0f 44 db          	cmove  %r11d,%ebx
1800588ed:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
1800588f2:	8a c3                	mov    %bl,%al
1800588f4:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1800588f9:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
1800588fe:	48 83 c4 20          	add    $0x20,%rsp
180058902:	5f                   	pop    %rdi
180058903:	c3                   	ret
180058904:	cc                   	int3
180058905:	cc                   	int3
180058906:	cc                   	int3
180058907:	cc                   	int3
180058908:	48 8b c4             	mov    %rsp,%rax
18005890b:	48 89 58 08          	mov    %rbx,0x8(%rax)
18005890f:	48 89 68 10          	mov    %rbp,0x10(%rax)
180058913:	48 89 70 18          	mov    %rsi,0x18(%rax)
180058917:	48 89 78 20          	mov    %rdi,0x20(%rax)
18005891b:	41 55                	push   %r13
18005891d:	41 56                	push   %r14
18005891f:	41 57                	push   %r15
180058921:	48 83 ec 20          	sub    $0x20,%rsp
180058925:	45 33 ff             	xor    %r15d,%r15d
180058928:	48 8b da             	mov    %rdx,%rbx
18005892b:	48 8b f1             	mov    %rcx,%rsi
18005892e:	45 33 f6             	xor    %r14d,%r14d
180058931:	41 8d 7f 01          	lea    0x1(%r15),%edi
180058935:	48 8b 46 20          	mov    0x20(%rsi),%rax
180058939:	48 85 c0             	test   %rax,%rax
18005893c:	74 06                	je     0x180058944
18005893e:	48 83 c0 58          	add    $0x58,%rax
180058942:	eb 08                	jmp    0x18005894c
180058944:	48 8b 46 08          	mov    0x8(%rsi),%rax
180058948:	48 83 c0 50          	add    $0x50,%rax
18005894c:	44 3b 70 10          	cmp    0x10(%rax),%r14d
180058950:	0f 83 2d 01 00 00    	jae    0x180058a83
180058956:	48 8b 06             	mov    (%rsi),%rax
180058959:	41 8b d6             	mov    %r14d,%edx
18005895c:	48 8b ce             	mov    %rsi,%rcx
18005895f:	48 8b 80 c0 00 00 00 	mov    0xc0(%rax),%rax
180058966:	ff d0                	call   *%rax
180058968:	0f 1f 00             	nopl   (%rax)
18005896b:	3b c7                	cmp    %edi,%eax
18005896d:	74 19                	je     0x180058988
18005896f:	7e 1d                	jle    0x18005898e
180058971:	83 f8 03             	cmp    $0x3,%eax
180058974:	7e 0a                	jle    0x180058980
180058976:	83 f8 04             	cmp    $0x4,%eax
180058979:	75 13                	jne    0x18005898e
18005897b:	44 8b ff             	mov    %edi,%r15d
18005897e:	eb 0e                	jmp    0x18005898e
180058980:	41 bf 02 00 00 00    	mov    $0x2,%r15d
180058986:	eb 06                	jmp    0x18005898e
180058988:	41 bf 03 00 00 00    	mov    $0x3,%r15d
18005898e:	8b 03                	mov    (%rbx),%eax
180058990:	41 3b c7             	cmp    %r15d,%eax
180058993:	41 0f 4d c7          	cmovge %r15d,%eax
180058997:	33 ed                	xor    %ebp,%ebp
180058999:	89 03                	mov    %eax,(%rbx)
18005899b:	40 38 6e 2b          	cmp    %bpl,0x2b(%rsi)
18005899f:	0f 86 d6 00 00 00    	jbe    0x180058a7b
1800589a5:	44 8b c5             	mov    %ebp,%r8d
1800589a8:	41 8b d6             	mov    %r14d,%edx
1800589ab:	48 8b ce             	mov    %rsi,%rcx
1800589ae:	e8 9d 89 ff ff       	call   0x180051350
1800589b3:	4c 8b e8             	mov    %rax,%r13
1800589b6:	0f b6 48 02          	movzbl 0x2(%rax),%ecx
1800589ba:	83 e1 0f             	and    $0xf,%ecx
1800589bd:	01 7c 8b 2c          	add    %edi,0x2c(%rbx,%rcx,4)
1800589c1:	0f b6 48 02          	movzbl 0x2(%rax),%ecx
1800589c5:	48 c1 e9 04          	shr    $0x4,%rcx
1800589c9:	01 7c 8b 50          	add    %edi,0x50(%rbx,%rcx,4)
1800589cd:	41 83 ff 03          	cmp    $0x3,%r15d
1800589d1:	0f 84 96 00 00 00    	je     0x180058a6d
1800589d7:	83 78 14 ff          	cmpl   $0xffffffff,0x14(%rax)
1800589db:	0f 85 8c 00 00 00    	jne    0x180058a6d
1800589e1:	48 8b 06             	mov    (%rsi),%rax
1800589e4:	48 8b ce             	mov    %rsi,%rcx
1800589e7:	48 8b 80 a8 00 00 00 	mov    0xa8(%rax),%rax
1800589ee:	ff d0                	call   *%rax
1800589f0:	0f 1f 00             	nopl   (%rax)
1800589f3:	84 c0                	test   %al,%al
1800589f5:	74 03                	je     0x1800589fa
1800589f7:	01 7b 04             	add    %edi,0x4(%rbx)
1800589fa:	48 8b 06             	mov    (%rsi),%rax
1800589fd:	44 8b c5             	mov    %ebp,%r8d
180058a00:	41 8b d6             	mov    %r14d,%edx
180058a03:	48 8b ce             	mov    %rsi,%rcx
180058a06:	48 8b 80 a0 00 00 00 	mov    0xa0(%rax),%rax
180058a0d:	ff d0                	call   *%rax
180058a0f:	0f 1f 00             	nopl   (%rax)
180058a12:	84 c0                	test   %al,%al
180058a14:	75 03                	jne    0x180058a19
180058a16:	01 7b 08             	add    %edi,0x8(%rbx)
180058a19:	41 8a 45 02          	mov    0x2(%r13),%al
180058a1d:	8a c8                	mov    %al,%cl
180058a1f:	80 e1 0f             	and    $0xf,%cl
180058a22:	80 f9 02             	cmp    $0x2,%cl
180058a25:	74 22                	je     0x180058a49
180058a27:	76 44                	jbe    0x180058a6d
180058a29:	80 f9 04             	cmp    $0x4,%cl
180058a2c:	76 10                	jbe    0x180058a3e
180058a2e:	80 f9 06             	cmp    $0x6,%cl
180058a31:	77 3a                	ja     0x180058a6d
180058a33:	24 f0                	and    $0xf0,%al
180058a35:	3c 80                	cmp    $0x80,%al
180058a37:	74 2c                	je     0x180058a65
180058a39:	01 7b 20             	add    %edi,0x20(%rbx)
180058a3c:	eb 2f                	jmp    0x180058a6d
180058a3e:	24 f0                	and    $0xf0,%al
180058a40:	3c 80                	cmp    $0x80,%al
180058a42:	74 21                	je     0x180058a65
180058a44:	01 7b 18             	add    %edi,0x18(%rbx)
180058a47:	eb 24                	jmp    0x180058a6d
180058a49:	48 8b 06             	mov    (%rsi),%rax
180058a4c:	44 8b c5             	mov    %ebp,%r8d
180058a4f:	41 8b d6             	mov    %r14d,%edx
180058a52:	48 8b ce             	mov    %rsi,%rcx
180058a55:	48 8b 80 a8 00 00 00 	mov    0xa8(%rax),%rax
180058a5c:	ff d0                	call   *%rax
180058a5e:	0f 1f 00             	nopl   (%rax)
180058a61:	84 c0                	test   %al,%al
180058a63:	74 05                	je     0x180058a6a
180058a65:	01 7b 14             	add    %edi,0x14(%rbx)
180058a68:	eb 03                	jmp    0x180058a6d
180058a6a:	01 7b 1c             	add    %edi,0x1c(%rbx)
180058a6d:	0f b6 46 2b          	movzbl 0x2b(%rsi),%eax
180058a71:	03 ef                	add    %edi,%ebp
180058a73:	3b e8                	cmp    %eax,%ebp
180058a75:	0f 82 2a ff ff ff    	jb     0x1800589a5
180058a7b:	44 03 f7             	add    %edi,%r14d
180058a7e:	e9 b2 fe ff ff       	jmp    0x180058935
180058a83:	83 7b 14 00          	cmpl   $0x0,0x14(%rbx)
180058a87:	76 09                	jbe    0x180058a92
180058a89:	8b 03                	mov    (%rbx),%eax
180058a8b:	3b c7                	cmp    %edi,%eax
180058a8d:	0f 4c f8             	cmovl  %eax,%edi
180058a90:	89 3b                	mov    %edi,(%rbx)
180058a92:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
180058a97:	33 c0                	xor    %eax,%eax
180058a99:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
180058a9e:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
180058aa3:	48 8b 7c 24 58       	mov    0x58(%rsp),%rdi
180058aa8:	48 83 c4 20          	add    $0x20,%rsp
180058aac:	41 5f                	pop    %r15
180058aae:	41 5e                	pop    %r14
180058ab0:	41 5d                	pop    %r13
180058ab2:	c3                   	ret
180058ab3:	cc                   	int3
180058ab4:	48 8b c4             	mov    %rsp,%rax
180058ab7:	48 89 58 10          	mov    %rbx,0x10(%rax)
180058abb:	48 89 68 18          	mov    %rbp,0x18(%rax)
180058abf:	48 89 70 20          	mov    %rsi,0x20(%rax)
180058ac3:	57                   	push   %rdi
180058ac4:	41 54                	push   %r12
180058ac6:	41 55                	push   %r13
180058ac8:	41 56                	push   %r14
180058aca:	41 57                	push   %r15
180058acc:	48 83 ec 20          	sub    $0x20,%rsp
180058ad0:	33 db                	xor    %ebx,%ebx
180058ad2:	49 8b f1             	mov    %r9,%rsi
180058ad5:	89 58 08             	mov    %ebx,0x8(%rax)
180058ad8:	4d 8b f0             	mov    %r8,%r14
180058adb:	48 8b 41 20          	mov    0x20(%rcx),%rax
180058adf:	48 8b f9             	mov    %rcx,%rdi
180058ae2:	44 8b eb             	mov    %ebx,%r13d
180058ae5:	48 85 c0             	test   %rax,%rax