// File: ALSchwalm[P]entrospy/entrospy/category.cpp
// Function: categorize[abi:cxx11](double, PrintingPolicy const&)
std::string categorize(double score, const PrintingPolicy& policy) {
    if (score > 0.93) {
        return "compressed/random/encrypted";
    } else if (score > 0.8) {
        return "uncompressed binary format";
    } else if (score > 0.65) {
        return "uncompressed text format";
    } else if (score > 0.55) {
        return "text";
    } else if (score > 0.35) {
        return "executable instructions";
    } else {
        return "low entropy format";
    }
}

// Assembly:
subq $0x78, %rsp
movq %rdi, 0x30(%rsp)
movq %rdi, %rax
movq %rax, 0x38(%rsp)
movq %rdi, 0x70(%rsp)
movsd %xmm0, 0x68(%rsp)
movq %rsi, 0x60(%rsp)
movsd 0x68(%rsp), %xmm0
movsd 0x2b149(%rip), %xmm1    # 0x36008
ucomisd %xmm1, %xmm0
jbe 0xaf18
leaq 0x5f(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0xa9d0
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rdx
leaq 0x2b14b(%rip), %rsi     # 0x36030
callq 0xa750
jmp 0xaeec
leaq 0x5f(%rsp), %rdi
callq 0xa560
jmp 0xb0f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x50(%rsp)
movl %eax, 0x4c(%rsp)
leaq 0x5f(%rsp), %rdi
callq 0xa560
jmp 0xb103
movsd 0x68(%rsp), %xmm0
movsd 0x2b0ea(%rip), %xmm1    # 0x36010
ucomisd %xmm1, %xmm0
jbe 0xaf7f
leaq 0x4b(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0xa9d0
movq 0x30(%rsp), %rdi
movq 0x20(%rsp), %rdx
leaq 0x2b100(%rip), %rsi     # 0x3604c
callq 0xa750
jmp 0xaf53
leaq 0x4b(%rsp), %rdi
callq 0xa560
jmp 0xb0f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x50(%rsp)
movl %eax, 0x4c(%rsp)
leaq 0x4b(%rsp), %rdi
callq 0xa560
jmp 0xb103
movsd 0x68(%rsp), %xmm0
movsd 0x2b08b(%rip), %xmm1    # 0x36018
ucomisd %xmm1, %xmm0
jbe 0xafe6
leaq 0x4a(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0xa9d0
movq 0x30(%rsp), %rdi
movq 0x18(%rsp), %rdx
leaq 0x2b0b4(%rip), %rsi     # 0x36067
callq 0xa750
jmp 0xafba
leaq 0x4a(%rsp), %rdi
callq 0xa560
jmp 0xb0f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x50(%rsp)
movl %eax, 0x4c(%rsp)
leaq 0x4a(%rsp), %rdi
callq 0xa560
jmp 0xb103
movsd 0x68(%rsp), %xmm0
movsd 0x2b02c(%rip), %xmm1    # 0x36020
ucomisd %xmm1, %xmm0
jbe 0xb04d
leaq 0x49(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0xa9d0
movq 0x30(%rsp), %rdi
movq 0x10(%rsp), %rdx
leaq 0x2b066(%rip), %rsi     # 0x36080
callq 0xa750
jmp 0xb021
leaq 0x49(%rsp), %rdi
callq 0xa560
jmp 0xb0f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x50(%rsp)
movl %eax, 0x4c(%rsp)
leaq 0x49(%rsp), %rdi
callq 0xa560
jmp 0xb103
movsd 0x68(%rsp), %xmm0
movsd 0x2afcd(%rip), %xmm1    # 0x36028
ucomisd %xmm1, %xmm0
jbe 0xb0ae
leaq 0x48(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0xa9d0
movq 0x30(%rsp), %rdi
movq 0x8(%rsp), %rdx
leaq 0x2b004(%rip), %rsi     # 0x36085
callq 0xa750
jmp 0xb088
leaq 0x48(%rsp), %rdi
callq 0xa560
jmp 0xb0f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x50(%rsp)
movl %eax, 0x4c(%rsp)
leaq 0x48(%rsp), %rdi
callq 0xa560
jmp 0xb103
leaq 0x47(%rsp), %rdi
movq %rdi, (%rsp)
callq 0xa9d0
movq 0x30(%rsp), %rdi
movq (%rsp), %rdx
leaq 0x2afd1(%rip), %rsi     # 0x3609d
callq 0xa750
jmp 0xb0d3
leaq 0x47(%rsp), %rdi
callq 0xa560
jmp 0xb0f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x50(%rsp)
movl %eax, 0x4c(%rsp)
leaq 0x47(%rsp), %rdi
callq 0xa560
jmp 0xb103
movq 0x38(%rsp), %rax
addq $0x78, %rsp
retq
movq 0x50(%rsp), %rdi
callq 0xa9b0
nopl (%rax)