Function at 0x7fffb6db889c
Capabilities:
Hash data with crc32

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 7]
sub rsp, 0xa8
mov rax, qword [0x7fffb6df6798]
xor rax, rsp
mov qword [rbp - 0x11], rax
mov rsi, qword [rbp + 0x77]
xor r15d, r15d
mov qword [rbp - 0x51], r9
mov r14, r8
mov qword [rbp - 0x39], rcx
mov r12, rdx
mov r13, rcx
test rcx, rcx
jne 0x7fffb6db890f
mov ebx, 6
mov ecx, ebx
call qword [sym.imp.kernel32.dll_RestoreLastError]
xor eax, eax
mov rcx, qword [rbp - 0x11]
xor rcx, rsp
call fcn.7fffb6dcff80
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
movzx eax, byte [rcx]
mov r8d, 0x40000000
mov edi, dword [rbp + 0x7f]
dec eax
cmp eax, 4
ja 0x7fffb6db8936
test dword [rcx], r8d
je 0x7fffb6db892d
test edi, edi
jne 0x7fffb6db8931
jmp 0x7fffb6db88e0
test edi, edi
jne 0x7fffb6db88e0
mov ebx, r15d
jmp 0x7fffb6db893b
mov ebx, 6
test ebx, ebx
jne 0x7fffb6db88e5
mov r10d, 0x20000000
test edi, edi
je 0x7fffb6db8955
test r14, r14
jne 0x7fffb6db8965
mov ebx, 0x57
jmp 0x7fffb6db88e5
mov rbx, qword [rbp + 0x6f]
test rbx, rbx
jne 0x7fffb6db8969
test dword [rcx], r10d
je 0x7fffb6db8969
jmp 0x7fffb6db894e
mov rbx, qword [rbp + 0x6f]
mov eax, dword [rcx]
lea r11, [0x7fffb6d80000]
and eax, 0x9fffffff
lea rdx, [rax + rax*2]
add rdx, rdx
lea rax, [r11 + 0x58ca0]
test dword [rcx], r8d
lea rcx, [r11 + 0x58dc0]
lea rax, [rax + rdx*8]
lea rcx, [rcx + rdx*8]
cmovne rax, rcx
mov rax, qword [rax + 0x20]
mov qword [rbp - 0x31], rax
test dword [r13], r10d
je 0x7fffb6db89de
lea rcx, [rbp - 0x61]
mov r8, r14
mov qword [rsp + 0x28], rcx
mov rdx, r12
mov rcx, qword [r13 + 8]
mov qword [rsp + 0x20], rbx
call qword [sym.imp.____1]
mov ebx, eax
test rsi, rsi
je 0x7fffb6db8bbc
mov rcx, qword [rbp - 0x61]
mov qword [rsi], rcx
jmp 0x7fffb6db8bbc
mov eax, dword [r13]
lea rcx, [r11 + 0x58dc0]
and eax, 0x9fffffff
lea rdx, [rax + rax*2]
add rdx, rdx
lea rax, [r11 + 0x58ca0]
test dword [r13], r8d
lea rcx, [rcx + rdx*8]
lea rax, [rax + rdx*8]
cmovne rax, rcx
mov rcx, qword [r13 + 8]
mov rax, qword [rax + 0x28]
call qword [sym.imp.____1]
test edi, edi
je 0x7fffb6db8bcc
mov edi, 0x4000000
cmp r14, rdi
cmovb rdi, r14
mov ecx, 0x18
xor edx, edx
mov rax, r14
div rdi
xor r9d, r9d
mov r15, rax
test rdx, rdx
je 0x7fffb6db8a49
inc r15
mov rbx, r9
mov qword [rbp - 0x59], r9
mov rax, r9
mov r10, r9
mov rdx, rcx
mov qword [rbp - 0x39], rdx
lea r8, [r15*4 + 0x18]
mov qword [rbp - 0x41], rax
mov qword [rbp - 0x49], rbx
cmp rax, r15
jae 0x7fffb6db8b34
mov rcx, qword [rbp + 0x6f]
sub rcx, rbx
cmp rcx, r8
jbe 0x7fffb6db8a87
sub rcx, r8
jmp 0x7fffb6db8a8a
mov rcx, r9
mov qword [rbp - 0x61], r9
mov rax, r14
mov r9, qword [rbp - 0x51]
sub rax, r10
cmp rax, rdi
mov r8, rdi
cmovb r8, rax
add r9, 4
add r9, rdx
lea rax, [rbp - 0x61]
mov qword [rsp + 0x28], rax
lea rdx, [r10 + r12]
mov rax, qword [rbp - 0x31]
add r9, rbx
mov qword [rsp + 0x20], rcx
mov rcx, qword [r13 + 8]
call qword [sym.imp.____1]
mov ebx, eax
cmp eax, 0x6f
je 0x7fffb6db8b0f
cmp eax, 0x7a
je 0x7fffb6db8b18
mov rdx, qword [rbp - 0x39]
mov rbx, qword [rbp - 0x49]
mov rcx, qword [rbp - 0x61]
mov r10, qword [rbp - 0x59]
mov rax, qword [rbp - 0x51]
add r10, rdi
add rax, rdx
mov qword [rbp - 0x59], r10
add rdx, 4
mov dword [rax + rbx], ecx
add rbx, rcx
mov rax, qword [rbp - 0x41]
inc rax
xor r9d, r9d
jmp 0x7fffb6db8a59
mov rdi, qword [rbp - 0x61]
jmp 0x7fffb6db8a2e
test rsi, rsi
je 0x7fffb6db88e5
mov rdx, r14
mov rcx, r13
call fcn.7fffb6db8714
mov qword [rsi], rax
jmp 0x7fffb6db88e5
xor eax, eax
xor ecx, ecx
mov qword [rbp - 0x29], rax
mov qword [rbp - 0x21], rax
mov qword [rbp - 0x19], rax
and dword [rbp - 0x15], 0
lea edx, [rax + 0x18]
mov al, byte [r13]
lea r8d, [rdx - 0x12]
mov byte [rbp - 0x22], al
mov rax, r14
shr rax, 0x20
mov word [rbp - 0x25], dx
lea rdx, [rbp - 0x29]
mov dword [rbp - 0x1d], eax
mov dword [rbp - 0x29], 0xc0e5510a
mov dword [rbp - 0x21], r14d
mov dword [rbp - 0x19], edi
call qword [sym.imp.ntdll.dll_RtlComputeCrc32]
mov r8d, 0x11
lea rdx, [rbp - 0x22]
mov ecx, eax
call qword [sym.imp.ntdll.dll_RtlComputeCrc32]
movsd xmm1, qword [rbp - 0x19]
mov byte [rbp - 0x23], al
mov rax, qword [rbp - 0x51]
movups xmm0, xmmword [rbp - 0x29]
movups xmmword [rax], xmm0
movsd qword [rax + 0x10], xmm1
test rsi, rsi
je 0x7fffb6db8bb6
add r15, 6
lea rax, [rbx + r15*4]
mov qword [rsi], rax
xor r15d, r15d
mov ebx, r15d
test ebx, ebx
jne 0x7fffb6db88e5
lea eax, [rbx + 1]
jmp 0x7fffb6db88ef
test r14, r14
jne 0x7fffb6db8bee
test rsi, rsi
je 0x7fffb6db8be4
mov rdx, rbx
mov rcx, r13
call fcn.7fffb6db8714
mov qword [rsi], rax
mov ebx, 0x7a
jmp 0x7fffb6db88e5
cmp r14, 0x1c
jae 0x7fffb6db8bfe
mov ebx, 0x25d
jmp 0x7fffb6db88e5
movups xmm0, xmmword [r12]
movsd xmm1, qword [r12 + 0x10]
movd eax, xmm0
movups xmmword [rbp - 0x29], xmm0
movsd qword [rbp - 0x19], xmm1
cmp eax, 0xc0e5510a
jne 0x7fffb6db8bf4
mov rcx, qword [rbp - 0x29]
mov edx, 0x18
mov rax, rcx
shr rax, 0x20
cmp ax, dx
jb 0x7fffb6db8bf4
movzx eax, ax
add rax, 4
cmp r14, rax
jb 0x7fffb6db8bf4
mov rax, qword [rbp - 0x19]
shr rax, 0x20
movzx eax, ax
test eax, 0xfffffffe
jne 0x7fffb6db8bf4
shr rcx, 0x38
cmp cl, byte [r13]
jne 0x7fffb6db8bf4
mov edi, 0x4000000
cmp dword [rbp - 0x19], edi
ja 0x7fffb6db8bf4
lea r8d, [rdx - 0x12]
xor ecx, ecx
mov rdx, r12
call qword [sym.imp.ntdll.dll_RtlComputeCrc32]
movzx r8d, word [rbp - 0x25]
lea rdx, [r12 + 7]
sub r8d, 7
mov ecx, eax
call qword [sym.imp.ntdll.dll_RtlComputeCrc32]
cmp byte [rbp - 0x23], al
jne 0x7fffb6db8bf4
mov r9d, dword [rbp - 0x15]
mov r8d, dword [rbp - 0x19]
and r9d, 1
je 0x7fffb6db8d3c
movzx ecx, word [rbp - 0x25]
mov r10d, 8
mov rdi, r15
lea rax, [rcx + 8]
cmp rax, r14
ja 0x7fffb6db8bf4
cmp dword [r12 + rcx], r15d
je 0x7fffb6db8d08
mov r11d, dword [r12 + rcx + 4]
test r11d, r11d
je 0x7fffb6db8bf4
mov edx, dword [r12 + rcx]
add rdx, rcx
cmp rdx, rcx
jb 0x7fffb6db8bf4
lea rax, [rdx + 0x10]
mov rcx, rdx
cmp rax, rdx
jb 0x7fffb6db8bf4
add rcx, r10
lea rdx, [rdi + r11]
cmp rdx, rdi
jb 0x7fffb6db8bf4
mov rdi, rdx
jmp 0x7fffb6db8cb2
cmp dword [r12 + rcx + 4], r15d
jne 0x7fffb6db8bf4
cmp rbx, rdi
jae 0x7fffb6db8d63
mov ebx, 0x7a
test rsi, rsi
je 0x7fffb6db88e5
or qword [rsi], 0xffffffffffffffff
cmp rdi, 0xffffffffffffffff
jae 0x7fffb6db88e5
mov qword [rsi], rdi
jmp 0x7fffb6db88e5
mov edi, dword [rbp - 0x1d]
mov eax, dword [rbp - 0x21]
shl rdi, 0x20
add rdi, rax
je 0x7fffb6db8bf4
mov r10d, 4
cmp r8d, 0x8000
jae 0x7fffb6db8d13
cmp rdi, r8
jmp 0x7fffb6db8d0d
movzx r15d, word [rbp - 0x25]
xor r11d, r11d
mov edx, r11d
mov qword [rbp - 0x59], rdx
test rdi, rdi
je 0x7fffb6db8e44
movsxd r9, r9d
mov eax, r10d
mov qword [rbp - 0x49], r9
mov qword [rbp - 0x41], rax
lea rcx, [rax + r15]
cmp rcx, r14
ja 0x7fffb6db8bf4
cmp rcx, r15
jb 0x7fffb6db8bf4
cmp dword [r12 + r15], r11d
je 0x7fffb6db8bf4
test r9, r9
je 0x7fffb6db8db5
mov r13d, dword [r12 + r15 + 4]
jmp 0x7fffb6db8dc5
mov r13d, r8d
mov rax, rdi
sub rax, rdx
cmp r13, rax
cmova r13, rax
mov r8d, dword [r12 + r15]
lea r15, [r8 + rcx]
cmp r15, r14
ja 0x7fffb6db8bf4
cmp r15, rcx
jb 0x7fffb6db8bf4
mov r9, qword [rbp - 0x51]
lea rax, [rbp - 0x61]
mov qword [rsp + 0x28], rax
add r9, rdx
mov rax, qword [rbp - 0x39]
lea rdx, [r12 + rcx]
mov qword [rsp + 0x20], r13
mov rcx, qword [rax + 8]
mov rax, qword [rbp - 0x31]
call qword [sym.imp.____1]
mov ebx, eax
cmp eax, 0x25d
je 0x7fffb6db88e5
cmp eax, 0x6f
je 0x7fffb6db8bf4
mov rdx, qword [rbp - 0x59]
add rdx, r13
mov qword [rbp - 0x59], rdx
cmp rdx, rdi
jae 0x7fffb6db8e44
mov r8d, dword [rbp - 0x19]
xor r11d, r11d
mov rax, qword [rbp - 0x41]
mov r9, qword [rbp - 0x49]
jmp 0x7fffb6db8d89
xor r15d, r15d
test rsi, rsi
je 0x7fffb6db8bb9
mov qword [rsi], rdi
jmp 0x7fffb6db8bb9