Function at 0x1400c7c90
Capabilities:
Hash data with crc32

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