LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_cpp_makefile_star2_O2/swxlion[P]swxJson/src/swxJson.cpp
// Function: swxJson::Json::getInt(long) const
intmax_t Json::getInt(intmax_t dft) const
{
	if (_type == JSON_Integer)
		return *((intmax_t*)_data);

	if (_type == JSON_UInteger)
	{
		intmax_t v = (intmax_t)(*((uintmax_t*)_data));
		if (v >= 0)
			return v;
	}

	return dft;
}

// Assembly:
movl (%rdi), %eax
cmpl $0x4, %eax
je 0x188b6
cmpl $0x3, %eax
jne 0x188c3
movq 0x8(%rdi), %rax
movq (%rax), %rax
retq
movq 0x8(%rdi), %rax
movq (%rax), %rax
testq %rax, %rax
js 0x188c3
retq
movq %rsi, %rax
retq
nop
// File: /workspace/github_cpp_makefile_star2_O2/swxlion[P]swxJson/src/swxJson.cpp
// Function: swxJson::Json::getUInt(unsigned long) const
uintmax_t Json::getUInt(uintmax_t dft) const
{
	if (_type == JSON_UInteger)
		return *((uintmax_t*)_data);

	if (_type == JSON_Integer)
	{
		intmax_t v = *((intmax_t*)_data);
		if (v >= 0)
			return (uintmax_t)v;
	}

	return dft;
}

