1401e50d6:	83 ea 01             	sub    $0x1,%edx
1401e50d9:	89 10                	mov    %edx,(%rax)
1401e50db:	c3                   	ret
1401e50dc:	0f 1f 40 00          	nopl   0x0(%rax)
1401e50e0:	55                   	push   %rbp
1401e50e1:	57                   	push   %rdi
1401e50e2:	56                   	push   %rsi
1401e50e3:	53                   	push   %rbx
1401e50e4:	48 83 ec 28          	sub    $0x28,%rsp
1401e50e8:	8d 7a 1f             	lea    0x1f(%rdx),%edi
1401e50eb:	48 89 ce             	mov    %rcx,%rsi
1401e50ee:	89 d3                	mov    %edx,%ebx
1401e50f0:	c1 ff 05             	sar    $0x5,%edi
1401e50f3:	39 79 08             	cmp    %edi,0x8(%rcx)
1401e50f6:	0f 8c b4 00 00 00    	jl     0x1401e51b0
1401e50fc:	89 d8                	mov    %ebx,%eax
1401e50fe:	c1 f8 05             	sar    $0x5,%eax
1401e5101:	83 e3 1f             	and    $0x1f,%ebx
1401e5104:	0f 85 86 00 00 00    	jne    0x1401e5190
1401e510a:	89 46 14             	mov    %eax,0x14(%rsi)
1401e510d:	4c 8d 4e 18          	lea    0x18(%rsi),%r9
1401e5111:	48 98                	cltq
1401e5113:	49 8d 04 81          	lea    (%r9,%rax,4),%rax
1401e5117:	49 39 c1             	cmp    %rax,%r9
1401e511a:	73 5e                	jae    0x1401e517a
1401e511c:	49 8d 51 01          	lea    0x1(%r9),%rdx
1401e5120:	48 8d 78 ff          	lea    -0x1(%rax),%rdi
1401e5124:	48 39 d0             	cmp    %rdx,%rax
1401e5127:	40 0f 93 c5          	setae  %bpl
1401e512b:	4c 29 cf             	sub    %r9,%rdi
1401e512e:	48 89 f9             	mov    %rdi,%rcx
1401e5131:	48 c1 e9 02          	shr    $0x2,%rcx
1401e5135:	48 39 d0             	cmp    %rdx,%rax
1401e5138:	b8 04 00 00 00       	mov    $0x4,%eax
1401e513d:	ba ff 00 00 00       	mov    $0xff,%edx
1401e5142:	4c 8d 04 8d 04 00 00 	lea    0x4(,%rcx,4),%r8
1401e5149:	00
1401e514a:	4c 89 c9             	mov    %r9,%rcx
1401e514d:	4c 0f 42 c0          	cmovb  %rax,%r8
1401e5151:	e8 aa 4c 00 00       	call   0x1401e9e00
1401e5156:	49 89 c1             	mov    %rax,%r9
1401e5159:	85 db                	test   %ebx,%ebx
1401e515b:	74 1d                	je     0x1401e517a
1401e515d:	48 83 e7 fc          	and    $0xfffffffffffffffc,%rdi
1401e5161:	31 c0                	xor    %eax,%eax
1401e5163:	40 84 ed             	test   %bpl,%bpl
1401e5166:	48 0f 44 f8          	cmove  %rax,%rdi
1401e516a:	4d 8d 4c 39 04       	lea    0x4(%r9,%rdi,1),%r9
1401e516f:	b9 20 00 00 00       	mov    $0x20,%ecx
1401e5174:	29 d9                	sub    %ebx,%ecx
1401e5176:	41 d3 69 fc          	shrl   %cl,-0x4(%r9)
1401e517a:	48 89 f0             	mov    %rsi,%rax
1401e517d:	48 83 c4 28          	add    $0x28,%rsp
1401e5181:	5b                   	pop    %rbx
1401e5182:	5e                   	pop    %rsi
1401e5183:	5f                   	pop    %rdi
1401e5184:	5d                   	pop    %rbp
1401e5185:	c3                   	ret
1401e5186:	66 2e 0f 1f 84 00 00 	cs nopw 0x0(%rax,%rax,1)
1401e518d:	00 00 00
1401e5190:	83 c0 01             	add    $0x1,%eax
1401e5193:	4c 8d 4e 18          	lea    0x18(%rsi),%r9
1401e5197:	89 46 14             	mov    %eax,0x14(%rsi)
1401e519a:	48 98                	cltq
1401e519c:	49 8d 04 81          	lea    (%r9,%rax,4),%rax
1401e51a0:	49 39 c1             	cmp    %rax,%r9
1401e51a3:	0f 82 73 ff ff ff    	jb     0x1401e511c
1401e51a9:	eb c4                	jmp    0x1401e516f
1401e51ab:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
1401e51b0:	e8 eb 35 00 00       	call   0x1401e87a0
1401e51b5:	89 f9                	mov    %edi,%ecx
1401e51b7:	e8 f4 34 00 00       	call   0x1401e86b0
1401e51bc:	48 89 c6             	mov    %rax,%rsi
1401e51bf:	e9 38 ff ff ff       	jmp    0x1401e50fc
1401e51c4:	66 66 2e 0f 1f 84 00 	data16 cs nopw 0x0(%rax,%rax,1)
1401e51cb:	00 00 00 00
1401e51cf:	90                   	nop
1401e51d0:	41 57                	push   %r15
1401e51d2:	41 56                	push   %r14
1401e51d4:	41 55                	push   %r13
1401e51d6:	41 54                	push   %r12
1401e51d8:	55                   	push   %rbp
1401e51d9:	57                   	push   %rdi
1401e51da:	56                   	push   %rsi
1401e51db:	53                   	push   %rbx
1401e51dc:	48 81 ec 28 01 00 00 	sub    $0x128,%rsp
1401e51e3:	0f 11 b4 24 d0 00 00 	movups %xmm6,0xd0(%rsp)
1401e51ea:	00
1401e51eb:	0f 11 bc 24 e0 00 00 	movups %xmm7,0xe0(%rsp)
1401e51f2:	00
1401e51f3:	44 0f 11 84 24 f0 00 	movups %xmm8,0xf0(%rsp)
1401e51fa:	00 00
1401e51fc:	44 0f 11 8c 24 00 01 	movups %xmm9,0x100(%rsp)
1401e5203:	00 00
1401e5205:	44 0f 11 94 24 10 01 	movups %xmm10,0x110(%rsp)
1401e520c:	00 00
1401e520e:	48 89 cd             	mov    %rcx,%rbp
1401e5211:	48 89 94 24 78 01 00 	mov    %rdx,0x178(%rsp)
1401e5218:	00
1401e5219:	4c 89 84 24 80 01 00 	mov    %r8,0x180(%rsp)
1401e5220:	00
1401e5221:	4c 89 8c 24 88 01 00 	mov    %r9,0x188(%rsp)
1401e5228:	00
1401e5229:	e8 a2 4b 00 00       	call   0x1401e9dd0
1401e522e:	4c 8b 20             	mov    (%rax),%r12
1401e5231:	4c 89 e1             	mov    %r12,%rcx
1401e5234:	e8 5f 4c 00 00       	call   0x1401e9e98
1401e5239:	c7 84 24 b4 00 00 00 	movl   $0x0,0xb4(%rsp)
1401e5240:	00 00 00 00
1401e5244:	48 c7 84 24 c8 00 00 	movq   $0x0,0xc8(%rsp)
1401e524b:	00 00 00 00 00
1401e5250:	49 89 c3             	mov    %rax,%r11
1401e5253:	48 8b 84 24 80 01 00 	mov    0x180(%rsp),%rax
1401e525a:	00
1401e525b:	44 8b 38             	mov    (%rax),%r15d
1401e525e:	48 89 e8             	mov    %rbp,%rax
1401e5261:	48 89 84 24 c0 00 00 	mov    %rax,0xc0(%rsp)
1401e5268:	00
1401e5269:	0f b6 08             	movzbl (%rax),%ecx
1401e526c:	48 89 c6             	mov    %rax,%rsi
1401e526f:	80 f9 2d             	cmp    $0x2d,%cl
1401e5272:	77 1c                	ja     0x1401e5290
1401e5274:	4c 8d 05 d1 33 05 00 	lea    0x533d1(%rip),%r8        # 0x14023864c
1401e527b:	0f b6 d1             	movzbl %cl,%edx
1401e527e:	49 63 14 90          	movslq (%r8,%rdx,4),%rdx
1401e5282:	4c 01 c2             	add    %r8,%rdx
1401e5285:	ff e2                	jmp    *%rdx
1401e5287:	66 0f 1f 84 00 00 00 	nopw   0x0(%rax,%rax,1)
1401e528e:	00 00
1401e5290:	c7 44 24 6c 00 00 00 	movl   $0x0,0x6c(%rsp)
1401e5297:	00
1401e5298:	45 31 d2             	xor    %r10d,%r10d
1401e529b:	80 f9 30             	cmp    $0x30,%cl
1401e529e:	0f 84 c4 02 00 00    	je     0x1401e5568
1401e52a4:	48 8b 84 24 80 01 00 	mov    0x180(%rsp),%rax
1401e52ab:	00
1401e52ac:	8b 40 10             	mov    0x10(%rax),%eax
1401e52af:	89 84 24 9c 00 00 00 	mov    %eax,0x9c(%rsp)
1401e52b6:	0f be c1             	movsbl %cl,%eax
1401e52b9:	8d 50 d0             	lea    -0x30(%rax),%edx
1401e52bc:	83 fa 09             	cmp    $0x9,%edx
1401e52bf:	0f 87 0b 16 00 00    	ja     0x1401e68d0
1401e52c5:	49 89 f1             	mov    %rsi,%r9
1401e52c8:	31 d2                	xor    %edx,%edx
1401e52ca:	31 ff                	xor    %edi,%edi
1401e52cc:	31 db                	xor    %ebx,%ebx
1401e52ce:	eb 5e                	jmp    0x1401e532e
1401e52d0:	66 66 2e 0f 1f 84 00 	data16 cs nopw 0x0(%rax,%rax,1)
1401e52d7:	00 00 00 00
1401e52db:	66 66 2e 0f 1f 84 00 	data16 cs nopw 0x0(%rax,%rax,1)
1401e52e2:	00 00 00 00
1401e52e6:	66 66 2e 0f 1f 84 00 	data16 cs nopw 0x0(%rax,%rax,1)
1401e52ed:	00 00 00 00
1401e52f1:	66 66 2e 0f 1f 84 00 	data16 cs nopw 0x0(%rax,%rax,1)
1401e52f8:	00 00 00 00
1401e52fc:	0f 1f 40 00          	nopl   0x0(%rax)
1401e5300:	8d 0c bf             	lea    (%rdi,%rdi,4),%ecx
1401e5303:	8d 7c 48 d0          	lea    -0x30(%rax,%rcx,2),%edi
1401e5307:	4d 8d 41 01          	lea    0x1(%r9),%r8
1401e530b:	83 c3 01             	add    $0x1,%ebx
1401e530e:	4c 89 84 24 c0 00 00 	mov    %r8,0xc0(%rsp)
1401e5315:	00
1401e5316:	41 0f be 41 01       	movsbl 0x1(%r9),%eax
1401e531b:	44 8d 68 d0          	lea    -0x30(%rax),%r13d
1401e531f:	89 c1                	mov    %eax,%ecx
1401e5321:	41 83 fd 09          	cmp    $0x9,%r13d
1401e5325:	0f 87 a5 00 00 00    	ja     0x1401e53d0
1401e532b:	4d 89 c1             	mov    %r8,%r9
1401e532e:	83 fb 08             	cmp    $0x8,%ebx
1401e5331:	7e cd                	jle    0x1401e5300
1401e5333:	83 fb 0f             	cmp    $0xf,%ebx
1401e5336:	7f cf                	jg     0x1401e5307
1401e5338:	8d 14 92             	lea    (%rdx,%rdx,4),%edx
1401e533b:	8d 54 50 d0          	lea    -0x30(%rax,%rdx,2),%edx
1401e533f:	eb c6                	jmp    0x1401e5307
1401e5341:	c7 44 24 6c 00 00 00 	movl   $0x0,0x6c(%rsp)
1401e5348:	00
1401e5349:	48 8d 70 01          	lea    0x1(%rax),%rsi
1401e534d:	48 89 b4 24 c0 00 00 	mov    %rsi,0xc0(%rsp)
1401e5354:	00
1401e5355:	0f b6 48 01          	movzbl 0x1(%rax),%ecx
1401e5359:	84 c9                	test   %cl,%cl
1401e535b:	0f 85 37 ff ff ff    	jne    0x1401e5298
1401e5361:	48 83 bc 24 78 01 00 	cmpq   $0x0,0x178(%rsp)
1401e5368:	00 00
1401e536a:	74 0b                	je     0x1401e5377
1401e536c:	48 8b 84 24 78 01 00 	mov    0x178(%rsp),%rax
1401e5373:	00
1401e5374:	48 89 28             	mov    %rbp,(%rax)
1401e5377:	b8 06 00 00 00       	mov    $0x6,%eax
1401e537c:	0f 10 b4 24 d0 00 00 	movups 0xd0(%rsp),%xmm6
1401e5383:	00
1401e5384:	0f 10 bc 24 e0 00 00 	movups 0xe0(%rsp),%xmm7
1401e538b:	00
1401e538c:	44 0f 10 84 24 f0 00 	movups 0xf0(%rsp),%xmm8
1401e5393:	00 00
1401e5395:	44 0f 10 8c 24 00 01 	movups 0x100(%rsp),%xmm9
1401e539c:	00 00
1401e539e:	44 0f 10 94 24 10 01 	movups 0x110(%rsp),%xmm10
1401e53a5:	00 00
1401e53a7:	48 81 c4 28 01 00 00 	add    $0x128,%rsp
1401e53ae:	5b                   	pop    %rbx
1401e53af:	5e                   	pop    %rsi
1401e53b0:	5f                   	pop    %rdi
1401e53b1:	5d                   	pop    %rbp
1401e53b2:	41 5c                	pop    %r12
1401e53b4:	41 5d                	pop    %r13
1401e53b6:	41 5e                	pop    %r14
1401e53b8:	41 5f                	pop    %r15
1401e53ba:	c3                   	ret
1401e53bb:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
1401e53c0:	48 83 c0 01          	add    $0x1,%rax
1401e53c4:	e9 98 fe ff ff       	jmp    0x1401e5261
1401e53c9:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
1401e53d0:	41 38 04 24          	cmp    %al,(%r12)
1401e53d4:	0f 84 de 03 00 00    	je     0x1401e57b8
1401e53da:	83 e1 df             	and    $0xffffffdf,%ecx
1401e53dd:	80 f9 45             	cmp    $0x45,%cl
1401e53e0:	0f 84 2a 02 00 00    	je     0x1401e5610
1401e53e6:	48 8b 84 24 80 01 00 	mov    0x180(%rsp),%rax
1401e53ed:	00
1401e53ee:	c7 84 24 b4 00 00 00 	movl   $0x1,0xb4(%rsp)
1401e53f5:	01 00 00 00
1401e53f9:	8b 40 0c             	mov    0xc(%rax),%eax
1401e53fc:	89 44 24 48          	mov    %eax,0x48(%rsp)
1401e5400:	83 e0 03             	and    $0x3,%eax
1401e5403:	83 f8 02             	cmp    $0x2,%eax
1401e5406:	0f 84 69 15 00 00    	je     0x1401e6975
1401e540c:	c7 44 24 48 00 00 00 	movl   $0x0,0x48(%rsp)
1401e5413:	00
1401e5414:	41 89 de             	mov    %ebx,%r14d
1401e5417:	c7 44 24 70 00 00 00 	movl   $0x0,0x70(%rsp)
1401e541e:	00
1401e541f:	c7 44 24 60 00 00 00 	movl   $0x0,0x60(%rsp)
1401e5426:	00
1401e5427:	8b 4c 24 6c          	mov    0x6c(%rsp),%ecx
1401e542b:	83 c1 01             	add    $0x1,%ecx
1401e542e:	89 8c 24 8c 00 00 00 	mov    %ecx,0x8c(%rsp)
1401e5435:	83 f8 03             	cmp    $0x3,%eax
1401e5438:	74 0f                	je     0x1401e5449
1401e543a:	85 c0                	test   %eax,%eax
1401e543c:	0f 94 c0             	sete   %al
1401e543f:	0f b6 c0             	movzbl %al,%eax
1401e5442:	89 84 24 8c 00 00 00 	mov    %eax,0x8c(%rsp)
1401e5449:	45 85 f6             	test   %r14d,%r14d
1401e544c:	44 0f 44 f3          	cmove  %ebx,%r14d
1401e5450:	b8 11 00 00 00       	mov    $0x11,%eax
1401e5455:	66 0f ef c0          	pxor   %xmm0,%xmm0
1401e5459:	39 c3                	cmp    %eax,%ebx
1401e545b:	0f 4e c3             	cmovle %ebx,%eax
1401e545e:	41 89 c5             	mov    %eax,%r13d
1401e5461:	89 f8                	mov    %edi,%eax
1401e5463:	f2 48 0f 2a c0       	cvtsi2sd %rax,%xmm0
1401e5468:	66 48 0f 7e c5       	movq   %xmm0,%rbp
1401e546d:	83 fb 09             	cmp    $0x9,%ebx
1401e5470:	7e 24                	jle    0x1401e5496
1401e5472:	48 8b 0d 87 36 05 00 	mov    0x53687(%rip),%rcx        # 0x140238b00
1401e5479:	41 8d 45 f7          	lea    -0x9(%r13),%eax
1401e547d:	66 0f ef c9          	pxor   %xmm1,%xmm1
1401e5481:	48 98                	cltq
1401e5483:	f2 48 0f 2a ca       	cvtsi2sd %rdx,%xmm1
1401e5488:	f2 0f 59 04 c1       	mulsd  (%rcx,%rax,8),%xmm0
1401e548d:	f2 0f 58 c1          	addsd  %xmm1,%xmm0
1401e5491:	66 48 0f 7e c5       	movq   %xmm0,%rbp
1401e5496:	41 83 ff 35          	cmp    $0x35,%r15d
1401e549a:	0f 8f b0 03 00 00    	jg     0x1401e5850
1401e54a0:	83 fb 0f             	cmp    $0xf,%ebx
1401e54a3:	0f 8f a7 03 00 00    	jg     0x1401e5850
1401e54a9:	8b 44 24 70          	mov    0x70(%rsp),%eax
1401e54ad:	85 c0                	test   %eax,%eax
1401e54af:	0f 84 57 16 00 00    	je     0x1401e6b0c
1401e54b5:	0f 8e ad 0c 00 00    	jle    0x1401e6168
1401e54bb:	48 63 44 24 70       	movslq 0x70(%rsp),%rax
1401e54c0:	83 f8 16             	cmp    $0x16,%eax
1401e54c3:	0f 8f 12 18 00 00    	jg     0x1401e6cdb
1401e54c9:	48 8d 15 50 32 05 00 	lea    0x53250(%rip),%rdx        # 0x140238720
1401e54d0:	44 8b 04 82          	mov    (%rdx,%rax,4),%r8d
1401e54d4:	85 ed                	test   %ebp,%ebp
1401e54d6:	0f 85 06 1b 00 00    	jne    0x1401e6fe2
1401e54dc:	48 89 ea             	mov    %rbp,%rdx
1401e54df:	b9 15 00 00 00       	mov    $0x15,%ecx
1401e54e4:	48 c1 ea 20          	shr    $0x20,%rdx
1401e54e8:	81 ca 00 00 10 00    	or     $0x100000,%edx
1401e54ee:	f3 0f bc d2          	tzcnt  %edx,%edx
1401e54f2:	29 d1                	sub    %edx,%ecx
1401e54f4:	48 8b 15 05 36 05 00 	mov    0x53605(%rip),%rdx        # 0x140238b00
1401e54fb:	66 48 0f 6e c5       	movq   %rbp,%xmm0
1401e5500:	41 01 c8             	add    %ecx,%r8d
1401e5503:	4c 89 5c 24 50       	mov    %r11,0x50(%rsp)
1401e5508:	f2 0f 59 04 c2       	mulsd  (%rdx,%rax,8),%xmm0
1401e550d:	48 8d 84 24 b4 00 00 	lea    0xb4(%rsp),%rax
1401e5514:	00
1401e5515:	48 89 44 24 30       	mov    %rax,0x30(%rsp)
1401e551a:	8b 84 24 8c 00 00 00 	mov    0x8c(%rsp),%eax
1401e5521:	89 44 24 28          	mov    %eax,0x28(%rsp)
1401e5525:	31 c0                	xor    %eax,%eax
1401e5527:	41 83 f8 35          	cmp    $0x35,%r8d
1401e552b:	0f 9e c0             	setle  %al
1401e552e:	89 44 24 20          	mov    %eax,0x20(%rsp)
1401e5532:	66 48 0f 7e c5       	movq   %xmm0,%rbp
1401e5537:	4c 8b 8c 24 90 01 00 	mov    0x190(%rsp),%r9
1401e553e:	00
1401e553f:	4c 8b 84 24 88 01 00 	mov    0x188(%rsp),%r8
1401e5546:	00
1401e5547:	48 8b 94 24 80 01 00 	mov    0x180(%rsp),%rdx
1401e554e:	00
1401e554f:	e8 6c f7 ff ff       	call   0x1401e4cc0
1401e5554:	4c 8b 5c 24 50       	mov    0x50(%rsp),%r11
1401e5559:	85 c0                	test   %eax,%eax
1401e555b:	75 48                	jne    0x1401e55a5
1401e555d:	31 c0                	xor    %eax,%eax
1401e555f:	e9 f0 02 00 00       	jmp    0x1401e5854
1401e5564:	0f 1f 40 00          	nopl   0x0(%rax)
1401e5568:	0f b6 56 01          	movzbl 0x1(%rsi),%edx
1401e556c:	48 8d 46 01          	lea    0x1(%rsi),%rax
1401e5570:	83 e2 df             	and    $0xffffffdf,%edx
1401e5573:	80 fa 58             	cmp    $0x58,%dl
1401e5576:	0f 84 91 13 00 00    	je     0x1401e690d
1401e557c:	0f 1f 40 00          	nopl   0x0(%rax)
1401e5580:	48 89 84 24 c0 00 00 	mov    %rax,0xc0(%rsp)
1401e5587:	00
1401e5588:	48 89 c6             	mov    %rax,%rsi
1401e558b:	0f b6 08             	movzbl (%rax),%ecx
1401e558e:	48 8d 40 01          	lea    0x1(%rax),%rax
1401e5592:	80 f9 30             	cmp    $0x30,%cl
1401e5595:	74 e9                	je     0x1401e5580
1401e5597:	41 ba 01 00 00 00    	mov    $0x1,%r10d
1401e559d:	84 c9                	test   %cl,%cl
1401e559f:	0f 85 ff fc ff ff    	jne    0x1401e52a4
1401e55a5:	4c 8b 84 24 c8 00 00 	mov    0xc8(%rsp),%r8
1401e55ac:	00
1401e55ad:	48 83 bc 24 78 01 00 	cmpq   $0x0,0x178(%rsp)
1401e55b4:	00 00
1401e55b6:	74 13                	je     0x1401e55cb
1401e55b8:	48 8b 84 24 c0 00 00 	mov    0xc0(%rsp),%rax
1401e55bf:	00
1401e55c0:	48 8b bc 24 78 01 00 	mov    0x178(%rsp),%rdi
1401e55c7:	00
1401e55c8:	48 89 07             	mov    %rax,(%rdi)
1401e55cb:	8b 4c 24 6c          	mov    0x6c(%rsp),%ecx
1401e55cf:	85 c9                	test   %ecx,%ecx
1401e55d1:	74 08                	je     0x1401e55db
1401e55d3:	83 8c 24 b4 00 00 00 	orl    $0x8,0xb4(%rsp)
1401e55da:	08
1401e55db:	4d 85 c0             	test   %r8,%r8
1401e55de:	74 1d                	je     0x1401e55fd
1401e55e0:	48 8b 8c 24 90 01 00 	mov    0x190(%rsp),%rcx
1401e55e7:	00
1401e55e8:	44 89 fa             	mov    %r15d,%edx
1401e55eb:	e8 50 3f 00 00       	call   0x1401e9540