Function at 0x140068500
Capabilities:
Hash data with crc32

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov rdi, r8
test rdx, rdx
je 0x140068559
mov rsi, rdx
mov r8d, ecx
cmp rdi, 0x40
jb 0x14006856e
cmp dword [0x1401ed5b4], 0
je 0x14006856e
mov r14, rdi
and r14, 0xfffffffffffffff0
not r8d
mov rcx, rsi
mov rdx, r14
call fcn.14000af70
mov ebx, eax
and rdi, 0xf
je 0x140068dce
add rsi, r14
mov r8d, ebx
jmp 0x140068ca6
xor ebx, ebx
test rdi, rdi
jne 0x140068dd0
call fcn.140097b40
jmp 0x140068dd0
not r8d
cmp rdi, 0x2f
jb 0x140068ca6
test sil, 7
je 0x1400686fb
mov edx, r8d
shr edx, 8
xor r8b, byte [rsi]
lea rcx, [rsi + 1]
movzx r9d, r8b
lea rax, [0x1401993d0]
mov r8d, edx
xor r8d, dword [rax + r9*4]
mov rdx, rdi
dec rdx
je 0x1400686f5
mov r9d, ecx
and r9d, 7
je 0x1400686f5
mov edx, r8d
shr edx, 8
lea rcx, [rsi + 2]
xor r8b, byte [rsi + 1]
movzx r9d, r8b
mov r8d, edx
xor r8d, dword [rax + r9*4]
mov rdx, rdi
add rdx, 0xfffffffffffffffe
je 0x1400686f5
mov r9d, ecx
and r9d, 7
je 0x1400686f5
mov edx, r8d
shr edx, 8
lea rcx, [rsi + 3]
xor r8b, byte [rsi + 2]
movzx r9d, r8b
mov r8d, edx
xor r8d, dword [rax + r9*4]
mov rdx, rdi
add rdx, 0xfffffffffffffffd
je 0x1400686f5
mov r9d, ecx
and r9d, 7
je 0x1400686f5
mov edx, r8d
shr edx, 8
lea rcx, [rsi + 4]
xor r8b, byte [rsi + 3]
movzx r9d, r8b
mov r8d, edx
xor r8d, dword [rax + r9*4]
mov rdx, rdi
add rdx, 0xfffffffffffffffc
je 0x1400686f5
mov r9d, ecx
and r9d, 7
je 0x1400686f5
mov edx, r8d
shr edx, 8
lea rcx, [rsi + 5]
xor r8b, byte [rsi + 4]
movzx r9d, r8b
mov r8d, edx
xor r8d, dword [rax + r9*4]
mov rdx, rdi
add rdx, 0xfffffffffffffffb
je 0x1400686f5
mov r9d, ecx
and r9d, 7
je 0x1400686f5
mov edx, r8d
shr edx, 8
lea rcx, [rsi + 6]
xor r8b, byte [rsi + 5]
movzx r9d, r8b
mov r8d, edx
xor r8d, dword [rax + r9*4]
mov rdx, rdi
add rdx, 0xfffffffffffffffa
je 0x1400686f5
mov r9d, ecx
and r9d, 7
je 0x1400686f5
mov edx, r8d
shr edx, 8
lea rcx, [rsi + 7]
xor r8b, byte [rsi + 6]
movzx r9d, r8b
mov r8d, edx
xor r8d, dword [rax + r9*4]
mov rdx, rdi
add rdx, 0xfffffffffffffff9
je 0x1400686f5
mov r9d, ecx
and r9d, 7
je 0x1400686f5
add rdi, 0xfffffffffffffff8
mov ecx, r8d
shr ecx, 8
xor r8b, byte [rsi + 7]
add rsi, 8
movzx edx, r8b
xor ecx, dword [rax + rdx*4]
mov r8d, ecx
jmp 0x1400686fb
mov rdi, rdx
mov rsi, rcx
movabs rcx, 0xcccccccccccccccd
mov rax, rdi
mul rcx
shr rdx, 5
lea rax, [rdx*8]
lea rbx, [rax + rax*4]
xor ecx, ecx
mov r9, rdx
dec r9
je 0x140068a63
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x30], rdi
lea rax, [rdx + rdx*4]
lea rax, [rax*8 - 0x28]
mov qword [rsp + 0x20], rax
lea r14, [0x1401997d0]
xor edx, edx
xor r10d, r10d
xor ebx, ebx
mov r12, rsi
nop word cs:[rax + rax]
mov eax, r8d
mov r8, qword [r12]
mov qword [rsp + 0x40], r8
mov r15, qword [r12 + 8]
mov qword [rsp + 0x38], r15
xor rax, r8
movzx r11d, al
movzx edi, ah
mov r8d, dword [r14 + rdi*4 + 0x400]
xor r8d, dword [r14 + r11*4]
mov r11, rax
shr r11, 0xe
and r11d, 0x3fc
xor r8d, dword [r11 + r14 + 0x800]
shr rax, 0x16
and eax, 0x3fc
xor r8d, dword [rax + r14 + 0xc00]
mov eax, ebx
xor rax, r15
movzx r11d, al
movzx edi, ah
mov ebx, dword [r14 + rdi*4 + 0x400]
xor ebx, dword [r14 + r11*4]
mov r11, rax
shr r11, 0xe
and r11d, 0x3fc
xor ebx, dword [r11 + r14 + 0x800]
shr rax, 0x16
and eax, 0x3fc
xor ebx, dword [rax + r14 + 0xc00]
mov eax, r10d
mov rbp, qword [r12 + 0x10]
xor rax, rbp
movzx r11d, al
movzx edi, ah
mov r10d, dword [r14 + rdi*4 + 0x400]
xor r10d, dword [r14 + r11*4]
mov r11, rax
shr r11, 0xe
and r11d, 0x3fc
xor r10d, dword [r11 + r14 + 0x800]
shr rax, 0x16
and eax, 0x3fc
xor r10d, dword [rax + r14 + 0xc00]
mov eax, edx
mov rdi, qword [r12 + 0x18]
xor rax, rdi
movzx r11d, al
movzx edx, ah
mov edx, dword [r14 + rdx*4 + 0x400]
xor edx, dword [r14 + r11*4]
mov r11, rax
shr r11, 0xe
and r11d, 0x3fc
xor edx, dword [r11 + r14 + 0x800]
shr rax, 0x16
and eax, 0x3fc
xor edx, dword [rax + r14 + 0xc00]
mov eax, ecx
mov r11, qword [r12 + 0x20]
xor rax, r11
mov r15, r9
movzx r9d, al
movzx ecx, ah
mov ecx, dword [r14 + rcx*4 + 0x400]
xor ecx, dword [r14 + r9*4]
mov r9, rax
shr r9, 0xe
and r9d, 0x3fc
xor ecx, dword [r9 + r14 + 0x800]
mov r9, r15
shr rax, 0x16
and eax, 0x3fc
xor ecx, dword [rax + r14 + 0xc00]
mov r13, qword [rsp + 0x40]
mov rax, r13
shr rax, 0x1e
and eax, 0x3fc
xor r8d, dword [rax + r14 + 0x1000]
mov r15, qword [rsp + 0x38]
mov rax, r15
shr rax, 0x1e
and eax, 0x3fc
xor ebx, dword [rax + r14 + 0x1000]
mov rax, rbp
shr rax, 0x1e
and eax, 0x3fc
xor r10d, dword [rax + r14 + 0x1000]
mov rax, rdi
shr rax, 0x1e
and eax, 0x3fc
xor edx, dword [rax + r14 + 0x1000]
mov rax, r11
shr rax, 0x1e
and eax, 0x3fc
xor ecx, dword [rax + r14 + 0x1000]
mov rax, r13
shr rax, 0x26
and eax, 0x3fc
xor r8d, dword [rax + r14 + 0x1400]
mov rax, r15
shr rax, 0x26
and eax, 0x3fc
xor ebx, dword [rax + r14 + 0x1400]
mov rax, rbp
shr rax, 0x26
and eax, 0x3fc
xor r10d, dword [rax + r14 + 0x1400]
mov rax, rdi
shr rax, 0x26
and eax, 0x3fc
xor edx, dword [rax + r14 + 0x1400]
mov rax, r11
shr rax, 0x26
and eax, 0x3fc
xor ecx, dword [rax + r14 + 0x1400]
mov rax, r13
shr rax, 0x2e
and eax, 0x3fc
xor r8d, dword [rax + r14 + 0x1800]
mov rax, r15
shr rax, 0x2e
and eax, 0x3fc
xor ebx, dword [rax + r14 + 0x1800]
mov rax, rbp
shr rax, 0x2e
and eax, 0x3fc
xor r10d, dword [rax + r14 + 0x1800]
mov rax, rdi
shr rax, 0x2e
and eax, 0x3fc
xor edx, dword [rax + r14 + 0x1800]
mov rax, r11
shr rax, 0x2e
and eax, 0x3fc
xor ecx, dword [rax + r14 + 0x1800]
shr r13, 0x38
xor r8d, dword [r14 + r13*4 + 0x1c00]
mov rax, r15
shr rax, 0x38
xor ebx, dword [r14 + rax*4 + 0x1c00]
shr rbp, 0x38
xor r10d, dword [r14 + rbp*4 + 0x1c00]
shr rdi, 0x38
xor edx, dword [r14 + rdi*4 + 0x1c00]
shr r11, 0x38
xor ecx, dword [r14 + r11*4 + 0x1c00]
add r12, 0x28
dec r9
jne 0x140068760
add rsi, qword [rsp + 0x20]
mov r9d, ecx
mov ecx, ebx
mov r11d, r10d
mov r10d, edx
mov rdi, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x28]
jmp 0x140068a6c
xor r11d, r11d
xor r10d, r10d
xor r9d, r9d
mov eax, r8d
xor rax, qword [rsi]
movzx r8d, al
shr rax, 8
lea rdx, [0x1401993d0]
mov r8d, dword [rdx + r8*4]
xor r8, rax
movzx eax, r8b
shr r8, 8
mov eax, dword [rdx + rax*4]
xor rax, r8
movzx r8d, al
shr rax, 8
mov r8d, dword [rdx + r8*4]
xor r8, rax
movzx eax, r8b
shr r8, 8
mov eax, dword [rdx + rax*4]
xor rax, r8
movzx r8d, al
shr rax, 8
mov r8d, dword [rdx + r8*4]
xor r8, rax
movzx eax, r8b
shr r8, 8
mov eax, dword [rdx + rax*4]
xor rax, r8
movzx r8d, al
shr rax, 8
mov r8d, dword [rdx + r8*4]
xor r8, rax
movzx eax, r8b
shr r8, 8
xor r8d, dword [rdx + rax*4]
xor rcx, qword [rsi + 8]
xor r8, rcx
movzx eax, r8b
shr r8, 8
mov eax, dword [rdx + rax*4]
xor rax, r8
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
xor eax, dword [rdx + rcx*4]
xor r11, qword [rsi + 0x10]
xor rax, r11
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
xor ecx, dword [rdx + rax*4]
sub rdi, rbx
xor r10, qword [rsi + 0x18]
xor rcx, r10
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
xor eax, dword [rdx + rcx*4]
xor r9, qword [rsi + 0x20]
xor rax, r9
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov r8d, dword [rdx + rcx*4]
xor r8, rax
movzx eax, r8b
shr r8, 8
xor r8d, dword [rdx + rax*4]
add rsi, 0x28
cmp rdi, 8
jb 0x140068d47
lea rax, [0x1401993d0]
nop word [rax + rax]
mov ecx, r8d
xor r8b, byte [rsi]
shr ecx, 8
movzx edx, r8b
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 r8d, ecx
shr r8d, 8
xor cl, byte [rsi + 7]
add rsi, 8
movzx ecx, cl
xor r8d, dword [rax + rcx*4]
cmp rdi, 7
ja 0x140068cc0
test rdi, rdi
je 0x140068d5d
test dil, 1
jne 0x140068d62
mov rax, rdi
cmp rdi, 1
jne 0x140068d89
jmp 0x140068dce
mov ebx, r8d
jmp 0x140068dce
lea rax, [rdi - 1]
mov ebx, r8d
shr ebx, 8
xor r8b, byte [rsi]
inc rsi
movzx ecx, r8b
lea rdx, [0x1401993d0]
xor ebx, dword [rdx + rcx*4]
mov r8d, ebx
cmp rdi, 1
je 0x140068dce
xor ecx, ecx
lea rdx, [0x1401993d0]
mov ebx, r8d
nop word cs:[rax + rax]
mov r8d, ebx
shr r8d, 8
xor bl, byte [rsi + rcx]
movzx r9d, bl
xor r8d, dword [rdx + r9*4]
mov ebx, r8d
shr ebx, 8
xor r8b, byte [rsi + rcx + 1]
movzx r8d, r8b
xor ebx, dword [rdx + r8*4]
add rcx, 2
cmp rax, rcx
jne 0x140068da0
not ebx
mov eax, ebx
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret