Function at 0x180008ed0
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov rsi, rcx
cmp byte [rcx + 0x48], 0
je 0x180008f00
mov eax, dword [rsi + 0x54]
cmp eax, dword [rsi + 0x50]
jne 0x180009085
add rsi, 0x50
xor ecx, ecx
jmp 0x180009294
mov rbx, r8
mov rdi, rdx
lea r14, [rsi + 0x40]
test r8, r8
je 0x18000909e
mov r9, qword [rsi + 0x10]
mov r8, qword [rsi + 0x18]
nop dword [rax + rax]
mov rdx, qword [rsi]
cmp r9, r8
jb 0x180009007
mov rax, qword [rsi + 8]
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 0
mov rbp, qword [rsi + 0x20]
mov qword [rsp + 0x40], rbp
mov r12, qword [rsi + 0x38]
test r12, r12
je 0x180008f8c
cmp r12, rax
jbe 0x180008f91
mov r13, rdx
mov rcx, qword [rsi + 0x28]
mov rax, qword [rsi + 0x30]
lea rdx, [rsp + 0x28]
xor r8d, r8d
call qword [rax + 0x48]
test rax, rax
jne 0x1800091e4
mov r8, qword [rsp + 0x38]
sub r12, r8
mov qword [rsi + 0x38], r12
mov rbp, qword [rsp + 0x40]
jmp 0x180008ff1
xor r8d, r8d
jmp 0x180008ff4
cmp r12, rbp
mov rax, rbp
cmovb rax, r12
mov r13, rdx
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x60], rax
mov rcx, qword [rsi + 0x28]
mov rax, qword [rsi + 0x30]
lea rdx, [rsp + 0x48]
xor r8d, r8d
call qword [rax + 0x48]
test rax, rax
jne 0x1800091e4
mov r8, qword [rsp + 0x58]
mov rax, qword [rsp + 0x60]
cmp rbp, r8
cmovbe rbp, r8
cmp rbp, rax
cmovbe rbp, rax
sub r12, r8
mov qword [rsi + 0x38], r12
mov rdx, r13
mov qword [rsi + 0x10], 0
mov qword [rsi + 0x18], r8
mov qword [rsi + 0x20], rbp
xor r9d, r9d
mov r15, r8
sub r15, r9
test rdx, rdx
je 0x1800091e7
add rdx, r9
mov rax, qword [rsi + 0x40]
mov r13, qword [rax + 0xc]
mov r12, qword [rax + 0x24]
mov qword [rsp + 0x20], rbx
mov rcx, r14
mov r8, r15
mov r9, rdi
call sym.bzip2::mem::Decompress::decompress::h00a44f1a8a2b9e04
mov r8, qword [rsi + 0x18]
mov rcx, qword [rsi + 0x40]
mov r9, qword [rcx + 0xc]
sub r9, r13
mov rcx, qword [rcx + 0x24]
add r9, qword [rsi + 0x10]
cmp r9, r8
cmovae r9, r8
mov qword [rsi + 0x10], r9
test al, 1
jne 0x1800091dd
sub rcx, r12
cmp dl, 4
je 0x1800091f9
test r15, r15
je 0x1800091fd
test rcx, rcx
je 0x180008f20
jmp 0x1800091fd
lea rdx, [0x1800d5e5b]
mov r8d, 0x10
mov cl, 0x27
call sym.std::io::error::Error::new::h334dd3ea3c12be73
jmp 0x1800091e4
mov r12, qword [rsi]
mov rax, qword [rsi + 0x10]
mov r15, qword [rsi + 0x18]
cmp rax, r15
jb 0x180009186
mov rax, qword [rsi + 8]
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 0
mov rbp, qword [rsi + 0x20]
mov qword [rsp + 0x40], rbp
mov r13, qword [rsi + 0x38]
test r13, r13
je 0x180009112
cmp r13, rax
jbe 0x180009117
mov rcx, qword [rsi + 0x28]
mov rax, qword [rsi + 0x30]
lea rdx, [rsp + 0x28]
xor r8d, r8d
call qword [rax + 0x48]
mov r15, rax
test rax, rax
jne 0x1800091e7
mov r15, qword [rsp + 0x38]
sub r13, r15
mov qword [rsi + 0x38], r13
mov rbp, qword [rsp + 0x40]
jmp 0x180009174
xor r15d, r15d
jmp 0x180009174
cmp r13, rbp
mov rax, rbp
cmovb rax, r13
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x60], rax
mov rcx, qword [rsi + 0x28]
mov rax, qword [rsi + 0x30]
lea rdx, [rsp + 0x48]
xor r8d, r8d
call qword [rax + 0x48]
test rax, rax
jne 0x1800091e4
mov r15, qword [rsp + 0x58]
mov rax, qword [rsp + 0x60]
cmp rbp, r15
cmovbe rbp, r15
cmp rbp, rax
cmovbe rbp, rax
sub r13, r15
mov qword [rsi + 0x38], r13
mov qword [rsi + 0x10], 0
mov qword [rsi + 0x18], r15
mov qword [rsi + 0x20], rbp
xor eax, eax
sub r15, rax
test r12, r12
je 0x1800091e7
add r12, rax
mov rax, qword [rsi + 0x40]
mov rbp, qword [rax + 0xc]
mov r13, qword [rax + 0x24]
mov qword [rsp + 0x20], 0
mov rcx, r14
mov rdx, r12
mov r8, r15
mov r9, rdi
call sym.bzip2::mem::Decompress::decompress::h00a44f1a8a2b9e04
mov r8, qword [rsi + 0x18]
mov rcx, qword [rsi + 0x40]
mov r9, qword [rcx + 0xc]
sub r9, rbp
mov rcx, qword [rcx + 0x24]
add r9, qword [rsi + 0x10]
cmp r9, r8
cmovae r9, r8
mov qword [rsi + 0x10], r9
test al, 1
je 0x1800091f1
mov cl, 0x14
call sym.std::io::error::Error::new::h35f6fd791c34fe7c
mov r15, rax
mov eax, 1
jmp 0x18000929b
sub rcx, r13
cmp dl, 4
jne 0x1800091fd
mov byte [rsi + 0x48], 1
test rcx, rcx
je 0x180008ee9
cmp rcx, rbx
ja 0x1800092af
mov eax, dword [rsi + 0x50]
not eax
test cl, 1
jne 0x180009224
mov rdx, rdi
cmp rcx, 1
jne 0x180009247
jmp 0x18000928e
lea rdx, [rdi + 1]
movzx r8d, byte [rdi]
xor r8b, al
movzx r8d, r8b
lea r9, [0x1800d59fc]
shr eax, 8
xor eax, dword [r9 + r8*4]
cmp rcx, 1
je 0x18000928e
add rdi, rcx
lea r8, [0x1800d59fc]
nop word cs:[rax + rax]
movzx r9d, byte [rdx]
xor r9b, al
movzx r9d, r9b
shr eax, 8
xor eax, dword [r8 + r9*4]
movzx r9d, byte [rdx + 1]
xor r9b, al
movzx r9d, r9b
shr eax, 8
xor eax, dword [r8 + r9*4]
add rdx, 2
cmp rdx, rdi
jne 0x180009260
add rsi, 0x50
not eax
mov dword [rsi], eax
xor eax, eax
mov r15, rcx
mov rdx, r15
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, [0x1800d5e70]
mov rdx, rbx
call sym.core::slice::index::slice_end_index_len_fail::hdaa9bbd2fcad4cbb
int3