180057901:	41 5f                	pop    %r15
180057903:	41 5e                	pop    %r14
180057905:	5f                   	pop    %rdi
180057906:	c3                   	ret
180057907:	cc                   	int3
180057908:	48 8b c4             	mov    %rsp,%rax
18005790b:	48 89 58 08          	mov    %rbx,0x8(%rax)
18005790f:	48 89 68 10          	mov    %rbp,0x10(%rax)
180057913:	48 89 70 18          	mov    %rsi,0x18(%rax)
180057917:	48 89 78 20          	mov    %rdi,0x20(%rax)
18005791b:	41 54                	push   %r12
18005791d:	41 56                	push   %r14
18005791f:	41 57                	push   %r15
180057921:	48 83 ec 30          	sub    $0x30,%rsp
180057925:	44 8b 42 2c          	mov    0x2c(%rdx),%r8d
180057929:	48 8b da             	mov    %rdx,%rbx
18005792c:	44 8b 72 28          	mov    0x28(%rdx),%r14d
180057930:	48 8b f9             	mov    %rcx,%rdi
180057933:	41 8b d6             	mov    %r14d,%edx
180057936:	e8 41 9a ff ff       	call   0x18005137c
18005793b:	48 8b 51 08          	mov    0x8(%rcx),%rdx
18005793f:	44 8b f8             	mov    %eax,%r15d
180057942:	44 8a 63 39          	mov    0x39(%rbx),%r12b
180057946:	0f b6 5b 38          	movzbl 0x38(%rbx),%ebx
18005794a:	48 8b aa a8 00 00 00 	mov    0xa8(%rdx),%rbp
180057951:	83 f8 ff             	cmp    $0xffffffff,%eax
180057954:	75 0c                	jne    0x180057962
180057956:	48 ff 85 68 01 00 00 	incq   0x168(%rbp)
18005795d:	e9 bc 00 00 00       	jmp    0x180057a1e
180057962:	45 8b c7             	mov    %r15d,%r8d
180057965:	41 8b d6             	mov    %r14d,%edx
180057968:	e8 e3 99 ff ff       	call   0x180051350
18005796d:	48 8b f0             	mov    %rax,%rsi
180057970:	8b c3                	mov    %ebx,%eax
180057972:	84 db                	test   %bl,%bl
180057974:	74 28                	je     0x18005799e
180057976:	83 f8 01             	cmp    $0x1,%eax
180057979:	75 28                	jne    0x1800579a3
18005797b:	48 8b d6             	mov    %rsi,%rdx
18005797e:	e8 39 9a ff ff       	call   0x1800513bc
180057983:	48 85 c0             	test   %rax,%rax
180057986:	75 04                	jne    0x18005798c
180057988:	b3 02                	mov    $0x2,%bl
18005798a:	eb 17                	jmp    0x1800579a3
18005798c:	8a 46 02             	mov    0x2(%rsi),%al
18005798f:	24 0f                	and    $0xf,%al
180057991:	3c 01                	cmp    $0x1,%al
180057993:	75 0e                	jne    0x1800579a3
180057995:	48 ff 85 68 01 00 00 	incq   0x168(%rbp)
18005799c:	eb 05                	jmp    0x1800579a3
18005799e:	b3 03                	mov    $0x3,%bl
1800579a0:	44 8a e3             	mov    %bl,%r12b
1800579a3:	44 8a cb             	mov    %bl,%r9b
1800579a6:	44 88 64 24 20       	mov    %r12b,0x20(%rsp)
1800579ab:	45 8b c7             	mov    %r15d,%r8d
1800579ae:	41 8b d6             	mov    %r14d,%edx
1800579b1:	48 8b cf             	mov    %rdi,%rcx
1800579b4:	e8 4f df ff ff       	call   0x180055908
1800579b9:	84 db                	test   %bl,%bl
1800579bb:	74 53                	je     0x180057a10
1800579bd:	80 fb 02             	cmp    $0x2,%bl
1800579c0:	76 5c                	jbe    0x180057a1e
1800579c2:	80 fb 03             	cmp    $0x3,%bl
1800579c5:	75 49                	jne    0x180057a10
1800579c7:	48 8b 5f 08          	mov    0x8(%rdi),%rbx
1800579cb:	8b 43 2c             	mov    0x2c(%rbx),%eax
1800579ce:	a8 10                	test   $0x10,%al
1800579d0:	74 3e                	je     0x180057a10
1800579d2:	48 8b d6             	mov    %rsi,%rdx
1800579d5:	48 8b cf             	mov    %rdi,%rcx
1800579d8:	e8 27 9a ff ff       	call   0x180051404
1800579dd:	4c 8b 4f 20          	mov    0x20(%rdi),%r9
1800579e1:	48 8d 4b 30          	lea    0x30(%rbx),%rcx
1800579e5:	48 8b 56 08          	mov    0x8(%rsi),%rdx
1800579e9:	4d 85 c9             	test   %r9,%r9
1800579ec:	4d 8d 41 38          	lea    0x38(%r9),%r8
1800579f0:	4c 0f 44 c1          	cmove  %rcx,%r8
1800579f4:	48 8b c8             	mov    %rax,%rcx
1800579f7:	4d 8b 40 08          	mov    0x8(%r8),%r8
1800579fb:	e8 fc ff fd ff       	call   0x1800379fc
180057a00:	84 c0                	test   %al,%al
180057a02:	74 0c                	je     0x180057a10
180057a04:	0f b7 06             	movzwl (%rsi),%eax
180057a07:	66 83 c8 40          	or     $0x40,%ax
180057a0b:	66 89 06             	mov    %ax,(%rsi)
180057a0e:	eb 0e                	jmp    0x180057a1e
180057a10:	45 8b c7             	mov    %r15d,%r8d
180057a13:	41 8b d6             	mov    %r14d,%edx
180057a16:	48 8b cf             	mov    %rdi,%rcx
180057a19:	e8 be dd ff ff       	call   0x1800557dc
180057a1e:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
180057a23:	33 c0                	xor    %eax,%eax
180057a25:	48 8b 6c 24 58       	mov    0x58(%rsp),%rbp
180057a2a:	48 8b 74 24 60       	mov    0x60(%rsp),%rsi
180057a2f:	48 8b 7c 24 68       	mov    0x68(%rsp),%rdi
180057a34:	48 83 c4 30          	add    $0x30,%rsp
180057a38:	41 5f                	pop    %r15
180057a3a:	41 5e                	pop    %r14
180057a3c:	41 5c                	pop    %r12
180057a3e:	c3                   	ret
180057a3f:	cc                   	int3
180057a40:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
180057a45:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
180057a4a:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
180057a4f:	57                   	push   %rdi
180057a50:	41 54                	push   %r12
180057a52:	41 55                	push   %r13
180057a54:	41 56                	push   %r14
180057a56:	41 57                	push   %r15
180057a58:	48 83 ec 20          	sub    $0x20,%rsp
180057a5c:	48 8b d9             	mov    %rcx,%rbx
180057a5f:	48 8b f2             	mov    %rdx,%rsi
180057a62:	48 8b 49 20          	mov    0x20(%rcx),%rcx
180057a66:	48 85 c9             	test   %rcx,%rcx
180057a69:	74 06                	je     0x180057a71
180057a6b:	48 83 c1 58          	add    $0x58,%rcx
180057a6f:	eb 08                	jmp    0x180057a79
180057a71:	48 8b 4b 08          	mov    0x8(%rbx),%rcx
180057a75:	48 83 c1 50          	add    $0x50,%rcx
180057a79:	0f b6 43 2b          	movzbl 0x2b(%rbx),%eax
180057a7d:	41 bd 01 00 00 00    	mov    $0x1,%r13d
180057a83:	8b 49 10             	mov    0x10(%rcx),%ecx
180057a86:	0f af c8             	imul   %eax,%ecx
180057a89:	39 4a 04             	cmp    %ecx,0x4(%rdx)
180057a8c:	73 04                	jae    0x180057a92
180057a8e:	44 88 6a 02          	mov    %r13b,0x2(%rdx)
180057a92:	33 ed                	xor    %ebp,%ebp
180057a94:	44 8d 7d 02          	lea    0x2(%rbp),%r15d
180057a98:	48 8b 43 20          	mov    0x20(%rbx),%rax
180057a9c:	48 85 c0             	test   %rax,%rax
180057a9f:	74 06                	je     0x180057aa7
180057aa1:	48 83 c0 58          	add    $0x58,%rax
180057aa5:	eb 08                	jmp    0x180057aaf
180057aa7:	48 8b 43 08          	mov    0x8(%rbx),%rax
180057aab:	48 83 c0 50          	add    $0x50,%rax
180057aaf:	3b 68 10             	cmp    0x10(%rax),%ebp
180057ab2:	0f 83 ca 00 00 00    	jae    0x180057b82
180057ab8:	45 33 f6             	xor    %r14d,%r14d
180057abb:	44 38 73 2b          	cmp    %r14b,0x2b(%rbx)
180057abf:	0f 86 b5 00 00 00    	jbe    0x180057b7a
180057ac5:	45 8b c6             	mov    %r14d,%r8d
180057ac8:	8b d5                	mov    %ebp,%edx
180057aca:	48 8b cb             	mov    %rbx,%rcx
180057acd:	e8 7e 98 ff ff       	call   0x180051350
180057ad2:	48 8b f8             	mov    %rax,%rdi
180057ad5:	8a 40 02             	mov    0x2(%rax),%al
180057ad8:	24 0f                	and    $0xf,%al
180057ada:	2c 07                	sub    $0x7,%al
180057adc:	41 3a c5             	cmp    %r13b,%al
180057adf:	0f 86 85 00 00 00    	jbe    0x180057b6a
180057ae5:	44 38 6e 02          	cmp    %r13b,0x2(%rsi)
180057ae9:	75 33                	jne    0x180057b1e
180057aeb:	44 8b 4f 10          	mov    0x10(%rdi),%r9d
180057aef:	44 8b c5             	mov    %ebp,%r8d
180057af2:	48 8b 53 10          	mov    0x10(%rbx),%rdx
180057af6:	48 8b 4b 08          	mov    0x8(%rbx),%rcx
180057afa:	e8 41 21 fe ff       	call   0x180039c40
180057aff:	48 8b c8             	mov    %rax,%rcx
180057b02:	8a 47 03             	mov    0x3(%rdi),%al
180057b05:	24 0f                	and    $0xf,%al
180057b07:	41 3a c5             	cmp    %r13b,%al
180057b0a:	75 5e                	jne    0x180057b6a
180057b0c:	e8 5f 6e 0e 00       	call   0x18013e970
180057b11:	44 84 68 4c          	test   %r13b,0x4c(%rax)
180057b15:	75 53                	jne    0x180057b6a
180057b17:	0f b7 07             	movzwl (%rdi),%eax
180057b1a:	a8 04                	test   $0x4,%al
180057b1c:	75 4c                	jne    0x180057b6a
180057b1e:	44 8b 47 14          	mov    0x14(%rdi),%r8d
180057b22:	41 83 f8 ff          	cmp    $0xffffffff,%r8d
180057b26:	74 32                	je     0x180057b5a
180057b28:	8b d5                	mov    %ebp,%edx
180057b2a:	48 8b cb             	mov    %rbx,%rcx
180057b2d:	e8 1e 98 ff ff       	call   0x180051350
180057b32:	8a 48 03             	mov    0x3(%rax),%cl
180057b35:	80 e1 0f             	and    $0xf,%cl
180057b38:	41 3a cd             	cmp    %r13b,%cl
180057b3b:	75 1d                	jne    0x180057b5a
180057b3d:	48 8b cb             	mov    %rbx,%rcx
180057b40:	c6 47 03 68          	movb   $0x68,0x3(%rdi)
180057b44:	e8 07 98 ff ff       	call   0x180051350
180057b49:	48 8b c8             	mov    %rax,%rcx
180057b4c:	ba ef ff 00 00       	mov    $0xffef,%edx
180057b51:	0f b7 00             	movzwl (%rax),%eax
180057b54:	66 23 c2             	and    %dx,%ax
180057b57:	66 89 01             	mov    %ax,(%rcx)
180057b5a:	f6 47 03 0f          	testb  $0xf,0x3(%rdi)
180057b5e:	74 0a                	je     0x180057b6a
180057b60:	0f b7 07             	movzwl (%rdi),%eax
180057b63:	66 41 0b c7          	or     %r15w,%ax
180057b67:	66 89 07             	mov    %ax,(%rdi)
180057b6a:	0f b6 43 2b          	movzbl 0x2b(%rbx),%eax
180057b6e:	45 03 f5             	add    %r13d,%r14d
180057b71:	44 3b f0             	cmp    %eax,%r14d
180057b74:	0f 82 4b ff ff ff    	jb     0x180057ac5
180057b7a:	41 03 ed             	add    %r13d,%ebp
180057b7d:	e9 16 ff ff ff       	jmp    0x180057a98
180057b82:	33 ff                	xor    %edi,%edi
180057b84:	44 8b ff             	mov    %edi,%r15d
180057b87:	48 8b 43 20          	mov    0x20(%rbx),%rax
180057b8b:	48 85 c0             	test   %rax,%rax
180057b8e:	74 06                	je     0x180057b96
180057b90:	48 83 c0 58          	add    $0x58,%rax
180057b94:	eb 08                	jmp    0x180057b9e
180057b96:	48 8b 43 08          	mov    0x8(%rbx),%rax
180057b9a:	48 83 c0 50          	add    $0x50,%rax
180057b9e:	3b 78 10             	cmp    0x10(%rax),%edi
180057ba1:	0f 83 fb 00 00 00    	jae    0x180057ca2
180057ba7:	33 ed                	xor    %ebp,%ebp
180057ba9:	40 38 6b 2b          	cmp    %bpl,0x2b(%rbx)
180057bad:	0f 86 e7 00 00 00    	jbe    0x180057c9a
180057bb3:	44 8b c5             	mov    %ebp,%r8d
180057bb6:	8b d7                	mov    %edi,%edx
180057bb8:	48 8b cb             	mov    %rbx,%rcx
180057bbb:	e8 90 97 ff ff       	call   0x180051350
180057bc0:	4c 8b e0             	mov    %rax,%r12
180057bc3:	0f b7 00             	movzwl (%rax),%eax
180057bc6:	a8 02                	test   $0x2,%al
180057bc8:	0f 84 bd 00 00 00    	je     0x180057c8b
180057bce:	45 8b 4c 24 10       	mov    0x10(%r12),%r9d
180057bd3:	44 8b c7             	mov    %edi,%r8d
180057bd6:	48 8b 53 10          	mov    0x10(%rbx),%rdx
180057bda:	48 8b 4b 08          	mov    0x8(%rbx),%rcx
180057bde:	e8 5d 20 fe ff       	call   0x180039c40
180057be3:	48 8b c8             	mov    %rax,%rcx
180057be6:	e8 85 6d 0e 00       	call   0x18013e970
180057beb:	41 0f b6 4c 24 03    	movzbl 0x3(%r12),%ecx
180057bf1:	45 32 f6             	xor    %r14b,%r14b
180057bf4:	83 e1 0f             	and    $0xf,%ecx
180057bf7:	41 2b cd             	sub    %r13d,%ecx
180057bfa:	74 2e                	je     0x180057c2a
180057bfc:	83 e9 02             	sub    $0x2,%ecx
180057bff:	74 15                	je     0x180057c16
180057c01:	83 f9 05             	cmp    $0x5,%ecx
180057c04:	0f 85 98 00 00 00    	jne    0x180057ca2
180057c0a:	f6 40 4c 02          	testb  $0x2,0x4c(%rax)
180057c0e:	74 15                	je     0x180057c25
180057c10:	44 88 6e 01          	mov    %r13b,0x1(%rsi)
180057c14:	eb 20                	jmp    0x180057c36
180057c16:	41 8a 44 24 02       	mov    0x2(%r12),%al
180057c1b:	24 0f                	and    $0xf,%al
180057c1d:	41 2a c5             	sub    %r13b,%al
180057c20:	41 3a c5             	cmp    %r13b,%al
180057c23:	77 11                	ja     0x180057c36
180057c25:	44 88 2e             	mov    %r13b,(%rsi)
180057c28:	eb 0c                	jmp    0x180057c36
180057c2a:	44 84 68 4c          	test   %r13b,0x4c(%rax)
180057c2e:	45 0f b6 f6          	movzbl %r14b,%r14d
180057c32:	45 0f 44 f5          	cmove  %r13d,%r14d
180057c36:	48 8b 4b 08          	mov    0x8(%rbx),%rcx
180057c3a:	44 8b c7             	mov    %edi,%r8d
180057c3d:	45 8b 4c 24 10       	mov    0x10(%r12),%r9d
180057c42:	48 8b 53 10          	mov    0x10(%rbx),%rdx
180057c46:	48 8b 89 18 01 00 00 	mov    0x118(%rcx),%rcx
180057c4d:	e8 7e 60 0e 00       	call   0x18013dcd0
180057c52:	45 84 f6             	test   %r14b,%r14b
180057c55:	75 21                	jne    0x180057c78
180057c57:	48 8b cb             	mov    %rbx,%rcx
180057c5a:	48 85 c0             	test   %rax,%rax
180057c5d:	74 0a                	je     0x180057c69
180057c5f:	48 8b d0             	mov    %rax,%rdx
180057c62:	e8 21 da ff ff       	call   0x180055688
180057c67:	eb 1b                	jmp    0x180057c84
180057c69:	44 8b c5             	mov    %ebp,%r8d
180057c6c:	8b d7                	mov    %edi,%edx
180057c6e:	e8 49 d9 ff ff       	call   0x1800555bc
180057c73:	ff 4e 04             	decl   0x4(%rsi)
180057c76:	eb 0c                	jmp    0x180057c84
180057c78:	48 8b c8             	mov    %rax,%rcx
180057c7b:	e8 74 6e 0e 00       	call   0x18013eaf4
180057c80:	44 01 6e 04          	add    %r13d,0x4(%rsi)
180057c84:	44 8b f8             	mov    %eax,%r15d
180057c87:	85 c0                	test   %eax,%eax
180057c89:	78 17                	js     0x180057ca2
180057c8b:	0f b6 43 2b          	movzbl 0x2b(%rbx),%eax
180057c8f:	41 03 ed             	add    %r13d,%ebp
180057c92:	3b e8                	cmp    %eax,%ebp
180057c94:	0f 82 19 ff ff ff    	jb     0x180057bb3
180057c9a:	41 03 fd             	add    %r13d,%edi
180057c9d:	e9 e5 fe ff ff       	jmp    0x180057b87
180057ca2:	48 8b 5c 24 58       	mov    0x58(%rsp),%rbx
180057ca7:	41 8b c7             	mov    %r15d,%eax
180057caa:	48 8b 6c 24 60       	mov    0x60(%rsp),%rbp
180057caf:	48 8b 74 24 68       	mov    0x68(%rsp),%rsi
180057cb4:	48 83 c4 20          	add    $0x20,%rsp
180057cb8:	41 5f                	pop    %r15
180057cba:	41 5e                	pop    %r14
180057cbc:	41 5d                	pop    %r13
180057cbe:	41 5c                	pop    %r12
180057cc0:	5f                   	pop    %rdi
180057cc1:	c3                   	ret
180057cc2:	cc                   	int3
180057cc3:	cc                   	int3
180057cc4:	48 8b c4             	mov    %rsp,%rax
180057cc7:	48 89 58 08          	mov    %rbx,0x8(%rax)
180057ccb:	48 89 68 10          	mov    %rbp,0x10(%rax)
180057ccf:	48 89 70 18          	mov    %rsi,0x18(%rax)
180057cd3:	48 89 78 20          	mov    %rdi,0x20(%rax)
180057cd7:	41 56                	push   %r14
180057cd9:	48 83 ec 30          	sub    $0x30,%rsp
180057cdd:	44 8a f2             	mov    %dl,%r14b
180057ce0:	48 8b d9             	mov    %rcx,%rbx
180057ce3:	33 f6                	xor    %esi,%esi
180057ce5:	48 8b 43 20          	mov    0x20(%rbx),%rax
180057ce9:	48 85 c0             	test   %rax,%rax
180057cec:	74 06                	je     0x180057cf4
180057cee:	48 83 c0 58          	add    $0x58,%rax
180057cf2:	eb 08                	jmp    0x180057cfc
180057cf4:	48 8b 43 08          	mov    0x8(%rbx),%rax
180057cf8:	48 83 c0 50          	add    $0x50,%rax
180057cfc:	3b 70 10             	cmp    0x10(%rax),%esi
180057cff:	73 6d                	jae    0x180057d6e
180057d01:	33 ed                	xor    %ebp,%ebp
180057d03:	40 38 6b 2b          	cmp    %bpl,0x2b(%rbx)
180057d07:	76 5e                	jbe    0x180057d67
180057d09:	44 8b c5             	mov    %ebp,%r8d
180057d0c:	8b d6                	mov    %esi,%edx
180057d0e:	48 8b cb             	mov    %rbx,%rcx
180057d11:	e8 3a 96 ff ff       	call   0x180051350
180057d16:	48 8b f8             	mov    %rax,%rdi
180057d19:	8a 48 02             	mov    0x2(%rax),%cl
180057d1c:	80 e1 0f             	and    $0xf,%cl
180057d1f:	80 f9 07             	cmp    $0x7,%cl
180057d22:	74 39                	je     0x180057d5d
180057d24:	0f b7 08             	movzwl (%rax),%ecx
180057d27:	f6 c1 02             	test   $0x2,%cl
180057d2a:	74 31                	je     0x180057d5d
180057d2c:	0f b7 08             	movzwl (%rax),%ecx
180057d2f:	b8 fd ff 00 00       	mov    $0xfffd,%eax
180057d34:	66 23 c8             	and    %ax,%cx
180057d37:	66 89 0f             	mov    %cx,(%rdi)
180057d3a:	45 84 f6             	test   %r14b,%r14b
180057d3d:	74 1a                	je     0x180057d59
180057d3f:	44 8a 4f 03          	mov    0x3(%rdi),%r9b
180057d43:	48 8b cb             	mov    %rbx,%rcx
180057d46:	41 8a c1             	mov    %r9b,%al
180057d49:	41 80 e1 0f          	and    $0xf,%r9b
180057d4d:	c0 e8 04             	shr    $0x4,%al
180057d50:	88 44 24 20          	mov    %al,0x20(%rsp)
180057d54:	e8 af db ff ff       	call   0x180055908
180057d59:	c6 47 03 00          	movb   $0x0,0x3(%rdi)
180057d5d:	0f b6 43 2b          	movzbl 0x2b(%rbx),%eax
180057d61:	ff c5                	inc    %ebp
180057d63:	3b e8                	cmp    %eax,%ebp
180057d65:	72 a2                	jb     0x180057d09
180057d67:	ff c6                	inc    %esi
180057d69:	e9 77 ff ff ff       	jmp    0x180057ce5
180057d6e:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
180057d73:	33 c0                	xor    %eax,%eax
180057d75:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp