Function at 0x1400512c0
Capabilities:
Hash data with crc32
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x48
movaps xmmword [rsp + 0x30], xmm7
movaps xmmword [rsp + 0x20], xmm6
mov r12, rcx
mov r15, qword [0x140114180]
and byte [rcx + 0x445], 0xf8
mov r14, rdx
cmp byte [r15 + 0x5a], 0
jne 0x1400512fe
cmp byte [r12 + 0x3c], 0
je 0x1400513c1
mov eax, dword [r12 + 0x14]
test eax, 0x1080001
jne 0x1400513c6
cmp byte [r12 + 0x108], 0
jne 0x1400513c6
mov edx, dword [r12 + 0x478]
test edx, edx
jne 0x140051402
mov r9, qword [r15 + 0x6198]
movsxd rdi, dword [r15 + 0x6190]
mov r8, rdi
shl r8, 4
add r8, r9
mov edx, 1
nop word [rax + rax]
mov rax, r9
test edi, edi
je 0x1400513a0
mov rax, r9
mov rbx, rdi
mov rcx, rdi
jmp 0x140051378
mov rbx, rcx
test rcx, rcx
je 0x1400513a0
shr rcx, 1
mov rsi, rcx
shl rsi, 4
cmp dword [rax + rsi], edx
jae 0x140051370
not rcx
add rcx, rbx
add rax, rsi
add rax, 0x10
jmp 0x140051370
cmp rax, r8
je 0x1400518e4
cmp dword [rax], edx
jne 0x1400518e4
cmp qword [rax + 8], 0
je 0x1400518e4
add edx, 1
jmp 0x140051350
mov eax, dword [r12 + 0x14]
shr eax, 0x13
xor ecx, ecx
test byte [r15 + 0x4b90], 1
je 0x1400513ef
movsx edx, byte [r12 + 0x124]
test dword [r15 + 0x4b94], edx
je 0x1400513ef
movzx ecx, byte [r15 + 0x4bd0]
or ecx, eax
test cl, 1
jne 0x1400516c0
mov edx, dword [r12 + 0x478]
mov rdi, qword [r12 + 0x468]
test edx, edx
je 0x14005153b
test rdi, rdi
jne 0x14005153b
mov r8, qword [r15 + 0x6198]
movsxd rax, dword [r15 + 0x6190]
test rax, rax
je 0x140051466
mov rcx, r8
mov rsi, rax
mov rbx, rax
jmp 0x140051448
mov rsi, rbx
test rbx, rbx
je 0x14005146b
shr rbx, 1
mov rdi, rbx
shl rdi, 4
cmp dword [rcx + rdi], edx
jae 0x140051440
not rbx
add rbx, rsi
add rcx, rdi
add rcx, 0x10
jmp 0x140051440
xor eax, eax
mov rcx, r8
shl rax, 4
add r8, rax
cmp rcx, r8
je 0x140051491
cmp dword [rcx], edx
jne 0x140051491
mov rdi, qword [rcx + 8]
test rdi, rdi
je 0x140051491
cmp qword [rdi + 0x20], 0
jne 0x1400516c0
jmp 0x1400514bf
mov rcx, r15
call fcn.1400611b0
mov rdi, rax
mov eax, 0xfffffe00
and eax, dword [rdi + 0xc8]
or eax, 0x92
mov dword [rdi + 0xc8], eax
mov eax, dword [r15 + 0x40c8]
mov dword [rdi + 0xac], eax
mov bl, 1
test byte [rdi + 0xcc], 1
jne 0x14005151d
mov rax, rdi
nop dword [rax]
mov rbx, rax
mov rax, qword [rax + 0x18]
test rax, rax
je 0x1400514e8
test byte [rax + 0xcc], 1
mov rbx, rax
je 0x1400514d0
mov rax, rbx
nop dword [rax + rax]
mov rcx, rax
mov rax, qword [rax + 0x18]
test rax, rax
jne 0x1400514f0
call fcn.140066520
mov rdx, qword [rbx + 0x48]
mov r8, qword [rbx + 0x50]
mov rcx, rbx
mov r9, rdi
call fcn.140066590
mov bl, byte [rdi + 0xcc]
and bl, 1
mov rcx, rdi
mov rdx, r12
mov r8b, 1
call fcn.140066180
mov al, byte [rdi + 0xcc]
and al, 0xfe
or al, bl
mov byte [rdi + 0xcc], al
mov eax, dword [r15 + 0x40c8]
cmp dword [rdi + 0xac], eax
jge 0x140051576
nop word [rax + rax]
mov rcx, rdi
mov rdi, qword [rdi + 0x18]
test rdi, rdi
jne 0x140051550
cmp dword [rcx + 0xac], eax
jl 0x1400516c0
or byte [r12 + 0x445], 1
jmp 0x140051917
mov rax, qword [0x140114180]
xor ecx, ecx
lea r8, [0x1400da5f0]
movss xmm0, dword [0x1400d9774]
movss xmm1, dword [0x1400d6030]
movss xmm2, dword [0x1400d9768]
xorps xmm3, xmm3
nop word cs:[rax + rax]
nop dword [rax + rax]
movsxd rbx, dword [rcx + r8]
shl rbx, 4
movss xmm4, dword [rax + rbx + 0x3ae8]
movss xmm5, dword [rax + rbx + 0x3aec]
movaps xmm6, xmm0
minss xmm6, xmm4
mulss xmm6, xmm1
addss xmm6, xmm2
cmpltss xmm4, xmm3
movaps xmm7, xmm4
andnps xmm7, xmm6
andps xmm4, xmm2
orps xmm4, xmm7
cvttss2si edx, xmm4
movaps xmm4, xmm0
minss xmm4, xmm5
mulss xmm4, xmm1
addss xmm4, xmm2
cmpltss xmm5, xmm3
movaps xmm6, xmm5
andnps xmm6, xmm4
andps xmm5, xmm2
orps xmm5, xmm6
cvttss2si esi, xmm5
shl esi, 8
or esi, edx
movss xmm4, dword [rax + rbx + 0x3af0]
movaps xmm5, xmm0
minss xmm5, xmm4
mulss xmm5, xmm1
addss xmm5, xmm2
cmpltss xmm4, xmm3
movaps xmm6, xmm4
andnps xmm6, xmm5
andps xmm4, xmm2
orps xmm4, xmm6
cvttss2si edx, xmm4
shl edx, 0x10
movss xmm4, dword [rax + rbx + 0x3af4]
movaps xmm5, xmm0
minss xmm5, xmm4
mulss xmm5, xmm1
addss xmm5, xmm2
cmpltss xmm4, xmm3
movaps xmm6, xmm4
andnps xmm6, xmm5
andps xmm4, xmm2
orps xmm4, xmm6
cvttss2si ebx, xmm4
shl ebx, 0x18
or ebx, edx
or ebx, esi
mov dword [r12 + rcx + 0x448], ebx
add rcx, 4
cmp rcx, 0x20
jne 0x1400515b0
mov rax, qword [rdi + 0x88]
test rax, rax
je 0x1400518a4
mov dword [rdi + 0x14], 3
test byte [rdi + 0x10], 1
jne 0x1400516e5
movzx ecx, word [r12 + 0x114]
cmp cx, word [rax + 0x114]
jge 0x1400516e5
mov rcx, r15
mov rdx, r12
mov r8b, 1
movaps xmm6, xmmword [rsp + 0x20]
movaps xmm7, xmmword [rsp + 0x30]
add rsp, 0x48
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
jmp fcn.140059510
mov rax, qword [0x140114180]
mov ecx, dword [rax + 0x4b90]
mov edx, ecx
or edx, 1
mov dword [rax + 0x4b90], edx
mov rdx, qword [rdi + 0x48]
mov qword [rax + 0x4ba4], rdx
mov qword [rax + 0x4bac], 0
mov dword [rax + 0x4b94], 1
mov byte [rax + 0x4bd0], 1
or ecx, 3
mov dword [rax + 0x4b90], ecx
mov rcx, qword [rdi + 0x50]
mov qword [rax + 0x4bb4], rcx
mov dword [rax + 0x4b98], 1
mov byte [r15 + 0x4bd0], 0
mov al, byte [r12 + 0x445]
mov ecx, eax
and cl, 0xf8
or cl, 3
mov byte [r12 + 0x445], cl
test byte [rdi + 0x10], 1
jne 0x140051917
cmp qword [rdi + 0x90], r12
jne 0x14005177f
or al, 7
mov byte [r12 + 0x445], al
mov eax, dword [r12 + 0x14]
mov ecx, eax
or ecx, 0x1000002
mov dword [r12 + 0x14], ecx
or byte [r12 + 0x1c], 2
and ecx, 0xfffffffe
or eax, 0x1000003
test dword [rdi + 0x10], 0x3000
cmove eax, ecx
mov dword [r12 + 0x14], eax
cmp qword [rdi + 0x40], 0
je 0x1400517ff
cmp byte [r12 + 0x100], 0
je 0x1400517ff
mov rax, qword [r12 + 0x468]
mov rbx, qword [rax + 0x40]
mov si, 0xffff
test rbx, rbx
je 0x1400517f6
mov edx, dword [r12 + 0xc0]
mov rcx, rbx
call fcn.140090bf0
test rax, rax
je 0x1400517f6
sub eax, dword [rbx + 8]
shr eax, 3
imul esi, eax, 0x6db7
mov word [r12 + 0x446], si
test byte [rdi + 0xcc], 0x40
jne 0x140051818
mov eax, dword [rdi + 0xc0]
cmp eax, dword [r12 + 0xc0]
jne 0x140051821
test r14, r14
je 0x140051821
mov byte [r14], 0
mov rax, qword [r12 + 0x468]
mov r9, qword [rax + 0x88]
mov r8, qword [r12 + 8]
mov rax, qword [r9 + 0x140]
movsxd rcx, dword [r9 + 0x138]
mov esi, dword [rax + rcx*4 - 4]
not esi
mov al, byte [r8]
test al, al
je 0x1400518f1
lea rdx, [r8 + 2]
lea r10, [0x1400d97e0]
mov ecx, esi
jmp 0x14005188d
movzx eax, al
mov edi, ecx
shr edi, 8
movzx ecx, cl
xor ecx, eax
xor edi, dword [r10 + rcx*4]
add rdx, 1
mov eax, ebx
mov ecx, edi
test bl, bl
je 0x1400518f3
movzx ebx, byte [rdx - 1]
cmp al, 0x23
jne 0x140051870
cmp bl, 0x23
jne 0x140051870
cmp byte [rdx], 0x23
cmove ecx, esi
mov bl, 0x23
jmp 0x140051870
cmp dword [rdi + 0x14], 2
jne 0x1400518b3
or byte [r12 + 0x445], 1
cmp dword [rdi + 0x30], 2
jl 0x140051917
cmp byte [r12 + 0x106], 0
je 0x140051917
mov byte [r12 + 0x107], 1
cmp byte [r12 + 0xff], 1
mov al, 1
adc al, 0
mov byte [r12 + 0x120], al
jmp 0x140051917
mov dword [r12 + 0x478], edx
jmp 0x140051402
mov edi, esi
not edi
mov rax, qword [r9]
cmp dword [rax + 0x41d4], edi
jne 0x14005190f
mov ecx, edi
mov edx, 0xb
xor r9d, r9d
call fcn.140054480
mov dword [r12 + 0xc4], edi
movaps xmm6, xmmword [rsp + 0x20]
movaps xmm7, xmmword [rsp + 0x30]
add rsp, 0x48
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret