Function at 0x4e5200
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rsi
push rbx
sub rsp, 0x38
test r9, r9
je 0x4e5464
movzx r11d, byte [r8]
mov r10d, r11d
and r10d, 0xffffff80
test rdx, rdx
je 0x4e5225
movzx eax, r10b
mov dword [rdx], eax
cmp r9, 1
je 0x4e5491
movzx edx, byte [r8]
test dl, dl
jne 0x4e52a0
movzx eax, byte [r8 + 1]
and eax, 0xffffff80
cmp r10b, al
je 0x4e54c0
lea rax, [r9 - 1]
test rcx, rcx
je 0x4e5290
movsx edx, r11b
sub r9, rax
sar r11b, 7
lea r10, [rax - 1]
shr edx, 0x1f
add r8, r9
nop word cs:[rax + rax]
movzx r9d, byte [r8 + r10]
xor r9d, r11d
movzx r9d, r9b
add edx, r9d
mov byte [rcx + r10], dl
sub r10, 1
shr edx, 8
cmp r10, 0xffffffffffffffff
jne 0x4e5270
add rsp, 0x38
pop rbx
pop rsi
ret
mov rax, r9
cmp dl, 0xff
jne 0x4e524c
lea rax, [r9 - 2]
lea rbx, [r9 - 1]
cmp rax, 0xe
jbe 0x4e54eb
mov rdx, rbx
pxor xmm3, xmm3
pxor xmm4, xmm4
mov rax, r8
and rdx, 0xfffffffffffffff0
pxor xmm2, xmm2
add rdx, r8
movdqu xmm0, xmmword [rax + 1]
add rax, 0x10
movdqa xmm1, xmm0
punpckhbw xmm0, xmm4
movdqa xmm5, xmm0
punpcklbw xmm1, xmm4
punpcklwd xmm0, xmm2
punpckhwd xmm5, xmm2
por xmm0, xmm5
movdqa xmm5, xmm1
punpcklwd xmm1, xmm2
punpckhwd xmm5, xmm2
por xmm1, xmm5
por xmm0, xmm1
por xmm3, xmm0
cmp rax, rdx
jne 0x4e52d3
movdqa xmm0, xmm3
mov rsi, rbx
psrldq xmm0, 8
and rsi, 0xfffffffffffffff0
por xmm3, xmm0
lea rdx, [rsi + 1]
movdqa xmm0, xmm3
psrldq xmm0, 4
por xmm3, xmm0
movd eax, xmm3
cmp rbx, rsi
je 0x4e5454
movzx ebx, byte [r8 + rdx]
or eax, ebx
lea rbx, [rdx + 1]
cmp r9, rbx
jbe 0x4e5454
movzx ebx, byte [r8 + rdx + 1]
or eax, ebx
lea rbx, [rdx + 2]
cmp r9, rbx
jbe 0x4e5454
movzx ebx, byte [r8 + rdx + 2]
or eax, ebx
lea rbx, [rdx + 3]
cmp rbx, r9
jae 0x4e5454
movzx ebx, byte [r8 + rdx + 3]
or eax, ebx
lea rbx, [rdx + 4]
cmp r9, rbx
jbe 0x4e5454
movzx ebx, byte [r8 + rdx + 4]
or eax, ebx
lea rbx, [rdx + 5]
cmp r9, rbx
jbe 0x4e5454
movzx ebx, byte [r8 + rdx + 5]
or eax, ebx
lea rbx, [rdx + 6]
cmp r9, rbx
jbe 0x4e5454
movzx ebx, byte [r8 + rdx + 6]
or eax, ebx
lea rbx, [rdx + 7]
cmp r9, rbx
jbe 0x4e5454
movzx ebx, byte [r8 + rdx + 7]
or eax, ebx
lea rbx, [rdx + 8]
cmp r9, rbx
jbe 0x4e5454
movzx ebx, byte [r8 + rdx + 8]
or eax, ebx
lea rbx, [rdx + 9]
cmp r9, rbx
jbe 0x4e5454
movzx ebx, byte [r8 + rdx + 9]
or eax, ebx
lea rbx, [rdx + 0xa]
cmp r9, rbx
jbe 0x4e5454
movzx ebx, byte [r8 + rdx + 0xa]
or eax, ebx
lea rbx, [rdx + 0xb]
cmp r9, rbx
jbe 0x4e5454
movzx ebx, byte [r8 + rdx + 0xb]
or eax, ebx
lea rbx, [rdx + 0xc]
cmp r9, rbx
jbe 0x4e5454
movzx ebx, byte [r8 + rdx + 0xc]
or eax, ebx
lea rbx, [rdx + 0xd]
cmp r9, rbx
jbe 0x4e5454
movzx ebx, byte [r8 + rdx + 0xd]
or eax, ebx
lea rbx, [rdx + 0xe]
cmp r9, rbx
jbe 0x4e5454
movzx edx, byte [r8 + rdx + 0xe]
or eax, edx
test eax, eax
jne 0x4e5237
mov rax, r9
jmp 0x4e524c
mov r8d, 0xde
mov edx, 0xe2
mov ecx, 0xd
mov dword [rsp + 0x20], 0x9a
lea r9, str.crypto_asn1_a_int.c
call fcn.00528f20
xor eax, eax
add rsp, 0x38
pop rbx
pop rsi
ret
mov eax, 1
test rcx, rcx
je 0x4e5290
movzx edx, byte [r8]
mov r8d, edx
neg edx
test r11b, r11b
cmovns edx, r8d
mov byte [rcx], dl
add rsp, 0x38
pop rbx
pop rsi
ret
mov r8d, 0xdd
mov edx, 0xe2
mov ecx, 0xd
mov dword [rsp + 0x20], 0xbb
lea r9, str.crypto_asn1_a_int.c
call fcn.00528f20
xor eax, eax
jmp 0x4e5290
mov edx, 1
xor eax, eax
jmp 0x4e5347