// File: swxlion[P]swxJson/src/swxJsonParser.cpp
// Function: swxJson::JsonParser::processSlash()
void processSlash()
	{
		_pos++;

		if (*_pos == 0)
			throw JSON_ERROR_MSG(JosnInvalidContentError, "Json parser: content error, uncompleted string.");

		switch (*_pos)
		{
			// case '"':		//-- Action same as default;
			// case '\\':		//-- Action same as default;
			// case '/':		//-- Action same as default;

			case 'b': _outStringStream<<'\b'; break;
			case 'f': _outStringStream<<'\f'; break;
			case 'n': _outStringStream<<'\n'; break;
			case 'r': _outStringStream<<'\r'; break;
			case 't': _outStringStream<<'\t'; break;
			case 'u':
			{
				_pos++;
				uint16_t W1 = parseUTF16Char();
				_pos += 4;
				
				if (W1 < 0xD800 || W1 > 0xDFFF)
				{
					UTF16ToUTF8(W1);
					return;
				}

				if (W1 >= 0xD800 && W1 <= 0xDBFF)
				{
					if(*_pos++ != '\\')
					{
						throw JSON_ERROR_MSG(JosnInvalidContentError, "Json parser: content error, trail surrogates for utf-16 surrogate pair missing.");
					}
					else if(*_pos++ != 'u')
					{
						throw JSON_ERROR_MSG(JosnInvalidContentError, "Json parser: content error, trail surrogates for utf-16 surrogate pair missing.");
					}
					uint16_t W2 = parseUTF16Char();
					if (W2 < 0xDC00 || W2 > 0xDFFF)
					{
						throw JSON_ERROR_MSG(JosnInvalidContentError, "Json parser: content error, trail surrogates for utf-16 surrogate pair in wrong range.");
					}
					UTF16ToUTF8(W1, W2);
					_pos += 4;
					return;
				}
				else
					throw JSON_ERROR_MSG(JosnInvalidContentError, "Json parser: content error, lead surrogates for utf-16 surrogate pair missing.");
			}

			default:
				_outStringStream<<(char)(*_pos);
				break;
		}

		_pos++;
	}

