1403871f2:	48 8b cf             	mov    %rdi,%rcx
1403871f5:	48 89 5c 24 60       	mov    %rbx,0x60(%rsp)
1403871fa:	48 83 fd 07          	cmp    $0x7,%rbp
1403871fe:	76 67                	jbe    0x140387267
140387200:	48 8b 1e             	mov    (%rsi),%rbx
140387203:	48 8b d3             	mov    %rbx,%rdx
140387206:	e8 05 7e b5 00       	call   0x140edf010
14038720b:	48 8b 94 24 80 00 00 	mov    0x80(%rsp),%rdx
140387212:	00
140387213:	4d 8b c4             	mov    %r12,%r8
140387216:	49 8b cd             	mov    %r13,%rcx
140387219:	e8 f2 7d b5 00       	call   0x140edf010
14038721e:	48 8b 4c 24 60       	mov    0x60(%rsp),%rcx
140387223:	49 8d 14 1e          	lea    (%r14,%rbx,1),%rdx
140387227:	4e 8d 04 7d 02 00 00 	lea    0x2(,%r15,2),%r8
14038722e:	00
14038722f:	e8 dc 7d b5 00       	call   0x140edf010
140387234:	48 8d 14 6d 02 00 00 	lea    0x2(,%rbp,2),%rdx
14038723b:	00
14038723c:	48 81 fa 00 10 00 00 	cmp    $0x1000,%rdx
140387243:	72 18                	jb     0x14038725d
140387245:	48 8b 4b f8          	mov    -0x8(%rbx),%rcx
140387249:	48 83 c2 27          	add    $0x27,%rdx
14038724d:	48 2b d9             	sub    %rcx,%rbx
140387250:	48 8d 43 f8          	lea    -0x8(%rbx),%rax
140387254:	48 83 f8 1f          	cmp    $0x1f,%rax
140387258:	77 64                	ja     0x1403872be
14038725a:	48 8b d9             	mov    %rcx,%rbx
14038725d:	48 8b cb             	mov    %rbx,%rcx
140387260:	e8 df 3e a9 00       	call   0x140e1b144
140387265:	eb 2f                	jmp    0x140387296
140387267:	48 8b d6             	mov    %rsi,%rdx
14038726a:	e8 a1 7d b5 00       	call   0x140edf010
14038726f:	48 8b 94 24 80 00 00 	mov    0x80(%rsp),%rdx
140387276:	00
140387277:	4d 8b c4             	mov    %r12,%r8
14038727a:	49 8b cd             	mov    %r13,%rcx
14038727d:	e8 8e 7d b5 00       	call   0x140edf010
140387282:	49 8d 14 36          	lea    (%r14,%rsi,1),%rdx
140387286:	48 8b cb             	mov    %rbx,%rcx
140387289:	4e 8d 04 7d 02 00 00 	lea    0x2(,%r15,2),%r8
140387290:	00
140387291:	e8 7a 7d b5 00       	call   0x140edf010
140387296:	48 89 3e             	mov    %rdi,(%rsi)
140387299:	48 8b c6             	mov    %rsi,%rax
14038729c:	4c 8b 6c 24 28       	mov    0x28(%rsp),%r13
1403872a1:	4c 8b 64 24 30       	mov    0x30(%rsp),%r12
1403872a6:	48 8b 7c 24 38       	mov    0x38(%rsp),%rdi
1403872ab:	48 8b 6c 24 68       	mov    0x68(%rsp),%rbp
1403872b0:	4c 8b 74 24 20       	mov    0x20(%rsp),%r14
1403872b5:	48 83 c4 40          	add    $0x40,%rsp
1403872b9:	41 5f                	pop    %r15
1403872bb:	5e                   	pop    %rsi
1403872bc:	5b                   	pop    %rbx
1403872bd:	c3                   	ret
1403872be:	e8 e1 2e aa 00       	call   0x140e2a1a4
1403872c3:	cc                   	int3
1403872c4:	e8 c7 5e e1 ff       	call   0x14019d190
1403872c9:	cc                   	int3
1403872ca:	e8 a1 62 e1 ff       	call   0x14019d570
1403872cf:	cc                   	int3
1403872d0:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1403872d5:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
1403872da:	57                   	push   %rdi
1403872db:	41 54                	push   %r12
1403872dd:	41 55                	push   %r13
1403872df:	41 56                	push   %r14
1403872e1:	41 57                	push   %r15
1403872e3:	48 83 ec 50          	sub    $0x50,%rsp
1403872e7:	4c 8b e2             	mov    %rdx,%r12
1403872ea:	4c 8b f1             	mov    %rcx,%r14
1403872ed:	49 b9 e3 38 8e e3 38 	movabs $0xe38e38e38e38e3,%r9
1403872f4:	8e e3 00
1403872f7:	49 3b d1             	cmp    %r9,%rdx
1403872fa:	0f 87 0a 02 00 00    	ja     0x14038750a
140387300:	4c 89 74 24 20       	mov    %r14,0x20(%rsp)
140387305:	48 8b 49 08          	mov    0x8(%rcx),%rcx
140387309:	49 2b 0e             	sub    (%r14),%rcx
14038730c:	49 ba 39 8e e3 38 8e 	movabs $0xe38e38e38e38e39,%r10
140387313:	e3 38 0e
140387316:	49 8b c2             	mov    %r10,%rax
140387319:	48 f7 e9             	imul   %rcx
14038731c:	48 8b da             	mov    %rdx,%rbx
14038731f:	48 c1 fb 04          	sar    $0x4,%rbx
140387323:	48 8b c3             	mov    %rbx,%rax
140387326:	48 c1 e8 3f          	shr    $0x3f,%rax
14038732a:	48 03 d8             	add    %rax,%rbx
14038732d:	49 8b 4e 10          	mov    0x10(%r14),%rcx
140387331:	49 2b 0e             	sub    (%r14),%rcx
140387334:	49 8b c2             	mov    %r10,%rax
140387337:	48 f7 e9             	imul   %rcx
14038733a:	48 c1 fa 04          	sar    $0x4,%rdx
14038733e:	48 8b c2             	mov    %rdx,%rax
140387341:	48 c1 e8 3f          	shr    $0x3f,%rax
140387345:	48 03 d0             	add    %rax,%rdx
140387348:	48 8b ca             	mov    %rdx,%rcx
14038734b:	48 d1 e9             	shr    $1,%rcx
14038734e:	49 8b c1             	mov    %r9,%rax
140387351:	48 2b c1             	sub    %rcx,%rax
140387354:	48 3b d0             	cmp    %rax,%rdx
140387357:	76 15                	jbe    0x14038736e
140387359:	4c 89 8c 24 88 00 00 	mov    %r9,0x88(%rsp)
140387360:	00
140387361:	49 c7 c7 60 ff ff ff 	mov    $0xffffffffffffff60,%r15
140387368:	49 8d 4f 27          	lea    0x27(%r15),%rcx
14038736c:	eb 4e                	jmp    0x1403873bc
14038736e:	48 8d 04 11          	lea    (%rcx,%rdx,1),%rax
140387372:	49 3b c4             	cmp    %r12,%rax
140387375:	73 0d                	jae    0x140387384
140387377:	49 8b c4             	mov    %r12,%rax
14038737a:	48 89 84 24 88 00 00 	mov    %rax,0x88(%rsp)
140387381:	00
140387382:	eb 11                	jmp    0x140387395
140387384:	48 89 84 24 88 00 00 	mov    %rax,0x88(%rsp)
14038738b:	00
14038738c:	49 3b c1             	cmp    %r9,%rax
14038738f:	0f 87 6f 01 00 00    	ja     0x140387504
140387395:	4c 8d 3c c0          	lea    (%rax,%rax,8),%r15
140387399:	49 c1 e7 05          	shl    $0x5,%r15
14038739d:	4d 85 ff             	test   %r15,%r15
1403873a0:	75 04                	jne    0x1403873a6
1403873a2:	33 f6                	xor    %esi,%esi
1403873a4:	eb 3d                	jmp    0x1403873e3
1403873a6:	49 81 ff 00 10 00 00 	cmp    $0x1000,%r15
1403873ad:	72 29                	jb     0x1403873d8
1403873af:	49 8d 4f 27          	lea    0x27(%r15),%rcx
1403873b3:	49 3b cf             	cmp    %r15,%rcx
1403873b6:	0f 86 48 01 00 00    	jbe    0x140387504
1403873bc:	e8 47 3d a9 00       	call   0x140e1b108
1403873c1:	48 85 c0             	test   %rax,%rax
1403873c4:	0f 84 46 01 00 00    	je     0x140387510
1403873ca:	48 8d 70 27          	lea    0x27(%rax),%rsi
1403873ce:	48 83 e6 e0          	and    $0xffffffffffffffe0,%rsi
1403873d2:	48 89 46 f8          	mov    %rax,-0x8(%rsi)
1403873d6:	eb 0b                	jmp    0x1403873e3
1403873d8:	49 8b cf             	mov    %r15,%rcx
1403873db:	e8 28 3d a9 00       	call   0x140e1b108
1403873e0:	48 8b f0             	mov    %rax,%rsi
1403873e3:	48 89 74 24 30       	mov    %rsi,0x30(%rsp)
1403873e8:	48 8d 0c db          	lea    (%rbx,%rbx,8),%rcx
1403873ec:	48 c1 e1 05          	shl    $0x5,%rcx
1403873f0:	48 03 ce             	add    %rsi,%rcx
1403873f3:	48 89 4c 24 28       	mov    %rcx,0x28(%rsp)
1403873f8:	48 89 8c 24 98 00 00 	mov    %rcx,0x98(%rsp)
1403873ff:	00
140387400:	49 8b d4             	mov    %r12,%rdx
140387403:	48 2b d3             	sub    %rbx,%rdx
140387406:	4d 8b c6             	mov    %r14,%r8
140387409:	e8 82 04 00 00       	call   0x140387890
14038740e:	48 89 84 24 98 00 00 	mov    %rax,0x98(%rsp)
140387415:	00
140387416:	4d 8b 6e 08          	mov    0x8(%r14),%r13
14038741a:	49 8b 3e             	mov    (%r14),%rdi
14038741d:	48 89 74 24 38       	mov    %rsi,0x38(%rsp)
140387422:	48 8b de             	mov    %rsi,%rbx
140387425:	48 89 5c 24 40       	mov    %rbx,0x40(%rsp)
14038742a:	4c 89 74 24 48       	mov    %r14,0x48(%rsp)
14038742f:	90                   	nop
140387430:	49 3b fd             	cmp    %r13,%rdi
140387433:	74 20                	je     0x140387455
140387435:	48 8b d7             	mov    %rdi,%rdx
140387438:	48 8b cb             	mov    %rbx,%rcx
14038743b:	e8 80 13 00 00       	call   0x1403887c0
140387440:	48 81 c3 20 01 00 00 	add    $0x120,%rbx
140387447:	48 89 5c 24 40       	mov    %rbx,0x40(%rsp)
14038744c:	48 81 c7 20 01 00 00 	add    $0x120,%rdi
140387453:	eb db                	jmp    0x140387430
140387455:	49 8b 1e             	mov    (%r14),%rbx
140387458:	48 85 db             	test   %rbx,%rbx
14038745b:	74 73                	je     0x1403874d0
14038745d:	49 8b 7e 08          	mov    0x8(%r14),%rdi
140387461:	48 3b df             	cmp    %rdi,%rbx
140387464:	74 14                	je     0x14038747a
140387466:	48 8b cb             	mov    %rbx,%rcx
140387469:	e8 b2 22 00 00       	call   0x140389720
14038746e:	48 81 c3 20 01 00 00 	add    $0x120,%rbx
140387475:	48 3b df             	cmp    %rdi,%rbx
140387478:	75 ec                	jne    0x140387466
14038747a:	4d 8b 06             	mov    (%r14),%r8
14038747d:	49 8b 4e 10          	mov    0x10(%r14),%rcx
140387481:	49 2b c8             	sub    %r8,%rcx
140387484:	48 b8 39 8e e3 38 8e 	movabs $0xe38e38e38e38e39,%rax
14038748b:	e3 38 0e
14038748e:	48 f7 e9             	imul   %rcx
140387491:	48 c1 fa 04          	sar    $0x4,%rdx
140387495:	48 8b c2             	mov    %rdx,%rax
140387498:	48 c1 e8 3f          	shr    $0x3f,%rax
14038749c:	48 03 d0             	add    %rax,%rdx
14038749f:	48 8d 14 d2          	lea    (%rdx,%rdx,8),%rdx
1403874a3:	48 c1 e2 05          	shl    $0x5,%rdx
1403874a7:	48 81 fa 00 10 00 00 	cmp    $0x1000,%rdx
1403874ae:	72 18                	jb     0x1403874c8
1403874b0:	48 83 c2 27          	add    $0x27,%rdx
1403874b4:	49 8b 48 f8          	mov    -0x8(%r8),%rcx
1403874b8:	4c 2b c1             	sub    %rcx,%r8
1403874bb:	49 8d 40 f8          	lea    -0x8(%r8),%rax
1403874bf:	48 83 f8 1f          	cmp    $0x1f,%rax
1403874c3:	77 4b                	ja     0x140387510
1403874c5:	4c 8b c1             	mov    %rcx,%r8
1403874c8:	49 8b c8             	mov    %r8,%rcx
1403874cb:	e8 74 3c a9 00       	call   0x140e1b144
1403874d0:	49 89 36             	mov    %rsi,(%r14)
1403874d3:	4b 8d 04 e4          	lea    (%r12,%r12,8),%rax
1403874d7:	48 c1 e0 05          	shl    $0x5,%rax
1403874db:	48 03 c6             	add    %rsi,%rax
1403874de:	49 89 46 08          	mov    %rax,0x8(%r14)
1403874e2:	49 8d 04 37          	lea    (%r15,%rsi,1),%rax
1403874e6:	49 89 46 10          	mov    %rax,0x10(%r14)
1403874ea:	4c 8d 5c 24 50       	lea    0x50(%rsp),%r11
1403874ef:	49 8b 5b 30          	mov    0x30(%r11),%rbx
1403874f3:	49 8b 73 40          	mov    0x40(%r11),%rsi
1403874f7:	49 8b e3             	mov    %r11,%rsp
1403874fa:	41 5f                	pop    %r15
1403874fc:	41 5e                	pop    %r14
1403874fe:	41 5d                	pop    %r13
140387500:	41 5c                	pop    %r12
140387502:	5f                   	pop    %rdi
140387503:	c3                   	ret
140387504:	e8 87 5c e1 ff       	call   0x14019d190
140387509:	cc                   	int3
14038750a:	e8 81 60 e1 ff       	call   0x14019d590
14038750f:	cc                   	int3
140387510:	e8 8f 2c aa 00       	call   0x140e2a1a4
140387515:	cc                   	int3
140387516:	cc                   	int3
140387517:	cc                   	int3
140387518:	cc                   	int3
140387519:	cc                   	int3
14038751a:	cc                   	int3
14038751b:	cc                   	int3
14038751c:	cc                   	int3
14038751d:	cc                   	int3
14038751e:	cc                   	int3
14038751f:	cc                   	int3
140387520:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140387525:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
14038752a:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
14038752f:	57                   	push   %rdi
140387530:	41 54                	push   %r12
140387532:	41 55                	push   %r13
140387534:	41 56                	push   %r14
140387536:	41 57                	push   %r15
140387538:	48 83 ec 40          	sub    $0x40,%rsp
14038753c:	49 8b d8             	mov    %r8,%rbx
14038753f:	4c 8b fa             	mov    %rdx,%r15
140387542:	4c 8b e9             	mov    %rcx,%r13
140387545:	4d 8b 48 10          	mov    0x10(%r8),%r9
140387549:	49 83 78 18 0f       	cmpq   $0xf,0x18(%r8)
14038754e:	76 03                	jbe    0x140387553
140387550:	4d 8b 00             	mov    (%r8),%r8
140387553:	48 bf 25 23 22 84 e4 	movabs $0xcbf29ce484222325,%rdi
14038755a:	9c f2 cb
14038755d:	45 33 e4             	xor    %r12d,%r12d
140387560:	41 8b d4             	mov    %r12d,%edx
140387563:	4d 85 c9             	test   %r9,%r9
140387566:	74 2c                	je     0x140387594
140387568:	48 b9 b3 01 00 00 00 	movabs $0x100000001b3,%rcx
14038756f:	01 00 00
140387572:	0f 1f 40 00          	nopl   0x0(%rax)
140387576:	66 66 0f 1f 84 00 00 	data16 nopw 0x0(%rax,%rax,1)
14038757d:	00 00 00
140387580:	41 0f b6 04 10       	movzbl (%r8,%rdx,1),%eax
140387585:	48 33 f8             	xor    %rax,%rdi
140387588:	48 0f af f9          	imul   %rcx,%rdi
14038758c:	48 ff c2             	inc    %rdx
14038758f:	49 3b d1             	cmp    %r9,%rdx
140387592:	72 ec                	jb     0x140387580
140387594:	4c 8b cf             	mov    %rdi,%r9
140387597:	4c 8b c3             	mov    %rbx,%r8
14038759a:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
14038759f:	49 8b cd             	mov    %r13,%rcx
1403875a2:	e8 59 cc e8 ff       	call   0x140214200
1403875a7:	48 8b 44 24 28       	mov    0x28(%rsp),%rax
1403875ac:	48 85 c0             	test   %rax,%rax
1403875af:	74 0c                	je     0x1403875bd
1403875b1:	49 89 07             	mov    %rax,(%r15)
1403875b4:	45 88 67 08          	mov    %r12b,0x8(%r15)
1403875b8:	e9 14 02 00 00       	jmp    0x1403877d1
1403875bd:	48 b8 92 24 49 92 24 	movabs $0x492492492492492,%rax
1403875c4:	49 92 04
1403875c7:	49 39 45 10          	cmp    %rax,0x10(%r13)
1403875cb:	0f 84 23 02 00 00    	je     0x1403877f4
1403875d1:	49 8d 6d 08          	lea    0x8(%r13),%rbp
1403875d5:	48 89 6c 24 30       	mov    %rbp,0x30(%rsp)
1403875da:	4c 89 64 24 38       	mov    %r12,0x38(%rsp)
1403875df:	b9 38 00 00 00       	mov    $0x38,%ecx
1403875e4:	e8 1f 3b a9 00       	call   0x140e1b108
1403875e9:	48 8b f0             	mov    %rax,%rsi
1403875ec:	48 89 44 24 38       	mov    %rax,0x38(%rsp)
1403875f1:	48 8b d3             	mov    %rbx,%rdx
1403875f4:	48 8d 48 10          	lea    0x10(%rax),%rcx
1403875f8:	e8 43 14 e2 ff       	call   0x1401a8a40
1403875fd:	4c 89 66 30          	mov    %r12,0x30(%rsi)
140387601:	49 8b 4d 10          	mov    0x10(%r13),%rcx
140387605:	f3 41 0f 10 5d 00    	movss  0x0(%r13),%xmm3
14038760b:	48 83 c1 01          	add    $0x1,%rcx
14038760f:	0f 57 c0             	xorps  %xmm0,%xmm0
140387612:	78 07                	js     0x14038761b
140387614:	f3 48 0f 2a c1       	cvtsi2ss %rcx,%xmm0
140387619:	eb 15                	jmp    0x140387630
14038761b:	48 8b c1             	mov    %rcx,%rax
14038761e:	48 d1 e8             	shr    $1,%rax
140387621:	83 e1 01             	and    $0x1,%ecx
140387624:	48 0b c1             	or     %rcx,%rax
140387627:	f3 48 0f 2a c0       	cvtsi2ss %rax,%xmm0
14038762c:	f3 0f 58 c0          	addss  %xmm0,%xmm0
140387630:	49 8b 5d 38          	mov    0x38(%r13),%rbx
140387634:	0f 57 d2             	xorps  %xmm2,%xmm2
140387637:	48 85 db             	test   %rbx,%rbx
14038763a:	78 07                	js     0x140387643
14038763c:	f3 48 0f 2a d3       	cvtsi2ss %rbx,%xmm2
140387641:	eb 18                	jmp    0x14038765b
140387643:	48 8b cb             	mov    %rbx,%rcx
140387646:	48 d1 e9             	shr    $1,%rcx
140387649:	48 8b c3             	mov    %rbx,%rax
14038764c:	83 e0 01             	and    $0x1,%eax
14038764f:	48 0b c8             	or     %rax,%rcx
140387652:	f3 48 0f 2a d1       	cvtsi2ss %rcx,%xmm2
140387657:	f3 0f 58 d2          	addss  %xmm2,%xmm2
14038765b:	0f 28 c8             	movaps %xmm0,%xmm1
14038765e:	f3 0f 5e ca          	divss  %xmm2,%xmm1
140387662:	0f 2f cb             	comiss %xmm3,%xmm1
140387665:	0f 86 0e 01 00 00    	jbe    0x140387779
14038766b:	f3 0f 5e c3          	divss  %xmm3,%xmm0
14038766f:	e8 ac 9a aa 00       	call   0x140e31120
140387674:	33 c9                	xor    %ecx,%ecx
140387676:	f3 0f 10 0d e6 6f c2 	movss  0xc26fe6(%rip),%xmm1        # 0x140fae664
14038767d:	00
14038767e:	0f 2f c1             	comiss %xmm1,%xmm0
140387681:	72 16                	jb     0x140387699
140387683:	f3 0f 5c c1          	subss  %xmm1,%xmm0
140387687:	0f 2f c1             	comiss %xmm1,%xmm0
14038768a:	73 0d                	jae    0x140387699
14038768c:	48 b8 00 00 00 00 00 	movabs $0x8000000000000000,%rax
140387693:	00 00 80
140387696:	48 8b c8             	mov    %rax,%rcx
140387699:	f3 48 0f 2c c0       	cvttss2si %xmm0,%rax
14038769e:	48 03 c1             	add    %rcx,%rax
1403876a1:	b9 08 00 00 00       	mov    $0x8,%ecx
1403876a6:	48 3b c1             	cmp    %rcx,%rax
1403876a9:	48 0f 47 c8          	cmova  %rax,%rcx
1403876ad:	48 3b d9             	cmp    %rcx,%rbx
1403876b0:	73 19                	jae    0x1403876cb
1403876b2:	48 81 fb 00 02 00 00 	cmp    $0x200,%rbx
1403876b9:	73 0d                	jae    0x1403876c8
1403876bb:	48 8d 1c dd 00 00 00 	lea    0x0(,%rbx,8),%rbx
1403876c2:	00
1403876c3:	48 3b d9             	cmp    %rcx,%rbx
1403876c6:	73 03                	jae    0x1403876cb
1403876c8:	48 8b d9             	mov    %rcx,%rbx