// Assembly:
movl (%rdi), %eax
cmpl $0x3, %eax
je 0x188dc
cmpl $0x4, %eax
jne 0x188e9
movq 0x8(%rdi), %rax
movq (%rax), %rax
retq
movq 0x8(%rdi), %rax
movq (%rax), %rax
testq %rax, %rax
js 0x188e9
retq
movq %rsi, %rax
retq
nop
// File: /workspace/github_cpp_makefile_star2_O2/swxlion[P]swxJson/src/swxJson.cpp
// Function: swxJson::Json::wantInt() const
intmax_t Json::wantInt() const
{
	if (_type == JSON_Integer)
		return *((intmax_t*)_data);

	if (_type == JSON_UInteger)
	{
		intmax_t v = (intmax_t)(*((uintmax_t*)_data));
		if (v >= 0)
			return v;
	}

	throw JSON_ERROR_MSG(JsonNodeTypeMissMatchError, "Node type miss match.");
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x30, %rsp
movl (%rdi), %eax
cmpl $0x4, %eax
je 0x189f5
cmpl $0x3, %eax
jne 0x18a0a
movq 0x8(%rdi), %rax
movq (%rax), %rax
jmp 0x18a01
movq 0x8(%rdi), %rax
movq (%rax), %rax
testq %rax, %rax
js 0x18a0a
addq $0x30, %rsp
popq %rbx
popq %r14
popq %rbp
retq
pushq $0x60
popq %rdi
callq 0xe0e0
movq %rax, %rbx
leaq 0x6d99(%rip), %rsi      # 0x1f7b5
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x14fc0
movb $0x1, %bpl
leaq 0x6c61(%rip), %rsi      # 0x1f696
leaq 0x6d8f(%rip), %rdx      # 0x1f7cb
leaq 0x10(%rsp), %r8
movq %rbx, %rdi
movl $0x412, %ecx            # imm = 0x412
callq 0x1a812
xorl %ebp, %ebp
leaq 0xf271(%rip), %rsi      # 0x27cc8
leaq 0x1f3a(%rip), %rdx      # 0x1a998
movq %rbx, %rdi
callq 0xe380
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0xe0c0
testb %bpl, %bpl
jne 0x18a7d
jmp 0x18a85
movq %rax, %r14
movq %rbx, %rdi
callq 0xe190
movq %r14, %rdi
callq 0xe3a0
nop
// File: /workspace/github_cpp_makefile_star2_O2/swxlion[P]swxJson/src/swxJson.cpp
// Function: swxJson::Json::wantUInt() const
uintmax_t Json::wantUInt() const
{
	if (_type == JSON_UInteger)
		return *((uintmax_t*)_data);

	if (_type == JSON_Integer)
	{
		intmax_t v = *((intmax_t*)_data);
		if (v >= 0)
			return (uintmax_t)v;
	}

	throw JSON_ERROR_MSG(JsonNodeTypeMissMatchError, "Node type miss match.");
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x30, %rsp
movl (%rdi), %eax
cmpl $0x3, %eax
je 0x18aab
cmpl $0x4, %eax
jne 0x18ac0
movq 0x8(%rdi), %rax
movq (%rax), %rax
jmp 0x18ab7
movq 0x8(%rdi), %rax
movq (%rax), %rax
testq %rax, %rax
js 0x18ac0
addq $0x30, %rsp
popq %rbx
popq %r14
popq %rbp
retq
pushq $0x60
popq %rdi
callq 0xe0e0
movq %rax, %rbx
leaq 0x6ce3(%rip), %rsi      # 0x1f7b5
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x14fc0
movb $0x1, %bpl
leaq 0x6bab(%rip), %rsi      # 0x1f696
leaq 0x6ce1(%rip), %rdx      # 0x1f7d3
leaq 0x10(%rsp), %r8
movq %rbx, %rdi
movl $0x421, %ecx            # imm = 0x421
callq 0x1a812
xorl %ebp, %ebp
leaq 0xf1bb(%rip), %rsi      # 0x27cc8
leaq 0x1e84(%rip), %rdx      # 0x1a998
movq %rbx, %rdi
callq 0xe380
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0xe0c0
testb %bpl, %bpl
jne 0x18b33
jmp 0x18b3b
movq %rax, %r14
movq %rbx, %rdi
callq 0xe190
movq %r14, %rdi
callq 0xe3a0
nop
// File: /workspace/github_cpp_makefile_star2_O2/swxlion[P]swxJson/src/swxJson.cpp
// Function: swxJson::Json::wantBoolVector() const
std::vector<bool> Json::wantBoolVector() const
{
	if (_type != JSON_Array)
		throw JSON_ERROR_MSG(JsonNodeTypeMissMatchError, "Node type miss match.");

	std::list<JsonPtr>* data = (std::list<JsonPtr>*)_data;
	std::vector<bool> res;
	res.reserve(data->size());

	for (auto& node: *data)
		res.push_back(node->wantBool());

	return res;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x28, %rsp
cmpl $0x1, (%rsi)
jne 0x18cf2
movq %rdi, %rbx
movq 0x8(%rsi), %r14
andq $0x0, (%rdi)
andl $0x0, 0x8(%rdi)
andq $0x0, 0x10(%rdi)
andl $0x0, 0x18(%rdi)
andq $0x0, 0x20(%rdi)
movq 0x10(%r14), %rsi
callq 0x1a9c6
movq %r14, %r15
movq (%r15), %r15
cmpq %r14, %r15
je 0x18ce4
movq 0x10(%r15), %rdi
callq 0x18936
movzbl %al, %esi
movq %rbx, %rdi
callq 0x1a9f8
jmp 0x18cc6
movq %rbx, %rax
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
pushq $0x60
popq %rdi
callq 0xe0e0
movq %rax, %rbx
leaq 0x6ab1(%rip), %rsi      # 0x1f7b5
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x14fc0
movb $0x1, %bpl
leaq 0x6979(%rip), %rsi      # 0x1f696
leaq 0x6acc(%rip), %rdx      # 0x1f7f0
leaq 0x8(%rsp), %r8
movq %rbx, %rdi
movl $0x438, %ecx            # imm = 0x438
callq 0x1a812
xorl %ebp, %ebp
leaq 0xef89(%rip), %rsi      # 0x27cc8
leaq 0x1c52(%rip), %rdx      # 0x1a998
movq %rbx, %rdi
callq 0xe380
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0xe0c0
testb %bpl, %bpl
jne 0x18d65
jmp 0x18d7c
movq %rax, %r14
movq %rbx, %rdi
callq 0xe190
jmp 0x18d7c
jmp 0x18d71
movq %rax, %r14
movq %rbx, %rdi
callq 0x15952
movq %r14, %rdi
callq 0xe3a0
// File: /workspace/github_cpp_makefile_star2_O2/swxlion[P]swxJson/src/swxJson.cpp
// Function: swxJson::Json::wantRealVector() const
std::vector<double> Json::wantRealVector() const
{
	if (_type != JSON_Array)
		throw JSON_ERROR_MSG(JsonNodeTypeMissMatchError, "Node type miss match.");

	std::list<JsonPtr>* data = (std::list<JsonPtr>*)_data;
	std::vector<double> res;
	res.reserve(data->size());

	for (auto& node: *data)
		res.push_back(node->wantReal());

	return res;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x30, %rsp
cmpl $0x1, (%rsi)
jne 0x18dee
movq %rdi, %rbx
movq 0x8(%rsi), %r15
xorps %xmm0, %xmm0
movups %xmm0, (%rdi)
andq $0x0, 0x10(%rdi)
movq 0x10(%r15), %rsi
callq 0x1aa36
leaq 0x10(%rsp), %r14
movq %r15, %r12
movq (%r12), %r12
cmpq %r15, %r12
je 0x18dde
movq 0x10(%r12), %rdi
callq 0x18b44
movsd %xmm0, 0x10(%rsp)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1bea6
jmp 0x18db8
movq %rbx, %rax
addq $0x30, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
pushq $0x60
popq %rdi
callq 0xe0e0
movq %rax, %rbx
leaq 0x69b5(%rip), %rsi      # 0x1f7b5
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x14fc0
movb $0x1, %bpl
leaq 0x687d(%rip), %rsi      # 0x1f696
leaq 0x69df(%rip), %rdx      # 0x1f7ff
leaq 0x10(%rsp), %r8
movq %rbx, %rdi
movl $0x447, %ecx            # imm = 0x447
callq 0x1a812
xorl %ebp, %ebp
leaq 0xee8d(%rip), %rsi      # 0x27cc8
leaq 0x1b56(%rip), %rdx      # 0x1a998
movq %rbx, %rdi
callq 0xe380
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0xe0c0
testb %bpl, %bpl
jne 0x18e61
jmp 0x18e78
movq %rax, %r14
movq %rbx, %rdi
callq 0xe190
jmp 0x18e78
jmp 0x18e6d
movq %rax, %r14
movq %rbx, %rdi
callq 0x16570
movq %r14, %rdi
callq 0xe3a0
// File: /workspace/github_cpp_makefile_star2_O2/swxlion[P]swxJson/src/swxJson.cpp
// Function: swxJson::Json::wantIntVector() const
std::vector<intmax_t> Json::wantIntVector() const
{
	if (_type != JSON_Array)
		throw JSON_ERROR_MSG(JsonNodeTypeMissMatchError, "Node type miss match.");

	std::list<JsonPtr>* data = (std::list<JsonPtr>*)_data;
	std::vector<intmax_t> res;
	res.reserve(data->size());

	for (auto& node: *data)
		res.push_back(node->wantInt());

	return res;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x30, %rsp
cmpl $0x1, (%rsi)
jne 0x18ee9
movq %rdi, %rbx
movq 0x8(%rsi), %r15
xorps %xmm0, %xmm0
movups %xmm0, (%rdi)
andq $0x0, 0x10(%rdi)
movq 0x10(%r15), %rsi
callq 0x1aacc
leaq 0x10(%rsp), %r14
movq %r15, %r12
movq (%r12), %r12
cmpq %r15, %r12
je 0x18ed9
movq 0x10(%r12), %rdi
callq 0x189d8
movq %rax, 0x10(%rsp)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1c024
jmp 0x18eb4
movq %rbx, %rax
addq $0x30, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
pushq $0x60
popq %rdi
callq 0xe0e0
movq %rax, %rbx
leaq 0x68ba(%rip), %rsi      # 0x1f7b5
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x14fc0
movb $0x1, %bpl
leaq 0x6782(%rip), %rsi      # 0x1f696
leaq 0x68f3(%rip), %rdx      # 0x1f80e
leaq 0x10(%rsp), %r8
movq %rbx, %rdi
movl $0x456, %ecx            # imm = 0x456
callq 0x1a812
xorl %ebp, %ebp
leaq 0xed92(%rip), %rsi      # 0x27cc8
leaq 0x1a5b(%rip), %rdx      # 0x1a998
movq %rbx, %rdi
callq 0xe380
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0xe0c0
testb %bpl, %bpl
jne 0x18f5c
jmp 0x18f73
movq %rax, %r14
movq %rbx, %rdi
callq 0xe190
jmp 0x18f73
jmp 0x18f68
movq %rax, %r14
movq %rbx, %rdi
callq 0x165a4
movq %r14, %rdi
callq 0xe3a0
nop
// File: /workspace/github_cpp_makefile_star2_O2/swxlion[P]swxJson/src/swxJson.cpp
// Function: swxJson::Json::wantStringVector[abi:cxx11]() const
std::vector<std::string> Json::wantStringVector() const
{
	if (_type != JSON_Array)
		throw JSON_ERROR_MSG(JsonNodeTypeMissMatchError, "Node type miss match.");

	std::list<JsonPtr>* data = (std::list<JsonPtr>*)_data;
	std::vector<std::string> res;
	res.reserve(data->size());

	for (auto& node: *data)
		res.push_back(node->wantString());

	return res;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x30, %rsp
cmpl $0x1, (%rsi)
jne 0x18feb
movq %rdi, %rbx
movq 0x8(%rsi), %r15
xorps %xmm0, %xmm0
movups %xmm0, (%rdi)
andq $0x0, 0x10(%rdi)
movq 0x10(%r15), %rsi
callq 0x1ab62
leaq 0x10(%rsp), %r14
movq %r15, %r12
movq (%r12), %r12
cmpq %r15, %r12
je 0x18fdb
movq 0x10(%r12), %rsi
movq %r14, %rdi
callq 0x18be6
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1afe0
movq %r14, %rdi
callq 0xe0c0
jmp 0x18fb0
movq %rbx, %rax
addq $0x30, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
pushq $0x60
popq %rdi
callq 0xe0e0
movq %rax, %rbx
leaq 0x67b8(%rip), %rsi      # 0x1f7b5
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x14fc0
movb $0x1, %bpl
leaq 0x6680(%rip), %rsi      # 0x1f696
leaq 0x67ff(%rip), %rdx      # 0x1f81c
leaq 0x10(%rsp), %r8
movq %rbx, %rdi
movl $0x465, %ecx            # imm = 0x465
callq 0x1a812
xorl %ebp, %ebp
leaq 0xec90(%rip), %rsi      # 0x27cc8
leaq 0x1959(%rip), %rdx      # 0x1a998
movq %rbx, %rdi
callq 0xe380
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0xe0c0
testb %bpl, %bpl
jne 0x1905e
jmp 0x19084
movq %rax, %r14
movq %rbx, %rdi
callq 0xe190
jmp 0x19084
jmp 0x1906a
movq %rax, %r14
jmp 0x1907c
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0xe0c0
movq %rbx, %rdi
callq 0x15930
movq %r14, %rdi
callq 0xe3a0
// File: /workspace/github_cpp_makefile_star2_O2/swxlion[P]swxJson/src/swxJson.cpp
// Function: swxJson::Json::wantBoolDict[abi:cxx11]() const
std::map<std::string, bool> Json::wantBoolDict() const
{
	if (_type != JSON_Object)
		throw JSON_ERROR_MSG(JsonNodeTypeMissMatchError, "Node type miss match.");

	std::map<std::string, JsonPtr>* data = (std::map<std::string, JsonPtr>*)_data;
	std::map<std::string, bool> res;

	for (auto& npair: *data)
		res[npair.first] = npair.second->wantBool();

	return res;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x28, %rsp
cmpl $0x0, (%rsi)
jne 0x190fe
movq %rdi, %rbx
movq 0x8(%rsi), %r15
leaq 0x8(%rdi), %rax
andl $0x0, 0x8(%rdi)
andq $0x0, 0x10(%rdi)
movq %rax, 0x18(%rdi)
movq %rax, 0x20(%rdi)
andq $0x0, 0x28(%rdi)
movq 0x18(%r15), %r14
addq $0x8, %r15
cmpq %r15, %r14
je 0x190f0
movq 0x40(%r14), %rdi
callq 0x18936
movl %eax, %ebp
leaq 0x20(%r14), %rsi
movq %rbx, %rdi
callq 0x1abf6
movb %bpl, (%rax)
movq %r14, %rdi
callq 0xe160
movq %rax, %r14
jmp 0x190c4
movq %rbx, %rax
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
pushq $0x60
popq %rdi
callq 0xe0e0
movq %rax, %rbx
leaq 0x66a5(%rip), %rsi      # 0x1f7b5
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x14fc0
movb $0x1, %bpl
leaq 0x656d(%rip), %rsi      # 0x1f696
leaq 0x66fd(%rip), %rdx      # 0x1f82d
leaq 0x8(%rsp), %r8
movq %rbx, %rdi
movl $0x474, %ecx            # imm = 0x474
callq 0x1a812
xorl %ebp, %ebp
leaq 0xeb7d(%rip), %rsi      # 0x27cc8
leaq 0x1846(%rip), %rdx      # 0x1a998
movq %rbx, %rdi
callq 0xe380
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0xe0c0
testb %bpl, %bpl
jne 0x19171
jmp 0x19186
movq %rax, %r14
movq %rbx, %rdi
callq 0xe190
jmp 0x19186
movq %rax, %r14
movq %rbx, %rdi
callq 0x16446
movq %r14, %rdi
callq 0xe3a0
// File: /workspace/github_cpp_makefile_star2_O2/swxlion[P]swxJson/src/swxJson.cpp
// Function: swxJson::Json::wantRealDict[abi:cxx11]() const
std::map<std::string, double> Json::wantRealDict() const
{
	if (_type != JSON_Object)
		throw JSON_ERROR_MSG(JsonNodeTypeMissMatchError, "Node type miss match.");

	std::map<std::string, JsonPtr>* data = (std::map<std::string, JsonPtr>*)_data;
	std::map<std::string, double> res;

	for (auto& npair: *data)
		res[npair.first] = npair.second->wantReal();

	return res;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x38, %rsp
cmpl $0x0, (%rsi)
jne 0x1920b
movq %rdi, %rbx
movq 0x8(%rsi), %r15
leaq 0x8(%rdi), %rax
andl $0x0, 0x8(%rdi)
andq $0x0, 0x10(%rdi)
movq %rax, 0x18(%rdi)
movq %rax, 0x20(%rdi)
andq $0x0, 0x28(%rdi)
movq 0x18(%r15), %r14
addq $0x8, %r15
cmpq %r15, %r14
je 0x191fd
movq 0x40(%r14), %rdi
callq 0x18b44
movsd %xmm0, 0x10(%rsp)
leaq 0x20(%r14), %rsi
movq %rbx, %rdi
callq 0x1ac5c
movsd 0x10(%rsp), %xmm0
movsd %xmm0, (%rax)
movq %r14, %rdi
callq 0xe160
movq %rax, %r14
jmp 0x191c6
movq %rbx, %rax
addq $0x38, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
pushq $0x60
popq %rdi
callq 0xe0e0
movq %rax, %rbx
leaq 0x6598(%rip), %rsi      # 0x1f7b5
leaq 0x18(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x14fc0
movb $0x1, %bpl
leaq 0x6460(%rip), %rsi      # 0x1f696
leaq 0x65fd(%rip), %rdx      # 0x1f83a
leaq 0x18(%rsp), %r8
movq %rbx, %rdi
movl $0x482, %ecx            # imm = 0x482
callq 0x1a812
xorl %ebp, %ebp
leaq 0xea70(%rip), %rsi      # 0x27cc8
leaq 0x1739(%rip), %rdx      # 0x1a998
movq %rbx, %rdi
callq 0xe380
movq %rax, %r14
leaq 0x18(%rsp), %rdi
callq 0xe0c0
testb %bpl, %bpl
jne 0x1927e
jmp 0x19293
movq %rax, %r14
movq %rbx, %rdi
callq 0xe190
jmp 0x19293
movq %rax, %r14
movq %rbx, %rdi
callq 0x163e2
movq %r14, %rdi
callq 0xe3a0
nop
// File: /workspace/github_cpp_makefile_star2_O2/swxlion[P]swxJson/src/swxJson.cpp
// Function: swxJson::Json::wantIntDict[abi:cxx11]() const
std::map<std::string, intmax_t> Json::wantIntDict() const
{
	if (_type != JSON_Object)
		throw JSON_ERROR_MSG(JsonNodeTypeMissMatchError, "Node type miss match.");

	std::map<std::string, JsonPtr>* data = (std::map<std::string, JsonPtr>*)_data;
	std::map<std::string, intmax_t> res;

	for (auto& npair: *data)
		res[npair.first] = npair.second->wantInt();

	return res;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x30, %rsp
cmpl $0x0, (%rsi)
jne 0x19314
movq %rdi, %rbx
movq 0x8(%rsi), %r12
leaq 0x8(%rdi), %rax
andl $0x0, 0x8(%rdi)
andq $0x0, 0x10(%rdi)
movq %rax, 0x18(%rdi)
movq %rax, 0x20(%rdi)
andq $0x0, 0x28(%rdi)
movq 0x18(%r12), %r14
addq $0x8, %r12
cmpq %r12, %r14
je 0x19304
movq 0x40(%r14), %rdi
callq 0x189d8
movq %rax, %r15
leaq 0x20(%r14), %rsi
movq %rbx, %rdi
callq 0x1acc2
movq %r15, (%rax)
movq %r14, %rdi
callq 0xe160
movq %rax, %r14
jmp 0x192d7
movq %rbx, %rax
addq $0x30, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
pushq $0x60
popq %rdi
callq 0xe0e0
movq %rax, %rbx
leaq 0x648f(%rip), %rsi      # 0x1f7b5
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x14fc0
movb $0x1, %bpl
leaq 0x6357(%rip), %rsi      # 0x1f696
leaq 0x6501(%rip), %rdx      # 0x1f847
leaq 0x10(%rsp), %r8
movq %rbx, %rdi
movl $0x490, %ecx            # imm = 0x490
callq 0x1a812
xorl %ebp, %ebp
leaq 0xe967(%rip), %rsi      # 0x27cc8
leaq 0x1630(%rip), %rdx      # 0x1a998
movq %rbx, %rdi
callq 0xe380
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0xe0c0
testb %bpl, %bpl
jne 0x19387
jmp 0x1939c
movq %rax, %r14
movq %rbx, %rdi
callq 0xe190
jmp 0x1939c
movq %rax, %r14
movq %rbx, %rdi
callq 0x1637e
movq %r14, %rdi
callq 0xe3a0
// File: /workspace/github_cpp_makefile_star2_O2/swxlion[P]swxJson/src/swxJson.cpp
// Function: swxJson::Json::wantStringDict[abi:cxx11]() const
std::map<std::string, std::string> Json::wantStringDict() const
{
	if (_type != JSON_Object)
		throw JSON_ERROR_MSG(JsonNodeTypeMissMatchError, "Node type miss match.");

	std::map<std::string, JsonPtr>* data = (std::map<std::string, JsonPtr>*)_data;
	std::map<std::string, std::string> res;

	for (auto& npair: *data)
		res[npair.first] = npair.second->wantString();

	return res;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x30, %rsp
cmpl $0x0, (%rsi)
jne 0x19431
movq %rdi, %rbx
movq 0x8(%rsi), %r12
leaq 0x8(%rdi), %rax
andl $0x0, 0x8(%rdi)
andq $0x0, 0x10(%rdi)
movq %rax, 0x18(%rdi)
movq %rax, 0x20(%rdi)
andq $0x0, 0x28(%rdi)
movq 0x18(%r12), %r15
addq $0x8, %r12
leaq 0x10(%rsp), %r14
cmpq %r12, %r15
je 0x19421
movq 0x40(%r15), %rsi
movq %r14, %rdi
callq 0x18be6
leaq 0x20(%r15), %rsi
movq %rbx, %rdi
callq 0x1ad28
movq %rax, %rdi
movq %r14, %rsi
callq 0xe2b0
movq %r14, %rdi
callq 0xe0c0
movq %r15, %rdi
callq 0xe160
movq %rax, %r15
jmp 0x193e4
movq %rbx, %rax
addq $0x30, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
pushq $0x60
popq %rdi
callq 0xe0e0
movq %rax, %rbx
leaq 0x6372(%rip), %rsi      # 0x1f7b5
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x14fc0
movb $0x1, %bpl
leaq 0x623a(%rip), %rsi      # 0x1f696
leaq 0x63f0(%rip), %rdx      # 0x1f853
leaq 0x10(%rsp), %r8
movq %rbx, %rdi
movl $0x49e, %ecx            # imm = 0x49E
callq 0x1a812
xorl %ebp, %ebp
leaq 0xe84a(%rip), %rsi      # 0x27cc8
leaq 0x1513(%rip), %rdx      # 0x1a998
movq %rbx, %rdi
callq 0xe380
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0xe0c0
testb %bpl, %bpl
jne 0x194a4
jmp 0x194c8
movq %rax, %r14
movq %rbx, %rdi
callq 0xe190
jmp 0x194c8
movq %rax, %r14
jmp 0x194c0
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0xe0c0
movq %rbx, %rdi
callq 0x16304
movq %r14, %rdi
callq 0xe3a0
// File: /workspace/github_cpp_makefile_star2_O2/swxlion[P]swxJson/src/swxJson.cpp
// Function: swxJson::Json::getBool(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
bool Json::getBool(const std::string& path, bool dft, const std::string& delim)
{
	JsonPtr node = getNode(path, delim);
	if (node)
		return node->getBool(dft);
	else
		return dft;
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x18, %rsp
movl %edx, %ebx
movq %rsi, %rdx
movq %rdi, %rsi
leaq 0x8(%rsp), %r14
movq %r14, %rdi
callq 0x16a9e
movq (%r14), %rax
testq %rax, %rax
je 0x19509
xorl %ecx, %ecx
cmpq $0x0, 0x8(%rax)
setne %cl
cmpl $0x6, (%rax)
movzbl %bl, %eax
cmovnel %eax, %ecx
movl %ecx, %ebx
leaq 0x10(%rsp), %rdi
callq 0x161f0
movl %ebx, %eax
addq $0x18, %rsp
popq %rbx
popq %r14
retq
nop
// File: /workspace/github_cpp_makefile_star2_O2/swxlion[P]swxJson/src/swxJson.cpp
// Function: swxJson::Json::getInt(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
intmax_t Json::getInt(const std::string& path, intmax_t dft, const std::string& delim)
{
	JsonPtr node = getNode(path, delim);
	if (node)
		return node->getInt(dft);
	else
		return dft;
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x18, %rsp
movq %rdx, %rbx
movq %rsi, %rdx
movq %rdi, %rsi
leaq 0x8(%rsp), %r14
movq %r14, %rdi
callq 0x16a9e
movq (%r14), %rdi
testq %rdi, %rdi
je 0x1954e
movq %rbx, %rsi
callq 0x188a2
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x161f0
movq %rbx, %rax
addq $0x18, %rsp
popq %rbx
popq %r14
retq
nop
// File: /workspace/github_cpp_makefile_star2_O2/swxlion[P]swxJson/src/swxJson.cpp
// Function: swxJson::Json::getUInt(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
uintmax_t Json::getUInt(const std::string& path, uintmax_t dft, const std::string& delim)
{
	JsonPtr node = getNode(path, delim);
	if (node)
		return node->getUInt(dft);
	else
		return dft;
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x18, %rsp
movq %rdx, %rbx
movq %rsi, %rdx
movq %rdi, %rsi
leaq 0x8(%rsp), %r14
movq %r14, %rdi
callq 0x16a9e
movq (%r14), %rdi
testq %rdi, %rdi
je 0x19594
movq %rbx, %rsi
callq 0x188c8
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x161f0
movq %rbx, %rax
addq $0x18, %rsp
popq %rbx
popq %r14
retq
nop
// File: /workspace/github_cpp_makefile_star2_O2/swxlion[P]swxJson/src/swxJson.cpp
// Function: swxJson::Json::getReal(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
double Json::getReal(const std::string& path, double dft, const std::string& delim)
{
	JsonPtr node = getNode(path, delim);
	if (node)
		return node->getReal(dft);
	else
		return dft;
}

// Assembly:
pushq %rbx
subq $0x20, %rsp
movq %rdx, %rcx
movsd %xmm0, 0x8(%rsp)
movq %rsi, %rdx
movq %rdi, %rsi
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x16a9e
movq (%rbx), %rax
testq %rax, %rax
je 0x195e6
cmpl $0x5, (%rax)
jne 0x195e6
movq 0x8(%rax), %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x8(%rsp)
leaq 0x18(%rsp), %rdi
callq 0x161f0
movsd 0x8(%rsp), %xmm0
addq $0x20, %rsp
popq %rbx
retq
// File: /workspace/github_cpp_makefile_star2_O2/swxlion[P]swxJson/src/swxJson.cpp
// Function: swxJson::Json::getStringAt(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
std::string Json::getStringAt(const std::string& path, const std::string& dft, const std::string& delim)
{
	JsonPtr node = getNode(path, delim);
	if (node)
		return node->getString(dft);
	else
		return dft;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rcx, %r14
movq %rdi, %rbx
movq %rsp, %r15
movq %r15, %rdi
movq %r8, %rcx
callq 0x16a9e
movq (%r15), %rsi
testq %rsi, %rsi
je 0x1962e
movq %rbx, %rdi
movq %r14, %rdx
callq 0x188fc
jmp 0x19639
movq %rbx, %rdi
movq %r14, %rsi
callq 0xe2e0
leaq 0x8(%rsp), %rdi
callq 0x161f0
movq %rbx, %rax
addq $0x10, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x161f0
movq %rbx, %rdi
callq 0xe3a0
nop
// File: /workspace/github_cpp_makefile_star2_O2/swxlion[P]swxJson/src/swxJson.cpp
// Function: swxJson::Json::getList(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
const std::list<JsonPtr> * const Json::getList(const std::string& path, const std::string& delim)
{
	JsonPtr node = getNode(path, delim);
	if (node)
		return node->getList();
	else
		return NULL;
}

// Assembly:
pushq %rbx
subq $0x10, %rsp
movq %rdx, %rcx
movq %rsi, %rdx
movq %rdi, %rsi
movq %rsp, %rbx
movq %rbx, %rdi
callq 0x16a9e
movq (%rbx), %rax
testq %rax, %rax
je 0x19692
cmpl $0x1, (%rax)
jne 0x19692
movq 0x8(%rax), %rbx
jmp 0x19694
xorl %ebx, %ebx
leaq 0x8(%rsp), %rdi
callq 0x161f0
movq %rbx, %rax
addq $0x10, %rsp
popq %rbx
retq
nop
// File: /workspace/github_cpp_makefile_star2_O2/swxlion[P]swxJson/src/swxJson.cpp
// Function: swxJson::Json::getDict(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
const std::map<std::string, JsonPtr> * const Json::getDict(const std::string& path, const std::string& delim)
{
	JsonPtr node = getNode(path, delim);
	if (node)
		return node->getDict();
	else
		return NULL;
}

// Assembly:
pushq %rbx
subq $0x10, %rsp
movq %rdx, %rcx
movq %rsi, %rdx
movq %rdi, %rsi
movq %rsp, %rbx
movq %rbx, %rdi
callq 0x16a9e
movq (%rbx), %rax
testq %rax, %rax
je 0x196d4
cmpl $0x0, (%rax)
jne 0x196d4
movq 0x8(%rax), %rbx
jmp 0x196d6
xorl %ebx, %ebx
leaq 0x8(%rsp), %rdi
callq 0x161f0
movq %rbx, %rax
addq $0x10, %rsp
popq %rbx
retq
nop
// File: /workspace/github_cpp_makefile_star2_O2/swxlion[P]swxJson/src/swxJson.cpp
// Function: swxJson::Json::wantBool(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
bool Json::wantBool(const std::string& path, const std::string& delim)
{
	JsonPtr node = getNode(path, delim);
	if (node)
		return node->wantBool();
	
	throw JSON_ERROR_MSG(JosnNodeNotExistError, "Target node doesn't exist.");
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x40, %rsp
movq %rdx, %rcx
movq %rsi, %rdx
movq %rdi, %rsi
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x16a9e
movq (%rbx), %rdi
testq %rdi, %rdi
je 0x1972c
callq 0x18936
movl %eax, %ebx
leaq 0x18(%rsp), %rdi
callq 0x161f0
movl %ebx, %eax
addq $0x40, %rsp
popq %rbx
popq %r14
popq %rbp
retq
pushq $0x60
popq %rdi
callq 0xe0e0
movq %rax, %rbx
leaq 0x6124(%rip), %rsi      # 0x1f862
leaq 0x20(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x14fc0
movb $0x1, %bpl
leaq 0x5f3f(%rip), %rsi      # 0x1f696
leaq 0x604e(%rip), %rdx      # 0x1f7ac
leaq 0x20(%rsp), %r8
movq %rbx, %rdi
movl $0x4f9, %ecx            # imm = 0x4F9
callq 0x1a97e
xorl %ebp, %ebp
leaq 0xe57f(%rip), %rsi      # 0x27cf8
leaq 0x1218(%rip), %rdx      # 0x1a998
movq %rbx, %rdi
callq 0xe380
movq %rax, %r14
leaq 0x20(%rsp), %rdi
callq 0xe0c0
testb %bpl, %bpl
jne 0x1979f
jmp 0x197ac
movq %rax, %r14
movq %rbx, %rdi
callq 0xe190
jmp 0x197ac
movq %rax, %r14
leaq 0x18(%rsp), %rdi
callq 0x161f0
movq %r14, %rdi
callq 0xe3a0
// File: /workspace/github_cpp_makefile_star2_O2/swxlion[P]swxJson/src/swxJson.cpp
// Function: swxJson::Json::wantInt(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
intmax_t Json::wantInt(const std::string& path, const std::string& delim)
{
	JsonPtr node = getNode(path, delim);
	if (node)
		return node->wantInt();
	
	throw JSON_ERROR_MSG(JosnNodeNotExistError, "Target node doesn't exist.");
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x40, %rsp
movq %rdx, %rcx
movq %rsi, %rdx
movq %rdi, %rsi
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x16a9e
movq (%rbx), %rdi
testq %rdi, %rdi
je 0x19802
callq 0x189d8
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0x161f0
movq %rbx, %rax
addq $0x40, %rsp
popq %rbx
popq %r14
popq %rbp
retq
pushq $0x60
popq %rdi
callq 0xe0e0
movq %rax, %rbx
leaq 0x604e(%rip), %rsi      # 0x1f862
leaq 0x20(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x14fc0
movb $0x1, %bpl
leaq 0x5e69(%rip), %rsi      # 0x1f696
leaq 0x5f97(%rip), %rdx      # 0x1f7cb
leaq 0x20(%rsp), %r8
movq %rbx, %rdi
movl $0x502, %ecx            # imm = 0x502
callq 0x1a97e
xorl %ebp, %ebp
leaq 0xe4a9(%rip), %rsi      # 0x27cf8
leaq 0x1142(%rip), %rdx      # 0x1a998
movq %rbx, %rdi
callq 0xe380
movq %rax, %r14
leaq 0x20(%rsp), %rdi
callq 0xe0c0
testb %bpl, %bpl
jne 0x19875
jmp 0x19882
movq %rax, %r14
movq %rbx, %rdi
callq 0xe190
jmp 0x19882
movq %rax, %r14
leaq 0x18(%rsp), %rdi
callq 0x161f0
movq %r14, %rdi
callq 0xe3a0
// File: /workspace/github_cpp_makefile_star2_O2/swxlion[P]swxJson/src/swxJson.cpp
// Function: swxJson::Json::wantUInt(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
uintmax_t Json::wantUInt(const std::string& path, const std::string& delim)
{
	JsonPtr node = getNode(path, delim);
	if (node)
		return node->wantUInt();
	
	throw JSON_ERROR_MSG(JosnNodeNotExistError, "Target node doesn't exist.");
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x40, %rsp
movq %rdx, %rcx
movq %rsi, %rdx
movq %rdi, %rsi
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x16a9e
movq (%rbx), %rdi
testq %rdi, %rdi
je 0x198d8
callq 0x18a8e
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0x161f0
movq %rbx, %rax
addq $0x40, %rsp
popq %rbx
popq %r14
popq %rbp
retq
pushq $0x60
popq %rdi
callq 0xe0e0
movq %rax, %rbx
leaq 0x5f78(%rip), %rsi      # 0x1f862
leaq 0x20(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x14fc0
movb $0x1, %bpl
leaq 0x5d93(%rip), %rsi      # 0x1f696
leaq 0x5ec9(%rip), %rdx      # 0x1f7d3
leaq 0x20(%rsp), %r8
movq %rbx, %rdi
movl $0x50b, %ecx            # imm = 0x50B
callq 0x1a97e
xorl %ebp, %ebp
leaq 0xe3d3(%rip), %rsi      # 0x27cf8
leaq 0x106c(%rip), %rdx      # 0x1a998
movq %rbx, %rdi
callq 0xe380
movq %rax, %r14
leaq 0x20(%rsp), %rdi
callq 0xe0c0
testb %bpl, %bpl
jne 0x1994b
jmp 0x19958
movq %rax, %r14
movq %rbx, %rdi
callq 0xe190
jmp 0x19958
movq %rax, %r14
leaq 0x18(%rsp), %rdi
callq 0x161f0
movq %r14, %rdi
callq 0xe3a0
// File: /workspace/github_cpp_makefile_star2_O2/swxlion[P]swxJson/src/swxJson.cpp
// Function: swxJson::Json::wantReal(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
double Json::wantReal(const std::string& path, const std::string& delim)
{
	JsonPtr node = getNode(path, delim);
	if (node)
		return node->wantReal();
	
	throw JSON_ERROR_MSG(JosnNodeNotExistError, "Target node doesn't exist.");
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x40, %rsp
movq %rdx, %rcx
movq %rsi, %rdx
movq %rdi, %rsi
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x16a9e
movq (%rbx), %rdi
testq %rdi, %rdi
je 0x199b4
callq 0x18b44
movsd %xmm0, 0x8(%rsp)
leaq 0x18(%rsp), %rdi
callq 0x161f0
movsd 0x8(%rsp), %xmm0
addq $0x40, %rsp
popq %rbx
popq %r14
popq %rbp
retq
pushq $0x60
popq %rdi
callq 0xe0e0
movq %rax, %rbx
leaq 0x5e9c(%rip), %rsi      # 0x1f862
leaq 0x20(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x14fc0
movb $0x1, %bpl
leaq 0x5cb7(%rip), %rsi      # 0x1f696
leaq 0x5df6(%rip), %rdx      # 0x1f7dc
leaq 0x20(%rsp), %r8
movq %rbx, %rdi
movl $0x514, %ecx            # imm = 0x514
callq 0x1a97e
xorl %ebp, %ebp
leaq 0xe2f7(%rip), %rsi      # 0x27cf8
leaq 0xf90(%rip), %rdx       # 0x1a998
movq %rbx, %rdi
callq 0xe380
movq %rax, %r14
leaq 0x20(%rsp), %rdi
callq 0xe0c0
testb %bpl, %bpl
jne 0x19a27
jmp 0x19a34
movq %rax, %r14
movq %rbx, %rdi
callq 0xe190
jmp 0x19a34
movq %rax, %r14
leaq 0x18(%rsp), %rdi
callq 0x161f0
movq %r14, %rdi
callq 0xe3a0
// File: /workspace/github_cpp_makefile_star2_O2/swxlion[P]swxJson/src/swxJson.cpp
// Function: swxJson::Json::wantString(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
std::string Json::wantString(const std::string& path, const std::string& delim)
{
	JsonPtr node = getNode(path, delim);
	if (node)
		return node->wantString();
	
	throw JSON_ERROR_MSG(JosnNodeNotExistError, "Target node doesn't exist.");
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x40, %rsp
movq %rdi, %rbx
leaq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0x16a9e
movq (%r14), %rsi
testq %rsi, %rsi
je 0x19a84
movq %rbx, %rdi
callq 0x18be6
leaq 0x18(%rsp), %rdi
callq 0x161f0
movq %rbx, %rax
addq $0x40, %rsp
popq %rbx
popq %r14
popq %rbp
retq
pushq $0x60
popq %rdi
callq 0xe0e0
movq %rax, %rbx
leaq 0x5dcc(%rip), %rsi      # 0x1f862
leaq 0x20(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x14fc0
movb $0x1, %bpl
leaq 0x5be7(%rip), %rsi      # 0x1f696
leaq 0x5d2f(%rip), %rdx      # 0x1f7e5
leaq 0x20(%rsp), %r8
movq %rbx, %rdi
movl $0x51d, %ecx            # imm = 0x51D
callq 0x1a97e
xorl %ebp, %ebp
leaq 0xe227(%rip), %rsi      # 0x27cf8
leaq 0xec0(%rip), %rdx       # 0x1a998
movq %rbx, %rdi
callq 0xe380
movq %rax, %r14
leaq 0x20(%rsp), %rdi
callq 0xe0c0
testb %bpl, %bpl
jne 0x19af7
jmp 0x19b04
movq %rax, %r14
movq %rbx, %rdi
callq 0xe190
jmp 0x19b04
movq %rax, %r14
leaq 0x18(%rsp), %rdi
callq 0x161f0
movq %r14, %rdi
callq 0xe3a0
// File: /workspace/github_cpp_makefile_star2_O2/swxlion[P]swxJson/src/swxJson.cpp
// Function: swxJson::Json::operator[](int)
Json& Json::operator [] (int index)
{
	if (_type == JSON_Uninit)
		setArray();

	if (_type != JSON_Array)
		throw JSON_ERROR_MSG(JsonNodeTypeMissMatchError, "Current node is not an array.");

	std::list<JsonPtr>* data = (std::list<JsonPtr>*)_data;
	auto it = data->begin();
	int i = 0;
	for (; it != data->end(); it++, i++)
	{
		if (i == index)
		{
			JsonPtr node = *it;
			return *(node.get());
		}
	}

	for (; i < index; i++)
	{
		JsonPtr node(new Json());
		pushNode(node);
	}

	JsonPtr node(new Json());
	pushNode(node);
	return *(node.get());
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movl %esi, %ebp
movq %rdi, %rbx
movl (%rdi), %eax
cmpl $0x8, %eax
jne 0x19c4c
movq %rbx, %rdi
callq 0x17518
movl (%rbx), %eax
cmpl $0x1, %eax
jne 0x19d5e
movq 0x8(%rbx), %rax
xorl %r15d, %r15d
movq %rax, %rsi
movq (%rsi), %rsi
cmpq %rax, %rsi
je 0x19c75
cmpl %r15d, %ebp
je 0x19d2e
incl %r15d
jmp 0x19c5f
cmpl %r15d, %ebp
cmovlel %r15d, %ebp
pushq $0x10
popq %r12
leaq 0x8(%rsp), %r13
leaq 0x38(%rsp), %r14
cmpl %ebp, %r15d
je 0x19cdb
movq %r12, %rdi
callq 0xe240
movl $0x8, (%rax)
andq $0x0, 0x8(%rax)
movq %r13, %rdi
movq %rax, %rsi
callq 0x15db2
movq %r14, %rdi
movq %r13, %rsi
callq 0x161bc
movq %rbx, %rdi
movq %r14, %rsi
callq 0x17554
leaq 0x40(%rsp), %rdi
callq 0x161f0
leaq 0x10(%rsp), %rdi
callq 0x161f0
decl %ebp
jmp 0x19c8a
pushq $0x10
popq %rdi
callq 0xe240
movl $0x8, (%rax)
andq $0x0, 0x8(%rax)
leaq 0x8(%rsp), %r14
movq %r14, %rdi
movq %rax, %rsi
callq 0x15db2
leaq 0x28(%rsp), %r15
movq %r15, %rdi
movq %r14, %rsi
callq 0x161bc
movq %rbx, %rdi
movq %r15, %rsi
callq 0x17554
leaq 0x30(%rsp), %rdi
callq 0x161f0
leaq 0x10(%rsp), %rdi
movq -0x8(%rdi), %rbx
jmp 0x19d47
addq $0x10, %rsi
leaq 0x8(%rsp), %rbx
movq %rbx, %rdi
callq 0x161bc
movq (%rbx), %rbx
leaq 0x10(%rsp), %rdi
callq 0x161f0
movq %rbx, %rax
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
pushq $0x60
popq %rdi
callq 0xe0e0
movq %rax, %rbx
leaq 0x5b18(%rip), %rsi      # 0x1f888
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x14fc0
movb $0x1, %bpl
leaq 0x590d(%rip), %rsi      # 0x1f696
leaq 0x5aed(%rip), %rdx      # 0x1f87d
leaq 0x8(%rsp), %r8
movq %rbx, %rdi
movl $0x532, %ecx            # imm = 0x532
callq 0x1a812
xorl %ebp, %ebp
leaq 0xdf1d(%rip), %rsi      # 0x27cc8
leaq 0xbe6(%rip), %rdx       # 0x1a998
movq %rbx, %rdi
callq 0xe380
movq %rax, %r12
leaq 0x8(%rsp), %rdi
callq 0xe0c0
testb %bpl, %bpl
jne 0x19dd1
jmp 0x19dfc
movq %rax, %r12
movq %rbx, %rdi
callq 0xe190
jmp 0x19dfc
movq %rax, %r12
leaq 0x30(%rsp), %rdi
jmp 0x19ded
movq %rax, %r12
leaq 0x40(%rsp), %rdi
callq 0x161f0
leaq 0x10(%rsp), %rdi
callq 0x161f0
movq %r12, %rdi
callq 0xe3a0
// File: /workspace/github_cpp_makefile_star2_O2/swxlion[P]swxJson/src/swxJson.cpp
// Function: swxJson::Json::wantBoolVector(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
std::vector<bool> Json::wantBoolVector(const std::string& path, const std::string& delim)
{
	JsonPtr node = getNode(path, delim);
	if (node)
		return node->wantBoolVector();
	
	throw JSON_ERROR_MSG(JosnNodeNotExistError, "Target node doesn't exist.");
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x40, %rsp
movq %rdi, %rbx
leaq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0x16a9e
movq (%r14), %rsi
testq %rsi, %rsi
je 0x19e42
movq %rbx, %rdi
callq 0x18c8e
leaq 0x18(%rsp), %rdi
callq 0x161f0
movq %rbx, %rax
addq $0x40, %rsp
popq %rbx
popq %r14
popq %rbp
retq
pushq $0x60
popq %rdi
callq 0xe0e0
movq %rax, %rbx
leaq 0x5a0e(%rip), %rsi      # 0x1f862
leaq 0x20(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x14fc0
movb $0x1, %bpl
leaq 0x5829(%rip), %rsi      # 0x1f696
leaq 0x597c(%rip), %rdx      # 0x1f7f0
leaq 0x20(%rsp), %r8
movq %rbx, %rdi
movl $0x551, %ecx            # imm = 0x551
callq 0x1a97e
xorl %ebp, %ebp
leaq 0xde69(%rip), %rsi      # 0x27cf8
leaq 0xb02(%rip), %rdx       # 0x1a998
movq %rbx, %rdi
callq 0xe380
movq %rax, %r14
leaq 0x20(%rsp), %rdi
callq 0xe0c0
testb %bpl, %bpl
jne 0x19eb5
jmp 0x19ec2
movq %rax, %r14
movq %rbx, %rdi
callq 0xe190
jmp 0x19ec2
movq %rax, %r14
leaq 0x18(%rsp), %rdi
callq 0x161f0
movq %r14, %rdi
callq 0xe3a0
// File: /workspace/github_cpp_makefile_star2_O2/swxlion[P]swxJson/src/swxJson.cpp
// Function: swxJson::Json::wantRealVector(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
std::vector<double> Json::wantRealVector(const std::string& path, const std::string& delim)
{
	JsonPtr node = getNode(path, delim);
	if (node)
		return node->wantRealVector();
	
	throw JSON_ERROR_MSG(JosnNodeNotExistError, "Target node doesn't exist.");
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x40, %rsp
movq %rdi, %rbx
leaq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0x16a9e
movq (%r14), %rsi
testq %rsi, %rsi
je 0x19f12
movq %rbx, %rdi
callq 0x18d84
leaq 0x18(%rsp), %rdi
callq 0x161f0
movq %rbx, %rax
addq $0x40, %rsp
popq %rbx
popq %r14
popq %rbp
retq
pushq $0x60
popq %rdi
callq 0xe0e0
movq %rax, %rbx
leaq 0x593e(%rip), %rsi      # 0x1f862
leaq 0x20(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x14fc0
movb $0x1, %bpl
leaq 0x5759(%rip), %rsi      # 0x1f696
leaq 0x58bb(%rip), %rdx      # 0x1f7ff
leaq 0x20(%rsp), %r8
movq %rbx, %rdi
movl $0x55a, %ecx            # imm = 0x55A
callq 0x1a97e
xorl %ebp, %ebp
leaq 0xdd99(%rip), %rsi      # 0x27cf8
leaq 0xa32(%rip), %rdx       # 0x1a998
movq %rbx, %rdi
callq 0xe380
movq %rax, %r14
leaq 0x20(%rsp), %rdi
callq 0xe0c0
testb %bpl, %bpl
jne 0x19f85
jmp 0x19f92
movq %rax, %r14
movq %rbx, %rdi
callq 0xe190
jmp 0x19f92
movq %rax, %r14
leaq 0x18(%rsp), %rdi
callq 0x161f0
movq %r14, %rdi
callq 0xe3a0
// File: /workspace/github_cpp_makefile_star2_O2/swxlion[P]swxJson/src/swxJson.cpp
// Function: swxJson::Json::wantIntVector(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
std::vector<intmax_t> Json::wantIntVector(const std::string& path, const std::string& delim)
{
	JsonPtr node = getNode(path, delim);
	if (node)
		return node->wantIntVector();
	
	throw JSON_ERROR_MSG(JosnNodeNotExistError, "Target node doesn't exist.");
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x40, %rsp
movq %rdi, %rbx
leaq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0x16a9e
movq (%r14), %rsi
testq %rsi, %rsi
je 0x19fe2
movq %rbx, %rdi
callq 0x18e80
leaq 0x18(%rsp), %rdi
callq 0x161f0
movq %rbx, %rax
addq $0x40, %rsp
popq %rbx
popq %r14
popq %rbp
retq
pushq $0x60
popq %rdi
callq 0xe0e0
movq %rax, %rbx
leaq 0x586e(%rip), %rsi      # 0x1f862
leaq 0x20(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x14fc0
movb $0x1, %bpl
leaq 0x5689(%rip), %rsi      # 0x1f696
leaq 0x57fa(%rip), %rdx      # 0x1f80e
leaq 0x20(%rsp), %r8
movq %rbx, %rdi
movl $0x563, %ecx            # imm = 0x563
callq 0x1a97e
xorl %ebp, %ebp
leaq 0xdcc9(%rip), %rsi      # 0x27cf8
leaq 0x962(%rip), %rdx       # 0x1a998
movq %rbx, %rdi
callq 0xe380
movq %rax, %r14
leaq 0x20(%rsp), %rdi
callq 0xe0c0
testb %bpl, %bpl
jne 0x1a055
jmp 0x1a062
movq %rax, %r14
movq %rbx, %rdi
callq 0xe190
jmp 0x1a062
movq %rax, %r14
leaq 0x18(%rsp), %rdi
callq 0x161f0
movq %r14, %rdi
callq 0xe3a0
// File: /workspace/github_cpp_makefile_star2_O2/swxlion[P]swxJson/src/swxJson.cpp
// Function: swxJson::Json::wantStringVector(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
std::vector<std::string> Json::wantStringVector(const std::string& path, const std::string& delim)
{
	JsonPtr node = getNode(path, delim);
	if (node)
		return node->wantStringVector();
	
	throw JSON_ERROR_MSG(JosnNodeNotExistError, "Target node doesn't exist.");
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x40, %rsp
movq %rdi, %rbx
leaq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0x16a9e
movq (%r14), %rsi
testq %rsi, %rsi
je 0x1a0b2
movq %rbx, %rdi
callq 0x18f7c
leaq 0x18(%rsp), %rdi
callq 0x161f0
movq %rbx, %rax
addq $0x40, %rsp
popq %rbx
popq %r14
popq %rbp
retq
pushq $0x60
popq %rdi
callq 0xe0e0
movq %rax, %rbx
leaq 0x579e(%rip), %rsi      # 0x1f862
leaq 0x20(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x14fc0
movb $0x1, %bpl
leaq 0x55b9(%rip), %rsi      # 0x1f696
leaq 0x5738(%rip), %rdx      # 0x1f81c
leaq 0x20(%rsp), %r8
movq %rbx, %rdi
movl $0x56c, %ecx            # imm = 0x56C
callq 0x1a97e
xorl %ebp, %ebp
leaq 0xdbf9(%rip), %rsi      # 0x27cf8
leaq 0x892(%rip), %rdx       # 0x1a998
movq %rbx, %rdi
callq 0xe380
movq %rax, %r14
leaq 0x20(%rsp), %rdi
callq 0xe0c0
testb %bpl, %bpl
jne 0x1a125
jmp 0x1a132
movq %rax, %r14
movq %rbx, %rdi
callq 0xe190
jmp 0x1a132
movq %rax, %r14
leaq 0x18(%rsp), %rdi
callq 0x161f0
movq %r14, %rdi
callq 0xe3a0
// File: /workspace/github_cpp_makefile_star2_O2/swxlion[P]swxJson/src/swxJson.cpp
// Function: swxJson::Json::wantBoolDict(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
std::map<std::string, bool> Json::wantBoolDict(const std::string& path, const std::string& delim)
{
	JsonPtr node = getNode(path, delim);
	if (node)
		return node->wantBoolDict();
	
	throw JSON_ERROR_MSG(JosnNodeNotExistError, "Target node doesn't exist.");
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x40, %rsp
movq %rdi, %rbx
leaq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0x16a9e
movq (%r14), %rsi
testq %rsi, %rsi
je 0x1a182
movq %rbx, %rdi
callq 0x1908c
leaq 0x18(%rsp), %rdi
callq 0x161f0
movq %rbx, %rax
addq $0x40, %rsp
popq %rbx
popq %r14
popq %rbp
retq
pushq $0x60
popq %rdi
callq 0xe0e0
movq %rax, %rbx
leaq 0x56ce(%rip), %rsi      # 0x1f862
leaq 0x20(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x14fc0
movb $0x1, %bpl
leaq 0x54e9(%rip), %rsi      # 0x1f696
leaq 0x5679(%rip), %rdx      # 0x1f82d
leaq 0x20(%rsp), %r8
movq %rbx, %rdi
movl $0x576, %ecx            # imm = 0x576
callq 0x1a97e
xorl %ebp, %ebp
leaq 0xdb29(%rip), %rsi      # 0x27cf8
leaq 0x7c2(%rip), %rdx       # 0x1a998
movq %rbx, %rdi
callq 0xe380
movq %rax, %r14
leaq 0x20(%rsp), %rdi
callq 0xe0c0
testb %bpl, %bpl
jne 0x1a1f5
jmp 0x1a202
movq %rax, %r14
movq %rbx, %rdi
callq 0xe190
jmp 0x1a202
movq %rax, %r14
leaq 0x18(%rsp), %rdi
callq 0x161f0
movq %r14, %rdi
callq 0xe3a0
// File: /workspace/github_cpp_makefile_star2_O2/swxlion[P]swxJson/src/swxJson.cpp
// Function: swxJson::Json::wantRealDict(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
std::map<std::string, double> Json::wantRealDict(const std::string& path, const std::string& delim)
{
	JsonPtr node = getNode(path, delim);
	if (node)
		return node->wantRealDict();
	
	throw JSON_ERROR_MSG(JosnNodeNotExistError, "Target node doesn't exist.");
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x40, %rsp
movq %rdi, %rbx
leaq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0x16a9e
movq (%r14), %rsi
testq %rsi, %rsi
je 0x1a252
movq %rbx, %rdi
callq 0x1918e
leaq 0x18(%rsp), %rdi
callq 0x161f0
movq %rbx, %rax
addq $0x40, %rsp
popq %rbx
popq %r14
popq %rbp
retq
pushq $0x60
popq %rdi
callq 0xe0e0
movq %rax, %rbx
leaq 0x55fe(%rip), %rsi      # 0x1f862
leaq 0x20(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x14fc0
movb $0x1, %bpl
leaq 0x5419(%rip), %rsi      # 0x1f696
leaq 0x55b6(%rip), %rdx      # 0x1f83a
leaq 0x20(%rsp), %r8
movq %rbx, %rdi
movl $0x57f, %ecx            # imm = 0x57F
callq 0x1a97e
xorl %ebp, %ebp
leaq 0xda59(%rip), %rsi      # 0x27cf8
leaq 0x6f2(%rip), %rdx       # 0x1a998
movq %rbx, %rdi
callq 0xe380
movq %rax, %r14
leaq 0x20(%rsp), %rdi
callq 0xe0c0
testb %bpl, %bpl
jne 0x1a2c5
jmp 0x1a2d2
movq %rax, %r14
movq %rbx, %rdi
callq 0xe190
jmp 0x1a2d2
movq %rax, %r14
leaq 0x18(%rsp), %rdi
callq 0x161f0
movq %r14, %rdi
callq 0xe3a0
// File: /workspace/github_cpp_makefile_star2_O2/swxlion[P]swxJson/src/swxJson.cpp
// Function: swxJson::Json::wantIntDict(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
std::map<std::string, intmax_t> Json::wantIntDict(const std::string& path, const std::string& delim)
{
	JsonPtr node = getNode(path, delim);
	if (node)
		return node->wantIntDict();
	
	throw JSON_ERROR_MSG(JosnNodeNotExistError, "Target node doesn't exist.");
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x40, %rsp
movq %rdi, %rbx
leaq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0x16a9e
movq (%r14), %rsi
testq %rsi, %rsi
je 0x1a322
movq %rbx, %rdi
callq 0x1929c
leaq 0x18(%rsp), %rdi
callq 0x161f0
movq %rbx, %rax
addq $0x40, %rsp
popq %rbx
popq %r14
popq %rbp
retq
pushq $0x60
popq %rdi
callq 0xe0e0
movq %rax, %rbx
leaq 0x552e(%rip), %rsi      # 0x1f862
leaq 0x20(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x14fc0
movb $0x1, %bpl
leaq 0x5349(%rip), %rsi      # 0x1f696
leaq 0x54f3(%rip), %rdx      # 0x1f847
leaq 0x20(%rsp), %r8
movq %rbx, %rdi
movl $0x588, %ecx            # imm = 0x588
callq 0x1a97e
xorl %ebp, %ebp
leaq 0xd989(%rip), %rsi      # 0x27cf8
leaq 0x622(%rip), %rdx       # 0x1a998
movq %rbx, %rdi
callq 0xe380
movq %rax, %r14
leaq 0x20(%rsp), %rdi
callq 0xe0c0
testb %bpl, %bpl
jne 0x1a395
jmp 0x1a3a2
movq %rax, %r14
movq %rbx, %rdi
callq 0xe190
jmp 0x1a3a2
movq %rax, %r14
leaq 0x18(%rsp), %rdi
callq 0x161f0
movq %r14, %rdi
callq 0xe3a0
// File: /workspace/github_cpp_makefile_star2_O2/swxlion[P]swxJson/src/swxJson.cpp
// Function: swxJson::Json::wantStringDict(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
std::map<std::string, std::string> Json::wantStringDict(const std::string& path, const std::string& delim)
{
	JsonPtr node = getNode(path, delim);
	if (node)
		return node->wantStringDict();
	
	throw JSON_ERROR_MSG(JosnNodeNotExistError, "Target node doesn't exist.");
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x40, %rsp
movq %rdi, %rbx
leaq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0x16a9e
movq (%r14), %rsi
testq %rsi, %rsi
je 0x1a3f2
movq %rbx, %rdi
callq 0x193a4
leaq 0x18(%rsp), %rdi
callq 0x161f0
movq %rbx, %rax
addq $0x40, %rsp
popq %rbx
popq %r14
popq %rbp
retq
pushq $0x60
popq %rdi
callq 0xe0e0
movq %rax, %rbx
leaq 0x545e(%rip), %rsi      # 0x1f862
leaq 0x20(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x14fc0
movb $0x1, %bpl
leaq 0x5279(%rip), %rsi      # 0x1f696
leaq 0x542f(%rip), %rdx      # 0x1f853
leaq 0x20(%rsp), %r8
movq %rbx, %rdi
movl $0x591, %ecx            # imm = 0x591
callq 0x1a97e
xorl %ebp, %ebp
leaq 0xd8b9(%rip), %rsi      # 0x27cf8
leaq 0x552(%rip), %rdx       # 0x1a998
movq %rbx, %rdi
callq 0xe380
movq %rax, %r14
leaq 0x20(%rsp), %rdi
callq 0xe0c0
testb %bpl, %bpl
jne 0x1a465
jmp 0x1a472
movq %rax, %r14
movq %rbx, %rdi
callq 0xe190
jmp 0x1a472
movq %rax, %r14
leaq 0x18(%rsp), %rdi
callq 0x161f0
movq %r14, %rdi
callq 0xe3a0