140e39ccf:	89 7e 04             	mov    %edi,0x4(%rsi)
140e39cd2:	48 c1 e9 20          	shr    $0x20,%rcx
140e39cd6:	49 8b c6             	mov    %r14,%rax
140e39cd9:	85 c9                	test   %ecx,%ecx
140e39cdb:	89 4e 08             	mov    %ecx,0x8(%rsi)
140e39cde:	40 0f 95 c5          	setne  %bpl
140e39ce2:	ff c5                	inc    %ebp
140e39ce4:	89 2e                	mov    %ebp,(%rsi)
140e39ce6:	e9 4f 03 00 00       	jmp    0x140e3a03a
140e39ceb:	41 3b ea             	cmp    %r10d,%ebp
140e39cee:	0f 87 44 03 00 00    	ja     0x140e3a038
140e39cf4:	45 8b c2             	mov    %r10d,%r8d
140e39cf7:	49 63 d2             	movslq %r10d,%rdx
140e39cfa:	44 2b c5             	sub    %ebp,%r8d
140e39cfd:	45 8b ca             	mov    %r10d,%r9d
140e39d00:	49 63 d8             	movslq %r8d,%rbx
140e39d03:	48 3b d3             	cmp    %rbx,%rdx
140e39d06:	7c 49                	jl     0x140e39d51
140e39d08:	48 83 c1 04          	add    $0x4,%rcx
140e39d0c:	48 8d 04 9d 00 00 00 	lea    0x0(,%rbx,4),%rax
140e39d13:	00
140e39d14:	4d 8b df             	mov    %r15,%r11
140e39d17:	4c 2b d8             	sub    %rax,%r11
140e39d1a:	4c 2b de             	sub    %rsi,%r11
140e39d1d:	48 8d 0c 91          	lea    (%rcx,%rdx,4),%rcx
140e39d21:	8b 01                	mov    (%rcx),%eax
140e39d23:	41 39 04 0b          	cmp    %eax,(%r11,%rcx,1)
140e39d27:	75 11                	jne    0x140e39d3a
140e39d29:	41 ff c9             	dec    %r9d
140e39d2c:	48 ff ca             	dec    %rdx
140e39d2f:	48 83 e9 04          	sub    $0x4,%rcx
140e39d33:	48 3b d3             	cmp    %rbx,%rdx
140e39d36:	7d e9                	jge    0x140e39d21
140e39d38:	eb 17                	jmp    0x140e39d51
140e39d3a:	41 8b c1             	mov    %r9d,%eax
140e39d3d:	41 2b c0             	sub    %r8d,%eax
140e39d40:	48 63 d0             	movslq %eax,%rdx
140e39d43:	49 63 c1             	movslq %r9d,%rax
140e39d46:	8b 4c 86 04          	mov    0x4(%rsi,%rax,4),%ecx
140e39d4a:	41 39 4c 97 04       	cmp    %ecx,0x4(%r15,%rdx,4)
140e39d4f:	73 03                	jae    0x140e39d54
140e39d51:	41 ff c0             	inc    %r8d
140e39d54:	45 85 c0             	test   %r8d,%r8d
140e39d57:	0f 84 db 02 00 00    	je     0x140e3a038
140e39d5d:	45 8b 4c af 04       	mov    0x4(%r15,%rbp,4),%r9d
140e39d62:	8d 47 fe             	lea    -0x2(%rdi),%eax
140e39d65:	45 8b 5c 87 04       	mov    0x4(%r15,%rax,4),%r11d
140e39d6a:	33 ed                	xor    %ebp,%ebp
140e39d6c:	41 0f bd c1          	bsr    %r9d,%eax
140e39d70:	44 89 9c 24 70 02 00 	mov    %r11d,0x270(%rsp)
140e39d77:	00
140e39d78:	74 1e                	je     0x140e39d98
140e39d7a:	bb 1f 00 00 00       	mov    $0x1f,%ebx
140e39d7f:	41 be 20 00 00 00    	mov    $0x20,%r14d
140e39d85:	2b d8                	sub    %eax,%ebx
140e39d87:	44 2b f3             	sub    %ebx,%r14d
140e39d8a:	44 89 b4 24 60 02 00 	mov    %r14d,0x260(%rsp)
140e39d91:	00
140e39d92:	85 db                	test   %ebx,%ebx
140e39d94:	74 4e                	je     0x140e39de4
140e39d96:	eb 0f                	jmp    0x140e39da7
140e39d98:	bb 20 00 00 00       	mov    $0x20,%ebx
140e39d9d:	89 ac 24 60 02 00 00 	mov    %ebp,0x260(%rsp)
140e39da4:	44 8b f5             	mov    %ebp,%r14d
140e39da7:	41 8b c1             	mov    %r9d,%eax
140e39daa:	41 8b d3             	mov    %r11d,%edx
140e39dad:	41 8b ce             	mov    %r14d,%ecx
140e39db0:	d3 ea                	shr    %cl,%edx
140e39db2:	8b cb                	mov    %ebx,%ecx
140e39db4:	d3 e0                	shl    %cl,%eax
140e39db6:	44 8b ca             	mov    %edx,%r9d
140e39db9:	41 d3 e3             	shl    %cl,%r11d
140e39dbc:	44 0b c8             	or     %eax,%r9d
140e39dbf:	44 89 9c 24 70 02 00 	mov    %r11d,0x270(%rsp)
140e39dc6:	00
140e39dc7:	83 ff 02             	cmp    $0x2,%edi
140e39dca:	76 18                	jbe    0x140e39de4
140e39dcc:	8d 47 fd             	lea    -0x3(%rdi),%eax
140e39dcf:	41 8b ce             	mov    %r14d,%ecx
140e39dd2:	41 8b 44 87 04       	mov    0x4(%r15,%rax,4),%eax
140e39dd7:	d3 e8                	shr    %cl,%eax
140e39dd9:	44 0b d8             	or     %eax,%r11d
140e39ddc:	44 89 9c 24 70 02 00 	mov    %r11d,0x270(%rsp)
140e39de3:	00
140e39de4:	45 8d 60 ff          	lea    -0x1(%r8),%r12d
140e39de8:	48 89 6c 24 30       	mov    %rbp,0x30(%rsp)
140e39ded:	4c 8b dd             	mov    %rbp,%r11
140e39df0:	45 85 e4             	test   %r12d,%r12d
140e39df3:	0f 88 00 02 00 00    	js     0x140e39ff9
140e39df9:	41 8b c6             	mov    %r14d,%eax
140e39dfc:	41 bf ff ff ff ff    	mov    $0xffffffff,%r15d
140e39e02:	48 89 44 24 38       	mov    %rax,0x38(%rsp)
140e39e07:	41 8b c1             	mov    %r9d,%eax
140e39e0a:	4c 89 ac 24 18 02 00 	mov    %r13,0x218(%rsp)
140e39e11:	00
140e39e12:	45 8d 2c 3c          	lea    (%r12,%rdi,1),%r13d
140e39e16:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
140e39e1b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
140e39e20:	45 3b ea             	cmp    %r10d,%r13d
140e39e23:	77 07                	ja     0x140e39e2c
140e39e25:	42 8b 54 ae 04       	mov    0x4(%rsi,%r13,4),%edx
140e39e2a:	eb 02                	jmp    0x140e39e2e
140e39e2c:	8b d5                	mov    %ebp,%edx
140e39e2e:	89 94 24 78 02 00 00 	mov    %edx,0x278(%rsp)
140e39e35:	41 8d 45 ff          	lea    -0x1(%r13),%eax
140e39e39:	8b 4c 86 04          	mov    0x4(%rsi,%rax,4),%ecx
140e39e3d:	41 8d 45 fe          	lea    -0x2(%r13),%eax
140e39e41:	44 8b 5c 86 04       	mov    0x4(%rsi,%rax,4),%r11d
140e39e46:	48 89 4c 24 20       	mov    %rcx,0x20(%rsp)
140e39e4b:	89 54 24 24          	mov    %edx,0x24(%rsp)
140e39e4f:	85 db                	test   %ebx,%ebx
140e39e51:	74 33                	je     0x140e39e86
140e39e53:	48 8b 4c 24 38       	mov    0x38(%rsp),%rcx
140e39e58:	45 8b c3             	mov    %r11d,%r8d
140e39e5b:	48 8b 44 24 20       	mov    0x20(%rsp),%rax
140e39e60:	49 d3 e8             	shr    %cl,%r8
140e39e63:	8b cb                	mov    %ebx,%ecx
140e39e65:	48 d3 e0             	shl    %cl,%rax
140e39e68:	4c 0b c0             	or     %rax,%r8
140e39e6b:	41 d3 e3             	shl    %cl,%r11d
140e39e6e:	41 83 fd 03          	cmp    $0x3,%r13d
140e39e72:	72 17                	jb     0x140e39e8b
140e39e74:	41 8d 45 fd          	lea    -0x3(%r13),%eax
140e39e78:	41 8b ce             	mov    %r14d,%ecx
140e39e7b:	8b 44 86 04          	mov    0x4(%rsi,%rax,4),%eax
140e39e7f:	d3 e8                	shr    %cl,%eax
140e39e81:	44 0b d8             	or     %eax,%r11d
140e39e84:	eb 05                	jmp    0x140e39e8b
140e39e86:	4c 8b 44 24 20       	mov    0x20(%rsp),%r8
140e39e8b:	48 8b 4c 24 28       	mov    0x28(%rsp),%rcx
140e39e90:	33 d2                	xor    %edx,%edx
140e39e92:	49 8b c0             	mov    %r8,%rax
140e39e95:	48 f7 f1             	div    %rcx
140e39e98:	33 d2                	xor    %edx,%edx
140e39e9a:	4c 8b c8             	mov    %rax,%r9
140e39e9d:	49 8b c0             	mov    %r8,%rax
140e39ea0:	48 f7 f1             	div    %rcx
140e39ea3:	44 8b c2             	mov    %edx,%r8d
140e39ea6:	4d 3b cf             	cmp    %r15,%r9
140e39ea9:	76 17                	jbe    0x140e39ec2
140e39eab:	48 b8 01 00 00 00 ff 	movabs $0xffffffff00000001,%rax
140e39eb2:	ff ff ff
140e39eb5:	49 03 c1             	add    %r9,%rax
140e39eb8:	4d 8b cf             	mov    %r15,%r9
140e39ebb:	48 0f af c1          	imul   %rcx,%rax
140e39ebf:	4c 03 c0             	add    %rax,%r8
140e39ec2:	4d 3b c7             	cmp    %r15,%r8
140e39ec5:	77 3e                	ja     0x140e39f05
140e39ec7:	8b 94 24 70 02 00 00 	mov    0x270(%rsp),%edx
140e39ece:	4c 8b f1             	mov    %rcx,%r14
140e39ed1:	8b c2                	mov    %edx,%eax
140e39ed3:	49 0f af c1          	imul   %r9,%rax
140e39ed7:	66 0f 1f 84 00 00 00 	nopw   0x0(%rax,%rax,1)
140e39ede:	00 00
140e39ee0:	49 8b c8             	mov    %r8,%rcx
140e39ee3:	48 c1 e1 20          	shl    $0x20,%rcx
140e39ee7:	49 0b cb             	or     %r11,%rcx
140e39eea:	48 3b c1             	cmp    %rcx,%rax
140e39eed:	76 0e                	jbe    0x140e39efd
140e39eef:	49 ff c9             	dec    %r9
140e39ef2:	48 2b c2             	sub    %rdx,%rax
140e39ef5:	4d 03 c6             	add    %r14,%r8
140e39ef8:	4d 3b c7             	cmp    %r15,%r8
140e39efb:	76 e3                	jbe    0x140e39ee0
140e39efd:	44 8b b4 24 60 02 00 	mov    0x260(%rsp),%r14d
140e39f04:	00
140e39f05:	4d 85 c9             	test   %r9,%r9
140e39f08:	0f 84 c2 00 00 00    	je     0x140e39fd0
140e39f0e:	4c 8b d5             	mov    %rbp,%r10
140e39f11:	44 8b dd             	mov    %ebp,%r11d
140e39f14:	85 ff                	test   %edi,%edi
140e39f16:	74 64                	je     0x140e39f7c
140e39f18:	4c 8b b4 24 68 02 00 	mov    0x268(%rsp),%r14
140e39f1f:	00
140e39f20:	44 8b bc 24 60 02 00 	mov    0x260(%rsp),%r15d
140e39f27:	00
140e39f28:	49 83 c6 04          	add    $0x4,%r14
140e39f2c:	0f 1f 40 00          	nopl   0x0(%rax)
140e39f30:	41 8b 06             	mov    (%r14),%eax
140e39f33:	4d 8d 76 04          	lea    0x4(%r14),%r14
140e39f37:	49 0f af c1          	imul   %r9,%rax
140e39f3b:	4c 03 d0             	add    %rax,%r10
140e39f3e:	43 8d 04 23          	lea    (%r11,%r12,1),%eax
140e39f42:	45 8b c2             	mov    %r10d,%r8d
140e39f45:	8b c8                	mov    %eax,%ecx
140e39f47:	49 c1 ea 20          	shr    $0x20,%r10
140e39f4b:	8b 44 86 04          	mov    0x4(%rsi,%rax,4),%eax
140e39f4f:	49 8b d2             	mov    %r10,%rdx
140e39f52:	49 ff c2             	inc    %r10
140e39f55:	41 3b c0             	cmp    %r8d,%eax
140e39f58:	4c 0f 43 d2          	cmovae %rdx,%r10
140e39f5c:	41 2b c0             	sub    %r8d,%eax
140e39f5f:	41 ff c3             	inc    %r11d
140e39f62:	89 44 8e 04          	mov    %eax,0x4(%rsi,%rcx,4)
140e39f66:	44 3b df             	cmp    %edi,%r11d
140e39f69:	72 c5                	jb     0x140e39f30
140e39f6b:	45 8b f7             	mov    %r15d,%r14d
140e39f6e:	44 89 bc 24 60 02 00 	mov    %r15d,0x260(%rsp)
140e39f75:	00
140e39f76:	41 bf ff ff ff ff    	mov    $0xffffffff,%r15d
140e39f7c:	4c 8b 9c 24 68 02 00 	mov    0x268(%rsp),%r11
140e39f83:	00
140e39f84:	8b 84 24 78 02 00 00 	mov    0x278(%rsp),%eax
140e39f8b:	49 83 c3 04          	add    $0x4,%r11
140e39f8f:	49 3b c2             	cmp    %r10,%rax
140e39f92:	73 38                	jae    0x140e39fcc
140e39f94:	44 8b d5             	mov    %ebp,%r10d
140e39f97:	85 ff                	test   %edi,%edi
140e39f99:	74 2e                	je     0x140e39fc9
140e39f9b:	4c 8b c5             	mov    %rbp,%r8
140e39f9e:	66 90                	xchg   %ax,%ax
140e39fa0:	43 8d 04 22          	lea    (%r10,%r12,1),%eax
140e39fa4:	41 ff c2             	inc    %r10d
140e39fa7:	8b 4c 86 04          	mov    0x4(%rsi,%rax,4),%ecx
140e39fab:	48 8d 14 86          	lea    (%rsi,%rax,4),%rdx
140e39faf:	41 8b 03             	mov    (%r11),%eax
140e39fb2:	4d 8d 5b 04          	lea    0x4(%r11),%r11
140e39fb6:	4c 03 c0             	add    %rax,%r8
140e39fb9:	4c 03 c1             	add    %rcx,%r8
140e39fbc:	44 89 42 04          	mov    %r8d,0x4(%rdx)
140e39fc0:	49 c1 e8 20          	shr    $0x20,%r8
140e39fc4:	44 3b d7             	cmp    %edi,%r10d
140e39fc7:	72 d7                	jb     0x140e39fa0
140e39fc9:	49 ff c9             	dec    %r9
140e39fcc:	45 8d 55 ff          	lea    -0x1(%r13),%r10d
140e39fd0:	4c 8b 5c 24 30       	mov    0x30(%rsp),%r11
140e39fd5:	41 ff cd             	dec    %r13d
140e39fd8:	49 c1 e3 20          	shl    $0x20,%r11
140e39fdc:	41 8b c1             	mov    %r9d,%eax
140e39fdf:	4c 03 d8             	add    %rax,%r11
140e39fe2:	41 83 ec 01          	sub    $0x1,%r12d
140e39fe6:	4c 89 5c 24 30       	mov    %r11,0x30(%rsp)
140e39feb:	0f 89 2f fe ff ff    	jns    0x140e39e20
140e39ff1:	4c 8b ac 24 18 02 00 	mov    0x218(%rsp),%r13
140e39ff8:	00
140e39ff9:	41 ff c2             	inc    %r10d
140e39ffc:	41 8b ca             	mov    %r10d,%ecx
140e39fff:	44 3b 16             	cmp    (%rsi),%r10d
140e3a002:	73 0c                	jae    0x140e3a010
140e3a004:	8b c1                	mov    %ecx,%eax
140e3a006:	ff c1                	inc    %ecx
140e3a008:	89 6c 86 04          	mov    %ebp,0x4(%rsi,%rax,4)
140e3a00c:	3b 0e                	cmp    (%rsi),%ecx
140e3a00e:	72 f4                	jb     0x140e3a004
140e3a010:	44 89 16             	mov    %r10d,(%rsi)
140e3a013:	45 85 d2             	test   %r10d,%r10d
140e3a016:	74 1b                	je     0x140e3a033
140e3a018:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
140e3a01f:	00
140e3a020:	41 8d 52 ff          	lea    -0x1(%r10),%edx
140e3a024:	44 8b d2             	mov    %edx,%r10d
140e3a027:	39 6c 96 04          	cmp    %ebp,0x4(%rsi,%rdx,4)
140e3a02b:	75 06                	jne    0x140e3a033
140e3a02d:	89 16                	mov    %edx,(%rsi)
140e3a02f:	85 d2                	test   %edx,%edx
140e3a031:	75 ed                	jne    0x140e3a020
140e3a033:	49 8b c3             	mov    %r11,%rax
140e3a036:	eb 02                	jmp    0x140e3a03a
140e3a038:	33 c0                	xor    %eax,%eax
140e3a03a:	48 81 c4 20 02 00 00 	add    $0x220,%rsp
140e3a041:	41 5f                	pop    %r15
140e3a043:	41 5e                	pop    %r14
140e3a045:	41 5c                	pop    %r12
140e3a047:	5f                   	pop    %rdi
140e3a048:	5e                   	pop    %rsi
140e3a049:	5d                   	pop    %rbp
140e3a04a:	5b                   	pop    %rbx
140e3a04b:	c3                   	ret
140e3a04c:	8b 51 30             	mov    0x30(%rcx),%edx
140e3a04f:	45 33 c0             	xor    %r8d,%r8d
140e3a052:	4c 8b c9             	mov    %rcx,%r9
140e3a055:	83 fa 05             	cmp    $0x5,%edx
140e3a058:	7f 40                	jg     0x140e3a09a
140e3a05a:	74 13                	je     0x140e3a06f
140e3a05c:	85 d2                	test   %edx,%edx
140e3a05e:	74 51                	je     0x140e3a0b1
140e3a060:	83 ea 01             	sub    $0x1,%edx
140e3a063:	74 4c                	je     0x140e3a0b1
140e3a065:	83 ea 01             	sub    $0x1,%edx
140e3a068:	74 05                	je     0x140e3a06f
140e3a06a:	83 ea 01             	sub    $0x1,%edx
140e3a06d:	75 3a                	jne    0x140e3a0a9
140e3a06f:	8b 51 28             	mov    0x28(%rcx),%edx
140e3a072:	83 fa 05             	cmp    $0x5,%edx
140e3a075:	7f 79                	jg     0x140e3a0f0
140e3a077:	74 18                	je     0x140e3a091
140e3a079:	85 d2                	test   %edx,%edx
140e3a07b:	74 5e                	je     0x140e3a0db
140e3a07d:	83 ea 01             	sub    $0x1,%edx
140e3a080:	74 67                	je     0x140e3a0e9
140e3a082:	83 ea 01             	sub    $0x1,%edx
140e3a085:	74 5b                	je     0x140e3a0e2
140e3a087:	83 ea 01             	sub    $0x1,%edx
140e3a08a:	74 4f                	je     0x140e3a0db
140e3a08c:	83 fa 01             	cmp    $0x1,%edx
140e3a08f:	75 6e                	jne    0x140e3a0ff
140e3a091:	b9 08 00 00 00       	mov    $0x8,%ecx
140e3a096:	48 8b c1             	mov    %rcx,%rax
140e3a099:	c3                   	ret
140e3a09a:	83 ea 06             	sub    $0x6,%edx
140e3a09d:	74 d0                	je     0x140e3a06f
140e3a09f:	83 ea 01             	sub    $0x1,%edx
140e3a0a2:	74 1c                	je     0x140e3a0c0
140e3a0a4:	83 ea 01             	sub    $0x1,%edx
140e3a0a7:	74 08                	je     0x140e3a0b1
140e3a0a9:	83 fa 01             	cmp    $0x1,%edx
140e3a0ac:	74 c1                	je     0x140e3a06f
140e3a0ae:	33 c0                	xor    %eax,%eax
140e3a0b0:	c3                   	ret
140e3a0b1:	8a 41 2c             	mov    0x2c(%rcx),%al
140e3a0b4:	f6 d8                	neg    %al
140e3a0b6:	48 1b c0             	sbb    %rax,%rax
140e3a0b9:	48 f7 d8             	neg    %rax
140e3a0bc:	48 ff c0             	inc    %rax
140e3a0bf:	c3                   	ret
140e3a0c0:	44 39 41 28          	cmp    %r8d,0x28(%rcx)
140e3a0c4:	74 15                	je     0x140e3a0db
140e3a0c6:	83 79 28 03          	cmpl   $0x3,0x28(%rcx)
140e3a0ca:	b9 08 00 00 00       	mov    $0x8,%ecx
140e3a0cf:	74 c5                	je     0x140e3a096
140e3a0d1:	41 39 49 28          	cmp    %ecx,0x28(%r9)
140e3a0d5:	49 0f 45 c8          	cmovne %r8,%rcx
140e3a0d9:	eb bb                	jmp    0x140e3a096
140e3a0db:	b9 04 00 00 00       	mov    $0x4,%ecx
140e3a0e0:	eb b4                	jmp    0x140e3a096
140e3a0e2:	b9 02 00 00 00       	mov    $0x2,%ecx
140e3a0e7:	eb ad                	jmp    0x140e3a096
140e3a0e9:	b9 01 00 00 00       	mov    $0x1,%ecx
140e3a0ee:	eb a6                	jmp    0x140e3a096
140e3a0f0:	83 ea 06             	sub    $0x6,%edx
140e3a0f3:	74 9c                	je     0x140e3a091
140e3a0f5:	83 ea 01             	sub    $0x1,%edx
140e3a0f8:	74 97                	je     0x140e3a091
140e3a0fa:	83 ea 02             	sub    $0x2,%edx
140e3a0fd:	eb 8b                	jmp    0x140e3a08a
140e3a0ff:	49 8b c8             	mov    %r8,%rcx
140e3a102:	eb 92                	jmp    0x140e3a096
140e3a104:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140e3a109:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
140e3a10e:	57                   	push   %rdi
140e3a10f:	48 83 ec 20          	sub    $0x20,%rsp
140e3a113:	48 8b d9             	mov    %rcx,%rbx
140e3a116:	48 8b 49 08          	mov    0x8(%rcx),%rcx
140e3a11a:	48 85 c9             	test   %rcx,%rcx
140e3a11d:	74 10                	je     0x140e3a12f
140e3a11f:	e8 94 4e ff ff       	call   0x140e2efb8
140e3a124:	84 c0                	test   %al,%al
140e3a126:	74 17                	je     0x140e3a13f
140e3a128:	48 83 7b 20 00       	cmpq   $0x0,0x20(%rbx)
140e3a12d:	75 30                	jne    0x140e3a15f