// File: /workspace/github_cpp_makefile_star2_O1/Heptagon196[P]Gos/main.cpp
// Function: reflIO()
void reflIO() {
    ReflMgrTool::Init();
    auto& refl = ReflMgr::Instance();
    refl.AddClass<IO>();
    refl.AddClass<unknown>();
    ReflMgrTool::AutoRegister<Array>();
    refl.AddClass<Array>();
    refl.AddMethod<Array>(std::function([](Array* self, int size) -> decltype(auto) {
        self->cont.resize(size);
    }), "__ctor");;
    refl.AddMethod<SharedObject>(std::function([&refl](SharedObject* self, ReflMgr::Any val) -> decltype(auto) {
        (*self) = refl.New(val.GetType());
        return self->assign(val);
    }), "__assign");
    refl.AddAliasClass("any", TypeID::get<ReflMgr::Any>().getName());
    refl.AddAliasClass("array", "Array");
    refl.AddAliasClass("string", TypeID::get<std::string>().getName());
    refl.AddMethod(std::function([](std::vector<SharedObject>* self, int size) { self->resize(size); }), "resize");
    refl.AddMethod(&IO::count, "count");
    refl.AddMethod(MethodType<void, IO, ReflMgr::Any>::Type(&IO::print), "print");
    refl.AddMethod(MethodType<void, IO, int&>::Type(&IO::read), "read");
    refl.AddMethod(MethodType<void, IO, std::string&>::Type(&IO::read), "read");
    refl.AddMethod(MethodType<void, IO, SharedObject&>::Type(&IO::read), "read");
    refl.AddMethod(&IO::Greatings, "Greatings");
    refl.AddStaticMethod(TypeID::get<IO>(), &IO::Hello, "hello");
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x180, %rsp            # imm = 0x180
callq 0x1da0c
callq 0x23132
movq %rax, %rbx
xorps %xmm0, %xmm0
leaq 0x170(%rsp), %rax
movaps %xmm0, -0x30(%rax)
movaps %xmm0, -0x10(%rax)
movaps %xmm0, -0x20(%rax)
movq $0x0, (%rax)
movq %rax, -0x30(%rax)
movq $0x1, -0x28(%rax)
movl $0x3f800000, -0x10(%rax) # imm = 0x3F800000
movups %xmm0, -0x8(%rax)
leaq 0x140(%rsp), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0xb4d4c
leaq 0x140(%rsp), %rdi
callq 0x376f2
leaq 0x130(%rsp), %rax
xorps %xmm0, %xmm0
movaps %xmm0, -0x30(%rax)
movaps %xmm0, -0x10(%rax)
movaps %xmm0, -0x20(%rax)
movq $0x0, (%rax)
movq %rax, -0x30(%rax)
movq $0x1, -0x28(%rax)
movl $0x3f800000, -0x10(%rax) # imm = 0x3F800000
movups %xmm0, -0x8(%rax)
leaq 0x100(%rsp), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0xb4dd4
leaq 0x100(%rsp), %rdi
callq 0x376f2
callq 0xb4e5b
xorps %xmm0, %xmm0
leaq 0xf0(%rsp), %rax
movaps %xmm0, -0x30(%rax)
movaps %xmm0, -0x10(%rax)
movaps %xmm0, -0x20(%rax)
movq $0x0, (%rax)
movq %rax, -0x30(%rax)
movq $0x1, -0x28(%rax)
movl $0x3f800000, -0x10(%rax) # imm = 0x3F800000
movups %xmm0, -0x8(%rax)
leaq 0xc0(%rsp), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0xb5026
leaq 0xc0(%rsp), %rdi
callq 0x376f2
leaq 0x80(%rsp), %rsi
xorps %xmm0, %xmm0
movaps %xmm0, (%rsi)
leaq 0x8ef(%rip), %rax       # 0xb4bd0
movq %rax, 0x18(%rsi)
leaq 0x8f0(%rip), %rax       # 0xb4bdc
movq %rax, 0x10(%rsi)
leaq 0x8af8(%rip), %rcx      # 0xbcdef
movl $0x6, %edx
movq %rbx, %rdi
callq 0xb50ae
movq 0x90(%rsp), %rax
testq %rax, %rax
je 0xb4323
leaq 0x80(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
xorps %xmm0, %xmm0
leaq 0x60(%rsp), %rsi
movaps %xmm0, (%rsi)
movaps %xmm0, 0x10(%rsi)
movq %rbx, (%rsi)
leaq 0x8b8(%rip), %rax       # 0xb4bf4
movq %rax, 0x18(%rsi)
leaq 0x9bb(%rip), %rax       # 0xb4d02
movq %rax, 0x10(%rsi)
leaq 0x8ad3(%rip), %rcx      # 0xbce25
movl $0x8, %edx
movq %rbx, %rdi
callq 0xb52f0
movq 0x70(%rsp), %rax
testq %rax, %rax
je 0xb4378
leaq 0x60(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movabsq $-0x23244b0fbd3d03de, %rax # imm = 0xDCDBB4F042C2FC22
leaq 0xa0(%rsp), %r14
movq %rax, (%r14)
movq $0xc, 0x8(%r14)
leaq 0x8bea(%rip), %rax      # 0xbcf86
movq %rax, 0x10(%r14)
xorl %ebp, %ebp
movw %bp, 0x18(%r14)
movq %r14, %rdi
callq 0x1ff7e
movq %rdx, %r8
leaq 0x1cf03(%rip), %rdx     # 0xd12bc
movl $0x3, %esi
movq %rbx, %rdi
movq %rax, %rcx
callq 0x24164
leaq 0x1cef0(%rip), %rdx     # 0xd12c0
leaq 0x1ceef(%rip), %r8      # 0xd12c6
movl $0x5, %esi
movl $0x5, %ecx
movq %rbx, %rdi
callq 0x24164
movabsq $-0x22bfd0b2172c96aa, %rax # imm = 0xDD402F4DE8D36956
movq %rax, (%r14)
movq $0x17, 0x8(%r14)
leaq 0x8a5d(%rip), %rax      # 0xbce62
movq %rax, 0x10(%r14)
movw %bp, 0x18(%r14)
leaq 0xa0(%rsp), %rdi
callq 0x1ff7e
movq %rdx, %r8
leaq 0x1be72(%rip), %rdx     # 0xd0297
movl $0x6, %esi
movq %rbx, %rdi
movq %rax, %rcx
callq 0x24164
xorps %xmm0, %xmm0
leaq 0x40(%rsp), %rsi
movaps %xmm0, (%rsi)
leaq 0x8e1(%rip), %rax       # 0xb4d28
movq %rax, 0x18(%rsi)
leaq 0x8e2(%rip), %rax       # 0xb4d34
movq %rax, 0x10(%rsi)
leaq 0x1ce6f(%rip), %rcx     # 0xd12cc
movl $0x6, %edx
movq %rbx, %rdi
callq 0xb5532
movq 0x50(%rsp), %rax
testq %rax, %rax
je 0xb4483
leaq 0x40(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x14de(%rip), %rsi      # 0xb5968
leaq 0x1ce42(%rip), %r8      # 0xd12d3
movl $0x5, %ecx
movq %rbx, %rdi
xorl %edx, %edx
callq 0xb5774
leaq 0x16c5(%rip), %rsi      # 0xb5b6c
leaq 0x1ce2b(%rip), %r8      # 0xd12d9
movl $0x5, %ecx
movq %rbx, %rdi
xorl %edx, %edx
callq 0xb5978
leaq 0x18d4(%rip), %rsi      # 0xb5d98
leaq 0x1ce14(%rip), %r14     # 0xd12df
movl $0x4, %ecx
movq %rbx, %rdi
xorl %edx, %edx
movq %r14, %r8
callq 0xb5ba4
leaq 0x1ab4(%rip), %rsi      # 0xb5f98
movl $0x4, %ecx
movq %rbx, %rdi
xorl %edx, %edx
movq %r14, %r8
callq 0xb5da4
leaq 0x1c9b(%rip), %rsi      # 0xb6198
movl $0x4, %ecx
movq %rbx, %rdi
xorl %edx, %edx
movq %r14, %r8
callq 0xb5fa4
leaq 0x1eea(%rip), %rsi      # 0xb6400
leaq 0x1cdc7(%rip), %r8      # 0xd12e4
movl $0x9, %ecx
movq %rbx, %rdi
xorl %edx, %edx
callq 0xb620c
movabsq $0x9241907b5b8e8f1, %rax # imm = 0x9241907B5B8E8F1
movq %rax, 0x20(%rsp)
movq $0x2, 0x28(%rsp)
leaq 0x1cdff(%rip), %rax     # 0xd134a
movq %rax, 0x30(%rsp)
movw $0x0, 0x38(%rsp)
movups 0x20(%rsp), %xmm0
movups 0x30(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x20f5(%rip), %rsi      # 0xb6666
leaq 0x1cd76(%rip), %rcx     # 0xd12ee
movl $0x5, %edx
movq %rbx, %rdi
callq 0xb6444
addq $0x180, %rsp            # imm = 0x180
popq %rbx
popq %r14
popq %rbp
retq
jmp 0xb45fb
jmp 0xb45fb
jmp 0xb45fb
movq %rax, %rbx
movq 0x50(%rsp), %rax
testq %rax, %rax
je 0xb4612
leaq 0x40(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0xb4612
jmp 0xb45fb
movq %rax, %rbx
movq 0x70(%rsp), %rax
testq %rax, %rax
je 0xb4612
leaq 0x60(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0xb4612
jmp 0xb45fb
movq %rax, %rbx
movq 0x90(%rsp), %rax
testq %rax, %rax
je 0xb4612
leaq 0x80(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0xb4612
movq %rax, %rdi
callq 0x2789a
jmp 0xb4607
jmp 0xb4607
movq %rax, %rbx
movq %r14, %rdi
callq 0x376f2
movq %rbx, %rdi
callq 0x11580