// File: swxlion[P]swxJson/tests/../src/swxJson.Enhancement.inc.h
// Function: std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<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>>>>> swxJson::Json::wantDict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<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>>>>>()
std::map<std::string, T, Compare, Alloc> wantDict()
	{
		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, T, Compare, Alloc> res;

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

		return res;
	}

// Assembly:
subq $0xc8, %rsp
movq %rdi, 0x18(%rsp)
movq %rdi, %rax
movq %rax, 0x20(%rsp)
movq %rdi, 0xc0(%rsp)
movq %rsi, 0xb8(%rsp)
movq 0xb8(%rsp), %rax
movq %rax, 0x28(%rsp)
cmpl $0x0, (%rax)
je 0x63b89
movb $0x1, 0x83(%rsp)
movl $0x60, %edi
callq 0x4a160
movq %rax, 0x8(%rsp)
leaq 0x97(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0x4a530
movq 0x10(%rsp), %rdx
leaq 0x1eb4a(%rip), %rsi     # 0x82619
leaq 0x98(%rsp), %rdi
callq 0x4dcf0
jmp 0x63ade
movq 0x8(%rsp), %rdi
leaq 0x1eae9(%rip), %rsi     # 0x825d3
leaq 0x1ebed(%rip), %rdx     # 0x826de
movl $0x3aa, %ecx            # imm = 0x3AA
leaq 0x98(%rsp), %r8
callq 0x52cd0
jmp 0x63b05
movq 0x8(%rsp), %rdi
movb $0x0, 0x83(%rsp)
leaq 0x340a7(%rip), %rsi     # 0x97bc0
leaq -0x10df0(%rip), %rdx    # 0x52d30
callq 0x4a500
jmp 0x63cbb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x88(%rsp)
movl %eax, 0x84(%rsp)
jmp 0x63b61
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x88(%rsp)
movl %eax, 0x84(%rsp)
leaq 0x98(%rsp), %rdi
callq 0x4a5b8
leaq 0x97(%rsp), %rdi
callq 0x4a390
testb $0x1, 0x83(%rsp)
jne 0x63b7a
jmp 0x63b84
movq 0x8(%rsp), %rdi
callq 0x4a220
jmp 0x63cae
movq 0x18(%rsp), %rdi
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x78(%rsp)
movb $0x0, 0x77(%rsp)
callq 0x63cc0
movq 0x78(%rsp), %rax
movq %rax, 0x68(%rsp)
movq 0x68(%rsp), %rdi
callq 0x63cd0
movq %rax, 0x60(%rsp)
movq 0x68(%rsp), %rdi
callq 0x63d00
movq %rax, 0x58(%rsp)
leaq 0x60(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x63d30
testb $0x1, %al
jne 0x63be6
jmp 0x63c81
leaq 0x60(%rsp), %rdi
callq 0x63d50
movq %rax, 0x50(%rsp)
movq 0x50(%rsp), %rdi
addq $0x20, %rdi
callq 0x53200
movq %rax, %rsi
leaq 0x30(%rsp), %rdi
callq 0x53230
jmp 0x63c12
movq 0x18(%rsp), %rdi
movq 0x50(%rsp), %rsi
callq 0x63d80
movq %rax, (%rsp)
jmp 0x63c27
movq (%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x4a3f0
leaq 0x30(%rsp), %rdi
callq 0x4a5b8
leaq 0x60(%rsp), %rdi
callq 0x63e70
jmp 0x63bce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x88(%rsp)
movl %eax, 0x84(%rsp)
jmp 0x63ca4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x88(%rsp)
movl %eax, 0x84(%rsp)
leaq 0x30(%rsp), %rdi
callq 0x4a5b8
jmp 0x63ca4
movb $0x1, 0x77(%rsp)
testb $0x1, 0x77(%rsp)
jne 0x63c97
movq 0x18(%rsp), %rdi
callq 0x63a50
movq 0x20(%rsp), %rax
addq $0xc8, %rsp
retq
movq 0x18(%rsp), %rdi
callq 0x63a50
movq 0x88(%rsp), %rdi
callq 0x4a520
nopl (%rax,%rax)