Function at 0x140015120
Capabilities:
Hash data with crc32

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x20
mov rdi, r8
mov rbx, rdx
mov r12, rcx
add rcx, 8
xor ebp, ebp
mov r8d, 0x3f8
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov qword [r12], rbx
mov rcx, rdi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
mov rbx, rax
inc rbx
mov rdx, qword [0x1400c1660]
mov rcx, rbx
call qword [0x14007b350]
mov r15, rax
mov rax, qword [0x1400c1650]
test rax, rax
je 0x140015210
mov r8d, dword [rax + 0x3f58]
movsx rdx, word [rax + 0x60f0]
cmp dword [rax + rdx*8 + 0x60f4], r8d
jne 0x1400151b5
lea rdx, [rax + rdx*8]
add rdx, 0x60f4
cmp rbx, 0xffffffffffffffff
je 0x140015204
add rax, 0x60e8
inc word [rdx + 4]
jmp 0x14001520e
inc edx
movsxd rdx, edx
imul rcx, rdx, 0x2aaaaaab
mov r9, rcx
shr r9, 0x3f
shr rcx, 0x20
add ecx, r9d
add ecx, ecx
lea ecx, [rcx + rcx*2]
sub edx, ecx
mov word [rax + 0x60f0], dx
movsxd rcx, edx
lea rdx, [rax + rcx*8]
add rdx, 0x60f4
mov dword [rax + rcx*8 + 0x60f4], r8d
mov dword [rax + rcx*8 + 0x60f8], 0
cmp rbx, 0xffffffffffffffff
jne 0x1400151a9
inc word [rdx + 6]
add rax, 0x60ec
inc dword [rax]
lea r14, [r12 + 0x100]
mov rcx, r15
mov rdx, rdi
mov r8, rbx
call sub.VCRUNTIME140.dll_memcpy
mov qword [r12 + 8], r15
mov rcx, rdi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
inc eax
mov dword [r12 + 0x80], eax
movzx edx, byte [rdi]
test dl, dl
je 0x140015293
add rdi, 2
mov r8d, 0xffffffff
lea rcx, [0x140069980]
mov ebp, 0xffffffff
jmp 0x140015278
movzx edx, dl
movzx eax, bpl
shr ebp, 8
xor eax, edx
xor ebp, dword [rcx + rax*4]
inc rdi
mov edx, ebx
test bl, bl
je 0x140015291
movzx ebx, byte [rdi - 1]
cmp dl, 0x23
jne 0x140015260
cmp bl, 0x23
jne 0x140015260
cmp byte [rdi], 0x23
cmove ebp, r8d
mov bl, 0x23
jmp 0x140015260
not ebp
lea rdx, [r12 + 0x10]
mov dword [r12 + 0x10], ebp
mov rcx, r14
call fcn.14000f000
mov rax, qword [r12 + 0x108]
movsxd rcx, dword [r12 + 0x100]
mov eax, dword [rax + rcx*4 - 4]
not eax
mov bl, 0x23
lea rcx, [0x140075154]
lea rbp, [0x140069980]
mov edi, eax
jmp 0x1400152e9
movzx ebx, bl
movzx esi, dil
shr edi, 8
xor esi, ebx
xor edi, dword [rbp + rsi*4]
inc rcx
mov ebx, edx
test dl, dl
je 0x140015301
movzx edx, byte [rcx - 1]
cmp bl, 0x23
jne 0x1400152d0
cmp dl, 0x23
jne 0x1400152d0
cmp byte [rcx], 0x23
cmove edi, eax
mov dl, 0x23
jmp 0x1400152d0
not edi
mov rax, qword [r12]
cmp dword [rax + 0x404c], edi
jne 0x140015329
lea r8, str.MOVE
mov ecx, edi
mov edx, 0xb
xor r9d, r9d
call fcn.140016050
mov rax, qword [r12]
lea rcx, [r12 + 0x2b0]
mov dword [r12 + 0x84], edi
vmovaps xmm0, xmmword [0x14006aba0]
vmovups xmmword [r12 + 0x9c], xmm0
mov word [r12 + 0xdc], 0xffff
mov dword [r12 + 0xe0], 0xffffffff
movzx edx, byte [r12 + 0xeb]
shl edx, 0x18
mov dword [r12 + 0xe8], edx
vbroadcastss xmm0, dword [0x140069040]
vmovups xmmword [r12 + 0xec], xmm0
movabs rdx, 0xbf800000ffffffff
mov qword [r12 + 0x270], rdx
movabs rdx, 0xffffffff3f800000
mov qword [r12 + 0x2a0], rdx
mov qword [r12 + 0x2a8], rcx
add rax, 0x3d40
mov qword [r12 + 0x2e8], rax
mov rax, qword [r12 + 8]
mov qword [r12 + 0x2f0], rax
vmovups xmmword [r12 + 0x3e0], xmm0
mov rax, r12
add rsp, 0x20
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret