Function at 0x18007c120
Capabilities:
Hash data with crc32

Disassembly:
mov dword [rsp + 0x20], r9d
push rbx
push rsi
push r12
push r14
sub rsp, 0x28
mov esi, r9d
mov r14, r8
mov r12, rdx
mov rbx, rcx
call fcn.18007c8f0
cmp eax, 0xffffffff
je 0x18007c157
mov rax, 0xffffffffffffffff
add rsp, 0x28
pop r14
pop r12
pop rsi
pop rbx
ret
mov ecx, dword [rbx + 0x24]
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x58], rdi
mov edi, dword [rbx + 0x20]
mov qword [rsp + 0x60], r13
mov r13d, dword [rbx]
mov qword [rsp + 0x20], r15
mov r15d, 8
cmp edi, ecx
jne 0x18007c1d3
inc edi
test ecx, ecx
je 0x18007c18f
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x18007c192
mov eax, r15d
cmp eax, edi
cmovg edi, eax
cmp edi, ecx
jle 0x18007c1d3
movsxd rcx, edi
shl rcx, 2
call fcn.180039910
mov rdx, qword [rbx + 0x28]
mov rbp, rax
test rdx, rdx
je 0x18007c1cc
movsxd r8, dword [rbx + 0x20]
mov rcx, rax
shl r8, 2
call fcn.1800af870
mov rcx, qword [rbx + 0x28]
call fcn.1800399b0
mov qword [rbx + 0x28], rbp
mov dword [rbx + 0x24], edi
movsxd rcx, dword [rbx + 0x20]
lea rdx, [rsp + 0x68]
mov rax, qword [rbx + 0x28]
mov dword [rax + rcx*4], r13d
lea rcx, [rbx + 0x10]
inc dword [rbx + 0x20]
call fcn.18004e270
mov edi, dword [rbx]
mov r13, qword [rsp + 0x60]
add edi, esi
cmp edi, dword [rbx + 4]
jle 0x18007c235
movsxd rcx, edi
shl rcx, 2
call fcn.180039910
mov rdx, qword [rbx + 8]
mov rbp, rax
test rdx, rdx
je 0x18007c22e
movsxd r8, dword [rbx]
mov rcx, rax
shl r8, 2
call fcn.1800af870
mov rcx, qword [rbx + 8]
call fcn.1800399b0
mov qword [rbx + 8], rbp
mov dword [rbx + 4], edi
test esi, esi
jle 0x18007c2b6
mov rbp, rsi
nop dword [rax]
mov ecx, dword [rbx + 4]
mov edi, dword [rbx]
cmp edi, ecx
jne 0x18007c29d
inc edi
test ecx, ecx
je 0x18007c25a
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x18007c25d
mov eax, r15d
cmp eax, edi
cmovg edi, eax
cmp edi, ecx
jle 0x18007c29d
movsxd rcx, edi
shl rcx, 2
call fcn.180039910
mov rdx, qword [rbx + 8]
mov rsi, rax
test rdx, rdx
je 0x18007c296
movsxd r8, dword [rbx]
mov rcx, rax
shl r8, 2
call fcn.1800af870
mov rcx, qword [rbx + 8]
call fcn.1800399b0
mov qword [rbx + 8], rsi
mov dword [rbx + 4], edi
mov eax, dword [r14]
add r14, 4
movsxd rdx, dword [rbx]
mov rcx, qword [rbx + 8]
mov dword [rcx + rdx*4], eax
inc dword [rbx]
sub rbp, 1
jne 0x18007c240
mov eax, dword [rbx + 0x60]
xor ecx, ecx
mov edi, dword [rbx + 0x70]
test eax, eax
lea r14d, [rax - 1]
cmove r14d, ecx
mov ecx, dword [rbx + 0x74]
cmp edi, ecx
jne 0x18007c324
inc edi
test ecx, ecx
je 0x18007c2e0
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x18007c2e3
mov eax, r15d
cmp eax, edi
cmovg edi, eax
cmp edi, ecx
jle 0x18007c324
movsxd rcx, edi
shl rcx, 2
call fcn.180039910
mov rdx, qword [rbx + 0x78]
mov rbp, rax
test rdx, rdx
je 0x18007c31d
movsxd r8, dword [rbx + 0x70]
mov rcx, rax
shl r8, 2
call fcn.1800af870
mov rcx, qword [rbx + 0x78]
call fcn.1800399b0
mov qword [rbx + 0x78], rbp
mov dword [rbx + 0x74], edi
movsxd rcx, dword [rbx + 0x70]
mov rax, qword [rbx + 0x78]
mov rbp, qword [rsp + 0x50]
mov dword [rax + rcx*4], r14d
mov rax, 0xffffffffffffffff
inc dword [rbx + 0x70]
nop
inc rax
cmp byte [r12 + rax], 0
jne 0x18007c340
lea r8, [r12 + 1]
mov rdx, r12
add r8, rax
lea rcx, [rbx + 0x60]
call fcn.1800361c0
mov ecx, dword [rbx + 0x84]
mov edi, dword [rbx + 0x80]
cmp edi, ecx
jne 0x18007c3c9
inc edi
test ecx, ecx
je 0x18007c37f
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
lea r15d, [rcx + rax]
cmp r15d, edi
cmovg edi, r15d
cmp edi, ecx
jle 0x18007c3c9
movsxd rcx, edi
call fcn.180039910
mov rdx, qword [rbx + 0x88]
mov rsi, rax
test rdx, rdx
je 0x18007c3bc
movsxd r8, dword [rbx + 0x80]
mov rcx, rax
call fcn.1800af870
mov rcx, qword [rbx + 0x88]
call fcn.1800399b0
mov qword [rbx + 0x88], rsi
mov dword [rbx + 0x84], edi
movsxd rdx, dword [rbx + 0x80]
lea r8, [r12 + 1]
mov rcx, qword [rbx + 0x88]
mov r10d, 0xffffffff
movzx eax, byte [rsp + 0x70]
mov r15, qword [rsp + 0x20]
mov byte [rdx + rcx], al
mov edx, r10d
inc dword [rbx + 0x80]
movzx r9d, byte [r12]
test r9b, r9b
je 0x18007c440
lea r11, [0x1800e7720]
nop dword [rax]
cmp r9b, 0x23
jne 0x18007c423
cmp byte [r8], r9b
jne 0x18007c423
cmp byte [r8 + 1], r9b
cmove edx, r10d
movzx ecx, dl
movzx eax, r9b
movzx r9d, byte [r8]
xor rcx, rax
shr edx, 8
inc r8
xor edx, dword [r11 + rcx*4]
test r9b, r9b
jne 0x18007c410
mov edi, dword [rbx + 0xa0]
not edx
mov r8d, edi
lea ecx, [rdi + 1]
mov dword [rbx + 0xa0], ecx
lea rcx, [rbx + 0x90]
call fcn.180036120
mov edx, edi
mov rcx, rbx
call fcn.18007c480
mov eax, edi
mov rdi, qword [rsp + 0x58]
add rsp, 0x28
pop r14
pop r12
pop rsi
pop rbx
ret