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
180051a67:	48 8b d0             	mov    %rax,%rdx
180051a6a:	e8 6d 1e ff ff       	call   0x1800438dc
180051a6f:	48 8b f0             	mov    %rax,%rsi
180051a72:	48 85 c0             	test   %rax,%rax
180051a75:	74 53                	je     0x180051aca
180051a77:	48 8b ce             	mov    %rsi,%rcx
180051a7a:	e8 f1 ce 0e 00       	call   0x18013e970
180051a7f:	44 8b 48 48          	mov    0x48(%rax),%r9d
180051a83:	41 83 f9 ff          	cmp    $0xffffffff,%r9d
180051a87:	74 1e                	je     0x180051aa7
180051a89:	44 8b 40 40          	mov    0x40(%rax),%r8d
180051a8d:	48 8b 57 10          	mov    0x10(%rdi),%rdx
180051a91:	48 8b 4f 08          	mov    0x8(%rdi),%rcx
180051a95:	e8 a6 81 fe ff       	call   0x180039c40
180051a9a:	48 8b c8             	mov    %rax,%rcx
180051a9d:	e8 ce ce 0e 00       	call   0x18013e970
180051aa2:	66 83 48 4e 02       	orw    $0x2,0x4e(%rax)
180051aa7:	48 8b ce             	mov    %rsi,%rcx
180051aaa:	e8 c1 ce 0e 00       	call   0x18013e970
180051aaf:	48 8b 70 50          	mov    0x50(%rax),%rsi
180051ab3:	48 85 f6             	test   %rsi,%rsi
180051ab6:	75 bf                	jne    0x180051a77
180051ab8:	4d 8b b5 e8 00 00 00 	mov    0xe8(%r13),%r14
180051abf:	4d 8b bd c0 00 00 00 	mov    0xc0(%r13),%r15
180051ac6:	48 8b 5f 08          	mov    0x8(%rdi),%rbx
180051aca:	33 d2                	xor    %edx,%edx
180051acc:	49 8b c4             	mov    %r12,%rax
180051acf:	49 f7 f6             	div    %r14
180051ad2:	49 8b cf             	mov    %r15,%rcx
180051ad5:	83 cd ff             	or     $0xffffffff,%ebp
180051ad8:	48 8b d0             	mov    %rax,%rdx
180051adb:	e8 fc 1d ff ff       	call   0x1800438dc
180051ae0:	33 f6                	xor    %esi,%esi
180051ae2:	4c 8b e0             	mov    %rax,%r12
180051ae5:	44 8d 7e 10          	lea    0x10(%rsi),%r15d
180051ae9:	48 85 c0             	test   %rax,%rax
180051aec:	0f 84 0e 02 00 00    	je     0x180051d00
180051af2:	4c 8b ac 24 b8 00 00 	mov    0xb8(%rsp),%r13
180051af9:	00
180051afa:	49 8b cc             	mov    %r12,%rcx
180051afd:	e8 6e ce 0e 00       	call   0x18013e970
180051b02:	48 8b d8             	mov    %rax,%rbx
180051b05:	8b 48 40             	mov    0x40(%rax),%ecx
180051b08:	3b cd                	cmp    %ebp,%ecx
180051b0a:	74 2e                	je     0x180051b3a
180051b0c:	48 8b 47 20          	mov    0x20(%rdi),%rax
180051b10:	8b e9                	mov    %ecx,%ebp
180051b12:	8b ce                	mov    %esi,%ecx
180051b14:	89 8c 24 a8 00 00 00 	mov    %ecx,0xa8(%rsp)
180051b1b:	48 85 c0             	test   %rax,%rax
180051b1e:	74 06                	je     0x180051b26
180051b20:	48 83 c0 58          	add    $0x58,%rax
180051b24:	eb 08                	jmp    0x180051b2e
180051b26:	48 8b 47 08          	mov    0x8(%rdi),%rax
180051b2a:	48 83 c0 50          	add    $0x50,%rax
180051b2e:	8b 50 08             	mov    0x8(%rax),%edx
180051b31:	89 94 24 a0 00 00 00 	mov    %edx,0xa0(%rsp)
180051b38:	eb 0e                	jmp    0x180051b48
180051b3a:	8b 8c 24 a8 00 00 00 	mov    0xa8(%rsp),%ecx
180051b41:	8b 94 24 a0 00 00 00 	mov    0xa0(%rsp),%edx
180051b48:	0f b7 43 4e          	movzwl 0x4e(%rbx),%eax
180051b4c:	a8 02                	test   $0x2,%al
180051b4e:	74 33                	je     0x180051b83
180051b50:	8b f2                	mov    %edx,%esi
180051b52:	b9 fd ff 00 00       	mov    $0xfffd,%ecx
180051b57:	66 23 c1             	and    %cx,%ax
180051b5a:	ff c2                	inc    %edx
180051b5c:	89 94 24 a0 00 00 00 	mov    %edx,0xa0(%rsp)
180051b63:	44 8b c6             	mov    %esi,%r8d
180051b66:	8b d5                	mov    %ebp,%edx
180051b68:	66 89 43 4e          	mov    %ax,0x4e(%rbx)
180051b6c:	48 8b cf             	mov    %rdi,%rcx
180051b6f:	e8 dc f7 ff ff       	call   0x180051350
180051b74:	48 8b c8             	mov    %rax,%rcx
180051b77:	0f b7 00             	movzwl (%rax),%eax
180051b7a:	66 83 c8 04          	or     $0x4,%ax
180051b7e:	66 89 01             	mov    %ax,(%rcx)
180051b81:	eb 0b                	jmp    0x180051b8e
180051b83:	8b f1                	mov    %ecx,%esi
180051b85:	ff c1                	inc    %ecx
180051b87:	89 8c 24 a8 00 00 00 	mov    %ecx,0xa8(%rsp)
180051b8e:	44 8b c6             	mov    %esi,%r8d
180051b91:	8b d5                	mov    %ebp,%edx
180051b93:	48 8b cf             	mov    %rdi,%rcx
180051b96:	e8 b5 f7 ff ff       	call   0x180051350
180051b9b:	48 8b c8             	mov    %rax,%rcx
180051b9e:	8b 43 44             	mov    0x44(%rbx),%eax
180051ba1:	89 41 10             	mov    %eax,0x10(%rcx)
180051ba4:	48 8b cf             	mov    %rdi,%rcx
180051ba7:	e8 a4 f7 ff ff       	call   0x180051350
180051bac:	48 8b c8             	mov    %rax,%rcx
180051baf:	8b 43 48             	mov    0x48(%rbx),%eax
180051bb2:	89 41 14             	mov    %eax,0x14(%rcx)
180051bb5:	0f b7 43 4c          	movzwl 0x4c(%rbx),%eax
180051bb9:	a8 02                	test   $0x2,%al
180051bbb:	74 19                	je     0x180051bd6
180051bbd:	48 8b cf             	mov    %rdi,%rcx
180051bc0:	e8 8b f7 ff ff       	call   0x180051350
180051bc5:	48 8b c8             	mov    %rax,%rcx
180051bc8:	0f b7 00             	movzwl (%rax),%eax
180051bcb:	66 41 0b c7          	or     %r15w,%ax
180051bcf:	66 89 01             	mov    %ax,(%rcx)
180051bd2:	0f b7 43 4c          	movzwl 0x4c(%rbx),%eax
180051bd6:	a8 08                	test   $0x8,%al
180051bd8:	74 1a                	je     0x180051bf4
180051bda:	44 8b c6             	mov    %esi,%r8d
180051bdd:	8b d5                	mov    %ebp,%edx
180051bdf:	48 8b cf             	mov    %rdi,%rcx
180051be2:	e8 69 f7 ff ff       	call   0x180051350
180051be7:	48 8b c8             	mov    %rax,%rcx
180051bea:	0f b7 00             	movzwl (%rax),%eax
180051bed:	66 83 c8 20          	or     $0x20,%ax
180051bf1:	66 89 01             	mov    %ax,(%rcx)
180051bf4:	48 8b 4b 10          	mov    0x10(%rbx),%rcx
180051bf8:	b2 02                	mov    $0x2,%dl
180051bfa:	44 8b 43 3c          	mov    0x3c(%rbx),%r8d
180051bfe:	48 8b 49 10          	mov    0x10(%rcx),%rcx
180051c02:	e8 5d b3 0e 00       	call   0x18013cf64
180051c07:	48 8b c8             	mov    %rax,%rcx
180051c0a:	e8 61 cd 0e 00       	call   0x18013e970
180051c0f:	4c 8b f8             	mov    %rax,%r15
180051c12:	83 78 44 05          	cmpl   $0x5,0x44(%rax)
180051c16:	4c 8b b0 c8 00 00 00 	mov    0xc8(%rax),%r14
180051c1d:	75 15                	jne    0x180051c34
180051c1f:	83 7b 48 ff          	cmpl   $0xffffffff,0x48(%rbx)
180051c23:	75 0f                	jne    0x180051c34
180051c25:	48 8b 84 24 c0 00 00 	mov    0xc0(%rsp),%rax
180051c2c:	00
180051c2d:	48 ff 80 60 01 00 00 	incq   0x160(%rax)
180051c34:	41 8b 4f 6c          	mov    0x6c(%r15),%ecx
180051c38:	e8 cf e7 ff ff       	call   0x18005040c
180051c3d:	8b 8c 24 b0 00 00 00 	mov    0xb0(%rsp),%ecx
180051c44:	44 8b c6             	mov    %esi,%r8d
180051c47:	4d 8b 4f 10          	mov    0x10(%r15),%r9
180051c4b:	3b c8                	cmp    %eax,%ecx
180051c4d:	8b d5                	mov    %ebp,%edx
180051c4f:	0f 43 c8             	cmovae %eax,%ecx
180051c52:	89 8c 24 b0 00 00 00 	mov    %ecx,0xb0(%rsp)
180051c59:	48 8b cf             	mov    %rdi,%rcx
180051c5c:	e8 ef f6 ff ff       	call   0x180051350
180051c61:	48 8b c8             	mov    %rax,%rcx
180051c64:	41 8b 41 18          	mov    0x18(%r9),%eax
180051c68:	89 41 04             	mov    %eax,0x4(%rcx)
180051c6b:	b9 01 00 00 00       	mov    $0x1,%ecx
180051c70:	84 4b 4c             	test   %cl,0x4c(%rbx)
180051c73:	74 07                	je     0x180051c7c
180051c75:	41 b1 03             	mov    $0x3,%r9b
180051c78:	b0 07                	mov    $0x7,%al
180051c7a:	eb 11                	jmp    0x180051c8d
180051c7c:	4d 85 f6             	test   %r14,%r14
180051c7f:	75 07                	jne    0x180051c88
180051c81:	41 b1 02             	mov    $0x2,%r9b
180051c84:	8a c1                	mov    %cl,%al
180051c86:	eb 05                	jmp    0x180051c8d
180051c88:	44 8a c9             	mov    %cl,%r9b
180051c8b:	32 c0                	xor    %al,%al
180051c8d:	48 8b cf             	mov    %rdi,%rcx
180051c90:	88 44 24 20          	mov    %al,0x20(%rsp)
180051c94:	e8 6f 3c 00 00       	call   0x180055908
180051c99:	44 8b c6             	mov    %esi,%r8d
180051c9c:	8b d5                	mov    %ebp,%edx
180051c9e:	48 8b cf             	mov    %rdi,%rcx
180051ca1:	e8 aa f6 ff ff       	call   0x180051350
180051ca6:	48 8b c8             	mov    %rax,%rcx
180051ca9:	33 f6                	xor    %esi,%esi
180051cab:	48 8b 43 30          	mov    0x30(%rbx),%rax
180051caf:	48 89 41 08          	mov    %rax,0x8(%rcx)
180051cb3:	4d 85 f6             	test   %r14,%r14
180051cb6:	74 29                	je     0x180051ce1
180051cb8:	49 8b 47 10          	mov    0x10(%r15),%rax
180051cbc:	49 8b 95 d8 00 00 00 	mov    0xd8(%r13),%rdx
180051cc3:	8b 48 18             	mov    0x18(%rax),%ecx
180051cc6:	0f ab 0a             	bts    %ecx,(%rdx)
180051cc9:	8b 44 24 30          	mov    0x30(%rsp),%eax
180051ccd:	8d 4e 01             	lea    0x1(%rsi),%ecx