Function at 0x102291b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov edx, dword [ebp + 8]
movsd xmm1, qword [ebp + 0x14]
mov ecx, dword [edx + 0xbc]
mov eax, dword [edx + 0x6c]
push esi
lea eax, [eax + ecx*8]
mov dword [ebp - 8], eax
mov eax, dword [edx + 0x68]
push edi
lea eax, [eax + ecx*4]
mov ecx, dword [edx + 0x104]
mov dword [ebp - 0xc], eax
mov eax, dword [edx + 0x5c]
mov ecx, dword [eax + ecx*4 + 4]
mov eax, dword [edx + 0x58]
lea esi, [eax + ecx*4]
mov eax, dword [edx + 0x60]
mov dword [ebp + 8], esi
lea edi, [eax + ecx*8]
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 4], edi
mov edx, 1
cmp eax, 4
jl 0x1022928e
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 0xc]
mov edx, eax
add esi, 0x18
add edi, 0xc
shr edx, 2
mov dword [ebp - 0x10], edx
lea edx, [edx*4 + 1]
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x10]
lea esp, [esp]
mov eax, dword [edi - 8]
add edi, 0x10
movsd xmm0, qword [ecx + eax*8]
mulsd xmm0, qword [esi - 0x10]
mov eax, dword [edi - 0x14]
add esi, 0x20
subsd xmm1, xmm0
movsd xmm0, qword [ecx + eax*8]
mulsd xmm0, qword [esi - 0x28]
mov eax, dword [edi - 0x10]
subsd xmm1, xmm0
movsd xmm0, qword [ecx + eax*8]
mulsd xmm0, qword [esi - 0x20]
mov eax, dword [edi - 0xc]
subsd xmm1, xmm0
movsd xmm0, qword [ecx + eax*8]
mulsd xmm0, qword [esi - 0x18]
subsd xmm1, xmm0
dec edx
jne 0x10229230
mov edx, dword [ebp - 0x14]
mov esi, dword [ebp + 8]
mov edi, dword [ebp - 4]
mov eax, dword [ebp + 0x20]
movsd qword [ebp + 0x14], xmm1
cmp edx, eax
jg 0x102292c3
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 0xc]
jmp 0x102292a0
mov eax, dword [edi + edx*4]
inc edx
movsd xmm0, qword [ecx + eax*8]
mulsd xmm0, qword [esi + edx*8 - 8]
subsd xmm1, xmm0
cmp edx, dword [ebp + 0x20]
jle 0x102292a0
mov esi, dword [ebp + 8]
mov edi, dword [ebp - 4]
movsd qword [ebp + 0x14], xmm1
mov eax, dword [ebp + 0x1c]
movsd xmm1, qword [0x1028cdd0]
xor edx, edx
xorps xmm2, xmm2
cmp eax, 4
jl 0x1022938f
mov edx, dword [ebp + 0xc]
add edx, 8
mov dword [ebp - 0x14], edx
lea edx, [edi - 0x10]
mov edi, dword [ebp - 0x14]
add eax, 0xfffffffc
mov dword [ebp - 0x10], edx
shr eax, 2
lea edx, [esi - 8]
inc eax
mov dword [ebp + 0x20], edx
lea edx, [eax*4]
mov dword [ebp - 8], edx
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0xc], eax
jmp 0x10229310
mov eax, dword [edi - 8]
mov esi, dword [ebp + 0x20]
sub dword [ebp + 0x20], 0x10
dec dword [ebp - 0xc]
mov dword [esi + 8], eax
movsd xmm0, qword [ecx + eax*8]
xorpd xmm0, xmm1
movsd qword [edx + 0x10], xmm0
movsd qword [ecx + eax*8], xmm2
mov eax, dword [edi - 4]
mov dword [esi + 4], eax
movsd xmm0, qword [ecx + eax*8]
xorpd xmm0, xmm1
movsd qword [edx + 8], xmm0
movsd qword [ecx + eax*8], xmm2
mov eax, dword [edi]
mov dword [esi], eax
movsd xmm0, qword [ecx + eax*8]
xorpd xmm0, xmm1
movsd qword [edx], xmm0
movsd qword [ecx + eax*8], xmm2
mov eax, dword [edi + 4]
mov dword [esi - 4], eax
movsd xmm0, qword [ecx + eax*8]
xorpd xmm0, xmm1
movsd qword [edx - 8], xmm0
movsd qword [ecx + eax*8], xmm2
lea edi, [edi + 0x10]
lea edx, [edx - 0x20]
jne 0x10229310
mov edx, dword [ebp - 8]
mov esi, dword [ebp + 8]
mov edi, dword [ebp - 4]
mov eax, dword [ebp + 0x1c]
cmp edx, eax
jge 0x102293cc
lea eax, [edx*8]
sub edi, eax
lea eax, [edx*4]
sub esi, eax
mov eax, dword [ebp + 0xc]
inc edx
mov eax, dword [eax + edx*4 - 4]
mov dword [esi], eax
movsd xmm0, qword [ecx + eax*8]
xorpd xmm0, xmm1
movsd qword [edi], xmm0
movsd qword [ecx + eax*8], xmm2
lea esi, [esi - 4]
lea edi, [edi - 8]
cmp edx, dword [ebp + 0x1c]
jl 0x102293a5
fld qword [ebp + 0x14]
pop edi
pop esi
mov esp, ebp
pop ebp
ret