Function at 0x14002b280
Capabilities:
Hash data with crc32

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov r15, rdx
mov rsi, rcx
mov r13, qword [0x1406deb70]
test rdx, rdx
jne 0x14002b2cf
mov eax, dword [0x1406df918]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
sete cl
cmp dword [0x1406df91c], 0xa
setl al
or al, cl
test al, al
je 0x14002b2c0
mov rcx, rsi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
mov r15, rax
lea r14d, [r15 + 1]
mov ebp, dword [r13 + 0x5384]
cmp ebp, r14d
jge 0x14002b337
mov eax, dword [0x1406dec50]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
sete al
cmp dword [0x1406dec54], 0xa
lea rcx, [r13 + 0x5380]
setl bl
or bl, al
mov eax, ebp
shr eax, 0x1f
add eax, ebp
sar eax, 1
add eax, ebp
mov edi, 8
nop word cs:[rax + rax]
nop
test ebp, ebp
mov edx, eax
cmove edx, edi
test bl, bl
je 0x14002b320
cmp edx, r14d
cmovle edx, r14d
call fcn.140004800
mov dword [r13 + 0x5380], r14d
mov rdi, qword [r13 + 0x5388]
mov rcx, rdi
mov qword [rsp + 0x48], rsi
mov rdx, rsi
mov r8, r15
call sub.VCRUNTIME140.dll_memcpy
mov qword [rsp + 0x28], rdi
mov byte [rdi + r15], 0
cmp dword [r13 + 0x5390], 0
jle 0x14002b468
mov eax, dword [0x1406df918]
mov ecx, dword [0x1406df91c]
xor esi, esi
nop
lea edx, [rax - 1]
imul edx, eax
and edx, 1
sete r8b
cmp ecx, 0xa
setl bl
or bl, r8b
nop word cs:[rax + rax]
test bl, bl
je 0x14002b3a0
mov r14, qword [r13 + 0x5398]
lea rbp, [rsi + rsi*8]
mov rdi, qword [r14 + rbp*8 + 0x18]
test rdi, rdi
je 0x14002b440
lea rdx, [r14 + rbp*8]
mov rcx, r13
call rdi
mov eax, dword [0x1406df918]
mov ecx, dword [0x1406df91c]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
cmp ecx, 0xa
jl 0x14002b440
test edx, edx
je 0x14002b440
lea rbp, [r14 + rbp*8]
add rbp, 0x18
nop dword [rax]
lea rax, [rsi*8]
lea rdi, [rax + rax*8]
mov rdx, qword [r13 + 0x5398]
add rdx, rdi
mov rcx, r13
call qword [rbp]
add rdi, qword [r13 + 0x5398]
mov rcx, r13
mov rdx, rdi
call qword [rbp]
mov eax, dword [0x1406df918]
mov ecx, dword [0x1406df91c]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
cmp ecx, 0xa
jl 0x14002b440
test edx, edx
jne 0x14002b3f0
nop word [rax + rax]
test edx, edx
sete bl
cmp ecx, 0xa
setl dl
or dl, bl
nop dword [rax]
test dl, dl
je 0x14002b450
add rsi, 1
movsxd rdx, dword [r13 + 0x5390]
cmp rsi, rdx
jl 0x14002b380
mov qword [rsp + 0x30], r15
test r15, r15
jle 0x14002b738
mov rax, qword [rsp + 0x30]
mov r14, qword [rsp + 0x28]
lea rsi, [r14 + rax]
add rax, r14
add rax, 0xffffffffffffffff
mov qword [rsp + 0x50], rax
xor r11d, r11d
mov r12d, 0xffffffff
lea rbp, section..rdata
xor edx, edx
mov qword [rsp + 0x20], rsi
jmp 0x14002b4c2
xor edx, edx
xor r11d, r11d
nop
mov rsi, qword [rsp + 0x20]
add r14, 1
cmp r14, rsi
jae 0x14002b738
lea r15, [r14 + 3]
mov r8, r14
mov rbx, r14
jmp 0x14002b4dc
add rbx, 1
add r8, 1
add r15, 1
movzx eax, byte [rbx]
cmp al, 0xa
je 0x14002b4d0
cmp al, 0xd
je 0x14002b4d0
mov r14, rbx
cmp rbx, rsi
jae 0x14002b530
mov rcx, rsi
sub rcx, r8
add rcx, rbx
mov rdi, qword [rsp + 0x50]
mov r14, rbx
cmp al, 0xa
je 0x14002b530
nop word cs:[rax + rax]
nop
cmp al, 0xd
je 0x14002b530
cmp r8, rdi
je 0x14002b52c
movzx eax, byte [r14 + 1]
add r14, 1
add rdi, 0xffffffffffffffff
cmp al, 0xa
jne 0x14002b510
jmp 0x14002b530
mov r14, rcx
nop
mov byte [r14], 0
cmp dword [0x1406df91c], 0xa
jl 0x14002b54e
mov eax, dword [0x1406df918]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x14002b530
mov al, byte [rbx]
cmp al, 0x3b
je 0x14002b4b5
cmp al, 0x5b
jne 0x14002b5e0
cmp r14, rbx
jbe 0x14002b5e0
cmp byte [r14 - 1], 0x5d
jne 0x14002b5e0
mov qword [rsp + 0x38], r11
mov qword [rsp + 0x40], rdx
lea rsi, [r14 - 1]
mov byte [rsi], 0
add rbx, 1
not r8
add r8, rsi
mov rcx, rbx
mov edx, 0x5d
call sub.VCRUNTIME140.dll_memchr
mov rdi, rax
test rax, rax
je 0x14002b60f
mov eax, dword [0x1406df918]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
sete cl
cmp dword [0x1406df91c], 0xa
setl al
or al, cl
nop
test al, al
je 0x14002b5c0
lea rcx, [rdi + 1]
sub rsi, rcx
mov edx, 0x5b
mov r8, rsi
call sub.VCRUNTIME140.dll_memchr
jmp 0x14002b611
test rdx, rdx
je 0x14002b4b5
test r11, r11
je 0x14002b4b5
mov rcx, r13
mov r8, r11
mov r9, rbx
mov rsi, rdx
mov rdi, r11
call qword [rdx + Ordinal_41]
mov r11, rdi
mov rdx, rsi
jmp 0x14002b4b0
xor eax, eax
mov rsi, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x40]
mov r11, qword [rsp + 0x38]
test rdi, rdi
je 0x14002b4b5
test rax, rax
je 0x14002b4b5
mov byte [rdi], 0
add rax, 1
mov ecx, dword [0x1406df8f8]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
sete cl
cmp dword [0x1406df8fc], 0xa
mov r8, qword [0x1406deb70]
setl r9b
or r9b, cl
mov r10b, byte [rbx]
jmp 0x14002b67a
mov ecx, 0xffffffff
test r9b, r9b
jne 0x14002b6cb
test r10b, r10b
je 0x14002b670
mov edx, 0xffffffff
mov rdi, r15
mov ebx, r10d
jmp 0x14002b6af
movzx esi, bl
mov ecx, edx
shr ecx, 8
movzx edx, dl
xor edx, esi
xor ecx, dword [rbp + rdx*4]
add rdi, 1
mov ebx, r11d
mov edx, ecx
test r11b, r11b
je 0x14002b675
movzx r11d, byte [rdi - 1]
cmp bl, 0x23
jne 0x14002b690
cmp r11b, 0x23
jne 0x14002b690
cmp byte [rdi], 0x23
cmove edx, r12d
mov r11b, reloc.WLDAP32.dll_Ordinal_35
jmp 0x14002b690
mov r10d, dword [r8 + 0x5390]
test r10d, r10d
jle 0x14002b4a9
not ecx
mov r9, qword [r8 + 0x5398]
xor ebx, ebx
mov rsi, qword [rsp + 0x20]
nop dword [rax + rax]
movsxd rdi, ebx
lea rdi, [rdi + rdi*8]
cmp dword [r9 + rdi*8 + 8], ecx
je 0x14002b716
add ebx, 1
mov edx, 0
mov r11d, 0
cmp r10d, ebx
jne 0x14002b6f0
jmp 0x14002b4b5
lea rsi, [r9 + rdi*8]
mov rcx, r13
mov rdx, rsi
mov r8, rax
call qword [r9 + rdi*8 + reloc.WLDAP32.dll_Ordinal_32]
mov rdx, rsi
mov rsi, qword [rsp + 0x20]
mov r11, rax
jmp 0x14002b4b5
mov byte [r13 + 0x5379], 1
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x48]
mov r8, qword [rsp + 0x30]
call sub.VCRUNTIME140.dll_memcpy
mov r8d, dword [r13 + 0x5390]
test r8d, r8d
jle 0x14002b7c7
mov ecx, dword [0x1406df918]
mov edx, dword [0x1406df91c]
xor edi, edi
jmp 0x14002b77c
add rdi, 1
movsxd rax, r8d
cmp rdi, rax
jge 0x14002b7c7
lea eax, [rcx - 1]
imul eax, ecx
test al, 1
sete bl
cmp edx, 0xa
setl al
or al, bl
nop
test al, al
je 0x14002b790
mov rbx, qword [r13 + 0x5398]
lea rax, [rdi + rdi*8]
mov rbp, qword [rbx + rax*8 + 0x30]
test rbp, rbp
je 0x14002b770
lea rdx, [rbx + rax*8]
mov rcx, r13
call rbp
mov ecx, dword [0x1406df918]
mov edx, dword [0x1406df91c]
mov r8d, dword [r13 + 0x5390]
jmp 0x14002b770
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret