// File: /workspace/github_cpp_makefile_star2_O2/Eronana[P]strawberry/src/vm.cpp
// Function: VirtualMachine::VirtualMachine()
VirtualMachine::VirtualMachine()
{
    BUILDIN_FUNC_LIST(REG_BUILDIN_FUNC)
    setRoot(&v_stack);
    addExtraRoot(&reg_this);
    addExtraRoot(&reg_ret);

    auto prototypes = add_object(reg_system,"prototypes");
    auto Object = add_object(prototypes,"Object");
    auto Array = add_object(prototypes,"Array");
    auto String = add_object(prototypes,"String");
    auto Number = add_object(prototypes,"Number");
    auto Float = add_object(prototypes,"Float");
    auto Int = add_object(prototypes,"Int");
    auto Bool = add_object(prototypes,"Bool");
    auto Function = add_object(prototypes,"Function");
    Function[string("new")] = reg_system["__this_new__"];
    object_set(Array,"__proto__",Object);
    object_set(String,"__proto__",Object);
    object_set(Number,"__proto__",Object);
    object_set(Bool,"__proto__",Object);
    object_set(Function,"__proto__",Object);
    object_set(Float,"__proto__",Number);
    object_set(Int,"__proto__",Number);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xf8, %rsp
movq %rdi, %rbx
leaq 0x68(%rdi), %r14
leaq 0x88(%rdi), %r15
xorps %xmm0, %xmm0
movups %xmm0, 0x70(%rdi)
movups %xmm0, 0x60(%rdi)
movups %xmm0, 0x50(%rdi)
movups %xmm0, 0x40(%rdi)
movq %r15, %rdi
movq %r14, 0xc8(%rsp)
callq 0x9d62
leaq 0xd8(%rbx), %rdi
leaq 0x24c66(%rip), %rsi     # 0x2dc50
movl $0x390, %edx            # imm = 0x390
callq 0x61f0
leaq 0x468(%rbx), %r13
movq %r13, %rdi
movq %r15, 0xc0(%rsp)
callq 0xb4d8
leaq 0x488(%rbx), %rbp
movq %rbp, %rdi
callq 0xb4d8
leaq 0x4b0(%rbx), %rax
andl $0x0, 0x4b0(%rbx)
andq $0x0, 0x4b8(%rbx)
movq %rax, 0x4c0(%rbx)
movq %rax, 0x4c8(%rbx)
andq $0x0, 0x4d0(%rbx)
leaq 0x4a8(%rbx), %r12
leaq 0x4f0(%rbx), %rax
movq %rax, 0x4e0(%rbx)
andq $0x0, 0x4e8(%rbx)
movb $0x0, 0x4f0(%rbx)
leaq 0x1410a(%rip), %rsi     # 0x1d17b
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
movq %r12, 0x90(%rsp)
callq 0x9c4a
leaq 0x1c63(%rip), %rdx      # 0xacf0
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9988
movq %rsp, %rdi
callq 0x6130
leaq 0x140da(%rip), %rsi     # 0x1d181
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x9c4a
leaq 0x1cdf(%rip), %rdx      # 0xad9a
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9988
movq %rsp, %rdi
callq 0x6130
leaq 0x140b4(%rip), %rsi     # 0x1d189
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x9c4a
leaq 0x1cc0(%rip), %rdx      # 0xada9
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9988
movq %rsp, %rdi
callq 0x6130
leaq 0x1408c(%rip), %rsi     # 0x1d18f
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x9c4a
leaq 0x1cb1(%rip), %rdx      # 0xadc8
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9988
movq %rsp, %rdi
callq 0x6130
leaq 0x14064(%rip), %rsi     # 0x1d195
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x9c4a
leaq 0x1ca2(%rip), %rdx      # 0xade7
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9988
movq %rsp, %rdi
callq 0x6130
leaq 0x1403c(%rip), %rsi     # 0x1d19b
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x9c4a
leaq 0x1cc1(%rip), %rdx      # 0xae34
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9988
movq %rsp, %rdi
callq 0x6130
leaq 0x14013(%rip), %rsi     # 0x1d1a0
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x9c4a
leaq 0x1c9e(%rip), %rdx      # 0xae3f
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9988
movq %rsp, %rdi
callq 0x6130
leaq 0x13fe9(%rip), %rsi     # 0x1d1a4
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x9c4a
leaq 0x1cbd(%rip), %rdx      # 0xae8c
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9988
movq %rsp, %rdi
callq 0x6130
leaq 0x13fc0(%rip), %rsi     # 0x1d1a9
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x9c4a
leaq 0x1cf2(%rip), %rdx      # 0xaeef
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9988
movq %rsp, %rdi
callq 0x6130
leaq 0x13f98(%rip), %rsi     # 0x1d1af
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x9c4a
leaq 0x1d11(%rip), %rdx      # 0xaf3c
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9988
movq %rsp, %rdi
callq 0x6130
leaq 0x13f71(%rip), %rsi     # 0x1d1b6
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x9c4a
leaq 0x1d2e(%rip), %rdx      # 0xaf87
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9988
movq %rsp, %rdi
callq 0x6130
leaq 0x13f4c(%rip), %rsi     # 0x1d1bf
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x9c4a
leaq 0x1e19(%rip), %rdx      # 0xb0a0
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9988
movq %rsp, %rdi
callq 0x6130
leaq 0x13f21(%rip), %rsi     # 0x1d1c2
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x9c4a
leaq 0x1df0(%rip), %rdx      # 0xb0a5
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9988
movq %rsp, %rdi
callq 0x6130
leaq 0x13ef8(%rip), %rsi     # 0x1d1c7
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x9c4a
leaq 0x1ef5(%rip), %rdx      # 0xb1d8
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9988
movq %rsp, %rdi
callq 0x6130
leaq 0x13ecf(%rip), %rsi     # 0x1d1cc
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x9c4a
leaq 0x1f58(%rip), %rdx      # 0xb269
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9988
movq %rsp, %rdi
callq 0x6130
leaq 0x13ea5(%rip), %rsi     # 0x1d1d0
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x9c4a
leaq 0x20bb(%rip), %rdx      # 0xb3fa
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9988
movq %rsp, %rdi
callq 0x6130
leaq 0x13e84(%rip), %rsi     # 0x1d1dd
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x9c4a
leaq 0x20ca(%rip), %rdx      # 0xb437
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9988
movq %rsp, %rdi
callq 0x6130
leaq 0x13e5b(%rip), %rsi     # 0x1d1e2
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x9c4a
leaq 0x20b7(%rip), %rdx      # 0xb452
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9988
movq %rsp, %rdi
callq 0x6130
movq %r14, %rdi
callq 0xf1c9
movq %r13, %rdi
callq 0xf1b4
movq %rbp, %rdi
callq 0xf1b4
leaq 0x13d8f(%rip), %rsi     # 0x1d15c
leaq 0x40(%rsp), %rdi
leaq 0x60(%rsp), %rdx
callq 0x9c4a
leaq 0x40(%rsp), %rsi
movq %r12, %rdi
callq 0x9d7d
movups (%rax), %xmm0
movups 0x10(%rax), %xmm1
movaps %xmm1, 0x10(%rsp)
movaps %xmm0, (%rsp)
leaq 0x40(%rsp), %rdi
callq 0x6130
leaq 0x13d3b(%rip), %rsi     # 0x1d145
leaq 0x60(%rsp), %rdi
leaq 0x20(%rsp), %rdx
callq 0x9c4a
movq %rsp, %rdi
leaq 0x60(%rsp), %rsi
callq 0x9dba
movups (%rax), %xmm0
movups 0x10(%rax), %xmm1
movaps %xmm1, 0x50(%rsp)
movaps %xmm0, 0x40(%rsp)
leaq 0x60(%rsp), %rdi
callq 0x6130
leaq 0x13cf7(%rip), %rsi     # 0x1d13f
leaq 0x60(%rsp), %rdi
leaq 0x20(%rsp), %rdx
callq 0x9c4a
movq %rsp, %rdi
leaq 0x60(%rsp), %rsi
callq 0x9dba
movq 0x8(%rax), %rbp
leaq 0x60(%rsp), %rdi
callq 0x6130
leaq 0x13cbf(%rip), %rsi     # 0x1d138
leaq 0x60(%rsp), %rdi
leaq 0x20(%rsp), %rdx
callq 0x9c4a
movq %rsp, %rdi
leaq 0x60(%rsp), %rsi
callq 0x9dba
movq 0x8(%rax), %r12
leaq 0x60(%rsp), %rdi
callq 0x6130
leaq 0x13d42(%rip), %rsi     # 0x1d1ec
leaq 0x60(%rsp), %rdi
leaq 0x20(%rsp), %rdx
callq 0x9c4a
movq %rsp, %rdi
leaq 0x60(%rsp), %rsi
callq 0x9dba
movq (%rax), %rcx
movq %rcx, 0x98(%rsp)
movq 0x8(%rax), %r13
movups 0x10(%rax), %xmm0
movaps %xmm0, 0xe0(%rsp)
leaq 0x60(%rsp), %rdi
callq 0x6130
leaq 0x13c40(%rip), %rsi     # 0x1d132
leaq 0x60(%rsp), %rdi
leaq 0x20(%rsp), %rdx
callq 0x9c4a
movq %rsp, %rdi
leaq 0x60(%rsp), %rsi
callq 0x9dba
movq 0x8(%rax), %rax
movq %rax, 0xd8(%rsp)
leaq 0x60(%rsp), %rdi
callq 0x6130
leaq 0x13c03(%rip), %rsi     # 0x1d12e
leaq 0x60(%rsp), %rdi
leaq 0x20(%rsp), %rdx
callq 0x9c4a
movq %rsp, %rdi
leaq 0x60(%rsp), %rsi
callq 0x9dba
movq 0x8(%rax), %rax
movq %rax, 0xd0(%rsp)
leaq 0x60(%rsp), %rdi
callq 0x6130
leaq 0x13bc5(%rip), %rsi     # 0x1d129
leaq 0x60(%rsp), %rdi
leaq 0x20(%rsp), %rdx
callq 0x9c4a
movq %rbp, %r15
movq %rsp, %rdi
leaq 0x60(%rsp), %rsi
callq 0x9dba
movq 0x8(%rax), %rbp
leaq 0x60(%rsp), %rdi
callq 0x6130
leaq 0x13bbb(%rip), %rsi     # 0x1d153
leaq 0x20(%rsp), %rdi
leaq 0xa0(%rsp), %rdx
callq 0x9c4a
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
callq 0x9dba
movups (%rax), %xmm0
movups 0x10(%rax), %xmm1
movaps %xmm1, 0x70(%rsp)
movaps %xmm0, 0x60(%rsp)
leaq 0x20(%rsp), %rdi
callq 0x6130
leaq 0x13bf7(%rip), %rsi     # 0x1d1d0
leaq 0x20(%rsp), %rdi
leaq 0x8f(%rsp), %rdx
callq 0x9c4a
leaq 0x20(%rsp), %rsi
movq 0x90(%rsp), %rdi
callq 0x9be4
movq %rax, %r14
leaq 0x13bc5(%rip), %rsi     # 0x1d1cc
leaq 0xa0(%rsp), %rdi
leaq 0x8e(%rsp), %rdx
callq 0x9c4a
leaq 0x60(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
callq 0xbae2
movups (%r14), %xmm0
movups 0x10(%r14), %xmm1
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
leaq 0xa0(%rsp), %rdi
callq 0x6130
leaq 0x20(%rsp), %rdi
callq 0x6130
leaq 0x13b0b(%rip), %rsi     # 0x1d167
leaq 0x20(%rsp), %rdi
leaq 0xa0(%rsp), %rdx
callq 0x9c4a
leaq 0x20(%rsp), %rsi
movq %r15, %rdi
callq 0x9cca
movaps 0x40(%rsp), %xmm0
movaps 0x50(%rsp), %xmm1
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
leaq 0x20(%rsp), %rdi
callq 0x6130
leaq 0x13aca(%rip), %rsi     # 0x1d167
leaq 0x20(%rsp), %rdi
leaq 0xa0(%rsp), %rdx
callq 0x9c4a
leaq 0x20(%rsp), %rsi
movq %r12, %rdi
callq 0x9cca
movaps 0x40(%rsp), %xmm0
movaps 0x50(%rsp), %xmm1
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
leaq 0x20(%rsp), %rdi
callq 0x6130
leaq 0x13a89(%rip), %rsi     # 0x1d167
leaq 0x20(%rsp), %rdi
leaq 0xa0(%rsp), %rdx
callq 0x9c4a
leaq 0x20(%rsp), %rsi
movq %r13, %rdi
callq 0x9cca
movaps 0x40(%rsp), %xmm0
movaps 0x50(%rsp), %xmm1
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
leaq 0x20(%rsp), %rdi
callq 0x6130
leaq 0x13a48(%rip), %rsi     # 0x1d167
leaq 0x20(%rsp), %rdi
leaq 0xa0(%rsp), %rdx
callq 0x9c4a
leaq 0x20(%rsp), %rsi
movq %rbp, %rdi
callq 0x9cca
movaps 0x40(%rsp), %xmm0
movaps 0x50(%rsp), %xmm1
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
leaq 0x20(%rsp), %rdi
callq 0x6130
leaq 0x13a07(%rip), %rsi     # 0x1d167
leaq 0x20(%rsp), %rdi
leaq 0xa0(%rsp), %rdx
callq 0x9c4a
movq 0x68(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x9cca
movaps 0x40(%rsp), %xmm0
movaps 0x50(%rsp), %xmm1
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
leaq 0x20(%rsp), %rdi
callq 0x6130
leaq 0x139c4(%rip), %rsi     # 0x1d167
leaq 0x20(%rsp), %rdi
leaq 0xa0(%rsp), %rdx
callq 0x9c4a
leaq 0x20(%rsp), %rsi
movq 0xd8(%rsp), %rdi
callq 0x9cca
movq 0x98(%rsp), %rcx
movq %rcx, (%rax)
movq %r13, 0x8(%rax)
movaps 0xe0(%rsp), %xmm0
movups %xmm0, 0x10(%rax)
leaq 0x20(%rsp), %rdi
callq 0x6130
leaq 0x13974(%rip), %rsi     # 0x1d167
leaq 0x20(%rsp), %rdi
leaq 0xa0(%rsp), %rdx
callq 0x9c4a
leaq 0x20(%rsp), %rsi
movq 0xd0(%rsp), %rdi
callq 0x9cca
movq 0x98(%rsp), %rcx
movq %rcx, (%rax)
movq %r13, 0x8(%rax)
movaps 0xe0(%rsp), %xmm0
movups %xmm0, 0x10(%rax)
leaq 0x20(%rsp), %rdi
callq 0x6130
addq $0xf8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x989a
jmp 0x9942
jmp 0x989a
jmp 0x9942
jmp 0x989a
jmp 0x9942
jmp 0x989a
jmp 0x9942
jmp 0x989a
jmp 0x9942
jmp 0x989a
jmp 0x9942
jmp 0x989a
jmp 0x9942
movq %rax, %r13
leaq 0xa0(%rsp), %rdi
callq 0x6130
jmp 0x989d
jmp 0x989a
jmp 0x989a
jmp 0x9942
movq %rax, %r13
leaq 0x20(%rsp), %rdi
jmp 0x992f
jmp 0x9942
jmp 0x98cd
jmp 0x9942
jmp 0x98cd
jmp 0x9942
jmp 0x98cd
jmp 0x9942
jmp 0x98cd
jmp 0x9942
jmp 0x98cd
jmp 0x9942
jmp 0x98cd
jmp 0x9942
movq %rax, %r13
leaq 0x60(%rsp), %rdi
jmp 0x992f
jmp 0x9942
movq %rax, %r13
leaq 0x40(%rsp), %rdi
jmp 0x992f
jmp 0x9942
jmp 0x9929
jmp 0x9942
jmp 0x9929
jmp 0x9942
jmp 0x9929
jmp 0x9942
jmp 0x9929
jmp 0x9942
jmp 0x9929
jmp 0x9942
jmp 0x9929
jmp 0x9942
jmp 0x9929
jmp 0x9942
jmp 0x9929
jmp 0x9942
jmp 0x9929
jmp 0x9942
jmp 0x9929
jmp 0x9942
jmp 0x9929
jmp 0x9942
jmp 0x9929
jmp 0x9942
jmp 0x9929
jmp 0x9942
jmp 0x9929
jmp 0x9942
jmp 0x9929
jmp 0x9942
jmp 0x9929
jmp 0x9942
jmp 0x9929
jmp 0x9942
movq %rax, %r13
movq %rsp, %rdi
callq 0x6130
jmp 0x9945
jmp 0x9942
movq %rax, %r13
jmp 0x996b
movq %rax, %r13
jmp 0x995e
movq %rax, %r13
leaq 0x4e0(%rbx), %rdi
callq 0x6130
movq 0x90(%rsp), %rdi
callq 0x7840
movq 0xc0(%rsp), %rdi
callq 0x78a4
movq 0xc8(%rsp), %rdi
callq 0x78fc
movq %rbx, %rdi
callq 0x780a
movq %r13, %rdi
callq 0x6460