140021fd2:	48 83 ec 40          	sub    $0x40,%rsp
140021fd6:	48 63 d9             	movslq %ecx,%rbx
140021fd9:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
140021fde:	e8 bd ef fe ff       	call   0x140010fa0
140021fe3:	8d 43 01             	lea    0x1(%rbx),%eax
140021fe6:	3d 00 01 00 00       	cmp    $0x100,%eax
140021feb:	77 13                	ja     0x140022000
140021fed:	48 8b 44 24 28       	mov    0x28(%rsp),%rax
140021ff2:	48 8b 08             	mov    (%rax),%rcx
140021ff5:	0f b7 04 59          	movzwl (%rcx,%rbx,2),%eax
140021ff9:	25 00 80 00 00       	and    $0x8000,%eax
140021ffe:	eb 02                	jmp    0x140022002
140022000:	33 c0                	xor    %eax,%eax
140022002:	80 7c 24 38 00       	cmpb   $0x0,0x38(%rsp)
140022007:	74 0c                	je     0x140022015
140022009:	48 8b 4c 24 20       	mov    0x20(%rsp),%rcx
14002200e:	83 a1 a8 03 00 00 fd 	andl   $0xfffffffd,0x3a8(%rcx)
140022015:	48 83 c4 40          	add    $0x40,%rsp
140022019:	5b                   	pop    %rbx
14002201a:	c3                   	ret
14002201b:	cc                   	int3
14002201c:	40 53                	rex push %rbx
14002201e:	48 83 ec 20          	sub    $0x20,%rsp
140022022:	33 db                	xor    %ebx,%ebx
140022024:	89 5c 24 30          	mov    %ebx,0x30(%rsp)
140022028:	65 48 8b 04 25 60 00 	mov    %gs:0x60,%rax
14002202f:	00 00
140022031:	48 8b 48 20          	mov    0x20(%rax),%rcx
140022035:	39 59 08             	cmp    %ebx,0x8(%rcx)
140022038:	7c 11                	jl     0x14002204b
14002203a:	48 8d 4c 24 30       	lea    0x30(%rsp),%rcx
14002203f:	e8 20 97 ff ff       	call   0x14001b764
140022044:	83 7c 24 30 01       	cmpl   $0x1,0x30(%rsp)
140022049:	74 05                	je     0x140022050
14002204b:	bb 01 00 00 00       	mov    $0x1,%ebx
140022050:	8b c3                	mov    %ebx,%eax
140022052:	48 83 c4 20          	add    $0x20,%rsp
140022056:	5b                   	pop    %rbx
140022057:	c3                   	ret
140022058:	48 3b ca             	cmp    %rdx,%rcx
14002205b:	73 04                	jae    0x140022061
14002205d:	83 c8 ff             	or     $0xffffffff,%eax
140022060:	c3                   	ret
140022061:	33 c0                	xor    %eax,%eax
140022063:	48 3b ca             	cmp    %rdx,%rcx
140022066:	0f 97 c0             	seta   %al
140022069:	c3                   	ret
14002206a:	cc                   	int3
14002206b:	cc                   	int3
14002206c:	48 8b c4             	mov    %rsp,%rax
14002206f:	48 89 58 08          	mov    %rbx,0x8(%rax)
140022073:	48 89 68 10          	mov    %rbp,0x10(%rax)
140022077:	48 89 70 18          	mov    %rsi,0x18(%rax)
14002207b:	48 89 78 20          	mov    %rdi,0x20(%rax)
14002207f:	41 56                	push   %r14
140022081:	48 83 ec 40          	sub    $0x40,%rsp
140022085:	33 db                	xor    %ebx,%ebx
140022087:	45 8b f0             	mov    %r8d,%r14d
14002208a:	48 8b fa             	mov    %rdx,%rdi
14002208d:	48 8b f1             	mov    %rcx,%rsi
140022090:	48 85 c9             	test   %rcx,%rcx
140022093:	75 22                	jne    0x1400220b7
140022095:	38 5a 28             	cmp    %bl,0x28(%rdx)
140022098:	74 0c                	je     0x1400220a6
14002209a:	48 8b 4a 10          	mov    0x10(%rdx),%rcx
14002209e:	e8 e5 8d ff ff       	call   0x14001ae88
1400220a3:	88 5f 28             	mov    %bl,0x28(%rdi)
1400220a6:	48 89 5f 10          	mov    %rbx,0x10(%rdi)
1400220aa:	48 89 5f 18          	mov    %rbx,0x18(%rdi)
1400220ae:	48 89 5f 20          	mov    %rbx,0x20(%rdi)
1400220b2:	e9 22 01 00 00       	jmp    0x1400221d9
1400220b7:	66 39 19             	cmp    %bx,(%rcx)
1400220ba:	75 54                	jne    0x140022110
1400220bc:	48 39 5a 18          	cmp    %rbx,0x18(%rdx)
1400220c0:	75 46                	jne    0x140022108
1400220c2:	38 5a 28             	cmp    %bl,0x28(%rdx)
1400220c5:	74 0c                	je     0x1400220d3
1400220c7:	48 8b 4a 10          	mov    0x10(%rdx),%rcx
1400220cb:	e8 b8 8d ff ff       	call   0x14001ae88
1400220d0:	88 5f 28             	mov    %bl,0x28(%rdi)
1400220d3:	b9 01 00 00 00       	mov    $0x1,%ecx
1400220d8:	e8 87 a1 ff ff       	call   0x14001c264
1400220dd:	48 89 47 10          	mov    %rax,0x10(%rdi)
1400220e1:	48 8b cb             	mov    %rbx,%rcx
1400220e4:	48 f7 d8             	neg    %rax
1400220e7:	1b d2                	sbb    %edx,%edx
1400220e9:	f7 d2                	not    %edx
1400220eb:	83 e2 0c             	and    $0xc,%edx
1400220ee:	0f 94 c1             	sete   %cl
1400220f1:	85 d2                	test   %edx,%edx
1400220f3:	0f 94 c0             	sete   %al
1400220f6:	88 47 28             	mov    %al,0x28(%rdi)
1400220f9:	48 89 4f 18          	mov    %rcx,0x18(%rdi)
1400220fd:	85 d2                	test   %edx,%edx
1400220ff:	74 07                	je     0x140022108
140022101:	8b da                	mov    %edx,%ebx
140022103:	e9 d1 00 00 00       	jmp    0x1400221d9
140022108:	48 8b 47 10          	mov    0x10(%rdi),%rax
14002210c:	88 18                	mov    %bl,(%rax)
14002210e:	eb 9e                	jmp    0x1400220ae
140022110:	48 89 5c 24 38       	mov    %rbx,0x38(%rsp)
140022115:	41 83 c9 ff          	or     $0xffffffff,%r9d
140022119:	48 89 5c 24 30       	mov    %rbx,0x30(%rsp)
14002211e:	4c 8b c6             	mov    %rsi,%r8
140022121:	89 5c 24 28          	mov    %ebx,0x28(%rsp)
140022125:	33 d2                	xor    %edx,%edx
140022127:	41 8b ce             	mov    %r14d,%ecx
14002212a:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
14002212f:	e8 28 fc ff ff       	call   0x140021d5c
140022134:	48 63 e8             	movslq %eax,%rbp
140022137:	85 c0                	test   %eax,%eax
140022139:	75 19                	jne    0x140022154
14002213b:	ff 15 1f 9f 00 00    	call   *0x9f1f(%rip)        # 0x14002c060
140022141:	8b c8                	mov    %eax,%ecx
140022143:	e8 34 28 ff ff       	call   0x14001497c
140022148:	e8 9f 28 ff ff       	call   0x1400149ec
14002214d:	8b 18                	mov    (%rax),%ebx
14002214f:	e9 85 00 00 00       	jmp    0x1400221d9
140022154:	48 8b 4f 18          	mov    0x18(%rdi),%rcx
140022158:	48 3b e9             	cmp    %rcx,%rbp
14002215b:	76 42                	jbe    0x14002219f
14002215d:	38 5f 28             	cmp    %bl,0x28(%rdi)
140022160:	74 0c                	je     0x14002216e
140022162:	48 8b 4f 10          	mov    0x10(%rdi),%rcx
140022166:	e8 1d 8d ff ff       	call   0x14001ae88
14002216b:	88 5f 28             	mov    %bl,0x28(%rdi)
14002216e:	48 8b cd             	mov    %rbp,%rcx
140022171:	e8 ee a0 ff ff       	call   0x14001c264
140022176:	48 89 47 10          	mov    %rax,0x10(%rdi)
14002217a:	48 8b cb             	mov    %rbx,%rcx
14002217d:	48 f7 d8             	neg    %rax
140022180:	1b d2                	sbb    %edx,%edx
140022182:	f7 d2                	not    %edx
140022184:	83 e2 0c             	and    $0xc,%edx
140022187:	48 0f 44 cd          	cmove  %rbp,%rcx
14002218b:	85 d2                	test   %edx,%edx
14002218d:	0f 94 c0             	sete   %al
140022190:	88 47 28             	mov    %al,0x28(%rdi)
140022193:	48 89 4f 18          	mov    %rcx,0x18(%rdi)
140022197:	85 d2                	test   %edx,%edx
140022199:	0f 85 62 ff ff ff    	jne    0x140022101
14002219f:	48 8b 47 10          	mov    0x10(%rdi),%rax
1400221a3:	41 83 c9 ff          	or     $0xffffffff,%r9d
1400221a7:	48 89 5c 24 38       	mov    %rbx,0x38(%rsp)
1400221ac:	4c 8b c6             	mov    %rsi,%r8
1400221af:	48 89 5c 24 30       	mov    %rbx,0x30(%rsp)
1400221b4:	33 d2                	xor    %edx,%edx
1400221b6:	89 4c 24 28          	mov    %ecx,0x28(%rsp)
1400221ba:	41 8b ce             	mov    %r14d,%ecx
1400221bd:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
1400221c2:	e8 95 fb ff ff       	call   0x140021d5c
1400221c7:	48 63 c8             	movslq %eax,%rcx
1400221ca:	85 c0                	test   %eax,%eax
1400221cc:	0f 84 69 ff ff ff    	je     0x14002213b
1400221d2:	48 ff c9             	dec    %rcx
1400221d5:	48 89 4f 20          	mov    %rcx,0x20(%rdi)
1400221d9:	48 8b 6c 24 58       	mov    0x58(%rsp),%rbp
1400221de:	8b c3                	mov    %ebx,%eax
1400221e0:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
1400221e5:	48 8b 74 24 60       	mov    0x60(%rsp),%rsi
1400221ea:	48 8b 7c 24 68       	mov    0x68(%rsp),%rdi
1400221ef:	48 83 c4 40          	add    $0x40,%rsp
1400221f3:	41 5e                	pop    %r14
1400221f5:	c3                   	ret
1400221f6:	cc                   	int3
1400221f7:	cc                   	int3
1400221f8:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1400221fd:	48 89 54 24 10       	mov    %rdx,0x10(%rsp)
140022202:	55                   	push   %rbp
140022203:	56                   	push   %rsi
140022204:	57                   	push   %rdi
140022205:	41 54                	push   %r12
140022207:	41 55                	push   %r13
140022209:	41 56                	push   %r14
14002220b:	41 57                	push   %r15
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