Function at 0x14004b280
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 r12, rdx
mov r15, rcx
mov rsi, qword [0x1402055d0]
test rdx, rdx
jne 0x14004b2ad
mov rcx, r15
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
mov r12, rax
lea edi, [r12 + 1]
mov eax, dword [rsi + 0x5c14]
cmp eax, r12d
jg 0x14004b34c
test eax, eax
je 0x14004b2d2
mov ebx, eax
shr ebx, 0x1f
add ebx, eax
sar ebx, 1
add ebx, eax
jmp 0x14004b2d7
mov ebx, 8
cmp ebx, edi
cmovle ebx, edi
cmp eax, ebx
jge 0x14004b34c
movsxd rcx, ebx
inc dword [rsi + 0xf4]
mov rdx, qword [0x1402055e0]
call qword [0x1401e7378]
mov r14, rax
mov rdx, qword [rsi + 0x5c18]
test rdx, rdx
je 0x14004b33f
movsxd r8, dword [rsi + 0x5c10]
mov rcx, r14
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rsi + 0x5c18]
test rcx, rcx
je 0x14004b332
mov rax, qword [0x1402055d0]
test rax, rax
je 0x14004b332
dec dword [rax + 0xf4]
mov rdx, qword [0x1402055e0]
call qword [0x1401e7380]
mov qword [rsi + 0x5c18], r14
mov dword [rsi + 0x5c14], ebx
mov dword [rsi + 0x5c10], edi
mov rdi, qword [rsi + 0x5c18]
mov rcx, rdi
mov rdx, r15
mov r8, r12
call sub.VCRUNTIME140.dll_memcpy
mov qword [rsp + 0x20], rdi
mov byte [rdi + r12], 0
mov eax, dword [rsi + 0x5c20]
test eax, eax
jle 0x14004b3c1
xor edi, edi
xor ebx, ebx
jmp 0x14004b39f
inc rbx
movsxd rcx, eax
add rdi, 0x48
cmp rbx, rcx
jge 0x14004b3c1
mov rdx, qword [rsi + 0x5c28]
mov r8, qword [rdx + rdi + 0x18]
test r8, r8
je 0x14004b390
add rdx, rdi
mov rcx, rsi
call r8
mov eax, dword [rsi + 0x5c20]
jmp 0x14004b390
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], r12
test r12, r12
jle 0x14004b5cb
mov rax, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x20]
lea rdi, [rbx + rax]
xor r15d, r15d
xor r12d, r12d
jmp 0x14004b3fc
xor r12d, r12d
xor r15d, r15d
inc rbx
cmp rbx, rdi
jae 0x14004b5cb
lea rax, [rbx + 2]
lea rcx, [rbx + 1]
lea r14, [rbx + 3]
mov r13, rbx
jmp 0x14004b41c
inc r13
inc rax
inc rcx
inc r14
movzx edx, byte [r13]
cmp edx, 0xa
je 0x14004b410
cmp edx, 0xd
je 0x14004b410
mov rbx, r13
cmp r13, rdi
jae 0x14004b463
nop word cs:[rax + rax]
cmp dl, 0xa
je 0x14004b45d
movzx edx, dl
cmp edx, 0xd
je 0x14004b45d
cmp rcx, rdi
jae 0x14004b460
movzx edx, byte [rcx]
inc rcx
cmp dl, 0xa
jne 0x14004b445
dec rcx
mov rbx, rcx
mov byte [rbx], 0
movzx ecx, byte [r13]
cmp ecx, 0x3b
je 0x14004b3f0
cmp ecx, 0x5b
jne 0x14004b540
cmp rbx, r13
jbe 0x14004b540
cmp byte [rbx - 1], 0x5d
jne 0x14004b540
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 0x14004b3f0
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 0x14004b3f0
mov byte [rbp], 0
movzx edx, byte [r13]
test dl, dl
je 0x14004b56c
mov ecx, 0xffffffff
mov r10d, 0xffffffff
lea r11, [0x14010f370]
jmp 0x14004b51c
movzx edx, dl
movzx r9d, cl
shr ecx, 8
xor r9d, edx
xor ecx, dword [r11 + r9*4]
inc r14
mov edx, r8d
test r8b, r8b
je 0x14004b568
movzx r8d, byte [r14 - 1]
cmp dl, 0x23
jne 0x14004b500
cmp r8b, 0x23
jne 0x14004b500
cmp byte [r14], 0x23
cmove ecx, r10d
mov r8b, 0x23
jmp 0x14004b500
test r12, r12
je 0x14004b3f0
test r15, r15
je 0x14004b3f0
mov rcx, rsi
mov rdx, r12
mov r8, r15
mov r9, r13
call qword [r12 + 0x28]
jmp 0x14004b3f0
not ecx
jmp 0x14004b56e
xor ecx, ecx
mov r8, qword [0x1402055d0]
mov edx, dword [r8 + 0x5c20]
test edx, edx
jle 0x14004b3ea
mov r13, qword [r8 + 0x5c28]
nop dword [rax + rax]
cmp dword [r13 + 8], ecx
je 0x14004b5b0
add r13, 0x48
mov r12d, 0
mov r15d, 0
dec rdx
jne 0x14004b590
jmp 0x14004b3f0
inc rax
mov rcx, rsi
mov rdx, r13
mov r8, rax
call qword [r13 + 0x20]
mov r15, rax
mov r12, r13
jmp 0x14004b3f0
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 0x14004b631
xor edi, edi
xor ebx, ebx
jmp 0x14004b60f
inc rbx
movsxd rcx, eax
add rdi, 0x48
cmp rbx, rcx
jge 0x14004b631
mov rdx, qword [rsi + 0x5c28]
mov r8, qword [rdx + rdi + 0x30]
test r8, r8
je 0x14004b600
add rdx, rdi
mov rcx, rsi
call r8
mov eax, dword [rsi + 0x5c20]
jmp 0x14004b600
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret