Function at 0x5960b0
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 0x596467
sub esp, 0x50
mov eax, dword [esp + 0x60]
shl eax, 6
movzx edx, byte [esp + 0x6c]
test dl, dl
je 0x5960dc
or eax, 0x20
mov edx, dword [esp + 0x64]
cmp edx, 0x1f
jl 0x596160
mov ebx, dword [esp + 0x58]
inc ebx
mov ebp, dword [esp + 0x5c]
cmp ebp, ebx
jb 0x5960f8
mov ecx, dword [esp + 0x54]
jmp 0x59613b
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, [0x638820]
mov dword [esp + 0x10], eax
call fcn.0044aa20
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 0x596325
or eax, edx
mov edx, dword [esp + 0x58]
inc edx
mov ebx, dword [esp + 0x5c]
cmp ebx, edx
jb 0x596175
mov ecx, dword [esp + 0x54]
jmp 0x5961b4
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, [0x638820]
mov dword [esp + 0x10], eax
call fcn.0044aa20
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 0x5961cc
mov ebp, eax
mov esi, 1
jmp 0x59621b
inc edx
cmp ebx, edx
jae 0x596203
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x638820]
mov dword [esp + 0x10], eax
call fcn.0044aa20
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 0x596217
lea eax, [edx + 1]
cmp ebx, eax
jae 0x596263
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, [0x638820]
mov dword [esp + 0x10], eax
call fcn.0044aa20
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 0x59627c
inc esi
sar ebp, 8
cmp ebp, 0xff
jg 0x596278
jmp 0x59628e
mov byte [eax + edi - 1], dl
mov edx, ebp
mov ecx, edi
test esi, esi
jle 0x5962fa
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 0x596286
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, [0x638820]
mov dword [esp + 0x10], eax
call fcn.0044aa20
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 0x596286
mov edx, eax
jmp 0x596207
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 0x596301
mov eax, dword [esp + 0x24]
dec eax
mov edx, dword [esp + 0x64]
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x34]
jmp 0x596370
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 0x59645e
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 0x5963f8
or edx, 0xffffff80
jmp 0x5963fa
mov edx, edi
mov esi, dword [esp + 0x48]
inc esi
mov edi, dword [esp + 0x38]
cmp edi, esi
jb 0x596410
mov ecx, dword [esp + 0x4c]
jmp 0x596359
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, [0x638820]
mov dword [esp + 0x10], eax
call fcn.0044aa20
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 0x596359
mov edx, ebx
mov ebx, ebp
jmp 0x5961b8
call fcn.00462270
jmp fcn.005960b0