1400392e4:	66 89 01             	mov    %ax,(%rcx)
1400392e7:	48 ff c2             	inc    %rdx
1400392ea:	48 83 c1 02          	add    $0x2,%rcx
1400392ee:	48 3b d5             	cmp    %rbp,%rdx
1400392f1:	7c e1                	jl     0x1400392d4
1400392f3:	e9 e8 01 00 00       	jmp    0x1400394e0
1400392f8:	44 8a 27             	mov    (%rdi),%r12b
1400392fb:	48 ff c7             	inc    %rdi
1400392fe:	eb 0d                	jmp    0x14003930d
140039300:	44 8a a4 24 30 01 00 	mov    0x130(%rsp),%r12b
140039307:	00
140039308:	eb 03                	jmp    0x14003930d
14003930a:	41 b4 60             	mov    $0x60,%r12b
14003930d:	44 8a 1f             	mov    (%rdi),%r11b
140039310:	41 ba 05 00 00 00    	mov    $0x5,%r10d
140039316:	45 8a c6             	mov    %r14b,%r8b
140039319:	41 8d 52 1b          	lea    0x1b(%r10),%edx
14003931d:	41 80 e3 1f          	and    $0x1f,%r11b
140039321:	76 65                	jbe    0x140039388
140039323:	44 8b fa             	mov    %edx,%r15d
140039326:	4c 8d 35 d3 6c fc ff 	lea    -0x3932d(%rip),%r14        # 0x140000000
14003932d:	45 3a c7             	cmp    %r15b,%r8b
140039330:	73 47                	jae    0x140039379
140039332:	41 8b c2             	mov    %r10d,%eax
140039335:	99                   	cltd
140039336:	83 e2 07             	and    $0x7,%edx
140039339:	03 c2                	add    %edx,%eax
14003933b:	8b c8                	mov    %eax,%ecx
14003933d:	83 e0 07             	and    $0x7,%eax
140039340:	2b c2                	sub    %edx,%eax
140039342:	c1 f9 03             	sar    $0x3,%ecx
140039345:	4c 63 c8             	movslq %eax,%r9
140039348:	48 63 c9             	movslq %ecx,%rcx
14003934b:	85 c0                	test   %eax,%eax
14003934d:	75 06                	jne    0x140039355
14003934f:	0f b6 14 39          	movzbl (%rcx,%rdi,1),%edx
140039353:	eb 10                	jmp    0x140039365
140039355:	43 8b 94 8e 00 18 26 	mov    0x261800(%r14,%r9,4),%edx
14003935c:	00
14003935d:	23 14 39             	and    (%rcx,%rdi,1),%edx
140039360:	41 8b c9             	mov    %r9d,%ecx
140039363:	d3 ea                	shr    %cl,%edx
140039365:	41 0f b6 c0          	movzbl %r8b,%eax
140039369:	41 83 c2 08          	add    $0x8,%r10d
14003936d:	41 fe c0             	inc    %r8b
140039370:	88 54 04 78          	mov    %dl,0x78(%rsp,%rax,1)
140039374:	45 3a c3             	cmp    %r11b,%r8b
140039377:	72 b4                	jb     0x14003932d
140039379:	44 8b 74 24 60       	mov    0x60(%rsp),%r14d
14003937e:	ba 20 00 00 00       	mov    $0x20,%edx
140039383:	44 8b 7c 24 54       	mov    0x54(%rsp),%r15d
140039388:	8a c3                	mov    %bl,%al
14003938a:	b9 a0 00 00 00       	mov    $0xa0,%ecx
14003938f:	41 b1 80             	mov    $0x80,%r9b
140039392:	41 22 c1             	and    %r9b,%al
140039395:	88 44 24 50          	mov    %al,0x50(%rsp)
140039399:	0f 46 ca             	cmovbe %edx,%ecx
14003939c:	41 0f b6 c0          	movzbl %r8b,%eax
1400393a0:	41 fe c3             	inc    %r11b
1400393a3:	41 b8 00 00 00 00    	mov    $0x0,%r8d
1400393a9:	88 4c 04 78          	mov    %cl,0x78(%rsp,%rax,1)
1400393ad:	41 8b c2             	mov    %r10d,%eax
1400393b0:	99                   	cltd
1400393b1:	41 ff c2             	inc    %r10d
1400393b4:	83 e2 07             	and    $0x7,%edx
1400393b7:	03 c2                	add    %edx,%eax
1400393b9:	8b c8                	mov    %eax,%ecx
1400393bb:	83 e0 07             	and    $0x7,%eax
1400393be:	2b c2                	sub    %edx,%eax
1400393c0:	c1 f9 03             	sar    $0x3,%ecx
1400393c3:	48 63 c9             	movslq %ecx,%rcx
1400393c6:	8a 14 39             	mov    (%rcx,%rdi,1),%dl
1400393c9:	8b c8                	mov    %eax,%ecx
1400393cb:	b8 01 00 00 00       	mov    $0x1,%eax
1400393d0:	d3 e0                	shl    %cl,%eax
1400393d2:	84 d0                	test   %dl,%al
1400393d4:	41 0f b6 c3          	movzbl %r11b,%eax
1400393d8:	41 0f 95 c0          	setne  %r8b
1400393dc:	2b e8                	sub    %eax,%ebp
1400393de:	2b ef                	sub    %edi,%ebp
1400393e0:	b8 67 66 66 66       	mov    $0x66666667,%eax
1400393e5:	03 ee                	add    %esi,%ebp
1400393e7:	8d 0c ed 02 00 00 00 	lea    0x2(,%rbp,8),%ecx
1400393ee:	f7 e9                	imul   %ecx
1400393f0:	d1 fa                	sar    $1,%edx
1400393f2:	8b c2                	mov    %edx,%eax
1400393f4:	c1 e8 1f             	shr    $0x1f,%eax
1400393f7:	03 d0                	add    %eax,%edx
1400393f9:	41 2b d0             	sub    %r8d,%edx
1400393fc:	48 63 ea             	movslq %edx,%rbp
1400393ff:	48 89 6c 24 60       	mov    %rbp,0x60(%rsp)
140039404:	48 89 6c 24 68       	mov    %rbp,0x68(%rsp)
140039409:	85 d2                	test   %edx,%edx
14003940b:	0f 8e cc 00 00 00    	jle    0x1400394dd
140039411:	41 8d 6f ff          	lea    -0x1(%r15),%ebp
140039415:	33 f6                	xor    %esi,%esi
140039417:	44 8a 7c 24 50       	mov    0x50(%rsp),%r15b
14003941c:	44 3b f5             	cmp    %ebp,%r14d
14003941f:	0f 8d ae 00 00 00    	jge    0x1400394d3
140039425:	41 8b c2             	mov    %r10d,%eax
140039428:	99                   	cltd
140039429:	83 e2 07             	and    $0x7,%edx
14003942c:	03 c2                	add    %edx,%eax
14003942e:	8b c8                	mov    %eax,%ecx
140039430:	83 e0 07             	and    $0x7,%eax
140039433:	2b c2                	sub    %edx,%eax
140039435:	c1 f9 03             	sar    $0x3,%ecx
140039438:	4c 63 c0             	movslq %eax,%r8
14003943b:	48 63 d1             	movslq %ecx,%rdx
14003943e:	85 c0                	test   %eax,%eax
140039440:	75 09                	jne    0x14003944b
140039442:	0f b6 14 3a          	movzbl (%rdx,%rdi,1),%edx
140039446:	83 e2 1f             	and    $0x1f,%edx
140039449:	eb 31                	jmp    0x14003947c
14003944b:	48 8d 0d ae 6b fc ff 	lea    -0x39452(%rip),%rcx        # 0x140000000
140039452:	41 83 f8 03          	cmp    $0x3,%r8d
140039456:	7f 14                	jg     0x14003946c
140039458:	42 0f b6 84 81 e0 17 	movzbl 0x2617e0(%rcx,%r8,4),%eax
14003945f:	26 00
140039461:	41 8a c8             	mov    %r8b,%cl
140039464:	0f b6 14 3a          	movzbl (%rdx,%rdi,1),%edx
140039468:	23 d0                	and    %eax,%edx
14003946a:	eb 0e                	jmp    0x14003947a
14003946c:	8b 14 3a             	mov    (%rdx,%rdi,1),%edx
14003946f:	42 23 94 81 e0 17 26 	and    0x2617e0(%rcx,%r8,4),%edx
140039476:	00
140039477:	41 8b c8             	mov    %r8d,%ecx
14003947a:	d3 ea                	shr    %cl,%edx
14003947c:	41 83 c2 05          	add    $0x5,%r10d
140039480:	41 3a d3             	cmp    %r11b,%dl
140039483:	73 09                	jae    0x14003948e
140039485:	0f b6 c2             	movzbl %dl,%eax
140039488:	8a 54 04 78          	mov    0x78(%rsp,%rax,1),%dl
14003948c:	eb 06                	jmp    0x140039494
14003948e:	41 2a d3             	sub    %r11b,%dl
140039491:	41 02 d4             	add    %r12b,%dl
140039494:	45 84 ff             	test   %r15b,%r15b
140039497:	74 0d                	je     0x1400394a6
140039499:	41 3a d1             	cmp    %r9b,%dl
14003949c:	72 0d                	jb     0x1400394ab
14003949e:	80 e2 7f             	and    $0x7f,%dl
1400394a1:	0f b6 ca             	movzbl %dl,%ecx
1400394a4:	eb 16                	jmp    0x1400394bc
1400394a6:	41 3a d1             	cmp    %r9b,%dl
1400394a9:	72 f6                	jb     0x1400394a1
1400394ab:	8a c3                	mov    %bl,%al
1400394ad:	24 7f                	and    $0x7f,%al
1400394af:	0f b6 c8             	movzbl %al,%ecx
1400394b2:	66 c1 e1 08          	shl    $0x8,%cx
1400394b6:	0f b6 c2             	movzbl %dl,%eax
1400394b9:	66 0b c8             	or     %ax,%cx
1400394bc:	66 41 89 4c 75 00    	mov    %cx,0x0(%r13,%rsi,2)
1400394c2:	41 ff c6             	inc    %r14d
1400394c5:	48 ff c6             	inc    %rsi
1400394c8:	48 3b 74 24 68       	cmp    0x68(%rsp),%rsi
1400394cd:	0f 8c 49 ff ff ff    	jl     0x14003941c
1400394d3:	48 8b 6c 24 60       	mov    0x60(%rsp),%rbp
1400394d8:	44 8b 7c 24 54       	mov    0x54(%rsp),%r15d
1400394dd:	45 33 db             	xor    %r11d,%r11d
1400394e0:	45 85 ff             	test   %r15d,%r15d
1400394e3:	7e 0e                	jle    0x1400394f3
1400394e5:	45 3b f7             	cmp    %r15d,%r14d
1400394e8:	7d 09                	jge    0x1400394f3
1400394ea:	49 63 c6             	movslq %r14d,%rax
1400394ed:	66 45 89 5c 45 00    	mov    %r11w,0x0(%r13,%rax,2)
1400394f3:	48 8b 4c 24 70       	mov    0x70(%rsp),%rcx
1400394f8:	48 85 c9             	test   %rcx,%rcx
1400394fb:	74 08                	je     0x140039505
1400394fd:	8b 44 24 58          	mov    0x58(%rsp),%eax
140039501:	03 c5                	add    %ebp,%eax
140039503:	89 01                	mov    %eax,(%rcx)
140039505:	48 8b 8c 24 a0 00 00 	mov    0xa0(%rsp),%rcx
14003950c:	00
14003950d:	48 33 cc             	xor    %rsp,%rcx
140039510:	e8 5b b2 1c 00       	call   0x140204770
140039515:	48 81 c4 b8 00 00 00 	add    $0xb8,%rsp
14003951c:	41 5f                	pop    %r15
14003951e:	41 5e                	pop    %r14
140039520:	41 5d                	pop    %r13
140039522:	41 5c                	pop    %r12
140039524:	5f                   	pop    %rdi
140039525:	5e                   	pop    %rsi
140039526:	5d                   	pop    %rbp
140039527:	5b                   	pop    %rbx
140039528:	c3                   	ret
140039529:	90                   	nop
14003952a:	90                   	nop
14003952b:	90                   	nop
14003952c:	45 33 c9             	xor    %r9d,%r9d
14003952f:	48 8b d1             	mov    %rcx,%rdx
140039532:	48 85 c9             	test   %rcx,%rcx
140039535:	75 04                	jne    0x14003953b
140039537:	83 c8 ff             	or     $0xffffffff,%eax
14003953a:	c3                   	ret
14003953b:	0f b7 02             	movzwl (%rdx),%eax
14003953e:	b9 05 15 00 00       	mov    $0x1505,%ecx
140039543:	66 85 c0             	test   %ax,%ax
140039546:	74 18                	je     0x140039560
140039548:	4d 8b c1             	mov    %r9,%r8
14003954b:	6b c9 21             	imul   $0x21,%ecx,%ecx
14003954e:	49 ff c0             	inc    %r8
140039551:	0f b7 c0             	movzwl %ax,%eax
140039554:	33 c8                	xor    %eax,%ecx
140039556:	42 0f b7 04 42       	movzwl (%rdx,%r8,2),%eax
14003955b:	66 85 c0             	test   %ax,%ax
14003955e:	75 eb                	jne    0x14003954b
140039560:	69 c1 6d 4e c6 41    	imul   $0x41c64e6d,%ecx,%eax
140039566:	69 c9 cd 0d 01 00    	imul   $0x10dcd,%ecx,%ecx
14003956c:	05 39 30 00 00       	add    $0x3039,%eax
140039571:	ff c1                	inc    %ecx
140039573:	c1 e8 10             	shr    $0x10,%eax
140039576:	81 e1 00 00 ff ff    	and    $0xffff0000,%ecx
14003957c:	0b c1                	or     %ecx,%eax
14003957e:	c3                   	ret
14003957f:	90                   	nop
140039580:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140039585:	57                   	push   %rdi
140039586:	48 83 ec 20          	sub    $0x20,%rsp
14003958a:	8b da                	mov    %edx,%ebx
14003958c:	48 8b f9             	mov    %rcx,%rdi
14003958f:	e8 24 00 00 00       	call   0x1400395b8
140039594:	f6 c3 01             	test   $0x1,%bl
140039597:	74 0e                	je     0x1400395a7
140039599:	48 85 ff             	test   %rdi,%rdi
14003959c:	74 09                	je     0x1400395a7
14003959e:	48 8b cf             	mov    %rdi,%rcx
1400395a1:	ff 15 99 95 1d 00    	call   *0x1d9599(%rip)        # 0x140212b40
1400395a7:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1400395ac:	48 8b c7             	mov    %rdi,%rax
1400395af:	48 83 c4 20          	add    $0x20,%rsp
1400395b3:	5f                   	pop    %rdi
1400395b4:	c3                   	ret
1400395b5:	90                   	nop
1400395b6:	90                   	nop
1400395b7:	90                   	nop
1400395b8:	40 53                	rex push %rbx
1400395ba:	48 83 ec 20          	sub    $0x20,%rsp
1400395be:	48 8b 59 38          	mov    0x38(%rcx),%rbx
1400395c2:	48 8d 05 2f de 1f 00 	lea    0x1fde2f(%rip),%rax        # 0x1402373f8
1400395c9:	48 89 01             	mov    %rax,(%rcx)
1400395cc:	48 85 db             	test   %rbx,%rbx
1400395cf:	74 11                	je     0x1400395e2
1400395d1:	48 8b cb             	mov    %rbx,%rcx
1400395d4:	e8 0b 06 00 00       	call   0x140039be4
1400395d9:	48 8b cb             	mov    %rbx,%rcx
1400395dc:	ff 15 5e 95 1d 00    	call   *0x1d955e(%rip)        # 0x140212b40
1400395e2:	48 83 c4 20          	add    $0x20,%rsp
1400395e6:	5b                   	pop    %rbx
1400395e7:	c3                   	ret
1400395e8:	48 8b c4             	mov    %rsp,%rax
1400395eb:	48 89 58 08          	mov    %rbx,0x8(%rax)
1400395ef:	48 89 68 10          	mov    %rbp,0x10(%rax)
1400395f3:	48 89 70 20          	mov    %rsi,0x20(%rax)
1400395f7:	44 89 40 18          	mov    %r8d,0x18(%rax)
1400395fb:	57                   	push   %rdi
1400395fc:	41 54                	push   %r12
1400395fe:	41 55                	push   %r13
140039600:	41 56                	push   %r14
140039602:	41 57                	push   %r15
140039604:	4c 8b 5c 24 50       	mov    0x50(%rsp),%r11
140039609:	45 8d 78 ff          	lea    -0x1(%r8),%r15d
14003960d:	44 8a ea             	mov    %dl,%r13b
140039610:	44 8b d1             	mov    %ecx,%r10d
140039613:	41 c1 ea 10          	shr    $0x10,%r10d
140039617:	be ff ff 00 00       	mov    $0xffff,%esi
14003961c:	80 fa 04             	cmp    $0x4,%dl
14003961f:	45 8b e1             	mov    %r9d,%r12d
140039622:	44 0f 44 d1          	cmove  %ecx,%r10d
140039626:	83 c8 ff             	or     $0xffffffff,%eax
140039629:	33 ff                	xor    %edi,%edi
14003962b:	33 ed                	xor    %ebp,%ebp
14003962d:	80 fa 04             	cmp    $0x4,%dl
140039630:	0f 44 f0             	cmove  %eax,%esi
140039633:	33 d2                	xor    %edx,%edx
140039635:	8b c6                	mov    %esi,%eax
140039637:	45 33 c9             	xor    %r9d,%r9d
14003963a:	41 f7 f0             	div    %r8d
14003963d:	33 d2                	xor    %edx,%edx
14003963f:	8b c8                	mov    %eax,%ecx
140039641:	41 8b c2             	mov    %r10d,%eax
140039644:	f7 f1                	div    %ecx
140039646:	41 3b c7             	cmp    %r15d,%eax
140039649:	44 8b c0             	mov    %eax,%r8d
14003964c:	45 0f 43 c7          	cmovae %r15d,%r8d
140039650:	41 8b c8             	mov    %r8d,%ecx
140039653:	41 0f af cc          	imul   %r12d,%ecx
140039657:	41 80 fd 04          	cmp    $0x4,%r13b
14003965b:	75 09                	jne    0x140039666
14003965d:	42 8b 0c 19          	mov    (%rcx,%r11,1),%ecx
140039661:	e9 f1 00 00 00       	jmp    0x140039757
140039666:	42 0f b7 0c 19       	movzwl (%rcx,%r11,1),%ecx
14003966b:	e9 e7 00 00 00       	jmp    0x140039757
140039670:	73 09                	jae    0x14003967b
140039672:	41 8d 78 01          	lea    0x1(%r8),%edi
140039676:	8d 69 01             	lea    0x1(%rcx),%ebp
140039679:	eb 18                	jmp    0x140039693
14003967b:	45 85 c0             	test   %r8d,%r8d
14003967e:	0f 84 11 01 00 00    	je     0x140039795
140039684:	85 c9                	test   %ecx,%ecx
140039686:	0f 84 09 01 00 00    	je     0x140039795
14003968c:	45 8d 78 ff          	lea    -0x1(%r8),%r15d
140039690:	8d 71 ff             	lea    -0x1(%rcx),%esi
140039693:	44 3b ff             	cmp    %edi,%r15d
140039696:	0f 82 f9 00 00 00    	jb     0x140039795
14003969c:	3b f5                	cmp    %ebp,%esi
14003969e:	0f 82 f1 00 00 00    	jb     0x140039795
1400396a4:	75 08                	jne    0x1400396ae
1400396a6:	44 8b c7             	mov    %edi,%r8d
1400396a9:	e9 8a 00 00 00       	jmp    0x140039738
1400396ae:	8b c6                	mov    %esi,%eax
1400396b0:	0f 57 c9             	xorps  %xmm1,%xmm1
1400396b3:	2b c5                	sub    %ebp,%eax
1400396b5:	0f 57 c0             	xorps  %xmm0,%xmm0
1400396b8:	41 8b df             	mov    %r15d,%ebx
1400396bb:	2b df                	sub    %edi,%ebx
1400396bd:	f2 48 0f 2a c0       	cvtsi2sd %rax,%xmm0
1400396c2:	41 8b c2             	mov    %r10d,%eax
1400396c5:	2b c5                	sub    %ebp,%eax
1400396c7:	f2 48 0f 2a cb       	cvtsi2sd %rbx,%xmm1
1400396cc:	f2 0f 5e c8          	divsd  %xmm0,%xmm1
1400396d0:	0f 57 c0             	xorps  %xmm0,%xmm0
1400396d3:	f2 48 0f 2a c0       	cvtsi2sd %rax,%xmm0
1400396d8:	f2 0f 59 c8          	mulsd  %xmm0,%xmm1
1400396dc:	f2 4c 0f 2c f1       	cvttsd2si %xmm1,%r14
1400396e1:	45 85 c9             	test   %r9d,%r9d
1400396e4:	74 4b                	je     0x140039731
1400396e6:	45 8b c1             	mov    %r9d,%r8d
1400396e9:	41 8b c2             	mov    %r10d,%eax
1400396ec:	41 2b c1             	sub    %r9d,%eax
1400396ef:	45 2b c2             	sub    %r10d,%r8d
1400396f2:	41 3b c0             	cmp    %r8d,%eax
1400396f5:	44 0f 42 c0          	cmovb  %eax,%r8d
1400396f9:	8b c1                	mov    %ecx,%eax
1400396fb:	41 2b c1             	sub    %r9d,%eax
1400396fe:	44 2b c9             	sub    %ecx,%r9d
140039701:	41 3b c1             	cmp    %r9d,%eax
140039704:	44 0f 42 c8          	cmovb  %eax,%r9d
140039708:	45 85 c9             	test   %r9d,%r9d
14003970b:	74 24                	je     0x140039731
14003970d:	45 85 c0             	test   %r8d,%r8d
140039710:	74 1f                	je     0x140039731
140039712:	33 d2                	xor    %edx,%edx
140039714:	41 8b c0             	mov    %r8d,%eax
140039717:	41 f7 f1             	div    %r9d
14003971a:	83 f8 0a             	cmp    $0xa,%eax
14003971d:	77 0d                	ja     0x14003972c
14003971f:	33 d2                	xor    %edx,%edx
140039721:	41 8b c1             	mov    %r9d,%eax
140039724:	41 f7 f0             	div    %r8d
140039727:	83 f8 0a             	cmp    $0xa,%eax