14002220d:	48 8b ec             	mov    %rsp,%rbp
140022210:	48 83 ec 60          	sub    $0x60,%rsp
140022214:	33 ff                	xor    %edi,%edi
140022216:	48 8b d9             	mov    %rcx,%rbx
140022219:	48 85 d2             	test   %rdx,%rdx
14002221c:	75 16                	jne    0x140022234
14002221e:	e8 c9 27 ff ff       	call   0x1400149ec
140022223:	8d 5f 16             	lea    0x16(%rdi),%ebx
140022226:	89 18                	mov    %ebx,(%rax)
140022228:	e8 6b e5 fe ff       	call   0x140010798
14002222d:	8b c3                	mov    %ebx,%eax
14002222f:	e9 a0 01 00 00       	jmp    0x1400223d4
140022234:	0f 57 c0             	xorps  %xmm0,%xmm0
140022237:	48 89 3a             	mov    %rdi,(%rdx)
14002223a:	48 8b 01             	mov    (%rcx),%rax
14002223d:	f3 0f 7f 45 e0       	movdqu %xmm0,-0x20(%rbp)
140022242:	48 89 7d f0          	mov    %rdi,-0x10(%rbp)
140022246:	48 85 c0             	test   %rax,%rax
140022249:	74 56                	je     0x1400222a1
14002224b:	48 8d 55 50          	lea    0x50(%rbp),%rdx
14002224f:	66 c7 45 50 2a 3f    	movw   $0x3f2a,0x50(%rbp)
140022255:	48 8b c8             	mov    %rax,%rcx
140022258:	40 88 7d 52          	mov    %dil,0x52(%rbp)
14002225c:	e8 6f 78 00 00       	call   0x140029ad0
140022261:	48 8b 0b             	mov    (%rbx),%rcx
140022264:	48 85 c0             	test   %rax,%rax
140022267:	75 10                	jne    0x140022279
140022269:	4c 8d 4d e0          	lea    -0x20(%rbp),%r9
14002226d:	45 33 c0             	xor    %r8d,%r8d
140022270:	33 d2                	xor    %edx,%edx
140022272:	e8 8d 01 00 00       	call   0x140022404
140022277:	eb 0c                	jmp    0x140022285
140022279:	4c 8d 45 e0          	lea    -0x20(%rbp),%r8
14002227d:	48 8b d0             	mov    %rax,%rdx
140022280:	e8 07 03 00 00       	call   0x14002258c
140022285:	8b f0                	mov    %eax,%esi
140022287:	85 c0                	test   %eax,%eax
140022289:	75 09                	jne    0x140022294
14002228b:	48 83 c3 08          	add    $0x8,%rbx
14002228f:	48 8b 03             	mov    (%rbx),%rax
140022292:	eb b2                	jmp    0x140022246
140022294:	4c 8b 65 e8          	mov    -0x18(%rbp),%r12
140022298:	4c 8b 7d e0          	mov    -0x20(%rbp),%r15
14002229c:	e9 f8 00 00 00       	jmp    0x140022399
1400222a1:	4c 8b 7d e0          	mov    -0x20(%rbp),%r15
1400222a5:	4c 8b cf             	mov    %rdi,%r9
1400222a8:	4c 8b 65 e8          	mov    -0x18(%rbp),%r12
1400222ac:	49 8b d7             	mov    %r15,%rdx
1400222af:	49 8b c4             	mov    %r12,%rax
1400222b2:	48 89 7d 50          	mov    %rdi,0x50(%rbp)
1400222b6:	49 2b c7             	sub    %r15,%rax
1400222b9:	4c 8b c7             	mov    %rdi,%r8
1400222bc:	4c 8b f0             	mov    %rax,%r14
1400222bf:	49 c1 fe 03          	sar    $0x3,%r14
1400222c3:	49 ff c6             	inc    %r14
1400222c6:	48 8d 48 07          	lea    0x7(%rax),%rcx
1400222ca:	48 c1 e9 03          	shr    $0x3,%rcx
1400222ce:	4d 3b fc             	cmp    %r12,%r15
1400222d1:	48 0f 47 cf          	cmova  %rdi,%rcx
1400222d5:	48 83 ce ff          	or     $0xffffffffffffffff,%rsi
1400222d9:	48 85 c9             	test   %rcx,%rcx
1400222dc:	74 25                	je     0x140022303
1400222de:	4c 8b 12             	mov    (%rdx),%r10
1400222e1:	48 8b c6             	mov    %rsi,%rax
1400222e4:	48 ff c0             	inc    %rax
1400222e7:	41 38 3c 02          	cmp    %dil,(%r10,%rax,1)
1400222eb:	75 f7                	jne    0x1400222e4
1400222ed:	49 ff c1             	inc    %r9
1400222f0:	48 83 c2 08          	add    $0x8,%rdx
1400222f4:	4c 03 c8             	add    %rax,%r9
1400222f7:	49 ff c0             	inc    %r8
1400222fa:	4c 3b c1             	cmp    %rcx,%r8
1400222fd:	75 df                	jne    0x1400222de
1400222ff:	4c 89 4d 50          	mov    %r9,0x50(%rbp)
140022303:	41 b8 01 00 00 00    	mov    $0x1,%r8d
140022309:	49 8b d1             	mov    %r9,%rdx
14002230c:	49 8b ce             	mov    %r14,%rcx
14002230f:	e8 c8 5f ff ff       	call   0x1400182dc
140022314:	48 8b d8             	mov    %rax,%rbx
140022317:	48 85 c0             	test   %rax,%rax
14002231a:	74 76                	je     0x140022392
14002231c:	4a 8d 14 f0          	lea    (%rax,%r14,8),%rdx
140022320:	4d 8b f7             	mov    %r15,%r14
140022323:	48 89 55 d8          	mov    %rdx,-0x28(%rbp)
140022327:	48 8b c2             	mov    %rdx,%rax
14002232a:	48 89 55 58          	mov    %rdx,0x58(%rbp)
14002232e:	4d 3b fc             	cmp    %r12,%r15
140022331:	74 56                	je     0x140022389
140022333:	48 8b cb             	mov    %rbx,%rcx
140022336:	49 2b cf             	sub    %r15,%rcx
140022339:	48 89 4d d0          	mov    %rcx,-0x30(%rbp)
14002233d:	4d 8b 06             	mov    (%r14),%r8
140022340:	4c 8b ee             	mov    %rsi,%r13
140022343:	49 ff c5             	inc    %r13
140022346:	43 38 3c 28          	cmp    %dil,(%r8,%r13,1)
14002234a:	75 f7                	jne    0x140022343
14002234c:	48 2b d0             	sub    %rax,%rdx
14002234f:	49 ff c5             	inc    %r13
140022352:	48 03 55 50          	add    0x50(%rbp),%rdx
140022356:	4d 8b cd             	mov    %r13,%r9
140022359:	48 8b c8             	mov    %rax,%rcx
14002235c:	e8 2b 69 00 00       	call   0x140028c8c
140022361:	85 c0                	test   %eax,%eax
140022363:	0f 85 83 00 00 00    	jne    0x1400223ec
140022369:	48 8b 45 58          	mov    0x58(%rbp),%rax
14002236d:	48 8b 4d d0          	mov    -0x30(%rbp),%rcx
140022371:	48 8b 55 d8          	mov    -0x28(%rbp),%rdx
140022375:	4a 89 04 31          	mov    %rax,(%rcx,%r14,1)
140022379:	49 03 c5             	add    %r13,%rax
14002237c:	49 83 c6 08          	add    $0x8,%r14
140022380:	48 89 45 58          	mov    %rax,0x58(%rbp)
140022384:	4d 3b f4             	cmp    %r12,%r14
140022387:	75 b4                	jne    0x14002233d
140022389:	48 8b 45 48          	mov    0x48(%rbp),%rax
14002238d:	8b f7                	mov    %edi,%esi
14002238f:	48 89 18             	mov    %rbx,(%rax)
140022392:	33 c9                	xor    %ecx,%ecx
140022394:	e8 ef 8a ff ff       	call   0x14001ae88
140022399:	49 8b dc             	mov    %r12,%rbx
14002239c:	4d 8b f7             	mov    %r15,%r14
14002239f:	49 2b df             	sub    %r15,%rbx
1400223a2:	48 83 c3 07          	add    $0x7,%rbx
1400223a6:	48 c1 eb 03          	shr    $0x3,%rbx
1400223aa:	4d 3b fc             	cmp    %r12,%r15
1400223ad:	48 0f 47 df          	cmova  %rdi,%rbx
1400223b1:	48 85 db             	test   %rbx,%rbx
1400223b4:	74 14                	je     0x1400223ca
1400223b6:	49 8b 0e             	mov    (%r14),%rcx
1400223b9:	e8 ca 8a ff ff       	call   0x14001ae88
1400223be:	48 ff c7             	inc    %rdi
1400223c1:	4d 8d 76 08          	lea    0x8(%r14),%r14
1400223c5:	48 3b fb             	cmp    %rbx,%rdi
1400223c8:	75 ec                	jne    0x1400223b6
1400223ca:	49 8b cf             	mov    %r15,%rcx
1400223cd:	e8 b6 8a ff ff       	call   0x14001ae88
1400223d2:	8b c6                	mov    %esi,%eax
1400223d4:	48 8b 9c 24 a0 00 00 	mov    0xa0(%rsp),%rbx
1400223db:	00
1400223dc:	48 83 c4 60          	add    $0x60,%rsp
1400223e0:	41 5f                	pop    %r15
1400223e2:	41 5e                	pop    %r14
1400223e4:	41 5d                	pop    %r13
1400223e6:	41 5c                	pop    %r12
1400223e8:	5f                   	pop    %rdi
1400223e9:	5e                   	pop    %rsi
1400223ea:	5d                   	pop    %rbp
1400223eb:	c3                   	ret
1400223ec:	45 33 c9             	xor    %r9d,%r9d
1400223ef:	48 89 7c 24 20       	mov    %rdi,0x20(%rsp)
1400223f4:	45 33 c0             	xor    %r8d,%r8d
1400223f7:	33 d2                	xor    %edx,%edx
1400223f9:	33 c9                	xor    %ecx,%ecx
1400223fb:	e8 e8 e3 fe ff       	call   0x1400107e8
140022400:	cc                   	int3
140022401:	cc                   	int3
140022402:	cc                   	int3
140022403:	cc                   	int3
140022404:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140022409:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
14002240e:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
140022413:	57                   	push   %rdi
140022414:	41 54                	push   %r12
140022416:	41 55                	push   %r13
140022418:	41 56                	push   %r14
14002241a:	41 57                	push   %r15
14002241c:	48 83 ec 30          	sub    $0x30,%rsp
140022420:	48 83 cd ff          	or     $0xffffffffffffffff,%rbp
140022424:	49 8b f9             	mov    %r9,%rdi
140022427:	33 f6                	xor    %esi,%esi
140022429:	4d 8b f0             	mov    %r8,%r14
14002242c:	4c 8b ea             	mov    %rdx,%r13
14002242f:	4c 8b e1             	mov    %rcx,%r12
140022432:	48 ff c5             	inc    %rbp
140022435:	40 38 34 29          	cmp    %sil,(%rcx,%rbp,1)
140022439:	75 f7                	jne    0x140022432
14002243b:	ba 01 00 00 00       	mov    $0x1,%edx
140022440:	49 8b c6             	mov    %r14,%rax
140022443:	48 03 ea             	add    %rdx,%rbp
140022446:	48 f7 d0             	not    %rax
140022449:	48 3b e8             	cmp    %rax,%rbp
14002244c:	76 20                	jbe    0x14002246e
14002244e:	8d 42 0b             	lea    0xb(%rdx),%eax
140022451:	48 8b 5c 24 60       	mov    0x60(%rsp),%rbx
140022456:	48 8b 6c 24 68       	mov    0x68(%rsp),%rbp
14002245b:	48 8b 74 24 70       	mov    0x70(%rsp),%rsi
140022460:	48 83 c4 30          	add    $0x30,%rsp
140022464:	41 5f                	pop    %r15
140022466:	41 5e                	pop    %r14
140022468:	41 5d                	pop    %r13
14002246a:	41 5c                	pop    %r12
14002246c:	5f                   	pop    %rdi
14002246d:	c3                   	ret
14002246e:	4d 8d 78 01          	lea    0x1(%r8),%r15
140022472:	4c 03 fd             	add    %rbp,%r15
140022475:	49 8b cf             	mov    %r15,%rcx
140022478:	e8 93 89 ff ff       	call   0x14001ae10
14002247d:	48 8b d8             	mov    %rax,%rbx
140022480:	4d 85 f6             	test   %r14,%r14
140022483:	74 19                	je     0x14002249e
140022485:	4d 8b ce             	mov    %r14,%r9
140022488:	4d 8b c5             	mov    %r13,%r8
14002248b:	49 8b d7             	mov    %r15,%rdx
14002248e:	48 8b c8             	mov    %rax,%rcx
140022491:	e8 f6 67 00 00       	call   0x140028c8c
140022496:	85 c0                	test   %eax,%eax
140022498:	0f 85 d8 00 00 00    	jne    0x140022576
14002249e:	4d 2b fe             	sub    %r14,%r15
1400224a1:	4a 8d 0c 33          	lea    (%rbx,%r14,1),%rcx
1400224a5:	49 8b d7             	mov    %r15,%rdx
1400224a8:	4c 8b cd             	mov    %rbp,%r9
1400224ab:	4d 8b c4             	mov    %r12,%r8
1400224ae:	e8 d9 67 00 00       	call   0x140028c8c
1400224b3:	85 c0                	test   %eax,%eax
1400224b5:	0f 85 bb 00 00 00    	jne    0x140022576
1400224bb:	48 8b 4f 08          	mov    0x8(%rdi),%rcx
1400224bf:	44 8d 78 08          	lea    0x8(%rax),%r15d
1400224c3:	4c 8b 77 10          	mov    0x10(%rdi),%r14
1400224c7:	49 3b ce             	cmp    %r14,%rcx
1400224ca:	0f 85 9d 00 00 00    	jne    0x14002256d
1400224d0:	48 39 37             	cmp    %rsi,(%rdi)
1400224d3:	75 2b                	jne    0x140022500
1400224d5:	41 8b d7             	mov    %r15d,%edx
1400224d8:	8d 48 04             	lea    0x4(%rax),%ecx
1400224db:	e8 30 89 ff ff       	call   0x14001ae10
1400224e0:	33 c9                	xor    %ecx,%ecx
1400224e2:	48 89 07             	mov    %rax,(%rdi)
1400224e5:	e8 9e 89 ff ff       	call   0x14001ae88
1400224ea:	48 8b 0f             	mov    (%rdi),%rcx
1400224ed:	48 85 c9             	test   %rcx,%rcx
1400224f0:	74 42                	je     0x140022534
1400224f2:	48 8d 41 20          	lea    0x20(%rcx),%rax
1400224f6:	48 89 4f 08          	mov    %rcx,0x8(%rdi)
1400224fa:	48 89 47 10          	mov    %rax,0x10(%rdi)
1400224fe:	eb 6d                	jmp    0x14002256d
140022500:	4c 2b 37             	sub    (%rdi),%r14
140022503:	48 b8 ff ff ff ff ff 	movabs $0x7fffffffffffffff,%rax
14002250a:	ff ff 7f
14002250d:	49 c1 fe 03          	sar    $0x3,%r14
140022511:	4c 3b f0             	cmp    %rax,%r14
140022514:	77 1e                	ja     0x140022534
140022516:	48 8b 0f             	mov    (%rdi),%rcx
140022519:	4b 8d 2c 36          	lea    (%r14,%r14,1),%rbp
14002251d:	48 8b d5             	mov    %rbp,%rdx
140022520:	4d 8b c7             	mov    %r15,%r8
140022523:	e8 b8 10 00 00       	call   0x1400235e0
140022528:	48 85 c0             	test   %rax,%rax
14002252b:	75 22                	jne    0x14002254f
14002252d:	33 c9                	xor    %ecx,%ecx
14002252f:	e8 54 89 ff ff       	call   0x14001ae88
140022534:	48 8b cb             	mov    %rbx,%rcx
140022537:	e8 4c 89 ff ff       	call   0x14001ae88
14002253c:	be 0c 00 00 00       	mov    $0xc,%esi
140022541:	33 c9                	xor    %ecx,%ecx
140022543:	e8 40 89 ff ff       	call   0x14001ae88
140022548:	8b c6                	mov    %esi,%eax
14002254a:	e9 02 ff ff ff       	jmp    0x140022451
14002254f:	4a 8d 0c f0          	lea    (%rax,%r14,8),%rcx
140022553:	48 89 07             	mov    %rax,(%rdi)
140022556:	48 89 4f 08          	mov    %rcx,0x8(%rdi)
14002255a:	48 8d 0c e8          	lea    (%rax,%rbp,8),%rcx
14002255e:	48 89 4f 10          	mov    %rcx,0x10(%rdi)
140022562:	33 c9                	xor    %ecx,%ecx
140022564:	e8 1f 89 ff ff       	call   0x14001ae88
140022569:	48 8b 4f 08          	mov    0x8(%rdi),%rcx
14002256d:	48 89 19             	mov    %rbx,(%rcx)
140022570:	4c 01 7f 08          	add    %r15,0x8(%rdi)
140022574:	eb cb                	jmp    0x140022541
140022576:	45 33 c9             	xor    %r9d,%r9d
140022579:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
14002257e:	45 33 c0             	xor    %r8d,%r8d
140022581:	33 d2                	xor    %edx,%edx
140022583:	33 c9                	xor    %ecx,%ecx
140022585:	e8 5e e2 fe ff       	call   0x1400107e8
14002258a:	cc                   	int3
14002258b:	cc                   	int3
14002258c:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
140022591:	55                   	push   %rbp
140022592:	56                   	push   %rsi
140022593:	57                   	push   %rdi
140022594:	41 54                	push   %r12
140022596:	41 55                	push   %r13
140022598:	41 56                	push   %r14
14002259a:	41 57                	push   %r15
14002259c:	48 8d ac 24 d0 fd ff 	lea    -0x230(%rsp),%rbp
1400225a3:	ff
1400225a4:	48 81 ec 30 03 00 00 	sub    $0x330,%rsp
1400225ab:	48 8b 05 ce 1a 02 00 	mov    0x21ace(%rip),%rax        # 0x140044080
1400225b2:	48 33 c4             	xor    %rsp,%rax
1400225b5:	48 89 85 20 02 00 00 	mov    %rax,0x220(%rbp)
1400225bc:	4d 8b e0             	mov    %r8,%r12
1400225bf:	48 8b f1             	mov    %rcx,%rsi
1400225c2:	48 bb 01 08 00 00 00 	movabs $0x200000000801,%rbx
1400225c9:	20 00 00
1400225cc:	48 3b d1             	cmp    %rcx,%rdx
1400225cf:	74 22                	je     0x1400225f3
1400225d1:	8a 02                	mov    (%rdx),%al
1400225d3:	2c 2f                	sub    $0x2f,%al
1400225d5:	3c 2d                	cmp    $0x2d,%al
1400225d7:	77 0a                	ja     0x1400225e3
1400225d9:	48 0f be c0          	movsbq %al,%rax
1400225dd:	48 0f a3 c3          	bt     %rax,%rbx
1400225e1:	72 10                	jb     0x1400225f3
1400225e3:	48 8b ce             	mov    %rsi,%rcx
1400225e6:	e8 c5 78 00 00       	call   0x140029eb0
1400225eb:	48 8b d0             	mov    %rax,%rdx
1400225ee:	48 3b c6             	cmp    %rsi,%rax
1400225f1:	75 de                	jne    0x1400225d1
1400225f3:	44 8a 02             	mov    (%rdx),%r8b
1400225f6:	41 80 f8 3a          	cmp    $0x3a,%r8b
1400225fa:	75 1e                	jne    0x14002261a
1400225fc:	48 8d 46 01          	lea    0x1(%rsi),%rax
140022600:	48 3b d0             	cmp    %rax,%rdx
140022603:	74 15                	je     0x14002261a
140022605:	4d 8b cc             	mov    %r12,%r9
140022608:	45 33 c0             	xor    %r8d,%r8d
14002260b:	33 d2                	xor    %edx,%edx
14002260d:	48 8b ce             	mov    %rsi,%rcx
140022610:	e8 ef fd ff ff       	call   0x140022404
140022615:	e9 56 02 00 00       	jmp    0x140022870
14002261a:	41 80 e8 2f          	sub    $0x2f,%r8b
14002261e:	33 ff                	xor    %edi,%edi
140022620:	41 80 f8 2d          	cmp    $0x2d,%r8b
140022624:	77 0c                	ja     0x140022632
140022626:	49 0f be c0          	movsbq %r8b,%rax
14002262a:	48 0f a3 c3          	bt     %rax,%rbx
14002262e:	b0 01                	mov    $0x1,%al
140022630:	72 03                	jb     0x140022635
140022632:	40 8a c7             	mov    %dil,%al
140022635:	48 2b d6             	sub    %rsi,%rdx
140022638:	48 89 7d a0          	mov    %rdi,-0x60(%rbp)
14002263c:	48 ff c2             	inc    %rdx
14002263f:	48 89 7d a8          	mov    %rdi,-0x58(%rbp)
140022643:	f6 d8                	neg    %al
140022645:	48 89 7d b0          	mov    %rdi,-0x50(%rbp)
140022649:	48 8d 4c 24 30       	lea    0x30(%rsp),%rcx
14002264e:	48 89 7d b8          	mov    %rdi,-0x48(%rbp)
140022652:	4d 1b ed             	sbb    %r13,%r13
140022655:	48 89 7d c0          	mov    %rdi,-0x40(%rbp)
140022659:	4c 23 ea             	and    %rdx,%r13
14002265c:	40 88 7d c8          	mov    %dil,-0x38(%rbp)
140022660:	33 d2                	xor    %edx,%edx
140022662:	e8 39 e9 fe ff       	call   0x140010fa0
140022667:	48 8b 44 24 38       	mov    0x38(%rsp),%rax
14002266c:	41 bf e9 fd 00 00    	mov    $0xfde9,%r15d
140022672:	44 39 78 0c          	cmp    %r15d,0xc(%rax)
140022676:	75 18                	jne    0x140022690
140022678:	40 38 7c 24 48       	cmp    %dil,0x48(%rsp)
14002267d:	74 0c                	je     0x14002268b
14002267f:	48 8b 44 24 30       	mov    0x30(%rsp),%rax
140022684:	83 a0 a8 03 00 00 fd 	andl   $0xfffffffd,0x3a8(%rax)