Function at 0x1401520b0
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 qword [rsp + 0x20], r8
test rdx, rdx
je 0x140152118
mov r14, rdx
mov ebx, ecx
cmp qword [rsp + 0x20], 0x40
jb 0x140152132
cmp dword [0x1404ab434], 0
je 0x140152132
mov rax, qword [rsp + 0x20]
mov rsi, rax
and rsi, 0xfffffffffffffff0
not ebx
mov rcx, r14
mov rdx, rsi
mov rdi, rax
mov r8d, ebx
call fcn.14015ceb0
and rdi, 0xf
mov qword [rsp + 0x20], rdi
je 0x14015298e
add r14, rsi
mov ebx, eax
jmp 0x14015283f
xor eax, eax
cmp qword [rsp + 0x20], 0
jne 0x140152990
call fcn.140152040
xor eax, eax
jmp 0x140152990
not ebx
cmp qword [rsp + 0x20], 0x2f
jb 0x14015283f
test r14b, 7
je 0x1401522e6
mov ecx, ebx
shr ecx, 8
xor bl, byte [r14]
movzx edx, bl
lea rax, [0x140408480]
mov ebx, ecx
xor ebx, dword [rax + rdx*4]
lea rdx, [r14 + 1]
mov rcx, qword [rsp + 0x20]
dec rcx
setne r8b
test dl, 7
setne r9b
and r9b, r8b
cmp r9b, 1
jne 0x1401522de
mov ecx, ebx
shr ecx, 8
xor bl, byte [r14 + 1]
movzx edx, bl
mov ebx, ecx
xor ebx, dword [rax + rdx*4]
lea rdx, [r14 + 2]
mov rcx, qword [rsp + 0x20]
add rcx, 0xfffffffffffffffe
setne r8b
test dl, 7
setne r9b
and r9b, r8b
cmp r9b, 1
jne 0x1401522de
mov ecx, ebx
shr ecx, 8
xor bl, byte [r14 + 2]
movzx edx, bl
mov ebx, ecx
xor ebx, dword [rax + rdx*4]
lea rdx, [r14 + 3]
mov rcx, qword [rsp + 0x20]
add rcx, 0xfffffffffffffffd
setne r8b
test dl, 7
setne r9b
and r9b, r8b
cmp r9b, 1
jne 0x1401522de
mov ecx, ebx
shr ecx, 8
xor bl, byte [r14 + 3]
movzx edx, bl
mov ebx, ecx
xor ebx, dword [rax + rdx*4]
lea rdx, [r14 + 4]
mov rcx, qword [rsp + 0x20]
add rcx, 0xfffffffffffffffc
setne r8b
test dl, 7
setne r9b
and r9b, r8b
cmp r9b, 1
jne 0x1401522de
mov ecx, ebx
shr ecx, 8
xor bl, byte [r14 + 4]
movzx edx, bl
mov ebx, ecx
xor ebx, dword [rax + rdx*4]
lea rdx, [r14 + 5]
mov rcx, qword [rsp + 0x20]
add rcx, 0xfffffffffffffffb
setne r8b
test dl, 7
setne r9b
and r9b, r8b
cmp r9b, 1
jne 0x1401522de
mov ecx, ebx
shr ecx, 8
xor bl, byte [r14 + 5]
movzx edx, bl
mov ebx, ecx
xor ebx, dword [rax + rdx*4]
lea rdx, [r14 + 6]
mov rcx, qword [rsp + 0x20]
add rcx, 0xfffffffffffffffa
setne r8b
test dl, 7
setne r9b
and r9b, r8b
cmp r9b, 1
jne 0x1401522de
mov ecx, ebx
shr ecx, 8
xor bl, byte [r14 + 6]
movzx edx, bl
mov ebx, ecx
xor ebx, dword [rax + rdx*4]
lea rdx, [r14 + 7]
mov rcx, qword [rsp + 0x20]
add rcx, 0xfffffffffffffff9
setne r8b
test dl, 7
setne r9b
and r9b, r8b
cmp r9b, 1
jne 0x1401522de
add qword [rsp + 0x20], 0xfffffffffffffff8
mov ecx, ebx
shr ecx, 8
xor bl, byte [r14 + 7]
add r14, 8
movzx edx, bl
xor ecx, dword [rax + rdx*4]
mov ebx, ecx
jmp 0x1401522e6
mov r14, rdx
mov qword [rsp + 0x20], rcx
movabs rcx, 0xcccccccccccccccd
mov rax, qword [rsp + 0x20]
mul rcx
shr rdx, 5
lea rax, [rdx*8]
lea r9, [rax + rax*4]
mov r8, rdx
dec r8
je 0x14015260a
mov qword [rsp + 0x38], r9
xor edi, edi
lea rax, [rdx + rdx*4]
lea rax, [rax*8 - 0x28]
mov qword [rsp + 0x30], rax
lea r10, [0x140408880]
mov qword [rsp + 0x40], r14
xor ecx, ecx
xor edx, edx
xor eax, eax
nop
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x50], r8
mov r8, qword [r14]
mov qword [rsp + 0x48], r8
xor ebx, r8d
movzx r8d, bl
movzx esi, bh
mov ebp, dword [r10 + rsi*4 + 0x400]
xor ebp, dword [r10 + r8*4]
mov r8d, ebx
shr r8d, 0xe
and r8d, 0x3fc
xor ebp, dword [r8 + r10 + 0x800]
shr ebx, 0x18
xor ebp, dword [r10 + rbx*4 + 0xc00]
mov r12, qword [r14 + 8]
xor eax, r12d
movzx r8d, al
movzx esi, ah
mov r13d, dword [r10 + rsi*4 + 0x400]
xor r13d, dword [r10 + r8*4]
mov r8d, eax
shr r8d, 0xe
and r8d, 0x3fc
xor r13d, dword [r8 + r10 + 0x800]
shr eax, 0x18
xor r13d, dword [r10 + rax*4 + 0xc00]
mov r15, qword [r14 + 0x10]
xor edx, r15d
mov r14, qword [r14 + 0x18]
xor ecx, r14d
mov rax, qword [rsp + 0x28]
mov r9, qword [rax + 0x20]
mov rbx, rcx
mov rcx, rdx
mov rdx, rdi
xor edx, r9d
movzx eax, cl
movzx r8d, bl
movzx r11d, dl
movzx esi, ch
mov edi, dword [r10 + rsi*4 + 0x400]
xor edi, dword [r10 + rax*4]
movzx eax, bh
mov esi, dword [r10 + rax*4 + 0x400]
xor esi, dword [r10 + r8*4]
movzx eax, dh
mov r8d, dword [r10 + rax*4 + 0x400]
xor r8d, dword [r10 + r11*4]
mov eax, ecx
shr eax, 0xe
and eax, 0x3fc
xor edi, dword [rax + r10 + 0x800]
mov eax, ebx
shr eax, 0xe
and eax, 0x3fc
xor esi, dword [rax + r10 + 0x800]
mov eax, edx
shr eax, 0xe
and eax, 0x3fc
xor r8d, dword [rax + r10 + 0x800]
shr ecx, 0x18
xor edi, dword [r10 + rcx*4 + 0xc00]
shr ebx, 0x18
xor esi, dword [r10 + rbx*4 + 0xc00]
shr edx, 0x18
xor r8d, dword [r10 + rdx*4 + 0xc00]
mov rcx, qword [rsp + 0x48]
mov rax, rcx
shr rax, 0x20
movzx eax, al
xor ebp, dword [r10 + rax*4 + 0x1000]
mov rax, r12
shr rax, 0x20
movzx eax, al
xor r13d, dword [r10 + rax*4 + 0x1000]
mov rax, r15
shr rax, 0x20
movzx eax, al
xor edi, dword [r10 + rax*4 + 0x1000]
mov rax, r14
shr rax, 0x20
movzx eax, al
xor esi, dword [r10 + rax*4 + 0x1000]
mov rax, r9
shr rax, 0x20
movzx eax, al
xor r8d, dword [r10 + rax*4 + 0x1000]
mov rax, rcx
shr rax, 0x28
movzx eax, al
xor ebp, dword [r10 + rax*4 + 0x1400]
mov rax, r12
shr rax, 0x28
movzx eax, al
xor r13d, dword [r10 + rax*4 + 0x1400]
mov rax, r15
shr rax, 0x28
movzx eax, al
xor edi, dword [r10 + rax*4 + 0x1400]
mov rax, r14
shr rax, 0x28
movzx eax, al
xor esi, dword [r10 + rax*4 + 0x1400]
mov rax, r9
shr rax, 0x28
movzx eax, al
xor r8d, dword [r10 + rax*4 + 0x1400]
mov rax, rcx
shr rax, 0x30
movzx eax, al
xor ebp, dword [r10 + rax*4 + 0x1800]
mov rax, r12
shr rax, 0x30
movzx eax, al
xor r13d, dword [r10 + rax*4 + 0x1800]
mov rax, r15
shr rax, 0x30
movzx eax, al
xor edi, dword [r10 + rax*4 + 0x1800]
mov rax, r14
shr rax, 0x30
movzx eax, al
xor esi, dword [r10 + rax*4 + 0x1800]
mov rax, r9
shr rax, 0x30
movzx eax, al
xor r8d, dword [r10 + rax*4 + 0x1800]
mov rax, rcx
shr rax, 0x38
mov ebx, ebp
xor ebx, dword [r10 + rax*4 + 0x1c00]
shr r12, 0x38
mov eax, r13d
xor eax, dword [r10 + r12*4 + 0x1c00]
shr r15, 0x38
mov edx, edi
xor edx, dword [r10 + r15*4 + 0x1c00]
shr r14, 0x38
mov ecx, esi
xor ecx, dword [r10 + r14*4 + 0x1c00]
shr r9, 0x38
mov edi, r8d
mov r8, qword [rsp + 0x50]
xor edi, dword [r10 + r9*4 + 0x1c00]
mov r14, qword [rsp + 0x28]
add r14, 0x28
dec r8
jne 0x140152340
mov r14, qword [rsp + 0x40]
add r14, qword [rsp + 0x30]
mov r8d, edi
mov eax, eax
mov r11d, edx
mov r10d, ecx
mov rsi, rax
mov r9, qword [rsp + 0x38]
jmp 0x140152615
xor r11d, r11d
xor r10d, r10d
xor r8d, r8d
xor esi, esi
mov eax, ebx
xor rax, qword [r14]
movzx edx, al
shr rax, 8
lea rcx, [0x140408480]
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 rsi, qword [r14 + 8]
xor rdx, rsi
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 [r14 + 0x10]
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 edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
xor edx, dword [rcx + rax*4]
sub qword [rsp + 0x20], r9
xor r10, qword [r14 + 0x18]
xor rdx, r10
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 r8, qword [r14 + 0x20]
xor rax, r8
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 r14, 0x28
cmp qword [rsp + 0x20], 8
jb 0x1401528fe
lea rax, [0x140408480]
nop word cs:[rax + rax]
mov ecx, ebx
xor bl, byte [r14]
shr ecx, 8
movzx edx, bl
xor ecx, dword [rax + rdx*4]
mov edx, ecx
xor cl, byte [r14 + 1]
shr edx, 8
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov ecx, edx
xor dl, byte [r14 + 2]
shr ecx, 8
movzx edx, dl
xor ecx, dword [rax + rdx*4]
mov edx, ecx
xor cl, byte [r14 + 3]
shr edx, 8
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov r8d, edx
xor dl, byte [r14 + 4]
shr r8d, 8
movzx ecx, dl
xor r8d, dword [rax + rcx*4]
mov rcx, qword [rsp + 0x20]
add rcx, 0xfffffffffffffff8
mov edx, r8d
xor r8b, byte [r14 + 5]
shr edx, 8
movzx r8d, r8b
xor edx, dword [rax + r8*4]
mov r8d, edx
shr r8d, 8
xor dl, byte [r14 + 6]
movzx edx, dl
xor r8d, dword [rax + rdx*4]
mov ebx, r8d
shr ebx, 8
xor r8b, byte [r14 + 7]
add r14, 8
movzx edx, r8b
xor ebx, dword [rax + rdx*4]
mov qword [rsp + 0x20], rcx
cmp rcx, 7
ja 0x140152860
cmp qword [rsp + 0x20], 0
je 0x14015291c
test byte [rsp + 0x20], 1
jne 0x140152920
mov rcx, qword [rsp + 0x20]
cmp qword [rsp + 0x20], 1
jne 0x14015294c
jmp 0x14015298e
mov eax, ebx
jmp 0x14015298e
mov rax, qword [rsp + 0x20]
lea rcx, [rax - 1]
mov eax, ebx
shr eax, 8
xor bl, byte [r14]
inc r14
movzx edx, bl
lea r8, [0x140408480]
xor eax, dword [r8 + rdx*4]
mov ebx, eax
cmp qword [rsp + 0x20], 1
je 0x14015298e
xor edx, edx
lea r8, [0x140408480]
mov eax, ebx
nop word [rax + rax]
mov r9d, eax
shr r9d, 8
xor al, byte [r14 + rdx]
movzx eax, al
xor r9d, dword [r8 + rax*4]
mov eax, r9d
shr eax, 8
xor r9b, byte [r14 + rdx + 1]
movzx r9d, r9b
xor eax, dword [r8 + r9*4]
add rdx, 2
cmp rcx, rdx
jne 0x140152960
not eax
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret