Function at 0x100090cb
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push esi
movsx esi, cx
mov ecx, dword [0x1002d940]
push edi
xor edi, edi
mov byte [ebp - 1], dl
mov dword [0x1002d998], esi
mov edx, edi
test esi, esi
jle 0x1000915f
mov eax, dword [0x1002d938]
movss xmm1, dword [ecx + 0x98]
movss xmm0, dword [ecx + 0x8c]
mov eax, dword [eax + edx*4]
mulss xmm1, dword [eax + 0x1d]
mulss xmm0, dword [eax + 0x19]
addss xmm1, xmm0
addss xmm1, dword [ecx + 0xa4]
movss dword [eax + 0xd], xmm1
movss xmm1, dword [ecx + 0x9c]
mulss xmm1, dword [eax + 0x1d]
movss xmm0, dword [ecx + 0x90]
mulss xmm0, dword [eax + 0x19]
mov eax, dword [0x1002d938]
addss xmm1, xmm0
mov eax, dword [eax + edx*4]
inc edx
addss xmm1, dword [ecx + 0xa8]
xorps xmm1, xmmword [0x10025df0]
movss dword [eax + 0x11], xmm1
cmp edx, esi
jl 0x100090ed
mov edx, dword [0x1002d938]
xor ecx, ecx
inc ecx
mov eax, dword [edx]
movss xmm2, dword [eax + 0x11]
movss xmm1, dword [eax + 0xd]
movss dword [ebp - 8], xmm2
cmp esi, ecx
jle 0x100091a2
mov eax, dword [edx + ecx*4]
inc ecx
movss xmm0, dword [eax + 0xd]
minss xmm0, xmm1
movaps xmm1, xmm0
movss xmm0, dword [eax + 0x11]
minss xmm0, xmm2
movaps xmm2, xmm0
cmp ecx, esi
jl 0x1000917d
movss dword [ebp - 8], xmm2
xorps xmm0, xmm0
comiss xmm0, xmm2
ja 0x100091c5
comiss xmm0, xmm1
ja 0x100091ca
movss xmm3, dword [0x10025d4c]
comiss xmm1, xmm3
jae 0x100091c5
comiss xmm2, xmm3
jb 0x10009266
comiss xmm0, xmm1
jbe 0x100091e9
cvtps2pd xmm0, xmm1
push ecx
push ecx
movsd qword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_ceil]
fstp dword [ebp - 0xc]
fld dword [ebp - 0xc]
fld1
fsubp st(1)
fstp dword [ebp - 0xc]
jmp 0x100091fc
cvtps2pd xmm0, xmm1
push ecx
push ecx
movsd qword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_floor]
fstp dword [ebp - 0xc]
movss xmm0, dword [ebp - 8]
xorps xmm1, xmm1
comiss xmm1, xmm0
pop ecx
pop ecx
push ecx
push ecx
cvtps2pd xmm2, xmm0
movsd qword [esp], xmm2
jbe 0x1000922a
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_ceil]
fstp dword [ebp - 8]
fld dword [ebp - 8]
fld1
fsubp st(1)
fstp dword [ebp - 8]
jmp 0x10009233
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_floor]
fstp dword [ebp - 8]
pop ecx
pop ecx
mov ecx, edi
test esi, esi
jle 0x10009266
mov eax, dword [0x1002d938]
mov eax, dword [eax + ecx*4]
inc ecx
movss xmm0, dword [eax + 0xd]
subss xmm0, dword [ebp - 0xc]
movss dword [eax + 0xd], xmm0
movss xmm0, dword [eax + 0x11]
subss xmm0, dword [ebp - 8]
movss dword [eax + 0x11], xmm0
cmp ecx, esi
jl 0x1000923b
mov cl, byte [ebp - 1]
and cl, 1
test byte [ebp - 1], 2
je 0x100092b3
mov eax, 0xff
sub eax, dword [0x1002d974]
mov dword [0x1002d978], eax
test cl, cl
jne 0x1000929c
cmp byte [0x1002d9a3], cl
je 0x10009295
call fcn.10001d89
jmp 0x100092c3
call fcn.10001d89
jmp 0x100092c3
cmp byte [0x1002d9a3], 0
je 0x100092ac
call fcn.10001d89
jmp 0x100092c3
call fcn.10001d89
jmp 0x100092c3
test cl, cl
jne 0x100092be
call fcn.10001d89
jmp 0x100092c3
call fcn.10001d89
cmp dword [0x1002d970], edi
je 0x10009305
cmp dword [0x1002d998], edi
jle 0x10009305
mov esi, edi
mov eax, dword [0x1002d938]
mov ecx, dword [eax + esi*4]
mov eax, dword [ecx]
cdq
sub eax, edx
sar eax, 1
mov dword [ecx], eax
mov eax, dword [0x1002d938]
mov ecx, dword [eax + esi*4]
mov eax, dword [ecx + 4]
cdq
sub eax, edx
sar eax, 1
inc edi
movsx esi, di
mov dword [ecx + 4], eax
cmp esi, dword [0x1002d998]
jl 0x100092d5
pop edi
xor eax, eax
pop esi
leave
ret