140016008:	48 83 ec 20          	sub    $0x20,%rsp
14001600c:	48 63 f9             	movslq %ecx,%rdi
14001600f:	33 db                	xor    %ebx,%ebx
140016011:	8b f2                	mov    %edx,%esi
140016013:	8d 6f 01             	lea    0x1(%rdi),%ebp
140016016:	4d 85 c0             	test   %r8,%r8
140016019:	75 17                	jne    0x140016032
14001601b:	e8 40 d0 00 00       	call   0x140023060
140016020:	81 fd 00 01 00 00    	cmp    $0x100,%ebp
140016026:	77 06                	ja     0x14001602e
140016028:	0f b7 1c 78          	movzwl (%rax,%rdi,2),%ebx
14001602c:	23 de                	and    %esi,%ebx
14001602e:	8b c3                	mov    %ebx,%eax
140016030:	eb 27                	jmp    0x140016059
140016032:	49 8b 00             	mov    (%r8),%rax
140016035:	81 fd 00 01 00 00    	cmp    $0x100,%ebp
14001603b:	77 0b                	ja     0x140016048
14001603d:	48 8b 00             	mov    (%rax),%rax
140016040:	0f b7 04 78          	movzwl (%rax,%rdi,2),%eax
140016044:	23 c6                	and    %esi,%eax
140016046:	eb 11                	jmp    0x140016059
140016048:	83 78 08 01          	cmpl   $0x1,0x8(%rax)
14001604c:	7e 09                	jle    0x140016057
14001604e:	8b cf                	mov    %edi,%ecx
140016050:	e8 a7 d0 00 00       	call   0x1400230fc
140016055:	eb 02                	jmp    0x140016059
140016057:	33 c0                	xor    %eax,%eax
140016059:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
14001605e:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
140016063:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
140016068:	48 83 c4 20          	add    $0x20,%rsp
14001606c:	5f                   	pop    %rdi
14001606d:	c3                   	ret
14001606e:	cc                   	int3
14001606f:	cc                   	int3
140016070:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140016075:	48 89 7c 24 10       	mov    %rdi,0x10(%rsp)
14001607a:	55                   	push   %rbp
14001607b:	48 8b ec             	mov    %rsp,%rbp
14001607e:	48 83 ec 70          	sub    $0x70,%rsp
140016082:	48 83 65 c0 00       	andq   $0x0,-0x40(%rbp)
140016087:	83 3d ee bf 03 00 00 	cmpl   $0x0,0x3bfee(%rip)        # 0x14005207c
14001608e:	c6 45 d0 00          	movb   $0x0,-0x30(%rbp)
140016092:	c6 45 e8 00          	movb   $0x0,-0x18(%rbp)
140016096:	c6 45 f0 00          	movb   $0x0,-0x10(%rbp)
14001609a:	c6 45 f8 00          	movb   $0x0,-0x8(%rbp)
14001609e:	75 10                	jne    0x1400160b0
1400160a0:	0f 10 05 21 83 03 00 	movups 0x38321(%rip),%xmm0        # 0x14004e3c8
1400160a7:	c6 45 e8 01          	movb   $0x1,-0x18(%rbp)
1400160ab:	f3 0f 7f 45 d8       	movdqu %xmm0,-0x28(%rbp)
1400160b0:	48 83 65 b8 00       	andq   $0x0,-0x48(%rbp)
1400160b5:	48 8d 55 b0          	lea    -0x50(%rbp),%rdx
1400160b9:	48 89 4d b0          	mov    %rcx,-0x50(%rbp)
1400160bd:	41 b1 01             	mov    $0x1,%r9b
1400160c0:	48 8d 4d c0          	lea    -0x40(%rbp),%rcx
1400160c4:	41 b8 0a 00 00 00    	mov    $0xa,%r8d
1400160ca:	e8 b1 f4 ff ff       	call   0x140015580
1400160cf:	80 7d e8 02          	cmpb   $0x2,-0x18(%rbp)
1400160d3:	8b f8                	mov    %eax,%edi
1400160d5:	75 0b                	jne    0x1400160e2
1400160d7:	48 8b 4d c0          	mov    -0x40(%rbp),%rcx
1400160db:	83 a1 a8 03 00 00 fd 	andl   $0xfffffffd,0x3a8(%rcx)
1400160e2:	80 7d f0 00          	cmpb   $0x0,-0x10(%rbp)
1400160e6:	74 0f                	je     0x1400160f7
1400160e8:	8b 5d ec             	mov    -0x14(%rbp),%ebx
1400160eb:	48 8d 4d c0          	lea    -0x40(%rbp),%rcx
1400160ef:	e8 74 8a ff ff       	call   0x14000eb68
1400160f4:	89 58 20             	mov    %ebx,0x20(%rax)
1400160f7:	80 7d f8 00          	cmpb   $0x0,-0x8(%rbp)
1400160fb:	74 0f                	je     0x14001610c
1400160fd:	8b 5d f4             	mov    -0xc(%rbp),%ebx
140016100:	48 8d 4d c0          	lea    -0x40(%rbp),%rcx
140016104:	e8 5f 8a ff ff       	call   0x14000eb68
140016109:	89 58 24             	mov    %ebx,0x24(%rax)
14001610c:	4c 8d 5c 24 70       	lea    0x70(%rsp),%r11
140016111:	8b c7                	mov    %edi,%eax
140016113:	49 8b 5b 10          	mov    0x10(%r11),%rbx
140016117:	49 8b 7b 18          	mov    0x18(%r11),%rdi
14001611b:	49 8b e3             	mov    %r11,%rsp
14001611e:	5d                   	pop    %rbp
14001611f:	c3                   	ret
140016120:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140016125:	48 89 7c 24 10       	mov    %rdi,0x10(%rsp)
14001612a:	55                   	push   %rbp
14001612b:	48 8b ec             	mov    %rsp,%rbp
14001612e:	48 83 ec 70          	sub    $0x70,%rsp
140016132:	48 83 65 c0 00       	andq   $0x0,-0x40(%rbp)
140016137:	83 3d 3e bf 03 00 00 	cmpl   $0x0,0x3bf3e(%rip)        # 0x14005207c
14001613e:	c6 45 d0 00          	movb   $0x0,-0x30(%rbp)
140016142:	c6 45 e8 00          	movb   $0x0,-0x18(%rbp)
140016146:	c6 45 f0 00          	movb   $0x0,-0x10(%rbp)
14001614a:	c6 45 f8 00          	movb   $0x0,-0x8(%rbp)
14001614e:	75 10                	jne    0x140016160
140016150:	0f 10 05 71 82 03 00 	movups 0x38271(%rip),%xmm0        # 0x14004e3c8
140016157:	c6 45 e8 01          	movb   $0x1,-0x18(%rbp)
14001615b:	f3 0f 7f 45 d8       	movdqu %xmm0,-0x28(%rbp)
140016160:	48 83 65 b8 00       	andq   $0x0,-0x48(%rbp)
140016165:	48 8d 55 b0          	lea    -0x50(%rbp),%rdx
140016169:	48 89 4d b0          	mov    %rcx,-0x50(%rbp)
14001616d:	41 b1 01             	mov    $0x1,%r9b
140016170:	48 8d 4d c0          	lea    -0x40(%rbp),%rcx
140016174:	41 b8 0a 00 00 00    	mov    $0xa,%r8d
14001617a:	e8 11 f1 ff ff       	call   0x140015290
14001617f:	80 7d e8 02          	cmpb   $0x2,-0x18(%rbp)
140016183:	8b f8                	mov    %eax,%edi
140016185:	75 0b                	jne    0x140016192
140016187:	48 8b 4d c0          	mov    -0x40(%rbp),%rcx
14001618b:	83 a1 a8 03 00 00 fd 	andl   $0xfffffffd,0x3a8(%rcx)
140016192:	80 7d f0 00          	cmpb   $0x0,-0x10(%rbp)
140016196:	74 0f                	je     0x1400161a7
140016198:	8b 5d ec             	mov    -0x14(%rbp),%ebx
14001619b:	48 8d 4d c0          	lea    -0x40(%rbp),%rcx
14001619f:	e8 c4 89 ff ff       	call   0x14000eb68
1400161a4:	89 58 20             	mov    %ebx,0x20(%rax)
1400161a7:	80 7d f8 00          	cmpb   $0x0,-0x8(%rbp)
1400161ab:	74 0f                	je     0x1400161bc
1400161ad:	8b 5d f4             	mov    -0xc(%rbp),%ebx
1400161b0:	48 8d 4d c0          	lea    -0x40(%rbp),%rcx
1400161b4:	e8 af 89 ff ff       	call   0x14000eb68
1400161b9:	89 58 24             	mov    %ebx,0x24(%rax)
1400161bc:	4c 8d 5c 24 70       	lea    0x70(%rsp),%r11
1400161c1:	8b c7                	mov    %edi,%eax
1400161c3:	49 8b 5b 10          	mov    0x10(%r11),%rbx
1400161c7:	49 8b 7b 18          	mov    0x18(%r11),%rdi
1400161cb:	49 8b e3             	mov    %r11,%rsp
1400161ce:	5d                   	pop    %rbp
1400161cf:	c3                   	ret
1400161d0:	40 53                	rex push %rbx
1400161d2:	48 83 ec 20          	sub    $0x20,%rsp
1400161d6:	48 83 64 24 30 00    	andq   $0x0,0x30(%rsp)
1400161dc:	48 8b d9             	mov    %rcx,%rbx
1400161df:	48 8d 4c 24 30       	lea    0x30(%rsp),%rcx
1400161e4:	ff 15 86 60 02 00    	call   *0x26086(%rip)        # 0x14003c270
1400161ea:	4c 8b 44 24 30       	mov    0x30(%rsp),%r8
1400161ef:	48 b9 00 80 c1 2a 21 	movabs $0xfe624e212ac18000,%rcx
1400161f6:	4e 62 fe
1400161f9:	4c 03 c1             	add    %rcx,%r8
1400161fc:	48 b8 bd 42 7a e5 d5 	movabs $0xd6bf94d5e57a42bd,%rax
140016203:	94 bf d6
140016206:	49 f7 e8             	imul   %r8
140016209:	49 03 d0             	add    %r8,%rdx
14001620c:	48 c1 fa 17          	sar    $0x17,%rdx
140016210:	48 8b c2             	mov    %rdx,%rax
140016213:	48 c1 e8 3f          	shr    $0x3f,%rax
140016217:	48 03 d0             	add    %rax,%rdx
14001621a:	48 b8 ff 2a 58 93 07 	movabs $0x793582aff,%rax
140016221:	00 00 00
140016224:	48 3b d0             	cmp    %rax,%rdx
140016227:	7e 04                	jle    0x14001622d
140016229:	48 83 ca ff          	or     $0xffffffffffffffff,%rdx
14001622d:	48 8b ca             	mov    %rdx,%rcx
140016230:	48 8b c2             	mov    %rdx,%rax
140016233:	48 85 db             	test   %rbx,%rbx
140016236:	74 03                	je     0x14001623b
140016238:	48 89 13             	mov    %rdx,(%rbx)
14001623b:	48 83 c4 20          	add    $0x20,%rsp
14001623f:	5b                   	pop    %rbx
140016240:	c3                   	ret
140016241:	cc                   	int3
140016242:	cc                   	int3
140016243:	cc                   	int3
140016244:	40 53                	rex push %rbx
140016246:	48 83 ec 20          	sub    $0x20,%rsp
14001624a:	33 db                	xor    %ebx,%ebx
14001624c:	48 85 c9             	test   %rcx,%rcx
14001624f:	74 0d                	je     0x14001625e
140016251:	48 85 d2             	test   %rdx,%rdx
140016254:	74 08                	je     0x14001625e
140016256:	4d 85 c0             	test   %r8,%r8
140016259:	75 1c                	jne    0x140016277
14001625b:	66 89 19             	mov    %bx,(%rcx)
14001625e:	e8 79 ae 00 00       	call   0x1400210dc
140016263:	bb 16 00 00 00       	mov    $0x16,%ebx
140016268:	89 18                	mov    %ebx,(%rax)
14001626a:	e8 e5 8c ff ff       	call   0x14000ef54
14001626f:	8b c3                	mov    %ebx,%eax
140016271:	48 83 c4 20          	add    $0x20,%rsp
140016275:	5b                   	pop    %rbx
140016276:	c3                   	ret
140016277:	4c 8b c9             	mov    %rcx,%r9
14001627a:	4c 2b c1             	sub    %rcx,%r8
14001627d:	43 0f b7 04 08       	movzwl (%r8,%r9,1),%eax
140016282:	66 41 89 01          	mov    %ax,(%r9)
140016286:	4d 8d 49 02          	lea    0x2(%r9),%r9
14001628a:	66 85 c0             	test   %ax,%ax
14001628d:	74 e0                	je     0x14001626f
14001628f:	48 83 ea 01          	sub    $0x1,%rdx
140016293:	75 e8                	jne    0x14001627d
140016295:	48 85 d2             	test   %rdx,%rdx
140016298:	75 d5                	jne    0x14001626f
14001629a:	66 89 19             	mov    %bx,(%rcx)
14001629d:	e8 3a ae 00 00       	call   0x1400210dc
1400162a2:	bb 22 00 00 00       	mov    $0x22,%ebx
1400162a7:	eb bf                	jmp    0x140016268
1400162a9:	cc                   	int3
1400162aa:	cc                   	int3
1400162ab:	cc                   	int3
1400162ac:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1400162b1:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
1400162b6:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
1400162bb:	57                   	push   %rdi
1400162bc:	41 56                	push   %r14
1400162be:	41 57                	push   %r15
1400162c0:	48 83 ec 20          	sub    $0x20,%rsp
1400162c4:	45 33 ff             	xor    %r15d,%r15d
1400162c7:	41 8b e9             	mov    %r9d,%ebp
1400162ca:	49 8b f0             	mov    %r8,%rsi
1400162cd:	48 8b da             	mov    %rdx,%rbx
1400162d0:	44 8b d1             	mov    %ecx,%r10d
1400162d3:	4c 8b da             	mov    %rdx,%r11
1400162d6:	41 8b ff             	mov    %r15d,%edi
1400162d9:	44 38 7c 24 60       	cmp    %r15b,0x60(%rsp)
1400162de:	74 11                	je     0x1400162f1
1400162e0:	41 8d 47 2d          	lea    0x2d(%r15),%eax
1400162e4:	41 f7 da             	neg    %r10d
1400162e7:	66 89 02             	mov    %ax,(%rdx)
1400162ea:	8d 78 d4             	lea    -0x2c(%rax),%edi
1400162ed:	4c 8d 5a 02          	lea    0x2(%rdx),%r11
1400162f1:	4d 8b c3             	mov    %r11,%r8
1400162f4:	33 d2                	xor    %edx,%edx
1400162f6:	41 8b c2             	mov    %r10d,%eax
1400162f9:	f7 f5                	div    %ebp
1400162fb:	41 8b c2             	mov    %r10d,%eax
1400162fe:	4d 8b cb             	mov    %r11,%r9
140016301:	8b ca                	mov    %edx,%ecx
140016303:	33 d2                	xor    %edx,%edx
140016305:	f7 f5                	div    %ebp
140016307:	83 f9 09             	cmp    $0x9,%ecx
14001630a:	49 8d 53 02          	lea    0x2(%r11),%rdx
14001630e:	44 8b d0             	mov    %eax,%r10d
140016311:	b8 57 00 00 00       	mov    $0x57,%eax
140016316:	44 8d 70 d9          	lea    -0x27(%rax),%r14d
14001631a:	66 41 0f 46 c6       	cmovbe %r14w,%ax
14001631f:	48 ff c7             	inc    %rdi
140016322:	66 03 c1             	add    %cx,%ax
140016325:	66 41 89 03          	mov    %ax,(%r11)
140016329:	45 85 d2             	test   %r10d,%r10d
14001632c:	74 08                	je     0x140016336
14001632e:	4c 8b da             	mov    %rdx,%r11
140016331:	48 3b fe             	cmp    %rsi,%rdi
140016334:	72 be                	jb     0x1400162f4
140016336:	48 3b fe             	cmp    %rsi,%rdi
140016339:	72 19                	jb     0x140016354
14001633b:	66 44 89 3b          	mov    %r15w,(%rbx)
14001633f:	e8 98 ad 00 00       	call   0x1400210dc
140016344:	bb 22 00 00 00       	mov    $0x22,%ebx
140016349:	89 18                	mov    %ebx,(%rax)
14001634b:	e8 04 8c ff ff       	call   0x14000ef54
140016350:	8b c3                	mov    %ebx,%eax
140016352:	eb 23                	jmp    0x140016377
140016354:	66 44 89 3a          	mov    %r15w,(%rdx)
140016358:	41 0f b7 00          	movzwl (%r8),%eax
14001635c:	41 0f b7 09          	movzwl (%r9),%ecx
140016360:	66 41 89 01          	mov    %ax,(%r9)
140016364:	49 83 e9 02          	sub    $0x2,%r9
140016368:	66 41 89 08          	mov    %cx,(%r8)
14001636c:	49 83 c0 02          	add    $0x2,%r8
140016370:	4d 3b c1             	cmp    %r9,%r8
140016373:	72 e3                	jb     0x140016358
140016375:	33 c0                	xor    %eax,%eax
140016377:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
14001637c:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
140016381:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
140016386:	48 83 c4 20          	add    $0x20,%rsp
14001638a:	41 5f                	pop    %r15
14001638c:	41 5e                	pop    %r14
14001638e:	5f                   	pop    %rdi
14001638f:	c3                   	ret
140016390:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140016395:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
14001639a:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
14001639f:	57                   	push   %rdi
1400163a0:	41 56                	push   %r14
1400163a2:	41 57                	push   %r15
1400163a4:	48 83 ec 20          	sub    $0x20,%rsp
1400163a8:	45 33 ff             	xor    %r15d,%r15d
1400163ab:	49 8b f0             	mov    %r8,%rsi
1400163ae:	4c 8b da             	mov    %rdx,%r11
1400163b1:	4c 8b d1             	mov    %rcx,%r10
1400163b4:	48 8b da             	mov    %rdx,%rbx
1400163b7:	41 8b ff             	mov    %r15d,%edi
1400163ba:	44 38 7c 24 60       	cmp    %r15b,0x60(%rsp)
1400163bf:	74 11                	je     0x1400163d2
1400163c1:	41 8d 47 2d          	lea    0x2d(%r15),%eax
1400163c5:	49 f7 da             	neg    %r10
1400163c8:	66 89 02             	mov    %ax,(%rdx)
1400163cb:	8d 78 d4             	lea    -0x2c(%rax),%edi
1400163ce:	48 8d 5a 02          	lea    0x2(%rdx),%rbx
1400163d2:	4c 8b c3             	mov    %rbx,%r8
1400163d5:	41 8b e9             	mov    %r9d,%ebp
1400163d8:	33 d2                	xor    %edx,%edx
1400163da:	49 8b c2             	mov    %r10,%rax
1400163dd:	48 f7 f5             	div    %rbp
1400163e0:	49 8b c2             	mov    %r10,%rax
1400163e3:	4c 8b cb             	mov    %rbx,%r9
1400163e6:	48 8b ca             	mov    %rdx,%rcx
1400163e9:	33 d2                	xor    %edx,%edx
1400163eb:	48 f7 f5             	div    %rbp
1400163ee:	83 f9 09             	cmp    $0x9,%ecx
1400163f1:	48 8d 53 02          	lea    0x2(%rbx),%rdx
1400163f5:	4c 8b d0             	mov    %rax,%r10
1400163f8:	b8 57 00 00 00       	mov    $0x57,%eax
1400163fd:	44 8d 70 d9          	lea    -0x27(%rax),%r14d
140016401:	66 41 0f 46 c6       	cmovbe %r14w,%ax
140016406:	48 ff c7             	inc    %rdi
140016409:	66 03 c1             	add    %cx,%ax
14001640c:	66 89 03             	mov    %ax,(%rbx)
14001640f:	4d 85 d2             	test   %r10,%r10
140016412:	74 08                	je     0x14001641c
140016414:	48 8b da             	mov    %rdx,%rbx
140016417:	48 3b fe             	cmp    %rsi,%rdi
14001641a:	72 bc                	jb     0x1400163d8
14001641c:	48 3b fe             	cmp    %rsi,%rdi
14001641f:	72 19                	jb     0x14001643a
140016421:	66 45 89 3b          	mov    %r15w,(%r11)
140016425:	e8 b2 ac 00 00       	call   0x1400210dc
14001642a:	bb 22 00 00 00       	mov    $0x22,%ebx
14001642f:	89 18                	mov    %ebx,(%rax)
140016431:	e8 1e 8b ff ff       	call   0x14000ef54
140016436:	8b c3                	mov    %ebx,%eax
140016438:	eb 23                	jmp    0x14001645d
14001643a:	66 44 89 3a          	mov    %r15w,(%rdx)
14001643e:	41 0f b7 00          	movzwl (%r8),%eax
140016442:	41 0f b7 09          	movzwl (%r9),%ecx
140016446:	66 41 89 01          	mov    %ax,(%r9)
14001644a:	49 83 e9 02          	sub    $0x2,%r9
14001644e:	66 41 89 08          	mov    %cx,(%r8)
140016452:	49 83 c0 02          	add    $0x2,%r8
140016456:	4d 3b c1             	cmp    %r9,%r8
140016459:	72 e3                	jb     0x14001643e
14001645b:	33 c0                	xor    %eax,%eax
14001645d:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
140016462:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
140016467:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
14001646c:	48 83 c4 20          	add    $0x20,%rsp
140016470:	41 5f                	pop    %r15
140016472:	41 5e                	pop    %r14
140016474:	5f                   	pop    %rdi
140016475:	c3                   	ret
140016476:	cc                   	int3
140016477:	cc                   	int3
140016478:	40 53                	rex push %rbx
14001647a:	48 83 ec 30          	sub    $0x30,%rsp
14001647e:	33 c0                	xor    %eax,%eax
140016480:	44 8b d1             	mov    %ecx,%r10d
140016483:	48 85 d2             	test   %rdx,%rdx
140016486:	75 19                	jne    0x1400164a1
140016488:	e8 4f ac 00 00       	call   0x1400210dc
14001648d:	bb 16 00 00 00       	mov    $0x16,%ebx
140016492:	89 18                	mov    %ebx,(%rax)