// File: menhits[P]phplus/src/Actions/MakeTupleAction.cpp
// Function: getElemFromTupleAction(std::shared_ptr<TypeBase>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
Action getElemFromTupleAction(Type source, string name)
{
	if (!source->getSubType(name).type)
		throw PhplusError("could not find '"+name+"' in "+source->getString(), SOURCE_ERROR);
	
	Action out=Action(new GetElemFromTupleAction(source, name));
	
	return out;
}

// Assembly:
subq $0x188, %rsp            # imm = 0x188
movq %rdx, 0x40(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdi, %rax
movq 0x28(%rsp), %rdi
movq %rax, 0x30(%rsp)
movq %rax, %rcx
movq %rcx, 0x38(%rsp)
movq %rax, 0x180(%rsp)
movq %rdi, 0x178(%rsp)
movq %rdx, 0x170(%rsp)
callq 0x1a660
movq 0x40(%rsp), %rsi
movq %rax, 0x48(%rsp)
leaq 0x138(%rsp), %rdi
movq %rdi, 0x50(%rsp)
callq 0xb1a0
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
movq (%rsi), %rax
movq 0x50(%rax), %rax
leaq 0x158(%rsp), %rdi
callq *%rax
jmp 0xbff8c
leaq 0x158(%rsp), %rdi
addq $0x8, %rdi
callq 0x1d820
xorb $-0x1, %al
movb %al, 0x27(%rsp)
leaq 0x158(%rsp), %rdi
callq 0x3eec0
leaq 0x138(%rsp), %rdi
callq 0xb6e8
movb 0x27(%rsp), %al
testb $0x1, %al
jne 0xbffca
jmp 0xc01a6
movb $0x1, 0x97(%rsp)
movl $0x38, %edi
callq 0xb1f0
movq 0x40(%rsp), %rdx
movq %rax, 0x18(%rsp)
leaq 0x1774b(%rip), %rsi     # 0xd7738
leaq 0xc8(%rsp), %rdi
callq 0xfab0
jmp 0xbfffc
leaq 0x17746(%rip), %rdx     # 0xd7749
leaq 0xe8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0xfa60
jmp 0xc001a
movq 0x28(%rsp), %rdi
callq 0x1a660
movq %rax, %rsi
movq (%rsi), %rax
movq 0x8(%rax), %rax
leaq 0xa8(%rsp), %rdi
callq *%rax
jmp 0xc003a
leaq 0x108(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0x1bf20
jmp 0xc0059
xorl %eax, %eax
movl %eax, 0xc(%rsp)
movl %eax, %esi
leaq 0x98(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0xfbe0
movq 0x18(%rsp), %rdi
movl 0xc(%rsp), %edx
movq 0x10(%rsp), %rcx
leaq 0x108(%rsp), %rsi
callq 0x35600
jmp 0xc0090
movq 0x18(%rsp), %rdi
movb $0x0, 0x97(%rsp)
leaq 0x55524(%rip), %rsi     # 0x1155c8
leaq -0xa5a3b(%rip), %rdx    # 0x1a670
callq 0xb640
jmp 0xc02b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x130(%rsp)
movl %eax, 0x12c(%rsp)
leaq 0x138(%rsp), %rdi
callq 0xb6e8
jmp 0xc02a8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x130(%rsp)
movl %eax, 0x12c(%rsp)
jmp 0xc018b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x130(%rsp)
movl %eax, 0x12c(%rsp)
jmp 0xc017e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x130(%rsp)
movl %eax, 0x12c(%rsp)
jmp 0xc0171
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x130(%rsp)
movl %eax, 0x12c(%rsp)
jmp 0xc0164
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x130(%rsp)
movl %eax, 0x12c(%rsp)
leaq 0x98(%rsp), %rdi
callq 0xfc00
leaq 0x108(%rsp), %rdi
callq 0xb6e8
leaq 0xa8(%rsp), %rdi
callq 0xb6e8
leaq 0xe8(%rsp), %rdi
callq 0xb6e8
leaq 0xc8(%rsp), %rdi
callq 0xb6e8
testb $0x1, 0x97(%rsp)
jne 0xc0197
jmp 0xc01a1
movq 0x18(%rsp), %rdi
callq 0xb2d0
jmp 0xc02a8
movb $0x0, 0x96(%rsp)
movl $0xc8, %edi
callq 0xb390
movq 0x28(%rsp), %rsi
movq %rax, (%rsp)
movb $0x1, 0x5f(%rsp)
leaq 0x80(%rsp), %rdi
callq 0x1a920
movq 0x40(%rsp), %rsi
leaq 0x60(%rsp), %rdi
callq 0xb1a0
jmp 0xc01e4
movq (%rsp), %rdi
leaq 0x80(%rsp), %rsi
leaq 0x60(%rsp), %rdx
callq 0xc0b20
jmp 0xc01fc
movq (%rsp), %rsi
movq 0x30(%rsp), %rdi
movb $0x0, 0x5f(%rsp)
callq 0xc0ed0
jmp 0xc0211
leaq 0x60(%rsp), %rdi
callq 0xb6e8
leaq 0x80(%rsp), %rdi
callq 0x1a950
movb $0x1, 0x96(%rsp)
testb $0x1, 0x96(%rsp)
jne 0xc029b
jmp 0xc0291
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x130(%rsp)
movl %eax, 0x12c(%rsp)
jmp 0xc0270
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x130(%rsp)
movl %eax, 0x12c(%rsp)
leaq 0x60(%rsp), %rdi
callq 0xb6e8
leaq 0x80(%rsp), %rdi
callq 0x1a950
testb $0x1, 0x5f(%rsp)
jne 0xc0286
jmp 0xc028f
movq (%rsp), %rdi
callq 0xb350
jmp 0xc02a8
movq 0x30(%rsp), %rdi
callq 0x1acc0
movq 0x38(%rsp), %rax
addq $0x188, %rsp            # imm = 0x188
retq
movq 0x130(%rsp), %rdi
callq 0xb680
nopw %cs:(%rax,%rax)