180022315:	48 8b d7             	mov    %rdi,%rdx
180022318:	48 8d 0d f1 be 14 00 	lea    0x14bef1(%rip),%rcx        # 0x18016e210
18002231f:	e8 f8 0f 00 00       	call   0x18002331c
180022324:	85 c0                	test   %eax,%eax
180022326:	0f 88 21 03 00 00    	js     0x18002264d
18002232c:	44 39 64 24 48       	cmp    %r12d,0x48(%rsp)
180022331:	0f 85 a9 00 00 00    	jne    0x1800223e0
180022337:	48 8b 4f 10          	mov    0x10(%rdi),%rcx
18002233b:	48 85 c9             	test   %rcx,%rcx
18002233e:	74 59                	je     0x180022399
180022340:	41 8b dc             	mov    %r12d,%ebx
180022343:	44 39 61 30          	cmp    %r12d,0x30(%rcx)
180022347:	76 50                	jbe    0x180022399
180022349:	8b c3                	mov    %ebx,%eax
18002234b:	48 6b f0 78          	imul   $0x78,%rax,%rsi
18002234f:	4c 39 25 ea 2e 17 00 	cmp    %r12,0x172eea(%rip)        # 0x180195240
180022356:	74 2c                	je     0x180022384
180022358:	48 8b 41 28          	mov    0x28(%rcx),%rax
18002235c:	45 33 c0             	xor    %r8d,%r8d
18002235f:	b9 00 00 40 00       	mov    $0x400000,%ecx
180022364:	8b 14 06             	mov    (%rsi,%rax,1),%edx
180022367:	e8 00 da ff ff       	call   0x18001fd6c
18002236c:	84 c0                	test   %al,%al
18002236e:	74 14                	je     0x180022384
180022370:	48 8b 47 10          	mov    0x10(%rdi),%rax
180022374:	48 8b 48 28          	mov    0x28(%rax),%rcx
180022378:	48 03 ce             	add    %rsi,%rcx
18002237b:	e8 90 da ff ff       	call   0x18001fe10
180022380:	84 c0                	test   %al,%al
180022382:	74 0d                	je     0x180022391
180022384:	48 8b 4f 10          	mov    0x10(%rdi),%rcx
180022388:	ff c3                	inc    %ebx
18002238a:	3b 59 30             	cmp    0x30(%rcx),%ebx
18002238d:	73 0a                	jae    0x180022399
18002238f:	eb b8                	jmp    0x180022349
180022391:	c7 44 24 3c 01 00 00 	movl   $0x1,0x3c(%rsp)
180022398:	00
180022399:	48 8b 05 a0 2e 17 00 	mov    0x172ea0(%rip),%rax        # 0x180195240
1800223a0:	48 85 c0             	test   %rax,%rax
1800223a3:	74 3b                	je     0x1800223e0
1800223a5:	44 8b 00             	mov    (%rax),%r8d
1800223a8:	41 8b d4             	mov    %r12d,%edx
1800223ab:	45 85 c0             	test   %r8d,%r8d
1800223ae:	74 30                	je     0x1800223e0
1800223b0:	4c 8b 48 08          	mov    0x8(%rax),%r9
1800223b4:	8b c2                	mov    %edx,%eax
1800223b6:	48 8d 0c 40          	lea    (%rax,%rax,2),%rcx
1800223ba:	48 03 c9             	add    %rcx,%rcx
1800223bd:	41 8b 44 c9 04       	mov    0x4(%r9,%rcx,8),%eax
1800223c2:	0f ba e0 10          	bt     $0x10,%eax
1800223c6:	72 10                	jb     0x1800223d8
1800223c8:	a9 00 40 00 04       	test   $0x4004000,%eax
1800223cd:	75 09                	jne    0x1800223d8
1800223cf:	ff c2                	inc    %edx
1800223d1:	41 3b d0             	cmp    %r8d,%edx
1800223d4:	72 de                	jb     0x1800223b4
1800223d6:	eb 08                	jmp    0x1800223e0
1800223d8:	c7 44 24 34 01 00 00 	movl   $0x1,0x34(%rsp)
1800223df:	00
1800223e0:	48 8d 0d 19 be 14 00 	lea    0x14be19(%rip),%rcx        # 0x18016e200
1800223e7:	e8 20 c8 ff ff       	call   0x18001ec0c
1800223ec:	8b d8                	mov    %eax,%ebx
1800223ee:	85 c0                	test   %eax,%eax
1800223f0:	0f 84 52 02 00 00    	je     0x180022648
1800223f6:	8b 15 84 bd 14 00    	mov    0x14bd84(%rip),%edx        # 0x18016e180
1800223fc:	48 8b 0d 85 bd 14 00 	mov    0x14bd85(%rip),%rcx        # 0x18016e188
180022403:	85 d2                	test   %edx,%edx
180022405:	0f 84 3d 02 00 00    	je     0x180022648
18002240b:	4c 8d 4d 87          	lea    -0x79(%rbp),%r9
18002240f:	4c 8d 44 24 60       	lea    0x60(%rsp),%r8
180022414:	e8 bf e8 ff ff       	call   0x180020cd8
180022419:	85 c0                	test   %eax,%eax
18002241b:	0f 88 27 02 00 00    	js     0x180022648
180022421:	48 8d 44 24 30       	lea    0x30(%rsp),%rax
180022426:	ba 01 00 00 00       	mov    $0x1,%edx
18002242b:	4c 8d 4d bf          	lea    -0x41(%rbp),%r9
18002242f:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
180022434:	4c 8d 44 24 60       	lea    0x60(%rsp),%r8
180022439:	8b cb                	mov    %ebx,%ecx
18002243b:	e8 b8 c8 ff ff       	call   0x18001ecf8
180022440:	85 c0                	test   %eax,%eax
180022442:	0f 88 05 02 00 00    	js     0x18002264d
180022448:	44 39 25 c1 bd 14 00 	cmp    %r12d,0x14bdc1(%rip)        # 0x18016e210
18002244f:	74 1f                	je     0x180022470
180022451:	4c 8d 0d b8 bd 14 00 	lea    0x14bdb8(%rip),%r9        # 0x18016e210
180022458:	8b cb                	mov    %ebx,%ecx
18002245a:	4c 8d 44 24 30       	lea    0x30(%rsp),%r8
18002245f:	48 8d 55 bf          	lea    -0x41(%rbp),%rdx
180022463:	e8 b4 02 00 00       	call   0x18002271c
180022468:	85 c0                	test   %eax,%eax
18002246a:	0f 88 dd 01 00 00    	js     0x18002264d
180022470:	44 8b 44 24 30       	mov    0x30(%rsp),%r8d
180022475:	49 8d 85 b0 00 00 00 	lea    0xb0(%r13),%rax
18002247c:	4c 89 64 24 28       	mov    %r12,0x28(%rsp)
180022481:	4c 8d 0d a8 bd 14 00 	lea    0x14bda8(%rip),%r9        # 0x18016e230
180022488:	48 8d 55 bf          	lea    -0x41(%rbp),%rdx
18002248c:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
180022491:	8b cb                	mov    %ebx,%ecx
180022493:	e8 20 c9 ff ff       	call   0x18001edb8
180022498:	8b c8                	mov    %eax,%ecx
18002249a:	85 c0                	test   %eax,%eax
18002249c:	0f 88 ab 01 00 00    	js     0x18002264d
1800224a2:	48 8b 47 10          	mov    0x10(%rdi),%rax
1800224a6:	0f 28 05 63 bd 14 00 	movaps 0x14bd63(%rip),%xmm0        # 0x18016e210
1800224ad:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
1800224b2:	44 8b 64 24 3c       	mov    0x3c(%rsp),%r12d
1800224b7:	44 8b 6c 24 34       	mov    0x34(%rsp),%r13d
1800224bc:	f3 0f 7f 40 38       	movdqu %xmm0,0x38(%rax)
1800224c1:	45 85 ff             	test   %r15d,%r15d
1800224c4:	75 13                	jne    0x1800224d9
1800224c6:	48 85 f6             	test   %rsi,%rsi
1800224c9:	75 0e                	jne    0x1800224d9
1800224cb:	45 85 e4             	test   %r12d,%r12d
1800224ce:	75 09                	jne    0x1800224d9
1800224d0:	45 85 ed             	test   %r13d,%r13d
1800224d3:	0f 84 6b 01 00 00    	je     0x180022644
1800224d9:	8b 54 24 38          	mov    0x38(%rsp),%edx
1800224dd:	4c 8d 4d 8f          	lea    -0x71(%rbp),%r9
1800224e1:	83 64 24 30 00       	andl   $0x0,0x30(%rsp)
1800224e6:	33 c0                	xor    %eax,%eax
1800224e8:	0f 57 c0             	xorps  %xmm0,%xmm0
1800224eb:	48 89 44 24 40       	mov    %rax,0x40(%rsp)
1800224f0:	48 8d 44 24 30       	lea    0x30(%rsp),%rax
1800224f5:	c7 05 95 2e 17 00 01 	movl   $0x1,0x172e95(%rip)        # 0x180195394
1800224fc:	00 00 00
1800224ff:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
180022504:	48 8d 44 24 40       	lea    0x40(%rsp),%rax
180022509:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
18002250e:	0f 11 45 8f          	movups %xmm0,-0x71(%rbp)
180022512:	0f 11 45 9f          	movups %xmm0,-0x61(%rbp)
180022516:	0f 11 45 af          	movups %xmm0,-0x51(%rbp)
18002251a:	e8 81 0a 00 00       	call   0x180022fa0
18002251f:	83 25 6e 2e 17 00 00 	andl   $0x0,0x172e6e(%rip)        # 0x180195394
180022526:	85 c0                	test   %eax,%eax
180022528:	78 22                	js     0x18002254c
18002252a:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
18002252f:	48 85 db             	test   %rbx,%rbx
180022532:	7e 1f                	jle    0x180022553
180022534:	48 3b 5d af          	cmp    -0x51(%rbp),%rbx
180022538:	7c 12                	jl     0x18002254c
18002253a:	48 3b 5d b7          	cmp    -0x49(%rbp),%rbx
18002253e:	7f 0c                	jg     0x18002254c
180022540:	48 3b 5f 20          	cmp    0x20(%rdi),%rbx
180022544:	7c 06                	jl     0x18002254c
180022546:	48 3b 5f 28          	cmp    0x28(%rdi),%rbx
18002254a:	7e 07                	jle    0x180022553
18002254c:	33 db                	xor    %ebx,%ebx
18002254e:	48 89 5c 24 40       	mov    %rbx,0x40(%rsp)
180022553:	45 85 ff             	test   %r15d,%r15d
180022556:	74 28                	je     0x180022580
180022558:	48 85 db             	test   %rbx,%rbx
18002255b:	75 05                	jne    0x180022562
18002255d:	0f ba 6f 08 1a       	btsl   $0x1a,0x8(%rdi)
180022562:	4c 8d 45 8f          	lea    -0x71(%rbp),%r8
180022566:	48 8b cf             	mov    %rdi,%rcx
180022569:	48 8d 54 24 40       	lea    0x40(%rsp),%rdx
18002256e:	e8 71 fa ff ff       	call   0x180021fe4
180022573:	85 c0                	test   %eax,%eax
180022575:	0f 88 d2 00 00 00    	js     0x18002264d
18002257b:	0f ba 77 08 15       	btrl   $0x15,0x8(%rdi)
180022580:	83 7c 24 48 00       	cmpl   $0x0,0x48(%rsp)
180022585:	0f 85 af 00 00 00    	jne    0x18002263a
18002258b:	45 85 e4             	test   %r12d,%r12d
18002258e:	74 34                	je     0x1800225c4
180022590:	33 c0                	xor    %eax,%eax
180022592:	48 89 44 24 58       	mov    %rax,0x58(%rsp)
180022597:	48 39 47 10          	cmp    %rax,0x10(%rdi)
18002259b:	74 27                	je     0x1800225c4
18002259d:	48 8d 44 24 58       	lea    0x58(%rsp),%rax
1800225a2:	45 33 c9             	xor    %r9d,%r9d
1800225a5:	4c 8d 44 24 40       	lea    0x40(%rsp),%r8
1800225aa:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
1800225af:	48 8b d7             	mov    %rdi,%rdx
1800225b2:	b9 00 00 40 00       	mov    $0x400000,%ecx
1800225b7:	e8 58 0b 00 00       	call   0x180023114
1800225bc:	85 c0                	test   %eax,%eax
1800225be:	0f 88 89 00 00 00    	js     0x18002264d
1800225c4:	45 85 ed             	test   %r13d,%r13d
1800225c7:	74 71                	je     0x18002263a
1800225c9:	48 83 7d 9f 00       	cmpq   $0x0,-0x61(%rbp)
1800225ce:	74 6a                	je     0x18002263a
1800225d0:	33 c0                	xor    %eax,%eax
1800225d2:	4c 8d 44 24 40       	lea    0x40(%rsp),%r8
1800225d7:	48 89 44 24 58       	mov    %rax,0x58(%rsp)
1800225dc:	48 8d 55 8f          	lea    -0x71(%rbp),%rdx
1800225e0:	48 8d 44 24 58       	lea    0x58(%rsp),%rax
1800225e5:	41 b1 01             	mov    $0x1,%r9b
1800225e8:	b9 00 00 00 04       	mov    $0x4000000,%ecx
1800225ed:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
1800225f2:	e8 1d 0b 00 00       	call   0x180023114
1800225f7:	85 c0                	test   %eax,%eax
1800225f9:	78 38                	js     0x180022633
1800225fb:	48 83 64 24 50 00    	andq   $0x0,0x50(%rsp)
180022601:	48 83 3d 37 2c 17 00 	cmpq   $0x0,0x172c37(%rip)        # 0x180195240
180022608:	00
180022609:	74 2f                	je     0x18002263a
18002260b:	8b 54 24 30          	mov    0x30(%rsp),%edx
18002260f:	4c 8d 44 24 50       	lea    0x50(%rsp),%r8
180022614:	b9 00 40 00 00       	mov    $0x4000,%ecx
180022619:	e8 4e d7 ff ff       	call   0x18001fd6c
18002261e:	84 c0                	test   %al,%al
180022620:	74 18                	je     0x18002263a
180022622:	48 85 db             	test   %rbx,%rbx
180022625:	74 07                	je     0x18002262e
180022627:	48 3b 5c 24 50       	cmp    0x50(%rsp),%rbx
18002262c:	7e 0c                	jle    0x18002263a
18002262e:	b8 28 04 00 c0       	mov    $0xc0000428,%eax
180022633:	0f ba 6f 08 12       	btsl   $0x12,0x8(%rdi)
180022638:	eb 13                	jmp    0x18002264d
18002263a:	48 85 f6             	test   %rsi,%rsi
18002263d:	74 03                	je     0x180022642
18002263f:	48 89 1e             	mov    %rbx,(%rsi)
180022642:	33 c9                	xor    %ecx,%ecx
180022644:	8b c1                	mov    %ecx,%eax
180022646:	eb 05                	jmp    0x18002264d
180022648:	b8 28 04 00 c0       	mov    $0xc0000428,%eax
18002264d:	48 8b 4d ff          	mov    -0x1(%rbp),%rcx
180022651:	48 33 cc             	xor    %rsp,%rcx
180022654:	e8 d3 34 ff ff       	call   0x180015b2c
180022659:	48 81 c4 f0 00 00 00 	add    $0xf0,%rsp
180022660:	41 5f                	pop    %r15
180022662:	41 5d                	pop    %r13
180022664:	41 5c                	pop    %r12
180022666:	5f                   	pop    %rdi
180022667:	5e                   	pop    %rsi
180022668:	5b                   	pop    %rbx
180022669:	5d                   	pop    %rbp
18002266a:	c3                   	ret
18002266b:	cc                   	int3
18002266c:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
180022671:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
180022676:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
18002267b:	57                   	push   %rdi
18002267c:	41 54                	push   %r12
18002267e:	41 55                	push   %r13
180022680:	41 56                	push   %r14
180022682:	41 57                	push   %r15
180022684:	48 83 ec 20          	sub    $0x20,%rsp
180022688:	44 8b 21             	mov    (%rcx),%r12d
18002268b:	33 f6                	xor    %esi,%esi
18002268d:	48 8b 42 08          	mov    0x8(%rdx),%rax
180022691:	45 8b f8             	mov    %r8d,%r15d
180022694:	4c 8b 69 08          	mov    0x8(%rcx),%r13
180022698:	48 89 44 24 50       	mov    %rax,0x50(%rsp)
18002269d:	45 85 e4             	test   %r12d,%r12d
1800226a0:	74 54                	je     0x1800226f6
1800226a2:	8b 2a                	mov    (%rdx),%ebp
1800226a4:	85 ed                	test   %ebp,%ebp
1800226a6:	74 4e                	je     0x1800226f6
1800226a8:	45 85 c0             	test   %r8d,%r8d
1800226ab:	74 49                	je     0x1800226f6
1800226ad:	49 8d 79 60          	lea    0x60(%r9),%rdi
1800226b1:	44 3b 67 10          	cmp    0x10(%rdi),%r12d
1800226b5:	75 31                	jne    0x1800226e8
1800226b7:	3b 2f                	cmp    (%rdi),%ebp
1800226b9:	75 2d                	jne    0x1800226e8
1800226bb:	48 8b 57 08          	mov    0x8(%rdi),%rdx
1800226bf:	4c 8b c5             	mov    %rbp,%r8
1800226c2:	48 8b c8             	mov    %rax,%rcx
1800226c5:	e8 96 17 11 00       	call   0x180133e60
1800226ca:	48 3b c5             	cmp    %rbp,%rax
1800226cd:	75 14                	jne    0x1800226e3
1800226cf:	48 8b 57 18          	mov    0x18(%rdi),%rdx
1800226d3:	4d 8b c4             	mov    %r12,%r8
1800226d6:	49 8b cd             	mov    %r13,%rcx
1800226d9:	e8 82 17 11 00       	call   0x180133e60
1800226de:	49 3b c4             	cmp    %r12,%rax
1800226e1:	74 33                	je     0x180022716
1800226e3:	48 8b 44 24 50       	mov    0x50(%rsp),%rax
1800226e8:	ff c6                	inc    %esi
1800226ea:	48 81 c7 f0 00 00 00 	add    $0xf0,%rdi
1800226f1:	41 3b f7             	cmp    %r15d,%esi
1800226f4:	72 bb                	jb     0x1800226b1
1800226f6:	33 c0                	xor    %eax,%eax
1800226f8:	48 8b 5c 24 58       	mov    0x58(%rsp),%rbx
1800226fd:	48 8b 6c 24 60       	mov    0x60(%rsp),%rbp
180022702:	48 8b 74 24 68       	mov    0x68(%rsp),%rsi
180022707:	48 83 c4 20          	add    $0x20,%rsp
18002270b:	41 5f                	pop    %r15
18002270d:	41 5e                	pop    %r14
18002270f:	41 5d                	pop    %r13
180022711:	41 5c                	pop    %r12
180022713:	5f                   	pop    %rdi
180022714:	c3                   	ret
180022715:	cc                   	int3
180022716:	48 8d 47 a0          	lea    -0x60(%rdi),%rax
18002271a:	eb dc                	jmp    0x1800226f8
18002271c:	40 55                	rex push %rbp
18002271e:	53                   	push   %rbx
18002271f:	56                   	push   %rsi
180022720:	57                   	push   %rdi
180022721:	41 56                	push   %r14
180022723:	41 57                	push   %r15
180022725:	48 8d ac 24 58 fd ff 	lea    -0x2a8(%rsp),%rbp
18002272c:	ff
18002272d:	48 81 ec a8 03 00 00 	sub    $0x3a8,%rsp
180022734:	48 8b 05 35 a2 14 00 	mov    0x14a235(%rip),%rax        # 0x18016c970
18002273b:	48 33 c4             	xor    %rsp,%rax
18002273e:	48 89 85 90 02 00 00 	mov    %rax,0x290(%rbp)
180022745:	48 83 64 24 40 00    	andq   $0x0,0x40(%rsp)
18002274b:	49 8b f8             	mov    %r8,%rdi
18002274e:	83 64 24 38 00       	andl   $0x0,0x38(%rsp)
180022753:	4c 8d 44 24 70       	lea    0x70(%rsp),%r8
180022758:	48 8b f2             	mov    %rdx,%rsi
18002275b:	c6 44 24 30 31       	movb   $0x31,0x30(%rsp)
180022760:	44 8b f9             	mov    %ecx,%r15d
180022763:	c7 44 24 34 0a 00 00 	movl   $0xa,0x34(%rsp)
18002276a:	00
18002276b:	48 8d 54 24 34       	lea    0x34(%rsp),%rdx
180022770:	49 8b c9             	mov    %r9,%rcx
180022773:	4d 8b f1             	mov    %r9,%r14
180022776:	e8 01 dd ff ff       	call   0x18002047c
18002277b:	85 c0                	test   %eax,%eax
18002277d:	0f 88 a6 00 00 00    	js     0x180022829
180022783:	8b 54 24 34          	mov    0x34(%rsp),%edx
180022787:	85 d2                	test   %edx,%edx
180022789:	0f 84 9a 00 00 00    	je     0x180022829
18002278f:	4c 8d 44 24 70       	lea    0x70(%rsp),%r8
180022794:	48 8d 0d 6d 76 12 00 	lea    0x12766d(%rip),%rcx        # 0x180149e08
18002279b:	e8 b0 e8 ff ff       	call   0x180021050
1800227a0:	48 85 c0             	test   %rax,%rax
1800227a3:	0f 84 80 00 00 00    	je     0x180022829
1800227a9:	8b 50 40             	mov    0x40(%rax),%edx
1800227ac:	85 d2                	test   %edx,%edx
1800227ae:	74 79                	je     0x180022829
1800227b0:	48 8b 48 48          	mov    0x48(%rax),%rcx
1800227b4:	4c 8d 4c 24 40       	lea    0x40(%rsp),%r9
1800227b9:	4c 8d 44 24 38       	lea    0x38(%rsp),%r8
1800227be:	e8 15 e5 ff ff       	call   0x180020cd8
1800227c3:	85 c0                	test   %eax,%eax
1800227c5:	78 62                	js     0x180022829
1800227c7:	8b 44 24 38          	mov    0x38(%rsp),%eax
1800227cb:	39 07                	cmp    %eax,(%rdi)
1800227cd:	75 5a                	jne    0x180022829
1800227cf:	48 8b 54 24 40       	mov    0x40(%rsp),%rdx
1800227d4:	44 8b c0             	mov    %eax,%r8d
1800227d7:	48 8b ce             	mov    %rsi,%rcx
1800227da:	8b d8                	mov    %eax,%ebx
1800227dc:	e8 7f 16 11 00       	call   0x180133e60
1800227e1:	48 3b c3             	cmp    %rbx,%rax
1800227e4:	75 43                	jne    0x180022829
1800227e6:	48 8d 44 24 30       	lea    0x30(%rsp),%rax
1800227eb:	c7 44 24 48 01 00 00 	movl   $0x1,0x48(%rsp)
1800227f2:	00
1800227f3:	48 89 44 24 50       	mov    %rax,0x50(%rsp)
1800227f8:	4c 8d 44 24 48       	lea    0x48(%rsp),%r8
1800227fd:	49 8b 46 08          	mov    0x8(%r14),%rax
180022801:	4c 8b ce             	mov    %rsi,%r9
180022804:	48 ff c0             	inc    %rax
180022807:	48 89 7c 24 20       	mov    %rdi,0x20(%rsp)