180014312:	48 8b f0             	mov    %rax,%rsi
180014315:	48 85 c0             	test   %rax,%rax
180014318:	75 0a                	jne    0x180014324
18001431a:	bb 17 00 00 c0       	mov    $0xc0000017,%ebx
18001431f:	e9 b5 00 00 00       	jmp    0x1800143d9
180014324:	44 8b 45 b7          	mov    -0x49(%rbp),%r8d
180014328:	4c 8d 4d 97          	lea    -0x69(%rbp),%r9
18001432c:	48 8b d6             	mov    %rsi,%rdx
18001432f:	44 89 64 24 20       	mov    %r12d,0x20(%rsp)
180014334:	8b cf                	mov    %edi,%ecx
180014336:	e8 39 45 05 00       	call   0x180068874
18001433b:	8b d8                	mov    %eax,%ebx
18001433d:	85 c0                	test   %eax,%eax
18001433f:	0f 88 94 00 00 00    	js     0x1800143d9
180014345:	8b 55 b7             	mov    -0x49(%rbp),%edx
180014348:	4c 8d 4d d7          	lea    -0x29(%rbp),%r9
18001434c:	4c 8d 45 9f          	lea    -0x61(%rbp),%r8
180014350:	48 8b ce             	mov    %rsi,%rcx
180014353:	e8 40 f4 07 00       	call   0x180093798
180014358:	4c 8b 75 9f          	mov    -0x61(%rbp),%r14
18001435c:	8b d8                	mov    %eax,%ebx
18001435e:	85 c0                	test   %eax,%eax
180014360:	78 77                	js     0x1800143d9
180014362:	41 8b 4e 0c          	mov    0xc(%r14),%ecx
180014366:	45 8b 66 08          	mov    0x8(%r14),%r12d
18001436a:	83 c1 18             	add    $0x18,%ecx
18001436d:	0f b6 5d db          	movzbl -0x25(%rbp),%ebx
180014371:	44 03 e1             	add    %ecx,%r12d
180014374:	44 8d 6b 09          	lea    0x9(%rbx),%r13d
180014378:	45 03 ec             	add    %r12d,%r13d
18001437b:	41 8b cd             	mov    %r13d,%ecx
18001437e:	e8 cd 5a 08 00       	call   0x180099e50
180014383:	4c 8b f8             	mov    %rax,%r15
180014386:	48 85 c0             	test   %rax,%rax
180014389:	74 8f                	je     0x18001431a
18001438b:	45 8b c5             	mov    %r13d,%r8d
18001438e:	33 d2                	xor    %edx,%edx
180014390:	48 8b c8             	mov    %rax,%rcx
180014393:	e8 e8 18 12 00       	call   0x180135c80
180014398:	49 8d 4f 09          	lea    0x9(%r15),%rcx
18001439c:	45 89 2f             	mov    %r13d,(%r15)
18001439f:	44 8b c3             	mov    %ebx,%r8d
1800143a2:	45 89 67 04          	mov    %r12d,0x4(%r15)
1800143a6:	48 8d 55 dc          	lea    -0x24(%rbp),%rdx
1800143aa:	41 88 5f 08          	mov    %bl,0x8(%r15)
1800143ae:	e8 0d 16 12 00       	call   0x1801359c0
1800143b3:	48 8d 4b 09          	lea    0x9(%rbx),%rcx
1800143b7:	45 8b c4             	mov    %r12d,%r8d
1800143ba:	49 03 cf             	add    %r15,%rcx
1800143bd:	49 8b d6             	mov    %r14,%rdx
1800143c0:	e8 fb 15 12 00       	call   0x1801359c0
1800143c5:	48 8b 45 77          	mov    0x77(%rbp),%rax
1800143c9:	45 33 e4             	xor    %r12d,%r12d
1800143cc:	41 8b dc             	mov    %r12d,%ebx
1800143cf:	4c 89 38             	mov    %r15,(%rax)
1800143d2:	eb 05                	jmp    0x1800143d9
1800143d4:	bb 98 00 00 c0       	mov    $0xc0000098,%ebx
1800143d9:	48 8d 4d a7          	lea    -0x59(%rbp),%rcx
1800143dd:	e8 42 9a 06 00       	call   0x18007de24
1800143e2:	4d 85 f6             	test   %r14,%r14
1800143e5:	74 08                	je     0x1800143ef
1800143e7:	49 8b ce             	mov    %r14,%rcx
1800143ea:	e8 0d 5c 08 00       	call   0x180099ffc
1800143ef:	48 85 f6             	test   %rsi,%rsi
1800143f2:	74 08                	je     0x1800143fc
1800143f4:	48 8b ce             	mov    %rsi,%rcx
1800143f7:	e8 00 5c 08 00       	call   0x180099ffc
1800143fc:	83 ff ff             	cmp    $0xffffffff,%edi
1800143ff:	74 07                	je     0x180014408
180014401:	8b cf                	mov    %edi,%ecx
180014403:	e8 f8 40 05 00       	call   0x180068500
180014408:	8b c3                	mov    %ebx,%eax
18001440a:	48 8b 9c 24 00 01 00 	mov    0x100(%rsp),%rbx
180014411:	00
180014412:	48 81 c4 c0 00 00 00 	add    $0xc0,%rsp
180014419:	41 5f                	pop    %r15
18001441b:	41 5e                	pop    %r14
18001441d:	41 5d                	pop    %r13
18001441f:	41 5c                	pop    %r12
180014421:	5f                   	pop    %rdi
180014422:	5e                   	pop    %rsi
180014423:	5d                   	pop    %rbp
180014424:	c3                   	ret
180014425:	cc                   	int3
180014426:	cc                   	int3
180014427:	cc                   	int3
180014428:	48 89 4c 24 08       	mov    %rcx,0x8(%rsp)
18001442d:	55                   	push   %rbp
18001442e:	53                   	push   %rbx
18001442f:	56                   	push   %rsi
180014430:	57                   	push   %rdi
180014431:	41 54                	push   %r12
180014433:	41 55                	push   %r13
180014435:	41 56                	push   %r14
180014437:	41 57                	push   %r15
180014439:	48 8d 6c 24 e1       	lea    -0x1f(%rsp),%rbp
18001443e:	48 81 ec d8 00 00 00 	sub    $0xd8,%rsp
180014445:	48 8b d9             	mov    %rcx,%rbx
180014448:	c7 44 24 20 3d b7 60 	movl   $0x3960b73d,0x20(%rsp)
18001444f:	39
180014450:	48 8b 0d 49 0d 19 00 	mov    0x190d49(%rip),%rcx        # 0x1801a51a0
180014457:	48 8d 15 ca 30 13 00 	lea    0x1330ca(%rip),%rdx        # 0x180147528
18001445e:	c7 44 24 24 39 2a 16 	movl   $0x40162a39,0x24(%rsp)
180014465:	40
180014466:	c7 44 24 28 aa a7 75 	movl   $0xd875a7aa,0x28(%rsp)
18001446d:	d8
18001446e:	c7 44 24 2c 99 83 c4 	movl   $0x36c48399,0x2c(%rsp)
180014475:	36
180014476:	c7 45 8f 93 29 83 6f 	movl   $0x6f832993,-0x71(%rbp)
18001447d:	c7 45 93 85 51 00 40 	movl   $0x40005185,-0x6d(%rbp)
180014484:	c7 45 97 98 5e 16 46 	movl   $0x46165e98,-0x69(%rbp)
18001448b:	c7 45 9b fd 6e ba 78 	movl   $0x78ba6efd,-0x65(%rbp)
180014492:	c7 45 d7 52 53 44 54 	movl   $0x54445352,-0x29(%rbp)
180014499:	c7 45 db 58 53 44 54 	movl   $0x54445358,-0x25(%rbp)
1800144a0:	c7 45 df 46 41 43 50 	movl   $0x50434146,-0x21(%rbp)
1800144a7:	c7 45 e3 53 52 41 54 	movl   $0x54415253,-0x1d(%rbp)
1800144ae:	c7 45 e7 44 4d 41 52 	movl   $0x52414d44,-0x19(%rbp)
1800144b5:	c7 45 eb 49 56 52 53 	movl   $0x53525649,-0x15(%rbp)
1800144bc:	c7 45 ef 52 41 53 46 	movl   $0x46534152,-0x11(%rbp)
1800144c3:	c7 45 f3 48 50 45 54 	movl   $0x54455048,-0xd(%rbp)
1800144ca:	c7 45 f7 41 50 49 43 	movl   $0x43495041,-0x9(%rbp)
1800144d1:	c7 45 fb 43 53 52 54 	movl   $0x54525343,-0x5(%rbp)
1800144d8:	c7 45 ff 57 41 45 54 	movl   $0x54454157,-0x1(%rbp)
1800144df:	c7 45 03 44 42 47 50 	movl   $0x50474244,0x3(%rbp)
1800144e6:	c7 45 07 44 42 47 32 	movl   $0x32474244,0x7(%rbp)
1800144ed:	c7 45 0b 53 50 43 52 	movl   $0x52435053,0xb(%rbp)
1800144f4:	e8 2f bd ff ff       	call   0x180010228
1800144f9:	84 c0                	test   %al,%al
1800144fb:	75 07                	jne    0x180014504
1800144fd:	33 c0                	xor    %eax,%eax
1800144ff:	e9 a1 04 00 00       	jmp    0x1800149a5
180014504:	8b 8b 08 01 00 00    	mov    0x108(%rbx),%ecx
18001450a:	4c 8d 45 d7          	lea    -0x29(%rbp),%r8
18001450e:	48 8b b3 f0 00 00 00 	mov    0xf0(%rbx),%rsi
180014515:	48 8d 55 77          	lea    0x77(%rbp),%rdx
180014519:	33 c0                	xor    %eax,%eax
18001451b:	48 89 75 af          	mov    %rsi,-0x51(%rbp)
18001451f:	21 44 24 30          	and    %eax,0x30(%rsp)
180014523:	80 e1 01             	and    $0x1,%cl
180014526:	33 ff                	xor    %edi,%edi
180014528:	89 44 24 34          	mov    %eax,0x34(%rsp)
18001452c:	45 33 e4             	xor    %r12d,%r12d
18001452f:	89 44 24 38          	mov    %eax,0x38(%rsp)
180014533:	f6 d9                	neg    %cl
180014535:	44 89 65 6f          	mov    %r12d,0x6f(%rbp)
180014539:	48 8d 83 10 01 00 00 	lea    0x110(%rbx),%rax
180014540:	4d 1b ed             	sbb    %r13,%r13
180014543:	44 8d 4f 0e          	lea    0xe(%rdi),%r9d
180014547:	48 21 7d a7          	and    %rdi,-0x59(%rbp)
18001454b:	48 8d 4d a7          	lea    -0x59(%rbp),%rcx
18001454f:	33 db                	xor    %ebx,%ebx
180014551:	4c 23 e8             	and    %rax,%r13
180014554:	48 89 5d 87          	mov    %rbx,-0x79(%rbp)
180014558:	e8 3b ed 07 00       	call   0x180093298
18001455d:	44 8b f0             	mov    %eax,%r14d
180014560:	85 c0                	test   %eax,%eax
180014562:	0f 88 1c 04 00 00    	js     0x180014984
180014568:	8b 86 48 01 00 00    	mov    0x148(%rsi),%eax
18001456e:	8b 5d 77             	mov    0x77(%rbp),%ebx
180014571:	44 8d 78 10          	lea    0x10(%rax),%r15d
180014575:	46 8d 3c 78          	lea    (%rax,%r15,2),%r15d
180014579:	48 8b 46 38          	mov    0x38(%rsi),%rax
18001457d:	46 8d 3c fb          	lea    (%rbx,%r15,8),%r15d
180014581:	48 85 c0             	test   %rax,%rax
180014584:	74 07                	je     0x18001458d
180014586:	0f b6 40 06          	movzbl 0x6(%rax),%eax
18001458a:	44 03 f8             	add    %eax,%r15d
18001458d:	48 8d 55 7f          	lea    0x7f(%rbp),%rdx
180014591:	48 8d 4d 87          	lea    -0x79(%rbp),%rcx
180014595:	e8 52 15 01 00       	call   0x180025aec
18001459a:	85 c0                	test   %eax,%eax
18001459c:	0f 88 03 04 00 00    	js     0x1800149a5
1800145a2:	8b 45 7f             	mov    0x7f(%rbp),%eax
1800145a5:	8d 04 40             	lea    (%rax,%rax,2),%eax
1800145a8:	c1 e0 03             	shl    $0x3,%eax
1800145ab:	44 03 f8             	add    %eax,%r15d
1800145ae:	89 45 9f             	mov    %eax,-0x61(%rbp)
1800145b1:	4d 85 ed             	test   %r13,%r13
1800145b4:	74 04                	je     0x1800145ba
1800145b6:	45 03 7d 30          	add    0x30(%r13),%r15d
1800145ba:	48 8b 05 67 0b 19 00 	mov    0x190b67(%rip),%rax        # 0x1801a5128
1800145c1:	48 89 45 0f          	mov    %rax,0xf(%rbp)
1800145c5:	48 85 c0             	test   %rax,%rax
1800145c8:	74 14                	je     0x1800145de
1800145ca:	8b 58 08             	mov    0x8(%rax),%ebx
1800145cd:	0f af 58 04          	imul   0x4(%rax),%ebx
1800145d1:	83 c3 10             	add    $0x10,%ebx
1800145d4:	89 5c 24 30          	mov    %ebx,0x30(%rsp)
1800145d8:	44 03 fb             	add    %ebx,%r15d
1800145db:	8b 5d 77             	mov    0x77(%rbp),%ebx
1800145de:	48 21 7d b7          	and    %rdi,-0x49(%rbp)
1800145e2:	4c 8d 45 b7          	lea    -0x49(%rbp),%r8
1800145e6:	21 7d c3             	and    %edi,-0x3d(%rbp)
1800145e9:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
1800145ee:	21 7d bf             	and    %edi,-0x41(%rbp)
1800145f1:	33 c9                	xor    %ecx,%ecx
1800145f3:	e8 a8 54 07 00       	call   0x180089aa0
1800145f8:	44 8b f0             	mov    %eax,%r14d
1800145fb:	85 c0                	test   %eax,%eax
1800145fd:	78 0c                	js     0x18001460b
1800145ff:	8b 45 c3             	mov    -0x3d(%rbp),%eax
180014602:	44 03 f8             	add    %eax,%r15d
180014605:	89 44 24 34          	mov    %eax,0x34(%rsp)
180014609:	eb 0b                	jmp    0x180014616
18001460b:	3d 25 02 00 c0       	cmp    $0xc0000225,%eax
180014610:	0f 85 6a 03 00 00    	jne    0x180014980
180014616:	48 21 7d c7          	and    %rdi,-0x39(%rbp)
18001461a:	4c 8d 45 c7          	lea    -0x39(%rbp),%r8
18001461e:	21 7d d3             	and    %edi,-0x2d(%rbp)
180014621:	48 8d 55 8f          	lea    -0x71(%rbp),%rdx
180014625:	21 7d cf             	and    %edi,-0x31(%rbp)
180014628:	33 c9                	xor    %ecx,%ecx
18001462a:	e8 71 54 07 00       	call   0x180089aa0
18001462f:	44 8b f0             	mov    %eax,%r14d
180014632:	85 c0                	test   %eax,%eax
180014634:	78 0c                	js     0x180014642
180014636:	8b 45 d3             	mov    -0x2d(%rbp),%eax
180014639:	44 03 f8             	add    %eax,%r15d
18001463c:	89 44 24 38          	mov    %eax,0x38(%rsp)
180014640:	eb 0b                	jmp    0x18001464d
180014642:	3d 25 02 00 c0       	cmp    $0xc0000225,%eax
180014647:	0f 85 33 03 00 00    	jne    0x180014980
18001464d:	4d 85 ed             	test   %r13,%r13
180014650:	74 1c                	je     0x18001466e
180014652:	49 8d 4d 18          	lea    0x18(%r13),%rcx
180014656:	48 8b 01             	mov    (%rcx),%rax
180014659:	48 3b c1             	cmp    %rcx,%rax
18001465c:	74 10                	je     0x18001466e
18001465e:	48 8b 00             	mov    (%rax),%rax
180014661:	41 83 c4 28          	add    $0x28,%r12d
180014665:	48 3b c1             	cmp    %rcx,%rax
180014668:	75 f4                	jne    0x18001465e
18001466a:	44 89 65 6f          	mov    %r12d,0x6f(%rbp)
18001466e:	4c 8b a6 38 0b 00 00 	mov    0xb38(%rsi),%r12
180014675:	8b cf                	mov    %edi,%ecx
180014677:	41 8b 44 24 24       	mov    0x24(%r12),%eax
18001467c:	41 03 44 24 2c       	add    0x2c(%r12),%eax
180014681:	03 45 6f             	add    0x6f(%rbp),%eax
180014684:	44 03 f8             	add    %eax,%r15d
180014687:	41 f7 c7 ff 0f 00 00 	test   $0xfff,%r15d
18001468e:	41 8b c7             	mov    %r15d,%eax
180014691:	0f 95 c1             	setne  %cl
180014694:	c1 e8 0c             	shr    $0xc,%eax
180014697:	03 c1                	add    %ecx,%eax
180014699:	89 45 77             	mov    %eax,0x77(%rbp)
18001469c:	8b d0                	mov    %eax,%edx
18001469e:	74 23                	je     0x1800146c3
1800146a0:	41 b9 22 00 00 e0    	mov    $0xe0000022,%r9d
1800146a6:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
1800146ab:	41 b8 00 00 02 00    	mov    $0x20000,%r8d
1800146b1:	e8 26 68 06 00       	call   0x18007aedc
1800146b6:	85 c0                	test   %eax,%eax
1800146b8:	44 8b f0             	mov    %eax,%r14d
1800146bb:	48 0f 49 7c 24 20    	cmovns 0x20(%rsp),%rdi
1800146c1:	eb 06                	jmp    0x1800146c9
1800146c3:	41 be 0d 00 00 c0    	mov    $0xc000000d,%r14d
1800146c9:	45 85 f6             	test   %r14d,%r14d
1800146cc:	0f 88 a1 02 00 00    	js     0x180014973
1800146d2:	45 8b c7             	mov    %r15d,%r8d
1800146d5:	33 d2                	xor    %edx,%edx
1800146d7:	48 8b cf             	mov    %rdi,%rcx
1800146da:	e8 a1 15 12 00       	call   0x180135c80
1800146df:	48 8b 55 a7          	mov    -0x59(%rbp),%rdx
1800146e3:	48 8d 8f 00 01 00 00 	lea    0x100(%rdi),%rcx
1800146ea:	c7 47 10 00 01 00 00 	movl   $0x100,0x10(%rdi)
1800146f1:	44 8b c3             	mov    %ebx,%r8d
1800146f4:	89 5f 14             	mov    %ebx,0x14(%rdi)
1800146f7:	e8 c4 12 12 00       	call   0x1801359c0
1800146fc:	48 8b 55 af          	mov    -0x51(%rbp),%rdx
180014700:	8d b3 00 01 00 00    	lea    0x100(%rbx),%esi
180014706:	8b ce                	mov    %esi,%ecx
180014708:	48 03 cf             	add    %rdi,%rcx
18001470b:	8b 82 48 01 00 00    	mov    0x148(%rdx),%eax
180014711:	48 8b 92 50 01 00 00 	mov    0x150(%rdx),%rdx
180014718:	8d 1c 40             	lea    (%rax,%rax,2),%ebx
18001471b:	c1 e3 03             	shl    $0x3,%ebx
18001471e:	44 8b c3             	mov    %ebx,%r8d
180014721:	e8 9a 12 12 00       	call   0x1801359c0
180014726:	48 8b 4d af          	mov    -0x51(%rbp),%rcx
18001472a:	89 77 18             	mov    %esi,0x18(%rdi)
18001472d:	03 f3                	add    %ebx,%esi
18001472f:	8b 81 48 01 00 00    	mov    0x148(%rcx),%eax
180014735:	89 47 1c             	mov    %eax,0x1c(%rdi)
180014738:	48 8b 51 38          	mov    0x38(%rcx),%rdx
18001473c:	48 85 d2             	test   %rdx,%rdx
18001473f:	74 16                	je     0x180014757
180014741:	0f b6 5a 06          	movzbl 0x6(%rdx),%ebx
180014745:	8b ce                	mov    %esi,%ecx
180014747:	44 8b c3             	mov    %ebx,%r8d
18001474a:	48 03 cf             	add    %rdi,%rcx
18001474d:	e8 6e 12 12 00       	call   0x1801359c0
180014752:	89 77 20             	mov    %esi,0x20(%rdi)
180014755:	03 f3                	add    %ebx,%esi
180014757:	48 8d 57 28          	lea    0x28(%rdi),%rdx
18001475b:	b9 01 00 00 00       	mov    $0x1,%ecx
180014760:	e8 57 14 01 00       	call   0x180025bbc
180014765:	85 c0                	test   %eax,%eax
180014767:	0f 88 06 02 00 00    	js     0x180014973
18001476d:	8b 5d 9f             	mov    -0x61(%rbp),%ebx
180014770:	48 8b 55 87          	mov    -0x79(%rbp),%rdx
180014774:	44 8b c3             	mov    %ebx,%r8d
180014777:	8b ce                	mov    %esi,%ecx
180014779:	48 03 cf             	add    %rdi,%rcx
18001477c:	e8 3f 12 12 00       	call   0x1801359c0
180014781:	8b 45 7f             	mov    0x7f(%rbp),%eax
180014784:	89 77 34             	mov    %esi,0x34(%rdi)
180014787:	03 f3                	add    %ebx,%esi
180014789:	89 47 30             	mov    %eax,0x30(%rdi)
18001478c:	4d 85 ed             	test   %r13,%r13
18001478f:	74 31                	je     0x1800147c2
180014791:	41 8b 5d 30          	mov    0x30(%r13),%ebx
180014795:	49 8b 55 28          	mov    0x28(%r13),%rdx
180014799:	44 8b c3             	mov    %ebx,%r8d
18001479c:	8b ce                	mov    %esi,%ecx
18001479e:	48 03 cf             	add    %rdi,%rcx
1800147a1:	e8 1a 12 12 00       	call   0x1801359c0
1800147a6:	89 b7 a8 00 00 00    	mov    %esi,0xa8(%rdi)
1800147ac:	03 f3                	add    %ebx,%esi
1800147ae:	41 8b 45 30          	mov    0x30(%r13),%eax
1800147b2:	89 87 ac 00 00 00    	mov    %eax,0xac(%rdi)
1800147b8:	41 8b 45 34          	mov    0x34(%r13),%eax
1800147bc:	89 87 b0 00 00 00    	mov    %eax,0xb0(%rdi)
1800147c2:	8b 5c 24 30          	mov    0x30(%rsp),%ebx
1800147c6:	85 db                	test   %ebx,%ebx
1800147c8:	74 19                	je     0x1800147e3
1800147ca:	48 8b 55 0f          	mov    0xf(%rbp),%rdx
1800147ce:	44 8b c3             	mov    %ebx,%r8d
1800147d1:	8b ce                	mov    %esi,%ecx
1800147d3:	48 03 cf             	add    %rdi,%rcx
1800147d6:	e8 e5 11 12 00       	call   0x1801359c0
1800147db:	89 b7 b4 00 00 00    	mov    %esi,0xb4(%rdi)
1800147e1:	03 f3                	add    %ebx,%esi
1800147e3:	8b 5c 24 34          	mov    0x34(%rsp),%ebx
1800147e7:	85 db                	test   %ebx,%ebx
1800147e9:	74 1f                	je     0x18001480a
1800147eb:	48 8b 55 b7          	mov    -0x49(%rbp),%rdx
1800147ef:	44 8b c3             	mov    %ebx,%r8d
1800147f2:	8b ce                	mov    %esi,%ecx
1800147f4:	48 03 cf             	add    %rdi,%rcx
1800147f7:	e8 c4 11 12 00       	call   0x1801359c0
1800147fc:	89 b7 c0 00 00 00    	mov    %esi,0xc0(%rdi)
180014802:	03 f3                	add    %ebx,%esi
180014804:	89 9f c4 00 00 00    	mov    %ebx,0xc4(%rdi)
18001480a:	8b 5c 24 38          	mov    0x38(%rsp),%ebx
18001480e:	85 db                	test   %ebx,%ebx
180014810:	74 1f                	je     0x180014831
180014812:	48 8b 55 c7          	mov    -0x39(%rbp),%rdx
180014816:	44 8b c3             	mov    %ebx,%r8d
180014819:	8b ce                	mov    %esi,%ecx
18001481b:	48 03 cf             	add    %rdi,%rcx