Function at 0x4354e0
Capabilities:
Encode data using xor

Disassembly:
push esi
push edi
push ebx
push ebp
mov ebp, esp
and ebp, 0xfffffff0
xorps xmm0, xmm0
lea edi, [ebp - 0x100]
mov esi, dword [esp + 0x14]
mov ecx, 0x10
pxor mm2, mm2
movd mm0, dword [esi]
add esi, 4
punpcklbw mm0, mm2
movq mm1, mm0
punpckhwd mm0, mm2
punpcklwd mm1, mm2
cvtpi2ps xmm7, mm0
movlhps xmm7, xmm7
cvtpi2ps xmm7, mm1
movaps xmm6, xmm7
shufps xmm6, xmm6, 0x55
addss xmm7, xmm6
mulps xmm7, xmmword [0x49d780]
movaps xmmword [edi], xmm7
add edi, 0x10
addps xmm0, xmm7
sub ecx, 1
jne 0x4354fe
mulps xmm0, xmmword [0x49d640]
xorps xmm1, xmm1
xorps xmm2, xmm2
lea edi, [ebp - 0x100]
mov ecx, 0x10
movaps xmm7, xmmword [edi]
add edi, 0x10
subps xmm7, xmm0
movaps xmm6, xmm7
movaps xmm5, xmm7
andps xmm7, xmmword [0x49d660]
addps xmm1, xmm7
shufps xmm6, xmm6, 0xe8
shufps xmm5, xmm5, 0xd1
cmpnltps xmm6, xmmword [0x49d620]
andps xmm6, xmm5
addps xmm2, xmm6
sub ecx, 1
jne 0x435551
mulps xmm1, xmmword [0x49d640]
movaps xmm5, xmm2
movaps xmm6, xmm2
movaps xmm7, xmm2
shufps xmm5, xmm5, 0xfd
shufps xmm6, xmm6, 0xaa
shufps xmm7, xmm7, 0
orps xmm6, xmm7
cmpneqps xmm6, xmmword [0x49d620]
andps xmm2, xmm6
xorps xmm6, xmmword [0x49d7a0]
andps xmm5, xmm6
orps xmm2, xmm5
cmpltps xmm2, xmmword [0x49d620]
andps xmm2, xmmword [0x49d730]
xorps xmm1, xmm2
movaps xmm7, xmm1
mulps xmm7, xmm7
movaps xmm6, xmm7
movaps xmm5, xmm7
shufps xmm7, xmm7, 0xee
addps xmm7, xmm6
shufps xmm5, xmm5, 0x55
addps xmm7, xmm5
movaps xmm2, xmm7
cmpneqps xmm2, xmmword [0x49d620]
rsqrtps xmm3, xmm7
andps xmm3, xmm2
movaps xmm2, xmm3
mulps xmm3, xmm7
mulps xmm3, xmm2
mulps xmm2, xmmword [0x49d680]
movaps xmm7, xmmword [0x49d6a0]
subps xmm7, xmm3
mulps xmm7, xmm2
shufps xmm7, xmm7, 0
mulps xmm1, xmm7
lea edi, [ebp - 0x100]
lea edx, [ebp - 0x140]
mov ecx, 0x10
movaps xmm2, xmmword [0x49d6b0]
movaps xmm3, xmmword [0x49d6c0]
xorps xmm4, xmm4
movaps xmm7, xmmword [edi]
subps xmm7, xmm0
mulps xmm7, xmm1
movaps xmm6, xmm7
movaps xmm5, xmm7
shufps xmm7, xmm7, 0xee
addps xmm7, xmm6
shufps xmm5, xmm5, 0x55
addps xmm7, xmm5
movss dword [edx], xmm7
add edx, 4
minss xmm2, xmm7
maxss xmm3, xmm7
add edi, 0x10
sub ecx, 1
jne 0x43563f
shufps xmm2, xmm2, 0
shufps xmm3, xmm3, 0
movaps xmm7, xmm2
addps xmm7, xmm3
mulps xmm7, xmmword [0x49d680]
lea edi, [ebp - 0x140]
movaps xmm5, xmmword [edi]
movaps xmm6, xmmword [edi + 0x10]
subps xmm5, xmm7
subps xmm6, xmm7
movaps xmmword [edi], xmm5
movaps xmmword [edi + 0x10], xmm6
movaps xmm5, xmmword [edi + 0x20]
movaps xmm6, xmmword [edi + 0x30]
subps xmm5, xmm7
subps xmm6, xmm7
movaps xmmword [edi + 0x20], xmm5
movaps xmmword [edi + 0x30], xmm6
subps xmm2, xmm7
subps xmm3, xmm7
mulps xmm7, xmm1
addps xmm0, xmm7
mov eax, dword [0x49d760]
mov dword [ebp - 0x1c4], eax
movaps xmmword [ebp - 0x1a0], xmm2
movaps xmmword [ebp - 0x1b0], xmm3
lea edx, [0x4aaa60]
lea edi, [ebp - 0x190]
movaps xmmword [ebp - 0x1c0], xmm3
mov eax, 0
mov dword [ebp - 0x1c8], eax
lea ecx, [0x49d7b0]
movss xmm7, xmm2
addss xmm7, xmm3
mulss xmm7, dword [0x49d680]
movss dword [edi], xmm2
movss dword [edi + 4], xmm3
movss xmm5, xmm3
movss xmm6, xmm7
subss xmm5, xmm7
movss xmm4, xmm7
movss xmm3, xmm5
mulss xmm5, dword [ecx + 0x10]
subss xmm6, xmm5
addss xmm4, xmm5
movss dword [edi + 8], xmm6
movss dword [edi + 0xc], xmm4
mulps xmm3, xmmword [ecx]
mov ecx, 0x10
lea esi, [ebp - 0x140]
movss xmm4, dword [esi]
add esi, 4
movaps xmm5, xmm4
movaps xmm6, xmm4
andps xmm4, xmmword [0x49d660]
cmpltss xmm4, xmm3
cmpnltss xmm5, xmm7
movmskps eax, xmm4
movmskps ebx, xmm5
movzx eax, byte [edx + eax + 0x10]
movzx ebx, byte [edx + ebx]
or eax, ebx
and eax, 3
subss xmm6, dword [edi + eax*4]
mulss xmm6, xmm6
addss xmm6, dword [ebp - 0x1c8]
movss dword [ebp - 0x1c8], xmm6
sub ecx, 1
jne 0x435753
movaps xmm3, xmmword [ebp - 0x1c0]
mov eax, dword [ebp - 0x1c8]
mov ebx, dword [ebp - 0x1c4]
cmp eax, ebx
jge 0x4357eb
subss xmm6, dword [0x49d770]
movss dword [ebp - 0x1c4], xmm6
movaps xmmword [ebp - 0x1a0], xmm2
movaps xmmword [ebp - 0x1b0], xmm3
mulps xmm2, xmmword [str.33s_33s_33s_33s_]
mulps xmm3, xmmword [str.33s_33s_33s_33s_]
jmp 0x4356e9
movaps xmm2, xmmword [ebp - 0x1a0]
movaps xmm3, xmmword [ebp - 0x1b0]
movaps xmm6, xmm2
movaps xmm7, xmm3
mulps xmm6, xmm1
mulps xmm7, xmm1
addps xmm6, xmm0
addps xmm7, xmm0
movaps xmm4, xmm6
movaps xmm5, xmm7
mulps xmm6, xmmword [0x49d790]
mulps xmm7, xmmword [0x49d790]
shufps xmm4, xmm4, 0x55
shufps xmm5, xmm5, 0x55
subss xmm6, xmm4
subss xmm7, xmm5
shufps xmm6, xmm6, 0xd8
shufps xmm7, xmm7, 0xd8
cvttps2pi mm0, xmm6
cvttps2pi mm1, xmm7
movhlps xmm6, xmm6
movhlps xmm7, xmm7
cvttps2pi mm2, xmm6
cvttps2pi mm3, xmm7
pmaxsw mm0, qword [0x49d6f0]
pmaxsw mm1, qword [0x49d6f0]
pminsw mm0, qword [0x49d700]
pminsw mm1, qword [0x49d700]
movq mm6, mm0
movq mm7, mm1
paddd mm0, qword [0x49d720]
paddd mm1, qword [0x49d720]
psrld mm6, 5
psrld mm7, 5
psubd mm0, mm6
psubd mm1, mm7
pand mm0, qword [0x49d6e0]
pand mm1, qword [0x49d6e0]
pshufw mm4, mm0, 0xee
pshufw mm5, mm1, 0xee
pmaxsw mm2, qword [0x49d6f0]
pmaxsw mm3, qword [0x49d6f0]
pminsw mm2, qword [0x49d700]
pminsw mm3, qword [0x49d700]
movq mm6, mm2
movq mm7, mm3
paddd mm2, qword [0x49d710]
paddd mm3, qword [0x49d710]
psrld mm6, 6
psrld mm7, 6
psubd mm2, mm6
psubd mm3, mm7
pand mm2, qword [0x49d6d0]
pand mm3, qword [0x49d6d0]
psrld mm0, 3
psrld mm1, 3
pslld mm4, 8
pslld mm5, 8
pslld mm2, 3
pslld mm3, 3
por mm0, mm4
por mm1, mm5
por mm0, mm2
por mm1, mm3
mov edi, dword [esp + 0x18]
pxor mm5, mm5
punpcklwd mm0, mm5
punpcklwd mm1, mm5
movq mm2, mm0
movq mm3, mm0
movq mm4, mm0
pcmpgtd mm2, mm1
pxor mm2, qword [0x49d7a0]
movd dword [ebp - 0x1cc], mm2
pcmpeqd mm4, mm1
movd ebx, mm4
punpcklwd mm0, mm1
punpcklwd mm1, mm3
pand mm1, mm2
pandn mm2, mm0
por mm1, mm2
movd dword [edi], mm1
add edi, 4
mov dword [edi], 0
test ebx, ebx
jne 0x4359c2
lea ecx, [0x49d7b0]
movaps xmm7, xmm3
mulps xmm3, xmmword [ecx]
addps xmm7, xmm2
mulps xmm7, xmmword [0x49d680]
lea esi, [ebp - 0x140]
lea edx, [0x4aaa60]
movss xmm6, dword [ebp - 0x1cc]
shufps xmm6, xmm6, 0
mov ecx, 4
movaps xmm4, xmmword [esi]
add esi, 0x10
movaps xmm5, xmm4
andps xmm4, xmmword [0x49d660]
cmpltps xmm4, xmm3
cmpnltps xmm5, xmm7
xorps xmm5, xmm6
movmskps eax, xmm4
movmskps ebx, xmm5
movzx eax, byte [edx + eax + 0x10]
movzx ebx, byte [edx + ebx]
or eax, ebx
mov byte [edi], al
add edi, 1
sub ecx, 1
jne 0x43598c
emms
pop ebp
pop ebx
pop edi
pop esi
ret