Function at 0x4e7d88
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffbe4
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x41c], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00404dc0
mov eax, dword [ebp - 8]
call fcn.00404dc0
xor eax, eax
push ebp
push 0x4e8021
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.00404bd0
test eax, eax
je 0x4e7fdf
mov eax, dword [ebp - 8]
call fcn.00404bd0
test eax, eax
je 0x4e7fdf
mov eax, dword [ebp - 8]
call fcn.00404bd0
cmp eax, 0x100
jle 0x4e7e0e
lea eax, [ebp - 8]
push eax
mov ecx, pe_nt_image_headers32
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.00404e30
mov eax, dword [ebp - 8]
call fcn.00404bd0
push eax
lea eax, [ebp - 0x14]
mov ecx, 1
mov edx, dword [0x4e7d50]
call fcn.00406080
add esp, 4
mov eax, dword [ebp - 8]
call fcn.00404bd0
mov ebx, eax
dec ebx
test ebx, ebx
jl 0x4e7e4f
inc ebx
xor edi, edi
mov eax, dword [ebp - 8]
mov al, byte [eax + edi]
mov edx, dword [ebp - 0x14]
mov byte [edx + edi], al
inc edi
dec ebx
jne 0x4e7e3f
xor edi, edi
lea eax, [ebp - 0x418]
mov dword [eax], edi
inc edi
add eax, 4
cmp edi, 0x100
jne 0x4e7e57
xor esi, esi
xor edi, edi
lea ebx, [ebp - 0x418]
mov eax, dword [ebp - 8]
call fcn.00404bd0
push eax
mov eax, edi
pop edx
mov ecx, edx
cdq
idiv ecx
mov eax, dword [ebp - 0x14]
movzx eax, byte [eax + edx]
add esi, dword [ebx]
add eax, esi
and eax, 0x800000ff
jns 0x4e7e99
dec eax
or eax, 0xffffff00
inc eax
mov esi, eax
mov al, byte [ebx]
mov edx, dword [ebp + esi*4 - 0x418]
mov dword [ebx], edx
and eax, 0xff
mov dword [ebp + esi*4 - 0x418], eax
inc edi
add ebx, 4
cmp edi, 0x100
jne 0x4e7e6f
xor esi, esi
xor eax, eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
call fcn.00404bd0
push eax
lea eax, [ebp - 0x18]
mov ecx, 1
mov edx, dword [0x4e7d6c]
call fcn.00406080
add esp, 4
mov eax, dword [ebp - 4]
call fcn.00404bd0
mov ebx, eax
dec ebx
test ebx, ebx
jl 0x4e7f08
inc ebx
xor edi, edi
mov eax, dword [ebp - 4]
movzx eax, byte [eax + edi]
mov edx, dword [ebp - 0x18]
mov word [edx + edi*2], ax
inc edi
dec ebx
jne 0x4e7ef6
mov eax, dword [ebp - 4]
call fcn.00404bd0
mov ebx, eax
test ebx, ebx
jl 0x4e7fa6
inc ebx
xor edi, edi
inc esi
and esi, 0x800000ff
jns 0x4e7f2e
dec esi
or esi, 0xffffff00
inc esi
mov eax, dword [ebp + esi*4 - 0x418]
add eax, dword [ebp - 0x10]
and eax, 0x800000ff
jns 0x4e7f46
dec eax
or eax, 0xffffff00
inc eax
mov dword [ebp - 0x10], eax
mov al, byte [ebp + esi*4 - 0x418]
mov edx, dword [ebp - 0x10]
mov edx, dword [ebp + edx*4 - 0x418]
mov dword [ebp + esi*4 - 0x418], edx
and eax, 0xff
mov edx, dword [ebp - 0x10]
mov dword [ebp + edx*4 - 0x418], eax
mov eax, dword [ebp + esi*4 - 0x418]
mov edx, dword [ebp - 0x10]
add eax, dword [ebp + edx*4 - 0x418]
and eax, 0x800000ff
jns 0x4e7f8f
dec eax
or eax, 0xffffff00
inc eax
mov ax, word [ebp + eax*4 - 0x418]
mov edx, dword [ebp - 0x18]
xor word [edx + edi*2], ax
inc edi
dec ebx
jne 0x4e7f1d
mov eax, dword [ebp - 4]
call fcn.00404bd0
mov ebx, eax
dec ebx
test ebx, ebx
jl 0x4e7fdf
inc ebx
xor edi, edi
lea eax, [ebp - 0x41c]
mov edx, dword [ebp - 0x18]
mov dx, word [edx + edi*2]
call fcn.00404af8
mov edx, dword [ebp - 0x41c]
mov eax, dword [ebp - 0xc]
call fcn.00404bd8
mov eax, dword [ebp - 0xc]
inc edi
dec ebx
jne 0x4e7fb8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4e8028
lea eax, [ebp - 0x41c]
call fcn.00404910
lea eax, [ebp - 0x18]
mov edx, dword [0x4e7d6c]
call fcn.00406180
lea eax, [ebp - 0x14]
mov edx, dword [0x4e7d50]
call fcn.00406180
lea eax, [ebp - 8]
mov edx, 2
call fcn.00404934
ret