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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push ebx
mov bl, byte [0x593bc8]
mov eax, edx
mov dword [ebp - 4], eax
movzx eax, bl
push esi
push edi
mov esi, 7
mov dword [ebp - 8], eax
lea edi, [eax - 7]
mov dword [ebp - 0x10], edi
cmp edi, esi
jle 0x47625f
nop dword [eax]
movzx edx, bl
mov eax, 0xff
imul edx, esi
add edx, 6
mov ecx, edx
sar edx, 3
and ecx, 7
btc eax, ecx
and byte [edx + 0x593bc9], al
movzx eax, byte [0x593bc8]
lea eax, [eax + eax*2]
lea edx, [esi + eax*2]
mov eax, 0xff
mov ecx, edx
add esi, 2
sar edx, 3
and ecx, 7
btc eax, ecx
and byte [edx + 0x593bc9], al
mov bl, byte [0x593bc8]
cmp esi, edi
jl 0x476210
or edi, 0xffffffff
lea eax, [edi - 3]
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
or esi, 0xffffffff
mov dword [ebp - 0xc], ecx
lea eax, [esi - 3]
cdq
xor eax, edx
sub eax, edx
cmp ecx, eax
cmovg eax, ecx
cmp eax, 2
je 0x47628d
cmp eax, 4
jne 0x47634d
movzx ecx, bl
test esi, esi
js 0x4762c3
cmp esi, ecx
jge 0x4762c3
test edi, edi
js 0x4762c3
cmp edi, ecx
jge 0x4762c3
mov edx, edi
mov eax, 0xff
imul edx, ecx
add edx, esi
mov ecx, edx
sar edx, 3
and ecx, 7
btc eax, ecx
and byte [edx + 0x593bc9], al
mov bl, byte [0x593bc8]
mov edx, dword [ebp - 0x10]
movzx ecx, bl
lea eax, [edx + esi]
test eax, eax
js 0x47630d
cmp eax, ecx
jge 0x47630d
test edi, edi
js 0x47630d
cmp edi, ecx
jge 0x47630d
mov edx, dword [ebp - 8]
mov eax, edi
imul eax, ecx
add edx, 0xfffffffc
lea ecx, [esi - 3]
add eax, ecx
add edx, eax
mov eax, 0xff
mov ecx, edx
sar edx, 3
and ecx, 7
btc eax, ecx
and byte [edx + 0x593bc9], al
mov bl, byte [0x593bc8]
mov edx, dword [ebp - 0x10]
movzx ecx, bl
test esi, esi
js 0x47634a
cmp esi, ecx
jge 0x47634a
lea eax, [edi + edx]
test eax, eax
js 0x47634a
cmp eax, ecx
jge 0x47634a
imul eax, ecx
lea edx, [esi - 3]
add eax, 3
add edx, eax
mov eax, 0xff
mov ecx, edx
sar edx, 3
and ecx, 7
btc eax, ecx
and byte [edx + 0x593bc9], al
mov bl, byte [0x593bc8]
mov ecx, dword [ebp - 0xc]
inc esi
lea eax, [esi - 3]
cmp eax, 4
jle 0x476272
inc edi
lea eax, [edi - 3]
cmp eax, 4
jle 0x476262
mov ecx, dword [ebp - 4]
cmp ecx, 1
je 0x4766cc
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov edi, edx
shr edi, 0x1f
add edi, 2
add edi, edx
mov dword [ebp - 0x20], edi
cmp ecx, 0x20
jne 0x476396
lea eax, [ecx - 6]
jmp 0x4763af
lea eax, [edi + ecx*2]
lea eax, [eax*2 + 1]
lea ecx, [edi*2 - 2]
cdq
idiv ecx
mov ecx, dword [ebp - 4]
add eax, eax
lea esi, [edi - 1]
lea edx, [ecx*4 + 0xa]
mov dword [ebp - 0x1c], esi
mov ecx, esi
cmp ecx, 1
jl 0x4763d5
mov byte [ebp + ecx - 0x28], dl
dec ecx
sub edx, eax
cmp ecx, 1
jge 0x4763c3
mov byte [ebp - 0x28], 6
jmp 0x4763e1
mov byte [ebp - 0x28], 6
test edi, edi
jle 0x4764b7
xor ecx, ecx
mov dword [ebp - 0x10], ecx
xor eax, eax
mov dword [ebp - 0xc], eax
nop dword [eax + eax]
test ecx, ecx
jne 0x476404
test eax, eax
je 0x47649f
cmp eax, esi
je 0x47649f
cmp ecx, esi
jne 0x476410
test eax, eax
je 0x47649f
or edi, 0xffffffff
movzx eax, byte [ebp + eax - 0x28]
or esi, 0xffffffff
movzx ecx, byte [ebp + ecx - 0x28]
add eax, edi
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], ecx
test esi, esi
jne 0x476450
test edi, edi
jne 0x476450
movzx ecx, bl
imul ecx, eax
add ecx, esi
add ecx, dword [ebp - 0x14]
mov eax, ecx
and ecx, 7
sar eax, 3
add eax, 0x593bc9
movzx edx, byte [eax]
bts edx, ecx
jmp 0x476473
movzx edx, bl
imul edx, eax
add edx, esi
add edx, ecx
mov ecx, 0xff
mov eax, edx
and edx, 7
sar eax, 3
btc ecx, edx
add eax, 0x593bc9
and cl, byte [eax]
mov dl, cl
inc esi
mov byte [eax], dl
mov bl, byte [0x593bc8]
cmp esi, 1
jg 0x476489
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
jmp 0x476428
mov eax, dword [ebp - 0xc]
inc edi
mov ecx, dword [ebp - 0x10]
cmp edi, 1
jle 0x476413
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x20]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, edi
jl 0x4763f0
inc ecx
mov dword [ebp - 0x10], ecx
cmp ecx, edi
jl 0x4763e6
mov eax, dword [ebp - 4]
cmp eax, 7
jl 0x4766cc
mov edx, eax
mov esi, 0xc
nop word [eax + eax]
mov eax, edx
add edx, edx
sar eax, 0xb
imul ecx, eax, 0x1f25
xor edx, ecx
sub esi, 1
jne 0x4764d0
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 8]
shl eax, 0xc
or eax, edx
xor edx, edx
mov dword [ebp - 4], eax
lea edi, [ecx - 0xb]
movzx eax, bl
imul eax, edx
add eax, 0xfffffff5
add ecx, eax
mov eax, dword [ebp - 4]
mov esi, ecx
sar ecx, 3
and esi, 7
mov bl, byte [ecx + 0x593bc9]
test al, 1
je 0x476545
movzx eax, bl
bts eax, esi
mov byte [ecx + 0x593bc9], al
movzx eax, byte [0x593bc8]
imul eax, edi
add eax, edx
mov esi, eax
and eax, 7
sar esi, 3
add esi, 0x593bc9
movzx ecx, byte [esi]
bts ecx, eax
jmp 0x47657b
mov eax, 0xff
btc eax, esi
and al, bl
mov byte [ecx + 0x593bc9], al
mov eax, 0xff
movzx ecx, byte [0x593bc8]
imul ecx, edi
add ecx, edx
mov esi, ecx
and ecx, 7
sar esi, 3
btc eax, ecx
add esi, 0x593bc9
and al, byte [esi]
mov cl, al
sar dword [ebp - 4], 1
mov byte [esi], cl
movzx eax, byte [0x593bc8]
mov ecx, dword [ebp - 8]
imul eax, edx
add ecx, 0xfffffff6
add ecx, eax
mov eax, dword [ebp - 4]
mov esi, ecx
sar ecx, 3
and esi, 7
mov bl, byte [ecx + 0x593bc9]
test al, 1
je 0x4765db
movzx eax, bl
bts eax, esi
mov byte [ecx + 0x593bc9], al
mov ecx, dword [ebp - 8]
movzx eax, byte [0x593bc8]
add ecx, 0xfffffff6
imul eax, ecx
add eax, edx
mov esi, eax
and eax, 7
sar esi, 3
add esi, 0x593bc9
movzx ecx, byte [esi]
bts ecx, eax
jmp 0x476617
mov eax, 0xff
btc eax, esi
and al, bl
mov byte [ecx + 0x593bc9], al
mov eax, dword [ebp - 8]
movzx ecx, byte [0x593bc8]
add eax, 0xfffffff6
imul ecx, eax
mov eax, 0xff
add ecx, edx
mov esi, ecx
and ecx, 7
sar esi, 3
btc eax, ecx
add esi, 0x593bc9
and al, byte [esi]
mov cl, al
sar dword [ebp - 4], 1
mov byte [esi], cl
movzx eax, byte [0x593bc8]
mov ecx, dword [ebp - 8]
imul eax, edx
add ecx, 0xfffffff7
add ecx, eax
mov eax, dword [ebp - 4]
mov esi, ecx
sar ecx, 3
and esi, 7
mov bl, byte [ecx + 0x593bc9]
test al, 1
je 0x476677
movzx eax, bl
bts eax, esi
mov byte [ecx + 0x593bc9], al
mov ecx, dword [ebp - 8]
movzx eax, byte [0x593bc8]
add ecx, 0xfffffff7
imul eax, ecx
add eax, edx
mov esi, eax
and eax, 7
sar esi, 3
add esi, 0x593bc9
movzx ecx, byte [esi]
bts ecx, eax
jmp 0x4766b3
mov eax, 0xff
btc eax, esi
and al, bl
mov byte [ecx + 0x593bc9], al
mov eax, dword [ebp - 8]
movzx ecx, byte [0x593bc8]
add eax, 0xfffffff7
imul ecx, eax
mov eax, 0xff
add ecx, edx
mov esi, ecx
and ecx, 7
sar esi, 3
btc eax, ecx
add esi, 0x593bc9
and al, byte [esi]
mov cl, al
sar dword [ebp - 4], 1
inc edx
mov byte [esi], cl
cmp edx, 6
jge 0x4766cc
mov bl, byte [0x593bc8]
mov ecx, dword [ebp - 8]
jmp 0x4764f7
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret