Function at 0x452cf0
Capabilities:
Encode data using xor
Encrypt data using blowfish

Disassembly:
sub esp, 8
push esi
push edi
mov edi, dword [esp + 0x14]
mov esi, eax
test ecx, ecx
je 0x452f4b
push ebx
mov edx, 0x5146c0
push ebp
mov eax, edi
sub edx, edi
mov ebx, 0x12
mov ebp, dword [edx + eax]
mov dword [eax], ebp
add eax, 4
sub ebx, 1
jne 0x452d13
mov eax, 0x514708
lea edx, [edi + 0x48]
jmp 0x452d30
mov ebx, 0x100
mov ebp, dword [eax]
mov dword [edx], ebp
add eax, 4
add edx, 4
sub ebx, 1
jne 0x452d35
cmp eax, 0x515708
jl 0x452d30
add edi, 8
mov dword [esp + 0x14], 3
lea eax, [ebx + 1]
cdq
idiv esi
movzx eax, byte [ebx + ecx]
shl eax, 8
movzx ebp, byte [edx + ecx]
or ebp, eax
lea eax, [ebx + 2]
cdq
idiv esi
shl ebp, 8
lea eax, [ebx + 3]
movzx edx, byte [edx + ecx]
or ebp, edx
cdq
idiv esi
shl ebp, 8
movzx eax, byte [edx + ecx]
or ebp, eax
lea eax, [ebx + 4]
cdq
idiv esi
xor dword [edi - 8], ebp
mov ebx, edx
lea eax, [ebx + 1]
cdq
idiv esi
lea eax, [ebx + 2]
movzx ebp, byte [edx + ecx]
movzx edx, byte [ebx + ecx]
shl edx, 8
or ebp, edx
cdq
idiv esi
shl ebp, 8
movzx eax, byte [edx + ecx]
or ebp, eax
lea eax, [ebx + 3]
cdq
idiv esi
shl ebp, 8
lea eax, [ebx + 4]
movzx edx, byte [edx + ecx]
or ebp, edx
cdq
idiv esi
xor dword [edi - 4], ebp
mov ebx, edx
lea eax, [ebx + 1]
cdq
idiv esi
movzx eax, byte [ebx + ecx]
shl eax, 8
movzx ebp, byte [edx + ecx]
or ebp, eax
lea eax, [ebx + 2]
cdq
idiv esi
shl ebp, 8
lea eax, [ebx + 3]
movzx edx, byte [edx + ecx]
or ebp, edx
cdq
idiv esi
shl ebp, 8
movzx eax, byte [edx + ecx]
or ebp, eax
lea eax, [ebx + 4]
cdq
idiv esi
xor dword [edi], ebp
mov ebx, edx
lea eax, [ebx + 1]
cdq
idiv esi
lea eax, [ebx + 2]
movzx ebp, byte [edx + ecx]
movzx edx, byte [ebx + ecx]
shl edx, 8
or ebp, edx
shl ebp, 8
cdq
idiv esi
add edi, 0x18
movzx eax, byte [edx + ecx]
or ebp, eax
lea eax, [ebx + 3]
cdq
idiv esi
shl ebp, 8
lea eax, [ebx + 4]
movzx edx, byte [edx + ecx]
or ebp, edx
cdq
idiv esi
xor dword [edi - 0x14], ebp
mov ebx, edx
lea eax, [ebx + 1]
cdq
idiv esi
movzx eax, byte [ebx + ecx]
shl eax, 8
movzx ebp, byte [edx + ecx]
or ebp, eax
lea eax, [ebx + 2]
cdq
idiv esi
shl ebp, 8
lea eax, [ebx + 3]
movzx edx, byte [edx + ecx]
or ebp, edx
cdq
idiv esi
shl ebp, 8
movzx eax, byte [edx + ecx]
or ebp, eax
lea eax, [ebx + 4]
cdq
idiv esi
xor dword [edi - 0x10], ebp
mov ebx, edx
lea eax, [ebx + 1]
cdq
idiv esi
lea eax, [ebx + 2]
movzx ebp, byte [edx + ecx]
movzx edx, byte [ebx + ecx]
shl edx, 8
or ebp, edx
cdq
idiv esi
shl ebp, 8
movzx eax, byte [edx + ecx]
or ebp, eax
lea eax, [ebx + 3]
cdq
idiv esi
shl ebp, 8
lea eax, [ebx + 4]
movzx edx, byte [edx + ecx]
or ebp, edx
cdq
idiv esi
xor dword [edi - 0xc], ebp
sub dword [esp + 0x14], 1
mov ebx, edx
jne 0x452d56
mov eax, dword [esp + 0x1c]
xor ebx, ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ebx
lea esp, [esp]
lea edi, [esp + 0x14]
lea esi, [esp + 0x10]
call fcn.00452480
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [eax + ebx*4], ecx
mov dword [eax + ebx*4 + 4], edx
add ebx, 2
cmp ebx, 0x12
jl 0x452ee0
lea ebx, [eax + 0x4c]
mov dword [esp + 0x1c], 4
nop
mov ebp, 0x80
jmp 0x452f20
lea edi, [esp + 0x14]
lea esi, [esp + 0x10]
call fcn.00452480
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [ebx - 4], ecx
mov dword [ebx], edx
add ebx, 8
sub ebp, 1
jne 0x452f20
sub dword [esp + 0x1c], 1
jne 0x452f10
pop ebp
pop ebx
pop edi
pop esi
add esp, 8
ret 4