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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
mov edi, dword [ebp + 0x10]
push 0x48
push 0x100455c0
push edi
call fcn.1003e4ed
mov esi, 0x400
push esi
push 0x10045608
push dword [ebp + 0x14]
call fcn.1003e4ed
push esi
push 0x10045a08
push dword [ebp + 0x18]
call fcn.1003e4ed
push esi
push 0x10045e08
push dword [ebp + 0x1c]
call fcn.1003e4ed
push esi
push 0x10046208
push dword [ebp + 0x20]
call fcn.1003e4ed
mov ebx, dword [ebp + 0xc]
add esp, 0x3c
xor ecx, ecx
mov dword [ebp - 4], ecx
mov eax, ecx
cdq
idiv ebx
mov eax, dword [ebp + 8]
mov esi, dword [ebp - 4]
movzx eax, byte [edx + eax]
shl eax, 8
mov dword [ebp - 0xc], eax
lea eax, [ecx + 1]
cdq
idiv ebx
mov eax, dword [ebp + 8]
movzx eax, byte [edx + eax]
mov edx, dword [ebp - 0xc]
add edx, eax
shl edx, 8
mov dword [ebp - 0xc], edx
lea eax, [ecx + 2]
cdq
idiv ebx
mov eax, dword [ebp + 8]
movzx eax, byte [edx + eax]
mov edx, dword [ebp - 0xc]
add edx, eax
shl edx, 8
mov dword [ebp - 0xc], edx
lea eax, [ecx + 3]
cdq
idiv ebx
mov eax, dword [ebp + 8]
movzx eax, byte [edx + eax]
mov edx, dword [ebp - 0xc]
add edx, eax
xor dword [edi + esi*4], edx
lea eax, [ecx + 4]
cdq
idiv ebx
inc esi
cmp esi, 0x12
mov dword [ebp - 4], esi
mov ecx, edx
jl 0x10020286
mov ebx, dword [ebp + 0x14]
xor esi, esi
mov dword [ebp - 8], esi
mov dword [ebp - 0xc], esi
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 8]
push eax
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push edi
call fcn.10018722
mov eax, dword [ebp - 8]
mov dword [edi + esi*4], eax
mov eax, dword [ebp - 0xc]
add esp, 0x1c
mov dword [edi + esi*4 + 4], eax
inc esi
inc esi
cmp esi, 0x12
jl 0x100202fc
and dword [ebp - 4], 0
mov esi, 0x100
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 8]
push eax
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push edi
call fcn.10018722
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 8]
add dword [ebp - 4], 2
shl eax, 2
mov dword [eax + ebx], ecx
mov ecx, dword [ebp - 0xc]
add esp, 0x1c
cmp dword [ebp - 4], esi
mov dword [eax + ebx + 4], ecx
jl 0x10020334
and dword [ebp - 4], 0
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 8]
push eax
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push edi
call fcn.10018722
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 8]
mov ecx, dword [ebp + 0x18]
add dword [ebp - 4], 2
shl eax, 2
mov dword [eax + ecx], edx
mov edx, dword [ebp - 0xc]
add esp, 0x1c
cmp dword [ebp - 4], esi
mov dword [eax + ecx + 4], edx
jl 0x1002036f
and dword [ebp - 4], 0
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 8]
push eax
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push edi
call fcn.10018722
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 8]
mov ecx, dword [ebp + 0x1c]
add dword [ebp - 4], 2
shl eax, 2
mov dword [eax + ecx], edx
mov edx, dword [ebp - 0xc]
add esp, 0x1c
cmp dword [ebp - 4], esi
mov dword [eax + ecx + 4], edx
jl 0x100203ad
and dword [ebp - 4], 0
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 8]
push eax
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push edi
call fcn.10018722
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 8]
mov ecx, dword [ebp + 0x20]
add dword [ebp - 4], 2
shl eax, 2
mov dword [eax + ecx], edx
mov edx, dword [ebp - 0xc]
add esp, 0x1c
cmp dword [ebp - 4], esi
mov dword [eax + ecx + 4], edx
jl 0x100203eb
pop edi
pop esi
xor eax, eax
pop ebx
leave
ret