Function at 0xb0ee70
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x118
mov dword [esp + 0x10], 0x13641139
mov dword [esp + 0x14], 0x1f711d83
mov dword [esp + 0x18], 0x1b8c197d
mov dword [esp + 0x1c], 0x7940559
mov dword [esp + 0x20], 0x34c0196
mov dword [esp + 0x24], 0xf900d61
mov dword [esp + 0x28], 0xb27096d
lea eax, [esp + 0x2c]
mov word [esp + 0x2c], 0x350a
mov dword [esp + 0x2e], 0
mov dword [esp + 0x31], 0
mov dword [esp + 0x94], 0
mov ecx, dword [esp + 0x94]
cmp ecx, 0x24
ja 0xb0ef47
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x94]
movzx edx, byte [esp + edx + 0x10]
lea esi, [ecx + edx]
add esi, 0x19036d83
add ecx, 0x19036d83
and ecx, edx
add ecx, ecx
sub esi, ecx
mov dword [esp + 0xc8], esi
mov ecx, dword [esp + 0xc8]
add cl, 0x6b
mov edx, dword [esp + 0x94]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0x94]
mov ecx, dword [esp + 0x94]
cmp ecx, 0x25
jb 0xb0eef0
lea ebx, [esp + 0x94]
lea edx, [esp + 0x10]
mov ecx, 7
mov edi, ebx
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xb0]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea esi, [esp + 0x6c]
push esi
push 0
push 0
push 0xe
push ebx
push 0
call dword [0xcc8ba8]
mov edi, dword [esp + 0x6c]
test edi, edi
jns 0xb0ef93
mov eax, 0xffffffff
jmp 0xb0ef96
lea eax, [edi + edi]
push eax
call fcn.00af9490
add esp, 4
push esi
push edi
mov dword [esp + 0x14], eax
push eax
push 0xe
push ebx
push 0
call dword [0xcc8ba8]
mov dword [esp + 0x10], 0xa372ad00
mov dword [esp + 0x14], 0xa701a101
mov dword [esp + 0x18], 0xbb1ba51b
mov dword [esp + 0x1c], 0xbf1bb903
mov dword [esp + 0x20], 0xb3b2bd0b
lea eax, [esp + 0x24]
mov dword [esp + 0x24], 0
mov dword [esp + 0x27], 0
mov dword [esp + 0x70], 0
mov ecx, dword [esp + 0x70]
cmp ecx, 0x1a
ja 0xb0f057
nop
nop
mov edi, dword [esp + 0x70]
mov ecx, dword [esp + 0x70]
movzx ebx, byte [esp + ecx + 0x10]
lea ecx, [edi - 0x127c70ba]
lea edx, [edi + ebx]
add edx, 0xed838f46
add edi, 0x46
and edi, ebx
and ecx, ebx
add ecx, edi
mov edi, ecx
xor edi, edx
not ecx
and ecx, edx
add ecx, ecx
sub ecx, edi
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0xc8]
add cl, 0x16
mov edx, dword [esp + 0x70]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0x70]
mov ecx, dword [esp + 0x70]
cmp ecx, 0x1b
jb 0xb0f000
lea edi, [esp + 0xb4]
lea edx, [esp + 0x10]
mov ecx, 5
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xc8]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0x6c]
mov ecx, eax
add ecx, 9
jns 0xb0f08d
mov eax, 0xffffffff
jmp 0xb0f092
add eax, eax
add eax, 0x12
push eax
call fcn.00af9490
add esp, 4
mov esi, eax
mov eax, dword [esp + 0xc]
movzx ecx, word [eax]
mov eax, esi
test cx, cx
je 0xb0f0d1
mov eax, dword [esp + 0xc]
lea edx, [eax + 2]
mov eax, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0xb0f0c0
mov word [eax], 0
movzx ecx, word [esp + 0xb4]
test cx, cx
je 0xb0f101
lea edx, [esp + 0xb6]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0xb0f0f0
mov word [eax], 0
lea eax, [esp + 0x90]
push eax
push esi
call fcn.00b2d080
add esp, 8
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0xcc3f88]