Function at 0x101a7450
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
lea esp, [esp - 0x104]
mov eax, dword [ebp + 0xc]
imul eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
test byte [ebp + 0x10], 0xf
jne 0x101a784e
cmp dword [ebp + 0x18], 0
jle 0x101a7c19
imul edi, eax, 0x28
mov ecx, eax
mov dword [esp + 0xe8], edi
lea ebx, [eax + eax]
imul edi, eax, 0x48
mov esi, eax
mov dword [esp + 4], edi
imul edi, eax, 0x68
mov dword [esp], edi
mov edi, eax
shl edi, 4
mov dword [esp + 0xec], edi
shl ecx, 6
mov edi, dword [ebp + 0xc]
mov dword [esp + 0xf0], ecx
lea ecx, [ebx + eax]
sub edi, ebx
shl ecx, 5
shl edi, 3
mov dword [esp + 8], 0
shl esi, 5
mov dword [esp + 0xf4], edi
mov dword [esp + 0xf8], ecx
mov dword [esp + 0xe4], edx
mov dword [esp + 0xc], esi
mov dword [esp + 0xe0], eax
mov edx, dword [esp + 8]
mov ecx, dword [ebp + 0x1c]
mov ebx, dword [ebp + 0x14]
mov edi, dword [ebp + 8]
mov eax, dword [ecx + edx*4]
shl eax, 3
add eax, edi
test ebx, ebx
jle 0x101a7c28
movaps xmm6, xmmword [0x103a49d0]
xor esi, esi
movaps xmm5, xmmword [0x103a49e0]
movaps xmm4, xmmword [0x103a49f0]
movaps xmm3, xmmword [0x103a4a00]
movaps xmm2, xmmword [0x103a4a10]
movaps xmm1, xmmword [0x103a4a20]
movaps xmm0, xmmword [0x103a4a30]
mov dword [esp + 8], edx
movaps xmmword [esp + 0x10], xmm0
movaps xmmword [esp + 0x20], xmm1
movaps xmmword [esp + 0x30], xmm2
movaps xmmword [esp + 0x40], xmm3
movaps xmmword [esp + 0x60], xmm4
movaps xmmword [esp + 0x50], xmm5
movaps xmmword [esp + 0x70], xmm6
mov ecx, dword [esp]
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0xc]
mov edi, dword [esp + 0xe4]
mov dword [esp + 0xe4], edi
mov edi, dword [esp + 0xf0]
mov dword [esp + 0xfc], esi
mov esi, dword [esp + 0xf8]
movsd xmm5, qword [eax + edi]
movsd xmm1, qword [eax]
movhps xmm5, qword [eax + esi]
mov esi, dword [esp + 0xe0]
movhps xmm1, qword [eax + ebx]
movaps xmm4, xmm1
subps xmm1, xmm5
addps xmm4, xmm5
movsd xmm2, qword [eax + esi*8]
mov esi, dword [esp + 0xe8]
movsd xmm7, qword [eax + edx]
movhps xmm7, qword [eax + ecx]
movhps xmm2, qword [eax + esi]
movaps xmm0, xmm2
subps xmm2, xmm7
addps xmm0, xmm7
movaps xmm7, xmm4
movaps xmm5, xmm0
movlhps xmm7, xmm1
shufps xmm4, xmm1, 0xbe
movaps xmm3, xmm7
add eax, dword [esp + 0xec]
xorps xmm4, xmmword [esp + 0x70]
movaps xmm1, xmmword [esp + 0x70]
addps xmm3, xmm4
subps xmm7, xmm4
movlhps xmm5, xmm2
movaps xmm4, xmm3
shufps xmm0, xmm2, 0xbe
movaps xmm2, xmm5
movsd xmm6, qword [eax + edi]
xorps xmm0, xmm1
mov edi, dword [esp + 0xf8]
addps xmm2, xmm0
subps xmm5, xmm0
movhps xmm6, qword [eax + edi]
mov edi, dword [esp + 0xe0]
shufps xmm4, xmm7, 0x88
movaps xmmword [esp + 0x80], xmm4
movsd xmm4, qword [eax]
shufps xmm3, xmm7, 0xdd
movaps xmm7, xmm2
movhps xmm4, qword [eax + ebx]
movsd xmm0, qword [eax + edi*8]
movaps xmmword [esp + 0x90], xmm3
shufps xmm7, xmm5, 0x88
shufps xmm2, xmm5, 0xdd
movaps xmm3, xmm4
movhps xmm0, qword [eax + esi]
addps xmm3, xmm6
subps xmm4, xmm6
movsd xmm5, qword [eax + edx]
movaps xmm6, xmm0
movhps xmm5, qword [eax + ecx]
mov edi, dword [esp + 0xe4]
addps xmm6, xmm5
subps xmm0, xmm5
movaps xmm5, xmm3
movlhps xmm5, xmm4
shufps xmm3, xmm4, 0xbe
movaps xmm4, xmm6
movlhps xmm4, xmm0
xorps xmm3, xmm1
shufps xmm6, xmm0, 0xbe
movaps xmm0, xmm5
xorps xmm6, xmm1
addps xmm0, xmm3
subps xmm5, xmm3
movaps xmm3, xmm4
movaps xmm1, xmm0
shufps xmm1, xmm5, 0x88
addps xmm3, xmm6
subps xmm4, xmm6
movaps xmm6, xmm3
shufps xmm3, xmm4, 0xdd
shufps xmm0, xmm5, 0xdd
movaps xmm5, xmm7
movaps xmmword [esp + 0xb0], xmm3
movaps xmm3, xmm2
shufps xmm6, xmm4, 0x88
movaps xmmword [esp + 0xa0], xmm6
mulps xmm5, xmmword [esp + 0x50]
mulps xmm3, xmmword [esp + 0x60]
movaps xmm4, xmmword [esp + 0x50]
subps xmm5, xmm3
mulps xmm2, xmm4
movaps xmm6, xmmword [esp + 0x60]
mulps xmm7, xmm6
movaps xmmword [esp + 0xc0], xmm5
addps xmm2, xmm7
movaps xmm3, xmmword [esp + 0x40]
movaps xmm7, xmm0
movaps xmm5, xmmword [esp + 0x30]
movaps xmmword [esp + 0xd0], xmm2
movaps xmm2, xmm1
mulps xmm0, xmm3
mulps xmm1, xmm5
mulps xmm2, xmmword [esp + 0x40]
mulps xmm7, xmmword [esp + 0x30]
addps xmm0, xmm1
subps xmm2, xmm7
movaps xmm6, xmmword [esp + 0xa0]
movaps xmm1, xmmword [esp + 0xb0]
movaps xmm7, xmm6
movaps xmm3, xmm1
mulps xmm7, xmmword [esp + 0x20]
mulps xmm3, xmmword [esp + 0x10]
movaps xmm4, xmmword [esp + 0x20]
subps xmm7, xmm3
mulps xmm1, xmm4
movaps xmm5, xmmword [esp + 0x10]
movaps xmm4, xmmword [esp + 0x80]
mulps xmm6, xmm5
movaps xmm5, xmm4
addps xmm5, xmm2
subps xmm4, xmm2
addps xmm1, xmm6
movaps xmm2, xmmword [esp + 0x90]
movaps xmm3, xmm2
subps xmm2, xmm0
addps xmm3, xmm0
movaps xmm0, xmmword [esp + 0xc0]
movaps xmm6, xmm0
subps xmm0, xmm7
addps xmm6, xmm7
movaps xmmword [esp + 0xc0], xmm0
movaps xmm0, xmmword [esp + 0xd0]
movaps xmm7, xmm0
subps xmm0, xmm1
addps xmm7, xmm1
movaps xmm1, xmm5
subps xmm5, xmm6
addps xmm1, xmm6
movaps xmm6, xmm3
subps xmm3, xmm7
addps xmm6, xmm7
movaps xmm7, xmm4
subps xmm4, xmm0
addps xmm7, xmm0
movaps xmm0, xmmword [esp + 0xc0]
movaps xmmword [esp + 0x80], xmm4
movaps xmm4, xmm2
movaps xmmword [edi], xmm1
addps xmm2, xmm0
subps xmm4, xmmword [esp + 0xc0]
movaps xmm1, xmmword [esp + 0x80]
mov esi, dword [esp + 0xfc]
inc esi
add eax, dword [esp + 0xf4]
movaps xmmword [edi + 0x10], xmm6
movaps xmmword [edi + 0x20], xmm7
movaps xmmword [edi + 0x30], xmm4
movaps xmmword [edi + 0x40], xmm5
movaps xmmword [edi + 0x50], xmm3
movaps xmmword [edi + 0x60], xmm1
movaps xmmword [edi + 0x70], xmm2
add edi, 0x80
cmp esi, dword [ebp + 0x14]
jl 0x101a7574
mov edx, dword [esp + 8]
inc edx
mov dword [esp + 0xe4], edi
mov ecx, dword [ebp + 0x1c]
mov ebx, dword [ebp + 0x14]
mov edi, dword [ebp + 8]
cmp edx, dword [ebp + 0x18]
jl 0x101a74f8
jmp 0x101a7c19
cmp dword [ebp + 0x18], 0
jle 0x101a7c19
mov edi, eax
lea ebx, [eax + eax]
shl edi, 6
mov esi, eax
mov dword [esp + 0xf4], edi
lea edi, [ebx + eax]
shl edi, 5
xor ecx, ecx
mov dword [esp + 0xf0], edi
imul edi, eax, 0x28
mov dword [esp + 0xe8], edi
imul edi, eax, 0x48
mov dword [esp + 4], edi
imul edi, eax, 0x68
mov dword [esp], edi
mov edi, eax
shl edi, 4
mov dword [esp + 0xec], edi
mov edi, dword [ebp + 0xc]
sub edi, ebx
shl edi, 3
shl esi, 5
mov dword [esp + 0xf8], edi
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], edx
mov dword [esp + 0xc], esi
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x14]
mov edi, dword [ebp + 8]
mov ebx, dword [eax + ecx*4]
shl ebx, 3
add ebx, edi
test edx, edx
jle 0x101a7c34
movaps xmm6, xmmword [0x103a49d0]
xor esi, esi
movaps xmm5, xmmword [0x103a49e0]
movaps xmm4, xmmword [0x103a49f0]
movaps xmm3, xmmword [0x103a4a00]
movaps xmm2, xmmword [0x103a4a10]
movaps xmm1, xmmword [0x103a4a20]
movaps xmm0, xmmword [0x103a4a30]
mov dword [esp + 8], ecx
movaps xmmword [esp + 0x10], xmm0
movaps xmmword [esp + 0x20], xmm1
movaps xmmword [esp + 0x30], xmm2
movaps xmmword [esp + 0x40], xmm3
movaps xmmword [esp + 0x60], xmm4
movaps xmmword [esp + 0x50], xmm5
movaps xmmword [esp + 0x70], xmm6
mov edx, dword [esp]
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0xe4]
mov dword [esp + 0xe4], edi
mov edi, dword [esp + 0xf4]
mov dword [esp + 0xfc], esi
mov esi, dword [esp + 0xf0]
movsd xmm5, qword [ebx + edi]
movsd xmm1, qword [ebx]
movhps xmm5, qword [ebx + esi]
mov esi, dword [esp + 0xe0]
movhps xmm1, qword [ebx + ecx]
movaps xmm4, xmm1
subps xmm1, xmm5
addps xmm4, xmm5
movsd xmm2, qword [ebx + esi*8]
mov esi, dword [esp + 0xe8]
movsd xmm7, qword [ebx + eax]
movhps xmm7, qword [ebx + edx]
movhps xmm2, qword [ebx + esi]
movaps xmm0, xmm2
subps xmm2, xmm7
addps xmm0, xmm7
movaps xmm7, xmm4
movaps xmm5, xmm0
movlhps xmm7, xmm1
shufps xmm4, xmm1, 0xbe
movaps xmm3, xmm7
add ebx, dword [esp + 0xec]
xorps xmm4, xmmword [esp + 0x70]
movaps xmm1, xmmword [esp + 0x70]
addps xmm3, xmm4
subps xmm7, xmm4
movlhps xmm5, xmm2
movaps xmm4, xmm3
shufps xmm0, xmm2, 0xbe
movaps xmm2, xmm5
movsd xmm6, qword [ebx + edi]
xorps xmm0, xmm1
mov edi, dword [esp + 0xf0]
addps xmm2, xmm0
subps xmm5, xmm0
movhps xmm6, qword [ebx + edi]
mov edi, dword [esp + 0xe0]
shufps xmm4, xmm7, 0x88
movaps xmmword [esp + 0x80], xmm4
movsd xmm4, qword [ebx]
shufps xmm3, xmm7, 0xdd
movaps xmm7, xmm2
movhps xmm4, qword [ebx + ecx]
movsd xmm0, qword [ebx + edi*8]
movaps xmmword [esp + 0x90], xmm3
shufps xmm7, xmm5, 0x88
shufps xmm2, xmm5, 0xdd
movaps xmm3, xmm4
movhps xmm0, qword [ebx + esi]
addps xmm3, xmm6
subps xmm4, xmm6
movsd xmm5, qword [ebx + eax]
movaps xmm6, xmm0
movhps xmm5, qword [ebx + edx]
mov edi, dword [esp + 0xe4]
addps xmm6, xmm5
subps xmm0, xmm5
movaps xmm5, xmm3
movlhps xmm5, xmm4
shufps xmm3, xmm4, 0xbe
movaps xmm4, xmm6
movlhps xmm4, xmm0
xorps xmm3, xmm1
shufps xmm6, xmm0, 0xbe
movaps xmm0, xmm5
xorps xmm6, xmm1
addps xmm0, xmm3
subps xmm5, xmm3
movaps xmm3, xmm4
movaps xmm1, xmm0
shufps xmm1, xmm5, 0x88
addps xmm3, xmm6
subps xmm4, xmm6
movaps xmm6, xmm3
shufps xmm3, xmm4, 0xdd
shufps xmm0, xmm5, 0xdd
movaps xmm5, xmm7
movaps xmmword [esp + 0xb0], xmm3
movaps xmm3, xmm2
shufps xmm6, xmm4, 0x88
movaps xmmword [esp + 0xa0], xmm6
mulps xmm5, xmmword [esp + 0x50]
mulps xmm3, xmmword [esp + 0x60]
movaps xmm4, xmmword [esp + 0x50]
subps xmm5, xmm3
mulps xmm2, xmm4
movaps xmm6, xmmword [esp + 0x60]
mulps xmm7, xmm6
movaps xmmword [esp + 0xc0], xmm5
addps xmm2, xmm7
movaps xmm3, xmmword [esp + 0x40]
movaps xmm7, xmm0
movaps xmm5, xmmword [esp + 0x30]
movaps xmmword [esp + 0xd0], xmm2
movaps xmm2, xmm1
mulps xmm0, xmm3
mulps xmm1, xmm5
mulps xmm2, xmmword [esp + 0x40]
mulps xmm7, xmmword [esp + 0x30]
addps xmm0, xmm1
subps xmm2, xmm7
movaps xmm6, xmmword [esp + 0xa0]
movaps xmm1, xmmword [esp + 0xb0]
movaps xmm7, xmm6
movaps xmm3, xmm1
mulps xmm7, xmmword [esp + 0x20]
mulps xmm3, xmmword [esp + 0x10]
movaps xmm4, xmmword [esp + 0x20]
subps xmm7, xmm3
mulps xmm1, xmm4
movaps xmm5, xmmword [esp + 0x10]
movaps xmm4, xmmword [esp + 0x80]
mulps xmm6, xmm5
movaps xmm5, xmm4
addps xmm5, xmm2
subps xmm4, xmm2
addps xmm1, xmm6
movaps xmm2, xmmword [esp + 0x90]
movaps xmm3, xmm2
subps xmm2, xmm0
addps xmm3, xmm0
movaps xmm0, xmmword [esp + 0xc0]
movaps xmm6, xmm0
subps xmm0, xmm7
addps xmm6, xmm7
movaps xmmword [esp + 0xc0], xmm0
movaps xmm0, xmmword [esp + 0xd0]
movaps xmm7, xmm0
subps xmm0, xmm1
addps xmm7, xmm1
movaps xmm1, xmm5
subps xmm5, xmm6
addps xmm1, xmm6
movups xmmword [edi + 0x40], xmm5
movups xmmword [edi], xmm1
movaps xmm6, xmm3
subps xmm3, xmm7
addps xmm6, xmm7
movups xmmword [edi + 0x50], xmm3
movups xmmword [edi + 0x10], xmm6
movaps xmm7, xmm4
subps xmm4, xmm0
addps xmm7, xmm0
movaps xmmword [esp + 0x80], xmm4
movaps xmm4, xmm2
movaps xmm0, xmmword [esp + 0xc0]
movaps xmm1, xmmword [esp + 0x80]
addps xmm2, xmm0
subps xmm4, xmmword [esp + 0xc0]
movups xmmword [edi + 0x20], xmm7
movups xmmword [edi + 0x30], xmm4
movups xmmword [edi + 0x60], xmm1
movups xmmword [edi + 0x70], xmm2
add edi, 0x80
mov esi, dword [esp + 0xfc]
inc esi
add ebx, dword [esp + 0xf8]
cmp esi, dword [ebp + 0x14]
jl 0x101a7944
mov ecx, dword [esp + 8]
inc ecx
mov dword [esp + 0xe4], edi
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x14]
mov edi, dword [ebp + 8]
cmp ecx, dword [ebp + 0x18]
jl 0x101a78c8
lea esp, [esp + 0x104]
pop ebx
pop edi
pop esi
lea esp, [ebp]
pop ebp
ret
inc edx
cmp edx, dword [ebp + 0x18]
jl 0x101a74f8
jmp 0x101a7c19
inc ecx
cmp ecx, dword [ebp + 0x18]
jl 0x101a78c8
jmp 0x101a7c19