Function at 0x140192db0
Capabilities:
Hash data with crc32

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
mov rsi, r8
test rdx, rdx
jne 0x140192de7
xor ebx, ebx
test rsi, rsi
jne 0x140192dd4
call fcn.140104070
mov eax, ebx
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdi, rdx
mov r8d, ecx
cmp rsi, 0x40
jb 0x140192e00
cmp dword [0x1403bfb44], 0
jne 0x140192ef0
not r8d
cmp rsi, 0x2f
jae 0x140192f36
cmp rsi, 8
jae 0x140192e47
test rsi, rsi
je 0x140192f23
xor eax, eax
lea rcx, [0x14034bf40]
mov ebx, r8d
shr ebx, 8
movzx edx, byte [rdi + rax]
movzx ebp, r8b
xor ebp, edx
xor ebx, dword [rcx + rbp*4]
inc rax
mov r8d, ebx
cmp rsi, rax
jne 0x140192e25
not ebx
jmp 0x140192dd4
mov eax, 0xff
lea rcx, [0x14034bf40]
mov edx, r8d
shr edx, 8
movzx ebp, byte [rdi]
and r8d, eax
xor r8d, ebp
xor edx, dword [rcx + r8*4]
mov ebp, edx
shr ebp, 8
movzx ebx, byte [rdi + 1]
and edx, eax
xor edx, ebx
xor ebp, dword [rcx + rdx*4]
mov edx, ebp
shr edx, 8
movzx ebx, byte [rdi + 2]
and ebp, eax
xor ebp, ebx
xor edx, dword [rcx + rbp*4]
mov ebp, edx
shr ebp, 8
movzx ebx, byte [rdi + 3]
and edx, eax
xor edx, ebx
xor ebp, dword [rcx + rdx*4]
mov edx, ebp
shr edx, 8
movzx ebx, byte [rdi + 4]
and ebp, eax
xor ebp, ebx
xor edx, dword [rcx + rbp*4]
add rsi, 0xfffffffffffffff8
mov ebp, edx
shr ebp, 8
movzx ebx, byte [rdi + 5]
and edx, eax
xor edx, ebx
xor ebp, dword [rcx + rdx*4]
mov edx, ebp
shr edx, 8
movzx ebx, byte [rdi + 6]
and ebp, eax
xor ebp, ebx
xor edx, dword [rcx + rbp*4]
mov r8d, edx
shr r8d, 8
movzx ebp, byte [rdi + 7]
add rdi, 8
and edx, eax
xor edx, ebp
xor r8d, dword [rcx + rdx*4]
cmp rsi, 7
jbe 0x140192e13
jmp 0x140192e53
mov rbx, rsi
and rbx, 0xfffffffffffffff0
not r8d
mov rcx, rdi
mov rdx, rbx
call fcn.1401770c0
mov r8d, eax
xor eax, eax
mov rcx, rsi
and rcx, 0xf
cmovne rax, rbx
and rsi, 0xf
je 0x140192f2b
add rdi, rax
jmp 0x140192e0d
mov ebx, r8d
jmp 0x140192e43
not r8d
mov ebx, r8d
jmp 0x140192dd4
test dil, 7
je 0x140192f79
lea rax, [rdi + 1]
lea r9, [0x14034bf40]
mov rdx, rsi
dec rsi
movzx ebp, r8b
mov ebx, r8d
shr ebx, 8
movzx ecx, byte [rdi]
inc rdi
xor ebp, ecx
mov r8d, ebx
xor r8d, dword [r9 + rbp*4]
cmp rdx, 1
je 0x140192f79
mov ecx, eax
and ecx, 7
inc rax
test rcx, rcx
jne 0x140192f47
movabs rcx, 0xcccccccccccccccd
mov rax, rsi
mul rcx
shr rdx, 5
lea rax, [rdx*8]
lea rax, [rax + rax*4]
xor r13d, r13d
mov rcx, rdx
dec rcx
jne 0x140193270
xor ebx, ebx
xor r10d, r10d
xor r9d, r9d
mov edx, r8d
xor rdx, qword [rdi]
sub rsi, rax
mov rbp, rdx
shr rbp, 8
mov eax, 0xff
and rdx, rax
lea rcx, [0x14034bf40]
mov edx, dword [rcx + rdx*4]
xor rdx, rbp
mov rbp, rdx
shr rbp, 8
and rdx, rax
mov edx, dword [rcx + rdx*4]
xor rdx, rbp
mov rbp, rdx
shr rbp, 8
and rdx, rax
mov edx, dword [rcx + rdx*4]
xor rdx, rbp
mov rbp, rdx
shr rbp, 8
and rdx, rax
mov edx, dword [rcx + rdx*4]
xor rdx, rbp
mov rbp, rdx
shr rbp, 8
and rdx, rax
mov edx, dword [rcx + rdx*4]
xor rdx, rbp
mov rbp, rdx
shr rbp, 8
and rdx, rax
mov edx, dword [rcx + rdx*4]
xor rdx, rbp
mov rbp, rdx
shr rbp, 8
and rdx, rax
mov edx, dword [rcx + rdx*4]
xor rdx, rbp
mov rbp, rdx
shr rbp, 8
and rdx, rax
mov edx, dword [rcx + rdx*4]
mov ebp, ebp
xor rbp, r13
xor rbp, rdx
xor rbp, qword [rdi + 8]
mov rdx, rbp
shr rdx, 8
and rbp, rax
mov ebp, dword [rcx + rbp*4]
xor rbp, rdx
mov rdx, rbp
shr rdx, 8
and rbp, rax
mov ebp, dword [rcx + rbp*4]
xor rbp, rdx
mov rdx, rbp
shr rdx, 8
and rbp, rax
mov ebp, dword [rcx + rbp*4]
xor rbp, rdx
mov rdx, rbp
shr rdx, 8
and rbp, rax
mov ebp, dword [rcx + rbp*4]
xor rbp, rdx
mov rdx, rbp
shr rdx, 8
and rbp, rax
mov ebp, dword [rcx + rbp*4]
xor rbp, rdx
mov rdx, rbp
shr rdx, 8
and rbp, rax
mov ebp, dword [rcx + rbp*4]
xor rbp, rdx
mov rdx, rbp
shr rdx, 8
and rbp, rax
mov ebp, dword [rcx + rbp*4]
xor rbp, rdx
mov rdx, rbp
shr rdx, 8
and rbp, rax
mov ebp, dword [rcx + rbp*4]
mov edx, edx
xor rdx, rbx
xor rdx, rbp
xor rdx, qword [rdi + 0x10]
mov rbp, rdx
shr rbp, 8
and rdx, rax
mov edx, dword [rcx + rdx*4]
xor rdx, rbp
mov rbp, rdx
shr rbp, 8
and rdx, rax
mov edx, dword [rcx + rdx*4]
xor rdx, rbp
mov rbp, rdx
shr rbp, 8
and rdx, rax
mov edx, dword [rcx + rdx*4]
xor rdx, rbp
mov rbp, rdx
shr rbp, 8
and rdx, rax
mov edx, dword [rcx + rdx*4]
xor rdx, rbp
mov rbp, rdx
shr rbp, 8
and rdx, rax
mov edx, dword [rcx + rdx*4]
xor rdx, rbp
mov rbp, rdx
shr rbp, 8
and rdx, rax
mov edx, dword [rcx + rdx*4]
xor rdx, rbp
mov rbp, rdx
shr rbp, 8
and rdx, rax
mov edx, dword [rcx + rdx*4]
xor rdx, rbp
mov rbp, rdx
shr rbp, 8
and rdx, rax
mov edx, dword [rcx + rdx*4]
mov ebp, ebp
xor rbp, r10
xor rbp, rdx
xor rbp, qword [rdi + 0x18]
mov rdx, rbp
shr rdx, 8
and rbp, rax
mov ebp, dword [rcx + rbp*4]
xor rbp, rdx
mov rdx, rbp
shr rdx, 8
and rbp, rax
mov ebp, dword [rcx + rbp*4]
xor rbp, rdx
mov rdx, rbp
shr rdx, 8
and rbp, rax
mov ebp, dword [rcx + rbp*4]
xor rbp, rdx
mov rdx, rbp
shr rdx, 8
and rbp, rax
mov ebp, dword [rcx + rbp*4]
xor rbp, rdx
mov rdx, rbp
shr rdx, 8
and rbp, rax
mov ebp, dword [rcx + rbp*4]
xor rbp, rdx
mov rdx, rbp
shr rdx, 8
and rbp, rax
mov ebp, dword [rcx + rbp*4]
xor rbp, rdx
mov rdx, rbp
shr rdx, 8
and rbp, rax
mov ebp, dword [rcx + rbp*4]
xor rbp, rdx
mov rdx, rbp
shr rdx, 8
and rbp, rax
mov ebp, dword [rcx + rbp*4]
mov edx, edx
xor rdx, r9
xor rdx, rbp
xor rdx, qword [rdi + 0x20]
mov rbp, rdx
shr rbp, 8
and rdx, rax
mov edx, dword [rcx + rdx*4]
xor rdx, rbp
mov rbp, rdx
shr rbp, 8
and rdx, rax
mov edx, dword [rcx + rdx*4]
xor rdx, rbp
mov rbp, rdx
shr rbp, 8
and rdx, rax
mov edx, dword [rcx + rdx*4]
xor rdx, rbp
mov rbp, rdx
shr rbp, 8
and rdx, rax
mov edx, dword [rcx + rdx*4]
xor rdx, rbp
mov rbp, rdx
shr rbp, 8
and rdx, rax
mov edx, dword [rcx + rdx*4]
xor rdx, rbp
mov rbp, rdx
shr rbp, 8
and rdx, rax
mov edx, dword [rcx + rdx*4]
xor rdx, rbp
mov rbp, rdx
shr rbp, 8
and rdx, rax
mov edx, dword [rcx + rdx*4]
xor rdx, rbp
mov r8, rdx
shr r8, 8
and rdx, rax
xor r8d, dword [rcx + rdx*4]
add rdi, 0x28
jmp 0x140192e0d
lea rdx, [rdx + rdx*4]
lea rdx, [rdi + rdx*8]
add rdx, 0xffffffffffffffd8
mov qword [rsp + 0x70], rdx
xor ebp, ebp
xor r15d, r15d
xor r14d, r14d
lea r10, [0x14034c340]
mov r12d, r8d
mov rbx, qword [rdi]
mov qword [rsp + 0x28], rbx
mov rdx, qword [rdi + 8]
mov qword [rsp + 0x30], rdx
xor r12, rbx
mov r11d, r14d
xor r11, rdx
mov ebx, r15d
mov rdx, qword [rdi + 0x10]
mov qword [rsp + 0x68], rdx
xor rbx, rdx
mov r8, rbx
mov ebp, ebp
mov rdx, qword [rdi + 0x18]
mov qword [rsp + 0x48], rdx
xor rbp, rdx
mov r9, rbp
mov qword [rsp + 0x38], rbp
mov ebp, r13d
mov rdx, qword [rdi + 0x20]
mov qword [rsp + 0x50], rdx
xor rbp, rdx
mov qword [rsp + 0x20], rbp
mov rbp, r12
mov r13d, 0xff
and rbp, r13
mov rdx, r11
and rdx, r13
mov r15, rbx
mov qword [rsp + 0x40], rbx
and rbx, r13
mov qword [rsp + 0x58], rbx
mov rbx, r9
and rbx, r13
mov qword [rsp + 0x60], rbx
mov rbx, r12
shr rbx, 8
and rbx, r13
mov r8d, dword [r10 + rbx*4 + 0x400]
xor r8d, dword [r10 + rbp*4]
mov rbx, r11
shr rbx, 8
and rbx, r13
mov r14d, dword [r10 + rbx*4 + 0x400]
xor r14d, dword [r10 + rdx*4]
mov rdx, r15
shr rdx, 8
and rdx, r13
mov r15d, dword [r10 + rdx*4 + 0x400]
mov rdx, qword [rsp + 0x58]
xor r15d, dword [r10 + rdx*4]
mov rdx, qword [rsp + 0x38]
shr rdx, 8
and rdx, r13
mov ebp, dword [r10 + rdx*4 + 0x400]
mov rdx, qword [rsp + 0x60]
xor ebp, dword [r10 + rdx*4]
mov rbx, qword [rsp + 0x20]
mov r9, rbx
and r9, r13
shr rbx, 8
and rbx, r13
mov r13d, dword [r10 + rbx*4 + 0x400]
xor r13d, dword [r10 + r9*4]
mov rdx, r12
shr rdx, 0xe
mov ebx, 0x3fc
and rdx, rbx
xor r8d, dword [rdx + r10 + 0x800]
mov rdx, r11
shr rdx, 0xe
and rdx, rbx
xor r14d, dword [rdx + r10 + 0x800]
mov rdx, qword [rsp + 0x40]
shr rdx, 0xe
and rdx, rbx
xor r15d, dword [rdx + r10 + 0x800]
mov r9, qword [rsp + 0x38]
mov rdx, r9
shr rdx, 0xe
and rdx, rbx
xor ebp, dword [rdx + r10 + 0x800]
mov rdx, qword [rsp + 0x20]
shr rdx, 0xe
and rdx, rbx
xor r13d, dword [rdx + r10 + 0x800]
shr r12, 0x16
and r12, rbx
xor r8d, dword [r12 + r10 + 0xc00]
shr r11, 0x16
and r11, rbx
xor r14d, dword [r11 + r10 + 0xc00]
mov rdx, qword [rsp + 0x40]
shr rdx, 0x16
and rdx, rbx
xor r15d, dword [rdx + r10 + 0xc00]
mov rdx, r9
shr rdx, 0x16
and rdx, rbx
xor ebp, dword [rdx + r10 + 0xc00]
mov rdx, qword [rsp + 0x20]
shr rdx, 0x16
and rdx, rbx
xor r13d, dword [rdx + r10 + 0xc00]
mov r11, qword [rsp + 0x28]
mov rdx, r11
shr rdx, 0x1e
and rdx, rbx
xor r8d, dword [rdx + r10 + 0x1000]
mov r9, qword [rsp + 0x30]
mov rdx, r9
shr rdx, 0x1e
and rdx, rbx
xor r14d, dword [rdx + r10 + 0x1000]
mov r12, qword [rsp + 0x68]
mov rdx, r12
shr rdx, 0x1e
and rdx, rbx
xor r15d, dword [rdx + r10 + 0x1000]
mov rdx, qword [rsp + 0x48]
shr rdx, 0x1e
and rdx, rbx
xor ebp, dword [rdx + r10 + 0x1000]
mov rdx, qword [rsp + 0x50]
shr rdx, 0x1e
and rdx, rbx
xor r13d, dword [rdx + r10 + 0x1000]
mov rdx, r11
shr rdx, 0x26
and rdx, rbx
xor r8d, dword [rdx + r10 + 0x1400]
mov rdx, r9
shr rdx, 0x26
and rdx, rbx
xor r14d, dword [rdx + r10 + 0x1400]
mov rdx, r12
shr rdx, 0x26
and rdx, rbx
xor r15d, dword [rdx + r10 + 0x1400]
mov r9, qword [rsp + 0x48]
mov rdx, r9
shr rdx, 0x26
and rdx, rbx
xor ebp, dword [rdx + r10 + 0x1400]
mov r11, qword [rsp + 0x50]
mov rdx, r11
shr rdx, 0x26
and rdx, rbx
xor r13d, dword [rdx + r10 + 0x1400]
mov rdx, qword [rsp + 0x28]
shr rdx, 0x2e
and rdx, rbx
xor r8d, dword [rdx + r10 + 0x1800]
mov rdx, qword [rsp + 0x30]
shr rdx, 0x2e
and rdx, rbx
xor r14d, dword [rdx + r10 + 0x1800]
mov rdx, r12
shr rdx, 0x2e
and rdx, rbx
xor r15d, dword [rdx + r10 + 0x1800]
mov rdx, r9
shr rdx, 0x2e
and rdx, rbx
xor ebp, dword [rdx + r10 + 0x1800]
mov rdx, r11
shr rdx, 0x2e
and rdx, rbx
xor r13d, dword [rdx + r10 + 0x1800]
mov rdx, qword [rsp + 0x28]
shr rdx, 0x38
xor r8d, dword [r10 + rdx*4 + 0x1c00]
mov rdx, qword [rsp + 0x30]
shr rdx, 0x38
xor r14d, dword [r10 + rdx*4 + 0x1c00]
shr r12, 0x38
xor r15d, dword [r10 + r12*4 + 0x1c00]
shr r9, 0x38
xor ebp, dword [r10 + r9*4 + 0x1c00]
shr r11, 0x38
xor r13d, dword [r10 + r11*4 + 0x1c00]
add rdi, 0x28
dec rcx
jne 0x140193290
mov r9d, r13d
mov r13d, r14d
mov ebx, r15d
mov r10d, ebp
mov rdi, qword [rsp + 0x70]
jmp 0x140192fb0