Function at 0x549e10
Capabilities:
Encrypt data using rc4 prga
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword [0x95eda0]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x54a1ab
sub esp, 0x50
mov eax, dword [esp + 0x60]
shl eax, 6
movzx edx, byte [esp + 0x6c]
test dl, dl
je 0x549e3a
or eax, 0x20
mov edx, dword [esp + 0x64]
cmp edx, 0x1f
jl 0x549ebe
mov ebx, dword [esp + 0x58]
inc ebx
mov ebp, dword [esp + 0x5c]
cmp ebp, ebx
jb 0x549e56
mov ecx, dword [esp + 0x54]
jmp 0x549e99
mov byte [esp + 0x23], al
mov eax, dword [esp + 0x54]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x6a71a0]
mov dword [esp + 0x10], eax
call fcn.0046c6b0
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x64]
mov ebp, ecx
mov ecx, eax
movzx eax, byte [esp + 0x23]
mov dword [esp + 0x48], ecx
or eax, 0x1f
mov byte [ebx + ecx - 1], al
mov eax, edx
sar edx, 0x1f
mov dword [esp + 0x2c], edx
mov esi, edx
mov edi, eax
xor eax, eax
mov dword [esp + 0x24], eax
mov eax, edi
jmp 0x54a081
mov ebx, dword [esp + 0x58]
inc ebx
or eax, edx
mov edx, dword [esp + 0x5c]
cmp edx, ebx
jb 0x549ed3
mov ecx, dword [esp + 0x54]
jmp 0x549f12
mov byte [esp + 0x23], al
mov eax, dword [esp + 0x54]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x6a71a0]
mov dword [esp + 0x10], eax
call fcn.0046c6b0
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, ecx
mov ecx, eax
movzx eax, byte [esp + 0x23]
mov byte [ebx + ecx - 1], al
mov eax, dword [esp + 0x68]
cmp eax, 0x80
jl 0x549f2a
mov ebp, eax
mov esi, 1
jmp 0x549f79
inc ebx
cmp edx, ebx
jae 0x549f61
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x6a71a0]
mov dword [esp + 0x10], eax
call fcn.0046c6b0
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x68]
mov byte [ebx + ecx - 1], al
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], edx
add esp, 0x50
ret
inc esi
sar eax, 8
cmp eax, 0xff
jg 0x549f75
lea eax, [ebx + 1]
cmp edx, eax
jae 0x549fc1
mov dword [esp + 0x28], esi
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x6a71a0]
mov dword [esp + 0x10], eax
call fcn.0046c6b0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x68]
mov esi, dword [esp + 0x28]
or esi, 0xffffff80
xchg esi, ebx
mov byte [eax + ecx - 1], bl
xchg esi, ebx
nop
mov ebx, ebp
mov esi, 1
jmp 0x549fda
inc esi
sar ebp, 8
cmp ebp, 0xff
jg 0x549fd6
jmp 0x549fec
mov byte [eax + edi - 1], bl
mov ebx, ebp
mov ecx, edi
test esi, esi
jle 0x54a058
inc eax
lea ebp, [esi - 1]
mov esi, ebp
shl ebp, 3
cmp ebp, 0x20
sbb edi, edi
xchg edi, ebx
not ebx
xchg edi, ebx
or ebp, edi
mov edi, ecx
mov ecx, ebp
mov ebp, ebx
sar ebx, cl
cmp edx, eax
jae 0x549fe4
mov dword [esp + 0x44], esi
mov dword [esp + 0x40], ebx
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x6a71a0]
mov dword [esp + 0x10], eax
call fcn.0046c6b0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x68]
mov esi, dword [esp + 0x44]
mov edi, ecx
jmp 0x549fe4
mov ebx, eax
jmp 0x549f65
shr eax, 7
mov ecx, edx
shl ecx, 0x19
or eax, ecx
sar edx, 7
mov ecx, dword [esp + 0x24]
inc ecx
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x64]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x48]
test edx, edx
xchg edi, ebx
setg bl
xchg edi, ebx
xchg esi, ebx
sete bl
xchg esi, ebx
test eax, eax
seta cl
and esi, ecx
or edi, esi
xchg edi, eax
test al, al
xchg edi, eax
jne 0x54a05f
mov eax, dword [esp + 0x24]
dec eax
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x64]
mov ecx, dword [esp + 0x48]
jmp 0x54a0c6
xchg esi, eax
mov byte [edx + ecx - 1], al
xchg esi, eax
dec eax
mov esi, dword [esp + 0x64]
mov ebp, ebx
mov ebx, edx
mov edx, dword [esp + 0x2c]
test eax, eax
jl 0x54a1a4
mov dword [esp + 0x34], ebp
mov dword [esp + 0x4c], ecx
lea edi, [eax + eax*2]
lea ecx, [eax + edi*2 - 0x20]
mov dword [esp + 0x3c], ecx
neg ecx
mov dword [esp + 0x38], ecx
shl edx, cl
lea edi, [eax + edi*2]
mov ecx, edi
shr esi, cl
shr ecx, 5
cmp ecx, 1
sbb ecx, ecx
xor ecx, 0xffffffff
mov ebp, dword [esp + 0x38]
cmp ebp, 0x20
sbb ebp, ebp
and edx, ebp
cmp edi, 0x20
sbb ebp, ebp
and esi, ebp
or esi, edx
mov edx, dword [esp + 0x3c]
cmp edx, 0x20
sbb ebp, ebp
xchg ebp, ebx
not ebx
xchg ebp, ebx
or ebp, edx
mov edx, ecx
mov ecx, ebp
mov edi, dword [esp + 0x2c]
mov ebp, edi
sar edi, cl
and edx, edi
or edx, esi
mov esi, edx
and edx, 0x7f
test eax, eax
je 0x54a13e
or esi, 0xffffff80
jmp 0x54a140
mov esi, edx
lea edx, [ebx + 1]
mov ebx, dword [esp + 0x34]
cmp ebx, edx
jb 0x54a154
mov ecx, dword [esp + 0x4c]
jmp 0x54a0b3
mov dword [esp + 0x30], eax
xchg esi, eax
mov byte [esp + 0x22], al
xchg esi, eax
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x6a71a0]
mov dword [esp + 0x10], eax
call fcn.0046c6b0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
movzx esi, byte [esp + 0x22]
mov ebx, ebp
mov ebp, dword [esp + 0x2c]
jmp 0x54a0b3
mov edx, ebp
jmp 0x549f16
call fcn.004703c0
jmp fcn.00549e10