// File: s0sasaki[P]ExecutableBlockchain/vm.cpp
// Function: VM::VM()
VM::VM(){
    func_table[OP_RET  ] = &VM::funcOpRet   ;
    func_table[OP_CALL ] = &VM::funcOpCall  ;
    func_table[OP_JMP  ] = &VM::funcOpJmp   ;
    func_table[OP_JZ   ] = &VM::funcOpJz    ;
    func_table[OP_EQ   ] = &VM::funcOpEq    ;
    func_table[OP_GE   ] = &VM::funcOpGe    ;
    func_table[OP_LE   ] = &VM::funcOpLe    ;
    func_table[OP_GNE  ] = &VM::funcOpGne   ;
    func_table[OP_LNE  ] = &VM::funcOpLne   ;
    func_table[OP_PUSH ] = &VM::funcOpPush  ;
    func_table[OP_DROP ] = &VM::funcOpDrop  ;
    func_table[OP_POP  ] = &VM::funcOpPop   ;
    func_table[OP_DUP  ] = &VM::funcOpDup   ;
    func_table[OP_OVER ] = &VM::funcOpOver  ;
    func_table[OP_SWAP ] = &VM::funcOpSwap  ;
    func_table[OP_ADD  ] = &VM::funcOpAdd   ;
    func_table[OP_SUB  ] = &VM::funcOpSub   ;
    func_table[OP_MUL  ] = &VM::funcOpMul   ;
    func_table[OP_DIV  ] = &VM::funcOpDiv   ;
    func_table[OP_DOT  ] = &VM::funcOpDot   ;
    func_table[OP_HALT ] = &VM::funcOpHalt  ;
    func_table[OP_NOP  ] = &VM::funcOpNop   ;
    func_table[OP_LOAD ] = &VM::funcOpLoad  ;
    func_table[OP_STORE] = &VM::funcOpStore ;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
leaq 0x25d(%rip), %rcx       # 0xa770
movq %rcx, 0x5020(%rax)
movq $0x0, 0x5028(%rax)
leaq 0x2a4(%rip), %rcx       # 0xa7d0
movq %rcx, 0x5030(%rax)
movq $0x0, 0x5038(%rax)
leaq 0x2fb(%rip), %rcx       # 0xa840
movq %rcx, 0x5040(%rax)
movq $0x0, 0x5048(%rax)
leaq 0x302(%rip), %rcx       # 0xa860
movq %rcx, 0x5050(%rax)
movq $0x0, 0x5058(%rax)
leaq 0x339(%rip), %rcx       # 0xa8b0
movq %rcx, 0x5060(%rax)
movq $0x0, 0x5068(%rax)
leaq 0x370(%rip), %rcx       # 0xa900
movq %rcx, 0x5070(%rax)
movq $0x0, 0x5078(%rax)
leaq 0x3a7(%rip), %rcx       # 0xa950
movq %rcx, 0x5080(%rax)
movq $0x0, 0x5088(%rax)
leaq 0x3de(%rip), %rcx       # 0xa9a0
movq %rcx, 0x5090(%rax)
movq $0x0, 0x5098(%rax)
leaq 0x415(%rip), %rcx       # 0xa9f0
movq %rcx, 0x50a0(%rax)
movq $0x0, 0x50a8(%rax)
leaq 0x44c(%rip), %rcx       # 0xaa40
movq %rcx, 0x50b0(%rax)
movq $0x0, 0x50b8(%rax)
leaq 0x473(%rip), %rcx       # 0xaa80
movq %rcx, 0x5100(%rax)
movq $0x0, 0x5108(%rax)
leaq 0x47a(%rip), %rcx       # 0xaaa0
movq %rcx, 0x50c0(%rax)
movq $0x0, 0x50c8(%rax)
leaq 0x481(%rip), %rcx       # 0xaac0
movq %rcx, 0x50d0(%rax)
movq $0x0, 0x50d8(%rax)
leaq 0x4a8(%rip), %rcx       # 0xab00
movq %rcx, 0x50e0(%rax)
movq $0x0, 0x50e8(%rax)
leaq 0x4cf(%rip), %rcx       # 0xab40
movq %rcx, 0x50f0(%rax)
movq $0x0, 0x50f8(%rax)
leaq 0x506(%rip), %rcx       # 0xab90
movq %rcx, 0x5110(%rax)
movq $0x0, 0x5118(%rax)
leaq 0x52d(%rip), %rcx       # 0xabd0
movq %rcx, 0x5120(%rax)
movq $0x0, 0x5128(%rax)
leaq 0x554(%rip), %rcx       # 0xac10
movq %rcx, 0x5130(%rax)
movq $0x0, 0x5138(%rax)
leaq 0x57b(%rip), %rcx       # 0xac50
movq %rcx, 0x5140(%rax)
movq $0x0, 0x5148(%rax)
leaq 0x5b2(%rip), %rcx       # 0xaca0
movq %rcx, 0x5150(%rax)
movq $0x0, 0x5158(%rax)
leaq 0x5d9(%rip), %rcx       # 0xace0
movq %rcx, 0x5160(%rax)
movq $0x0, 0x5168(%rax)
leaq 0x5e0(%rip), %rcx       # 0xad00
movq %rcx, 0x5170(%rax)
movq $0x0, 0x5178(%rax)
leaq 0x5d7(%rip), %rcx       # 0xad10
movq %rcx, 0x5180(%rax)
movq $0x0, 0x5188(%rax)
leaq 0x5ee(%rip), %rcx       # 0xad40
movq %rcx, 0x5190(%rax)
movq $0x0, 0x5198(%rax)
popq %rbp
retq
nopw %cs:(%rax,%rax)