Function at 0x1400670c0
Capabilities:
Hash data with crc32

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov rdi, r8
test rdx, rdx
je 0x140067119
mov rsi, rdx
mov ebx, ecx
cmp rdi, 0x40
jb 0x14006712e
cmp dword [0x1401c6994], 0
je 0x14006712e
mov r14, rdi
and r14, 0xfffffffffffffff0
not ebx
mov rcx, rsi
mov rdx, r14
mov r8d, ebx
call fcn.140009e30
mov ebp, eax
and rdi, 0xf
je 0x14006791f
add rsi, r14
mov ebx, ebp
jmp 0x14006780c
xor ebp, ebp
test rdi, rdi
jne 0x140067921
call fcn.140098a80
jmp 0x140067921
not ebx
cmp rdi, 0x2f
jb 0x14006780c
test sil, 7
je 0x1400672a1
mov edx, ebx
shr edx, 8
xor bl, byte [rsi]
lea rcx, [rsi + 1]
movzx r8d, bl
lea rax, [0x14018ba00]
mov ebx, edx
xor ebx, dword [rax + r8*4]
mov rdx, rdi
dec rdx
je 0x14006729b
mov r8d, ecx
and r8d, 7
je 0x14006729b
mov edx, ebx
shr edx, 8
lea rcx, [rsi + 2]
xor bl, byte [rsi + 1]
movzx r8d, bl
mov ebx, edx
xor ebx, dword [rax + r8*4]
mov rdx, rdi
add rdx, 0xfffffffffffffffe
je 0x14006729b
mov r8d, ecx
and r8d, 7
je 0x14006729b
mov edx, ebx
shr edx, 8
lea rcx, [rsi + 3]
xor bl, byte [rsi + 2]
movzx r8d, bl
mov ebx, edx
xor ebx, dword [rax + r8*4]
mov rdx, rdi
add rdx, 0xfffffffffffffffd
je 0x14006729b
mov r8d, ecx
and r8d, 7
je 0x14006729b
mov edx, ebx
shr edx, 8
lea rcx, [rsi + 4]
xor bl, byte [rsi + 3]
movzx r8d, bl
mov ebx, edx
xor ebx, dword [rax + r8*4]
mov rdx, rdi
add rdx, 0xfffffffffffffffc
je 0x14006729b
mov r8d, ecx
and r8d, 7
je 0x14006729b
mov edx, ebx
shr edx, 8
lea rcx, [rsi + 5]
xor bl, byte [rsi + 4]
movzx r8d, bl
mov ebx, edx
xor ebx, dword [rax + r8*4]
mov rdx, rdi
add rdx, 0xfffffffffffffffb
je 0x14006729b
mov r8d, ecx
and r8d, 7
je 0x14006729b
mov edx, ebx
shr edx, 8
lea rcx, [rsi + 6]
xor bl, byte [rsi + 5]
movzx r8d, bl
mov ebx, edx
xor ebx, dword [rax + r8*4]
mov rdx, rdi
add rdx, 0xfffffffffffffffa
je 0x14006729b
mov r8d, ecx
and r8d, 7
je 0x14006729b
mov edx, ebx
shr edx, 8
lea rcx, [rsi + 7]
xor bl, byte [rsi + 6]
movzx r8d, bl
mov ebx, edx
xor ebx, dword [rax + r8*4]
mov rdx, rdi
add rdx, 0xfffffffffffffff9
je 0x14006729b
mov r8d, ecx
and r8d, 7
je 0x14006729b
add rdi, 0xfffffffffffffff8
mov ecx, ebx
shr ecx, 8
xor bl, byte [rsi + 7]
add rsi, 8
movzx edx, bl
xor ecx, dword [rax + rdx*4]
mov ebx, ecx
jmp 0x1400672a1
mov rdi, rdx
mov rsi, rcx
movabs rcx, 0xcccccccccccccccd
mov rax, rdi
mul rcx
shr rdx, 5
lea rax, [rdx*8]
lea r8, [rax + rax*4]
mov r10, rdx
dec r10
je 0x1400675d8
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x38], rdi
xor r11d, r11d
lea rax, [rdx + rdx*4]
lea rax, [rax*8 - 0x28]
mov qword [rsp + 0x28], rax
lea r9, [0x14018be00]
xor edx, edx
xor ecx, ecx
xor eax, eax
mov qword [rsp + 0x40], rsi
nop dword [rax]
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x50], r10
mov r8, qword [rsi]
mov qword [rsp + 0x48], r8
xor ebx, r8d
movzx r8d, bl
movzx esi, bh
mov ebp, dword [r9 + rsi*4 + 0x400]
xor ebp, dword [r9 + r8*4]
mov r8d, ebx
shr r8d, 0xe
and r8d, 0x3fc
xor ebp, dword [r8 + r9 + 0x800]
shr ebx, 0x18
xor ebp, dword [r9 + rbx*4 + 0xc00]
mov r8, qword [rsp + 0x20]
mov r12, qword [r8 + 8]
xor eax, r12d
movzx r8d, al
movzx esi, ah
mov r13d, dword [r9 + rsi*4 + 0x400]
xor r13d, dword [r9 + r8*4]
mov r8d, eax
shr r8d, 0xe
and r8d, 0x3fc
xor r13d, dword [r8 + r9 + 0x800]
shr eax, 0x18
xor r13d, dword [r9 + rax*4 + 0xc00]
mov rax, qword [rsp + 0x20]
mov rdi, qword [rax + 0x10]
xor ecx, edi
mov rax, qword [rsp + 0x20]
mov r14, qword [rax + 0x18]
xor edx, r14d
mov rax, qword [rsp + 0x20]
mov r8, qword [rax + 0x20]
mov rbx, r11
xor ebx, r8d
movzx eax, cl
movzx r15d, dl
movzx r11d, bl
movzx esi, ch
mov r10d, dword [r9 + rsi*4 + 0x400]
xor r10d, dword [r9 + rax*4]
movzx eax, dh
mov esi, dword [r9 + rax*4 + 0x400]
xor esi, dword [r9 + r15*4]
movzx eax, bh
mov r15d, dword [r9 + rax*4 + 0x400]
xor r15d, dword [r9 + r11*4]
mov eax, ecx
shr eax, 0xe
and eax, 0x3fc
xor r10d, dword [rax + r9 + 0x800]
mov eax, edx
shr eax, 0xe
and eax, 0x3fc
xor esi, dword [rax + r9 + 0x800]
mov eax, ebx
shr eax, 0xe
and eax, 0x3fc
xor r15d, dword [rax + r9 + 0x800]
shr ecx, 0x18
xor r10d, dword [r9 + rcx*4 + 0xc00]
shr edx, 0x18
xor esi, dword [r9 + rdx*4 + 0xc00]
shr ebx, 0x18
xor r15d, dword [r9 + rbx*4 + 0xc00]
mov rcx, qword [rsp + 0x48]
mov rax, rcx
shr rax, 0x20
movzx eax, al
xor ebp, dword [r9 + rax*4 + 0x1000]
mov rax, r12
shr rax, 0x20
movzx eax, al
xor r13d, dword [r9 + rax*4 + 0x1000]
mov rax, rdi
shr rax, 0x20
movzx eax, al
xor r10d, dword [r9 + rax*4 + 0x1000]
mov rax, r14
shr rax, 0x20
movzx eax, al
xor esi, dword [r9 + rax*4 + 0x1000]
mov rax, r8
shr rax, 0x20
movzx eax, al
xor r15d, dword [r9 + rax*4 + 0x1000]
mov rax, rcx
shr rax, 0x28
movzx eax, al
xor ebp, dword [r9 + rax*4 + 0x1400]
mov rax, r12
shr rax, 0x28
movzx eax, al
xor r13d, dword [r9 + rax*4 + 0x1400]
mov rax, rdi
shr rax, 0x28
movzx eax, al
xor r10d, dword [r9 + rax*4 + 0x1400]
mov rax, r14
shr rax, 0x28
movzx eax, al
xor esi, dword [r9 + rax*4 + 0x1400]
mov rax, r8
shr rax, 0x28
movzx eax, al
xor r15d, dword [r9 + rax*4 + 0x1400]
mov rax, rcx
shr rax, 0x30
movzx eax, al
xor ebp, dword [r9 + rax*4 + 0x1800]
mov rax, r12
shr rax, 0x30
movzx eax, al
xor r13d, dword [r9 + rax*4 + 0x1800]
mov rax, rdi
shr rax, 0x30
movzx eax, al
xor r10d, dword [r9 + rax*4 + 0x1800]
mov rax, r14
shr rax, 0x30
movzx eax, al
xor esi, dword [r9 + rax*4 + 0x1800]
mov rax, r8
shr rax, 0x30
movzx eax, al
xor r15d, dword [r9 + rax*4 + 0x1800]
mov rax, rcx
shr rax, 0x38
mov ebx, ebp
xor ebx, dword [r9 + rax*4 + 0x1c00]
shr r12, 0x38
mov eax, r13d
xor eax, dword [r9 + r12*4 + 0x1c00]
shr rdi, 0x38
mov ecx, r10d
mov r10, qword [rsp + 0x50]
xor ecx, dword [r9 + rdi*4 + 0x1c00]
shr r14, 0x38
mov edx, esi
xor edx, dword [r9 + r14*4 + 0x1c00]
shr r8, 0x38
mov r11d, r15d
xor r11d, dword [r9 + r8*4 + 0x1c00]
mov rsi, qword [rsp + 0x20]
add rsi, 0x28
dec r10
jne 0x140067300
mov rsi, qword [rsp + 0x40]
add rsi, qword [rsp + 0x28]
mov r11d, r11d
mov eax, eax
mov r10d, ecx
mov r9d, edx
mov r14, rax
mov rdi, qword [rsp + 0x38]
mov r8, qword [rsp + 0x30]
jmp 0x1400675e4
xor r10d, r10d
xor r9d, r9d
xor r11d, r11d
xor r14d, r14d
mov eax, ebx
xor rax, qword [rsi]
movzx edx, al
shr rax, 8
lea rcx, [0x14018ba00]
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
xor edx, dword [rcx + rax*4]
xor r14, qword [rsi + 8]
xor rdx, r14
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
xor eax, dword [rcx + rdx*4]
xor r10, qword [rsi + 0x10]
xor rax, r10
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
xor edx, dword [rcx + rax*4]
sub rdi, r8
xor r9, qword [rsi + 0x18]
xor rdx, r9
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
xor eax, dword [rcx + rdx*4]
xor r11, qword [rsi + 0x20]
xor rax, r11
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov ebx, dword [rcx + rdx*4]
xor rbx, rax
movzx eax, bl
shr rbx, 8
xor ebx, dword [rcx + rax*4]
add rsi, 0x28
cmp rdi, 8
jb 0x14006789d
lea rax, [0x14018ba00]
nop dword [rax]
mov ecx, ebx
xor bl, byte [rsi]
shr ecx, 8
movzx edx, bl
xor ecx, dword [rax + rdx*4]
mov edx, ecx
xor cl, byte [rsi + 1]
shr edx, 8
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov ecx, edx
xor dl, byte [rsi + 2]
shr ecx, 8
movzx edx, dl
xor ecx, dword [rax + rdx*4]
mov edx, ecx
xor cl, byte [rsi + 3]
shr edx, 8
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov ecx, edx
xor dl, byte [rsi + 4]
shr ecx, 8
movzx edx, dl
xor ecx, dword [rax + rdx*4]
add rdi, 0xfffffffffffffff8
mov edx, ecx
xor cl, byte [rsi + 5]
shr edx, 8
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov ecx, edx
shr ecx, 8
xor dl, byte [rsi + 6]
movzx edx, dl
xor ecx, dword [rax + rdx*4]
mov ebx, ecx
shr ebx, 8
xor cl, byte [rsi + 7]
add rsi, 8
movzx ecx, cl
xor ebx, dword [rax + rcx*4]
cmp rdi, 7
ja 0x140067820
test rdi, rdi
je 0x1400678b3
test dil, 1
jne 0x1400678b7
mov rax, rdi
cmp rdi, 1
jne 0x1400678da
jmp 0x14006791f
mov ebp, ebx
jmp 0x14006791f
lea rax, [rdi - 1]
mov ebp, ebx
shr ebp, 8
xor bl, byte [rsi]
inc rsi
movzx ecx, bl
lea rdx, [0x14018ba00]
xor ebp, dword [rdx + rcx*4]
mov ebx, ebp
cmp rdi, 1
je 0x14006791f
xor ecx, ecx
lea rdx, [0x14018ba00]
mov ebp, ebx
nop word cs:[rax + rax]
mov r8d, ebp
shr r8d, 8
xor bpl, byte [rsi + rcx]
movzx r9d, bpl
xor r8d, dword [rdx + r9*4]
mov ebp, r8d
shr ebp, 8
xor r8b, byte [rsi + rcx + 1]
movzx r8d, r8b
xor ebp, dword [rdx + r8*4]
add rcx, 2
cmp rax, rcx
jne 0x1400678f0
not ebp
mov eax, ebp
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret