140a071c0:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
140a071c5:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
140a071ca:	57                   	push   %rdi
140a071cb:	48 83 ec 20          	sub    $0x20,%rsp
140a071cf:	48 8b 71 08          	mov    0x8(%rcx),%rsi
140a071d3:	48 8b d9             	mov    %rcx,%rbx
140a071d6:	b9 10 00 00 00       	mov    $0x10,%ecx
140a071db:	48 8b fa             	mov    %rdx,%rdi
140a071de:	e8 21 84 0e 00       	call   0x140aef604
140a071e3:	48 8b 0f             	mov    (%rdi),%rcx
140a071e6:	48 89 44 24 30       	mov    %rax,0x30(%rsp)
140a071eb:	48 89 08             	mov    %rcx,(%rax)
140a071ee:	48 83 60 08 00       	andq   $0x0,0x8(%rax)
140a071f3:	48 85 f6             	test   %rsi,%rsi
140a071f6:	75 26                	jne    0x140a0721e
140a071f8:	48 8b 3b             	mov    (%rbx),%rdi
140a071fb:	48 89 03             	mov    %rax,(%rbx)
140a071fe:	48 85 ff             	test   %rdi,%rdi
140a07201:	74 16                	je     0x140a07219
140a07203:	48 8b 57 08          	mov    0x8(%rdi),%rdx
140a07207:	48 85 d2             	test   %rdx,%rdx
140a0720a:	74 05                	je     0x140a07211
140a0720c:	e8 13 67 ff ff       	call   0x1409fd924
140a07211:	48 8b cf             	mov    %rdi,%rcx
140a07214:	e8 bb 83 0e 00       	call   0x140aef5d4
140a07219:	48 8b 03             	mov    (%rbx),%rax
140a0721c:	eb 2b                	jmp    0x140a07249
140a0721e:	48 8b 7e 08          	mov    0x8(%rsi),%rdi
140a07222:	48 89 46 08          	mov    %rax,0x8(%rsi)
140a07226:	48 85 ff             	test   %rdi,%rdi
140a07229:	74 16                	je     0x140a07241
140a0722b:	48 8b 57 08          	mov    0x8(%rdi),%rdx
140a0722f:	48 85 d2             	test   %rdx,%rdx
140a07232:	74 05                	je     0x140a07239
140a07234:	e8 eb 66 ff ff       	call   0x1409fd924
140a07239:	48 8b cf             	mov    %rdi,%rcx
140a0723c:	e8 93 83 0e 00       	call   0x140aef5d4
140a07241:	48 8b 43 08          	mov    0x8(%rbx),%rax
140a07245:	48 8b 40 08          	mov    0x8(%rax),%rax
140a07249:	48 89 43 08          	mov    %rax,0x8(%rbx)
140a0724d:	48 8b c3             	mov    %rbx,%rax
140a07250:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
140a07255:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
140a0725a:	48 83 c4 20          	add    $0x20,%rsp
140a0725e:	5f                   	pop    %rdi
140a0725f:	c3                   	ret
140a07260:	48 8b c4             	mov    %rsp,%rax
140a07263:	48 89 58 08          	mov    %rbx,0x8(%rax)
140a07267:	48 89 70 18          	mov    %rsi,0x18(%rax)
140a0726b:	48 89 78 20          	mov    %rdi,0x20(%rax)
140a0726f:	48 89 50 10          	mov    %rdx,0x10(%rax)
140a07273:	55                   	push   %rbp
140a07274:	41 56                	push   %r14
140a07276:	41 57                	push   %r15
140a07278:	48 8b ec             	mov    %rsp,%rbp
140a0727b:	48 83 ec 50          	sub    $0x50,%rsp
140a0727f:	48 8b da             	mov    %rdx,%rbx
140a07282:	4c 8b f1             	mov    %rcx,%r14
140a07285:	83 65 d0 00          	andl   $0x0,-0x30(%rbp)
140a07289:	48 83 22 00          	andq   $0x0,(%rdx)
140a0728d:	48 83 62 08 00       	andq   $0x0,0x8(%rdx)
140a07292:	c7 42 10 ff ff 7f 7f 	movl   $0x7f7fffff,0x10(%rdx)
140a07299:	c6 42 14 01          	movb   $0x1,0x14(%rdx)
140a0729d:	0f 57 c0             	xorps  %xmm0,%xmm0
140a072a0:	f3 0f 7f 45 d8       	movdqu %xmm0,-0x28(%rbp)
140a072a5:	c7 45 d0 03 00 00 00 	movl   $0x3,-0x30(%rbp)
140a072ac:	4c 8b 79 08          	mov    0x8(%rcx),%r15
140a072b0:	48 8b 01             	mov    (%rcx),%rax
140a072b3:	48 89 45 f0          	mov    %rax,-0x10(%rbp)
140a072b7:	4c 89 7d f8          	mov    %r15,-0x8(%rbp)
140a072bb:	0f 28 45 f0          	movaps -0x10(%rbp),%xmm0
140a072bf:	66 0f 7f 45 f0       	movdqa %xmm0,-0x10(%rbp)
140a072c4:	48 8b 75 f8          	mov    -0x8(%rbp),%rsi
140a072c8:	48 8b 7d f0          	mov    -0x10(%rbp),%rdi
140a072cc:	48 85 f6             	test   %rsi,%rsi
140a072cf:	74 0a                	je     0x140a072db
140a072d1:	48 85 ff             	test   %rdi,%rdi
140a072d4:	75 05                	jne    0x140a072db
140a072d6:	49 3b f7             	cmp    %r15,%rsi
140a072d9:	74 20                	je     0x140a072fb
140a072db:	48 8b d7             	mov    %rdi,%rdx
140a072de:	48 8d 4d d8          	lea    -0x28(%rbp),%rcx
140a072e2:	e8 d9 fe ff ff       	call   0x140a071c0
140a072e7:	48 85 ff             	test   %rdi,%rdi
140a072ea:	74 e0                	je     0x140a072cc
140a072ec:	48 3b fe             	cmp    %rsi,%rdi
140a072ef:	75 04                	jne    0x140a072f5
140a072f1:	33 ff                	xor    %edi,%edi
140a072f3:	eb d7                	jmp    0x140a072cc
140a072f5:	48 8b 7f 08          	mov    0x8(%rdi),%rdi
140a072f9:	eb d1                	jmp    0x140a072cc
140a072fb:	48 8d 45 d8          	lea    -0x28(%rbp),%rax
140a072ff:	48 3b d8             	cmp    %rax,%rbx
140a07302:	74 3e                	je     0x140a07342
140a07304:	48 8b 45 d8          	mov    -0x28(%rbp),%rax
140a07308:	33 ff                	xor    %edi,%edi
140a0730a:	48 89 7d d8          	mov    %rdi,-0x28(%rbp)
140a0730e:	48 8b 33             	mov    (%rbx),%rsi
140a07311:	48 89 03             	mov    %rax,(%rbx)
140a07314:	48 85 f6             	test   %rsi,%rsi
140a07317:	74 1a                	je     0x140a07333
140a07319:	48 8b 56 08          	mov    0x8(%rsi),%rdx
140a0731d:	48 85 d2             	test   %rdx,%rdx
140a07320:	74 05                	je     0x140a07327
140a07322:	e8 fd 65 ff ff       	call   0x1409fd924
140a07327:	48 8b ce             	mov    %rsi,%rcx
140a0732a:	e8 a5 82 0e 00       	call   0x140aef5d4
140a0732f:	48 8b 7d d8          	mov    -0x28(%rbp),%rdi
140a07333:	48 8b 45 e0          	mov    -0x20(%rbp),%rax
140a07337:	48 89 43 08          	mov    %rax,0x8(%rbx)
140a0733b:	48 83 65 e0 00       	andq   $0x0,-0x20(%rbp)
140a07340:	eb 04                	jmp    0x140a07346
140a07342:	48 8b 7d d8          	mov    -0x28(%rbp),%rdi
140a07346:	48 85 ff             	test   %rdi,%rdi
140a07349:	74 11                	je     0x140a0735c
140a0734b:	48 8d 4f 08          	lea    0x8(%rdi),%rcx
140a0734f:	e8 f4 65 ff ff       	call   0x1409fd948
140a07354:	48 8b cf             	mov    %rdi,%rcx
140a07357:	e8 78 82 0e 00       	call   0x140aef5d4
140a0735c:	41 8b 46 10          	mov    0x10(%r14),%eax
140a07360:	89 43 10             	mov    %eax,0x10(%rbx)
140a07363:	41 8a 46 14          	mov    0x14(%r14),%al
140a07367:	88 43 14             	mov    %al,0x14(%rbx)
140a0736a:	48 8b c3             	mov    %rbx,%rax
140a0736d:	4c 8d 5c 24 50       	lea    0x50(%rsp),%r11
140a07372:	49 8b 5b 20          	mov    0x20(%r11),%rbx
140a07376:	49 8b 73 30          	mov    0x30(%r11),%rsi
140a0737a:	49 8b 7b 38          	mov    0x38(%r11),%rdi
140a0737e:	49 8b e3             	mov    %r11,%rsp
140a07381:	41 5f                	pop    %r15
140a07383:	41 5e                	pop    %r14
140a07385:	5d                   	pop    %rbp
140a07386:	c3                   	ret
140a07387:	90                   	nop
140a07388:	48 89 5c 24 18       	mov    %rbx,0x18(%rsp)
140a0738d:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
140a07392:	55                   	push   %rbp
140a07393:	57                   	push   %rdi
140a07394:	41 54                	push   %r12
140a07396:	41 56                	push   %r14
140a07398:	41 57                	push   %r15
140a0739a:	48 8d 6c 24 c9       	lea    -0x37(%rsp),%rbp
140a0739f:	48 81 ec c0 00 00 00 	sub    $0xc0,%rsp
140a073a6:	48 8b 05 93 7c 2b 00 	mov    0x2b7c93(%rip),%rax        # 0x140cbf040
140a073ad:	48 33 c4             	xor    %rsp,%rax
140a073b0:	48 89 45 27          	mov    %rax,0x27(%rbp)
140a073b4:	4c 8b fa             	mov    %rdx,%r15
140a073b7:	48 8b f1             	mov    %rcx,%rsi
140a073ba:	48 8b 42 08          	mov    0x8(%rdx),%rax
140a073be:	48 8b 10             	mov    (%rax),%rdx
140a073c1:	4c 8b 40 08          	mov    0x8(%rax),%r8
140a073c5:	4c 2b c2             	sub    %rdx,%r8
140a073c8:	49 c1 f8 03          	sar    $0x3,%r8
140a073cc:	49 bc ab aa aa aa aa 	movabs $0xaaaaaaaaaaaaaaab,%r12
140a073d3:	aa aa aa
140a073d6:	4d 0f af c4          	imul   %r12,%r8
140a073da:	41 83 3f 06          	cmpl   $0x6,(%r15)
140a073de:	0f 8f 5c 01 00 00    	jg     0x140a07540
140a073e4:	0f 84 ac 00 00 00    	je     0x140a07496
140a073ea:	41 8b 0f             	mov    (%r15),%ecx
140a073ed:	83 e9 01             	sub    $0x1,%ecx
140a073f0:	74 1c                	je     0x140a0740e
140a073f2:	83 e9 01             	sub    $0x1,%ecx
140a073f5:	74 17                	je     0x140a0740e
140a073f7:	83 e9 01             	sub    $0x1,%ecx
140a073fa:	0f 84 96 00 00 00    	je     0x140a07496
140a07400:	83 e9 01             	sub    $0x1,%ecx
140a07403:	74 09                	je     0x140a0740e
140a07405:	83 f9 01             	cmp    $0x1,%ecx
140a07408:	0f 85 70 06 00 00    	jne    0x140a07a7e
140a0740e:	49 8b c0             	mov    %r8,%rax
140a07411:	bb 01 00 00 00       	mov    $0x1,%ebx
140a07416:	48 2b c3             	sub    %rbx,%rax
140a07419:	74 0d                	je     0x140a07428
140a0741b:	48 3b c3             	cmp    %rbx,%rax
140a0741e:	0f 85 b2 06 00 00    	jne    0x140a07ad6
140a07424:	8b c3                	mov    %ebx,%eax
140a07426:	eb 02                	jmp    0x140a0742a
140a07428:	33 c0                	xor    %eax,%eax
140a0742a:	41 83 3f 04          	cmpl   $0x4,(%r15)
140a0742e:	74 3a                	je     0x140a0746a
140a07430:	41 39 1f             	cmp    %ebx,(%r15)
140a07433:	74 35                	je     0x140a0746a
140a07435:	48 8b 3e             	mov    (%rsi),%rdi
140a07438:	4c 3b c0             	cmp    %rax,%r8
140a0743b:	0f 86 bc 06 00 00    	jbe    0x140a07afd
140a07441:	48 8d 04 40          	lea    (%rax,%rax,2),%rax
140a07445:	48 8d 0c c2          	lea    (%rdx,%rax,8),%rcx
140a07449:	48 8d 55 97          	lea    -0x69(%rbp),%rdx
140a0744d:	e8 0e fe ff ff       	call   0x140a07260
140a07452:	4c 8b c0             	mov    %rax,%r8
140a07455:	8b d3                	mov    %ebx,%edx
140a07457:	48 8d 4f 18          	lea    0x18(%rdi),%rcx
140a0745b:	e8 e0 f8 ff ff       	call   0x140a06d40
140a07460:	90                   	nop
140a07461:	48 8b 5d 97          	mov    -0x69(%rbp),%rbx
140a07465:	e9 fe 05 00 00       	jmp    0x140a07a68
140a0746a:	48 8b 3e             	mov    (%rsi),%rdi
140a0746d:	4c 3b c0             	cmp    %rax,%r8
140a07470:	0f 86 8d 06 00 00    	jbe    0x140a07b03
140a07476:	48 8d 04 40          	lea    (%rax,%rax,2),%rax
140a0747a:	48 8d 0c c2          	lea    (%rdx,%rax,8),%rcx
140a0747e:	48 8d 55 97          	lea    -0x69(%rbp),%rdx
140a07482:	e8 d9 fd ff ff       	call   0x140a07260
140a07487:	4c 8b c0             	mov    %rax,%r8
140a0748a:	8b d3                	mov    %ebx,%edx
140a0748c:	48 8b cf             	mov    %rdi,%rcx
140a0748f:	e8 ac f8 ff ff       	call   0x140a06d40
140a07494:	eb cb                	jmp    0x140a07461
140a07496:	49 8b c0             	mov    %r8,%rax
140a07499:	bb 01 00 00 00       	mov    $0x1,%ebx
140a0749e:	48 83 e8 02          	sub    $0x2,%rax
140a074a2:	74 0d                	je     0x140a074b1
140a074a4:	48 3b c3             	cmp    %rbx,%rax
140a074a7:	0f 85 5c 06 00 00    	jne    0x140a07b09
140a074ad:	8b fb                	mov    %ebx,%edi
140a074af:	eb 02                	jmp    0x140a074b3
140a074b1:	33 ff                	xor    %edi,%edi
140a074b3:	4c 8b 36             	mov    (%rsi),%r14
140a074b6:	4c 3b c7             	cmp    %rdi,%r8
140a074b9:	0f 86 71 06 00 00    	jbe    0x140a07b30
140a074bf:	48 8d 04 7f          	lea    (%rdi,%rdi,2),%rax
140a074c3:	48 8d 0c c2          	lea    (%rdx,%rax,8),%rcx
140a074c7:	48 8d 55 97          	lea    -0x69(%rbp),%rdx
140a074cb:	e8 90 fd ff ff       	call   0x140a07260
140a074d0:	4c 8b c0             	mov    %rax,%r8
140a074d3:	8b d3                	mov    %ebx,%edx
140a074d5:	49 8b ce             	mov    %r14,%rcx
140a074d8:	e8 63 f8 ff ff       	call   0x140a06d40
140a074dd:	4c 8b 75 97          	mov    -0x69(%rbp),%r14
140a074e1:	4d 85 f6             	test   %r14,%r14
140a074e4:	74 11                	je     0x140a074f7
140a074e6:	49 8d 4e 08          	lea    0x8(%r14),%rcx
140a074ea:	e8 59 64 ff ff       	call   0x1409fd948
140a074ef:	49 8b ce             	mov    %r14,%rcx
140a074f2:	e8 dd 80 0e 00       	call   0x140aef5d4
140a074f7:	48 8b 36             	mov    (%rsi),%rsi
140a074fa:	49 8b 47 08          	mov    0x8(%r15),%rax
140a074fe:	48 ff c7             	inc    %rdi
140a07501:	48 8b 10             	mov    (%rax),%rdx
140a07504:	48 8b 48 08          	mov    0x8(%rax),%rcx
140a07508:	48 2b ca             	sub    %rdx,%rcx
140a0750b:	48 c1 f9 03          	sar    $0x3,%rcx
140a0750f:	49 0f af cc          	imul   %r12,%rcx
140a07513:	48 3b cf             	cmp    %rdi,%rcx
140a07516:	0f 86 1a 06 00 00    	jbe    0x140a07b36
140a0751c:	48 8d 04 7f          	lea    (%rdi,%rdi,2),%rax
140a07520:	48 8d 0c c2          	lea    (%rdx,%rax,8),%rcx
140a07524:	48 8d 55 97          	lea    -0x69(%rbp),%rdx
140a07528:	e8 33 fd ff ff       	call   0x140a07260
140a0752d:	4c 8b c0             	mov    %rax,%r8
140a07530:	8b d3                	mov    %ebx,%edx
140a07532:	48 8d 4e 18          	lea    0x18(%rsi),%rcx
140a07536:	e8 05 f8 ff ff       	call   0x140a06d40
140a0753b:	e9 21 ff ff ff       	jmp    0x140a07461
140a07540:	41 8b 0f             	mov    (%r15),%ecx
140a07543:	83 e9 07             	sub    $0x7,%ecx
140a07546:	0f 84 52 02 00 00    	je     0x140a0779e
140a0754c:	83 e9 01             	sub    $0x1,%ecx
140a0754f:	74 20                	je     0x140a07571
140a07551:	83 e9 01             	sub    $0x1,%ecx
140a07554:	0f 84 44 02 00 00    	je     0x140a0779e
140a0755a:	83 f9 01             	cmp    $0x1,%ecx
140a0755d:	0f 85 1b 05 00 00    	jne    0x140a07a7e
140a07563:	4d 85 c0             	test   %r8,%r8
140a07566:	0f 85 43 05 00 00    	jne    0x140a07aaf
140a0756c:	e9 0d 05 00 00       	jmp    0x140a07a7e
140a07571:	49 8b c0             	mov    %r8,%rax
140a07574:	bb 01 00 00 00       	mov    $0x1,%ebx
140a07579:	48 83 e8 06          	sub    $0x6,%rax
140a0757d:	74 0d                	je     0x140a0758c
140a0757f:	48 3b c3             	cmp    %rbx,%rax
140a07582:	0f 85 b4 05 00 00    	jne    0x140a07b3c
140a07588:	8b fb                	mov    %ebx,%edi
140a0758a:	eb 02                	jmp    0x140a0758e
140a0758c:	33 ff                	xor    %edi,%edi
140a0758e:	4c 8b 36             	mov    (%rsi),%r14
140a07591:	4c 3b c7             	cmp    %rdi,%r8
140a07594:	0f 86 c9 05 00 00    	jbe    0x140a07b63
140a0759a:	48 8d 04 7f          	lea    (%rdi,%rdi,2),%rax
140a0759e:	48 8d 0c c2          	lea    (%rdx,%rax,8),%rcx
140a075a2:	48 8d 55 c7          	lea    -0x39(%rbp),%rdx
140a075a6:	e8 b5 fc ff ff       	call   0x140a07260
140a075ab:	4c 8b c0             	mov    %rax,%r8
140a075ae:	8b d3                	mov    %ebx,%edx
140a075b0:	49 8b ce             	mov    %r14,%rcx
140a075b3:	e8 88 f7 ff ff       	call   0x140a06d40
140a075b8:	4c 8b f0             	mov    %rax,%r14
140a075bb:	49 8b 4f 08          	mov    0x8(%r15),%rcx
140a075bf:	4c 8d 47 02          	lea    0x2(%rdi),%r8
140a075c3:	4c 8b 09             	mov    (%rcx),%r9
140a075c6:	48 8b 51 08          	mov    0x8(%rcx),%rdx
140a075ca:	49 2b d1             	sub    %r9,%rdx
140a075cd:	48 c1 fa 03          	sar    $0x3,%rdx
140a075d1:	49 0f af d4          	imul   %r12,%rdx
140a075d5:	49 3b d0             	cmp    %r8,%rdx
140a075d8:	0f 86 8e 05 00 00    	jbe    0x140a07b6c
140a075de:	4b 8d 04 40          	lea    (%r8,%r8,2),%rax
140a075e2:	49 8d 0c c1          	lea    (%r9,%rax,8),%rcx
140a075e6:	48 8d 55 af          	lea    -0x51(%rbp),%rdx
140a075ea:	e8 71 fc ff ff       	call   0x140a07260
140a075ef:	90                   	nop
140a075f0:	4c 8b c0             	mov    %rax,%r8
140a075f3:	8b d3                	mov    %ebx,%edx
140a075f5:	49 8b ce             	mov    %r14,%rcx
140a075f8:	e8 43 f7 ff ff       	call   0x140a06d40
140a075fd:	4c 8b f0             	mov    %rax,%r14
140a07600:	49 8b 4f 08          	mov    0x8(%r15),%rcx
140a07604:	4c 8d 47 04          	lea    0x4(%rdi),%r8
140a07608:	4c 8b 09             	mov    (%rcx),%r9
140a0760b:	48 8b 51 08          	mov    0x8(%rcx),%rdx
140a0760f:	49 2b d1             	sub    %r9,%rdx
140a07612:	48 c1 fa 03          	sar    $0x3,%rdx
140a07616:	49 0f af d4          	imul   %r12,%rdx
140a0761a:	49 3b d0             	cmp    %r8,%rdx
140a0761d:	0f 86 52 05 00 00    	jbe    0x140a07b75
140a07623:	4b 8d 04 40          	lea    (%r8,%r8,2),%rax
140a07627:	49 8d 0c c1          	lea    (%r9,%rax,8),%rcx
140a0762b:	48 8d 55 97          	lea    -0x69(%rbp),%rdx
140a0762f:	e8 2c fc ff ff       	call   0x140a07260
140a07634:	90                   	nop
140a07635:	4c 8b c0             	mov    %rax,%r8
140a07638:	8b d3                	mov    %ebx,%edx
140a0763a:	49 8b ce             	mov    %r14,%rcx
140a0763d:	e8 fe f6 ff ff       	call   0x140a06d40
140a07642:	90                   	nop
140a07643:	4c 8b 75 97          	mov    -0x69(%rbp),%r14
140a07647:	4d 85 f6             	test   %r14,%r14
140a0764a:	74 12                	je     0x140a0765e
140a0764c:	49 8d 4e 08          	lea    0x8(%r14),%rcx
140a07650:	e8 f3 62 ff ff       	call   0x1409fd948
140a07655:	49 8b ce             	mov    %r14,%rcx
140a07658:	e8 77 7f 0e 00       	call   0x140aef5d4
140a0765d:	90                   	nop
140a0765e:	4c 8b 75 af          	mov    -0x51(%rbp),%r14
140a07662:	4d 85 f6             	test   %r14,%r14
140a07665:	74 12                	je     0x140a07679
140a07667:	49 8d 4e 08          	lea    0x8(%r14),%rcx
140a0766b:	e8 d8 62 ff ff       	call   0x1409fd948
140a07670:	49 8b ce             	mov    %r14,%rcx
140a07673:	e8 5c 7f 0e 00       	call   0x140aef5d4
140a07678:	90                   	nop
140a07679:	4c 8b 75 c7          	mov    -0x39(%rbp),%r14
140a0767d:	4d 85 f6             	test   %r14,%r14
140a07680:	74 11                	je     0x140a07693
140a07682:	49 8d 4e 08          	lea    0x8(%r14),%rcx
140a07686:	e8 bd 62 ff ff       	call   0x1409fd948
140a0768b:	49 8b ce             	mov    %r14,%rcx
140a0768e:	e8 41 7f 0e 00       	call   0x140aef5d4
140a07693:	48 8b 36             	mov    (%rsi),%rsi