LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_cpp_makefile_star2_O1/swxlion[P]swxJson/tests/swxJsonAdvancedTest_fetch_v2.cpp
// Function: void test_array<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, 3ul>(std::shared_ptr<swxJson::Json>, char const*, char const*, bool)
void test_array(JsonPtr json, const char* key, const char* desc, bool compatibleMode)
{
	cout<<endl<<desc<<endl;

	std::array<K, N> elemArray = json->wantArray<K, N>(key, compatibleMode);
	for (auto& element: elemArray)
		cout<<"Element: "<<element<<endl;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb0, %rsp
movl %ecx, %ebx
movq %rdx, %r13
movq %rsi, %r14
movq %rdi, %r15
movq 0x21fca(%rip), %r12     # 0x38fd8
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x13260
movsbl %al, %esi
movq %r12, %rdi
callq 0x13030
movq %rax, %rdi
callq 0x13190
movq %rax, %r12
testq %r13, %r13
je 0x17056
movq %r13, %rdi
callq 0x130e0
movq %r12, %rdi
movq %r13, %rsi
movq %rax, %rdx
callq 0x132f0
jmp 0x17071
movq (%r12), %rax
movq -0x18(%rax), %rax
movq %r12, %rdi
addq %rax, %rdi
movl 0x20(%r12,%rax), %esi
orl $0x1, %esi
callq 0x13400
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x13260
movsbl %al, %esi
movq %r12, %rdi
callq 0x13030
movq %rax, %rdi
callq 0x13190
movq (%r15), %r15
leaq 0x30(%rsp), %rdi
leaq 0xf(%rsp), %rdx
movq %r14, %rsi
callq 0x16bd0
leaq 0x20(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x16081(%rip), %rsi     # 0x2d140
leaq 0x1607c(%rip), %rdx     # 0x2d142
leaq 0x10(%rsp), %rdi
callq 0x19fa4
movzbl %bl, %ecx
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rdx
leaq 0x10(%rsp), %r8
movq %r15, %rsi
callq 0x1b50c
movq 0x10(%rsp), %rdi
cmpq %r12, %rdi
je 0x17101
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x132a0
leaq 0x40(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1711c
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x132a0
movl $0x8, %r13d
leaq 0xb0(%rsp), %rbx
movq 0x21ea7(%rip), %r14     # 0x38fd8
leaq 0x164f3(%rip), %r15     # 0x2d62b
movl $0x9, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x132f0
movq 0x48(%rsp,%r13), %rsi
movq 0x50(%rsp,%r13), %rdx
movq %r14, %rdi
callq 0x132f0
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x13260
movsbl %al, %esi
movq %r12, %rdi
callq 0x13030
movq %rax, %rdi
callq 0x13190
addq $0x20, %r13
cmpq $0x68, %r13
jne 0x17138
movq $-0x60, %rbx
leaq 0xa0(%rsp), %r14
movq -0x10(%r14), %rdi
cmpq %rdi, %r14
je 0x171b1
movq (%r14), %rsi
incq %rsi
callq 0x132a0
addq $-0x20, %r14
addq $0x20, %rbx
jne 0x1719d
addq $0xb0, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
movq %rax, %r14
movq 0x10(%rsp), %rdi
cmpq %r12, %rdi
je 0x171eb
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x132a0
jmp 0x171eb
movq %rax, %r14
leaq 0x40(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1721d
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x132a0
jmp 0x1721d
movq %rax, %r14
jmp 0x1721d
movq %rax, %r14
leaq 0x50(%rsp), %rsi
movq %rbx, %rdi
callq 0x13470
movq %r14, %rdi
callq 0x13430
// File: /workspace/github_cpp_makefile_star2_O1/swxlion[P]swxJson/tests/swxJsonAdvancedTest_fetch_v2.cpp
// Function: void test_list<int>(std::shared_ptr<swxJson::Json>, char const*, char const*)
void test_list(JsonPtr json, const char* key, const char* desc)
{
	cout<<endl<<desc<<endl;

	std::list<K> elemList = json->wantList<K>(key);
	for (auto& element: elemList)
		cout<<"Element: "<<element<<endl;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x60, %rsp
movq %rdx, %r12
movq %rsi, %rbx
movq %rdi, %r14
movq 0x207d7(%rip), %r15     # 0x38fd8
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x13260
movsbl %al, %esi
movq %r15, %rdi
callq 0x13030
movq %rax, %rdi
callq 0x13190
movq %rax, %r15
testq %r12, %r12
je 0x18848
movq %r12, %rdi
callq 0x130e0
movq %r15, %rdi
movq %r12, %rsi
movq %rax, %rdx
callq 0x132f0
jmp 0x18862
movq (%r15), %rax
movq -0x18(%rax), %rax
movq %r15, %rdi
addq %rax, %rdi
movl 0x20(%r15,%rax), %esi
orl $0x1, %esi
callq 0x13400
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x13260
movsbl %al, %esi
movq %r15, %rdi
callq 0x13030
movq %rax, %rdi
callq 0x13190
movq (%r14), %r14
leaq 0x28(%rsp), %rdi
leaq 0x7(%rsp), %rdx
movq %rbx, %rsi
callq 0x16bd0
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x14892(%rip), %rsi     # 0x2d140
leaq 0x1488d(%rip), %rdx     # 0x2d142
leaq 0x8(%rsp), %rdi
callq 0x19fa4
leaq 0x48(%rsp), %rbx
leaq 0x28(%rsp), %rdx
leaq 0x8(%rsp), %rcx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1de32
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x188f0
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x132a0
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1890b
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x132a0
movq 0x206c6(%rip), %r14     # 0x38fd8
leaq 0x14d12(%rip), %r15     # 0x2d62b
movq %rbx, %r13
movq (%r13), %r13
cmpq %rbx, %r13
je 0x1896d
movl $0x9, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x132f0
movl 0x10(%r13), %esi
movq %r14, %rdi
callq 0x13420
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x13260
movsbl %al, %esi
movq %r12, %rdi
callq 0x13030
movq %rax, %rdi
callq 0x13190
jmp 0x1891c
leaq 0x48(%rsp), %rbx
movq (%rbx), %rdi
cmpq %rbx, %rdi
je 0x1898f
movq (%rdi), %r14
movl $0x18, %esi
callq 0x132a0
movq %r14, %rdi
cmpq %rbx, %r14
jne 0x1897a
addq $0x60, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x189bc
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x132a0
jmp 0x189bc
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x18a03
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x132a0
jmp 0x18a03
movq %rax, %rbx
jmp 0x18a03
movq %rax, %rbx
leaq 0x48(%rsp), %r14
movq (%r14), %rdi
cmpq %r14, %rdi
je 0x18a03
movq (%rdi), %r15
movl $0x18, %esi
callq 0x132a0
movq %r15, %rdi
cmpq %r14, %r15
jne 0x189ee
movq %rbx, %rdi
callq 0x13430
// File: /workspace/github_cpp_makefile_star2_O1/swxlion[P]swxJson/tests/swxJsonAdvancedTest_fetch_v2.cpp
// Function: void test_vector<int>(std::shared_ptr<swxJson::Json>, char const*, char const*)
void test_vector(JsonPtr json, const char* key, const char* desc)
{
	cout<<endl<<desc<<endl;

	std::vector<K> elemVector = json->wantVector<K>(key);
	for (auto& element: elemVector)
		cout<<"Element: "<<element<<endl;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x60, %rsp
movq %rdx, %r12
movq %rsi, %rbx
movq %rdi, %r14
movq 0x203ad(%rip), %r15     # 0x38fd8
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x13260
movsbl %al, %esi
movq %r15, %rdi
callq 0x13030
movq %rax, %rdi
callq 0x13190
movq %rax, %r15
testq %r12, %r12
je 0x18c72
movq %r12, %rdi
callq 0x130e0
movq %r15, %rdi
movq %r12, %rsi
movq %rax, %rdx
callq 0x132f0
jmp 0x18c8c
movq (%r15), %rax
movq -0x18(%rax), %rax
movq %r15, %rdi
addq %rax, %rdi
movl 0x20(%r15,%rax), %esi
orl $0x1, %esi
callq 0x13400
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x13260
movsbl %al, %esi
movq %r15, %rdi
callq 0x13030
movq %rax, %rdi
callq 0x13190
movq (%r14), %r14
leaq 0x40(%rsp), %rdi
leaq 0x7(%rsp), %rdx
movq %rbx, %rsi
callq 0x16bd0
leaq 0x30(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x14468(%rip), %rsi     # 0x2d140
leaq 0x14463(%rip), %rdx     # 0x2d142
leaq 0x20(%rsp), %rdi
callq 0x19fa4
leaq 0x8(%rsp), %rdi
leaq 0x40(%rsp), %rdx
leaq 0x20(%rsp), %rcx
movq %r14, %rsi
callq 0x1e676
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0x18d17
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x132a0
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x18d32
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x132a0
movq 0x8(%rsp), %r12
movq 0x10(%rsp), %r13
cmpq %r13, %r12
je 0x18d9e
movq 0x20290(%rip), %rbx     # 0x38fd8
leaq 0x148dc(%rip), %r14     # 0x2d62b
movl $0x9, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x132f0
movl (%r12), %esi
movq %rbx, %rdi
callq 0x13420
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x13260
movsbl %al, %esi
movq %r15, %rdi
callq 0x13030
movq %rax, %rdi
callq 0x13190
addq $0x4, %r12
cmpq %r13, %r12
jne 0x18d4f
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x18db5
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x132a0
addq $0x60, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0x18de2
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x132a0
jmp 0x18de2
movq %rax, %rbx
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x18e19
movq 0x50(%rsp), %rsi
incq %rsi
jmp 0x18e14
movq %rax, %rbx
jmp 0x18e19
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x18e19
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x132a0
movq %rbx, %rdi
callq 0x13430
// File: /workspace/github_cpp_makefile_star2_O1/swxlion[P]swxJson/tests/swxJsonAdvancedTest_fetch_v2.cpp
// Function: void test_set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>(std::shared_ptr<swxJson::Json>, char const*, char const*)
void test_set(JsonPtr json, const char* key, const char* desc)
{
	cout<<endl<<desc<<endl;

	std::set<K> elemSet = json->wantSet<K>(key);
	for (auto& element: elemSet)
		cout<<"Element: "<<element<<endl;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x80, %rsp
movq %rdx, %r12
movq %rsi, %rbx
movq %rdi, %r14
movq 0x20197(%rip), %r15     # 0x38fd8
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x13260
movsbl %al, %esi
movq %r15, %rdi
callq 0x13030
movq %rax, %rdi
callq 0x13190
movq %rax, %r15
testq %r12, %r12
je 0x18e88
movq %r12, %rdi
callq 0x130e0
movq %r15, %rdi
movq %r12, %rsi
movq %rax, %rdx
callq 0x132f0
jmp 0x18ea2
movq (%r15), %rax
movq -0x18(%rax), %rax
movq %r15, %rdi
addq %rax, %rdi
movl 0x20(%r15,%rax), %esi
orl $0x1, %esi
callq 0x13400
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x13260
movsbl %al, %esi
movq %r15, %rdi
callq 0x13030
movq %rax, %rdi
callq 0x13190
movq (%r14), %r14
leaq 0x30(%rsp), %rdi
leaq 0xf(%rsp), %rdx
movq %rbx, %rsi
callq 0x16bd0
leaq 0x20(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x14252(%rip), %rsi     # 0x2d140
leaq 0x1424d(%rip), %rdx     # 0x2d142
leaq 0x10(%rsp), %rdi
callq 0x19fa4
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rdx
leaq 0x10(%rsp), %rcx
movq %r14, %rsi
callq 0x1ea7c
movq 0x10(%rsp), %rdi
cmpq %r15, %rdi
je 0x18f2d
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x132a0
leaq 0x40(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x18f48
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x132a0
leaq 0x58(%rsp), %r13
movq 0x10(%r13), %rbx
cmpq %r13, %rbx
je 0x18fbe
movq 0x2007b(%rip), %r14     # 0x38fd8
leaq 0x146c7(%rip), %r15     # 0x2d62b
movl $0x9, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x132f0
movq 0x20(%rbx), %rsi
movq 0x28(%rbx), %rdx
movq %r14, %rdi
callq 0x132f0
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x13260
movsbl %al, %esi
movq %r12, %rdi
callq 0x13030
movq %rax, %rdi
callq 0x13190
movq %rbx, %rdi
callq 0x13300
movq %rax, %rbx
cmpq %r13, %rax
jne 0x18f64
leaq 0x50(%rsp), %rdi
callq 0x1ee82
addq $0x80, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
movq %rax, %rbx
movq 0x10(%rsp), %rdi
cmpq %r15, %rdi
je 0x18ff8
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x132a0
jmp 0x18ff8
movq %rax, %rbx
leaq 0x40(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x19027
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x132a0
jmp 0x19027
movq %rax, %rbx
jmp 0x19027
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0x1ee82
movq %rbx, %rdi
callq 0x13430
// File: /workspace/github_cpp_makefile_star2_O1/swxlion[P]swxJson/tests/swxJsonAdvancedTest_fetch_v2.cpp
// Function: void test_unordered_set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>(std::shared_ptr<swxJson::Json>, char const*, char const*)
void test_unordered_set(JsonPtr json, const char* key, const char* desc)
{
	cout<<endl<<desc<<endl;

	std::unordered_set<K> elemSet = json->wantUnorderedSet<K>(key);
	for (auto& element: elemSet)
		cout<<"Element: "<<element<<endl;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x88, %rsp
movq %rdx, %r12
movq %rsi, %rbx
movq %rdi, %r14
movq 0x1fd82(%rip), %r15     # 0x38fd8
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x13260
movsbl %al, %esi
movq %r15, %rdi
callq 0x13030
movq %rax, %rdi
callq 0x13190
movq %rax, %r15
testq %r12, %r12
je 0x1929d
movq %r12, %rdi
callq 0x130e0
movq %r15, %rdi
movq %r12, %rsi
movq %rax, %rdx
callq 0x132f0
jmp 0x192b7
movq (%r15), %rax
movq -0x18(%rax), %rax
movq %r15, %rdi
addq %rax, %rdi
movl 0x20(%r15,%rax), %esi
orl $0x1, %esi
callq 0x13400
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x13260
movsbl %al, %esi
movq %r15, %rdi
callq 0x13030
movq %rax, %rdi
callq 0x13190
movq (%r14), %r14
leaq 0x30(%rsp), %rdi
leaq 0xf(%rsp), %rdx
movq %rbx, %rsi
callq 0x16bd0
leaq 0x20(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x13e3d(%rip), %rsi     # 0x2d140
leaq 0x13e38(%rip), %rdx     # 0x2d142
leaq 0x10(%rsp), %rdi
callq 0x19fa4
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rdx
leaq 0x10(%rsp), %rcx
movq %r14, %rsi
callq 0x1f28c
movq 0x10(%rsp), %rdi
cmpq %r15, %rdi
je 0x19342
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x132a0
leaq 0x40(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1935d
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x132a0
movq 0x60(%rsp), %r12
testq %r12, %r12
je 0x193ca
movq 0x1fc6a(%rip), %rbx     # 0x38fd8
leaq 0x142b6(%rip), %r14     # 0x2d62b
movl $0x9, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x132f0
movq 0x8(%r12), %rsi
movq 0x10(%r12), %rdx
movq %rbx, %rdi
callq 0x132f0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x13260
movsbl %al, %esi
movq %r15, %rdi
callq 0x13030
movq %rax, %rdi
callq 0x13190
movq (%r12), %r12
testq %r12, %r12
jne 0x19375
leaq 0x50(%rsp), %rdi
callq 0x1f938
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %rax, %rbx
movq 0x10(%rsp), %rdi
cmpq %r15, %rdi
je 0x19402
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x132a0
jmp 0x19402
movq %rax, %rbx
leaq 0x40(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x19431
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x132a0
jmp 0x19431
movq %rax, %rbx
jmp 0x19431
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0x1f938
movq %rbx, %rdi
callq 0x13430
// File: /workspace/github_cpp_makefile_star2_O1/swxlion[P]swxJson/tests/swxJsonAdvancedTest_fetch_v2.cpp
// Function: void test_dict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>(std::shared_ptr<swxJson::Json>, char const*, char const*)
void test_dict(JsonPtr json, const char* key, const char* desc)
{
	cout<<endl<<desc<<endl;

	std::map<std::string, K> elemMap = json->wantDict<K>(key);
	for (auto& pp: elemMap)
		cout<<"Element: "<<pp.first<<":"<<pp.second<<endl;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
movq %rdx, %r12
movq %rsi, %rbx
movq %rdi, %r14
movq 0x1f985(%rip), %r15     # 0x38fd8
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x13260
movsbl %al, %esi
movq %r15, %rdi
callq 0x13030
movq %rax, %rdi
callq 0x13190
movq %rax, %r15
testq %r12, %r12
je 0x1969a
movq %r12, %rdi
callq 0x130e0
movq %r15, %rdi
movq %r12, %rsi
movq %rax, %rdx
callq 0x132f0
jmp 0x196b4
movq (%r15), %rax
movq -0x18(%rax), %rax
movq %r15, %rdi
addq %rax, %rdi
movl 0x20(%r15,%rax), %esi
orl $0x1, %esi
callq 0x13400
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x13260
movsbl %al, %esi
movq %r15, %rdi
callq 0x13030
movq %rax, %rdi
callq 0x13190
movq (%r14), %r14
leaq 0x28(%rsp), %rdi
leaq 0x7(%rsp), %rdx
movq %rbx, %rsi
callq 0x16bd0
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x13a40(%rip), %rsi     # 0x2d140
leaq 0x13a3b(%rip), %rdx     # 0x2d142
leaq 0x8(%rsp), %rdi
callq 0x19fa4
leaq 0x48(%rsp), %rdi
leaq 0x28(%rsp), %rdx
leaq 0x8(%rsp), %rcx
movq %r14, %rsi
callq 0x1ff2e
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x1973f
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x132a0
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1975a
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x132a0
leaq 0x50(%rsp), %rbp
movq 0x10(%rbp), %rbx
cmpq %rbp, %rbx
je 0x197fe
movq 0x1f865(%rip), %r14     # 0x38fd8
leaq 0x13eb1(%rip), %r15     # 0x2d62b
leaq 0x14055(%rip), %r12     # 0x2d7d6
movl $0x9, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x132f0
movq 0x20(%rbx), %rsi
movq 0x28(%rbx), %rdx
movq %r14, %rdi
callq 0x132f0
movq %rax, %r13
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x132f0
movq 0x40(%rbx), %rsi
movq 0x48(%rbx), %rdx
movq %r13, %rdi
callq 0x132f0
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x13260
movsbl %al, %esi
movq %r13, %rdi
callq 0x13030
movq %rax, %rdi
callq 0x13190
movq %rbx, %rdi
callq 0x131a0
movq %rax, %rbx
cmpq %rbp, %rax
jne 0x19781
leaq 0x48(%rsp), %rdi
callq 0x205ee
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x19836
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x132a0
jmp 0x19836
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x19865
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x132a0
jmp 0x19865
movq %rax, %rbx
jmp 0x19865
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0x205ee
movq %rbx, %rdi
callq 0x13430
// File: /workspace/github_cpp_makefile_star2_O1/swxlion[P]swxJson/tests/swxJsonAdvancedTest_fetch_v2.cpp
// Function: void test_unordered_dict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>(std::shared_ptr<swxJson::Json>, char const*, char const*)
void test_unordered_dict(JsonPtr json, const char* key, const char* desc)
{
	cout<<endl<<desc<<endl;

	std::unordered_map<std::string, K> elemMap = json->wantUnorderedDict<K>(key);
	for (auto& pp: elemMap)
		cout<<"Element: "<<pp.first<<":"<<pp.second<<endl;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x80, %rsp
movq %rdx, %r12
movq %rsi, %rbx
movq %rdi, %r14
movq 0x1f518(%rip), %r15     # 0x38fd8
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x13260
movsbl %al, %esi
movq %r15, %rdi
callq 0x13030
movq %rax, %rdi
callq 0x13190
movq %rax, %r15
testq %r12, %r12
je 0x19b07
movq %r12, %rdi
callq 0x130e0
movq %r15, %rdi
movq %r12, %rsi
movq %rax, %rdx
callq 0x132f0
jmp 0x19b21
movq (%r15), %rax
movq -0x18(%rax), %rax
movq %r15, %rdi
addq %rax, %rdi
movl 0x20(%r15,%rax), %esi
orl $0x1, %esi
callq 0x13400
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x13260
movsbl %al, %esi
movq %r15, %rdi
callq 0x13030
movq %rax, %rdi
callq 0x13190
movq (%r14), %r14
leaq 0x28(%rsp), %rdi
leaq 0x7(%rsp), %rdx
movq %rbx, %rsi
callq 0x16bd0
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x135d3(%rip), %rsi     # 0x2d140
leaq 0x135ce(%rip), %rdx     # 0x2d142
leaq 0x8(%rsp), %rdi
callq 0x19fa4
leaq 0x48(%rsp), %rdi
leaq 0x28(%rsp), %rdx
leaq 0x8(%rsp), %rcx
movq %r14, %rsi
callq 0x20cd2
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x19bac
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x132a0
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x19bc7
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x132a0
movq 0x58(%rsp), %r13
testq %r13, %r13
je 0x19c60
movq 0x1f3fc(%rip), %rbx     # 0x38fd8
leaq 0x13a48(%rip), %r14     # 0x2d62b
leaq 0x13bec(%rip), %r15     # 0x2d7d6
movl $0x9, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x132f0
movq 0x8(%r13), %rsi
movq 0x10(%r13), %rdx
movq %rbx, %rdi
callq 0x132f0
movq %rax, %r12
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x132f0
movq 0x28(%r13), %rsi
movq 0x30(%r13), %rdx
movq %r12, %rdi
callq 0x132f0
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x13260
movsbl %al, %esi
movq %r12, %rdi
callq 0x13030
movq %rax, %rdi
callq 0x13190
movq (%r13), %r13
testq %r13, %r13
jne 0x19bea
leaq 0x48(%rsp), %rdi
callq 0x213b8
addq $0x80, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x19c9a
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x132a0
jmp 0x19c9a
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x19cc9
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x132a0
jmp 0x19cc9
movq %rax, %rbx
jmp 0x19cc9
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0x213b8
movq %rbx, %rdi
callq 0x13430
// File: /workspace/github_cpp_makefile_star2_O1/swxlion[P]swxJson/tests/../src/swxJson.Enhancement.inc.h
// Function: swxJson::Json::WantTupleValues<5ul, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int, double, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>::wantValue(std::_List_iterator<std::shared_ptr<swxJson::Json>>, unsigned long, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int, double, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>&)
static void wantValue(std::list<JsonPtr>::iterator it, size_t targetOffset, std::tuple<Args...>& tup)
		{
			if (N > targetOffset)
			{
				WantTupleValues<N-1, Args...>::wantValue(it, targetOffset, tup);
			}
			else
			{
				auto realIt = it;
				for (size_t i = 0; i < targetOffset - 1; i++)
					realIt++;

				JsonPtr node = *(realIt);

				typename std::tuple_element<N-1, std::tuple<Args...>>::type v;
				std::get<N-1>(tup) = (decltype(v))(*node);

				WantTupleValues<N-1, Args...>::wantValue(it, targetOffset - 1, tup);
			}
		}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %r12
cmpq $0x5, %rsi
jae 0x1a465
movq %r12, %rdi
movq %r15, %rsi
movq %r14, %rdx
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x1a55a
movq %r12, %rax
decq %r15
je 0x1a47b
movq %r15, %rcx
movq %r12, %rax
movq (%rax), %rax
decq %rcx
jne 0x1a473
movq 0x10(%rax), %rsi
movq 0x18(%rax), %rbx
testq %rbx, %rbx
je 0x1a49d
movq 0x1eb41(%rip), %rax     # 0x38fd0
cmpb $0x0, (%rax)
je 0x1a499
incl 0x8(%rbx)
jmp 0x1a49d
lock
incl 0x8(%rbx)
leaq 0x18(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq $0x0, -0x8(%rbp)
movb $0x0, (%rbp)
leaq 0x28(%rsp), %rdi
callq 0x24b82
leaq 0x28(%r14), %rdi
leaq 0x28(%rsp), %r13
movq %r13, %rsi
callq 0x13310
movq (%r13), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x1a4e8
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x132a0
movq %r12, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x1a55a
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x1a50d
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x132a0
testq %rbx, %rbx
je 0x1a51a
movq %rbx, %rdi
callq 0x19f34
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x1a52b
movq %rax, %r14
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x1a545
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x132a0
testq %rbx, %rbx
je 0x1a552
movq %rbx, %rdi
callq 0x19f34
movq %r14, %rdi
callq 0x13430
// File: /workspace/github_cpp_makefile_star2_O1/swxlion[P]swxJson/tests/../src/swxJson.Enhancement.inc.h
// Function: swxJson::Json::WantTupleValues<1ul, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int, double, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>::wantValue(std::_List_iterator<std::shared_ptr<swxJson::Json>>, unsigned long, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int, double, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>&)
static void wantValue(std::list<JsonPtr>::iterator it, size_t targetOffset, std::tuple<Args...>& tup)
		{
			if (1 == targetOffset)
			{
				JsonPtr node = *it;

				typename std::tuple_element<0, std::tuple<Args...>>::type v;
				std::get<0>(tup) = (decltype(v))(*node);
			}
		}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x48, %rsp
cmpq $0x1, %rsi
jne 0x1a846
movq %rdx, %r14
movq 0x10(%rdi), %rsi
movq 0x18(%rdi), %rbx
testq %rbx, %rbx
je 0x1a7d2
movq 0x1e80c(%rip), %rax     # 0x38fd0
cmpb $0x0, (%rax)
je 0x1a7ce
incl 0x8(%rbx)
jmp 0x1a7d2
lock
incl 0x8(%rbx)
leaq 0x18(%rsp), %r12
movq %r12, -0x10(%r12)
movq $0x0, -0x8(%r12)
movb $0x0, (%r12)
leaq 0x28(%rsp), %rdi
callq 0x24b82
addq $0x60, %r14
leaq 0x28(%rsp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x13310
movq (%r15), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x1a822
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x132a0
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x1a839
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x132a0
testq %rbx, %rbx
je 0x1a846
movq %rbx, %rdi
callq 0x19f34
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %rax, %r14
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x1a86c
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x132a0
testq %rbx, %rbx
je 0x1a879
movq %rbx, %rdi
callq 0x19f34
movq %r14, %rdi
callq 0x13430
nop
// File: /workspace/github_cpp_makefile_star2_O1/swxlion[P]swxJson/tests/../src/swxJson.Enhancement.inc.h
// Function: std::array<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, 3ul> swxJson::Json::wantArray<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, 3ul>(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&)
std::array<T, N> wantArray(const std::string& path, bool compatibleMode = false, const std::string& delim = "./")
	{
		JsonPtr node = getNode(path, delim);
		if (node)
			return node->wantArray<T, N>(compatibleMode);
		
		throw JSON_ERROR_MSG(JosnNodeNotExistError, "Target node doesn't exist.");
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x38, %rsp
movl %ecx, %ebp
movq %rdi, %rbx
leaq 0x8(%rsp), %r14
movq %r14, %rdi
movq %r8, %rcx
callq 0x22126
movq (%r14), %rsi
testq %rsi, %rsi
je 0x1b55c
movzbl %bpl, %edx
movq %rbx, %rdi
callq 0x1b61e
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x1b54e
callq 0x19f34
movq %rbx, %rax
addq $0x38, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movl $0x60, %edi
callq 0x13110
movq %rax, %rbx
leaq 0x28(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x12081(%rip), %rsi     # 0x2d5fa
leaq 0x12094(%rip), %rdx     # 0x2d614
leaq 0x18(%rsp), %rdi
callq 0x19fa4
movb $0x1, %bpl
leaq 0x1203b(%rip), %rsi     # 0x2d5cf
leaq 0x1209a(%rip), %rdx     # 0x2d635
leaq 0x18(%rsp), %r8
movq %rbx, %rdi
movl $0x3d6, %ecx            # imm = 0x3D6
callq 0x2c1b8
leaq 0x1d68c(%rip), %rax     # 0x38c40
addq $0x10, %rax
movq %rax, (%rbx)
xorl %ebp, %ebp
leaq 0x1d614(%rip), %rsi     # 0x38bd8
leaq -0x140d(%rip), %rdx     # 0x1a1be
movq %rbx, %rdi
callq 0x13410
movq %rax, %r14
movq 0x18(%rsp), %rdi
cmpq %r15, %rdi
je 0x1b5f5
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x132a0
jmp 0x1b5f5
movq %rax, %r14
movb $0x1, %bpl
testb %bpl, %bpl
je 0x1b607
movq %rbx, %rdi
callq 0x131e0
jmp 0x1b607
movq %rax, %r14
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x1b616
callq 0x19f34
movq %r14, %rdi
callq 0x13430
// File: /workspace/github_cpp_makefile_star2_O1/swxlion[P]swxJson/tests/../src/swxJson.Enhancement.inc.h
// Function: std::queue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::deque<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>> swxJson::Json::wantQueue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::deque<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>(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::queue<T, Container> wantQueue(const std::string& path, const std::string& delim = "./")
	{
		JsonPtr node = getNode(path, delim);
		if (node)
			return node->wantQueue<T, Container>();
		
		throw JSON_ERROR_MSG(JosnNodeNotExistError, "Target node doesn't exist.");
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x38, %rsp
movq %rdi, %rbx
leaq 0x8(%rsp), %r14
movq %r14, %rdi
callq 0x22126
movq (%r14), %rsi
testq %rsi, %rsi
je 0x1c753
movq %rbx, %rdi
callq 0x1c816
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x1c745
callq 0x19f34
movq %rbx, %rax
addq $0x38, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movl $0x60, %edi
callq 0x13110
movq %rax, %rbx
leaq 0x28(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x10e8a(%rip), %rsi     # 0x2d5fa
leaq 0x10e9d(%rip), %rdx     # 0x2d614
leaq 0x18(%rsp), %rdi
callq 0x19fa4
movb $0x1, %bpl
leaq 0x10e44(%rip), %rsi     # 0x2d5cf
leaq 0x10ead(%rip), %rdx     # 0x2d63f
leaq 0x18(%rsp), %r8
movq %rbx, %rdi
movl $0x3e0, %ecx            # imm = 0x3E0
callq 0x2c1b8
leaq 0x1c495(%rip), %rax     # 0x38c40
addq $0x10, %rax
movq %rax, (%rbx)
xorl %ebp, %ebp
leaq 0x1c41d(%rip), %rsi     # 0x38bd8
leaq -0x2604(%rip), %rdx     # 0x1a1be
movq %rbx, %rdi
callq 0x13410
movq %rax, %r14
movq 0x18(%rsp), %rdi
cmpq %r15, %rdi
je 0x1c7ec
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x132a0
jmp 0x1c7ec
movq %rax, %r14
movb $0x1, %bpl
testb %bpl, %bpl
je 0x1c7fe
movq %rbx, %rdi
callq 0x131e0
jmp 0x1c7fe
movq %rax, %r14
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x1c80d
callq 0x19f34
movq %r14, %rdi
callq 0x13430
nop
// File: /workspace/github_cpp_makefile_star2_O1/swxlion[P]swxJson/tests/../src/swxJson.Enhancement.inc.h
// Function: std::queue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::deque<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>> swxJson::Json::wantQueue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::deque<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>()
std::queue<T, Container> wantQueue()
	{
		if (_type != JSON_Array)
			throw JSON_ERROR_MSG(JsonNodeTypeMissMatchError, "Node type miss match.");

		std::list<JsonPtr>* data = (std::list<JsonPtr>*)_data;
		std::queue<T, Container> res;

		for (auto& node: *data)
			res.push((T)(*node));

		return res;
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
cmpl $0x1, (%rsi)
jne 0x1c8a8
movq %rdi, %rbx
movq 0x8(%rsi), %r15
xorps %xmm0, %xmm0
movups %xmm0, 0x40(%rdi)
movups %xmm0, 0x30(%rdi)
movups %xmm0, 0x20(%rdi)
movups %xmm0, 0x10(%rdi)
movups %xmm0, (%rdi)
xorl %esi, %esi
callq 0x1c980
movq (%r15), %r13
cmpq %r15, %r13
je 0x1c896
leaq 0x18(%rsp), %r12
leaq 0x8(%rsp), %r14
movq 0x10(%r13), %rsi
movq %r14, %rdi
callq 0x24b82
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1cb14
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x1c88d
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x132a0
movq (%r13), %r13
cmpq %r15, %r13
jne 0x1c85f
movq %rbx, %rax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x60, %edi
callq 0x13110
movq %rax, %rbx
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x10d50(%rip), %rsi     # 0x2d615
leaq 0x10d5e(%rip), %rdx     # 0x2d62a
leaq 0x8(%rsp), %rdi
callq 0x19fa4
movb $0x1, %bpl
leaq 0x10cef(%rip), %rsi     # 0x2d5cf
leaq 0x10d58(%rip), %rdx     # 0x2d63f
leaq 0x8(%rsp), %r8
movq %rbx, %rdi
movl $0x34f, %ecx            # imm = 0x34F
callq 0x2c1b8
leaq 0x1c2f0(%rip), %rax     # 0x38bf0
addq $0x10, %rax
movq %rax, (%rbx)
xorl %ebp, %ebp
leaq 0x1c2b0(%rip), %rsi     # 0x38bc0
leaq -0x2759(%rip), %rdx     # 0x1a1be
movq %rbx, %rdi
callq 0x13410
movq %rax, %r14
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x1c941
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x132a0
jmp 0x1c941
movq %rax, %r14
movb $0x1, %bpl
testb %bpl, %bpl
je 0x1c977
movq %rbx, %rdi
callq 0x131e0
jmp 0x1c977
movq %rax, %r14
jmp 0x1c96f
movq %rax, %r14
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x1c96f
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x132a0
movq %rbx, %rdi
callq 0x1ce70
movq %r14, %rdi
callq 0x13430
nop
// File: /workspace/github_cpp_makefile_star2_O1/swxlion[P]swxJson/tests/../src/swxJson.Enhancement.inc.h
// Function: std::deque<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>> swxJson::Json::wantDeque<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>(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::deque<T, Alloc> wantDeque(const std::string& path, const std::string& delim = "./")
	{
		JsonPtr node = getNode(path, delim);
		if (node)
			return node->wantDeque<T, Alloc>();
		
		throw JSON_ERROR_MSG(JosnNodeNotExistError, "Target node doesn't exist.");
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x38, %rsp
movq %rdi, %rbx
leaq 0x8(%rsp), %r14
movq %r14, %rdi
callq 0x22126
movq (%r14), %rsi
testq %rsi, %rsi
je 0x1d6c5
movq %rbx, %rdi
callq 0x1d788
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x1d6b7
callq 0x19f34
movq %rbx, %rax
addq $0x38, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movl $0x60, %edi
callq 0x13110
movq %rax, %rbx
leaq 0x28(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0xff18(%rip), %rsi      # 0x2d5fa
leaq 0xff2b(%rip), %rdx      # 0x2d614
leaq 0x18(%rsp), %rdi
callq 0x19fa4
movb $0x1, %bpl
leaq 0xfed2(%rip), %rsi      # 0x2d5cf
leaq 0xff75(%rip), %rdx      # 0x2d679
leaq 0x18(%rsp), %r8
movq %rbx, %rdi
movl $0x3ea, %ecx            # imm = 0x3EA
callq 0x2c1b8
leaq 0x1b523(%rip), %rax     # 0x38c40
addq $0x10, %rax
movq %rax, (%rbx)
xorl %ebp, %ebp
leaq 0x1b4ab(%rip), %rsi     # 0x38bd8
leaq -0x3576(%rip), %rdx     # 0x1a1be
movq %rbx, %rdi
callq 0x13410
movq %rax, %r14
movq 0x18(%rsp), %rdi
cmpq %r15, %rdi
je 0x1d75e
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x132a0
jmp 0x1d75e
movq %rax, %r14
movb $0x1, %bpl
testb %bpl, %bpl
je 0x1d770
movq %rbx, %rdi
callq 0x131e0
jmp 0x1d770
movq %rax, %r14
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x1d77f
callq 0x19f34
movq %r14, %rdi
callq 0x13430
nop
// File: /workspace/github_cpp_makefile_star2_O1/swxlion[P]swxJson/tests/../src/swxJson.Enhancement.inc.h
// Function: std::deque<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>> swxJson::Json::wantDeque<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>()
std::deque<T, Alloc> wantDeque()
	{
		if (_type != JSON_Array)
			throw JSON_ERROR_MSG(JsonNodeTypeMissMatchError, "Node type miss match.");

		std::list<JsonPtr>* data = (std::list<JsonPtr>*)_data;
		std::deque<T, Alloc> res;

		for (auto& node: *data)
			res.push_back((T)(*node));

		return res;
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
cmpl $0x1, (%rsi)
jne 0x1d81a
movq %rdi, %rbx
movq 0x8(%rsi), %r15
xorps %xmm0, %xmm0
movups %xmm0, 0x40(%rdi)
movups %xmm0, 0x30(%rdi)
movups %xmm0, 0x20(%rdi)
movups %xmm0, 0x10(%rdi)
movups %xmm0, (%rdi)
xorl %esi, %esi
callq 0x1c980
movq (%r15), %r13
cmpq %r15, %r13
je 0x1d808
leaq 0x18(%rsp), %r12
leaq 0x8(%rsp), %r14
movq 0x10(%r13), %rsi
movq %r14, %rdi
callq 0x24b82
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1cb14
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x1d7ff
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x132a0
movq (%r13), %r13
cmpq %r15, %r13
jne 0x1d7d1
movq %rbx, %rax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x60, %edi
callq 0x13110
movq %rax, %rbx
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0xfdde(%rip), %rsi      # 0x2d615
leaq 0xfdec(%rip), %rdx      # 0x2d62a
leaq 0x8(%rsp), %rdi
callq 0x19fa4
movb $0x1, %bpl
leaq 0xfd7d(%rip), %rsi      # 0x2d5cf
leaq 0xfe20(%rip), %rdx      # 0x2d679
leaq 0x8(%rsp), %r8
movq %rbx, %rdi
movl $0x35e, %ecx            # imm = 0x35E
callq 0x2c1b8
leaq 0x1b37e(%rip), %rax     # 0x38bf0
addq $0x10, %rax
movq %rax, (%rbx)
xorl %ebp, %ebp
leaq 0x1b33e(%rip), %rsi     # 0x38bc0
leaq -0x36cb(%rip), %rdx     # 0x1a1be
movq %rbx, %rdi
callq 0x13410
movq %rax, %r14
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x1d8b3
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x132a0
jmp 0x1d8b3
movq %rax, %r14
movb $0x1, %bpl
testb %bpl, %bpl
je 0x1d8e9
movq %rbx, %rdi
callq 0x131e0
jmp 0x1d8e9
movq %rax, %r14
jmp 0x1d8e1
movq %rax, %r14
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x1d8e1
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x132a0
movq %rbx, %rdi
callq 0x1ce70
movq %r14, %rdi
callq 0x13430
nop
// File: /workspace/github_cpp_makefile_star2_O1/swxlion[P]swxJson/tests/../src/swxJson.Enhancement.inc.h
// Function: std::__cxx11::list<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>> swxJson::Json::wantList<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>(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::list<T, Alloc> wantList(const std::string& path, const std::string& delim = "./")
	{
		JsonPtr node = getNode(path, delim);
		if (node)
			return node->wantList<T, Alloc>();
		
		throw JSON_ERROR_MSG(JosnNodeNotExistError, "Target node doesn't exist.");
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x38, %rsp
movq %rdi, %rbx
leaq 0x8(%rsp), %r14
movq %r14, %rdi
callq 0x22126
movq (%r14), %rsi
testq %rsi, %rsi
je 0x1db6b
movq %rbx, %rdi
callq 0x1dc2e
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x1db5d
callq 0x19f34
movq %rbx, %rax
addq $0x38, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movl $0x60, %edi
callq 0x13110
movq %rax, %rbx
leaq 0x28(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0xfa72(%rip), %rsi      # 0x2d5fa
leaq 0xfa85(%rip), %rdx      # 0x2d614
leaq 0x18(%rsp), %rdi
callq 0x19fa4
movb $0x1, %bpl
leaq 0xfa2c(%rip), %rsi      # 0x2d5cf
leaq 0xfad9(%rip), %rdx      # 0x2d683
leaq 0x18(%rsp), %r8
movq %rbx, %rdi
movl $0x3f4, %ecx            # imm = 0x3F4
callq 0x2c1b8
leaq 0x1b07d(%rip), %rax     # 0x38c40
addq $0x10, %rax
movq %rax, (%rbx)
xorl %ebp, %ebp
leaq 0x1b005(%rip), %rsi     # 0x38bd8
leaq -0x3a1c(%rip), %rdx     # 0x1a1be
movq %rbx, %rdi
callq 0x13410
movq %rax, %r14
movq 0x18(%rsp), %rdi
cmpq %r15, %rdi
je 0x1dc04
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x132a0
jmp 0x1dc04
movq %rax, %r14
movb $0x1, %bpl
testb %bpl, %bpl
je 0x1dc16
movq %rbx, %rdi
callq 0x131e0
jmp 0x1dc16
movq %rax, %r14
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x1dc25
callq 0x19f34
movq %r14, %rdi
callq 0x13430
nop
// File: /workspace/github_cpp_makefile_star2_O1/swxlion[P]swxJson/tests/../src/swxJson.Enhancement.inc.h
// Function: std::__cxx11::list<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>> swxJson::Json::wantList<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>()
std::list<T, Alloc> wantList()
	{
		if (_type != JSON_Array)
			throw JSON_ERROR_MSG(JsonNodeTypeMissMatchError, "Node type miss match.");

		std::list<JsonPtr>* data = (std::list<JsonPtr>*)_data;
		std::list<T, Alloc> res;

		for (auto& node: *data)
			res.push_back((T)(*node));

		return res;
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
cmpl $0x1, (%rsi)
jne 0x1dd14
movq %rdi, %rbx
movq 0x8(%rsi), %r15
movq %rdi, 0x8(%rdi)
movq %rdi, (%rdi)
movq $0x0, 0x10(%rdi)
movq (%r15), %r13
cmpq %r15, %r13
je 0x1dd02
leaq 0x18(%rsp), %r12
leaq 0x8(%rsp), %r14
movq 0x10(%r13), %rsi
movq %r14, %rdi
callq 0x24b82
movl $0x30, %edi
callq 0x13290
movq %rax, %rcx
addq $0x20, %rcx
movq %rcx, 0x10(%rax)
movq 0x8(%rsp), %rdx
cmpq %r12, %rdx
je 0x1dcab
movq %rdx, 0x10(%rax)
movq 0x18(%rsp), %rcx
movq %rcx, 0x20(%rax)
jmp 0x1dcb3
movups (%r12), %xmm0
movups %xmm0, (%rcx)
movq 0x10(%rsp), %rcx
movq %rcx, 0x18(%rax)
movq %r12, 0x8(%rsp)
movq $0x0, 0x10(%rsp)
movb $0x0, 0x18(%rsp)
movq %rax, %rdi
movq %rbx, %rsi
callq 0x13060
incq 0x10(%rbx)
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x1dcf5
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x132a0
movq (%r13), %r13
cmpq %r15, %r13
jne 0x1dc71
movq %rbx, %rax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x60, %edi
callq 0x13110
movq %rax, %rbx
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0xf8e4(%rip), %rsi      # 0x2d615
leaq 0xf8f2(%rip), %rdx      # 0x2d62a
leaq 0x8(%rsp), %rdi
callq 0x19fa4
movb $0x1, %bpl
leaq 0xf883(%rip), %rsi      # 0x2d5cf
leaq 0xf930(%rip), %rdx      # 0x2d683
leaq 0x8(%rsp), %r8
movq %rbx, %rdi
movl $0x36d, %ecx            # imm = 0x36D
callq 0x2c1b8
leaq 0x1ae84(%rip), %rax     # 0x38bf0
addq $0x10, %rax
movq %rax, (%rbx)
xorl %ebp, %ebp
leaq 0x1ae44(%rip), %rsi     # 0x38bc0
leaq -0x3bc5(%rip), %rdx     # 0x1a1be
movq %rbx, %rdi
callq 0x13410
movq %rax, %r14
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x1ddad
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x132a0
jmp 0x1ddad
movq %rax, %r14
movb $0x1, %bpl
testb %bpl, %bpl
je 0x1dde3
movq %rbx, %rdi
callq 0x131e0
jmp 0x1dde3
movq %rax, %r14
jmp 0x1dddb
movq %rax, %r14
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x1dddb
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x132a0
movq %rbx, %rdi
callq 0x1ddec
movq %r14, %rdi
callq 0x13430
nop
// File: /workspace/github_cpp_makefile_star2_O1/swxlion[P]swxJson/tests/../src/swxJson.Enhancement.inc.h
// Function: std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>> swxJson::Json::wantVector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>(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<T, Alloc> wantVector(const std::string& path, const std::string& delim = "./")
	{
		JsonPtr node = getNode(path, delim);
		if (node)
			return node->wantVector<T, Alloc>();
		
		throw JSON_ERROR_MSG(JosnNodeNotExistError, "Target node doesn't exist.");
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x38, %rsp
movq %rdi, %rbx
leaq 0x8(%rsp), %r14
movq %r14, %rdi
callq 0x22126
movq (%r14), %rsi
testq %rsi, %rsi
je 0x1e0bd
movq %rbx, %rdi
callq 0x1e1dc
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x1e0af
callq 0x19f34
movq %rbx, %rax
addq $0x38, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movl $0x60, %edi
callq 0x13110
movq %rax, %rbx
leaq 0x28(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0xf520(%rip), %rsi      # 0x2d5fa
leaq 0xf533(%rip), %rdx      # 0x2d614
leaq 0x18(%rsp), %rdi
callq 0x19fa4
movb $0x1, %bpl
leaq 0xf4da(%rip), %rsi      # 0x2d5cf
leaq 0xf590(%rip), %rdx      # 0x2d68c
leaq 0x18(%rsp), %r8
movq %rbx, %rdi
movl $0x3fe, %ecx            # imm = 0x3FE
callq 0x2c1b8
leaq 0x1ab2b(%rip), %rax     # 0x38c40
addq $0x10, %rax
movq %rax, (%rbx)
xorl %ebp, %ebp
leaq 0x1aab3(%rip), %rsi     # 0x38bd8
leaq -0x3f6e(%rip), %rdx     # 0x1a1be
movq %rbx, %rdi
callq 0x13410
movq %rax, %r14
movq 0x18(%rsp), %rdi
cmpq %r15, %rdi
je 0x1e156
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x132a0
jmp 0x1e156
movq %rax, %r14
movb $0x1, %bpl
testb %bpl, %bpl
je 0x1e168
movq %rbx, %rdi
callq 0x131e0
jmp 0x1e168
movq %rax, %r14
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x1e177
callq 0x19f34
movq %r14, %rdi
callq 0x13430
nop
// File: /workspace/github_cpp_makefile_star2_O1/swxlion[P]swxJson/tests/../src/swxJson.Enhancement.inc.h
// Function: std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>> swxJson::Json::wantVector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>()
std::vector<T, Alloc> wantVector()
	{
		if (_type != JSON_Array)
			throw JSON_ERROR_MSG(JsonNodeTypeMissMatchError, "Node type miss match.");

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

		for (auto& node: *data)
			res.push_back((T)(*node));

		return res;
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
cmpl $0x1, (%rsi)
jne 0x1e268
movq %rdi, %rbx
movq 0x8(%rsi), %r15
xorps %xmm0, %xmm0
movups %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
movq 0x10(%r15), %rsi
callq 0x1e342
movq (%r15), %r13
cmpq %r15, %r13
je 0x1e256
leaq 0x18(%rsp), %r12
leaq 0x8(%rsp), %r14
movq 0x10(%r13), %rsi
movq %r14, %rdi
callq 0x24b82
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1e42a
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x1e24d
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x132a0
movq (%r13), %r13
cmpq %r15, %r13
jne 0x1e21f
movq %rbx, %rax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x60, %edi
callq 0x13110
movq %rax, %rbx
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0xf390(%rip), %rsi      # 0x2d615
leaq 0xf39e(%rip), %rdx      # 0x2d62a
leaq 0x8(%rsp), %rdi
callq 0x19fa4
movb $0x1, %bpl
leaq 0xf32f(%rip), %rsi      # 0x2d5cf
leaq 0xf3e5(%rip), %rdx      # 0x2d68c
leaq 0x8(%rsp), %r8
movq %rbx, %rdi
movl $0x37c, %ecx            # imm = 0x37C
callq 0x2c1b8
leaq 0x1a930(%rip), %rax     # 0x38bf0
addq $0x10, %rax
movq %rax, (%rbx)
xorl %ebp, %ebp
leaq 0x1a8f0(%rip), %rsi     # 0x38bc0
leaq -0x4119(%rip), %rdx     # 0x1a1be
movq %rbx, %rdi
callq 0x13410
movq %rax, %r14
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x1e301
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x132a0
jmp 0x1e301
movq %rax, %r14
movb $0x1, %bpl
testb %bpl, %bpl
je 0x1e339
movq %rbx, %rdi
callq 0x131e0
jmp 0x1e339
jmp 0x1e312
movq %rax, %r14
jmp 0x1e331
movq %rax, %r14
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x1e331
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x132a0
movq %rbx, %rdi
callq 0x1e180
movq %r14, %rdi
callq 0x13430
nop