140968cf1:	48 3b f2             	cmp    %rdx,%rsi
140968cf4:	0f 87 22 05 00 00    	ja     0x14096921c
140968cfa:	83 c6 07             	add    $0x7,%esi
140968cfd:	c1 ee 03             	shr    $0x3,%esi
140968d00:	44 8d 66 01          	lea    0x1(%rsi),%r12d
140968d04:	85 db                	test   %ebx,%ebx
140968d06:	75 05                	jne    0x140968d0d
140968d08:	41 8b c6             	mov    %r14d,%eax
140968d0b:	eb 07                	jmp    0x140968d14
140968d0d:	33 d2                	xor    %edx,%edx
140968d0f:	8b c3                	mov    %ebx,%eax
140968d11:	41 f7 f4             	div    %r12d
140968d14:	8b c8                	mov    %eax,%ecx
140968d16:	41 0f af cc          	imul   %r12d,%ecx
140968d1a:	44 8d 68 01          	lea    0x1(%rax),%r13d
140968d1e:	3b cb                	cmp    %ebx,%ecx
140968d20:	44 0f 44 e8          	cmove  %eax,%r13d
140968d24:	44 89 6d 83          	mov    %r13d,-0x7d(%rbp)
140968d28:	0f 57 c0             	xorps  %xmm0,%xmm0
140968d2b:	f3 0f 7f 45 bf       	movdqu %xmm0,-0x41(%rbp)
140968d30:	4c 89 75 cf          	mov    %r14,-0x31(%rbp)
140968d34:	44 88 74 24 20       	mov    %r14b,0x20(%rsp)
140968d39:	41 8b c5             	mov    %r13d,%eax
140968d3c:	41 0f af c4          	imul   %r12d,%eax
140968d40:	8b d0                	mov    %eax,%edx
140968d42:	85 c0                	test   %eax,%eax
140968d44:	74 0e                	je     0x140968d54
140968d46:	4c 8d 44 24 20       	lea    0x20(%rsp),%r8
140968d4b:	48 8d 4d bf          	lea    -0x41(%rbp),%rcx
140968d4f:	e8 e0 07 00 00       	call   0x140969534
140968d54:	4c 8b 75 c7          	mov    -0x39(%rbp),%r14
140968d58:	48 8b 7d bf          	mov    -0x41(%rbp),%rdi
140968d5c:	4c 2b f7             	sub    %rdi,%r14
140968d5f:	75 07                	jne    0x140968d68
140968d61:	ff 15 31 3c 1a 00    	call   *0x1a3c31(%rip)        # 0x140b0c998
140968d67:	cc                   	int3
140968d68:	48 85 db             	test   %rbx,%rbx
140968d6b:	74 57                	je     0x140968dc4
140968d6d:	48 85 ff             	test   %rdi,%rdi
140968d70:	75 0e                	jne    0x140968d80
140968d72:	ff 15 88 3b 1a 00    	call   *0x1a3b88(%rip)        # 0x140b0c900
140968d78:	c7 00 16 00 00 00    	movl   $0x16,(%rax)
140968d7e:	eb 3d                	jmp    0x140968dbd
140968d80:	4d 85 ff             	test   %r15,%r15
140968d83:	74 15                	je     0x140968d9a
140968d85:	4c 3b f3             	cmp    %rbx,%r14
140968d88:	72 10                	jb     0x140968d9a
140968d8a:	4c 8b c3             	mov    %rbx,%r8
140968d8d:	49 8b d7             	mov    %r15,%rdx
140968d90:	48 8b cf             	mov    %rdi,%rcx
140968d93:	e8 08 91 18 00       	call   0x140af1ea0
140968d98:	eb 2a                	jmp    0x140968dc4
140968d9a:	4d 8b c6             	mov    %r14,%r8
140968d9d:	33 d2                	xor    %edx,%edx
140968d9f:	48 8b cf             	mov    %rdi,%rcx
140968da2:	e8 c5 76 18 00       	call   0x140af046c
140968da7:	4d 85 ff             	test   %r15,%r15
140968daa:	74 c6                	je     0x140968d72
140968dac:	4c 3b f3             	cmp    %rbx,%r14
140968daf:	73 13                	jae    0x140968dc4
140968db1:	ff 15 49 3b 1a 00    	call   *0x1a3b49(%rip)        # 0x140b0c900
140968db7:	c7 00 22 00 00 00    	movl   $0x22,(%rax)
140968dbd:	ff 15 8d 3b 1a 00    	call   *0x1a3b8d(%rip)        # 0x140b0c950
140968dc3:	90                   	nop
140968dc4:	48 8b 5d 8f          	mov    -0x71(%rbp),%rbx
140968dc8:	8a 9b 9d 00 00 00    	mov    0x9d(%rbx),%bl
140968dce:	b9 08 01 00 00       	mov    $0x108,%ecx
140968dd3:	e8 2c 68 18 00       	call   0x140aef604
140968dd8:	4c 8b f8             	mov    %rax,%r15
140968ddb:	48 8d 05 16 95 35 00 	lea    0x359516(%rip),%rax        # 0x140cc22f8
140968de2:	49 89 47 08          	mov    %rax,0x8(%r15)
140968de6:	41 83 67 38 00       	andl   $0x0,0x38(%r15)
140968deb:	41 83 67 3c 00       	andl   $0x0,0x3c(%r15)
140968df0:	41 88 9f 05 01 00 00 	mov    %bl,0x105(%r15)
140968df7:	48 8d 05 3a 48 1c 00 	lea    0x1c483a(%rip),%rax        # 0x140b2d638
140968dfe:	49 89 07             	mov    %rax,(%r15)
140968e01:	4c 89 7d af          	mov    %r15,-0x51(%rbp)
140968e05:	4d 85 ff             	test   %r15,%r15
140968e08:	0f 84 17 04 00 00    	je     0x140969225
140968e0e:	45 33 c9             	xor    %r9d,%r9d
140968e11:	33 c0                	xor    %eax,%eax
140968e13:	89 45 87             	mov    %eax,-0x79(%rbp)
140968e16:	45 85 ed             	test   %r13d,%r13d
140968e19:	0f 84 6e 02 00 00    	je     0x14096908d
140968e1f:	41 0f af c4          	imul   %r12d,%eax
140968e23:	8b c8                	mov    %eax,%ecx
140968e25:	49 3b ce             	cmp    %r14,%rcx
140968e28:	0f 83 44 03 00 00    	jae    0x140969172
140968e2e:	4c 8d 04 07          	lea    (%rdi,%rax,1),%r8
140968e32:	41 0f b6 08          	movzbl (%r8),%ecx
140968e36:	8b d1                	mov    %ecx,%edx
140968e38:	85 c9                	test   %ecx,%ecx
140968e3a:	74 18                	je     0x140968e54
140968e3c:	83 ea 01             	sub    $0x1,%edx
140968e3f:	74 13                	je     0x140968e54
140968e41:	83 ea 01             	sub    $0x1,%edx
140968e44:	74 0e                	je     0x140968e54
140968e46:	83 ea 01             	sub    $0x1,%edx
140968e49:	74 09                	je     0x140968e54
140968e4b:	83 fa 01             	cmp    $0x1,%edx
140968e4e:	0f 85 99 03 00 00    	jne    0x1409691ed
140968e54:	49 8b d0             	mov    %r8,%rdx
140968e57:	41 83 fc 02          	cmp    $0x2,%r12d
140968e5b:	0f 82 18 02 00 00    	jb     0x140969079
140968e61:	83 e9 01             	sub    $0x1,%ecx
140968e64:	0f 84 de 01 00 00    	je     0x140969048
140968e6a:	83 e9 01             	sub    $0x1,%ecx
140968e6d:	0f 84 93 01 00 00    	je     0x140969006
140968e73:	83 e9 01             	sub    $0x1,%ecx
140968e76:	0f 84 f4 00 00 00    	je     0x140968f70
140968e7c:	83 f9 01             	cmp    $0x1,%ecx
140968e7f:	0f 85 f4 01 00 00    	jne    0x140969079
140968e85:	4d 85 c9             	test   %r9,%r9
140968e88:	0f 84 ba 01 00 00    	je     0x140969048
140968e8e:	8b 44 24 24          	mov    0x24(%rsp),%eax
140968e92:	41 80 bf 05 01 00 00 	cmpb   $0x0,0x105(%r15)
140968e99:	00
140968e9a:	74 12                	je     0x140968eae
140968e9c:	83 f8 08             	cmp    $0x8,%eax
140968e9f:	76 0d                	jbe    0x140968eae
140968ea1:	41 81 fc 80 00 00 00 	cmp    $0x80,%r12d
140968ea8:	0f 83 cb 01 00 00    	jae    0x140969079
140968eae:	44 8d 50 07          	lea    0x7(%rax),%r10d
140968eb2:	41 c1 ea 03          	shr    $0x3,%r10d
140968eb6:	33 d2                	xor    %edx,%edx
140968eb8:	45 85 d2             	test   %r10d,%r10d
140968ebb:	74 13                	je     0x140968ed0
140968ebd:	3b d6                	cmp    %esi,%edx
140968ebf:	73 0f                	jae    0x140968ed0
140968ec1:	ff c2                	inc    %edx
140968ec3:	41 8a 04 11          	mov    (%r9,%rdx,1),%al
140968ec7:	42 00 04 02          	add    %al,(%rdx,%r8,1)
140968ecb:	41 3b d2             	cmp    %r10d,%edx
140968ece:	72 ed                	jb     0x140968ebd
140968ed0:	44 3b d6             	cmp    %esi,%r10d
140968ed3:	0f 83 a0 01 00 00    	jae    0x140969079
140968ed9:	45 8b da             	mov    %r10d,%r11d
140968edc:	4d 03 d8             	add    %r8,%r11
140968edf:	4d 8b e1             	mov    %r9,%r12
140968ee2:	4d 2b e0             	sub    %r8,%r12
140968ee5:	45 8b ea             	mov    %r10d,%r13d
140968ee8:	41 ff c5             	inc    %r13d
140968eeb:	49 ff c3             	inc    %r11
140968eee:	41 8b c5             	mov    %r13d,%eax
140968ef1:	41 2b c2             	sub    %r10d,%eax
140968ef4:	8b c8                	mov    %eax,%ecx
140968ef6:	41 0f b6 04 01       	movzbl (%r9,%rax,1),%eax
140968efb:	89 44 24 28          	mov    %eax,0x28(%rsp)
140968eff:	41 0f b6 0c 08       	movzbl (%r8,%rcx,1),%ecx
140968f04:	89 4d a7             	mov    %ecx,-0x59(%rbp)
140968f07:	8b d1                	mov    %ecx,%edx
140968f09:	2b d0                	sub    %eax,%edx
140968f0b:	43 0f b6 0c 23       	movzbl (%r11,%r12,1),%ecx
140968f10:	2b c8                	sub    %eax,%ecx
140968f12:	8d 04 11             	lea    (%rcx,%rdx,1),%eax
140968f15:	8b d8                	mov    %eax,%ebx
140968f17:	f7 db                	neg    %ebx
140968f19:	0f 48 d8             	cmovs  %eax,%ebx
140968f1c:	8b c1                	mov    %ecx,%eax
140968f1e:	f7 d8                	neg    %eax
140968f20:	0f 48 c1             	cmovs  %ecx,%eax
140968f23:	89 45 9f             	mov    %eax,-0x61(%rbp)
140968f26:	8b c2                	mov    %edx,%eax
140968f28:	f7 d8                	neg    %eax
140968f2a:	0f 48 c2             	cmovs  %edx,%eax
140968f2d:	89 45 a3             	mov    %eax,-0x5d(%rbp)
140968f30:	41 8a 03             	mov    (%r11),%al
140968f33:	8b 4d 9f             	mov    -0x61(%rbp),%ecx
140968f36:	8b 55 a3             	mov    -0x5d(%rbp),%edx
140968f39:	3b ca                	cmp    %edx,%ecx
140968f3b:	7f 0c                	jg     0x140968f49
140968f3d:	3b cb                	cmp    %ebx,%ecx
140968f3f:	49 8b cb             	mov    %r11,%rcx
140968f42:	7f 18                	jg     0x140968f5c
140968f44:	02 45 a7             	add    -0x59(%rbp),%al
140968f47:	eb 17                	jmp    0x140968f60
140968f49:	3b d3                	cmp    %ebx,%edx
140968f4b:	7f 0c                	jg     0x140968f59
140968f4d:	43 0f b6 0c 23       	movzbl (%r11,%r12,1),%ecx
140968f52:	02 c1                	add    %cl,%al
140968f54:	49 8b cb             	mov    %r11,%rcx
140968f57:	eb 07                	jmp    0x140968f60
140968f59:	49 8b cb             	mov    %r11,%rcx
140968f5c:	02 44 24 28          	add    0x28(%rsp),%al
140968f60:	88 01                	mov    %al,(%rcx)
140968f62:	44 3b ee             	cmp    %esi,%r13d
140968f65:	72 81                	jb     0x140968ee8
140968f67:	44 8d 66 01          	lea    0x1(%rsi),%r12d
140968f6b:	e9 d2 00 00 00       	jmp    0x140969042
140968f70:	8b 54 24 24          	mov    0x24(%rsp),%edx
140968f74:	83 c2 07             	add    $0x7,%edx
140968f77:	c1 ea 03             	shr    $0x3,%edx
140968f7a:	4d 85 c9             	test   %r9,%r9
140968f7d:	75 32                	jne    0x140968fb1
140968f7f:	44 8b d2             	mov    %edx,%r10d
140968f82:	3b d6                	cmp    %esi,%edx
140968f84:	0f 83 ef 00 00 00    	jae    0x140969079
140968f8a:	44 8d 4a 01          	lea    0x1(%rdx),%r9d
140968f8e:	4d 03 c8             	add    %r8,%r9
140968f91:	41 8b c2             	mov    %r10d,%eax
140968f94:	2b c2                	sub    %edx,%eax
140968f96:	ff c0                	inc    %eax
140968f98:	42 8a 0c 00          	mov    (%rax,%r8,1),%cl
140968f9c:	d0 e9                	shr    $1,%cl
140968f9e:	41 00 09             	add    %cl,(%r9)
140968fa1:	41 ff c2             	inc    %r10d
140968fa4:	49 ff c1             	inc    %r9
140968fa7:	44 3b d6             	cmp    %esi,%r10d
140968faa:	72 e5                	jb     0x140968f91
140968fac:	e9 c8 00 00 00       	jmp    0x140969079
140968fb1:	45 33 d2             	xor    %r10d,%r10d
140968fb4:	85 d2                	test   %edx,%edx
140968fb6:	74 17                	je     0x140968fcf
140968fb8:	44 3b d6             	cmp    %esi,%r10d
140968fbb:	73 12                	jae    0x140968fcf
140968fbd:	41 ff c2             	inc    %r10d
140968fc0:	43 8a 04 0a          	mov    (%r10,%r9,1),%al
140968fc4:	d0 e8                	shr    $1,%al
140968fc6:	43 00 04 02          	add    %al,(%r10,%r8,1)
140968fca:	44 3b d2             	cmp    %edx,%r10d
140968fcd:	72 e9                	jb     0x140968fb8
140968fcf:	44 8b da             	mov    %edx,%r11d
140968fd2:	3b d6                	cmp    %esi,%edx
140968fd4:	0f 83 9f 00 00 00    	jae    0x140969079
140968fda:	44 8b d2             	mov    %edx,%r10d
140968fdd:	4d 03 d0             	add    %r8,%r10
140968fe0:	4d 2b c8             	sub    %r8,%r9
140968fe3:	41 ff c3             	inc    %r11d
140968fe6:	49 ff c2             	inc    %r10
140968fe9:	41 8b c3             	mov    %r11d,%eax
140968fec:	2b c2                	sub    %edx,%eax
140968fee:	42 0f b6 0c 00       	movzbl (%rax,%r8,1),%ecx
140968ff3:	43 0f b6 04 11       	movzbl (%r9,%r10,1),%eax
140968ff8:	03 c8                	add    %eax,%ecx
140968ffa:	d1 e9                	shr    $1,%ecx
140968ffc:	41 00 0a             	add    %cl,(%r10)
140968fff:	44 3b de             	cmp    %esi,%r11d
140969002:	72 df                	jb     0x140968fe3
140969004:	eb 73                	jmp    0x140969079
140969006:	4d 85 c9             	test   %r9,%r9
140969009:	74 6e                	je     0x140969079
14096900b:	41 80 bf 05 01 00 00 	cmpb   $0x0,0x105(%r15)
140969012:	00
140969013:	74 10                	je     0x140969025
140969015:	83 7c 24 24 08       	cmpl   $0x8,0x24(%rsp)
14096901a:	76 09                	jbe    0x140969025
14096901c:	41 81 fc 80 00 00 00 	cmp    $0x80,%r12d
140969023:	73 54                	jae    0x140969079
140969025:	8b ce                	mov    %esi,%ecx
140969027:	85 f6                	test   %esi,%esi
140969029:	74 4e                	je     0x140969079
14096902b:	4d 2b c8             	sub    %r8,%r9
14096902e:	41 bd ff ff ff ff    	mov    $0xffffffff,%r13d
140969034:	48 ff c2             	inc    %rdx
140969037:	41 8a 04 11          	mov    (%r9,%rdx,1),%al
14096903b:	00 02                	add    %al,(%rdx)
14096903d:	41 03 cd             	add    %r13d,%ecx
140969040:	75 f2                	jne    0x140969034
140969042:	44 8b 6d 83          	mov    -0x7d(%rbp),%r13d
140969046:	eb 31                	jmp    0x140969079
140969048:	8b 54 24 24          	mov    0x24(%rsp),%edx
14096904c:	83 c2 07             	add    $0x7,%edx
14096904f:	c1 ea 03             	shr    $0x3,%edx
140969052:	44 8b d2             	mov    %edx,%r10d
140969055:	3b d6                	cmp    %esi,%edx
140969057:	73 20                	jae    0x140969079
140969059:	44 8d 4a 01          	lea    0x1(%rdx),%r9d
14096905d:	4d 03 c8             	add    %r8,%r9
140969060:	41 8b c2             	mov    %r10d,%eax
140969063:	2b c2                	sub    %edx,%eax
140969065:	ff c0                	inc    %eax
140969067:	42 8a 0c 00          	mov    (%rax,%r8,1),%cl
14096906b:	41 00 09             	add    %cl,(%r9)
14096906e:	41 ff c2             	inc    %r10d
140969071:	49 ff c1             	inc    %r9
140969074:	44 3b d6             	cmp    %esi,%r10d
140969077:	72 e7                	jb     0x140969060
140969079:	4d 8b c8             	mov    %r8,%r9
14096907c:	8b 45 87             	mov    -0x79(%rbp),%eax
14096907f:	ff c0                	inc    %eax
140969081:	89 45 87             	mov    %eax,-0x79(%rbp)
140969084:	41 3b c5             	cmp    %r13d,%eax
140969087:	0f 82 92 fd ff ff    	jb     0x140968e1f
14096908d:	41 3b c5             	cmp    %r13d,%eax
140969090:	0f 85 e3 00 00 00    	jne    0x140969179
140969096:	41 8b cd             	mov    %r13d,%ecx
140969099:	8b c6                	mov    %esi,%eax
14096909b:	48 0f af c8          	imul   %rax,%rcx
14096909f:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
1409690a4:	48 3b c8             	cmp    %rax,%rcx
1409690a7:	0f 87 a7 01 00 00    	ja     0x140969254
1409690ad:	45 33 c0             	xor    %r8d,%r8d
1409690b0:	45 33 c9             	xor    %r9d,%r9d
1409690b3:	85 c9                	test   %ecx,%ecx
1409690b5:	74 3c                	je     0x1409690f3
1409690b7:	33 d2                	xor    %edx,%edx
1409690b9:	41 8b c1             	mov    %r9d,%eax
1409690bc:	41 f7 f4             	div    %r12d
1409690bf:	41 8d 41 01          	lea    0x1(%r9),%eax
1409690c3:	85 d2                	test   %edx,%edx
1409690c5:	41 0f 45 c1          	cmovne %r9d,%eax
1409690c9:	44 8b c8             	mov    %eax,%r9d
1409690cc:	4d 3b ce             	cmp    %r14,%r9
1409690cf:	0f 83 9d 00 00 00    	jae    0x140969172
1409690d5:	8a 14 07             	mov    (%rdi,%rax,1),%dl
1409690d8:	41 8b c0             	mov    %r8d,%eax
1409690db:	49 3b c6             	cmp    %r14,%rax
1409690de:	0f 83 8e 00 00 00    	jae    0x140969172
1409690e4:	42 88 14 07          	mov    %dl,(%rdi,%r8,1)
1409690e8:	41 ff c0             	inc    %r8d
1409690eb:	41 ff c1             	inc    %r9d
1409690ee:	44 3b c1             	cmp    %ecx,%r8d
1409690f1:	72 c4                	jb     0x1409690b7
1409690f3:	8b d1                	mov    %ecx,%edx
1409690f5:	48 8d 4d bf          	lea    -0x41(%rbp),%rcx
1409690f9:	e8 62 84 84 ff       	call   0x1401b1560
1409690fe:	48 8b 4d 8f          	mov    -0x71(%rbp),%rcx
140969102:	48 83 c1 30          	add    $0x30,%rcx
140969106:	48 8d 55 bf          	lea    -0x41(%rbp),%rdx
14096910a:	e8 ad 02 89 ff       	call   0x1401f93bc
14096910f:	0f 57 c0             	xorps  %xmm0,%xmm0
140969112:	f3 0f 7f 45 8f       	movdqu %xmm0,-0x71(%rbp)
140969117:	48 8d 55 8f          	lea    -0x71(%rbp),%rdx
14096911b:	48 8b 4d d7          	mov    -0x29(%rbp),%rcx
14096911f:	e8 c0 d1 69 ff       	call   0x1400062e4
140969124:	48 8b 4d 97          	mov    -0x69(%rbp),%rcx
140969128:	48 85 c9             	test   %rcx,%rcx
14096912b:	74 3d                	je     0x14096916a
14096912d:	83 cf ff             	or     $0xffffffff,%edi
140969130:	8b c7                	mov    %edi,%eax
140969132:	f0 0f c1 41 08       	lock xadd %eax,0x8(%rcx)
140969137:	03 c7                	add    %edi,%eax
140969139:	75 2f                	jne    0x14096916a
14096913b:	48 8b 5d 97          	mov    -0x69(%rbp),%rbx
14096913f:	48 8b 03             	mov    (%rbx),%rax
140969142:	48 8b cb             	mov    %rbx,%rcx
140969145:	48 8b 00             	mov    (%rax),%rax
140969148:	ff 15 ea 3a 1a 00    	call   *0x1a3aea(%rip)        # 0x140b0cc38
14096914e:	8b c7                	mov    %edi,%eax
140969150:	f0 0f c1 43 0c       	lock xadd %eax,0xc(%rbx)
140969155:	03 c7                	add    %edi,%eax
140969157:	75 11                	jne    0x14096916a
140969159:	48 8b 4d 97          	mov    -0x69(%rbp),%rcx
14096915d:	48 8b 01             	mov    (%rcx),%rax
140969160:	48 8b 40 08          	mov    0x8(%rax),%rax
140969164:	ff 15 ce 3a 1a 00    	call   *0x1a3ace(%rip)        # 0x140b0cc38
14096916a:	b3 01                	mov    $0x1,%bl
14096916c:	48 8b 7d bf          	mov    -0x41(%rbp),%rdi
140969170:	eb 0b                	jmp    0x14096917d
140969172:	ff 15 20 38 1a 00    	call   *0x1a3820(%rip)        # 0x140b0c998