// File: /workspace/github_cpp_makefile_star2_O3/Heptagon196[P]Gos/Reflection/./ReflMgr.h
// Function: void ReflMgr::AddMethod<ObjectPtr, SharedObject, ObjectPtr const&>(std::function<SharedObject (ObjectPtr*, ObjectPtr const&)>, MethodInfo)
void AddMethod(std::function<Ret(Type*, Args...)> func, MethodInfo info) {
            info.returnType = TypeID::get<Ret>();
            info.argsList = ArgsTypeList{TypeID::get<Args>()...};
            info.newRet = GetNewRet(func);
            AddMethodInfo(TypeID::get<Type>(), info.name, info.withRegister(GetLambdaRegisterFunc(func)));
        }

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x1b8, %rsp            # imm = 0x1B8
movq %rdx, %rbx
movq %rsi, %r15
movq %rdi, %r14
movabsq $0x1531cb40dec93163, %rax # imm = 0x1531CB40DEC93163
movq %rax, 0x98(%rdx)
movq $0xc, 0xa0(%rdx)
leaq 0x8557a(%rip), %rax     # 0xbc0a0
movq %rax, 0xa8(%rdx)
movw $0x0, 0xb0(%rdx)
movups 0xe184b(%rip), %xmm0    # 0x118388
leaq 0x30(%rsp), %rsi
movaps %xmm0, 0x10(%rsi)
movups 0xe182b(%rip), %xmm0    # 0x118378
movaps %xmm0, (%rsi)
leaq 0xb0(%rsp), %r12
leaq 0x2f(%rsp), %rcx
movl $0x1, %edx
movq %r12, %rdi
callq 0x371a4
movq 0xb8(%rbx), %rdi
movq 0xc8(%rbx), %rsi
movaps (%r12), %xmm0
movups %xmm0, 0xb8(%rbx)
movq 0x10(%r12), %rax
movq %rax, 0xc8(%rbx)
xorps %xmm0, %xmm0
movaps %xmm0, (%r12)
movq $0x0, 0x10(%r12)
testq %rdi, %rdi
je 0x36bcb
subq %rdi, %rsi
callq 0x11360
movq 0xb0(%rsp), %rdi
testq %rdi, %rdi
je 0x36bcb
movq 0xc0(%rsp), %rsi
subq %rdi, %rsi
callq 0x11360
leaq 0xc8(%rsp), %r12
movq %r12, %rdi
movq %r15, %rsi
callq 0x36e96
leaq 0x78(%rbx), %rdi
leaq 0x30(%rsp), %rsi
callq 0x370b0
movq 0x10(%r12), %rax
testq %rax, %rax
je 0x36c08
leaq 0xc8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movabsq $0x57dfe2a8f2175be4, %rax # imm = 0x57DFE2A8F2175BE4
movq %rax, 0x70(%rsp)
movq $0x9, 0x78(%rsp)
leaq 0x853f3(%rip), %rax     # 0xbc01a
movq %rax, 0x80(%rsp)
movw $0x0, 0x88(%rsp)
leaq 0x90(%rsp), %r12
movq %r12, %rdi
movq %r15, %rsi
callq 0x36e96
leaq 0x30(%rsp), %rdi
movq %r14, %rsi
movq %r12, %rdx
callq 0x37110
xorps %xmm0, %xmm0
movaps %xmm0, 0x60(%rsp)
movaps %xmm0, 0x50(%rsp)
movl $0x20, %edi
callq 0x11350
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq $0x0, 0x10(%rax)
movq 0x48(%rsp), %rcx
movq %rcx, 0x18(%rax)
movq 0x40(%rsp), %rcx
testq %rcx, %rcx
je 0x36caa
leaq 0x40(%rsp), %rdx
movups -0x10(%rdx), %xmm0
movups %xmm0, (%rax)
movq %rcx, 0x10(%rax)
xorps %xmm0, %xmm0
movups %xmm0, (%rdx)
leaq 0x50(%rsp), %rsi
movq %rax, (%rsi)
leaq 0x787(%rip), %rax       # 0x37440
movq %rax, 0x18(%rsi)
leaq 0x784(%rip), %rax       # 0x37448
movq %rax, 0x10(%rsi)
movq %rbx, %rdi
callq 0x227a0
leaq 0xe8(%rsp), %rdi
movq %rax, %rsi
callq 0x36ef4
movups 0x70(%rsp), %xmm0
movups 0x80(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0xe8(%rsp), %rdx
movq %r14, %rdi
movq %rbx, %rsi
movl $0x1, %ecx
callq 0x22a82
movq 0x1a0(%rsp), %rdi
testq %rdi, %rdi
je 0x36d2b
movq 0x1b0(%rsp), %rsi
subq %rdi, %rsi
callq 0x11360
movq 0x170(%rsp), %rax
testq %rax, %rax
je 0x36d4a
leaq 0x160(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0x150(%rsp), %rax
testq %rax, %rax
je 0x36d69
leaq 0x140(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x108(%rsp), %rbx
movq %rbx, %rdi
callq 0x36ac6
movq -0x20(%rbx), %rdi
leaq 0xf8(%rsp), %rax
cmpq %rax, %rdi
je 0x36d9a
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0x11360
movq 0x60(%rsp), %rax
testq %rax, %rax
je 0x36db3
leaq 0x50(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0x40(%rsp), %rax
testq %rax, %rax
je 0x36dcc
leaq 0x30(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0xa0(%rsp), %rax
testq %rax, %rax
je 0x36deb
leaq 0x90(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
addq $0x1b8, %rsp            # imm = 0x1B8
popq %rbx
popq %r12
popq %r14
popq %r15
retq
jmp 0x36e8e
jmp 0x36e8e
jmp 0x36e8e
jmp 0x36e8e
jmp 0x36e8e
jmp 0x36e8e
movq %rax, %rbx
leaq 0xe8(%rsp), %rdi
callq 0x37032
jmp 0x36e31
movq %rax, %rbx
jmp 0x36e4a
movq %rax, %rbx
jmp 0x36e63
movq %rax, %rbx
movq 0x60(%rsp), %rax
testq %rax, %rax
je 0x36e4a
leaq 0x50(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0x40(%rsp), %rax
testq %rax, %rax
je 0x36e63
leaq 0x30(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0xa0(%rsp), %rax
testq %rax, %rax
je 0x36e82
leaq 0x90(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq %rbx, %rdi
callq 0x11580
jmp 0x36e8e
jmp 0x36e8e
movq %rax, %rdi
callq 0x26e38