140933b84:	41 57                	push   %r15
140933b86:	48 81 ec b8 00 00 00 	sub    $0xb8,%rsp
140933b8d:	48 8b 01             	mov    (%rcx),%rax
140933b90:	0f b7 fa             	movzwl %dx,%edi
140933b93:	33 d2                	xor    %edx,%edx
140933b95:	48 89 84 24 98 00 00 	mov    %rax,0x98(%rsp)
140933b9c:	00
140933b9d:	48 8b f1             	mov    %rcx,%rsi
140933ba0:	89 54 24 50          	mov    %edx,0x50(%rsp)
140933ba4:	0f b6 49 48          	movzbl 0x48(%rcx),%ecx
140933ba8:	41 bf 01 00 00 00    	mov    $0x1,%r15d
140933bae:	4c 8b 20             	mov    (%rax),%r12
140933bb1:	0f b7 ea             	movzwl %dx,%ebp
140933bb4:	4c 89 a4 24 a0 00 00 	mov    %r12,0xa0(%rsp)
140933bbb:	00
140933bbc:	44 0f b7 ea          	movzwl %dx,%r13d
140933bc0:	48 89 94 24 80 00 00 	mov    %rdx,0x80(%rsp)
140933bc7:	00
140933bc8:	89 8c 24 18 01 00 00 	mov    %ecx,0x118(%rsp)
140933bcf:	41 3b cf             	cmp    %r15d,%ecx
140933bd2:	77 05                	ja     0x140933bd9
140933bd4:	41 8b df             	mov    %r15d,%ebx
140933bd7:	eb 10                	jmp    0x140933be9
140933bd9:	83 f9 02             	cmp    $0x2,%ecx
140933bdc:	bb 0a 00 00 00       	mov    $0xa,%ebx
140933be1:	b8 05 00 00 00       	mov    $0x5,%eax
140933be6:	0f 44 d8             	cmove  %eax,%ebx
140933be9:	48 8b 46 10          	mov    0x10(%rsi),%rax
140933bed:	89 5c 24 4c          	mov    %ebx,0x4c(%rsp)
140933bf1:	48 85 c0             	test   %rax,%rax
140933bf4:	74 0f                	je     0x140933c05
140933bf6:	66 85 ff             	test   %di,%di
140933bf9:	74 0a                	je     0x140933c05
140933bfb:	44 8b 30             	mov    (%rax),%r14d
140933bfe:	44 89 74 24 68       	mov    %r14d,0x68(%rsp)
140933c03:	eb 07                	jmp    0x140933c0c
140933c05:	44 8b f2             	mov    %edx,%r14d
140933c08:	89 54 24 68          	mov    %edx,0x68(%rsp)
140933c0c:	8d 41 04             	lea    0x4(%rcx),%eax
140933c0f:	0f af c3             	imul   %ebx,%eax
140933c12:	41 8d 0c c6          	lea    (%r14,%rax,8),%ecx
140933c16:	03 c9                	add    %ecx,%ecx
140933c18:	48 63 d1             	movslq %ecx,%rdx
140933c1b:	49 8b cc             	mov    %r12,%rcx
140933c1e:	e8 dd 29 fa ff       	call   0x1408d6600
140933c23:	48 89 44 24 60       	mov    %rax,0x60(%rsp)
140933c28:	48 8b d0             	mov    %rax,%rdx
140933c2b:	48 85 c0             	test   %rax,%rax
140933c2e:	75 0a                	jne    0x140933c3a
140933c30:	b8 07 00 00 00       	mov    $0x7,%eax
140933c35:	e9 6e 09 00 00       	jmp    0x1409345a8
140933c3a:	4c 63 9c 24 18 01 00 	movslq 0x118(%rsp),%r11
140933c41:	00
140933c42:	0f 57 c0             	xorps  %xmm0,%xmm0
140933c45:	8b c3                	mov    %ebx,%eax
140933c47:	4d 8b c3             	mov    %r11,%r8
140933c4a:	48 c1 e0 05          	shl    $0x5,%rax
140933c4e:	4c 8b d2             	mov    %rdx,%r10
140933c51:	4c 8d 0c 10          	lea    (%rax,%rdx,1),%r9
140933c55:	49 c1 e0 03          	shl    $0x3,%r8
140933c59:	41 0f 11 01          	movups %xmm0,(%r9)
140933c5d:	48 89 54 24 70       	mov    %rdx,0x70(%rsp)
140933c62:	48 83 c2 18          	add    $0x18,%rdx
140933c66:	4a 8d 0c 08          	lea    (%rax,%r9,1),%rcx
140933c6a:	4c 89 8c 24 88 00 00 	mov    %r9,0x88(%rsp)
140933c71:	00
140933c72:	41 0f 11 41 10       	movups %xmm0,0x10(%r9)
140933c77:	8d 04 1b             	lea    (%rbx,%rbx,1),%eax
140933c7a:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)
140933c80:	48 89 0a             	mov    %rcx,(%rdx)
140933c83:	48 8d 52 20          	lea    0x20(%rdx),%rdx
140933c87:	49 03 c8             	add    %r8,%rcx
140933c8a:	ff c8                	dec    %eax
140933c8c:	85 c0                	test   %eax,%eax
140933c8e:	7f f0                	jg     0x140933c80
140933c90:	45 85 f6             	test   %r14d,%r14d
140933c93:	74 2a                	je     0x140933cbf
140933c95:	4d 63 c6             	movslq %r14d,%r8
140933c98:	33 d2                	xor    %edx,%edx
140933c9a:	4d 03 c0             	add    %r8,%r8
140933c9d:	48 89 8c 24 80 00 00 	mov    %rcx,0x80(%rsp)
140933ca4:	00
140933ca5:	e8 06 ba 5a 00       	call   0x140edf6b0
140933caa:	4c 8b 54 24 70       	mov    0x70(%rsp),%r10
140933caf:	44 8b 9c 24 18 01 00 	mov    0x118(%rsp),%r11d
140933cb6:	00
140933cb7:	4c 8b 8c 24 88 00 00 	mov    0x88(%rsp),%r9
140933cbe:	00
140933cbf:	48 8b 84 24 98 00 00 	mov    0x98(%rsp),%rax
140933cc6:	00
140933cc7:	b9 30 00 00 00       	mov    $0x30,%ecx
140933ccc:	8b 80 c8 00 00 00    	mov    0xc8(%rax),%eax
140933cd2:	3b c1                	cmp    %ecx,%eax
140933cd4:	0f 42 c8             	cmovb  %eax,%ecx
140933cd7:	66 41 89 49 10       	mov    %cx,0x10(%r9)
140933cdc:	41 8b cf             	mov    %r15d,%ecx
140933cdf:	45 85 f6             	test   %r14d,%r14d
140933ce2:	74 13                	je     0x140933cf7
140933ce4:	45 84 db             	test   %r11b,%r11b
140933ce7:	41 0f b6 c6          	movzbl %r14b,%eax
140933ceb:	ba ff ff ff ff       	mov    $0xffffffff,%edx
140933cf0:	0f 45 c2             	cmovne %edx,%eax
140933cf3:	41 88 41 16          	mov    %al,0x16(%r9)
140933cf7:	33 d2                	xor    %edx,%edx
140933cf9:	41 be 00 01 00 00    	mov    $0x100,%r14d
140933cff:	89 54 24 54          	mov    %edx,0x54(%rsp)
140933d03:	45 84 db             	test   %r11b,%r11b
140933d06:	0f 84 a6 05 00 00    	je     0x1409342b2
140933d0c:	33 f6                	xor    %esi,%esi
140933d0e:	48 8d 1d 83 7b 71 00 	lea    0x717b83(%rip),%rbx        # 0x14104b898
140933d15:	8b fe                	mov    %esi,%edi
140933d17:	48 89 74 24 58       	mov    %rsi,0x58(%rsp)
140933d1c:	41 bc 00 40 00 00    	mov    $0x4000,%r12d
140933d22:	0f 1f 40 00          	nopl   0x0(%rax)
140933d26:	66 66 0f 1f 84 00 00 	data16 nopw 0x0(%rax,%rax,1)
140933d2d:	00 00 00
140933d30:	89 74 24 48          	mov    %esi,0x48(%rsp)
140933d34:	44 8b c6             	mov    %esi,%r8d
140933d37:	85 c9                	test   %ecx,%ecx
140933d39:	0f 8e b1 03 00 00    	jle    0x1409340f0
140933d3f:	4c 8b 9c 24 00 01 00 	mov    0x100(%rsp),%r11
140933d46:	00
140933d47:	49 83 c1 10          	add    $0x10,%r9
140933d4b:	8b c1                	mov    %ecx,%eax
140933d4d:	4c 89 4c 24 40       	mov    %r9,0x40(%rsp)
140933d52:	48 89 84 24 90 00 00 	mov    %rax,0x90(%rsp)
140933d59:	00
140933d5a:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)
140933d60:	4d 8b 7b 60          	mov    0x60(%r11),%r15
140933d64:	4d 85 ff             	test   %r15,%r15
140933d67:	0f 84 54 03 00 00    	je     0x1409340c1
140933d6d:	0f 1f 00             	nopl   (%rax)
140933d70:	49 8b 49 f0          	mov    -0x10(%r9),%rcx
140933d74:	45 0f b6 71 06       	movzbl 0x6(%r9),%r14d
140933d79:	48 8b c1             	mov    %rcx,%rax
140933d7c:	48 f7 d0             	not    %rax
140933d7f:	48 89 74 24 78       	mov    %rsi,0x78(%rsp)
140933d84:	49 85 07             	test   %rax,(%r15)
140933d87:	0f 85 1f 03 00 00    	jne    0x1409340ac
140933d8d:	49 85 4f 08          	test   %rcx,0x8(%r15)
140933d91:	0f 85 15 03 00 00    	jne    0x1409340ac
140933d97:	45 85 67 38          	test   %r12d,0x38(%r15)
140933d9b:	74 0b                	je     0x140933da8
140933d9d:	66 41 83 39 03       	cmpw   $0x3,(%r9)
140933da2:	0f 8c 04 03 00 00    	jl     0x1409340ac
140933da8:	41 0f bf 7f 12       	movswl 0x12(%r15),%edi
140933dad:	45 0f b7 21          	movzwl (%r9),%r12d
140933db1:	8b cf                	mov    %edi,%ecx
140933db3:	45 0f b7 c4          	movzwl %r12w,%r8d
140933db7:	66 45 03 47 14       	add    0x14(%r15),%r8w
140933dbc:	41 0f bf d0          	movswl %r8w,%edx
140933dc0:	66 41 3b f8          	cmp    %r8w,%di
140933dc4:	7c 21                	jl     0x140933de7
140933dc6:	8d 42 31             	lea    0x31(%rdx),%eax
140933dc9:	3b c8                	cmp    %eax,%ecx
140933dcb:	7f 41                	jg     0x140933e0e
140933dcd:	8d 42 1f             	lea    0x1f(%rdx),%eax
140933dd0:	3b c8                	cmp    %eax,%ecx
140933dd2:	7e 05                	jle    0x140933dd9
140933dd4:	66 ff c7             	inc    %di
140933dd7:	eb 35                	jmp    0x140933e0e
140933dd9:	2b ca                	sub    %edx,%ecx
140933ddb:	48 63 c1             	movslq %ecx,%rax
140933dde:	0f b6 0c 18          	movzbl (%rax,%rbx,1),%ecx
140933de2:	66 03 f9             	add    %cx,%di
140933de5:	eb 27                	jmp    0x140933e0e
140933de7:	8d 47 31             	lea    0x31(%rdi),%eax
140933dea:	3b d0                	cmp    %eax,%edx
140933dec:	7e 06                	jle    0x140933df4
140933dee:	41 0f b7 f8          	movzwl %r8w,%edi
140933df2:	eb 1a                	jmp    0x140933e0e
140933df4:	8d 47 1f             	lea    0x1f(%rdi),%eax
140933df7:	3b d0                	cmp    %eax,%edx
140933df9:	7e 06                	jle    0x140933e01
140933dfb:	41 8d 78 01          	lea    0x1(%r8),%edi
140933dff:	eb 0d                	jmp    0x140933e0e
140933e01:	2b d1                	sub    %ecx,%edx
140933e03:	48 63 c2             	movslq %edx,%rax
140933e06:	0f b6 3c 18          	movzbl (%rax,%rbx,1),%edi
140933e0a:	66 41 03 f8          	add    %r8w,%di
140933e0e:	45 0f bf 41 04       	movswl 0x4(%r9),%r8d
140933e13:	0f bf cf             	movswl %di,%ecx
140933e16:	41 8b d0             	mov    %r8d,%edx
140933e19:	66 41 3b f8          	cmp    %r8w,%di
140933e1d:	7c 23                	jl     0x140933e42
140933e1f:	41 8d 40 31          	lea    0x31(%r8),%eax
140933e23:	3b c8                	cmp    %eax,%ecx
140933e25:	7f 42                	jg     0x140933e69
140933e27:	41 8d 40 1f          	lea    0x1f(%r8),%eax
140933e2b:	3b c8                	cmp    %eax,%ecx
140933e2d:	7e 05                	jle    0x140933e34
140933e2f:	66 ff c7             	inc    %di
140933e32:	eb 35                	jmp    0x140933e69
140933e34:	2b ca                	sub    %edx,%ecx
140933e36:	48 63 c1             	movslq %ecx,%rax
140933e39:	0f b6 0c 18          	movzbl (%rax,%rbx,1),%ecx
140933e3d:	66 03 f9             	add    %cx,%di
140933e40:	eb 27                	jmp    0x140933e69
140933e42:	8d 41 31             	lea    0x31(%rcx),%eax
140933e45:	3b d0                	cmp    %eax,%edx
140933e47:	7e 06                	jle    0x140933e4f
140933e49:	41 0f b7 f8          	movzwl %r8w,%edi
140933e4d:	eb 1a                	jmp    0x140933e69
140933e4f:	8d 41 1f             	lea    0x1f(%rcx),%eax
140933e52:	3b d0                	cmp    %eax,%edx
140933e54:	7e 06                	jle    0x140933e5c
140933e56:	41 8d 78 01          	lea    0x1(%r8),%edi
140933e5a:	eb 0d                	jmp    0x140933e69
140933e5c:	2b d1                	sub    %ecx,%edx
140933e5e:	48 63 c2             	movslq %edx,%rax
140933e61:	0f b6 3c 18          	movzbl (%rax,%rbx,1),%edi
140933e65:	66 41 03 f8          	add    %r8w,%di
140933e69:	49 8b 71 f0          	mov    -0x10(%r9),%rsi
140933e6d:	49 0b 77 08          	or     0x8(%r15),%rsi
140933e71:	66 45 03 67 16       	add    0x16(%r15),%r12w
140933e76:	45 84 f6             	test   %r14b,%r14b
140933e79:	0f 89 9e 00 00 00    	jns    0x140933f1d
140933e7f:	49 8b 53 10          	mov    0x10(%r11),%rdx
140933e83:	48 8d 44 24 78       	lea    0x78(%rsp),%rax
140933e88:	48 89 44 24 30       	mov    %rax,0x30(%rsp)
140933e8d:	49 8d 5b 44          	lea    0x44(%r11),%rbx
140933e91:	8b 44 24 54          	mov    0x54(%rsp),%eax
140933e95:	4d 8d 41 f0          	lea    -0x10(%r9),%r8
140933e99:	44 0f b7 0b          	movzwl (%rbx),%r9d
140933e9d:	49 8b cb             	mov    %r11,%rcx
140933ea0:	4c 89 7c 24 28       	mov    %r15,0x28(%rsp)
140933ea5:	66 89 44 24 20       	mov    %ax,0x20(%rsp)
140933eaa:	e8 91 f2 ff ff       	call   0x140933140
140933eaf:	4c 8b 5c 24 78       	mov    0x78(%rsp),%r11
140933eb4:	44 0f b6 f0          	movzbl %al,%r14d
140933eb8:	84 c0                	test   %al,%al
140933eba:	79 71                	jns    0x140933f2d
140933ebc:	0f b7 d7             	movzwl %di,%edx
140933ebf:	66 83 ef 02          	sub    $0x2,%di
140933ec3:	4c 8b 54 24 70       	mov    0x70(%rsp),%r10
140933ec8:	33 c9                	xor    %ecx,%ecx
140933eca:	44 8b 44 24 48       	mov    0x48(%rsp),%r8d
140933ecf:	49 8b da             	mov    %r10,%rbx
140933ed2:	45 85 c0             	test   %r8d,%r8d
140933ed5:	7e 1d                	jle    0x140933ef4
140933ed7:	48 39 33             	cmp    %rsi,(%rbx)
140933eda:	75 0d                	jne    0x140933ee9
140933edc:	41 0f b6 c6          	movzbl %r14b,%eax
140933ee0:	32 43 16             	xor    0x16(%rbx),%al
140933ee3:	0f 8d 76 01 00 00    	jge    0x14093405f
140933ee9:	ff c1                	inc    %ecx
140933eeb:	48 83 c3 20          	add    $0x20,%rbx
140933eef:	41 3b c8             	cmp    %r8d,%ecx
140933ef2:	7c e3                	jl     0x140933ed7
140933ef4:	44 3b 44 24 4c       	cmp    0x4c(%rsp),%r8d
140933ef9:	0f 8c 72 02 00 00    	jl     0x140934171
140933eff:	66 3b d5             	cmp    %bp,%dx
140933f02:	0f 8f 83 01 00 00    	jg     0x14093408b
140933f08:	75 0a                	jne    0x140933f14
140933f0a:	66 41 3b fd          	cmp    %r13w,%di
140933f0e:	0f 8d 77 01 00 00    	jge    0x14093408b
140933f14:	8b 44 24 50          	mov    0x50(%rsp),%eax
140933f18:	e9 5f 02 00 00       	jmp    0x14093417c
140933f1d:	48 8b 9c 24 00 01 00 	mov    0x100(%rsp),%rbx
140933f24:	00
140933f25:	4d 8b 59 f8          	mov    -0x8(%r9),%r11
140933f29:	48 83 c3 44          	add    $0x44,%rbx
140933f2d:	8b 4c 24 68          	mov    0x68(%rsp),%ecx
140933f31:	45 0f b6 ce          	movzbl %r14b,%r9d
140933f35:	44 3b c9             	cmp    %ecx,%r9d
140933f38:	7d 82                	jge    0x140933ebc
140933f3a:	48 8b 94 24 80 00 00 	mov    0x80(%rsp),%rdx
140933f41:	00
140933f42:	42 0f b7 14 4a       	movzwl (%rdx,%r9,2),%edx
140933f47:	66 85 d2             	test   %dx,%dx
140933f4a:	0f 85 85 00 00 00    	jne    0x140933fd5
140933f50:	44 0f b7 84 24 08 01 	movzwl 0x108(%rsp),%r8d
140933f57:	00 00
140933f59:	8b c1                	mov    %ecx,%eax
140933f5b:	41 2b c1             	sub    %r9d,%eax
140933f5e:	6b c0 64             	imul   $0x64,%eax,%eax
140933f61:	99                   	cltd
140933f62:	f7 f9                	idiv   %ecx
140933f64:	48 63 c8             	movslq %eax,%rcx
140933f67:	e8 04 95 fb ff       	call   0x1408ed470
140933f6c:	0f b7 13             	movzwl (%rbx),%edx
140933f6f:	44 0f b7 d0          	movzwl %ax,%r10d
140933f73:	66 0f ba e2 0e       	bt     $0xe,%dx
140933f78:	41 0f b7 d8          	movzwl %r8w,%ebx
140933f7c:	73 17                	jae    0x140933f95
140933f7e:	48 8b 84 24 00 01 00 	mov    0x100(%rsp),%rax
140933f85:	00
140933f86:	0f b7 48 46          	movzwl 0x46(%rax),%ecx
140933f8a:	66 3b cb             	cmp    %bx,%cx
140933f8d:	7d 06                	jge    0x140933f95
140933f8f:	44 0f b7 c1          	movzwl %cx,%r8d
140933f93:	eb 11                	jmp    0x140933fa6
140933f95:	66 0f ba e2 08       	bt     $0x8,%dx
140933f9a:	73 0a                	jae    0x140933fa6
140933f9c:	66 83 fb 0a          	cmp    $0xa,%bx
140933fa0:	7e 0b                	jle    0x140933fad
140933fa2:	44 8d 43 f6          	lea    -0xa(%rbx),%r8d
140933fa6:	66 41 83 f8 0a       	cmp    $0xa,%r8w
140933fab:	7f 05                	jg     0x140933fb2
140933fad:	0f b7 d3             	movzwl %bx,%edx
140933fb0:	eb 0e                	jmp    0x140933fc0
140933fb2:	49 0f bf c8          	movswq %r8w,%rcx
140933fb6:	e8 b5 94 fb ff       	call   0x1408ed470
140933fbb:	8d 53 df             	lea    -0x21(%rbx),%edx
140933fbe:	03 d0                	add    %eax,%edx
140933fc0:	48 8b 84 24 80 00 00 	mov    0x80(%rsp),%rax
140933fc7:	00
140933fc8:	66 83 ea 32          	sub    $0x32,%dx
140933fcc:	66 41 03 d2          	add    %r10w,%dx
140933fd0:	66 42 89 14 48       	mov    %dx,(%rax,%r9,2)
140933fd5:	0f bf cf             	movswl %di,%ecx
140933fd8:	44 0f bf c2          	movswl %dx,%r8d
140933fdc:	66 3b fa             	cmp    %dx,%di
140933fdf:	7c 45                	jl     0x140934026
140933fe1:	41 8d 40 31          	lea    0x31(%r8),%eax
140933fe5:	3b c8                	cmp    %eax,%ecx
140933fe7:	7e 0c                	jle    0x140933ff5
140933fe9:	0f b7 d7             	movzwl %di,%edx
140933fec:	66 83 c2 05          	add    $0x5,%dx
140933ff0:	e9 ce fe ff ff       	jmp    0x140933ec3
140933ff5:	41 8d 40 1f          	lea    0x1f(%r8),%eax
140933ff9:	3b c8                	cmp    %eax,%ecx
140933ffb:	7e 0c                	jle    0x140934009
140933ffd:	8d 57 01             	lea    0x1(%rdi),%edx
140934000:	66 83 c2 05          	add    $0x5,%dx
140934004:	e9 ba fe ff ff       	jmp    0x140933ec3
140934009:	41 2b c8             	sub    %r8d,%ecx
14093400c:	48 63 c1             	movslq %ecx,%rax
14093400f:	48 8d 0d 82 78 71 00 	lea    0x717882(%rip),%rcx        # 0x14104b898
140934016:	0f b6 14 08          	movzbl (%rax,%rcx,1),%edx
14093401a:	66 03 d7             	add    %di,%dx
14093401d:	66 83 c2 05          	add    $0x5,%dx
140934021:	e9 9d fe ff ff       	jmp    0x140933ec3
140934026:	8d 41 31             	lea    0x31(%rcx),%eax
140934029:	44 3b c0             	cmp    %eax,%r8d
14093402c:	7f 28                	jg     0x140934056
14093402e:	8d 41 1f             	lea    0x1f(%rcx),%eax
140934031:	44 3b c0             	cmp    %eax,%r8d
140934034:	7e 0c                	jle    0x140934042
140934036:	66 ff c2             	inc    %dx
140934039:	66 83 c2 05          	add    $0x5,%dx
14093403d:	e9 81 fe ff ff       	jmp    0x140933ec3
140934042:	44 2b c1             	sub    %ecx,%r8d
140934045:	48 8d 0d 4c 78 71 00 	lea    0x71784c(%rip),%rcx        # 0x14104b898
14093404c:	49 63 c0             	movslq %r8d,%rax
14093404f:	0f b6 0c 08          	movzbl (%rax,%rcx,1),%ecx
140934053:	66 03 d1             	add    %cx,%dx
140934056:	66 83 c2 05          	add    $0x5,%dx
14093405a:	e9 64 fe ff ff       	jmp    0x140933ec3
14093405f:	41 3b c8             	cmp    %r8d,%ecx