Function at 0x14000fd30
Capabilities:
Hash data with crc32

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x20
mov eax, ecx
not eax
cmp r8, 0x40
jb 0x140010118
lea r9, [0x140055dc0]
nop word cs:[rax + rax]
nop
mov qword [rsp + 0x18], r8
movzx ebp, byte [rdx + 0xf]
movzx ecx, byte [rdx + 0xe]
movzx ebx, byte [rdx + 0xd]
movzx esi, byte [rdx + 0xc]
movzx r15d, byte [rdx + 0xb]
movzx edi, byte [rdx + 0xa]
mov qword [rsp + 0x10], rdi
movzx edi, byte [rdx + 9]
mov qword [rsp + 8], rdi
movzx edi, byte [rdx + 8]
mov qword [rsp], rdi
mov ecx, dword [r9 + rcx*4 + 0x400]
movzx r13d, byte [rdx + 7]
movzx r12d, byte [rdx + 6]
xor ecx, dword [r9 + rbp*4]
movzx r14d, byte [rdx + 5]
movzx r11d, byte [rdx + 3]
mov r10d, eax
xor ecx, dword [r9 + rbx*4 + 0x800]
movzx ebp, ah
movzx r8d, byte [rdx + 0x1f]
movzx ebx, byte [rdx + 0x1e]
mov ebx, dword [r9 + rbx*4 + 0x400]
xor ebx, dword [r9 + r8*4]
movzx r8d, al
shr eax, 0x18
xor rax, r11
movzx r11d, byte [rdx + 4]
xor ecx, dword [r9 + rsi*4 + 0xc00]
movzx esi, byte [rdx + 0x1d]
xor ebx, dword [r9 + rsi*4 + 0x800]
movzx esi, byte [rdx + 0x1c]
xor ebx, dword [r9 + rsi*4 + 0xc00]
xor ecx, dword [r9 + r15*4 + 0x1000]
movzx esi, byte [rdx + 2]
movzx r15d, byte [rdx + 0x1b]
xor ebx, dword [r9 + r15*4 + 0x1000]
shr r10d, 0x10
movzx r10d, r10b
mov rdi, qword [rsp + 0x10]
xor ecx, dword [r9 + rdi*4 + 0x1400]
xor r10, rsi
movzx esi, byte [rdx + 0x1a]
mov rdi, qword [rsp + 8]
xor ecx, dword [r9 + rdi*4 + 0x1800]
xor ebx, dword [r9 + rsi*4 + 0x1400]
mov rsi, qword [rsp]
xor ecx, dword [r9 + rsi*4 + 0x1c00]
movzx r15d, byte [rdx + 1]
movzx esi, byte [rdx + 0x19]
xor ecx, dword [r9 + r13*4 + 0x2000]
xor ebx, dword [r9 + rsi*4 + 0x1800]
xor ecx, dword [r9 + r12*4 + 0x2400]
xor rbp, r15
movzx esi, byte [rdx + 0x18]
xor ecx, dword [r9 + r14*4 + 0x2800]
xor ebx, dword [r9 + rsi*4 + 0x1c00]
xor ecx, dword [r9 + r11*4 + 0x2c00]
movzx edi, byte [rdx]
movzx esi, byte [rdx + 0x17]
xor ecx, dword [r9 + rax*4 + 0x3000]
xor ebx, dword [r9 + rsi*4 + 0x2000]
xor ecx, dword [r9 + r10*4 + 0x3400]
xor r8, rdi
movzx eax, byte [rdx + 0x16]
xor ecx, dword [r9 + rbp*4 + 0x3800]
xor ebx, dword [r9 + rax*4 + 0x2400]
xor ecx, dword [r9 + r8*4 + 0x3c00]
movzx eax, byte [rdx + 0x15]
xor ebx, dword [r9 + rax*4 + 0x2800]
movzx eax, byte [rdx + 0x14]
xor ebx, dword [r9 + rax*4 + 0x2c00]
movzx r8d, byte [rdx + 0x13]
mov r15d, ecx
movzx esi, ch
movzx r12d, cl
mov eax, ecx
movzx r10d, byte [rdx + 0x12]
movzx r11d, byte [rdx + 0x11]
movzx r14d, byte [rdx + 0x10]
shr eax, 0x18
movzx ebp, byte [rdx + 0x2f]
movzx ecx, byte [rdx + 0x2e]
mov ecx, dword [r9 + rcx*4 + 0x400]
shr r15d, 0x10
xor ecx, dword [r9 + rbp*4]
movzx ebp, byte [rdx + 0x2d]
xor rax, r8
xor ecx, dword [r9 + rbp*4 + 0x800]
movzx ebp, byte [rdx + 0x2c]
xor rsi, r11
xor ecx, dword [r9 + rbp*4 + 0xc00]
movzx ebp, byte [rdx + 0x2b]
movzx edi, r15b
xor ecx, dword [r9 + rbp*4 + 0x1000]
xor ebx, dword [r9 + rax*4 + 0x3000]
movzx eax, byte [rdx + 0x2a]
xor ecx, dword [r9 + rax*4 + 0x1400]
xor rdi, r10
xor r12, r14
movzx eax, byte [rdx + 0x29]
xor ebx, dword [r9 + rdi*4 + 0x3400]
xor ecx, dword [r9 + rax*4 + 0x1800]
xor ebx, dword [r9 + rsi*4 + 0x3800]
movzx eax, byte [rdx + 0x28]
movzx ebp, byte [rdx + 0x27]
xor ecx, dword [r9 + rax*4 + 0x1c00]
xor ecx, dword [r9 + rbp*4 + 0x2000]
xor ebx, dword [r9 + r12*4 + 0x3c00]
movzx eax, byte [rdx + 0x26]
xor ecx, dword [r9 + rax*4 + 0x2400]
movzx eax, byte [rdx + 0x25]
xor ecx, dword [r9 + rax*4 + 0x2800]
movzx eax, byte [rdx + 0x24]
xor ecx, dword [r9 + rax*4 + 0x2c00]
movzx r8d, byte [rdx + 0x23]
movzx r10d, byte [rdx + 0x22]
mov r11d, ebx
movzx edi, bh
movzx esi, byte [rdx + 0x3f]
movzx eax, byte [rdx + 0x3e]
mov eax, dword [r9 + rax*4 + 0x400]
movzx r14d, bl
xor eax, dword [r9 + rsi*4]
movzx esi, byte [rdx + 0x3d]
shr ebx, 0x18
xor eax, dword [r9 + rsi*4 + 0x800]
movzx esi, byte [rdx + 0x3c]
shr r11d, 0x10
xor eax, dword [r9 + rsi*4 + 0xc00]
movzx esi, byte [rdx + 0x3b]
xor rbx, r8
mov r8, qword [rsp + 0x18]
xor eax, dword [r9 + rsi*4 + 0x1000]
movzx esi, byte [rdx + 0x21]
movzx ebp, r11b
xor rdi, rsi
movzx esi, byte [rdx + 0x3a]
xor ecx, dword [r9 + rbx*4 + 0x3000]
xor eax, dword [r9 + rsi*4 + 0x1400]
movzx ebx, byte [rdx + 0x20]
xor rbp, r10
xor r14, rbx
movzx ebx, byte [rdx + 0x39]
xor ecx, dword [r9 + rbp*4 + 0x3400]
xor eax, dword [r9 + rbx*4 + 0x1800]
xor ecx, dword [r9 + rdi*4 + 0x3800]
movzx ebp, byte [rdx + 0x38]
movzx ebx, byte [rdx + 0x37]
xor eax, dword [r9 + rbp*4 + 0x1c00]
xor eax, dword [r9 + rbx*4 + 0x2000]
xor ecx, dword [r9 + r14*4 + 0x3c00]
movzx ebp, byte [rdx + 0x36]
xor eax, dword [r9 + rbp*4 + 0x2400]
movzx ebp, byte [rdx + 0x35]
xor eax, dword [r9 + rbp*4 + 0x2800]
movzx ebx, byte [rdx + 0x34]
movzx ebp, byte [rdx + 0x33]
xor eax, dword [r9 + rbx*4 + 0x2c00]
mov ebx, ecx
movzx esi, ch
movzx edi, cl
shr ecx, 0x18
xor rcx, rbp
movzx ebp, byte [rdx + 0x32]
shr ebx, 0x10
xor eax, dword [r9 + rcx*4 + 0x3000]
movzx ecx, bl
xor rcx, rbp
xor eax, dword [r9 + rcx*4 + 0x3400]
movzx ecx, byte [rdx + 0x31]
xor rsi, rcx
xor eax, dword [r9 + rsi*4 + 0x3800]
movzx ecx, byte [rdx + 0x30]
xor rdi, rcx
xor eax, dword [r9 + rdi*4 + 0x3c00]
add rdx, 0x40
add r8, 0xffffffffffffffc0
cmp r8, 0x3f
ja 0x14000fd60
test r8, r8
je 0x140010188
test r8b, 1
jne 0x14001012e
mov rcx, rdx
cmp r8, 1
jne 0x14001014c
jmp 0x140010188
lea rcx, [rdx + 1]
mov bl, byte [rdx]
xor bl, al
movzx ebp, bl
lea rbx, [0x140055dc0]
shr eax, 8
xor eax, dword [rbx + rbp*4]
cmp r8, 1
je 0x140010188
add rdx, r8
lea rbp, [0x140055dc0]
nop word cs:[rax + rax]
movzx ebx, byte [rcx]
xor bl, al
movzx ebx, bl
shr eax, 8
xor eax, dword [rbp + rbx*4]
movzx ebx, byte [rcx + 1]
xor bl, al
movzx ebx, bl
shr eax, 8
xor eax, dword [rbp + rbx*4]
add rcx, 2
cmp rcx, rdx
jne 0x140010160
not eax
add rsp, 0x20
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret