140405c04:	48 8d 15 6d 9d be 00 	lea    0xbe9d6d(%rip),%rdx        # 0x140fef978
140405c0b:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
140405c10:	e8 db 34 da ff       	call   0x1401a90f0
140405c15:	48 8d 15 b4 ad f9 00 	lea    0xf9adb4(%rip),%rdx        # 0x1413a09d0
140405c1c:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
140405c21:	e8 f2 6b a1 00       	call   0x140e1c818
140405c26:	cc                   	int3
140405c27:	44 2b c2             	sub    %edx,%r8d
140405c2a:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
140405c2f:	45 8b c8             	mov    %r8d,%r9d
140405c32:	48 8d 15 27 9d be 00 	lea    0xbe9d27(%rip),%rdx        # 0x140fef960
140405c39:	44 8b c7             	mov    %edi,%r8d
140405c3c:	e8 af 34 da ff       	call   0x1401a90f0
140405c41:	48 8d 15 88 ad f9 00 	lea    0xf9ad88(%rip),%rdx        # 0x1413a09d0
140405c48:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
140405c4d:	e8 c6 6b a1 00       	call   0x140e1c818
140405c52:	cc                   	int3
140405c53:	cc                   	int3
140405c54:	cc                   	int3
140405c55:	cc                   	int3
140405c56:	cc                   	int3
140405c57:	cc                   	int3
140405c58:	cc                   	int3
140405c59:	cc                   	int3
140405c5a:	cc                   	int3
140405c5b:	cc                   	int3
140405c5c:	cc                   	int3
140405c5d:	cc                   	int3
140405c5e:	cc                   	int3
140405c5f:	cc                   	int3
140405c60:	40 53                	rex push %rbx
140405c62:	55                   	push   %rbp
140405c63:	56                   	push   %rsi
140405c64:	57                   	push   %rdi
140405c65:	41 54                	push   %r12
140405c67:	41 55                	push   %r13
140405c69:	41 56                	push   %r14
140405c6b:	41 57                	push   %r15
140405c6d:	48 83 ec 78          	sub    $0x78,%rsp
140405c71:	48 8b 05 88 32 fb 00 	mov    0xfb3288(%rip),%rax        # 0x1413b8f00
140405c78:	48 33 c4             	xor    %rsp,%rax
140405c7b:	48 89 44 24 68       	mov    %rax,0x68(%rsp)
140405c80:	4d 8b e9             	mov    %r9,%r13
140405c83:	49 8b d8             	mov    %r8,%rbx
140405c86:	48 8b fa             	mov    %rdx,%rdi
140405c89:	48 8b f1             	mov    %rcx,%rsi
140405c8c:	48 83 c2 08          	add    $0x8,%rdx
140405c90:	49 3b d0             	cmp    %r8,%rdx
140405c93:	0f 87 b5 03 00 00    	ja     0x14040604e
140405c99:	4c 8d 47 06          	lea    0x6(%rdi),%r8
140405c9d:	49 3b d0             	cmp    %r8,%rdx
140405ca0:	0f 82 a8 03 00 00    	jb     0x14040604e
140405ca6:	0f b7 07             	movzwl (%rdi),%eax
140405ca9:	83 bc 24 e0 00 00 00 	cmpl   $0x1,0xe0(%rsp)
140405cb0:	01
140405cb1:	75 19                	jne    0x140405ccc
140405cb3:	66 89 01             	mov    %ax,(%rcx)
140405cb6:	0f b7 4f 02          	movzwl 0x2(%rdi),%ecx
140405cba:	66 89 4e 02          	mov    %cx,0x2(%rsi)
140405cbe:	0f b7 47 04          	movzwl 0x4(%rdi),%eax
140405cc2:	66 89 46 04          	mov    %ax,0x4(%rsi)
140405cc6:	41 0f b7 00          	movzwl (%r8),%eax
140405cca:	eb 27                	jmp    0x140405cf3
140405ccc:	66 c1 c8 08          	ror    $0x8,%ax
140405cd0:	66 89 01             	mov    %ax,(%rcx)
140405cd3:	0f b7 4f 02          	movzwl 0x2(%rdi),%ecx
140405cd7:	66 c1 c9 08          	ror    $0x8,%cx
140405cdb:	66 89 4e 02          	mov    %cx,0x2(%rsi)
140405cdf:	0f b7 47 04          	movzwl 0x4(%rdi),%eax
140405ce3:	66 c1 c8 08          	ror    $0x8,%ax
140405ce7:	66 89 46 04          	mov    %ax,0x4(%rsi)
140405ceb:	41 0f b7 00          	movzwl (%r8),%eax
140405cef:	66 c1 c8 08          	ror    $0x8,%ax
140405cf3:	66 89 46 06          	mov    %ax,0x6(%rsi)
140405cf7:	44 0f b7 c1          	movzwl %cx,%r8d
140405cfb:	4c 8d 67 08          	lea    0x8(%rdi),%r12
140405cff:	4d 03 e0             	add    %r8,%r12
140405d02:	4c 3b e3             	cmp    %rbx,%r12
140405d05:	0f 87 17 03 00 00    	ja     0x140406022
140405d0b:	4c 3b e2             	cmp    %rdx,%r12
140405d0e:	0f 82 0e 03 00 00    	jb     0x140406022
140405d14:	48 8d 4e 08          	lea    0x8(%rsi),%rcx
140405d18:	e8 43 86 da ff       	call   0x1401ae360
140405d1d:	0f b7 4e 04          	movzwl 0x4(%rsi),%ecx
140405d21:	b8 ab aa aa aa       	mov    $0xaaaaaaab,%eax
140405d26:	f7 e1                	mul    %ecx
140405d28:	44 8b fa             	mov    %edx,%r15d
140405d2b:	41 d1 ef             	shr    $1,%r15d
140405d2e:	0f 88 48 03 00 00    	js     0x14040607c
140405d34:	41 8b ef             	mov    %r15d,%ebp
140405d37:	48 8b cb             	mov    %rbx,%rcx
140405d3a:	49 2b cc             	sub    %r12,%rcx
140405d3d:	48 b8 56 55 55 55 55 	movabs $0x5555555555555556,%rax
140405d44:	55 55 55
140405d47:	48 f7 e9             	imul   %rcx
140405d4a:	48 8b c2             	mov    %rdx,%rax
140405d4d:	48 c1 e8 3f          	shr    $0x3f,%rax
140405d51:	48 03 d0             	add    %rax,%rdx
140405d54:	48 3b ea             	cmp    %rdx,%rbp
140405d57:	0f 8f 4a 03 00 00    	jg     0x1404060a7
140405d5d:	48 c7 46 20 00 00 00 	movq   $0x0,0x20(%rsi)
140405d64:	00
140405d65:	b9 18 00 00 00       	mov    $0x18,%ecx
140405d6a:	e8 99 53 a1 00       	call   0x140e1b108
140405d6f:	48 8b c8             	mov    %rax,%rcx
140405d72:	48 85 c0             	test   %rax,%rax
140405d75:	74 0f                	je     0x140405d86
140405d77:	33 c0                	xor    %eax,%eax
140405d79:	48 89 01             	mov    %rax,(%rcx)
140405d7c:	48 89 41 08          	mov    %rax,0x8(%rcx)
140405d80:	48 89 41 10          	mov    %rax,0x10(%rcx)
140405d84:	eb 02                	jmp    0x140405d88
140405d86:	33 c9                	xor    %ecx,%ecx
140405d88:	48 89 4e 18          	mov    %rcx,0x18(%rsi)
140405d8c:	48 89 6c 24 40       	mov    %rbp,0x40(%rsp)
140405d91:	48 8b 41 10          	mov    0x10(%rcx),%rax
140405d95:	48 2b 01             	sub    (%rcx),%rax
140405d98:	48 c1 f8 03          	sar    $0x3,%rax
140405d9c:	48 3b e8             	cmp    %rax,%rbp
140405d9f:	76 1d                	jbe    0x140405dbe
140405da1:	48 b8 ff ff ff ff ff 	movabs $0x1fffffffffffffff,%rax
140405da8:	ff ff 1f
140405dab:	48 3b e8             	cmp    %rax,%rbp
140405dae:	0f 87 1f 03 00 00    	ja     0x1404060d3
140405db4:	48 8d 54 24 40       	lea    0x40(%rsp),%rdx
140405db9:	e8 62 f8 fb ff       	call   0x1403c5620
140405dbe:	49 8b ec             	mov    %r12,%rbp
140405dc1:	45 85 ff             	test   %r15d,%r15d
140405dc4:	7e 66                	jle    0x140405e2c
140405dc6:	b9 03 00 00 00       	mov    $0x3,%ecx
140405dcb:	e8 38 53 a1 00       	call   0x140e1b108
140405dd0:	48 89 44 24 40       	mov    %rax,0x40(%rsp)
140405dd5:	48 85 c0             	test   %rax,%rax
140405dd8:	74 09                	je     0x140405de3
140405dda:	66 c7 00 00 00       	movw   $0x0,(%rax)
140405ddf:	c6 40 02 00          	movb   $0x0,0x2(%rax)
140405de3:	48 89 46 20          	mov    %rax,0x20(%rsi)
140405de7:	4c 8b c3             	mov    %rbx,%r8
140405dea:	48 8b d5             	mov    %rbp,%rdx
140405ded:	48 8b c8             	mov    %rax,%rcx
140405df0:	e8 ab d9 ff ff       	call   0x1404037a0
140405df5:	48 8b 4e 18          	mov    0x18(%rsi),%rcx
140405df9:	48 8b 51 08          	mov    0x8(%rcx),%rdx
140405dfd:	48 3b 51 10          	cmp    0x10(%rcx),%rdx
140405e01:	74 0e                	je     0x140405e11
140405e03:	48 8b 46 20          	mov    0x20(%rsi),%rax
140405e07:	48 89 02             	mov    %rax,(%rdx)
140405e0a:	48 83 41 08 08       	addq   $0x8,0x8(%rcx)
140405e0f:	eb 09                	jmp    0x140405e1a
140405e11:	4c 8d 46 20          	lea    0x20(%rsi),%r8
140405e15:	e8 a6 f6 fb ff       	call   0x1403c54c0
140405e1a:	48 83 c5 03          	add    $0x3,%rbp
140405e1e:	48 c7 46 20 00 00 00 	movq   $0x0,0x20(%rsi)
140405e25:	00
140405e26:	49 83 ef 01          	sub    $0x1,%r15
140405e2a:	75 9a                	jne    0x140405dc6
140405e2c:	41 2b ec             	sub    %r12d,%ebp
140405e2f:	48 63 cd             	movslq %ebp,%rcx
140405e32:	49 03 cc             	add    %r12,%rcx
140405e35:	0f b7 56 06          	movzwl 0x6(%rsi),%edx
140405e39:	48 8d 2c 11          	lea    (%rcx,%rdx,1),%rbp
140405e3d:	48 3b eb             	cmp    %rbx,%rbp
140405e40:	0f 87 99 02 00 00    	ja     0x1404060df
140405e46:	48 3b e9             	cmp    %rcx,%rbp
140405e49:	0f 82 90 02 00 00    	jb     0x1404060df
140405e4f:	44 8b c2             	mov    %edx,%r8d
140405e52:	48 8b d1             	mov    %rcx,%rdx
140405e55:	48 8d 4e 28          	lea    0x28(%rsi),%rcx
140405e59:	e8 02 85 da ff       	call   0x1401ae360
140405e5e:	2b ef                	sub    %edi,%ebp
140405e60:	48 8b 4e 38          	mov    0x38(%rsi),%rcx
140405e64:	0f b6 41 03          	movzbl 0x3(%rcx),%eax
140405e68:	88 46 40             	mov    %al,0x40(%rsi)
140405e6b:	0f b6 41 04          	movzbl 0x4(%rcx),%eax
140405e6f:	88 46 41             	mov    %al,0x41(%rsi)
140405e72:	4d 8b 7d 00          	mov    0x0(%r13),%r15
140405e76:	44 0f b7 36          	movzwl (%rsi),%r14d
140405e7a:	41 83 fe 02          	cmp    $0x2,%r14d
140405e7e:	74 59                	je     0x140405ed9
140405e80:	49 8b 7f 30          	mov    0x30(%r15),%rdi
140405e84:	48 8d 44 24 48       	lea    0x48(%rsp),%rax
140405e89:	48 89 44 24 40       	mov    %rax,0x40(%rsp)
140405e8e:	48 8d 4c 24 48       	lea    0x48(%rsp),%rcx
140405e93:	e8 f8 12 35 00       	call   0x140757190
140405e98:	48 8b d8             	mov    %rax,%rbx
140405e9b:	41 8b d6             	mov    %r14d,%edx
140405e9e:	48 8d 0d 33 93 be 00 	lea    0xbe9333(%rip),%rcx        # 0x140fef1d8
140405ea5:	e8 66 1a 46 00       	call   0x140867910
140405eaa:	90                   	nop
140405eab:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
140405eb0:	45 33 c9             	xor    %r9d,%r9d
140405eb3:	45 33 c0             	xor    %r8d,%r8d
140405eb6:	48 8b d0             	mov    %rax,%rdx
140405eb9:	48 8b cf             	mov    %rdi,%rcx
140405ebc:	e8 df b1 ff ff       	call   0x1404010a0
140405ec1:	49 8b 47 30          	mov    0x30(%r15),%rax
140405ec5:	c6 80 a9 00 00 00 01 	movb   $0x1,0xa9(%rax)
140405ecc:	c6 46 42 00          	movb   $0x0,0x42(%rsi)
140405ed0:	c6 46 44 00          	movb   $0x0,0x44(%rsi)
140405ed4:	45 33 ff             	xor    %r15d,%r15d
140405ed7:	eb 3a                	jmp    0x140405f13
140405ed9:	c6 46 42 01          	movb   $0x1,0x42(%rsi)
140405edd:	c6 46 44 01          	movb   $0x1,0x44(%rsi)
140405ee1:	48 8b 46 18          	mov    0x18(%rsi),%rax
140405ee5:	c6 44 24 38 00       	movb   $0x0,0x38(%rsp)
140405eea:	48 89 44 24 30       	mov    %rax,0x30(%rsp)
140405eef:	45 33 ff             	xor    %r15d,%r15d
140405ef2:	4c 89 7c 24 28       	mov    %r15,0x28(%rsp)
140405ef7:	4c 89 7c 24 20       	mov    %r15,0x20(%rsp)
140405efc:	4c 8d 4e 28          	lea    0x28(%rsi),%r9
140405f00:	41 b0 01             	mov    $0x1,%r8b
140405f03:	41 0f b7 d6          	movzwl %r14w,%edx
140405f07:	49 8b 4d 00          	mov    0x0(%r13),%rcx
140405f0b:	e8 30 17 00 00       	call   0x140407640
140405f10:	88 46 43             	mov    %al,0x43(%rsi)
140405f13:	80 7e 42 01          	cmpb   $0x1,0x42(%rsi)
140405f17:	0f 94 c0             	sete   %al
140405f1a:	88 46 46             	mov    %al,0x46(%rsi)
140405f1d:	0f 85 df 00 00 00    	jne    0x140406002
140405f23:	49 8b 7d 00          	mov    0x0(%r13),%rdi
140405f27:	48 8b 46 38          	mov    0x38(%rsi),%rax
140405f2b:	44 0f b6 70 18       	movzbl 0x18(%rax),%r14d
140405f30:	b9 18 00 00 00       	mov    $0x18,%ecx
140405f35:	e8 ce 51 a1 00       	call   0x140e1b108
140405f3a:	48 8b d8             	mov    %rax,%rbx
140405f3d:	48 89 44 24 40       	mov    %rax,0x40(%rsp)
140405f42:	48 85 c0             	test   %rax,%rax
140405f45:	74 3b                	je     0x140405f82
140405f47:	4c 89 38             	mov    %r15,(%rax)
140405f4a:	4c 89 78 08          	mov    %r15,0x8(%rax)
140405f4e:	4c 89 78 10          	mov    %r15,0x10(%rax)
140405f52:	b9 10 00 00 00       	mov    $0x10,%ecx
140405f57:	e8 ac 51 a1 00       	call   0x140e1b108
140405f5c:	48 89 03             	mov    %rax,(%rbx)
140405f5f:	48 89 43 08          	mov    %rax,0x8(%rbx)
140405f63:	48 8d 48 10          	lea    0x10(%rax),%rcx
140405f67:	48 89 4b 10          	mov    %rcx,0x10(%rbx)
140405f6b:	48 8b 4e 08          	mov    0x8(%rsi),%rcx
140405f6f:	48 89 08             	mov    %rcx,(%rax)
140405f72:	8b 4e 10             	mov    0x10(%rsi),%ecx
140405f75:	89 48 08             	mov    %ecx,0x8(%rax)
140405f78:	48 83 c0 10          	add    $0x10,%rax
140405f7c:	48 89 43 08          	mov    %rax,0x8(%rbx)
140405f80:	eb 03                	jmp    0x140405f85
140405f82:	49 8b df             	mov    %r15,%rbx
140405f85:	48 8b 4f 30          	mov    0x30(%rdi),%rcx
140405f89:	e8 22 51 01 00       	call   0x14041b0b0
140405f8e:	44 0f b6 c0          	movzbl %al,%r8d
140405f92:	4c 8b cb             	mov    %rbx,%r9
140405f95:	41 0f b6 d6          	movzbl %r14b,%edx
140405f99:	48 8b cf             	mov    %rdi,%rcx
140405f9c:	e8 6f 08 00 00       	call   0x140406810
140405fa1:	0f b6 f8             	movzbl %al,%edi
140405fa4:	48 85 db             	test   %rbx,%rbx
140405fa7:	74 55                	je     0x140405ffe
140405fa9:	48 8b 0b             	mov    (%rbx),%rcx
140405fac:	48 85 c9             	test   %rcx,%rcx
140405faf:	74 40                	je     0x140405ff1
140405fb1:	48 8b 53 10          	mov    0x10(%rbx),%rdx
140405fb5:	48 2b d1             	sub    %rcx,%rdx
140405fb8:	48 83 e2 f0          	and    $0xfffffffffffffff0,%rdx
140405fbc:	48 81 fa 00 10 00 00 	cmp    $0x1000,%rdx
140405fc3:	72 1c                	jb     0x140405fe1
140405fc5:	48 83 c2 27          	add    $0x27,%rdx
140405fc9:	4c 8b 41 f8          	mov    -0x8(%rcx),%r8
140405fcd:	49 2b c8             	sub    %r8,%rcx
140405fd0:	48 8d 41 f8          	lea    -0x8(%rcx),%rax
140405fd4:	48 83 f8 1f          	cmp    $0x1f,%rax
140405fd8:	0f 87 fb 00 00 00    	ja     0x1404060d9
140405fde:	49 8b c8             	mov    %r8,%rcx
140405fe1:	e8 5e 51 a1 00       	call   0x140e1b144
140405fe6:	4c 89 3b             	mov    %r15,(%rbx)
140405fe9:	4c 89 7b 08          	mov    %r15,0x8(%rbx)
140405fed:	4c 89 7b 10          	mov    %r15,0x10(%rbx)
140405ff1:	ba 18 00 00 00       	mov    $0x18,%edx
140405ff6:	48 8b cb             	mov    %rbx,%rcx
140405ff9:	e8 46 51 a1 00       	call   0x140e1b144
140405ffe:	40 88 7e 45          	mov    %dil,0x45(%rsi)
140406002:	8b c5                	mov    %ebp,%eax
140406004:	48 8b 4c 24 68       	mov    0x68(%rsp),%rcx
140406009:	48 33 cc             	xor    %rsp,%rcx
14040600c:	e8 ef 54 a1 00       	call   0x140e1b500
140406011:	48 83 c4 78          	add    $0x78,%rsp
140406015:	41 5f                	pop    %r15
140406017:	41 5e                	pop    %r14
140406019:	41 5d                	pop    %r13
14040601b:	41 5c                	pop    %r12
14040601d:	5f                   	pop    %rdi
14040601e:	5e                   	pop    %rsi
14040601f:	5d                   	pop    %rbp
140406020:	5b                   	pop    %rbx
140406021:	c3                   	ret
140406022:	2b df                	sub    %edi,%ebx
140406024:	41 83 c0 08          	add    $0x8,%r8d
140406028:	44 8b cb             	mov    %ebx,%r9d
14040602b:	48 8d 15 be 98 be 00 	lea    0xbe98be(%rip),%rdx        # 0x140fef8f0
140406032:	48 8d 4c 24 48       	lea    0x48(%rsp),%rcx
140406037:	e8 b4 30 da ff       	call   0x1401a90f0
14040603c:	48 8d 15 8d a9 f9 00 	lea    0xf9a98d(%rip),%rdx        # 0x1413a09d0
140406043:	48 8d 4c 24 48       	lea    0x48(%rsp),%rcx
140406048:	e8 cb 67 a1 00       	call   0x140e1c818
14040604d:	cc                   	int3
14040604e:	2b df                	sub    %edi,%ebx
140406050:	44 8b cb             	mov    %ebx,%r9d
140406053:	41 b8 08 00 00 00    	mov    $0x8,%r8d
140406059:	48 8d 15 70 98 be 00 	lea    0xbe9870(%rip),%rdx        # 0x140fef8d0
140406060:	48 8d 4c 24 48       	lea    0x48(%rsp),%rcx
140406065:	e8 86 30 da ff       	call   0x1401a90f0
14040606a:	48 8d 15 5f a9 f9 00 	lea    0xf9a95f(%rip),%rdx        # 0x1413a09d0
140406071:	48 8d 4c 24 48       	lea    0x48(%rsp),%rcx
140406076:	e8 9d 67 a1 00       	call   0x140e1c818
14040607b:	cc                   	int3
14040607c:	2b df                	sub    %edi,%ebx
14040607e:	44 8b cb             	mov    %ebx,%r9d
140406081:	45 8b c7             	mov    %r15d,%r8d
140406084:	48 8d 15 7d 98 be 00 	lea    0xbe987d(%rip),%rdx        # 0x140fef908
14040608b:	48 8d 4c 24 48       	lea    0x48(%rsp),%rcx
140406090:	e8 5b 30 da ff       	call   0x1401a90f0
140406095:	48 8d 15 34 a9 f9 00 	lea    0xf9a934(%rip),%rdx        # 0x1413a09d0
14040609c:	48 8d 4c 24 48       	lea    0x48(%rsp),%rcx
1404060a1:	e8 72 67 a1 00       	call   0x140e1c818
1404060a6:	cc                   	int3
1404060a7:	41 2b dc             	sub    %r12d,%ebx
1404060aa:	44 8b cb             	mov    %ebx,%r9d
1404060ad:	45 8b c7             	mov    %r15d,%r8d
1404060b0:	48 8d 15 51 98 be 00 	lea    0xbe9851(%rip),%rdx        # 0x140fef908
1404060b7:	48 8d 4c 24 48       	lea    0x48(%rsp),%rcx
1404060bc:	e8 2f 30 da ff       	call   0x1401a90f0
1404060c1:	48 8d 15 08 a9 f9 00 	lea    0xf9a908(%rip),%rdx        # 0x1413a09d0
1404060c8:	48 8d 4c 24 48       	lea    0x48(%rsp),%rcx
1404060cd:	e8 46 67 a1 00       	call   0x140e1c818
1404060d2:	cc                   	int3
1404060d3:	e8 b8 74 d9 ff       	call   0x14019d590
1404060d8:	cc                   	int3
1404060d9:	e8 c6 40 a2 00       	call   0x140e2a1a4
1404060de:	cc                   	int3
1404060df:	2b df                	sub    %edi,%ebx
1404060e1:	2b cf                	sub    %edi,%ecx
1404060e3:	44 8d 04 0a          	lea    (%rdx,%rcx,1),%r8d
1404060e7:	44 8b cb             	mov    %ebx,%r9d
1404060ea:	48 8d 15 2f 98 be 00 	lea    0xbe982f(%rip),%rdx        # 0x140fef920
1404060f1:	48 8d 4c 24 48       	lea    0x48(%rsp),%rcx
1404060f6:	e8 f5 2f da ff       	call   0x1401a90f0
1404060fb:	48 8d 15 ce a8 f9 00 	lea    0xf9a8ce(%rip),%rdx        # 0x1413a09d0
140406102:	48 8d 4c 24 48       	lea    0x48(%rsp),%rcx
140406107:	e8 0c 67 a1 00       	call   0x140e1c818
14040610c:	cc                   	int3
14040610d:	cc                   	int3
14040610e:	cc                   	int3
14040610f:	cc                   	int3