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

Disassembly:
sub esp, 0x50
mov eax, dword [0x536400]
xor eax, esp
mov dword [esp + 0x4c], eax
push ebx
push ebp
mov ebx, ecx
mov eax, dword [ebx + 8]
cdq
push esi
push edi
and edx, 7
add eax, edx
mov ebp, eax
push 0x40
lea eax, [esp + 0x20]
push 0
push eax
sar ebp, 3
call fcn.00463870
lea esi, [ebx + 0x18]
add esp, 0xc
mov ecx, esi
call fcn.0041f240
cmp eax, 0x40
mov ecx, esi
jbe 0x44c953
call fcn.0040a520
test eax, eax
je 0x44c979
mov ecx, esi
call fcn.0040a520
mov ecx, 0x10
mov esi, eax
lea edi, [esp + 0x1c]
rep movsd dword es:[edi], dword [esi]
jmp 0x44c979
call fcn.0040a520
test eax, eax
je 0x44c979
mov ecx, esi
call fcn.0041f240
push eax
mov ecx, esi
call fcn.0040a520
push eax
lea ecx, [esp + 0x24]
push ecx
call fcn.004638f0
add esp, 0xc
mov edx, 0xc
sub edx, 0x532cec
mov dword [esp + 0x14], edx
mov edx, 0x10
sub edx, 0x532cec
mov dword [esp + 0x18], edx
mov ecx, 8
mov edx, 0x14
xor eax, eax
sub ecx, 0x532cec
sub edx, 0x532cec
mov dword [esp + 0x10], edx
mov esi, dword [eax + 0x532ce8]
mov edx, dword [ebx]
mov dword [eax + edx], esi
mov esi, dword [eax + 0x532cec]
mov edx, dword [ebx]
mov dword [eax + edx + 4], esi
mov edi, dword [eax + 0x532cf0]
mov esi, dword [ebx]
lea edx, [ecx + eax + 0x532cec]
mov dword [edx + esi], edi
mov edi, dword [eax + 0x532cf4]
mov esi, dword [ebx]
mov edx, dword [esp + 0x14]
lea edx, [edx + eax + 0x532cec]
mov dword [edx + esi], edi
mov edi, dword [eax + 0x532cf8]
mov edx, dword [esp + 0x18]
mov esi, dword [ebx]
lea edx, [edx + eax + 0x532cec]
mov dword [edx + esi], edi
mov edx, dword [esp + 0x10]
mov edi, dword [eax + 0x532cfc]
mov esi, dword [ebx]
lea edx, [edx + eax + 0x532cec]
add eax, 0x18
cmp eax, 0x48
mov dword [edx + esi], edi
jl 0x44c9b3
mov eax, 8
sub eax, 0x532d34
mov dword [esp + 0x10], eax
xor eax, eax
jmp 0x44ca40
lea ecx, [eax + 0xc]
mov edx, 0x40
jmp 0x44ca50
mov edi, dword [eax + 0x532d30]
mov esi, dword [ebx + 4]
mov dword [eax + esi], edi
mov edi, dword [eax + 0x532d34]
mov esi, dword [ebx + 4]
mov dword [esi + eax + 4], edi
mov esi, dword [ebx + 4]
add esi, dword [esp + 0x10]
mov edi, dword [eax + 0x532d38]
mov dword [esi + eax + 0x532d34], edi
mov edi, dword [eax + 0x532d3c]
mov esi, dword [ebx + 4]
mov dword [ecx + esi], edi
add eax, 0x10
add ecx, 0x10
sub edx, 1
jne 0x44ca50
cmp eax, 0x1000
jl 0x44ca40
xor edi, edi
mov esi, 0xc
mov eax, dword [ebx]
lea ecx, [esi + eax - 0xc]
lea eax, [edi + 1]
cdq
idiv ebp
mov dword [esp + 0x10], ecx
lea eax, [edi + 2]
movzx ecx, byte [esp + edx + 0x1c]
cdq
idiv ebp
mov ch, byte [esp + edi + 0x1c]
lea eax, [edi + 3]
shl ecx, 8
movzx edx, byte [esp + edx + 0x1c]
or ecx, edx
cdq
idiv ebp
shl ecx, 8
movzx eax, byte [esp + edx + 0x1c]
or ecx, eax
mov eax, dword [esp + 0x10]
xor dword [eax], ecx
lea eax, [edi + 4]
cdq
idiv ebp
mov ecx, dword [ebx]
mov edi, edx
lea edx, [esi + ecx - 8]
mov dword [esp + 0x10], edx
lea eax, [edi + 1]
cdq
idiv ebp
lea eax, [edi + 2]
movzx ecx, byte [esp + edx + 0x1c]
cdq
idiv ebp
mov ch, byte [esp + edi + 0x1c]
lea eax, [edi + 3]
shl ecx, 8
movzx edx, byte [esp + edx + 0x1c]
or ecx, edx
cdq
idiv ebp
shl ecx, 8
movzx eax, byte [esp + edx + 0x1c]
or ecx, eax
mov eax, dword [esp + 0x10]
xor dword [eax], ecx
lea eax, [edi + 4]
cdq
idiv ebp
mov ecx, dword [ebx]
mov edi, edx
lea edx, [ecx + esi - 4]
mov dword [esp + 0x10], edx
lea eax, [edi + 1]
cdq
idiv ebp
lea eax, [edi + 2]
movzx ecx, byte [esp + edx + 0x1c]
cdq
idiv ebp
mov ch, byte [esp + edi + 0x1c]
lea eax, [edi + 3]
shl ecx, 8
movzx edx, byte [esp + edx + 0x1c]
or ecx, edx
cdq
idiv ebp
shl ecx, 8
movzx eax, byte [esp + edx + 0x1c]
or ecx, eax
mov eax, dword [esp + 0x10]
xor dword [eax], ecx
lea eax, [edi + 4]
cdq
idiv ebp
mov ecx, dword [ebx]
add ecx, esi
mov dword [esp + 0x10], ecx
mov edi, edx
lea eax, [edi + 1]
cdq
idiv ebp
lea eax, [edi + 2]
movzx ecx, byte [esp + edx + 0x1c]
cdq
idiv ebp
mov ch, byte [esp + edi + 0x1c]
lea eax, [edi + 3]
shl ecx, 8
movzx edx, byte [esp + edx + 0x1c]
or ecx, edx
cdq
idiv ebp
shl ecx, 8
movzx eax, byte [esp + edx + 0x1c]
or ecx, eax
mov eax, dword [esp + 0x10]
xor dword [eax], ecx
lea eax, [edi + 4]
cdq
idiv ebp
mov ecx, dword [ebx]
mov edi, edx
lea edx, [ecx + esi + 4]
mov dword [esp + 0x10], edx
lea eax, [edi + 1]
cdq
idiv ebp
lea eax, [edi + 2]
movzx ecx, byte [esp + edx + 0x1c]
cdq
idiv ebp
mov ch, byte [esp + edi + 0x1c]
lea eax, [edi + 3]
shl ecx, 8
movzx edx, byte [esp + edx + 0x1c]
or ecx, edx
cdq
idiv ebp
shl ecx, 8
movzx eax, byte [esp + edx + 0x1c]
or ecx, eax
mov eax, dword [esp + 0x10]
xor dword [eax], ecx
lea eax, [edi + 4]
cdq
idiv ebp
mov ecx, dword [ebx]
mov edi, edx
lea edx, [ecx + esi + 8]
mov dword [esp + 0x10], edx
lea eax, [edi + 1]
cdq
idiv ebp
lea eax, [edi + 2]
add esi, 0x18
movzx ecx, byte [esp + edx + 0x1c]
cdq
idiv ebp
mov ch, byte [esp + edi + 0x1c]
lea eax, [edi + 3]
shl ecx, 8
movzx edx, byte [esp + edx + 0x1c]
or ecx, edx
cdq
idiv ebp
shl ecx, 8
movzx eax, byte [esp + edx + 0x1c]
or ecx, eax
mov eax, dword [esp + 0x10]
xor dword [eax], ecx
lea eax, [edi + 4]
cdq
idiv ebp
cmp esi, 0x54
mov edi, edx
jl 0x44caa2
xor edi, edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], edi
xor esi, esi
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x1c]
push edx
mov ecx, ebx
call fcn.0044c190
mov eax, dword [ebx]
mov ecx, dword [esp + 0x18]
mov dword [esi + eax], ecx
mov edx, dword [ebx]
mov eax, dword [esp + 0x14]
mov dword [esi + edx + 4], eax
add esi, 8
cmp esi, 0x48
jl 0x44cc62
xor esi, esi
mov edi, 0x80
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x1c]
push edx
mov ecx, ebx
call fcn.0044c190
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x18]
mov dword [esi + eax], ecx
mov edx, dword [ebx + 4]
mov eax, dword [esp + 0x14]
mov dword [esi + edx + 4], eax
add esi, 8
sub edi, 1
jne 0x44cc95
cmp esi, 0x1000
jl 0x44cc90
mov ecx, dword [esp + 0x5c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0046255c
add esp, 0x50
ret