Function at 0x560780
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
push ebx
push esi
push edi
mov edi, ecx
mov ecx, dword [edi + 4]
mov esi, dword [edi + 0x8c]
mov eax, dword [edi + 0x84]
mov dword [esp + 0x10], eax
mov eax, dword [ecx + 0x5c]
mov dword [esp + 0x20], ecx
lea edx, [esi + 0x24]
push esi
push 0x540040
lea ecx, [esi + 0x20]
mov dword [esp + 0x1c], eax
call fcn.00540ef0
mov eax, dword [esi + 8]
add esp, 8
mov ecx, dword [ebp + 0xc]
lea esi, [edi + 0x5c]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 8]
mov ebx, eax
xor ebx, ecx
movd xmm0, ecx
and ebx, 1
cvtdq2ps xmm0, xmm0
shl ebx, 8
cmp byte [edi + 0x88], 2
movd xmm2, eax
cvtdq2ps xmm2, xmm2
movss dword [esp + 0x24], xmm0
movss dword [esp + 0x1c], xmm2
je 0x560981
addss xmm0, dword [0x6f2b28]
addss xmm2, dword [0x6f2b28]
lea eax, [esp + 0x30]
push eax
sub esp, 8
movss dword [esp + 4], xmm0
movss dword [esp], xmm2
push esi
call dword [esp + 0x20]
movss xmm0, dword [esp + 0x40]
add esp, 0x10
mulss xmm0, dword [0x6f2e44]
call fcn.0067e8de
cmp byte [edi + 0x88], 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x1c], edx
jne 0x560905
movss xmm0, dword [esi + 0x18]
call fcn.004d5c30
movss xmm1, dword [0x6f2a2c]
comiss xmm1, xmm0
jb 0x5608ef
movss xmm2, dword [esi + 0x1c]
movaps xmm0, xmm2
call fcn.004d5c30
comiss xmm1, xmm0
jb 0x5608ba
movss xmm0, dword [esi + 0x20]
subss xmm0, dword [0x6f2b58]
call fcn.004d5c30
comiss xmm1, xmm0
jb 0x5608ba
movss xmm0, dword [esi]
mulss xmm0, dword [0x6f2e24]
cvttss2si eax, xmm0
cdq
mov esi, eax
mov ecx, edx
shld ecx, esi, 0x10
mov dword [esp + 0x10], ecx
shl esi, 0x10
jmp 0x56091e
movss xmm1, dword [esp + 0x24]
movss xmm0, dword [esi]
mulss xmm1, xmm2
addss xmm1, dword [esi + 0x20]
divss xmm0, xmm1
mulss xmm0, dword [0x6f2e24]
cvttss2si eax, xmm0
cdq
mov esi, eax
mov ecx, edx
shld ecx, esi, 0x10
mov dword [esp + 0x10], ecx
shl esi, 0x10
jmp 0x56091e
mov eax, dword [esp + 0x2c]
cdq
mov esi, eax
mov ecx, edx
shld ecx, esi, 0x10
mov dword [esp + 0x10], ecx
shl esi, 0x10
jmp 0x56091e
movss xmm0, dword [esi]
mulss xmm0, dword [0x6f2e44]
call fcn.0067e8de
mov esi, eax
mov dword [esp + 0x10], edx
mov ecx, edx
mov eax, esi
mov edi, 0x560730
shrd eax, ecx, 0x10
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x10
jge 0x56093a
mov edi, 0x560440
jmp 0x560957
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x58]
test eax, eax
jne 0x56094c
mov edi, 0x560490
jmp 0x560957
cmp eax, 2
mov ecx, 0x5606d0
cmove edi, ecx
push dword [ebp + 0x14]
push ebx
push dword [esp + 0x20]
push dword [ebp + 0x10]
push dword [esp + 0x2c]
push dword [esp + 0x3c]
push dword [esp + 0x28]
push esi
push dword [esp + 0x34]
call edi
add esp, 0x24
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebp + 0x14]
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x20], eax
nop dword [eax + eax]
lea eax, [esp + 0x30]
push eax
sub esp, 8
movss dword [esp + 4], xmm0
movss dword [esp], xmm2
push esi
call dword [esp + 0x20]
movss xmm0, dword [esp + 0x40]
mulss xmm0, dword [0x6f2e24]
cvttss2si eax, xmm0
push eax
call dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
add esp, 0x14
movss xmm2, dword [esp + 0x1c]
addss xmm2, dword [0x6f2b58]
movss xmm0, dword [esp + 0x24]
shr eax, 8
add eax, ebx
xor ebx, 0x100
movss dword [esp + 0x1c], xmm2
mov ax, word [ecx + eax*2]
mov word [edi], ax
add edi, 2
sub dword [esp + 0x20], 1
jne 0x560990
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10