// File: swxlion[P]swxJson/tests/../src/swxJson.Enhancement.inc.h
// Function: std::unordered_set<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::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>> swxJson::Json::wantUnorderedSet<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::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>()
std::unordered_set<Key, Hash, Pred, Alloc> wantUnorderedSet()
	{
		if (_type != JSON_Array)
			throw JSON_ERROR_MSG(JsonNodeTypeMissMatchError, "Node type miss match.");

		std::list<JsonPtr>* data = (std::list<JsonPtr>*)_data;
		std::unordered_set<Key, Hash, Pred, Alloc> res;

		for (auto& node: *data)
			res.insert((Key)(*node));

		return res;
	}

// Assembly:
subq $0xe8, %rsp
movq %rdi, 0x28(%rsp)
movq %rdi, %rax
movq %rax, 0x30(%rsp)
movq %rdi, 0xe0(%rsp)
movq %rsi, 0xd8(%rsp)
movq 0xd8(%rsp), %rax
movq %rax, 0x38(%rsp)
cmpl $0x1, (%rax)
je 0x604a9
movb $0x1, 0xa3(%rsp)
movl $0x60, %edi
callq 0x4a160
movq %rax, 0x18(%rsp)
leaq 0xb7(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0x4a530
movq 0x20(%rsp), %rdx
leaq 0x2222a(%rip), %rsi     # 0x82619
leaq 0xb8(%rsp), %rdi
callq 0x4dcf0
jmp 0x603fe
movq 0x18(%rsp), %rdi
leaq 0x221c9(%rip), %rsi     # 0x825d3
leaq 0x222bc(%rip), %rdx     # 0x826cd
movl $0x39b, %ecx            # imm = 0x39B
leaq 0xb8(%rsp), %r8
callq 0x52cd0
jmp 0x60425
movq 0x18(%rsp), %rdi
movb $0x0, 0xa3(%rsp)
leaq 0x37787(%rip), %rsi     # 0x97bc0
leaq -0xd710(%rip), %rdx     # 0x52d30
callq 0x4a500
jmp 0x60607
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa8(%rsp)
movl %eax, 0xa4(%rsp)
jmp 0x60481
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa8(%rsp)
movl %eax, 0xa4(%rsp)
leaq 0xb8(%rsp), %rdi
callq 0x4a5b8
leaq 0xb7(%rsp), %rdi
callq 0x4a390
testb $0x1, 0xa3(%rsp)
jne 0x6049a
jmp 0x604a4
movq 0x18(%rsp), %rdi
callq 0x4a220
jmp 0x605fa
movq 0x28(%rsp), %rdi
movq 0x38(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x98(%rsp)
movb $0x0, 0x97(%rsp)
callq 0x60610
movq 0x98(%rsp), %rax
movq %rax, 0x88(%rsp)
movq 0x88(%rsp), %rdi
callq 0x52f20
movq %rax, 0x80(%rsp)
movq 0x88(%rsp), %rdi
callq 0x553e0
movq %rax, 0x78(%rsp)
leaq 0x80(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0x55410
testb $0x1, %al
jne 0x6051e
jmp 0x605c7
leaq 0x80(%rsp), %rdi
callq 0x531d0
movq %rax, 0x70(%rsp)
movq 0x70(%rsp), %rdi
callq 0x53200
movq %rax, %rsi
leaq 0x50(%rsp), %rdi
callq 0x53230
jmp 0x60549
movq 0x28(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x60620
movb %dl, 0xf(%rsp)
movq %rax, 0x10(%rsp)
jmp 0x60563
movb 0xf(%rsp), %al
movq 0x10(%rsp), %rcx
movq %rcx, 0x40(%rsp)
movb %al, 0x48(%rsp)
leaq 0x50(%rsp), %rdi
callq 0x4a5b8
leaq 0x80(%rsp), %rdi
callq 0x55460
jmp 0x60503
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa8(%rsp)
movl %eax, 0xa4(%rsp)
jmp 0x605f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa8(%rsp)
movl %eax, 0xa4(%rsp)
leaq 0x50(%rsp), %rdi
callq 0x4a5b8
jmp 0x605f0
movb $0x1, 0x97(%rsp)
testb $0x1, 0x97(%rsp)
jne 0x605e3
movq 0x28(%rsp), %rdi
callq 0x60370
movq 0x30(%rsp), %rax
addq $0xe8, %rsp
retq
movq 0x28(%rsp), %rdi
callq 0x60370
movq 0xa8(%rsp), %rdi
callq 0x4a520
nopw (%rax,%rax)