14009a2f8:	d1 f8                	sar    $1,%eax
14009a2fa:	48 63 c8             	movslq %eax,%rcx
14009a2fd:	48 c1 e1 04          	shl    $0x4,%rcx
14009a301:	2b 14 29             	sub    (%rcx,%rbp,1),%edx
14009a304:	74 30                	je     0x14009a336
14009a306:	85 d2                	test   %edx,%edx
14009a308:	8d 48 ff             	lea    -0x1(%rax),%ecx
14009a30b:	41 0f 49 ca          	cmovns %r10d,%ecx
14009a30f:	ff c0                	inc    %eax
14009a311:	85 d2                	test   %edx,%edx
14009a313:	44 8b d1             	mov    %ecx,%r10d
14009a316:	44 0f 49 c8          	cmovns %eax,%r9d
14009a31a:	44 3b c9             	cmp    %ecx,%r9d
14009a31d:	7e cf                	jle    0x14009a2ee
14009a31f:	33 c0                	xor    %eax,%eax
14009a321:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
14009a326:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
14009a32b:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
14009a330:	48 83 c4 30          	add    $0x30,%rsp
14009a334:	5f                   	pop    %rdi
14009a335:	c3                   	ret
14009a336:	85 c0                	test   %eax,%eax
14009a338:	78 e5                	js     0x14009a31f
14009a33a:	48 98                	cltq
14009a33c:	ba 55 00 00 00       	mov    $0x55,%edx
14009a341:	48 03 c0             	add    %rax,%rax
14009a344:	48 8b 6c c5 08       	mov    0x8(%rbp,%rax,8),%rbp
14009a349:	48 8b cd             	mov    %rbp,%rcx
14009a34c:	e8 c3 df fe ff       	call   0x140088314
14009a351:	48 8b d8             	mov    %rax,%rbx
14009a354:	85 ff                	test   %edi,%edi
14009a356:	7e 16                	jle    0x14009a36e
14009a358:	3b df                	cmp    %edi,%ebx
14009a35a:	7d c3                	jge    0x14009a31f
14009a35c:	48 8b d7             	mov    %rdi,%rdx
14009a35f:	4c 8b c5             	mov    %rbp,%r8
14009a362:	48 8b ce             	mov    %rsi,%rcx
14009a365:	e8 26 6f ff ff       	call   0x140091290
14009a36a:	85 c0                	test   %eax,%eax
14009a36c:	75 05                	jne    0x14009a373
14009a36e:	8d 43 01             	lea    0x1(%rbx),%eax
14009a371:	eb ae                	jmp    0x14009a321
14009a373:	48 83 64 24 20 00    	andq   $0x0,0x20(%rsp)
14009a379:	45 33 c9             	xor    %r9d,%r9d
14009a37c:	45 33 c0             	xor    %r8d,%r8d
14009a37f:	33 d2                	xor    %edx,%edx
14009a381:	33 c9                	xor    %ecx,%ecx
14009a383:	e8 7c 44 ff ff       	call   0x14008e804
14009a388:	cc                   	int3
14009a389:	cc                   	int3
14009a38a:	cc                   	int3
14009a38b:	cc                   	int3
14009a38c:	cc                   	int3
14009a38d:	cc                   	int3
14009a38e:	cc                   	int3
14009a38f:	cc                   	int3
14009a390:	48 83 ec 28          	sub    $0x28,%rsp
14009a394:	e8 57 38 ff ff       	call   0x14008dbf0
14009a399:	33 c9                	xor    %ecx,%ecx
14009a39b:	84 c0                	test   %al,%al
14009a39d:	0f 94 c1             	sete   %cl
14009a3a0:	8b c1                	mov    %ecx,%eax
14009a3a2:	48 83 c4 28          	add    $0x28,%rsp
14009a3a6:	c3                   	ret
14009a3a7:	cc                   	int3
14009a3a8:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
14009a3ad:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
14009a3b2:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
14009a3b7:	57                   	push   %rdi
14009a3b8:	48 83 ec 30          	sub    $0x30,%rsp
14009a3bc:	49 8b f9             	mov    %r9,%rdi
14009a3bf:	48 8b f1             	mov    %rcx,%rsi
14009a3c2:	48 85 c9             	test   %rcx,%rcx
14009a3c5:	75 32                	jne    0x14009a3f9
14009a3c7:	bb 16 00 00 00       	mov    $0x16,%ebx
14009a3cc:	48 8b 44 24 70       	mov    0x70(%rsp),%rax
14009a3d1:	45 33 c9             	xor    %r9d,%r9d
14009a3d4:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
14009a3d9:	45 33 c0             	xor    %r8d,%r8d
14009a3dc:	48 83 64 24 20 00    	andq   $0x0,0x20(%rsp)
14009a3e2:	33 d2                	xor    %edx,%edx
14009a3e4:	33 c9                	xor    %ecx,%ecx
14009a3e6:	89 58 2c             	mov    %ebx,0x2c(%rax)
14009a3e9:	c6 40 30 01          	movb   $0x1,0x30(%rax)
14009a3ed:	e8 be 45 ff ff       	call   0x14008e9b0
14009a3f2:	8b c3                	mov    %ebx,%eax
14009a3f4:	e9 aa 00 00 00       	jmp    0x14009a4a3
14009a3f9:	48 85 d2             	test   %rdx,%rdx
14009a3fc:	74 c9                	je     0x14009a3c7
14009a3fe:	33 c0                	xor    %eax,%eax
14009a400:	c6 01 00             	movb   $0x0,(%rcx)
14009a403:	45 85 c0             	test   %r8d,%r8d
14009a406:	41 0f 4f c0          	cmovg  %r8d,%eax
14009a40a:	ff c0                	inc    %eax
14009a40c:	48 98                	cltq
14009a40e:	48 3b d0             	cmp    %rax,%rdx
14009a411:	77 07                	ja     0x14009a41a
14009a413:	bb 22 00 00 00       	mov    $0x22,%ebx
14009a418:	eb b2                	jmp    0x14009a3cc
14009a41a:	48 85 ff             	test   %rdi,%rdi
14009a41d:	74 a8                	je     0x14009a3c7
14009a41f:	49 8b 49 08          	mov    0x8(%r9),%rcx
14009a423:	48 8d 5e 01          	lea    0x1(%rsi),%rbx
14009a427:	48 8b d1             	mov    %rcx,%rdx
14009a42a:	c6 06 30             	movb   $0x30,(%rsi)
14009a42d:	eb 15                	jmp    0x14009a444
14009a42f:	8a 02                	mov    (%rdx),%al
14009a431:	84 c0                	test   %al,%al
14009a433:	74 05                	je     0x14009a43a
14009a435:	48 ff c2             	inc    %rdx
14009a438:	eb 02                	jmp    0x14009a43c
14009a43a:	b0 30                	mov    $0x30,%al
14009a43c:	88 03                	mov    %al,(%rbx)
14009a43e:	48 ff c3             	inc    %rbx
14009a441:	41 ff c8             	dec    %r8d
14009a444:	45 85 c0             	test   %r8d,%r8d
14009a447:	7f e6                	jg     0x14009a42f
14009a449:	c6 03 00             	movb   $0x0,(%rbx)
14009a44c:	78 2b                	js     0x14009a479
14009a44e:	8b 44 24 68          	mov    0x68(%rsp),%eax
14009a452:	44 8b 4c 24 60       	mov    0x60(%rsp),%r9d
14009a457:	44 8b 07             	mov    (%rdi),%r8d
14009a45a:	89 44 24 20          	mov    %eax,0x20(%rsp)
14009a45e:	e8 55 00 00 00       	call   0x14009a4b8
14009a463:	84 c0                	test   %al,%al
14009a465:	74 12                	je     0x14009a479
14009a467:	eb 03                	jmp    0x14009a46c
14009a469:	c6 03 30             	movb   $0x30,(%rbx)
14009a46c:	48 ff cb             	dec    %rbx
14009a46f:	8a 03                	mov    (%rbx),%al
14009a471:	3c 39                	cmp    $0x39,%al
14009a473:	74 f4                	je     0x14009a469
14009a475:	fe c0                	inc    %al
14009a477:	88 03                	mov    %al,(%rbx)
14009a479:	80 3e 31             	cmpb   $0x31,(%rsi)
14009a47c:	75 05                	jne    0x14009a483
14009a47e:	ff 47 04             	incl   0x4(%rdi)
14009a481:	eb 1e                	jmp    0x14009a4a1
14009a483:	49 83 c8 ff          	or     $0xffffffffffffffff,%r8
14009a487:	49 ff c0             	inc    %r8
14009a48a:	41 80 7c 30 01 00    	cmpb   $0x0,0x1(%r8,%rsi,1)
14009a490:	75 f5                	jne    0x14009a487
14009a492:	49 ff c0             	inc    %r8
14009a495:	48 8d 56 01          	lea    0x1(%rsi),%rdx
14009a499:	48 8b ce             	mov    %rsi,%rcx
14009a49c:	e8 cf 36 00 00       	call   0x14009db70
14009a4a1:	33 c0                	xor    %eax,%eax
14009a4a3:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
14009a4a8:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
14009a4ad:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
14009a4b2:	48 83 c4 30          	add    $0x30,%rsp
14009a4b6:	5f                   	pop    %rdi
14009a4b7:	c3                   	ret
14009a4b8:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
14009a4bd:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
14009a4c2:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
14009a4c7:	57                   	push   %rdi
14009a4c8:	48 83 ec 20          	sub    $0x20,%rsp
14009a4cc:	83 7c 24 50 00       	cmpl   $0x0,0x50(%rsp)
14009a4d1:	41 8b f9             	mov    %r9d,%edi
14009a4d4:	41 8b f0             	mov    %r8d,%esi
14009a4d7:	48 8b da             	mov    %rdx,%rbx
14009a4da:	48 8b e9             	mov    %rcx,%rbp
14009a4dd:	75 0b                	jne    0x14009a4ea
14009a4df:	80 3a 35             	cmpb   $0x35,(%rdx)
14009a4e2:	0f 9d c0             	setge  %al
14009a4e5:	e9 89 00 00 00       	jmp    0x14009a573
14009a4ea:	e8 15 5a ff ff       	call   0x14008ff04
14009a4ef:	85 c0                	test   %eax,%eax
14009a4f1:	75 30                	jne    0x14009a523
14009a4f3:	80 3b 35             	cmpb   $0x35,(%rbx)
14009a4f6:	8d 48 01             	lea    0x1(%rax),%ecx
14009a4f9:	7f 0a                	jg     0x14009a505
14009a4fb:	7c 74                	jl     0x14009a571
14009a4fd:	48 8d 43 01          	lea    0x1(%rbx),%rax
14009a501:	85 ff                	test   %edi,%edi
14009a503:	75 07                	jne    0x14009a50c
14009a505:	8a c1                	mov    %cl,%al
14009a507:	eb 6a                	jmp    0x14009a573
14009a509:	48 03 c1             	add    %rcx,%rax
14009a50c:	8a 10                	mov    (%rax),%dl
14009a50e:	80 fa 30             	cmp    $0x30,%dl
14009a511:	74 f6                	je     0x14009a509
14009a513:	84 d2                	test   %dl,%dl
14009a515:	75 ee                	jne    0x14009a505
14009a517:	48 3b dd             	cmp    %rbp,%rbx
14009a51a:	74 55                	je     0x14009a571
14009a51c:	8a 43 ff             	mov    -0x1(%rbx),%al
14009a51f:	22 c1                	and    %cl,%al
14009a521:	eb 50                	jmp    0x14009a573
14009a523:	3d 00 02 00 00       	cmp    $0x200,%eax
14009a528:	75 21                	jne    0x14009a54b
14009a52a:	b9 01 00 00 00       	mov    $0x1,%ecx
14009a52f:	85 ff                	test   %edi,%edi
14009a531:	74 0f                	je     0x14009a542
14009a533:	eb 03                	jmp    0x14009a538
14009a535:	48 03 d9             	add    %rcx,%rbx
14009a538:	8a 03                	mov    (%rbx),%al
14009a53a:	3c 30                	cmp    $0x30,%al
14009a53c:	74 f7                	je     0x14009a535
14009a53e:	84 c0                	test   %al,%al
14009a540:	74 05                	je     0x14009a547
14009a542:	83 fe 2d             	cmp    $0x2d,%esi
14009a545:	75 be                	jne    0x14009a505
14009a547:	32 c9                	xor    %cl,%cl
14009a549:	eb ba                	jmp    0x14009a505
14009a54b:	3d 00 01 00 00       	cmp    $0x100,%eax
14009a550:	75 1f                	jne    0x14009a571
14009a552:	b9 01 00 00 00       	mov    $0x1,%ecx
14009a557:	85 ff                	test   %edi,%edi
14009a559:	74 0f                	je     0x14009a56a
14009a55b:	eb 03                	jmp    0x14009a560
14009a55d:	48 03 d9             	add    %rcx,%rbx
14009a560:	8a 03                	mov    (%rbx),%al
14009a562:	3c 30                	cmp    $0x30,%al
14009a564:	74 f7                	je     0x14009a55d
14009a566:	84 c0                	test   %al,%al
14009a568:	74 dd                	je     0x14009a547
14009a56a:	83 fe 2d             	cmp    $0x2d,%esi
14009a56d:	74 96                	je     0x14009a505
14009a56f:	eb d6                	jmp    0x14009a547
14009a571:	32 c0                	xor    %al,%al
14009a573:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
14009a578:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
14009a57d:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
14009a582:	48 83 c4 20          	add    $0x20,%rsp
14009a586:	5f                   	pop    %rdi
14009a587:	c3                   	ret
14009a588:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
14009a58d:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
14009a592:	57                   	push   %rdi
14009a593:	48 83 ec 20          	sub    $0x20,%rsp
14009a597:	49 8b d9             	mov    %r9,%rbx
14009a59a:	49 8b f0             	mov    %r8,%rsi
14009a59d:	48 8b fa             	mov    %rdx,%rdi
14009a5a0:	4d 85 c9             	test   %r9,%r9
14009a5a3:	75 04                	jne    0x14009a5a9
14009a5a5:	33 c0                	xor    %eax,%eax
14009a5a7:	eb 56                	jmp    0x14009a5ff
14009a5a9:	48 85 c9             	test   %rcx,%rcx
14009a5ac:	75 15                	jne    0x14009a5c3
14009a5ae:	e8 11 3c fe ff       	call   0x14007e1c4
14009a5b3:	bb 16 00 00 00       	mov    $0x16,%ebx
14009a5b8:	89 18                	mov    %ebx,(%rax)
14009a5ba:	e8 25 42 ff ff       	call   0x14008e7e4
14009a5bf:	8b c3                	mov    %ebx,%eax
14009a5c1:	eb 3c                	jmp    0x14009a5ff
14009a5c3:	48 85 f6             	test   %rsi,%rsi
14009a5c6:	74 12                	je     0x14009a5da
14009a5c8:	48 3b fb             	cmp    %rbx,%rdi
14009a5cb:	72 0d                	jb     0x14009a5da
14009a5cd:	4c 8b c3             	mov    %rbx,%r8
14009a5d0:	48 8b d6             	mov    %rsi,%rdx
14009a5d3:	e8 98 35 00 00       	call   0x14009db70
14009a5d8:	eb cb                	jmp    0x14009a5a5
14009a5da:	4c 8b c7             	mov    %rdi,%r8
14009a5dd:	33 d2                	xor    %edx,%edx
14009a5df:	e8 2c 3c 00 00       	call   0x14009e210
14009a5e4:	48 85 f6             	test   %rsi,%rsi
14009a5e7:	74 c5                	je     0x14009a5ae
14009a5e9:	48 3b fb             	cmp    %rbx,%rdi
14009a5ec:	73 0c                	jae    0x14009a5fa
14009a5ee:	e8 d1 3b fe ff       	call   0x14007e1c4
14009a5f3:	bb 22 00 00 00       	mov    $0x22,%ebx
14009a5f8:	eb be                	jmp    0x14009a5b8
14009a5fa:	b8 16 00 00 00       	mov    $0x16,%eax
14009a5ff:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
14009a604:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
14009a609:	48 83 c4 20          	add    $0x20,%rsp
14009a60d:	5f                   	pop    %rdi
14009a60e:	c3                   	ret
14009a60f:	cc                   	int3
14009a610:	40 55                	rex push %rbp
14009a612:	53                   	push   %rbx
14009a613:	56                   	push   %rsi
14009a614:	57                   	push   %rdi
14009a615:	41 54                	push   %r12
14009a617:	41 56                	push   %r14
14009a619:	41 57                	push   %r15
14009a61b:	48 8d ac 24 10 f9 ff 	lea    -0x6f0(%rsp),%rbp
14009a622:	ff
14009a623:	48 81 ec f0 07 00 00 	sub    $0x7f0,%rsp
14009a62a:	48 8b 05 0f 6a 06 00 	mov    0x66a0f(%rip),%rax        # 0x140101040
14009a631:	48 33 c4             	xor    %rsp,%rax
14009a634:	48 89 85 e0 06 00 00 	mov    %rax,0x6e0(%rbp)
14009a63b:	4c 8b b5 50 07 00 00 	mov    0x750(%rbp),%r14
14009a642:	4d 8b e1             	mov    %r9,%r12
14009a645:	48 89 4c 24 50       	mov    %rcx,0x50(%rsp)
14009a64a:	8b f2                	mov    %edx,%esi
14009a64c:	48 8d 4c 24 70       	lea    0x70(%rsp),%rcx
14009a651:	4c 89 75 88          	mov    %r14,-0x78(%rbp)
14009a655:	4c 89 4d 98          	mov    %r9,-0x68(%rbp)
14009a659:	44 89 44 24 64       	mov    %r8d,0x64(%rsp)
14009a65e:	e8 91 19 00 00       	call   0x14009bff4
14009a663:	8b 44 24 70          	mov    0x70(%rsp),%eax
14009a667:	41 bf 01 00 00 00    	mov    $0x1,%r15d
14009a66d:	83 e0 1f             	and    $0x1f,%eax
14009a670:	3c 1f                	cmp    $0x1f,%al
14009a672:	75 07                	jne    0x14009a67b
14009a674:	c6 44 24 78 00       	movb   $0x0,0x78(%rsp)
14009a679:	eb 0f                	jmp    0x14009a68a
14009a67b:	48 8d 4c 24 70       	lea    0x70(%rsp),%rcx
14009a680:	e8 e7 19 00 00       	call   0x14009c06c
14009a685:	44 88 7c 24 78       	mov    %r15b,0x78(%rsp)
14009a68a:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
14009a68f:	bf 20 00 00 00       	mov    $0x20,%edi
14009a694:	8b c7                	mov    %edi,%eax
14009a696:	4d 89 74 24 08       	mov    %r14,0x8(%r12)
14009a69b:	48 85 db             	test   %rbx,%rbx
14009a69e:	8d 4f 0d             	lea    0xd(%rdi),%ecx
14009a6a1:	0f 48 c1             	cmovs  %ecx,%eax
14009a6a4:	45 33 c0             	xor    %r8d,%r8d
14009a6a7:	33 d2                	xor    %edx,%edx
14009a6a9:	41 89 04 24          	mov    %eax,(%r12)
14009a6ad:	48 8d 4d 80          	lea    -0x80(%rbp),%rcx
14009a6b1:	e8 da 18 00 00       	call   0x14009bf90
14009a6b6:	48 8b c3             	mov    %rbx,%rax
14009a6b9:	ba ff 07 00 00       	mov    $0x7ff,%edx
14009a6be:	48 c1 e8 34          	shr    $0x34,%rax
14009a6c2:	48 b9 ff ff ff ff ff 	movabs $0xfffffffffffff,%rcx
14009a6c9:	ff 0f 00
14009a6cc:	48 23 c2             	and    %rdx,%rax
14009a6cf:	75 21                	jne    0x14009a6f2
14009a6d1:	48 85 d9             	test   %rbx,%rcx
14009a6d4:	74 0d                	je     0x14009a6e3
14009a6d6:	f7 45 80 00 00 00 01 	testl  $0x1000000,-0x80(%rbp)
14009a6dd:	0f 84 c3 00 00 00    	je     0x14009a7a6
14009a6e3:	41 83 64 24 04 00    	andl   $0x0,0x4(%r12)
14009a6e9:	4c 8d 05 54 47 04 00 	lea    0x44754(%rip),%r8        # 0x1400dee44
14009a6f0:	eb 60                	jmp    0x14009a752
14009a6f2:	48 3b c2             	cmp    %rdx,%rax
14009a6f5:	0f 85 ab 00 00 00    	jne    0x14009a7a6
14009a6fb:	48 8b c3             	mov    %rbx,%rax
14009a6fe:	48 23 c1             	and    %rcx,%rax
14009a701:	75 05                	jne    0x14009a708
14009a703:	41 8b c7             	mov    %r15d,%eax
14009a706:	eb 2a                	jmp    0x14009a732
14009a708:	48 85 db             	test   %rbx,%rbx
14009a70b:	79 16                	jns    0x14009a723
14009a70d:	48 b9 00 00 00 00 00 	movabs $0x8000000000000,%rcx
14009a714:	00 08 00
14009a717:	48 3b c1             	cmp    %rcx,%rax
14009a71a:	75 07                	jne    0x14009a723
14009a71c:	b8 04 00 00 00       	mov    $0x4,%eax
14009a721:	eb 0f                	jmp    0x14009a732
14009a723:	48 8b c3             	mov    %rbx,%rax
14009a726:	48 c1 e8 33          	shr    $0x33,%rax
14009a72a:	f7 d0                	not    %eax
14009a72c:	41 23 c7             	and    %r15d,%eax
14009a72f:	83 c8 02             	or     $0x2,%eax