Function at 0x4747c8
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe30
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x178], ecx
mov dword [ebp - 0x180], ecx
mov dword [ebp - 4], edx
mov esi, eax
xor eax, eax
push ebp
push 0x474b6a
push dword fs:[eax]
mov dword fs:[eax], esp
mov al, byte [esi]
cmp al, 0x22
jb 0x4747ff
cmp al, 0x4e
jbe 0x474806
xor ebx, ebx
jmp 0x474b46
mov dword [ebp - 0x10], 0x995
mov dword [ebp - 0x14], 0x16f
mov dword [ebp - 0x18], 3
mov dword [ebp - 0x1c], 0x1d
and eax, 0xff
mov dword [ebp - 8], eax
imul eax, dword [ebp - 0x10], 0x43a0d2
imul edx, dword [ebp - 4], 0xa6f0
add eax, edx
imul edx, dword [ebp - 0x14], 0x8786
add eax, edx
cdq
xor eax, edx
sub eax, edx
mov ebx, eax
mov eax, ebx
mov ecx, 0x19
cdq
idiv ecx
mov ecx, edx
add ecx, 4
mov edi, ecx
test edi, edi
jle 0x47491a
lea eax, [ebp - 0x73]
mov edx, esi
mov cl, 0x4e
call fcn.00403214
mov eax, dword [ebp - 8]
sar eax, 1
jns 0x474879
adc eax, 0
test eax, eax
jle 0x4748cb
mov ebx, 1
mov edx, dword [ebp - 8]
sub edx, ebx
inc edx
cmp edx, 0x4e
jbe 0x474892
call fcn.00403ea0
mov dl, byte [esi + edx]
mov ecx, ebx
add ecx, ecx
dec ecx
cmp ecx, 0x4e
jbe 0x4748a4
call fcn.00403ea0
mov byte [ebp + ecx - 0x73], dl
cmp ebx, 0x4e
jbe 0x4748b2
call fcn.00403ea0
mov dl, byte [esi + ebx]
mov ecx, ebx
add ecx, ecx
cmp ecx, 0x4e
jbe 0x4748c3
call fcn.00403ea0
mov byte [ebp + ecx - 0x73], dl
inc ebx
dec eax
jne 0x474882
mov eax, dword [ebp - 8]
and eax, 0x80000001
jns 0x4748da
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
je 0x474907
mov eax, dword [ebp - 8]
sar eax, 1
jns 0x4748e8
adc eax, 0
inc eax
cmp eax, 0x4e
jbe 0x4748f3
call fcn.00403ea0
mov al, byte [esi + eax]
mov edx, dword [ebp - 8]
cmp edx, 0x4e
jbe 0x474903
call fcn.00403ea0
mov byte [ebp + edx - 0x73], al
mov eax, esi
lea edx, [ebp - 0x73]
mov cl, 0x4e
call fcn.00403214
dec edi
jne 0x474863
imul eax, dword [ebp - 0x10], 0x1a097c8a
imul edx, dword [ebp - 4], 0xd753aa5
add eax, edx
imul edx, dword [ebp - 0x14], 0x166ff006
add eax, edx
cdq
xor eax, edx
sub eax, edx
mov ebx, eax
lea edx, [ebp - 0x173]
mov eax, ebx
call fcn.004037f0
xor eax, eax
mov al, byte [ebp - 0x173]
mov edi, 0xa
sub edi, eax
test edi, edi
jle 0x4749bd
mov ebx, 1
lea eax, [ebp - 0x17c]
lea edx, [ebx + 0x30]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x17c]
lea eax, [ebp - 0x178]
call fcn.00404f28
lea eax, [ebp - 0x178]
push eax
lea eax, [ebp - 0x180]
lea edx, [ebp - 0x173]
call fcn.00404f28
mov edx, dword [ebp - 0x180]
pop eax
call fcn.00404f8c
mov edx, dword [ebp - 0x178]
lea eax, [ebp - 0x173]
mov ecx, 0xff
call fcn.00404f60
inc ebx
dec edi
jne 0x47495f
lea eax, [ebp - 0x173]
push eax
xor edx, edx
mov dl, byte [ebp - 0x173]
sub edx, 9
mov ecx, 0xa
lea eax, [ebp - 0x173]
call fcn.00402934
mov edi, dword [ebp - 8]
test edi, edi
jle 0x474a43
mov ebx, 1
cmp ebx, 0x4e
jbe 0x4749f5
call fcn.00403ea0
xor ecx, ecx
mov cl, byte [esi + ebx]
mov eax, ebx
push ecx
mov ecx, 0xa
cdq
idiv ecx
pop ecx
inc edx
cmp edx, 0xff
jbe 0x474a14
call fcn.00403ea0
xor eax, eax
mov al, byte [ebp + edx - 0x173]
sub eax, 0x2e
mov dword [ebp - 0xc], eax
mov eax, ecx
add eax, 0xffffffe0
sub eax, 0xdd
jae 0x474a3f
cmp ebx, 0x4e
jbe 0x474a39
call fcn.00403ea0
sub ecx, dword [ebp - 0xc]
mov byte [esi + ebx], cl
inc ebx
dec edi
jne 0x4749eb
mov eax, dword [ebp - 0x18]
cmp eax, 0x4e
jbe 0x474a50
call fcn.00403ea0
movzx eax, byte [esi + eax]
mov dword [ebp - 0x20], eax
mov eax, esi
mov ecx, 1
mov edx, dword [ebp - 0x18]
call fcn.00402978
mov eax, dword [ebp - 0x1c]
cmp eax, 0x4e
jbe 0x474a73
call fcn.00403ea0
movzx eax, byte [esi + eax]
mov dword [ebp - 0x24], eax
mov eax, esi
mov ecx, 1
mov edx, dword [ebp - 0x1c]
call fcn.00402978
xor ecx, ecx
movzx edi, byte [esi]
test edi, edi
jle 0x474aac
mov ebx, 1
cmp ebx, 0x4e
jbe 0x474aa1
call fcn.00403ea0
xor eax, eax
mov al, byte [esi + ebx]
add ecx, eax
inc ebx
dec edi
jne 0x474a97
imul eax, dword [ebp - 0x10], 0x74c80a
imul edx, dword [ebp - 4], 0x477a4c
add eax, edx
imul edx, dword [ebp - 0x14], 0x96903f
add eax, edx
imul edx, ecx, 0x24204c
add eax, edx
cdq
xor eax, edx
sub eax, edx
mov ebx, eax
mov eax, ebx
mov ebx, 0xc8
cdq
idiv ebx
mov edi, edx
add edi, 0x20
imul eax, dword [ebp - 0x10], 0x84a36
imul edx, dword [ebp - 4], 0x2c17b4c
add eax, edx
imul edx, dword [ebp - 0x14], 0x2c6b655
add eax, edx
imul edx, ecx, 0x9fc30
add eax, edx
cdq
xor eax, edx
sub eax, edx
mov ebx, eax
mov eax, ebx
mov ecx, 0xc8
cdq
idiv ecx
mov eax, edx
add eax, 0x20
cmp edi, dword [ebp - 0x20]
jne 0x474b24
cmp eax, dword [ebp - 0x24]
je 0x474b28
xor ebx, ebx
jmp 0x474b2a
mov bl, 1
lea edx, [ebp - 0x1d0]
mov eax, esi
call fcn.00473010
lea edx, [ebp - 0x1d0]
mov eax, esi
mov cl, 0x4e
call fcn.00403214
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x474b71
lea eax, [ebp - 0x180]
call fcn.00404ccc
lea eax, [ebp - 0x178]
call fcn.00404ccc
ret