Function at 0x621c10
Capabilities:
Encode data using base64
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x24
xor edi, edi
cmp edx, 0x3fffffff
jbe 0x621c28
jmp 0x6223a4
lea eax, [edx*4]
mov esi, 0xaaaaaaab
mov ebx, edx
mov dword [ebp - 0x20], ecx
mul esi
mov ecx, edx
shr ecx, 1
add ecx, 3
mov edx, ecx
and edx, 0xfffffffc
cmp edx, dword [ebp + 0xc]
ja 0x6223a4
mov eax, ebx
mov dword [ebp - 0x18], ebx
mov ebx, edx
mov edi, dword [ebp + 8]
mul esi
mov esi, ebx
mov dword [ebp - 0x14], ebx
shr edx, 1
lea eax, [edx + edx*2]
cmp eax, 3
mov dword [ebp - 0x1c], eax
jb 0x62224f
mov esi, dword [ebp - 0x1c]
mov edx, 0xaaaaaaab
shr ecx, 2
mov ebx, dword [ebp - 0x20]
lea eax, [esi - 3]
mul edx
mov eax, dword [ebp + 8]
shr edx, 1
cmp edx, ecx
cmovb ecx, edx
mov edx, esi
mov esi, dword [ebp - 0x14]
cmp ecx, 8
jb 0x622139
lea ebx, [ecx + 1]
mov edi, 8
not ecx
mov eax, ebx
and eax, 7
cmovne edi, eax
mov eax, dword [ebp - 0x14]
sub ebx, edi
add ecx, edi
lea esi, [ebx*4]
lea edx, [ebx + ebx*2]
sub eax, esi
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x1c]
mov edi, esi
sub eax, edx
mov dword [ebp - 0x28], eax
lea eax, [esi + edx]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 8]
lea edx, [eax + ebx*4]
mov ebx, eax
mov dword [ebp - 0x24], edx
nop word cs:[eax + eax]
nop dword [eax]
movdqu xmm0, xmmword [edi]
movdqa xmm5, xmmword [0x6ec920]
movq xmm3, qword [edi + 0x10]
pxor xmm1, xmm1
add edi, 0x18
movdqa xmm2, xmm5
movdqa xmm4, xmm0
movdqa xmm7, xmm0
movdqa xmm6, xmm0
pand xmm4, xmm5
pandn xmm2, xmm3
movdqa xmm5, xmmword [0x6ec940]
punpckhbw xmm7, xmm1
por xmm4, xmm2
movdqa xmm2, xmmword [0x6ec930]
punpcklbw xmm4, xmm1
pand xmm6, xmm5
pand xmm4, xmm2
pandn xmm2, xmm7
por xmm2, xmm4
movdqa xmm4, xmm5
movdqa xmm5, xmmword [0x6ec960]
pandn xmm4, xmm3
pshufd xmm2, xmm2, 0xd8
por xmm6, xmm4
movdqa xmm4, xmmword [0x6ec950]
pshufhw xmm2, xmm2, 0x6c
punpcklbw xmm6, xmm1
pshufd xmm2, xmm2, 0x6c
pshuflw xmm2, xmm2, 0x6c
pshufhw xmm2, xmm2, 0xc6
pand xmm6, xmm4
pandn xmm4, xmm7
packuswb xmm2, xmm2
por xmm4, xmm6
movdqa xmm6, xmm5
punpcklbw xmm2, xmm1
pshuflw xmm4, xmm4, 0xc6
pandn xmm6, xmm3
movdqa xmm3, xmmword [0x6ec970]
pshufhw xmm4, xmm4, 0xc6
pshufd xmm4, xmm4, 0x6c
pshuflw xmm4, xmm4, 0x39
pshufhw xmm4, xmm4, 0x39
packuswb xmm4, xmm4
pand xmm0, xmm5
movdqa xmm5, xmmword [0x6ec990]
por xmm0, xmm6
movdqa xmm6, xmmword [0x6ec9b0]
punpcklbw xmm4, xmm1
punpcklbw xmm0, xmm1
pand xmm0, xmm3
pandn xmm3, xmm7
movdqa xmm7, xmmword [0x6ec980]
por xmm3, xmm0
pshufd xmm0, xmm3, 0x27
movdqa xmm3, xmm2
psllw xmm2, 4
psrlw xmm3, 2
pshufhw xmm0, xmm0, 0x6c
pand xmm2, xmmword [0x6eca10]
psubw xmm7, xmm3
pshufd xmm0, xmm0, 0x27
psrlw xmm7, 8
pshuflw xmm0, xmm0, 0xc6
pand xmm7, xmm5
movdqa xmm5, xmmword [0x6ec9a0]
pshufhw xmm0, xmm0, 0xc6
packuswb xmm0, xmm0
punpcklbw xmm0, xmm1
movdqa xmm1, xmmword [0x6ec9d0]
psubw xmm5, xmm3
psrlw xmm5, 8
pand xmm5, xmm6
movdqa xmm6, xmmword [0x6ec9c0]
psubw xmm6, xmm3
psrlw xmm6, 8
pand xmm6, xmm1
movdqa xmm1, xmmword [0x6ec9f0]
paddw xmm6, xmm5
movdqa xmm5, xmmword [0x6ec9e0]
psubw xmm5, xmm3
psrlw xmm5, 8
pand xmm5, xmm1
movdqa xmm1, xmmword [0x6eca00]
paddw xmm5, xmm3
movdqa xmm3, xmm4
psllw xmm4, 2
paddw xmm5, xmm6
psrlw xmm3, 4
movdqa xmm6, xmmword [0x6ec9c0]
pand xmm4, xmmword [0x6eca20]
por xmm3, xmm2
movdqa xmm2, xmmword [0x6ec980]
paddw xmm7, xmm1
movdqa xmm1, xmmword [0x6ec9d0]
paddw xmm7, xmm5
movdqa xmm5, xmmword [0x6ec9a0]
psubw xmm6, xmm3
psrlw xmm6, 8
psubw xmm2, xmm3
pand xmm6, xmm1
psrlw xmm2, 8
movdqa xmm1, xmmword [0x6ec990]
psubw xmm5, xmm3
pand xmm2, xmmword [0x6ec990]
psrlw xmm5, 8
pand xmm5, xmmword [0x6ec9b0]
paddw xmm2, xmmword [0x6eca00]
paddw xmm6, xmm5
movdqa xmm5, xmmword [0x6ec9e0]
psubw xmm5, xmm3
psrlw xmm5, 8
pand xmm5, xmmword [0x6ec9f0]
paddw xmm5, xmm3
movdqa xmm3, xmm0
pand xmm0, xmmword [0x6eca30]
psrlw xmm3, 6
paddw xmm5, xmm6
movdqa xmm6, xmmword [0x6ec9c0]
por xmm3, xmm4
movdqa xmm4, xmmword [0x6ec980]
paddw xmm2, xmm5
movdqa xmm5, xmmword [0x6ec9a0]
psubw xmm6, xmm3
psubw xmm4, xmm3
psubw xmm5, xmm3
psrlw xmm6, 8
psrlw xmm4, 8
psrlw xmm5, 8
pand xmm4, xmm1
movdqa xmm1, xmmword [0x6ec9b0]
pand xmm5, xmm1
movdqa xmm1, xmmword [0x6ec9d0]
pand xmm6, xmm1
movdqa xmm1, xmmword [0x6ec9f0]
paddw xmm6, xmm5
movdqa xmm5, xmmword [0x6ec9e0]
psubw xmm5, xmm3
psrlw xmm5, 8
pand xmm5, xmm1
movdqa xmm1, xmmword [0x6eca00]
paddw xmm5, xmm3
movdqa xmm3, xmmword [0x6ec980]
paddw xmm5, xmm6
movdqa xmm6, xmmword [0x6ec9c0]
paddw xmm4, xmm1
paddw xmm4, xmm5
movdqa xmm5, xmmword [0x6ec9a0]
psubw xmm3, xmm0
psubw xmm6, xmm0
psrlw xmm3, 8
psrlw xmm6, 8
pand xmm3, xmmword [0x6ec990]
pand xmm6, xmmword [0x6ec9d0]
psubw xmm5, xmm0
psrlw xmm5, 8
pand xmm5, xmmword [0x6ec9b0]
paddw xmm3, xmm1
pxor xmm1, xmm1
paddw xmm6, xmm5
movdqa xmm5, xmmword [0x6ec9e0]
psubw xmm5, xmm0
psrlw xmm5, 8
pand xmm5, xmmword [0x6ec9f0]
paddw xmm5, xmm0
movdqa xmm0, xmmword [0x6eca40]
paddw xmm5, xmm6
pxor xmm6, xmm6
paddw xmm3, xmm5
pand xmm4, xmm0
pand xmm3, xmm0
pand xmm2, xmm0
pand xmm7, xmm0
packuswb xmm4, xmm3
packuswb xmm7, xmm2
movdqa xmm0, xmm4
punpcklbw xmm4, xmm1
punpckhbw xmm0, xmm1
movdqa xmm1, xmmword [0x6eca50]
movdqa xmm2, xmm4
punpckhwd xmm2, xmm0
punpcklwd xmm4, xmm0
pshufd xmm3, xmm2, 0xfa
pshufd xmm2, xmm2, 0x50
pshufd xmm0, xmm4, 0xfa
pshufd xmm4, xmm4, 0x50
packuswb xmm2, xmm3
movdqa xmm3, xmm7
punpcklbw xmm7, xmm6
packuswb xmm4, xmm0
movdqa xmm5, xmm1
punpckhbw xmm3, xmm6
movdqa xmm0, xmm1
pandn xmm5, xmm2
movdqa xmm2, xmm7
punpcklwd xmm7, xmm3
pandn xmm0, xmm4
punpckhwd xmm2, xmm3
pshufd xmm3, xmm7, 0xf6
pshufd xmm4, xmm7, 0xd4
pshufd xmm6, xmm2, 0xf6
pshufd xmm2, xmm2, 0xd4
packuswb xmm4, xmm3
packuswb xmm2, xmm6
pand xmm4, xmm1
pand xmm2, xmm1
por xmm4, xmm0
por xmm2, xmm5
movdqu xmmword [ebx], xmm4
movdqu xmmword [ebx + 0x10], xmm2
add ebx, 0x20
add ecx, 8
jne 0x621cf0
mov esi, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x24]
movdqa xmm5, xmmword [0x6ecac0]
movdqa xmm7, xmmword [0x6ecad0]
movdqa xmm1, xmmword [0x6ecae0]
movdqa xmm0, xmmword [0x6eca40]
nop dword [eax]
test esi, esi
je 0x62239e
mov ecx, ebx
mov dword [ebp - 0x2c], esi
movzx ebx, byte [ebx]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x28], edx
movdqa xmm6, xmmword [0x6eca80]
movdqa xmm4, xmmword [0x6ecaa0]
movdqa xmm2, xmmword [0x6eca60]
movzx esi, byte [ecx + 1]
movzx eax, byte [ecx + 2]
mov edx, ebx
shl ebx, 4
mov edi, esi
and ebx, 0x30
shr edx, 2
and esi, 0xf
shr edi, 4
movd xmm3, edx
mov edx, dword [ebp - 0x28]
or edi, ebx
mov ebx, eax
and eax, 0x3f
shr ebx, 6
pinsrw xmm3, edi, 1
lea esi, [ebx + esi*4]
mov ebx, ecx
pinsrw xmm3, esi, 2
mov esi, dword [ebp - 0x2c]
add edx, 0xfffffffd
add ebx, 3
pinsrw xmm3, eax, 3
mov eax, dword [ebp - 0x24]
psubw xmm6, xmm3
psubw xmm4, xmm3
psubw xmm2, xmm3
psrlw xmm6, 8
psrlw xmm4, 8
psrlw xmm2, 8
pand xmm6, xmmword [0x6eca90]
pand xmm4, xmmword [0x6ecab0]
pand xmm2, xmmword [0x6eca70]
add esi, 0xfffffffc
cmp edx, 3
lea edi, [eax + 4]
paddw xmm4, xmm6
movdqa xmm6, xmm5
psubw xmm6, xmm3
psrlw xmm6, 8
pand xmm6, xmm7
paddw xmm6, xmm3
paddw xmm6, xmm4
paddw xmm6, xmm2
paddw xmm6, xmm1
pand xmm6, xmm0
packuswb xmm6, xmm6
movd dword [eax], xmm6
mov eax, edi
jae 0x622160
cmp esi, 4
jb 0x62239e
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
sub edx, eax
add esi, eax
mov eax, edx
lea ecx, [ebp + edx - 0xf]
mov ebx, edx
mov dword [ebp - 0x18], edx
xor eax, 3
push eax
push 0
push ecx
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [ebp - 0xf]
push ebx
push esi
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
movzx ecx, byte [ebp - 0xf]
mov esi, 0x3d
mov edx, 0x33
mov ebx, 0x19
mov eax, ecx
shl ecx, 4
shr eax, 2
and ecx, 0x30
sub esi, eax
sub edx, eax
sub ebx, eax
shr esi, 8
shr edx, 8
shr ebx, 8
and esi, 0xf1
and edx, 0xb5
and ebx, 6
add edx, esi
mov esi, 0x3e
add ebx, eax
sub esi, eax
movzx eax, byte [ebp - 0xe]
add ebx, edx
shr esi, 8
and esi, 3
add ebx, esi
mov esi, 0x3d
mov edx, eax
add bl, 0x41
and eax, 0xf
shr edx, 4
mov byte [edi], bl
mov ebx, 0x19
or edx, ecx
mov ecx, 0x33
sub esi, edx
sub ecx, edx
sub ebx, edx
shr esi, 8
shr ecx, 8
shr ebx, 8
and esi, 0xf1
and ecx, 0xb5
and ebx, 6
add ecx, esi
mov esi, 0x3e
add ebx, edx
sub esi, edx
movzx edx, byte [ebp - 0xd]
add ebx, ecx
mov ecx, 0x33
shr esi, 8
and esi, 3
add ebx, esi
mov esi, 0x3e
shr edx, 6
add bl, 0x41
lea eax, [edx + eax*4]
mov edx, 0x3d
mov byte [edi + 1], bl
sub edx, eax
sub ecx, eax
sub esi, eax
shr edx, 8
shr ecx, 8
shr esi, 8
and edx, 0xf1
and ecx, 0xb5
and esi, 3
add ecx, edx
mov edx, 0x19
sub edx, eax
shr edx, 8
and edx, 6
add edx, eax
mov eax, 0x3d
add edx, ecx
add edx, esi
add dl, 0x41
cmp dword [ebp - 0x18], 1
movzx ecx, dl
cmove ecx, eax
mov byte [edi + 2], cl
mov byte [edi + 3], 0x3d
mov edi, dword [ebp + 8]
mov edx, dword [ebp - 0x14]
mov eax, edi
add esp, 0x24
pop esi
pop edi
pop ebx
pop ebp
ret