Function at 0x406ac0
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [0x466040]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, dword [0x466af0]
mov ebx, ecx
mov esi, edi
mov dword [ebp - 0x10], esi
mov eax, dword [esi + 0x12c4]
mov dword [ebp - 8], eax
test ebx, 0xfffc005f
je 0x406b01
mov ecx, str.Invalid_flags_for_IsItemHovered___
call fcn.004134a0
mov edi, dword [0x466af0]
cmp byte [esi + 0x1d99], 0
je 0x406b7a
cmp byte [esi + 0x1d98], 0
je 0x406b7a
test ebx, 0x800
jne 0x406b7a
mov eax, dword [edi + 0x1d9c]
cmp eax, dword [edi + 0x1c60]
jne 0x406d6e
test eax, eax
je 0x406d6e
test dword [esi + 0x1c64], 0x400
je 0x406b4d
test ebx, 0x400
je 0x406d6e
mov eax, dword [ebp - 8]
test ebx, 0x1000
je 0x406c6c
mov edx, dword [esi + 0x100c]
mov ecx, edx
and ecx, 0xfffe3fff
test ebx, 0x1c000
cmove ecx, edx
or ebx, ecx
jmp 0x406c6c
mov ecx, dword [esi + 0x1c68]
test cl, 1
je 0x406d6e
test ebx, 0x1000
je 0x406bb0
mov edx, dword [esi + 0x1008]
mov ecx, edx
and ecx, 0xfffe3fff
test ebx, 0x1c000
cmove ecx, edx
or ebx, ecx
mov ecx, dword [esi + 0x1c68]
mov eax, dword [ebp - 8]
cmp dword [esi + 0x12c8], eax
je 0x406bcb
test cl, cl
js 0x406bcb
test ebx, 0x200
je 0x406d6e
mov edx, dword [esi + 0x1c60]
test bl, bl
js 0x406bf5
mov ecx, dword [esi + 0x1320]
test ecx, ecx
je 0x406bf5
cmp ecx, edx
je 0x406bf5
cmp byte [esi + 0x132d], 0
jne 0x406bf5
cmp ecx, dword [eax + 0x7c]
jne 0x406d6e
mov edx, ebx
mov ecx, eax
call fcn.00406a50
test al, al
jne 0x406c12
test dword [esi + 0x1c64], 0x2000
je 0x406d6e
mov edx, dword [esi + 0x1c64]
test edx, 0x400
je 0x406c2c
test ebx, 0x400
je 0x406d6e
mov eax, dword [ebp - 8]
mov ecx, dword [esi + 0x1c60]
cmp ecx, dword [eax + 0x7c]
jne 0x406c47
cmp byte [eax + 0xbc], 0
jne 0x406d6e
test edx, 0x4000
je 0x406c6c
test ecx, ecx
je 0x406c6c
test ebx, 0x100
jne 0x406c6c
mov eax, dword [esi + 0x130c]
cmp eax, ecx
jne 0x406d6e
mov eax, dword [ebp - 8]
xorps xmm0, xmm0
test ebx, 0x10000
je 0x406c81
movss xmm1, dword [edi + 0x1004]
jmp 0x406c96
test ebx, 0x8000
je 0x406c93
movss xmm1, dword [edi + 0x1000]
jmp 0x406c96
xorps xmm1, xmm1
comiss xmm1, xmm0
ja 0x406cb6
test ebx, 0x2000
jne 0x406cb6
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004550f4
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 0x1c60]
test edx, edx
jne 0x406d23
movss xmm0, dword [esi + 0x1c6c]
lea edi, [ebp - 0xc]
subss xmm0, dword [eax + 0x110]
mov ecx, dword [eax + 0xf4]
movss dword [ebp - 0xc], xmm0
movss xmm0, dword [esi + 0x1c70]
mov esi, 8
subss xmm0, dword [eax + 0x114]
mov eax, dword [eax + 0xfc]
mov edx, dword [eax + ecx*4 - 4]
movss dword [ebp - 8], xmm0
not edx
movzx eax, byte [edi]
lea edi, [edi + 1]
movzx ecx, dl
xor ecx, eax
shr edx, 8
xor edx, dword [ecx*4 + 0x45aef0]
sub esi, 1
jne 0x406d04
mov esi, dword [ebp - 0x10]
not edx
test ebx, 0x20000
je 0x406d3d
cmp dword [esi + 0x2170], edx
je 0x406d3d
mov dword [esi + 0x2174], 0
mov dword [esi + 0x216c], edx
test ebx, 0x2000
je 0x406d53
cmp dword [esi + 0x217c], edx
jne 0x406d6e
comiss xmm1, dword [esi + 0x2174]
setbe al
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004550f4
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor al, al
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004550f4
mov esp, ebp
pop ebp
ret