Function at 0x14004bac0
Capabilities:
Hash data with crc32

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov r15, rdx
mov r14, rcx
mov rsi, qword [0x1402095c0]
test rdx, rdx
jne 0x14004baed
mov rcx, r14
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
mov r15, rax
lea edi, [r15 + 1]
mov eax, dword [rsi + 0x5c14]
cmp eax, r15d
jle 0x14004bb08
mov r12, qword [rsi + 0x5c18]
jmp 0x14004bb8f
test eax, eax
je 0x14004bb19
mov ebx, eax
shr ebx, 0x1f
add ebx, eax
sar ebx, 1
add ebx, eax
jmp 0x14004bb1e
mov ebx, 8
cmp ebx, edi
cmovle ebx, edi
movsxd rcx, ebx
inc dword [rsi + 0xf4]
mov rdx, qword [0x1402095d0]
call qword [0x1401eb348]
mov r12, rax
mov rdx, qword [rsi + 0x5c18]
test rdx, rdx
je 0x14004bb82
movsxd r8, dword [rsi + 0x5c10]
mov rcx, r12
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rsi + 0x5c18]
test rcx, rcx
je 0x14004bb75
mov rax, qword [0x1402095c0]
test rax, rax
je 0x14004bb75
dec dword [rax + 0xf4]
mov rdx, qword [0x1402095d0]
call qword [0x1401eb350]
mov qword [rsi + 0x5c18], r12
mov dword [rsi + 0x5c14], ebx
mov dword [rsi + 0x5c10], edi
mov rcx, r12
mov rdx, r14
mov r8, r15
call sub.VCRUNTIME140.dll_memcpy
mov byte [r12 + r15], 0
mov eax, dword [rsi + 0x5c20]
test eax, eax
jle 0x14004bbf1
xor edi, edi
xor ebx, ebx
jmp 0x14004bbcf
inc rbx
movsxd rcx, eax
add rdi, 0x48
cmp rbx, rcx
jge 0x14004bbf1
mov rdx, qword [rsi + 0x5c28]
mov r8, qword [rdx + rdi + 0x18]
test r8, r8
je 0x14004bbc0
add rdx, rdi
mov rcx, rsi
call r8
mov eax, dword [rsi + 0x5c20]
jmp 0x14004bbc0
mov qword [rsp + 0x20], r12
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], r15
test r15, r15
jle 0x14004be0b
mov rax, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x20]
lea rdi, [rbx + rax]
xor r15d, r15d
xor r12d, r12d
jmp 0x14004bc3c
xor r12d, r12d
xor r15d, r15d
nop word cs:[rax + rax]
inc rbx
cmp rbx, rdi
jae 0x14004be0b
lea rax, [rbx + 2]
lea rcx, [rbx + 1]
lea r14, [rbx + 3]
mov r13, rbx
jmp 0x14004bc5c
inc r13
inc rax
inc rcx
inc r14
movzx edx, byte [r13]
cmp edx, 0xa
je 0x14004bc50
cmp edx, 0xd
je 0x14004bc50
mov rbx, r13
cmp r13, rdi
jae 0x14004bca3
nop word cs:[rax + rax]
cmp dl, 0xa
je 0x14004bc9d
movzx edx, dl
cmp edx, 0xd
je 0x14004bc9d
cmp rcx, rdi
jae 0x14004bca0
movzx edx, byte [rcx]
inc rcx
cmp dl, 0xa
jne 0x14004bc85
dec rcx
mov rbx, rcx
mov byte [rbx], 0
movzx ecx, byte [r13]
cmp ecx, 0x3b
je 0x14004bc30
cmp ecx, 0x5b
jne 0x14004bd80
cmp rbx, r13
jbe 0x14004bd80
cmp byte [rbx - 1], 0x5d
jne 0x14004bd80
mov byte [rbx - 1], 0
inc r13
mov r8, rbx
sub r8, rax
mov rcx, r13
mov edx, 0x5d
call sub.VCRUNTIME140.dll_memchr
test rax, rax
je 0x14004bc30
mov rbp, rax
lea r8, [rbx - 1]
lea rcx, [rax + 1]
sub r8, rcx
mov edx, 0x5b
call sub.VCRUNTIME140.dll_memchr
test rax, rax
je 0x14004bc30
mov byte [rbp], 0
movzx edx, byte [r13]
test dl, dl
je 0x14004bdac
mov ecx, 0xffffffff
mov r10d, 0xffffffff
lea r11, [0x140110980]
jmp 0x14004bd59
movzx r8d, r8b
movzx r9d, cl
shr ecx, 8
xor r9d, r8d
xor ecx, dword [r11 + r9*4]
inc r14
test dl, dl
je 0x14004bda8
mov r8d, edx
movzx edx, byte [r14 - 1]
cmp r8b, 0x23
jne 0x14004bd40
cmp dl, 0x23
jne 0x14004bd40
cmp byte [r14], 0x23
cmove ecx, r10d
jmp 0x14004bd40
test r12, r12
je 0x14004bc30
test r15, r15
je 0x14004bc30
mov rcx, rsi
mov rdx, r12
mov r8, r15
mov r9, r13
call qword [r12 + 0x28]
jmp 0x14004bc30
not ecx
jmp 0x14004bdae
xor ecx, ecx
mov r8, qword [0x1402095c0]
mov edx, dword [r8 + 0x5c20]
test edx, edx
jle 0x14004bc1f
mov r13, qword [r8 + 0x5c28]
nop dword [rax + rax]
cmp dword [r13 + 8], ecx
je 0x14004bdf0
add r13, 0x48
mov r12d, 0
mov r15d, 0
dec rdx
jne 0x14004bdd0
jmp 0x14004bc30
inc rax
mov rcx, rsi
mov rdx, r13
mov r8, rax
call qword [r13 + 0x20]
mov r15, rax
mov r12, r13
jmp 0x14004bc30
mov byte [rsi + 0x5c09], 1
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x30]
mov r8, qword [rsp + 0x28]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [rsi + 0x5c20]
test eax, eax
jle 0x14004be71
xor edi, edi
xor ebx, ebx
jmp 0x14004be4f
inc rbx
movsxd rcx, eax
add rdi, 0x48
cmp rbx, rcx
jge 0x14004be71
mov rdx, qword [rsi + 0x5c28]
mov r8, qword [rdx + rdi + 0x30]
test r8, r8
je 0x14004be40
add rdx, rdi
mov rcx, rsi
call r8
mov eax, dword [rsi + 0x5c20]
jmp 0x14004be40
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret