Function at 0x140012a80
Capabilities:
Hash data with crc32

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x28
mov rdi, r8
test rdx, rdx
je 0x140012b20
mov rsi, rdx
mov ebx, ecx
cmp dword [0x14031ae98], 0
je 0x140012aad
cmp rdi, 0x40
jae 0x140012bc3
not ebx
test rdi, rdi
je 0x140012af5
mov eax, esi
and eax, 3
test rax, rax
je 0x140012af5
lea rax, [rsi + 1]
lea r8, [0x1402c0ea0]
mov rdx, rdi
movzx edi, byte [rsi]
inc rsi
movzx ecx, bl
xor ecx, edi
shr ebx, 8
xor ebx, dword [r8 + rcx*4]
lea rdi, [rdx - 1]
cmp rdx, 1
je 0x140012af5
mov ecx, eax
and ecx, 3
inc rax
test rcx, rcx
jne 0x140012ac9
cmp rdi, 0x20
jae 0x140012bf0
cmp rdi, 4
jae 0x140012b47
mov eax, ebx
test rdi, rdi
jne 0x140012b9c
not eax
mov ebx, eax
mov eax, ebx
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r14
ret
test rdi, rdi
jne 0x140012dcb
lea rcx, [0x14031aea0]
lea rdx, [0x140292b60]
xor ebx, ebx
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_InitOnceExecuteOnce]
jmp 0x140012b14
mov r8d, 0xff
lea rdx, [0x1402c0ea0]
xor ebx, dword [rsi]
add rsi, 4
mov ecx, ebx
and ecx, r8d
mov eax, ebx
shr eax, 8
and eax, r8d
mov eax, dword [rdx + rax*4 + 0x800]
xor eax, dword [rdx + rcx*4 + 0xc00]
mov ecx, ebx
shr ecx, 0x10
and ecx, r8d
xor eax, dword [rdx + rcx*4 + 0x400]
shr ebx, 0x18
xor eax, dword [rdx + rbx*4]
add rdi, 0xfffffffffffffffc
mov ebx, eax
cmp rdi, 3
jbe 0x140012b07
jmp 0x140012b54
xor ecx, ecx
lea r8, [0x1402c0ea0]
movzx ebx, byte [rsi + rcx]
movzx edx, al
xor edx, ebx
shr eax, 8
xor eax, dword [r8 + rdx*4]
inc rcx
cmp rdi, rcx
je 0x140012b10
jmp 0x140012ba5
mov r14, rdi
and r14, 0xfffffffffffffff0
not ebx
mov rcx, rsi
mov rdx, r14
mov r8d, ebx
call fcn.1400eb390
mov ebx, eax
not ebx
and rdi, 0xf
je 0x140012b14
add rsi, r14
jmp 0x140012aad
mov r8d, 0xff
lea r9, [0x1402c0ea0]
xor ebx, dword [rsi]
mov eax, ebx
and eax, r8d
mov edx, ebx
shr edx, 8
and edx, r8d
mov ecx, dword [r9 + rdx*4 + 0x800]
xor ecx, dword [r9 + rax*4 + 0xc00]
mov eax, ebx
shr eax, 0x10
and eax, r8d
xor ecx, dword [r9 + rax*4 + 0x400]
shr ebx, 0x18
xor ecx, dword [r9 + rbx*4]
xor ecx, dword [rsi + 4]
mov eax, ecx
and eax, r8d
mov edx, ecx
shr edx, 8
and edx, r8d
mov ebx, dword [r9 + rdx*4 + 0x800]
xor ebx, dword [r9 + rax*4 + 0xc00]
mov eax, ecx
shr eax, 0x10
and eax, r8d
xor ebx, dword [r9 + rax*4 + 0x400]
shr ecx, 0x18
xor ebx, dword [r9 + rcx*4]
xor ebx, dword [rsi + 8]
mov eax, ebx
and eax, r8d
mov ecx, ebx
shr ecx, 8
and ecx, r8d
mov edx, dword [r9 + rcx*4 + 0x800]
xor edx, dword [r9 + rax*4 + 0xc00]
mov eax, ebx
shr eax, 0x10
and eax, r8d
xor edx, dword [r9 + rax*4 + 0x400]
shr ebx, 0x18
xor edx, dword [r9 + rbx*4]
xor edx, dword [rsi + 0xc]
mov eax, edx
and eax, r8d
mov ecx, edx
shr ecx, 8
and ecx, r8d
mov ebx, dword [r9 + rcx*4 + 0x800]
xor ebx, dword [r9 + rax*4 + 0xc00]
mov eax, edx
shr eax, 0x10
and eax, r8d
xor ebx, dword [r9 + rax*4 + 0x400]
shr edx, 0x18
xor ebx, dword [r9 + rdx*4]
xor ebx, dword [rsi + 0x10]
mov eax, ebx
and eax, r8d
mov ecx, ebx
shr ecx, 8
and ecx, r8d
mov edx, dword [r9 + rcx*4 + 0x800]
xor edx, dword [r9 + rax*4 + 0xc00]
mov eax, ebx
shr eax, 0x10
and eax, r8d
xor edx, dword [r9 + rax*4 + 0x400]
shr ebx, 0x18
xor edx, dword [r9 + rbx*4]
xor edx, dword [rsi + 0x14]
mov eax, edx
and eax, r8d
mov ecx, edx
shr ecx, 8
and ecx, r8d
mov ebx, dword [r9 + rcx*4 + 0x800]
xor ebx, dword [r9 + rax*4 + 0xc00]
mov eax, edx
shr eax, 0x10
and eax, r8d
xor ebx, dword [r9 + rax*4 + 0x400]
shr edx, 0x18
xor ebx, dword [r9 + rdx*4]
xor ebx, dword [rsi + 0x18]
mov eax, ebx
and eax, r8d
mov ecx, ebx
shr ecx, 8
and ecx, r8d
mov edx, dword [r9 + rcx*4 + 0x800]
xor edx, dword [r9 + rax*4 + 0xc00]
mov eax, ebx
shr eax, 0x10
and eax, r8d
xor edx, dword [r9 + rax*4 + 0x400]
shr ebx, 0x18
xor edx, dword [r9 + rbx*4]
xor edx, dword [rsi + 0x1c]
add rsi, 0x20
mov eax, edx
and eax, r8d
mov ecx, edx
shr ecx, 8
and ecx, r8d
mov ebx, dword [r9 + rcx*4 + 0x800]
xor ebx, dword [r9 + rax*4 + 0xc00]
mov eax, edx
shr eax, 0x10
and eax, r8d
xor ebx, dword [r9 + rax*4 + 0x400]
shr edx, 0x18
xor ebx, dword [r9 + rdx*4]
add rdi, 0xffffffffffffffe0
cmp rdi, 0x1f
jbe 0x140012aff
jmp 0x140012bfd
xor ebx, ebx
jmp 0x140012b14