18002c374:	41 0f ba 6f 70 10    	btsl   $0x10,0x70(%r15)
18002c37a:	48 8d 04 bf          	lea    (%rdi,%rdi,4),%rax
18002c37e:	0f ba 2c c6 1b       	btsl   $0x1b,(%rsi,%rax,8)
18002c383:	0f b7 43 22          	movzwl 0x22(%rbx),%eax
18002c387:	b9 00 08 00 00       	mov    $0x800,%ecx
18002c38c:	66 85 c1             	test   %ax,%cx
18002c38f:	74 12                	je     0x18002c3a3
18002c391:	41 83 4f 70 40       	orl    $0x40,0x70(%r15)
18002c396:	48 8d 04 bf          	lea    (%rdi,%rdi,4),%rax
18002c39a:	0f ba 2c c6 1c       	btsl   $0x1c,(%rsi,%rax,8)
18002c39f:	0f b7 43 22          	movzwl 0x22(%rbx),%eax
18002c3a3:	b9 00 10 00 00       	mov    $0x1000,%ecx
18002c3a8:	66 85 c1             	test   %ax,%cx
18002c3ab:	74 0b                	je     0x18002c3b8
18002c3ad:	45 84 ed             	test   %r13b,%r13b
18002c3b0:	75 06                	jne    0x18002c3b8
18002c3b2:	44 38 45 48          	cmp    %r8b,0x48(%rbp)
18002c3b6:	74 0a                	je     0x18002c3c2
18002c3b8:	b9 00 40 00 00       	mov    $0x4000,%ecx
18002c3bd:	66 85 c1             	test   %ax,%cx
18002c3c0:	74 09                	je     0x18002c3cb
18002c3c2:	48 8d 04 bf          	lea    (%rdi,%rdi,4),%rax
18002c3c6:	0f ba 2c c6 19       	btsl   $0x19,(%rsi,%rax,8)
18002c3cb:	4c 8d 24 bf          	lea    (%rdi,%rdi,4),%r12
18002c3cf:	42 f7 04 e6 00 00 00 	testl  $0x34000000,(%rsi,%r12,8)
18002c3d6:	34
18002c3d7:	74 4a                	je     0x18002c423
18002c3d9:	ba 08 00 00 00       	mov    $0x8,%edx
18002c3de:	48 8b cb             	mov    %rbx,%rcx
18002c3e1:	e8 32 30 08 00       	call   0x1800af418
18002c3e6:	45 33 c0             	xor    %r8d,%r8d
18002c3e9:	8b f8                	mov    %eax,%edi
18002c3eb:	85 c0                	test   %eax,%eax
18002c3ed:	78 1c                	js     0x18002c40b
18002c3ef:	ba ff ff 00 00       	mov    $0xffff,%edx
18002c3f4:	4c 8d 4d e0          	lea    -0x20(%rbp),%r9
18002c3f8:	41 b8 02 00 00 00    	mov    $0x2,%r8d
18002c3fe:	48 8b cb             	mov    %rbx,%rcx
18002c401:	e8 ea 29 08 00       	call   0x1800aedf0
18002c406:	8b f8                	mov    %eax,%edi
18002c408:	45 33 c0             	xor    %r8d,%r8d
18002c40b:	b9 00 00 00 80       	mov    $0x80000000,%ecx
18002c410:	8d 04 0f             	lea    (%rdi,%rcx,1),%eax
18002c413:	85 c1                	test   %eax,%ecx
18002c415:	75 0c                	jne    0x18002c423
18002c417:	81 ff 25 02 00 c0    	cmp    $0xc0000225,%edi
18002c41d:	0f 85 8c 00 00 00    	jne    0x18002c4af
18002c423:	48 8b 4d e0          	mov    -0x20(%rbp),%rcx
18002c427:	4c 8b 6d e8          	mov    -0x18(%rbp),%r13
18002c42b:	4a 89 4c e6 10       	mov    %rcx,0x10(%rsi,%r12,8)
18002c430:	48 8b 4d d8          	mov    -0x28(%rbp),%rcx
18002c434:	4a 89 5c e6 08       	mov    %rbx,0x8(%rsi,%r12,8)
18002c439:	49 8b d8             	mov    %r8,%rbx
18002c43c:	4a 89 4c e6 18       	mov    %rcx,0x18(%rsi,%r12,8)
18002c441:	44 8b 65 b8          	mov    -0x48(%rbp),%r12d
18002c445:	41 ff c4             	inc    %r12d
18002c448:	48 89 5d d0          	mov    %rbx,-0x30(%rbp)
18002c44c:	44 89 65 b8          	mov    %r12d,-0x48(%rbp)
18002c450:	4c 89 45 e0          	mov    %r8,-0x20(%rbp)
18002c454:	4c 89 45 d8          	mov    %r8,-0x28(%rbp)
18002c458:	48 85 db             	test   %rbx,%rbx
18002c45b:	74 10                	je     0x18002c46d
18002c45d:	48 8b cb             	mov    %rbx,%rcx
18002c460:	e8 c3 28 08 00       	call   0x1800aed28
18002c465:	33 c0                	xor    %eax,%eax
18002c467:	8b d8                	mov    %eax,%ebx
18002c469:	48 89 45 d0          	mov    %rax,-0x30(%rbp)
18002c46d:	44 8b 4d 60          	mov    0x60(%rbp),%r9d
18002c471:	41 b8 08 00 00 00    	mov    $0x8,%r8d
18002c477:	48 8d 45 60          	lea    0x60(%rbp),%rax
18002c47b:	49 8b cd             	mov    %r13,%rcx
18002c47e:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
18002c483:	41 8d 50 fa          	lea    -0x6(%r8),%edx
18002c487:	e8 04 54 08 00       	call   0x1800b1890
18002c48c:	45 33 c0             	xor    %r8d,%r8d
18002c48f:	85 c0                	test   %eax,%eax
18002c491:	0f 89 da fc ff ff    	jns    0x18002c171
18002c497:	3d 25 02 00 c0       	cmp    $0xc0000225,%eax
18002c49c:	49 89 77 78          	mov    %rsi,0x78(%r15)
18002c4a0:	41 8b f8             	mov    %r8d,%edi
18002c4a3:	45 89 67 74          	mov    %r12d,0x74(%r15)
18002c4a7:	0f 45 f8             	cmovne %eax,%edi
18002c4aa:	41 8b f0             	mov    %r8d,%esi
18002c4ad:	eb 04                	jmp    0x18002c4b3
18002c4af:	44 8b 65 b8          	mov    -0x48(%rbp),%r12d
18002c4b3:	48 85 db             	test   %rbx,%rbx
18002c4b6:	74 08                	je     0x18002c4c0
18002c4b8:	48 8b cb             	mov    %rbx,%rcx
18002c4bb:	e8 68 28 08 00       	call   0x1800aed28
18002c4c0:	48 8b 4d d8          	mov    -0x28(%rbp),%rcx
18002c4c4:	48 85 c9             	test   %rcx,%rcx
18002c4c7:	74 05                	je     0x18002c4ce
18002c4c9:	e8 5a 28 08 00       	call   0x1800aed28
18002c4ce:	48 8b 4d e0          	mov    -0x20(%rbp),%rcx
18002c4d2:	48 85 c9             	test   %rcx,%rcx
18002c4d5:	74 05                	je     0x18002c4dc
18002c4d7:	e8 4c 28 08 00       	call   0x1800aed28
18002c4dc:	4d 85 f6             	test   %r14,%r14
18002c4df:	74 08                	je     0x18002c4e9
18002c4e1:	49 8b ce             	mov    %r14,%rcx
18002c4e4:	e8 13 db 06 00       	call   0x180099ffc
18002c4e9:	41 8b d4             	mov    %r12d,%edx
18002c4ec:	48 8b ce             	mov    %rsi,%rcx
18002c4ef:	e8 14 00 00 00       	call   0x18002c508
18002c4f4:	8b c7                	mov    %edi,%eax
18002c4f6:	48 83 c4 78          	add    $0x78,%rsp
18002c4fa:	41 5f                	pop    %r15
18002c4fc:	41 5e                	pop    %r14
18002c4fe:	41 5d                	pop    %r13
18002c500:	41 5c                	pop    %r12
18002c502:	5f                   	pop    %rdi
18002c503:	5e                   	pop    %rsi
18002c504:	5b                   	pop    %rbx
18002c505:	5d                   	pop    %rbp
18002c506:	c3                   	ret
18002c507:	cc                   	int3
18002c508:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18002c50d:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
18002c512:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
18002c517:	57                   	push   %rdi
18002c518:	48 83 ec 20          	sub    $0x20,%rsp
18002c51c:	33 db                	xor    %ebx,%ebx
18002c51e:	8b f2                	mov    %edx,%esi
18002c520:	48 8b e9             	mov    %rcx,%rbp
18002c523:	48 85 c9             	test   %rcx,%rcx
18002c526:	74 79                	je     0x18002c5a1
18002c528:	85 d2                	test   %edx,%edx
18002c52a:	74 6d                	je     0x18002c599
18002c52c:	4c 8d 04 b6          	lea    (%rsi,%rsi,4),%r8
18002c530:	48 8d 79 10          	lea    0x10(%rcx),%rdi
18002c534:	4a 8d 3c c7          	lea    (%rdi,%r8,8),%rdi
18002c538:	48 8d 7f d8          	lea    -0x28(%rdi),%rdi
18002c53c:	ff ce                	dec    %esi
18002c53e:	48 8b 4f f8          	mov    -0x8(%rdi),%rcx
18002c542:	48 85 c9             	test   %rcx,%rcx
18002c545:	74 0e                	je     0x18002c555
18002c547:	e8 dc 27 08 00       	call   0x1800aed28
18002c54c:	85 db                	test   %ebx,%ebx
18002c54e:	78 05                	js     0x18002c555
18002c550:	85 c0                	test   %eax,%eax
18002c552:	0f 48 d8             	cmovs  %eax,%ebx
18002c555:	48 8b 0f             	mov    (%rdi),%rcx
18002c558:	48 85 c9             	test   %rcx,%rcx
18002c55b:	74 0e                	je     0x18002c56b
18002c55d:	e8 c6 27 08 00       	call   0x1800aed28
18002c562:	85 db                	test   %ebx,%ebx
18002c564:	78 05                	js     0x18002c56b
18002c566:	85 c0                	test   %eax,%eax
18002c568:	0f 48 d8             	cmovs  %eax,%ebx
18002c56b:	48 8b 4f 08          	mov    0x8(%rdi),%rcx
18002c56f:	48 85 c9             	test   %rcx,%rcx
18002c572:	74 0e                	je     0x18002c582
18002c574:	e8 af 27 08 00       	call   0x1800aed28
18002c579:	85 db                	test   %ebx,%ebx
18002c57b:	78 05                	js     0x18002c582
18002c57d:	85 c0                	test   %eax,%eax
18002c57f:	0f 48 d8             	cmovs  %eax,%ebx
18002c582:	48 8b 4f 10          	mov    0x10(%rdi),%rcx
18002c586:	48 85 c9             	test   %rcx,%rcx
18002c589:	74 0a                	je     0x18002c595
18002c58b:	e8 6c da 06 00       	call   0x180099ffc
18002c590:	48 83 67 10 00       	andq   $0x0,0x10(%rdi)
18002c595:	85 f6                	test   %esi,%esi
18002c597:	75 9f                	jne    0x18002c538
18002c599:	48 8b cd             	mov    %rbp,%rcx
18002c59c:	e8 5b da 06 00       	call   0x180099ffc
18002c5a1:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
18002c5a6:	8b c3                	mov    %ebx,%eax
18002c5a8:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
18002c5ad:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
18002c5b2:	48 83 c4 20          	add    $0x20,%rsp
18002c5b6:	5f                   	pop    %rdi
18002c5b7:	c3                   	ret
18002c5b8:	cc                   	int3
18002c5b9:	cc                   	int3
18002c5ba:	cc                   	int3
18002c5bb:	cc                   	int3
18002c5bc:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18002c5c1:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
18002c5c6:	55                   	push   %rbp
18002c5c7:	57                   	push   %rdi
18002c5c8:	41 54                	push   %r12
18002c5ca:	41 56                	push   %r14
18002c5cc:	41 57                	push   %r15
18002c5ce:	48 8d 6c 24 d1       	lea    -0x2f(%rsp),%rbp
18002c5d3:	48 81 ec e0 00 00 00 	sub    $0xe0,%rsp
18002c5da:	49 83 21 00          	andq   $0x0,(%r9)
18002c5de:	33 ff                	xor    %edi,%edi
18002c5e0:	83 4d 77 ff          	orl    $0xffffffff,0x77(%rbp)
18002c5e4:	4d 8b f9             	mov    %r9,%r15
18002c5e7:	48 83 65 8f 00       	andq   $0x0,-0x71(%rbp)
18002c5ec:	4c 8d 4d 77          	lea    0x77(%rbp),%r9
18002c5f0:	4d 8b f0             	mov    %r8,%r14
18002c5f3:	48 89 7d 87          	mov    %rdi,-0x79(%rbp)
18002c5f7:	4c 8b e2             	mov    %rdx,%r12
18002c5fa:	45 33 c0             	xor    %r8d,%r8d
18002c5fd:	8d 57 01             	lea    0x1(%rdi),%edx
18002c600:	40 32 f6             	xor    %sil,%sil
18002c603:	e8 08 ac ff ff       	call   0x180027210
18002c608:	8b d8                	mov    %eax,%ebx
18002c60a:	85 c0                	test   %eax,%eax
18002c60c:	78 67                	js     0x18002c675
18002c60e:	8b 4d 77             	mov    0x77(%rbp),%ecx
18002c611:	4c 8d 4c 24 30       	lea    0x30(%rsp),%r9
18002c616:	4c 8d 45 87          	lea    -0x79(%rbp),%r8
18002c61a:	49 8b d4             	mov    %r12,%rdx
18002c61d:	e8 ae aa 00 00       	call   0x1800370d0
18002c622:	48 8b 7d 87          	mov    -0x79(%rbp),%rdi
18002c626:	8b d8                	mov    %eax,%ebx
18002c628:	85 c0                	test   %eax,%eax
18002c62a:	78 49                	js     0x18002c675
18002c62c:	8b 54 24 30          	mov    0x30(%rsp),%edx
18002c630:	4c 8d 4d 8f          	lea    -0x71(%rbp),%r9
18002c634:	48 8b cf             	mov    %rdi,%rcx
18002c637:	4c 89 7c 24 20       	mov    %r15,0x20(%rsp)
18002c63c:	e8 23 44 08 00       	call   0x1800b0a64
18002c641:	48 8b 4d 8f          	mov    -0x71(%rbp),%rcx
18002c645:	8b d8                	mov    %eax,%ebx
18002c647:	85 c0                	test   %eax,%eax
18002c649:	78 1d                	js     0x18002c668
18002c64b:	4d 85 f6             	test   %r14,%r14
18002c64e:	74 1b                	je     0x18002c66b
18002c650:	49 8b 06             	mov    (%r14),%rax
18002c653:	48 3b 41 08          	cmp    0x8(%rcx),%rax
18002c657:	75 0a                	jne    0x18002c663
18002c659:	49 8b 46 08          	mov    0x8(%r14),%rax
18002c65d:	48 3b 41 10          	cmp    0x10(%rcx),%rax
18002c661:	74 08                	je     0x18002c66b
18002c663:	bb 0f 00 00 c0       	mov    $0xc000000f,%ebx
18002c668:	40 b6 01             	mov    $0x1,%sil
18002c66b:	48 85 c9             	test   %rcx,%rcx
18002c66e:	74 05                	je     0x18002c675
18002c670:	e8 b3 26 08 00       	call   0x1800aed28
18002c675:	8b 4d 77             	mov    0x77(%rbp),%ecx
18002c678:	83 f9 ff             	cmp    $0xffffffff,%ecx
18002c67b:	74 05                	je     0x18002c682
18002c67d:	e8 36 a3 ff ff       	call   0x1800269b8
18002c682:	48 85 ff             	test   %rdi,%rdi
18002c685:	74 08                	je     0x18002c68f
18002c687:	48 8b cf             	mov    %rdi,%rcx
18002c68a:	e8 6d d9 06 00       	call   0x180099ffc
18002c68f:	40 84 f6             	test   %sil,%sil
18002c692:	74 5e                	je     0x18002c6f2
18002c694:	48 83 3d ac 88 17 00 	cmpq   $0x0,0x1788ac(%rip)        # 0x1801a4f48
18002c69b:	00
18002c69c:	74 54                	je     0x18002c6f2
18002c69e:	33 d2                	xor    %edx,%edx
18002c6a0:	48 8d 4d 9f          	lea    -0x61(%rbp),%rcx
18002c6a4:	41 b8 90 00 00 00    	mov    $0x90,%r8d
18002c6aa:	e8 d1 95 10 00       	call   0x180135c80
18002c6af:	83 64 24 20 00       	andl   $0x0,0x20(%rsp)
18002c6b4:	45 33 c0             	xor    %r8d,%r8d
18002c6b7:	4d 8b ce             	mov    %r14,%r9
18002c6ba:	8b d3                	mov    %ebx,%edx
18002c6bc:	41 8d 48 01          	lea    0x1(%r8),%ecx
18002c6c0:	e8 cf c4 ff ff       	call   0x180028b94
18002c6c5:	48 8b 55 7f          	mov    0x7f(%rbp),%rdx
18002c6c9:	48 89 55 a7          	mov    %rdx,-0x59(%rbp)
18002c6cd:	4c 89 65 0f          	mov    %r12,0xf(%rbp)
18002c6d1:	8b 02                	mov    (%rdx),%eax
18002c6d3:	f7 d8                	neg    %eax
18002c6d5:	48 8b 05 6c 88 17 00 	mov    0x17886c(%rip),%rax        # 0x1801a4f48
18002c6dc:	1b c9                	sbb    %ecx,%ecx
18002c6de:	83 e1 02             	and    $0x2,%ecx
18002c6e1:	83 c1 09             	add    $0x9,%ecx
18002c6e4:	89 4d 9f             	mov    %ecx,-0x61(%rbp)
18002c6e7:	48 8d 4d 9f          	lea    -0x61(%rbp),%rcx
18002c6eb:	ff d0                	call   *%rax
18002c6ed:	0f 1f 00             	nopl   (%rax)
18002c6f0:	8b d8                	mov    %eax,%ebx
18002c6f2:	4c 8d 9c 24 e0 00 00 	lea    0xe0(%rsp),%r11
18002c6f9:	00
18002c6fa:	8b c3                	mov    %ebx,%eax
18002c6fc:	49 8b 5b 30          	mov    0x30(%r11),%rbx
18002c700:	49 8b 73 38          	mov    0x38(%r11),%rsi
18002c704:	49 8b e3             	mov    %r11,%rsp
18002c707:	41 5f                	pop    %r15
18002c709:	41 5e                	pop    %r14
18002c70b:	41 5c                	pop    %r12
18002c70d:	5f                   	pop    %rdi
18002c70e:	5d                   	pop    %rbp
18002c70f:	c3                   	ret
18002c710:	cc                   	int3
18002c711:	cc                   	int3
18002c712:	cc                   	int3
18002c713:	cc                   	int3
18002c714:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18002c719:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
18002c71e:	57                   	push   %rdi
18002c71f:	48 83 ec 30          	sub    $0x30,%rsp
18002c723:	49 8b d8             	mov    %r8,%rbx
18002c726:	45 33 c9             	xor    %r9d,%r9d
18002c729:	45 33 c0             	xor    %r8d,%r8d
18002c72c:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
18002c731:	48 8b fa             	mov    %rdx,%rdi
18002c734:	48 8b f1             	mov    %rcx,%rsi
18002c737:	e8 88 00 00 00       	call   0x18002c7c4
18002c73c:	85 c0                	test   %eax,%eax
18002c73e:	79 73                	jns    0x18002c7b3
18002c740:	45 33 c9             	xor    %r9d,%r9d
18002c743:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
18002c748:	48 8b d7             	mov    %rdi,%rdx
18002c74b:	48 8b ce             	mov    %rsi,%rcx
18002c74e:	45 8d 41 06          	lea    0x6(%r9),%r8d
18002c752:	e8 6d 00 00 00       	call   0x18002c7c4
18002c757:	85 c0                	test   %eax,%eax
18002c759:	79 58                	jns    0x18002c7b3
18002c75b:	41 b9 02 00 00 00    	mov    $0x2,%r9d
18002c761:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
18002c766:	45 33 c0             	xor    %r8d,%r8d
18002c769:	48 8b d7             	mov    %rdi,%rdx
18002c76c:	48 8b ce             	mov    %rsi,%rcx
18002c76f:	e8 50 00 00 00       	call   0x18002c7c4
18002c774:	85 c0                	test   %eax,%eax
18002c776:	79 3b                	jns    0x18002c7b3
18002c778:	41 b9 01 00 00 00    	mov    $0x1,%r9d
18002c77e:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
18002c783:	45 33 c0             	xor    %r8d,%r8d
18002c786:	48 8b d7             	mov    %rdi,%rdx
18002c789:	48 8b ce             	mov    %rsi,%rcx
18002c78c:	e8 33 00 00 00       	call   0x18002c7c4
18002c791:	85 c0                	test   %eax,%eax
18002c793:	79 1e                	jns    0x18002c7b3
18002c795:	48 8b 0d 1c 3d 14 00 	mov    0x143d1c(%rip),%rcx        # 0x1801704b8
18002c79c:	48 8d 15 25 f2 11 00 	lea    0x11f225(%rip),%rdx        # 0x18014b9c8
18002c7a3:	4c 8b cf             	mov    %rdi,%r9
18002c7a6:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
18002c7ab:	45 33 c0             	xor    %r8d,%r8d
18002c7ae:	e8 09 fe ff ff       	call   0x18002c5bc
18002c7b3:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
18002c7b8:	48 8b 74 24 48       	mov    0x48(%rsp),%rsi
18002c7bd:	48 83 c4 30          	add    $0x30,%rsp
18002c7c1:	5f                   	pop    %rdi
18002c7c2:	c3                   	ret
18002c7c3:	cc                   	int3
18002c7c4:	48 8b c4             	mov    %rsp,%rax
18002c7c7:	48 89 58 08          	mov    %rbx,0x8(%rax)
18002c7cb:	48 89 70 10          	mov    %rsi,0x10(%rax)
18002c7cf:	48 89 78 18          	mov    %rdi,0x18(%rax)
18002c7d3:	55                   	push   %rbp
18002c7d4:	41 54                	push   %r12
18002c7d6:	41 55                	push   %r13
18002c7d8:	41 56                	push   %r14
18002c7da:	41 57                	push   %r15
18002c7dc:	48 8d 68 a9          	lea    -0x57(%rax),%rbp
18002c7e0:	48 81 ec 00 01 00 00 	sub    $0x100,%rsp
18002c7e7:	48 83 64 24 38 00    	andq   $0x0,0x38(%rsp)
18002c7ed:	4c 8d 61 08          	lea    0x8(%rcx),%r12
18002c7f1:	83 64 24 44 00       	andl   $0x0,0x44(%rsp)
18002c7f6:	b8 5c 00 00 00       	mov    $0x5c,%eax