// File: menhits[P]phplus/src/Actions/FunctionAction.cpp
// Function: FunctionAction::FunctionAction(std::unique_ptr<AstNodeBase, std::default_delete<AstNodeBase>>, std::shared_ptr<TypeBase>, std::shared_ptr<StackFrame>)
FunctionAction(AstNode nodeIn, Type returnTypeIn, shared_ptr<StackFrame> stackFameIn):
		ActionData(returnTypeIn, stackFameIn->getLeftInType(), stackFameIn->getRightInType())
	{
		stackFame=stackFameIn;
		node=move(nodeIn);
		action=nullptr;
		
		setDescription("function ("+getInLeftType()->getString()+"."+getInRightType()->getString()+" > "+getReturnType()->getString()+")");
	}

// Assembly:
subq $0x1d8, %rsp            # imm = 0x1D8
movq %rdx, 0x28(%rsp)
movq %rsi, %rax
movq 0x28(%rsp), %rsi
movq %rax, 0x30(%rsp)
movq %rcx, 0x40(%rsp)
movq %rdi, 0x1d0(%rsp)
movq %rax, 0x1c8(%rsp)
movq %rsi, 0x1c0(%rsp)
movq %rcx, 0x1b8(%rsp)
movq 0x1d0(%rsp), %rax
movq %rax, 0x38(%rsp)
leaq 0x1a8(%rsp), %rdi
callq 0x1a920
movq 0x40(%rsp), %rdi
callq 0x3ea80
movq %rax, %rsi
leaq 0x198(%rsp), %rdi
callq 0x9c1d0
jmp 0xb84c4
movq 0x40(%rsp), %rdi
callq 0x3ea80
movq %rax, %rsi
leaq 0x178(%rsp), %rdi
callq 0x9c230
jmp 0xb84e0
movq 0x38(%rsp), %rdi
leaq 0x1a8(%rsp), %rsi
leaq 0x198(%rsp), %rdx
leaq 0x178(%rsp), %rcx
callq 0xaf570
jmp 0xb8504
leaq 0x178(%rsp), %rdi
callq 0x1a950
leaq 0x198(%rsp), %rdi
callq 0x1a950
leaq 0x1a8(%rsp), %rdi
callq 0x1a950
movq 0x38(%rsp), %rdi
leaq 0x5f061(%rip), %rax     # 0x117598
movq %rax, (%rdi)
addq $0x78, %rdi
movq %rdi, (%rsp)
callq 0x3e9d0
movq 0x38(%rsp), %rdi
addq $0x88, %rdi
movq %rdi, 0x18(%rsp)
xorl %eax, %eax
movl %eax, %esi
movq %rsi, 0x10(%rsp)
callq 0x1bcd0
movq 0x10(%rsp), %rsi
movq 0x38(%rsp), %rdi
addq $0x98, %rdi
movq %rdi, 0x8(%rsp)
callq 0x1b1d0
movq (%rsp), %rdi
movq 0x40(%rsp), %rsi
callq 0x3e9f0
movq 0x8(%rsp), %rdi
movq 0x30(%rsp), %rsi
callq 0x1b3c0
movq 0x10(%rsp), %rsi
leaq 0x168(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0x1bcd0
movq 0x18(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0x1ac90
movq 0x20(%rsp), %rdi
callq 0x1acc0
movq 0x38(%rsp), %rdi
callq 0x3f060
movq %rax, %rdi
callq 0x1a660
movq %rax, %rsi
movq (%rsi), %rax
movq 0x8(%rax), %rax
leaq 0x88(%rsp), %rdi
callq *%rax
jmp 0xb85f6
leaq 0x1ebe2(%rip), %rsi     # 0xd71df
leaq 0xa8(%rsp), %rdi
leaq 0x88(%rsp), %rdx
callq 0x1bcf0
jmp 0xb8614
leaq 0x1ce5e(%rip), %rdx     # 0xd5479
leaq 0xc8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0xfa60
jmp 0xb8632
movq 0x38(%rsp), %rdi
callq 0x3f070
movq %rax, %rdi
callq 0x1a660
movq %rax, %rsi
movq (%rsi), %rax
movq 0x8(%rax), %rax
leaq 0x68(%rsp), %rdi
callq *%rax
jmp 0xb8657
leaq 0xe8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
leaq 0x68(%rsp), %rdx
callq 0x1bf20
jmp 0xb8673
leaq 0x1eb70(%rip), %rdx     # 0xd71ea
leaq 0x108(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
callq 0xfa60
jmp 0xb8691
movq 0x38(%rsp), %rdi
callq 0x1bed0
movq %rax, %rdi
callq 0x1a660
movq %rax, %rsi
movq (%rsi), %rax
movq 0x8(%rax), %rax
leaq 0x48(%rsp), %rdi
callq *%rax
jmp 0xb86b6
leaq 0x128(%rsp), %rdi
leaq 0x108(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0x1bf20
jmp 0xb86d2
leaq 0x1d618(%rip), %rdx     # 0xd5cf1
leaq 0x148(%rsp), %rdi
leaq 0x128(%rsp), %rsi
callq 0xfa60
jmp 0xb86f0
movq 0x38(%rsp), %rdi
leaq 0x148(%rsp), %rsi
callq 0xb0680
jmp 0xb8704
leaq 0x148(%rsp), %rdi
callq 0xb6e8
leaq 0x128(%rsp), %rdi
callq 0xb6e8
leaq 0x48(%rsp), %rdi
callq 0xb6e8
leaq 0x108(%rsp), %rdi
callq 0xb6e8
leaq 0xe8(%rsp), %rdi
callq 0xb6e8
leaq 0x68(%rsp), %rdi
callq 0xb6e8
leaq 0xc8(%rsp), %rdi
callq 0xb6e8
leaq 0xa8(%rsp), %rdi
callq 0xb6e8
leaq 0x88(%rsp), %rdi
callq 0xb6e8
addq $0x1d8, %rsp            # imm = 0x1D8
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x190(%rsp)
movl %eax, 0x18c(%rsp)
jmp 0xb87d5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x190(%rsp)
movl %eax, 0x18c(%rsp)
jmp 0xb87c8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x190(%rsp)
movl %eax, 0x18c(%rsp)
leaq 0x178(%rsp), %rdi
callq 0x1a950
leaq 0x198(%rsp), %rdi
callq 0x1a950
leaq 0x1a8(%rsp), %rdi
callq 0x1a950
jmp 0xb8969
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x190(%rsp)
movl %eax, 0x18c(%rsp)
jmp 0xb8942
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x190(%rsp)
movl %eax, 0x18c(%rsp)
jmp 0xb8935
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x190(%rsp)
movl %eax, 0x18c(%rsp)
jmp 0xb8928
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x190(%rsp)
movl %eax, 0x18c(%rsp)
jmp 0xb891b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x190(%rsp)
movl %eax, 0x18c(%rsp)
jmp 0xb8911
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x190(%rsp)
movl %eax, 0x18c(%rsp)
jmp 0xb8904
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x190(%rsp)
movl %eax, 0x18c(%rsp)
jmp 0xb88f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x190(%rsp)
movl %eax, 0x18c(%rsp)
jmp 0xb88ed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x190(%rsp)
movl %eax, 0x18c(%rsp)
jmp 0xb88e0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x190(%rsp)
movl %eax, 0x18c(%rsp)
leaq 0x148(%rsp), %rdi
callq 0xb6e8
leaq 0x128(%rsp), %rdi
callq 0xb6e8
leaq 0x48(%rsp), %rdi
callq 0xb6e8
leaq 0x108(%rsp), %rdi
callq 0xb6e8
leaq 0xe8(%rsp), %rdi
callq 0xb6e8
leaq 0x68(%rsp), %rdi
callq 0xb6e8
leaq 0xc8(%rsp), %rdi
callq 0xb6e8
leaq 0xa8(%rsp), %rdi
callq 0xb6e8
leaq 0x88(%rsp), %rdi
callq 0xb6e8
movq 0x8(%rsp), %rdi
callq 0x1b3f0
movq 0x18(%rsp), %rdi
callq 0x1acc0
movq (%rsp), %rdi
callq 0x1bb40
movq 0x38(%rsp), %rdi
callq 0xb0270
movq 0x190(%rsp), %rdi
callq 0xb680
nopw %cs:(%rax,%rax)