140561178:	49 8b f1             	mov    %r9,%rsi
14056117b:	48 8b 09             	mov    (%rcx),%rcx
14056117e:	4d 8b f0             	mov    %r8,%r14
140561181:	48 8b fa             	mov    %rdx,%rdi
140561184:	48 85 c9             	test   %rcx,%rcx
140561187:	74 5f                	je     0x1405611e8
140561189:	48 8b 53 08          	mov    0x8(%rbx),%rdx
14056118d:	4c 8b c3             	mov    %rbx,%r8
140561190:	e8 7b 79 ff ff       	call   0x140558b10
140561195:	48 8b 0b             	mov    (%rbx),%rcx
140561198:	48 b8 39 8e e3 38 8e 	movabs $0xe38e38e38e38e39,%rax
14056119f:	e3 38 0e
1405611a2:	4c 8b 43 10          	mov    0x10(%rbx),%r8
1405611a6:	4c 2b c1             	sub    %rcx,%r8
1405611a9:	49 f7 e8             	imul   %r8
1405611ac:	48 c1 fa 02          	sar    $0x2,%rdx
1405611b0:	48 8b c2             	mov    %rdx,%rax
1405611b3:	48 c1 e8 3f          	shr    $0x3f,%rax
1405611b7:	48 03 d0             	add    %rax,%rdx
1405611ba:	48 8d 14 d2          	lea    (%rdx,%rdx,8),%rdx
1405611be:	48 c1 e2 03          	shl    $0x3,%rdx
1405611c2:	48 81 fa 00 10 00 00 	cmp    $0x1000,%rdx
1405611c9:	72 18                	jb     0x1405611e3
1405611cb:	4c 8b 41 f8          	mov    -0x8(%rcx),%r8
1405611cf:	48 83 c2 27          	add    $0x27,%rdx
1405611d3:	49 2b c8             	sub    %r8,%rcx
1405611d6:	48 8d 41 f8          	lea    -0x8(%rcx),%rax
1405611da:	48 83 f8 1f          	cmp    $0x1f,%rax
1405611de:	77 39                	ja     0x140561219
1405611e0:	49 8b c8             	mov    %r8,%rcx
1405611e3:	e8 5c 9f 8b 00       	call   0x140e1b144
1405611e8:	48 89 3b             	mov    %rdi,(%rbx)
1405611eb:	4b 8d 04 f6          	lea    (%r14,%r14,8),%rax
1405611ef:	48 8d 0c c7          	lea    (%rdi,%rax,8),%rcx
1405611f3:	48 89 4b 08          	mov    %rcx,0x8(%rbx)
1405611f7:	48 8d 04 f6          	lea    (%rsi,%rsi,8),%rax
1405611fb:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
140561200:	48 8d 0c c7          	lea    (%rdi,%rax,8),%rcx
140561204:	48 8b 7c 24 40       	mov    0x40(%rsp),%rdi
140561209:	48 89 4b 10          	mov    %rcx,0x10(%rbx)
14056120d:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140561212:	48 83 c4 20          	add    $0x20,%rsp
140561216:	41 5e                	pop    %r14
140561218:	c3                   	ret
140561219:	e8 86 8f 8c 00       	call   0x140e2a1a4
14056121e:	cc                   	int3
14056121f:	cc                   	int3
140561220:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140561225:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
14056122a:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
14056122f:	57                   	push   %rdi
140561230:	48 83 ec 20          	sub    $0x20,%rsp
140561234:	48 8b d9             	mov    %rcx,%rbx
140561237:	49 8b f1             	mov    %r9,%rsi
14056123a:	48 8b 09             	mov    (%rcx),%rcx
14056123d:	49 8b e8             	mov    %r8,%rbp
140561240:	48 8b fa             	mov    %rdx,%rdi
140561243:	48 85 c9             	test   %rcx,%rcx
140561246:	74 5b                	je     0x1405612a3
140561248:	48 8b 53 08          	mov    0x8(%rbx),%rdx
14056124c:	4c 8b c3             	mov    %rbx,%r8
14056124f:	e8 5c 79 ff ff       	call   0x140558bb0
140561254:	48 8b 0b             	mov    (%rbx),%rcx
140561257:	48 b8 25 49 92 24 49 	movabs $0x4924924924924925,%rax
14056125e:	92 24 49
140561261:	4c 8b 43 10          	mov    0x10(%rbx),%r8
140561265:	4c 2b c1             	sub    %rcx,%r8
140561268:	49 f7 e8             	imul   %r8
14056126b:	48 c1 fa 04          	sar    $0x4,%rdx
14056126f:	48 8b c2             	mov    %rdx,%rax
140561272:	48 c1 e8 3f          	shr    $0x3f,%rax
140561276:	48 03 d0             	add    %rax,%rdx
140561279:	48 6b d2 38          	imul   $0x38,%rdx,%rdx
14056127d:	48 81 fa 00 10 00 00 	cmp    $0x1000,%rdx
140561284:	72 18                	jb     0x14056129e
140561286:	4c 8b 41 f8          	mov    -0x8(%rcx),%r8
14056128a:	48 83 c2 27          	add    $0x27,%rdx
14056128e:	49 2b c8             	sub    %r8,%rcx
140561291:	48 8d 41 f8          	lea    -0x8(%rcx),%rax
140561295:	48 83 f8 1f          	cmp    $0x1f,%rax
140561299:	77 36                	ja     0x1405612d1
14056129b:	49 8b c8             	mov    %r8,%rcx
14056129e:	e8 a1 9e 8b 00       	call   0x140e1b144
1405612a3:	48 6b c5 38          	imul   $0x38,%rbp,%rax
1405612a7:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
1405612ac:	48 03 c7             	add    %rdi,%rax
1405612af:	48 89 3b             	mov    %rdi,(%rbx)
1405612b2:	48 89 43 08          	mov    %rax,0x8(%rbx)
1405612b6:	48 6b c6 38          	imul   $0x38,%rsi,%rax
1405612ba:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
1405612bf:	48 03 c7             	add    %rdi,%rax
1405612c2:	48 89 43 10          	mov    %rax,0x10(%rbx)
1405612c6:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1405612cb:	48 83 c4 20          	add    $0x20,%rsp
1405612cf:	5f                   	pop    %rdi
1405612d0:	c3                   	ret
1405612d1:	e8 ce 8e 8c 00       	call   0x140e2a1a4
1405612d6:	cc                   	int3
1405612d7:	cc                   	int3
1405612d8:	cc                   	int3
1405612d9:	cc                   	int3
1405612da:	cc                   	int3
1405612db:	cc                   	int3
1405612dc:	cc                   	int3
1405612dd:	cc                   	int3
1405612de:	cc                   	int3
1405612df:	cc                   	int3
1405612e0:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
1405612e5:	57                   	push   %rdi
1405612e6:	48 83 ec 20          	sub    $0x20,%rsp
1405612ea:	48 b8 ff ff ff ff ff 	movabs $0xfffffffffffffff,%rax
1405612f1:	ff ff 0f
1405612f4:	48 8b f1             	mov    %rcx,%rsi
1405612f7:	48 0f bd c8          	bsr    %rax,%rcx
1405612fb:	bf 01 00 00 00       	mov    $0x1,%edi
140561300:	8b c7                	mov    %edi,%eax
140561302:	48 d3 e0             	shl    %cl,%rax
140561305:	48 3b d0             	cmp    %rax,%rdx
140561308:	0f 87 b1 01 00 00    	ja     0x1405614bf
14056130e:	48 8d 42 ff          	lea    -0x1(%rdx),%rax
140561312:	48 89 5c 24 30       	mov    %rbx,0x30(%rsp)
140561317:	48 8b 5e 08          	mov    0x8(%rsi),%rbx
14056131b:	48 0b c7             	or     %rdi,%rax
14056131e:	48 0f bd c8          	bsr    %rax,%rcx
140561322:	4c 8b c3             	mov    %rbx,%r8
140561325:	4c 89 74 24 40       	mov    %r14,0x40(%rsp)
14056132a:	ff c1                	inc    %ecx
14056132c:	48 d3 e7             	shl    %cl,%rdi
14056132f:	48 8d 4e 18          	lea    0x18(%rsi),%rcx
140561333:	48 8d 14 3f          	lea    (%rdi,%rdi,1),%rdx
140561337:	e8 44 b7 e2 ff       	call   0x14038ca80
14056133c:	48 8d 47 ff          	lea    -0x1(%rdi),%rax
140561340:	48 89 7e 38          	mov    %rdi,0x38(%rsi)
140561344:	48 89 46 30          	mov    %rax,0x30(%rsi)
140561348:	48 8b 46 08          	mov    0x8(%rsi),%rax
14056134c:	48 8b 00             	mov    (%rax),%rax
14056134f:	48 8b c8             	mov    %rax,%rcx
140561352:	48 3b c3             	cmp    %rbx,%rax
140561355:	0f 84 29 01 00 00    	je     0x140561484
14056135b:	48 89 6c 24 38       	mov    %rbp,0x38(%rsp)
140561360:	48 bf b3 01 00 00 00 	movabs $0x100000001b3,%rdi
140561367:	01 00 00
14056136a:	48 bd 25 23 22 84 e4 	movabs $0xcbf29ce484222325,%rbp
140561371:	9c f2 cb
140561374:	0f 1f 40 00          	nopl   0x0(%rax)
140561378:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
14056137f:	00
140561380:	0f b6 50 11          	movzbl 0x11(%rax),%edx
140561384:	44 0f b6 48 10       	movzbl 0x10(%rax),%r9d
140561389:	4c 8b 5e 30          	mov    0x30(%rsi),%r11
14056138d:	4c 33 cd             	xor    %rbp,%r9
140561390:	48 8b 09             	mov    (%rcx),%rcx
140561393:	4c 0f af cf          	imul   %rdi,%r9
140561397:	4c 33 ca             	xor    %rdx,%r9
14056139a:	0f b6 50 12          	movzbl 0x12(%rax),%edx
14056139e:	4c 0f af cf          	imul   %rdi,%r9
1405613a2:	4c 33 ca             	xor    %rdx,%r9
1405613a5:	0f b6 50 13          	movzbl 0x13(%rax),%edx
1405613a9:	4c 0f af cf          	imul   %rdi,%r9
1405613ad:	4c 33 ca             	xor    %rdx,%r9
1405613b0:	0f b6 50 14          	movzbl 0x14(%rax),%edx
1405613b4:	4c 0f af cf          	imul   %rdi,%r9
1405613b8:	4c 33 ca             	xor    %rdx,%r9
1405613bb:	0f b6 50 15          	movzbl 0x15(%rax),%edx
1405613bf:	4c 0f af cf          	imul   %rdi,%r9
1405613c3:	4c 33 ca             	xor    %rdx,%r9
1405613c6:	0f b6 50 16          	movzbl 0x16(%rax),%edx
1405613ca:	4c 0f af cf          	imul   %rdi,%r9
1405613ce:	4c 33 ca             	xor    %rdx,%r9
1405613d1:	0f b6 50 17          	movzbl 0x17(%rax),%edx
1405613d5:	4c 0f af cf          	imul   %rdi,%r9
1405613d9:	4c 33 ca             	xor    %rdx,%r9
1405613dc:	4c 0f af cf          	imul   %rdi,%r9
1405613e0:	4d 23 d9             	and    %r9,%r11
1405613e3:	49 c1 e3 04          	shl    $0x4,%r11
1405613e7:	4c 03 5e 18          	add    0x18(%rsi),%r11
1405613eb:	4d 8b 0b             	mov    (%r11),%r9
1405613ee:	4c 3b cb             	cmp    %rbx,%r9
1405613f1:	75 09                	jne    0x1405613fc
1405613f3:	49 89 03             	mov    %rax,(%r11)
1405613f6:	49 89 43 08          	mov    %rax,0x8(%r11)
1405613fa:	eb 77                	jmp    0x140561473
1405613fc:	49 8b 53 08          	mov    0x8(%r11),%rdx
140561400:	4c 8b 40 10          	mov    0x10(%rax),%r8
140561404:	4c 3b 42 10          	cmp    0x10(%rdx),%r8
140561408:	75 2f                	jne    0x140561439
14056140a:	4c 8b 12             	mov    (%rdx),%r10
14056140d:	4c 3b d0             	cmp    %rax,%r10
140561410:	74 21                	je     0x140561433
140561412:	4c 8b 48 08          	mov    0x8(%rax),%r9
140561416:	49 89 09             	mov    %rcx,(%r9)
140561419:	4c 8b 41 08          	mov    0x8(%rcx),%r8
14056141d:	4d 89 10             	mov    %r10,(%r8)
140561420:	49 8b 52 08          	mov    0x8(%r10),%rdx
140561424:	48 89 02             	mov    %rax,(%rdx)
140561427:	4d 89 42 08          	mov    %r8,0x8(%r10)
14056142b:	4c 89 49 08          	mov    %r9,0x8(%rcx)
14056142f:	48 89 50 08          	mov    %rdx,0x8(%rax)
140561433:	49 89 43 08          	mov    %rax,0x8(%r11)
140561437:	eb 3a                	jmp    0x140561473
140561439:	4c 3b ca             	cmp    %rdx,%r9
14056143c:	74 11                	je     0x14056144f
14056143e:	66 90                	xchg   %ax,%ax
140561440:	48 8b 52 08          	mov    0x8(%rdx),%rdx
140561444:	4c 3b 42 10          	cmp    0x10(%rdx),%r8
140561448:	74 4f                	je     0x140561499
14056144a:	4c 3b ca             	cmp    %rdx,%r9
14056144d:	75 f1                	jne    0x140561440
14056144f:	4c 8b 50 08          	mov    0x8(%rax),%r10
140561453:	49 89 0a             	mov    %rcx,(%r10)
140561456:	4c 8b 49 08          	mov    0x8(%rcx),%r9
14056145a:	49 89 11             	mov    %rdx,(%r9)
14056145d:	4c 8b 42 08          	mov    0x8(%rdx),%r8
140561461:	49 89 00             	mov    %rax,(%r8)
140561464:	4c 89 4a 08          	mov    %r9,0x8(%rdx)
140561468:	4c 89 51 08          	mov    %r10,0x8(%rcx)
14056146c:	4c 89 40 08          	mov    %r8,0x8(%rax)
140561470:	49 89 03             	mov    %rax,(%r11)
140561473:	48 8b c1             	mov    %rcx,%rax
140561476:	48 3b cb             	cmp    %rbx,%rcx
140561479:	0f 85 01 ff ff ff    	jne    0x140561380
14056147f:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
140561484:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140561489:	4c 8b 74 24 40       	mov    0x40(%rsp),%r14
14056148e:	48 8b 74 24 48       	mov    0x48(%rsp),%rsi
140561493:	48 83 c4 20          	add    $0x20,%rsp
140561497:	5f                   	pop    %rdi
140561498:	c3                   	ret
140561499:	4c 8b 12             	mov    (%rdx),%r10
14056149c:	4c 8b 48 08          	mov    0x8(%rax),%r9
1405614a0:	49 89 09             	mov    %rcx,(%r9)
1405614a3:	4c 8b 41 08          	mov    0x8(%rcx),%r8
1405614a7:	4d 89 10             	mov    %r10,(%r8)
1405614aa:	49 8b 52 08          	mov    0x8(%r10),%rdx
1405614ae:	48 89 02             	mov    %rax,(%rdx)
1405614b1:	4d 89 42 08          	mov    %r8,0x8(%r10)
1405614b5:	4c 89 49 08          	mov    %r9,0x8(%rcx)
1405614b9:	48 89 50 08          	mov    %rdx,0x8(%rax)
1405614bd:	eb b4                	jmp    0x140561473
1405614bf:	48 8d 0d 2a d0 a4 00 	lea    0xa4d02a(%rip),%rcx        # 0x140fae4f0
1405614c6:	e8 e9 9e 89 00       	call   0x140dfb3b4
1405614cb:	cc                   	int3
1405614cc:	cc                   	int3
1405614cd:	cc                   	int3
1405614ce:	cc                   	int3
1405614cf:	cc                   	int3
1405614d0:	48 83 ec 28          	sub    $0x28,%rsp
1405614d4:	48 8b c2             	mov    %rdx,%rax
1405614d7:	4b 8d 14 c0          	lea    (%r8,%r8,8),%rdx
1405614db:	48 c1 e2 03          	shl    $0x3,%rdx
1405614df:	48 81 fa 00 10 00 00 	cmp    $0x1000,%rdx
1405614e6:	72 18                	jb     0x140561500
1405614e8:	48 8b 48 f8          	mov    -0x8(%rax),%rcx
1405614ec:	48 83 c2 27          	add    $0x27,%rdx
1405614f0:	48 2b c1             	sub    %rcx,%rax
1405614f3:	48 83 c0 f8          	add    $0xfffffffffffffff8,%rax
1405614f7:	48 83 f8 1f          	cmp    $0x1f,%rax
1405614fb:	77 0f                	ja     0x14056150c
1405614fd:	48 8b c1             	mov    %rcx,%rax
140561500:	48 8b c8             	mov    %rax,%rcx
140561503:	48 83 c4 28          	add    $0x28,%rsp
140561507:	e9 38 9c 8b 00       	jmp    0x140e1b144
14056150c:	e8 93 8c 8c 00       	call   0x140e2a1a4
140561511:	cc                   	int3
140561512:	cc                   	int3
140561513:	cc                   	int3
140561514:	cc                   	int3
140561515:	cc                   	int3
140561516:	cc                   	int3
140561517:	cc                   	int3
140561518:	cc                   	int3
140561519:	cc                   	int3
14056151a:	cc                   	int3
14056151b:	cc                   	int3
14056151c:	cc                   	int3
14056151d:	cc                   	int3
14056151e:	cc                   	int3
14056151f:	cc                   	int3
140561520:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140561525:	57                   	push   %rdi
140561526:	48 83 ec 20          	sub    $0x20,%rsp
14056152a:	48 8b d9             	mov    %rcx,%rbx
14056152d:	e8 ee c8 89 00       	call   0x140dfde20
140561532:	48 8b f8             	mov    %rax,%rdi
140561535:	e8 ca c8 89 00       	call   0x140dfde04
14056153a:	4c 8b c8             	mov    %rax,%r9
14056153d:	48 81 ff 80 96 98 00 	cmp    $0x989680,%rdi
140561544:	75 15                	jne    0x14056155b
140561546:	49 6b c1 64          	imul   $0x64,%r9,%rax
14056154a:	48 89 03             	mov    %rax,(%rbx)
14056154d:	48 8b c3             	mov    %rbx,%rax
140561550:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140561555:	48 83 c4 20          	add    $0x20,%rsp
140561559:	5f                   	pop    %rdi
14056155a:	c3                   	ret
14056155b:	48 81 ff 00 36 6e 01 	cmp    $0x16e3600,%rdi
140561562:	75 65                	jne    0x1405615c9
140561564:	49 ba f3 8c 90 94 07 	movabs $0xb2f4fc0794908cf3,%r10
14056156b:	fc f4 b2
14056156e:	49 8b c2             	mov    %r10,%rax
140561571:	49 f7 e9             	imul   %r9
140561574:	49 8b c2             	mov    %r10,%rax
140561577:	4d 8d 04 11          	lea    (%r9,%rdx,1),%r8
14056157b:	49 c1 f8 18          	sar    $0x18,%r8
14056157f:	49 8b c8             	mov    %r8,%rcx
140561582:	48 c1 e9 3f          	shr    $0x3f,%rcx
140561586:	4c 03 c1             	add    %rcx,%r8
140561589:	49 69 c8 00 36 6e 01 	imul   $0x16e3600,%r8,%rcx
140561590:	4c 2b c9             	sub    %rcx,%r9
140561593:	49 69 c9 00 ca 9a 3b 	imul   $0x3b9aca00,%r9,%rcx
14056159a:	48 f7 e9             	imul   %rcx
14056159d:	48 03 d1             	add    %rcx,%rdx
1405615a0:	48 c1 fa 18          	sar    $0x18,%rdx
1405615a4:	48 8b c2             	mov    %rdx,%rax
1405615a7:	48 c1 e8 3f          	shr    $0x3f,%rax
1405615ab:	48 03 d0             	add    %rax,%rdx
1405615ae:	49 69 c0 00 ca 9a 3b 	imul   $0x3b9aca00,%r8,%rax
1405615b5:	48 03 d0             	add    %rax,%rdx
1405615b8:	48 8b c3             	mov    %rbx,%rax
1405615bb:	48 89 13             	mov    %rdx,(%rbx)
1405615be:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1405615c3:	48 83 c4 20          	add    $0x20,%rsp
1405615c7:	5f                   	pop    %rdi
1405615c8:	c3                   	ret
1405615c9:	48 99                	cqto
1405615cb:	48 f7 ff             	idiv   %rdi
1405615ce:	48 8b c8             	mov    %rax,%rcx
1405615d1:	48 69 c2 00 ca 9a 3b 	imul   $0x3b9aca00,%rdx,%rax
1405615d8:	48 69 c9 00 ca 9a 3b 	imul   $0x3b9aca00,%rcx,%rcx
1405615df:	48 99                	cqto
1405615e1:	48 f7 ff             	idiv   %rdi
1405615e4:	48 03 c1             	add    %rcx,%rax
1405615e7:	48 89 03             	mov    %rax,(%rbx)
1405615ea:	48 8b c3             	mov    %rbx,%rax
1405615ed:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1405615f2:	48 83 c4 20          	add    $0x20,%rsp
1405615f6:	5f                   	pop    %rdi
1405615f7:	c3                   	ret
1405615f8:	cc                   	int3
1405615f9:	cc                   	int3
1405615fa:	cc                   	int3
1405615fb:	cc                   	int3
1405615fc:	cc                   	int3
1405615fd:	cc                   	int3
1405615fe:	cc                   	int3
1405615ff:	cc                   	int3
140561600:	40 53                	rex push %rbx
140561602:	56                   	push   %rsi
140561603:	41 54                	push   %r12
140561605:	41 56                	push   %r14