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

Disassembly:
push ecx
and byte [0xbdd35f], 0
push ebx
push ebp
push esi
push edi
push 1
xor ecx, ecx
pop eax
mov edx, eax
and dl, 0x80
neg dl
sbb dl, dl
mov bl, al
shl bl, 1
mov byte [ecx + 0xbdd258], al
mov byte [eax + 0xbdd358], cl
movzx esi, bl
and edx, 0x1b
movzx edx, dl
xor edx, esi
movzx eax, al
xor eax, edx
inc ecx
cmp ecx, 0x100
jb 0x42d5c0
and byte [0xbdd359], 0
push 1
pop eax
mov ecx, 0xbdd030
mov edx, eax
and dl, 0x80
neg dl
sbb dl, dl
mov dword [ecx], eax
shl al, 1
movzx eax, al
add ecx, 4
and edx, 0x1b
movzx edx, dl
xor eax, edx
cmp ecx, 0xbdd058
jb 0x42d601
xor ebx, ebx
test ebx, ebx
je 0x42d63d
movzx eax, byte [ebx + 0xbdd358]
mov ecx, 0xbdd357
sub ecx, eax
movzx eax, byte [ecx]
jmp 0x42d63f
xor eax, eax
xor edx, edx
mov dl, al
mov cl, dl
shl cl, 1
movzx ecx, cl
mov eax, edx
shr eax, 7
movzx eax, al
or eax, ecx
xor edx, eax
mov ecx, eax
shr ecx, 7
shl al, 1
movzx ecx, cl
movzx eax, al
or ecx, eax
xor edx, ecx
mov eax, ecx
shl cl, 1
shr eax, 7
movzx ecx, cl
movzx eax, al
or eax, ecx
xor edx, eax
mov ecx, eax
shr ecx, 7
shl al, 1
movzx ecx, cl
movzx eax, al
or ecx, eax
xor ecx, edx
xor ecx, 0x63
mov byte [ebx + 0xbdd158], cl
mov byte [ecx + 0xbdd058], bl
inc ebx
cmp ebx, 0x100
jb 0x42d626
xor ebx, ebx
movzx edi, byte [ebx + 0xbdd158]
mov esi, ebx
push 8
shl esi, 2
push edi
mov dword [esi + 0xbda030], edi
call fcn.00a705eb
push 0x10
push edi
mov dword [esi + 0xbda430], eax
call fcn.00a705eb
push 0x18
push edi
mov dword [esi + 0xbda830], eax
call fcn.00a705eb
add esp, 0x18
test edi, edi
mov dword [esi + 0xbdac30], eax
je 0x42d707
movzx ecx, byte [0xbdd35a]
movzx eax, byte [edi + 0xbdd358]
add eax, ecx
cdq
mov ecx, 0xff
idiv ecx
movzx ecx, byte [edx + 0xbdd258]
jmp 0x42d709
xor ecx, ecx
test edi, edi
je 0x42d72e
movzx edx, byte [0xbdd35b]
movzx eax, byte [edi + 0xbdd358]
add eax, edx
cdq
mov ebp, 0xff
idiv ebp
movzx eax, byte [edx + 0xbdd258]
jmp 0x42d730
xor eax, eax
shl eax, 8
or eax, edi
shl eax, 8
or eax, edi
shl eax, 8
or eax, ecx
mov edi, eax
push 8
push edi
mov dword [esi + 0xbdc030], edi
call fcn.00a705eb
push 0x10
push edi
mov dword [esi + 0xbdc430], eax
call fcn.00a705eb
push 0x18
push edi
mov dword [esi + 0xbdc830], eax
call fcn.00a705eb
movzx edi, byte [ebx + 0xbdd058]
push 8
push edi
mov dword [esi + 0xbdcc30], eax
mov dword [esi + 0xbd9030], edi
call fcn.00a705eb
push 0x10
push edi
mov dword [esi + 0xbd9430], eax
call fcn.00a705eb
push 0x18
push edi
mov dword [esi + 0xbd9830], eax
call fcn.00a705eb
xor ebp, ebp
add esp, 0x30
cmp edi, ebp
mov dword [esi + 0xbd9c30], eax
je 0x42d7d6
movzx ecx, byte [0xbdd366]
movzx eax, byte [edi + 0xbdd358]
add eax, ecx
cdq
mov ecx, 0xff
idiv ecx
movzx eax, byte [edx + 0xbdd258]
mov dword [esp + 0x10], eax
jmp 0x42d7da
mov dword [esp + 0x10], ebp
cmp edi, ebp
je 0x42d7fd
movzx ecx, byte [0xbdd361]
movzx eax, byte [edi + 0xbdd358]
add eax, ecx
cdq
mov ecx, 0xff
idiv ecx
movzx ebp, byte [edx + 0xbdd258]
test edi, edi
je 0x42d822
movzx ecx, byte [0xbdd365]
movzx eax, byte [edi + 0xbdd358]
add eax, ecx
cdq
mov ecx, 0xff
idiv ecx
movzx ecx, byte [edx + 0xbdd258]
jmp 0x42d824
xor ecx, ecx
test edi, edi
je 0x42d849
movzx eax, byte [edi + 0xbdd358]
movzx edx, byte [0xbdd363]
add eax, edx
cdq
mov edi, 0xff
idiv edi
movzx eax, byte [edx + 0xbdd258]
jmp 0x42d84b
xor eax, eax
shl eax, 8
or eax, ecx
shl eax, 8
or eax, ebp
shl eax, 8
or eax, dword [esp + 0x10]
push 8
mov edi, eax
push edi
mov dword [esi + 0xbdb030], edi
call fcn.00a705eb
push 0x10
push edi
mov dword [esi + 0xbdb430], eax
call fcn.00a705eb
push 0x18
push edi
mov dword [esi + 0xbdb830], eax
call fcn.00a705eb
add esp, 0x18
inc ebx
cmp ebx, 0x100
mov dword [esi + 0xbdbc30], eax
jb 0x42d6a3
pop edi
pop esi
pop ebp
mov byte [0xbdd458], 1
pop ebx
pop ecx
ret