140021f55:	4c 8b 07             	mov    (%rdi),%r8
140021f58:	41 8b ce             	mov    %r14d,%ecx
140021f5b:	49 8b c0             	mov    %r8,%rax
140021f5e:	48 23 c5             	and    %rbp,%rax
140021f61:	49 23 c4             	and    %r12,%rax
140021f64:	48 d3 e8             	shr    %cl,%rax
140021f67:	66 83 f8 08          	cmp    $0x8,%ax
140021f6b:	76 07                	jbe    0x140021f74
140021f6d:	ba 01 00 00 00       	mov    $0x1,%edx
140021f72:	eb 4f                	jmp    0x140021fc3
140021f74:	73 05                	jae    0x140021f7b
140021f76:	41 8a d7             	mov    %r15b,%dl
140021f79:	eb 48                	jmp    0x140021fc3
140021f7b:	ba 01 00 00 00       	mov    $0x1,%edx
140021f80:	8b c2                	mov    %edx,%eax
140021f82:	48 d3 e0             	shl    %cl,%rax
140021f85:	48 2b c2             	sub    %rdx,%rax
140021f88:	49 23 c0             	and    %r8,%rax
140021f8b:	49 85 c4             	test   %rax,%r12
140021f8e:	75 33                	jne    0x140021fc3
140021f90:	41 83 fe 30          	cmp    $0x30,%r14d
140021f94:	74 19                	je     0x140021faf
140021f96:	49 c1 e8 04          	shr    $0x4,%r8
140021f9a:	48 b8 ff ff ff ff ff 	movabs $0xffffffffffff,%rax
140021fa1:	ff 00 00
140021fa4:	4c 23 c5             	and    %rbp,%r8
140021fa7:	4c 23 c0             	and    %rax,%r8
140021faa:	49 d3 e8             	shr    %cl,%r8
140021fad:	eb 11                	jmp    0x140021fc0
140021faf:	48 b8 00 00 00 00 00 	movabs $0x7ff0000000000000,%rax
140021fb6:	00 f0 7f
140021fb9:	4c 85 c0             	test   %r8,%rax
140021fbc:	41 0f 95 c0          	setne  %r8b
140021fc0:	41 22 d0             	and    %r8b,%dl
140021fc3:	8a c2                	mov    %dl,%al
140021fc5:	eb 28                	jmp    0x140021fef
140021fc7:	3d 00 02 00 00       	cmp    $0x200,%eax
140021fcc:	75 0c                	jne    0x140021fda
140021fce:	66 85 db             	test   %bx,%bx
140021fd1:	74 a3                	je     0x140021f76
140021fd3:	4c 39 3f             	cmp    %r15,(%rdi)
140021fd6:	7c 9e                	jl     0x140021f76
140021fd8:	eb 93                	jmp    0x140021f6d
140021fda:	3d 00 01 00 00       	cmp    $0x100,%eax
140021fdf:	75 0c                	jne    0x140021fed
140021fe1:	66 85 db             	test   %bx,%bx
140021fe4:	74 90                	je     0x140021f76
140021fe6:	4c 39 3f             	cmp    %r15,(%rdi)
140021fe9:	7d 8b                	jge    0x140021f76
140021feb:	eb 80                	jmp    0x140021f6d
140021fed:	32 c0                	xor    %al,%al
140021fef:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
140021ff4:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
140021ff9:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
140021ffe:	48 8b 7c 24 58       	mov    0x58(%rsp),%rdi
140022003:	48 83 c4 20          	add    $0x20,%rsp
140022007:	41 5f                	pop    %r15
140022009:	41 5e                	pop    %r14
14002200b:	41 5c                	pop    %r12
14002200d:	c3                   	ret
14002200e:	cc                   	int3
14002200f:	cc                   	int3
140022010:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140022015:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
14002201a:	57                   	push   %rdi
14002201b:	48 83 ec 50          	sub    $0x50,%rsp
14002201f:	4d 8b d8             	mov    %r8,%r11
140022022:	4c 8b d2             	mov    %rdx,%r10
140022025:	48 8b f9             	mov    %rcx,%rdi
140022028:	48 85 d2             	test   %rdx,%rdx
14002202b:	75 33                	jne    0x140022060
14002202d:	48 8b 8c 24 a8 00 00 	mov    0xa8(%rsp),%rcx
140022034:	00
140022035:	8d 5a 16             	lea    0x16(%rdx),%ebx
140022038:	48 89 4c 24 28       	mov    %rcx,0x28(%rsp)
14002203d:	c6 41 30 01          	movb   $0x1,0x30(%rcx)
140022041:	89 59 2c             	mov    %ebx,0x2c(%rcx)
140022044:	48 83 64 24 20 00    	andq   $0x0,0x20(%rsp)
14002204a:	45 33 c9             	xor    %r9d,%r9d
14002204d:	45 33 c0             	xor    %r8d,%r8d
140022050:	33 d2                	xor    %edx,%edx
140022052:	33 c9                	xor    %ecx,%ecx
140022054:	e8 2f ce fe ff       	call   0x14000ee88
140022059:	8b c3                	mov    %ebx,%eax
14002205b:	e9 6f 02 00 00       	jmp    0x1400222cf
140022060:	4d 85 db             	test   %r11,%r11
140022063:	75 1b                	jne    0x140022080
140022065:	48 8b 84 24 a8 00 00 	mov    0xa8(%rsp),%rax
14002206c:	00
14002206d:	bb 16 00 00 00       	mov    $0x16,%ebx
140022072:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
140022077:	c6 40 30 01          	movb   $0x1,0x30(%rax)
14002207b:	89 58 2c             	mov    %ebx,0x2c(%rax)
14002207e:	eb c4                	jmp    0x140022044
140022080:	4d 85 c9             	test   %r9,%r9
140022083:	74 e0                	je     0x140022065
140022085:	4c 8b 84 24 80 00 00 	mov    0x80(%rsp),%r8
14002208c:	00
14002208d:	4d 85 c0             	test   %r8,%r8
140022090:	74 d3                	je     0x140022065
140022092:	8b 8c 24 88 00 00 00 	mov    0x88(%rsp),%ecx
140022099:	83 f9 41             	cmp    $0x41,%ecx
14002209c:	74 0d                	je     0x1400220ab
14002209e:	8d 41 bb             	lea    -0x45(%rcx),%eax
1400220a1:	83 f8 02             	cmp    $0x2,%eax
1400220a4:	76 05                	jbe    0x1400220ab
1400220a6:	40 32 f6             	xor    %sil,%sil
1400220a9:	eb 03                	jmp    0x1400220ae
1400220ab:	40 b6 01             	mov    $0x1,%sil
1400220ae:	48 8b 9c 24 98 00 00 	mov    0x98(%rsp),%rbx
1400220b5:	00
1400220b6:	f6 c3 08             	test   $0x8,%bl
1400220b9:	0f 85 e6 00 00 00    	jne    0x1400221a5
1400220bf:	48 8b 17             	mov    (%rdi),%rdx
1400220c2:	48 8b c2             	mov    %rdx,%rax
1400220c5:	48 c1 e8 34          	shr    $0x34,%rax
1400220c9:	25 ff 07 00 00       	and    $0x7ff,%eax
1400220ce:	48 3d ff 07 00 00    	cmp    $0x7ff,%rax
1400220d4:	0f 85 cb 00 00 00    	jne    0x1400221a5
1400220da:	48 b9 ff ff ff ff ff 	movabs $0xfffffffffffff,%rcx
1400220e1:	ff 0f 00
1400220e4:	48 8b c2             	mov    %rdx,%rax
1400220e7:	41 b8 0c 00 00 00    	mov    $0xc,%r8d
1400220ed:	48 23 c1             	and    %rcx,%rax
1400220f0:	75 04                	jne    0x1400220f6
1400220f2:	33 c9                	xor    %ecx,%ecx
1400220f4:	eb 2d                	jmp    0x140022123
1400220f6:	48 b9 00 00 00 00 00 	movabs $0x8000000000000,%rcx
1400220fd:	00 08 00
140022100:	48 85 d2             	test   %rdx,%rdx
140022103:	79 0a                	jns    0x14002210f
140022105:	48 3b c1             	cmp    %rcx,%rax
140022108:	75 05                	jne    0x14002210f
14002210a:	49 8b c8             	mov    %r8,%rcx
14002210d:	eb 14                	jmp    0x140022123
14002210f:	48 8b c2             	mov    %rdx,%rax
140022112:	48 23 c1             	and    %rcx,%rax
140022115:	48 f7 d8             	neg    %rax
140022118:	48 1b c9             	sbb    %rcx,%rcx
14002211b:	48 83 e1 fc          	and    $0xfffffffffffffffc,%rcx
14002211f:	48 83 c1 08          	add    $0x8,%rcx
140022123:	48 c1 ea 3f          	shr    $0x3f,%rdx
140022127:	48 8d 42 04          	lea    0x4(%rdx),%rax
14002212b:	4c 3b d8             	cmp    %rax,%r11
14002212e:	73 06                	jae    0x140022136
140022130:	41 c6 02 00          	movb   $0x0,(%r10)
140022134:	eb 67                	jmp    0x14002219d
140022136:	49 83 c8 ff          	or     $0xffffffffffffffff,%r8
14002213a:	84 d2                	test   %dl,%dl
14002213c:	74 13                	je     0x140022151
14002213e:	41 c6 02 2d          	movb   $0x2d,(%r10)
140022142:	49 ff c2             	inc    %r10
140022145:	41 c6 02 00          	movb   $0x0,(%r10)
140022149:	4d 3b d8             	cmp    %r8,%r11
14002214c:	74 03                	je     0x140022151
14002214e:	49 ff cb             	dec    %r11
140022151:	40 0f b6 d6          	movzbl %sil,%edx
140022155:	48 8d 1d 14 d8 01 00 	lea    0x1d814(%rip),%rbx        # 0x14003f970
14002215c:	83 f2 01             	xor    $0x1,%edx
14002215f:	03 d2                	add    %edx,%edx
140022161:	8b c2                	mov    %edx,%eax
140022163:	48 03 c1             	add    %rcx,%rax
140022166:	4c 8b 0c c3          	mov    (%rbx,%rax,8),%r9
14002216a:	49 ff c0             	inc    %r8
14002216d:	43 80 3c 01 00       	cmpb   $0x0,(%r9,%r8,1)
140022172:	75 f6                	jne    0x14002216a
140022174:	33 c0                	xor    %eax,%eax
140022176:	4d 3b d8             	cmp    %r8,%r11
140022179:	0f 96 c0             	setbe  %al
14002217c:	44 8d 04 02          	lea    (%rdx,%rax,1),%r8d
140022180:	49 8b d3             	mov    %r11,%rdx
140022183:	4c 03 c1             	add    %rcx,%r8
140022186:	49 8b ca             	mov    %r10,%rcx
140022189:	4e 8b 04 c3          	mov    (%rbx,%r8,8),%r8
14002218d:	e8 a6 e6 ff ff       	call   0x140020838
140022192:	85 c0                	test   %eax,%eax
140022194:	0f 85 45 01 00 00    	jne    0x1400222df
14002219a:	45 33 c0             	xor    %r8d,%r8d
14002219d:	41 8b c0             	mov    %r8d,%eax
1400221a0:	e9 2a 01 00 00       	jmp    0x1400222cf
1400221a5:	48 8b d3             	mov    %rbx,%rdx
1400221a8:	80 e3 20             	and    $0x20,%bl
1400221ab:	48 c1 ea 04          	shr    $0x4,%rdx
1400221af:	83 e2 01             	and    $0x1,%edx
1400221b2:	83 ca 02             	or     $0x2,%edx
1400221b5:	f6 db                	neg    %bl
1400221b7:	1b db                	sbb    %ebx,%ebx
1400221b9:	23 9c 24 a0 00 00 00 	and    0xa0(%rsp),%ebx
1400221c0:	83 e9 41             	sub    $0x41,%ecx
1400221c3:	0f 84 ce 00 00 00    	je     0x140022297
1400221c9:	83 e9 04             	sub    $0x4,%ecx
1400221cc:	0f 84 8b 00 00 00    	je     0x14002225d
1400221d2:	83 e9 01             	sub    $0x1,%ecx
1400221d5:	74 55                	je     0x14002222c
1400221d7:	83 e9 01             	sub    $0x1,%ecx
1400221da:	74 13                	je     0x1400221ef
1400221dc:	83 e9 1a             	sub    $0x1a,%ecx
1400221df:	0f 84 b2 00 00 00    	je     0x140022297
1400221e5:	83 e9 04             	sub    $0x4,%ecx
1400221e8:	74 73                	je     0x14002225d
1400221ea:	83 f9 01             	cmp    $0x1,%ecx
1400221ed:	74 3d                	je     0x14002222c
1400221ef:	48 8b 84 24 a8 00 00 	mov    0xa8(%rsp),%rax
1400221f6:	00
1400221f7:	48 8b cf             	mov    %rdi,%rcx
1400221fa:	48 89 44 24 48       	mov    %rax,0x48(%rsp)
1400221ff:	8b 84 24 90 00 00 00 	mov    0x90(%rsp),%eax
140022206:	89 5c 24 40          	mov    %ebx,0x40(%rsp)
14002220a:	89 54 24 38          	mov    %edx,0x38(%rsp)
14002220e:	49 8b d2             	mov    %r10,%rdx
140022211:	40 88 74 24 30       	mov    %sil,0x30(%rsp)
140022216:	89 44 24 28          	mov    %eax,0x28(%rsp)
14002221a:	4c 89 44 24 20       	mov    %r8,0x20(%rsp)
14002221f:	4d 8b c3             	mov    %r11,%r8
140022222:	e8 7d fb ff ff       	call   0x140021da4
140022227:	e9 a3 00 00 00       	jmp    0x1400222cf
14002222c:	48 8b 84 24 a8 00 00 	mov    0xa8(%rsp),%rax
140022233:	00
140022234:	49 8b d2             	mov    %r10,%rdx
140022237:	48 89 44 24 38       	mov    %rax,0x38(%rsp)
14002223c:	48 8b cf             	mov    %rdi,%rcx
14002223f:	8b 84 24 90 00 00 00 	mov    0x90(%rsp),%eax
140022246:	89 5c 24 30          	mov    %ebx,0x30(%rsp)
14002224a:	89 44 24 28          	mov    %eax,0x28(%rsp)
14002224e:	4c 89 44 24 20       	mov    %r8,0x20(%rsp)
140022253:	4d 8b c3             	mov    %r11,%r8
140022256:	e8 19 f9 ff ff       	call   0x140021b74
14002225b:	eb 72                	jmp    0x1400222cf
14002225d:	48 8b 84 24 a8 00 00 	mov    0xa8(%rsp),%rax
140022264:	00
140022265:	48 8b cf             	mov    %rdi,%rcx
140022268:	48 89 44 24 48       	mov    %rax,0x48(%rsp)
14002226d:	8b 84 24 90 00 00 00 	mov    0x90(%rsp),%eax
140022274:	89 5c 24 40          	mov    %ebx,0x40(%rsp)
140022278:	89 54 24 38          	mov    %edx,0x38(%rsp)
14002227c:	49 8b d2             	mov    %r10,%rdx
14002227f:	40 88 74 24 30       	mov    %sil,0x30(%rsp)
140022284:	89 44 24 28          	mov    %eax,0x28(%rsp)
140022288:	4c 89 44 24 20       	mov    %r8,0x20(%rsp)
14002228d:	4d 8b c3             	mov    %r11,%r8
140022290:	e8 ff f5 ff ff       	call   0x140021894
140022295:	eb 38                	jmp    0x1400222cf
140022297:	48 8b 84 24 a8 00 00 	mov    0xa8(%rsp),%rax
14002229e:	00
14002229f:	48 8b cf             	mov    %rdi,%rcx
1400222a2:	48 89 44 24 48       	mov    %rax,0x48(%rsp)
1400222a7:	8b 84 24 90 00 00 00 	mov    0x90(%rsp),%eax
1400222ae:	89 5c 24 40          	mov    %ebx,0x40(%rsp)
1400222b2:	89 54 24 38          	mov    %edx,0x38(%rsp)
1400222b6:	49 8b d2             	mov    %r10,%rdx
1400222b9:	40 88 74 24 30       	mov    %sil,0x30(%rsp)
1400222be:	89 44 24 28          	mov    %eax,0x28(%rsp)
1400222c2:	4c 89 44 24 20       	mov    %r8,0x20(%rsp)
1400222c7:	4d 8b c3             	mov    %r11,%r8
1400222ca:	e8 2d f2 ff ff       	call   0x1400214fc
1400222cf:	48 8b 5c 24 60       	mov    0x60(%rsp),%rbx
1400222d4:	48 8b 74 24 68       	mov    0x68(%rsp),%rsi
1400222d9:	48 83 c4 50          	add    $0x50,%rsp
1400222dd:	5f                   	pop    %rdi
1400222de:	c3                   	ret
1400222df:	48 83 64 24 20 00    	andq   $0x0,0x20(%rsp)
1400222e5:	45 33 c9             	xor    %r9d,%r9d
1400222e8:	45 33 c0             	xor    %r8d,%r8d
1400222eb:	33 d2                	xor    %edx,%edx
1400222ed:	33 c9                	xor    %ecx,%ecx
1400222ef:	e8 b0 cc fe ff       	call   0x14000efa4
1400222f4:	cc                   	int3
1400222f5:	cc                   	int3
1400222f6:	cc                   	int3
1400222f7:	cc                   	int3
1400222f8:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1400222fd:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
140022302:	66 44 89 4c 24 20    	mov    %r9w,0x20(%rsp)
140022308:	56                   	push   %rsi
140022309:	57                   	push   %rdi
14002230a:	41 56                	push   %r14
14002230c:	48 83 ec 40          	sub    $0x40,%rsp
140022310:	33 db                	xor    %ebx,%ebx
140022312:	49 8b e8             	mov    %r8,%rbp
140022315:	4c 8b f2             	mov    %rdx,%r14
140022318:	48 8b f1             	mov    %rcx,%rsi
14002231b:	48 85 d2             	test   %rdx,%rdx
14002231e:	75 15                	jne    0x140022335
140022320:	4d 85 c0             	test   %r8,%r8
140022323:	74 10                	je     0x140022335
140022325:	48 85 c9             	test   %rcx,%rcx
140022328:	0f 84 24 01 00 00    	je     0x140022452
14002232e:	89 19                	mov    %ebx,(%rcx)
140022330:	e9 1d 01 00 00       	jmp    0x140022452
140022335:	48 85 f6             	test   %rsi,%rsi
140022338:	74 03                	je     0x14002233d
14002233a:	83 09 ff             	orl    $0xffffffff,(%rcx)
14002233d:	48 8b bc 24 80 00 00 	mov    0x80(%rsp),%rdi
140022344:	00
140022345:	48 81 fd ff ff ff 7f 	cmp    $0x7fffffff,%rbp
14002234c:	76 0a                	jbe    0x140022358
14002234e:	be 16 00 00 00       	mov    $0x16,%esi
140022353:	e9 29 01 00 00       	jmp    0x140022481
140022358:	38 5f 28             	cmp    %bl,0x28(%rdi)
14002235b:	75 0e                	jne    0x14002236b
14002235d:	48 8b cf             	mov    %rdi,%rcx
140022360:	e8 db 22 ff ff       	call   0x140014640
140022365:	44 0f b7 4c 24 78    	movzwl 0x78(%rsp),%r9d
14002236b:	48 8b 47 18          	mov    0x18(%rdi),%rax
14002236f:	8b 48 0c             	mov    0xc(%rax),%ecx
140022372:	81 f9 e9 fd 00 00    	cmp    $0xfde9,%ecx
140022378:	75 35                	jne    0x1400223af
14002237a:	41 0f b7 d1          	movzwl %r9w,%edx
14002237e:	4c 8d 44 24 68       	lea    0x68(%rsp),%r8
140022383:	4c 8b cf             	mov    %rdi,%r9
140022386:	48 89 5c 24 68       	mov    %rbx,0x68(%rsp)
14002238b:	49 8b ce             	mov    %r14,%rcx
14002238e:	e8 d9 be 00 00       	call   0x14002e26c
140022393:	48 85 f6             	test   %rsi,%rsi
140022396:	74 02                	je     0x14002239a
140022398:	89 06                	mov    %eax,(%rsi)
14002239a:	83 f8 04             	cmp    $0x4,%eax
14002239d:	0f 8e af 00 00 00    	jle    0x140022452
1400223a3:	38 5f 30             	cmp    %bl,0x30(%rdi)
1400223a6:	74 03                	je     0x1400223ab
1400223a8:	8b 5f 2c             	mov    0x2c(%rdi),%ebx
1400223ab:	8b c3                	mov    %ebx,%eax
1400223ad:	eb 37                	jmp    0x1400223e6
1400223af:	48 39 98 38 01 00 00 	cmp    %rbx,0x138(%rax)
1400223b6:	75 5b                	jne    0x140022413
1400223b8:	b8 ff 00 00 00       	mov    $0xff,%eax
1400223bd:	66 44 3b c8          	cmp    %ax,%r9w
1400223c1:	76 36                	jbe    0x1400223f9
1400223c3:	4d 85 f6             	test   %r14,%r14
1400223c6:	74 12                	je     0x1400223da
1400223c8:	48 85 ed             	test   %rbp,%rbp
1400223cb:	74 0d                	je     0x1400223da
1400223cd:	4c 8b c5             	mov    %rbp,%r8
1400223d0:	33 d2                	xor    %edx,%edx
1400223d2:	49 8b ce             	mov    %r14,%rcx
1400223d5:	e8 d6 8a 01 00       	call   0x14003aeb0
1400223da:	b8 2a 00 00 00       	mov    $0x2a,%eax
1400223df:	89 47 2c             	mov    %eax,0x2c(%rdi)
1400223e2:	c6 47 30 01          	movb   $0x1,0x30(%rdi)
1400223e6:	48 8b 5c 24 60       	mov    0x60(%rsp),%rbx
1400223eb:	48 8b 6c 24 70       	mov    0x70(%rsp),%rbp
1400223f0:	48 83 c4 40          	add    $0x40,%rsp
1400223f4:	41 5e                	pop    %r14
1400223f6:	5f                   	pop    %rdi
1400223f7:	5e                   	pop    %rsi
1400223f8:	c3                   	ret
1400223f9:	4d 85 f6             	test   %r14,%r14
1400223fc:	74 08                	je     0x140022406
1400223fe:	48 85 ed             	test   %rbp,%rbp
140022401:	74 79                	je     0x14002247c