Function at 0x14006bbc0
Capabilities:
Hash data with crc32

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov rdi, r8
test rdx, rdx
je 0x14006bc19
mov rsi, rdx
mov r8d, ecx
cmp rdi, 0x40
jb 0x14006bc2e
cmp dword [0x1401ca98c], 0
je 0x14006bc2e
mov r14, rdi
and r14, 0xfffffffffffffff0
not r8d
mov rcx, rsi
mov rdx, r14
call fcn.14000c300
mov ebx, eax
and rdi, 0xf
je 0x14006c44e
add rsi, r14
mov r8d, ebx
jmp 0x14006c32f
xor ebx, ebx
test rdi, rdi
jne 0x14006c450
call fcn.14009c4f0
jmp 0x14006c450
not r8d
cmp rdi, 0x2f
jb 0x14006c32f
test sil, 7
je 0x14006bdbb
mov edx, r8d
shr edx, 8
xor r8b, byte [rsi]
lea rcx, [rsi + 1]
movzx r9d, r8b
lea rax, [0x14018f7c0]
mov r8d, edx
xor r8d, dword [rax + r9*4]
mov rdx, rdi
dec rdx
je 0x14006bdb5
mov r9d, ecx
and r9d, 7
je 0x14006bdb5
mov edx, r8d
shr edx, 8
lea rcx, [rsi + 2]
xor r8b, byte [rsi + 1]
movzx r9d, r8b
mov r8d, edx
xor r8d, dword [rax + r9*4]
mov rdx, rdi
add rdx, 0xfffffffffffffffe
je 0x14006bdb5
mov r9d, ecx
and r9d, 7
je 0x14006bdb5
mov edx, r8d
shr edx, 8
lea rcx, [rsi + 3]
xor r8b, byte [rsi + 2]
movzx r9d, r8b
mov r8d, edx
xor r8d, dword [rax + r9*4]
mov rdx, rdi
add rdx, 0xfffffffffffffffd
je 0x14006bdb5
mov r9d, ecx
and r9d, 7
je 0x14006bdb5
mov edx, r8d
shr edx, 8
lea rcx, [rsi + 4]
xor r8b, byte [rsi + 3]
movzx r9d, r8b
mov r8d, edx
xor r8d, dword [rax + r9*4]
mov rdx, rdi
add rdx, 0xfffffffffffffffc
je 0x14006bdb5
mov r9d, ecx
and r9d, 7
je 0x14006bdb5
mov edx, r8d
shr edx, 8
lea rcx, [rsi + 5]
xor r8b, byte [rsi + 4]
movzx r9d, r8b
mov r8d, edx
xor r8d, dword [rax + r9*4]
mov rdx, rdi
add rdx, 0xfffffffffffffffb
je 0x14006bdb5
mov r9d, ecx
and r9d, 7
je 0x14006bdb5
mov edx, r8d
shr edx, 8
lea rcx, [rsi + 6]
xor r8b, byte [rsi + 5]
movzx r9d, r8b
mov r8d, edx
xor r8d, dword [rax + r9*4]
mov rdx, rdi
add rdx, 0xfffffffffffffffa
je 0x14006bdb5
mov r9d, ecx
and r9d, 7
je 0x14006bdb5
mov edx, r8d
shr edx, 8
lea rcx, [rsi + 7]
xor r8b, byte [rsi + 6]
movzx r9d, r8b
mov r8d, edx
xor r8d, dword [rax + r9*4]
mov rdx, rdi
add rdx, 0xfffffffffffffff9
je 0x14006bdb5
mov r9d, ecx
and r9d, 7
je 0x14006bdb5
add rdi, 0xfffffffffffffff8
mov ecx, r8d
shr ecx, 8
xor r8b, byte [rsi + 7]
add rsi, 8
movzx edx, r8b
xor ecx, dword [rax + rdx*4]
mov r8d, ecx
jmp 0x14006bdbb
mov rdi, rdx
mov rsi, rcx
movabs rcx, 0xcccccccccccccccd
mov rax, rdi
mul rcx
shr rdx, 5
lea rax, [rdx*8]
lea rbx, [rax + rax*4]
xor ecx, ecx
mov r9, rdx
dec r9
je 0x14006c0ec
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x38], rdi
lea rax, [rdx + rdx*4]
lea rax, [rax*8 - 0x28]
mov qword [rsp + 0x28], rax
lea r14, [0x14018fbc0]
xor edx, edx
xor r10d, r10d
xor ebx, ebx
mov r12, rsi
nop word cs:[rax + rax]
mov eax, r8d
mov r8, qword [r12]
mov qword [rsp + 0x40], r8
xor rax, r8
movzx r11d, al
movzx ebp, ah
mov r8d, dword [r14 + rbp*4 + 0x400]
xor r8d, dword [r14 + r11*4]
mov r11d, eax
shr r11d, 0x10
movzx r11d, r11b
xor r8d, dword [r14 + r11*4 + 0x800]
mov r13, qword [r12 + 8]
shr eax, 0x18
xor r8d, dword [r14 + rax*4 + 0xc00]
mov eax, ebx
xor rax, r13
movzx r11d, al
movzx ebx, ah
mov ebx, dword [r14 + rbx*4 + 0x400]
xor ebx, dword [r14 + r11*4]
mov r11d, eax
shr r11d, 0x10
movzx r11d, r11b
xor ebx, dword [r14 + r11*4 + 0x800]
shr eax, 0x18
xor ebx, dword [r14 + rax*4 + 0xc00]
mov eax, r10d
mov rbp, qword [r12 + 0x10]
xor rax, rbp
movzx r11d, al
movzx edi, ah
mov r10d, dword [r14 + rdi*4 + 0x400]
xor r10d, dword [r14 + r11*4]
mov r11d, eax
shr r11d, 0x10
movzx r11d, r11b
xor r10d, dword [r14 + r11*4 + 0x800]
shr eax, 0x18
xor r10d, dword [r14 + rax*4 + 0xc00]
mov eax, edx
mov rdi, qword [r12 + 0x18]
xor rax, rdi
movzx r11d, al
movzx edx, ah
mov edx, dword [r14 + rdx*4 + 0x400]
xor edx, dword [r14 + r11*4]
mov r11d, eax
shr r11d, 0x10
movzx r11d, r11b
xor edx, dword [r14 + r11*4 + 0x800]
shr eax, 0x18
xor edx, dword [r14 + rax*4 + 0xc00]
mov eax, ecx
mov r11, qword [r12 + 0x20]
xor rax, r11
mov r15, r9
movzx r9d, al
movzx ecx, ah
mov ecx, dword [r14 + rcx*4 + 0x400]
xor ecx, dword [r14 + r9*4]
mov r9d, eax
shr r9d, 0x10
movzx r9d, r9b
xor ecx, dword [r14 + r9*4 + 0x800]
mov r9, r15
shr eax, 0x18
xor ecx, dword [r14 + rax*4 + 0xc00]
mov r15, qword [rsp + 0x40]
mov rax, r15
shr rax, 0x1e
and eax, 0x3fc
xor r8d, dword [rax + r14 + 0x1000]
mov rax, r13
shr rax, 0x1e
and eax, 0x3fc
xor ebx, dword [rax + r14 + 0x1000]
mov rax, rbp
shr rax, 0x1e
and eax, 0x3fc
xor r10d, dword [rax + r14 + 0x1000]
mov rax, rdi
shr rax, 0x1e
and eax, 0x3fc
xor edx, dword [rax + r14 + 0x1000]
mov rax, r11
shr rax, 0x1e
and eax, 0x3fc
xor ecx, dword [rax + r14 + 0x1000]
mov rax, r15
shr rax, 0x26
and eax, 0x3fc
xor r8d, dword [rax + r14 + 0x1400]
mov rax, r13
shr rax, 0x26
and eax, 0x3fc
xor ebx, dword [rax + r14 + 0x1400]
mov rax, rbp
shr rax, 0x26
and eax, 0x3fc
xor r10d, dword [rax + r14 + 0x1400]
mov rax, rdi
shr rax, 0x26
and eax, 0x3fc
xor edx, dword [rax + r14 + 0x1400]
mov rax, r11
shr rax, 0x26
and eax, 0x3fc
xor ecx, dword [rax + r14 + 0x1400]
mov rax, r15
shr rax, 0x2e
and eax, 0x3fc
xor r8d, dword [rax + r14 + 0x1800]
mov rax, r13
shr rax, 0x2e
and eax, 0x3fc
xor ebx, dword [rax + r14 + 0x1800]
mov rax, rbp
shr rax, 0x2e
and eax, 0x3fc
xor r10d, dword [rax + r14 + 0x1800]
mov rax, rdi
shr rax, 0x2e
and eax, 0x3fc
xor edx, dword [rax + r14 + 0x1800]
mov rax, r11
shr rax, 0x2e
and eax, 0x3fc
xor ecx, dword [rax + r14 + 0x1800]
mov rax, r15
shr rax, 0x38
xor r8d, dword [r14 + rax*4 + 0x1c00]
shr r13, 0x38
xor ebx, dword [r14 + r13*4 + 0x1c00]
shr rbp, 0x38
xor r10d, dword [r14 + rbp*4 + 0x1c00]
shr rdi, 0x38
xor edx, dword [r14 + rdi*4 + 0x1c00]
shr r11, 0x38
xor ecx, dword [r14 + r11*4 + 0x1c00]
add r12, 0x28
dec r9
jne 0x14006be20
add rsi, qword [rsp + 0x28]
mov r9d, ecx
mov ecx, ebx
mov r11d, r10d
mov r10d, edx
mov rdi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
jmp 0x14006c0f5
xor r11d, r11d
xor r10d, r10d
xor r9d, r9d
mov eax, r8d
xor rax, qword [rsi]
movzx r8d, al
shr rax, 8
lea rdx, [0x14018f7c0]
mov r8d, dword [rdx + r8*4]
xor r8, rax
movzx eax, r8b
shr r8, 8
mov eax, dword [rdx + rax*4]
xor rax, r8
movzx r8d, al
shr rax, 8
mov r8d, dword [rdx + r8*4]
xor r8, rax
movzx eax, r8b
shr r8, 8
mov eax, dword [rdx + rax*4]
xor rax, r8
movzx r8d, al
shr rax, 8
mov r8d, dword [rdx + r8*4]
xor r8, rax
movzx eax, r8b
shr r8, 8
mov eax, dword [rdx + rax*4]
xor rax, r8
movzx r8d, al
shr rax, 8
mov r8d, dword [rdx + r8*4]
xor r8, rax
movzx eax, r8b
shr r8, 8
xor r8d, dword [rdx + rax*4]
xor rcx, qword [rsi + 8]
xor r8, rcx
movzx eax, r8b
shr r8, 8
mov eax, dword [rdx + rax*4]
xor rax, r8
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
xor eax, dword [rdx + rcx*4]
xor r11, qword [rsi + 0x10]
xor rax, r11
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
xor ecx, dword [rdx + rax*4]
sub rdi, rbx
xor r10, qword [rsi + 0x18]
xor rcx, r10
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
xor eax, dword [rdx + rcx*4]
xor r9, qword [rsi + 0x20]
xor rax, r9
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov r8d, dword [rdx + rcx*4]
xor r8, rax
movzx eax, r8b
shr r8, 8
xor r8d, dword [rdx + rax*4]
add rsi, 0x28
cmp rdi, 8
jb 0x14006c3c7
lea rax, [0x14018f7c0]
mov ecx, r8d
xor r8b, byte [rsi]
shr ecx, 8
movzx edx, r8b
xor ecx, dword [rax + rdx*4]
mov edx, ecx
xor cl, byte [rsi + 1]
shr edx, 8
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov ecx, edx
xor dl, byte [rsi + 2]
shr ecx, 8
movzx edx, dl
xor ecx, dword [rax + rdx*4]
mov edx, ecx
xor cl, byte [rsi + 3]
shr edx, 8
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov ecx, edx
xor dl, byte [rsi + 4]
shr ecx, 8
movzx edx, dl
xor ecx, dword [rax + rdx*4]
add rdi, 0xfffffffffffffff8
mov edx, ecx
xor cl, byte [rsi + 5]
shr edx, 8
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov ecx, edx
shr ecx, 8
xor dl, byte [rsi + 6]
movzx edx, dl
xor ecx, dword [rax + rdx*4]
mov r8d, ecx
shr r8d, 8
xor cl, byte [rsi + 7]
add rsi, 8
movzx ecx, cl
xor r8d, dword [rax + rcx*4]
cmp rdi, 7
ja 0x14006c340
test rdi, rdi
je 0x14006c3dd
test dil, 1
jne 0x14006c3e2
mov rax, rdi
cmp rdi, 1
jne 0x14006c409
jmp 0x14006c44e
mov ebx, r8d
jmp 0x14006c44e
lea rax, [rdi - 1]
mov ebx, r8d
shr ebx, 8
xor r8b, byte [rsi]
inc rsi
movzx ecx, r8b
lea rdx, [0x14018f7c0]
xor ebx, dword [rdx + rcx*4]
mov r8d, ebx
cmp rdi, 1
je 0x14006c44e
xor ecx, ecx
lea rdx, [0x14018f7c0]
mov ebx, r8d
nop word cs:[rax + rax]
mov r8d, ebx
shr r8d, 8
xor bl, byte [rsi + rcx]
movzx r9d, bl
xor r8d, dword [rdx + r9*4]
mov ebx, r8d
shr ebx, 8
xor r8b, byte [rsi + rcx + 1]
movzx r8d, r8b
xor ebx, dword [rdx + r8*4]
add rcx, 2
cmp rax, rcx
jne 0x14006c420
not ebx
mov eax, ebx
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret