1800210e1:	48 89 84 24 50 01 00 	mov    %rax,0x150(%rsp)
1800210e8:	00
1800210e9:	49 8b f8             	mov    %r8,%rdi
1800210ec:	49 8b f1             	mov    %r9,%rsi
1800210ef:	4c 8d 44 24 20       	lea    0x20(%rsp),%r8
1800210f4:	48 8b d9             	mov    %rcx,%rbx
1800210f7:	e8 5c f2 ff ff       	call   0x180020358
1800210fc:	85 c0                	test   %eax,%eax
1800210fe:	7e 20                	jle    0x180021120
180021100:	4c 8b c6             	mov    %rsi,%r8
180021103:	48 8d 8c 24 90 00 00 	lea    0x90(%rsp),%rcx
18002110a:	00
18002110b:	48 8b d7             	mov    %rdi,%rdx
18002110e:	e8 81 f2 ff ff       	call   0x180020394
180021113:	85 c0                	test   %eax,%eax
180021115:	79 0c                	jns    0x180021123
180021117:	2b 9c 24 98 00 00 00 	sub    0x98(%rsp),%ebx
18002111e:	03 c3                	add    %ebx,%eax
180021120:	83 27 00             	andl   $0x0,(%rdi)
180021123:	48 8b 8c 24 50 01 00 	mov    0x150(%rsp),%rcx
18002112a:	00
18002112b:	48 33 cc             	xor    %rsp,%rcx
18002112e:	e8 f9 49 ff ff       	call   0x180015b2c
180021133:	48 81 c4 60 01 00 00 	add    $0x160,%rsp
18002113a:	5f                   	pop    %rdi
18002113b:	5e                   	pop    %rsi
18002113c:	5b                   	pop    %rbx
18002113d:	c3                   	ret
18002113e:	cc                   	int3
18002113f:	cc                   	int3
180021140:	48 8b c4             	mov    %rsp,%rax
180021143:	48 89 58 08          	mov    %rbx,0x8(%rax)
180021147:	48 89 70 18          	mov    %rsi,0x18(%rax)
18002114b:	48 89 78 20          	mov    %rdi,0x20(%rax)
18002114f:	55                   	push   %rbp
180021150:	41 54                	push   %r12
180021152:	41 55                	push   %r13
180021154:	41 56                	push   %r14
180021156:	41 57                	push   %r15
180021158:	48 8d 68 a1          	lea    -0x5f(%rax),%rbp
18002115c:	48 81 ec c0 00 00 00 	sub    $0xc0,%rsp
180021163:	48 8b 05 06 b8 14 00 	mov    0x14b806(%rip),%rax        # 0x18016c970
18002116a:	48 33 c4             	xor    %rsp,%rax
18002116d:	48 89 45 27          	mov    %rax,0x27(%rbp)
180021171:	44 8a 01             	mov    (%rcx),%r8b
180021174:	33 db                	xor    %ebx,%ebx
180021176:	21 5d a7             	and    %ebx,-0x59(%rbp)
180021179:	45 33 c9             	xor    %r9d,%r9d
18002117c:	48 8b f2             	mov    %rdx,%rsi
18002117f:	4c 8b d1             	mov    %rcx,%r10
180021182:	45 84 c0             	test   %r8b,%r8b
180021185:	0f 84 c8 01 00 00    	je     0x180021353
18002118b:	41 8d 40 d0          	lea    -0x30(%r8),%eax
18002118f:	3c 09                	cmp    $0x9,%al
180021191:	77 25                	ja     0x1800211b8
180021193:	8b 54 9d a7          	mov    -0x59(%rbp,%rbx,4),%edx
180021197:	41 0f be c0          	movsbl %r8b,%eax
18002119b:	8d 4a fa             	lea    -0x6(%rdx),%ecx
18002119e:	8d 0c 8a             	lea    (%rdx,%rcx,4),%ecx
1800211a1:	44 8d 04 48          	lea    (%rax,%rcx,2),%r8d
1800211a5:	44 3b c2             	cmp    %edx,%r8d
1800211a8:	0f 82 a5 01 00 00    	jb     0x180021353
1800211ae:	44 89 44 9d a7       	mov    %r8d,-0x59(%rbp,%rbx,4)
1800211b3:	41 ff c1             	inc    %r9d
1800211b6:	eb 2a                	jmp    0x1800211e2
1800211b8:	41 8d 41 ff          	lea    -0x1(%r9),%eax
1800211bc:	83 f8 09             	cmp    $0x9,%eax
1800211bf:	0f 87 8e 01 00 00    	ja     0x180021353
1800211c5:	41 80 f8 2e          	cmp    $0x2e,%r8b
1800211c9:	0f 85 84 01 00 00    	jne    0x180021353
1800211cf:	ff c3                	inc    %ebx
1800211d1:	83 fb 1f             	cmp    $0x1f,%ebx
1800211d4:	0f 83 79 01 00 00    	jae    0x180021353
1800211da:	83 64 9d a7 00       	andl   $0x0,-0x59(%rbp,%rbx,4)
1800211df:	45 33 c9             	xor    %r9d,%r9d
1800211e2:	49 ff c2             	inc    %r10
1800211e5:	45 8a 02             	mov    (%r10),%r8b
1800211e8:	45 84 c0             	test   %r8b,%r8b
1800211eb:	75 9e                	jne    0x18002118b
1800211ed:	45 85 c9             	test   %r9d,%r9d
1800211f0:	0f 84 5d 01 00 00    	je     0x180021353
1800211f6:	ff c3                	inc    %ebx
1800211f8:	83 fb 02             	cmp    $0x2,%ebx
1800211fb:	0f 82 52 01 00 00    	jb     0x180021353
180021201:	8b 45 ab             	mov    -0x55(%rbp),%eax
180021204:	83 f8 28             	cmp    $0x28,%eax
180021207:	0f 83 46 01 00 00    	jae    0x180021353
18002120d:	8d 04 80             	lea    (%rax,%rax,4),%eax
180021210:	c1 e0 03             	shl    $0x3,%eax
180021213:	83 f8 7f             	cmp    $0x7f,%eax
180021216:	0f 87 37 01 00 00    	ja     0x180021353
18002121c:	8b 0e                	mov    (%rsi),%ecx
18002121e:	83 f9 03             	cmp    $0x3,%ecx
180021221:	0f 82 2c 01 00 00    	jb     0x180021353
180021227:	b8 82 00 00 00       	mov    $0x82,%eax
18002122c:	bf 03 00 00 00       	mov    $0x3,%edi
180021231:	3b c8                	cmp    %eax,%ecx
180021233:	0f 42 c1             	cmovb  %ecx,%eax
180021236:	8a 4d a7             	mov    -0x59(%rbp),%cl
180021239:	89 06                	mov    %eax,(%rsi)
18002123b:	44 8d 6f ff          	lea    -0x1(%rdi),%r13d
18002123f:	48 8b 46 08          	mov    0x8(%rsi),%rax
180021243:	c6 00 06             	movb   $0x6,(%rax)
180021246:	8a c1                	mov    %cl,%al
180021248:	c0 e0 02             	shl    $0x2,%al
18002124b:	02 c8                	add    %al,%cl
18002124d:	48 8b 46 08          	mov    0x8(%rsi),%rax
180021251:	c0 e1 03             	shl    $0x3,%cl
180021254:	02 4d ab             	add    -0x55(%rbp),%cl
180021257:	88 48 02             	mov    %cl,0x2(%rax)
18002125a:	48 8b 46 08          	mov    0x8(%rsi),%rax
18002125e:	4c 8d 60 03          	lea    0x3(%rax),%r12
180021262:	41 3b dd             	cmp    %r13d,%ebx
180021265:	0f 86 da 00 00 00    	jbe    0x180021345
18002126b:	4c 8d 7d af          	lea    -0x51(%rbp),%r15
18002126f:	44 8d 57 7d          	lea    0x7d(%rdi),%r10d
180021273:	41 8b 0f             	mov    (%r15),%ecx
180021276:	8a d1                	mov    %cl,%dl
180021278:	41 3b ca             	cmp    %r10d,%ecx
18002127b:	73 0d                	jae    0x18002128a
18002127d:	88 4d 97             	mov    %cl,-0x69(%rbp)
180021280:	b8 01 00 00 00       	mov    $0x1,%eax
180021285:	e9 86 00 00 00       	jmp    0x180021310
18002128a:	8b c1                	mov    %ecx,%eax
18002128c:	80 e2 7f             	and    $0x7f,%dl
18002128f:	c1 e8 07             	shr    $0x7,%eax
180021292:	41 0a c2             	or     %r10b,%al
180021295:	81 f9 00 40 00 00    	cmp    $0x4000,%ecx
18002129b:	73 0d                	jae    0x1800212aa
18002129d:	88 45 97             	mov    %al,-0x69(%rbp)
1800212a0:	b8 02 00 00 00       	mov    $0x2,%eax
1800212a5:	88 55 98             	mov    %dl,-0x68(%rbp)
1800212a8:	eb 66                	jmp    0x180021310
1800212aa:	44 8b c1             	mov    %ecx,%r8d
1800212ad:	41 c1 e8 0e          	shr    $0xe,%r8d
1800212b1:	45 0a c2             	or     %r10b,%r8b
1800212b4:	81 f9 00 00 20 00    	cmp    $0x200000,%ecx
1800212ba:	73 11                	jae    0x1800212cd
1800212bc:	88 45 98             	mov    %al,-0x68(%rbp)
1800212bf:	b8 03 00 00 00       	mov    $0x3,%eax
1800212c4:	44 88 45 97          	mov    %r8b,-0x69(%rbp)
1800212c8:	88 55 99             	mov    %dl,-0x67(%rbp)
1800212cb:	eb 43                	jmp    0x180021310
1800212cd:	44 8b c9             	mov    %ecx,%r9d
1800212d0:	41 c1 e9 15          	shr    $0x15,%r9d
1800212d4:	45 0a ca             	or     %r10b,%r9b
1800212d7:	81 f9 00 00 00 10    	cmp    $0x10000000,%ecx
1800212dd:	73 15                	jae    0x1800212f4
1800212df:	88 45 99             	mov    %al,-0x67(%rbp)
1800212e2:	b8 04 00 00 00       	mov    $0x4,%eax
1800212e7:	44 88 4d 97          	mov    %r9b,-0x69(%rbp)
1800212eb:	44 88 45 98          	mov    %r8b,-0x68(%rbp)
1800212ef:	88 55 9a             	mov    %dl,-0x66(%rbp)
1800212f2:	eb 1c                	jmp    0x180021310
1800212f4:	c1 e9 1c             	shr    $0x1c,%ecx
1800212f7:	41 0a ca             	or     %r10b,%cl
1800212fa:	88 45 9a             	mov    %al,-0x66(%rbp)
1800212fd:	88 4d 97             	mov    %cl,-0x69(%rbp)
180021300:	b8 05 00 00 00       	mov    $0x5,%eax
180021305:	44 88 4d 98          	mov    %r9b,-0x68(%rbp)
180021309:	44 88 45 99          	mov    %r8b,-0x67(%rbp)
18002130d:	88 55 9b             	mov    %dl,-0x65(%rbp)
180021310:	03 f8                	add    %eax,%edi
180021312:	4c 8b f0             	mov    %rax,%r14
180021315:	3b 3e                	cmp    (%rsi),%edi
180021317:	77 3a                	ja     0x180021353
180021319:	4c 8b c0             	mov    %rax,%r8
18002131c:	48 8d 55 97          	lea    -0x69(%rbp),%rdx
180021320:	49 8b cc             	mov    %r12,%rcx
180021323:	e8 98 46 11 00       	call   0x1801359c0
180021328:	4d 03 e6             	add    %r14,%r12
18002132b:	41 ff c5             	inc    %r13d
18002132e:	49 83 c7 04          	add    $0x4,%r15
180021332:	41 ba 80 00 00 00    	mov    $0x80,%r10d
180021338:	44 3b eb             	cmp    %ebx,%r13d
18002133b:	0f 82 32 ff ff ff    	jb     0x180021273
180021341:	48 8b 46 08          	mov    0x8(%rsi),%rax
180021345:	89 3e                	mov    %edi,(%rsi)
180021347:	40 80 ef 02          	sub    $0x2,%dil
18002134b:	40 88 78 01          	mov    %dil,0x1(%rax)
18002134f:	8b 06                	mov    (%rsi),%eax
180021351:	eb 03                	jmp    0x180021356
180021353:	83 c8 ff             	or     $0xffffffff,%eax
180021356:	48 8b 4d 27          	mov    0x27(%rbp),%rcx
18002135a:	48 33 cc             	xor    %rsp,%rcx
18002135d:	e8 ca 47 ff ff       	call   0x180015b2c
180021362:	4c 8d 9c 24 c0 00 00 	lea    0xc0(%rsp),%r11
180021369:	00
18002136a:	49 8b 5b 30          	mov    0x30(%r11),%rbx
18002136e:	49 8b 73 40          	mov    0x40(%r11),%rsi
180021372:	49 8b 7b 48          	mov    0x48(%r11),%rdi
180021376:	49 8b e3             	mov    %r11,%rsp
180021379:	41 5f                	pop    %r15
18002137b:	41 5e                	pop    %r14
18002137d:	41 5d                	pop    %r13
18002137f:	41 5c                	pop    %r12
180021381:	5d                   	pop    %rbp
180021382:	c3                   	ret
180021383:	cc                   	int3
180021384:	48 8b c4             	mov    %rsp,%rax
180021387:	48 89 58 08          	mov    %rbx,0x8(%rax)
18002138b:	57                   	push   %rdi
18002138c:	48 83 ec 30          	sub    $0x30,%rsp
180021390:	48 8b fa             	mov    %rdx,%rdi
180021393:	0f 57 c0             	xorps  %xmm0,%xmm0
180021396:	8b 11                	mov    (%rcx),%edx
180021398:	48 8b d9             	mov    %rcx,%rbx
18002139b:	0f 11 40 e8          	movups %xmm0,-0x18(%rax)
18002139f:	85 d2                	test   %edx,%edx
1800213a1:	74 43                	je     0x1800213e6
1800213a3:	48 8b 49 08          	mov    0x8(%rcx),%rcx
1800213a7:	4c 8d 48 f0          	lea    -0x10(%rax),%r9
1800213ab:	4c 8d 40 e8          	lea    -0x18(%rax),%r8
1800213af:	e8 24 f9 ff ff       	call   0x180020cd8
1800213b4:	85 c0                	test   %eax,%eax
1800213b6:	78 2e                	js     0x1800213e6
1800213b8:	48 8b 43 08          	mov    0x8(%rbx),%rax
1800213bc:	8a 08                	mov    (%rax),%cl
1800213be:	80 f9 17             	cmp    $0x17,%cl
1800213c1:	75 0f                	jne    0x1800213d2
1800213c3:	48 8b d7             	mov    %rdi,%rdx
1800213c6:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
1800213cb:	e8 dc 01 00 00       	call   0x1800215ac
1800213d0:	eb 16                	jmp    0x1800213e8
1800213d2:	80 f9 18             	cmp    $0x18,%cl
1800213d5:	75 0f                	jne    0x1800213e6
1800213d7:	48 8b d7             	mov    %rdi,%rdx
1800213da:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
1800213df:	e8 10 04 00 00       	call   0x1800217f4
1800213e4:	eb 02                	jmp    0x1800213e8
1800213e6:	32 c0                	xor    %al,%al
1800213e8:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
1800213ed:	48 83 c4 30          	add    $0x30,%rsp
1800213f1:	5f                   	pop    %rdi
1800213f2:	c3                   	ret
1800213f3:	cc                   	int3
1800213f4:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1800213f9:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
1800213fe:	48 89 7c 24 18       	mov    %rdi,0x18(%rsp)
180021403:	55                   	push   %rbp
180021404:	48 8b ec             	mov    %rsp,%rbp
180021407:	48 83 ec 30          	sub    $0x30,%rsp
18002140b:	33 f6                	xor    %esi,%esi
18002140d:	0f bf fa             	movswl %dx,%edi
180021410:	48 89 75 28          	mov    %rsi,0x28(%rbp)
180021414:	48 8b d9             	mov    %rcx,%rbx
180021417:	45 84 c0             	test   %r8b,%r8b
18002141a:	0f 85 a0 00 00 00    	jne    0x1800214c0
180021420:	66 85 ff             	test   %di,%di
180021423:	0f 84 97 00 00 00    	je     0x1800214c0
180021429:	8b c7                	mov    %edi,%eax
18002142b:	44 8d 46 01          	lea    0x1(%rsi),%r8d
18002142f:	99                   	cltd
180021430:	0f 57 c0             	xorps  %xmm0,%xmm0
180021433:	33 c2                	xor    %edx,%eax
180021435:	2b c2                	sub    %edx,%eax
180021437:	0f bf c8             	movswl %ax,%ecx
18002143a:	b8 89 88 88 88       	mov    $0x88888889,%eax
18002143f:	f7 e9                	imul   %ecx
180021441:	0f 11 45 f0          	movups %xmm0,-0x10(%rbp)
180021445:	c7 45 f0 41 06 01 00 	movl   $0x10641,-0x10(%rbp)
18002144c:	03 d1                	add    %ecx,%edx
18002144e:	66 44 89 45 f4       	mov    %r8w,-0xc(%rbp)
180021453:	c1 fa 05             	sar    $0x5,%edx
180021456:	8b c2                	mov    %edx,%eax
180021458:	c1 e8 1f             	shr    $0x1f,%eax
18002145b:	03 d0                	add    %eax,%edx
18002145d:	6b c2 3c             	imul   $0x3c,%edx,%eax
180021460:	66 89 55 f6          	mov    %dx,-0xa(%rbp)
180021464:	2b c8                	sub    %eax,%ecx
180021466:	66 89 4d f8          	mov    %cx,-0x8(%rbp)
18002146a:	66 83 fa 18          	cmp    $0x18,%dx
18002146e:	7c 28                	jl     0x180021498
180021470:	0f bf ca             	movswl %dx,%ecx
180021473:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
180021478:	f7 e9                	imul   %ecx
18002147a:	c1 fa 02             	sar    $0x2,%edx
18002147d:	8b c2                	mov    %edx,%eax
18002147f:	c1 e8 1f             	shr    $0x1f,%eax
180021482:	03 d0                	add    %eax,%edx
180021484:	8d 04 52             	lea    (%rdx,%rdx,2),%eax
180021487:	c1 e0 03             	shl    $0x3,%eax
18002148a:	2b c8                	sub    %eax,%ecx
18002148c:	66 41 03 d0          	add    %r8w,%dx
180021490:	66 89 4d f6          	mov    %cx,-0xa(%rbp)
180021494:	66 89 55 f4          	mov    %dx,-0xc(%rbp)
180021498:	48 8d 55 28          	lea    0x28(%rbp),%rdx
18002149c:	48 8d 4d f0          	lea    -0x10(%rbp),%rcx
1800214a0:	e8 17 27 01 00       	call   0x180033bbc
1800214a5:	84 c0                	test   %al,%al
1800214a7:	74 1c                	je     0x1800214c5
1800214a9:	48 8b 0b             	mov    (%rbx),%rcx
1800214ac:	66 85 ff             	test   %di,%di
1800214af:	7e 06                	jle    0x1800214b7
1800214b1:	48 03 4d 28          	add    0x28(%rbp),%rcx
1800214b5:	eb 04                	jmp    0x1800214bb
1800214b7:	48 2b 4d 28          	sub    0x28(%rbp),%rcx
1800214bb:	48 89 0b             	mov    %rcx,(%rbx)
1800214be:	eb 05                	jmp    0x1800214c5
1800214c0:	b8 01 00 00 00       	mov    $0x1,%eax
1800214c5:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
1800214ca:	48 8b 74 24 48       	mov    0x48(%rsp),%rsi
1800214cf:	48 8b 7c 24 50       	mov    0x50(%rsp),%rdi
1800214d4:	48 83 c4 30          	add    $0x30,%rsp
1800214d8:	5d                   	pop    %rbp
1800214d9:	c3                   	ret
1800214da:	cc                   	int3
1800214db:	cc                   	int3
1800214dc:	48 8b c4             	mov    %rsp,%rax
1800214df:	48 89 58 08          	mov    %rbx,0x8(%rax)
1800214e3:	48 89 68 10          	mov    %rbp,0x10(%rax)
1800214e7:	48 89 70 18          	mov    %rsi,0x18(%rax)
1800214eb:	48 89 78 20          	mov    %rdi,0x20(%rax)
1800214ef:	41 56                	push   %r14
1800214f1:	48 83 ec 20          	sub    $0x20,%rsp
1800214f5:	41 83 20 00          	andl   $0x0,(%r8)
1800214f9:	33 db                	xor    %ebx,%ebx
1800214fb:	41 83 21 00          	andl   $0x0,(%r9)
1800214ff:	49 8b f1             	mov    %r9,%rsi
180021502:	4d 8b f0             	mov    %r8,%r14
180021505:	8b ea                	mov    %edx,%ebp
180021507:	48 8b f9             	mov    %rcx,%rdi
18002150a:	85 d2                	test   %edx,%edx
18002150c:	74 29                	je     0x180021537
18002150e:	0f b6 0f             	movzbl (%rdi),%ecx
180021511:	e8 d2 a5 10 00       	call   0x18012bae8
180021516:	85 c0                	test   %eax,%eax
180021518:	74 1d                	je     0x180021537
18002151a:	41 8b 0e             	mov    (%r14),%ecx
18002151d:	ff c3                	inc    %ebx
18002151f:	ff 06                	incl   (%rsi)
180021521:	8d 14 89             	lea    (%rcx,%rcx,4),%edx
180021524:	0f b6 0f             	movzbl (%rdi),%ecx
180021527:	8d 52 e8             	lea    -0x18(%rdx),%edx
18002152a:	48 ff c7             	inc    %rdi
18002152d:	8d 14 51             	lea    (%rcx,%rdx,2),%edx
180021530:	41 89 16             	mov    %edx,(%r14)
180021533:	3b dd                	cmp    %ebp,%ebx
180021535:	72 d7                	jb     0x18002150e
180021537:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
18002153c:	8b c3                	mov    %ebx,%eax
18002153e:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180021543:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
180021548:	48 8b 7c 24 48       	mov    0x48(%rsp),%rdi
18002154d:	48 83 c4 20          	add    $0x20,%rsp
180021551:	41 5e                	pop    %r14
180021553:	c3                   	ret
180021554:	cc                   	int3
180021555:	cc                   	int3
180021556:	cc                   	int3