18003631e:	c7 02 03 00 00 00    	movl   $0x3,(%rdx)
180036324:	48 8b da             	mov    %rdx,%rbx
180036327:	48 8b 89 80 00 00 00 	mov    0x80(%rcx),%rcx
18003632e:	8b 41 28             	mov    0x28(%rcx),%eax
180036331:	89 42 0c             	mov    %eax,0xc(%rdx)
180036334:	8b 41 10             	mov    0x10(%rcx),%eax
180036337:	89 42 08             	mov    %eax,0x8(%rdx)
18003633a:	48 8b 01             	mov    (%rcx),%rax
18003633d:	48 83 c1 08          	add    $0x8,%rcx
180036341:	48 8b 40 20          	mov    0x20(%rax),%rax
180036345:	ff d0                	call   *%rax
180036347:	0f 1f 00             	nopl   (%rax)
18003634a:	88 43 10             	mov    %al,0x10(%rbx)
18003634d:	33 c0                	xor    %eax,%eax
18003634f:	48 83 c4 20          	add    $0x20,%rsp
180036353:	5b                   	pop    %rbx
180036354:	c3                   	ret
180036355:	cc                   	int3
180036356:	cc                   	int3
180036357:	cc                   	int3
180036358:	48 83 ec 28          	sub    $0x28,%rsp
18003635c:	48 8b 89 80 00 00 00 	mov    0x80(%rcx),%rcx
180036363:	48 8b c2             	mov    %rdx,%rax
180036366:	8b 52 08             	mov    0x8(%rdx),%edx
180036369:	81 fa 80 25 00 00    	cmp    $0x2580,%edx
18003636f:	74 27                	je     0x180036398
180036371:	81 fa 00 4b 00 00    	cmp    $0x4b00,%edx
180036377:	74 1f                	je     0x180036398
180036379:	81 fa 00 96 00 00    	cmp    $0x9600,%edx
18003637f:	74 17                	je     0x180036398
180036381:	81 fa 00 e1 00 00    	cmp    $0xe100,%edx
180036387:	74 0f                	je     0x180036398
180036389:	81 fa 00 c2 01 00    	cmp    $0x1c200,%edx
18003638f:	74 07                	je     0x180036398
180036391:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
180036396:	eb 28                	jmp    0x1800363c0
180036398:	44 8b 40 0c          	mov    0xc(%rax),%r8d
18003639c:	44 39 41 28          	cmp    %r8d,0x28(%rcx)
1800363a0:	74 07                	je     0x1800363a9
1800363a2:	44 89 41 28          	mov    %r8d,0x28(%rcx)
1800363a6:	8b 50 08             	mov    0x8(%rax),%edx
1800363a9:	39 51 10             	cmp    %edx,0x10(%rcx)
1800363ac:	74 10                	je     0x1800363be
1800363ae:	48 8b 01             	mov    (%rcx),%rax
1800363b1:	48 83 c1 08          	add    $0x8,%rcx
1800363b5:	48 8b 40 08          	mov    0x8(%rax),%rax
1800363b9:	ff d0                	call   *%rax
1800363bb:	0f 1f 00             	nopl   (%rax)
1800363be:	33 c0                	xor    %eax,%eax
1800363c0:	48 83 c4 28          	add    $0x28,%rsp
1800363c4:	c3                   	ret
1800363c5:	cc                   	int3
1800363c6:	cc                   	int3
1800363c7:	cc                   	int3
1800363c8:	48 83 ec 38          	sub    $0x38,%rsp
1800363cc:	4c 8b 81 80 00 00 00 	mov    0x80(%rcx),%r8
1800363d3:	33 c0                	xor    %eax,%eax
1800363d5:	41 8a 48 32          	mov    0x32(%r8),%cl
1800363d9:	49 8d 50 08          	lea    0x8(%r8),%rdx
1800363dd:	45 8a 48 31          	mov    0x31(%r8),%r9b
1800363e1:	66 41 89 40 14       	mov    %ax,0x14(%r8)
1800363e6:	49 8b 00             	mov    (%r8),%rax
1800363e9:	41 c7 40 10 00 c2 01 	movl   $0x1c200,0x10(%r8)
1800363f0:	00
1800363f1:	45 8a 40 30          	mov    0x30(%r8),%r8b
1800363f5:	88 4c 24 20          	mov    %cl,0x20(%rsp)
1800363f9:	33 c9                	xor    %ecx,%ecx
1800363fb:	48 8b 00             	mov    (%rax),%rax
1800363fe:	ff d0                	call   *%rax
180036400:	0f 1f 00             	nopl   (%rax)
180036403:	f6 d8                	neg    %al
180036405:	1b c0                	sbb    %eax,%eax
180036407:	f7 d0                	not    %eax
180036409:	25 85 01 00 c0       	and    $0xc0000185,%eax
18003640e:	48 83 c4 38          	add    $0x38,%rsp
180036412:	c3                   	ret
180036413:	cc                   	int3
180036414:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180036419:	57                   	push   %rdi
18003641a:	48 83 ec 40          	sub    $0x40,%rsp
18003641e:	4c 8d 0d a7 61 13 00 	lea    0x1361a7(%rip),%r9        # 0x18016c5cc
180036425:	b9 32 00 00 00       	mov    $0x32,%ecx
18003642a:	4c 8d 05 8b 02 00 00 	lea    0x28b(%rip),%r8        # 0x1800366bc
180036431:	48 8d 15 58 03 00 00 	lea    0x358(%rip),%rdx        # 0x180036790
180036438:	e8 53 e8 05 00       	call   0x180094c90
18003643d:	83 cf ff             	or     $0xffffffff,%edi
180036440:	8b d8                	mov    %eax,%ebx
180036442:	85 c0                	test   %eax,%eax
180036444:	78 43                	js     0x180036489
180036446:	b8 80 00 00 00       	mov    $0x80,%eax
18003644b:	45 33 c0             	xor    %r8d,%r8d
18003644e:	89 44 24 28          	mov    %eax,0x28(%rsp)
180036452:	ba 0c 00 00 d0       	mov    $0xd000000c,%edx
180036457:	89 44 24 20          	mov    %eax,0x20(%rsp)
18003645b:	8d 48 81             	lea    -0x7f(%rax),%ecx
18003645e:	44 8b c9             	mov    %ecx,%r9d
180036461:	e8 9a 55 06 00       	call   0x18009ba00
180036466:	89 05 64 61 13 00    	mov    %eax,0x136164(%rip)        # 0x18016c5d0
18003646c:	3b c7                	cmp    %edi,%eax
18003646e:	75 07                	jne    0x180036477
180036470:	bb 01 00 00 c0       	mov    $0xc0000001,%ebx
180036475:	eb 18                	jmp    0x18003648f
180036477:	48 8d 0d 6e 02 00 00 	lea    0x26e(%rip),%rcx        # 0x1800366ec
18003647e:	e8 49 35 0e 00       	call   0x1801199cc
180036483:	8b d8                	mov    %eax,%ebx
180036485:	85 c0                	test   %eax,%eax
180036487:	79 2c                	jns    0x1800364b5
180036489:	8b 05 41 61 13 00    	mov    0x136141(%rip),%eax        # 0x18016c5d0
18003648f:	8b 0d 37 61 13 00    	mov    0x136137(%rip),%ecx        # 0x18016c5cc
180036495:	3b cf                	cmp    %edi,%ecx
180036497:	74 11                	je     0x1800364aa
180036499:	e8 8a e9 05 00       	call   0x180094e28
18003649e:	8b 05 2c 61 13 00    	mov    0x13612c(%rip),%eax        # 0x18016c5d0
1800364a4:	89 3d 22 61 13 00    	mov    %edi,0x136122(%rip)        # 0x18016c5cc
1800364aa:	3b c7                	cmp    %edi,%eax
1800364ac:	74 07                	je     0x1800364b5
1800364ae:	8b c8                	mov    %eax,%ecx
1800364b0:	e8 3f 56 06 00       	call   0x18009baf4
1800364b5:	8b c3                	mov    %ebx,%eax
1800364b7:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
1800364bc:	48 83 c4 40          	add    $0x40,%rsp
1800364c0:	5f                   	pop    %rdi
1800364c1:	c3                   	ret
1800364c2:	cc                   	int3
1800364c3:	cc                   	int3
1800364c4:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
1800364c9:	55                   	push   %rbp
1800364ca:	56                   	push   %rsi
1800364cb:	57                   	push   %rdi
1800364cc:	41 54                	push   %r12
1800364ce:	41 55                	push   %r13
1800364d0:	41 56                	push   %r14
1800364d2:	41 57                	push   %r15
1800364d4:	48 83 ec 30          	sub    $0x30,%rsp
1800364d8:	48 8b b1 80 00 00 00 	mov    0x80(%rcx),%rsi
1800364df:	48 8b e9             	mov    %rcx,%rbp
1800364e2:	33 ff                	xor    %edi,%edi
1800364e4:	4d 8b e0             	mov    %r8,%r12
1800364e7:	4c 8b fa             	mov    %rdx,%r15
1800364ea:	48 8b 46 40          	mov    0x40(%rsi),%rax
1800364ee:	44 8b 6e 48          	mov    0x48(%rsi),%r13d
1800364f2:	8d 5f 10             	lea    0x10(%rdi),%ebx
1800364f5:	8b cb                	mov    %ebx,%ecx
1800364f7:	48 89 84 24 88 00 00 	mov    %rax,0x88(%rsp)
1800364fe:	00
1800364ff:	e8 4c 39 06 00       	call   0x180099e50
180036504:	4c 8b f0             	mov    %rax,%r14
180036507:	48 85 c0             	test   %rax,%rax
18003650a:	75 38                	jne    0x180036544
18003650c:	bb 17 00 00 c0       	mov    $0xc0000017,%ebx
180036511:	48 8b d7             	mov    %rdi,%rdx
180036514:	49 8b ce             	mov    %r14,%rcx
180036517:	e8 20 02 00 00       	call   0x18003673c
18003651c:	48 8b 84 24 88 00 00 	mov    0x88(%rsp),%rax
180036523:	00
180036524:	48 89 46 40          	mov    %rax,0x40(%rsi)
180036528:	8b c3                	mov    %ebx,%eax
18003652a:	48 8b 5c 24 78       	mov    0x78(%rsp),%rbx
18003652f:	44 89 6e 48          	mov    %r13d,0x48(%rsi)
180036533:	48 83 c4 30          	add    $0x30,%rsp
180036537:	41 5f                	pop    %r15
180036539:	41 5e                	pop    %r14
18003653b:	41 5d                	pop    %r13
18003653d:	41 5c                	pop    %r12
18003653f:	5f                   	pop    %rdi
180036540:	5e                   	pop    %rsi
180036541:	5d                   	pop    %rbp
180036542:	c3                   	ret
180036543:	cc                   	int3
180036544:	48 8b cb             	mov    %rbx,%rcx
180036547:	e8 04 39 06 00       	call   0x180099e50
18003654c:	48 8b f8             	mov    %rax,%rdi
18003654f:	48 85 c0             	test   %rax,%rax
180036552:	74 b8                	je     0x18003650c
180036554:	8b 0d 76 60 13 00    	mov    0x136076(%rip),%ecx        # 0x18016c5d0
18003655a:	4c 8d 44 24 70       	lea    0x70(%rsp),%r8
18003655f:	48 83 20 00          	andq   $0x0,(%rax)
180036563:	ba 08 00 00 00       	mov    $0x8,%edx
180036568:	48 83 64 24 70 00    	andq   $0x0,0x70(%rsp)
18003656e:	c7 40 08 00 80 00 00 	movl   $0x8000,0x8(%rax)
180036575:	e8 7a 53 06 00       	call   0x18009b8f4
18003657a:	8b d8                	mov    %eax,%ebx
18003657c:	85 c0                	test   %eax,%eax
18003657e:	78 91                	js     0x180036511
180036580:	48 8b 44 24 70       	mov    0x70(%rsp),%rax
180036585:	33 d2                	xor    %edx,%edx
180036587:	48 89 07             	mov    %rax,(%rdi)
18003658a:	41 b8 00 80 00 00    	mov    $0x8000,%r8d
180036590:	8b 4e 30             	mov    0x30(%rsi),%ecx
180036593:	4c 8d 49 ff          	lea    -0x1(%rcx),%r9
180036597:	49 f7 d1             	not    %r9
18003659a:	4d 23 cf             	and    %r15,%r9
18003659d:	49 8b c1             	mov    %r9,%rax
1800365a0:	48 f7 f1             	div    %rcx
1800365a3:	48 8b cd             	mov    %rbp,%rcx
1800365a6:	48 89 46 40          	mov    %rax,0x40(%rsi)
1800365aa:	41 8b c7             	mov    %r15d,%eax
1800365ad:	41 2b c1             	sub    %r9d,%eax
1800365b0:	45 33 c9             	xor    %r9d,%r9d
1800365b3:	89 46 48             	mov    %eax,0x48(%rsi)
1800365b6:	48 8b 17             	mov    (%rdi),%rdx
1800365b9:	e8 16 e9 ff ff       	call   0x180034ed4
1800365be:	8b d8                	mov    %eax,%ebx
1800365c0:	85 c0                	test   %eax,%eax
1800365c2:	0f 88 49 ff ff ff    	js     0x180036511
1800365c8:	4d 89 3e             	mov    %r15,(%r14)
1800365cb:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
1800365d0:	49 89 6e 08          	mov    %rbp,0x8(%r14)
1800365d4:	41 b9 10 00 00 00    	mov    $0x10,%r9d
1800365da:	8b 0d ec 5f 13 00    	mov    0x135fec(%rip),%ecx        # 0x18016c5cc
1800365e0:	4c 8b c7             	mov    %rdi,%r8
1800365e3:	83 64 24 24 00       	andl   $0x0,0x24(%rsp)
1800365e8:	c7 44 24 20 10 00 00 	movl   $0x10,0x20(%rsp)
1800365ef:	00
1800365f0:	4c 89 74 24 28       	mov    %r14,0x28(%rsp)
1800365f5:	e8 de e9 05 00       	call   0x180094fd8
1800365fa:	8b d8                	mov    %eax,%ebx
1800365fc:	85 c0                	test   %eax,%eax
1800365fe:	0f 88 0d ff ff ff    	js     0x180036511
180036604:	48 8b 07             	mov    (%rdi),%rax
180036607:	49 89 04 24          	mov    %rax,(%r12)
18003660b:	e9 0c ff ff ff       	jmp    0x18003651c
180036610:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180036615:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
18003661a:	56                   	push   %rsi
18003661b:	57                   	push   %rdi
18003661c:	41 56                	push   %r14
18003661e:	48 83 ec 40          	sub    $0x40,%rsp
180036622:	48 8b f2             	mov    %rdx,%rsi
180036625:	41 8b e8             	mov    %r8d,%ebp
180036628:	48 81 e6 00 80 ff ff 	and    $0xffffffffffff8000,%rsi
18003662f:	4c 8b f1             	mov    %rcx,%r14
180036632:	48 03 ea             	add    %rdx,%rbp
180036635:	eb 6a                	jmp    0x1800366a1
180036637:	8b 0d 8f 5f 13 00    	mov    0x135f8f(%rip),%ecx        # 0x18016c5cc
18003663d:	48 8d 44 24 30       	lea    0x30(%rsp),%rax
180036642:	83 64 24 24 00       	andl   $0x0,0x24(%rsp)
180036647:	4c 8d 44 24 68       	lea    0x68(%rsp),%r8
18003664c:	48 89 74 24 30       	mov    %rsi,0x30(%rsp)
180036651:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
180036656:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
18003665b:	48 81 c6 00 80 00 00 	add    $0x8000,%rsi
180036662:	4c 89 74 24 38       	mov    %r14,0x38(%rsp)
180036667:	c7 44 24 20 10 00 00 	movl   $0x10,0x20(%rsp)
18003666e:	00
18003666f:	e8 a0 e8 05 00       	call   0x180094f14
180036674:	85 c0                	test   %eax,%eax
180036676:	78 29                	js     0x1800366a1
180036678:	48 8b 44 24 68       	mov    0x68(%rsp),%rax
18003667d:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
180036682:	8b 0d 44 5f 13 00    	mov    0x135f44(%rip),%ecx        # 0x18016c5cc
180036688:	48 8b 7c 24 28       	mov    0x28(%rsp),%rdi
18003668d:	48 8b 58 08          	mov    0x8(%rax),%rbx
180036691:	e8 3a ea 05 00       	call   0x1800950d0
180036696:	48 8b d3             	mov    %rbx,%rdx
180036699:	48 8b cf             	mov    %rdi,%rcx
18003669c:	e8 9b 00 00 00       	call   0x18003673c
1800366a1:	48 3b f5             	cmp    %rbp,%rsi
1800366a4:	72 91                	jb     0x180036637
1800366a6:	48 8b 5c 24 60       	mov    0x60(%rsp),%rbx
1800366ab:	48 8b 6c 24 70       	mov    0x70(%rsp),%rbp
1800366b0:	48 83 c4 40          	add    $0x40,%rsp
1800366b4:	41 5e                	pop    %r14
1800366b6:	5f                   	pop    %rdi
1800366b7:	5e                   	pop    %rsi
1800366b8:	c3                   	ret
1800366b9:	cc                   	int3
1800366ba:	cc                   	int3
1800366bb:	cc                   	int3
1800366bc:	8b 02                	mov    (%rdx),%eax
1800366be:	39 01                	cmp    %eax,(%rcx)
1800366c0:	75 26                	jne    0x1800366e8
1800366c2:	8b 42 04             	mov    0x4(%rdx),%eax
1800366c5:	39 41 04             	cmp    %eax,0x4(%rcx)
1800366c8:	75 1e                	jne    0x1800366e8
1800366ca:	4c 8b 41 08          	mov    0x8(%rcx),%r8
1800366ce:	48 8b 4a 08          	mov    0x8(%rdx),%rcx
1800366d2:	48 8b 01             	mov    (%rcx),%rax
1800366d5:	49 39 00             	cmp    %rax,(%r8)
1800366d8:	75 0e                	jne    0x1800366e8
1800366da:	48 8b 41 08          	mov    0x8(%rcx),%rax
1800366de:	49 39 40 08          	cmp    %rax,0x8(%r8)
1800366e2:	75 04                	jne    0x1800366e8
1800366e4:	b0 01                	mov    $0x1,%al
1800366e6:	c3                   	ret
1800366e7:	cc                   	int3
1800366e8:	32 c0                	xor    %al,%al
1800366ea:	c3                   	ret
1800366eb:	cc                   	int3
1800366ec:	48 83 ec 48          	sub    $0x48,%rsp
1800366f0:	eb 1f                	jmp    0x180036711
1800366f2:	8b 0d d4 5e 13 00    	mov    0x135ed4(%rip),%ecx        # 0x18016c5cc
1800366f8:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
1800366fd:	e8 ce e9 05 00       	call   0x1800950d0
180036702:	48 8b 54 24 38       	mov    0x38(%rsp),%rdx
180036707:	48 8b 4c 24 28       	mov    0x28(%rsp),%rcx
18003670c:	e8 2b 00 00 00       	call   0x18003673c
180036711:	8b 0d b5 5e 13 00    	mov    0x135eb5(%rip),%ecx        # 0x18016c5cc
180036717:	4c 8d 4c 24 30       	lea    0x30(%rsp),%r9
18003671c:	4c 8d 44 24 20       	lea    0x20(%rsp),%r8
180036721:	e8 aa ea 05 00       	call   0x1800951d0
180036726:	85 c0                	test   %eax,%eax
180036728:	79 c8                	jns    0x1800366f2
18003672a:	8b 0d a0 5e 13 00    	mov    0x135ea0(%rip),%ecx        # 0x18016c5d0
180036730:	48 83 c4 48          	add    $0x48,%rsp
180036734:	e9 bb 53 06 00       	jmp    0x18009baf4
180036739:	cc                   	int3
18003673a:	cc                   	int3
18003673b:	cc                   	int3
18003673c:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180036741:	57                   	push   %rdi
180036742:	48 83 ec 20          	sub    $0x20,%rsp
180036746:	48 8b da             	mov    %rdx,%rbx
180036749:	48 8b f9             	mov    %rcx,%rdi
18003674c:	48 85 d2             	test   %rdx,%rdx
18003674f:	74 23                	je     0x180036774
180036751:	48 8b 12             	mov    (%rdx),%rdx
180036754:	48 85 d2             	test   %rdx,%rdx
180036757:	74 13                	je     0x18003676c
180036759:	44 8b 43 08          	mov    0x8(%rbx),%r8d
18003675d:	8b 0d 6d 5e 13 00    	mov    0x135e6d(%rip),%ecx        # 0x18016c5d0
180036763:	41 c1 e8 0c          	shr    $0xc,%r8d
180036767:	e8 f8 53 06 00       	call   0x18009bb64
18003676c:	48 8b cb             	mov    %rbx,%rcx
18003676f:	e8 88 38 06 00       	call   0x180099ffc
180036774:	48 85 ff             	test   %rdi,%rdi
180036777:	74 08                	je     0x180036781
180036779:	48 8b cf             	mov    %rdi,%rcx
18003677c:	e8 7b 38 06 00       	call   0x180099ffc
180036781:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180036786:	48 83 c4 20          	add    $0x20,%rsp
18003678a:	5f                   	pop    %rdi
18003678b:	c3                   	ret
18003678c:	cc                   	int3
18003678d:	cc                   	int3
18003678e:	cc                   	int3
18003678f:	cc                   	int3
180036790:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180036795:	4c 8b 59 08          	mov    0x8(%rcx),%r11
180036799:	45 33 c0             	xor    %r8d,%r8d
18003679c:	8b da                	mov    %edx,%ebx
18003679e:	49 8b cb             	mov    %r11,%rcx
1800367a1:	45 8d 48 08          	lea    0x8(%r8),%r9d
1800367a5:	45 8b d1             	mov    %r9d,%r10d
1800367a8:	0f b6 01             	movzbl (%rcx),%eax
1800367ab:	48 ff c1             	inc    %rcx
1800367ae:	44 03 c0             	add    %eax,%r8d
1800367b1:	49 83 ea 01          	sub    $0x1,%r10
1800367b5:	75 f1                	jne    0x1800367a8
1800367b7:	49 8d 43 08          	lea    0x8(%r11),%rax