// File: /workspace/github_c_makefile_star2_O0/madler[P]pigz/yarn.c
// Function: wait_for_
void wait_for_(lock *bolt, enum wait_op op, long val,
               char const *file, long line) {
    switch (op) {
        case TO_BE:
            until (bolt->value == val) {
                int ret = pthread_cond_wait(&(bolt->cond), &(bolt->mutex));
                if (ret)
                    fail(ret, file, line, "cond_wait");
            }
            break;
        case NOT_TO_BE:
            until (bolt->value != val) {
                int ret = pthread_cond_wait(&(bolt->cond), &(bolt->mutex));
                if (ret)
                    fail(ret, file, line, "cond_wait");
            }
            break;
        case TO_BE_MORE_THAN:
            until (bolt->value > val) {
                int ret = pthread_cond_wait(&(bolt->cond), &(bolt->mutex));
                if (ret)
                    fail(ret, file, line, "cond_wait");
            }
            break;
        case TO_BE_LESS_THAN:
            until (bolt->value < val) {
                int ret = pthread_cond_wait(&(bolt->cond), &(bolt->mutex));
                if (ret)
                    fail(ret, file, line, "cond_wait");
            }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movl -0xc(%rbp), %eax
movq %rax, -0x40(%rbp)
subq $0x3, %rax
ja 0x11bce
movq -0x40(%rbp), %rax
leaq 0xc089(%rip), %rcx      # 0x1db10
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
jmp 0x11a92
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
cmpq -0x18(%rbp), %rax
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x11aa9
jmp 0x11adc
movq -0x8(%rbp), %rdi
addq $0x28, %rdi
movq -0x8(%rbp), %rsi
callq 0x3150
movl %eax, -0x2c(%rbp)
cmpl $0x0, -0x2c(%rbp)
je 0x11ada
movl -0x2c(%rbp), %edi
movq -0x20(%rbp), %rsi
movq -0x28(%rbp), %rdx
leaq 0xc08c(%rip), %rcx      # 0x1db61
callq 0x11790
jmp 0x11a92
jmp 0x11bce
jmp 0x11ae3
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
cmpq -0x18(%rbp), %rax
setne %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x11afa
jmp 0x11b2d
movq -0x8(%rbp), %rdi
addq $0x28, %rdi
movq -0x8(%rbp), %rsi
callq 0x3150
movl %eax, -0x30(%rbp)
cmpl $0x0, -0x30(%rbp)
je 0x11b2b
movl -0x30(%rbp), %edi
movq -0x20(%rbp), %rsi
movq -0x28(%rbp), %rdx
leaq 0xc03b(%rip), %rcx      # 0x1db61
callq 0x11790
jmp 0x11ae3
jmp 0x11bce
jmp 0x11b34
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
cmpq -0x18(%rbp), %rax
setg %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x11b4b
jmp 0x11b7e
movq -0x8(%rbp), %rdi
addq $0x28, %rdi
movq -0x8(%rbp), %rsi
callq 0x3150
movl %eax, -0x34(%rbp)
cmpl $0x0, -0x34(%rbp)
je 0x11b7c
movl -0x34(%rbp), %edi
movq -0x20(%rbp), %rsi
movq -0x28(%rbp), %rdx
leaq 0xbfea(%rip), %rcx      # 0x1db61
callq 0x11790
jmp 0x11b34
jmp 0x11bce
jmp 0x11b82
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
cmpq -0x18(%rbp), %rax
setl %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x11b99
jmp 0x11bcc
movq -0x8(%rbp), %rdi
addq $0x28, %rdi
movq -0x8(%rbp), %rsi
callq 0x3150
movl %eax, -0x38(%rbp)
cmpl $0x0, -0x38(%rbp)
je 0x11bca
movl -0x38(%rbp), %edi
movq -0x20(%rbp), %rsi
movq -0x28(%rbp), %rdx
leaq 0xbf9c(%rip), %rcx      # 0x1db61
callq 0x11790
jmp 0x11b82
jmp 0x11bce
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)