180070be5:	85 ff                	test   %edi,%edi
180070be7:	74 51                	je     0x180070c3a
180070be9:	48 8b 45 68          	mov    0x68(%rbp),%rax
180070bed:	48 8d 4d e0          	lea    -0x20(%rbp),%rcx
180070bf1:	4c 8b 45 f0          	mov    -0x10(%rbp),%r8
180070bf5:	49 03 c5             	add    %r13,%rax
180070bf8:	8b 16                	mov    (%rsi),%edx
180070bfa:	44 8b cf             	mov    %edi,%r9d
180070bfd:	48 89 4c 24 28       	mov    %rcx,0x28(%rsp)
180070c02:	48 8b ce             	mov    %rsi,%rcx
180070c05:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
180070c0a:	e8 c5 07 00 00       	call   0x1800713d4
180070c0f:	8b d8                	mov    %eax,%ebx
180070c11:	85 db                	test   %ebx,%ebx
180070c13:	78 2a                	js     0x180070c3f
180070c15:	44 03 75 e0          	add    -0x20(%rbp),%r14d
180070c19:	44 3b 75 60          	cmp    0x60(%rbp),%r14d
180070c1d:	73 24                	jae    0x180070c43
180070c1f:	4c 8b 4d 58          	mov    0x58(%rbp),%r9
180070c23:	4c 8b 45 50          	mov    0x50(%rbp),%r8
180070c27:	e9 fd fe ff ff       	jmp    0x180070b29
180070c2c:	bb 01 00 00 c0       	mov    $0xc0000001,%ebx
180070c31:	eb 0c                	jmp    0x180070c3f
180070c33:	bb bb 00 00 c0       	mov    $0xc00000bb,%ebx
180070c38:	eb 05                	jmp    0x180070c3f
180070c3a:	bb 0d 00 00 c0       	mov    $0xc000000d,%ebx
180070c3f:	8b c3                	mov    %ebx,%eax
180070c41:	eb 02                	jmp    0x180070c45
180070c43:	33 c0                	xor    %eax,%eax
180070c45:	48 83 c4 60          	add    $0x60,%rsp
180070c49:	41 5e                	pop    %r14
180070c4b:	41 5d                	pop    %r13
180070c4d:	41 5c                	pop    %r12
180070c4f:	5f                   	pop    %rdi
180070c50:	5e                   	pop    %rsi
180070c51:	5b                   	pop    %rbx
180070c52:	5d                   	pop    %rbp
180070c53:	c3                   	ret
180070c54:	cc                   	int3
180070c55:	cc                   	int3
180070c56:	cc                   	int3
180070c57:	cc                   	int3
180070c58:	48 8b c4             	mov    %rsp,%rax
180070c5b:	4c 89 48 20          	mov    %r9,0x20(%rax)
180070c5f:	4c 89 40 18          	mov    %r8,0x18(%rax)
180070c63:	48 89 50 10          	mov    %rdx,0x10(%rax)
180070c67:	48 89 48 08          	mov    %rcx,0x8(%rax)
180070c6b:	55                   	push   %rbp
180070c6c:	53                   	push   %rbx
180070c6d:	56                   	push   %rsi
180070c6e:	57                   	push   %rdi
180070c6f:	41 54                	push   %r12
180070c71:	41 55                	push   %r13
180070c73:	41 56                	push   %r14
180070c75:	41 57                	push   %r15
180070c77:	48 8b ec             	mov    %rsp,%rbp
180070c7a:	48 83 ec 78          	sub    $0x78,%rsp
180070c7e:	80 7d 78 00          	cmpb   $0x0,0x78(%rbp)
180070c82:	49 8b d9             	mov    %r9,%rbx
180070c85:	4c 8b e9             	mov    %rcx,%r13
180070c88:	75 0a                	jne    0x180070c94
180070c8a:	b8 bb 00 00 c0       	mov    $0xc00000bb,%eax
180070c8f:	e9 c3 01 00 00       	jmp    0x180070e57
180070c94:	0f b6 4a 18          	movzbl 0x18(%rdx),%ecx
180070c98:	33 ff                	xor    %edi,%edi
180070c9a:	8b 72 1c             	mov    0x1c(%rdx),%esi
180070c9d:	89 4d d0             	mov    %ecx,-0x30(%rbp)
180070ca0:	44 8b e6             	mov    %esi,%r12d
180070ca3:	8b ce                	mov    %esi,%ecx
180070ca5:	e8 a6 91 02 00       	call   0x180099e50
180070caa:	4c 8b f0             	mov    %rax,%r14
180070cad:	48 85 c0             	test   %rax,%rax
180070cb0:	75 0a                	jne    0x180070cbc
180070cb2:	bf 17 00 00 c0       	mov    $0xc0000017,%edi
180070cb7:	e9 99 01 00 00       	jmp    0x180070e55
180070cbc:	49 8b cc             	mov    %r12,%rcx
180070cbf:	e8 8c 91 02 00       	call   0x180099e50
180070cc4:	4c 8b f8             	mov    %rax,%r15
180070cc7:	48 85 c0             	test   %rax,%rax
180070cca:	75 0a                	jne    0x180070cd6
180070ccc:	bf 17 00 00 c0       	mov    $0xc0000017,%edi
180070cd1:	e9 6a 01 00 00       	jmp    0x180070e40
180070cd6:	21 7d cc             	and    %edi,-0x34(%rbp)
180070cd9:	39 7d 68             	cmp    %edi,0x68(%rbp)
180070cdc:	0f 86 5e 01 00 00    	jbe    0x180070e40
180070ce2:	49 f7 dc             	neg    %r12
180070ce5:	49 8b c4             	mov    %r12,%rax
180070ce8:	48 23 c3             	and    %rbx,%rax
180070ceb:	33 db                	xor    %ebx,%ebx
180070ced:	48 89 45 e0          	mov    %rax,-0x20(%rbp)
180070cf1:	85 f6                	test   %esi,%esi
180070cf3:	0f 84 df 00 00 00    	je     0x180070dd8
180070cf9:	41 83 7d 78 10       	cmpl   $0x10,0x78(%r13)
180070cfe:	0f 8f 37 01 00 00    	jg     0x180070e3b
180070d04:	4c 8b 45 58          	mov    0x58(%rbp),%r8
180070d08:	49 8b cd             	mov    %r13,%rcx
180070d0b:	48 8b 55 50          	mov    0x50(%rbp),%rdx
180070d0f:	44 8b cb             	mov    %ebx,%r9d
180070d12:	4c 03 c8             	add    %rax,%r9
180070d15:	48 8d 45 d8          	lea    -0x28(%rbp),%rax
180070d19:	48 89 44 24 30       	mov    %rax,0x30(%rsp)
180070d1e:	48 8d 45 78          	lea    0x78(%rbp),%rax
180070d22:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
180070d27:	48 8d 45 e8          	lea    -0x18(%rbp),%rax
180070d2b:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
180070d30:	e8 37 01 00 00       	call   0x180070e6c
180070d35:	8b f8                	mov    %eax,%edi
180070d37:	85 c0                	test   %eax,%eax
180070d39:	0f 88 01 01 00 00    	js     0x180070e40
180070d3f:	80 7d 78 00          	cmpb   $0x0,0x78(%rbp)
180070d43:	75 56                	jne    0x180070d9b
180070d45:	8b ce                	mov    %esi,%ecx
180070d47:	2b cb                	sub    %ebx,%ecx
180070d49:	48 39 4d d8          	cmp    %rcx,-0x28(%rbp)
180070d4d:	0f 4c 4d d8          	cmovl  -0x28(%rbp),%ecx
180070d51:	89 4d c8             	mov    %ecx,-0x38(%rbp)
180070d54:	85 c9                	test   %ecx,%ecx
180070d56:	0f 84 df 00 00 00    	je     0x180070e3b
180070d5c:	4c 8b 45 e8          	mov    -0x18(%rbp),%r8
180070d60:	48 8d 55 c8          	lea    -0x38(%rbp),%rdx
180070d64:	48 89 54 24 28       	mov    %rdx,0x28(%rsp)
180070d69:	44 8b c9             	mov    %ecx,%r9d
180070d6c:	41 8b 55 00          	mov    0x0(%r13),%edx
180070d70:	49 8b cd             	mov    %r13,%rcx
180070d73:	8b c3                	mov    %ebx,%eax
180070d75:	49 03 c6             	add    %r14,%rax
180070d78:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
180070d7d:	e8 52 06 00 00       	call   0x1800713d4
180070d82:	8b f8                	mov    %eax,%edi
180070d84:	85 c0                	test   %eax,%eax
180070d86:	0f 88 b4 00 00 00    	js     0x180070e40
180070d8c:	03 5d c8             	add    -0x38(%rbp),%ebx
180070d8f:	48 8b 45 e0          	mov    -0x20(%rbp),%rax
180070d93:	3b de                	cmp    %esi,%ebx
180070d95:	0f 82 5e ff ff ff    	jb     0x180070cf9
180070d9b:	85 db                	test   %ebx,%ebx
180070d9d:	74 39                	je     0x180070dd8
180070d9f:	3b de                	cmp    %esi,%ebx
180070da1:	75 05                	jne    0x180070da8
180070da3:	48 8b ce             	mov    %rsi,%rcx
180070da6:	eb 32                	jmp    0x180070dda
180070da8:	0f b7 4d d0          	movzwl -0x30(%rbp),%ecx
180070dac:	48 8d 45 c8          	lea    -0x38(%rbp),%rax
180070db0:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
180070db5:	66 ff c1             	inc    %cx
180070db8:	4d 8b ce             	mov    %r14,%r9
180070dbb:	89 5c 24 20          	mov    %ebx,0x20(%rsp)
180070dbf:	44 8b c6             	mov    %esi,%r8d
180070dc2:	49 8b d7             	mov    %r15,%rdx
180070dc5:	e8 9a bc 03 00       	call   0x1800aca64
180070dca:	8b f8                	mov    %eax,%edi
180070dcc:	85 c0                	test   %eax,%eax
180070dce:	78 70                	js     0x180070e40
180070dd0:	8b 4d c8             	mov    -0x38(%rbp),%ecx
180070dd3:	4d 8b ef             	mov    %r15,%r13
180070dd6:	eb 05                	jmp    0x180070ddd
180070dd8:	33 c9                	xor    %ecx,%ecx
180070dda:	4d 8b ee             	mov    %r14,%r13
180070ddd:	44 8b c6             	mov    %esi,%r8d
180070de0:	33 d2                	xor    %edx,%edx
180070de2:	44 2b c1             	sub    %ecx,%r8d
180070de5:	49 03 cd             	add    %r13,%rcx
180070de8:	e8 93 4e 0c 00       	call   0x180135c80
180070ded:	44 8b 4d cc          	mov    -0x34(%rbp),%r9d
180070df1:	8b ce                	mov    %esi,%ecx
180070df3:	8b 55 60             	mov    0x60(%rbp),%edx
180070df6:	2b 55 e0             	sub    -0x20(%rbp),%edx
180070df9:	8b 45 68             	mov    0x68(%rbp),%eax
180070dfc:	2b ca                	sub    %edx,%ecx
180070dfe:	41 2b c1             	sub    %r9d,%eax
180070e01:	3b c1                	cmp    %ecx,%eax
180070e03:	0f 42 c8             	cmovb  %eax,%ecx
180070e06:	49 03 d5             	add    %r13,%rdx
180070e09:	8b d9                	mov    %ecx,%ebx
180070e0b:	44 8b c1             	mov    %ecx,%r8d
180070e0e:	41 8b c9             	mov    %r9d,%ecx
180070e11:	48 03 4d 70          	add    0x70(%rbp),%rcx
180070e15:	89 5d c8             	mov    %ebx,-0x38(%rbp)
180070e18:	e8 a3 4b 0c 00       	call   0x1801359c0
180070e1d:	8b 4d cc             	mov    -0x34(%rbp),%ecx
180070e20:	48 01 5d 60          	add    %rbx,0x60(%rbp)
180070e24:	03 cb                	add    %ebx,%ecx
180070e26:	89 4d cc             	mov    %ecx,-0x34(%rbp)
180070e29:	3b 4d 68             	cmp    0x68(%rbp),%ecx
180070e2c:	73 12                	jae    0x180070e40
180070e2e:	4c 8b 6d 48          	mov    0x48(%rbp),%r13
180070e32:	48 8b 5d 60          	mov    0x60(%rbp),%rbx
180070e36:	e9 aa fe ff ff       	jmp    0x180070ce5
180070e3b:	bf 0d 00 00 c0       	mov    $0xc000000d,%edi
180070e40:	49 8b ce             	mov    %r14,%rcx
180070e43:	e8 b4 91 02 00       	call   0x180099ffc
180070e48:	4d 85 ff             	test   %r15,%r15
180070e4b:	74 08                	je     0x180070e55
180070e4d:	49 8b cf             	mov    %r15,%rcx
180070e50:	e8 a7 91 02 00       	call   0x180099ffc
180070e55:	8b c7                	mov    %edi,%eax
180070e57:	48 83 c4 78          	add    $0x78,%rsp
180070e5b:	41 5f                	pop    %r15
180070e5d:	41 5e                	pop    %r14
180070e5f:	41 5d                	pop    %r13
180070e61:	41 5c                	pop    %r12
180070e63:	5f                   	pop    %rdi
180070e64:	5e                   	pop    %rsi
180070e65:	5b                   	pop    %rbx
180070e66:	5d                   	pop    %rbp
180070e67:	c3                   	ret
180070e68:	cc                   	int3
180070e69:	cc                   	int3
180070e6a:	cc                   	int3
180070e6b:	cc                   	int3
180070e6c:	40 55                	rex push %rbp
180070e6e:	53                   	push   %rbx
180070e6f:	56                   	push   %rsi
180070e70:	57                   	push   %rdi
180070e71:	41 54                	push   %r12
180070e73:	41 55                	push   %r13
180070e75:	41 56                	push   %r14
180070e77:	41 57                	push   %r15
180070e79:	48 8b ec             	mov    %rsp,%rbp
180070e7c:	48 83 ec 78          	sub    $0x78,%rsp
180070e80:	ff 41 78             	incl   0x78(%rcx)
180070e83:	4d 8b e9             	mov    %r9,%r13
180070e86:	0f be 41 0a          	movsbl 0xa(%rcx),%eax
180070e8a:	45 33 c9             	xor    %r9d,%r9d
180070e8d:	4c 89 4d 50          	mov    %r9,0x50(%rbp)
180070e91:	49 8b f8             	mov    %r8,%rdi
180070e94:	48 8b f1             	mov    %rcx,%rsi
180070e97:	3c 80                	cmp    $0x80,%al
180070e99:	77 06                	ja     0x180070ea1
180070e9b:	44 0f b6 c0          	movzbl %al,%r8d
180070e9f:	eb 0d                	jmp    0x180070eae
180070ea1:	8b c8                	mov    %eax,%ecx
180070ea3:	41 b8 01 00 00 00    	mov    $0x1,%r8d
180070ea9:	f7 d9                	neg    %ecx
180070eab:	41 d3 e0             	shl    %cl,%r8d
180070eae:	0f b7 46 08          	movzwl 0x8(%rsi),%eax
180070eb2:	8b 5a 08             	mov    0x8(%rdx),%ebx
180070eb5:	44 0f af c0          	imul   %eax,%r8d
180070eb9:	48 03 df             	add    %rdi,%rbx
180070ebc:	48 8b 43 10          	mov    0x10(%rbx),%rax
180070ec0:	49 0f af c0          	imul   %r8,%rax
180070ec4:	4c 89 45 58          	mov    %r8,0x58(%rbp)
180070ec8:	4c 3b e8             	cmp    %rax,%r13
180070ecb:	7c 14                	jl     0x180070ee1
180070ecd:	48 8b 43 18          	mov    0x18(%rbx),%rax
180070ed1:	48 ff c0             	inc    %rax
180070ed4:	49 0f af c0          	imul   %r8,%rax
180070ed8:	49 3b c5             	cmp    %r13,%rax
180070edb:	0f 8f c6 00 00 00    	jg     0x180070fa7
180070ee1:	48 8b 47 20          	mov    0x20(%rdi),%rax
180070ee5:	48 85 c0             	test   %rax,%rax
180070ee8:	74 31                	je     0x180070f1b
180070eea:	48 89 45 48          	mov    %rax,0x48(%rbp)
180070eee:	4c 8d 45 60          	lea    0x60(%rbp),%r8
180070ef2:	66 44 89 4d 4e       	mov    %r9w,0x4e(%rbp)
180070ef7:	48 8b ce             	mov    %rsi,%rcx
180070efa:	4c 8b 75 48          	mov    0x48(%rbp),%r14
180070efe:	49 8b d6             	mov    %r14,%rdx
180070f01:	e8 de 03 00 00       	call   0x1800712e4
180070f06:	45 33 c9             	xor    %r9d,%r9d
180070f09:	85 c0                	test   %eax,%eax
180070f0b:	0f 88 41 01 00 00    	js     0x180071052
180070f11:	48 8b 7d 60          	mov    0x60(%rbp),%rdi
180070f15:	4c 8b 45 58          	mov    0x58(%rbp),%r8
180070f19:	eb 03                	jmp    0x180070f1e
180070f1b:	4c 8b 32             	mov    (%rdx),%r14
180070f1e:	0f 10 05 53 e7 0d 00 	movups 0xde753(%rip),%xmm0        # 0x18014f678
180070f25:	f3 0f 7f 45 c8       	movdqu %xmm0,-0x38(%rbp)
180070f2a:	44 38 4b 09          	cmp    %r9b,0x9(%rbx)
180070f2e:	76 1a                	jbe    0x180070f4a
180070f30:	0f b7 43 0a          	movzwl 0xa(%rbx),%eax
180070f34:	48 03 c3             	add    %rbx,%rax
180070f37:	48 89 45 d0          	mov    %rax,-0x30(%rbp)
180070f3b:	0f b6 43 09          	movzbl 0x9(%rbx),%eax
180070f3f:	66 03 c0             	add    %ax,%ax
180070f42:	66 89 45 c8          	mov    %ax,-0x38(%rbp)
180070f46:	66 89 45 ca          	mov    %ax,-0x36(%rbp)
180070f4a:	44 8b 0b             	mov    (%rbx),%r9d
180070f4d:	48 8d 4d d8          	lea    -0x28(%rbp),%rcx
180070f51:	49 8b c5             	mov    %r13,%rax
180070f54:	48 89 4c 24 30       	mov    %rcx,0x30(%rsp)
180070f59:	48 99                	cqto
180070f5b:	48 8b ce             	mov    %rsi,%rcx
180070f5e:	49 f7 f8             	idiv   %r8
180070f61:	4d 8b c6             	mov    %r14,%r8
180070f64:	48 8b d7             	mov    %rdi,%rdx
180070f67:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
180070f6c:	48 8d 45 c8          	lea    -0x38(%rbp),%rax
180070f70:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
180070f75:	e8 12 f6 ff ff       	call   0x18007058c
180070f7a:	45 33 c9             	xor    %r9d,%r9d
180070f7d:	85 c0                	test   %eax,%eax
180070f7f:	0f 88 cd 00 00 00    	js     0x180071052
180070f85:	48 8b 55 d8          	mov    -0x28(%rbp),%rdx
180070f89:	49 3b d6             	cmp    %r14,%rdx
180070f8c:	74 13                	je     0x180070fa1
180070f8e:	4c 8d 45 50          	lea    0x50(%rbp),%r8
180070f92:	48 8b ce             	mov    %rsi,%rcx
180070f95:	e8 4a 03 00 00       	call   0x1800712e4
180070f9a:	48 8b 7d 50          	mov    0x50(%rbp),%rdi
180070f9e:	45 33 c9             	xor    %r9d,%r9d
180070fa1:	8b 5d e0             	mov    -0x20(%rbp),%ebx
180070fa4:	48 03 df             	add    %rdi,%rbx
180070fa7:	0f b7 7b 20          	movzwl 0x20(%rbx),%edi
180070fab:	4d 8b f1             	mov    %r9,%r14
180070fae:	4c 8b 63 10          	mov    0x10(%rbx),%r12
180070fb2:	48 03 fb             	add    %rbx,%rdi
180070fb5:	e9 89 00 00 00       	jmp    0x180071043
180070fba:	0f be d0             	movsbl %al,%edx
180070fbd:	48 ff c7             	inc    %rdi
180070fc0:	c0 f8 04             	sar    $0x4,%al
180070fc3:	83 e2 0f             	and    $0xf,%edx
180070fc6:	4c 89 65 50          	mov    %r12,0x50(%rbp)
180070fca:	44 0f be f8          	movsbl %al,%r15d
180070fce:	83 fa 08             	cmp    $0x8,%edx
180070fd1:	77 7a                	ja     0x18007104d
180070fd3:	41 83 ff 08          	cmp    $0x8,%r15d
180070fd7:	77 74                	ja     0x18007104d
180070fd9:	8d 42 ff             	lea    -0x1(%rdx),%eax
180070fdc:	44 38 0c 38          	cmp    %r9b,(%rax,%rdi,1)
180070fe0:	7c 6b                	jl     0x18007104d
180070fe2:	8b da                	mov    %edx,%ebx
180070fe4:	48 8d 4d 48          	lea    0x48(%rbp),%rcx
180070fe8:	44 8b c2             	mov    %edx,%r8d
180070feb:	48 8b d7             	mov    %rdi,%rdx
180070fee:	4c 89 4d 48          	mov    %r9,0x48(%rbp)
180070ff2:	e8 c9 49 0c 00       	call   0x1801359c0
180070ff7:	4c 03 65 48          	add    0x48(%rbp),%r12
180070ffb:	45 33 c9             	xor    %r9d,%r9d
180070ffe:	48 03 fb             	add    %rbx,%rdi
180071001:	45 85 ff             	test   %r15d,%r15d
180071004:	74 2d                	je     0x180071033
180071006:	41 8d 47 ff          	lea    -0x1(%r15),%eax
18007100a:	45 8b c7             	mov    %r15d,%r8d
18007100d:	48 0f be 04 38       	movsbq (%rax,%rdi,1),%rax
180071012:	48 8d 4d 48          	lea    0x48(%rbp),%rcx
180071016:	48 c1 f8 3f          	sar    $0x3f,%rax
18007101a:	48 8b d7             	mov    %rdi,%rdx
18007101d:	48 89 45 48          	mov    %rax,0x48(%rbp)
180071021:	41 8b df             	mov    %r15d,%ebx
180071024:	e8 97 49 0c 00       	call   0x1801359c0
180071029:	4c 03 75 48          	add    0x48(%rbp),%r14
18007102d:	48 03 fb             	add    %rbx,%rdi
180071030:	45 33 c9             	xor    %r9d,%r9d
180071033:	4c 8b 45 58          	mov    0x58(%rbp),%r8
180071037:	49 8b d0             	mov    %r8,%rdx
18007103a:	49 0f af d4          	imul   %r12,%rdx
18007103e:	4c 3b ea             	cmp    %rdx,%r13
180071041:	7c 24                	jl     0x180071067
180071043:	8a 07                	mov    (%rdi),%al