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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6380ad
mov eax, dword fs:[0]
push eax
sub esp, 0x64
mov eax, dword [0x717f80]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x60], esi
mov eax, dword [ebp + 0x10]
lea ecx, [ebp - 0x5c]
mov edi, dword [ebp + 0xc]
xorps xmm0, xmm0
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp + 0x14]
push str.initCrypt_blowfish
push eax
mov dword [ebp - 0x70], edi
movq qword [ebp - 0x5c], xmm0
mov dword [ebp - 0x54], 0
call fcn.004b2490
mov eax, dword [edi + 0x10]
cdq
and edx, 7
mov dword [ebp - 4], 0
add eax, edx
sar eax, 3
push 0x40
mov dword [ebp - 0x64], eax
lea eax, [ebp - 0x50]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
add edi, 0x14
mov ecx, edi
call fcn.0046e290
mov ecx, edi
cmp eax, 0x40
jbe 0x61058f
call fcn.004a2ca0
test eax, eax
je 0x6105b4
push 0x40
jmp 0x6105a0
call fcn.004a2ca0
test eax, eax
je 0x6105b4
mov ecx, edi
call fcn.0046e290
push eax
mov ecx, edi
call fcn.004a2ca0
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.004777e0
add esp, 0xc
mov ecx, dword [esi + 0x88]
lea eax, [esi + 0x88]
lea edx, [ecx + 0x44]
cmp ecx, 0x716a64
ja 0x6105d3
cmp edx, 0x716a20
jae 0x6105db
cmp ecx, eax
ja 0x6105f8
cmp edx, eax
jb 0x6105f8
xor edx, edx
mov esi, eax
nop
mov ecx, dword [esi]
mov eax, dword [edx + 0x716a20]
mov dword [edx + ecx], eax
add edx, 4
cmp edx, 0x48
jl 0x6105e0
mov esi, dword [ebp - 0x60]
jmp 0x610630
movups xmm0, xmmword [0x716a20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [0x716a30]
movups xmmword [ecx + 0x10], xmm0
movups xmm0, xmmword [0x716a40]
movups xmmword [ecx + 0x20], xmm0
movups xmm0, xmmword [0x716a50]
movups xmmword [ecx + 0x30], xmm0
movq xmm0, qword [0x716a60]
movq qword [ecx + 0x40], xmm0
xor edx, edx
mov edi, 0x40
nop word [eax + eax]
mov ecx, dword [esi + 0x8c]
mov eax, dword [edx + 0x716a68]
mov dword [edx + ecx], eax
mov ecx, dword [esi + 0x8c]
mov eax, dword [edx + 0x716a6c]
mov dword [edx + ecx + 4], eax
mov ecx, dword [esi + 0x8c]
mov eax, dword [edx + 0x716a70]
mov dword [edx + ecx + 8], eax
mov ecx, dword [esi + 0x8c]
mov eax, dword [edx + 0x716a74]
mov dword [edx + ecx + 0xc], eax
add edx, 0x10
sub edi, 1
jne 0x610640
cmp edx, 0x1000
jl 0x610632
cmp byte [esi + 0x90], 0
je 0x610707
mov ecx, dword [ebp - 0x64]
xor edx, edx
mov dword [ebp - 0x60], edx
mov dword [ebp - 0x68], edi
lea eax, [edx + 1]
add edi, dword [esi + 0x88]
cdq
idiv ecx
movzx ecx, byte [ebp + edx - 0x50]
mov edx, dword [ebp - 0x60]
movzx eax, byte [ebp + edx - 0x50]
shl eax, 8
or ecx, eax
lea eax, [edx + 2]
cdq
idiv dword [ebp - 0x64]
shl ecx, 8
movzx eax, byte [ebp + edx - 0x50]
or ecx, eax
mov eax, dword [ebp - 0x60]
add eax, 3
shl ecx, 8
cdq
idiv dword [ebp - 0x64]
movzx eax, byte [ebp + edx - 0x50]
or ecx, eax
mov eax, dword [ebp - 0x60]
xor dword [edi], ecx
add eax, 4
mov ecx, dword [ebp - 0x64]
cdq
idiv ecx
mov edi, dword [ebp - 0x68]
add edi, 4
mov dword [ebp - 0x60], edx
mov dword [ebp - 0x68], edi
cmp edi, 0x48
jl 0x6106a3
jmp 0x610773
xor ecx, ecx
xor edx, edx
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x68], edx
mov edi, dword [esi + 0x88]
lea eax, [ecx + 2]
add edi, edx
cdq
idiv dword [ebp - 0x64]
movzx ecx, byte [ebp + edx - 0x50]
mov edx, dword [ebp - 0x60]
movzx eax, byte [ebp + edx - 0x4d]
shl eax, 8
or ecx, eax
lea eax, [edx + 1]
cdq
idiv dword [ebp - 0x64]
shl ecx, 8
movzx eax, byte [ebp + edx - 0x50]
or ecx, eax
mov eax, dword [ebp - 0x60]
cdq
idiv dword [ebp - 0x64]
shl ecx, 8
movzx eax, byte [ebp + edx - 0x50]
or ecx, eax
mov eax, dword [ebp - 0x60]
add eax, 4
xor dword [edi], ecx
cdq
idiv dword [ebp - 0x64]
mov ecx, edx
mov edx, dword [ebp - 0x68]
add edx, 4
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x68], edx
cmp edx, 0x48
jl 0x610711
xor edi, edi
mov dword [ebp - 0x64], 0
cmp byte [esi + 0x90], 0
mov dword [ebp - 0x60], 0
je 0x610810
lea eax, [ebp - 0x60]
mov ecx, esi
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.006126f0
mov ecx, dword [esi + 0x88]
mov eax, dword [ebp - 0x64]
mov dword [edi + ecx], eax
mov ecx, dword [esi + 0x88]
mov eax, dword [ebp - 0x60]
mov dword [ecx + edi + 4], eax
add edi, 8
cmp edi, 0x48
jl 0x610790
xor edi, edi
mov dword [ebp - 0x68], 0x80
nop dword [eax]
lea eax, [ebp - 0x60]
mov ecx, esi
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.006126f0
mov ecx, dword [esi + 0x8c]
mov eax, dword [ebp - 0x64]
mov dword [edi + ecx], eax
mov ecx, dword [esi + 0x8c]
mov eax, dword [ebp - 0x60]
mov dword [edi + ecx + 4], eax
add edi, 8
sub dword [ebp - 0x68], 1
jne 0x6107d0
cmp edi, 0x1000
jl 0x6107c2
jmp 0x610889
lea eax, [ebp - 0x60]
mov ecx, esi
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.00612290
mov ecx, dword [esi + 0x88]
mov eax, dword [ebp - 0x64]
mov dword [edi + ecx], eax
mov ecx, dword [esi + 0x88]
mov eax, dword [ebp - 0x60]
mov dword [ecx + edi + 4], eax
add edi, 8
cmp edi, 0x48
jl 0x610810
xor edi, edi
mov dword [ebp - 0x68], 0x80
nop dword [eax]
lea eax, [ebp - 0x60]
mov ecx, esi
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.00612290
mov ecx, dword [esi + 0x8c]
mov eax, dword [ebp - 0x64]
mov dword [edi + ecx], eax
mov ecx, dword [esi + 0x8c]
mov eax, dword [ebp - 0x60]
mov dword [edi + ecx + 4], eax
add edi, 8
sub dword [ebp - 0x68], 1
jne 0x610850
cmp edi, 0x1000
jl 0x610842
cmp dword [ebp - 0x6c], 0
je 0x6108c5
mov edi, dword [ebp - 0x70]
mov eax, dword [edi + 8]
cmp eax, 3
je 0x61089f
cmp eax, 4
jne 0x6108c5
push dword [esi + 0x80]
lea ecx, [edi + 0x34]
call fcn.0046e290
push eax
lea ecx, [edi + 0x34]
call fcn.004a2ca0
mov ecx, dword [ebp - 0x6c]
push eax
lea ecx, [ecx + 0x484]
call fcn.0060e750
lea ecx, [ebp - 0x5c]
call fcn.004b2630
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00622073
mov esp, ebp
pop ebp
ret 0x10