Function at 0x5a3550
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
sub esp, 0x9c
mov eax, dword [0x8d0d94]
xor eax, esp
mov dword [esp + 0x98], eax
cmp dword [0x8d56b8], 0
push ebx
mov ebx, dword [esp + 0xb0]
push esi
mov esi, dword [esp + 0xac]
mov dword [esp + 8], ebx
jne 0x5a35fd
mov byte [0x8d57bf], 0
mov edx, 1
mov byte [0x8d57c0], 0xff
xor ebx, ebx
nop word [eax + eax]
mov byte [ebx + 0x8d56c0], dl
mov byte [edx + 0x8d57c0], bl
add edx, edx
mov ecx, edx
mov eax, edx
xor ecx, 0x11d
and eax, 0x100
cmove ecx, edx
inc ebx
movzx edx, cl
cmp ebx, 0xff
jb 0x5a35a0
mov ebx, dword [esp + 8]
xorps xmm0, xmm0
movups xmmword [0x8d5c44], xmm0
mov dword [0x8d5c5c], 0
movq qword [0x8d5c54], xmm0
mov byte [0x8d5c60], 0
mov dword [0x8d56b8], 1
cmp esi, 0x1e
jbe 0x5a361c
pop esi
or eax, 0xffffffff
pop ebx
mov ecx, dword [esp + 0x98]
xor ecx, esp
call fcn.005a6645
add esp, 0x9c
ret
push ebp
push edi
push esi
push 0
push ebx
call fcn.005a90d0
add esp, 0xc
mov ebp, 0xff
cmp byte [esi + 0x8d5c42], 0
mov dword [esp + 0x18], ebp
jne 0x5a36d4
xor ecx, ecx
mov dword [esp + 0x2c], 1
test esi, esi
je 0x5a36a6
nop
mov dword [esp + ecx*4 + 0x30], 1
mov edi, ecx
test ecx, ecx
je 0x5a3685
nop
mov eax, dword [esp + edi*4 + 0x2c]
xor edx, edx
movzx eax, byte [eax + 0x8d57c0]
add eax, ecx
div ebp
movzx eax, byte [edx + 0x8d56c0]
xor eax, dword [esp + edi*4 + 0x28]
mov dword [esp + edi*4 + 0x2c], eax
sub edi, 1
jne 0x5a3660
mov eax, dword [esp + 0x2c]
xor edx, edx
movzx eax, byte [eax + 0x8d57c0]
add eax, ecx
inc ecx
div ebp
movzx eax, byte [edx + 0x8d56c0]
mov dword [esp + 0x2c], eax
cmp ecx, esi
jb 0x5a3650
lea eax, [esi - 2]
xor edx, edx
mov ecx, eax
shl ecx, 5
sub ecx, eax
add ecx, 0x8d58c0
mov eax, dword [esp + edx*4 + 0x2c]
lea ecx, [ecx + 1]
inc edx
mov al, byte [eax + 0x8d57c0]
mov byte [ecx - 1], al
cmp edx, esi
jbe 0x5a36b8
mov byte [esi + 0x8d5c42], 1
lea eax, [esi - 2]
xor ebp, ebp
mov edi, eax
mov dword [esp + 0x14], ebp
shl edi, 5
sub edi, eax
add edi, 0x8d58c0
mov dword [esp + 0x20], edi
cmp dword [esp + 0xb0], ebp
je 0x5a37bf
lea eax, [ebx + 1]
mov dword [esp + 0x24], eax
lea eax, [esi - 1]
add eax, ebx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xb8]
movzx ecx, byte [eax + ebp]
movzx eax, byte [ebx]
xor ecx, eax
mov bl, byte [ecx + 0x8d57c0]
cmp bl, 0xff
je 0x5a3768
mov ecx, 1
cmp esi, ecx
jbe 0x5a3768
mov ebp, dword [esp + 0x10]
dec edi
movzx edx, bl
add edi, esi
mov dword [esp + 0x1c], edx
nop dword [eax]
movzx eax, byte [edi]
lea edi, [edi - 1]
add eax, edx
xor edx, edx
div dword [esp + 0x18]
mov al, byte [edx + 0x8d56c0]
xor byte [ecx + ebp], al
inc ecx
mov edx, dword [esp + 0x1c]
cmp ecx, esi
jb 0x5a3740
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
lea eax, [esi - 1]
push eax
push dword [esp + 0x28]
push dword [esp + 0x18]
call fcn.005a9230
add esp, 0xc
cmp bl, 0xff
je 0x5a379a
movzx eax, byte [edi]
xor edx, edx
movzx ecx, bl
add eax, ecx
mov ecx, 0xff
div ecx
mov al, byte [edx + 0x8d56c0]
jmp 0x5a379c
xor al, al
mov ecx, dword [esp + 0x28]
inc ebp
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x14], ebp
mov byte [ecx], al
mov eax, dword [esp + 0xb8]
cmp ebp, dword [esp + 0xb0]
jb 0x5a3712
mov ecx, dword [esp + 0xa8]
xor eax, eax
pop edi
pop ebp
pop esi
pop ebx
xor ecx, esp
call fcn.005a6645
add esp, 0x9c
ret