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

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

		for (auto& node: *data)
			res.insert((T)(*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 0x5e259
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 0x2447a(%rip), %rsi     # 0x82619
leaq 0xb8(%rsp), %rdi
callq 0x4dcf0
jmp 0x5e1ae
movq 0x18(%rsp), %rdi
leaq 0x24419(%rip), %rsi     # 0x825d3
leaq 0x24504(%rip), %rdx     # 0x826c5
movl $0x38c, %ecx            # imm = 0x38C
leaq 0xb8(%rsp), %r8
callq 0x52cd0
jmp 0x5e1d5
movq 0x18(%rsp), %rdi
movb $0x0, 0xa3(%rsp)
leaq 0x399d7(%rip), %rsi     # 0x97bc0
leaq -0xb4c0(%rip), %rdx     # 0x52d30
callq 0x4a500
jmp 0x5e3b7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa8(%rsp)
movl %eax, 0xa4(%rsp)
jmp 0x5e231
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 0x5e24a
jmp 0x5e254
movq 0x18(%rsp), %rdi
callq 0x4a220
jmp 0x5e3aa
movq 0x28(%rsp), %rdi
movq 0x38(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x98(%rsp)
movb $0x0, 0x97(%rsp)
callq 0x5e3c0
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 0x5e2ce
jmp 0x5e377
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 0x5e2f9
movq 0x28(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x5e3d0
movb %dl, 0xf(%rsp)
movq %rax, 0x10(%rsp)
jmp 0x5e313
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 0x5e2b3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa8(%rsp)
movl %eax, 0xa4(%rsp)
jmp 0x5e3a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa8(%rsp)
movl %eax, 0xa4(%rsp)
leaq 0x50(%rsp), %rdi
callq 0x4a5b8
jmp 0x5e3a0
movb $0x1, 0x97(%rsp)
testb $0x1, 0x97(%rsp)
jne 0x5e393
movq 0x28(%rsp), %rdi
callq 0x5e120
movq 0x30(%rsp), %rax
addq $0xe8, %rsp
retq
movq 0x28(%rsp), %rdi
callq 0x5e120
movq 0xa8(%rsp), %rdi
callq 0x4a520
nopw (%rax,%rax)