LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/svpv[P]rpmset/./base64unpack-scalar.h
// Function: unpack26x4c18e4
static inline bool unpack26x4c18e4(const char *s, uint32_t *v, unsigned *e)
{
    int32_t x;
    x = base64dec2(s + 0) | base64dec2(s + 2) << 12;
    if (x < 0) return false;
    v[0]  = x;
    x = base64dec2(s + 4) | base64dec2(s + 6) << 12;
    if (x < 0) return false;
    v[0] |= (x & Mask(2)) << 24;
    v[1]  = (x >> 2);
    x = base64dec2(s + 8) | base64dec2(s + 10) << 12;
    if (x < 0) return false;
    v[1] |= (x & Mask(4)) << 22;
    v[2]  = (x >> 4);
    x = base64dec2(s + 12) | base64dec2(s + 14) << 12;
    if (x < 0) return false;
    v[2] |= (x & Mask(6)) << 20;
    v[3]  = (x >> 6);
    x = base64dec2(s + 16);
    if (x < 0) return false;
    v[3] |= (x & Mask(8)) << 18;
    *e    = (x >> 8);
    return true;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
movq %rdx, 0x18(%rsp)
movq 0x28(%rsp), %rdi
callq 0xf2c0
movl %eax, 0x10(%rsp)
movq 0x28(%rsp), %rdi
addq $0x2, %rdi
callq 0xf2c0
movl %eax, %ecx
movl 0x10(%rsp), %eax
shll $0xc, %ecx
orl %ecx, %eax
movl %eax, 0x14(%rsp)
cmpl $0x0, 0x14(%rsp)
jge 0x5edf
movb $0x0, 0x37(%rsp)
jmp 0x605c
movl 0x14(%rsp), %ecx
movq 0x20(%rsp), %rax
movl %ecx, (%rax)
movq 0x28(%rsp), %rdi
addq $0x4, %rdi
callq 0xf2c0
movl %eax, 0xc(%rsp)
movq 0x28(%rsp), %rdi
addq $0x6, %rdi
callq 0xf2c0
movl %eax, %ecx
movl 0xc(%rsp), %eax
shll $0xc, %ecx
orl %ecx, %eax
movl %eax, 0x14(%rsp)
cmpl $0x0, 0x14(%rsp)
jge 0x5f2a
movb $0x0, 0x37(%rsp)
jmp 0x605c
movl 0x14(%rsp), %ecx
andl $0x3, %ecx
shll $0x18, %ecx
movq 0x20(%rsp), %rax
orl (%rax), %ecx
movl %ecx, (%rax)
movl 0x14(%rsp), %ecx
sarl $0x2, %ecx
movq 0x20(%rsp), %rax
movl %ecx, 0x4(%rax)
movq 0x28(%rsp), %rdi
addq $0x8, %rdi
callq 0xf2c0
movl %eax, 0x8(%rsp)
movq 0x28(%rsp), %rdi
addq $0xa, %rdi
callq 0xf2c0
movl %eax, %ecx
movl 0x8(%rsp), %eax
shll $0xc, %ecx
orl %ecx, %eax
movl %eax, 0x14(%rsp)
cmpl $0x0, 0x14(%rsp)
jge 0x5f8c
movb $0x0, 0x37(%rsp)
jmp 0x605c
movl 0x14(%rsp), %ecx
andl $0xf, %ecx
shll $0x16, %ecx
movq 0x20(%rsp), %rax
orl 0x4(%rax), %ecx
movl %ecx, 0x4(%rax)
movl 0x14(%rsp), %ecx
sarl $0x4, %ecx
movq 0x20(%rsp), %rax
movl %ecx, 0x8(%rax)
movq 0x28(%rsp), %rdi
addq $0xc, %rdi
callq 0xf2c0
movl %eax, 0x4(%rsp)
movq 0x28(%rsp), %rdi
addq $0xe, %rdi
callq 0xf2c0
movl %eax, %ecx
movl 0x4(%rsp), %eax
shll $0xc, %ecx
orl %ecx, %eax
movl %eax, 0x14(%rsp)
cmpl $0x0, 0x14(%rsp)
jge 0x5fed
movb $0x0, 0x37(%rsp)
jmp 0x605c
movl 0x14(%rsp), %ecx
andl $0x3f, %ecx
shll $0x14, %ecx
movq 0x20(%rsp), %rax
orl 0x8(%rax), %ecx
movl %ecx, 0x8(%rax)
movl 0x14(%rsp), %ecx
sarl $0x6, %ecx
movq 0x20(%rsp), %rax
movl %ecx, 0xc(%rax)
movq 0x28(%rsp), %rdi
addq $0x10, %rdi
callq 0xf2c0
movl %eax, 0x14(%rsp)
cmpl $0x0, 0x14(%rsp)
jge 0x6031
movb $0x0, 0x37(%rsp)
jmp 0x605c
movl 0x14(%rsp), %ecx
andl $0xff, %ecx
shll $0x12, %ecx
movq 0x20(%rsp), %rax
orl 0xc(%rax), %ecx
movl %ecx, 0xc(%rax)
movl 0x14(%rsp), %ecx
sarl $0x8, %ecx
movq 0x18(%rsp), %rax
movl %ecx, (%rax)
movb $0x1, 0x37(%rsp)
movb 0x37(%rsp), %al
andb $0x1, %al
addq $0x38, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/svpv[P]rpmset/./base64unpack-scalar.h
// Function: unpack27x3c14e3
static inline bool unpack27x3c14e3(const char *s, uint32_t *v, unsigned *e)
{
    int32_t x;
    uint32_t e0, e1, e2;
    x = base64dec2(s + 0) | base64dec2(s + 2) << 12;
    if (x < 0) return false;
    v[0]  = x;
    x = (e0 = base64dec1(s + 4)) | base64dec1shl6(s + 5) | base64dec2(s + 6) << 12;
    if (x < 0) return false;
    v[0] |= (x & Mask(3)) << 24;
    v[1]  = (x >> 4);
    x = base64dec1(s + 8) | (e1 = base64dec1shl6(s + 9)) | base64dec2(s + 10) << 12;
    if (x < 0) return false;
    v[1] |= (x & Mask(7)) << 20;
    v[2]  = (x >> 8);
    x = base64dec2(s + 12);
    if (x < 0) return false;
    v[2] |= (e2 = (x << 16)) & Mask(27);
    *e = ((e0 | e1 | e2) & 0x8000088) * 0x4800010 >> 29;
    return true;
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x38(%rsp)
movq %rsi, 0x30(%rsp)
movq %rdx, 0x28(%rsp)
movq 0x38(%rsp), %rdi
callq 0xf2c0
movl %eax, 0x14(%rsp)
movq 0x38(%rsp), %rdi
addq $0x2, %rdi
callq 0xf2c0
movl %eax, %ecx
movl 0x14(%rsp), %eax
shll $0xc, %ecx
orl %ecx, %eax
movl %eax, 0x24(%rsp)
cmpl $0x0, 0x24(%rsp)
jge 0x60ff
movb $0x0, 0x47(%rsp)
jmp 0x626e
movl 0x24(%rsp), %ecx
movq 0x30(%rsp), %rax
movl %ecx, (%rax)
movq 0x38(%rsp), %rdi
addq $0x4, %rdi
callq 0x6ef0
movl %eax, 0xc(%rsp)
movl %eax, 0x20(%rsp)
movq 0x38(%rsp), %rdi
addq $0x5, %rdi
callq 0xf5b0
movl %eax, %ecx
movl 0xc(%rsp), %eax
orl %ecx, %eax
movl %eax, 0x10(%rsp)
movq 0x38(%rsp), %rdi
addq $0x6, %rdi
callq 0xf2c0
movl %eax, %ecx
movl 0x10(%rsp), %eax
shll $0xc, %ecx
orl %ecx, %eax
movl %eax, 0x24(%rsp)
cmpl $0x0, 0x24(%rsp)
jge 0x6168
movb $0x0, 0x47(%rsp)
jmp 0x626e
movl 0x24(%rsp), %ecx
andl $0x7, %ecx
shll $0x18, %ecx
movq 0x30(%rsp), %rax
orl (%rax), %ecx
movl %ecx, (%rax)
movl 0x24(%rsp), %ecx
sarl $0x4, %ecx
movq 0x30(%rsp), %rax
movl %ecx, 0x4(%rax)
movq 0x38(%rsp), %rdi
addq $0x8, %rdi
callq 0x6ef0
movl %eax, 0x4(%rsp)
movq 0x38(%rsp), %rdi
addq $0x9, %rdi
callq 0xf5b0
movl %eax, %ecx
movl 0x4(%rsp), %eax
movl %ecx, 0x1c(%rsp)
orl %ecx, %eax
movl %eax, 0x8(%rsp)
movq 0x38(%rsp), %rdi
addq $0xa, %rdi
callq 0xf2c0
movl %eax, %ecx
movl 0x8(%rsp), %eax
shll $0xc, %ecx
orl %ecx, %eax
movl %eax, 0x24(%rsp)
cmpl $0x0, 0x24(%rsp)
jge 0x61e8
movb $0x0, 0x47(%rsp)
jmp 0x626e
movl 0x24(%rsp), %ecx
andl $0x7f, %ecx
shll $0x14, %ecx
movq 0x30(%rsp), %rax
orl 0x4(%rax), %ecx
movl %ecx, 0x4(%rax)
movl 0x24(%rsp), %ecx
sarl $0x8, %ecx
movq 0x30(%rsp), %rax
movl %ecx, 0x8(%rax)
movq 0x38(%rsp), %rdi
addq $0xc, %rdi
callq 0xf2c0
movl %eax, 0x24(%rsp)
cmpl $0x0, 0x24(%rsp)
jge 0x622c
movb $0x0, 0x47(%rsp)
jmp 0x626e
movl 0x24(%rsp), %ecx
shll $0x10, %ecx
movl %ecx, 0x18(%rsp)
andl $0x7ffffff, %ecx        # imm = 0x7FFFFFF
movq 0x30(%rsp), %rax
orl 0x8(%rax), %ecx
movl %ecx, 0x8(%rax)
movl 0x20(%rsp), %eax
orl 0x1c(%rsp), %eax
orl 0x18(%rsp), %eax
andl $0x8000088, %eax        # imm = 0x8000088
imull $0x4800010, %eax, %ecx  # imm = 0x4800010
shrl $0x1d, %ecx
movq 0x28(%rsp), %rax
movl %ecx, (%rax)
movb $0x1, 0x47(%rsp)
movb 0x47(%rsp), %al
andb $0x1, %al
addq $0x48, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/svpv[P]rpmset/./base64unpack-scalar.h
// Function: unpack27x4c18
static inline bool unpack27x4c18(const char *s, uint32_t *v, unsigned *e)
{
    int32_t x;
    x = base64dec2(s + 0) | base64dec2(s + 2) << 12;
    if (x < 0) return false;
    v[0]  = x;
    x = base64dec2(s + 4) | base64dec2(s + 6) << 12;
    if (x < 0) return false;
    v[0] |= (x & Mask(3)) << 24;
    v[1]  = (x >> 3);
    x = base64dec2(s + 8) | base64dec2(s + 10) << 12;
    if (x < 0) return false;
    v[1] |= (x & Mask(6)) << 21;
    v[2]  = (x >> 6);
    x = base64dec2(s + 12) | base64dec2(s + 14) << 12;
    if (x < 0) return false;
    v[2] |= (x & Mask(9)) << 18;
    v[3]  = (x >> 9 << 12);
    x = base64dec2(s + 16);
    if (x < 0) return false;
    v[3] |= x;
    return (void) e, true;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
movq %rdx, 0x18(%rsp)
movq 0x28(%rsp), %rdi
callq 0xf2c0
movl %eax, 0x10(%rsp)
movq 0x28(%rsp), %rdi
addq $0x2, %rdi
callq 0xf2c0
movl %eax, %ecx
movl 0x10(%rsp), %eax
shll $0xc, %ecx
orl %ecx, %eax
movl %eax, 0x14(%rsp)
cmpl $0x0, 0x14(%rsp)
jge 0x630f
movb $0x0, 0x37(%rsp)
jmp 0x647b
movl 0x14(%rsp), %ecx
movq 0x20(%rsp), %rax
movl %ecx, (%rax)
movq 0x28(%rsp), %rdi
addq $0x4, %rdi
callq 0xf2c0
movl %eax, 0xc(%rsp)
movq 0x28(%rsp), %rdi
addq $0x6, %rdi
callq 0xf2c0
movl %eax, %ecx
movl 0xc(%rsp), %eax
shll $0xc, %ecx
orl %ecx, %eax
movl %eax, 0x14(%rsp)
cmpl $0x0, 0x14(%rsp)
jge 0x635a
movb $0x0, 0x37(%rsp)
jmp 0x647b
movl 0x14(%rsp), %ecx
andl $0x7, %ecx
shll $0x18, %ecx
movq 0x20(%rsp), %rax
orl (%rax), %ecx
movl %ecx, (%rax)
movl 0x14(%rsp), %ecx
sarl $0x3, %ecx
movq 0x20(%rsp), %rax
movl %ecx, 0x4(%rax)
movq 0x28(%rsp), %rdi
addq $0x8, %rdi
callq 0xf2c0
movl %eax, 0x8(%rsp)
movq 0x28(%rsp), %rdi
addq $0xa, %rdi
callq 0xf2c0
movl %eax, %ecx
movl 0x8(%rsp), %eax
shll $0xc, %ecx
orl %ecx, %eax
movl %eax, 0x14(%rsp)
cmpl $0x0, 0x14(%rsp)
jge 0x63bc
movb $0x0, 0x37(%rsp)
jmp 0x647b
movl 0x14(%rsp), %ecx
andl $0x3f, %ecx
shll $0x15, %ecx
movq 0x20(%rsp), %rax
orl 0x4(%rax), %ecx
movl %ecx, 0x4(%rax)
movl 0x14(%rsp), %ecx
sarl $0x6, %ecx
movq 0x20(%rsp), %rax
movl %ecx, 0x8(%rax)
movq 0x28(%rsp), %rdi
addq $0xc, %rdi
callq 0xf2c0
movl %eax, 0x4(%rsp)
movq 0x28(%rsp), %rdi
addq $0xe, %rdi
callq 0xf2c0
movl %eax, %ecx
movl 0x4(%rsp), %eax
shll $0xc, %ecx
orl %ecx, %eax
movl %eax, 0x14(%rsp)
cmpl $0x0, 0x14(%rsp)
jge 0x641d
movb $0x0, 0x37(%rsp)
jmp 0x647b
movl 0x14(%rsp), %ecx
andl $0x1ff, %ecx            # imm = 0x1FF
shll $0x12, %ecx
movq 0x20(%rsp), %rax
orl 0x8(%rax), %ecx
movl %ecx, 0x8(%rax)
movl 0x14(%rsp), %ecx
sarl $0x9, %ecx
shll $0xc, %ecx
movq 0x20(%rsp), %rax
movl %ecx, 0xc(%rax)
movq 0x28(%rsp), %rdi
addq $0x10, %rdi
callq 0xf2c0
movl %eax, 0x14(%rsp)
cmpl $0x0, 0x14(%rsp)
jge 0x6467
movb $0x0, 0x37(%rsp)
jmp 0x647b
movl 0x14(%rsp), %ecx
movq 0x20(%rsp), %rax
orl 0xc(%rax), %ecx
movl %ecx, 0xc(%rax)
movb $0x1, 0x37(%rsp)
movb 0x37(%rsp), %al
andb $0x1, %al
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/svpv[P]rpmset/./base64unpack-scalar.h
// Function: unpack28x3c14
static inline bool unpack28x3c14(const char *s, uint32_t *v, unsigned *e)
{
    int32_t x;
    x = base64dec2(s + 0) | base64dec2(s + 2) << 12;
    if (x < 0) return false;
    v[0]  = x;
    x = base64dec2(s + 4) | base64dec2(s + 6) << 12;
    if (x < 0) return false;
    v[0] |= (x & Mask(4)) << 24;
    v[1]  = (x >> 4);
    x = base64dec2(s + 8) | base64dec2(s + 10) << 12;
    if (x < 0) return false;
    v[1] |= (x & Mask(8)) << 20;
    v[2]  = (x >> 8);
    x = base64dec2(s + 12);
    if (x < 0) return false;
    v[2] |= (x << 16);
    return (void) e, true;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
movq %rdx, 0x18(%rsp)
movq 0x28(%rsp), %rdi
callq 0xf2c0
movl %eax, 0x10(%rsp)
movq 0x28(%rsp), %rdi
addq $0x2, %rdi
callq 0xf2c0
movl %eax, %ecx
movl 0x10(%rsp), %eax
shll $0xc, %ecx
orl %ecx, %eax
movl %eax, 0x14(%rsp)
cmpl $0x0, 0x14(%rsp)
jge 0x651f
movb $0x0, 0x37(%rsp)
jmp 0x6627
movl 0x14(%rsp), %ecx
movq 0x20(%rsp), %rax
movl %ecx, (%rax)
movq 0x28(%rsp), %rdi
addq $0x4, %rdi
callq 0xf2c0
movl %eax, 0xc(%rsp)
movq 0x28(%rsp), %rdi
addq $0x6, %rdi
callq 0xf2c0
movl %eax, %ecx
movl 0xc(%rsp), %eax
shll $0xc, %ecx
orl %ecx, %eax
movl %eax, 0x14(%rsp)
cmpl $0x0, 0x14(%rsp)
jge 0x656a
movb $0x0, 0x37(%rsp)
jmp 0x6627
movl 0x14(%rsp), %ecx
andl $0xf, %ecx
shll $0x18, %ecx
movq 0x20(%rsp), %rax
orl (%rax), %ecx
movl %ecx, (%rax)
movl 0x14(%rsp), %ecx
sarl $0x4, %ecx
movq 0x20(%rsp), %rax
movl %ecx, 0x4(%rax)
movq 0x28(%rsp), %rdi
addq $0x8, %rdi
callq 0xf2c0
movl %eax, 0x8(%rsp)
movq 0x28(%rsp), %rdi
addq $0xa, %rdi
callq 0xf2c0
movl %eax, %ecx
movl 0x8(%rsp), %eax
shll $0xc, %ecx
orl %ecx, %eax
movl %eax, 0x14(%rsp)
cmpl $0x0, 0x14(%rsp)
jge 0x65c9
movb $0x0, 0x37(%rsp)
jmp 0x6627
movl 0x14(%rsp), %ecx
andl $0xff, %ecx
shll $0x14, %ecx
movq 0x20(%rsp), %rax
orl 0x4(%rax), %ecx
movl %ecx, 0x4(%rax)
movl 0x14(%rsp), %ecx
sarl $0x8, %ecx
movq 0x20(%rsp), %rax
movl %ecx, 0x8(%rax)
movq 0x28(%rsp), %rdi
addq $0xc, %rdi
callq 0xf2c0
movl %eax, 0x14(%rsp)
cmpl $0x0, 0x14(%rsp)
jge 0x6610
movb $0x0, 0x37(%rsp)
jmp 0x6627
movl 0x14(%rsp), %ecx
shll $0x10, %ecx
movq 0x20(%rsp), %rax
orl 0x8(%rax), %ecx
movl %ecx, 0x8(%rax)
movb $0x1, 0x37(%rsp)
movb 0x37(%rsp), %al
andb $0x1, %al
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/svpv[P]rpmset/./base64unpack-scalar.h
// Function: unpack29x3c15e3o1
static inline bool unpack29x3c15e3o1(const char *s, uint32_t *v, unsigned *e)
{
    int32_t x0, x1, x2;
    uint32_t e0, e1, e2;
    uint32_t mask = (1 << 29) - 1;
    x0 = base64dec2(s + 0) | base64dec2(s + 2) << 12 | (e0 = base64dec1(s + 12)) << 24;
    if (x0 < 0) return false;
    v[0] = x0 & mask;
    x1 = base64dec2(s + 4) | base64dec2(s + 6) << 12 | (e1 = base64dec1shl6(s + 13)) << 18;
    if (x1 < 0) return false;
    v[1] = x1 & mask;
    x2 = base64dec2(s + 8) | base64dec2(s + 10) << 12 | (e2 = (base64dec1(s + 14) << 24));
    if (x2 < 0) return false;
    v[2] = x2 & mask;
    *e = ((e0 | e1 | e2) & 0xa0100823) * 0x10b3014 >> 29;
    return true;
}

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x48(%rsp)
movq %rsi, 0x40(%rsp)
movq %rdx, 0x38(%rsp)
movl $0x1fffffff, 0x1c(%rsp) # imm = 0x1FFFFFFF
movq 0x48(%rsp), %rdi
callq 0xf2c0
movl %eax, 0x14(%rsp)
movq 0x48(%rsp), %rdi
addq $0x2, %rdi
callq 0xf2c0
movl %eax, %ecx
movl 0x14(%rsp), %eax
shll $0xc, %ecx
orl %ecx, %eax
movl %eax, 0x18(%rsp)
movq 0x48(%rsp), %rdi
addq $0xc, %rdi
callq 0x6ef0
movl %eax, %ecx
movl 0x18(%rsp), %eax
movl %ecx, 0x28(%rsp)
shll $0x18, %ecx
orl %ecx, %eax
movl %eax, 0x34(%rsp)
cmpl $0x0, 0x34(%rsp)
jge 0x66f8
movb $0x0, 0x57(%rsp)
jmp 0x680c
movl 0x34(%rsp), %ecx
andl 0x1c(%rsp), %ecx
movq 0x40(%rsp), %rax
movl %ecx, (%rax)
movq 0x48(%rsp), %rdi
addq $0x4, %rdi
callq 0xf2c0
movl %eax, 0xc(%rsp)
movq 0x48(%rsp), %rdi
addq $0x6, %rdi
callq 0xf2c0
movl %eax, %ecx
movl 0xc(%rsp), %eax
shll $0xc, %ecx
orl %ecx, %eax
movl %eax, 0x10(%rsp)
movq 0x48(%rsp), %rdi
addq $0xd, %rdi
callq 0xf5b0
movl %eax, %ecx
movl 0x10(%rsp), %eax
movl %ecx, 0x24(%rsp)
shll $0x12, %ecx
orl %ecx, %eax
movl %eax, 0x30(%rsp)
cmpl $0x0, 0x30(%rsp)
jge 0x6768
movb $0x0, 0x57(%rsp)
jmp 0x680c
movl 0x30(%rsp), %ecx
andl 0x1c(%rsp), %ecx
movq 0x40(%rsp), %rax
movl %ecx, 0x4(%rax)
movq 0x48(%rsp), %rdi
addq $0x8, %rdi
callq 0xf2c0
movl %eax, 0x4(%rsp)
movq 0x48(%rsp), %rdi
addq $0xa, %rdi
callq 0xf2c0
movl %eax, %ecx
movl 0x4(%rsp), %eax
shll $0xc, %ecx
orl %ecx, %eax
movl %eax, 0x8(%rsp)
movq 0x48(%rsp), %rdi
addq $0xe, %rdi
callq 0x6ef0
movl %eax, %ecx
movl 0x8(%rsp), %eax
shll $0x18, %ecx
movl %ecx, 0x20(%rsp)
orl %ecx, %eax
movl %eax, 0x2c(%rsp)
cmpl $0x0, 0x2c(%rsp)
jge 0x67d6
movb $0x0, 0x57(%rsp)
jmp 0x680c
movl 0x2c(%rsp), %ecx
andl 0x1c(%rsp), %ecx
movq 0x40(%rsp), %rax
movl %ecx, 0x8(%rax)
movl 0x28(%rsp), %eax
orl 0x24(%rsp), %eax
orl 0x20(%rsp), %eax
andl $0xa0100823, %eax       # imm = 0xA0100823
imull $0x10b3014, %eax, %ecx  # imm = 0x10B3014
shrl $0x1d, %ecx
movq 0x38(%rsp), %rax
movl %ecx, (%rax)
movb $0x1, 0x57(%rsp)
movb 0x57(%rsp), %al
andb $0x1, %al
addq $0x58, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/svpv[P]rpmset/./base64unpack-scalar.h
// Function: unpack30x3c15o1
static inline bool unpack30x3c15o1(const char *s, uint32_t *v, unsigned *e)
{
    int32_t x;
    x = base64dec2(s + 0) | base64dec2(s + 2) << 12 | base64dec1(s + 12) << 24;
    if (x < 0) return false;
    v[0] = x;
    x = base64dec2(s + 4) | base64dec2(s + 6) << 12 | base64dec1(s + 13) << 24;
    if (x < 0) return false;
    v[1] = x;
    x = base64dec2(s + 8) | base64dec2(s + 10) << 12 | base64dec1(s + 14) << 24;
    if (x < 0) return false;
    v[2] = x;
    return (void) e, true;
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x38(%rsp)
movq %rsi, 0x30(%rsp)
movq %rdx, 0x28(%rsp)
movq 0x38(%rsp), %rdi
callq 0xf2c0
movl %eax, 0x1c(%rsp)
movq 0x38(%rsp), %rdi
addq $0x2, %rdi
callq 0xf2c0
movl %eax, %ecx
movl 0x1c(%rsp), %eax
shll $0xc, %ecx
orl %ecx, %eax
movl %eax, 0x20(%rsp)
movq 0x38(%rsp), %rdi
addq $0xc, %rdi
callq 0x6ef0
movl %eax, %ecx
movl 0x20(%rsp), %eax
shll $0x18, %ecx
orl %ecx, %eax
movl %eax, 0x24(%rsp)
cmpl $0x0, 0x24(%rsp)
jge 0x68cc
movb $0x0, 0x47(%rsp)
jmp 0x69a8
movl 0x24(%rsp), %ecx
movq 0x30(%rsp), %rax
movl %ecx, (%rax)
movq 0x38(%rsp), %rdi
addq $0x4, %rdi
callq 0xf2c0
movl %eax, 0x14(%rsp)
movq 0x38(%rsp), %rdi
addq $0x6, %rdi
callq 0xf2c0
movl %eax, %ecx
movl 0x14(%rsp), %eax
shll $0xc, %ecx
orl %ecx, %eax
movl %eax, 0x18(%rsp)
movq 0x38(%rsp), %rdi
addq $0xd, %rdi
callq 0x6ef0
movl %eax, %ecx
movl 0x18(%rsp), %eax
shll $0x18, %ecx
orl %ecx, %eax
movl %eax, 0x24(%rsp)
cmpl $0x0, 0x24(%rsp)
jge 0x6931
movb $0x0, 0x47(%rsp)
jmp 0x69a8
movl 0x24(%rsp), %ecx
movq 0x30(%rsp), %rax
movl %ecx, 0x4(%rax)
movq 0x38(%rsp), %rdi
addq $0x8, %rdi
callq 0xf2c0
movl %eax, 0xc(%rsp)
movq 0x38(%rsp), %rdi
addq $0xa, %rdi
callq 0xf2c0
movl %eax, %ecx
movl 0xc(%rsp), %eax
shll $0xc, %ecx
orl %ecx, %eax
movl %eax, 0x10(%rsp)
movq 0x38(%rsp), %rdi
addq $0xe, %rdi
callq 0x6ef0
movl %eax, %ecx
movl 0x10(%rsp), %eax
shll $0x18, %ecx
orl %ecx, %eax
movl %eax, 0x24(%rsp)
cmpl $0x0, 0x24(%rsp)
jge 0x6997
movb $0x0, 0x47(%rsp)
jmp 0x69a8
movl 0x24(%rsp), %ecx
movq 0x30(%rsp), %rax
movl %ecx, 0x8(%rax)
movb $0x1, 0x47(%rsp)
movb 0x47(%rsp), %al
andb $0x1, %al
addq $0x48, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/ethinethin[P]Secret/main.c
// Function: splash_screen
void splash_screen(void)
{
	printf("\n--------------------------------------------------------------------------------\n");
	printf("Welcome to %s (game engine %s)\n",TITLE,ENGINE);
	printf("--------------------------------------------------------------------------------\n");
	printf("What lies in the mysterious forest on the edge of a small village? Myths and\n");
	printf("legends have been told for centuries, but no-one has yet figured it out. Will\n");
	printf("you be the one to finally solve this riddle? Good luck!\n");
	printf("--------------------------------------------------------------------------------\n");
	printf("To learn how to play, type: help\n");
	printf("--------------------------------------------------------------------------------\n");

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
leaq 0x4c49(%rip), %rdi      # 0x8004
movb $0x0, %al
callq 0x30e0
movq 0xbd87(%rip), %rsi      # 0xf150
movq 0xbd88(%rip), %rdx      # 0xf158
leaq 0x4c80(%rip), %rdi      # 0x8057
movb $0x0, %al
callq 0x30e0
leaq 0x4c20(%rip), %rdi      # 0x8005
movb $0x0, %al
callq 0x30e0
leaq 0x4c84(%rip), %rdi      # 0x8077
movb $0x0, %al
callq 0x30e0
leaq 0x4cc4(%rip), %rdi      # 0x80c5
movb $0x0, %al
callq 0x30e0
leaq 0x4d05(%rip), %rdi      # 0x8114
movb $0x0, %al
callq 0x30e0
leaq 0x4be8(%rip), %rdi      # 0x8005
movb $0x0, %al
callq 0x30e0
leaq 0x4d22(%rip), %rdi      # 0x814d
movb $0x0, %al
callq 0x30e0
leaq 0x4bcc(%rip), %rdi      # 0x8005
movb $0x0, %al
callq 0x30e0
popq %rbp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/ethinethin[P]Secret/input.c
// Function: input_loop
extern void input_loop(void)
{
	char *line;

	/* Start in room 0 and show it */
	room_name();
	look_room();
	GAME_STATUS = 0;

	/* set up tab completion */
	linenoiseSetCompletionCallback(completion);

	/* main input loop */
	while(putchar('\n') && (line = linenoise("command> ")) != NULL) {
		if (line[0] != '\0') {
			linenoiseHistoryAdd(line);
			parse_input(line);
			if (GAME_STATUS == -1) {
				quit_screen();
				break;
			} else if (GAME_STATUS == -2) {
				bad_ending();
				break;
			} else if (GAME_STATUS == -3) {
				good_ending();
				break;
			}
		}
		free(line);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
callq 0x6430
callq 0x6460
movl $0x0, 0xd758(%rip)      # 0x10bc4
leaq 0xad(%rip), %rdi        # 0x3520
callq 0x4100
movl $0xa, %edi
callq 0x3050
movl %eax, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x9(%rbp)
je 0x34a8
leaq 0x4cfc(%rip), %rdi      # 0x8191
callq 0x4cc0
movq %rax, -0x8(%rbp)
cmpq $0x0, %rax
setne %al
movb %al, -0x9(%rbp)
movb -0x9(%rbp), %al
testb $0x1, %al
jne 0x34b1
jmp 0x3513
movq -0x8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x3505
movq -0x8(%rbp), %rdi
callq 0x5040
movq -0x8(%rbp), %rdi
callq 0x3750
cmpl $-0x1, 0xd6ee(%rip)     # 0x10bc4
jne 0x34df
callq 0x3d80
jmp 0x3513
cmpl $-0x2, 0xd6de(%rip)     # 0x10bc4
jne 0x34ef
callq 0x3db0
jmp 0x3513
cmpl $-0x3, 0xd6ce(%rip)     # 0x10bc4
jne 0x34ff
callq 0x3e50
jmp 0x3513
jmp 0x3501
jmp 0x3503
jmp 0x3505
movq -0x8(%rbp), %rdi
callq 0x3040
jmp 0x3478
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/ethinethin[P]Secret/input.c
// Function: bad_ending
static void bad_ending(void)
{
	printf("\n--------------------------------------------------------------------------------\n");
	printf("YOU GOT THE BAD ENDING\n");
	printf("--------------------------------------------------------------------------------\n");
	printf("How could you have known you were going to release an ancient horror upon the\n");
	printf("people of the world? Nobody can really blame you, but as the giant statue\n");
	printf("rampages across the world, killing all who oppose him, subjugating everyone\n");
	printf("else, you are trapped in the Hidden Temple with no way out.\n");
	printf("--------------------------------------------------------------------------------\n");
	printf("GAME OVER: BETTER LUCK NEXT TIME!\n");
	printf("--------------------------------------------------------------------------------\n\n");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
leaq 0x4249(%rip), %rdi      # 0x8004
movb $0x0, %al
callq 0x30e0
leaq 0x470f(%rip), %rdi      # 0x84d8
movb $0x0, %al
callq 0x30e0
leaq 0x422e(%rip), %rdi      # 0x8005
movb $0x0, %al
callq 0x30e0
leaq 0x470b(%rip), %rdi      # 0x84f0
movb $0x0, %al
callq 0x30e0
leaq 0x474c(%rip), %rdi      # 0x853f
movb $0x0, %al
callq 0x30e0
leaq 0x4789(%rip), %rdi      # 0x858a
movb $0x0, %al
callq 0x30e0
leaq 0x47c8(%rip), %rdi      # 0x85d7
movb $0x0, %al
callq 0x30e0
leaq 0x41e8(%rip), %rdi      # 0x8005
movb $0x0, %al
callq 0x30e0
leaq 0x47e9(%rip), %rdi      # 0x8614
movb $0x0, %al
callq 0x30e0
leaq 0x464c(%rip), %rdi      # 0x8485
movb $0x0, %al
callq 0x30e0
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/ethinethin[P]Secret/input.c
// Function: good_ending
static void good_ending(void)
{
	printf("\n--------------------------------------------------------------------------------\n");
	printf("YOU GOT THE GOOD ENDING\n");
	printf("--------------------------------------------------------------------------------\n");
	printf("You have solved the secret of the Hidden Temple! By destroying the giant statue,\n");
	printf("you have uncovered a cache of riches beyond your wildest dreams! What will you\n");
	printf("do with your newfound wealth? Become a king? Become a god? The choice is up to\n");
	printf("you! But first, you need to find a cart...\n");
	printf("--------------------------------------------------------------------------------\n");
	printf("CONGRATULATIONS!\n");
	printf("--------------------------------------------------------------------------------\n\n");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
leaq 0x41a9(%rip), %rdi      # 0x8004
movb $0x0, %al
callq 0x30e0
leaq 0x47ce(%rip), %rdi      # 0x8637
movb $0x0, %al
callq 0x30e0
leaq 0x418e(%rip), %rdi      # 0x8005
movb $0x0, %al
callq 0x30e0
leaq 0x47cb(%rip), %rdi      # 0x8650
movb $0x0, %al
callq 0x30e0
leaq 0x480f(%rip), %rdi      # 0x86a2
movb $0x0, %al
callq 0x30e0
leaq 0x4851(%rip), %rdi      # 0x86f2
movb $0x0, %al
callq 0x30e0
leaq 0x4893(%rip), %rdi      # 0x8742
movb $0x0, %al
callq 0x30e0
leaq 0x4148(%rip), %rdi      # 0x8005
movb $0x0, %al
callq 0x30e0
leaq 0x48a3(%rip), %rdi      # 0x876e
movb $0x0, %al
callq 0x30e0
leaq 0x45ac(%rip), %rdi      # 0x8485
movb $0x0, %al
callq 0x30e0
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/ethinethin[P]Secret/input.c
// Function: is_okay_quit
static int is_okay_quit(void)
{
	int c;
	int d;

	printf("\nReally quit? (y/n) ");

	/* get input until user hits enter or EOF; only capture 1st char entered */
	d = getchar();
	while ((c = getchar()) != EOF && c != '\n');

	/* if last character was not \n, new line needs to be output */
	/* also necessary to clearerr here so quit can be called again - only seems
	 * to happen in FreeBSD, both with clang and gcc */
	if (c == EOF) {
		putchar('\n');
		clearerr(stdin);
	}

	/* if they entered 'y', quit */
	return d == 'y' || d == 'Y';

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0x4326(%rip), %rdi      # 0x8225
movb $0x0, %al
callq 0x30e0
callq 0x3160
movl %eax, -0x8(%rbp)
callq 0x3160
movl %eax, %ecx
movl %ecx, -0x4(%rbp)
xorl %eax, %eax
cmpl $-0x1, %ecx
movb %al, -0x9(%rbp)
je 0x3f2c
cmpl $0xa, -0x4(%rbp)
setne %al
movb %al, -0x9(%rbp)
movb -0x9(%rbp), %al
testb $0x1, %al
jne 0x3f35
jmp 0x3f37
jmp 0x3f0e
cmpl $-0x1, -0x4(%rbp)
jne 0x3f56
movl $0xa, %edi
callq 0x3050
movq 0xb08a(%rip), %rax      # 0xefd8
movq (%rax), %rdi
callq 0x3190
movb $0x1, %al
cmpl $0x79, -0x8(%rbp)
movb %al, -0xa(%rbp)
je 0x3f6b
cmpl $0x59, -0x8(%rbp)
sete %al
movb %al, -0xa(%rbp)
movb -0xa(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/ethinethin[P]Secret/input.c
// Function: display_help
static void display_help(void)
{
	printf("\n--------------------------------------------------------------------------------\n");
	printf("HOW TO PLAY\n");
	printf("\tExplore the world and solve the mystery of the forest!\n");
	printf("\tTo perform an action, use the following commands:\n");
	printf("--------------------------------------------------------------------------------\n");
	printf("NAVIGATING THE WORLD\n");
	printf("\twalk direction (or just direction) - move in the direction specified\n");
	printf("\tlook - examine your surroundings\n");
	printf("--------------------------------------------------------------------------------\n");
	printf("MANAGING ITEMS\n");
	printf("\tinventory - list your belongings\n");
	printf("\ttake - pick up an item\n");
	printf("\tdrop - drop an item\n");
	printf("--------------------------------------------------------------------------------\n");
	printf("INTERACTING WITH THE WORLD\n");
	printf("\tsearch - look for hidden objects\n");
	printf("\tuse - use an item or items\n");
	printf("--------------------------------------------------------------------------------\n");
	printf("TO QUIT\n");
	printf("\tquit - give up in your search and go home\n");
	printf("--------------------------------------------------------------------------------\n");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
leaq 0x4079(%rip), %rdi      # 0x8004
movb $0x0, %al
callq 0x30e0
leaq 0x42a1(%rip), %rdi      # 0x823a
movb $0x0, %al
callq 0x30e0
leaq 0x42a0(%rip), %rdi      # 0x8247
movb $0x0, %al
callq 0x30e0
leaq 0x42cb(%rip), %rdi      # 0x8280
movb $0x0, %al
callq 0x30e0
leaq 0x4042(%rip), %rdi      # 0x8005
movb $0x0, %al
callq 0x30e0
leaq 0x42e3(%rip), %rdi      # 0x82b4
movb $0x0, %al
callq 0x30e0
leaq 0x42eb(%rip), %rdi      # 0x82ca
movb $0x0, %al
callq 0x30e0
leaq 0x4324(%rip), %rdi      # 0x8311
movb $0x0, %al
callq 0x30e0
leaq 0x400a(%rip), %rdi      # 0x8005
movb $0x0, %al
callq 0x30e0
leaq 0x432b(%rip), %rdi      # 0x8334
movb $0x0, %al
callq 0x30e0
leaq 0x432d(%rip), %rdi      # 0x8344
movb $0x0, %al
callq 0x30e0
leaq 0x4342(%rip), %rdi      # 0x8367
movb $0x0, %al
callq 0x30e0
leaq 0x434d(%rip), %rdi      # 0x8380
movb $0x0, %al
callq 0x30e0
leaq 0x3fc4(%rip), %rdi      # 0x8005
movb $0x0, %al
callq 0x30e0
leaq 0x4347(%rip), %rdi      # 0x8396
movb $0x0, %al
callq 0x30e0
leaq 0x4355(%rip), %rdi      # 0x83b2
movb $0x0, %al
callq 0x30e0
leaq 0x436a(%rip), %rdi      # 0x83d5
movb $0x0, %al
callq 0x30e0
leaq 0x3f8c(%rip), %rdi      # 0x8005
movb $0x0, %al
callq 0x30e0
leaq 0x436b(%rip), %rdi      # 0x83f2
movb $0x0, %al
callq 0x30e0
leaq 0x4366(%rip), %rdi      # 0x83fb
movb $0x0, %al
callq 0x30e0
leaq 0x3f62(%rip), %rdi      # 0x8005
movb $0x0, %al
callq 0x30e0
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/ethinethin[P]Secret/rooms.c
// Function: room_exits
static void room_exits(void)
{
	int i;
	int count;
	char *dirs[4] = {"north","east","south","west"};
	printf("Exits:  ");
	for (count = 0, i = 0; i < 4; i++) {
		if (locations[current_room].walk_to[i] != -1) {
			printf("%s  ",dirs[i]);
			count++;
		}
	}
	if (count == 0) printf("none");
	putchar('\n');
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq 0x8911(%rip), %rax      # 0xedc0
movq %rax, -0x30(%rbp)
movq 0x890e(%rip), %rax      # 0xedc8
movq %rax, -0x28(%rbp)
movq 0x890b(%rip), %rax      # 0xedd0
movq %rax, -0x20(%rbp)
movq 0x8908(%rip), %rax      # 0xedd8
movq %rax, -0x18(%rbp)
leaq 0x4773(%rip), %rdi      # 0xac4e
movb $0x0, %al
callq 0x30e0
movl $0x0, -0x8(%rbp)
movl $0x0, -0x4(%rbp)
cmpl $0x4, -0x4(%rbp)
jge 0x6543
movslq 0xa73f(%rip), %rcx      # 0x10c3c
leaq 0x8c8c(%rip), %rax      # 0xf190
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movslq -0x4(%rbp), %rcx
cmpl $-0x1, 0x18(%rax,%rcx,4)
je 0x6536
movslq -0x4(%rbp), %rax
movq -0x30(%rbp,%rax,8), %rsi
leaq 0x4731(%rip), %rdi      # 0xac57
movb $0x0, %al
callq 0x30e0
movl -0x8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
jmp 0x6538
movl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0x64f0
cmpl $0x0, -0x8(%rbp)
jne 0x6557
leaq 0x470c(%rip), %rdi      # 0xac5c
movb $0x0, %al
callq 0x30e0
movl $0xa, %edi
callq 0x3050
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/ethinethin[P]Secret/rooms.c
// Function: move
extern void move(char *direction)
{
	int dir;

	putchar('\n');

	/* figure out direction */
	if (direction == NULL) {
		printf("Walk where?\n");
		return;
	} else if (strcmp(direction,"north") == 0) {
		dir = 0;
	} else if (strcmp(direction,"east") == 0) {
		dir = 1;
	} else if (strcmp(direction,"south") == 0) {
		dir = 2;
	} else if (strcmp(direction,"west") == 0) {
		dir = 3;
	} else {
		printf("Walk where?\n");
		return;
	}

	/* move */
	if (locations[current_room].walk_to[dir] != -1) {
		printf("%s\n",locations[current_room].walk_desc[dir]);
		current_room = locations[current_room].walk_to[dir];
		room_name();
		look_room();
	} else {
		printf("You cannot walk %s.\n",direction);
	}

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movl $0xa, %edi
callq 0x3050
cmpq $0x0, -0x8(%rbp)
jne 0x65a0
leaq 0x2504(%rip), %rdi      # 0x8a98
movb $0x0, %al
callq 0x30e0
jmp 0x66c0
movq -0x8(%rbp), %rdi
leaq 0x1c16(%rip), %rsi      # 0x81c1
callq 0x3150
cmpl $0x0, %eax
jne 0x65be
movl $0x0, -0xc(%rbp)
jmp 0x6631
movq -0x8(%rbp), %rdi
leaq 0x1bfe(%rip), %rsi      # 0x81c7
callq 0x3150
cmpl $0x0, %eax
jne 0x65dc
movl $0x1, -0xc(%rbp)
jmp 0x662f
movq -0x8(%rbp), %rdi
leaq 0x394d(%rip), %rsi      # 0x9f34
callq 0x3150
cmpl $0x0, %eax
jne 0x65fa
movl $0x2, -0xc(%rbp)
jmp 0x662d
movq -0x8(%rbp), %rdi
leaq 0x1bc7(%rip), %rsi      # 0x81cc
callq 0x3150
cmpl $0x0, %eax
jne 0x6618
movl $0x3, -0xc(%rbp)
jmp 0x662b
leaq 0x2479(%rip), %rdi      # 0x8a98
movb $0x0, %al
callq 0x30e0
jmp 0x66c0
jmp 0x662d
jmp 0x662f
jmp 0x6631
jmp 0x6633
movslq 0xa602(%rip), %rcx      # 0x10c3c
leaq 0x8b4f(%rip), %rax      # 0xf190
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movslq -0xc(%rbp), %rcx
cmpl $-0x1, 0x18(%rax,%rcx,4)
je 0x66ae
movslq 0xa5e2(%rip), %rcx      # 0x10c3c
leaq 0x8b2f(%rip), %rax      # 0xf190
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movslq -0xc(%rbp), %rcx
movq 0x28(%rax,%rcx,8), %rsi
leaq 0x241c(%rip), %rdi      # 0x8a94
movb $0x0, %al
callq 0x30e0
movslq 0xa5b6(%rip), %rcx      # 0x10c3c
leaq 0x8b03(%rip), %rax      # 0xf190
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movslq -0xc(%rbp), %rcx
movl 0x18(%rax,%rcx,4), %eax
movl %eax, 0xa59a(%rip)      # 0x10c3c
callq 0x6430
callq 0x6460
jmp 0x66c0
movq -0x8(%rbp), %rsi
leaq 0x23ec(%rip), %rdi      # 0x8aa5
movb $0x0, %al
callq 0x30e0
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/ethinethin[P]Secret/rooms.c
// Function: search_desc
extern int search_desc(void)
{
	if (locations[current_room].search_desc != NULL) {
		printf("%s ", locations[current_room].search_desc);
		return 0;
	} else {
		return 1;
	}

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movslq 0xa55d(%rip), %rcx      # 0x10c3c
leaq 0x8aaa(%rip), %rax      # 0xf190
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
cmpq $0x0, 0x48(%rax)
je 0x6724
movslq 0xa541(%rip), %rcx      # 0x10c3c
leaq 0x8a8e(%rip), %rax      # 0xf190
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movq 0x48(%rax), %rsi
leaq 0x23a6(%rip), %rdi      # 0x8aba
movb $0x0, %al
callq 0x30e0
movl $0x0, -0x4(%rbp)
jmp 0x672b
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/ethinethin[P]Secret/items.c
// Function: room_items
extern void room_items(int room_id)
{
	int i;
	for(i = 0; items[i].item_id != -1; i++) {
		if (items[i].location == room_id && items[i].hidden == NO)
			printf("%s\n",items[i].item_desc_floor);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl %edi, -0x4(%rbp)
movl $0x0, -0x8(%rbp)
movslq -0x8(%rbp), %rcx
leaq 0x94a3(%rip), %rax      # 0xfc30
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
cmpl $-0x1, (%rax)
je 0x67fc
movslq -0x8(%rbp), %rcx
leaq 0x948c(%rip), %rax      # 0xfc30
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movl 0x30(%rax), %eax
cmpl -0x4(%rbp), %eax
jne 0x67ef
movslq -0x8(%rbp), %rcx
leaq 0x9472(%rip), %rax      # 0xfc30
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
cmpl $0x0, 0x28(%rax)
jne 0x67ef
movslq -0x8(%rbp), %rcx
leaq 0x945a(%rip), %rax      # 0xfc30
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movq 0x18(%rax), %rsi
leaq 0x22ac(%rip), %rdi      # 0x8a94
movb $0x0, %al
callq 0x30e0
jmp 0x67f1
movl -0x8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
jmp 0x6782
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/ethinethin[P]Secret/items.c
// Function: search
extern void search(int room_id)
{
	int i;
	int count;

	putchar('\n');

	if (search_desc())
		printf("You carefully search the area. ");

	for (count = 0, i = 0; items[i].item_id != -1; i++) {
		if (items[i].location == room_id && items[i].hidden == YES) {
			if (count > 0)
				printf("\nYou also found the ");
			else
				printf("You found the ");
			count++;
			if (items[i].item_adj != NULL)
				printf("%s ",items[i].item_adj);
			printf("%s! ",items[i].item_name);
			items[i].hidden = NO;
			items[i].location = -1;
			inventory[i] = 1;
		}
	}
	if (count == 0)
		printf("You didn't find anything.\n");
	else
		putchar('\n');
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl %edi, -0x4(%rbp)
movl $0xa, %edi
callq 0x3050
callq 0x66d0
cmpl $0x0, %eax
je 0x683d
leaq 0x5140(%rip), %rdi      # 0xb976
movb $0x0, %al
callq 0x30e0
movl $0x0, -0xc(%rbp)
movl $0x0, -0x8(%rbp)
movslq -0x8(%rbp), %rcx
leaq 0x93da(%rip), %rax      # 0xfc30
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
cmpl $-0x1, (%rax)
je 0x697f
movslq -0x8(%rbp), %rcx
leaq 0x93bf(%rip), %rax      # 0xfc30
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movl 0x30(%rax), %eax
cmpl -0x4(%rbp), %eax
jne 0x696f
movslq -0x8(%rbp), %rcx
leaq 0x93a1(%rip), %rax      # 0xfc30
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
cmpl $0x1, 0x28(%rax)
jne 0x696f
cmpl $0x0, -0xc(%rbp)
jle 0x68b6
leaq 0x50e9(%rip), %rdi      # 0xb996
movb $0x0, %al
callq 0x30e0
jmp 0x68c4
leaq 0x50ee(%rip), %rdi      # 0xb9ab
movb $0x0, %al
callq 0x30e0
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movslq -0x8(%rbp), %rcx
leaq 0x9358(%rip), %rax      # 0xfc30
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
cmpq $0x0, 0x10(%rax)
je 0x690a
movslq -0x8(%rbp), %rcx
leaq 0x933f(%rip), %rax      # 0xfc30
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rsi
leaq 0x21b7(%rip), %rdi      # 0x8aba
movb $0x0, %al
callq 0x30e0
movslq -0x8(%rbp), %rcx
leaq 0x931b(%rip), %rax      # 0xfc30
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rsi
leaq 0x5093(%rip), %rdi      # 0xb9ba
movb $0x0, %al
callq 0x30e0
movslq -0x8(%rbp), %rcx
leaq 0x92f7(%rip), %rax      # 0xfc30
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movl $0x0, 0x28(%rax)
movslq -0x8(%rbp), %rcx
leaq 0x92de(%rip), %rax      # 0xfc30
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movl $0xffffffff, 0x30(%rax) # imm = 0xFFFFFFFF
movslq -0x8(%rbp), %rcx
leaq 0xa2d5(%rip), %rax      # 0x10c40
movb $0x1, (%rax,%rcx)
jmp 0x6971
movl -0x8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
jmp 0x684b
cmpl $0x0, -0xc(%rbp)
jne 0x6995
leaq 0x5033(%rip), %rdi      # 0xb9bf
movb $0x0, %al
callq 0x30e0
jmp 0x699f
movl $0xa, %edi
callq 0x3050
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/ethinethin[P]Secret/items.c
// Function: list_inv
extern void list_inv(void)
{
	int i;
	int count;

	printf("\nInventory:\n");
	for (count = 0, i = 0; items[i].item_id != -1; i++) {
		if (inventory[i] == YES) {
			count++;
			putchar('\t');
			if (items[i].item_adj != NULL)
				printf("%s ",items[i].item_adj);
			printf("%s\n",items[i].item_name);
		}
	}
	if (count == 0)
		printf("\tnothing.\n");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0x501b(%rip), %rdi      # 0xb9da
movb $0x0, %al
callq 0x30e0
movl $0x0, -0x8(%rbp)
movl $0x0, -0x4(%rbp)
movslq -0x4(%rbp), %rcx
leaq 0x9251(%rip), %rax      # 0xfc30
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
cmpl $-0x1, (%rax)
je 0x6a87
movslq -0x4(%rbp), %rcx
leaq 0xa246(%rip), %rax      # 0x10c40
movsbl (%rax,%rcx), %eax
cmpl $0x1, %eax
jne 0x6a77
movl -0x8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl $0x9, %edi
callq 0x3050
movslq -0x4(%rbp), %rcx
leaq 0x920f(%rip), %rax      # 0xfc30
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
cmpq $0x0, 0x10(%rax)
je 0x6a53
movslq -0x4(%rbp), %rcx
leaq 0x91f6(%rip), %rax      # 0xfc30
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rsi
leaq 0x206e(%rip), %rdi      # 0x8aba
movb $0x0, %al
callq 0x30e0
movslq -0x4(%rbp), %rcx
leaq 0x91d2(%rip), %rax      # 0xfc30
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rsi
leaq 0x2024(%rip), %rdi      # 0x8a94
movb $0x0, %al
callq 0x30e0
jmp 0x6a79
movl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0x69d4
cmpl $0x0, -0x8(%rbp)
jne 0x6a9b
leaq 0x4f53(%rip), %rdi      # 0xb9e7
movb $0x0, %al
callq 0x30e0
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/ethinethin[P]Secret/items.c
// Function: take_item
extern void take_item(int room_id, char *word1, char *word2)
{
	char *adj;
	char *name;
	int item_num;

	putchar('\n');

	if (word1 == NULL) {
		printf("Take what?\n");
		return;
	}
	
	/* assign an adjective if possible */
	assign_name(&word1, &word2, &adj, &name);
		
	/* find out if given name is ambiguous */
	item_num = in_room(room_id, adj, name);
	
	/* if none were found, the item is not present */
	/* if only one was found, it's not ambiguous */
	if (item_num == -1) {
		printf("There is no ");
		if (adj != NULL) printf("%s ",adj);
		printf("%s here.\n",name);
		return;
	} else if (item_num == -2) {
		printf("Which %s do you want to take?\n",name);
		return;
	}

	/* take item if possible */
	if (items[item_num].takeable == YES) {
		items[item_num].location = -1;
		inventory[item_num] = 1;
		printf("You took the ");
		if (items[item_num].item_adj != NULL)
			printf("%s ",items[item_num].item_adj);
		printf("%s.\n",name);
	} else {
		printf("You cannot take the %s!\n",name);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movl %edi, -0x4(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl $0xa, %edi
callq 0x3050
cmpq $0x0, -0x10(%rbp)
jne 0x6ae7
leaq 0x4f17(%rip), %rdi      # 0xb9f2
movb $0x0, %al
callq 0x30e0
jmp 0x6c27
leaq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
leaq -0x20(%rbp), %rdx
leaq -0x28(%rbp), %rcx
callq 0x6c30
movl -0x4(%rbp), %edi
movq -0x20(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq 0x6c90
movl %eax, -0x2c(%rbp)
cmpl $-0x1, -0x2c(%rbp)
jne 0x6b53
leaq 0x4ee2(%rip), %rdi      # 0xb9fe
movb $0x0, %al
callq 0x30e0
cmpq $0x0, -0x20(%rbp)
je 0x6b3c
movq -0x20(%rbp), %rsi
leaq 0x1f85(%rip), %rdi      # 0x8aba
movb $0x0, %al
callq 0x30e0
movq -0x28(%rbp), %rsi
leaq 0x4f8d(%rip), %rdi      # 0xbad4
movb $0x0, %al
callq 0x30e0
jmp 0x6c27
cmpl $-0x2, -0x2c(%rbp)
jne 0x6b70
movq -0x28(%rbp), %rsi
leaq 0x4ea7(%rip), %rdi      # 0xba0b
movb $0x0, %al
callq 0x30e0
jmp 0x6c27
jmp 0x6b72
movslq -0x2c(%rbp), %rcx
leaq 0x90b3(%rip), %rax      # 0xfc30
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
cmpl $0x1, 0x2c(%rax)
jne 0x6c15
movslq -0x2c(%rbp), %rcx
leaq 0x9097(%rip), %rax      # 0xfc30
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movl $0xffffffff, 0x30(%rax) # imm = 0xFFFFFFFF
movslq -0x2c(%rbp), %rcx
leaq 0xa08e(%rip), %rax      # 0x10c40
movb $0x1, (%rax,%rcx)
leaq 0x4e6d(%rip), %rdi      # 0xba2a
movb $0x0, %al
callq 0x30e0
movslq -0x2c(%rbp), %rcx
leaq 0x9061(%rip), %rax      # 0xfc30
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
cmpq $0x0, 0x10(%rax)
je 0x6c01
movslq -0x2c(%rbp), %rcx
leaq 0x9048(%rip), %rax      # 0xfc30
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rsi
leaq 0x1ec0(%rip), %rdi      # 0x8aba
movb $0x0, %al
callq 0x30e0
movq -0x28(%rbp), %rsi
leaq 0x1ea9(%rip), %rdi      # 0x8ab5
movb $0x0, %al
callq 0x30e0
jmp 0x6c27
movq -0x28(%rbp), %rsi
leaq 0x4e18(%rip), %rdi      # 0xba38
movb $0x0, %al
callq 0x30e0
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/ethinethin[P]Secret/items.c
// Function: assign_name
static void assign_name(char **word1, char **word2, char **adj, char **name)
{
	if (*word2 == NULL) {
		*adj = NULL;
		*name = *word1;
	} else {
		*adj = *word1;
		*name = *word2;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, (%rax)
jne 0x6c69
movq -0x18(%rbp), %rax
movq $0x0, (%rax)
movq -0x8(%rbp), %rax
movq (%rax), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
jmp 0x6c85
movq -0x8(%rbp), %rax
movq (%rax), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x10(%rbp), %rax
movq (%rax), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/ethinethin[P]Secret/items.c
// Function: in_room
static int in_room(int room_id, char *adj, char *name)
{
	int i;
	int item_num;
	int count;

	/* find out if given name is ambiguous */
	for (count = 0, i = 0; items[i].item_id != -1; i++) {
		if (strcmp(items[i].item_name,name) == 0 &&
			items[i].location == room_id && items[i].hidden == NO) {
			if (adj == NULL) {
				count++;
				item_num = i;
			} else if (items[i].item_adj != NULL &&
					strcmp(adj,items[i].item_adj) == 0) {
				count = 1;
				item_num = i;
				break;
			}
		}
	}

	/* return results */
	if (count == 0) {
		return -1;
	} else if (count > 1) {
		return -2;
	} else {
		return item_num;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl $0x0, -0x24(%rbp)
movl $0x0, -0x1c(%rbp)
movslq -0x1c(%rbp), %rcx
leaq 0x8f74(%rip), %rax      # 0xfc30
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
cmpl $-0x1, (%rax)
je 0x6da2
movslq -0x1c(%rbp), %rcx
leaq 0x8f59(%rip), %rax      # 0xfc30
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rdi
movq -0x18(%rbp), %rsi
callq 0x3150
cmpl $0x0, %eax
jne 0x6d92
movslq -0x1c(%rbp), %rcx
leaq 0x8f31(%rip), %rax      # 0xfc30
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movl 0x30(%rax), %eax
cmpl -0x8(%rbp), %eax
jne 0x6d92
movslq -0x1c(%rbp), %rcx
leaq 0x8f13(%rip), %rax      # 0xfc30
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
cmpl $0x0, 0x28(%rax)
jne 0x6d92
cmpq $0x0, -0x10(%rbp)
jne 0x6d42
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
movl -0x1c(%rbp), %eax
movl %eax, -0x20(%rbp)
jmp 0x6d90
movslq -0x1c(%rbp), %rcx
leaq 0x8ee3(%rip), %rax      # 0xfc30
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
cmpq $0x0, 0x10(%rax)
je 0x6d8e
movq -0x10(%rbp), %rdi
movslq -0x1c(%rbp), %rcx
leaq 0x8ec6(%rip), %rax      # 0xfc30
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rsi
callq 0x3150
cmpl $0x0, %eax
jne 0x6d8e
movl $0x1, -0x24(%rbp)
movl -0x1c(%rbp), %eax
movl %eax, -0x20(%rbp)
jmp 0x6da2
jmp 0x6d90
jmp 0x6d92
jmp 0x6d94
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x6cb1
cmpl $0x0, -0x24(%rbp)
jne 0x6db1
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x6dc6
cmpl $0x1, -0x24(%rbp)
jle 0x6dc0
movl $0xfffffffe, -0x4(%rbp) # imm = 0xFFFFFFFE
jmp 0x6dc6
movl -0x20(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/ethinethin[P]Secret/items.c
// Function: unique_item
extern int unique_item(int room_id, char *adj, char *name)
{
	int room;
	int inv;

	if (name == NULL) return -1;

	room = in_room(room_id, adj,name);
	inv = in_inv(adj,name);

	if ((room >= 0 && inv >= 0) || room == -2 || inv == -2) {
		return -2;
	} else if (room == -1 && inv == -1) {
		return -1;
	} else {
		if (inv == -1) inv = room;
		return inv;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x6e13
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x6e7e
movl -0x8(%rbp), %edi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x6c90
movl %eax, -0x1c(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x6e90
movl %eax, -0x20(%rbp)
cmpl $0x0, -0x1c(%rbp)
jl 0x6e42
cmpl $0x0, -0x20(%rbp)
jge 0x6e4e
cmpl $-0x2, -0x1c(%rbp)
je 0x6e4e
cmpl $-0x2, -0x20(%rbp)
jne 0x6e57
movl $0xfffffffe, -0x4(%rbp) # imm = 0xFFFFFFFE
jmp 0x6e7e
cmpl $-0x1, -0x1c(%rbp)
jne 0x6e6c
cmpl $-0x1, -0x20(%rbp)
jne 0x6e6c
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x6e7e
cmpl $-0x1, -0x20(%rbp)
jne 0x6e78
movl -0x1c(%rbp), %eax
movl %eax, -0x20(%rbp)
movl -0x20(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/ethinethin[P]Secret/items.c
// Function: in_inv
static int in_inv(char *adj, char *name)
{
	int i;
	int item_num;
	int count;
	
	/* find out if given name is ambiguous */
	for (count = 0, i = 0; items[i].item_id != -1; i++) {
		if (strcmp(items[i].item_name,name) == 0 &&
			inventory[i] == YES) {
			if (adj == NULL) {
				count++;
				item_num = i;
			} else if (items[i].item_adj != NULL &&
				strcmp(adj,items[i].item_adj) == 0) {
				count = 1;
				item_num = i;
				break;
			}
		}
	}

	/* return results */
	if (count == 0) {
		return -1;
	} else if (count > 1) {
		return -2;
	} else {
		return item_num;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movl $0x0, -0x24(%rbp)
movl $0x0, -0x1c(%rbp)
movslq -0x1c(%rbp), %rcx
leaq 0x8d77(%rip), %rax      # 0xfc30
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
cmpl $-0x1, (%rax)
je 0x6f79
movslq -0x1c(%rbp), %rcx
leaq 0x8d5c(%rip), %rax      # 0xfc30
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rdi
movq -0x18(%rbp), %rsi
callq 0x3150
cmpl $0x0, %eax
jne 0x6f69
movslq -0x1c(%rbp), %rcx
leaq 0x9d48(%rip), %rax      # 0x10c40
movsbl (%rax,%rcx), %eax
cmpl $0x1, %eax
jne 0x6f69
cmpq $0x0, -0x10(%rbp)
jne 0x6f19
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
movl -0x1c(%rbp), %eax
movl %eax, -0x20(%rbp)
jmp 0x6f67
movslq -0x1c(%rbp), %rcx
leaq 0x8d0c(%rip), %rax      # 0xfc30
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
cmpq $0x0, 0x10(%rax)
je 0x6f65
movq -0x10(%rbp), %rdi
movslq -0x1c(%rbp), %rcx
leaq 0x8cef(%rip), %rax      # 0xfc30
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rsi
callq 0x3150
cmpl $0x0, %eax
jne 0x6f65
movl $0x1, -0x24(%rbp)
movl -0x1c(%rbp), %eax
movl %eax, -0x20(%rbp)
jmp 0x6f79
jmp 0x6f67
jmp 0x6f69
jmp 0x6f6b
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x6eae
cmpl $0x0, -0x24(%rbp)
jne 0x6f88
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x6f9d
cmpl $0x1, -0x24(%rbp)
jle 0x6f97
movl $0xfffffffe, -0x4(%rbp) # imm = 0xFFFFFFFE
jmp 0x6f9d
movl -0x20(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)