// File: /workspace/github_c_makefile_star2_O0/janet-lang[P]janet/src/boot/table_test.c
// Function: table_test
int table_test() {

    JanetTable *t1, *t2;

    t1 = janet_table(10);
    t2 = janet_table(0);

    janet_table_put(t1, janet_cstringv("hello"), janet_wrap_integer(2));
    janet_table_put(t1, janet_cstringv("akey"), janet_wrap_integer(5));
    janet_table_put(t1, janet_cstringv("box"), janet_wrap_boolean(0));
    janet_table_put(t1, janet_cstringv("square"), janet_cstringv("avalue"));

    assert(t1->count == 4);
    assert(t1->capacity >= t1->count);

    assert(janet_equals(janet_table_get(t1, janet_cstringv("hello")), janet_wrap_integer(2)));
    assert(janet_equals(janet_table_get(t1, janet_cstringv("akey")), janet_wrap_integer(5)));
    assert(janet_equals(janet_table_get(t1, janet_cstringv("box")), janet_wrap_boolean(0)));
    assert(janet_equals(janet_table_get(t1, janet_cstringv("square")), janet_cstringv("avalue")));

    janet_table_remove(t1, janet_cstringv("hello"));
    janet_table_put(t1, janet_cstringv("box"), janet_wrap_nil());

    assert(t1->count == 2);

    assert(janet_equals(janet_table_get(t1, janet_cstringv("hello")), janet_wrap_nil()));
    assert(janet_equals(janet_table_get(t1, janet_cstringv("box")), janet_wrap_nil()));

    janet_table_put(t2, janet_csymbolv("t2key1"), janet_wrap_integer(10));
    janet_table_put(t2, janet_csymbolv("t2key2"), janet_wrap_integer(100));
    janet_table_put(t2, janet_csymbolv("some key "), janet_wrap_integer(-2));
    janet_table_put(t2, janet_csymbolv("a thing"), janet_wrap_integer(10));

    assert(janet_equals(janet_table_get(t2, janet_csymbolv("t2key1")), janet_wrap_integer(10)));
    assert(janet_equals(janet_table_get(t2, janet_csymbolv("t2key2")), janet_wrap_integer(100)));

    assert(t2->count == 4);
    assert(janet_equals(janet_table_remove(t2, janet_csymbolv("t2key1")), janet_wrap_integer(10)));
    assert(t2->count == 3);
    assert(janet_equals(janet_table_remove(t2, janet_csymbolv("t2key2")), janet_wrap_integer(100)));
    assert(t2->count == 2);

    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x240, %rsp            # imm = 0x240
movl $0xa, %edi
callq 0x692f0
movq %rax, -0x8(%rbp)
xorl %edi, %edi
callq 0x692f0
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x1c0(%rbp)
leaq 0x1cc2a(%rip), %rdi     # 0x99a00
callq 0x64a70
movq %rax, %rdi
movabsq $-0x6000000000000, %rsi # imm = 0xFFFA000000000000
callq 0x7b550
movq %rax, -0x18(%rbp)
movsd 0x1cbef(%rip), %xmm0    # 0x999e8
callq 0x7b820
movq -0x1c0(%rbp), %rdi
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x697e0
movq -0x8(%rbp), %rax
movq %rax, -0x1b8(%rbp)
leaq 0x1cbde(%rip), %rdi     # 0x99a06
callq 0x64a70
movq %rax, %rdi
movabsq $-0x6000000000000, %rsi # imm = 0xFFFA000000000000
callq 0x7b550
movq %rax, -0x28(%rbp)
movsd 0x1cb95(%rip), %xmm0    # 0x999e0
callq 0x7b820
movq -0x1b8(%rbp), %rdi
movq %rax, -0x30(%rbp)
movq -0x28(%rbp), %rsi
movq -0x30(%rbp), %rdx
callq 0x697e0
movq -0x8(%rbp), %rax
movq %rax, -0x1b0(%rbp)
leaq 0x1c122(%rip), %rdi     # 0x98f9c
callq 0x64a70
movq %rax, %rdi
movabsq $-0x6000000000000, %rsi # imm = 0xFFFA000000000000
callq 0x7b550
movq %rax, -0x38(%rbp)
movabsq $-0x7000000000000, %rdi # imm = 0xFFF9000000000000
callq 0x7b460
movq -0x1b0(%rbp), %rdi
movq %rax, -0x40(%rbp)
movq -0x38(%rbp), %rsi
movq -0x40(%rbp), %rdx
callq 0x697e0
movq -0x8(%rbp), %rax
movq %rax, -0x1a8(%rbp)
leaq 0x1cb3d(%rip), %rdi     # 0x99a0b
callq 0x64a70
movq %rax, %rdi
movabsq $-0x6000000000000, %rsi # imm = 0xFFFA000000000000
callq 0x7b550
movq %rax, -0x48(%rbp)
leaq 0x1cb22(%rip), %rdi     # 0x99a12
callq 0x64a70
movq %rax, %rdi
movabsq $-0x6000000000000, %rsi # imm = 0xFFFA000000000000
callq 0x7b550
movq -0x1a8(%rbp), %rdi
movq %rax, -0x50(%rbp)
movq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdx
callq 0x697e0
movq -0x8(%rbp), %rax
cmpl $0x4, 0x10(%rax)
jne 0x7cf2b
jmp 0x7cf4a
leaq 0x1cae7(%rip), %rdi     # 0x99a19
leaq 0x1caef(%rip), %rsi     # 0x99a28
movl $0x28, %edx
leaq 0x1caf9(%rip), %rcx     # 0x99a3e
callq 0x123f0
movq -0x8(%rbp), %rax
movl 0x14(%rax), %eax
movq -0x8(%rbp), %rcx
cmpl 0x10(%rcx), %eax
jl 0x7cf5c
jmp 0x7cf7b
leaq 0x1caec(%rip), %rdi     # 0x99a4f
leaq 0x1cabe(%rip), %rsi     # 0x99a28
movl $0x29, %edx
leaq 0x1cac8(%rip), %rcx     # 0x99a3e
callq 0x123f0
movq -0x8(%rbp), %rax
movq %rax, -0x1c8(%rbp)
leaq 0x1ca73(%rip), %rdi     # 0x99a00
callq 0x64a70
movq %rax, %rdi
movabsq $-0x6000000000000, %rsi # imm = 0xFFFA000000000000
callq 0x7b550
movq -0x1c8(%rbp), %rdi
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rsi
callq 0x69420
movq %rax, -0x58(%rbp)
movsd 0x1ca24(%rip), %xmm0    # 0x999e8
callq 0x7b820
movq %rax, -0x68(%rbp)
movq -0x58(%rbp), %rdi
movq -0x68(%rbp), %rsi
callq 0x6e560
cmpl $0x0, %eax
je 0x7cfe1
jmp 0x7d000
leaq 0x1ca81(%rip), %rdi     # 0x99a69
leaq 0x1ca39(%rip), %rsi     # 0x99a28
movl $0x2b, %edx
leaq 0x1ca43(%rip), %rcx     # 0x99a3e
callq 0x123f0
movq -0x8(%rbp), %rax
movq %rax, -0x1d0(%rbp)
leaq 0x1c9f4(%rip), %rdi     # 0x99a06
callq 0x64a70
movq %rax, %rdi
movabsq $-0x6000000000000, %rsi # imm = 0xFFFA000000000000
callq 0x7b550
movq -0x1d0(%rbp), %rdi
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rsi
callq 0x69420
movq %rax, -0x70(%rbp)
movsd 0x1c997(%rip), %xmm0    # 0x999e0
callq 0x7b820
movq %rax, -0x80(%rbp)
movq -0x70(%rbp), %rdi
movq -0x80(%rbp), %rsi
callq 0x6e560
cmpl $0x0, %eax
je 0x7d066
jmp 0x7d085
leaq 0x1ca4e(%rip), %rdi     # 0x99abb
leaq 0x1c9b4(%rip), %rsi     # 0x99a28
movl $0x2c, %edx
leaq 0x1c9be(%rip), %rcx     # 0x99a3e
callq 0x123f0
movq -0x8(%rbp), %rax
movq %rax, -0x1d8(%rbp)
leaq 0x1bf05(%rip), %rdi     # 0x98f9c
callq 0x64a70
movq %rax, %rdi
movabsq $-0x6000000000000, %rsi # imm = 0xFFFA000000000000
callq 0x7b550
movq -0x1d8(%rbp), %rdi
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rsi
callq 0x69420
movq %rax, -0x88(%rbp)
movabsq $-0x7000000000000, %rdi # imm = 0xFFF9000000000000
callq 0x7b460
movq %rax, -0x98(%rbp)
movq -0x88(%rbp), %rdi
movq -0x98(%rbp), %rsi
callq 0x6e560
cmpl $0x0, %eax
je 0x7d0ff
jmp 0x7d11e
leaq 0x1ca06(%rip), %rdi     # 0x99b0c
leaq 0x1c91b(%rip), %rsi     # 0x99a28
movl $0x2d, %edx
leaq 0x1c925(%rip), %rcx     # 0x99a3e
callq 0x123f0
movq -0x8(%rbp), %rax
movq %rax, -0x1e0(%rbp)
leaq 0x1c8db(%rip), %rdi     # 0x99a0b
callq 0x64a70
movq %rax, %rdi
movabsq $-0x6000000000000, %rsi # imm = 0xFFFA000000000000
callq 0x7b550
movq -0x1e0(%rbp), %rdi
movq %rax, -0xa8(%rbp)
movq -0xa8(%rbp), %rsi
callq 0x69420
movq %rax, -0xa0(%rbp)
leaq 0x1c8a3(%rip), %rdi     # 0x99a12
callq 0x64a70
movq %rax, %rdi
movabsq $-0x6000000000000, %rsi # imm = 0xFFFA000000000000
callq 0x7b550
movq %rax, -0xb0(%rbp)
movq -0xa0(%rbp), %rdi
movq -0xb0(%rbp), %rsi
callq 0x6e560
cmpl $0x0, %eax
je 0x7d1a7
jmp 0x7d1c6
leaq 0x1c9ae(%rip), %rdi     # 0x99b5c
leaq 0x1c873(%rip), %rsi     # 0x99a28
movl $0x2e, %edx
leaq 0x1c87d(%rip), %rcx     # 0x99a3e
callq 0x123f0
movq -0x8(%rbp), %rax
movq %rax, -0x1f0(%rbp)
leaq 0x1c828(%rip), %rdi     # 0x99a00
callq 0x64a70
movq %rax, %rdi
movabsq $-0x6000000000000, %rsi # imm = 0xFFFA000000000000
callq 0x7b550
movq -0x1f0(%rbp), %rdi
movq %rax, -0xb8(%rbp)
movq -0xb8(%rbp), %rsi
callq 0x696c0
movq %rax, -0xc0(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x1e8(%rbp)
leaq 0x1bd7a(%rip), %rdi     # 0x98f9c
callq 0x64a70
movq %rax, %rdi
movabsq $-0x6000000000000, %rsi # imm = 0xFFFA000000000000
callq 0x7b550
movq %rax, -0xc8(%rbp)
movabsq $-0x77fffffffffff, %rdi # imm = 0xFFF8800000000001
callq 0x7b460
movq -0x1e8(%rbp), %rdi
movq %rax, -0xd0(%rbp)
movq -0xc8(%rbp), %rsi
movq -0xd0(%rbp), %rdx
callq 0x697e0
movq -0x8(%rbp), %rax
cmpl $0x2, 0x10(%rax)
jne 0x7d27c
jmp 0x7d29b
leaq 0x1c92f(%rip), %rdi     # 0x99bb2
leaq 0x1c79e(%rip), %rsi     # 0x99a28
movl $0x33, %edx
leaq 0x1c7a8(%rip), %rcx     # 0x99a3e
callq 0x123f0
movq -0x8(%rbp), %rax
movq %rax, -0x1f8(%rbp)
leaq 0x1c753(%rip), %rdi     # 0x99a00
callq 0x64a70
movq %rax, %rdi
movabsq $-0x6000000000000, %rsi # imm = 0xFFFA000000000000
callq 0x7b550
movq -0x1f8(%rbp), %rdi
movq %rax, -0xe0(%rbp)
movq -0xe0(%rbp), %rsi
callq 0x69420
movq %rax, -0xd8(%rbp)
movabsq $-0x77fffffffffff, %rdi # imm = 0xFFF8800000000001
callq 0x7b460
movq %rax, -0xe8(%rbp)
movq -0xd8(%rbp), %rdi
movq -0xe8(%rbp), %rsi
callq 0x6e560
cmpl $0x0, %eax
je 0x7d315
jmp 0x7d334
leaq 0x1c8a5(%rip), %rdi     # 0x99bc1
leaq 0x1c705(%rip), %rsi     # 0x99a28
movl $0x35, %edx
leaq 0x1c70f(%rip), %rcx     # 0x99a3e
callq 0x123f0
movq -0x8(%rbp), %rax
movq %rax, -0x200(%rbp)
leaq 0x1bc56(%rip), %rdi     # 0x98f9c
callq 0x64a70
movq %rax, %rdi
movabsq $-0x6000000000000, %rsi # imm = 0xFFFA000000000000
callq 0x7b550
movq -0x200(%rbp), %rdi
movq %rax, -0xf8(%rbp)
movq -0xf8(%rbp), %rsi
callq 0x69420
movq %rax, -0xf0(%rbp)
movabsq $-0x77fffffffffff, %rdi # imm = 0xFFF8800000000001
callq 0x7b460
movq %rax, -0x100(%rbp)
movq -0xf0(%rbp), %rdi
movq -0x100(%rbp), %rsi
callq 0x6e560
cmpl $0x0, %eax
je 0x7d3ae
jmp 0x7d3cd
leaq 0x1c859(%rip), %rdi     # 0x99c0e
leaq 0x1c66c(%rip), %rsi     # 0x99a28
movl $0x36, %edx
leaq 0x1c676(%rip), %rcx     # 0x99a3e
callq 0x123f0
movq -0x10(%rbp), %rax
movq %rax, -0x228(%rbp)
leaq 0x1c87a(%rip), %rdi     # 0x99c59
callq 0x68d90
movq %rax, %rdi
movabsq $-0x5800000000000, %rsi # imm = 0xFFFA800000000000
callq 0x7b550
movq %rax, -0x108(%rbp)
movsd 0x1c5eb(%rip), %xmm0    # 0x999f0
callq 0x7b820
movq -0x228(%rbp), %rdi
movq %rax, -0x110(%rbp)
movq -0x108(%rbp), %rsi
movq -0x110(%rbp), %rdx
callq 0x697e0
movq -0x10(%rbp), %rax
movq %rax, -0x220(%rbp)
leaq 0x1c823(%rip), %rdi     # 0x99c60
callq 0x68d90
movq %rax, %rdi
movabsq $-0x5800000000000, %rsi # imm = 0xFFFA800000000000
callq 0x7b550
movq %rax, -0x118(%rbp)
movsd 0x1c595(%rip), %xmm0    # 0x999f8
callq 0x7b820
movq -0x220(%rbp), %rdi
movq %rax, -0x120(%rbp)
movq -0x118(%rbp), %rsi
movq -0x120(%rbp), %rdx
callq 0x697e0
movq -0x10(%rbp), %rax
movq %rax, -0x218(%rbp)
leaq 0x1c7cc(%rip), %rdi     # 0x99c67
callq 0x68d90
movq %rax, %rdi
movabsq $-0x5800000000000, %rsi # imm = 0xFFFA800000000000
callq 0x7b550
movq %rax, -0x128(%rbp)
movsd 0x1c18f(%rip), %xmm0    # 0x99650
callq 0x7b820
movq -0x218(%rbp), %rdi
movq %rax, -0x130(%rbp)
movq -0x128(%rbp), %rsi
movq -0x130(%rbp), %rdx
callq 0x697e0
movq -0x10(%rbp), %rax
movq %rax, -0x210(%rbp)
leaq 0x1c778(%rip), %rdi     # 0x99c71
callq 0x68d90
movq %rax, %rdi
movabsq $-0x5800000000000, %rsi # imm = 0xFFFA800000000000
callq 0x7b550
movq %rax, -0x138(%rbp)
movsd 0x1c4d1(%rip), %xmm0    # 0x999f0
callq 0x7b820
movq -0x210(%rbp), %rdi
movq %rax, -0x140(%rbp)
movq -0x138(%rbp), %rsi
movq -0x140(%rbp), %rdx
callq 0x697e0
movq -0x10(%rbp), %rax
movq %rax, -0x208(%rbp)
leaq 0x1c702(%rip), %rdi     # 0x99c59
callq 0x68d90
movq %rax, %rdi
movabsq $-0x5800000000000, %rsi # imm = 0xFFFA800000000000
callq 0x7b550
movq -0x208(%rbp), %rdi
movq %rax, -0x150(%rbp)
movq -0x150(%rbp), %rsi
callq 0x69420
movq %rax, -0x148(%rbp)
movsd 0x1c459(%rip), %xmm0    # 0x999f0
callq 0x7b820
movq %rax, -0x158(%rbp)
movq -0x148(%rbp), %rdi
movq -0x158(%rbp), %rsi
callq 0x6e560
cmpl $0x0, %eax
je 0x7d5bd
jmp 0x7d5dc
leaq 0x1c6b5(%rip), %rdi     # 0x99c79
leaq 0x1c45d(%rip), %rsi     # 0x99a28
movl $0x3d, %edx
leaq 0x1c467(%rip), %rcx     # 0x99a3e
callq 0x123f0
movq -0x10(%rbp), %rax
movq %rax, -0x230(%rbp)
leaq 0x1c672(%rip), %rdi     # 0x99c60
callq 0x68d90
movq %rax, %rdi
movabsq $-0x5800000000000, %rsi # imm = 0xFFFA800000000000
callq 0x7b550
movq -0x230(%rbp), %rdi
movq %rax, -0x168(%rbp)
movq -0x168(%rbp), %rsi
callq 0x69420
movq %rax, -0x160(%rbp)
movsd 0x1c3ca(%rip), %xmm0    # 0x999f8
callq 0x7b820
movq %rax, -0x170(%rbp)
movq -0x160(%rbp), %rdi
movq -0x170(%rbp), %rsi
callq 0x6e560
cmpl $0x0, %eax
je 0x7d654
jmp 0x7d673
leaq 0x1c672(%rip), %rdi     # 0x99ccd
leaq 0x1c3c6(%rip), %rsi     # 0x99a28
movl $0x3e, %edx
leaq 0x1c3d0(%rip), %rcx     # 0x99a3e
callq 0x123f0
movq -0x10(%rbp), %rax
cmpl $0x4, 0x10(%rax)
jne 0x7d67f
jmp 0x7d69e
leaq 0x1c69c(%rip), %rdi     # 0x99d22
leaq 0x1c39b(%rip), %rsi     # 0x99a28
movl $0x40, %edx
leaq 0x1c3a5(%rip), %rcx     # 0x99a3e
callq 0x123f0
movq -0x10(%rbp), %rax
movq %rax, -0x238(%rbp)
leaq 0x1c5a9(%rip), %rdi     # 0x99c59
callq 0x68d90
movq %rax, %rdi
movabsq $-0x5800000000000, %rsi # imm = 0xFFFA800000000000
callq 0x7b550
movq -0x238(%rbp), %rdi
movq %rax, -0x180(%rbp)
movq -0x180(%rbp), %rsi
callq 0x696c0
movq %rax, -0x178(%rbp)
movsd 0x1c300(%rip), %xmm0    # 0x999f0
callq 0x7b820
movq %rax, -0x188(%rbp)
movq -0x178(%rbp), %rdi
movq -0x188(%rbp), %rsi
callq 0x6e560
cmpl $0x0, %eax
je 0x7d716
jmp 0x7d735
leaq 0x1c614(%rip), %rdi     # 0x99d31
leaq 0x1c304(%rip), %rsi     # 0x99a28
movl $0x41, %edx
leaq 0x1c30e(%rip), %rcx     # 0x99a3e
callq 0x123f0
movq -0x10(%rbp), %rax
cmpl $0x3, 0x10(%rax)
jne 0x7d741
jmp 0x7d760
leaq 0x1c640(%rip), %rdi     # 0x99d88
leaq 0x1c2d9(%rip), %rsi     # 0x99a28
movl $0x42, %edx
leaq 0x1c2e3(%rip), %rcx     # 0x99a3e
callq 0x123f0
movq -0x10(%rbp), %rax
movq %rax, -0x240(%rbp)
leaq 0x1c4ee(%rip), %rdi     # 0x99c60
callq 0x68d90
movq %rax, %rdi
movabsq $-0x5800000000000, %rsi # imm = 0xFFFA800000000000
callq 0x7b550
movq -0x240(%rbp), %rdi
movq %rax, -0x198(%rbp)
movq -0x198(%rbp), %rsi
callq 0x696c0
movq %rax, -0x190(%rbp)
movsd 0x1c246(%rip), %xmm0    # 0x999f8
callq 0x7b820
movq %rax, -0x1a0(%rbp)
movq -0x190(%rbp), %rdi
movq -0x1a0(%rbp), %rsi
callq 0x6e560
cmpl $0x0, %eax
je 0x7d7d8
jmp 0x7d7f7
leaq 0x1c5b8(%rip), %rdi     # 0x99d97
leaq 0x1c242(%rip), %rsi     # 0x99a28
movl $0x43, %edx
leaq 0x1c24c(%rip), %rcx     # 0x99a3e
callq 0x123f0
movq -0x10(%rbp), %rax
cmpl $0x2, 0x10(%rax)
jne 0x7d803
jmp 0x7d822
leaq 0x1c5e5(%rip), %rdi     # 0x99def
leaq 0x1c217(%rip), %rsi     # 0x99a28
movl $0x44, %edx
leaq 0x1c221(%rip), %rcx     # 0x99a3e
callq 0x123f0
xorl %eax, %eax
addq $0x240, %rsp            # imm = 0x240
popq %rbp
retq