// File: menhits[P]phplus/src/Actions/MakeTupleAction.cpp
// Function: GetElemFromTupleAction::GetElemFromTupleAction(std::shared_ptr<TypeBase>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
GetElemFromTupleAction(Type typeInIn, string nameIn):
		ActionData(typeInIn->getSubType(nameIn).type, typeInIn, Void)
	{
		typeIn=typeInIn;
		typeOut=typeInIn->getSubType(nameIn).type;
		// if no type was found, the ActionData constructor would have already thrown an error
		name=nameIn;
		size=typeOut->getSize();
		offset=typeIn->getSubType(name).offset;
	}

// Assembly:
subq $0x178, %rsp            # imm = 0x178
movq %rsi, 0x48(%rsp)
movq %rdi, %rax
movq 0x48(%rsp), %rdi
movq %rdi, 0x50(%rsp)
movq %rdx, 0x60(%rsp)
movq %rax, 0x170(%rsp)
movq %rdi, 0x168(%rsp)
movq %rdx, 0x160(%rsp)
movq 0x170(%rsp), %rax
movq %rax, 0x58(%rsp)
callq 0x1a660
movq 0x60(%rsp), %rsi
movq %rax, 0x68(%rsp)
leaq 0x118(%rsp), %rdi
movq %rdi, 0x70(%rsp)
callq 0xb1a0
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
movq (%rsi), %rax
movq 0x50(%rax), %rax
leaq 0x138(%rsp), %rdi
callq *%rax
jmp 0xc0ba1
leaq 0x140(%rsp), %rsi
leaq 0x150(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0x990b0
movq 0x50(%rsp), %rsi
leaq 0xf8(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0x1a920
leaq 0x578cf(%rip), %rsi     # 0x1184a8
leaq 0xe8(%rsp), %rdi
movq %rdi, 0x40(%rsp)
callq 0x1a920
movq 0x58(%rsp), %rdi
movq 0x30(%rsp), %rsi
movq 0x38(%rsp), %rdx
movq 0x40(%rsp), %rcx
callq 0xaf570
jmp 0xc0c06
leaq 0xe8(%rsp), %rdi
callq 0x1a950
leaq 0xf8(%rsp), %rdi
callq 0x1a950
leaq 0x150(%rsp), %rdi
callq 0x1a950
leaq 0x138(%rsp), %rdi
callq 0x3eec0
leaq 0x118(%rsp), %rdi
callq 0xb6e8
movq 0x58(%rsp), %rdi
leaq 0x56ce5(%rip), %rax     # 0x117938
movq %rax, (%rdi)
addq $0x78, %rdi
movq %rdi, 0x20(%rsp)
callq 0x1d9a0
movq 0x58(%rsp), %rdi
addq $0x88, %rdi
movq %rdi, 0x10(%rsp)
callq 0x1d9a0
movq 0x58(%rsp), %rdi
addq $0xa8, %rdi
movq %rdi, 0x18(%rsp)
callq 0xb4e0
movq 0x20(%rsp), %rdi
movq 0x50(%rsp), %rsi
callq 0x1a4e0
movq 0x50(%rsp), %rdi
callq 0x1a660
movq 0x60(%rsp), %rsi
movq %rax, 0x28(%rsp)
leaq 0xb0(%rsp), %rdi
callq 0xb1a0
jmp 0xc0cc2
movq 0x28(%rsp), %rsi
movq (%rsi), %rax
movq 0x50(%rax), %rax
leaq 0xd0(%rsp), %rdi
leaq 0xb0(%rsp), %rdx
callq *%rax
jmp 0xc0ce2
movq 0x58(%rsp), %rdi
leaq 0xd8(%rsp), %rsi
addq $0x88, %rdi
callq 0x1bae0
leaq 0xd0(%rsp), %rdi
callq 0x3eec0
leaq 0xb0(%rsp), %rdi
callq 0xb6e8
movq 0x58(%rsp), %rdi
movq 0x60(%rsp), %rsi
addq $0xa8, %rdi
callq 0xb050
jmp 0xc0d2d
movq 0x58(%rsp), %rdi
addq $0x88, %rdi
callq 0x1a660
movq %rax, %rdi
movq (%rdi), %rax
movq 0x38(%rax), %rax
callq *%rax
movq %rax, 0x8(%rsp)
jmp 0xc0d51
movq 0x58(%rsp), %rdi
movq 0x8(%rsp), %rax
movq %rax, 0xa0(%rdi)
addq $0x78, %rdi
callq 0x1a660
movq 0x58(%rsp), %rsi
movq %rax, (%rsp)
addq $0xa8, %rsi
leaq 0x78(%rsp), %rdi
callq 0xb1a0
jmp 0xc0d87
movq (%rsp), %rsi
movq (%rsi), %rax
movq 0x50(%rax), %rax
leaq 0x98(%rsp), %rdi
leaq 0x78(%rsp), %rdx
callq *%rax
jmp 0xc0da3
movq 0x58(%rsp), %rax
movq 0x98(%rsp), %rcx
movl %ecx, 0x98(%rax)
leaq 0x98(%rsp), %rdi
callq 0x3eec0
leaq 0x78(%rsp), %rdi
callq 0xb6e8
addq $0x178, %rsp            # imm = 0x178
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x110(%rsp)
movl %eax, 0x10c(%rsp)
jmp 0xc0e33
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x110(%rsp)
movl %eax, 0x10c(%rsp)
leaq 0xe8(%rsp), %rdi
callq 0x1a950
leaq 0xf8(%rsp), %rdi
callq 0x1a950
leaq 0x150(%rsp), %rdi
callq 0x1a950
leaq 0x138(%rsp), %rdi
callq 0x3eec0
leaq 0x118(%rsp), %rdi
callq 0xb6e8
jmp 0xc0ec1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x110(%rsp)
movl %eax, 0x10c(%rsp)
jmp 0xc0e99
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x110(%rsp)
movl %eax, 0x10c(%rsp)
leaq 0xb0(%rsp), %rdi
callq 0xb6e8
jmp 0xc0e99
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x110(%rsp)
movl %eax, 0x10c(%rsp)
leaq 0x78(%rsp), %rdi
callq 0xb6e8
movq 0x18(%rsp), %rdi
callq 0xb6e8
movq 0x10(%rsp), %rdi
callq 0x1a950
movq 0x20(%rsp), %rdi
callq 0x1a950
movq 0x58(%rsp), %rdi
callq 0xb0270
movq 0x110(%rsp), %rdi
callq 0xb680
nop