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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5b5b38
mov eax, dword fs:[0]
push eax
sub esp, 0x64
mov eax, dword [0x676664]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x14]
mov ebx, dword [ebp + 0xc]
push str.initCrypt_blowfish
mov edi, ecx
push eax
lea ecx, [ebp - 0x70]
call fcn.0044ec60
mov eax, dword [ebx + 0x10]
cdq
and edx, 7
lea esi, [edx + eax]
push 0x40
lea eax, [ebp - 0x50]
push 0
push eax
mov dword [ebp - 4], 0
sar esi, 3
call sub.MSVCR100.dll_memset
add ebx, 0x14
add esp, 0xc
mov ecx, ebx
call fcn.00410b60
mov ecx, ebx
cmp eax, 0x40
jbe 0x58b3bf
call fcn.00410b80
test eax, eax
je 0x58b3e4
push 0x40
mov ecx, ebx
call fcn.00410b80
push eax
lea ecx, [ebp - 0x50]
push ecx
jmp 0x58b3dc
call fcn.00410b80
test eax, eax
je 0x58b3e4
mov ecx, ebx
call fcn.00410b60
push eax
mov ecx, ebx
call fcn.00410b80
push eax
lea edx, [ebp - 0x50]
push edx
call fcn.00417410
add esp, 0xc
mov eax, 8
sub eax, 0x675194
mov dword [ebp - 0x54], eax
mov eax, 0xc
sub eax, 0x675194
mov dword [ebp - 0x64], eax
mov eax, 0x10
sub eax, 0x675194
mov dword [ebp - 0x5c], eax
xor ecx, ecx
mov eax, 0x14
sub eax, 0x675194
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x58], eax
lea ecx, [ecx]
mov ebx, dword [ecx + 0x675190]
mov edx, dword [edi + 0x88]
mov dword [ecx + edx], ebx
mov ebx, dword [ecx + 0x675194]
mov edx, dword [edi + 0x88]
lea eax, [ecx + 0x675194]
mov dword [ecx + edx + 4], ebx
mov ecx, dword [edi + 0x88]
mov edx, dword [eax + 4]
mov ebx, dword [ebp - 0x54]
add ecx, eax
mov dword [ecx + ebx], edx
mov ecx, dword [edi + 0x88]
mov edx, dword [eax + 8]
mov ebx, dword [ebp - 0x64]
add ecx, eax
mov dword [ecx + ebx], edx
mov ecx, dword [edi + 0x88]
mov edx, dword [eax + 0xc]
mov ebx, dword [ebp - 0x5c]
add ecx, eax
mov dword [ecx + ebx], edx
mov ecx, dword [edi + 0x88]
mov edx, dword [eax + 0x10]
add ecx, eax
mov eax, dword [ebp - 0x58]
mov dword [ecx + eax], edx
mov ecx, dword [ebp - 0x60]
add ecx, 0x18
mov dword [ebp - 0x60], ecx
cmp ecx, 0x48
jl 0x58b420
mov eax, 8
sub eax, 0x6751dc
mov dword [ebp - 0x58], eax
xor eax, eax
lea ecx, [eax + 0xc]
mov dword [ebp - 0x60], 0x40
mov ebx, dword [eax + 0x6751d8]
mov edx, dword [edi + 0x8c]
mov dword [eax + edx], ebx
mov ebx, dword [eax + 0x6751dc]
mov edx, dword [edi + 0x8c]
mov dword [edx + eax + 4], ebx
mov edx, dword [edi + 0x8c]
add edx, dword [ebp - 0x58]
mov ebx, dword [eax + 0x6751e0]
mov dword [edx + eax + 0x6751dc], ebx
mov ebx, dword [eax + 0x6751e4]
mov edx, dword [edi + 0x8c]
mov dword [ecx + edx], ebx
add eax, 0x10
add ecx, 0x10
dec dword [ebp - 0x60]
jne 0x58b4b0
cmp eax, 0x1000
jl 0x58b4a6
xor ecx, ecx
mov dword [ebp - 0x54], ecx
mov ebx, 0xc
mov eax, dword [edi + 0x88]
lea edx, [ebx + eax - 0xc]
mov dword [ebp - 0x5c], edx
lea eax, [ecx + 1]
cdq
idiv esi
movzx eax, byte [ebp + edx - 0x50]
movzx edx, byte [ebp + ecx - 0x50]
shl edx, 8
or eax, edx
shl eax, 8
mov dword [ebp - 0x58], eax
lea eax, [ecx + 2]
cdq
idiv esi
mov ecx, dword [ebp - 0x58]
movzx eax, byte [ebp + edx - 0x50]
or ecx, eax
mov eax, dword [ebp - 0x54]
add eax, 3
cdq
idiv esi
mov eax, dword [ebp - 0x5c]
shl ecx, 8
movzx edx, byte [ebp + edx - 0x50]
or ecx, edx
xor dword [eax], ecx
mov eax, dword [ebp - 0x54]
add eax, 4
cdq
idiv esi
mov eax, dword [edi + 0x88]
mov ecx, edx
lea edx, [ebx + eax - 8]
mov dword [ebp - 0x5c], edx
lea eax, [ecx + 1]
cdq
idiv esi
mov dword [ebp - 0x54], ecx
movzx eax, byte [ebp + edx - 0x50]
movzx edx, byte [ebp + ecx - 0x50]
shl edx, 8
or eax, edx
shl eax, 8
mov dword [ebp - 0x58], eax
lea eax, [ecx + 2]
cdq
idiv esi
mov ecx, dword [ebp - 0x58]
movzx eax, byte [ebp + edx - 0x50]
or ecx, eax
mov eax, dword [ebp - 0x54]
add eax, 3
cdq
idiv esi
mov eax, dword [ebp - 0x5c]
shl ecx, 8
movzx edx, byte [ebp + edx - 0x50]
or ecx, edx
xor dword [eax], ecx
mov eax, dword [ebp - 0x54]
add eax, 4
cdq
idiv esi
mov eax, dword [edi + 0x88]
mov ecx, edx
lea edx, [ebx + eax - 4]
mov dword [ebp - 0x5c], edx
lea eax, [ecx + 1]
cdq
idiv esi
mov dword [ebp - 0x54], ecx
movzx eax, byte [ebp + edx - 0x50]
movzx edx, byte [ebp + ecx - 0x50]
shl edx, 8
or eax, edx
shl eax, 8
mov dword [ebp - 0x58], eax
lea eax, [ecx + 2]
cdq
idiv esi
movzx eax, byte [ebp + edx - 0x50]
mov ecx, dword [ebp - 0x58]
or ecx, eax
mov eax, dword [ebp - 0x54]
add eax, 3
cdq
idiv esi
mov eax, dword [ebp - 0x5c]
shl ecx, 8
movzx edx, byte [ebp + edx - 0x50]
or ecx, edx
xor dword [eax], ecx
mov eax, dword [ebp - 0x54]
add eax, 4
cdq
idiv esi
mov eax, dword [edi + 0x88]
mov ecx, edx
lea edx, [ebx + eax]
mov dword [ebp - 0x5c], edx
lea eax, [ecx + 1]
cdq
idiv esi
mov dword [ebp - 0x54], ecx
movzx eax, byte [ebp + edx - 0x50]
movzx edx, byte [ebp + ecx - 0x50]
shl edx, 8
or eax, edx
shl eax, 8
mov dword [ebp - 0x58], eax
lea eax, [ecx + 2]
cdq
idiv esi
mov ecx, dword [ebp - 0x58]
movzx eax, byte [ebp + edx - 0x50]
or ecx, eax
mov eax, dword [ebp - 0x54]
add eax, 3
cdq
idiv esi
mov eax, dword [ebp - 0x5c]
shl ecx, 8
movzx edx, byte [ebp + edx - 0x50]
or ecx, edx
xor dword [eax], ecx
mov eax, dword [ebp - 0x54]
add eax, 4
cdq
idiv esi
mov eax, dword [edi + 0x88]
mov ecx, edx
lea edx, [ebx + eax + 4]
mov dword [ebp - 0x5c], edx
lea eax, [ecx + 1]
cdq
idiv esi
mov dword [ebp - 0x54], ecx
movzx eax, byte [ebp + edx - 0x50]
movzx edx, byte [ebp + ecx - 0x50]
shl edx, 8
or eax, edx
shl eax, 8
mov dword [ebp - 0x58], eax
lea eax, [ecx + 2]
cdq
idiv esi
mov ecx, dword [ebp - 0x58]
movzx eax, byte [ebp + edx - 0x50]
or ecx, eax
mov eax, dword [ebp - 0x54]
add eax, 3
cdq
idiv esi
mov eax, dword [ebp - 0x5c]
shl ecx, 8
movzx edx, byte [ebp + edx - 0x50]
or ecx, edx
xor dword [eax], ecx
mov eax, dword [ebp - 0x54]
add eax, 4
cdq
idiv esi
mov dword [ebp - 0x54], edx
lea eax, [edx + 1]
cdq
idiv esi
mov eax, dword [ebp - 0x54]
add eax, 2
movzx ecx, byte [ebp + edx - 0x50]
movzx edx, byte [ebp + eax - 0x52]
shl edx, 8
or ecx, edx
cdq
idiv esi
shl ecx, 8
movzx eax, byte [ebp + edx - 0x50]
or ecx, eax
mov eax, dword [ebp - 0x54]
add eax, 3
cdq
idiv esi
shl ecx, 8
and ecx, 0xffffff00
movzx eax, byte [ebp + edx - 0x50]
or eax, ecx
mov ecx, dword [edi + 0x88]
xor dword [ebx + ecx + 8], eax
mov eax, dword [ebp - 0x54]
lea ecx, [ebx + ecx + 8]
add eax, 4
cdq
idiv esi
add ebx, 0x18
mov ecx, edx
mov dword [ebp - 0x54], ecx
cmp ebx, 0x54
jl 0x58b510
xor ebx, ebx
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x60], ebx
xor esi, esi
lea edx, [ebp - 0x60]
push edx
lea eax, [ebp - 0x54]
push eax
mov ecx, edi
call fcn.00588380
mov ecx, dword [edi + 0x88]
mov edx, dword [ebp - 0x54]
mov dword [esi + ecx], edx
mov eax, dword [edi + 0x88]
mov ecx, dword [ebp - 0x60]
mov dword [esi + eax + 4], ecx
add esi, 8
cmp esi, 0x48
jl 0x58b756
xor esi, esi
jmp 0x58b790
mov ebx, 0x80
lea edx, [ebp - 0x60]
push edx
lea eax, [ebp - 0x54]
push eax
mov ecx, edi
call fcn.00588380
mov ecx, dword [edi + 0x8c]
mov edx, dword [ebp - 0x54]
mov dword [esi + ecx], edx
mov eax, dword [edi + 0x8c]
mov ecx, dword [ebp - 0x60]
mov dword [esi + eax + 4], ecx
add esi, 8
dec ebx
jne 0x58b795
cmp esi, 0x1000
jl 0x58b790
lea ecx, [ebp - 0x70]
mov dword [ebp - 4], 0xffffffff
call fcn.0044ecf0
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0059af98
mov esp, ebp
pop ebp
ret 0x10