LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/rafa9811[P]theIndiependenceGame/player.c
// Function: player_move
Player* player_move(Player *c,int x, int y){
	if(!c) return NULL;
	c->px=x;
	c->py=y;
	return c;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl %edx, -0x18(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x587f
movq $0x0, -0x8(%rbp)
jmp 0x589a
movl -0x14(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, (%rax)
movl -0x18(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x4(%rax)
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/rafa9811[P]theIndiependenceGame/player.c
// Function: player_get_px
int player_get_px(Player* c){
	int px;
	if(!c) return -1;
	px= c->px;
	return px;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x5928
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x5937
movq -0x10(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/rafa9811[P]theIndiependenceGame/player.c
// Function: player_get_py
int player_get_py(Player* c){
	int py;
	if(!c) return -1;
	py= c->py;
	return py;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x5958
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x5968
movq -0x10(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/rafa9811[P]theIndiependenceGame/player.c
// Function: player_distance
int player_distance(Player *c, int x, int y){
	int px, py;
	if (!c) return -1;
	px = player_get_px(c);
	py = player_get_py(c);
	if ((abs(x-px)) == (abs(y-py))) return abs(x-px+1);
	else if ((abs(x-px)) > (abs(y-py))) return (abs(x-px));
	else return (abs(y-py));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl %edx, -0x18(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x5995
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x5a20
movq -0x10(%rbp), %rdi
callq 0x5910
movl %eax, -0x1c(%rbp)
movq -0x10(%rbp), %rdi
callq 0x5940
movl %eax, -0x20(%rbp)
movl -0x14(%rbp), %eax
subl -0x1c(%rbp), %eax
movl %eax, %ecx
negl %ecx
cmovnsl %ecx, %eax
movl -0x18(%rbp), %ecx
subl -0x20(%rbp), %ecx
movl %ecx, %edx
negl %edx
cmovnsl %edx, %ecx
cmpl %ecx, %eax
jne 0x59e0
movl -0x14(%rbp), %eax
subl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, %ecx
negl %ecx
cmovnsl %ecx, %eax
movl %eax, -0x4(%rbp)
jmp 0x5a20
movl -0x14(%rbp), %eax
subl -0x1c(%rbp), %eax
movl %eax, %ecx
negl %ecx
cmovnsl %ecx, %eax
movl -0x18(%rbp), %ecx
subl -0x20(%rbp), %ecx
movl %ecx, %edx
negl %edx
cmovnsl %edx, %ecx
cmpl %ecx, %eax
jle 0x5a10
movl -0x14(%rbp), %eax
subl -0x1c(%rbp), %eax
movl %eax, %ecx
negl %ecx
cmovnsl %ecx, %eax
movl %eax, -0x4(%rbp)
jmp 0x5a20
movl -0x18(%rbp), %eax
subl -0x20(%rbp), %eax
movl %eax, %ecx
negl %ecx
cmovnsl %ecx, %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/rafa9811[P]theIndiependenceGame/player.c
// Function: player_isNear
int player_isNear(Player *c, int x, int y){ /*x e y son las del objeto*/
	if (!c) return -1;
	if (player_distance(c, x, y) == 1) return 1;
	else return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl %edx, -0x18(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x5a52
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x5a76
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
callq 0x5970
cmpl $0x1, %eax
jne 0x5a6f
movl $0x1, -0x4(%rbp)
jmp 0x5a76
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/rafa9811[P]theIndiependenceGame/rectangles.c
// Function: move_to
void _move_to(sc_rectangle *sc, int r, int c) {

    if (r < 0) r = 0;
    if (c < 0) c = 0;
    if (r >= sc->nr) r = sc->nr - 1;
    if (c >= sc->nc) c = sc->nc - 1;
    r += (sc->r1 + 1);
    c += (sc->c1 + 1);
    printf("%c[%d;%dH", 27, r, c);
    return;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
cmpl $0x0, -0xc(%rbp)
jge 0x5a9f
movl $0x0, -0xc(%rbp)
cmpl $0x0, -0x10(%rbp)
jge 0x5aac
movl $0x0, -0x10(%rbp)
movl -0xc(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jl 0x5ac5
movq -0x8(%rbp), %rax
movl 0x8(%rax), %eax
subl $0x1, %eax
movl %eax, -0xc(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0xc(%rcx), %eax
jl 0x5ade
movq -0x8(%rbp), %rax
movl 0xc(%rax), %eax
subl $0x1, %eax
movl %eax, -0x10(%rbp)
movq -0x8(%rbp), %rax
movl 0x4(%rax), %eax
addl $0x1, %eax
addl -0xc(%rbp), %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rax
movl (%rax), %eax
addl $0x1, %eax
addl -0x10(%rbp), %eax
movl %eax, -0x10(%rbp)
movl -0xc(%rbp), %edx
movl -0x10(%rbp), %ecx
leaq 0x367b(%rip), %rdi      # 0x9185
movl $0x1b, %esi
movb $0x0, %al
callq 0x1090
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/rafa9811[P]theIndiependenceGame/rectangles.c
// Function: win_new
sc_rectangle *win_new(int r1, int c1, int nr, int nc, int bg, int fg) {
    sc_rectangle *src = (sc_rectangle *) malloc(sizeof (sc_rectangle));
    src->r1 = r1;
    src->c1 = c1;
    src->nr = nr;
    src->nc = nc;

    src->bg_color = bg;
    src->fg_color = fg;

    return src;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl %edi, -0x4(%rbp)
movl %esi, -0x8(%rbp)
movl %edx, -0xc(%rbp)
movl %ecx, -0x10(%rbp)
movl %r8d, -0x14(%rbp)
movl %r9d, -0x18(%rbp)
movl $0x28, %edi
callq 0x1130
movq %rax, -0x20(%rbp)
movl -0x4(%rbp), %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0x4(%rax)
movl -0x8(%rbp), %ecx
movq -0x20(%rbp), %rax
movl %ecx, (%rax)
movl -0xc(%rbp), %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0x8(%rax)
movl -0x10(%rbp), %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0xc(%rax)
movl -0x14(%rbp), %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0x1c(%rax)
movl -0x18(%rbp), %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0x20(%rax)
movq -0x20(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/rafa9811[P]theIndiependenceGame/rectangles.c
// Function: win_cls
void win_cls(sc_rectangle *sc) {
    char *buf;
    int i;

    sc->last_line = 0;
    //    if (!_is_visible(sc)) return;
    buf = (char *) malloc((sc->nc + 1) * sizeof (char));
    memset(buf, ' ', sc->nc);
    buf[sc->nc] = 0;
    _prepare_font(sc);
    for (i = sc->r1; i < sc->r1 + sc->nr; i++) {
        _move_to(sc, i - sc->r1, 0); /*Este -1 esta puesto de forma aleatoria, pero funciona*/
        printf("%s", buf);
        /*    printf("%d", i);
            fflush(stdout); */
    }
    fflush(stdout);
    free(buf);
    return;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movl $0x0, 0x18(%rax)
movq -0x8(%rbp), %rax
movl 0xc(%rax), %eax
addl $0x1, %eax
movslq %eax, %rdi
shlq $0x0, %rdi
callq 0x1130
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movslq 0xc(%rax), %rdx
movl $0x20, %esi
callq 0x10b0
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %rcx
movslq 0xc(%rcx), %rcx
movb $0x0, (%rax,%rcx)
movq -0x8(%rbp), %rdi
callq 0x5c60
movq -0x8(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x8(%rbp), %rcx
movl 0x4(%rcx), %ecx
movq -0x8(%rbp), %rdx
addl 0x8(%rdx), %ecx
cmpl %ecx, %eax
jge 0x5c41
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
movq -0x8(%rbp), %rax
subl 0x4(%rax), %esi
xorl %edx, %edx
callq 0x5a80
movq -0x10(%rbp), %rsi
leaq 0x3f26(%rip), %rdi      # 0x9b55
movb $0x0, %al
callq 0x1090
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x5bfa
movq 0x7390(%rip), %rax      # 0xcfd8
movq (%rax), %rdi
callq 0x1140
movq -0x10(%rbp), %rdi
callq 0x1030
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/rafa9811[P]theIndiependenceGame/rectangles.c
// Function: win_write_line_at
int win_write_line_at(sc_rectangle *sc, int r, int c, char *str) {
    char *nl_p;
    char save, av_space, ret;

    if (!_is_visible(sc)) return 0;
    if (r >= sc->nr || c >= sc->nc) return 0;
    nl_p = strchr(str, '\n');
    if (nl_p) *nl_p = 0;

    av_space = sc->nc - c;
    save = -1;
    if (strlen(str) > av_space) {
        save = str[av_space - 1];
        str[av_space - 1] = 0;
    }

    _prepare_font(sc);
    _move_to(sc, r, c);
    printf("%s", str);
    fflush(stdout);
    if (save > 0) {
        str[av_space - 1] = save;
        ret = av_space;
    } else
        ret = strlen(str);
    if (nl_p) *nl_p = '\n';
    sc->last_line = r;
    return ret;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl %edx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x10(%rbp), %rdi
callq 0x5d20
cmpl $0x0, %eax
jne 0x5e00
movl $0x0, -0x4(%rbp)
jmp 0x5f17
movl -0x14(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jge 0x5e18
movl -0x18(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0xc(%rcx), %eax
jl 0x5e24
movl $0x0, -0x4(%rbp)
jmp 0x5f17
movq -0x20(%rbp), %rdi
movl $0xa, %esi
callq 0x1080
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x5e44
movq -0x28(%rbp), %rax
movb $0x0, (%rax)
movq -0x10(%rbp), %rax
movl 0xc(%rax), %eax
subl -0x18(%rbp), %eax
movb %al, -0x2a(%rbp)
movb $-0x1, -0x29(%rbp)
movq -0x20(%rbp), %rdi
callq 0x1070
movsbq -0x2a(%rbp), %rcx
cmpq %rcx, %rax
jbe 0x5e8e
movq -0x20(%rbp), %rax
movsbl -0x2a(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movb (%rax,%rcx), %al
movb %al, -0x29(%rbp)
movq -0x20(%rbp), %rax
movsbl -0x2a(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movb $0x0, (%rax,%rcx)
movq -0x10(%rbp), %rdi
callq 0x5c60
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
callq 0x5a80
movq -0x20(%rbp), %rsi
leaq 0x3ca4(%rip), %rdi      # 0x9b55
movb $0x0, %al
callq 0x1090
movq 0x7119(%rip), %rax      # 0xcfd8
movq (%rax), %rdi
callq 0x1140
movsbl -0x29(%rbp), %eax
cmpl $0x0, %eax
jle 0x5eec
movb -0x29(%rbp), %dl
movq -0x20(%rbp), %rax
movsbl -0x2a(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movb -0x2a(%rbp), %al
movb %al, -0x2b(%rbp)
jmp 0x5ef8
movq -0x20(%rbp), %rdi
callq 0x1070
movb %al, -0x2b(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x5f06
movq -0x28(%rbp), %rax
movb $0xa, (%rax)
movl -0x14(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x18(%rax)
movsbl -0x2b(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/rafa9811[P]theIndiependenceGame/rectangles.c
// Function: win_write_char_at
int win_write_char_at(sc_rectangle *sc, int r, int c, char ch) {

    if (!_is_visible(sc)) return 0;
    if (r >= sc->nr || c >= sc->nc) return 0;

    _move_to(sc, r, c);
    printf("%c", ch);
    fflush(stdout);
    return 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %cl, %al
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl %edx, -0x18(%rbp)
movb %al, -0x19(%rbp)
movq -0x10(%rbp), %rdi
callq 0x5d20
cmpl $0x0, %eax
jne 0x5f4e
movl $0x0, -0x4(%rbp)
jmp 0x5fa6
movl -0x14(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jge 0x5f66
movl -0x18(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0xc(%rcx), %eax
jl 0x5f6f
movl $0x0, -0x4(%rbp)
jmp 0x5fa6
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
callq 0x5a80
movsbl -0x19(%rbp), %esi
leaq 0x3206(%rip), %rdi      # 0x918f
movb $0x0, %al
callq 0x1090
movq 0x7041(%rip), %rax      # 0xcfd8
movq (%rax), %rdi
callq 0x1140
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/rafa9811[P]theIndiependenceGame/stats.c
// Function: stat_ini
Stat* stat_ini (){
    Stat* stat;
    stat=(Stat*)malloc(sizeof(Stat));
    if(!stat) {
        return NULL;
    }
    stat->motivation = 0;
    stat->chaos = INI_CHAOS;
    stat->danger = 0;
    stat->stars = 0;
    stat->money = INI_MONEY;
    stat->nodanger = 0;
    return stat;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl $0x18, %edi
callq 0x1130
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x5fd7
movq $0x0, -0x8(%rbp)
jmp 0x6020
movq -0x10(%rbp), %rax
movl $0x0, (%rax)
movq -0x10(%rbp), %rax
movl $0x0, 0x4(%rax)
movq -0x10(%rbp), %rax
movl $0x0, 0x8(%rax)
movq -0x10(%rbp), %rax
movl $0x0, 0xc(%rax)
movq -0x10(%rbp), %rax
movl $0x834, 0x10(%rax)      # imm = 0x834
movq -0x10(%rbp), %rax
movl $0x0, 0x14(%rax)
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x10, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/rafa9811[P]theIndiependenceGame/stats.c
// Function: stat_set_motivation
Stat* stat_set_motivation (Stat* stat, int motivation){
    if (!stat){
        return NULL;
    }
    stat->motivation=motivation;
    return stat;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x607c
movq $0x0, -0x8(%rbp)
jmp 0x608d
movl -0x14(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, (%rax)
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/rafa9811[P]theIndiependenceGame/stats.c
// Function: stat_add_motivation
Stat* stat_add_motivation (Stat* stat, int motivation){
    if (!stat){
        return NULL;
    }
    stat->motivation+=motivation;
    return stat;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x60bc
movq $0x0, -0x8(%rbp)
jmp 0x60cf
movl -0x14(%rbp), %ecx
movq -0x10(%rbp), %rax
addl (%rax), %ecx
movl %ecx, (%rax)
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/rafa9811[P]theIndiependenceGame/stats.c
// Function: stat_set_chaos
Stat* stat_set_chaos (Stat* stat, int chaos){
    if (!stat){
        return NULL;
    }
    stat->chaos=chaos;
    return stat;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x612c
movq $0x0, -0x8(%rbp)
jmp 0x613e
movl -0x14(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x4(%rax)
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/rafa9811[P]theIndiependenceGame/stats.c
// Function: stat_add_chaos
Stat* stat_add_chaos (Stat* stat, int chaos){
    if (!stat){
        return NULL;
    }
    stat->chaos+=chaos;
    if(stat->chaos<0) stat->chaos = 0;
    return stat;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x616c
movq $0x0, -0x8(%rbp)
jmp 0x6196
movl -0x14(%rbp), %ecx
movq -0x10(%rbp), %rax
addl 0x4(%rax), %ecx
movl %ecx, 0x4(%rax)
movq -0x10(%rbp), %rax
cmpl $0x0, 0x4(%rax)
jge 0x618e
movq -0x10(%rbp), %rax
movl $0x0, 0x4(%rax)
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/rafa9811[P]theIndiependenceGame/stats.c
// Function: stat_set_danger
Stat* stat_set_danger (Stat* stat, int danger){
    if (!stat){
        return NULL;
    }
    stat->danger=danger;
    return stat;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x61ec
movq $0x0, -0x8(%rbp)
jmp 0x61fe
movl -0x14(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x8(%rax)
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/rafa9811[P]theIndiependenceGame/stats.c
// Function: stat_add_danger
Stat* stat_add_danger (Stat* stat, int danger){
    if (!stat){
        return NULL;
    }
    stat->danger+=danger;
    return stat;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x622c
movq $0x0, -0x8(%rbp)
jmp 0x6241
movl -0x14(%rbp), %ecx
movq -0x10(%rbp), %rax
addl 0x8(%rax), %ecx
movl %ecx, 0x8(%rax)
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/rafa9811[P]theIndiependenceGame/stats.c
// Function: stat_set_money
Stat* stat_set_money (Stat* stat, int money){
    if (!stat){
        return NULL;
    }
    stat->money=money;
    return stat;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x629c
movq $0x0, -0x8(%rbp)
jmp 0x62ae
movl -0x14(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x10(%rax)
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/rafa9811[P]theIndiependenceGame/stats.c
// Function: stat_add_money
Stat* stat_add_money (Stat* stat, int money){
    if (!stat){
        return NULL;
    }
    stat->money+=money;
    return stat;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x62dc
movq $0x0, -0x8(%rbp)
jmp 0x62f1
movl -0x14(%rbp), %ecx
movq -0x10(%rbp), %rax
addl 0x10(%rax), %ecx
movl %ecx, 0x10(%rax)
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/rafa9811[P]theIndiependenceGame/stats.c
// Function: stat_add_nodanger
Stat* stat_add_nodanger (Stat* stat, int nodanger){
    if (!stat){
        return NULL;
    }
    stat->nodanger+=nodanger;
    return stat;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x634c
movq $0x0, -0x8(%rbp)
jmp 0x6361
movl -0x14(%rbp), %ecx
movq -0x10(%rbp), %rax
addl 0x14(%rax), %ecx
movl %ecx, 0x14(%rax)
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/rafa9811[P]theIndiependenceGame/stats.c
// Function: stat_stars
Stat* stat_stars (Stat* stat){
    int stars;
    if (!stat){
        return NULL;
    }
    stars = (int) stat->danger/DPERSTAR;
    if (stars > 5){
        stat->stars=5;
    }
    else if (stars < 0){
        return NULL;
    }
    else{
        stat->stars=stars;
    }
    return stat;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x63b9
movq $0x0, -0x8(%rbp)
jmp 0x6402
movq -0x10(%rbp), %rax
movl 0x8(%rax), %eax
movl $0x3e8, %ecx            # imm = 0x3E8
cltd
idivl %ecx
movl %eax, -0x14(%rbp)
cmpl $0x5, -0x14(%rbp)
jle 0x63de
movq -0x10(%rbp), %rax
movl $0x5, 0xc(%rax)
jmp 0x63fa
cmpl $0x0, -0x14(%rbp)
jge 0x63ee
movq $0x0, -0x8(%rbp)
jmp 0x6402
movl -0x14(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0xc(%rax)
jmp 0x63fa
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/rafa9811[P]theIndiependenceGame/interact.c
// Function: interact_getDialog
char* interact_getDialog(Interact *interact){
    if(!interact){
        return NULL;
    }
    if(!IN(dialog)){
        return NULL;
    }
    return IN(dialog);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x6789
movq $0x0, -0x8(%rbp)
jmp 0x67ad
movq -0x10(%rbp), %rax
addq $0x40, %rax
cmpq $0x0, %rax
jne 0x67a1
movq $0x0, -0x8(%rbp)
jmp 0x67ad
movq -0x10(%rbp), %rax
addq $0x40, %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/rafa9811[P]theIndiependenceGame/interact.c
// Function: interact_updateClk
void interact_updateClk(double remaining, Interact *interact){
  int newDanger, motivation, chaos, remainingtime, nodanger;
  if(!interact) return;
  if(!IN(stat)) return;
  motivation = stat_get_motivation(IN(stat));
  chaos = stat_get_chaos(IN(stat));
  nodanger = stat_get_nodanger(IN(stat));
  remainingtime = TIME - remaining;
  remainingtime = (remainingtime*remainingtime)/DANGER1;
  newDanger = motivation - chaos + remainingtime + nodanger;
  /*if(newDanger<0){
    newDanger=0;
  }*/
  stat_set_danger(IN(stat),newDanger);
  stat_stars(IN(stat));
  return;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movsd %xmm0, -0x8(%rbp)
movq %rdi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x69ed
jmp 0x6a7f
movq -0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x69fd
jmp 0x6a7f
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x60e0
movl %eax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x61a0
movl %eax, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x6370
movl %eax, -0x24(%rbp)
movsd 0x25db(%rip), %xmm0     # 0x9010
subsd -0x8(%rbp), %xmm0
cvttsd2si %xmm0, %eax
movl %eax, -0x20(%rbp)
movl -0x20(%rbp), %eax
imull -0x20(%rbp), %eax
movl $0x21, %ecx
cltd
idivl %ecx
movl %eax, -0x20(%rbp)
movl -0x18(%rbp), %eax
subl -0x1c(%rbp), %eax
addl -0x20(%rbp), %eax
addl -0x24(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
movl -0x14(%rbp), %esi
callq 0x61d0
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x63a0
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/rafa9811[P]theIndiependenceGame/interface.c
// Function: interface_ini
Interface* interface_ini(){
    Interface *interface;
    interface = (Interface*)malloc(sizeof(Interface));
    /*The screen win, where our player moves, picks up objects, interacts... The main action in the game*/
    interface->screen = win_new(0, 0, SCREENY+2, SCREENX+3, BGCOLOR, CHARCOLOR);
    /*The dialogs window is where every dialog stored in interact_play will be printed:*/
    interface->dlgs = win_new(SCREENY+2, 0, DLGY, DLGX, BGCOLOR, CHARCOLOR);
    /*The clk window, that won't be used here, but in the main c, where it is constantly updating for showing the remaining time.
    If it was printed at the same pace as the rest of the windows, we would only get an update of the remaining time when we do something.*/
    interface->clk = win_new(0,SCREENX+5,CLKY,CLKX,BGCOLOR,CHARCOLOR);
    /*Stat screen, updated every time we do something, for showing our money, number of printers activated and so on:*/
    interface->stats = win_new(CLKY, SCREENX+2, STATY, STATX, BGCOLOR, CHARCOLOR);
    return interface;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl $0x20, %edi
callq 0x1130
movq %rax, -0x8(%rbp)
xorl %r9d, %r9d
movl $0x26, %edx
movl $0x53, %ecx
movl $0x1, %r8d
movl %r9d, %edi
movl %r9d, %esi
callq 0x5b20
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, (%rax)
movl $0x26, %edi
xorl %r9d, %r9d
movl $0xa, %edx
movl $0x78, %ecx
movl $0x1, %r8d
movl %r9d, %esi
callq 0x5b20
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x8(%rax)
xorl %r9d, %r9d
movl $0x55, %esi
movl $0x5, %edx
movl $0x28, %ecx
movl $0x1, %r8d
movl %r9d, %edi
callq 0x5b20
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x18(%rax)
movl $0x5, %edi
movl $0x52, %esi
movl $0x1f, %edx
movl $0x28, %ecx
movl $0x1, %r8d
xorl %r9d, %r9d
callq 0x5b20
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/rafa9811[P]theIndiependenceGame/interface.c
// Function: interface_printDialog
int interface_printDialog(Interact* interact, Interface* interface){
    char *dialog,*ini,line[2*DLG_LINE];
    int len,i=0,linenumber=2;
    if(!interact || !interface) return -1;
    win_cls(interface->dlgs);
    dialog=(char*)malloc(1024);
    strcpy(dialog,interact_getDialog(interact));
    len = strlen(dialog);
    if(len>DLG_LINE){
        ini=dialog;
        while(i<len && linenumber<DLG_LINE){
        dialog = ini + i;
        memcpy(line,dialog,DLG_LINE);
        win_write_line_at(interface->dlgs,linenumber,2,line);
        i+=DLG_LINE;
        linenumber++;
        }
    }
    else win_write_line_at(interface->dlgs,linenumber,2,dialog);
    dialog=ini;
    if(dialog)free(dialog);
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x110, %rsp            # imm = 0x110
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movl $0x0, -0xf8(%rbp)
movl $0x2, -0xfc(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x78b5
cmpq $0x0, -0x18(%rbp)
jne 0x78c1
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x79fb
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x5b90
movl $0x400, %edi            # imm = 0x400
callq 0x1130
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x108(%rbp)
movq -0x10(%rbp), %rdi
callq 0x6770
movq -0x108(%rbp), %rdi
movq %rax, %rsi
callq 0x1040
movq -0x20(%rbp), %rdi
callq 0x1070
movl %eax, -0xf4(%rbp)
cmpl $0x69, -0xf4(%rbp)
jle 0x79c0
movq -0x20(%rbp), %rax
movq %rax, -0x28(%rbp)
movl -0xf8(%rbp), %ecx
xorl %eax, %eax
cmpl -0xf4(%rbp), %ecx
movb %al, -0x109(%rbp)
jge 0x7949
cmpl $0x69, -0xfc(%rbp)
setl %al
movb %al, -0x109(%rbp)
movb -0x109(%rbp), %al
testb $0x1, %al
jne 0x7955
jmp 0x79be
movq -0x28(%rbp), %rax
movslq -0xf8(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
leaq -0xf0(%rbp), %rdi
movq -0x20(%rbp), %rsi
movl $0x69, %edx
callq 0x1100
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rdi
movl -0xfc(%rbp), %esi
leaq -0xf0(%rbp), %rcx
movl $0x2, %edx
callq 0x5dd0
movl -0xf8(%rbp), %eax
addl $0x69, %eax
movl %eax, -0xf8(%rbp)
movl -0xfc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xfc(%rbp)
jmp 0x7923
jmp 0x79dc
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rdi
movl -0xfc(%rbp), %esi
movq -0x20(%rbp), %rcx
movl $0x2, %edx
callq 0x5dd0
movq -0x28(%rbp), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0x79f4
movq -0x20(%rbp), %rdi
callq 0x1030
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x110, %rsp            # imm = 0x110
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/rafa9811[P]theIndiependenceGame/interface.c
// Function: interface_printScreen
int interface_printScreen(Interact *interact, Interface* interface){
    int linenumber=0,room;
    char line[SCREEN_LINE*2],*draw,*ini;
    int i=0;
    if(!interact || !interface) return -1;
    win_cls(interface->screen);
    room=player_get_room(interact_getPlayer(interact));
    draw=map_getRoomDraw(interact_getMap(interact),room);
    if(!draw)return -1;
    ini=draw;
    while(linenumber<=YLIMIT){
      draw = ini + i;
      memcpy(line,draw,SCREEN_LINE);
      win_write_line_at(interface->screen,linenumber,2,line);
      i+=SCREEN_LINE;
      linenumber++;
    }
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xe0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movl $0x0, -0x1c(%rbp)
movl $0x0, -0xd4(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x7ce2
cmpq $0x0, -0x18(%rbp)
jne 0x7cee
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x7dbf
movq -0x18(%rbp), %rax
movq (%rax), %rdi
callq 0x5b90
movq -0x10(%rbp), %rdi
callq 0x6880
movq %rax, %rdi
callq 0x58e0
movl %eax, -0x20(%rbp)
movq -0x10(%rbp), %rdi
callq 0x68b0
movq %rax, %rdi
movl -0x20(%rbp), %esi
callq 0x3490
movq %rax, -0xc8(%rbp)
cmpq $0x0, -0xc8(%rbp)
jne 0x7d3f
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x7dbf
movq -0xc8(%rbp), %rax
movq %rax, -0xd0(%rbp)
cmpl $0x24, -0x1c(%rbp)
jg 0x7db8
movq -0xd0(%rbp), %rax
movslq -0xd4(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0xc8(%rbp)
leaq -0xc0(%rbp), %rdi
movq -0xc8(%rbp), %rsi
movl $0x50, %edx
callq 0x1100
movq -0x18(%rbp), %rax
movq (%rax), %rdi
movl -0x1c(%rbp), %esi
leaq -0xc0(%rbp), %rcx
movl $0x2, %edx
callq 0x5dd0
movl -0xd4(%rbp), %eax
addl $0x50, %eax
movl %eax, -0xd4(%rbp)
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x7d4d
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0xe0, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/rafa9811[P]theIndiependenceGame/interface.c
// Function: interface_printPlayer
int interface_printPlayer(Interact *interact, Interface* interface){
  int px,py;
  Player*player;
  if(!interact||!interface) return -1;
  player=interact_getPlayer(interact);
  if(!player) return -1;
  px=player_get_px(player);
  py=player_get_py(player);
  if(px<0||py<0||px>XLIMIT||py>YLIMIT) return -1;
  win_write_char_at(interface->screen,py,px,PLAYER_CHAR);
  return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x7dee
cmpq $0x0, -0x18(%rbp)
jne 0x7df7
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x7e6f
movq -0x10(%rbp), %rdi
callq 0x6880
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x7e14
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x7e6f
movq -0x28(%rbp), %rdi
movb $0x0, %al
callq 0x5910
movl %eax, -0x1c(%rbp)
movq -0x28(%rbp), %rdi
movb $0x0, %al
callq 0x5940
movl %eax, -0x20(%rbp)
cmpl $0x0, -0x1c(%rbp)
jl 0x7e48
cmpl $0x0, -0x20(%rbp)
jl 0x7e48
cmpl $0x50, -0x1c(%rbp)
jg 0x7e48
cmpl $0x24, -0x20(%rbp)
jle 0x7e51
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x7e6f
movq -0x18(%rbp), %rax
movq (%rax), %rdi
movl -0x20(%rbp), %esi
movl -0x1c(%rbp), %edx
movl $0x40, %ecx
callq 0x5f20
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/rafa9811[P]theIndiependenceGame/interface.c
// Function: interface_blankSpace
int interface_blankSpace(Interact *interact, Interface* interface){
  int px,py;
  if(!interact||!interface) return -1;
  px=interact_getPx(interact);
  py=interact_getPy(interact);
  if(px<0||py<0||px>XLIMIT||py>YLIMIT) return -1;
  win_write_char_at(interface->screen,py,px,' ');
  return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x7e9e
cmpq $0x0, -0x18(%rbp)
jne 0x7ea7
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x7efe
movq -0x10(%rbp), %rdi
callq 0x6970
movl %eax, -0x1c(%rbp)
movq -0x10(%rbp), %rdi
callq 0x69a0
movl %eax, -0x20(%rbp)
cmpl $0x0, -0x1c(%rbp)
jl 0x7ed7
cmpl $0x0, -0x20(%rbp)
jl 0x7ed7
cmpl $0x50, -0x1c(%rbp)
jg 0x7ed7
cmpl $0x24, -0x20(%rbp)
jle 0x7ee0
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x7efe
movq -0x18(%rbp), %rax
movq (%rax), %rdi
movl -0x20(%rbp), %esi
movl -0x1c(%rbp), %edx
movl $0x20, %ecx
callq 0x5f20
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/rafa9811[P]theIndiependenceGame/interface.c
// Function: interface_printClock
void interface_printClock(sc_rectangle *clk,double remaining, short inDanger){
  char line[STAT_LINE];
  if(inDanger < 0 || inDanger > 1) return;
  win_cls(clk);
  if(inDanger == 0){
    if(remaining>0){
      if(((int)remaining)%60<10) sprintf(line,"Remaining time: %d:0%d\n",(int)remaining/60,(int)remaining%60);
      else sprintf(line,"Remaining time: %d:%d\n",(int)remaining/60,(int)remaining%60);
    }
    else sprintf(line,"TIME'S UP!");
  }
  else{
    if(remaining>0){
      if(((int)remaining)%60<10) sprintf(line,"Time until detention: %d:0%d\n",(int)remaining/60,(int)remaining%60);
      else sprintf(line,"Time until detention: %d:%d\n",(int)remaining/60,(int)remaining%60);
    }
    else sprintf(line,"ARRESTED!");
  }
  win_write_line_at(clk,1,2,line);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movw %si, %ax
movq %rdi, -0x8(%rbp)
movsd %xmm0, -0x10(%rbp)
movw %ax, -0x12(%rbp)
movswl -0x12(%rbp), %eax
cmpl $0x0, %eax
jl 0x848a
movswl -0x12(%rbp), %eax
cmpl $0x1, %eax
jle 0x848f
jmp 0x85ff
movq -0x8(%rbp), %rdi
callq 0x5b90
movswl -0x12(%rbp), %eax
cmpl $0x0, %eax
jne 0x8548
movsd -0x10(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x8531
cvttsd2si -0x10(%rbp), %eax
movl $0x3c, %ecx
cltd
idivl %ecx
cmpl $0xa, %edx
jge 0x84fb
leaq -0x40(%rbp), %rdi
cvttsd2si -0x10(%rbp), %eax
movl $0x3c, %ecx
cltd
idivl %ecx
movl %eax, -0x44(%rbp)
cvttsd2si -0x10(%rbp), %eax
movl $0x3c, %ecx
cltd
idivl %ecx
movl %edx, %ecx
movl -0x44(%rbp), %edx
leaq 0x1666(%rip), %rsi      # 0x9b58
movb $0x0, %al
callq 0x11a0
jmp 0x852f
leaq -0x40(%rbp), %rdi
cvttsd2si -0x10(%rbp), %eax
movl $0x3c, %ecx
cltd
idivl %ecx
movl %eax, -0x48(%rbp)
cvttsd2si -0x10(%rbp), %eax
movl $0x3c, %ecx
cltd
idivl %ecx
movl %edx, %ecx
movl -0x48(%rbp), %edx
leaq 0x1648(%rip), %rsi      # 0x9b70
movb $0x0, %al
callq 0x11a0
jmp 0x8543
leaq -0x40(%rbp), %rdi
leaq 0x164b(%rip), %rsi      # 0x9b87
movb $0x0, %al
callq 0x11a0
jmp 0x85e8
movsd -0x10(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x85d4
cvttsd2si -0x10(%rbp), %eax
movl $0x3c, %ecx
cltd
idivl %ecx
cmpl $0xa, %edx
jge 0x859e
leaq -0x40(%rbp), %rdi
cvttsd2si -0x10(%rbp), %eax
movl $0x3c, %ecx
cltd
idivl %ecx
movl %eax, -0x4c(%rbp)
cvttsd2si -0x10(%rbp), %eax
movl $0x3c, %ecx
cltd
idivl %ecx
movl %edx, %ecx
movl -0x4c(%rbp), %edx
leaq 0x15fd(%rip), %rsi      # 0x9b92
movb $0x0, %al
callq 0x11a0
jmp 0x85d2
leaq -0x40(%rbp), %rdi
cvttsd2si -0x10(%rbp), %eax
movl $0x3c, %ecx
cltd
idivl %ecx
movl %eax, -0x50(%rbp)
cvttsd2si -0x10(%rbp), %eax
movl $0x3c, %ecx
cltd
idivl %ecx
movl %edx, %ecx
movl -0x50(%rbp), %edx
leaq 0x15e5(%rip), %rsi      # 0x9bb0
movb $0x0, %al
callq 0x11a0
jmp 0x85e6
leaq -0x40(%rbp), %rdi
leaq 0x15ee(%rip), %rsi      # 0x9bcd
movb $0x0, %al
callq 0x11a0
jmp 0x85e8
movq -0x8(%rbp), %rdi
leaq -0x40(%rbp), %rcx
movl $0x1, %esi
movl $0x2, %edx
callq 0x5dd0
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/rafa9811[P]theIndiependenceGame/interface.c
// Function: interface_start
void interface_start(Interact *interact, Interface* interface){
  if(!interact || !interface) exit(-1);
  PRINT_DIALOG;
  PRINT_STAT;
  PRINT_SCREEN;
  PRINT_PLAYER;
  return;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x862e
cmpq $0x0, -0x10(%rbp)
jne 0x8638
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x11b0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x7880
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x7a10
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x7cb0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x7dd0
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Tarsnap[P]kivaloo/liball/../lib/proto_s3/proto_s3_client.c
// Function: callback_put
static int
callback_put(void * cookie, uint8_t * buf, size_t buflen)
{
	struct put_cookie * C = cookie;
	int failed = 1;
	uint32_t status;
	int rc;

	/* If we have a packet, parse it. */
	if (buf != NULL) {
		/* Do we have the right packet length? */
		if (buflen != 4)
			BAD("PUT", "bogus length");

		/* Parse the packet. */
		status = be32dec(&buf[0]);

		/* Check status. */
		if ((status != 0) && ((status < 100) || (status > 599)))
			BAD("PUT", "Invalid HTTP status");

		/* Did the operation succeed? */
		if (status == 200)
			failed = 0;
	}

failed:
	/* Invoke the upstream callback. */
	rc = (C->callback)(C->cookie, failed);

	/* Free the cookie. */
	free(C);

	/* Return status from callback. */
	return (rc);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x20(%rbp)
movl $0x1, -0x24(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x6f52
cmpq $0x4, -0x18(%rbp)
je 0x6ef2
jmp 0x6ec7
jmp 0x6ec9
leaq 0x7a11(%rip), %rdi      # 0xe8e1
leaq 0x7a27(%rip), %rsi      # 0xe8fe
leaq 0x7a24(%rip), %rdx      # 0xe902
movb $0x0, %al
callq 0x6a00
callq 0x20a0
movl $0x0, (%rax)
jmp 0x6f54
movq -0x10(%rbp), %rdi
callq 0x7dd0
movl %eax, -0x28(%rbp)
cmpl $0x0, -0x28(%rbp)
je 0x6f40
cmpl $0x64, -0x28(%rbp)
jb 0x6f13
cmpl $0x257, -0x28(%rbp)     # imm = 0x257
jbe 0x6f40
jmp 0x6f15
jmp 0x6f17
leaq 0x79c3(%rip), %rdi      # 0xe8e1
leaq 0x79d9(%rip), %rsi      # 0xe8fe
leaq 0x79e3(%rip), %rdx      # 0xe90f
movb $0x0, %al
callq 0x6a00
callq 0x20a0
movl $0x0, (%rax)
jmp 0x6f54
cmpl $0xc8, -0x28(%rbp)
jne 0x6f50
movl $0x0, -0x24(%rbp)
jmp 0x6f52
jmp 0x6f54
movq -0x20(%rbp), %rax
movq (%rax), %rax
movq -0x20(%rbp), %rcx
movq 0x8(%rcx), %rdi
movl -0x24(%rbp), %esi
callq *%rax
movl %eax, -0x2c(%rbp)
movq -0x20(%rbp), %rdi
callq 0x2040
movl -0x2c(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/Tarsnap[P]kivaloo/liball/../lib/proto_s3/proto_s3_client.c
// Function: callback_head
static int
callback_head(void * cookie, uint8_t * buf, size_t buflen)
{
	struct head_cookie * C = cookie;
	uint32_t status = 0;
	uint32_t len;
	size_t lens = (size_t)(-1);
	int rc;

	/* If we have a packet, parse it. */
	if (buf != NULL) {
		/* Do we have the right packet length? */
		if (buflen != 8)
			BAD("HEAD", "bogus length");

		/* Parse the packet. */
		status = be32dec(&buf[0]);
		len = be32dec(&buf[4]);

		/* Check status. */
		if ((status != 0) && ((status < 100) || (status > 599)))
			BAD("HEAD", "Invalid HTTP status");

		/* If status == 200 and len != -1, we have a length. */
		if ((status == 200) && (len != (uint32_t)(-1)))
			lens = len;
	}

failed:
	/* Invoke the upstream callback. */
	rc = (C->callback)(C->cookie, (int)status, lens);

	/* Free the cookie. */
	free(C);

	/* Return status from callback. */
	return (rc);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x20(%rbp)
movl $0x0, -0x24(%rbp)
movq $-0x1, -0x30(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x7ad0
cmpq $0x8, -0x18(%rbp)
je 0x7a5a
jmp 0x7a2f
jmp 0x7a31
leaq 0x6ea9(%rip), %rdi      # 0xe8e1
leaq 0x6f00(%rip), %rsi      # 0xe93f
leaq 0x6ebc(%rip), %rdx      # 0xe902
movb $0x0, %al
callq 0x6a00
callq 0x20a0
movl $0x0, (%rax)
jmp 0x7ad2
movq -0x10(%rbp), %rdi
callq 0x7dd0
movl %eax, -0x24(%rbp)
movq -0x10(%rbp), %rdi
addq $0x4, %rdi
callq 0x7dd0
movl %eax, -0x28(%rbp)
cmpl $0x0, -0x24(%rbp)
je 0x7ab8
cmpl $0x64, -0x24(%rbp)
jb 0x7a8b
cmpl $0x257, -0x24(%rbp)     # imm = 0x257
jbe 0x7ab8
jmp 0x7a8d
jmp 0x7a8f
leaq 0x6e4b(%rip), %rdi      # 0xe8e1
leaq 0x6ea2(%rip), %rsi      # 0xe93f
leaq 0x6e6b(%rip), %rdx      # 0xe90f
movb $0x0, %al
callq 0x6a00
callq 0x20a0
movl $0x0, (%rax)
jmp 0x7ad2
cmpl $0xc8, -0x24(%rbp)
jne 0x7ace
cmpl $-0x1, -0x28(%rbp)
je 0x7ace
movl -0x28(%rbp), %eax
movq %rax, -0x30(%rbp)
jmp 0x7ad0
jmp 0x7ad2
movq -0x20(%rbp), %rax
movq (%rax), %rax
movq -0x20(%rbp), %rcx
movq 0x8(%rcx), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
callq *%rax
movl %eax, -0x34(%rbp)
movq -0x20(%rbp), %rdi
callq 0x2040
movl -0x34(%rbp), %eax
addq $0x40, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/Tarsnap[P]kivaloo/liball/../lib/proto_s3/proto_s3_client.c
// Function: callback_delete
static int
callback_delete(void * cookie, uint8_t * buf, size_t buflen)
{
	struct delete_cookie * C = cookie;
	int failed = 1;
	uint32_t status;
	int rc;

	/* If we have a packet, parse it. */
	if (buf != NULL) {
		/* Do we have the right packet length? */
		if (buflen != 4)
			BAD("DELETE", "bogus length");

		/* Parse the packet. */
		status = be32dec(&buf[0]);

		/* Check status. */
		if ((status != 0) && ((status < 100) || (status > 599)))
			BAD("DELETE", "Invalid HTTP status");

		/* Did the operation succeed? */
		if (status == 204)
			failed = 0;
	}

failed:
	/* Invoke the upstream callback. */
	rc = (C->callback)(C->cookie, failed);

	/* Free the cookie. */
	free(C);

	/* Return status from callback. */
	return (rc);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x20(%rbp)
movl $0x1, -0x24(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x7da2
cmpq $0x4, -0x18(%rbp)
je 0x7d42
jmp 0x7d17
jmp 0x7d19
leaq 0x6bc1(%rip), %rdi      # 0xe8e1
leaq 0x6c1d(%rip), %rsi      # 0xe944
leaq 0x6bd4(%rip), %rdx      # 0xe902
movb $0x0, %al
callq 0x6a00
callq 0x20a0
movl $0x0, (%rax)
jmp 0x7da4
movq -0x10(%rbp), %rdi
callq 0x7dd0
movl %eax, -0x28(%rbp)
cmpl $0x0, -0x28(%rbp)
je 0x7d90
cmpl $0x64, -0x28(%rbp)
jb 0x7d63
cmpl $0x257, -0x28(%rbp)     # imm = 0x257
jbe 0x7d90
jmp 0x7d65
jmp 0x7d67
leaq 0x6b73(%rip), %rdi      # 0xe8e1
leaq 0x6bcf(%rip), %rsi      # 0xe944
leaq 0x6b93(%rip), %rdx      # 0xe90f
movb $0x0, %al
callq 0x6a00
callq 0x20a0
movl $0x0, (%rax)
jmp 0x7da4
cmpl $0xcc, -0x28(%rbp)
jne 0x7da0
movl $0x0, -0x24(%rbp)
jmp 0x7da2
jmp 0x7da4
movq -0x20(%rbp), %rax
movq (%rax), %rax
movq -0x20(%rbp), %rcx
movq 0x8(%rcx), %rdi
movl -0x24(%rbp), %esi
callq *%rax
movl %eax, -0x2c(%rbp)
movq -0x20(%rbp), %rdi
callq 0x2040
movl -0x2c(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/lh3[P]pre-pe/pre-lianti.c
// Function: lt_opt_init
static void lt_opt_init(lt_opt_t *opt)
{
	memset(opt, 0, sizeof(lt_opt_t));
	opt->n_threads = 2;
	opt->chunk_size = 10000000;
	opt->max_qual = 50;
	opt->min_seq_len = 40;
	opt->max_ovlp_pen = 2;
	opt->min_ovlp_len = 8;
	opt->max_adap_pen = 1;
	opt->min_adap_len = 3;
	opt->max_bc_pen = 2;
	opt->min_bc_len = 6;
	opt->bc_len = 8;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
xorl %esi, %esi
movl $0x30, %edx
callq 0x2110
movq -0x8(%rbp), %rax
movl $0x2, (%rax)
movq -0x8(%rbp), %rax
movl $0x989680, 0x4(%rax)    # imm = 0x989680
movq -0x8(%rbp), %rax
movl $0x32, 0xc(%rax)
movq -0x8(%rbp), %rax
movl $0x28, 0x8(%rax)
movq -0x8(%rbp), %rax
movl $0x2, 0x10(%rax)
movq -0x8(%rbp), %rax
movl $0x8, 0x14(%rax)
movq -0x8(%rbp), %rax
movl $0x1, 0x18(%rax)
movq -0x8(%rbp), %rax
movl $0x3, 0x1c(%rax)
movq -0x8(%rbp), %rax
movl $0x2, 0x20(%rax)
movq -0x8(%rbp), %rax
movl $0x6, 0x24(%rax)
movq -0x8(%rbp), %rax
movl $0x8, 0x28(%rax)
addq $0x10, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/lh3[P]pre-pe/pre-lianti.c
// Function: merge_base
static inline int merge_base(int max_qual, char fc, char fq, char rc, char rq)
{
	int y;
	if (fc == rc) {
		int q = fq > rq? (fq - 33) + (rq - 33) / 2 : (rq - 33) + (fq - 33) / 2;
		y = toupper(fc) | (33 + (q < max_qual? q : max_qual)) << 8;
	} else {
		if (fq > rq) y = toupper(fc) | (33 + (fq - rq)) << 8;
		else y = toupper(rc) | (33 + (rq - fq)) << 8;
	}
	return y;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movb %r8b, %al
movl %edi, -0x4(%rbp)
movb %sil, -0x5(%rbp)
movb %dl, -0x6(%rbp)
movb %cl, -0x7(%rbp)
movb %al, -0x8(%rbp)
movsbl -0x5(%rbp), %eax
movsbl -0x7(%rbp), %ecx
cmpl %ecx, %eax
jne 0x5a1a
movsbl -0x6(%rbp), %eax
movsbl -0x8(%rbp), %ecx
cmpl %ecx, %eax
jle 0x59bc
movsbl -0x6(%rbp), %eax
subl $0x21, %eax
movl %eax, -0x18(%rbp)
movsbl -0x8(%rbp), %eax
subl $0x21, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x18(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x14(%rbp)
jmp 0x59df
movsbl -0x8(%rbp), %eax
subl $0x21, %eax
movl %eax, -0x1c(%rbp)
movsbl -0x6(%rbp), %eax
subl $0x21, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x1c(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x10(%rbp)
movsbl -0x5(%rbp), %edi
callq 0x2080
movl %eax, -0x20(%rbp)
movl -0x10(%rbp), %eax
cmpl -0x4(%rbp), %eax
jge 0x5a01
movl -0x10(%rbp), %eax
movl %eax, -0x24(%rbp)
jmp 0x5a07
movl -0x4(%rbp), %eax
movl %eax, -0x24(%rbp)
movl -0x20(%rbp), %eax
movl -0x24(%rbp), %ecx
addl $0x21, %ecx
shll $0x8, %ecx
orl %ecx, %eax
movl %eax, -0xc(%rbp)
jmp 0x5a66
movsbl -0x6(%rbp), %eax
movsbl -0x8(%rbp), %ecx
cmpl %ecx, %eax
jle 0x5a46
movsbl -0x5(%rbp), %edi
callq 0x2080
movsbl -0x6(%rbp), %ecx
movsbl -0x8(%rbp), %edx
subl %edx, %ecx
addl $0x21, %ecx
shll $0x8, %ecx
orl %ecx, %eax
movl %eax, -0xc(%rbp)
jmp 0x5a64
movsbl -0x7(%rbp), %edi
callq 0x2080
movsbl -0x8(%rbp), %ecx
movsbl -0x6(%rbp), %edx
subl %edx, %ecx
addl $0x21, %ecx
shll $0x8, %ecx
orl %ecx, %eax
movl %eax, -0xc(%rbp)
jmp 0x5a66
movl -0xc(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/src/anet.c
// Function: anetNonBlock
int anetNonBlock(char *err, int fd)
{
    int flags;

    /* Set the socket non-blocking.
     * Note that fcntl(2) for F_GETFL and F_SETFL can't be
     * interrupted by a signal. */
    if ((flags = fcntl(fd, F_GETFL)) == -1) {
        anetSetError(err, "fcntl(F_GETFL): %s", strerror(errno));
        return ANET_ERR;
    }
    if (fcntl(fd, F_SETFL, flags | O_NONBLOCK) == -1) {
        anetSetError(err, "fcntl(F_SETFL,O_NONBLOCK): %s", strerror(errno));
        return ANET_ERR;
    }
    return ANET_OK;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl -0x14(%rbp), %edi
movl $0x3, %esi
movb $0x0, %al
callq 0x1f730
movl %eax, -0x18(%rbp)
cmpl $-0x1, %eax
jne 0x218e8
movq -0x10(%rbp), %rax
movq %rax, -0x20(%rbp)
callq 0x1f820
movl (%rax), %edi
callq 0x1f630
movq -0x20(%rbp), %rdi
movq %rax, %rdx
leaq 0xbc732(%rip), %rsi     # 0xde00a
movb $0x0, %al
callq 0x21950
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x2193e
movl -0x14(%rbp), %edi
movl -0x18(%rbp), %edx
orl $0x800, %edx            # imm = 0x800
movl $0x4, %esi
movb $0x0, %al
callq 0x1f730
cmpl $-0x1, %eax
jne 0x21937
movq -0x10(%rbp), %rax
movq %rax, -0x28(%rbp)
callq 0x1f820
movl (%rax), %edi
callq 0x1f630
movq -0x28(%rbp), %rdi
movq %rax, %rdx
leaq 0xbc6f6(%rip), %rsi     # 0xde01d
movb $0x0, %al
callq 0x21950
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x2193e
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/src/anet.c
// Function: anetRead
int anetRead(int fd, char *buf, int count)
{
    int nread, totlen = 0;
    while(totlen != count) {
        nread = read(fd,buf,count-totlen);
        if (nread == 0) return totlen;
        if (nread == -1) return -1;
        totlen += nread;
        buf += nread;
    }
    return totlen;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
cmpl -0x14(%rbp), %eax
je 0x22572
movl -0x8(%rbp), %edi
movq -0x10(%rbp), %rsi
movl -0x14(%rbp), %eax
subl -0x1c(%rbp), %eax
movslq %eax, %rdx
callq 0x1f330
movl %eax, -0x18(%rbp)
cmpl $0x0, -0x18(%rbp)
jne 0x22547
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x22578
cmpl $-0x1, -0x18(%rbp)
jne 0x22556
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x22578
movl -0x18(%rbp), %eax
addl -0x1c(%rbp), %eax
movl %eax, -0x1c(%rbp)
movl -0x18(%rbp), %ecx
movq -0x10(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x10(%rbp)
jmp 0x22519
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/src/anet.c
// Function: anetWrite
int anetWrite(int fd, char *buf, int count)
{
    int nwritten, totlen = 0;
    while(totlen != count) {
        nwritten = write(fd,buf,count-totlen);
        if (nwritten == 0) return totlen;
        if (nwritten == -1) return -1;
        totlen += nwritten;
        buf += nwritten;
    }
    return totlen;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
cmpl -0x14(%rbp), %eax
je 0x22602
movl -0x8(%rbp), %edi
movq -0x10(%rbp), %rsi
movl -0x14(%rbp), %eax
subl -0x1c(%rbp), %eax
movslq %eax, %rdx
callq 0x1fb50
movl %eax, -0x18(%rbp)
cmpl $0x0, -0x18(%rbp)
jne 0x225d7
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x22608
cmpl $-0x1, -0x18(%rbp)
jne 0x225e6
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x22608
movl -0x18(%rbp), %eax
addl -0x1c(%rbp), %eax
movl %eax, -0x1c(%rbp)
movl -0x18(%rbp), %ecx
movq -0x10(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x10(%rbp)
jmp 0x225a9
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)