// File: menhits[P]phplus/src/CppProgram.cpp
// Function: CppProgram::popFunc()
void CppProgram::popFunc()
{
	if (activeFunc->getExprLevel()>0 || !activeFunc->getIfFreshLine() || activeFunc->getBlockLevel()>0)
	{
		throw PhplusError("called CppProgram::popFunc when function wasn't ready", INTERNAL_ERROR);
	}
	
	funcStack.pop_back();
	
	if (funcStack.empty())
	{
		throw PhplusError("called CppProgram::popFunc too many times", INTERNAL_ERROR);
	}
	
	activeFunc=funcs[funcStack.back()];
}

// Assembly:
subq $0xd8, %rsp
movq %rdi, 0xd0(%rsp)
movq 0xd0(%rsp), %rdi
movq %rdi, 0x38(%rsp)
addq $0xa0, %rdi
callq 0x2e100
movq %rax, %rdi
callq 0x2e640
cmpl $0x0, %eax
jg 0x2c2c6
movq 0x38(%rsp), %rdi
addq $0xa0, %rdi
callq 0x2e100
movq %rax, %rdi
callq 0x2e650
testb $0x1, %al
jne 0x2c2a4
jmp 0x2c2c6
movq 0x38(%rsp), %rdi
addq $0xa0, %rdi
callq 0x2e100
movq %rax, %rdi
callq 0x2e660
cmpl $0x0, %eax
jle 0x2c3cf
movb $0x1, 0x87(%rsp)
movl $0x38, %edi
callq 0xb1f0
movq %rax, 0x28(%rsp)
leaq 0xaf(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0xb690
movq 0x30(%rsp), %rdx
leaq 0xa5b85(%rip), %rsi     # 0xd1e80
leaq 0xb0(%rsp), %rdi
callq 0xb4c0
jmp 0x2c30a
xorl %eax, %eax
movl %eax, %esi
leaq 0x88(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0xfbe0
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rcx
leaq 0xb0(%rsp), %rsi
movl $0x3, %edx
callq 0x35600
jmp 0x2c33e
movq 0x28(%rsp), %rdi
movb $0x0, 0x87(%rsp)
leaq 0xe9276(%rip), %rsi     # 0x1155c8
leaq -0x11ce9(%rip), %rdx    # 0x1a670
callq 0xb640
jmp 0x2c535
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa0(%rsp)
movl %eax, 0x9c(%rsp)
jmp 0x2c3a7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa0(%rsp)
movl %eax, 0x9c(%rsp)
leaq 0x88(%rsp), %rdi
callq 0xfc00
leaq 0xb0(%rsp), %rdi
callq 0xb6e8
leaq 0xaf(%rsp), %rdi
callq 0xb3f0
testb $0x1, 0x87(%rsp)
jne 0x2c3c0
jmp 0x2c3ca
movq 0x28(%rsp), %rdi
callq 0xb2d0
jmp 0x2c528
movq 0x38(%rsp), %rdi
addq $0xb0, %rdi
callq 0x2e670
movq 0x38(%rsp), %rdi
addq $0xb0, %rdi
callq 0x2e690
testb $0x1, %al
jne 0x2c3fa
jmp 0x2c4e2
movb $0x1, 0x47(%rsp)
movl $0x38, %edi
callq 0xb1f0
movq %rax, 0x10(%rsp)
leaq 0x5f(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0xb690
movq 0x18(%rsp), %rdx
leaq 0xa5a8d(%rip), %rsi     # 0xd1eb6
leaq 0x60(%rsp), %rdi
callq 0xb4c0
jmp 0x2c435
xorl %eax, %eax
movl %eax, %esi
leaq 0x48(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0xfbe0
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rcx
leaq 0x60(%rsp), %rsi
movl $0x3, %edx
callq 0x35600
jmp 0x2c463
movq 0x10(%rsp), %rdi
movb $0x0, 0x47(%rsp)
leaq 0xe9154(%rip), %rsi     # 0x1155c8
leaq -0x11e0b(%rip), %rdx    # 0x1a670
callq 0xb640
jmp 0x2c535
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa0(%rsp)
movl %eax, 0x9c(%rsp)
jmp 0x2c4c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa0(%rsp)
movl %eax, 0x9c(%rsp)
leaq 0x48(%rsp), %rdi
callq 0xfc00
leaq 0x60(%rsp), %rdi
callq 0xb6e8
leaq 0x5f(%rsp), %rdi
callq 0xb3f0
testb $0x1, 0x47(%rsp)
jne 0x2c4d6
jmp 0x2c4e0
movq 0x10(%rsp), %rdi
callq 0xb2d0
jmp 0x2c528
movq 0x38(%rsp), %rdi
movq %rdi, %rax
addq $0xc8, %rax
movq %rax, (%rsp)
addq $0xb0, %rdi
callq 0x2e6e0
movq (%rsp), %rdi
movq %rax, %rsi
callq 0x2e2a0
movq 0x38(%rsp), %rdi
movq %rax, %rsi
addq $0xa0, %rdi
callq 0x2e390
addq $0xd8, %rsp
retq
movq 0xa0(%rsp), %rdi
callq 0xb680
nopw %cs:(%rax,%rax)