// File: /workspace/github_c_makefile_star2_O2/briandowns[P]pass/pass.c
// Function: check
void check(const char *pass) {
    printf("report:\n");

    int score = 0;

    size_t pass_size = strlen(pass);

    printf("  greater than 8:");
    if (pass_size > 8) {
        score++;
        printf(" y\n");
    } else {
        printf(" n\n");
    }

    printf("  has lower:");
    if (has_lower_char(pass)) {
        score++;
        printf("      y\n");
    } else {
        printf("      n\n");
    }

    printf("  has upper:");
    if (has_upper_char(pass)) {
        score++;
        printf("      y\n");
    } else {
        printf("      n\n");
    }

    printf("  has special:");
    if (has_special_char(pass)) {
        score++;
        printf("    y\n");
    } else {
        printf("    n\n");
    }

    printf("  in dictionary:");
    if (in_dict(pass)) {
        score--;
        printf("  y\n");
    } else {
        printf("  n\n");
    }

    return;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
leaq 0xdfe32(%rip), %rdi     # 0x4e24c3
callq 0x441a70
movq %rbx, %rdi
callq 0x4010e8
movq %rax, %r14
leaq 0xdfd68(%rip), %rdi     # 0x4e2410
xorl %eax, %eax
callq 0x432510
cmpq $0x9, %r14
leaq 0xdfe1e(%rip), %rax     # 0x4e24d8
leaq 0xdfe0f(%rip), %rdi     # 0x4e24d0
cmovaeq %rax, %rdi
callq 0x441a70
leaq 0xdfd51(%rip), %rdi     # 0x4e2422
xorl %eax, %eax
callq 0x432510
movq %rbx, %rdi
callq 0x4010e8
movq %rax, %r14
movq %rax, %r13
negq %r13
pushq $-0x1
popq %rbp
leaq 0xdfd69(%rip), %r15     # 0x4e245c
pushq $0x1b
popq %r12
movq %r13, %rax
addq %rbp, %rax
cmpq $-0x1, %rax
je 0x402729
movsbl 0x1(%rbx,%rbp), %esi
movq %r15, %rdi
movq %r12, %rdx
callq 0x401078
incq %rbp
testq %rax, %rax
je 0x4026f7
cmpq %rbp, %r14
jbe 0x402729
leaq 0xdfdac(%rip), %rdi     # 0x4e24d3
jmp 0x402730
leaq 0xdfd9b(%rip), %rdi     # 0x4e24cb
callq 0x441a70
leaq 0xdfcf3(%rip), %rdi     # 0x4e242f
xorl %eax, %eax
callq 0x432510
movq %rbx, %rdi
callq 0x4010e8
movq %rax, %r14
movq %rax, %r13
negq %r13
pushq $-0x1
popq %rbp
leaq 0xdfd19(%rip), %r15     # 0x4e2477
pushq $0x1b
popq %r12
movq %r13, %rax
addq %rbp, %rax
cmpq $-0x1, %rax
je 0x402794
movsbl 0x1(%rbx,%rbp), %esi
movq %r15, %rdi
movq %r12, %rdx
callq 0x401078
incq %rbp
testq %rax, %rax
je 0x402762
cmpq %rbp, %r14
jbe 0x402794
leaq 0xdfd41(%rip), %rdi     # 0x4e24d3
jmp 0x40279b
leaq 0xdfd30(%rip), %rdi     # 0x4e24cb
callq 0x441a70
leaq 0xdfc95(%rip), %rdi     # 0x4e243c
xorl %eax, %eax
callq 0x432510
movq %rbx, %rdi
callq 0x4010e8
movq %rax, %r14
movq %rax, %r13
negq %r13
pushq $-0x1
popq %rbp
leaq 0xdfc2d(%rip), %r15     # 0x4e23f6
pushq $0x1a
popq %r12
movq %r13, %rax
addq %rbp, %rax
cmpq $-0x1, %rax
je 0x4027ff
movsbl 0x1(%rbx,%rbp), %esi
movq %r15, %rdi
movq %r12, %rdx
callq 0x401078
incq %rbp
testq %rax, %rax
je 0x4027cd
cmpq %rbp, %r14
jbe 0x4027ff
leaq 0xdfcd8(%rip), %rdi     # 0x4e24d5
jmp 0x402806
leaq 0xdfcc7(%rip), %rdi     # 0x4e24cd
callq 0x441a70
leaq 0xdfc39(%rip), %rdi     # 0x4e244b
xorl %eax, %eax
callq 0x432510
leaq 0xdfc72(%rip), %rdi     # 0x4e2492
leaq 0x103c40(%rip), %rsi    # 0x506467
callq 0x4413f0
testq %rax, %rax
je 0x40289d
movq %rax, %r14
movq %rsp, %r15
pushq $0x1a
popq %rbp
leaq 0xdfc7f(%rip), %r12     # 0x4e24c0
movq %r15, %rdi
movl %ebp, %esi
movq %r14, %rdx
callq 0x441140
testq %rax, %rax
je 0x40287a
movq %r15, %rdi
movq %r12, %rsi
callq 0x4010d0
movb $0x0, (%rsp,%rax)
movq %r15, %rdi
movq %rbx, %rsi
callq 0x4010b8
testl %eax, %eax
jne 0x402841
leaq 0xdfc5f(%rip), %rdi     # 0x4e24d7
jmp 0x402889
movq %r14, %rdi
callq 0x440b60
leaq 0xdfc46(%rip), %rdi     # 0x4e24cf
callq 0x441a70
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xdfc04(%rip), %rdi     # 0x4e24a8
callq 0x432800
xorl %edi, %edi
callq 0x430c50