Function at 0x140148b30
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 0x140148b89
mov rsi, rdx
mov r8d, ecx
cmp rdi, 0x40
jb 0x140148b9e
cmp dword [0x14032b978], 0
je 0x140148b9e
mov r14, rdi
and r14, 0xfffffffffffffff0
not r8d
mov rcx, rsi
mov rdx, r14
call fcn.1400bfe50
mov ebx, eax
and rdi, 0xf
je 0x140149261
add rsi, r14
mov r8d, ebx
jmp 0x140149187
xor ebx, ebx
test rdi, rdi
jne 0x140149263
call fcn.1401a4950
jmp 0x140149263
not r8d
cmp rdi, 0x2f
jb 0x140149187
test sil, 7
je 0x140148bf0
lea rax, [rsi + 1]
lea rcx, [0x1402b6930]
nop dword [rax]
mov rdx, rdi
dec rdi
mov ebp, r8d
shr ebp, 8
xor r8b, byte [rsi]
inc rsi
movzx ebx, r8b
mov r8d, ebp
xor r8d, dword [rcx + rbx*4]
cmp rdx, 1
je 0x140148bf0
mov edx, eax
and edx, 7
inc rax
test rdx, rdx
jne 0x140148bc0
movabs rcx, 0xcccccccccccccccd
mov rax, rdi
mul rcx
shr rdx, 5
lea rax, [rdx*8]
lea r9, [rax + rax*4]
xor r11d, r11d
mov rcx, rdx
dec rcx
je 0x140148f47
mov qword [rsp + 0x28], r9
mov qword [rsp + 0x30], rdi
lea rax, [rdx + rdx*4]
lea rax, [rax*8 - 0x28]
mov qword [rsp + 0x20], rax
lea rdi, [0x1402b6d30]
xor r15d, r15d
xor eax, eax
xor ebx, ebx
mov r12, rsi
nop dword [rax + rax]
mov qword [rsp + 0x40], rcx
mov edx, r8d
mov rcx, qword [r12]
mov qword [rsp + 0x38], rcx
mov r13, qword [r12 + 8]
xor rdx, rcx
movzx ecx, dl
movzx ebp, dh
mov r8d, dword [rdi + rbp*4 + 0x400]
xor r8d, dword [rdi + rcx*4]
mov rcx, rdx
shr rcx, 0xe
and ecx, 0x3fc
xor r8d, dword [rcx + rdi + 0x800]
shr rdx, 0x16
and edx, 0x3fc
xor r8d, dword [rdx + rdi + 0xc00]
mov edx, ebx
xor rdx, r13
movzx ebp, dl
movzx ebx, dh
mov ebx, dword [rdi + rbx*4 + 0x400]
xor ebx, dword [rdi + rbp*4]
mov rcx, rdx
shr rcx, 0xe
and ecx, 0x3fc
xor ebx, dword [rcx + rdi + 0x800]
shr rdx, 0x16
and edx, 0x3fc
xor ebx, dword [rdx + rdi + 0xc00]
mov ecx, eax
mov r14, qword [r12 + 0x10]
xor rcx, r14
movzx edx, cl
movzx eax, ch
mov eax, dword [rdi + rax*4 + 0x400]
xor eax, dword [rdi + rdx*4]
mov rdx, rcx
shr rdx, 0xe
and edx, 0x3fc
xor eax, dword [rdx + rdi + 0x800]
shr rcx, 0x16
and ecx, 0x3fc
xor eax, dword [rcx + rdi + 0xc00]
mov ecx, r15d
mov r9, qword [r12 + 0x18]
xor rcx, r9
movzx edx, cl
movzx ebp, ch
mov r15d, dword [rdi + rbp*4 + 0x400]
xor r15d, dword [rdi + rdx*4]
mov rdx, rcx
shr rdx, 0xe
and edx, 0x3fc
xor r15d, dword [rdx + rdi + 0x800]
shr rcx, 0x16
and ecx, 0x3fc
xor r15d, dword [rcx + rdi + 0xc00]
mov ecx, r11d
mov r10, qword [r12 + 0x20]
xor rcx, r10
movzx edx, cl
movzx ebp, ch
mov r11d, dword [rdi + rbp*4 + 0x400]
xor r11d, dword [rdi + rdx*4]
mov rdx, rcx
shr rdx, 0xe
and edx, 0x3fc
xor r11d, dword [rdx + rdi + 0x800]
shr rcx, 0x16
and ecx, 0x3fc
xor r11d, dword [rcx + rdi + 0xc00]
mov rbp, qword [rsp + 0x38]
mov rcx, rbp
shr rcx, 0x1e
and ecx, 0x3fc
xor r8d, dword [rcx + rdi + 0x1000]
mov rcx, r13
shr rcx, 0x1e
and ecx, 0x3fc
xor ebx, dword [rcx + rdi + 0x1000]
mov rcx, r14
shr rcx, 0x1e
and ecx, 0x3fc
xor eax, dword [rcx + rdi + 0x1000]
mov rcx, r9
shr rcx, 0x1e
and ecx, 0x3fc
xor r15d, dword [rcx + rdi + 0x1000]
mov rcx, r10
shr rcx, 0x1e
and ecx, 0x3fc
xor r11d, dword [rcx + rdi + 0x1000]
mov rcx, rbp
shr rcx, 0x26
and ecx, 0x3fc
xor r8d, dword [rcx + rdi + 0x1400]
mov rcx, r13
shr rcx, 0x26
and ecx, 0x3fc
xor ebx, dword [rcx + rdi + 0x1400]
mov rcx, r14
shr rcx, 0x26
and ecx, 0x3fc
xor eax, dword [rcx + rdi + 0x1400]
mov rcx, r9
shr rcx, 0x26
and ecx, 0x3fc
xor r15d, dword [rcx + rdi + 0x1400]
mov rcx, r10
shr rcx, 0x26
and ecx, 0x3fc
xor r11d, dword [rcx + rdi + 0x1400]
mov rcx, rbp
shr rcx, 0x2e
and ecx, 0x3fc
xor r8d, dword [rcx + rdi + 0x1800]
mov rcx, r13
shr rcx, 0x2e
and ecx, 0x3fc
xor ebx, dword [rcx + rdi + 0x1800]
mov rcx, r14
shr rcx, 0x2e
and ecx, 0x3fc
xor eax, dword [rcx + rdi + 0x1800]
mov rcx, r9
shr rcx, 0x2e
and ecx, 0x3fc
xor r15d, dword [rcx + rdi + 0x1800]
mov rcx, r10
shr rcx, 0x2e
and ecx, 0x3fc
xor r11d, dword [rcx + rdi + 0x1800]
mov rcx, qword [rsp + 0x40]
shr rbp, 0x38
xor r8d, dword [rdi + rbp*4 + 0x1c00]
shr r13, 0x38
xor ebx, dword [rdi + r13*4 + 0x1c00]
shr r14, 0x38
xor eax, dword [rdi + r14*4 + 0x1c00]
shr r9, 0x38
xor r15d, dword [rdi + r9*4 + 0x1c00]
shr r10, 0x38
xor r11d, dword [rdi + r10*4 + 0x1c00]
add r12, 0x28
dec rcx
jne 0x140148c50
add rsi, qword [rsp + 0x20]
mov r10d, r11d
mov r11d, ebx
mov ebx, eax
mov eax, r15d
mov rdi, qword [rsp + 0x30]
mov r9, qword [rsp + 0x28]
jmp 0x140148f4e
xor ebx, ebx
xor eax, eax
xor r10d, r10d
mov ecx, r8d
xor rcx, qword [rsi]
movzx ebp, cl
shr rcx, 8
lea rdx, [0x1402b6930]
mov ebp, dword [rdx + rbp*4]
xor rbp, rcx
movzx ecx, bpl
shr rbp, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rbp
movzx ebp, cl
shr rcx, 8
mov ebp, dword [rdx + rbp*4]
xor rbp, rcx
movzx ecx, bpl
shr rbp, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rbp
movzx ebp, cl
shr rcx, 8
mov ebp, dword [rdx + rbp*4]
xor rbp, rcx
movzx ecx, bpl
shr rbp, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rbp
movzx ebp, cl
shr rcx, 8
mov ebp, dword [rdx + rbp*4]
xor rbp, rcx
movzx ecx, bpl
shr rbp, 8
xor ebp, dword [rdx + rcx*4]
xor r11, qword [rsi + 8]
xor rbp, r11
movzx ecx, bpl
shr rbp, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rbp
movzx ebp, cl
shr rcx, 8
mov ebp, dword [rdx + rbp*4]
xor rbp, rcx
movzx ecx, bpl
shr rbp, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rbp
movzx ebp, cl
shr rcx, 8
mov ebp, dword [rdx + rbp*4]
xor rbp, rcx
movzx ecx, bpl
shr rbp, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rbp
movzx ebp, cl
shr rcx, 8
mov ebp, dword [rdx + rbp*4]
xor rbp, rcx
movzx ecx, bpl
shr rbp, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rbp
movzx ebp, cl
shr rcx, 8
xor ecx, dword [rdx + rbp*4]
xor rbx, qword [rsi + 0x10]
xor rcx, rbx
movzx ebp, cl
shr rcx, 8
mov ebp, dword [rdx + rbp*4]
xor rbp, rcx
movzx ecx, bpl
shr rbp, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rbp
movzx ebp, cl
shr rcx, 8
mov ebp, dword [rdx + rbp*4]
xor rbp, rcx
movzx ecx, bpl
shr rbp, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rbp
movzx ebp, cl
shr rcx, 8
mov ebp, dword [rdx + rbp*4]
xor rbp, rcx
movzx ecx, bpl
shr rbp, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rbp
movzx ebp, cl
shr rcx, 8
mov ebp, dword [rdx + rbp*4]
xor rbp, rcx
movzx ecx, bpl
shr rbp, 8
xor ebp, dword [rdx + rcx*4]
sub rdi, r9
xor rax, qword [rsi + 0x18]
xor rbp, rax
movzx eax, bpl
shr rbp, 8
mov eax, dword [rdx + rax*4]
xor rax, rbp
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 r10, qword [rsi + 0x20]
xor rax, r10
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 0x140149227
lea rax, [0x1402b6930]
nop dword [rax + rax]
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 0x1401491a0
test rdi, rdi
je 0x14014925e
xor eax, eax
lea rcx, [0x1402b6930]
nop word cs:[rax + rax]
mov ebx, r8d
xor r8b, byte [rsi + rax]
shr ebx, 8
movzx edx, r8b
xor ebx, dword [rcx + rdx*4]
inc rax
mov r8d, ebx
cmp rdi, rax
jne 0x140149240
jmp 0x140149261
mov ebx, r8d
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