140017ef6:	48 c1 eb 20          	shr    $0x20,%rbx
140017efa:	49 8b c0             	mov    %r8,%rax
140017efd:	48 c1 e8 30          	shr    $0x30,%rax
140017f01:	0f 57 c0             	xorps  %xmm0,%xmm0
140017f04:	80 fb 02             	cmp    $0x2,%bl
140017f07:	4d 8b f1             	mov    %r9,%r14
140017f0a:	0f 94 45 b7          	sete   -0x49(%rbp)
140017f0e:	66 0f 2f c6          	comisd %xmm6,%xmm0
140017f12:	72 75                	jb     0x140017f89
140017f14:	45 85 ff             	test   %r15d,%r15d
140017f17:	7e 44                	jle    0x140017f5d
140017f19:	80 fb 02             	cmp    $0x2,%bl
140017f1c:	75 3f                	jne    0x140017f5d
140017f1e:	41 8b df             	mov    %r15d,%ebx
140017f21:	4d 3b 79 18          	cmp    0x18(%r9),%r15
140017f25:	76 0a                	jbe    0x140017f31
140017f27:	49 8b 01             	mov    (%r9),%rax
140017f2a:	8b d3                	mov    %ebx,%edx
140017f2c:	49 8b c9             	mov    %r9,%rcx
140017f2f:	ff 10                	call   *(%rax)
140017f31:	49 3b 5e 18          	cmp    0x18(%r14),%rbx
140017f35:	48 8b c3             	mov    %rbx,%rax
140017f38:	49 8b 4e 08          	mov    0x8(%r14),%rcx
140017f3c:	4c 8b c3             	mov    %rbx,%r8
140017f3f:	49 0f 47 46 18       	cmova  0x18(%r14),%rax
140017f44:	ba 30 00 00 00       	mov    $0x30,%edx
140017f49:	49 89 46 10          	mov    %rax,0x10(%r14)
140017f4d:	e8 58 28 04 00       	call   0x14005a7aa
140017f52:	41 f7 df             	neg    %r15d
140017f55:	41 8b c7             	mov    %r15d,%eax
140017f58:	e9 c6 03 00 00       	jmp    0x140018323
140017f5d:	49 8b 51 10          	mov    0x10(%r9),%rdx
140017f61:	48 ff c2             	inc    %rdx
140017f64:	49 3b 51 18          	cmp    0x18(%r9),%rdx
140017f68:	76 08                	jbe    0x140017f72
140017f6a:	49 8b 01             	mov    (%r9),%rax
140017f6d:	49 8b ce             	mov    %r14,%rcx
140017f70:	ff 10                	call   *(%rax)
140017f72:	49 8b 46 10          	mov    0x10(%r14),%rax
140017f76:	49 8b 4e 08          	mov    0x8(%r14),%rcx
140017f7a:	c6 04 01 30          	movb   $0x30,(%rcx,%rax,1)
140017f7e:	49 ff 46 10          	incq   0x10(%r14)
140017f82:	33 c0                	xor    %eax,%eax
140017f84:	e9 9a 03 00 00       	jmp    0x140018323
140017f89:	4c 89 a4 24 a0 00 00 	mov    %r12,0xa0(%rsp)
140017f90:	00
140017f91:	45 33 e4             	xor    %r12d,%r12d
140017f94:	44 89 65 bb          	mov    %r12d,-0x45(%rbp)
140017f98:	45 85 ff             	test   %r15d,%r15d
140017f9b:	79 5b                	jns    0x140017ff8
140017f9d:	a8 04                	test   $0x4,%al
140017f9f:	74 29                	je     0x140017fca
140017fa1:	0f 57 c0             	xorps  %xmm0,%xmm0
140017fa4:	f2 0f 5a c6          	cvtsd2ss %xmm6,%xmm0
140017fa8:	e8 d3 ec ff ff       	call   0x140016c80
140017fad:	48 8b d8             	mov    %rax,%rbx
140017fb0:	48 8d 4d bf          	lea    -0x41(%rbp),%rcx
140017fb4:	48 c1 eb 20          	shr    $0x20,%rbx
140017fb8:	44 8b c0             	mov    %eax,%r8d
140017fbb:	49 8b d6             	mov    %r14,%rdx
140017fbe:	e8 3d d2 ff ff       	call   0x140015200
140017fc3:	8b c3                	mov    %ebx,%eax
140017fc5:	e9 51 03 00 00       	jmp    0x14001831b
140017fca:	0f 28 ce             	movaps %xmm6,%xmm1
140017fcd:	48 8d 4d c7          	lea    -0x39(%rbp),%rcx
140017fd1:	e8 2a ef ff ff       	call   0x140016f00
140017fd6:	49 8b d6             	mov    %r14,%rdx
140017fd9:	48 8d 4d bf          	lea    -0x41(%rbp),%rcx
140017fdd:	0f 10 30             	movups (%rax),%xmm6
140017fe0:	66 49 0f 7e f0       	movq   %xmm6,%r8
140017fe5:	e8 46 d4 ff ff       	call   0x140015430
140017fea:	66 0f 73 de 08       	psrldq $0x8,%xmm6
140017fef:	66 0f 7e f0          	movd   %xmm6,%eax
140017ff3:	e9 23 03 00 00       	jmp    0x14001831b
140017ff8:	48 89 b4 24 b0 00 00 	mov    %rsi,0xb0(%rsp)
140017fff:	00
140018000:	48 b8 ff ff ff ff ff 	movabs $0xfffffffffffff,%rax
140018007:	ff 0f 00
14001800a:	66 48 0f 7e f2       	movq   %xmm6,%rdx
14001800f:	48 89 bc 24 a8 00 00 	mov    %rdi,0xa8(%rsp)
140018016:	00
140018017:	4c 8b c2             	mov    %rdx,%r8
14001801a:	4c 89 ac 24 98 00 00 	mov    %r13,0x98(%rsp)
140018021:	00
140018022:	4c 23 c0             	and    %rax,%r8
140018025:	48 c1 ea 34          	shr    $0x34,%rdx
140018029:	81 e2 ff 07 00 00    	and    $0x7ff,%edx
14001802f:	49 b9 00 00 00 00 00 	movabs $0x10000000000000,%r9
140018036:	00 10 00
140018039:	b8 01 00 00 00       	mov    $0x1,%eax
14001803e:	8b f2                	mov    %edx,%esi
140018040:	0f 44 f0             	cmove  %eax,%esi
140018043:	85 d2                	test   %edx,%edx
140018045:	4b 8d 04 08          	lea    (%r8,%r9,1),%rax
140018049:	4c 0f 45 c0          	cmovne %rax,%r8
14001804d:	81 c6 cd fb ff ff    	add    $0xfffffbcd,%esi
140018053:	4d 85 c1             	test   %r8,%r9
140018056:	75 12                	jne    0x14001806a
140018058:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
14001805f:	00
140018060:	4d 03 c0             	add    %r8,%r8
140018063:	ff ce                	dec    %esi
140018065:	4d 85 c1             	test   %r8,%r9
140018068:	74 f6                	je     0x140018060
14001806a:	49 c1 e0 0b          	shl    $0xb,%r8
14001806e:	83 c6 f5             	add    $0xfffffff5,%esi
140018071:	4d 8b d0             	mov    %r8,%r10
140018074:	44 89 65 ef          	mov    %r12d,-0x11(%rbp)
140018078:	b8 c3 ff ff ff       	mov    $0xffffffc3,%eax
14001807d:	49 c1 ea 20          	shr    $0x20,%r10
140018081:	2b c6                	sub    %esi,%eax
140018083:	44 89 7d f3          	mov    %r15d,-0xd(%rbp)
140018087:	48 98                	cltq
140018089:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
14001808e:	48 69 c0 42 4d 10 4d 	imul   $0x4d104d42,%rax,%rax
140018095:	48 03 c1             	add    %rcx,%rax
140018098:	48 c1 f8 20          	sar    $0x20,%rax
14001809c:	05 5b 01 00 00       	add    $0x15b,%eax
1400180a1:	99                   	cltd
1400180a2:	83 e2 07             	and    $0x7,%edx
1400180a5:	03 c2                	add    %edx,%eax
1400180a7:	c1 f8 03             	sar    $0x3,%eax
1400180aa:	48 63 f8             	movslq %eax,%rdi
1400180ad:	44 8d 2c c5 ac fe ff 	lea    -0x154(,%rax,8),%r13d
1400180b4:	ff
1400180b5:	48 8d 05 44 7f fe ff 	lea    -0x180bc(%rip),%rax        # 0x140000000
1400180bc:	48 8b 8c f8 a8 12 06 	mov    0x612a8(%rax,%rdi,8),%rcx
1400180c3:	00
1400180c4:	41 8b c0             	mov    %r8d,%eax
1400180c7:	4c 8b c9             	mov    %rcx,%r9
1400180ca:	8b d1                	mov    %ecx,%edx
1400180cc:	48 0f af d0          	imul   %rax,%rdx
1400180d0:	44 8b c1             	mov    %ecx,%r8d
1400180d3:	48 c1 ea 20          	shr    $0x20,%rdx
1400180d7:	4d 0f af c2          	imul   %r10,%r8
1400180db:	49 c1 e9 20          	shr    $0x20,%r9
1400180df:	4d 8b d9             	mov    %r9,%r11
1400180e2:	4c 0f af d8          	imul   %rax,%r11
1400180e6:	4d 0f af ca          	imul   %r10,%r9
1400180ea:	41 8b c0             	mov    %r8d,%eax
1400180ed:	48 03 d0             	add    %rax,%rdx
1400180f0:	41 8b cb             	mov    %r11d,%ecx
1400180f3:	49 c1 e8 20          	shr    $0x20,%r8
1400180f7:	b8 00 00 00 80       	mov    $0x80000000,%eax
1400180fc:	48 03 d0             	add    %rax,%rdx
1400180ff:	49 c1 eb 20          	shr    $0x20,%r11
140018103:	48 03 d1             	add    %rcx,%rdx
140018106:	48 8d 05 f3 7e fe ff 	lea    -0x1810d(%rip),%rax        # 0x140000000
14001810d:	0f bf 8c 78 62 15 06 	movswl 0x61562(%rax,%rdi,2),%ecx
140018114:	00
140018115:	8b 45 d3             	mov    -0x2d(%rbp),%eax
140018118:	83 c1 40             	add    $0x40,%ecx
14001811b:	89 45 d3             	mov    %eax,-0x2d(%rbp)
14001811e:	03 ce                	add    %esi,%ecx
140018120:	49 8b 46 08          	mov    0x8(%r14),%rax
140018124:	48 c1 ea 20          	shr    $0x20,%rdx
140018128:	49 03 d1             	add    %r9,%rdx
14001812b:	48 89 45 e7          	mov    %rax,-0x19(%rbp)
14001812f:	89 4d cf             	mov    %ecx,-0x31(%rbp)
140018132:	4c 8d 4d e7          	lea    -0x19(%rbp),%r9
140018136:	49 03 d0             	add    %r8,%rdx
140018139:	48 8d 4d c7          	lea    -0x39(%rbp),%rcx
14001813d:	41 8b c5             	mov    %r13d,%eax
140018140:	4c 8d 45 bb          	lea    -0x45(%rbp),%r8
140018144:	f7 d8                	neg    %eax
140018146:	49 03 d3             	add    %r11,%rdx
140018149:	48 89 55 c7          	mov    %rdx,-0x39(%rbp)
14001814d:	0f 28 45 c7          	movaps -0x39(%rbp),%xmm0
140018151:	89 45 f7             	mov    %eax,-0x9(%rbp)
140018154:	0f b6 45 b7          	movzbl -0x49(%rbp),%eax
140018158:	88 45 fb             	mov    %al,-0x5(%rbp)
14001815b:	66 0f 7f 45 c7       	movdqa %xmm0,-0x39(%rbp)
140018160:	e8 1b 9c fe ff       	call   0x140001d80
140018165:	44 0f b6 7d c5       	movzbl -0x3b(%rbp),%r15d
14001816a:	83 f8 02             	cmp    $0x2,%eax
14001816d:	74 2d                	je     0x14001819c
14001816f:	8b 7d bb             	mov    -0x45(%rbp),%edi
140018172:	03 7d f7             	add    -0x9(%rbp),%edi
140018175:	8b 75 ef             	mov    -0x11(%rbp),%esi
140018178:	49 3b 76 18          	cmp    0x18(%r14),%rsi
14001817c:	76 0a                	jbe    0x140018188
14001817e:	49 8b 06             	mov    (%r14),%rax
140018181:	8b d6                	mov    %esi,%edx
140018183:	49 8b ce             	mov    %r14,%rcx
140018186:	ff 10                	call   *(%rax)
140018188:	49 8b 46 18          	mov    0x18(%r14),%rax
14001818c:	48 3b f0             	cmp    %rax,%rsi
14001818f:	48 0f 46 c6          	cmovbe %rsi,%rax
140018193:	49 89 46 10          	mov    %rax,0x10(%r14)
140018197:	e9 0f 01 00 00       	jmp    0x1400182ab
14001819c:	8b 4d ef             	mov    -0x11(%rbp),%ecx
14001819f:	8b 45 bb             	mov    -0x45(%rbp),%eax
1400181a2:	41 2b cd             	sub    %r13d,%ecx
1400181a5:	44 8b 55 f3          	mov    -0xd(%rbp),%r10d
1400181a9:	ff c8                	dec    %eax
1400181ab:	03 c8                	add    %eax,%ecx
1400181ad:	4c 89 65 ef          	mov    %r12,-0x11(%rbp)
1400181b1:	89 4d bb             	mov    %ecx,-0x45(%rbp)
1400181b4:	41 f6 c7 04          	test   $0x4,%r15b
1400181b8:	74 54                	je     0x14001820e
1400181ba:	0f 57 c0             	xorps  %xmm0,%xmm0
1400181bd:	f2 0f 5a c6          	cvtsd2ss %xmm6,%xmm0
1400181c1:	66 0f 7e c0          	movd   %xmm0,%eax
1400181c5:	8b c8                	mov    %eax,%ecx
1400181c7:	c1 e8 17             	shr    $0x17,%eax
1400181ca:	81 e1 ff ff 7f 00    	and    $0x7fffff,%ecx
1400181d0:	44 0f b6 c0          	movzbl %al,%r8d
1400181d4:	48 89 4d e7          	mov    %rcx,-0x19(%rbp)
1400181d8:	48 85 c9             	test   %rcx,%rcx
1400181db:	75 1c                	jne    0x1400181f9
1400181dd:	41 83 f8 01          	cmp    $0x1,%r8d
1400181e1:	76 16                	jbe    0x1400181f9
1400181e3:	b2 01                	mov    $0x1,%dl
1400181e5:	48 8d 81 00 00 80 00 	lea    0x800000(%rcx),%rax
1400181ec:	48 89 45 e7          	mov    %rax,-0x19(%rbp)
1400181f0:	41 8d 80 6a ff ff ff 	lea    -0x96(%r8),%eax
1400181f7:	eb 63                	jmp    0x14001825c
1400181f9:	32 d2                	xor    %dl,%dl
1400181fb:	84 c0                	test   %al,%al
1400181fd:	75 e6                	jne    0x1400181e5
1400181ff:	41 b8 01 00 00 00    	mov    $0x1,%r8d
140018205:	41 8d 80 6a ff ff ff 	lea    -0x96(%r8),%eax
14001820c:	eb 4e                	jmp    0x14001825c
14001820e:	66 48 0f 7e f1       	movq   %xmm6,%rcx
140018213:	48 ba ff ff ff ff ff 	movabs $0xfffffffffffff,%rdx
14001821a:	ff 0f 00
14001821d:	48 8b c1             	mov    %rcx,%rax
140018220:	48 c1 e9 34          	shr    $0x34,%rcx
140018224:	48 23 c2             	and    %rdx,%rax
140018227:	81 e1 ff 07 00 00    	and    $0x7ff,%ecx
14001822d:	48 89 45 e7          	mov    %rax,-0x19(%rbp)
140018231:	48 85 c0             	test   %rax,%rax
140018234:	0f 85 0b 01 00 00    	jne    0x140018345
14001823a:	83 f9 01             	cmp    $0x1,%ecx
14001823d:	0f 86 02 01 00 00    	jbe    0x140018345
140018243:	b2 01                	mov    $0x1,%dl
140018245:	49 b8 00 00 00 00 00 	movabs $0x10000000000000,%r8
14001824c:	00 10 00
14001824f:	49 03 c0             	add    %r8,%rax
140018252:	48 89 45 e7          	mov    %rax,-0x19(%rbp)
140018256:	8d 81 cd fb ff ff    	lea    -0x433(%rcx),%eax
14001825c:	0f 10 45 e7          	movups -0x19(%rbp),%xmm0
140018260:	84 d2                	test   %dl,%dl
140018262:	89 45 f7             	mov    %eax,-0x9(%rbp)
140018265:	f2 0f 10 4d f7       	movsd  -0x9(%rbp),%xmm1
14001826a:	48 8d 4d c7          	lea    -0x39(%rbp),%rcx
14001826e:	41 0f 95 c4          	setne  %r12b
140018272:	0f 29 45 c7          	movaps %xmm0,-0x39(%rbp)
140018276:	b8 ff 02 00 00       	mov    $0x2ff,%eax
14001827b:	f2 0f 11 4d d7       	movsd  %xmm1,-0x29(%rbp)
140018280:	41 8b d4             	mov    %r12d,%edx
140018283:	4d 8b ce             	mov    %r14,%r9
140018286:	83 ca 04             	or     $0x4,%edx
140018289:	80 fb 02             	cmp    $0x2,%bl
14001828c:	41 0f 45 d4          	cmovne %r12d,%edx
140018290:	44 3b d0             	cmp    %eax,%r10d
140018293:	44 0f 4f d0          	cmovg  %eax,%r10d
140018297:	48 8d 45 bb          	lea    -0x45(%rbp),%rax
14001829b:	45 8b c2             	mov    %r10d,%r8d
14001829e:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
1400182a3:	e8 38 a8 fe ff       	call   0x140002ae0
1400182a8:	8b 7d bb             	mov    -0x45(%rbp),%edi
1400182ab:	4c 8b ac 24 98 00 00 	mov    0x98(%rsp),%r13
1400182b2:	00
1400182b3:	48 8b b4 24 b0 00 00 	mov    0xb0(%rsp),%rsi
1400182ba:	00
1400182bb:	80 fb 02             	cmp    $0x2,%bl
1400182be:	74 51                	je     0x140018311
1400182c0:	41 f6 c7 08          	test   $0x8,%r15b
1400182c4:	75 4b                	jne    0x140018311
1400182c6:	49 8b 5e 10          	mov    0x10(%r14),%rbx
1400182ca:	48 85 db             	test   %rbx,%rbx
1400182cd:	74 21                	je     0x1400182f0
1400182cf:	49 8b 4e 08          	mov    0x8(%r14),%rcx
1400182d3:	48 ff c9             	dec    %rcx
1400182d6:	48 03 cb             	add    %rbx,%rcx
1400182d9:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
1400182e0:	80 39 30             	cmpb   $0x30,(%rcx)
1400182e3:	75 0b                	jne    0x1400182f0
1400182e5:	48 ff c9             	dec    %rcx
1400182e8:	ff c7                	inc    %edi
1400182ea:	48 83 eb 01          	sub    $0x1,%rbx
1400182ee:	75 f0                	jne    0x1400182e0
1400182f0:	49 3b 5e 18          	cmp    0x18(%r14),%rbx
1400182f4:	76 0c                	jbe    0x140018302
1400182f6:	4d 8b 06             	mov    (%r14),%r8
1400182f9:	48 8b d3             	mov    %rbx,%rdx
1400182fc:	49 8b ce             	mov    %r14,%rcx
1400182ff:	41 ff 10             	call   *(%r8)
140018302:	49 8b 4e 18          	mov    0x18(%r14),%rcx
140018306:	48 3b d9             	cmp    %rcx,%rbx
140018309:	48 0f 46 cb          	cmovbe %rbx,%rcx
14001830d:	49 89 4e 10          	mov    %rcx,0x10(%r14)
140018311:	8b c7                	mov    %edi,%eax
140018313:	48 8b bc 24 a8 00 00 	mov    0xa8(%rsp),%rdi
14001831a:	00
14001831b:	4c 8b a4 24 a0 00 00 	mov    0xa0(%rsp),%r12
140018322:	00
140018323:	48 8b 4d ff          	mov    -0x1(%rbp),%rcx
140018327:	48 33 cc             	xor    %rsp,%rcx
14001832a:	e8 d1 14 04 00       	call   0x140059800
14001832f:	0f 28 b4 24 80 00 00 	movaps 0x80(%rsp),%xmm6
140018336:	00
140018337:	48 81 c4 b8 00 00 00 	add    $0xb8,%rsp
14001833e:	41 5f                	pop    %r15
140018340:	41 5e                	pop    %r14
140018342:	5b                   	pop    %rbx
140018343:	5d                   	pop    %rbp
140018344:	c3                   	ret
140018345:	32 d2                	xor    %dl,%dl
140018347:	85 c9                	test   %ecx,%ecx
140018349:	0f 85 f6 fe ff ff    	jne    0x140018245
14001834f:	b9 01 00 00 00       	mov    $0x1,%ecx
140018354:	e9 fd fe ff ff       	jmp    0x140018256
140018359:	cc                   	int3
14001835a:	cc                   	int3
14001835b:	cc                   	int3
14001835c:	cc                   	int3
14001835d:	cc                   	int3
14001835e:	cc                   	int3
14001835f:	cc                   	int3
140018360:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140018365:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
14001836a:	57                   	push   %rdi
14001836b:	48 83 ec 30          	sub    $0x30,%rsp
14001836f:	44 0f b6 09          	movzbl (%rcx),%r9d
140018373:	49 8b f0             	mov    %r8,%rsi
140018376:	4c 8b d2             	mov    %rdx,%r10
140018379:	48 8b f9             	mov    %rcx,%rdi
14001837c:	41 8d 41 d0          	lea    -0x30(%r9),%eax
140018380:	3c 09                	cmp    $0x9,%al
140018382:	0f 87 c2 00 00 00    	ja     0x14001844a
140018388:	33 db                	xor    %ebx,%ebx
14001838a:	41 80 f9 30          	cmp    $0x30,%r9b
14001838e:	74 57                	je     0x1400183e7
140018390:	44 8b c3             	mov    %ebx,%r8d
140018393:	48 ff c1             	inc    %rcx
140018396:	41 0f be d1          	movsbl %r9b,%edx
14001839a:	8d 1c 9b             	lea    (%rbx,%rbx,4),%ebx
14001839d:	8d 5b e8             	lea    -0x18(%rbx),%ebx
1400183a0:	8d 1c 5a             	lea    (%rdx,%rbx,2),%ebx
1400183a3:	49 3b ca             	cmp    %r10,%rcx
1400183a6:	74 10                	je     0x1400183b8
1400183a8:	44 0f b6 09          	movzbl (%rcx),%r9d
1400183ac:	41 80 f9 30          	cmp    $0x30,%r9b
1400183b0:	7c 06                	jl     0x1400183b8
1400183b2:	41 80 f9 39          	cmp    $0x39,%r9b
1400183b6:	7e d8                	jle    0x140018390
1400183b8:	48 8b c1             	mov    %rcx,%rax
1400183bb:	48 2b c7             	sub    %rdi,%rax