// File: menhits[P]phplus/src/Actions/ListAction.cpp
// Function: ListAction::ListAction(std::vector<std::shared_ptr<ActionData>, std::allocator<std::shared_ptr<ActionData>>> const&, std::vector<std::shared_ptr<ActionData>, std::allocator<std::shared_ptr<ActionData>>> const&)
ListAction(const vector<Action>& actionsIn, const vector<Action>& destroyersIn):
		ActionData
		(
			(actionsIn.size()>0?actionsIn.back()->getReturnType():Void),
			Void, Void
		)
	{
		actions=actionsIn;
		destroyers=destroyersIn;
		
		for (auto i=actions.begin(); i!=actions.end(); ++i)
		{
			if (!(*i)->getInLeftType()->matches(Void) || !(*i)->getInRightType()->matches(Void))
			{
				error.log((*i)->getDescription() + " put into action list even though its inputs are not void", INTERNAL_ERROR);
			}
		}
	}

// Assembly:
subq $0x178, %rsp            # imm = 0x178
movq %rdi, 0x170(%rsp)
movq %rsi, 0x168(%rsp)
movq %rdx, 0x160(%rsp)
movq 0x170(%rsp), %rax
movq %rax, 0x90(%rsp)
movq 0x168(%rsp), %rdi
callq 0x22290
cmpq $0x0, %rax
jbe 0xbd039
movq 0x168(%rsp), %rdi
callq 0xbd680
movq %rax, %rdi
callq 0x1bb50
movq %rax, %rdi
callq 0x1bed0
movq %rax, 0x88(%rsp)
jmp 0xbd04a
leaq 0x5b468(%rip), %rax     # 0x1184a8
movq %rax, 0x88(%rsp)
jmp 0xbd04a
movq 0x88(%rsp), %rsi
leaq 0x150(%rsp), %rdi
movq %rdi, 0x70(%rsp)
callq 0x1a920
leaq 0x5b43d(%rip), %rsi     # 0x1184a8
movq %rsi, 0x68(%rsp)
leaq 0x140(%rsp), %rdi
movq %rdi, 0x78(%rsp)
callq 0x1a920
movq 0x68(%rsp), %rsi
leaq 0x130(%rsp), %rdi
movq %rdi, 0x80(%rsp)
callq 0x1a920
movq 0x90(%rsp), %rdi
movq 0x70(%rsp), %rsi
movq 0x78(%rsp), %rdx
movq 0x80(%rsp), %rcx
callq 0xaf570
jmp 0xbd0bd
leaq 0x130(%rsp), %rdi
callq 0x1a950
leaq 0x140(%rsp), %rdi
callq 0x1a950
leaq 0x150(%rsp), %rdi
callq 0x1a950
movq 0x90(%rsp), %rdi
leaq 0x5a69d(%rip), %rax     # 0x117790
movq %rax, (%rdi)
addq $0x78, %rdi
movq %rdi, 0x60(%rsp)
callq 0x1aa90
movq 0x90(%rsp), %rdi
addq $0x90, %rdi
movq %rdi, 0x58(%rsp)
callq 0x1aa90
movq 0x60(%rsp), %rdi
movq 0x168(%rsp), %rsi
callq 0xbd6c0
jmp 0xbd131
movq 0x90(%rsp), %rdi
movq 0x160(%rsp), %rsi
addq $0x90, %rdi
callq 0xbd6c0
jmp 0xbd14f
movq 0x90(%rsp), %rdi
addq $0x78, %rdi
callq 0x221a0
movq %rax, 0x118(%rsp)
movq 0x90(%rsp), %rdi
addq $0x78, %rdi
callq 0x22010
movq %rax, 0x110(%rsp)
leaq 0x118(%rsp), %rdi
leaq 0x110(%rsp), %rsi
callq 0xbd540
testb $0x1, %al
jne 0xbd19f
jmp 0xbd484
leaq 0x118(%rsp), %rdi
callq 0xbd580
movq %rax, %rdi
callq 0x1bb50
movq %rax, %rdi
movb $0x0, 0xef(%rsp)
callq 0x3f060
movq %rax, 0x50(%rsp)
jmp 0xbd1cb
movq 0x50(%rsp), %rdi
callq 0x1a660
movq %rax, 0x38(%rsp)
leaq 0x5b2c7(%rip), %rsi     # 0x1184a8
leaq 0x100(%rsp), %rdi
movq %rdi, 0x40(%rsp)
callq 0x1a920
movq 0x38(%rsp), %rdi
movq 0x40(%rsp), %rsi
callq 0x9f1a0
movb %al, 0x4f(%rsp)
jmp 0xbd208
movb 0x4f(%rsp), %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, 0x37(%rsp)
jne 0xbd219
jmp 0xbd28c
leaq 0x118(%rsp), %rdi
callq 0xbd580
movq %rax, %rdi
callq 0x1bb50
movq %rax, %rdi
callq 0x3f070
movq %rax, 0x28(%rsp)
jmp 0xbd23d
movq 0x28(%rsp), %rdi
callq 0x1a660
movq %rax, 0x10(%rsp)
leaq 0x5b255(%rip), %rsi     # 0x1184a8
leaq 0xf0(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0x1a920
movq 0x10(%rsp), %rdi
movq 0x18(%rsp), %rsi
movb $0x1, 0xef(%rsp)
callq 0x9f1a0
movb %al, 0x27(%rsp)
jmp 0xbd282
movb 0x27(%rsp), %al
xorb $-0x1, %al
movb %al, 0x37(%rsp)
movb 0x37(%rsp), %al
movb %al, 0xf(%rsp)
testb $0x1, 0xef(%rsp)
jne 0xbd2a0
jmp 0xbd2ad
leaq 0xf0(%rsp), %rdi
callq 0x1a950
leaq 0x100(%rsp), %rdi
callq 0x1a950
movb 0xf(%rsp), %al
testb $0x1, %al
jne 0xbd2c7
jmp 0xbd470
leaq 0x118(%rsp), %rdi
callq 0xbd580
movq %rax, %rdi
callq 0x1bb50
movq %rax, %rsi
movq (%rsi), %rax
movq 0x18(%rax), %rax
leaq 0xa8(%rsp), %rdi
callq *%rax
jmp 0xbd2f2
leaq 0x1a27b(%rip), %rdx     # 0xd7574
leaq 0xc8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0xfa60
jmp 0xbd310
xorl %eax, %eax
movl %eax, %esi
leaq 0x98(%rsp), %rdi
movq %rdi, (%rsp)
callq 0xfbe0
movq (%rsp), %rcx
leaq 0x5b093(%rip), %rdi     # 0x1183c3
leaq 0xc8(%rsp), %rsi
movl $0x3, %edx
callq 0x34c70
jmp 0xbd344
leaq 0x98(%rsp), %rdi
callq 0xfc00
leaq 0xc8(%rsp), %rdi
callq 0xb6e8
leaq 0xa8(%rsp), %rdi
callq 0xb6e8
jmp 0xbd470
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x128(%rsp)
movl %eax, 0x124(%rsp)
leaq 0x130(%rsp), %rdi
callq 0x1a950
leaq 0x140(%rsp), %rdi
callq 0x1a950
leaq 0x150(%rsp), %rdi
callq 0x1a950
jmp 0xbd4ad
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x128(%rsp)
movl %eax, 0x124(%rsp)
jmp 0xbd48c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x128(%rsp)
movl %eax, 0x124(%rsp)
jmp 0xbd40e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x128(%rsp)
movl %eax, 0x124(%rsp)
testb $0x1, 0xef(%rsp)
jne 0xbd3ff
jmp 0xbd40c
leaq 0xf0(%rsp), %rdi
callq 0x1a950
jmp 0xbd40e
leaq 0x100(%rsp), %rdi
callq 0x1a950
jmp 0xbd48c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x128(%rsp)
movl %eax, 0x124(%rsp)
jmp 0xbd461
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x128(%rsp)
movl %eax, 0x124(%rsp)
leaq 0x98(%rsp), %rdi
callq 0xfc00
leaq 0xc8(%rsp), %rdi
callq 0xb6e8
leaq 0xa8(%rsp), %rdi
callq 0xb6e8
jmp 0xbd48c
jmp 0xbd472
leaq 0x118(%rsp), %rdi
callq 0xbd610
jmp 0xbd168
addq $0x178, %rsp            # imm = 0x178
retq
movq 0x58(%rsp), %rdi
callq 0x1adb0
movq 0x60(%rsp), %rdi
callq 0x1adb0
movq 0x90(%rsp), %rdi
callq 0xb0270
movq 0x128(%rsp), %rdi
callq 0xb680
nopw (%rax,%rax)