Function at 0x10023560
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
cmp byte [0x100f9340], 0
push ebx
push esi
push edi
je 0x10023a1b
cmp dword [0x100f9358], 0
mov ecx, 7
movss xmm0, dword [0x100f9338]
mov eax, 4
cmovne eax, ecx
mov ecx, dword [0x100fc31c]
mov dword [ebp - 4], eax
push ecx
movss dword [esp], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x1b0]
call eax
cmp byte [0x100f9350], 0
je 0x100237e0
lea eax, [ebp - 8]
mov dword [ebp - 8], 6
push eax
mov ecx, 0x1017dbe0
call fcn.100ce400
mov ebx, dword [eax + 4]
mov edi, dword [eax]
cmp edi, ebx
je 0x100237e0
nop word [eax + eax]
mov esi, dword [edi]
lea edx, [ebp - 0x18]
mov eax, dword [esi + 4]
lea ecx, [esi + 4]
push edx
lea edx, [ebp - 0x24]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
mov eax, dword [eax + 0x50]
push edx
call eax
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x24]
call eax
movss xmm4, dword [ebp - 0x10]
addss xmm4, dword [ebp - 0x1c]
movss xmm7, dword [0x100f0654]
movss xmm6, dword [eax]
movss xmm5, dword [eax + 4]
movaps xmm0, xmm6
mulss xmm0, dword [0x100fb3d0]
movaps xmm1, xmm5
mulss xmm1, dword [0x100fb3d4]
mulss xmm4, xmm7
addss xmm1, xmm0
addss xmm4, dword [eax + 8]
movaps xmm0, xmm4
mulss xmm0, dword [0x100fb3d8]
addss xmm1, xmm0
addss xmm1, dword [0x100fb3dc]
cvtps2pd xmm0, xmm1
comisd xmm0, xmmword [0x100f0688]
jbe 0x100237d5
movss xmm3, dword [0x100f06a8]
movaps xmm0, xmm6
mulss xmm0, dword [0x100fb3a0]
xorps xmm2, xmm2
mov eax, dword [0x100fc3e8]
divss xmm3, xmm1
mov ecx, dword [0x100fc3ec]
mov dword [ebp - 0x34], 0x48d048f
mov dword [ebp - 0x30], 0x4860488
mov dword [ebp - 0x2c], 0x484049f
mov byte [ebp - 0x26], 1
movaps xmm1, xmm5
mulss xmm6, dword [0x100fb3b0]
mulss xmm1, dword [0x100fb3a4]
mulss xmm5, dword [0x100fb3b4]
addss xmm1, xmm0
movaps xmm0, xmm4
mulss xmm0, dword [0x100fb3a8]
mulss xmm4, dword [0x100fb3b8]
addss xmm5, xmm6
addss xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
cdq
sub eax, edx
sar eax, 1
addss xmm5, xmm4
addss xmm1, dword [0x100fb3ac]
addss xmm5, dword [0x100fb3bc]
mulss xmm1, xmm3
mulss xmm1, xmm7
mulss xmm5, xmm3
cvtps2pd xmm1, xmm1
mulss xmm5, xmm7
mulsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
addsd xmm1, qword [0x100f06e8]
cvtsi2sd xmm2, eax
xor eax, eax
mov word [ebp - 0x28], ax
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
cvtps2pd xmm1, xmm5
movss dword [ebp - 0xc], xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, ecx
xor ecx, ecx
mulsd xmm1, xmm0
addsd xmm1, qword [0x100f06e8]
subsd xmm2, xmm1
cvtpd2ps xmm0, xmm2
nop word [eax + eax]
lea eax, [ecx + 0x4c7]
xor word [ebp + ecx*2 - 0x34], ax
inc ecx
cmp ecx, 6
jb 0x10023790
lea eax, [ebp - 0x34]
mov byte [ebp - 0x26], 0
push eax
lea eax, [ebp - 8]
mov dword [ebp - 8], 1
push eax
cvttss2si eax, xmm0
push 0x100f9478
push eax
cvttss2si eax, dword [ebp - 0xc]
push eax
lea eax, [ebp - 4]
push eax
push 0x1017dbc8
call fcn.100cd120
add esp, 0x1c
add edi, 4
cmp edi, ebx
jne 0x100235e0
cmp byte [0x100f9348], 0
je 0x10023a03
lea eax, [ebp - 0xc]
mov dword [ebp - 0xc], 7
push eax
mov ecx, 0x1017dbe0
call fcn.100ce400
mov ebx, dword [eax + 4]
mov edi, dword [eax]
cmp edi, ebx
je 0x10023a03
nop
mov esi, dword [edi]
lea edx, [ebp - 0x24]
mov eax, dword [esi + 4]
lea ecx, [esi + 4]
push edx
lea edx, [ebp - 0x30]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
mov eax, dword [eax + 0x50]
push edx
call eax
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x24]
call eax
movss xmm4, dword [ebp - 0x1c]
addss xmm4, dword [ebp - 0x28]
movss xmm7, dword [0x100f0654]
movss xmm6, dword [eax]
movss xmm5, dword [eax + 4]
movaps xmm0, xmm6
mulss xmm0, dword [0x100fb3d0]
movaps xmm1, xmm5
mulss xmm1, dword [0x100fb3d4]
mulss xmm4, xmm7
addss xmm1, xmm0
addss xmm4, dword [eax + 8]
movaps xmm0, xmm4
mulss xmm0, dword [0x100fb3d8]
addss xmm1, xmm0
addss xmm1, dword [0x100fb3dc]
cvtps2pd xmm0, xmm1
comisd xmm0, xmmword [0x100f0688]
jbe 0x100239f8
movss xmm3, dword [0x100f06a8]
movaps xmm0, xmm6
mulss xmm0, dword [0x100fb3a0]
xorps xmm2, xmm2
mov eax, dword [0x100fc3e8]
divss xmm3, xmm1
mov ecx, dword [0x100fc3ec]
mov dword [ebp - 0x18], 0x4850486
mov dword [ebp - 0x14], 0x4850484
mov byte [ebp - 0xe], 1
movaps xmm1, xmm5
mulss xmm6, dword [0x100fb3b0]
mulss xmm1, dword [0x100fb3a4]
mulss xmm5, dword [0x100fb3b4]
addss xmm1, xmm0
movaps xmm0, xmm4
mulss xmm0, dword [0x100fb3a8]
mulss xmm4, dword [0x100fb3b8]
addss xmm5, xmm6
addss xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
cdq
sub eax, edx
sar eax, 1
addss xmm5, xmm4
addss xmm1, dword [0x100fb3ac]
addss xmm5, dword [0x100fb3bc]
mulss xmm1, xmm3
mulss xmm1, xmm7
mulss xmm5, xmm3
cvtps2pd xmm1, xmm1
mulss xmm5, xmm7
mulsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
addsd xmm1, qword [0x100f06e8]
cvtsi2sd xmm2, eax
xor eax, eax
mov word [ebp - 0x10], ax
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
cvtps2pd xmm1, xmm5
movss dword [ebp - 8], xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, ecx
xor ecx, ecx
mulsd xmm1, xmm0
addsd xmm1, qword [0x100f06e8]
subsd xmm2, xmm1
cvtpd2ps xmm0, xmm2
lea eax, [ecx + 0x4c7]
xor word [ebp + ecx*2 - 0x18], ax
inc ecx
cmp ecx, 4
jb 0x100239b3
lea eax, [ebp - 0x18]
mov byte [ebp - 0xe], 0
push eax
lea eax, [ebp - 0xc]
mov dword [ebp - 0xc], 1
push eax
cvttss2si eax, xmm0
push 0x100f9484
push eax
cvttss2si eax, dword [ebp - 8]
push eax
lea eax, [ebp - 4]
push eax
push 0x1017dbc8
call fcn.100cd120
add esp, 0x1c
add edi, 4
cmp edi, ebx
jne 0x10023810
mov ecx, dword [0x100fc31c]
push ecx
mov dword [esp], 0x3f800000
mov eax, dword [ecx]
mov eax, dword [eax + 0x1b0]
call eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret