Function at 0x30153f0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xd8
mov eax, dword [ebp + 0xc]
mov esi, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + esi + 2], 0
lea esi, [esi + 2]
jne 0x3015410
sar esi, 1
lea edi, [esp + 0x80]
push edi
push 0
push 0
push esi
push eax
push 0
call dword [0x3049b34]
mov ebx, dword [esp + 0x80]
test ebx, ebx
jns 0x3015445
mov eax, 0xffffffff
jmp 0x3015448
lea eax, [ebx + ebx]
push eax
call fcn.03008c00
add esp, 4
push edi
push ebx
mov dword [esp + 0x78], eax
push eax
push esi
push dword [ebp + 0xc]
push 0
call dword [0x3049b34]
mov dword [esp + 0x38], 0x63d065c2
mov dword [esp + 0x3c], 0x6ffd61cd
mov dword [esp + 0x40], 0x6b8c6df2
mov dword [esp + 0x44], 0x57c369d0
mov dword [esp + 0x48], 0x53c955c8
mov dword [esp + 0x4c], 0x5fc151c5
mov dword [esp + 0x50], 0x5b5c5dcc
lea eax, [esp + 0x54]
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5b], 0
mov dword [esp + 0xb8], 0
mov ecx, dword [esp + 0xb8]
cmp ecx, 0x26
ja 0x3015524
nop
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xb8]
movzx edx, byte [esp + edx + 0x38]
lea esi, [ecx + 0x2193ab91]
add ecx, 0x91
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 0x90], esi
mov ecx, dword [esp + 0x90]
add cl, 9
mov edx, dword [esp + 0xb8]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
cmp ecx, 0x27
jb 0x30154d0
lea edi, [esp + 0xb8]
lea edx, [esp + 0x38]
mov ecx, 7
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xd4]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0x80]
mov ecx, eax
add ecx, 0xd
jns 0x301555d
mov eax, 0xffffffff
jmp 0x3015562
add eax, eax
add eax, 0x1a
mov esi, dword [esp + 0x70]
push eax
call fcn.03008c00
add esp, 4
mov ebx, eax
movzx ecx, word [esi]
test cx, cx
je 0x3015591
lea edx, [esi + 2]
mov eax, ebx
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x3015580
mov word [eax], 0
movzx ecx, word [esp + 0xb8]
test cx, cx
je 0x30155c1
lea edx, [esp + 0xba]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x30155b0
mov word [eax], 0
lea eax, [esp + 4]
push 0x60
push 3
push 0x120089
push eax
push ebx
call fcn.0303b820
add esp, 0x14
not eax
shr eax, 0x1f
mov eax, dword [eax*4 + 0x304295c]
mov ecx, 0xf2d5c911
xor ecx, dword [0x3042964]
add eax, ecx
inc eax
jmp eax
aaa
into
aaa
add byte [eax], bh
xor eax, 0x9f386a38
cmp byte [ebp + 0x1d38e838], bh
cmp dword [edx + 0x39], edx
xchg dword [ecx], edi
mov esp, 0x2639f139
cmp bl, byte [ebx + 0x3a]
mov edi, dword [edx]
fistp qword [edx]
sbb al, 0x3b
dec esi
cmp ebp, dword [eax + 0x1f3bea3b]
cmp al, 0x51
cmp al, 0x86
cmp al, 0xb8
cmp al, 0xf6
cmp al, 0x2b
cmp eax, 0x3d923d60
ret 0xf43d
cmp dh, byte ss:[esi]
pop ebx
xchg edx, eax
mov ecx, 0x47371c36
aaa
je 0x3054c0b
cwde
aaa
retf 0xf637
xor dword [eax], edx
xor bh, byte [esi]
xor ch, byte [esi + 0x32]
cwde
xor al, dl
xor dh, al
xor dl, byte [edi]
xor eax, dword [ebp + 0x33]
xor edx, dword [di - 0x29cd]
xor eax, dword [esp + esi]
ja 0x3054c5a
movsb byte es:[edi], byte [esi]
xor al, 0xce
xor al, 0xfc
xor al, 0x23
xor eax, 0x359d3576
invalid
inc eax
cmp al, 0x60
cmp al, 0x66
cmp al, 0x81
cmp al, 0x8c
cmp al, 0xdd
cmp al, 0x71
cmp eax, 0x3dbe3d7f
fnstsw word [0x3e763e62]
ret