Function at 0x101a9ab0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
lea esp, [esp - 0x74]
mov ebx, dword [ebp + 0x14]
mov edx, dword [ebp + 0xc]
imul edx, ebx
mov eax, dword [ebp + 0x10]
test byte [ebp + 0x10], 0xf
jne 0x101a9e28
cmp dword [ebp + 0x18], 0
jle 0x101aa18a
mov esi, dword [ebp + 0xc]
lea edi, [ebx - 1]
mov dword [esp + 0x68], edi
mov edi, edx
shl edi, 5
and ebx, 1
mov dword [esp], edi
lea ecx, [esi*8]
mov dword [esp + 0x1c], ecx
mov ecx, edx
shl ecx, 4
lea esi, [esi + esi]
imul edi, edx, 0x28
sub esi, edx
mov dword [esp + 4], ecx
lea ecx, [edx + edx]
add ecx, edx
mov dword [esp + 8], ecx
shl ecx, 4
mov dword [esp + 0x6c], ecx
lea ecx, [edx*8]
mov dword [esp + 0xc], edi
mov edi, ecx
shl esi, 3
sub edi, edx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], edi
mov dword [esp + 0x64], esi
mov dword [esp + 0x60], ecx
mov dword [esp + 0x18], ebx
mov edi, dword [esp]
mov esi, dword [esp + 4]
mov edx, dword [esp + 0x14]
mov ecx, dword [ebp + 0x1c]
mov ebx, dword [ecx + edx*4]
shl ebx, 3
add ebx, dword [ebp + 8]
mov ecx, dword [esp + 0x1c]
add ecx, ebx
cmp dword [esp + 0x68], 0
jle 0x101a9d2f
movaps xmm1, xmmword [0x103a4ba0]
movaps xmm0, xmmword [0x103a4bb0]
mov dword [esp + 4], 0
mov dword [esp + 0x14], edx
movaps xmmword [esp + 0x20], xmm0
movaps xmmword [esp + 0x30], xmm1
mov edx, dword [esp + 4]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x6c]
movsd xmm3, qword [ebx + esi]
movsd xmm6, qword [ebx]
movsd xmm5, qword [ebx + edx]
movsd xmm7, qword [ebx + edi]
mov dword [esp], eax
movhps xmm3, qword [ecx + esi]
movhps xmm5, qword [ecx + edx]
mov eax, dword [esp + 0x60]
movaps xmm0, xmm5
add ebx, dword [esp + 0x60]
subps xmm5, xmm3
addps xmm0, xmm3
movhps xmm6, qword [ecx]
movhps xmm7, qword [ecx + edi]
add ecx, eax
movsd xmm3, qword [ebx]
movaps xmm2, xmm6
movsd xmm1, qword [ebx + edi]
addps xmm2, xmm7
subps xmm6, xmm7
movhps xmm3, qword [ecx]
movsd xmm4, qword [ebx + edx]
movaps xmm7, xmm3
movaps xmmword [esp + 0x40], xmm5
movsd xmm5, qword [ebx + esi]
movhps xmm1, qword [ecx + edi]
movhps xmm4, qword [ecx + edx]
addps xmm7, xmm1
subps xmm3, xmm1
movhps xmm5, qword [ecx + esi]
movaps xmm1, xmm4
mulps xmm3, xmmword [esp + 0x20]
addps xmm1, xmm5
subps xmm4, xmm5
movaps xmm5, xmm2
subps xmm2, xmm0
addps xmm5, xmm0
movaps xmm0, xmm1
subps xmm1, xmm7
addps xmm0, xmm7
shufps xmm1, xmm1, 0xb1
movaps xmm7, xmm5
xorps xmm1, xmmword [esp + 0x30]
addps xmm7, xmm0
subps xmm5, xmm0
movaps xmm0, xmm2
addps xmm2, xmm1
subps xmm0, xmm1
movaps xmmword [esp + 0x50], xmm2
movaps xmm1, xmm6
movaps xmm2, xmmword [esp + 0x20]
mulps xmm4, xmm2
movaps xmm2, xmm4
subps xmm4, xmm3
addps xmm2, xmm3
movaps xmm3, xmmword [esp + 0x40]
addps xmm1, xmm2
subps xmm6, xmm2
movaps xmm2, xmm3
mov eax, dword [esp]
addps xmm2, xmm4
subps xmm4, xmm3
movaps xmm3, xmmword [esp + 0x30]
shufps xmm2, xmm2, 0xb1
shufps xmm4, xmm4, 0xb1
xorps xmm2, xmmword [esp + 0x30]
xorps xmm4, xmm3
movaps xmm3, xmm1
addps xmm1, xmm2
subps xmm3, xmm2
movaps xmm2, xmm6
addps xmm6, xmm4
subps xmm2, xmm4
movaps xmm4, xmm7
unpcklps xmm4, xmm3
unpckhps xmm7, xmm3
movaps xmm3, xmm0
unpckhps xmm0, xmm2
movlps qword [eax + 0x48], xmm0
movhps qword [eax + 0x58], xmm0
movaps xmm0, xmm5
unpcklps xmm0, xmm6
unpckhps xmm5, xmm6
movaps xmm6, xmmword [esp + 0x50]
movlps qword [eax], xmm4
movhps qword [eax + 0x10], xmm4
movaps xmm4, xmm6
mov edx, dword [esp + 0x64]
add ecx, edx
mov edx, dword [esp + 4]
unpcklps xmm3, xmm2
add edx, 2
unpcklps xmm4, xmm1
unpckhps xmm6, xmm1
add ebx, dword [esp + 0x64]
movlps qword [eax + 8], xmm3
movhps qword [eax + 0x18], xmm3
movlps qword [eax + 0x40], xmm7
movhps qword [eax + 0x50], xmm7
movlps qword [eax + 0x20], xmm0
movhps qword [eax + 0x30], xmm0
movlps qword [eax + 0x28], xmm4
movhps qword [eax + 0x38], xmm4
movlps qword [eax + 0x60], xmm5
movhps qword [eax + 0x70], xmm5
movlps qword [eax + 0x68], xmm6
movhps qword [eax + 0x78], xmm6
add eax, 0x80
cmp edx, dword [esp + 0x68]
jl 0x101a9b98
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x18], 0
je 0x101a9e19
mov ecx, dword [esp + 0x6c]
movsd xmm0, qword [edi + ebx]
movsd xmm1, qword [ebx]
movhps xmm0, qword [ecx + ebx]
mov ecx, dword [esp + 0x60]
movhps xmm1, qword [esi + ebx]
movaps xmm6, xmm1
subps xmm1, xmm0
addps xmm6, xmm0
movsd xmm5, qword [ebx + ecx]
movaps xmm0, xmm6
mov ecx, dword [esp + 8]
movlhps xmm0, xmm1
shufps xmm6, xmm1, 0xbe
movaps xmm4, xmm0
movhps xmm5, qword [ebx + ecx*8]
mov ecx, dword [esp + 0xc]
movaps xmm7, xmm5
xorps xmm6, xmmword [0x103a4bc0]
addps xmm4, xmm6
subps xmm0, xmm6
movsd xmm2, qword [ecx + ebx]
movaps xmm1, xmm4
mov ecx, dword [esp + 0x10]
shufps xmm1, xmm0, 0x88
shufps xmm4, xmm0, 0xdd
movaps xmm6, xmm1
movhps xmm2, qword [ebx + ecx*8]
addps xmm7, xmm2
subps xmm5, xmm2
movaps xmm3, xmm7
movlhps xmm3, xmm5
shufps xmm7, xmm5, 0xbe
movaps xmm2, xmm3
xorps xmm7, xmmword [0x103a4bc0]
addps xmm2, xmm7
subps xmm3, xmm7
movaps xmm0, xmm2
movaps xmm7, xmm4
shufps xmm0, xmm3, 0x88
shufps xmm2, xmm3, 0xdd
movaps xmm3, xmm0
movaps xmm5, xmm2
mulps xmm3, xmmword [0x103a4bd0]
mulps xmm2, xmmword [0x103a4bd0]
mulps xmm5, xmmword [0x103a4be0]
mulps xmm0, xmmword [0x103a4be0]
subps xmm3, xmm5
addps xmm2, xmm0
addps xmm6, xmm3
subps xmm1, xmm3
addps xmm7, xmm2
subps xmm4, xmm2
movaps xmmword [eax], xmm6
movaps xmmword [eax + 0x10], xmm7
movaps xmmword [eax + 0x20], xmm1
movaps xmmword [eax + 0x30], xmm4
add eax, 0x40
inc edx
cmp edx, dword [ebp + 0x18]
jl 0x101a9b53
jmp 0x101aa18a
cmp dword [ebp + 0x18], 0
jle 0x101aa18a
mov esi, dword [ebp + 0xc]
lea edi, [ebx - 1]
mov dword [esp + 0x6c], edi
mov edi, edx
and ebx, 1
mov dword [esp + 0x1c], ebx
lea ebx, [edx + edx]
shl edi, 5
lea ecx, [esi*8]
mov dword [esp + 0x18], ecx
mov ecx, edx
mov dword [esp + 4], edi
add ebx, edx
imul edi, edx, 0x28
lea esi, [esi + esi]
shl ecx, 4
sub esi, edx
mov dword [esp], ecx
mov ecx, ebx
shl ecx, 4
mov dword [esp + 0x68], ecx
lea ecx, [edx*8]
mov dword [esp + 0xc], edi
mov edi, ecx
shl esi, 3
sub edi, edx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], edi
mov dword [esp + 0x64], esi
mov dword [esp + 0x60], ecx
mov dword [esp + 8], ebx
mov edi, dword [esp + 4]
mov esi, dword [esp]
mov edx, dword [esp + 0x14]
mov ecx, dword [ebp + 0x1c]
mov ebx, dword [ecx + edx*4]
shl ebx, 3
add ebx, dword [ebp + 8]
mov ecx, dword [esp + 0x18]
add ecx, ebx
cmp dword [esp + 0x6c], 0
jle 0x101aa086
movaps xmm1, xmmword [0x103a4ba0]
movaps xmm0, xmmword [0x103a4bb0]
mov dword [esp + 4], 0
mov dword [esp + 0x14], edx
movaps xmmword [esp + 0x20], xmm0
movaps xmmword [esp + 0x30], xmm1
mov edx, dword [esp + 4]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x68]
movsd xmm3, qword [ebx + esi]
movsd xmm6, qword [ebx]
movsd xmm5, qword [ebx + edx]
movsd xmm7, qword [ebx + edi]
mov dword [esp], eax
movhps xmm3, qword [ecx + esi]
movhps xmm5, qword [ecx + edx]
mov eax, dword [esp + 0x60]
movaps xmm0, xmm5
add ebx, dword [esp + 0x60]
subps xmm5, xmm3
addps xmm0, xmm3
movhps xmm6, qword [ecx]
movhps xmm7, qword [ecx + edi]
add ecx, eax
movsd xmm3, qword [ebx]
movaps xmm2, xmm6
movsd xmm1, qword [ebx + edi]
addps xmm2, xmm7
subps xmm6, xmm7
movhps xmm3, qword [ecx]
movsd xmm4, qword [ebx + edx]
movaps xmm7, xmm3
movaps xmmword [esp + 0x40], xmm5
movsd xmm5, qword [ebx + esi]
movhps xmm1, qword [ecx + edi]
movhps xmm4, qword [ecx + edx]
addps xmm7, xmm1
subps xmm3, xmm1
movhps xmm5, qword [ecx + esi]
movaps xmm1, xmm4
mulps xmm3, xmmword [esp + 0x20]
addps xmm1, xmm5
subps xmm4, xmm5
movaps xmm5, xmm2
subps xmm2, xmm0
addps xmm5, xmm0
movaps xmm0, xmm1
subps xmm1, xmm7
addps xmm0, xmm7
shufps xmm1, xmm1, 0xb1
movaps xmm7, xmm5
xorps xmm1, xmmword [esp + 0x30]
addps xmm7, xmm0
subps xmm5, xmm0
movaps xmm0, xmm2
addps xmm2, xmm1
subps xmm0, xmm1
movaps xmmword [esp + 0x50], xmm2
movaps xmm1, xmm6
movaps xmm2, xmmword [esp + 0x20]
mulps xmm4, xmm2
movaps xmm2, xmm4
subps xmm4, xmm3
addps xmm2, xmm3
movaps xmm3, xmmword [esp + 0x40]
addps xmm1, xmm2
subps xmm6, xmm2
movaps xmm2, xmm3
mov eax, dword [esp]
addps xmm2, xmm4
subps xmm4, xmm3
movaps xmm3, xmmword [esp + 0x30]
shufps xmm2, xmm2, 0xb1
shufps xmm4, xmm4, 0xb1
xorps xmm2, xmmword [esp + 0x30]
xorps xmm4, xmm3
movaps xmm3, xmm1
addps xmm1, xmm2
subps xmm3, xmm2
movaps xmm2, xmm6
addps xmm6, xmm4
subps xmm2, xmm4
movaps xmm4, xmm7
unpcklps xmm4, xmm3
unpckhps xmm7, xmm3
movaps xmm3, xmm0
unpckhps xmm0, xmm2
movlps qword [eax + 0x48], xmm0
movhps qword [eax + 0x58], xmm0
movaps xmm0, xmm5
unpcklps xmm0, xmm6
unpckhps xmm5, xmm6
movaps xmm6, xmmword [esp + 0x50]
movlps qword [eax], xmm4
movhps qword [eax + 0x10], xmm4
movaps xmm4, xmm6
mov edx, dword [esp + 0x64]
add ecx, edx
mov edx, dword [esp + 4]
unpcklps xmm3, xmm2
add edx, 2
unpcklps xmm4, xmm1
unpckhps xmm6, xmm1
add ebx, dword [esp + 0x64]
movlps qword [eax + 8], xmm3
movhps qword [eax + 0x18], xmm3
movlps qword [eax + 0x40], xmm7
movhps qword [eax + 0x50], xmm7
movlps qword [eax + 0x20], xmm0
movhps qword [eax + 0x30], xmm0
movlps qword [eax + 0x28], xmm4
movhps qword [eax + 0x38], xmm4
movlps qword [eax + 0x60], xmm5
movhps qword [eax + 0x70], xmm5
movlps qword [eax + 0x68], xmm6
movhps qword [eax + 0x78], xmm6
add eax, 0x80
cmp edx, dword [esp + 0x6c]
jl 0x101a9eef
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x1c], 0
je 0x101aa180
mov ecx, dword [esp + 0x68]
movsd xmm0, qword [edi + ebx]
movsd xmm1, qword [ebx]
movhps xmm0, qword [ecx + ebx]
mov ecx, dword [esp + 0x60]
movhps xmm1, qword [esi + ebx]
movaps xmm6, xmm1
subps xmm1, xmm0
addps xmm6, xmm0
movsd xmm5, qword [ebx + ecx]
movaps xmm0, xmm6
mov ecx, dword [esp + 8]
movlhps xmm0, xmm1
shufps xmm6, xmm1, 0xbe
movaps xmm4, xmm0
movhps xmm5, qword [ebx + ecx*8]
mov ecx, dword [esp + 0xc]
movaps xmm7, xmm5
xorps xmm6, xmmword [0x103a4bc0]
addps xmm4, xmm6
subps xmm0, xmm6
movsd xmm2, qword [ecx + ebx]
movaps xmm1, xmm4
mov ecx, dword [esp + 0x10]
shufps xmm1, xmm0, 0x88
shufps xmm4, xmm0, 0xdd
movaps xmm6, xmm1
movhps xmm2, qword [ebx + ecx*8]
addps xmm7, xmm2
subps xmm5, xmm2
movaps xmm3, xmm7
movlhps xmm3, xmm5
shufps xmm7, xmm5, 0xbe
movaps xmm2, xmm3
xorps xmm7, xmmword [0x103a4bc0]
addps xmm2, xmm7
subps xmm3, xmm7
movaps xmm0, xmm2
movaps xmm7, xmm4
shufps xmm0, xmm3, 0x88
shufps xmm2, xmm3, 0xdd
movaps xmm3, xmm0
movaps xmm5, xmm2
mulps xmm3, xmmword [0x103a4bd0]
mulps xmm2, xmmword [0x103a4bd0]
mulps xmm5, xmmword [0x103a4be0]
mulps xmm0, xmmword [0x103a4be0]
subps xmm3, xmm5
addps xmm2, xmm0
addps xmm6, xmm3
subps xmm1, xmm3
addps xmm7, xmm2
subps xmm4, xmm2
movlps qword [eax], xmm6
movhps qword [eax + 8], xmm6
movlps qword [eax + 0x10], xmm7
movhps qword [eax + 0x18], xmm7
movlps qword [eax + 0x20], xmm1
movhps qword [eax + 0x28], xmm1
movlps qword [eax + 0x30], xmm4
movhps qword [eax + 0x38], xmm4
add eax, 0x40
inc edx
cmp edx, dword [ebp + 0x18]
jl 0x101a9eaa
lea esp, [esp + 0x74]
pop ebx
pop edi
pop esi
lea esp, [ebp]
pop ebp
ret