Function at 0x1801a4b80
Capabilities:
Hash data with crc32

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
lea rbp, [rsp - 0x37]
sub rsp, 0xc0
mov rax, qword [0x1802993c0]
xor rax, rsp
mov qword [rbp + 7], rax
mov esi, edx
mov edi, edx
and esi, 0x1800000
mov r13d, edx
mov r12, rcx
and edi, 0x700000
je 0x1801a4bc2
test esi, esi
jne 0x1801a5121
mov rcx, qword [0x1802a0108]
mov eax, dword [rcx + 0x48d8]
cmp dword [rcx + 0x48c8], eax
jg 0x1801a4be6
mov dword [rcx + 0x47f8], 0
jmp 0x1801a5121
mov r10, qword [rcx + 0x3f18]
lea rdx, [0x18022ffe9]
mov qword [rsp + 0xf8], rbx
mov r8b, 0x63
mov qword [rsp + 0x100], r14
lea r14, [0x18022f970]
movsxd rcx, dword [r10 + 0xf0]
mov rax, qword [r10 + 0xf8]
mov r9d, dword [rax + rcx*4 - 4]
not r9d
mov ebx, r9d
cmp r8b, 0x23
jne 0x1801a4c3a
cmp byte [rdx], r8b
jne 0x1801a4c3a
cmp byte [rdx + 1], r8b
cmove ebx, r9d
movzx ecx, bl
movzx eax, r8b
movzx r8d, byte [rdx]
xor rcx, rax
shr ebx, 8
inc rdx
xor ebx, dword [r14 + rcx*4]
test r8b, r8b
jne 0x1801a4c27
mov rax, qword [r10]
not ebx
cmp dword [rax + 0x3f60], ebx
jne 0x1801a4c77
lea r8, str.context
mov edx, 0xb
mov ecx, ebx
call fcn.18017f100
mov ecx, ebx
call fcn.180178d90
test al, al
je 0x1801a5111
mov rax, qword [0x1802a0108]
movaps xmmword [rsp + 0xb0], xmm6
mov qword [rbp - 0x41], rax
mov ebx, dword [rax + 0x5b7c]
test edi, edi
jne 0x1801a4d09
mov edx, ebx
lea rcx, [0x1802204fc]
shr edx, 0x14
and dl, 1
call fcn.1801985f0
test al, al
je 0x1801a4cc5
and ebx, 0xff9fffff
bts ebx, 0x14
mov edx, ebx
lea rcx, [0x1802346a4]
shr edx, 0x15
and dl, 1
call fcn.1801985f0
test al, al
je 0x1801a4ce7
and ebx, 0xffafffff
bts ebx, 0x15
mov edx, ebx
lea rcx, [0x1802346a8]
shr edx, 0x16
and dl, 1
call fcn.1801985f0
test al, al
je 0x1801a4d09
and ebx, 0xffcfffff
bts ebx, 0x16
test esi, esi
jne 0x1801a4d7a
test edi, edi
jne 0x1801a4d3a
mov rax, qword [0x1802a0108]
mov rax, qword [rax + 0x3f18]
cmp byte [rax + 0xbb], dil
jne 0x1801a4d3a
mov eax, dword [rax + 0x1b4]
neg eax
sbb ecx, ecx
add ecx, 6
call fcn.180198d50
mov edx, ebx
lea rcx, str.0..255
shr edx, 0x17
and dl, 1
call fcn.1801985f0
test al, al
je 0x1801a4d5a
btr ebx, 0x18
bts ebx, 0x17
mov edx, ebx
lea rcx, str.0.00..1.00
shr edx, 0x18
and dl, 1
call fcn.1801985f0
test al, al
je 0x1801a4d7a
btr ebx, 0x17
bts ebx, 0x18
test edi, edi
je 0x1801a4d82
test esi, esi
jne 0x1801a4dab
mov rax, qword [0x1802a0108]
mov rax, qword [rax + 0x3f18]
cmp byte [rax + 0xbb], 0
jne 0x1801a4dab
mov eax, dword [rax + 0x1b4]
neg eax
sbb ecx, ecx
add ecx, 6
call fcn.180198d50
lea rdx, [rbp - 0x49]
mov dword [rbp - 0x49], 0xbf800000
lea rcx, str.Copy_as..
mov dword [rbp - 0x45], 0
xorps xmm6, xmm6
call fcn.1801972a0
test al, al
je 0x1801a4ddc
lea rcx, str.Copy
call fcn.180178790
mov rcx, qword [0x1802a0108]
mov eax, dword [rcx + 0x48d8]
cmp dword [rcx + 0x48c8], eax
jg 0x1801a4e00
mov dword [rcx + 0x47f8], 0
jmp 0x1801a50fa
mov r11, qword [rcx + 0x3f18]
lea r9, [0x18022f2d5]
mov dl, 0x43
movsxd rcx, dword [r11 + 0xf0]
mov rax, qword [r11 + 0xf8]
mov r10d, dword [rax + rcx*4 - 4]
not r10d
mov edi, r10d
nop dword [rax]
cmp dl, 0x23
jne 0x1801a4e42
cmp byte [r9], dl
jne 0x1801a4e42
cmp byte [r9 + 1], dl
cmove edi, r10d
movzx ecx, dil
movzx eax, dl
movzx edx, byte [r9]
xor rcx, rax
shr edi, 8
inc r9
xor edi, dword [r14 + rcx*4]
test dl, dl
jne 0x1801a4e30
mov rax, qword [r11]
not edi
cmp dword [rax + 0x3f60], edi
jne 0x1801a4e7e
lea r8, str.Copy
mov edx, 0xb
mov ecx, edi
call fcn.18017f100
mov ecx, edi
call fcn.180178d90
test al, al
je 0x1801a50fa
movss xmm4, dword [r12]
comiss xmm4, xmm6
mov qword [rsp + 0x108], r15
movss xmm1, dword [0x180234e30]
movaps xmmword [rsp + 0xa0], xmm7
jae 0x1801a4eb5
movaps xmm0, xmm6
jmp 0x1801a4ebc
movaps xmm0, xmm4
minss xmm0, xmm1
movss xmm2, dword [0x180235048]
movss xmm3, dword [0x180234dc8]
movss xmm5, dword [r12 + 4]
comiss xmm5, xmm6
mulss xmm0, xmm2
addss xmm0, xmm3
cvttss2si r15d, xmm0
jae 0x1801a4eea
movaps xmm0, xmm6
jmp 0x1801a4ef1
movaps xmm0, xmm5
minss xmm0, xmm1
movss xmm7, dword [r12 + 8]
comiss xmm7, xmm6
mulss xmm0, xmm2
addss xmm0, xmm3
cvttss2si r14d, xmm0
jae 0x1801a4f0f
movaps xmm0, xmm6
jmp 0x1801a4f16
movaps xmm0, xmm7
minss xmm0, xmm1
mulss xmm0, xmm2
addss xmm0, xmm3
cvttss2si esi, xmm0
and r13d, 2
je 0x1801a4f2f
mov edi, 0xff
jmp 0x1801a4f51
movss xmm0, dword [r12 + 0xc]
comiss xmm0, xmm6
jb 0x1801a4f42
movaps xmm6, xmm0
minss xmm6, xmm1
mulss xmm6, xmm2
movaps xmm1, xmm0
addss xmm6, xmm3
cvttss2si edi, xmm6
cvtps2pd xmm0, xmm1
lea r8, str.__.3ff___.3ff___.3ff___.3ff_
mov edx, 0x40
lea rcx, [rbp - 0x39]
cvtps2pd xmm1, xmm7
movsd qword [rsp + 0x30], xmm0
cvtps2pd xmm3, xmm4
cvtps2pd xmm2, xmm5
movsd qword [rsp + 0x28], xmm1
movq r9, xmm3
movsd qword [rsp + 0x20], xmm2
call fcn.180167a60
lea r9, [rbp - 0x49]
mov qword [rbp - 0x49], 0
xor edx, edx
lea rcx, [rbp - 0x39]
call fcn.1801a5ba0
movaps xmm7, xmmword [rsp + 0xa0]
test al, al
je 0x1801a4fcc
mov rcx, qword [0x1802a0108]
mov rax, qword [rcx + 0xb0]
test rax, rax
je 0x1801a4fcc
mov rcx, qword [rcx + 0xb8]
lea rdx, [rbp - 0x39]
call rax
mov dword [rsp + 0x30], edi
lea r8, str.__d__d__d__d_
mov dword [rsp + 0x28], esi
lea rcx, [rbp - 0x39]
mov r9d, r15d
mov dword [rsp + 0x20], r14d
mov edx, 0x40
call fcn.180167a60
lea r9, [rbp - 0x49]
mov qword [rbp - 0x49], 0
xor edx, edx
lea rcx, [rbp - 0x39]
call fcn.1801a5ba0
test al, al
je 0x1801a502c
mov rcx, qword [0x1802a0108]
mov rax, qword [rcx + 0xb0]
test rax, rax
je 0x1801a502c
mov rcx, qword [rcx + 0xb8]
lea rdx, [rbp - 0x39]
call rax
mov dword [rsp + 0x28], esi
lea r8, [0x1802344b8]
mov r9d, r15d
mov dword [rsp + 0x20], r14d
mov edx, 0x40
lea rcx, [rbp - 0x39]
call fcn.180167a60
lea r9, [rbp - 0x49]
mov qword [rbp - 0x49], 0
xor edx, edx
lea rcx, [rbp - 0x39]
call fcn.1801a5ba0
test al, al
je 0x1801a5088
mov rcx, qword [0x1802a0108]
mov rax, qword [rcx + 0xb0]
test rax, rax
je 0x1801a5088
mov rcx, qword [rcx + 0xb8]
lea rdx, [rbp - 0x39]
call rax
test r13d, r13d
jne 0x1801a50ed
mov dword [rsp + 0x30], edi
lea r8, [0x1802344a0]
mov dword [rsp + 0x28], esi
lea rcx, [rbp - 0x39]
mov r9d, r15d
mov dword [rsp + 0x20], r14d
mov edx, 0x40
call fcn.180167a60
lea r9, [rbp - 0x49]
mov qword [rbp - 0x49], 0
xor edx, edx
lea rcx, [rbp - 0x39]
call fcn.1801a5ba0
test al, al
je 0x1801a50ed
mov rcx, qword [0x1802a0108]
mov rax, qword [rcx + 0xb0]
test rax, rax
je 0x1801a50ed
mov rcx, qword [rcx + 0xb8]
lea rdx, [rbp - 0x39]
call rax
call fcn.180178e40
mov r15, qword [rsp + 0x108]
mov rax, qword [rbp - 0x41]
mov dword [rax + 0x5b7c], ebx
call fcn.180178e40
movaps xmm6, xmmword [rsp + 0xb0]
mov rbx, qword [rsp + 0xf8]
mov r14, qword [rsp + 0x100]
mov rcx, qword [rbp + 7]
xor rcx, rsp
call fcn.1801b2e60
add rsp, 0xc0
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret