segment .data
switch: dq      main.case0
        dq      main.case1
        dq      main.case2
        dq      main.case3

i:      dq      2

        segment .text
        global  main                ; let the linker know about main
main:
        push    rbp
        mov     rbp, rsp
        sub     rsp, 32
        mov     rax, [i]
        jmp     [switch+rax*8]
.case0:
        mov     rbx, 100
        jmp     .end
.case1:
        mov     rbx, 101
        jmp     .end
.case2:
        mov     rbx, 102
        jmp     .end
.case3:
        mov     rbx, 103
        jmp     .end
.end:
        xor     eax, eax
        leave
        ret