// File: swxlion[P]swxJson/tests/../src/swxJson.Enhancement.inc.h
// Function: std::unordered_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::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::equal_to<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::wantUnorderedDict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::equal_to<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::unordered_map<std::string, T, Hash, Pred, Alloc> wantUnorderedDict()
	{
		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::unordered_map<std::string, T, Hash, Pred, 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 0x66be9
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 0x1baea(%rip), %rsi     # 0x82619
leaq 0x98(%rsp), %rdi
callq 0x4dcf0
jmp 0x66b3e
movq 0x8(%rsp), %rdi
leaq 0x1ba89(%rip), %rsi     # 0x825d3
leaq 0x1bb96(%rip), %rdx     # 0x826e7
movl $0x3b9, %ecx            # imm = 0x3B9
leaq 0x98(%rsp), %r8
callq 0x52cd0
jmp 0x66b65
movq 0x8(%rsp), %rdi
movb $0x0, 0x83(%rsp)
leaq 0x31047(%rip), %rsi     # 0x97bc0
leaq -0x13e50(%rip), %rdx    # 0x52d30
callq 0x4a500
jmp 0x66d1b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x88(%rsp)
movl %eax, 0x84(%rsp)
jmp 0x66bc1
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 0x66bda
jmp 0x66be4
movq 0x8(%rsp), %rdi
callq 0x4a220
jmp 0x66d0e
movq 0x18(%rsp), %rdi
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x78(%rsp)
movb $0x0, 0x77(%rsp)
callq 0x66d20
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 0x66c46
jmp 0x66ce1
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 0x66c72
movq 0x18(%rsp), %rdi
movq 0x50(%rsp), %rsi
callq 0x66d30
movq %rax, (%rsp)
jmp 0x66c87
movq (%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x4a3f0
leaq 0x30(%rsp), %rdi
callq 0x4a5b8
leaq 0x60(%rsp), %rdi
callq 0x63e70
jmp 0x66c2e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x88(%rsp)
movl %eax, 0x84(%rsp)
jmp 0x66d04
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x88(%rsp)
movl %eax, 0x84(%rsp)
leaq 0x30(%rsp), %rdi
callq 0x4a5b8
jmp 0x66d04
movb $0x1, 0x77(%rsp)
testb $0x1, 0x77(%rsp)
jne 0x66cf7
movq 0x18(%rsp), %rdi
callq 0x66ab0
movq 0x20(%rsp), %rax
addq $0xc8, %rsp
retq
movq 0x18(%rsp), %rdi
callq 0x66ab0
movq 0x88(%rsp), %rdi
callq 0x4a520
nopl (%rax,%rax)