// Assembly:
subq $0x148, %rsp            # imm = 0x148
movq %rdi, 0x140(%rsp)
movq 0x140(%rsp), %rax
movq %rax, 0x60(%rsp)
movq 0x12f0(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x12f0(%rax)
movq 0x12f0(%rax), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
jne 0x80bd0
movb $0x1, 0x10b(%rsp)
movl $0x60, %edi
callq 0x4a160
movq %rax, 0x50(%rsp)
leaq 0x11f(%rsp), %rdi
movq %rdi, 0x58(%rsp)
callq 0x4a530
movq 0x58(%rsp), %rdx
leaq 0x2318(%rip), %rsi      # 0x82e2e
leaq 0x120(%rsp), %rdi
callq 0x4dcf0
jmp 0x80b25
movq 0x50(%rsp), %rdi
leaq 0x1fcf(%rip), %rsi      # 0x82b00
leaq 0x2326(%rip), %rdx      # 0x82e5e
movl $0xdf, %ecx
leaq 0x120(%rsp), %r8
callq 0x7d0d0
jmp 0x80b4c
movq 0x50(%rsp), %rdi
movb $0x0, 0x10b(%rsp)
leaq 0x171f8(%rip), %rsi     # 0x97d58
leaq -0x3a37(%rip), %rdx     # 0x7d130
callq 0x4a500
jmp 0x811cd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x110(%rsp)
movl %eax, 0x10c(%rsp)
jmp 0x80ba8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x110(%rsp)
movl %eax, 0x10c(%rsp)
leaq 0x120(%rsp), %rdi
callq 0x4a5b8
leaq 0x11f(%rsp), %rdi
callq 0x4a390
testb $0x1, 0x10b(%rsp)
jne 0x80bc1
jmp 0x80bcb
movq 0x50(%rsp), %rdi
callq 0x4a220
jmp 0x811c0
movq 0x60(%rsp), %rax
movq 0x12f0(%rax), %rax
movsbl (%rax), %eax
addl $-0x62, %eax
movl %eax, %ecx
movq %rcx, 0x48(%rsp)
subl $0x13, %eax
ja 0x81183
movq 0x48(%rsp), %rax
leaq 0x1eb2(%rip), %rcx      # 0x82ab0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x60(%rsp), %rdi
addq $0x1100, %rdi           # imm = 0x1100
movl $0x8, %esi
callq 0x4a3e0
jmp 0x811a1
movq 0x60(%rsp), %rdi
addq $0x1100, %rdi           # imm = 0x1100
movl $0xc, %esi
callq 0x4a3e0
jmp 0x811a1
movq 0x60(%rsp), %rdi
addq $0x1100, %rdi           # imm = 0x1100
movl $0xa, %esi
callq 0x4a3e0
jmp 0x811a1
movq 0x60(%rsp), %rdi
addq $0x1100, %rdi           # imm = 0x1100
movl $0xd, %esi
callq 0x4a3e0
jmp 0x811a1
movq 0x60(%rsp), %rdi
addq $0x1100, %rdi           # imm = 0x1100
movl $0x9, %esi
callq 0x4a3e0
jmp 0x811a1
movq 0x60(%rsp), %rdi
movq 0x12f0(%rdi), %rax
addq $0x1, %rax
movq %rax, 0x12f0(%rdi)
callq 0x811e0
movw %ax, %cx
movq 0x60(%rsp), %rax
movw %cx, 0x108(%rsp)
movq 0x12f0(%rax), %rcx
addq $0x4, %rcx
movq %rcx, 0x12f0(%rax)
movzwl 0x108(%rsp), %eax
cmpl $0xd800, %eax           # imm = 0xD800
jl 0x80cea
movzwl 0x108(%rsp), %eax
cmpl $0xdfff, %eax           # imm = 0xDFFF
jle 0x80d01
movq 0x60(%rsp), %rdi
movzwl 0x108(%rsp), %esi
callq 0x813c0
jmp 0x811b8
movzwl 0x108(%rsp), %eax
cmpl $0xd800, %eax           # imm = 0xD800
jl 0x810af
movzwl 0x108(%rsp), %eax
cmpl $0xdbff, %eax           # imm = 0xDBFF
jg 0x810af
movq 0x60(%rsp), %rcx
movq 0x12f0(%rcx), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x12f0(%rcx)
movsbl (%rax), %eax
cmpl $0x5c, %eax
je 0x80e3c
movb $0x1, 0xe6(%rsp)
movl $0x60, %edi
callq 0x4a160
movq %rax, 0x38(%rsp)
leaq 0xe7(%rsp), %rdi
movq %rdi, 0x40(%rsp)
callq 0x4a530
movq 0x40(%rsp), %rdx
leaq 0x20e9(%rip), %rsi      # 0x82e6b
leaq 0xe8(%rsp), %rdi
callq 0x4dcf0
jmp 0x80d91
movq 0x38(%rsp), %rdi
leaq 0x1d63(%rip), %rsi      # 0x82b00
leaq 0x20ba(%rip), %rdx      # 0x82e5e
movl $0xfc, %ecx
leaq 0xe8(%rsp), %r8
callq 0x7d0d0
jmp 0x80db8
movq 0x38(%rsp), %rdi
movb $0x0, 0xe6(%rsp)
leaq 0x16f8c(%rip), %rsi     # 0x97d58
leaq -0x3ca3(%rip), %rdx     # 0x7d130
callq 0x4a500
jmp 0x811cd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x110(%rsp)
movl %eax, 0x10c(%rsp)
jmp 0x80e14
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x110(%rsp)
movl %eax, 0x10c(%rsp)
leaq 0xe8(%rsp), %rdi
callq 0x4a5b8
leaq 0xe7(%rsp), %rdi
callq 0x4a390
testb $0x1, 0xe6(%rsp)
jne 0x80e2d
jmp 0x80e37
movq 0x38(%rsp), %rdi
callq 0x4a220
jmp 0x811c0
movq 0x60(%rsp), %rcx
movq 0x12f0(%rcx), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x12f0(%rcx)
movsbl (%rax), %eax
cmpl $0x75, %eax
je 0x80f51
movb $0x1, 0xbe(%rsp)
movl $0x60, %edi
callq 0x4a160
movq %rax, 0x28(%rsp)
leaq 0xbf(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0x4a530
movq 0x30(%rsp), %rdx
leaq 0x1fd4(%rip), %rsi      # 0x82e6b
leaq 0xc0(%rsp), %rdi
callq 0x4dcf0
jmp 0x80ea6
movq 0x28(%rsp), %rdi
leaq 0x1c4e(%rip), %rsi      # 0x82b00
leaq 0x1fa5(%rip), %rdx      # 0x82e5e
movl $0x100, %ecx            # imm = 0x100
leaq 0xc0(%rsp), %r8
callq 0x7d0d0
jmp 0x80ecd
movq 0x28(%rsp), %rdi
movb $0x0, 0xbe(%rsp)
leaq 0x16e77(%rip), %rsi     # 0x97d58
leaq -0x3db8(%rip), %rdx     # 0x7d130
callq 0x4a500
jmp 0x811cd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x110(%rsp)
movl %eax, 0x10c(%rsp)
jmp 0x80f29
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x110(%rsp)
movl %eax, 0x10c(%rsp)
leaq 0xc0(%rsp), %rdi
callq 0x4a5b8
leaq 0xbf(%rsp), %rdi
callq 0x4a390
testb $0x1, 0xbe(%rsp)
jne 0x80f42
jmp 0x80f4c
movq 0x28(%rsp), %rdi
callq 0x4a220
jmp 0x811c0
jmp 0x80f53
movq 0x60(%rsp), %rdi
callq 0x811e0
movw %ax, 0xbc(%rsp)
movzwl 0xbc(%rsp), %eax
cmpl $0xdc00, %eax           # imm = 0xDC00
jl 0x80f87
movzwl 0xbc(%rsp), %eax
cmpl $0xdfff, %eax           # imm = 0xDFFF
jle 0x81076
movb $0x1, 0x96(%rsp)
movl $0x60, %edi
callq 0x4a160
movq %rax, 0x18(%rsp)
leaq 0x97(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0x4a530
movq 0x20(%rsp), %rdx
leaq 0x1eff(%rip), %rsi      # 0x82ebb
leaq 0x98(%rsp), %rdi
callq 0x4dcf0
jmp 0x80fcb
movq 0x18(%rsp), %rdi
leaq 0x1b29(%rip), %rsi      # 0x82b00
leaq 0x1e80(%rip), %rdx      # 0x82e5e
movl $0x105, %ecx            # imm = 0x105
leaq 0x98(%rsp), %r8
callq 0x7d0d0
jmp 0x80ff2
movq 0x18(%rsp), %rdi
movb $0x0, 0x96(%rsp)
leaq 0x16d52(%rip), %rsi     # 0x97d58
leaq -0x3edd(%rip), %rdx     # 0x7d130
callq 0x4a500
jmp 0x811cd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x110(%rsp)
movl %eax, 0x10c(%rsp)
jmp 0x8104e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x110(%rsp)
movl %eax, 0x10c(%rsp)
leaq 0x98(%rsp), %rdi
callq 0x4a5b8
leaq 0x97(%rsp), %rdi
callq 0x4a390
testb $0x1, 0x96(%rsp)
jne 0x81067
jmp 0x81071
movq 0x18(%rsp), %rdi
callq 0x4a220
jmp 0x811c0
movq 0x60(%rsp), %rdi
movw 0x108(%rsp), %ax
movzwl %ax, %esi
movzwl 0xbc(%rsp), %edx
callq 0x814e0
movq 0x60(%rsp), %rax
movq 0x12f0(%rax), %rcx
addq $0x4, %rcx
movq %rcx, 0x12f0(%rax)
jmp 0x811b8
movb $0x1, 0x6e(%rsp)
movl $0x60, %edi
callq 0x4a160
movq %rax, 0x8(%rsp)
leaq 0x6f(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0x4a530
movq 0x10(%rsp), %rdx
leaq 0x1e34(%rip), %rsi      # 0x82f12
leaq 0x70(%rsp), %rdi
callq 0x4dcf0
jmp 0x810ea
movq 0x8(%rsp), %rdi
leaq 0x1a0a(%rip), %rsi      # 0x82b00
leaq 0x1d61(%rip), %rdx      # 0x82e5e
movl $0x10c, %ecx            # imm = 0x10C
leaq 0x70(%rsp), %r8
callq 0x7d0d0
jmp 0x8110e
movq 0x8(%rsp), %rdi
movb $0x0, 0x6e(%rsp)
leaq 0x16c39(%rip), %rsi     # 0x97d58
leaq -0x3ff6(%rip), %rdx     # 0x7d130
callq 0x4a500
jmp 0x811cd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x110(%rsp)
movl %eax, 0x10c(%rsp)
jmp 0x81164
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x110(%rsp)
movl %eax, 0x10c(%rsp)
leaq 0x70(%rsp), %rdi
callq 0x4a5b8
leaq 0x6f(%rsp), %rdi
callq 0x4a390
testb $0x1, 0x6e(%rsp)
jne 0x81177
jmp 0x81181
movq 0x8(%rsp), %rdi
callq 0x4a220
jmp 0x811c0
movq 0x60(%rsp), %rax
movq %rax, %rdi
addq $0x1100, %rdi           # imm = 0x1100
movq 0x12f0(%rax), %rax
movsbl (%rax), %esi
callq 0x4a3e0
movq 0x60(%rsp), %rax
movq 0x12f0(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x12f0(%rax)
addq $0x148, %rsp            # imm = 0x148
retq
movq 0x110(%rsp), %rdi
callq 0x4a520
nopl (%rax)