Function at 0x180014780
Capabilities:
Hash data with crc32

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x50]
sub rsp, 0x150
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
movaps xmmword [rax - 0x78], xmm9
movaps xmmword [rax - 0x88], xmm10
movaps xmmword [rax - 0x98], xmm12
movaps xmmword [rax - 0xa8], xmm13
mov esi, edx
mov r13, rcx
mov rax, qword [0x180124118]
mov qword [rbp - 0x68], rax
mov r15, qword [rax + 0x3f10]
mov ecx, dword [r15 + 0x14]
and ecx, 4
mov dword [rsp + 0x70], ecx
cmp qword [r15 + 0x1a8], 0
jne 0x180014805
cmp qword [rax + 0x4be0], 0
lea rax, [r15 + 0x250]
je 0x18001480c
lea rax, [r15 + 0x220]
movsd xmm2, qword [rax]
movaps xmm1, xmm2
shufps xmm1, xmm1, 0x55
subss xmm1, dword [r15 + 0x104]
movsd qword [rsp + 0x50], xmm2
subss xmm2, dword [r15 + 0x100]
movss xmm3, dword [r8 + 4]
cvttss2si eax, xmm3
xorps xmm8, xmm8
comiss xmm3, xmm8
jae 0x180014853
movd xmm0, eax
cvtdq2ps xmm0, xmm0
ucomiss xmm0, xmm3
jp 0x180014851
je 0x180014853
dec eax
movd xmm6, eax
cvtdq2ps xmm6, xmm6
movss xmm3, dword [r8]
cvttss2si eax, xmm3
comiss xmm3, xmm8
jae 0x180014879
movd xmm0, eax
cvtdq2ps xmm0, xmm0
ucomiss xmm0, xmm3
jp 0x180014877
je 0x180014879
dec eax
addss xmm6, dword [0x1800e9f60]
movd xmm7, eax
cvtdq2ps xmm7, xmm7
addss xmm7, xmm8
xor r12d, r12d
ucomiss xmm7, xmm8
jp 0x18001489d
mov eax, 1
je 0x1800148a0
mov eax, r12d
ucomiss xmm6, xmm8
jp 0x1800148ad
mov ecx, 2
je 0x1800148b0
mov ecx, r12d
or ecx, eax
mov dword [rsp + 0x74], ecx
movss xmm0, dword [0x1800e9ed0]
comiss xmm8, xmm7
jb 0x1800148cc
addss xmm7, xmm2
maxss xmm7, xmm0
comiss xmm8, xmm6
jb 0x1800148da
addss xmm6, xmm1
maxss xmm6, xmm0
mov ecx, dword [0x180123fa4]
mov rax, qword gs:[0x58]
mov edx, 4
mov rax, qword [rax + rcx*8]
mov eax, dword [rdx + rax]
cmp dword [0x180124e38], eax
jle 0x18001495b
lea rcx, [0x180124e38]
call fcn.1800c2ea8
cmp dword [0x180124e38], 0xffffffff
jne 0x18001495b
mov qword [0x180124d30], r12
mov qword [0x180124d38], r12
mov ecx, 0x48
call fcn.1800c2f20
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rax + 0x10], rax
mov word [rax + 0x18], 0x101
mov qword [0x180124d30], rax
lea rcx, [0x1800c4e80]
call fcn.1800c32b4
nop
lea rcx, [0x180124e38]
call fcn.1800c2e3c
mov rdi, qword [0x180124d30]
mov rax, qword [rdi + 8]
mov rbx, rdi
cmp byte [rax + 0x19], 0
jne 0x180014987
nop
cmp dword [rax + 0x20], esi
jae 0x18001497b
mov rax, qword [rax + 0x10]
jmp 0x180014981
mov rbx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
je 0x180014970
cmp byte [rbx + 0x19], 0
jne 0x180014992
cmp esi, dword [rbx + 0x20]
jae 0x180014995
mov rbx, rdi
cmp rbx, rdi
jne 0x180014b15
xorps xmm0, xmm0
movups xmmword [rsp + 0x78], xmm0
mov qword [rbp - 0x78], r12
mov ebx, 0xf
mov qword [rbp - 0x70], rbx
mov byte [rsp + 0x78], 0
mov dword [rbp - 0x48], esi
movups xmm9, xmmword [rsp + 0x78]
movups xmmword [rbp - 0x40], xmm9
movups xmm10, xmmword [rbp - 0x78]
movups xmmword [rbp - 0x30], xmm10
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x70], rbx
mov byte [rsp + 0x78], 0
mov rax, qword [rdi + 8]
mov qword [rbp - 0x60], rax
mov dword [rbp - 0x58], r12d
mov rcx, rdi
cmp byte [rax + 0x19], 0
jne 0x180014a18
mov qword [rbp - 0x60], rax
cmp dword [rax + 0x20], esi
jae 0x180014a05
mov dword [rbp - 0x58], r12d
mov rax, qword [rax + 0x10]
jmp 0x180014a12
mov dword [rbp - 0x58], 1
mov rcx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
je 0x1800149f2
cmp byte [rcx + 0x19], 0
jne 0x180014a29
cmp esi, dword [rcx + 0x20]
jb 0x180014a29
mov rbx, qword [rbp - 0x28]
jmp 0x180014a9e
movabs rax, 0x38e38e38e38e38e
cmp qword [0x180124d38], rax
je 0x1800152b0
lea r14, [0x180124d30]
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x58], r12
mov ecx, 0x48
call fcn.1800c2f20
nop
mov dword [rax + 0x20], esi
movups xmmword [rax + 0x28], xmm9
movups xmmword [rax + 0x38], xmm10
mov byte [rbp - 0x40], 0
mov qword [rax], rdi
mov qword [rax + 8], rdi
mov qword [rax + 0x10], rdi
mov word [rax + 0x18], 0
movups xmm0, xmmword [rbp - 0x60]
movaps xmmword [rsp + 0x50], xmm0
mov r8, rax
lea rdx, [rsp + 0x50]
mov rcx, r14
call fcn.18000efc0
mov rdi, qword [0x180124d30]
cmp rbx, 0xf
jbe 0x180014ae0
lea rdx, [rbx + 1]
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180014ad4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180014ad4
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1800c32cc
mov rdi, qword [0x180124d30]
mov rax, qword [rdi + 8]
mov rbx, rdi
cmp byte [rax + 0x19], 0
jne 0x180014b07
nop dword [rax]
cmp dword [rax + 0x20], esi
jae 0x180014afb
mov rax, qword [rax + 0x10]
jmp 0x180014b01
mov rbx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
je 0x180014af0
cmp byte [rbx + 0x19], 0
jne 0x180014b12
cmp esi, dword [rbx + 0x20]
jae 0x180014b15
mov rbx, rdi
lea rdi, [r15 + 0x100]
movss xmm1, dword [rdi + 4]
movss xmm12, dword [0x1800e9f70]
addss xmm1, xmm12
movss xmm0, dword [rdi]
addss xmm0, xmm8
mov rcx, qword [0x180124118]
movss dword [rcx + 0x4808], xmm0
movss dword [rcx + 0x480c], xmm1
mov qword [rcx + 0x4810], r12
mov dword [rcx + 0x47fc], 1
movaps xmm1, xmm6
subss xmm1, xmm12
movaps xmm0, xmm7
subss xmm0, xmm8
or dword [rcx + 0x47f8], 3
movss dword [rcx + 0x4818], xmm0
movss dword [rcx + 0x481c], xmm1
mov dword [rcx + 0x4800], 1
mov rax, qword [rcx + 0x3f10]
mov byte [rax + 0xb8], 1
mov rax, qword [rcx + 0x3f10]
mov r10, qword [rax + 0x298]
movss xmm0, dword [0x180124e68]
movss dword [rsp + 0x50], xmm0
movss xmm1, dword [0x180124e6c]
movss dword [rsp + 0x54], xmm1
movss xmm0, dword [0x180124e70]
movss dword [rsp + 0x58], xmm0
movss xmm1, dword [0x180124e74]
mulss xmm1, dword [rcx + 0x37d0]
movss dword [rsp + 0x5c], xmm1
lea rcx, [rsp + 0x50]
call fcn.18001fb70
movaps xmm1, xmm6
addss xmm1, dword [rdi + 4]
movaps xmm0, xmm7
addss xmm0, dword [rdi]
movss dword [rsp + 0x60], xmm0
movss dword [rsp + 0x64], xmm1
mov dword [rsp + 0x28], 0xf0
movss xmm0, dword [0x1800e9f04]
movss dword [rsp + 0x20], xmm0
mov r9d, eax
lea r8, [rsp + 0x60]
mov rdx, rdi
mov rcx, r10
call fcn.18003b5a0
mov rcx, qword [0x180124118]
mov rax, qword [rcx + 0x3f10]
mov byte [rax + 0xb8], 1
mov rax, qword [rcx + 0x3f10]
mov r10, qword [rax + 0x298]
movss xmm0, dword [0x180124dd0]
movss dword [rsp + 0x50], xmm0
movss xmm1, dword [0x180124dd4]
movss dword [rsp + 0x54], xmm1
movss xmm0, dword [0x180124dd8]
movss dword [rsp + 0x58], xmm0
movss xmm1, dword [0x180124ddc]
mulss xmm1, dword [rcx + 0x37d0]
movss dword [rsp + 0x5c], xmm1
lea rcx, [rsp + 0x50]
call fcn.18001fb70
movss xmm1, dword [rdi + 4]
addss xmm1, xmm12
movaps xmm0, xmm7
addss xmm0, dword [rdi]
movss dword [rsp + 0x60], xmm0
movss dword [rsp + 0x64], xmm1
mov dword [rsp + 0x28], 0x30
movss xmm0, dword [0x1800e9f04]
movss dword [rsp + 0x20], xmm0
mov r9d, eax
lea r8, [rsp + 0x60]
mov rdx, rdi
mov rcx, r10
call fcn.18003b5a0
mov rcx, qword [0x180124118]
mov rax, qword [rcx + 0x3f10]
mov byte [rax + 0xb8], 1
mov rax, qword [rcx + 0x3f10]
mov r10, qword [rax + 0x298]
movups xmm0, xmmword [0x180123800]
movups xmmword [rsp + 0x50], xmm0
shufps xmm0, xmm0, 0xff
mulss xmm0, dword [rcx + 0x37d0]
movss dword [rsp + 0x5c], xmm0
lea rcx, [rsp + 0x50]
call fcn.18001fb70
addss xmm6, dword [rdi + 4]
addss xmm7, dword [rdi]
movss dword [rsp + 0x60], xmm7
movss dword [rsp + 0x64], xmm6
movss xmm13, dword [0x1800e9e90]
movss dword [rsp + 0x30], xmm13
mov dword [rsp + 0x28], 0xf0
movss xmm0, dword [0x1800e9f04]
movss dword [rsp + 0x20], xmm0
mov r9d, eax
lea r8, [rsp + 0x60]
mov rdx, rdi
mov rcx, r10
call fcn.18003b490
mov edx, 0x24
mov rcx, r13
call qword [sym.imp.VCRUNTIME140.dll_strchr]
mov r12, rax
mov edx, 0x24
mov rcx, r13
call qword [sym.imp.VCRUNTIME140.dll_strchr]
mov r14, rax
test rax, rax
je 0x180014dff
sub r14, r13
lea rcx, [r14 + 1]
call fcn.1800c3300
mov rdi, rax
mov r8, r14
mov rdx, r13
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
mov byte [rdi + r14], 0
lea r14, [rbx + 0x28]
mov rbx, 0xffffffffffffffff
mov r8, rbx
nop
inc r8
cmp byte [rdi + r8], 0
jne 0x180014de0
mov rdx, rdi
mov rcx, r14
call fcn.18001ce00
mov rcx, rdi
call fcn.1800c32cc
jmp 0x180014e25
lea r14, [rbx + 0x28]
mov rbx, 0xffffffffffffffff
mov r8, rbx
nop dword [rax]
inc r8
cmp byte [r8 + r13], 0
jne 0x180014e10
mov rdx, r13
mov rcx, r14
call fcn.18001ce00
test r12, r12
je 0x180014e34
lea rdi, [r12 + 1]
cmp byte [rdi], 0
jne 0x180014e3b
lea rdi, [0x1800e2712]
mov rcx, qword [0x1801248f0]
call fcn.18002bb60
mov r8, qword [0x180124118]
mov rax, qword [r8 + 0x3f10]
mov byte [rax + 0xb8], 1
mov rax, qword [r8 + 0x3f10]
mov r10, qword [rax + 0x298]
mov qword [rsp + 0x50], r10
mov r12, r14
lea rcx, [0x1801238b0]
cmp qword [r14 + 0x18], 0xf
jbe 0x180014e8d
mov r12, qword [r14]
call fcn.18001fb70
mov r14, r12
jmp 0x180014e92
call fcn.18001fb70
mov dword [rsp + 0x60], eax
movss xmm7, dword [r15 + 0x104]
movaps xmm6, xmm7
addss xmm6, xmm12
movss xmm0, dword [r8 + 0x3c38]
movss xmm10, dword [0x1800ea058]
test r14, r14
je 0x180014efa
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], r14
movss dword [rsp + 0x20], xmm10
movss xmm3, dword [0x1800ea030]
movaps xmm2, xmm0
lea rdx, [rsp + 0x68]
mov rcx, qword [r8 + 0x3c30]
call fcn.180041cf0
movss xmm0, dword [rsp + 0x6c]
mov r10, qword [rsp + 0x50]
movss xmm9, dword [0x1800e9e50]
mulss xmm0, xmm9
subss xmm6, xmm7
mulss xmm6, xmm9
addss xmm6, xmm7
subss xmm6, xmm0
movss xmm0, dword [r15 + 0x100]
addss xmm0, xmm12
movss dword [rsp + 0x68], xmm0
movss dword [rsp + 0x6c], xmm6
mov r8d, dword [rsp + 0x60]
test r8d, 0xff000000
je 0x180014fa2
mov rcx, rbx
inc rcx
cmp byte [r12 + rcx], 0
jne 0x180014f44
add rcx, r12
cmp r12, rcx
je 0x180014fa2
mov rax, qword [r10 + 0x38]
movups xmm0, xmmword [r10 + 0x88]
movups xmmword [rsp + 0x50], xmm0
mov byte [rsp + 0x48], 0
movss dword [rsp + 0x40], xmm8
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x30], r12
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], r8d
lea r9, [rsp + 0x68]
movss xmm2, dword [rax + 0x10]
mov rdx, r10
mov rcx, qword [rax + 8]
call fcn.180041f10
call fcn.18002bc00
mov rcx, qword [0x180124118]
test rdi, rdi
je 0x180015142
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], rdi
movss dword [rsp + 0x20], xmm10
movss xmm3, dword [0x1800ea030]
movss xmm2, dword [rcx + 0x3c38]
lea rdx, [rsp + 0x50]
mov rcx, qword [rcx + 0x3c30]
call fcn.180041cf0
movss xmm0, dword [rsp + 0x50]
addss xmm0, dword [0x1800e9e88]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm13
jbe 0x180015142
mov rcx, qword [0x1801248f8]
call fcn.18002bb60
mov r8, qword [0x180124118]
mov rax, qword [r8 + 0x3f10]
mov byte [rax + 0xb8], 1
mov rax, qword [r8 + 0x3f10]
mov r14, qword [rax + 0x298]
lea rcx, [0x180123810]
call fcn.18001fb70
mov r12d, eax
movss xmm6, dword [r15 + 0x104]
movaps xmm7, xmm6
addss xmm7, xmm12
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], rdi
movss dword [rsp + 0x20], xmm10
movss xmm3, dword [0x1800ea030]
movss xmm2, dword [r8 + 0x3c38]
lea rdx, [rsp + 0x50]
mov rcx, qword [r8 + 0x3c30]
call fcn.180041cf0
movss xmm0, dword [rsp + 0x54]
mulss xmm0, xmm9
subss xmm7, xmm6
mulss xmm7, xmm9
addss xmm7, xmm6
subss xmm7, xmm0
movss xmm0, dword [r15 + 0x100]
addss xmm0, dword [0x1800e9f24]
movss dword [rsp + 0x68], xmm0
movss dword [rsp + 0x6c], xmm7
test r12d, 0xff000000
je 0x18001513d
nop dword [rax + rax]
inc rbx
cmp byte [rdi + rbx], 0
jne 0x1800150e0
add rbx, rdi
cmp rdi, rbx
je 0x18001513d
mov rax, qword [r14 + 0x38]
movups xmm0, xmmword [r14 + 0x88]
movups xmmword [rsp + 0x50], xmm0
mov byte [rsp + 0x48], 0
movss dword [rsp + 0x40], xmm8
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rdi
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], r12d
lea r9, [rsp + 0x68]
movss xmm2, dword [rax + 0x10]
mov rdx, r14
mov rcx, qword [rax + 8]
call fcn.180041f10
call fcn.18002bc00
mov r9, qword [r15 + 8]
xor edx, edx
lea rcx, [rsp + 0x68]
test r13, r13
je 0x180015169
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], r13
lea r8, str._s__s__08X
call fcn.18001f4b0
jmp 0x180015179
mov dword [rsp + 0x20], esi
lea r8, str._s__08X
call fcn.18001f4b0
mov r8d, dword [rsp + 0x70]
or r8d, 0x1010183
xor edx, edx
mov rcx, qword [rsp + 0x68]
call fcn.180028e40
movzx r12d, al
mov r14, qword [rbp - 0x68]
mov rdi, qword [r14 + 0x3f10]
mov dword [rdi + 0x80], esi
mov eax, dword [rsp + 0x74]
mov byte [rdi + 0xd2], al
cmp word [rdi + 0xc2], 1
jne 0x1800151c8
movsd xmm0, qword [rdi + 0x20]
movsd qword [r15 + 0x100], xmm0
mov r9d, esi
not r9d
mov ebx, r9d
lea rdx, [0x1800e87f1]
mov r8b, 0x23
lea r10, [0x1800e3920]
cmp r8b, 0x23
jne 0x1800151f5
cmp byte [rdx], r8b
jne 0x1800151f5
cmp byte [rdx + 1], r8b
cmove ebx, r9d
movzx ecx, bl
movzx eax, r8b
xor rcx, rax
shr ebx, 8
xor ebx, dword [r10 + rcx*4]
movzx r8d, byte [rdx]
inc rdx
test r8b, r8b
jne 0x1800151e2
not ebx
cmp dword [r14 + 0x3f70], ebx
jne 0x180015226
xor edx, edx
xor ecx, ecx
call fcn.1800228a0
cmp dword [r14 + 0x4920], esi
jne 0x18001526e
cmp word [rdi + 0x15c], 0
jne 0x180015242
cmp byte [rdi + 0x162], 0
je 0x18001526e
xor edx, edx
mov rcx, rdi
call fcn.18002b610
xor edx, edx
mov rcx, rdi
call fcn.180031ad0
mov rdx, rdi
mov ecx, ebx
call fcn.1800228a0
mov eax, dword [r14 + 0x4944]
mov dword [r14 + 0x3f98], eax
movzx eax, r12b
lea r11, [rsp + 0x150]
mov rbx, qword [r11 + 0x50]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm12, xmmword [r11 - 0x60]
movaps xmm13, xmmword [r11 - 0x70]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.180005e70
nop
int3