Function at 0x140028430
Capabilities:
Hash data with crc32

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], r9
mov qword [rax + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x4f]
sub rsp, 0x90
mov r14, qword [0x1400d9270]
mov r13d, r8d
mov r8d, dword [rbp + 0x77]
mov r12, rcx
or r8d, 2
movaps xmmword [rax - 0x48], xmm6
test dword [rbp + 0x7f], 0x10000
mov esi, 0x1000041
mov r15, qword [r14 + 0x3ee8]
mov rdi, r14
cmove r8d, dword [rbp + 0x77]
movaps xmmword [rax - 0x58], xmm7
mov ecx, r8d
and ecx, 0xfffffffb
movaps xmmword [rax - 0x68], xmm8
test r8b, 0x10
mov eax, 0x1000001
cmove ecx, r8d
mov ebx, ecx
and ebx, 0xfffffff7
test cl, 0x20
cmove ebx, ecx
test bl, 0x70
cmove esi, eax
mov eax, dword [r15 + 0xc]
and eax, 4
or esi, eax
or esi, dword [rbp + 0x7f]
test bl, 0xc
jne 0x1400284cd
or esi, 0x102
test bl, bl
jns 0x14002854c
movups xmm0, xmmword [r14 + 0x38ec]
lea rcx, [r14 + 0x4830]
mov dword [rbp - 0x31], 3
lea rdx, [rbp - 0x31]
movups xmmword [rbp - 0x2d], xmm0
call fcn.140038fb0
movups xmm0, xmmword [r14 + 0x393c]
mov ecx, 7
movups xmmword [r14 + 0x38ec], xmm0
movss xmm1, dword [r14 + 0x382c]
call fcn.140021e90
movss xmm1, dword [r14 + 0x3830]
mov ecx, 8
call fcn.140021e90
lea rdx, [r14 + 0x3824]
mov ecx, 2
call fcn.140021f10
mov r14, qword [0x1400d9270]
or ebx, 3
mov r9, qword [rbp + 0x6f]
or esi, 4
or dword [rdi + 0x47c0], 0x100
mov dword [rdi + 0x47f8], ebx
mov rcx, qword [r14 + 0x3ee8]
cmp qword [rcx + 0x1b0], 0
movss xmm2, dword [rcx + 0x258]
movss xmm3, dword [rcx + 0x25c]
jne 0x140028587
cmp qword [r14 + 0x4b40], 0
je 0x14002858f
movss xmm2, dword [rcx + 0x228]
xorps xmm7, xmm7
subss xmm2, dword [rcx + 0x100]
subss xmm3, dword [rcx + 0x104]
test bl, 0x20
je 0x1400285aa
xorps xmm3, xmm3
test bl, 0x10
je 0x1400285b2
xorps xmm2, xmm2
mov rdx, qword [r9]
lea rcx, [rbp + 0x57]
call fcn.140031c70
or dword [r14 + 0x47c0], 2
lea rcx, [rbp + 0x57]
movsd xmm0, qword [rbp + 0x57]
xor edx, edx
movsd qword [r14 + 0x47e0], xmm0
mov dword [r14 + 0x47c8], 1
mov r9, qword [r15]
test r12, r12
je 0x140028605
mov dword [rsp + 0x28], r13d
lea r8, str._s__s__08X
mov qword [rsp + 0x20], r12
call fcn.140021280
jmp 0x140028616
lea r8, str._s__08X
mov dword [rsp + 0x20], r13d
call fcn.140021280
movss xmm6, dword [rdi + 0x3818]
test bl, 1
jne 0x14002862d
mov dword [rdi + 0x3818], 0
mov rcx, qword [rbp + 0x57]
mov r8d, esi
xor edx, edx
call fcn.14002bc80
movss dword [rdi + 0x3818], xmm6
mov byte [rbp + 0x77], al
test bl, bl
jns 0x14002868f
mov ecx, 3
call fcn.140021fa0
mov r8, qword [0x1400d9270]
movsxd rcx, dword [r8 + 0x4830]
cmp ecx, 1
jl 0x14002868f
lea rdx, [rcx + rcx*4]
mov rcx, qword [r8 + 0x4838]
movsxd rax, dword [rcx + rdx*4 - 0x14]
movups xmm0, xmmword [rcx + rdx*4 - 0x10]
add rax, rax
movups xmmword [r8 + rax*8 + 0x38bc], xmm0
dec dword [r8 + 0x4830]
mov r14, qword [rdi + 0x3ee8]
cmp word [r14 + 0xc0], 1
mov dword [r14 + 0x78], r13d
jne 0x1400286b4
movsd xmm0, qword [r14 + 0x18]
movsd qword [r15 + 0x100], xmm0
mov r9d, r13d
lea rdx, [0x140095149]
not r9d
lea r10, [0x140090630]
mov ebx, r9d
mov r8b, 0x23
nop
cmp r8b, 0x23
jne 0x1400286e3
cmp byte [rdx], r8b
jne 0x1400286e3
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 0x1400286d0
not ebx
cmp dword [rdi + 0x3f4c], ebx
jne 0x14002870f
call fcn.140024db0
cmp dword [rdi + 0x48d8], r13d
jne 0x14002875d
bt esi, 0x17
jb 0x14002875d
cmp word [r14 + 0x15c], 0
jne 0x140028733
cmp byte [r14 + 0x161], 0
je 0x14002875d
xor edx, edx
mov rcx, r14
call fcn.14002e450
xor edx, edx
mov rcx, r14
call fcn.140034500
mov rdx, r14
mov ecx, ebx
call fcn.140024c60
mov eax, dword [rdi + 0x4900]
mov dword [rdi + 0x3f70], eax
mov rax, qword [0x1400d9270]
lea r8, str.Foreground
mov edx, 1
mov rcx, qword [rax + 0x48c0]
mov rcx, qword [rcx]
call fcn.140025250
movss xmm1, dword [0x1400d946c]
mov r10, rax
movss xmm0, dword [0x1400d9468]
mov rdi, qword [rbp + 0x6f]
mov rcx, qword [0x1400d9270]
movss dword [rbp - 0x31], xmm0
movss xmm0, dword [0x1400d9470]
movss dword [rbp - 0x29], xmm0
movss dword [rbp - 0x2d], xmm1
movss xmm1, dword [0x1400d9474]
mulss xmm1, dword [rcx + 0x37e8]
lea rcx, [rbp - 0x31]
movss dword [rbp - 0x25], xmm1
movss xmm1, dword [r15 + 0x100]
movaps xmm0, xmm1
movss dword [rbp + 0x57], xmm1
addss xmm0, dword [rdi]
movss dword [rbp + 0x6f], xmm0
movss xmm0, dword [r15 + 0x104]
movss dword [rbp + 0x73], xmm0
subss xmm0, dword [0x140096850]
movss dword [rbp + 0x5b], xmm0
call fcn.140021810
movss xmm6, dword [0x1400967ec]
lea rdx, [rbp + 0x57]
mov r9d, eax
mov dword [rsp + 0x28], 0x30
lea r8, [rbp + 0x6f]
movss dword [rsp + 0x20], xmm6
mov rcx, r10
call fcn.1400440e0
mov rax, qword [0x1400d9270]
lea r8, str.Foreground
mov edx, 1
mov rcx, qword [rax + 0x48c0]
mov rcx, qword [rcx]
call fcn.140025250
movss xmm1, dword [0x1400d95f4]
mov r10, rax
movss xmm0, dword [0x1400d95f0]
movss xmm2, dword [r15 + 0x100]
mov rcx, qword [0x1400d9270]
movss dword [rbp - 0x2d], xmm1
movss xmm1, dword [0x1400d95fc]
movss dword [rbp - 0x31], xmm0
mulss xmm1, dword [rcx + 0x37e8]
lea rcx, [rbp - 0x31]
movss xmm0, dword [0x1400d95f8]
movss dword [rbp - 0x29], xmm0
movaps xmm0, xmm2
addss xmm0, dword [rdi]
movss dword [rbp - 0x25], xmm1
movss xmm1, dword [r15 + 0x104]
movss dword [rbp + 0x73], xmm1
subss xmm1, dword [0x14009669c]
movss dword [rbp + 0x6f], xmm0
movss dword [rbp + 0x57], xmm2
movss dword [rbp + 0x5b], xmm1
call fcn.140021810
xor r13d, r13d
lea r8, [rbp + 0x6f]
mov dword [rsp + 0x28], r13d
lea rdx, [rbp + 0x57]
mov r9d, eax
movss dword [rsp + 0x20], xmm6
mov rcx, r10
call fcn.1400440e0
mov r8, qword [0x1400d9270]
mov rax, qword [r8 + 0x3ee8]
mov byte [rax + 0xb4], 1
movss xmm0, dword [0x1400d9468]
movss xmm1, dword [0x1400d946c]
movss dword [rbp - 0x31], xmm0
movss xmm0, dword [0x1400d9470]
movss dword [rbp - 0x2d], xmm1
movss xmm1, dword [0x1400d9474]
lea rcx, [rbp - 0x31]
mulss xmm1, dword [r8 + 0x37e8]
movss xmm3, dword [r15 + 0x100]
movss xmm2, dword [r15 + 0x104]
movss dword [rbp - 0x25], xmm1
movaps xmm1, xmm2
addss xmm1, dword [rdi + 4]
movss dword [rbp - 0x29], xmm0
movaps xmm0, xmm3
addss xmm0, dword [rdi]
movss dword [rbp + 0x57], xmm3
movss dword [rbp + 0x5b], xmm2
movss dword [rbp + 0x73], xmm1
movss dword [rbp + 0x6f], xmm0
call fcn.140021810
mov rcx, qword [r8 + 0x3ee8]
lea rdx, [rbp + 0x57]
mov r9d, eax
mov dword [rsp + 0x28], 0xc0
lea r8, [rbp + 0x6f]
movss dword [rsp + 0x20], xmm6
mov rcx, qword [rcx + 0x2a0]
call fcn.1400440e0
mov rcx, qword [0x1400d9168]
mov rbx, qword [0x1400d9270]
mov rsi, rcx
mov qword [rbp + 0x6f], rcx
test rcx, rcx
jne 0x1400289e8
mov rcx, qword [rbx + 0x70]
test rcx, rcx
jne 0x1400289e1
mov rax, qword [rbx + 0x60]
mov rcx, qword [rax + 0x60]
mov rcx, qword [rcx]
mov qword [rbp + 0x6f], rcx
mov rsi, rcx
call fcn.14002e970
lea rcx, [rbx + 0x4850]
lea rdx, [rbp + 0x6f]
call fcn.140039130
mov rdx, qword [rsi + 0x40]
mov rcx, qword [rbx + 0x3ee8]
mov rdx, qword [rdx + 8]
mov rcx, qword [rcx + 0x2a0]
call fcn.140041940
mov rax, qword [0x1400d9270]
lea r8, str.Foreground
mov edx, 1
mov rcx, qword [rax + 0x48c0]
mov rcx, qword [rcx]
call fcn.140025250
movss xmm1, dword [0x1400d942c]
lea rcx, [rbp - 0x31]
movss xmm0, dword [0x1400d9428]
mov rbx, rax
mov r8, qword [0x1400d9270]
movss dword [rbp - 0x2d], xmm1
movss xmm1, dword [0x1400d9434]
movss dword [rbp - 0x31], xmm0
mulss xmm1, dword [r8 + 0x37e8]
movss xmm0, dword [0x1400d9430]
movss dword [rbp - 0x29], xmm0
movss dword [rbp - 0x25], xmm1
call fcn.140021810
movss xmm6, dword [r15 + 0x104]
mov esi, eax
movss xmm8, dword [0x1400969c4]
subss xmm6, dword [0x140096828]
test r12, r12
jne 0x140028ab0
movaps xmm1, xmm7
jmp 0x140028afa
movss xmm3, dword [0x1400969ac]
lea rdx, [rbp + 0x6f]
movss xmm2, dword [r8 + 0x3c38]
mov rcx, qword [r8 + 0x3c30]
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], r12
movss dword [rsp + 0x20], xmm8
call fcn.14004cfb0
movss xmm0, dword [rbp + 0x6f]
addss xmm0, dword [0x140096694]
cvttss2si eax, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movss xmm0, dword [rdi]
lea rdx, [rbp + 0x6f]
subss xmm0, xmm1
movss dword [rbp + 0x73], xmm6
mov r9, r12
mov r8d, esi
mov rcx, rbx
mulss xmm0, dword [0x140096640]
addss xmm0, dword [r15 + 0x100]
addss xmm0, dword [0x1400967cc]
movss dword [rbp + 0x6f], xmm0
call fcn.140045c70
call fcn.14002eab0
mov rax, qword [0x1400d9270]
lea r8, str.Foreground
mov edx, 1
mov rcx, qword [rax + 0x48c0]
mov rcx, qword [rcx]
call fcn.140025250
movss xmm1, dword [0x1400d942c]
lea rcx, [rbp - 0x31]
movss xmm0, dword [0x1400d9428]
mov rsi, rax
mov rbx, qword [0x1400d9270]
movss dword [rbp - 0x2d], xmm1
movss xmm1, dword [0x1400d9434]
movss dword [rbp - 0x31], xmm0
mulss xmm1, dword [rbx + 0x37e8]
movss xmm0, dword [0x1400d9430]
movss dword [rbp - 0x29], xmm0
movss dword [rbp - 0x25], xmm1
call fcn.140021810
movss xmm6, dword [r15 + 0x104]
mov r14d, eax
mov dword [rbp + 0x6f], 0x3f800000
mov dword [rbp + 0x73], 0x3f800000
mov qword [rbp + 0x57], r13
subss xmm6, dword [0x1400967e8]
test r12, r12
jne 0x140028bdd
movaps xmm1, xmm7
jmp 0x140028c26
movss xmm3, dword [0x1400969ac]
lea rdx, [rbp - 0x31]
movss xmm2, dword [rbx + 0x3c38]
mov rcx, qword [rbx + 0x3c30]
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], r12
movss dword [rsp + 0x20], xmm8
call fcn.14004cfb0
movss xmm0, dword [rbp - 0x31]
addss xmm0, dword [0x140096694]
cvttss2si eax, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movss xmm0, dword [rdi]
movss dword [rbp - 0x35], xmm6
subss xmm0, xmm1
movss xmm6, dword [r15 + 0x104]
subss xmm6, dword [0x14009682c]
mulss xmm0, dword [0x140096640]
addss xmm0, dword [r15 + 0x100]
movss dword [rbp - 0x39], xmm0
test r12, r12
je 0x140028ca8
movss xmm3, dword [0x1400969ac]
lea rdx, [rbp - 0x31]
movss xmm2, dword [rbx + 0x3c38]
mov rcx, qword [rbx + 0x3c30]
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], r12
movss dword [rsp + 0x20], xmm8
call fcn.14004cfb0
movss xmm0, dword [rbp - 0x31]
addss xmm0, dword [0x140096694]
cvttss2si eax, xmm0
movd xmm7, eax
cvtdq2ps xmm7, xmm7
movss xmm0, dword [rdi]
lea rax, [rbp + 0x6f]
mov rdx, qword [rbp + 0x5f]
subss xmm0, xmm7
mov dword [rsp + 0x30], r14d
lea r9, [rbp - 0x39]
mov qword [rsp + 0x28], rax
lea r8, [rbp - 0x31]
lea rax, [rbp + 0x57]
movss dword [rbp - 0x2d], xmm6
mov rcx, rsi
mov qword [rsp + 0x20], rax
mulss xmm0, dword [0x140096640]
addss xmm0, dword [r15 + 0x100]
subss xmm0, dword [0x1400967e8]
movss dword [rbp - 0x31], xmm0
call fcn.140045cf0
movzx eax, byte [rbp + 0x77]
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x50]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm7, xmmword [rsp + 0x70]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret