Function at 0x180055b10
Capabilities:
Hash data with crc32

Disassembly:
push rbx
push r12
push r14
push r15
sub rsp, 0x38
movsxd r15, r9d
mov r12, r8
mov r14, rdx
mov rbx, rcx
call fcn.180056150
cmp eax, 0xffffffff
je 0x180055b45
mov rax, 0xffffffffffffffff
add rsp, 0x38
pop r15
pop r14
pop r12
pop rbx
ret
mov ecx, dword [rbx + 0x24]
mov r8d, dword [rbx + 0x20]
mov qword [rsp + 0x70], rbp
mov ebp, dword [rbx]
mov qword [rsp + 0x30], rsi
mov esi, 8
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], r13
cmp r8d, ecx
jne 0x180055b93
inc r8d
test ecx, ecx
je 0x180055b7e
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x180055b80
mov eax, esi
cmp eax, r8d
lea rcx, [rbx + 0x20]
cmovg r8d, eax
mov edx, r8d
call fcn.180023d50
movsxd rcx, dword [rbx + 0x20]
mov rax, qword [rbx + 0x28]
mov dword [rax + rcx*4], ebp
inc dword [rbx + 0x20]
mov ecx, dword [rbx + 0x14]
mov r8d, dword [rbx + 0x10]
cmp r8d, ecx
jne 0x180055bd4
inc r8d
test ecx, ecx
je 0x180055bbf
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x180055bc1
mov eax, esi
cmp eax, r8d
lea rcx, [rbx + 0x10]
cmovg r8d, eax
mov edx, r8d
call fcn.180023d50
movsxd rcx, dword [rbx + 0x10]
mov rax, qword [rbx + 0x18]
mov dword [rax + rcx*4], r15d
mov rcx, rbx
inc dword [rbx + 0x10]
mov edx, dword [rbx]
add edx, r15d
call fcn.180023d50
xor r13d, r13d
test r15d, r15d
jle 0x180055c49
mov edi, r13d
nop dword [rax + rax]
mov ecx, dword [rbx + 4]
mov r8d, dword [rbx]
cmp r8d, ecx
jne 0x180055c31
inc r8d
test ecx, ecx
je 0x180055c1d
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x180055c1f
mov eax, esi
cmp eax, r8d
mov rcx, rbx
cmovg r8d, eax
mov edx, r8d
call fcn.180023d50
mov eax, dword [r12 + rdi*4]
inc rdi
movsxd rdx, dword [rbx]
mov rcx, qword [rbx + 8]
mov dword [rcx + rdx*4], eax
inc dword [rbx]
cmp rdi, r15
jl 0x180055c00
mov eax, dword [rbx + 0x60]
test eax, eax
mov ecx, dword [rbx + 0x74]
mov r8d, dword [rbx + 0x70]
lea ebp, [rax - 1]
cmove ebp, r13d
cmp r8d, ecx
jne 0x180055c88
inc r8d
test ecx, ecx
je 0x180055c73
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x180055c75
mov eax, esi
cmp eax, r8d
lea rcx, [rbx + 0x70]
cmovg r8d, eax
mov edx, r8d
call fcn.180023d50
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 + 0x70]
inc rax
cmp byte [r14 + rax], r13b
jne 0x180055ca2
lea r8, [r14 + 1]
mov rdx, r14
add r8, rax
lea rcx, [rbx + 0x60]
call fcn.180009f10
mov ecx, dword [rbx + 0x84]
mov edi, dword [rbx + 0x80]
cmp edi, ecx
jne 0x180055da7
inc edi
test ecx, ecx
je 0x180055ce2
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
lea esi, [rcx + rax]
cmp esi, edi
cmovg edi, esi
cmp edi, ecx
jle 0x180055da7
movsxd rcx, edi
call fcn.18000d510
mov rdx, qword [rbx + 0x88]
mov rsi, rax
test rdx, rdx
je 0x180055d9a
movsxd r8, dword [rbx + 0x80]
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov r9, qword [rbx + 0x88]
test r9, r9
je 0x180055d91
mov r8, qword [0x180110b28]
test r8, r8
je 0x180055d91
movsx rdx, word [r8 + 0x60e8]
lea rcx, [r8 + 0x60ec]
mov r10d, dword [r8 + 0x3f68]
lea rcx, [rcx + rdx*8]
cmp dword [rcx], r10d
je 0x180055d86
lea ecx, [rdx + 1]
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
mov word [r8 + 0x60e8], cx
movsx rax, cx
lea rcx, [r8 + 0x60ec]
lea rcx, [rcx + rax*8]
mov dword [rcx], r10d
mov dword [rcx + 4], r13d
inc word [rcx + 6]
inc dword [r8 + 0x60e4]
mov rcx, r9
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [rbx + 0x88], rsi
mov dword [rbx + 0x84], edi
movsxd rdx, dword [rbx + 0x80]
lea r8, [r14 + 1]
mov rcx, qword [rbx + 0x88]
mov r10d, 0xffffffff
movzx eax, byte [rsp + 0x80]
mov r13, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x30]
mov byte [rdx + rcx], al
mov edx, r10d
inc dword [rbx + 0x80]
movzx r9d, byte [r14]
test r9b, r9b
je 0x180055e20
lea r11, [0x1800e0be0]
nop dword [rax]
cmp r9b, 0x23
jne 0x180055e03
cmp byte [r8], r9b
jne 0x180055e03
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 0x180055df0
mov edi, dword [rbx + 0xa0]
lea rcx, [rbx + 0x90]
not edx
lea r8d, [rdi + 1]
mov dword [rbx + 0xa0], r8d
mov r8d, edi
call fcn.180009e70
mov edx, edi
mov rcx, rbx
call fcn.180055e60
mov eax, edi
mov rdi, qword [rsp + 0x28]
add rsp, 0x38
pop r15
pop r14
pop r12
pop rbx
ret