Function at 0x1400e58f0
Capabilities:
Hash data with crc32

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x28
mov r15, r8
test rdx, rdx
jne 0x1400e593c
test r15, r15
jne 0x1400e5e1c
lea rcx, [0x140200258]
lea rdx, [0x14009ec10]
xor r12d, r12d
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_InitOnceExecuteOnce]
mov eax, r12d
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
mov r14, rdx
mov r12d, ecx
cmp r15, 0x40
jb 0x1400e5955
cmp dword [0x140200250], 0
jne 0x1400e5b88
not r12d
test r15, r15
je 0x1400e59d1
mov eax, r14d
and eax, 3
test rax, rax
je 0x1400e59d1
lea rbx, [r14 + 1]
movzx eax, byte [r14]
movzx edx, r12b
xor edx, eax
lea rax, [0x1401d3340]
shr r12d, 8
xor r12d, dword [rax + rdx*4]
mov rdx, r15
dec rdx
je 0x1400e59cb
mov ecx, ebx
and ecx, 3
test rcx, rcx
je 0x1400e59cb
movzx ecx, byte [r14 + 1]
add r14, 2
movzx edx, r12b
xor edx, ecx
shr r12d, 8
xor r12d, dword [rax + rdx*4]
mov rcx, r15
add rcx, 0xfffffffffffffffe
je 0x1400e59c6
mov edx, r14d
and edx, 3
test rdx, rdx
jne 0x1400e5d84
mov r15, rcx
jmp 0x1400e59d1
mov r14, rbx
mov r15, rdx
cmp r15, 0x20
jae 0x1400e5bb8
cmp r15, 4
jb 0x1400e5acc
xor r12d, dword [r14]
mov edx, 0xff
mov ecx, r12d
mov ebx, r12d
mov esi, r12d
mov edi, r12d
and edi, edx
lea rax, [0x1401d3340]
shr ecx, 8
and ecx, edx
mov ecx, dword [rax + rcx*4 + 0x800]
xor ecx, dword [rax + rdi*4 + 0xc00]
shr ebx, 0x10
and ebx, edx
xor ecx, dword [rax + rbx*4 + 0x400]
shr esi, 0x18
mov r12d, ecx
xor r12d, dword [rax + rsi*4]
lea rcx, [r15 - 4]
cmp rcx, 4
jb 0x1400e5ae2
xor r12d, dword [r14 + 4]
mov ecx, r12d
mov edi, r12d
mov ebx, r12d
and r12d, edx
shr ecx, 8
and ecx, edx
mov ecx, dword [rax + rcx*4 + 0x800]
xor ecx, dword [rax + r12*4 + 0xc00]
shr edi, 0x10
and edi, edx
xor ecx, dword [rax + rdi*4 + 0x400]
shr ebx, 0x18
mov r12d, ecx
xor r12d, dword [rax + rbx*4]
lea rcx, [r15 - 8]
cmp rcx, 4
jb 0x1400e5adc
xor r12d, dword [r14 + 8]
mov ebx, 0xff
mov ecx, r12d
mov edx, r12d
mov edi, r12d
and r12d, ebx
shr ecx, 8
and ecx, ebx
mov ecx, dword [rax + rcx*4 + 0x800]
xor ecx, dword [rax + r12*4 + 0xc00]
shr edx, 0x10
and edx, ebx
xor ecx, dword [rax + rdx*4 + 0x400]
shr edi, 0x18
mov r12d, ecx
xor r12d, dword [rax + rdi*4]
lea rcx, [r15 - 0xc]
cmp rcx, 4
jae 0x1400e5b35
add r14, 0xc
jmp 0x1400e5acf
mov rcx, r15
test rcx, rcx
jne 0x1400e5ae8
not r12d
jmp 0x1400e592b
add r14, 8
jmp 0x1400e5acf
add r14, 4
jmp 0x1400e5acf
movzx eax, byte [r14]
movzx edx, r12b
xor edx, eax
lea rax, [0x1401d3340]
shr r12d, 8
xor r12d, dword [rax + rdx*4]
cmp rcx, 1
je 0x1400e5ad4
movzx edx, byte [r14 + 1]
movzx ebx, r12b
xor ebx, edx
shr r12d, 8
xor r12d, dword [rax + rbx*4]
cmp rcx, 2
je 0x1400e5ad4
movzx ecx, byte [r14 + 2]
movzx edx, r12b
xor edx, ecx
shr r12d, 8
xor r12d, dword [rax + rdx*4]
jmp 0x1400e5ad4
xor r12d, dword [r14 + 0xc]
add r14, 0x10
mov ecx, r12d
and ecx, ebx
mov edx, r12d
shr edx, 8
and edx, ebx
mov edi, dword [rax + rdx*4 + 0x800]
xor edi, dword [rax + rcx*4 + 0xc00]
mov ecx, r12d
shr ecx, 0x10
and ecx, ebx
xor edi, dword [rax + rcx*4 + 0x400]
shr r12d, 0x18
xor edi, dword [rax + r12*4]
add r15, 0xfffffffffffffff0
cmp r15, 4
jae 0x1400e5dc9
mov rcx, r15
mov r12d, edi
jmp 0x1400e5acf
mov rbx, r15
and rbx, 0xfffffffffffffff0
not r12d
mov rcx, r14
mov rdx, rbx
mov r8d, r12d
call fcn.1400e5e30
mov r12d, eax
not r12d
and r15, 0xf
je 0x1400e592b
add r14, rbx
jmp 0x1400e5955
mov r8d, 0xff
lea rcx, [0x1401d3340]
xor r12d, dword [r14]
mov ebx, r12d
and ebx, r8d
mov edx, r12d
shr edx, 8
and edx, r8d
mov edi, dword [rcx + rdx*4 + 0x800]
xor edi, dword [rcx + rbx*4 + 0xc00]
mov ebx, r12d
shr ebx, 0x10
and ebx, r8d
xor edi, dword [rcx + rbx*4 + 0x400]
shr r12d, 0x18
xor edi, dword [rcx + r12*4]
xor edi, dword [r14 + 4]
mov esi, edi
and esi, r8d
mov edx, edi
shr edx, 8
and edx, r8d
mov eax, dword [rcx + rdx*4 + 0x800]
xor eax, dword [rcx + rsi*4 + 0xc00]
mov edx, edi
shr edx, 0x10
and edx, r8d
xor eax, dword [rcx + rdx*4 + 0x400]
shr edi, 0x18
xor eax, dword [rcx + rdi*4]
xor eax, dword [r14 + 8]
mov edi, eax
and edi, r8d
mov edx, eax
shr edx, 8
and edx, r8d
mov esi, dword [rcx + rdx*4 + 0x800]
xor esi, dword [rcx + rdi*4 + 0xc00]
mov ebx, eax
shr ebx, 0x10
and ebx, r8d
xor esi, dword [rcx + rbx*4 + 0x400]
shr eax, 0x18
xor esi, dword [rcx + rax*4]
xor esi, dword [r14 + 0xc]
mov eax, esi
and eax, r8d
mov edx, esi
shr edx, 8
and edx, r8d
mov ebx, dword [rcx + rdx*4 + 0x800]
xor ebx, dword [rcx + rax*4 + 0xc00]
mov eax, esi
shr eax, 0x10
and eax, r8d
xor ebx, dword [rcx + rax*4 + 0x400]
shr esi, 0x18
xor ebx, dword [rcx + rsi*4]
xor ebx, dword [r14 + 0x10]
mov eax, ebx
and eax, r8d
mov edx, ebx
shr edx, 8
and edx, r8d
mov edi, dword [rcx + rdx*4 + 0x800]
xor edi, dword [rcx + rax*4 + 0xc00]
mov eax, ebx
shr eax, 0x10
and eax, r8d
xor edi, dword [rcx + rax*4 + 0x400]
shr ebx, 0x18
xor edi, dword [rcx + rbx*4]
xor edi, dword [r14 + 0x14]
mov eax, edi
and eax, r8d
mov edx, edi
shr edx, 8
and edx, r8d
mov ebx, dword [rcx + rdx*4 + 0x800]
xor ebx, dword [rcx + rax*4 + 0xc00]
mov eax, edi
shr eax, 0x10
and eax, r8d
xor ebx, dword [rcx + rax*4 + 0x400]
shr edi, 0x18
xor ebx, dword [rcx + rdi*4]
xor ebx, dword [r14 + 0x18]
mov eax, ebx
and eax, r8d
mov edx, ebx
shr edx, 8
and edx, r8d
mov edi, dword [rcx + rdx*4 + 0x800]
xor edi, dword [rcx + rax*4 + 0xc00]
mov eax, ebx
shr eax, 0x10
and eax, r8d
xor edi, dword [rcx + rax*4 + 0x400]
shr ebx, 0x18
xor edi, dword [rcx + rbx*4]
xor edi, dword [r14 + 0x1c]
add r14, 0x20
mov eax, edi
and eax, r8d
mov edx, edi
shr edx, 8
and edx, r8d
mov r12d, dword [rcx + rdx*4 + 0x800]
xor r12d, dword [rcx + rax*4 + 0xc00]
mov eax, edi
shr eax, 0x10
and eax, r8d
xor r12d, dword [rcx + rax*4 + 0x400]
shr edi, 0x18
xor r12d, dword [rcx + rdi*4]
add r15, 0xffffffffffffffe0
cmp r15, 0x1f
jbe 0x1400e59db
jmp 0x1400e5bc5
mov edx, 2
sub rdx, r15
lea rcx, [r14 + 1]
mov r15, rdx
mov rdx, r15
movzx esi, byte [r14]
inc r14
movzx ebx, r12b
xor ebx, esi
shr r12d, 8
xor r12d, dword [rax + rbx*4]
inc r15
cmp rdx, 0xffffffffffffffff
je 0x1400e5dc1
mov edx, ecx
and edx, 3
inc rcx
test rdx, rdx
jne 0x1400e5d93
neg r15
jmp 0x1400e59d1
mov ebx, 0xff
mov rcx, r15
xor edi, dword [r14]
add r14, 4
mov esi, edi
and esi, ebx
mov edx, edi
shr edx, 8
and edx, ebx
mov r12d, dword [rax + rdx*4 + 0x800]
xor r12d, dword [rax + rsi*4 + 0xc00]
mov edx, edi
shr edx, 0x10
and edx, ebx
xor r12d, dword [rax + rdx*4 + 0x400]
shr edi, 0x18
xor r12d, dword [rax + rdi*4]
add rcx, 0xfffffffffffffffc
mov edi, r12d
cmp rcx, 3
jbe 0x1400e5acf
jmp 0x1400e5dd1
xor r12d, r12d
jmp 0x1400e592b