// File: /workspace/github_c_makefile_star2_O0/janet-lang[P]janet/src/core/value.c
// Function: push_traversal_node
static void push_traversal_node(void *lhs, void *rhs, int32_t index2) {
    JanetTraversalNode node;
    node.self = (JanetGCObject *) lhs;
    node.other = (JanetGCObject *) rhs;
    node.index = 0;
    node.index2 = index2;
    int is_new = janet_vm.traversal_base == NULL;
    if (is_new || (janet_vm.traversal + 1 >= janet_vm.traversal_top)) {
        size_t oldsize = is_new ? 0 : (janet_vm.traversal - janet_vm.traversal_base);
        size_t newsize = 2 * oldsize + 1;
        if (newsize < 128) {
            newsize = 128;
        }
        JanetTraversalNode *tn = janet_realloc(janet_vm.traversal_base, newsize * sizeof(JanetTraversalNode));
        if (tn == NULL) {
            JANET_OUT_OF_MEMORY;
        }
        janet_vm.traversal_base = tn;
        janet_vm.traversal_top = janet_vm.traversal_base + newsize;
        janet_vm.traversal = janet_vm.traversal_base + oldsize;
    }
    *(++janet_vm.traversal) = node;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x28(%rbp)
movl $0x0, -0x20(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x1c(%rbp)
movq %fs:0x0, %rax
leaq -0x348(%rax), %rax
cmpq $0x0, 0x118(%rax)
sete %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x34(%rbp)
cmpl $0x0, -0x34(%rbp)
jne 0x6ea2f
movq %fs:0x0, %rax
leaq -0x348(%rax), %rax
movq 0x108(%rax), %rax
addq $0x18, %rax
movq %rax, -0x58(%rbp)
movq %fs:0x0, %rax
leaq -0x348(%rax), %rax
movq %rax, %rcx
movq -0x58(%rbp), %rax
cmpq 0x110(%rcx), %rax
jb 0x6ebab
cmpl $0x0, -0x34(%rbp)
je 0x6ea3d
xorl %eax, %eax
movq %rax, -0x60(%rbp)
jmp 0x6ea87
movq %fs:0x0, %rax
leaq -0x348(%rax), %rax
movq 0x108(%rax), %rax
movq %rax, -0x68(%rbp)
movq %fs:0x0, %rax
leaq -0x348(%rax), %rax
movq %rax, %rcx
movq -0x68(%rbp), %rax
movq 0x118(%rcx), %rcx
subq %rcx, %rax
movl $0x18, %ecx
cqto
idivq %rcx
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
shlq %rax
addq $0x1, %rax
movq %rax, -0x48(%rbp)
cmpq $0x80, -0x48(%rbp)
jae 0x6eab0
movq $0x80, -0x48(%rbp)
movq %fs:0x0, %rax
leaq -0x348(%rax), %rax
movq 0x118(%rax), %rdi
imulq $0x18, -0x48(%rbp), %rsi
callq 0x12840
movq %rax, -0x50(%rbp)
cmpq $0x0, -0x50(%rbp)
jne 0x6eb0c
jmp 0x6eade
movq 0x4150b(%rip), %rax     # 0xafff0
movq (%rax), %rdi
leaq 0xf515(%rip), %rsi      # 0x7e004
leaq 0x2a2ad(%rip), %rdx     # 0x98da3
movl $0x31, %ecx
movb $0x0, %al
callq 0x125f0
movl $0x1, %edi
callq 0x12a70
movq -0x50(%rbp), %rax
movq %rax, -0x80(%rbp)
movq %fs:0x0, %rax
leaq -0x348(%rax), %rax
movq -0x80(%rbp), %rcx
movq %rcx, 0x118(%rax)
movq %fs:0x0, %rax
leaq -0x348(%rax), %rax
movq 0x118(%rax), %rax
imulq $0x18, -0x48(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x78(%rbp)
movq %fs:0x0, %rax
leaq -0x348(%rax), %rax
movq -0x78(%rbp), %rcx
movq %rcx, 0x110(%rax)
movq %fs:0x0, %rax
leaq -0x348(%rax), %rax
movq 0x118(%rax), %rax
imulq $0x18, -0x40(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x70(%rbp)
movq %fs:0x0, %rax
leaq -0x348(%rax), %rax
movq -0x70(%rbp), %rcx
movq %rcx, 0x108(%rax)
movq %fs:0x0, %rax
leaq -0x348(%rax), %rax
movq %rax, %rcx
movq 0x108(%rcx), %rax
movq %rax, %rdx
addq $0x18, %rdx
movq %rdx, 0x108(%rcx)
movq -0x30(%rbp), %rcx
movq %rcx, 0x18(%rax)
movq -0x28(%rbp), %rcx
movq %rcx, 0x20(%rax)
movq -0x20(%rbp), %rcx
movq %rcx, 0x28(%rax)
addq $0x80, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)