180111dc2:	4c 8b 54 24 70       	mov    0x70(%rsp),%r10
180111dc7:	4a 8b 5c fb f8       	mov    -0x8(%rbx,%r15,8),%rbx
180111dcc:	4f 8b 5c e2 f8       	mov    -0x8(%r10,%r12,8),%r11
180111dd1:	48 8b cb             	mov    %rbx,%rcx
180111dd4:	e8 b7 f3 ff ff       	call   0x180111190
180111dd9:	4d 8b c7             	mov    %r15,%r8
180111ddc:	49 8b cb             	mov    %r11,%rcx
180111ddf:	49 c1 e0 06          	shl    $0x6,%r8
180111de3:	4c 03 c0             	add    %rax,%r8
180111de6:	4d 8d 48 c0          	lea    -0x40(%r8),%r9
180111dea:	4c 89 4d 10          	mov    %r9,0x10(%rbp)
180111dee:	e8 9d f3 ff ff       	call   0x180111190
180111df3:	49 8b cc             	mov    %r12,%rcx
180111df6:	49 8b d4             	mov    %r12,%rdx
180111df9:	48 c1 e1 06          	shl    $0x6,%rcx
180111dfd:	48 03 c8             	add    %rax,%rcx
180111e00:	48 8d 41 c0          	lea    -0x40(%rcx),%rax
180111e04:	4c 3b c8             	cmp    %rax,%r9
180111e07:	48 89 45 00          	mov    %rax,0x0(%rbp)
180111e0b:	41 8b c4             	mov    %r12d,%eax
180111e0e:	4d 8b cf             	mov    %r15,%r9
180111e11:	49 0f 47 c8          	cmova  %r8,%rcx
180111e15:	4c 8b 44 24 68       	mov    0x68(%rsp),%r8
180111e1a:	48 83 e9 40          	sub    $0x40,%rcx
180111e1e:	48 89 4d 20          	mov    %rcx,0x20(%rbp)
180111e22:	4d 3b fc             	cmp    %r12,%r15
180111e25:	49 8b ca             	mov    %r10,%rcx
180111e28:	41 0f 47 c7          	cmova  %r15d,%eax
180111e2c:	89 45 90             	mov    %eax,-0x70(%rbp)
180111e2f:	e8 b4 e6 ff ff       	call   0x1801104e8
180111e34:	4c 8b 45 a8          	mov    -0x58(%rbp),%r8
180111e38:	8b d0                	mov    %eax,%edx
180111e3a:	48 8b 4d b0          	mov    -0x50(%rbp),%rcx
180111e3e:	49 ff c0             	inc    %r8
180111e41:	48 ff c1             	inc    %rcx
180111e44:	89 44 24 48          	mov    %eax,0x48(%rsp)
180111e48:	49 03 cd             	add    %r13,%rcx
180111e4b:	4c 89 45 a8          	mov    %r8,-0x58(%rbp)
180111e4f:	48 c1 e1 06          	shl    $0x6,%rcx
180111e53:	4c 3b c1             	cmp    %rcx,%r8
180111e56:	76 12                	jbe    0x180111e6a
180111e58:	33 ff                	xor    %edi,%edi
180111e5a:	48 85 f6             	test   %rsi,%rsi
180111e5d:	0f 84 58 06 00 00    	je     0x1801124bb
180111e63:	c7 46 10 10 00 00 00 	movl   $0x10,0x10(%rsi)
180111e6a:	85 ff                	test   %edi,%edi
180111e6c:	0f 84 99 08 00 00    	je     0x18011270b
180111e72:	4c 63 4d 90          	movslq -0x70(%rbp),%r9
180111e76:	41 83 f9 01          	cmp    $0x1,%r9d
180111e7a:	0f 85 0f 02 00 00    	jne    0x18011208f
180111e80:	49 8b c3             	mov    %r11,%rax
180111e83:	48 f7 d0             	not    %rax
180111e86:	48 3b d8             	cmp    %rax,%rbx
180111e89:	0f 86 85 00 00 00    	jbe    0x180111f14
180111e8f:	49 8b c3             	mov    %r11,%rax
180111e92:	4d 8b fb             	mov    %r11,%r15
180111e95:	48 2b c3             	sub    %rbx,%rax
180111e98:	85 d2                	test   %edx,%edx
180111e9a:	4c 0f 4f f8          	cmovg  %rax,%r15
180111e9e:	48 8b c3             	mov    %rbx,%rax
180111ea1:	49 2b c3             	sub    %r11,%rax
180111ea4:	85 d2                	test   %edx,%edx
180111ea6:	48 0f 4f c3          	cmovg  %rbx,%rax
180111eaa:	48 8b d8             	mov    %rax,%rbx
180111ead:	33 c0                	xor    %eax,%eax
180111eaf:	85 d2                	test   %edx,%edx
180111eb1:	8d 48 08             	lea    0x8(%rax),%ecx
180111eb4:	0f 4f c1             	cmovg  %ecx,%eax
180111eb7:	4c 8b 64 04 50       	mov    0x50(%rsp,%rax,1),%r12
180111ebc:	4d 85 f6             	test   %r14,%r14
180111ebf:	75 04                	jne    0x180111ec5
180111ec1:	33 c0                	xor    %eax,%eax
180111ec3:	eb 2b                	jmp    0x180111ef0
180111ec5:	48 8b 54 24 58       	mov    0x58(%rsp),%rdx
180111eca:	49 8b c6             	mov    %r14,%rax
180111ecd:	48 8b 4c 24 50       	mov    0x50(%rsp),%rcx
180111ed2:	4d 8b c4             	mov    %r12,%r8
180111ed5:	48 c1 e0 06          	shl    $0x6,%rax
180111ed9:	48 3d 00 01 00 00    	cmp    $0x100,%rax
180111edf:	75 07                	jne    0x180111ee8
180111ee1:	e8 0a 0f 02 00       	call   0x180132df0
180111ee6:	eb 08                	jmp    0x180111ef0
180111ee8:	4d 8b ce             	mov    %r14,%r9
180111eeb:	e8 d0 0e 02 00       	call   0x180132dc0
180111ef0:	4d 8b df             	mov    %r15,%r11
180111ef3:	48 85 c0             	test   %rax,%rax
180111ef6:	74 1c                	je     0x180111f14
180111ef8:	4d 3b f5             	cmp    %r13,%r14
180111efb:	72 10                	jb     0x180111f0d
180111efd:	33 ff                	xor    %edi,%edi
180111eff:	48 85 f6             	test   %rsi,%rsi
180111f02:	74 10                	je     0x180111f14
180111f04:	c7 46 10 05 00 00 00 	movl   $0x5,0x10(%rsi)
180111f0b:	eb 07                	jmp    0x180111f14
180111f0d:	4b 89 04 f4          	mov    %rax,(%r12,%r14,8)
180111f11:	49 ff c6             	inc    %r14
180111f14:	41 b8 01 00 00 00    	mov    $0x1,%r8d
180111f1a:	45 33 c9             	xor    %r9d,%r9d
180111f1d:	45 33 d2             	xor    %r10d,%r10d
180111f20:	4c 89 44 24 48       	mov    %r8,0x48(%rsp)
180111f25:	45 8b f8             	mov    %r8d,%r15d
180111f28:	85 ff                	test   %edi,%edi
180111f2a:	0f 84 9e 00 00 00    	je     0x180111fce
180111f30:	4d 85 db             	test   %r11,%r11
180111f33:	0f 84 90 00 00 00    	je     0x180111fc9
180111f39:	49 3b db             	cmp    %r11,%rbx
180111f3c:	72 3f                	jb     0x180111f7d
180111f3e:	48 8b c3             	mov    %rbx,%rax
180111f41:	48 c1 e8 02          	shr    $0x2,%rax
180111f45:	49 3b c3             	cmp    %r11,%rax
180111f48:	72 25                	jb     0x180111f6f
180111f4a:	33 d2                	xor    %edx,%edx
180111f4c:	48 8b c3             	mov    %rbx,%rax
180111f4f:	49 f7 f3             	div    %r11
180111f52:	48 8b c8             	mov    %rax,%rcx
180111f55:	49 0f af cb          	imul   %r11,%rcx
180111f59:	48 2b d9             	sub    %rcx,%rbx
180111f5c:	48 8b c8             	mov    %rax,%rcx
180111f5f:	49 0f af ca          	imul   %r10,%rcx
180111f63:	49 0f af c7          	imul   %r15,%rax
180111f67:	4c 03 c1             	add    %rcx,%r8
180111f6a:	4c 03 c8             	add    %rax,%r9
180111f6d:	eb 0e                	jmp    0x180111f7d
180111f6f:	49 2b db             	sub    %r11,%rbx
180111f72:	4d 03 c2             	add    %r10,%r8
180111f75:	4d 03 cf             	add    %r15,%r9
180111f78:	49 3b db             	cmp    %r11,%rbx
180111f7b:	73 f2                	jae    0x180111f6f
180111f7d:	48 85 db             	test   %rbx,%rbx
180111f80:	74 47                	je     0x180111fc9
180111f82:	49 8b c3             	mov    %r11,%rax
180111f85:	48 c1 e8 02          	shr    $0x2,%rax
180111f89:	48 3b c3             	cmp    %rbx,%rax
180111f8c:	72 28                	jb     0x180111fb6
180111f8e:	33 d2                	xor    %edx,%edx
180111f90:	49 8b c3             	mov    %r11,%rax
180111f93:	48 f7 f3             	div    %rbx
180111f96:	48 8b c8             	mov    %rax,%rcx
180111f99:	48 0f af cb          	imul   %rbx,%rcx
180111f9d:	4c 2b d9             	sub    %rcx,%r11
180111fa0:	48 8b c8             	mov    %rax,%rcx
180111fa3:	49 0f af c8          	imul   %r8,%rcx
180111fa7:	49 0f af c1          	imul   %r9,%rax
180111fab:	4c 03 d1             	add    %rcx,%r10
180111fae:	4c 03 f8             	add    %rax,%r15
180111fb1:	e9 7a ff ff ff       	jmp    0x180111f30
180111fb6:	4c 2b db             	sub    %rbx,%r11
180111fb9:	4d 03 d0             	add    %r8,%r10
180111fbc:	4d 03 f9             	add    %r9,%r15
180111fbf:	4c 3b db             	cmp    %rbx,%r11
180111fc2:	73 f2                	jae    0x180111fb6
180111fc4:	e9 67 ff ff ff       	jmp    0x180111f30
180111fc9:	4c 89 7c 24 48       	mov    %r15,0x48(%rsp)
180111fce:	48 8b 44 24 68       	mov    0x68(%rsp),%rax
180111fd3:	45 33 ff             	xor    %r15d,%r15d
180111fd6:	48 85 db             	test   %rbx,%rbx
180111fd9:	4c 89 85 90 00 00 00 	mov    %r8,0x90(%rbp)
180111fe0:	4c 89 8d 98 00 00 00 	mov    %r9,0x98(%rbp)
180111fe7:	41 0f 95 c7          	setne  %r15b
180111feb:	4c 89 95 a0 00 00 00 	mov    %r10,0xa0(%rbp)
180111ff2:	45 33 e4             	xor    %r12d,%r12d
180111ff5:	48 89 18             	mov    %rbx,(%rax)
180111ff8:	48 8b 44 24 70       	mov    0x70(%rsp),%rax
180111ffd:	4d 85 db             	test   %r11,%r11
180112000:	4c 89 7d 80          	mov    %r15,-0x80(%rbp)
180112004:	41 0f 95 c4          	setne  %r12b
180112008:	4c 89 65 88          	mov    %r12,-0x78(%rbp)
18011200c:	4c 89 18             	mov    %r11,(%rax)
18011200f:	48 8b 44 24 48       	mov    0x48(%rsp),%rax
180112014:	48 89 85 a8 00 00 00 	mov    %rax,0xa8(%rbp)
18011201b:	85 ff                	test   %edi,%edi
18011201d:	0f 84 96 04 00 00    	je     0x1801124b9
180112023:	4c 8b 44 24 58       	mov    0x58(%rsp),%r8
180112028:	48 8d 45 40          	lea    0x40(%rbp),%rax
18011202c:	48 8b 54 24 50       	mov    0x50(%rsp),%rdx
180112031:	48 8d 8d 90 00 00 00 	lea    0x90(%rbp),%rcx
180112038:	48 89 74 24 28       	mov    %rsi,0x28(%rsp)
18011203d:	4d 8b ce             	mov    %r14,%r9
180112040:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
180112045:	e8 56 26 00 00       	call   0x1801146a0
18011204a:	85 c0                	test   %eax,%eax
18011204c:	0f 84 67 04 00 00    	je     0x1801124b9
180112052:	48 83 7d 40 00       	cmpq   $0x0,0x40(%rbp)
180112057:	75 0b                	jne    0x180112064
180112059:	48 83 7d 48 00       	cmpq   $0x0,0x48(%rbp)
18011205e:	0f 84 5c 02 00 00    	je     0x1801122c0
180112064:	4d 3b f5             	cmp    %r13,%r14
180112067:	0f 83 42 04 00 00    	jae    0x1801124af
18011206d:	33 d2                	xor    %edx,%edx
18011206f:	44 8d 6a 08          	lea    0x8(%rdx),%r13d
180112073:	48 8b 4c 14 50       	mov    0x50(%rsp,%rdx,1),%rcx
180112078:	48 8b 44 15 40       	mov    0x40(%rbp,%rdx,1),%rax
18011207d:	49 03 d5             	add    %r13,%rdx
180112080:	4a 89 04 f1          	mov    %rax,(%rcx,%r14,8)
180112084:	48 83 fa 10          	cmp    $0x10,%rdx
180112088:	7c e9                	jl     0x180112073
18011208a:	e9 2a 02 00 00       	jmp    0x1801122b9
18011208f:	4c 8b 45 00          	mov    0x0(%rbp),%r8
180112093:	48 8b 4d 10          	mov    0x10(%rbp),%rcx
180112097:	49 8d 40 20          	lea    0x20(%r8),%rax
18011209b:	48 3b c8             	cmp    %rax,%rcx
18011209e:	0f 87 26 02 00 00    	ja     0x1801122ca
1801120a4:	48 8d 41 20          	lea    0x20(%rcx),%rax
1801120a8:	4c 3b c0             	cmp    %rax,%r8
1801120ab:	0f 87 19 02 00 00    	ja     0x1801122ca
1801120b1:	48 8b 5c 24 70       	mov    0x70(%rsp),%rbx
1801120b6:	41 8b c1             	mov    %r9d,%eax
1801120b9:	48 8b 7c 24 68       	mov    0x68(%rsp),%rdi
1801120be:	41 ba 3f 00 00 00    	mov    $0x3f,%r10d
1801120c4:	c1 e0 06             	shl    $0x6,%eax
1801120c7:	4c 63 d8             	movslq %eax,%r11
1801120ca:	4a 83 24 e3 00       	andq   $0x0,(%rbx,%r12,8)
1801120cf:	4a 83 24 ff 00       	andq   $0x0,(%rdi,%r15,8)
1801120d4:	4c 2b 5d 20          	sub    0x20(%rbp),%r11
1801120d8:	4e 8b 44 cf f0       	mov    -0x10(%rdi,%r9,8),%r8
1801120dd:	4d 2b d3             	sub    %r11,%r10
1801120e0:	4a 8b 54 cf e8       	mov    -0x18(%rdi,%r9,8),%rdx
1801120e5:	49 8b c0             	mov    %r8,%rax
1801120e8:	48 d1 ea             	shr    $1,%rdx
1801120eb:	49 8b ca             	mov    %r10,%rcx
1801120ee:	48 d3 ea             	shr    %cl,%rdx
1801120f1:	49 8b cb             	mov    %r11,%rcx
1801120f4:	48 d3 e0             	shl    %cl,%rax
1801120f7:	48 0b d0             	or     %rax,%rdx
1801120fa:	49 d1 e8             	shr    $1,%r8
1801120fd:	4a 8b 44 cf f8       	mov    -0x8(%rdi,%r9,8),%rax
180112102:	48 d3 e0             	shl    %cl,%rax
180112105:	49 8b ca             	mov    %r10,%rcx
180112108:	49 d3 e8             	shr    %cl,%r8
18011210b:	49 0b c0             	or     %r8,%rax
18011210e:	48 89 55 78          	mov    %rdx,0x78(%rbp)
180112112:	4e 8b 44 cb f0       	mov    -0x10(%rbx,%r9,8),%r8
180112117:	4a 8b 54 cb e8       	mov    -0x18(%rbx,%r9,8),%rdx
18011211c:	48 89 45 70          	mov    %rax,0x70(%rbp)
180112120:	49 8b c0             	mov    %r8,%rax
180112123:	0f 28 4d 70          	movaps 0x70(%rbp),%xmm1
180112127:	48 d1 ea             	shr    $1,%rdx
18011212a:	48 d3 ea             	shr    %cl,%rdx
18011212d:	49 8b cb             	mov    %r11,%rcx
180112130:	48 d3 e0             	shl    %cl,%rax
180112133:	48 0b d0             	or     %rax,%rdx
180112136:	49 d1 e8             	shr    $1,%r8
180112139:	4a 8b 44 cb f8       	mov    -0x8(%rbx,%r9,8),%rax
18011213e:	4c 8b ce             	mov    %rsi,%r9
180112141:	48 d3 e0             	shl    %cl,%rax
180112144:	49 8b ca             	mov    %r10,%rcx
180112147:	49 d3 e8             	shr    %cl,%r8
18011214a:	48 8d 4d 10          	lea    0x10(%rbp),%rcx
18011214e:	49 0b c0             	or     %r8,%rax
180112151:	48 89 55 68          	mov    %rdx,0x68(%rbp)
180112155:	48 89 45 60          	mov    %rax,0x60(%rbp)
180112159:	4c 8d 85 90 00 00 00 	lea    0x90(%rbp),%r8
180112160:	0f 28 45 60          	movaps 0x60(%rbp),%xmm0
180112164:	48 8d 55 20          	lea    0x20(%rbp),%rdx
180112168:	66 0f 7f 45 20       	movdqa %xmm0,0x20(%rbp)
18011216d:	66 0f 7f 4d 10       	movdqa %xmm1,0x10(%rbp)
180112172:	e8 e5 05 00 00       	call   0x18011275c
180112177:	85 c0                	test   %eax,%eax
180112179:	0f 84 3a 03 00 00    	je     0x1801124b9
18011217f:	48 8b 85 a0 00 00 00 	mov    0xa0(%rbp),%rax
180112186:	48 0b 85 98 00 00 00 	or     0x98(%rbp),%rax
18011218d:	75 17                	jne    0x1801121a6
18011218f:	39 44 24 48          	cmp    %eax,0x48(%rsp)
180112193:	8d 48 08             	lea    0x8(%rax),%ecx
180112196:	48 0f 4f c1          	cmovg  %rcx,%rax
18011219a:	48 c7 84 05 98 00 00 	movq   $0x1,0x98(%rbp,%rax,1)
1801121a1:	00 01 00 00 00
1801121a6:	48 8d 85 80 00 00 00 	lea    0x80(%rbp),%rax
1801121ad:	48 89 74 24 28       	mov    %rsi,0x28(%rsp)
1801121b2:	4d 3b fc             	cmp    %r12,%r15
1801121b5:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
1801121ba:	4c 8b c3             	mov    %rbx,%r8
1801121bd:	48 8d 8d 90 00 00 00 	lea    0x90(%rbp),%rcx
1801121c4:	4d 0f 47 e7          	cmova  %r15,%r12
1801121c8:	48 8b d7             	mov    %rdi,%rdx
1801121cb:	4d 8b cc             	mov    %r12,%r9
1801121ce:	e8 ed 25 00 00       	call   0x1801147c0
1801121d3:	85 c0                	test   %eax,%eax
1801121d5:	0f 84 de 02 00 00    	je     0x1801124b9
1801121db:	48 83 bd 80 00 00 00 	cmpq   $0x0,0x80(%rbp)
1801121e2:	00
1801121e3:	0f 85 da 02 00 00    	jne    0x1801124c3
1801121e9:	48 83 bd 88 00 00 00 	cmpq   $0x0,0x88(%rbp)
1801121f0:	00
1801121f1:	0f 85 cc 02 00 00    	jne    0x1801124c3
1801121f7:	49 63 c4             	movslq %r12d,%rax
1801121fa:	45 85 e4             	test   %r12d,%r12d
1801121fd:	74 23                	je     0x180112222
1801121ff:	49 63 cc             	movslq %r12d,%rcx
180112202:	48 8d 57 f8          	lea    -0x8(%rdi),%rdx
180112206:	41 b8 08 00 00 00    	mov    $0x8,%r8d
18011220c:	48 8d 14 ca          	lea    (%rdx,%rcx,8),%rdx
180112210:	48 83 3a 00          	cmpq   $0x0,(%rdx)
180112214:	75 0c                	jne    0x180112222
180112216:	41 ff cc             	dec    %r12d
180112219:	49 2b d0             	sub    %r8,%rdx
18011221c:	48 83 e9 01          	sub    $0x1,%rcx
180112220:	75 ee                	jne    0x180112210
180112222:	85 c0                	test   %eax,%eax
180112224:	74 22                	je     0x180112248
180112226:	48 8d 53 f8          	lea    -0x8(%rbx),%rdx
18011222a:	48 8b c8             	mov    %rax,%rcx
18011222d:	48 8d 14 c2          	lea    (%rdx,%rax,8),%rdx
180112231:	41 b8 08 00 00 00    	mov    $0x8,%r8d
180112237:	48 83 3a 00          	cmpq   $0x0,(%rdx)
18011223b:	75 0b                	jne    0x180112248
18011223d:	ff c8                	dec    %eax
18011223f:	49 2b d0             	sub    %r8,%rdx
180112242:	48 83 e9 01          	sub    $0x1,%rcx
180112246:	75 ef                	jne    0x180112237
180112248:	4c 8b 44 24 58       	mov    0x58(%rsp),%r8
18011224d:	48 8d 8d 90 00 00 00 	lea    0x90(%rbp),%rcx
180112254:	48 8b 54 24 50       	mov    0x50(%rsp),%rdx
180112259:	4d 8b ce             	mov    %r14,%r9
18011225c:	4d 63 fc             	movslq %r12d,%r15
18011225f:	4c 63 e0             	movslq %eax,%r12
180112262:	48 8d 45 50          	lea    0x50(%rbp),%rax
180112266:	48 89 74 24 28       	mov    %rsi,0x28(%rsp)
18011226b:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
180112270:	4c 89 7d 80          	mov    %r15,-0x80(%rbp)
180112274:	4c 89 65 88          	mov    %r12,-0x78(%rbp)
180112278:	e8 23 24 00 00       	call   0x1801146a0
18011227d:	85 c0                	test   %eax,%eax
18011227f:	0f 84 34 02 00 00    	je     0x1801124b9
180112285:	48 83 7d 50 00       	cmpq   $0x0,0x50(%rbp)
18011228a:	75 07                	jne    0x180112293
18011228c:	48 83 7d 58 00       	cmpq   $0x0,0x58(%rbp)
180112291:	74 2d                	je     0x1801122c0
180112293:	4d 3b f5             	cmp    %r13,%r14
180112296:	0f 83 13 02 00 00    	jae    0x1801124af
18011229c:	33 d2                	xor    %edx,%edx
18011229e:	44 8d 6a 08          	lea    0x8(%rdx),%r13d
1801122a2:	48 8b 4c 14 50       	mov    0x50(%rsp,%rdx,1),%rcx
1801122a7:	48 8b 44 15 50       	mov    0x50(%rbp,%rdx,1),%rax
1801122ac:	49 03 d5             	add    %r13,%rdx
1801122af:	4a 89 04 f1          	mov    %rax,(%rcx,%r14,8)
1801122b3:	48 83 fa 10          	cmp    $0x10,%rdx
1801122b7:	7c e9                	jl     0x1801122a2
1801122b9:	4c 8b 6d d0          	mov    -0x30(%rbp),%r13
1801122bd:	49 ff c6             	inc    %r14
1801122c0:	bf 01 00 00 00       	mov    $0x1,%edi
1801122c5:	e9 e1 fa ff ff       	jmp    0x180111dab
1801122ca:	45 33 e4             	xor    %r12d,%r12d
1801122cd:	49 8b ce             	mov    %r14,%rcx
1801122d0:	85 d2                	test   %edx,%edx
1801122d2:	48 89 4c 24 48       	mov    %rcx,0x48(%rsp)
1801122d7:	45 8d 54 24 08       	lea    0x8(%r12),%r10d
1801122dc:	45 0f 4e e2          	cmovle %r10d,%r12d
1801122e0:	45 33 c0             	xor    %r8d,%r8d
1801122e3:	85 d2                	test   %edx,%edx