Function at 0x1003b230
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x1c
mov eax, dword [edx + 8]
mov edi, dword [edx + 4]
mov esi, ecx
mov cl, 1
lea ebx, [eax + 1]
cmp ebx, edi
mov dword [edx + 8], ebx
jae 0x1003b26d
mov ecx, dword [edx]
movzx ecx, byte [ecx + ebx]
cmp ecx, 0x2b
je 0x1003b263
cmp ecx, 0x2d
mov cl, 1
jne 0x1003b26d
xor ecx, ecx
jmp 0x1003b265
mov cl, 1
add eax, 2
mov ebx, eax
mov dword [edx + 8], eax
cmp ebx, edi
jae 0x1003b40e
mov eax, dword [edx]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x10], esi
mov esi, edx
lea edx, [ebx + 1]
mov dword [ebp - 0x14], esi
movzx ecx, byte [eax + ebx]
mov dword [esi + 8], edx
add cl, 0xd0
cmp cl, 0xa
jae 0x1003b42c
mov esi, dword [ebp + 0xc]
cmp edx, edi
mov dword [ebp - 0x28], esi
movzx esi, cl
jae 0x1003b30e
mov edx, dword [ebp - 0x14]
neg edi
add ebx, 2
jmp 0x1003b2c3
movzx ecx, cl
lea esi, [esi + esi*4]
lea esi, [ecx + esi*2]
lea ecx, [edi + ebx + 1]
inc ebx
cmp ecx, 1
je 0x1003b311
movzx ecx, byte [eax + ebx - 1]
add cl, 0xd0
cmp cl, 0xa
jae 0x1003b311
cmp esi, 0xccccccb
mov dword [edx + 8], ebx
jle 0x1003b2b0
cmp esi, 0xccccccc
jne 0x1003b2e8
cmp cl, 7
jbe 0x1003b2b0
mov ecx, dword [ebp - 0x28]
xor eax, eax
movzx esi, byte [ebp - 0x18]
movzx edi, byte [ebp + 8]
or ecx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x10]
sete al
push esi
push eax
push edi
call fcn.1003bc50
add esp, 0x28
jmp 0x1003b3fd
mov edx, dword [ebp - 0x14]
mov edi, dword [ebp + 0x14]
cmp byte [ebp - 0x18], 0
je 0x1003b329
lea eax, [edi + esi]
sar eax, 0x1f
add eax, 0x80000000
add edi, esi
jmp 0x1003b337
xor eax, eax
cmp edi, esi
setns al
add eax, 0x7fffffff
sub edi, esi
cmovo edi, eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp - 0x10]
movd xmm0, eax
movd xmm1, ecx
mov eax, edi
punpckldq xmm1, xmm0
neg eax
punpckldq xmm1, xmmword [0x101e0390]
cmovs eax, edi
cmp eax, 0x135
subpd xmm1, xmmword [0x101e03a0]
movapd xmm0, xmm1
unpckhpd xmm0, xmm1
addsd xmm0, xmm1
jb 0x1003b3b8
movsd xmm2, qword [0x101e03b0]
xorpd xmm1, xmm1
nop word cs:[eax + eax]
nop
ucomisd xmm0, xmm1
jne 0x1003b398
jnp 0x1003b3e3
test edi, edi
jns 0x1003b44c
divsd xmm0, xmm2
add edi, 0x134
mov eax, edi
neg eax
cmovs eax, edi
cmp eax, 0x134
ja 0x1003b390
mov ecx, dword [0x10356480]
test edi, edi
movsd xmm1, qword [ecx + eax*8]
js 0x1003b402
mulsd xmm0, xmm1
ucomisd xmm0, qword [0x101e03b8]
jae 0x1003b44c
movsd xmm1, qword [0x101e03c0]
ucomisd xmm1, xmm0
jae 0x1003b44c
cmp byte [ebp + 8], 0
jne 0x1003b3f1
xorpd xmm0, xmmword [0x101e03d0]
movsd qword [esi + 8], xmm0
xor eax, eax
mov dword [esi], eax
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret
divsd xmm0, xmm1
cmp byte [ebp + 8], 0
je 0x1003b3e9
jmp 0x1003b3f1
lea eax, [ebp - 0x24]
mov ecx, edx
mov dword [ebp - 0x24], 5
mov edx, eax
call fcn.1003bce0
mov dword [esi + 4], eax
mov dword [esi], 1
jmp 0x1003b3fa
mov ecx, dword [ebp - 0x14]
lea edx, [ebp - 0x24]
mov dword [ebp - 0x24], 0xd
call fcn.1003bce0
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 4], eax
mov dword [ecx], 1
jmp 0x1003b3fa
lea eax, [ebp - 0x24]
mov ecx, edx
mov dword [ebp - 0x24], 0xe
mov edx, eax
call fcn.1003bce0
mov dword [esi + 4], eax
mov eax, 1
jmp 0x1003b3f8