bad64 0.12.0

Rust bindings for Binja's arm64 disassembler
Documentation
fn main() {
    let start = std::time::Instant::now();
    let mut decoded = 0;

    for int in 0..=u32::MAX {
        let inst = bad64::decode(int, 0);

        if inst.is_ok() {
            decoded += 1;
        }

        if (int > 0) && (int & 0x07ff_ffff == 0) {
            let time = start.elapsed();
            let p = (int as f64) / (u32::MAX as f64) * 100.0;
            let rate = (int as f64) / u64::max(1, time.as_secs()) as f64;
            println!(
                "checked {} words ({:.1}%) in {:.1?} ({:.0} words/sec)",
                int, p, time, rate
            );
        }
    }

    let time = start.elapsed();
    println!("decoded {} valid instructions in {:.1?}", decoded, time);
}