Function at 0x14003b330
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 [0x140597530]
test rdx, rdx
jne 0x14003b35d
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 + 0x5b7c]
cmp eax, r12d
jg 0x14003b3fc
test eax, eax
je 0x14003b382
mov ebx, eax
shr ebx, 0x1f
add ebx, eax
sar ebx, 1
add ebx, eax
jmp 0x14003b387
mov ebx, 8
cmp ebx, edi
cmovle ebx, edi
cmp eax, ebx
jge 0x14003b3fc
movsxd rcx, ebx
inc dword [rsi + 0xf4]
mov rdx, qword [0x140597540]
call qword [0x1401ab6a8]
mov r14, rax
mov rdx, qword [rsi + 0x5b80]
test rdx, rdx
je 0x14003b3ef
movsxd r8, dword [rsi + 0x5b78]
mov rcx, r14
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rsi + 0x5b80]
test rcx, rcx
je 0x14003b3e2
mov rax, qword [0x140597530]
test rax, rax
je 0x14003b3e2
dec dword [rax + 0xf4]
mov rdx, qword [0x140597540]
call qword [0x1401ab6b0]
mov qword [rsi + 0x5b80], r14
mov dword [rsi + 0x5b7c], ebx
mov dword [rsi + 0x5b78], edi
mov rdi, qword [rsi + 0x5b80]
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 + 0x5b88]
test eax, eax
jle 0x14003b471
xor edi, edi
xor ebx, ebx
jmp 0x14003b44f
inc rbx
movsxd rcx, eax
add rdi, 0x48
cmp rbx, rcx
jge 0x14003b471
mov rdx, qword [rsi + 0x5b90]
mov r8, qword [rdx + rdi + 0x18]
test r8, r8
je 0x14003b440
add rdx, rdi
mov rcx, rsi
call r8
mov eax, dword [rsi + 0x5b88]
jmp 0x14003b440
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], r12
test r12, r12
jle 0x14003b67b
mov rax, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x20]
lea rdi, [rbx + rax]
xor r15d, r15d
xor r12d, r12d
jmp 0x14003b4ac
xor r12d, r12d
xor r15d, r15d
inc rbx
cmp rbx, rdi
jae 0x14003b67b
lea rax, [rbx + 2]
lea rcx, [rbx + 1]
lea r14, [rbx + 3]
mov r13, rbx
jmp 0x14003b4cc
inc r13
inc rax
inc rcx
inc r14
movzx edx, byte [r13]
cmp edx, 0xa
je 0x14003b4c0
cmp edx, 0xd
je 0x14003b4c0
mov rbx, r13
cmp r13, rdi
jae 0x14003b513
nop word cs:[rax + rax]
cmp dl, 0xa
je 0x14003b50d
movzx edx, dl
cmp edx, 0xd
je 0x14003b50d
cmp rcx, rdi
jae 0x14003b510
movzx edx, byte [rcx]
inc rcx
cmp dl, 0xa
jne 0x14003b4f5
dec rcx
mov rbx, rcx
mov byte [rbx], 0
movzx ecx, byte [r13]
cmp ecx, 0x3b
je 0x14003b4a0
cmp ecx, 0x5b
jne 0x14003b5f0
cmp rbx, r13
jbe 0x14003b5f0
cmp byte [rbx - 1], 0x5d
jne 0x14003b5f0
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 0x14003b4a0
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 0x14003b4a0
mov byte [rbp], 0
movzx edx, byte [r13]
test dl, dl
je 0x14003b61c
mov ecx, 0xffffffff
mov r10d, 0xffffffff
lea r11, [0x140166ca0]
jmp 0x14003b5cc
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 0x14003b618
movzx r8d, byte [r14 - 1]
cmp dl, 0x23
jne 0x14003b5b0
cmp r8b, 0x23
jne 0x14003b5b0
cmp byte [r14], 0x23
cmove ecx, r10d
mov r8b, reloc.WLDAP32.dll_Ordinal_35
jmp 0x14003b5b0
test r12, r12
je 0x14003b4a0
test r15, r15
je 0x14003b4a0
mov rcx, rsi
mov rdx, r12
mov r8, r15
mov r9, r13
call qword [r12 + Ordinal_41]
jmp 0x14003b4a0
not ecx
jmp 0x14003b61e
xor ecx, ecx
mov r8, qword [0x140597530]
mov edx, dword [r8 + 0x5b88]
test edx, edx
jle 0x14003b49a
mov r13, qword [r8 + 0x5b90]
nop dword [rax + rax]
cmp dword [r13 + 8], ecx
je 0x14003b660
add r13, 0x48
mov r12d, 0
mov r15d, 0
dec rdx
jne 0x14003b640
jmp 0x14003b4a0
inc rax
mov rcx, rsi
mov rdx, r13
mov r8, rax
call qword [r13 + reloc.WLDAP32.dll_Ordinal_32]
mov r15, rax
mov r12, r13
jmp 0x14003b4a0
mov byte [rsi + 0x5b71], 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 + 0x5b88]
test eax, eax
jle 0x14003b6e1
xor edi, edi
xor ebx, ebx
jmp 0x14003b6bf
inc rbx
movsxd rcx, eax
add rdi, 0x48
cmp rbx, rcx
jge 0x14003b6e1
mov rdx, qword [rsi + 0x5b90]
mov r8, qword [rdx + rdi + 0x30]
test r8, r8
je 0x14003b6b0
add rdx, rdi
mov rcx, rsi
call r8
mov eax, dword [rsi + 0x5b88]
jmp 0x14003b6b0
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret