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

Disassembly:
sub esp, 0x9c
mov edx, ecx
push ebp
xor ebp, ebp
cmp edx, ebp
jne 0x5d08e9
xor eax, eax
pop ebp
add esp, 0x9c
ret
push ebx
push esi
push edi
mov ecx, 0x20
mov eax, 0xa5a5a5a5
lea edi, [esp + 0x2c]
rep stosd dword es:[edi], eax
push 0x80
lea eax, [esp + 0x30]
push edx
push eax
call fcn.0076d960
lea edi, [esp + 0x38]
or ecx, 0xffffffff
xor eax, eax
mov byte [esp + 0xb7], 0
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
lea ecx, [esp + 0x38]
push ecx
mov dword [esp + 0x34], ebx
call fcn.00781764
add esp, 0x10
xor esi, esi
cmp ebx, ebp
jle 0x5d0963
movsx edx, byte [esp + esi + 0x2c]
push edx
call fcn.0076e21d
add esp, 4
test eax, eax
jne 0x5d095e
mov eax, esi
mov ecx, 0x1a
cdq
idiv ecx
add dl, 0x41
mov byte [esp + esi + 0x2c], dl
inc esi
cmp esi, ebx
jl 0x5d093b
cmp ebx, 0x10
jl 0x5d096d
test bl, 3
je 0x5d09b3
lea eax, [ebx + 3]
mov esi, 0x10
and eax, 0xfc
cmp eax, esi
jle 0x5d0980
mov esi, eax
cmp ebx, esi
mov ecx, ebx
jge 0x5d09a8
mov edx, ecx
mov edi, 0x1a
sub edx, ebx
movsx eax, byte [esp + edx + 0x2c]
xor eax, 0x3f
add eax, ecx
cdq
idiv edi
add dl, 0x41
mov byte [esp + ecx + 0x2c], dl
inc ecx
cmp ecx, esi
jl 0x5d0986
mov ebx, ecx
mov byte [esp + ecx + 0x2c], 0
mov dword [esp + 0x24], ebx
lea eax, [esp + 0x2c]
push ebx
push eax
lea ecx, [esp + 0x20]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], ebp
call fcn.00493c50
lea ecx, [esp + 0x2c]
push ecx
call fcn.007825f0
add esp, 4
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x18]
mov dword [esp + 0x18], ebp
push ebx
push edx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], ebp
call fcn.00493c50
mov dword [esp + 0x10], eax
lea eax, [esp + 0x2c]
push eax
call fcn.007825f0
add esp, 4
xor edx, edx
cmp ebx, ebp
jle 0x5d0a3d
mov al, byte [esp + edx + 0x2c]
mov ecx, dword [esp + 0x10]
mov esi, eax
and esi, 0xff
xor ecx, esi
xor al, cl
mov byte [esp + edx + 0x2c], al
mov eax, ecx
and eax, 0xff
shl eax, 0x18
sar ecx, 8
or eax, ecx
inc edx
cmp edx, ebx
mov dword [esp + 0x10], eax
jl 0x5d0a0d
xor esi, esi
cmp ebx, ebp
jle 0x5d0a67
mov dl, byte [esp + esi + 0x2c]
mov edi, esi
and edi, 7
mov cl, byte [edi + 0x7d2394]
or cl, dl
mov dl, byte [edi + 0x7d238c]
not dl
and cl, dl
mov byte [esp + esi + 0x2c], cl
inc esi
cmp esi, ebx
jl 0x5d0a43
xor edi, edi
cmp ebx, ebp
jle 0x5d0aec
movsx si, byte [esp + edi + 0x2c]
movsx ax, byte [esp + edi + 0x2d]
movsx bp, byte [esp + edi + 0x2e]
mov edx, esi
add eax, eax
imul edx, esi
movsx cx, byte [esp + edi + 0x2f]
mov dword [esp + 0x14], eax
lea eax, [ebp + ebp]
mov dword [esp + 0x28], eax
xor eax, edx
mov dword [esp + 0x10], ecx
imul eax, esi
imul ecx, ecx
mov ebx, dword [esp + 0x14]
mov esi, eax
mov eax, ecx
mov dword [esp + 0x14], ebx
xor eax, ebx
mov ebx, esi
add eax, esi
add edi, 4
imul eax, ebp
xor edx, eax
add ebx, eax
mov byte [esp + edi + 0x28], dl
mov dl, byte [esp + 0x28]
xor dl, al
mov al, byte [esp + 0x14]
xor al, bl
mov byte [esp + edi + 0x29], dl
xor cl, bl
mov ebx, dword [esp + 0x24]
mov byte [esp + edi + 0x2a], al
mov byte [esp + edi + 0x2b], cl
cmp edi, ebx
mov dword [esp + 0x10], esi
jl 0x5d0a6d
xor ebp, ebp
lea ecx, [esp + 0x2c]
push ebx
push ecx
lea ecx, [esp + 0x20]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], ebp
call fcn.00493c50
pop edi
pop esi
pop ebx
pop ebp
add esp, 0x9c
ret