Function at 0x5e9150
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x3c
mov ecx, dword [esp + 0x58]
test ecx, ecx
je 0x5e9365
cmp dword [esp + 0x58], 1
je 0x5e92e2
mov eax, dword [esp + 0x54]
mov ecx, dword [eax]
mov al, byte [ecx]
test al, al
je 0x5e91b0
mov esi, dword [esp + 0x58]
cmp al, 0xff
jne 0x5e92e7
xor ebx, ebx
mov edx, 1
mov edi, esi
nop
movzx esi, byte [ecx + edx]
inc edx
and esi, 0xff
or ebx, esi
cmp edi, edx
ja 0x5e9190
test ebx, ebx
je 0x5e9460
lea esi, [esi]
mov dl, byte [ecx + 1]
and eax, 0xffffff80
and edx, 0xffffff80
cmp al, dl
je 0x5e9480
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x50]
test edx, edx
lea esi, [eax - 1]
jne 0x5e92f3
call fcn.0051cc20
mov ebx, eax
test eax, eax
je 0x5e9359
mov dword [eax + 4], 2
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.005128b0
test eax, eax
je 0x5e9420
mov eax, dword [esp + 0x54]
mov edx, dword [ebx + 8]
mov edi, dword [eax]
mov al, byte [edi]
mov byte [esp + 0x2b], al
and eax, 0xffffff80
mov ebp, eax
cmp dword [esp + 0x58], 1
je 0x5e9400
mov al, byte [esp + 0x2b]
test al, al
jne 0x5e93a0
mov al, byte [edi + 1]
mov ecx, ebp
and eax, 0xffffff80
cmp cl, al
je 0x5e94b3
mov eax, dword [esp + 0x58]
lea ecx, [eax - 1]
test edx, edx
je 0x5e92a7
movsx eax, byte [esp + 0x2b]
shr eax, 0x1f
mov dword [esp + 0x2c], eax
mov al, byte [esp + 0x2b]
sar al, 7
mov esi, eax
lea eax, [edx + ecx]
mov ebp, eax
mov eax, dword [esp + 0x58]
add edi, eax
lea edx, [ecx - 1]
neg ecx
mov eax, dword [esp + 0x2c]
add edi, ecx
mov dword [esp + 0x2c], ebx
nop
lea esi, [esi]
mov ebx, esi
xor bl, byte [edi + edx]
and ebx, 0xff
add eax, ebx
lea ebx, [ebp + ecx]
mov byte [ebx + edx], al
dec edx
shr eax, 8
cmp edx, 0xffffffff
jne 0x5e9280
mov eax, dword [esp + 0x54]
mov ebx, dword [esp + 0x2c]
mov edi, dword [eax]
cmp byte [esp + 0x2b], 0
jns 0x5e92ba
mov ebp, dword [ebx + 4]
or ebp, 0x100
mov dword [ebx + 4], ebp
mov esi, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
add edi, esi
mov dword [eax], edi
mov edi, dword [esp + 0x50]
test edi, edi
je 0x5e935b
mov eax, dword [esp + 0x50]
mov dword [eax], ebx
add esp, 0x3c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov esi, 1
mov edx, dword [esp + 0x50]
test edx, edx
je 0x5e91d4
mov eax, dword [esp + 0x50]
mov ebx, dword [eax]
test ebx, ebx
je 0x5e91d4
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov dword [esp], ebx
call fcn.005128b0
test eax, eax
jne 0x5e9206
mov dword [esp + 0x10], 0x139
mov dword [esp + 0xc], str.crypto_asn1_a_int.c
mov dword [esp + 8], 0x41
mov dword [esp + 4], 0xc2
mov dword [esp], 0xd
call fcn.0055ae30
mov eax, dword [esp + 0x50]
cmp dword [eax], ebx
je 0x5e9359
mov dword [esp], ebx
call fcn.0051cc40
xor ebx, ebx
add esp, 0x3c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x10], 0x9a
mov dword [esp + 0xc], str.crypto_asn1_a_int.c
mov dword [esp + 8], 0xde
mov dword [esp + 4], 0xe2
mov dword [esp], 0xd
xor ebx, ebx
call fcn.0055ae30
add esp, 0x3c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [esp + 0x58]
inc al
jne 0x5e9248
xor esi, esi
mov eax, 1
xor ecx, ecx
mov cl, byte [edi + eax]
inc eax
or esi, ecx
cmp dword [esp + 0x58], eax
ja 0x5e93b3
test esi, esi
jne 0x5e9231
test edx, edx
je 0x5e92ae
mov eax, dword [esp + 0x58]
mov esi, 0xffffffff
add edx, eax
mov eax, dword [esp + 0x58]
mov ebp, edx
mov edx, dword [esp + 0x58]
add edi, edx
mov ecx, eax
lea edx, [eax - 1]
mov dword [esp + 0x2c], 1
jmp 0x5e926f
test edx, edx
je 0x5e92a7
mov al, byte [esp + 0x2b]
test al, al
jns 0x5e9470
neg eax
mov byte [edx], al
mov eax, dword [esp + 0x54]
mov edi, dword [eax]
jmp 0x5e92ae
mov dword [esp + 0x10], 0x139
mov dword [esp + 0xc], str.crypto_asn1_a_int.c
mov dword [esp + 8], 0x41
mov dword [esp + 4], 0xc2
mov dword [esp], 0xd
call fcn.0055ae30
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x5e9351
jmp 0x5e9349
mov esi, dword [esp + 0x58]
jmp 0x5e92e7
mov byte [edx], al
mov eax, dword [esp + 0x54]
mov edi, dword [eax]
jmp 0x5e92ba
mov dword [esp + 0x10], 0xbb
mov dword [esp + 0xc], str.crypto_asn1_a_int.c
mov dword [esp + 8], 0xdd
mov dword [esp + 4], 0xe2
mov dword [esp], 0xd
xor ebx, ebx
call fcn.0055ae30
jmp 0x5e935b
mov dword [esp + 0x10], 0xbb
mov dword [esp + 0xc], str.crypto_asn1_a_int.c
mov dword [esp + 8], 0xdd
mov dword [esp + 4], 0xe2
mov dword [esp], 0xd
call fcn.0055ae30
mov eax, dword [esp + 0x54]
mov edi, dword [eax]
jmp 0x5e92a7