Function at 0x4e55c0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rsi
push rbx
sub rsp, 0x38
test r9, r9
je 0x4e5824
movzx r11d, byte [r8]
mov r10d, r11d
and r10d, 0xffffff80
test rdx, rdx
je 0x4e55e5
movzx eax, r10b
mov dword [rdx], eax
cmp r9, 1
je 0x4e5851
movzx edx, byte [r8]
test dl, dl
jne 0x4e5660
movzx eax, byte [r8 + 1]
and eax, 0xffffff80
cmp r10b, al
je 0x4e5880
lea rax, [r9 - 1]
test rcx, rcx
je 0x4e5650
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 0x4e5630
add rsp, 0x38
pop rbx
pop rsi
ret
mov rax, r9
cmp dl, 0xff
jne 0x4e560c
lea rax, [r9 - 2]
lea rbx, [r9 - 1]
cmp rax, 0xe
jbe 0x4e58ab
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 0x4e5693
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 0x4e5814
movzx ebx, byte [r8 + rdx]
or eax, ebx
lea rbx, [rdx + 1]
cmp r9, rbx
jbe 0x4e5814
movzx ebx, byte [r8 + rdx + 1]
or eax, ebx
lea rbx, [rdx + 2]
cmp r9, rbx
jbe 0x4e5814
movzx ebx, byte [r8 + rdx + 2]
or eax, ebx
lea rbx, [rdx + 3]
cmp rbx, r9
jae 0x4e5814
movzx ebx, byte [r8 + rdx + 3]
or eax, ebx
lea rbx, [rdx + 4]
cmp r9, rbx
jbe 0x4e5814
movzx ebx, byte [r8 + rdx + 4]
or eax, ebx
lea rbx, [rdx + 5]
cmp r9, rbx
jbe 0x4e5814
movzx ebx, byte [r8 + rdx + 5]
or eax, ebx
lea rbx, [rdx + 6]
cmp r9, rbx
jbe 0x4e5814
movzx ebx, byte [r8 + rdx + 6]
or eax, ebx
lea rbx, [rdx + 7]
cmp r9, rbx
jbe 0x4e5814
movzx ebx, byte [r8 + rdx + 7]
or eax, ebx
lea rbx, [rdx + 8]
cmp r9, rbx
jbe 0x4e5814
movzx ebx, byte [r8 + rdx + 8]
or eax, ebx
lea rbx, [rdx + 9]
cmp r9, rbx
jbe 0x4e5814
movzx ebx, byte [r8 + rdx + 9]
or eax, ebx
lea rbx, [rdx + 0xa]
cmp r9, rbx
jbe 0x4e5814
movzx ebx, byte [r8 + rdx + 0xa]
or eax, ebx
lea rbx, [rdx + 0xb]
cmp r9, rbx
jbe 0x4e5814
movzx ebx, byte [r8 + rdx + 0xb]
or eax, ebx
lea rbx, [rdx + 0xc]
cmp r9, rbx
jbe 0x4e5814
movzx ebx, byte [r8 + rdx + 0xc]
or eax, ebx
lea rbx, [rdx + 0xd]
cmp r9, rbx
jbe 0x4e5814
movzx ebx, byte [r8 + rdx + 0xd]
or eax, ebx
lea rbx, [rdx + 0xe]
cmp r9, rbx
jbe 0x4e5814
movzx edx, byte [r8 + rdx + 0xe]
or eax, edx
test eax, eax
jne 0x4e55f7
mov rax, r9
jmp 0x4e560c
mov r8d, 0xde
mov edx, 0xe2
mov ecx, 0xd
mov dword [rsp + 0x20], 0x9a
lea r9, str.crypto_asn1_a_int.c
call fcn.005292e0
xor eax, eax
add rsp, 0x38
pop rbx
pop rsi
ret
mov eax, 1
test rcx, rcx
je 0x4e5650
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.005292e0
xor eax, eax
jmp 0x4e5650
mov edx, 1
xor eax, eax
jmp 0x4e5707