Function at 0x61e000
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0x40
mov ecx, dword [ebp + 0x14]
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
shr ecx, 3
mov dword [esp + 0x30], ecx
cmp eax, dword [ebp + 0x14]
jb 0x61e6c0
lea esi, [ecx - 1]
mov edx, dword [ebp + 0x14]
mov edi, dword [ebp + 8]
mov dword [esp + 0x34], eax
movdqu xmm6, xmmword [str.UUUUUUUUUUUUUUUU3333333333333333]
mov dword [esp + 0x2c], esi
movdqu xmm5, xmmword [0x6d3150]
mov esi, dword [ebp + 0x14]
shr edx, 5
and esi, 0xffffffe0
add edi, esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x24], edi
lea edi, [edx*4]
lea edx, [edi + 1]
mov dword [esp + 0x20], edi
add edi, 2
mov dword [esp + 0x18], edx
mov edx, dword [ebp + 8]
mov dword [esp + 0x14], edi
mov edi, dword [ebp + 8]
lea edx, [edx + esi + 8]
lea esi, [edi + esi + 0x10]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], esi
lea esi, [ecx*8]
mov dword [esp + 0x28], esi
lea esi, cs:[esi]
mov eax, dword [esp + 0x30]
test eax, eax
je 0x61e1c3
cmp dword [esp + 0x2c], 2
jbe 0x61e0bd
mov esi, dword [ebp + 8]
mov eax, ebx
not eax
add eax, esi
cmp eax, 0x1e
ja 0x61e1f0
mov eax, dword [esp + 0x28]
mov esi, dword [ebp + 8]
add eax, ebx
mov dword [esp + 0x3c], esi
mov esi, ebx
mov dword [esp + 0x38], eax
mov ecx, dword [esi]
mov edi, dword [esi + 4]
add esi, 8
mov eax, ecx
and ecx, 0xaaaaaaaa
and eax, 0x55555555
mov edx, eax
shr edx, 1
or eax, edx
and eax, 0x33333333
mov edx, eax
shr edx, 2
or eax, edx
and eax, 0xf0f0f0f
mov edx, eax
shr edx, 4
or eax, edx
mov edx, edi
and eax, 0xff00ff
and edx, 0x55555555
mov ebx, eax
shr ebx, 8
or ebx, eax
mov eax, edx
shr eax, 1
movzx ebx, bx
or eax, edx
and eax, 0x33333333
mov edx, eax
shr edx, 2
or edx, eax
and edx, 0xf0f0f0f
mov eax, edx
shr eax, 4
or eax, edx
and eax, 0xff00ff
mov edx, eax
shr edx, 8
or edx, eax
lea eax, [ecx + ecx*2]
and eax, 0xcccccccc
lea eax, [eax + eax*4]
and eax, 0xf0f0f0f0
mov ecx, eax
shl ecx, 4
add ecx, eax
and ecx, 0xff00ff00
mov eax, ecx
shl eax, 8
add eax, ecx
and edi, 0xaaaaaaaa
shl edx, 0x10
lea ecx, [edi + edi*2]
or edx, ebx
shr eax, 0x10
mov ebx, dword [esp + 0x3c]
and ecx, 0xcccccccc
lea edi, [ecx + ecx*4]
and edi, 0xf0f0f0f0
mov ecx, edi
shl ecx, 4
add ecx, edi
and ecx, 0xff00ff00
mov edi, ecx
shl edi, 8
add edi, ecx
xor di, di
or eax, edi
xchg edx, eax
xor dword [ebx], eax
mov eax, dword [esp + 0x38]
xor dword [ebx + 4], edx
add ebx, 8
mov dword [esp + 0x3c], ebx
cmp esi, eax
jne 0x61e0d0
mov ebx, dword [esp + 0x38]
mov eax, dword [ebp + 8]
call fcn.0061df50
mov esi, dword [ebp + 0x14]
sub dword [esp + 0x34], esi
mov eax, dword [esp + 0x34]
cmp eax, esi
jae 0x61e098
mov eax, dword [esp + 0x34]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [esp + 0x24]
mov edx, ebx
mov eax, esi
pxor xmm2, xmm2
lea esi, [esi]
movdqu xmm1, xmmword [edx]
movdqu xmm0, xmmword [edx + 0x10]
add eax, 0x20
add edx, 0x20
movdqu xmm7, xmmword [edx - 0x10]
psrlq xmm0, 0x20
psrlq xmm1, 0x20
shufps xmm1, xmm0, 0x88
movdqu xmm0, xmmword [edx - 0x20]
shufps xmm0, xmm7, 0x88
movdqa xmm3, xmm0
pand xmm0, xmmword [0x6d3180]
pand xmm3, xmm6
movdqa xmm4, xmm3
psrld xmm4, 1
por xmm4, xmm3
pand xmm4, xmm5
movdqa xmm3, xmm4
psrld xmm3, 2
por xmm3, xmm4
pand xmm3, xmmword [0x6d3160]
movdqa xmm4, xmm3
psrld xmm4, 4
por xmm4, xmm3
movdqa xmm3, xmm1
pand xmm1, xmmword [0x6d3180]
pand xmm4, xmmword [0x6d3170]
pand xmm3, xmm6
movdqa xmm7, xmm3
psrld xmm7, 1
por xmm7, xmm3
pand xmm7, xmm5
movdqa xmm3, xmm7
psrld xmm3, 2
por xmm3, xmm7
pand xmm3, xmmword [0x6d3160]
movdqa xmm7, xmm3
psrld xmm7, 4
por xmm7, xmm3
movdqa xmm3, xmm1
pand xmm7, xmmword [0x6d3170]
pslld xmm1, 1
paddd xmm1, xmm3
pand xmm1, xmmword [0x6d3190]
movdqa xmm3, xmm1
pslld xmm3, 2
paddd xmm3, xmm1
pand xmm3, xmmword [0x6d31a0]
movdqa xmm1, xmm3
pslld xmm1, 4
paddd xmm1, xmm3
pand xmm1, xmmword [0x6d31b0]
movdqa xmm3, xmm1
pslld xmm3, 8
paddd xmm3, xmm1
movdqa xmm1, xmm0
pand xmm3, xmmword [0x6d31c0]
pslld xmm1, 1
paddd xmm1, xmm0
pand xmm1, xmmword [0x6d3190]
movdqa xmm0, xmm1
pslld xmm0, 2
paddd xmm0, xmm1
pand xmm0, xmmword [0x6d31a0]
movdqa xmm1, xmm0
pslld xmm1, 4
paddd xmm1, xmm0
pand xmm1, xmmword [0x6d31b0]
movdqa xmm0, xmm1
pslld xmm0, 8
paddd xmm0, xmm1
movdqa xmm1, xmm4
psrld xmm0, 0x10
psrld xmm1, 8
por xmm0, xmm3
movdqa xmm3, xmm7
por xmm1, xmm4
pand xmm1, xmmword [0x6d31d0]
psrld xmm3, 8
por xmm3, xmm7
movdqu xmm7, xmmword [eax - 0x10]
pslld xmm3, 0x10
por xmm3, xmm1
movdqa xmm1, xmm0
punpckldq xmm0, xmm2
movdqa xmm4, xmm3
punpckhdq xmm1, xmm2
punpckldq xmm3, xmm2
psllq xmm1, 0x20
psllq xmm0, 0x20
punpckhdq xmm4, xmm2
por xmm1, xmm4
por xmm0, xmm3
pxor xmm1, xmm7
movdqu xmm7, xmmword [eax - 0x20]
movups xmmword [eax - 0x10], xmm1
pxor xmm0, xmm7
movups xmmword [eax - 0x20], xmm0
cmp ecx, eax
jne 0x61e200
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
lea ecx, [ebx + eax]
mov eax, dword [esp + 0x28]
add eax, ebx
mov dword [esp + 0x38], eax
cmp dword [esp + 0x30], esi
je 0x61e1bf
mov ebx, dword [ecx]
mov esi, dword [ecx + 4]
mov edi, ebx
and ebx, 0xaaaaaaaa
and edi, 0x55555555
mov edx, edi
mov eax, edi
shr edx, 1
or eax, edx
and eax, 0x33333333
mov edx, eax
shr edx, 2
or eax, edx
and eax, 0xf0f0f0f
mov edx, eax
shr edx, 4
or eax, edx
and eax, 0xff00ff
mov edx, eax
mov edi, eax
shr edx, 8
or edi, edx
mov edx, esi
and edx, 0x55555555
mov eax, edx
shr edx, 1
or eax, edx
and eax, 0x33333333
mov edx, eax
shr edx, 2
or eax, edx
and eax, 0xf0f0f0f
mov edx, eax
shr edx, 4
or eax, edx
and eax, 0xff00ff
mov edx, eax
shr edx, 8
or eax, edx
lea edx, [ebx + ebx*2]
and edx, 0xcccccccc
lea ebx, [edx + edx*4]
and ebx, 0xf0f0f0f0
mov edx, ebx
shl edx, 4
add edx, ebx
and edx, 0xff00ff00
mov ebx, edx
shl ebx, 8
add ebx, edx
and esi, 0xaaaaaaaa
shl eax, 0x10
lea edx, [esi + esi*2]
shr ebx, 0x10
and edx, 0xcccccccc
lea esi, [edx + edx*4]
and esi, 0xf0f0f0f0
mov edx, esi
shl edx, 4
add edx, esi
and edx, 0xff00ff00
mov esi, edx
shl esi, 8
add edx, esi
mov esi, dword [esp + 0x24]
xor dx, dx
or edx, ebx
movzx ebx, di
xor dword [esi + 4], edx
or ebx, eax
mov eax, dword [esp + 0x30]
xor dword [esi], ebx
cmp dword [esp + 0x18], eax
jae 0x61e1bf
mov ebx, dword [ecx + 8]
mov esi, dword [ecx + 0xc]
mov edx, ebx
and ebx, 0xaaaaaaaa
and edx, 0x55555555
mov edi, edx
shr edi, 1
mov eax, edi
or eax, edx
and eax, 0x33333333
mov edx, eax
shr edx, 2
or edx, eax
and edx, 0xf0f0f0f
mov edi, edx
shr edi, 4
mov eax, edi
or eax, edx
and eax, 0xff00ff
mov edx, eax
shr edx, 8
mov edi, edx
mov edx, esi
and edx, 0x55555555
or edi, eax
mov eax, edx
shr edx, 1
or edx, eax
and edx, 0x33333333
mov eax, edx
shr eax, 2
or eax, edx
and eax, 0xf0f0f0f
mov edx, eax
shr edx, 4
or eax, edx
and eax, 0xff00ff
mov edx, eax
shr edx, 8
or edx, eax
lea eax, [ebx + ebx*2]
and eax, 0xcccccccc
lea eax, [eax + eax*4]
and eax, 0xf0f0f0f0
mov ebx, eax
shl ebx, 4
add ebx, eax
and ebx, 0xff00ff00
mov eax, ebx
shl eax, 8
add eax, ebx
and esi, 0xaaaaaaaa
shl edx, 0x10
lea ebx, [esi + esi*2]
shr eax, 0x10
and ebx, 0xcccccccc
lea esi, [ebx + ebx*4]
and esi, 0xf0f0f0f0
mov ebx, esi
shl ebx, 4
add ebx, esi
and ebx, 0xff00ff00
mov esi, ebx
shl esi, 8
add esi, ebx
movzx ebx, di
xor si, si
or edx, ebx
or eax, esi
mov esi, dword [esp + 0x10]
xchg edx, eax
xor dword [esi], eax
mov eax, dword [esp + 0x30]
xor dword [esi + 4], edx
cmp dword [esp + 0x14], eax
jae 0x61e1bf
mov eax, dword [ecx + 0x10]
mov esi, dword [ecx + 0x14]
mov ecx, eax
and eax, 0xaaaaaaaa
and ecx, 0x55555555
lea eax, [eax + eax*2]
mov edx, ecx
and eax, 0xcccccccc
shr edx, 1
lea eax, [eax + eax*4]
or edx, ecx
and eax, 0xf0f0f0f0
and edx, 0x33333333
mov ecx, edx
shr ecx, 2
or ecx, edx
and ecx, 0xf0f0f0f
mov edx, ecx
shr edx, 4
or edx, ecx
and edx, 0xff00ff
mov ebx, edx
shr ebx, 8
or ebx, edx
mov edx, esi
and edx, 0x55555555
movzx ebx, bx
mov ecx, edx
shr ecx, 1
or ecx, edx
and ecx, 0x33333333
mov edx, ecx
shr edx, 2
or edx, ecx
and edx, 0xf0f0f0f
mov ecx, edx
shr ecx, 4
or ecx, edx
and ecx, 0xff00ff
mov edx, ecx
shr edx, 8
or edx, ecx
mov ecx, eax
shl ecx, 4
add ecx, eax
and ecx, 0xff00ff00
mov eax, ecx
shl eax, 8
add eax, ecx
and esi, 0xaaaaaaaa
shl edx, 0x10
lea ecx, [esi + esi*2]
shr eax, 0x10
or edx, ebx
and ecx, 0xcccccccc
lea esi, [ecx + ecx*4]
and esi, 0xf0f0f0f0
mov ecx, esi
shl ecx, 4
add ecx, esi
and ecx, 0xff00ff00
mov esi, ecx
shl esi, 8
add esi, ecx
xor si, si
or eax, esi
mov esi, dword [esp + 0xc]
xchg edx, eax
xor dword [esi], eax
xor dword [esi + 4], edx
jmp 0x61e1bf
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret