// File: swxlion[P]swxJson/src/swxJsonUtils.cpp
// Function: swxJson::JsonError::JsonError(char const*, char const*, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
JsonError::JsonError(const char *filename, const char* function, int32_t lineNumber, const std::string& message):
	_filename(filename), _function(function), _lineNumber(lineNumber), _message(message)
{
	std::stringstream ss;
	ss << "Exception";

	if (_function && _function[0])
		ss << " at " << _function;

	if (_filename && _filename[0])
		ss << " in " << _filename << ':' << _lineNumber;
	
	if (!_message.empty())
		ss << " --- " << _message;

	_what = ss.str();
}

// Assembly:
subq $0x228, %rsp            # imm = 0x228
movq %rdi, 0x220(%rsp)
movq %rsi, 0x218(%rsp)
movq %rdx, 0x210(%rsp)
movl %ecx, 0x20c(%rsp)
movq %r8, 0x200(%rsp)
movq 0x220(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0x49980
movq 0x38(%rsp), %rdi
leaq 0xe74c(%rip), %rax      # 0x57d28
addq $0x10, %rax
movq %rax, (%rdi)
movq 0x218(%rsp), %rax
movq %rax, 0x8(%rdi)
movq 0x210(%rsp), %rax
movq %rax, 0x10(%rdi)
movl 0x20c(%rsp), %eax
movl %eax, 0x18(%rdi)
addq $0x20, %rdi
movq %rdi, 0x40(%rsp)
movq 0x200(%rsp), %rsi
callq 0x220e0
jmp 0x4961d
movq 0x38(%rsp), %rdi
addq $0x40, %rdi
movq %rdi, 0x30(%rsp)
callq 0x223f0
leaq 0x68(%rsp), %rdi
callq 0x221b0
jmp 0x4963c
leaq 0x78(%rsp), %rdi
leaq 0x2314(%rip), %rsi      # 0x4b95c
callq 0x222a0
jmp 0x4964f
movq 0x38(%rsp), %rax
cmpq $0x0, 0x10(%rax)
je 0x496f5
movq 0x38(%rsp), %rax
movq 0x10(%rax), %rax
cmpb $0x0, (%rax)
je 0x496f5
leaq 0x78(%rsp), %rdi
leaq 0x22e9(%rip), %rsi      # 0x4b966
callq 0x222a0
movq %rax, 0x28(%rsp)
jmp 0x49689
movq 0x28(%rsp), %rdi
movq 0x38(%rsp), %rax
movq 0x10(%rax), %rsi
callq 0x222a0
jmp 0x4969e
jmp 0x496f5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
jmp 0x49802
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
jmp 0x497ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
leaq 0x68(%rsp), %rdi
callq 0x221f0
jmp 0x497ee
movq 0x38(%rsp), %rax
cmpq $0x0, 0x8(%rax)
je 0x4976d
movq 0x38(%rsp), %rax
movq 0x8(%rax), %rax
cmpb $0x0, (%rax)
je 0x4976d
leaq 0x78(%rsp), %rdi
leaq 0x2250(%rip), %rsi      # 0x4b96b
callq 0x222a0
movq %rax, 0x20(%rsp)
jmp 0x49727
movq 0x20(%rsp), %rdi
movq 0x38(%rsp), %rax
movq 0x8(%rax), %rsi
callq 0x222a0
movq %rax, 0x18(%rsp)
jmp 0x49741
movq 0x18(%rsp), %rdi
movl $0x3a, %esi
callq 0x22380
movq %rax, 0x10(%rsp)
jmp 0x49757
movq 0x10(%rsp), %rdi
movq 0x38(%rsp), %rax
movl 0x18(%rax), %esi
callq 0x22490
jmp 0x4976b
jmp 0x4976d
movq 0x38(%rsp), %rdi
addq $0x20, %rdi
callq 0x22460
testb $0x1, %al
jne 0x497ae
leaq 0x78(%rsp), %rdi
leaq 0x21e5(%rip), %rsi      # 0x4b970
callq 0x222a0
movq %rax, 0x8(%rsp)
jmp 0x49797
movq 0x8(%rsp), %rdi
movq 0x38(%rsp), %rsi
addq $0x20, %rsi
callq 0x22250
jmp 0x497ac
jmp 0x497ae
leaq 0x48(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x22290
jmp 0x497bf
movq 0x38(%rsp), %rdi
addq $0x40, %rdi
leaq 0x48(%rsp), %rsi
callq 0x22390
leaq 0x48(%rsp), %rdi
callq 0x22160
leaq 0x68(%rsp), %rdi
callq 0x221f0
addq $0x228, %rsp            # imm = 0x228
retq
movq 0x30(%rsp), %rdi
callq 0x22160
movq 0x40(%rsp), %rdi
callq 0x22160
movq 0x38(%rsp), %rdi
callq 0x22500
movq 0x1f8(%rsp), %rdi
callq 0x224a0
nopl (%rax)