Function at 0x18000d040
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x28
mov rsi, r8
mov rbx, rdx
mov rdi, rcx
xor r12d, r12d
mov qword [rcx + 0x10], r12
mov qword [rcx + 0x18], r12
mov qword [rcx + 0x20], r12
mov qword [rcx + 0x28], r12
mov qword [rcx + 0x30], r12
mov qword [rcx + 0x38], r12
mov qword [rcx + 0x54], r12
mov qword [rcx + 0x5c], r12
mov qword [rcx + 0x64], r12
mov qword [rcx + 0x6c], r12
mov qword [rcx + 0x74], r12
mov qword [rcx + 0x7c], r12
mov qword [rcx + 0xb8], r12
mov qword [rcx + 0xc0], r12
mov qword [rcx + 0xc8], r12
mov qword [rcx + 0xd0], r12
add rcx, 0xd8
call fcn.18000d590
nop
mov qword [rdi + 0x220], r12
mov qword [rdi + 0x228], r12
mov qword [rdi + 0x230], r12
mov qword [rdi + 0x238], r12
mov qword [rdi + 0x240], r12
mov qword [rdi + 0x248], r12
mov qword [rdi + 0x250], r12
mov qword [rdi + 0x258], r12
mov qword [rdi + 0x260], r12
mov qword [rdi + 0x268], r12
mov qword [rdi + 0x270], r12
mov qword [rdi + 0x278], r12
mov qword [rdi + 0x280], r12
mov qword [rdi + 0x288], r12
mov qword [rdi + 0x290], r12
lea rax, [rdi + 0x2a8]
mov qword [rsp + 0x78], rax
mov qword [rax], r12
mov qword [rax + 8], r12
mov qword [rdi + 0x2b8], r12
mov qword [rdi + 0x2c0], r12
lea r14, [rdi + 0x2d8]
mov qword [rsp + 0x80], r14
mov qword [r14], r12
mov qword [r14 + 8], r12
mov qword [r14 + 0x10], r12
mov qword [r14 + 0x18], r12
mov qword [r14 + 0x20], r12
mov qword [r14 + 0x28], r12
mov qword [r14 + 0x60], r12
mov qword [r14 + 0x68], r12
mov qword [r14 + 0x70], r12
mov qword [r14 + 0x78], r12
mov qword [r14 + 0x80], r12
mov qword [r14 + 0x88], r12
xorps xmm0, xmm0
xor eax, eax
movups xmmword [r14 + 0x90], xmm0
movups xmmword [r14 + 0xa0], xmm0
movups xmmword [r14 + 0xb0], xmm0
mov qword [r14 + 0xc0], rax
lea rax, [r14 + 0xc8]
mov qword [rsp + 0x88], rax
mov qword [rax + 8], r12
mov qword [rax + 0x10], r12
mov dword [rax], r12d
mov dword [rax + 4], 1
lea rax, [rbx + 0x1948]
mov qword [r14 + 0x38], rax
mov dword [r14 + 0x30], r12d
mov dword [r14 + 0x48], r12d
mov qword [r14 + 0x50], r12
mov qword [r14 + 0x58], r12
mov qword [r14 + 0x40], r12
lea rax, [rdi + 0x3e8]
mov ecx, 2
nop dword [rax + rax]
mov qword [rax], r12
mov qword [rax + 8], r12
lea rax, [rax + 0x10]
sub rcx, 1
jne 0x18000d200
mov rbp, 0xffffffffffffffff
mov rbx, rbp
nop dword [rax + rax]
lea rbx, [rbx + 1]
cmp byte [rsi + rbx], 0
jne 0x18000d220
mov rax, qword [0x1801b93f8]
test rax, rax
je 0x18000d23c
inc dword [rax + 0x3bc]
mov rdx, qword [0x1801b9408]
lea rcx, [rbx + 1]
call qword [0x1801b8730]
lea r8, [rbx + 1]
mov rdx, rsi
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov qword [rdi], rax
mov r10d, 0xffffffff
mov edx, r10d
movzx r9d, byte [rsi]
lea r8, [rsi + 1]
lea r13, [0x18004e9e0]
test r9b, r9b
je 0x18000d2b1
nop dword [rax]
cmp r9b, 0x23
jne 0x18000d293
cmp byte [r8], r9b
jne 0x18000d293
cmp byte [r8 + 1], r9b
cmove edx, r10d
movzx ecx, dl
movzx eax, r9b
xor rcx, rax
shr edx, 8
xor edx, dword [r13 + rcx*4]
movzx r9d, byte [r8]
inc r8
test r9b, r9b
jne 0x18000d280
not edx
mov dword [rdi + 8], edx
mov ecx, dword [rdi + 0xcc]
mov ebx, dword [rdi + 0xc8]
cmp ebx, ecx
jne 0x18000d374
inc ebx
test ecx, ecx
je 0x18000d2db
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x18000d2e0
mov eax, 8
cmp eax, ebx
cmovg ebx, eax
cmp ebx, ecx
jle 0x18000d374
mov rax, qword [0x1801b93f8]
test rax, rax
je 0x18000d2ff
inc dword [rax + 0x3bc]
movsxd rcx, ebx
shl rcx, 2
mov rdx, qword [0x1801b9408]
call qword [0x1801b8730]
mov rbp, rax
mov rdx, qword [rdi + 0xd0]
test rdx, rdx
je 0x18000d360
movsxd r8, dword [rdi + 0xc8]
shl r8, 2
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rdi + 0xd0]
test rcx, rcx
je 0x18000d353
mov rax, qword [0x1801b93f8]
test rax, rax
je 0x18000d353
dec dword [rax + 0x3bc]
mov rdx, qword [0x1801b9408]
call qword [0x1801b8738]
mov qword [rdi + 0xd0], rbp
mov dword [rdi + 0xcc], ebx
mov rbp, 0xffffffffffffffff
movsxd rdx, dword [rdi + 0xc8]
mov rcx, qword [rdi + 0xd0]
mov eax, dword [rdi + 8]
mov dword [rcx + rdx*4], eax
inc dword [rdi + 0xc8]
mov qword [rdi + 0xc], r12
mov qword [rdi + 0x14], r12
mov qword [rdi + 0x20], r12
mov dword [rdi + 0x1c], r12d
mov qword [rdi + 0x30], r12
mov qword [rdi + 0x28], r12
mov qword [rdi + 0x38], r12
mov qword [rdi + 0x40], r12
mov rax, rbp
inc rax
cmp byte [rsi + rax], 0
jne 0x18000d3b1
inc eax
mov dword [rdi + 0x48], eax
movsxd rcx, dword [rdi + 0xc8]
mov rax, qword [rdi + 0xd0]
mov r10d, dword [rax + rcx*4 - 4]
not r10d
mov edx, r10d
lea r8, [0x18004ef39]
mov r9b, 0x23
cmp r9b, 0x23
jne 0x18000d3f5
cmp byte [r8], r9b
jne 0x18000d3f5
cmp byte [r8 + 1], r9b
cmove edx, r10d
movzx ecx, dl
movzx eax, r9b
xor rcx, rax
shr edx, 8
xor edx, dword [r13 + rcx*4]
movzx r9d, byte [r8]
inc r8
test r9b, r9b
jne 0x18000d3e2
not edx
mov rax, qword [0x1801b93f8]
cmp dword [rax + 0x1af0], edx
jne 0x18000d42a
mov dword [rax + 0x1af4], edx
cmp dword [rax + 0x1b30], edx
jne 0x18000d439
mov byte [rax + 0x1b34], 1
mov dword [rdi + 0x4c], edx
mov qword [rdi + 0x50], r12
mov dword [rdi + 0x58], r12d
mov dword [rdi + 0x64], 0x7f7fffff
mov dword [rdi + 0x68], 0x7f7fffff
mov dword [rdi + 0x6c], 0x3f000000
mov dword [rdi + 0x70], 0x3f000000
mov qword [rdi + 0x7c], r12
mov qword [rdi + 0x84], 0
mov dword [rdi + 0x8c], 0
mov byte [rdi + 0x90], 0xff
mov dword [rdi + 0x92], 0xffff0000
mov word [rdi + 0x96], bp
mov dword [rdi + 0x98], r12d
mov dword [rdi + 0x9c], 0xffff
mov dword [rdi + 0xa0], ebp
mov qword [rdi + 0xa4], r12
mov dword [rdi + 0xb4], 0xf
mov dword [rdi + 0xb0], 0xf
mov dword [rdi + 0xac], 0xf
mov dword [rdi + 0xc0], 0x7f7fffff
mov dword [rdi + 0xc4], 0x7f7fffff
mov dword [rdi + 0xb8], 0x7f7fffff
mov dword [rdi + 0xbc], 0x7f7fffff
xorps xmm0, xmm0
movups xmmword [rdi + 0x230], xmm0
mov dword [rdi + 0x298], ebp
mov dword [rdi + 0x29c], 0xbf800000
mov dword [rdi + 0x2a0], r12d
mov dword [rdi + 0x2c8], 0x3f800000
mov dword [rdi + 0x2cc], ebp
mov qword [rdi + 0x2d0], r14
mov rax, qword [rdi]
mov qword [r14 + 0x40], rax
mov qword [rdi + 0x3b8], r12
mov qword [rdi + 0x3c0], r12
mov qword [rdi + 0x3c8], r12
mov qword [rdi + 0x3d0], r12
mov qword [rdi + 0x3e0], r12
movups xmmword [rdi + 0x3f8], xmm0
movups xmmword [rdi + 0x3e8], xmm0
mov qword [rdi + 0x3d8], r12
mov byte [rdi + 0x408], 0
mov qword [rdi + 0x40c], r12
mov rax, rdi
add rsp, 0x28
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret