140022d6e:	66 66 2e 0f 1f 84 00 	data16 cs nopw 0x0(%rax,%rax,1)
140022d75:	00 00 00 00
140022d79:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
140022d80:	41 8b 00             	mov    (%r8),%eax
140022d83:	89 f9                	mov    %edi,%ecx
140022d85:	48 83 c6 04          	add    $0x4,%rsi
140022d89:	49 83 c0 04          	add    $0x4,%r8
140022d8d:	d3 e0                	shl    %cl,%eax
140022d8f:	89 d1                	mov    %edx,%ecx
140022d91:	44 09 c8             	or     %r9d,%eax
140022d94:	89 46 fc             	mov    %eax,-0x4(%rsi)
140022d97:	45 8b 48 fc          	mov    -0x4(%r8),%r9d
140022d9b:	41 d3 e9             	shr    %cl,%r9d
140022d9e:	4d 39 d8             	cmp    %r11,%r8
140022da1:	72 dd                	jb     0x140022d80
140022da3:	48 29 eb             	sub    %rbp,%rbx
140022da6:	49 8d 44 9c fc       	lea    -0x4(%r12,%rbx,4),%rax
140022dab:	44 89 08             	mov    %r9d,(%rax)
140022dae:	45 85 c9             	test   %r9d,%r9d
140022db1:	74 2a                	je     0x140022ddd
140022db3:	48 83 c0 04          	add    $0x4,%rax
140022db7:	eb 24                	jmp    0x140022ddd
140022db9:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
140022dc0:	4c 89 e7             	mov    %r12,%rdi
140022dc3:	4c 39 de             	cmp    %r11,%rsi
140022dc6:	0f 83 4a ff ff ff    	jae    0x140022d16
140022dcc:	0f 1f 40 00          	nopl   0x0(%rax)
140022dd0:	a5                   	movsl  %ds:(%rsi),%es:(%rdi)
140022dd1:	4c 39 de             	cmp    %r11,%rsi
140022dd4:	72 fa                	jb     0x140022dd0
140022dd6:	48 29 eb             	sub    %rbp,%rbx
140022dd9:	49 8d 04 9c          	lea    (%r12,%rbx,4),%rax
140022ddd:	4c 29 e0             	sub    %r12,%rax
140022de0:	48 c1 f8 02          	sar    $0x2,%rax
140022de4:	41 89 42 14          	mov    %eax,0x14(%r10)
140022de8:	85 c0                	test   %eax,%eax
140022dea:	0f 84 2e ff ff ff    	je     0x140022d1e
140022df0:	5b                   	pop    %rbx
140022df1:	5e                   	pop    %rsi
140022df2:	5f                   	pop    %rdi
140022df3:	5d                   	pop    %rbp
140022df4:	41 5c                	pop    %r12
140022df6:	c3                   	ret
140022df7:	66 0f 1f 84 00 00 00 	nopw   0x0(%rax,%rax,1)
140022dfe:	00 00
140022e00:	45 89 4a 18          	mov    %r9d,0x18(%r10)
140022e04:	45 85 c9             	test   %r9d,%r9d
140022e07:	0f 84 09 ff ff ff    	je     0x140022d16
140022e0d:	4c 89 e0             	mov    %r12,%rax
140022e10:	eb a1                	jmp    0x140022db3
140022e12:	66 66 2e 0f 1f 84 00 	data16 cs nopw 0x0(%rax,%rax,1)
140022e19:	00 00 00 00
140022e1d:	0f 1f 00             	nopl   (%rax)
140022e20:	48 63 51 14          	movslq 0x14(%rcx),%rdx
140022e24:	48 8d 41 18          	lea    0x18(%rcx),%rax
140022e28:	48 8d 0c 90          	lea    (%rax,%rdx,4),%rcx
140022e2c:	31 d2                	xor    %edx,%edx
140022e2e:	48 39 c8             	cmp    %rcx,%rax
140022e31:	72 19                	jb     0x140022e4c
140022e33:	eb 2a                	jmp    0x140022e5f
140022e35:	66 66 2e 0f 1f 84 00 	data16 cs nopw 0x0(%rax,%rax,1)
140022e3c:	00 00 00 00
140022e40:	48 83 c0 04          	add    $0x4,%rax
140022e44:	83 c2 20             	add    $0x20,%edx
140022e47:	48 39 c8             	cmp    %rcx,%rax
140022e4a:	73 13                	jae    0x140022e5f
140022e4c:	44 8b 00             	mov    (%rax),%r8d
140022e4f:	45 85 c0             	test   %r8d,%r8d
140022e52:	74 ec                	je     0x140022e40
140022e54:	48 39 c8             	cmp    %rcx,%rax
140022e57:	73 06                	jae    0x140022e5f
140022e59:	f3 0f bc 00          	tzcnt  (%rax),%eax
140022e5d:	01 c2                	add    %eax,%edx
140022e5f:	89 d0                	mov    %edx,%eax
140022e61:	c3                   	ret
140022e62:	90                   	nop
140022e63:	90                   	nop
140022e64:	90                   	nop
140022e65:	90                   	nop
140022e66:	90                   	nop
140022e67:	90                   	nop
140022e68:	90                   	nop
140022e69:	90                   	nop
140022e6a:	90                   	nop
140022e6b:	90                   	nop
140022e6c:	90                   	nop
140022e6d:	90                   	nop
140022e6e:	90                   	nop
140022e6f:	90                   	nop
140022e70:	90                   	nop
140022e71:	90                   	nop
140022e72:	90                   	nop
140022e73:	90                   	nop
140022e74:	90                   	nop
140022e75:	90                   	nop
140022e76:	90                   	nop
140022e77:	90                   	nop
140022e78:	90                   	nop
140022e79:	90                   	nop
140022e7a:	90                   	nop
140022e7b:	90                   	nop
140022e7c:	90                   	nop
140022e7d:	90                   	nop
140022e7e:	90                   	nop
140022e7f:	90                   	nop
140022e80:	41 57                	push   %r15
140022e82:	41 56                	push   %r14
140022e84:	41 55                	push   %r13
140022e86:	41 54                	push   %r12
140022e88:	55                   	push   %rbp
140022e89:	57                   	push   %rdi
140022e8a:	56                   	push   %rsi
140022e8b:	53                   	push   %rbx
140022e8c:	48 83 ec 38          	sub    $0x38,%rsp
140022e90:	8b 02                	mov    (%rdx),%eax
140022e92:	89 c2                	mov    %eax,%edx
140022e94:	c1 fa 05             	sar    $0x5,%edx
140022e97:	83 e0 1f             	and    $0x1f,%eax
140022e9a:	48 63 d2             	movslq %edx,%rdx
140022e9d:	49 89 cb             	mov    %rcx,%r11
140022ea0:	4d 89 c4             	mov    %r8,%r12
140022ea3:	89 c5                	mov    %eax,%ebp
140022ea5:	49 8d 14 90          	lea    (%r8,%rdx,4),%rdx
140022ea9:	0f 85 01 03 00 00    	jne    0x1400231b0
140022eaf:	48 8d 42 fc          	lea    -0x4(%rdx),%rax
140022eb3:	49 89 d5             	mov    %rdx,%r13
140022eb6:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
140022ebb:	4d 8b 03             	mov    (%r11),%r8
140022ebe:	41 c7 45 fc 00 00 00 	movl   $0x0,-0x4(%r13)
140022ec5:	00
140022ec6:	41 0f b6 40 01       	movzbl 0x1(%r8),%eax
140022ecb:	89 c2                	mov    %eax,%edx
140022ecd:	85 c0                	test   %eax,%eax
140022ecf:	75 1e                	jne    0x140022eef
140022ed1:	e9 ba 02 00 00       	jmp    0x140023190
140022ed6:	66 2e 0f 1f 84 00 00 	cs nopw 0x0(%rax,%rax,1)
140022edd:	00 00 00
140022ee0:	41 0f b6 40 02       	movzbl 0x2(%r8),%eax
140022ee5:	49 83 c0 01          	add    $0x1,%r8
140022ee9:	89 c2                	mov    %eax,%edx
140022eeb:	85 c0                	test   %eax,%eax
140022eed:	74 21                	je     0x140022f10
140022eef:	83 f8 20             	cmp    $0x20,%eax
140022ef2:	76 ec                	jbe    0x140022ee0
140022ef4:	80 fa 30             	cmp    $0x30,%dl
140022ef7:	75 17                	jne    0x140022f10
140022ef9:	41 0f b6 40 02       	movzbl 0x2(%r8),%eax
140022efe:	83 e0 df             	and    $0xffffffdf,%eax
140022f01:	3c 58                	cmp    $0x58,%al
140022f03:	0f 84 df 02 00 00    	je     0x1400231e8
140022f09:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
140022f10:	41 0f b6 40 01       	movzbl 0x1(%r8),%eax
140022f15:	4d 8d 48 01          	lea    0x1(%r8),%r9
140022f19:	85 c0                	test   %eax,%eax
140022f1b:	0f 84 6f 02 00 00    	je     0x140023190
140022f21:	48 8b 5c 24 20       	mov    0x20(%rsp),%rbx
140022f26:	45 31 f6             	xor    %r14d,%r14d
140022f29:	89 6c 24 2c          	mov    %ebp,0x2c(%rsp)
140022f2d:	45 31 d2             	xor    %r10d,%r10d
140022f30:	4c 89 9c 24 80 00 00 	mov    %r11,0x80(%rsp)
140022f37:	00
140022f38:	4c 8b 3d c1 3c 02 00 	mov    0x23cc1(%rip),%r15        # 0x140046c00
140022f3f:	31 ff                	xor    %edi,%edi
140022f41:	44 89 f5             	mov    %r14d,%ebp
140022f44:	48 89 de             	mov    %rbx,%rsi
140022f47:	66 0f 1f 84 00 00 00 	nopw   0x0(%rax,%rax,1)
140022f4e:	00 00
140022f50:	89 c2                	mov    %eax,%edx
140022f52:	41 0f b6 14 17       	movzbl (%r15,%rdx,1),%edx
140022f57:	84 d2                	test   %dl,%dl
140022f59:	0f 85 e1 01 00 00    	jne    0x140023140
140022f5f:	83 f8 20             	cmp    $0x20,%eax
140022f62:	0f 87 55 03 00 00    	ja     0x1400232bd
140022f68:	39 ef                	cmp    %ebp,%edi
140022f6a:	0f 8e 7b 01 00 00    	jle    0x1400230eb
140022f70:	48 39 f3             	cmp    %rsi,%rbx
140022f73:	73 72                	jae    0x140022fe7
140022f75:	41 83 fa 07          	cmp    $0x7,%r10d
140022f79:	7f 6c                	jg     0x140022fe7
140022f7b:	41 bb 08 00 00 00    	mov    $0x8,%r11d
140022f81:	8b 03                	mov    (%rbx),%eax
140022f83:	41 be 20 00 00 00    	mov    $0x20,%r14d
140022f89:	48 89 da             	mov    %rbx,%rdx
140022f8c:	45 29 d3             	sub    %r10d,%r11d
140022f8f:	41 c1 e3 02          	shl    $0x2,%r11d
140022f93:	41 89 c2             	mov    %eax,%r10d
140022f96:	45 29 de             	sub    %r11d,%r14d
140022f99:	66 66 2e 0f 1f 84 00 	data16 cs nopw 0x0(%rax,%rax,1)
140022fa0:	00 00 00 00
140022fa4:	66 66 2e 0f 1f 84 00 	data16 cs nopw 0x0(%rax,%rax,1)
140022fab:	00 00 00 00
140022faf:	66 66 2e 0f 1f 84 00 	data16 cs nopw 0x0(%rax,%rax,1)
140022fb6:	00 00 00 00
140022fba:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)
140022fc0:	44 8b 42 04          	mov    0x4(%rdx),%r8d
140022fc4:	44 89 f1             	mov    %r14d,%ecx
140022fc7:	48 83 c2 04          	add    $0x4,%rdx
140022fcb:	44 89 c0             	mov    %r8d,%eax
140022fce:	d3 e0                	shl    %cl,%eax
140022fd0:	44 89 d9             	mov    %r11d,%ecx
140022fd3:	44 09 d0             	or     %r10d,%eax
140022fd6:	45 89 c2             	mov    %r8d,%r10d
140022fd9:	41 d3 ea             	shr    %cl,%r10d
140022fdc:	89 42 fc             	mov    %eax,-0x4(%rdx)
140022fdf:	44 89 12             	mov    %r10d,(%rdx)
140022fe2:	48 39 f2             	cmp    %rsi,%rdx
140022fe5:	72 d9                	jb     0x140022fc0
140022fe7:	49 39 dc             	cmp    %rbx,%r12
140022fea:	0f 82 e8 00 00 00    	jb     0x1400230d8
140022ff0:	41 0f b6 41 01       	movzbl 0x1(%r9),%eax
140022ff5:	4d 89 c8             	mov    %r9,%r8
140022ff8:	41 ba 08 00 00 00    	mov    $0x8,%r10d
140022ffe:	49 83 c1 01          	add    $0x1,%r9
140023002:	85 c0                	test   %eax,%eax
140023004:	0f 85 46 ff ff ff    	jne    0x140022f50
14002300a:	8b 6c 24 2c          	mov    0x2c(%rsp),%ebp
14002300e:	85 ff                	test   %edi,%edi
140023010:	0f 84 7a 01 00 00    	je     0x140023190
140023016:	48 39 f3             	cmp    %rsi,%rbx
140023019:	73 0a                	jae    0x140023025
14002301b:	41 83 fa 07          	cmp    $0x7,%r10d
14002301f:	0f 8e e3 01 00 00    	jle    0x140023208
140023025:	49 39 dc             	cmp    %rbx,%r12
140023028:	0f 83 92 01 00 00    	jae    0x1400231c0
14002302e:	48 8b 44 24 20       	mov    0x20(%rsp),%rax
140023033:	4c 89 e7             	mov    %r12,%rdi
140023036:	48 89 de             	mov    %rbx,%rsi
140023039:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
140023040:	a5                   	movsl  %ds:(%rsi),%es:(%rdi)
140023041:	48 39 f0             	cmp    %rsi,%rax
140023044:	73 fa                	jae    0x140023040
140023046:	48 8b 7c 24 20       	mov    0x20(%rsp),%rdi
14002304b:	31 c0                	xor    %eax,%eax
14002304d:	48 89 f9             	mov    %rdi,%rcx
140023050:	48 8d 57 01          	lea    0x1(%rdi),%rdx
140023054:	48 29 d9             	sub    %rbx,%rcx
140023057:	48 83 c3 01          	add    $0x1,%rbx
14002305b:	48 83 e1 fc          	and    $0xfffffffffffffffc,%rcx
14002305f:	48 39 da             	cmp    %rbx,%rdx
140023062:	48 0f 42 c8          	cmovb  %rax,%rcx
140023066:	48 8d 47 fc          	lea    -0x4(%rdi),%rax
14002306a:	4c 01 e1             	add    %r12,%rcx
14002306d:	48 29 c8             	sub    %rcx,%rax
140023070:	48 c1 e8 02          	shr    $0x2,%rax
140023074:	4c 8d 04 85 04 00 00 	lea    0x4(,%rax,4),%r8
14002307b:	00
14002307c:	48 8d 41 05          	lea    0x5(%rcx),%rax
140023080:	48 39 c2             	cmp    %rax,%rdx
140023083:	b8 04 00 00 00       	mov    $0x4,%eax
140023088:	4c 0f 42 c0          	cmovb  %rax,%r8
14002308c:	48 83 c1 04          	add    $0x4,%rcx
140023090:	31 d2                	xor    %edx,%edx
140023092:	e8 31 17 00 00       	call   0x1400247c8
140023097:	41 8b 45 fc          	mov    -0x4(%r13),%eax
14002309b:	85 c0                	test   %eax,%eax
14002309d:	75 29                	jne    0x1400230c8
14002309f:	48 8b 44 24 20       	mov    0x20(%rsp),%rax
1400230a4:	eb 15                	jmp    0x1400230bb
1400230a6:	66 2e 0f 1f 84 00 00 	cs nopw 0x0(%rax,%rax,1)
1400230ad:	00 00 00
1400230b0:	8b 50 fc             	mov    -0x4(%rax),%edx
1400230b3:	48 83 e8 04          	sub    $0x4,%rax
1400230b7:	85 d2                	test   %edx,%edx
1400230b9:	75 0d                	jne    0x1400230c8
1400230bb:	49 39 c4             	cmp    %rax,%r12
1400230be:	75 f0                	jne    0x1400230b0
1400230c0:	41 c7 04 24 01 00 00 	movl   $0x1,(%r12)
1400230c7:	00
1400230c8:	b8 05 00 00 00       	mov    $0x5,%eax
1400230cd:	e9 c3 00 00 00       	jmp    0x140023195
1400230d2:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)
1400230d8:	48 8d 73 fc          	lea    -0x4(%rbx),%rsi
1400230dc:	c7 43 fc 00 00 00 00 	movl   $0x0,-0x4(%rbx)
1400230e3:	89 fd                	mov    %edi,%ebp
1400230e5:	45 31 d2             	xor    %r10d,%r10d
1400230e8:	48 89 f3             	mov    %rsi,%rbx
1400230eb:	41 0f b6 51 01       	movzbl 0x1(%r9),%edx
1400230f0:	89 d0                	mov    %edx,%eax
1400230f2:	80 fa 20             	cmp    $0x20,%dl
1400230f5:	77 18                	ja     0x14002310f
1400230f7:	85 d2                	test   %edx,%edx
1400230f9:	0f 84 91 00 00 00    	je     0x140023190
1400230ff:	41 0f b6 51 02       	movzbl 0x2(%r9),%edx
140023104:	49 83 c1 01          	add    $0x1,%r9
140023108:	89 d0                	mov    %edx,%eax
14002310a:	80 fa 20             	cmp    $0x20,%dl
14002310d:	76 e8                	jbe    0x1400230f7
14002310f:	3c 30                	cmp    $0x30,%al
140023111:	75 46                	jne    0x140023159
140023113:	41 0f b6 41 02       	movzbl 0x2(%r9),%eax
140023118:	83 e0 df             	and    $0xffffffdf,%eax
14002311b:	3c 58                	cmp    $0x58,%al
14002311d:	75 3a                	jne    0x140023159
14002311f:	41 0f b6 41 03       	movzbl 0x3(%r9),%eax
140023124:	3c 20                	cmp    $0x20,%al
140023126:	76 31                	jbe    0x140023159
140023128:	89 c2                	mov    %eax,%edx
14002312a:	4d 8d 41 03          	lea    0x3(%r9),%r8
14002312e:	41 0f b6 14 17       	movzbl (%r15,%rdx,1),%edx
140023133:	84 d2                	test   %dl,%dl
140023135:	0f 84 35 01 00 00    	je     0x140023270
14002313b:	4d 89 c1             	mov    %r8,%r9
14002313e:	66 90                	xchg   %ax,%ax
140023140:	41 83 c2 01          	add    $0x1,%r10d
140023144:	83 c7 01             	add    $0x1,%edi
140023147:	41 83 fa 08          	cmp    $0x8,%r10d
14002314b:	7f 23                	jg     0x140023170
14002314d:	8b 03                	mov    (%rbx),%eax
14002314f:	c1 e0 04             	shl    $0x4,%eax
140023152:	83 e2 0f             	and    $0xf,%edx
140023155:	09 c2                	or     %eax,%edx
140023157:	89 13                	mov    %edx,(%rbx)
140023159:	41 0f b6 41 01       	movzbl 0x1(%r9),%eax
14002315e:	4d 89 c8             	mov    %r9,%r8
140023161:	e9 98 fe ff ff       	jmp    0x140022ffe
140023166:	66 2e 0f 1f 84 00 00 	cs nopw 0x0(%rax,%rax,1)
14002316d:	00 00 00
140023170:	49 39 dc             	cmp    %rbx,%r12
140023173:	73 e4                	jae    0x140023159
140023175:	c7 43 fc 00 00 00 00 	movl   $0x0,-0x4(%rbx)
14002317c:	31 c0                	xor    %eax,%eax
14002317e:	48 83 eb 04          	sub    $0x4,%rbx
140023182:	41 ba 01 00 00 00    	mov    $0x1,%r10d
140023188:	eb c8                	jmp    0x140023152
14002318a:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)
140023190:	b8 04 00 00 00       	mov    $0x4,%eax
140023195:	48 83 c4 38          	add    $0x38,%rsp
140023199:	5b                   	pop    %rbx
14002319a:	5e                   	pop    %rsi
14002319b:	5f                   	pop    %rdi
14002319c:	5d                   	pop    %rbp
14002319d:	41 5c                	pop    %r12
14002319f:	41 5d                	pop    %r13
1400231a1:	41 5e                	pop    %r14
1400231a3:	41 5f                	pop    %r15
1400231a5:	c3                   	ret
1400231a6:	66 2e 0f 1f 84 00 00 	cs nopw 0x0(%rax,%rax,1)
1400231ad:	00 00 00
1400231b0:	48 89 54 24 20       	mov    %rdx,0x20(%rsp)
1400231b5:	4c 8d 6a 04          	lea    0x4(%rdx),%r13
1400231b9:	e9 fd fc ff ff       	jmp    0x140022ebb
1400231be:	66 90                	xchg   %ax,%ax
1400231c0:	41 8b 45 fc          	mov    -0x4(%r13),%eax
1400231c4:	85 ed                	test   %ebp,%ebp
1400231c6:	0f 84 cf fe ff ff    	je     0x14002309b
1400231cc:	b9 20 00 00 00       	mov    $0x20,%ecx
1400231d1:	ba ff ff ff ff       	mov    $0xffffffff,%edx
1400231d6:	29 e9                	sub    %ebp,%ecx
1400231d8:	d3 ea                	shr    %cl,%edx
1400231da:	21 d0                	and    %edx,%eax