// File: menhits[P]phplus/src/Type.cpp
// Function: TypeBase::actuallyIs(std::shared_ptr<TypeBase>)
Type TypeBase::actuallyIs(Type target)
{
	if (!matches(target))
	{
		throw PhplusError("actuallyIs called with type that doesn't match", INTERNAL_ERROR);
	}
	
	if (isWhatev())
	{
		throw PhplusError("actuallyIs not implemented properly for Whatev type", INTERNAL_ERROR);
	}
	
	return shared_from_this();
}

// Assembly:
subq $0x118, %rsp            # imm = 0x118
movq %rdx, 0x38(%rsp)
movq %rsi, %rax
movq 0x38(%rsp), %rsi
movq %rdi, 0x40(%rsp)
movq %rdi, %rcx
movq %rcx, 0x48(%rsp)
movq %rdi, 0x110(%rsp)
movq %rax, 0x108(%rsp)
movq %rsi, 0x100(%rsp)
movq 0x108(%rsp), %rax
movq %rax, 0x50(%rsp)
leaq 0xf0(%rsp), %rdi
movq %rdi, 0x58(%rsp)
callq 0x1a920
movq 0x50(%rsp), %rdi
movq 0x58(%rsp), %rsi
callq 0x9f1a0
movb %al, 0x66(%rsp)
jmp 0x9f53d
movb 0x66(%rsp), %al
xorb $-0x1, %al
movb %al, 0x37(%rsp)
leaq 0xf0(%rsp), %rdi
callq 0x1a950
movb 0x37(%rsp), %al
testb $0x1, %al
jne 0x9f561
jmp 0x9f690
movb $0x1, 0xa7(%rsp)
movl $0x38, %edi
callq 0xb1f0
movq %rax, 0x20(%rsp)
leaq 0xbf(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0xb690
movq 0x28(%rsp), %rdx
leaq 0x3688f(%rip), %rsi     # 0xd5e25
leaq 0xc0(%rsp), %rdi
callq 0xb4c0
jmp 0x9f5a5
xorl %eax, %eax
movl %eax, %esi
leaq 0xa8(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0xfbe0
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rcx
leaq 0xc0(%rsp), %rsi
movl $0x3, %edx
callq 0x35600
jmp 0x9f5d9
movq 0x20(%rsp), %rdi
movb $0x0, 0xa7(%rsp)
leaq 0x75fdb(%rip), %rsi     # 0x1155c8
leaq -0x84f84(%rip), %rdx    # 0x1a670
callq 0xb640
jmp 0x9f7c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xe8(%rsp)
movl %eax, 0xe4(%rsp)
leaq 0xf0(%rsp), %rdi
callq 0x1a950
jmp 0x9f7b3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xe8(%rsp)
movl %eax, 0xe4(%rsp)
jmp 0x9f668
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xe8(%rsp)
movl %eax, 0xe4(%rsp)
leaq 0xa8(%rsp), %rdi
callq 0xfc00
leaq 0xc0(%rsp), %rdi
callq 0xb6e8
leaq 0xbf(%rsp), %rdi
callq 0xb3f0
testb $0x1, 0xa7(%rsp)
jne 0x9f681
jmp 0x9f68b
movq 0x20(%rsp), %rdi
callq 0xb2d0
jmp 0x9f7b3
movq 0x50(%rsp), %rdi
movq (%rdi), %rax
callq *0x30(%rax)
testb $0x1, %al
jne 0x9f6a4
jmp 0x9f793
movb $0x1, 0x67(%rsp)
movl $0x38, %edi
callq 0xb1f0
movq %rax, 0x8(%rsp)
leaq 0x7f(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0xb690
movq 0x10(%rsp), %rdx
leaq 0x36781(%rip), %rsi     # 0xd5e54
leaq 0x80(%rsp), %rdi
callq 0xb4c0
jmp 0x9f6e2
xorl %eax, %eax
movl %eax, %esi
leaq 0x68(%rsp), %rdi
movq %rdi, (%rsp)
callq 0xfbe0
movq 0x8(%rsp), %rdi
movq (%rsp), %rcx
leaq 0x80(%rsp), %rsi
movl $0x3, %edx
callq 0x35600
jmp 0x9f711
movq 0x8(%rsp), %rdi
movb $0x0, 0x67(%rsp)
leaq 0x75ea6(%rip), %rsi     # 0x1155c8
leaq -0x850b9(%rip), %rdx    # 0x1a670
callq 0xb640
jmp 0x9f7c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xe8(%rsp)
movl %eax, 0xe4(%rsp)
jmp 0x9f774
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xe8(%rsp)
movl %eax, 0xe4(%rsp)
leaq 0x68(%rsp), %rdi
callq 0xfc00
leaq 0x80(%rsp), %rdi
callq 0xb6e8
leaq 0x7f(%rsp), %rdi
callq 0xb3f0
testb $0x1, 0x67(%rsp)
jne 0x9f787
jmp 0x9f791
movq 0x8(%rsp), %rdi
callq 0xb2d0
jmp 0x9f7b3
movq 0x40(%rsp), %rdi
movq 0x50(%rsp), %rsi
addq $0x8, %rsi
callq 0xa0440
movq 0x48(%rsp), %rax
addq $0x118, %rsp            # imm = 0x118
retq
movq 0xe8(%rsp), %rdi
callq 0xb680