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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x569cd7
sub esp, 0x50
mov eax, dword [esp + 0x60]
shl eax, 6
movzx edx, byte [esp + 0x6c]
test dl, dl
je 0x56994c
or eax, 0x20
mov edx, dword [esp + 0x64]
cmp edx, 0x1f
jl 0x5699d0
mov ebx, dword [esp + 0x58]
inc ebx
mov ebp, dword [esp + 0x5c]
cmp ebp, ebx
jb 0x569968
mov ecx, dword [esp + 0x54]
jmp 0x5699ab
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, [0x5ffa00]
mov dword [esp + 0x10], eax
call fcn.0044a040
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 + 0x34], ebx
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 0x569b95
or eax, edx
mov edx, dword [esp + 0x58]
inc edx
mov ebx, dword [esp + 0x5c]
cmp ebx, edx
jb 0x5699e5
mov ecx, dword [esp + 0x54]
jmp 0x569a24
mov byte [esp + 0x23], al
mov eax, dword [esp + 0x54]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5ffa00]
mov dword [esp + 0x10], eax
call fcn.0044a040
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov ebx, ecx
mov ecx, eax
movzx eax, byte [esp + 0x23]
mov byte [edx + ecx - 1], al
mov eax, dword [esp + 0x68]
cmp eax, 0x80
jl 0x569a3c
mov ebp, eax
mov esi, 1
jmp 0x569a8b
inc edx
cmp ebx, edx
jae 0x569a73
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5ffa00]
mov dword [esp + 0x10], eax
call fcn.0044a040
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x68]
mov byte [edx + ecx - 1], al
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], ebx
add esp, 0x50
ret
inc esi
sar eax, 8
cmp eax, 0xff
jg 0x569a87
lea eax, [edx + 1]
cmp ebx, eax
jae 0x569ad3
mov dword [esp + 0x28], esi
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5ffa00]
mov dword [esp + 0x10], eax
call fcn.0044a040
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, 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 edx, ebp
mov esi, 1
jmp 0x569aec
inc esi
sar ebp, 8
cmp ebp, 0xff
jg 0x569ae8
jmp 0x569afe
mov byte [eax + edi - 1], dl
mov edx, ebp
mov ecx, edi
test esi, esi
jle 0x569b6a
lea ebp, [esi - 1]
mov esi, ebp
shl ebp, 3
cmp ebp, 0x20
sbb edi, edi
inc eax
xchg edi, ebx
not ebx
xchg edi, ebx
or ebp, edi
mov edi, ecx
mov ecx, ebp
mov ebp, edx
sar edx, cl
cmp ebx, eax
jae 0x569af6
mov dword [esp + 0x48], esi
mov dword [esp + 0x44], edx
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5ffa00]
mov dword [esp + 0x10], eax
call fcn.0044a040
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x44]
mov ebp, dword [esp + 0x68]
mov esi, dword [esp + 0x48]
mov edi, ecx
jmp 0x569af6
mov edx, eax
jmp 0x569a77
shr eax, 7
mov ebx, edx
shl edx, 0x19
or eax, edx
sar ebx, 7
mov edx, dword [esp + 0x24]
inc edx
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x64]
mov dword [esp + 0x24], edx
mov edx, ebx
mov ebx, dword [esp + 0x34]
test edx, edx
xchg edi, ebx
setg bl
xchg edi, ebx
test eax, eax
xchg esi, ebx
seta bl
xchg esi, ebx
test edx, edx
sete bl
and ebx, esi
or edi, ebx
xchg edi, eax
test al, al
xchg edi, eax
jne 0x569b71
mov eax, dword [esp + 0x24]
dec eax
mov edx, dword [esp + 0x64]
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x34]
jmp 0x569be0
mov byte [esi + ecx - 1], dl
mov edx, edi
lea edi, [ebx - 1]
mov eax, edi
mov ebp, edx
mov ebx, esi
mov edx, dword [esp + 0x64]
mov esi, dword [esp + 0x2c]
test eax, eax
jl 0x569cce
mov dword [esp + 0x30], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x38], ebp
lea edi, [eax + eax*2]
lea ebp, [eax + edi*2]
mov dword [esp + 0x44], ebp
cmp ebp, 0x20
sbb ebx, ebx
lea edi, [eax + edi*2 - 0x20]
mov dword [esp + 0x40], edi
cmp edi, 0x20
sbb eax, eax
shr ebp, 5
cmp ebp, 1
sbb ebp, ebp
mov dword [esp + 0x3c], ebp
xchg edi, ebx
neg ebx
xchg edi, ebx
cmp edi, 0x20
sbb ebp, ebp
mov ecx, edi
mov edi, esi
shl esi, cl
and esi, ebp
mov ecx, dword [esp + 0x44]
mov ebp, edx
shr edx, cl
and edx, ebx
or edx, esi
not eax
mov ecx, dword [esp + 0x40]
or ecx, eax
mov eax, edi
sar edi, cl
mov ebx, dword [esp + 0x3c]
xor ebx, 0xffffffff
and edi, ebx
or edi, edx
mov edx, edi
and edi, 0x7f
mov ebx, dword [esp + 0x30]
test ebx, ebx
je 0x569c68
or edx, 0xffffff80
jmp 0x569c6a
mov edx, edi
mov esi, dword [esp + 0x48]
inc esi
mov edi, dword [esp + 0x38]
cmp edi, esi
jb 0x569c80
mov ecx, dword [esp + 0x4c]
jmp 0x569bc9
mov byte [esp + 0x22], dl
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
mov dword [esp + 4], esi
mov dword [esp + 8], edi
mov dword [esp + 0xc], 1
lea eax, [0x5ffa00]
mov dword [esp + 0x10], eax
call fcn.0044a040
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
movzx edx, byte [esp + 0x22]
mov ebx, dword [esp + 0x30]
mov edi, ebp
mov ebp, dword [esp + 0x64]
jmp 0x569bc9
mov edx, ebx
mov ebx, ebp
jmp 0x569a28
call fcn.004610f0
jmp fcn.00569920