Function at 0x4c29e3
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov ecx, edi
call fcn.0047423f
pushal
jmp 0x47436a
push sp
jmp 0x4c2996
test edi, edi
jmp 0x4c2b0a
not ecx
lea ecx, [eax + ebx]
mov ecx, dword [ebp + 8]
cmc
jmp 0x4c26b8
call 0x4c2d0e
out dx, al
leave
das
jns 0x4742e7
sti
sbb esi, dword [ecx - 0x944cf3e]
push edi
mov esi, 0xe8b2889
mov ecx, dword [esi]
jmp 0x47439c
and al, 0x24
mov ebp, esp
dec dl
lea ecx, [eax*4]
lea edx, [esi - 0xe9]
jmp 0x4742d0
xchg dh, dl
mov dl, 0x21
inc dh
jmp 0x474360
mov edi, eax
mov eax, ecx
shr eax, 3
jmp 0x474318
cmp edx, ecx
push esp
lea esp, [esp + 4]
jae 0x474237
jb 0x474384
rcl byte [ebx - 0x36]
jle 0x4743a0
mov cl, 0x68
add byte [edi + esi*8], dl
out dx, eax
call fcn.0048167d
nop
pop ebp
mov bl, 0x24
lea edx, [ecx + edi*8]
clc
and eax, 0x3f
stc
jmp 0x47433c
push dx
lea esp, [esp + 2]
jmp 0x4743c3
pushfd
lea esp, [esp + 4]
inc dword [esi + 4]
jmp 0x474237
sub esp, 0x40
lea edx, [eax + edi]
adc al, 0x38
mov dx, word [esp]
push edi
jmp 0x474333
lea esp, [esp + 3]
mov dword [esi], edx
jmp 0x4743ec
shr ecx, 0x1d
lea esp, [esp + 4]
add dword [esi + 4], ecx
sub esp, 0x1b
jmp 0x4743a9
push ebx
jmp 0x47429d
lea esp, [esp + 0x18]
test edi, edi
je 0x4742ba
jmp 0x4743d2
mov cl, byte [ecx]
sub esp, 0xe
mov dword [esp + 7], ecx
lea esp, [esp + 2]
jmp 0x4c26ec
lea esp, [esp + 0xc]
dec edi
stc
mov byte [eax + esi + 0x18], cl
jmp 0x4c2a7a
lea esp, [esp + 2]
jmp 0x4c29ba
mov cx, word [esp]
xor ecx, ecx
lea eax, [esi + 0x1a]
jmp 0x474271
movzx edx, byte [eax + 1]
jmp 0x4c2a06
clc
lea esp, [esp + 2]
cmp eax, 0x40
jne 0x474287
je 0x4c29ac
shl edx, 8
or edx, ebx
jmp 0x4c29ee
sub esp, 0x1c
not ebx
jmp 0x4c2a39
movzx ebx, byte [eax]
call 0x4c29e3
or edx, ebx
movzx ebx, byte [eax - 2]
shl edx, 8
jmp 0x4c2a59
xchg bp, bx
mov dword [esp + 0x10], ecx
popal
lea ebx, [ebx*4]
jmp 0x4c2a43
movzx ebx, byte [eax - 1]
shl edx, 8
pushal
jmp 0x4c2a0e
lea ebx, [ebx + ebp]
jmp 0x4c2a61
or edx, ebx
push ebx
pushal
mov ah, al
jmp 0x4c2a19
lea ebx, [ebx - 0x40]
mov dword [ebx], edx
pop ebx
jmp 0x4c2af6
inc eax
inc dword [ebp + 8]
push si
mov byte [esp], dl
jmp 0x4c29d3
lea esp, [esp + 4]
lea ecx, [esi + 8]
mov eax, edx
jmp 0x4c2ad4
lea esp, [esp + 4]
jb 0x474271
pushfd
lea eax, reloc.KERNEL32.dll_VirtualAlloc
jmp 0x4c2a88
sub esp, 0x14
sub esp, 0xc
lea esp, [esp + 0x20]
cmp ecx, 0x10
push ebx
jmp 0x4c2a9e
lea eax, [ebp - 0x40]
call fcn.0048f0da
neg al
mov eax, ebp
jmp 0x4c2b01
lea esp, [esp + 0x40]
inc ecx
add eax, 4
cmc
jmp 0x4c2ac4
not eax
xor eax, eax
jmp 0x474287
jne 0x47429d
call fcn.004c2e1d
sbb eax, 0x90610690
and ebx, dword [ebp + reloc.KERNEL32.dll_VirtualAlloc]
rcr dword [edi + ebp*2], cl
jbe 0x4c2b86
sbb byte [ecx + edx*8], dh
and al, 0xee
stosb byte es:[edi], al
lea edx, [edi - 0x80]
arpl word [esi - 0x6d37d480], si
sub ebx, esi
sub edx, dword [esi - 0x3d]
adc byte [ebx], 0x1f
add eax, 0x319276d7
inc esp
loope 0x4c2b4c
push es
popfd
jnp 0x4c2afe
jge 0x4c2b9e
in al, 0x8f
in al, 0x81
or ah, al
push ebp
adc edi, edx
mov eax, 0x41376dcb
xchg esp, eax
pop esi
xchg esi, eax
mov esp, 0x531152bb
xor eax, 0x99449908
sbb dword ss:[ebp + 0x2c665ac9], edi
push ss
and byte [edi + 0x392d6310], dh
inc ecx
or eax, edi
iretd
invalid
and dword [edi + 0x39], reloc.KERNEL32.dll_VirtualAlloc
adc ebp, ecx
loopne 0x4c2bb6
out dx, eax
xchg cl, bl
mov dword [reloc.KERNEL32.dll_VirtualAlloc], eax
scasd eax, dword es:[edi]
invalid
movsd dword es:[edi], dword [esi]
cli
xchg edi, eax
cmp ebp, ebx
add edx, dword [edx + edi*4 - reloc.KERNEL32.dll_VirtualAlloc]
jo 0x4c2bc7
outsb dx, byte [esi]
cmp byte [eax - 0x4c], dh
mov bl, 0x4a
cmp eax, 0x9100a48e
xchg ecx, eax
wait
invalid
mov ch, 0x7f
pushal
dec edx
popfd
dec eax
sub esi, ebp
add ebx, ecx
add esp, esp
mov dh, 0x51
adc byte [ecx - 0x2fd17c43], ah
invalid