Function at 0x100f9740
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov edx, dword [ebp + 0xc]
xor eax, eax
push esi
push edi
mov edi, dword [ebp + 8]
xor esi, esi
xor ecx, ecx
mov dword [ebp - 0x14], esi
cmp dword [ebp + 0x24], 1
mov dword [ebp - 0x24], 0x7fffffff
mov edi, dword [edi + 0x18]
mov dword [ebp - 4], eax
mov dword [ebp - 8], ecx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x10], edi
je 0x100f9791
cmp dword [ebp + 0x24], 2
je 0x100f9791
cmp dword [ebp + 0x24], 3
jne 0x100f97a3
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x20], 1
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
jmp 0x100f979d
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x20], esi
mov eax, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x14]
mov dword [ebp - 8], ecx
mov dword [ebp - 4], eax
cmp edi, 0x3c
jge 0x100f9915
mov eax, dword [ebp + 0x10]
lea edi, [edi + edi*4]
movss xmm6, dword [0x1016e7f0]
lea edi, [edi + 2]
movss xmm7, dword [0x1015c788]
add edx, 0x10c
movss xmm4, dword [0x10110b94]
xorps xmm5, xmm5
lea edi, [eax + edi*2]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], edi
lea eax, [edx + eax*4]
mov edx, dword [ebp + 0x18]
mov dword [ebp - 0xc], eax
nop dword [eax + eax]
movsx eax, word [edi + 4]
cmp eax, dword [ebp + 0x24]
jne 0x100f9906
movsx ecx, word [edi - 2]
imul ecx, dword [ebp + 0x1c]
movsx eax, word [edi - 4]
add ecx, eax
lea esi, [edx + ecx*4]
mov ecx, dword [ebp - 0xc]
movss xmm0, dword [ecx]
ucomiss xmm0, xmm5
lahf
test ah, 0x44
jnp 0x100f98e8
movss xmm2, dword [ecx + 0x100]
xor eax, eax
mulss xmm2, xmm7
mov dword [ebp - 0x18], 0
cmp ax, word [edi + 2]
jge 0x100f98e8
movzx edx, word [edi]
xor edi, edi
movzx eax, dx
mov dword [ebp - 0x28], edi
cmp di, dx
jge 0x100f98c6
movaps xmm3, xmm2
xorps xmm3, xmm6
jmp 0x100f9863
mov ecx, dword [ebp - 0xc]
movss xmm0, dword [esi]
comiss xmm0, xmm3
jb 0x100f9875
comiss xmm2, xmm0
jb 0x100f9875
xor eax, eax
jmp 0x100f989f
comiss xmm0, xmm5
movss xmm1, dword [ecx]
jbe 0x100f988c
subss xmm0, xmm2
divss xmm0, xmm1
addss xmm0, xmm4
jmp 0x100f9898
addss xmm0, xmm2
divss xmm0, xmm1
subss xmm0, xmm4
cvttss2si eax, xmm0
movzx eax, ax
mov ecx, dword [ebp - 4]
inc edi
inc dword [ebp - 0x14]
add esi, 4
dec dword [ebp - 8]
mov word [ecx], ax
add ecx, 2
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 4], ecx
movzx ecx, word [eax]
movsx eax, cx
mov edx, ecx
cmp edi, eax
jl 0x100f9860
mov eax, ecx
mov ecx, dword [ebp + 0x1c]
mov edi, dword [ebp - 0x1c]
inc dword [ebp - 0x18]
cwde
sub ecx, eax
movsx eax, word [edi + 2]
lea esi, [esi + ecx*4]
mov ecx, dword [ebp - 0xc]
cmp dword [ebp - 0x18], eax
jl 0x100f9844
mov edx, dword [ebp + 0x18]
mov esi, dword [ebp - 0x10]
add ecx, 4
inc esi
mov dword [ebp - 0xc], ecx
add edi, 0xa
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x1c], edi
cmp esi, 0x3c
jl 0x100f97f0
jmp 0x100f9909
mov dword [ebp - 0x24], eax
mov edi, dword [ebp - 0x10]
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 4]
mov edx, dword [ebp + 8]
mov dword [edx + 0x10], eax
mov eax, dword [ebp - 0x20]
mov dword [edx + 0x18], edi
mov dword [edx + 0x14], ecx
mov ecx, dword [ebp - 0x24]
add dword [edx + eax*4 + 0x1c], esi
mov eax, dword [ebp + 0x28]
pop edi
pop esi
mov dword [eax], ecx
mov esp, ebp
pop ebp
ret