Function at 0x100bf6a0
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 0x1009b620
lea ecx, [esi + 0x20]
mov dword [esp + 0x1c], eax
call fcn.1009c4d0
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 0x100bf8a1
addss xmm0, dword [0x10226268]
addss xmm2, dword [0x10226268]
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 [0x10226564]
call fcn.101d58ae
cmp byte [edi + 0x88], 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x1c], edx
jne 0x100bf825
movss xmm0, dword [esi + 0x18]
call fcn.1005f380
movss xmm1, dword [0x10226164]
comiss xmm1, xmm0
jb 0x100bf80f
movss xmm2, dword [esi + 0x1c]
movaps xmm0, xmm2
call fcn.1005f380
comiss xmm1, xmm0
jb 0x100bf7da
movss xmm0, dword [esi + 0x20]
subss xmm0, dword [0x10226298]
call fcn.1005f380
comiss xmm1, xmm0
jb 0x100bf7da
movss xmm0, dword [esi]
mulss xmm0, dword [0x10226540]
cvttss2si eax, xmm0
cdq
mov esi, eax
mov ecx, edx
shld ecx, esi, 0x10
mov dword [esp + 0x10], ecx
shl esi, 0x10
jmp 0x100bf83e
movss xmm1, dword [esp + 0x24]
movss xmm0, dword [esi]
mulss xmm1, xmm2
addss xmm1, dword [esi + 0x20]
divss xmm0, xmm1
mulss xmm0, dword [0x10226540]
cvttss2si eax, xmm0
cdq
mov esi, eax
mov ecx, edx
shld ecx, esi, 0x10
mov dword [esp + 0x10], ecx
shl esi, 0x10
jmp 0x100bf83e
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 0x100bf83e
movss xmm0, dword [esi]
mulss xmm0, dword [0x10226564]
call fcn.101d58ae
mov esi, eax
mov dword [esp + 0x10], edx
mov ecx, edx
mov eax, esi
mov edi, 0x100bf650
shrd eax, ecx, 0x10
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x10
jge 0x100bf85a
mov edi, 0x100bf310
jmp 0x100bf877
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x58]
test eax, eax
jne 0x100bf86c
mov edi, 0x100bf360
jmp 0x100bf877
cmp eax, 2
mov ecx, 0x100bf5f0
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 [0x10226540]
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 [0x10226298]
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 0x100bf8b0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10