LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/pje[P]pixelsort/sorting.c
// Function: light_run_processor
void light_run_processor(pixel_t * pixels, const sort_plan_t * plan) {
    const int length = plan->run_length, threshold = plan->context_ptr->threshold;
    pixel_t * cursor = pixels;
    while(length > (cursor - pixels)) {
        pixel_t * start = cursor + get_first_non_light(cursor, plan->sort_val_fn, length - (cursor - pixels), threshold);
        pixel_t * end = start + get_first_light(start, plan->sort_val_fn, length - (start - pixels), threshold);
        sort_run(start, end - start, plan->compare_fn);
        cursor = end;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x10(%rax), %rax
movl %eax, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x20(%rbp)
movslq -0x14(%rbp), %rax
movq -0x20(%rbp), %rcx
movq -0x8(%rbp), %rdx
subq %rdx, %rcx
sarq $0x2, %rcx
cmpq %rcx, %rax
jle 0x120ee
movq -0x20(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x20(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rsi
movslq -0x14(%rbp), %rax
movq -0x20(%rbp), %rcx
movq -0x8(%rbp), %rdx
subq %rdx, %rcx
sarq $0x2, %rcx
subq %rcx, %rax
movl %eax, %edx
movslq -0x18(%rbp), %rcx
callq 0x12100
movl %eax, %ecx
movq -0x40(%rbp), %rax
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x28(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rsi
movslq -0x14(%rbp), %rax
movq -0x28(%rbp), %rcx
movq -0x8(%rbp), %rdx
subq %rdx, %rcx
sarq $0x2, %rcx
subq %rcx, %rax
movl %eax, %edx
movslq -0x18(%rbp), %rcx
callq 0x12180
movl %eax, %ecx
movq -0x38(%rbp), %rax
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, -0x30(%rbp)
movq -0x28(%rbp), %rdi
movq -0x30(%rbp), %rax
movq -0x28(%rbp), %rcx
subq %rcx, %rax
sarq $0x2, %rax
movl %eax, %esi
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rdx
callq 0x11fb0
movq -0x30(%rbp), %rax
movq %rax, -0x20(%rbp)
jmp 0x12011
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/pje[P]pixelsort/sorting.c
// Function: max_val
VAL_FN MAX_VAL(const pixel_t * a) {
    int max = -1;
    for(int c = 0, len = CHANNELS; c < len; ++c) {
        if(((unsigned char *)a)[c] > max) max = ((unsigned char *)a)[c];
    }
    return max;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movl $0xffffffff, -0xc(%rbp) # imm = 0xFFFFFFFF
movl $0x0, -0x10(%rbp)
movl $0x3, -0x14(%rbp)
movl -0x10(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x123e2
movq -0x8(%rbp), %rax
movslq -0x10(%rbp), %rcx
movzbl (%rax,%rcx), %eax
cmpl -0xc(%rbp), %eax
jle 0x123d5
movq -0x8(%rbp), %rax
movslq -0x10(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, -0xc(%rbp)
jmp 0x123d7
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x123ad
movl -0xc(%rbp), %eax
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/pje[P]pixelsort/sorting.c
// Function: min_val
VAL_FN MIN_VAL(const pixel_t * a) {
    int min = 256;
    for(int c = 0, len = CHANNELS; c < len; ++c) {
        if(((unsigned char *)a)[c] < min) min = ((unsigned char *)a)[c];
    }
    return min;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movl $0x100, -0xc(%rbp)      # imm = 0x100
movl $0x0, -0x10(%rbp)
movl $0x3, -0x14(%rbp)
movl -0x10(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x12482
movq -0x8(%rbp), %rax
movslq -0x10(%rbp), %rcx
movzbl (%rax,%rcx), %eax
cmpl -0xc(%rbp), %eax
jge 0x12475
movq -0x8(%rbp), %rax
movslq -0x10(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, -0xc(%rbp)
jmp 0x12477
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x1244d
movl -0xc(%rbp), %eax
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/vendor/termbox2/termbox2.h
// Function: tb_init_file
int tb_init_file(const char *path) {
    if (global.initialized) {
        return TB_ERR_INIT_ALREADY;
    }
    int ttyfd = open(path, O_RDWR);
    if (ttyfd < 0) {
        global.last_errno = errno;
        return TB_ERR_INIT_OPEN;
    }
    global.ttyfd_open = 1;
    return tb_init_fd(ttyfd);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
cmpl $0x0, 0x35979(%rip)     # 0x3c0bc
je 0x674e
movl $0xfffffffd, -0x4(%rbp) # imm = 0xFFFFFFFD
jmp 0x6792
movq -0x10(%rbp), %rdi
movl $0x2, %esi
movb $0x0, %al
callq 0x64e0
movl %eax, -0x14(%rbp)
cmpl $0x0, -0x14(%rbp)
jge 0x677d
callq 0x6060
movl (%rax), %eax
movl %eax, 0x35944(%rip)     # 0x3c0b8
movl $0xfffffffc, -0x4(%rbp) # imm = 0xFFFFFFFC
jmp 0x6792
movl $0x1, 0x3571d(%rip)     # 0x3bea4
movl -0x14(%rbp), %edi
callq 0x67a0
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/vendor/termbox2/termbox2.h
// Function: tb_init_rwfd
int tb_init_rwfd(int rfd, int wfd) {
    int rv;

    tb_reset();
    global.ttyfd = rfd == wfd && isatty(rfd) ? rfd : -1;
    global.rfd = rfd;
    global.wfd = wfd;

    do {
        if_err_break(rv, init_term_attrs());
        if_err_break(rv, init_term_caps());
        if_err_break(rv, init_cap_trie());
        if_err_break(rv, init_resize_handler());
        if_err_break(rv, send_init_escape_codes());
        if_err_break(rv, send_clear());
        if_err_break(rv, update_term_size());
        if_err_break(rv, init_cellbuf());
        global.initialized = 1;
    } while (0);

    if (rv != TB_OK) {
        tb_deinit();
    }

    return rv;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl %edi, -0x4(%rbp)
movl %esi, -0x8(%rbp)
callq 0x68b0
movl -0x4(%rbp), %eax
cmpl -0x8(%rbp), %eax
jne 0x67f0
movl -0x4(%rbp), %edi
callq 0x60c0
cmpl $0x0, %eax
je 0x67f0
movl -0x4(%rbp), %eax
movl %eax, -0x10(%rbp)
jmp 0x67fa
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movl %eax, -0x10(%rbp)
jmp 0x67fa
movl -0x10(%rbp), %eax
movl %eax, 0x35695(%rip)     # 0x3be98
movl -0x4(%rbp), %eax
movl %eax, 0x35690(%rip)     # 0x3be9c
movl -0x8(%rbp), %eax
movl %eax, 0x3568b(%rip)     # 0x3bea0
callq 0x69a0
movl %eax, -0xc(%rbp)
cmpl $0x0, %eax
je 0x6824
jmp 0x6897
callq 0x6a70
movl %eax, -0xc(%rbp)
cmpl $0x0, %eax
je 0x6833
jmp 0x6897
callq 0x6aa0
movl %eax, -0xc(%rbp)
cmpl $0x0, %eax
je 0x6842
jmp 0x6897
callq 0x6ba0
movl %eax, -0xc(%rbp)
cmpl $0x0, %eax
je 0x6851
jmp 0x6897
callq 0x6c40
movl %eax, -0xc(%rbp)
cmpl $0x0, %eax
je 0x6860
jmp 0x6897
callq 0x6ce0
movl %eax, -0xc(%rbp)
cmpl $0x0, %eax
je 0x686f
jmp 0x6897
callq 0x6db0
movl %eax, -0xc(%rbp)
cmpl $0x0, %eax
je 0x687e
jmp 0x6897
callq 0x6e50
movl %eax, -0xc(%rbp)
cmpl $0x0, %eax
je 0x688d
jmp 0x6897
movl $0x1, 0x35825(%rip)     # 0x3c0bc
cmpl $0x0, -0xc(%rbp)
je 0x68a2
callq 0x6f10
movl -0xc(%rbp), %eax
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/vendor/termbox2/termbox2.h
// Function: tb_reset
static int tb_reset(void) {
    int ttyfd_open = global.ttyfd_open;
    memset(&global, 0, sizeof(global));
    global.ttyfd = -1;
    global.rfd = -1;
    global.wfd = -1;
    global.ttyfd_open = ttyfd_open;
    global.resize_pipefd[0] = -1;
    global.resize_pipefd[1] = -1;
    global.width = -1;
    global.height = -1;
    global.cursor_x = -1;
    global.cursor_y = -1;
    global.last_x = -1;
    global.last_y = -1;
    global.fg = TB_DEFAULT;
    global.bg = TB_DEFAULT;
    global.last_fg = ~global.fg;
    global.last_bg = ~global.bg;
    global.input_mode = TB_INPUT_ESC;
    global.output_mode = TB_OUTPUT_NORMAL;
    return TB_OK;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl 0x355e6(%rip), %eax     # 0x3bea4
movl %eax, -0x4(%rbp)
leaq 0x355d0(%rip), %rdi     # 0x3be98
xorl %esi, %esi
movl $0x638, %edx            # imm = 0x638
callq 0x6230
movl $0xffffffff, 0x355ba(%rip) # imm = 0xFFFFFFFF
movl $0xffffffff, 0x355b4(%rip) # imm = 0xFFFFFFFF
movl $0xffffffff, 0x355ae(%rip) # imm = 0xFFFFFFFF
movl -0x4(%rbp), %eax
movl %eax, 0x355a9(%rip)     # 0x3bea4
movl $0xffffffff, 0x355a3(%rip) # imm = 0xFFFFFFFF
movl $0xffffffff, 0x3559d(%rip) # imm = 0xFFFFFFFF
movl $0xffffffff, 0x35597(%rip) # imm = 0xFFFFFFFF
movl $0xffffffff, 0x35591(%rip) # imm = 0xFFFFFFFF
movl $0xffffffff, 0x3558b(%rip) # imm = 0xFFFFFFFF
movl $0xffffffff, 0x35585(%rip) # imm = 0xFFFFFFFF
movl $0xffffffff, 0x3557f(%rip) # imm = 0xFFFFFFFF
movl $0xffffffff, 0x35579(%rip) # imm = 0xFFFFFFFF
movw $0x0, 0x35574(%rip)     # 0x3bec8
movw $0x0, 0x3556d(%rip)     # 0x3beca
movzwl 0x35564(%rip), %eax     # 0x3bec8
xorl $-0x1, %eax
movw %ax, 0x3555e(%rip)      # 0x3becc
movzwl 0x35555(%rip), %eax     # 0x3beca
xorl $-0x1, %eax
movw %ax, 0x3554f(%rip)      # 0x3bece
movl $0x1, 0x35547(%rip)     # 0x3bed0
movl $0x1, 0x35541(%rip)     # 0x3bed4
xorl %eax, %eax
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/vendor/termbox2/termbox2.h
// Function: init_term_attrs
static int init_term_attrs(void) {
    if (global.ttyfd < 0) {
        return TB_OK;
    }

    if (tcgetattr(global.ttyfd, &global.orig_tios) != 0) {
        global.last_errno = errno;
        return TB_ERR_TCGETATTR;
    }

    struct termios tios;
    memcpy(&tios, &global.orig_tios, sizeof(tios));
    global.has_orig_tios = 1;

    cfmakeraw(&tios);
    tios.c_cc[VMIN] = 1;
    tios.c_cc[VTIME] = 0;

    if (tcsetattr(global.ttyfd, TCSAFLUSH, &tios) != 0) {
        global.last_errno = errno;
        return TB_ERR_TCSETATTR;
    }

    return TB_OK;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
cmpl $0x0, 0x354e9(%rip)     # 0x3be98
jge 0x69bd
movl $0x0, -0x4(%rbp)
jmp 0x6a5e
movl 0x354d5(%rip), %edi     # 0x3be98
leaq 0x354ce(%rip), %rsi     # 0x3be98
addq $0x1e0, %rsi            # imm = 0x1E0
callq 0x64b0
cmpl $0x0, %eax
je 0x69f1
callq 0x6060
movl (%rax), %eax
movl %eax, 0x356d0(%rip)     # 0x3c0b8
movl $0xfffffff1, -0x4(%rbp) # imm = 0xFFFFFFF1
jmp 0x6a5e
leaq -0x40(%rbp), %rdi
leaq 0x3549c(%rip), %rsi     # 0x3be98
addq $0x1e0, %rsi            # imm = 0x1E0
movl $0x3c, %edx
callq 0x6360
movl $0x1, 0x3569d(%rip)     # 0x3c0b4
leaq -0x40(%rbp), %rdi
callq 0x6440
movb $0x1, -0x29(%rbp)
movb $0x0, -0x2a(%rbp)
movl 0x3546a(%rip), %edi     # 0x3be98
movl $0x2, %esi
leaq -0x40(%rbp), %rdx
callq 0x64c0
cmpl $0x0, %eax
je 0x6a57
callq 0x6060
movl (%rax), %eax
movl %eax, 0x3566a(%rip)     # 0x3c0b8
movl $0xfffffff0, -0x4(%rbp) # imm = 0xFFFFFFF0
jmp 0x6a5e
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x40, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/vendor/termbox2/termbox2.h
// Function: init_cap_trie
static int init_cap_trie(void) {
    int rv, i;

    // Add caps from terminfo or built-in
    for (i = 0; i < TB_CAP__COUNT_KEYS; i++) {
        if_err_return(rv, cap_trie_add(global.caps[i], tb_key_i(i), 0));
    }

    // Add built-in mod caps
    for (i = 0; builtin_mod_caps[i].cap != NULL; i++) {
        rv = cap_trie_add(builtin_mod_caps[i].cap, builtin_mod_caps[i].key,
            builtin_mod_caps[i].mod);
        // Collisions are OK. This can happen if global.caps collides with
        // builtin_mod_caps. It is desirable to give precedence to global.caps
        // here.
        if (rv != TB_OK && rv != TB_ERR_CAP_COLLISION) {
            return rv;
        }
    }

    return TB_OK;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl $0x0, -0xc(%rbp)
cmpl $0x17, -0xc(%rbp)
jge 0x6af7
movslq -0xc(%rbp), %rcx
leaq 0x353d8(%rip), %rax     # 0x3be98
movq 0x50(%rax,%rcx,8), %rdi
movl $0xffff, %eax           # imm = 0xFFFF
subl -0xc(%rbp), %eax
xorl %edx, %edx
movzwl %ax, %esi
callq 0xccf0
movl %eax, -0x8(%rbp)
cmpl $0x0, %eax
je 0x6aea
movl -0x8(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x6b8d
jmp 0x6aec
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x6aaf
movl $0x0, -0xc(%rbp)
movslq -0xc(%rbp), %rcx
leaq 0x33fe7(%rip), %rax     # 0x3aaf0
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, (%rax)
je 0x6b86
movslq -0xc(%rbp), %rcx
leaq 0x33fcf(%rip), %rax     # 0x3aaf0
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rdi
movslq -0xc(%rbp), %rcx
leaq 0x33fba(%rip), %rax     # 0x3aaf0
shlq $0x4, %rcx
addq %rcx, %rax
movw 0x8(%rax), %cx
movslq -0xc(%rbp), %rdx
leaq 0x33fa4(%rip), %rax     # 0x3aaf0
shlq $0x4, %rdx
addq %rdx, %rax
movzwl %cx, %esi
movzbl 0xa(%rax), %edx
callq 0xccf0
movl %eax, -0x8(%rbp)
cmpl $0x0, -0x8(%rbp)
je 0x6b76
cmpl $-0x16, -0x8(%rbp)
je 0x6b76
movl -0x8(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x6b8d
jmp 0x6b78
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x6afe
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/vendor/termbox2/termbox2.h
// Function: init_resize_handler
static int init_resize_handler(void) {
    if (pipe(global.resize_pipefd) != 0) {
        global.last_errno = errno;
        return TB_ERR_RESIZE_PIPE;
    }

    struct sigaction sa;
    memset(&sa, 0, sizeof(sa));
    sa.sa_handler = handle_resize;
    if (sigaction(SIGWINCH, &sa, NULL) != 0) {
        global.last_errno = errno;
        return TB_ERR_RESIZE_SIGACTION;
    }

    return TB_OK;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
leaq 0x352e6(%rip), %rdi     # 0x3be98
addq $0x10, %rdi
callq 0x6270
cmpl $0x0, %eax
je 0x6bd6
callq 0x6060
movl (%rax), %eax
movl %eax, 0x354eb(%rip)     # 0x3c0b8
movl $0xfffffff4, -0x4(%rbp) # imm = 0xFFFFFFF4
jmp 0x6c2e
leaq -0xa0(%rbp), %rdi
xorl %esi, %esi
movl $0x98, %edx
callq 0x6230
leaq 0x62b0(%rip), %rax      # 0xcea0
movq %rax, -0xa0(%rbp)
movl $0x1c, %edi
leaq -0xa0(%rbp), %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x60d0
cmpl $0x0, %eax
je 0x6c27
callq 0x6060
movl (%rax), %eax
movl %eax, 0x3549a(%rip)     # 0x3c0b8
movl $0xfffffff3, -0x4(%rbp) # imm = 0xFFFFFFF3
jmp 0x6c2e
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0xa0, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/vendor/termbox2/termbox2.h
// Function: send_init_escape_codes
static int send_init_escape_codes(void) {
    int rv;
    if_err_return(rv, bytebuf_puts(&global.out, global.caps[TB_CAP_ENTER_CA]));
    if_err_return(rv,
        bytebuf_puts(&global.out, global.caps[TB_CAP_ENTER_KEYPAD]));
    if_err_return(rv,
        bytebuf_puts(&global.out, global.caps[TB_CAP_HIDE_CURSOR]));
    return TB_OK;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq 0x35351(%rip), %rsi     # 0x3bfa0
leaq 0x35242(%rip), %rdi     # 0x3be98
addq $0x1a8, %rdi            # imm = 0x1A8
callq 0x7e30
movl %eax, -0x8(%rbp)
cmpl $0x0, %eax
je 0x6c72
movl -0x8(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x6ccd
movq 0x3537f(%rip), %rsi     # 0x3bff8
leaq 0x35218(%rip), %rdi     # 0x3be98
addq $0x1a8, %rdi            # imm = 0x1A8
callq 0x7e30
movl %eax, -0x8(%rbp)
cmpl $0x0, %eax
je 0x6c9c
movl -0x8(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x6ccd
movq 0x35315(%rip), %rsi     # 0x3bfb8
leaq 0x351ee(%rip), %rdi     # 0x3be98
addq $0x1a8, %rdi            # imm = 0x1A8
callq 0x7e30
movl %eax, -0x8(%rbp)
cmpl $0x0, %eax
je 0x6cc6
movl -0x8(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x6ccd
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/vendor/termbox2/termbox2.h
// Function: send_clear
static int send_clear(void) {
    int rv;

    if_err_return(rv, send_attr(global.fg, global.bg));
    if_err_return(rv,
        bytebuf_puts(&global.out, global.caps[TB_CAP_CLEAR_SCREEN]));

    if_err_return(rv, send_cursor_if(global.cursor_x, global.cursor_y));
    if_err_return(rv, bytebuf_flush(&global.out, global.wfd));

    global.last_x = -1;
    global.last_y = -1;

    return TB_OK;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movw 0x351d9(%rip), %ax      # 0x3bec8
movzwl %ax, %edi
movzwl 0x351d1(%rip), %esi     # 0x3beca
callq 0x7660
movl %eax, -0x8(%rbp)
cmpl $0x0, %eax
je 0x6d11
movl -0x8(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x6da0
movq 0x352a8(%rip), %rsi     # 0x3bfc0
leaq 0x35179(%rip), %rdi     # 0x3be98
addq $0x1a8, %rdi            # imm = 0x1A8
callq 0x7e30
movl %eax, -0x8(%rbp)
cmpl $0x0, %eax
je 0x6d3b
movl -0x8(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x6da0
movl 0x35177(%rip), %edi     # 0x3beb8
movl 0x35175(%rip), %esi     # 0x3bebc
callq 0x7ab0
movl %eax, -0x8(%rbp)
cmpl $0x0, %eax
je 0x6d5c
movl -0x8(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x6da0
movl 0x3513e(%rip), %esi     # 0x3bea0
leaq 0x3512f(%rip), %rdi     # 0x3be98
addq $0x1a8, %rdi            # imm = 0x1A8
callq 0x7c00
movl %eax, -0x8(%rbp)
cmpl $0x0, %eax
je 0x6d85
movl -0x8(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x6da0
movl $0xffffffff, 0x35131(%rip) # imm = 0xFFFFFFFF
movl $0xffffffff, 0x3512b(%rip) # imm = 0xFFFFFFFF
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/vendor/termbox2/termbox2.h
// Function: update_term_size
static int update_term_size(void) {
    int rv, ioctl_errno;

    if (global.ttyfd < 0) {
        return TB_OK;
    }

    struct winsize sz;
    memset(&sz, 0, sizeof(sz));

    // Try ioctl TIOCGWINSZ
    if (ioctl(global.ttyfd, TIOCGWINSZ, &sz) == 0) {
        global.width = sz.ws_col;
        global.height = sz.ws_row;
        return TB_OK;
    }
    ioctl_errno = errno;

    // Try >cursor(9999,9999), >u7, <u6
    if_ok_return(rv, update_term_size_via_esc());

    global.last_errno = ioctl_errno;
    return TB_ERR_RESIZE_IOCTL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
cmpl $0x0, 0x350d9(%rip)     # 0x3be98
jge 0x6dca
movl $0x0, -0x4(%rbp)
jmp 0x6e41
leaq -0x14(%rbp), %rdi
xorl %esi, %esi
movl $0x8, %edx
callq 0x6230
movl 0x350b8(%rip), %edi     # 0x3be98
movl $0x5413, %esi           # imm = 0x5413
leaq -0x14(%rbp), %rdx
movb $0x0, %al
callq 0x6240
cmpl $0x0, %eax
jne 0x6e12
movzwl -0x12(%rbp), %eax
movl %eax, 0x350b1(%rip)     # 0x3beb0
movzwl -0x14(%rbp), %eax
movl %eax, 0x350ab(%rip)     # 0x3beb4
movl $0x0, -0x4(%rbp)
jmp 0x6e41
callq 0x6060
movl (%rax), %eax
movl %eax, -0xc(%rbp)
callq 0xcee0
movl %eax, -0x8(%rbp)
cmpl $0x0, %eax
jne 0x6e31
movl -0x8(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x6e41
movl -0xc(%rbp), %eax
movl %eax, 0x3527e(%rip)     # 0x3c0b8
movl $0xfffffff5, -0x4(%rbp) # imm = 0xFFFFFFF5
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/vendor/termbox2/termbox2.h
// Function: init_cellbuf
static int init_cellbuf(void) {
    int rv;
    if_err_return(rv, cellbuf_init(&global.back, global.width, global.height));
    if_err_return(rv, cellbuf_init(&global.front, global.width, global.height));
    if_err_return(rv, cellbuf_clear(&global.back));
    if_err_return(rv, cellbuf_clear(&global.front));
    return TB_OK;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl 0x35052(%rip), %esi     # 0x3beb0
movl 0x35050(%rip), %edx     # 0x3beb4
leaq 0x3502d(%rip), %rdi     # 0x3be98
addq $0x1c0, %rdi            # imm = 0x1C0
callq 0xd100
movl %eax, -0x8(%rbp)
cmpl $0x0, %eax
je 0x6e87
movl -0x8(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x6f03
movl 0x35023(%rip), %esi     # 0x3beb0
movl 0x35021(%rip), %edx     # 0x3beb4
leaq 0x34ffe(%rip), %rdi     # 0x3be98
addq $0x1d0, %rdi            # imm = 0x1D0
callq 0xd100
movl %eax, -0x8(%rbp)
cmpl $0x0, %eax
je 0x6eb6
movl -0x8(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x6f03
leaq 0x34fdb(%rip), %rdi     # 0x3be98
addq $0x1c0, %rdi            # imm = 0x1C0
callq 0x71e0
movl %eax, -0x8(%rbp)
cmpl $0x0, %eax
je 0x6ed9
movl -0x8(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x6f03
leaq 0x34fb8(%rip), %rdi     # 0x3be98
addq $0x1d0, %rdi            # imm = 0x1D0
callq 0x71e0
movl %eax, -0x8(%rbp)
cmpl $0x0, %eax
je 0x6efc
movl -0x8(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x6f03
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/vendor/termbox2/termbox2.h
// Function: cellbuf_clear
static int cellbuf_clear(struct cellbuf_t *c) {
    int rv, i;
    uint32_t space = (uint32_t)' ';
    for (i = 0; i < c->width * c->height; i++) {
        if_err_return(rv,
            cell_set(&c->cells[i], &space, 1, global.fg, global.bg));
    }
    return TB_OK;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movl $0x20, -0x1c(%rbp)
movl $0x0, -0x18(%rbp)
movl -0x18(%rbp), %eax
movq -0x10(%rbp), %rcx
movl (%rcx), %ecx
movq -0x10(%rbp), %rdx
imull 0x4(%rdx), %ecx
cmpl %ecx, %eax
jge 0x725f
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
movslq -0x18(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
movw 0x34c9f(%rip), %ax      # 0x3bec8
leaq -0x1c(%rbp), %rsi
movl $0x1, %edx
movzwl %ax, %ecx
movzwl 0x34c8d(%rip), %r8d     # 0x3beca
callq 0x7a50
movl %eax, -0x14(%rbp)
cmpl $0x0, %eax
je 0x7252
movl -0x14(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x7266
jmp 0x7254
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x71fa
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/vendor/termbox2/termbox2.h
// Function: tb_set_clear_attrs
int tb_set_clear_attrs(uintattr_t fg, uintattr_t bg) {
    if_not_init_return();
    global.fg = fg;
    global.bg = bg;
    return TB_OK;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movw %si, %ax
movw %di, %cx
movw %cx, -0x6(%rbp)
movw %ax, -0x8(%rbp)
cmpl $0x0, 0x34e33(%rip)     # 0x3c0bc
jne 0x7294
movl $0xfffffff8, -0x4(%rbp) # imm = 0xFFFFFFF8
jmp 0x72b1
movw -0x6(%rbp), %ax
movw %ax, 0x34c29(%rip)      # 0x3bec8
movw -0x8(%rbp), %ax
movw %ax, 0x34c20(%rip)      # 0x3beca
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/vendor/termbox2/termbox2.h
// Function: cellbuf_get
static int cellbuf_get(struct cellbuf_t *c, int x, int y,
    struct tb_cell **out) {
    if (x < 0 || x >= c->width || y < 0 || y >= c->height) {
        *out = NULL;
        return TB_ERR_OUT_OF_BOUNDS;
    }
    *out = &c->cells[(y * c->width) + x];
    return TB_OK;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl %edx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
cmpl $0x0, -0x14(%rbp)
jl 0x7575
movl -0x14(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jge 0x7575
cmpl $0x0, -0x18(%rbp)
jl 0x7575
movl -0x18(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x4(%rcx), %eax
jl 0x7589
movq -0x20(%rbp), %rax
movq $0x0, (%rax)
movl $0xfffffff7, -0x4(%rbp) # imm = 0xFFFFFFF7
jmp 0x75b5
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rcx
movl -0x18(%rbp), %eax
movq -0x10(%rbp), %rdx
imull (%rdx), %eax
addl -0x14(%rbp), %eax
cltq
shlq $0x3, %rax
addq %rax, %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/vendor/termbox2/termbox2.h
// Function: cell_cmp
static int cell_cmp(struct tb_cell *a, struct tb_cell *b) {
    if (a->ch != b->ch || a->fg != b->fg || a->bg != b->bg) {
        return 1;
    }
#ifdef TB_OPT_EGC
    if (a->nech != b->nech) {
        return 1;
    } else if (a->nech > 0) { // a->nech == b->nech
        return memcmp(a->ech, b->ech, a->nech);
    }
#endif
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movl (%rax), %eax
movq -0x18(%rbp), %rcx
cmpl (%rcx), %eax
jne 0x7602
movq -0x10(%rbp), %rax
movzwl 0x4(%rax), %eax
movq -0x18(%rbp), %rcx
movzwl 0x4(%rcx), %ecx
cmpl %ecx, %eax
jne 0x7602
movq -0x10(%rbp), %rax
movzwl 0x6(%rax), %eax
movq -0x18(%rbp), %rcx
movzwl 0x6(%rcx), %ecx
cmpl %ecx, %eax
je 0x760b
movl $0x1, -0x4(%rbp)
jmp 0x7612
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/vendor/termbox2/termbox2.h
// Function: cell_set
static int cell_set(struct tb_cell *cell, uint32_t *ch, size_t nch,
    uintattr_t fg, uintattr_t bg) {
    cell->ch = ch ? *ch : 0;
    cell->fg = fg;
    cell->bg = bg;
#ifdef TB_OPT_EGC
    if (nch <= 1) {
        cell->nech = 0;
    } else {
        int rv;
        if_err_return(rv, cell_reserve_ech(cell, nch + 1));
        memcpy(cell->ech, ch, nch);
        cell->ech[nch] = '\0';
        cell->nech = nch;
    }
#else
    (void)nch;
    (void)cell_reserve_ech;
#endif
    return TB_OK;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movw %r8w, %ax
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movw %cx, -0x1a(%rbp)
movw %ax, -0x1c(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x7a7e
movq -0x10(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x20(%rbp)
jmp 0x7a85
xorl %eax, %eax
movl %eax, -0x20(%rbp)
jmp 0x7a85
movl -0x20(%rbp), %ecx
movq -0x8(%rbp), %rax
movl %ecx, (%rax)
movw -0x1a(%rbp), %cx
movq -0x8(%rbp), %rax
movw %cx, 0x4(%rax)
movw -0x1c(%rbp), %cx
movq -0x8(%rbp), %rax
movw %cx, 0x6(%rax)
xorl %eax, %eax
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/vendor/termbox2/termbox2.h
// Function: send_cursor_if
static int send_cursor_if(int x, int y) {
    int rv;
    char nbuf[32];
    if (x < 0 || y < 0) {
        return TB_OK;
    }
    send_literal(rv, "\x1b[");
    send_num(rv, nbuf, y + 1);
    send_literal(rv, ";");
    send_num(rv, nbuf, x + 1);
    send_literal(rv, "H");
    return TB_OK;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movl %edi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
cmpl $0x0, -0x8(%rbp)
jl 0x7aca
cmpl $0x0, -0xc(%rbp)
jge 0x7ad6
movl $0x0, -0x4(%rbp)
jmp 0x7bf2
leaq 0x343bb(%rip), %rdi     # 0x3be98
addq $0x1a8, %rdi            # imm = 0x1A8
leaq 0x2cd90(%rip), %rsi     # 0x3487b
movl $0x2, %edx
callq 0x8ae0
movl %eax, -0x10(%rbp)
cmpl $0x0, %eax
je 0x7b08
movl -0x10(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x7bf2
leaq -0x30(%rbp), %rax
movq %rax, -0x38(%rbp)
movl -0xc(%rbp), %edi
addl $0x1, %edi
leaq -0x30(%rbp), %rsi
callq 0xe330
movq -0x38(%rbp), %rsi
movslq %eax, %rdx
leaq 0x3436b(%rip), %rdi     # 0x3be98
addq $0x1a8, %rdi            # imm = 0x1A8
callq 0x8ae0
movl %eax, -0x10(%rbp)
cmpl $0x0, %eax
je 0x7b4c
movl -0x10(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x7bf2
leaq 0x34345(%rip), %rdi     # 0x3be98
addq $0x1a8, %rdi            # imm = 0x1A8
leaq 0x2cd21(%rip), %rsi     # 0x34882
movl $0x1, %edx
callq 0x8ae0
movl %eax, -0x10(%rbp)
cmpl $0x0, %eax
je 0x7b7b
movl -0x10(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x7bf2
leaq -0x30(%rbp), %rax
movq %rax, -0x40(%rbp)
movl -0x8(%rbp), %edi
addl $0x1, %edi
leaq -0x30(%rbp), %rsi
callq 0xe330
movq -0x40(%rbp), %rsi
movslq %eax, %rdx
leaq 0x342f8(%rip), %rdi     # 0x3be98
addq $0x1a8, %rdi            # imm = 0x1A8
callq 0x8ae0
movl %eax, -0x10(%rbp)
cmpl $0x0, %eax
je 0x7bbc
movl -0x10(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x7bf2
leaq 0x342d5(%rip), %rdi     # 0x3be98
addq $0x1a8, %rdi            # imm = 0x1A8
leaq 0x2ce52(%rip), %rsi     # 0x34a23
movl $0x1, %edx
callq 0x8ae0
movl %eax, -0x10(%rbp)
cmpl $0x0, %eax
je 0x7beb
movl -0x10(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x7bf2
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/vendor/termbox2/termbox2.h
// Function: bytebuf_flush
static int bytebuf_flush(struct bytebuf_t *b, int fd) {
    if (b->len <= 0) {
        return TB_OK;
    }
    ssize_t write_rv = write(fd, b->buf, b->len);
    if (write_rv < 0 || (size_t)write_rv != b->len) {
        // Note, errno will be 0 on partial write
        global.last_errno = errno;
        return TB_ERR;
    }
    b->len = 0;
    return TB_OK;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
ja 0x7c23
movl $0x0, -0x4(%rbp)
jmp 0x7c7c
movl -0x14(%rbp), %edi
movq -0x10(%rbp), %rax
movq (%rax), %rsi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdx
callq 0x6120
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jl 0x7c53
movq -0x20(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x8(%rcx), %rax
je 0x7c69
callq 0x6060
movl (%rax), %eax
movl %eax, 0x34458(%rip)     # 0x3c0b8
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x7c7c
movq -0x10(%rbp), %rax
movq $0x0, 0x8(%rax)
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/vendor/termbox2/termbox2.h
// Function: tb_invalidate
int tb_invalidate(void) {
    int rv;
    if_not_init_return();
    if_err_return(rv, resize_cellbufs());
    return TB_OK;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
cmpl $0x0, 0x3441d(%rip)     # 0x3c0bc
jne 0x7caa
movl $0xfffffff8, -0x4(%rbp) # imm = 0xFFFFFFF8
jmp 0x7cc6
callq 0x7cd0
movl %eax, -0x8(%rbp)
cmpl $0x0, %eax
je 0x7cbf
movl -0x8(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x7cc6
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x10, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/vendor/termbox2/termbox2.h
// Function: resize_cellbufs
static int resize_cellbufs(void) {
    int rv;
    if_err_return(rv,
        cellbuf_resize(&global.back, global.width, global.height));
    if_err_return(rv,
        cellbuf_resize(&global.front, global.width, global.height));
    if_err_return(rv, cellbuf_clear(&global.front));
    if_err_return(rv, send_clear());
    return TB_OK;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl 0x341d2(%rip), %esi     # 0x3beb0
movl 0x341d0(%rip), %edx     # 0x3beb4
leaq 0x341ad(%rip), %rdi     # 0x3be98
addq $0x1c0, %rdi            # imm = 0x1C0
callq 0xdde0
movl %eax, -0x8(%rbp)
cmpl $0x0, %eax
je 0x7d07
movl -0x8(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x7d75
movl 0x341a3(%rip), %esi     # 0x3beb0
movl 0x341a1(%rip), %edx     # 0x3beb4
leaq 0x3417e(%rip), %rdi     # 0x3be98
addq $0x1d0, %rdi            # imm = 0x1D0
callq 0xdde0
movl %eax, -0x8(%rbp)
cmpl $0x0, %eax
je 0x7d36
movl -0x8(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x7d75
leaq 0x3415b(%rip), %rdi     # 0x3be98
addq $0x1d0, %rdi            # imm = 0x1D0
callq 0x71e0
movl %eax, -0x8(%rbp)
cmpl $0x0, %eax
je 0x7d59
movl -0x8(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x7d75
callq 0x6ce0
movl %eax, -0x8(%rbp)
cmpl $0x0, %eax
je 0x7d6e
movl -0x8(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x7d75
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x10, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/vendor/termbox2/termbox2.h
// Function: tb_set_cursor
int tb_set_cursor(int cx, int cy) {
    if_not_init_return();
    int rv;
    if (cx < 0)
        cx = 0;
    if (cy < 0)
        cy = 0;
    if (global.cursor_x == -1) {
        if_err_return(rv,
            bytebuf_puts(&global.out, global.caps[TB_CAP_SHOW_CURSOR]));
    }
    if_err_return(rv, send_cursor_if(cx, cy));
    global.cursor_x = cx;
    global.cursor_y = cy;
    return TB_OK;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl %edi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
cmpl $0x0, 0x34327(%rip)     # 0x3c0bc
jne 0x7da3
movl $0xfffffff8, -0x4(%rbp) # imm = 0xFFFFFFF8
jmp 0x7e26
cmpl $0x0, -0x8(%rbp)
jge 0x7db0
movl $0x0, -0x8(%rbp)
cmpl $0x0, -0xc(%rbp)
jge 0x7dbd
movl $0x0, -0xc(%rbp)
cmpl $-0x1, 0x340f4(%rip)    # 0x3beb8
jne 0x7df2
movq 0x341e3(%rip), %rsi     # 0x3bfb0
leaq 0x340c4(%rip), %rdi     # 0x3be98
addq $0x1a8, %rdi            # imm = 0x1A8
callq 0x7e30
movl %eax, -0x10(%rbp)
cmpl $0x0, %eax
je 0x7df0
movl -0x10(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x7e26
jmp 0x7df2
movl -0x8(%rbp), %edi
movl -0xc(%rbp), %esi
callq 0x7ab0
movl %eax, -0x10(%rbp)
cmpl $0x0, %eax
je 0x7e0d
movl -0x10(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x7e26
movl -0x8(%rbp), %eax
movl %eax, 0x340a2(%rip)     # 0x3beb8
movl -0xc(%rbp), %eax
movl %eax, 0x3409d(%rip)     # 0x3bebc
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x10, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/vendor/termbox2/termbox2.h
// Function: tb_hide_cursor
int tb_hide_cursor(void) {
    if_not_init_return();
    int rv;
    if (global.cursor_x >= 0) {
        if_err_return(rv,
            bytebuf_puts(&global.out, global.caps[TB_CAP_HIDE_CURSOR]));
    }
    global.cursor_x = -1;
    global.cursor_y = -1;
    return TB_OK;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
cmpl $0x0, 0x3423d(%rip)     # 0x3c0bc
jne 0x7e8a
movl $0xfffffff8, -0x4(%rbp) # imm = 0xFFFFFFF8
jmp 0x7eda
cmpl $0x0, 0x34027(%rip)     # 0x3beb8
jl 0x7ebf
movq 0x3411e(%rip), %rsi     # 0x3bfb8
leaq 0x33ff7(%rip), %rdi     # 0x3be98
addq $0x1a8, %rdi            # imm = 0x1A8
callq 0x7e30
movl %eax, -0x8(%rbp)
cmpl $0x0, %eax
je 0x7ebd
movl -0x8(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x7eda
jmp 0x7ebf
movl $0xffffffff, 0x33fef(%rip) # imm = 0xFFFFFFFF
movl $0xffffffff, 0x33fe9(%rip) # imm = 0xFFFFFFFF
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/vendor/termbox2/termbox2.h
// Function: tb_set_cell_ex
int tb_set_cell_ex(int x, int y, uint32_t *ch, size_t nch, uintattr_t fg,
    uintattr_t bg) {
    if_not_init_return();
    int rv;
    struct tb_cell *cell;
    if_err_return(rv, cellbuf_get(&global.back, x, y, &cell));
    if_err_return(rv, cell_set(cell, ch, nch, fg, bg));
    return TB_OK;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movl %r8d, -0x4c(%rbp)
movq %rcx, %rax
movl -0x4c(%rbp), %ecx
movq %rax, -0x48(%rbp)
movq %rdx, %rax
movq -0x48(%rbp), %rdx
movq %rax, -0x40(%rbp)
movl %esi, %eax
movq -0x40(%rbp), %rsi
movl %eax, -0x34(%rbp)
movl %edi, %r8d
movl -0x34(%rbp), %edi
movw %r9w, %ax
movl %r8d, -0x8(%rbp)
movl %edi, -0xc(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movw %cx, -0x22(%rbp)
movw %ax, -0x24(%rbp)
cmpl $0x0, 0x3411a(%rip)     # 0x3c0bc
jne 0x7fad
movl $0xfffffff8, -0x4(%rbp) # imm = 0xFFFFFFF8
jmp 0x800e
movl -0x8(%rbp), %esi
movl -0xc(%rbp), %edx
leaq 0x33ede(%rip), %rdi     # 0x3be98
addq $0x1c0, %rdi            # imm = 0x1C0
leaq -0x30(%rbp), %rcx
callq 0x7540
movl %eax, -0x28(%rbp)
cmpl $0x0, %eax
je 0x7fda
movl -0x28(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x800e
movq -0x30(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
movw -0x22(%rbp), %ax
movzwl %ax, %ecx
movzwl -0x24(%rbp), %r8d
callq 0x7a50
movl %eax, -0x28(%rbp)
cmpl $0x0, %eax
je 0x8007
movl -0x28(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x800e
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x50, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/vendor/termbox2/termbox2.h
// Function: tb_set_input_mode
int tb_set_input_mode(int mode) {
    if_not_init_return();
    if (mode == TB_INPUT_CURRENT) {
        return global.input_mode;
    }

    if ((mode & (TB_INPUT_ESC | TB_INPUT_ALT)) == 0) {
        mode |= TB_INPUT_ESC;
    }

    if ((mode & (TB_INPUT_ESC | TB_INPUT_ALT)) == (TB_INPUT_ESC | TB_INPUT_ALT))
    {
        mode &= ~TB_INPUT_ALT;
    }

    if (mode & TB_INPUT_MOUSE) {
        bytebuf_puts(&global.out, TB_HARDCAP_ENTER_MOUSE);
        bytebuf_flush(&global.out, global.wfd);
    } else {
        bytebuf_puts(&global.out, TB_HARDCAP_EXIT_MOUSE);
        bytebuf_flush(&global.out, global.wfd);
    }

    global.input_mode = mode;
    return TB_OK;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl %edi, -0x8(%rbp)
cmpl $0x0, 0x3405a(%rip)     # 0x3c0bc
jne 0x8070
movl $0xfffffff8, -0x4(%rbp) # imm = 0xFFFFFFF8
jmp 0x812f
cmpl $0x0, -0x8(%rbp)
jne 0x8084
movl 0x33e54(%rip), %eax     # 0x3bed0
movl %eax, -0x4(%rbp)
jmp 0x812f
movl -0x8(%rbp), %eax
andl $0x3, %eax
cmpl $0x0, %eax
jne 0x8098
movl -0x8(%rbp), %eax
orl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0x8(%rbp), %eax
andl $0x3, %eax
cmpl $0x3, %eax
jne 0x80ac
movl -0x8(%rbp), %eax
andl $-0x3, %eax
movl %eax, -0x8(%rbp)
movl -0x8(%rbp), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x80ec
leaq 0x33dda(%rip), %rdi     # 0x3be98
addq $0x1a8, %rdi            # imm = 0x1A8
leaq 0x2a8f5(%rip), %rsi     # 0x329c1
callq 0x7e30
movl 0x33dc9(%rip), %esi     # 0x3bea0
leaq 0x33dba(%rip), %rdi     # 0x3be98
addq $0x1a8, %rdi            # imm = 0x1A8
callq 0x7c00
jmp 0x811f
leaq 0x33da5(%rip), %rdi     # 0x3be98
addq $0x1a8, %rdi            # imm = 0x1A8
leaq 0x2a8e1(%rip), %rsi     # 0x329e2
callq 0x7e30
movl 0x33d94(%rip), %esi     # 0x3bea0
leaq 0x33d85(%rip), %rdi     # 0x3be98
addq $0x1a8, %rdi            # imm = 0x1A8
callq 0x7c00
movl -0x8(%rbp), %eax
movl %eax, 0x33da8(%rip)     # 0x3bed0
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/vendor/termbox2/termbox2.h
// Function: tb_set_output_mode
int tb_set_output_mode(int mode) {
    if_not_init_return();
    switch (mode) {
        case TB_OUTPUT_CURRENT:
            return global.output_mode;
        case TB_OUTPUT_NORMAL:
        case TB_OUTPUT_256:
        case TB_OUTPUT_216:
        case TB_OUTPUT_GRAYSCALE:
#ifdef TB_OPT_TRUECOLOR
        case TB_OUTPUT_TRUECOLOR:
#endif
            global.last_fg = ~global.fg;
            global.last_bg = ~global.bg;
            global.output_mode = mode;
            return TB_OK;
    }
    return TB_ERR;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl %edi, -0x8(%rbp)
cmpl $0x0, 0x33f6e(%rip)     # 0x3c0bc
jne 0x8159
movl $0xfffffff8, -0x4(%rbp) # imm = 0xFFFFFFF8
jmp 0x81b7
movl -0x8(%rbp), %eax
movl %eax, -0xc(%rbp)
testl %eax, %eax
je 0x8171
jmp 0x8165
movl -0xc(%rbp), %eax
decl %eax
subl $0x4, %eax
jb 0x817c
jmp 0x81b0
movl 0x33d5d(%rip), %eax     # 0x3bed4
movl %eax, -0x4(%rbp)
jmp 0x81b7
movzwl 0x33d45(%rip), %eax     # 0x3bec8
xorl $-0x1, %eax
movw %ax, 0x33d3f(%rip)      # 0x3becc
movzwl 0x33d36(%rip), %eax     # 0x3beca
xorl $-0x1, %eax
movw %ax, 0x33d30(%rip)      # 0x3bece
movl -0x8(%rbp), %eax
movl %eax, 0x33d2d(%rip)     # 0x3bed4
movl $0x0, -0x4(%rbp)
jmp 0x81b7
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
movl -0x4(%rbp), %eax
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/vendor/termbox2/termbox2.h
// Function: tb_get_fds
int tb_get_fds(int *ttyfd, int *resizefd) {
    if_not_init_return();

    *ttyfd = global.rfd;
    *resizefd = global.resize_pipefd[0];

    return TB_OK;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
cmpl $0x0, 0x33a79(%rip)     # 0x3c0bc
jne 0x864e
movl $0xfffffff8, -0x4(%rbp) # imm = 0xFFFFFFF8
jmp 0x866d
movl 0x33848(%rip), %ecx     # 0x3be9c
movq -0x10(%rbp), %rax
movl %ecx, (%rax)
movl 0x33848(%rip), %ecx     # 0x3bea8
movq -0x18(%rbp), %rax
movl %ecx, (%rax)
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/vendor/termbox2/termbox2.h
// Function: tb_print_ex
int tb_print_ex(int x, int y, uintattr_t fg, uintattr_t bg, size_t *out_w,
    const char *str) {
    int rv;
    uint32_t uni;
    int w, ix = x;
    if (out_w) {
        *out_w = 0;
    }
    while (*str) {
        str += tb_utf8_char_to_unicode(&uni, str);
        w = wcwidth((wchar_t)uni);
        if (w < 0) {
            w = 1;
        }
        if (w == 0 && x > ix) {
            if_err_return(rv, tb_extend_cell(x - 1, y, uni));
        } else {
            if_err_return(rv, tb_set_cell(x, y, uni, fg, bg));
        }
        x += w;
        if (out_w) {
            *out_w += w;
        }
    }
    return TB_OK;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movw %cx, %ax
movw %dx, %cx
movl %edi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movw %cx, -0xe(%rbp)
movw %ax, -0x10(%rbp)
movq %r8, -0x18(%rbp)
movq %r9, -0x20(%rbp)
movl -0x8(%rbp), %eax
movl %eax, -0x30(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x870c
movq -0x18(%rbp), %rax
movq $0x0, (%rax)
jmp 0x870e
movq -0x20(%rbp), %rax
cmpb $0x0, (%rax)
je 0x87d0
movq -0x20(%rbp), %rsi
leaq -0x28(%rbp), %rdi
callq 0x87e0
movl %eax, %ecx
movq -0x20(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
movl -0x28(%rbp), %edi
callq 0x63c0
movl %eax, -0x2c(%rbp)
cmpl $0x0, -0x2c(%rbp)
jge 0x8750
movl $0x1, -0x2c(%rbp)
cmpl $0x0, -0x2c(%rbp)
jne 0x8781
movl -0x8(%rbp), %eax
cmpl -0x30(%rbp), %eax
jle 0x8781
movl -0x8(%rbp), %edi
subl $0x1, %edi
movl -0xc(%rbp), %esi
movl -0x28(%rbp), %edx
callq 0x8020
movl %eax, -0x24(%rbp)
cmpl $0x0, %eax
je 0x877f
movl -0x24(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x87d7
jmp 0x87ad
movl -0x8(%rbp), %edi
movl -0xc(%rbp), %esi
movl -0x28(%rbp), %edx
movw -0xe(%rbp), %ax
movzwl %ax, %ecx
movzwl -0x10(%rbp), %r8d
callq 0x7ef0
movl %eax, -0x24(%rbp)
cmpl $0x0, %eax
je 0x87ab
movl -0x24(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x87d7
jmp 0x87ad
movl -0x2c(%rbp), %eax
addl -0x8(%rbp), %eax
movl %eax, -0x8(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x87cb
movslq -0x2c(%rbp), %rcx
movq -0x18(%rbp), %rax
addq (%rax), %rcx
movq %rcx, (%rax)
jmp 0x870e
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/vendor/termbox2/termbox2.h
// Function: tb_printf
int tb_printf(int x, int y, uintattr_t fg, uintattr_t bg, const char *fmt,
    ...) {
    int rv;
    va_list vl;
    va_start(vl, fmt);
    rv = tb_printf_inner(x, y, fg, bg, NULL, fmt, vl);
    va_end(vl);
    return rv;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x100, %rsp            # imm = 0x100
testb %al, %al
je 0x88db
movaps %xmm0, -0xc0(%rbp)
movaps %xmm1, -0xb0(%rbp)
movaps %xmm2, -0xa0(%rbp)
movaps %xmm3, -0x90(%rbp)
movaps %xmm4, -0x80(%rbp)
movaps %xmm5, -0x70(%rbp)
movaps %xmm6, -0x60(%rbp)
movaps %xmm7, -0x50(%rbp)
movq %r9, -0xc8(%rbp)
movw %cx, %ax
movw %dx, %cx
movl %edi, -0x4(%rbp)
movl %esi, -0x8(%rbp)
movw %cx, -0xa(%rbp)
movw %ax, -0xc(%rbp)
movq %r8, -0x18(%rbp)
leaq -0xf0(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0x10(%rbp), %rax
movq %rax, -0x38(%rbp)
movl $0x30, -0x3c(%rbp)
movl $0x28, -0x40(%rbp)
movl -0x4(%rbp), %edi
movl -0x8(%rbp), %esi
movzwl -0xa(%rbp), %edx
movzwl -0xc(%rbp), %ecx
movq -0x18(%rbp), %r9
movq %rsp, %rax
leaq -0x40(%rbp), %r8
movq %r8, (%rax)
xorl %eax, %eax
movl %eax, %r8d
callq 0x8950
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
addq $0x100, %rsp            # imm = 0x100
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/vendor/termbox2/termbox2.h
// Function: tb_printf_inner
int tb_printf_inner(int x, int y, uintattr_t fg, uintattr_t bg, size_t *out_w,
    const char *fmt, va_list vl) {
    int rv;
    char buf[TB_OPT_PRINTF_BUF];
    rv = vsnprintf(buf, sizeof(buf), fmt, vl);
    if (rv < 0 || rv >= (int)sizeof(buf)) {
        return TB_ERR;
    }
    return tb_print_ex(x, y, fg, bg, out_w, buf);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1030, %rsp           # imm = 0x1030
movw %cx, %ax
movw %dx, %cx
movq 0x10(%rbp), %rdx
movl %edi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movw %cx, -0xe(%rbp)
movw %ax, -0x10(%rbp)
movq %r8, -0x18(%rbp)
movq %r9, -0x20(%rbp)
leaq -0x1030(%rbp), %rdi
movq -0x20(%rbp), %rdx
movq 0x10(%rbp), %rcx
movl $0x1000, %esi           # imm = 0x1000
callq 0x60f0
movl %eax, -0x24(%rbp)
cmpl $0x0, -0x24(%rbp)
jl 0x89a6
cmpl $0x1000, -0x24(%rbp)    # imm = 0x1000
jl 0x89af
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x89d6
movl -0x8(%rbp), %edi
movl -0xc(%rbp), %esi
movw -0xe(%rbp), %cx
movw -0x10(%rbp), %ax
movq -0x18(%rbp), %r8
leaq -0x1030(%rbp), %r9
movzwl %cx, %edx
movzwl %ax, %ecx
callq 0x86d0
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x1030, %rsp           # imm = 0x1030
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/vendor/termbox2/termbox2.h
// Function: tb_printf_ex
int tb_printf_ex(int x, int y, uintattr_t fg, uintattr_t bg, size_t *out_w,
    const char *fmt, ...) {
    int rv;
    va_list vl;
    va_start(vl, fmt);
    rv = tb_printf_inner(x, y, fg, bg, out_w, fmt, vl);
    va_end(vl);
    return rv;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x100, %rsp            # imm = 0x100
testb %al, %al
je 0x8a2b
movaps %xmm0, -0xc0(%rbp)
movaps %xmm1, -0xb0(%rbp)
movaps %xmm2, -0xa0(%rbp)
movaps %xmm3, -0x90(%rbp)
movaps %xmm4, -0x80(%rbp)
movaps %xmm5, -0x70(%rbp)
movaps %xmm6, -0x60(%rbp)
movaps %xmm7, -0x50(%rbp)
movw %cx, %ax
movw %dx, %cx
movl %edi, -0x4(%rbp)
movl %esi, -0x8(%rbp)
movw %cx, -0xa(%rbp)
movw %ax, -0xc(%rbp)
movq %r8, -0x18(%rbp)
movq %r9, -0x20(%rbp)
leaq -0xf0(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0x10(%rbp), %rax
movq %rax, -0x38(%rbp)
movl $0x30, -0x3c(%rbp)
movl $0x30, -0x40(%rbp)
movl -0x4(%rbp), %edi
movl -0x8(%rbp), %esi
movzwl -0xa(%rbp), %edx
movzwl -0xc(%rbp), %ecx
movq -0x18(%rbp), %r8
movq -0x20(%rbp), %r9
movq %rsp, %rax
leaq -0x40(%rbp), %r10
movq %r10, (%rax)
callq 0x8950
movl %eax, -0x24(%rbp)
movl -0x24(%rbp), %eax
addq $0x100, %rsp            # imm = 0x100
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/vendor/termbox2/termbox2.h
// Function: bytebuf_nputs
static int bytebuf_nputs(struct bytebuf_t *b, const char *str, size_t nstr) {
    int rv;
    if_err_return(rv, bytebuf_reserve(b, b->len + nstr + 1));
    memcpy(b->buf + b->len, str, nstr);
    b->len += nstr;
    b->buf[b->len] = '\0';
    return TB_OK;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rsi
addq -0x20(%rbp), %rsi
addq $0x1, %rsi
callq 0xe500
movl %eax, -0x24(%rbp)
cmpl $0x0, %eax
je 0x8b1d
movl -0x24(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x8b63
movq -0x10(%rbp), %rax
movq (%rax), %rdi
movq -0x10(%rbp), %rax
addq 0x8(%rax), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x6360
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
addq 0x8(%rax), %rcx
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x8(%rcx), %rcx
movb $0x0, (%rax,%rcx)
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/vendor/termbox2/termbox2.h
// Function: tb_sendf
int tb_sendf(const char *fmt, ...) {
    int rv;
    char buf[TB_OPT_PRINTF_BUF];
    va_list vl;
    va_start(vl, fmt);
    rv = vsnprintf(buf, sizeof(buf), fmt, vl);
    va_end(vl);
    if (rv < 0 || rv >= (int)sizeof(buf)) {
        return TB_ERR;
    }
    return tb_send(buf, (size_t)rv);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10f0, %rsp           # imm = 0x10F0
testb %al, %al
je 0x8bb7
movaps %xmm0, -0x10c0(%rbp)
movaps %xmm1, -0x10b0(%rbp)
movaps %xmm2, -0x10a0(%rbp)
movaps %xmm3, -0x1090(%rbp)
movaps %xmm4, -0x1080(%rbp)
movaps %xmm5, -0x1070(%rbp)
movaps %xmm6, -0x1060(%rbp)
movaps %xmm7, -0x1050(%rbp)
movq %r9, -0x10c8(%rbp)
movq %r8, -0x10d0(%rbp)
movq %rcx, -0x10d8(%rbp)
movq %rdx, -0x10e0(%rbp)
movq %rsi, -0x10e8(%rbp)
movq %rdi, -0x10(%rbp)
leaq -0x1040(%rbp), %rax
leaq -0x10f0(%rbp), %rcx
movq %rcx, 0x10(%rax)
leaq 0x10(%rbp), %rcx
movq %rcx, 0x8(%rax)
movl $0x30, 0x4(%rax)
movl $0x8, (%rax)
leaq -0x1020(%rbp), %rdi
movq -0x10(%rbp), %rdx
leaq -0x1040(%rbp), %rcx
movl $0x1000, %esi           # imm = 0x1000
callq 0x60f0
movl %eax, -0x14(%rbp)
leaq -0x1040(%rbp), %rax
cmpl $0x0, -0x14(%rbp)
jl 0x8c3a
cmpl $0x1000, -0x14(%rbp)    # imm = 0x1000
jl 0x8c43
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x8c56
leaq -0x1020(%rbp), %rdi
movslq -0x14(%rbp), %rsi
callq 0x8aa0
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x10f0, %rsp           # imm = 0x10F0
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/vendor/termbox2/termbox2.h
// Function: tb_set_func
int tb_set_func(int fn_type, int (*fn)(struct tb_event *, size_t *)) {
    switch (fn_type) {
        case TB_FUNC_EXTRACT_PRE:
            global.fn_extract_esc_pre = fn;
            return TB_OK;
        case TB_FUNC_EXTRACT_POST:
            global.fn_extract_esc_post = fn;
            return TB_OK;
    }
    return TB_ERR;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl -0x8(%rbp), %eax
movl %eax, -0x14(%rbp)
testl %eax, %eax
je 0x8c91
jmp 0x8c87
movl -0x14(%rbp), %eax
subl $0x1, %eax
je 0x8ca5
jmp 0x8cb9
movq -0x10(%rbp), %rax
movq %rax, 0x33424(%rip)     # 0x3c0c0
movl $0x0, -0x4(%rbp)
jmp 0x8cc0
movq -0x10(%rbp), %rax
movq %rax, 0x33418(%rip)     # 0x3c0c8
movl $0x0, -0x4(%rbp)
jmp 0x8cc0
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
movl -0x4(%rbp), %eax
popq %rbp
retq
nopw %cs:(%rax,%rax)