Function at 0x430310
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0x30
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 0x14]
mov ecx, dword [eax]
test esi, esi
je 0x430670
movzx edx, byte [ecx]
cmp esi, 1
je 0x4306b0
test dl, dl
jne 0x430448
xor dl, byte [ecx + 1]
jns 0x4306e0
lea ebx, [esi - 1]
cmp ebx, 8
ja 0x430620
mov dword [esp], esi
mov edx, dword [ebp + 0xc]
lea eax, [esp + 0x28]
call fcn.0042e2c0
movzx eax, byte [esp + 0x28]
xor edx, edx
cmp ebx, 1
je 0x43042c
shld edx, eax, 8
shl eax, 8
mov esi, eax
movzx eax, byte [esp + 0x29]
mov edi, edx
xor edx, edx
or edx, edi
or eax, esi
cmp ebx, 2
je 0x43042c
shld edx, eax, 8
shl eax, 8
mov esi, eax
movzx eax, byte [esp + 0x2a]
mov edi, edx
xor edx, edx
or edx, edi
or eax, esi
cmp ebx, 3
je 0x43042c
shld edx, eax, 8
shl eax, 8
mov esi, eax
movzx eax, byte [esp + 0x2b]
mov edi, edx
xor edx, edx
or edx, edi
or eax, esi
cmp ebx, 4
je 0x43042c
shld edx, eax, 8
shl eax, 8
mov esi, eax
movzx eax, byte [esp + 0x2c]
mov edi, edx
xor edx, edx
or edx, edi
or eax, esi
cmp ebx, 5
je 0x43042c
shld edx, eax, 8
shl eax, 8
mov esi, eax
movzx eax, byte [esp + 0x2d]
mov edi, edx
xor edx, edx
or edx, edi
or eax, esi
cmp ebx, 6
je 0x43042c
shld edx, eax, 8
shl eax, 8
mov esi, eax
movzx eax, byte [esp + 0x2e]
mov edi, edx
xor edx, edx
or edx, edi
or eax, esi
cmp ebx, 8
jne 0x43042c
movzx ecx, byte [esp + 0x2f]
shld edx, eax, 8
xor ebx, ebx
shl eax, 8
or edx, ebx
or eax, ecx
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
mov eax, 1
mov dword [ecx + 4], edx
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
cmp dl, 0xff
je 0x430478
cmp esi, 8
ja 0x430620
mov dword [esp], esi
mov edx, dword [ebp + 0xc]
lea eax, [esp + 0x28]
mov ebx, esi
call fcn.0042e2c0
movzx eax, byte [esp + 0x28]
xor edx, edx
jmp 0x430374
lea edi, [esi - 1]
lea eax, [esi - 2]
mov dword [esp + 0x1c], edi
cmp eax, 0xe
jbe 0x43073c
and edi, 0xfffffff0
pxor xmm3, xmm3
pxor xmm4, xmm4
mov eax, ecx
mov ebx, edi
pxor xmm2, xmm2
lea edi, [edi + ecx]
lea esi, [esi]
movdqu xmm1, xmmword [eax + 1]
movdqu xmm0, xmmword [eax + 1]
add eax, 0x10
punpcklbw xmm1, xmm4
punpckhbw xmm0, xmm4
movdqa xmm5, xmm1
punpckhwd xmm1, xmm2
punpcklwd xmm5, xmm2
por xmm1, xmm5
movdqa xmm5, xmm0
punpckhwd xmm0, xmm2
punpcklwd xmm5, xmm2
por xmm0, xmm5
por xmm1, xmm0
por xmm3, xmm1
cmp edi, eax
jne 0x4304a8
movdqa xmm0, xmm3
lea edi, [ebx + 1]
psrldq xmm0, 8
por xmm3, xmm0
movdqa xmm0, xmm3
psrldq xmm0, 4
por xmm3, xmm0
movd eax, xmm3
cmp dword [esp + 0x1c], ebx
je 0x4306d0
movzx ebx, byte [ecx + edi]
or eax, ebx
lea ebx, [edi + 1]
cmp ebx, esi
jae 0x4306d0
movzx ebx, byte [ecx + edi + 1]
or eax, ebx
lea ebx, [edi + 2]
cmp ebx, esi
jae 0x4306d0
movzx ebx, byte [ecx + edi + 2]
or eax, ebx
lea ebx, [edi + 3]
cmp ebx, esi
jae 0x4306d0
movzx ebx, byte [ecx + edi + 3]
or eax, ebx
lea ebx, [edi + 4]
cmp ebx, esi
jae 0x4306d0
movzx ebx, byte [ecx + edi + 4]
or eax, ebx
lea ebx, [edi + 5]
cmp ebx, esi
jae 0x4306d0
movzx ebx, byte [ecx + edi + 5]
or eax, ebx
lea ebx, [edi + 6]
cmp ebx, esi
jae 0x4306d0
movzx ebx, byte [ecx + edi + 6]
or eax, ebx
lea ebx, [edi + 7]
cmp ebx, esi
jae 0x4306d0
movzx ebx, byte [ecx + edi + 7]
or ebx, eax
lea eax, [edi + 8]
cmp eax, esi
jae 0x43072f
movzx eax, byte [ecx + edi + 8]
or eax, ebx
lea ebx, [edi + 9]
cmp ebx, esi
jae 0x430722
movzx ebx, byte [ecx + edi + 9]
or eax, ebx
lea ebx, [edi + 0xa]
cmp ebx, esi
jae 0x430722
movzx ebx, byte [ecx + edi + 0xa]
or ebx, eax
lea eax, [edi + 0xb]
cmp eax, esi
jae 0x43072f
movzx eax, byte [ecx + edi + 0xb]
or eax, ebx
lea ebx, [edi + 0xc]
cmp ebx, esi
jae 0x430722
movzx ebx, byte [ecx + edi + 0xc]
or eax, ebx
lea ebx, [edi + 0xd]
cmp ebx, esi
jae 0x430722
movzx ebx, byte [ecx + edi + 0xd]
or ebx, eax
lea eax, [edi + 0xe]
cmp eax, esi
jae 0x43072f
movzx eax, byte [ecx + edi + 0xe]
or eax, ebx
jne 0x430340
lea esi, [esi]
call fcn.0049b030
mov dword [esp + 8], str.ossl_c2i_uint64_int
mov dword [esp + 4], 0x274
mov dword [esp], str..._crypto_asn1_a_int.c
call fcn.0049b150
mov dword [esp + 8], 0
mov dword [esp + 4], 0xdf
mov dword [esp], 0xd
call fcn.0049b230
lea esp, [ebp - 0xc]
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
call fcn.0049b030
mov dword [esp + 8], str.c2i_ibuf
mov dword [esp + 4], 0xa0
mov dword [esp], str..._crypto_asn1_a_int.c
call fcn.0049b150
mov dword [esp + 8], 0
mov dword [esp + 4], 0xde
mov dword [esp], 0xd
call fcn.0049b230
jmp 0x43065d
mov dword [esp], 1
mov edx, dword [ebp + 0xc]
lea eax, [esp + 0x28]
call fcn.0042e2c0
movzx eax, byte [esp + 0x28]
xor edx, edx
jmp 0x43042c
test eax, eax
je 0x43044d
jmp 0x430340
call fcn.0049b030
mov dword [esp + 8], str.c2i_ibuf
mov dword [esp + 4], 0xc1
mov dword [esp], str..._crypto_asn1_a_int.c
call fcn.0049b150
mov dword [esp + 8], 0
mov dword [esp + 4], 0xdd
mov dword [esp], 0xd
call fcn.0049b230
jmp 0x43065d
test eax, eax
jne 0x430340
jmp 0x430620
test ebx, ebx
jne 0x430340
jmp 0x430620
xor eax, eax
mov edi, 1
jmp 0x430514