Function at 0x1023341e
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x248
movss dword [esp], xmm0
mov edi, edx
mov ebx, ecx
mov esi, dword [ebp + 8]
mov eax, dword [0x10305014]
xor eax, ebp
mov dword [esp + 0x240], eax
lea eax, [esp + 0x60]
push 0x1e0
push 0xff
push eax
call fcn.10132b90
add esp, 0xc
mov eax, esi
and eax, 1
or eax, edi
je 0x1023346f
xor esi, esi
dec esi
jmp 0x1023379c
xorps xmm0, xmm0
cvtss2sd xmm0, dword [esp]
mulsd xmm0, qword [0x102e1ce0]
sub esp, 8
movsd qword [esp], xmm0
call fcn.101464c0
add esp, 8
fstp qword [esp + 0x48]
movsd xmm0, qword [esp + 0x48]
movsd qword [esp], xmm0
mov eax, dword [ebx + 8]
mov dword [eax], 1
mov eax, esi
shr eax, 1
mov dword [esp + 0xc], eax
cmp esi, 2
jb 0x10233527
xor edi, edi
inc edi
mov eax, dword [esp + 0xc]
cmp eax, 2
mov ecx, edi
cmovae ecx, eax
neg ecx
mov dword [esp + 0x10], ecx
mov eax, dword [ebp + 8]
lea esi, [eax - 1]
mov dword [esp + 0x30], ebx
mov eax, dword [ebx + 8]
mov dword [esp + 0x20], eax
mov edx, dword [eax + edi*4 - 4]
mov dword [esp + 0x18], edx
sar edx, 0x1f
mov ebx, esi
sar ebx, 0x1f
mov ecx, esi
add ecx, 1
adc ebx, 0
mov eax, ecx
imul ecx, edx
mov edx, dword [esp + 0x18]
imul ebx, edx
mul edx
add ecx, edx
add ecx, ebx
mov ebx, dword [esp + 0x30]
push 0
push edi
push ecx
push eax
call fcn.1014f930
mov ecx, dword [esp + 0x20]
mov dword [ecx + edi*4], eax
mov eax, dword [esp + 0x10]
add eax, edi
inc eax
inc edi
dec esi
cmp eax, 1
jne 0x102334d3
mov esi, ebx
movaps xmm0, xmmword [0x102e1cf0]
movups xmmword [esp + 0x50], xmm0
mov ebx, dword [ebp + 8]
test ebx, ebx
jle 0x10233771
movsd xmm0, qword [esp]
addsd xmm0, xmm0
movsd qword [esp], xmm0
mov edi, ebx
shl edi, 4
push edi
push 0
lea eax, [esp + 0x68]
push eax
call fcn.10132b90
add esp, 0xc
xorps xmm0, xmm0
cvtsi2sd xmm0, ebx
movsd qword [esp + 0x10], xmm0
mov eax, ebx
mov dword [esp + 0x2c], edi
lea ebx, [esp + edi]
add ebx, 0x50
inc eax
mov dword [esp + 0x34], eax
xor edi, edi
mov eax, dword [esp + 0xc]
add eax, edi
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
addsd xmm0, qword [0x10299160]
mulsd xmm0, qword [0x102a8d48]
divsd xmm0, qword [esp + 0x10]
movsd qword [esp + 0x18], xmm0
sub esp, 8
movsd qword [esp], xmm0
call fcn.10143d10
add esp, 8
fstp qword [esp + 0x40]
movsd xmm0, qword [esp + 0x40]
mulsd xmm0, qword [esp]
movsd qword [esp + 0x20], xmm0
sub esp, 8
movsd xmm0, qword [esp + 0x20]
movsd qword [esp], xmm0
call fcn.10146050
add esp, 8
fstp qword [esp + 0x38]
movsd xmm0, qword [esp + 0x38]
mulsd xmm0, qword [esp]
movsd xmm4, qword [esp + 0x20]
movapd xmm2, xmm4
addsd xmm2, qword [0x102a21c0]
addsd xmm4, qword [0x102e1d00]
movapd xmm1, xmm2
mulsd xmm1, xmm4
movapd xmm3, xmm0
mulsd xmm3, xmm0
addsd xmm1, xmm3
mulsd xmm2, xmm0
mulsd xmm0, xmm4
mulsd xmm4, xmm4
addsd xmm4, xmm3
divsd xmm1, xmm4
subsd xmm0, xmm2
divsd xmm0, xmm4
movsd xmm3, qword [ebx]
movsd xmm2, qword [ebx + 8]
mov ecx, ebx
mov eax, dword [esp + 0x34]
movapd xmm6, xmm1
mulsd xmm6, xmm3
movapd xmm4, xmm0
mulsd xmm4, xmm2
subsd xmm6, xmm4
movsd xmm4, qword [ecx - 0x10]
movsd xmm5, qword [ecx - 8]
addsd xmm6, xmm4
movsd qword [ecx], xmm6
mulsd xmm3, xmm0
mulsd xmm2, xmm1
addsd xmm2, xmm3
addsd xmm2, xmm5
movsd qword [ecx + 8], xmm2
add ecx, 0xfffffff0
dec eax
movapd xmm2, xmm5
movapd xmm3, xmm4
cmp eax, 1
jg 0x1023364f
movsd xmm2, qword [esp + 0x50]
movsd xmm3, qword [esp + 0x58]
movapd xmm4, xmm1
mulsd xmm4, xmm2
movapd xmm5, xmm0
mulsd xmm5, xmm3
subsd xmm4, xmm5
mulsd xmm0, xmm2
mulsd xmm1, xmm3
addsd xmm1, xmm0
movsd qword [esp + 0x58], xmm1
movsd qword [esp + 0x50], xmm4
inc edi
cmp edi, dword [ebp + 8]
jne 0x10233583
mov ecx, dword [esp + 0x2c]
movsd xmm0, qword [esp + ecx + 0x50]
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
mov edi, esi
lea eax, [esi + 4]
movss dword [esi + 4], xmm1
movsd xmm1, qword [esp + ecx + 0x58]
movaps xmm3, xmm0
mulsd xmm3, xmm0
movapd xmm2, xmm1
mulsd xmm2, xmm1
addsd xmm2, xmm3
xor ecx, ecx
lea edx, [esp + 0x58]
movapd xmm3, xmmword [0x102a8d90]
mov ebx, dword [ebp + 8]
movsd xmm4, qword [edx - 8]
xorps xmm5, xmm5
cvtss2sd xmm5, dword [edi + 4]
addsd xmm5, xmm4
cvtsd2ss xmm5, xmm5
movss dword [edi + 4], xmm5
movsd xmm5, qword [edx]
xorpd xmm5, xmm3
mulsd xmm5, xmm1
mulsd xmm4, xmm0
subsd xmm5, xmm4
divsd xmm5, xmm2
xorps xmm4, xmm4
cvtsd2ss xmm4, xmm5
mov esi, dword [edi + 0xc]
movss dword [esi + ecx*4], xmm4
inc ecx
add edx, 0x10
cmp ebx, ecx
jne 0x10233722
movss xmm0, dword [eax]
jmp 0x10233784
mov eax, ebx
shl eax, 4
xorps xmm0, xmm0
cvtsd2ss xmm0, qword [esp + eax + 0x50]
mov eax, esi
add eax, 4
xor edx, edx
inc edx
mov ecx, ebx
shl edx, cl
xorps xmm1, xmm1
cvtsi2ss xmm1, edx
divss xmm0, xmm1
movss dword [eax], xmm0
xor esi, esi
mov ecx, dword [esp + 0x240]
xor ecx, ebp
call fcn.10130483
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret