Function at 0x18004a190
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.18004a950
cmp eax, 0xffffffff
je 0x18004a1c7
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 0x18004a243
inc edi
test ecx, ecx
je 0x18004a1ff
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x18004a202
mov eax, r15d
cmp eax, edi
cmovg edi, eax
cmp edi, ecx
jle 0x18004a243
movsxd rcx, edi
shl rcx, 2
call fcn.18001ede0
mov rdx, qword [rbx + 0x28]
mov rbp, rax
test rdx, rdx
je 0x18004a23c
movsxd r8, dword [rbx + 0x20]
mov rcx, rax
shl r8, 2
call fcn.180071210
mov rcx, qword [rbx + 0x28]
call fcn.18001ee80
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.180032530
mov edi, dword [rbx]
mov r13, qword [rsp + 0x60]
add edi, esi
cmp edi, dword [rbx + 4]
jle 0x18004a2a5
movsxd rcx, edi
shl rcx, 2
call fcn.18001ede0
mov rdx, qword [rbx + 8]
mov rbp, rax
test rdx, rdx
je 0x18004a29e
movsxd r8, dword [rbx]
mov rcx, rax
shl r8, 2
call fcn.180071210
mov rcx, qword [rbx + 8]
call fcn.18001ee80
mov qword [rbx + 8], rbp
mov dword [rbx + 4], edi
test esi, esi
jle 0x18004a326
mov rbp, rsi
nop dword [rax]
mov ecx, dword [rbx + 4]
mov edi, dword [rbx]
cmp edi, ecx
jne 0x18004a30d
inc edi
test ecx, ecx
je 0x18004a2ca
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x18004a2cd
mov eax, r15d
cmp eax, edi
cmovg edi, eax
cmp edi, ecx
jle 0x18004a30d
movsxd rcx, edi
shl rcx, 2
call fcn.18001ede0
mov rdx, qword [rbx + 8]
mov rsi, rax
test rdx, rdx
je 0x18004a306
movsxd r8, dword [rbx]
mov rcx, rax
shl r8, 2
call fcn.180071210
mov rcx, qword [rbx + 8]
call fcn.18001ee80
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 0x18004a2b0
mov eax, dword [rbx + 0x60]
xor ecx, ecx
mov edi, dword [rbx + 0x70]
test eax, eax
lea ebp, [rax - 1]
cmove ebp, ecx
mov ecx, dword [rbx + 0x74]
cmp edi, ecx
jne 0x18004a392
inc edi
test ecx, ecx
je 0x18004a34e
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x18004a351
mov eax, r15d
cmp eax, edi
cmovg edi, eax
cmp edi, ecx
jle 0x18004a392
movsxd rcx, edi
shl rcx, 2
call fcn.18001ede0
mov rdx, qword [rbx + 0x78]
mov rsi, rax
test rdx, rdx
je 0x18004a38b
movsxd r8, dword [rbx + 0x70]
mov rcx, rax
shl r8, 2
call fcn.180071210
mov rcx, qword [rbx + 0x78]
call fcn.18001ee80
mov qword [rbx + 0x78], rsi
mov dword [rbx + 0x74], edi
movsxd rcx, dword [rbx + 0x70]
mov rax, qword [rbx + 0x78]
mov dword [rax + rcx*4], ebp
mov rax, 0xffffffffffffffff
inc dword [rbx + 0x70]
mov rbp, qword [rsp + 0x50]
nop dword [rax]
inc rax
cmp byte [r12 + rax], 0
jne 0x18004a3b0
lea r8, [r12 + 1]
mov rdx, r12
add r8, rax
lea rcx, [rbx + 0x60]
call fcn.18001c470
mov ecx, dword [rbx + 0x84]
mov edi, dword [rbx + 0x80]
cmp edi, ecx
jne 0x18004a439
inc edi
test ecx, ecx
je 0x18004a3ef
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
lea r15d, [rcx + rax]
cmp r15d, edi
cmovg edi, r15d
cmp edi, ecx
jle 0x18004a439
movsxd rcx, edi
call fcn.18001ede0
mov rdx, qword [rbx + 0x88]
mov rsi, rax
test rdx, rdx
je 0x18004a42c
movsxd r8, dword [rbx + 0x80]
mov rcx, rax
call fcn.180071210
mov rcx, qword [rbx + 0x88]
call fcn.18001ee80
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 0x18004a4b0
lea r11, [0x1800d1360]
nop dword [rax]
cmp r9b, 0x23
jne 0x18004a493
cmp byte [r8], r9b
jne 0x18004a493
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 0x18004a480
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.18001c3d0
mov edx, edi
mov rcx, rbx
call fcn.18004a4f0
mov eax, edi
mov rdi, qword [rsp + 0x58]
add rsp, 0x28
pop r14
pop r12
pop rsi
pop rbx
ret