180086311:	c1 e0 10             	shl    $0x10,%eax
180086314:	81 e1 00 ff 00 00    	and    $0xff00,%ecx
18008631a:	0b c1                	or     %ecx,%eax
18008631c:	66 41 c1 c2 08       	rol    $0x8,%r10w
180086321:	c1 e0 08             	shl    $0x8,%eax
180086324:	0b d0                	or     %eax,%edx
180086326:	66 44 89 55 91       	mov    %r10w,-0x6f(%rbp)
18008632b:	45 33 d2             	xor    %r10d,%r10d
18008632e:	66 44 89 5d 8b       	mov    %r11w,-0x75(%rbp)
180086333:	89 55 87             	mov    %edx,-0x79(%rbp)
180086336:	45 8b fa             	mov    %r10d,%r15d
180086339:	66 44 89 4d 8d       	mov    %r9w,-0x73(%rbp)
18008633e:	48 8d 55 87          	lea    -0x79(%rbp),%rdx
180086342:	66 44 89 45 8f       	mov    %r8w,-0x71(%rbp)
180086347:	45 8b c2             	mov    %r10d,%r8d
18008634a:	45 8d 5a 0c          	lea    0xc(%r10),%r11d
18008634e:	45 8b cb             	mov    %r11d,%r9d
180086351:	41 8a c8             	mov    %r8b,%cl
180086354:	b8 03 00 00 00       	mov    $0x3,%eax
180086359:	80 e1 03             	and    $0x3,%cl
18008635c:	4d 03 c6             	add    %r14,%r8
18008635f:	2a c1                	sub    %cl,%al
180086361:	8a c8                	mov    %al,%cl
180086363:	0f b6 02             	movzbl (%rdx),%eax
180086366:	c0 e1 03             	shl    $0x3,%cl
180086369:	49 03 d6             	add    %r14,%rdx
18008636c:	d3 e0                	shl    %cl,%eax
18008636e:	44 03 f8             	add    %eax,%r15d
180086371:	4d 2b ce             	sub    %r14,%r9
180086374:	75 db                	jne    0x180086351
180086376:	44 89 7d 83          	mov    %r15d,-0x7d(%rbp)
18008637a:	45 39 55 08          	cmp    %r10d,0x8(%r13)
18008637e:	74 0a                	je     0x18008638a
180086380:	bb 02 00 00 c0       	mov    $0xc0000002,%ebx
180086385:	e9 53 05 00 00       	jmp    0x1800868dd
18008638a:	49 8d 45 10          	lea    0x10(%r13),%rax
18008638e:	45 8b c3             	mov    %r11d,%r8d
180086391:	48 8b c8             	mov    %rax,%rcx
180086394:	48 89 45 a7          	mov    %rax,-0x59(%rbp)
180086398:	48 8d 55 87          	lea    -0x79(%rbp),%rdx
18008639c:	e8 9b a4 f9 ff       	call   0x18002083c
1800863a1:	45 33 db             	xor    %r11d,%r11d
1800863a4:	45 8b f3             	mov    %r11d,%r14d
1800863a7:	66 44 3b 5e 04       	cmp    0x4(%rsi),%r11w
1800863ac:	0f 83 ea 00 00 00    	jae    0x18008649c
1800863b2:	44 8b 6d f3          	mov    -0xd(%rbp),%r13d
1800863b6:	41 8b c6             	mov    %r14d,%eax
1800863b9:	48 03 c0             	add    %rax,%rax
1800863bc:	0f 10 44 c6 0c       	movups 0xc(%rsi,%rax,8),%xmm0
1800863c1:	66 0f 7e c0          	movd   %xmm0,%eax
1800863c5:	0f 11 45 af          	movups %xmm0,-0x51(%rbp)
1800863c9:	3d 44 53 49 47       	cmp    $0x47495344,%eax
1800863ce:	0f 84 b8 00 00 00    	je     0x18008648c
1800863d4:	8b 4d b7             	mov    -0x49(%rbp),%ecx
1800863d7:	3b 4d ef             	cmp    -0x11(%rbp),%ecx
1800863da:	76 09                	jbe    0x1800863e5
1800863dc:	41 8d 45 03          	lea    0x3(%r13),%eax
1800863e0:	83 e0 fc             	and    $0xfffffffc,%eax
1800863e3:	2b c8                	sub    %eax,%ecx
1800863e5:	48 8b 45 af          	mov    -0x51(%rbp),%rax
1800863e9:	4c 8d 45 af          	lea    -0x51(%rbp),%r8
1800863ed:	48 c1 e8 20          	shr    $0x20,%rax
1800863f1:	41 ba 10 00 00 00    	mov    $0x10,%r10d
1800863f7:	44 03 f8             	add    %eax,%r15d
1800863fa:	4d 8b cb             	mov    %r11,%r9
1800863fd:	0f c8                	bswap  %eax
1800863ff:	89 45 b3             	mov    %eax,-0x4d(%rbp)
180086402:	8d 41 f0             	lea    -0x10(%rcx),%eax
180086405:	8b 4d bb             	mov    -0x45(%rbp),%ecx
180086408:	8b d1                	mov    %ecx,%edx
18008640a:	0f c8                	bswap  %eax
18008640c:	89 45 b7             	mov    %eax,-0x49(%rbp)
18008640f:	81 e2 00 00 ff 00    	and    $0xff0000,%edx
180086415:	8b c1                	mov    %ecx,%eax
180086417:	c1 e8 10             	shr    $0x10,%eax
18008641a:	0b d0                	or     %eax,%edx
18008641c:	8b c1                	mov    %ecx,%eax
18008641e:	c1 e0 10             	shl    $0x10,%eax
180086421:	81 e1 00 ff 00 00    	and    $0xff00,%ecx
180086427:	0b c1                	or     %ecx,%eax
180086429:	c1 ea 08             	shr    $0x8,%edx
18008642c:	c1 e0 08             	shl    $0x8,%eax
18008642f:	0b d0                	or     %eax,%edx
180086431:	89 55 bb             	mov    %edx,-0x45(%rbp)
180086434:	41 8b d3             	mov    %r11d,%edx
180086437:	45 8d 5a f1          	lea    -0xf(%r10),%r11d
18008643b:	41 8a c9             	mov    %r9b,%cl
18008643e:	b8 03 00 00 00       	mov    $0x3,%eax
180086443:	80 e1 03             	and    $0x3,%cl
180086446:	4d 03 cb             	add    %r11,%r9
180086449:	2a c1                	sub    %cl,%al
18008644b:	8a c8                	mov    %al,%cl
18008644d:	41 0f b6 00          	movzbl (%r8),%eax
180086451:	c0 e1 03             	shl    $0x3,%cl
180086454:	4d 03 c3             	add    %r11,%r8
180086457:	d3 e0                	shl    %cl,%eax
180086459:	03 d0                	add    %eax,%edx
18008645b:	4d 2b d3             	sub    %r11,%r10
18008645e:	75 db                	jne    0x18008643b
180086460:	48 8b 45 6f          	mov    0x6f(%rbp),%rax
180086464:	44 03 fa             	add    %edx,%r15d
180086467:	45 33 db             	xor    %r11d,%r11d
18008646a:	44 89 7d 83          	mov    %r15d,-0x7d(%rbp)
18008646e:	44 39 58 08          	cmp    %r11d,0x8(%rax)
180086472:	0f 85 08 ff ff ff    	jne    0x180086380
180086478:	48 8b 4d a7          	mov    -0x59(%rbp),%rcx
18008647c:	45 8d 42 10          	lea    0x10(%r10),%r8d
180086480:	48 8d 55 af          	lea    -0x51(%rbp),%rdx
180086484:	e8 b3 a3 f9 ff       	call   0x18002083c
180086489:	45 33 db             	xor    %r11d,%r11d
18008648c:	0f b7 46 04          	movzwl 0x4(%rsi),%eax
180086490:	41 ff c6             	inc    %r14d
180086493:	44 3b f0             	cmp    %eax,%r14d
180086496:	0f 82 1a ff ff ff    	jb     0x1800863b6
18008649c:	85 db                	test   %ebx,%ebx
18008649e:	0f 84 34 04 00 00    	je     0x1800868d8
1800864a4:	8b c3                	mov    %ebx,%eax
1800864a6:	48 8d 48 03          	lea    0x3(%rax),%rcx
1800864aa:	48 83 e1 fc          	and    $0xfffffffffffffffc,%rcx
1800864ae:	48 3b c8             	cmp    %rax,%rcx
1800864b1:	0f 82 21 04 00 00    	jb     0x1800868d8
1800864b7:	e8 94 39 01 00       	call   0x180099e50
1800864bc:	48 8b f8             	mov    %rax,%rdi
1800864bf:	48 85 c0             	test   %rax,%rax
1800864c2:	75 0a                	jne    0x1800864ce
1800864c4:	bb 17 00 00 c0       	mov    $0xc0000017,%ebx
1800864c9:	e9 0f 04 00 00       	jmp    0x1800868dd
1800864ce:	0f b7 56 04          	movzwl 0x4(%rsi),%edx
1800864d2:	4c 8d 0d a7 f9 ff ff 	lea    -0x659(%rip),%r9        # 0x180085e80
1800864d9:	41 b8 10 00 00 00    	mov    $0x10,%r8d
1800864df:	48 8d 4e 0c          	lea    0xc(%rsi),%rcx
1800864e3:	e8 68 4d 0a 00       	call   0x18012b250
1800864e8:	45 33 db             	xor    %r11d,%r11d
1800864eb:	45 8b cb             	mov    %r11d,%r9d
1800864ee:	45 8b eb             	mov    %r11d,%r13d
1800864f1:	66 44 3b 5e 04       	cmp    0x4(%rsi),%r11w
1800864f6:	0f 83 dc 03 00 00    	jae    0x1800868d8
1800864fc:	41 8b c5             	mov    %r13d,%eax
1800864ff:	4c 8d 76 0c          	lea    0xc(%rsi),%r14
180086503:	48 c1 e0 04          	shl    $0x4,%rax
180086507:	4c 03 f0             	add    %rax,%r14
18008650a:	45 8b 46 08          	mov    0x8(%r14),%r8d
18008650e:	49 8d 40 03          	lea    0x3(%r8),%rax
180086512:	48 83 e0 fc          	and    $0xfffffffffffffffc,%rax
180086516:	4c 3b c0             	cmp    %rax,%r8
180086519:	0f 85 b9 03 00 00    	jne    0x1800868d8
18008651f:	41 8b 56 0c          	mov    0xc(%r14),%edx
180086523:	42 8d 04 02          	lea    (%rdx,%r8,1),%eax
180086527:	41 3b c0             	cmp    %r8d,%eax
18008652a:	0f 86 a8 03 00 00    	jbe    0x1800868d8
180086530:	48 3b 45 f7          	cmp    -0x9(%rbp),%rax
180086534:	0f 87 9e 03 00 00    	ja     0x1800868d8
18008653a:	4d 85 c9             	test   %r9,%r9
18008653d:	74 18                	je     0x180086557
18008653f:	41 8b 49 0c          	mov    0xc(%r9),%ecx
180086543:	41 8b 41 08          	mov    0x8(%r9),%eax
180086547:	48 83 c1 03          	add    $0x3,%rcx
18008654b:	48 83 e1 fc          	and    $0xfffffffffffffffc,%rcx
18008654f:	48 03 c8             	add    %rax,%rcx
180086552:	4c 3b c1             	cmp    %rcx,%r8
180086555:	eb 04                	jmp    0x18008655b
180086557:	44 3b 45 bf          	cmp    -0x41(%rbp),%r8d
18008655b:	0f 85 77 03 00 00    	jne    0x1800868d8
180086561:	8b 4d 67             	mov    0x67(%rbp),%ecx
180086564:	44 8d 7a 03          	lea    0x3(%rdx),%r15d
180086568:	44 89 5c 24 28       	mov    %r11d,0x28(%rsp)
18008656d:	4c 8b cf             	mov    %rdi,%r9
180086570:	41 83 e7 fc          	and    $0xfffffffc,%r15d
180086574:	4c 89 5c 24 20       	mov    %r11,0x20(%rsp)
180086579:	e8 d2 29 fe ff       	call   0x180068f50
18008657e:	8b d8                	mov    %eax,%ebx
180086580:	85 c0                	test   %eax,%eax
180086582:	0f 88 55 03 00 00    	js     0x1800868dd
180086588:	41 8b 4e 0c          	mov    0xc(%r14),%ecx
18008658c:	45 8b c7             	mov    %r15d,%r8d
18008658f:	44 2b c1             	sub    %ecx,%r8d
180086592:	33 d2                	xor    %edx,%edx
180086594:	48 03 cf             	add    %rdi,%rcx
180086597:	e8 e4 f6 0a 00       	call   0x180135c80
18008659c:	41 81 3e 68 65 61 64 	cmpl   $0x64616568,(%r14)
1800865a3:	75 26                	jne    0x1800865cb
1800865a5:	41 83 7e 0c 0c       	cmpl   $0xc,0xc(%r14)
1800865aa:	72 1f                	jb     0x1800865cb
1800865ac:	b8 ba af b0 b1       	mov    $0xb1b0afba,%eax
1800865b1:	2b 44 24 34          	sub    0x34(%rsp),%eax
1800865b5:	0f c8                	bswap  %eax
1800865b7:	89 44 24 34          	mov    %eax,0x34(%rsp)
1800865bb:	3b 47 08             	cmp    0x8(%rdi),%eax
1800865be:	0f 85 14 03 00 00    	jne    0x1800868d8
1800865c4:	33 db                	xor    %ebx,%ebx
1800865c6:	89 5f 08             	mov    %ebx,0x8(%rdi)
1800865c9:	eb 02                	jmp    0x1800865cd
1800865cb:	33 db                	xor    %ebx,%ebx
1800865cd:	41 8b d7             	mov    %r15d,%edx
1800865d0:	48 8b cf             	mov    %rdi,%rcx
1800865d3:	e8 bc f8 ff ff       	call   0x180085e94
1800865d8:	41 3b 46 04          	cmp    0x4(%r14),%eax
1800865dc:	0f 85 f6 02 00 00    	jne    0x1800868d8
1800865e2:	41 8b 06             	mov    (%r14),%eax
1800865e5:	3d 68 65 61 64       	cmp    $0x64616568,%eax
1800865ea:	75 3b                	jne    0x180086627
1800865ec:	41 83 7e 0c 0c       	cmpl   $0xc,0xc(%r14)
1800865f1:	72 3b                	jb     0x18008662e
1800865f3:	41 b8 00 ff 00 00    	mov    $0xff00,%r8d
1800865f9:	ba ba af b0 b1       	mov    $0xb1b0afba,%edx
1800865fe:	2b 55 83             	sub    -0x7d(%rbp),%edx
180086601:	89 57 08             	mov    %edx,0x8(%rdi)
180086604:	8b ca                	mov    %edx,%ecx
180086606:	c1 e1 10             	shl    $0x10,%ecx
180086609:	8b c2                	mov    %edx,%eax
18008660b:	41 23 c0             	and    %r8d,%eax
18008660e:	c1 ea 08             	shr    $0x8,%edx
180086611:	0b c8                	or     %eax,%ecx
180086613:	41 23 d0             	and    %r8d,%edx
180086616:	0f b6 47 0b          	movzbl 0xb(%rdi),%eax
18008661a:	c1 e1 08             	shl    $0x8,%ecx
18008661d:	0b ca                	or     %edx,%ecx
18008661f:	0b c8                	or     %eax,%ecx
180086621:	89 4f 08             	mov    %ecx,0x8(%rdi)
180086624:	41 8b 06             	mov    (%r14),%eax
180086627:	3d 44 53 49 47       	cmp    $0x47495344,%eax
18008662c:	74 27                	je     0x180086655
18008662e:	48 8b 45 6f          	mov    0x6f(%rbp),%rax
180086632:	39 58 08             	cmp    %ebx,0x8(%rax)
180086635:	0f 85 45 fd ff ff    	jne    0x180086380
18008663b:	48 8b 5d a7          	mov    -0x59(%rbp),%rbx
18008663f:	45 8b c7             	mov    %r15d,%r8d
180086642:	48 8b cb             	mov    %rbx,%rcx
180086645:	48 8b d7             	mov    %rdi,%rdx
180086648:	e8 ef a1 f9 ff       	call   0x18002083c
18008664d:	45 33 db             	xor    %r11d,%r11d
180086650:	e9 03 02 00 00       	jmp    0x180086858
180086655:	41 83 7e 0c 14       	cmpl   $0x14,0xc(%r14)
18008665a:	0f 82 78 02 00 00    	jb     0x1800868d8
180086660:	8b 0f                	mov    (%rdi),%ecx
180086662:	41 bf 00 ff 00 00    	mov    $0xff00,%r15d
180086668:	8b d1                	mov    %ecx,%edx
18008666a:	8b c1                	mov    %ecx,%eax
18008666c:	41 23 c7             	and    %r15d,%eax
18008666f:	c1 e9 08             	shr    $0x8,%ecx
180086672:	41 23 cf             	and    %r15d,%ecx
180086675:	c1 e2 10             	shl    $0x10,%edx
180086678:	0b d0                	or     %eax,%edx
18008667a:	bb 01 00 00 00       	mov    $0x1,%ebx
18008667f:	0f b6 47 03          	movzbl 0x3(%rdi),%eax
180086683:	c1 e2 08             	shl    $0x8,%edx
180086686:	0b d1                	or     %ecx,%edx
180086688:	0f b6 4f 05          	movzbl 0x5(%rdi),%ecx
18008668c:	0b d0                	or     %eax,%edx
18008668e:	0f b7 47 04          	movzwl 0x4(%rdi),%eax
180086692:	66 c1 e0 08          	shl    $0x8,%ax
180086696:	66 0b c8             	or     %ax,%cx
180086699:	89 17                	mov    %edx,(%rdi)
18008669b:	0f b7 47 06          	movzwl 0x6(%rdi),%eax
18008669f:	44 0f b7 c1          	movzwl %cx,%r8d
1800866a3:	66 89 4f 04          	mov    %cx,0x4(%rdi)
1800866a7:	0f b6 4f 07          	movzbl 0x7(%rdi),%ecx
1800866ab:	66 c1 e0 08          	shl    $0x8,%ax
1800866af:	66 0b c8             	or     %ax,%cx
1800866b2:	66 89 4f 06          	mov    %cx,0x6(%rdi)
1800866b6:	3b d3                	cmp    %ebx,%edx
1800866b8:	0f 85 1a 02 00 00    	jne    0x1800868d8
1800866be:	41 8b 46 0c          	mov    0xc(%r14),%eax
1800866c2:	4b 8d 0c 40          	lea    (%r8,%r8,2),%rcx
1800866c6:	48 8d 0c 8d 08 00 00 	lea    0x8(,%rcx,4),%rcx
1800866cd:	00
1800866ce:	48 3b c8             	cmp    %rax,%rcx
1800866d1:	0f 87 01 02 00 00    	ja     0x1800868d8
1800866d7:	45 33 db             	xor    %r11d,%r11d
1800866da:	45 8b cb             	mov    %r11d,%r9d
1800866dd:	66 45 3b d8          	cmp    %r8w,%r11w
1800866e1:	0f 83 21 01 00 00    	jae    0x180086808
1800866e7:	41 8b c1             	mov    %r9d,%eax
1800866ea:	4c 8d 14 40          	lea    (%rax,%rax,2),%r10
1800866ee:	42 8b 4c 97 08       	mov    0x8(%rdi,%r10,4),%ecx
1800866f3:	8b d1                	mov    %ecx,%edx
1800866f5:	c1 e2 10             	shl    $0x10,%edx
1800866f8:	8b c1                	mov    %ecx,%eax
1800866fa:	41 23 c7             	and    %r15d,%eax
1800866fd:	c1 e9 08             	shr    $0x8,%ecx
180086700:	0b d0                	or     %eax,%edx
180086702:	41 23 cf             	and    %r15d,%ecx
180086705:	42 0f b6 44 97 0b    	movzbl 0xb(%rdi,%r10,4),%eax
18008670b:	c1 e2 08             	shl    $0x8,%edx
18008670e:	0b d1                	or     %ecx,%edx
180086710:	42 8b 4c 97 0c       	mov    0xc(%rdi,%r10,4),%ecx
180086715:	0b d0                	or     %eax,%edx
180086717:	8b c1                	mov    %ecx,%eax
180086719:	41 23 c7             	and    %r15d,%eax
18008671c:	42 89 54 97 08       	mov    %edx,0x8(%rdi,%r10,4)
180086721:	8b d1                	mov    %ecx,%edx
180086723:	c1 e9 08             	shr    $0x8,%ecx
180086726:	c1 e2 10             	shl    $0x10,%edx
180086729:	41 23 cf             	and    %r15d,%ecx
18008672c:	0b d0                	or     %eax,%edx
18008672e:	42 0f b6 44 97 0f    	movzbl 0xf(%rdi,%r10,4),%eax
180086734:	c1 e2 08             	shl    $0x8,%edx
180086737:	0b d1                	or     %ecx,%edx
180086739:	42 8b 4c 97 10       	mov    0x10(%rdi,%r10,4),%ecx
18008673e:	0b d0                	or     %eax,%edx
180086740:	44 8b c1             	mov    %ecx,%r8d
180086743:	41 c1 e0 10          	shl    $0x10,%r8d
180086747:	8b c1                	mov    %ecx,%eax
180086749:	41 23 c7             	and    %r15d,%eax
18008674c:	c1 e9 08             	shr    $0x8,%ecx
18008674f:	44 0b c0             	or     %eax,%r8d
180086752:	42 89 54 97 0c       	mov    %edx,0xc(%rdi,%r10,4)
180086757:	42 0f b6 44 97 13    	movzbl 0x13(%rdi,%r10,4),%eax
18008675d:	41 23 cf             	and    %r15d,%ecx
180086760:	41 c1 e0 08          	shl    $0x8,%r8d
180086764:	44 0b c1             	or     %ecx,%r8d
180086767:	44 0b c0             	or     %eax,%r8d
18008676a:	46 89 44 97 10       	mov    %r8d,0x10(%rdi,%r10,4)
18008676f:	41 8d 04 10          	lea    (%r8,%rdx,1),%eax
180086773:	41 3b c0             	cmp    %r8d,%eax
180086776:	0f 86 5c 01 00 00    	jbe    0x1800868d8
18008677c:	41 3b 46 0c          	cmp    0xc(%r14),%eax
180086780:	0f 87 52 01 00 00    	ja     0x1800868d8
180086786:	83 fa 08             	cmp    $0x8,%edx
180086789:	0f 82 49 01 00 00    	jb     0x1800868d8
18008678f:	0f b7 47 04          	movzwl 0x4(%rdi),%eax
180086793:	48 8d 0c 40          	lea    (%rax,%rax,2),%rcx
180086797:	48 8d 0c 8d 08 00 00 	lea    0x8(,%rcx,4),%rcx
18008679e:	00
18008679f:	4c 3b c1             	cmp    %rcx,%r8
1800867a2:	0f 82 30 01 00 00    	jb     0x1800868d8
1800867a8:	41 8b 4c 38 04       	mov    0x4(%r8,%rdi,1),%ecx
1800867ad:	8b d1                	mov    %ecx,%edx
1800867af:	c1 e2 10             	shl    $0x10,%edx
1800867b2:	8b c1                	mov    %ecx,%eax
1800867b4:	41 23 c7             	and    %r15d,%eax
1800867b7:	c1 e9 08             	shr    $0x8,%ecx
1800867ba:	0b d0                	or     %eax,%edx
1800867bc:	41 23 cf             	and    %r15d,%ecx
1800867bf:	41 0f b6 44 38 07    	movzbl 0x7(%r8,%rdi,1),%eax
1800867c5:	c1 e2 08             	shl    $0x8,%edx
1800867c8:	0b d1                	or     %ecx,%edx
1800867ca:	0b d0                	or     %eax,%edx
1800867cc:	41 89 54 38 04       	mov    %edx,0x4(%r8,%rdi,1)
1800867d1:	66 45 3b 1c 38       	cmp    (%r8,%rdi,1),%r11w
1800867d6:	0f 85 fc 00 00 00    	jne    0x1800868d8
1800867dc:	66 45 3b 5c 38 02    	cmp    0x2(%r8,%rdi,1),%r11w
1800867e2:	0f 85 f0 00 00 00    	jne    0x1800868d8
1800867e8:	42 8b 44 97 0c       	mov    0xc(%rdi,%r10,4),%eax
1800867ed:	83 e8 08             	sub    $0x8,%eax
1800867f0:	3b c2                	cmp    %edx,%eax
1800867f2:	0f 82 e0 00 00 00    	jb     0x1800868d8
1800867f8:	0f b7 47 04          	movzwl 0x4(%rdi),%eax
1800867fc:	44 03 cb             	add    %ebx,%r9d
1800867ff:	44 3b c8             	cmp    %eax,%r9d