Function at 0x14001a470
Capabilities:
Hash data with crc32

Disassembly:
mov dword [rsp + 8], ecx
push rbx
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x48
mov rdi, qword [0x140741670]
xor r15d, r15d
mov esi, ecx
mov r14d, r15d
mov rbp, qword [rdi + 0x3e28]
test cl, 0x10
jne 0x14001a779
mov ebx, dword [rdi + 0x3ef0]
test ebx, ebx
je 0x14001a4e8
cmp dword [rdi + 0x3e74], ebx
jne 0x14001a76a
mov eax, dword [rdi + 0x3ebc]
cmp eax, 0xffffffff
cmove eax, r15d
movsxd r15, eax
cmp byte [r15 + rdi + 0xd14], r14b
je 0x14001a76a
cmp byte [rbp + 0x93], r14b
jne 0x14001a76a
xor sil, sil
jmp 0x14001a714
cmp byte [rdi + 0xd14], r14b
je 0x14001a76a
cmp byte [rbp + 0x93], r14b
jne 0x14001a76a
test byte [rdi + 0x3ef8], 1
jne 0x14001a525
cmp dword [rdi + 0x3e74], r14d
je 0x14001a76a
cmp qword [rdi + 0x3eb0], rbp
jne 0x14001a76a
test cl, 8
je 0x14001a76a
lea rdx, [rdi + 0x3efc]
mov rcx, rbp
call fcn.14001ee30
mov dword [rdi + 0x3ef0], eax
mov ebx, eax
mov r14, qword [0x140741670]
mov rsi, r14
mov eax, dword [r14 + 0x3e60]
test eax, eax
je 0x14001a56f
cmp eax, ebx
je 0x14001a56f
cmp byte [r14 + 0x3e68], r15b
jne 0x14001a56f
xor sil, sil
jmp 0x14001a70c
mov qword [rsp + 0x40], r13
mov r13, qword [r14 + 0x3e28]
cmp qword [r14 + 0x3e30], r13
je 0x14001a58c
xor sil, sil
jmp 0x14001a707
mov qword [rsp + 0x90], r12
mov r12d, dword [r14 + 0x3e74]
test r12d, r12d
je 0x14001a5b6
cmp r12d, ebx
je 0x14001a5b6
cmp byte [r14 + 0x3e81], r15b
jne 0x14001a5b6
xor sil, sil
jmp 0x14001a6ff
lea rcx, [rdi + 0x3f04]
mov r8b, 1
mov qword [rsp + 0x88], rcx
mov rdx, rcx
lea rcx, [rdi + 0x3efc]
call fcn.140021230
test al, al
jne 0x14001a5e3
xor sil, sil
jmp 0x14001a6ff
cmp byte [r14 + 0x407b], r15b
je 0x14001a5f4
xor sil, sil
jmp 0x14001a6ff
xor edx, edx
mov rcx, r13
call fcn.1400213c0
test al, al
jne 0x14001a612
mov byte [r14 + 0x3e6b], 1
xor sil, sil
jmp 0x14001a6ff
test ebx, ebx
je 0x14001a63c
mov dword [r14 + 0x3e60], ebx
mov word [r14 + 0x3e68], r15w
cmp dword [r14 + 0x3e64], ebx
je 0x14001a635
mov qword [r14 + 0x3e6c], r15
mov r14, qword [0x140741670]
cmp dword [rsi + 0x3ef0], ebx
jne 0x14001a64c
mov eax, dword [rsi + 0x3ef4]
jmp 0x14001a652
mov eax, dword [rsi + 0x3ed8]
test al, 4
je 0x14001a66f
cmp r12d, ebx
jne 0x14001a660
call fcn.14001bea0
mov byte [rsi + 0x3e6b], 1
xor sil, sil
jmp 0x14001a6ff
test ebx, ebx
je 0x14001a6e1
cmp byte [rsi + 0x539c], r15b
je 0x14001a6d8
cmp dword [rsi + 0x3e64], ebx
jne 0x14001a6d8
mov rax, qword [r14 + 0x4030]
lea r8, str.Foreground
mov edx, 1
mov rcx, qword [rax]
call fcn.14001f730
movss xmm0, dword [0x1400e3088]
lea rdx, [rdi + 0x3efc]
mov r8, qword [rsp + 0x88]
xorps xmm1, xmm1
movss dword [rsp + 0x30], xmm0
mov r9d, 0xff00ffff
mov dword [rsp + 0x28], r15d
mov rcx, rax
movss dword [rsp + 0x20], xmm1
call fcn.140033020
cmp dword [rsi + 0x53a0], ebx
jne 0x14001a6e1
int3
mov sil, 1
cmp byte [rdi + 0x3630], r15b
je 0x14001a6ff
mov rdx, rbp
mov ecx, ebx
call fcn.14002b2b0
mov rcx, rbp
call fcn.14001e6f0
mov r12, qword [rsp + 0x90]
mov r13, qword [rsp + 0x40]
cmp dword [rdi + 0x3e74], ebx
jne 0x14001a76a
mov byte [rdi + 0x3e81], sil
movsxd rcx, dword [rbp + 0xc8]
mov rax, qword [rbp + 0xd0]
mov r14d, dword [rax + rcx*4 - 4]
mov rax, qword [0x140741670]
movsxd rcx, r15d
cmp byte [rcx + rax + 0xd14], 0
jne 0x14001a747
xor sil, sil
jmp 0x14001a760
movss xmm1, dword [rax + 0x38]
movss xmm0, dword [rax + rcx*4 + 0x3688]
mulss xmm1, xmm1
comiss xmm0, xmm1
setae sil
call fcn.14002b380
test sil, sil
jne 0x14001a7c7
xor al, al
add rsp, 0x48
pop r15
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov r9d, 0xffffffff
lea rdx, [0x1400e09d1]
mov ebx, r9d
lea r10, [0x1400e22e0]
mov r8b, 0x23
cmp r8b, 0x23
jne 0x14001a7a6
cmp byte [rdx], r8b
jne 0x14001a7a6
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 [r10 + rcx*4]
test r8b, r8b
jne 0x14001a793
not ebx
jmp 0x14001a7ce
mov esi, dword [rsp + 0x80]
cmp byte [rdi + 0x41cc], 0
jne 0x14001a80c
call fcn.14001bf10
mov dword [rdi + 0x41ec], ebx
mov dword [rdi + 0x41f0], r14d
mov byte [rdi + 0x41cc], 1
mov dword [rdi + 0x41d0], esi
mov dword [rdi + 0x41d8], r15d
cmp ebx, dword [rdi + 0x3e74]
jne 0x14001a80c
mov byte [rdi + 0x3e82], 1
mov eax, dword [rdi + 0x3da8]
mov dword [rdi + 0x41d4], eax
mov byte [rdi + 0x41cd], 1
test sil, 1
jne 0x14001a85f
xor edx, edx
xor ecx, ecx
call fcn.14001ac10
cmp dword [rdi + 0x4240], 0
je 0x14001a85f
test dword [rdi + 0x4234], 0x1000
je 0x14001a85f
mov rax, qword [rdi + 0x3e28]
mov byte [rax + 0x93], 1
mov byte [rax + 0x95], 1
mov byte [rax + 0xb0], 1
test sil, 0x12
jne 0x14001a86c
and dword [rdi + 0x3ef8], 0xfffffffe
mov al, 1
add rsp, 0x48
pop r15
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret