// File: Heptagon196[P]Gos/Reflection/./ReflMgr.h
// Function: SharedObject ReflMgr::Invoke<SharedObject, SharedObject>(SharedObject, std::basic_string_view<char, std::char_traits<char>>, std::vector<SharedObject, std::allocator<SharedObject>> const&, bool)
SharedObject Invoke(U instance, std::string_view method, const std::vector<T>& params, bool showError = true) {
            ArgsTypeList list;
            for (auto param : params) {
                list.push_back(param.GetType());
            }
            void* ptr = instance.GetRawPtr();
            std::function<void*(void*)> conv = [](void* orig) { return orig; };
            auto* info = SafeGetMethodWithInherit(&conv, instance.GetType(), method, list, showError);
            ptr = conv(ptr);
            if (info == nullptr || info->name == "") {
                return SharedObject();
            }
            std::vector<std::shared_ptr<void>> temp;
            auto ret = info->newRet();
            info->getRegister(ptr, ConvertParams(params, *info, temp), ret);
            if (ret.GetType().getHash() == TypeID::get<Any>().getHash()) {
                return ret.template As<Any>().ToSharedPtr();
            }
            return ret;
        }

// Assembly:
subq $0x278, %rsp            # imm = 0x278
movq %rdx, 0x70(%rsp)
movq %rdi, 0x78(%rsp)
movq %rdi, %rax
movq %rax, 0x80(%rsp)
movb 0x280(%rsp), %al
movq %rdi, 0x270(%rsp)
movq %rcx, 0x260(%rsp)
movq %r8, 0x268(%rsp)
movq %rsi, 0x258(%rsp)
movq %rdx, 0x250(%rsp)
movq %r9, 0x248(%rsp)
andb $0x1, %al
movb %al, 0x247(%rsp)
movq 0x258(%rsp), %rax
movq %rax, 0x88(%rsp)
leaq 0x228(%rsp), %rdi
callq 0x56250
movq 0x248(%rsp), %rax
movq %rax, 0x220(%rsp)
movq 0x220(%rsp), %rdi
callq 0x59ed0
movq %rax, 0x218(%rsp)
movq 0x220(%rsp), %rdi
callq 0x59f00
movq %rax, 0x210(%rsp)
leaq 0x218(%rsp), %rdi
leaq 0x210(%rsp), %rsi
callq 0x59f30
xorb $-0x1, %al
testb $0x1, %al
jne 0x53d73
jmp 0x53e1e
leaq 0x218(%rsp), %rdi
callq 0x59f70
movq %rax, %rsi
leaq 0x1d8(%rsp), %rdi
callq 0x1e520
jmp 0x53d92
leaq 0x1a8(%rsp), %rdi
movq %rdi, 0x68(%rsp)
leaq 0x1d8(%rsp), %rsi
callq 0x1e7e0
movq 0x68(%rsp), %rsi
leaq 0x228(%rsp), %rdi
callq 0x56310
jmp 0x53dc0
leaq 0x1d8(%rsp), %rdi
callq 0x23b00
leaq 0x218(%rsp), %rdi
callq 0x59f80
jmp 0x53d53
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1d0(%rsp)
movl %eax, 0x1cc(%rsp)
jmp 0x54158
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1d0(%rsp)
movl %eax, 0x1cc(%rsp)
leaq 0x1d8(%rsp), %rdi
callq 0x23b00
jmp 0x54158
movq 0x70(%rsp), %rdi
callq 0x1e1f0
movq %rax, 0x1a0(%rsp)
leaq 0x180(%rsp), %rdi
movq %rdi, 0x58(%rsp)
leaq 0x17f(%rsp), %rsi
callq 0x59fa0
movq 0x70(%rsp), %rsi
leaq 0x150(%rsp), %rdi
callq 0x1e7e0
movq 0x88(%rsp), %rdi
movq 0x58(%rsp), %rsi
movups 0x260(%rsp), %xmm0
movaps %xmm0, 0x140(%rsp)
movq 0x140(%rsp), %rdx
movq 0x148(%rsp), %rcx
movzbl 0x247(%rsp), %r9d
movups 0x150(%rsp), %xmm0
movups 0x160(%rsp), %xmm1
movq %rsp, %rax
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
andl $0x1, %r9d
leaq 0x228(%rsp), %r8
callq 0x4adf0
movq %rax, 0x60(%rsp)
jmp 0x53ec4
movq 0x60(%rsp), %rax
movq %rax, 0x170(%rsp)
movq 0x1a0(%rsp), %rsi
leaq 0x180(%rsp), %rdi
callq 0x563f0
movq %rax, 0x50(%rsp)
jmp 0x53eed
movq 0x50(%rsp), %rax
movq %rax, 0x1a0(%rsp)
cmpq $0x0, 0x170(%rsp)
je 0x53f1f
movq 0x170(%rsp), %rdi
leaq 0x1ccdb2(%rip), %rsi    # 0x220cc6
callq 0x56430
testb $0x1, %al
jne 0x53f1f
jmp 0x53f54
movq 0x78(%rsp), %rdi
callq 0x1e4e0
jmp 0x53f2b
movl $0x1, 0x13c(%rsp)
jmp 0x54121
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1d0(%rsp)
movl %eax, 0x1cc(%rsp)
jmp 0x5414b
leaq 0x120(%rsp), %rdi
callq 0x56460
movq 0x170(%rsp), %rsi
addq $0x78, %rsi
leaq 0xe8(%rsp), %rdi
callq 0x56470
jmp 0x53f7c
movq 0x88(%rsp), %rsi
movq 0x170(%rsp), %rcx
movq %rcx, %rax
addq $0x58, %rax
movq %rax, 0x40(%rsp)
movq 0x1a0(%rsp), %rax
movq %rax, 0x48(%rsp)
movq 0x248(%rsp), %rdx
leaq 0xd0(%rsp), %rdi
leaq 0x120(%rsp), %r8
callq 0x5a030
jmp 0x53fc4
movq 0x48(%rsp), %rsi
movq 0x40(%rsp), %rdi
leaq 0xd0(%rsp), %rdx
leaq 0xe8(%rsp), %rcx
callq 0x564c0
jmp 0x53fe5
leaq 0xd0(%rsp), %rdi
callq 0x568a0
leaq 0xb0(%rsp), %rdi
movq %rdi, 0x30(%rsp)
leaq 0xe8(%rsp), %rsi
callq 0x1e7e0
movq 0x30(%rsp), %rdi
callq 0x2b410
movq %rax, 0x38(%rsp)
jmp 0x5401d
leaq 0x90(%rsp), %rdi
callq 0x56900
jmp 0x5402c
leaq 0x90(%rsp), %rdi
callq 0x2b410
movq %rax, 0x28(%rsp)
jmp 0x54040
movq 0x38(%rsp), %rax
movq 0x28(%rsp), %rcx
cmpq %rcx, %rax
jne 0x540ca
leaq 0xe8(%rsp), %rdi
callq 0x56990
movq 0x78(%rsp), %rdi
movq %rax, %rsi
callq 0x1e290
jmp 0x5406b
movl $0x1, 0x13c(%rsp)
jmp 0x540e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1d0(%rsp)
movl %eax, 0x1cc(%rsp)
jmp 0x54112
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1d0(%rsp)
movl %eax, 0x1cc(%rsp)
jmp 0x54105
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1d0(%rsp)
movl %eax, 0x1cc(%rsp)
leaq 0xd0(%rsp), %rdi
callq 0x568a0
jmp 0x54105
movq 0x78(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
callq 0x1e520
jmp 0x540de
movl $0x1, 0x13c(%rsp)
leaq 0xe8(%rsp), %rdi
callq 0x23b00
leaq 0x120(%rsp), %rdi
callq 0x569a0
jmp 0x54121
leaq 0xe8(%rsp), %rdi
callq 0x23b00
leaq 0x120(%rsp), %rdi
callq 0x569a0
jmp 0x5414b
leaq 0x180(%rsp), %rdi
callq 0x56a00
leaq 0x228(%rsp), %rdi
callq 0x56a10
movq 0x80(%rsp), %rax
addq $0x278, %rsp            # imm = 0x278
retq
leaq 0x180(%rsp), %rdi
callq 0x56a00
leaq 0x228(%rsp), %rdi
callq 0x56a10
movq 0x1d0(%rsp), %rdi
callq 0x133f0
nopw %cs:(%rax,%rax)
nopl (%rax)