Function at 0x1801557a0
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 0x20], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
mov r14, qword [0x1802eec40]
mov r13, rdx
mov qword [rsp + 0x68], r14
mov rsi, rcx
test rdx, rdx
jne 0x1801557ea
mov r13, 0xffffffffffffffff
nop word [rax + rax]
inc r13
cmp byte [rcx + r13], 0
jne 0x1801557e0
mov ecx, dword [r14 + 0x60a4]
lea ebx, [r13 + 1]
cmp ebx, ecx
jle 0x180155820
test ecx, ecx
je 0x180155808
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x18015580d
mov eax, 8
cmp eax, ebx
lea rcx, [r14 + 0x60a0]
mov edx, ebx
cmovg edx, eax
call fcn.180167950
mov dword [r14 + 0x60a0], ebx
mov r8, r13
mov r15, qword [r14 + 0x60a8]
mov rdx, rsi
mov rcx, r15
mov qword [rsp + 0x70], r15
lea r12, [r15 + r13]
call sub.VCRUNTIME140.dll_memcpy
mov byte [r12], 0
mov rbx, qword [r14 + 0x60b8]
movsxd rax, dword [r14 + 0x60b0]
lea rcx, [rax + rax*8]
lea rdi, [rbx + rcx*8]
cmp rbx, rdi
je 0x18015587f
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x180155876
mov rdx, rbx
mov rcx, r14
call rax
add rbx, 0x48
cmp rbx, rdi
jne 0x180155865
xor ebp, ebp
xor ebx, ebx
mov rcx, r15
cmp r15, r12
jae 0x1801559d9
nop
movzx eax, byte [rcx]
cmp al, 0xa
je 0x180155a88
cmp al, 0xd
je 0x180155a88
mov rdi, rcx
cmp rcx, r12
jae 0x1801558c3
nop dword [rax + rax]
movzx eax, byte [rdi]
cmp al, 0xa
je 0x1801558c3
cmp al, 0xd
je 0x1801558c3
inc rdi
cmp rdi, r12
jb 0x1801558b0
mov byte [rdi], 0
movzx eax, byte [rcx]
cmp al, 0x3b
je 0x1801559c2
cmp al, 0x5b
jne 0x180155a62
cmp rdi, rcx
jbe 0x180155a62
cmp byte [rdi - 1], 0x5d
lea rsi, [rdi - 1]
jne 0x180155a62
lea r14, [rcx + 1]
mov byte [rsi], 0
mov r8, rsi
mov rcx, r14
sub r8, r14
mov edx, 0x5d
call sub.VCRUNTIME140.dll_memchr
mov r15, rax
test rax, rax
je 0x1801559bd
lea rcx, [rax + 1]
mov edx, 0x5b
sub rsi, rcx
mov r8, rsi
call sub.VCRUNTIME140.dll_memchr
mov r11, rax
test rax, rax
je 0x1801559bd
mov byte [r15], 0
lea r8, [r14 + 1]
movzx r9d, byte [r14]
mov esi, 0xffffffff
mov r10, qword [0x1802eec40]
mov ecx, esi
test r9b, r9b
je 0x18015598a
cmp r9b, 0x23
jne 0x180155967
cmp byte [r8], r9b
jne 0x180155967
cmp byte [r8 + 1], r9b
cmove ecx, esi
movzx edx, cl
movzx eax, r9b
movzx r9d, byte [r8]
xor rdx, rax
shr ecx, 8
lea rax, [0x18022d4c0]
inc r8
xor ecx, dword [rax + rdx*4]
test r9b, r9b
jne 0x180155955
movsxd rax, dword [r10 + 0x60b0]
not ecx
mov rbx, qword [r10 + 0x60b8]
lea rdx, [rax + rax*8]
lea rax, [rbx + rdx*8]
cmp rbx, rax
je 0x1801559b9
cmp dword [rbx + 8], ecx
je 0x180155a3f
add rbx, 0x48
cmp rbx, rax
jne 0x1801559a7
xor ebx, ebx
xor ebp, ebp
mov r14, qword [rsp + 0x68]
lea rcx, [rdi + 1]
cmp rcx, r12
jb 0x180155890
mov rsi, qword [rsp + 0x60]
mov r15, qword [rsp + 0x70]
mov r8, r13
mov byte [r14 + 0x6098], 1
mov rdx, rsi
mov rcx, r15
call sub.VCRUNTIME140.dll_memcpy
mov rbx, qword [r14 + 0x60b8]
movsxd rax, dword [r14 + 0x60b0]
lea rcx, [rax + rax*8]
lea rdi, [rbx + rcx*8]
cmp rbx, rdi
je 0x180155a2a
nop word [rax + rax]
mov rax, qword [rbx + 0x30]
test rax, rax
je 0x180155a21
mov rdx, rbx
mov rcx, r14
call rax
add rbx, 0x48
cmp rbx, rdi
jne 0x180155a10
mov rbx, qword [rsp + 0x78]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
test rbx, rbx
je 0x1801559bb
mov r14, qword [rsp + 0x68]
lea r8, [r11 + 1]
mov rcx, r14
mov rdx, rbx
call qword [rbx + 0x20]
mov rbp, rax
jmp 0x1801559c2
test rbx, rbx
je 0x1801559c2
test rbp, rbp
je 0x1801559c2
mov r9, rcx
mov r8, rbp
mov rcx, r14
mov rdx, rbx
call qword [rbx + 0x28]
jmp 0x1801559c2
inc rcx
jmp 0x180155890