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

Disassembly:
push 0xffffffffffffffff
push 0x101aabd8
mov eax, dword fs:[0]
push eax
sub esp, 0x60
mov eax, dword [0x1026d48c]
xor eax, esp
mov dword [esp + 0x5c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1026d48c]
xor eax, esp
push eax
lea eax, [esp + 0x74]
mov dword fs:[0], eax
mov eax, dword [esp + 0x90]
mov ebx, dword [esp + 0x88]
push str.initCrypt_blowfish
mov edi, ecx
push eax
lea ecx, [esp + 0x2c]
call fcn.10061630
mov eax, dword [ebx + 0x10]
cdq
and edx, 7
add eax, edx
mov esi, eax
push 0x40
lea eax, [esp + 0x34]
push 0
push eax
mov dword [esp + 0x88], 0
sar esi, 3
call fcn.1018fc10
add ebx, 0x14
add esp, 0xc
mov ecx, ebx
call fcn.100f6330
cmp eax, 0x40
mov ecx, ebx
jbe 0x1017fd96
call fcn.1008bea0
test eax, eax
je 0x1017fdbc
push 0x40
mov ecx, ebx
call fcn.1008bea0
push eax
lea ecx, [esp + 0x38]
push ecx
jmp 0x1017fdb4
call fcn.1008bea0
test eax, eax
je 0x1017fdbc
mov ecx, ebx
call fcn.100f6330
push eax
mov ecx, ebx
call fcn.1008bea0
push eax
lea edx, [esp + 0x38]
push edx
call fcn.10016e70
add esp, 0xc
mov eax, 0xc
sub eax, 0x1026bfac
mov dword [esp + 0x1c], eax
mov eax, 0x10
sub eax, 0x1026bfac
mov dword [esp + 0x20], eax
mov edx, 8
sub edx, 0x1026bfac
mov eax, 0x14
xor ecx, ecx
sub eax, 0x1026bfac
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], eax
jmp 0x1017fe04
mov edx, dword [esp + 0x18]
mov ebp, dword [ecx + 0x1026bfa8]
mov ebx, dword [edi + 0x88]
mov dword [ecx + ebx], ebp
mov ebp, dword [ecx + 0x1026bfac]
mov ebx, dword [edi + 0x88]
lea eax, [ecx + 0x1026bfac]
mov dword [ecx + ebx + 4], ebp
mov ebx, dword [edi + 0x88]
mov ebp, dword [eax + 4]
add ebx, eax
mov dword [ebx + edx], ebp
mov edx, dword [edi + 0x88]
mov ebx, dword [eax + 8]
mov ebp, dword [esp + 0x1c]
add edx, eax
mov dword [edx + ebp], ebx
mov edx, dword [edi + 0x88]
mov ebx, dword [eax + 0xc]
mov ebp, dword [esp + 0x20]
add edx, eax
mov dword [edx + ebp], ebx
mov edx, dword [edi + 0x88]
mov ebx, dword [esp + 0x14]
add edx, eax
mov eax, dword [eax + 0x10]
add ecx, 0x18
cmp ecx, 0x48
mov dword [edx + ebx], eax
jl 0x1017fe00
mov eax, 8
sub eax, 0x1026bff4
mov dword [esp + 0x14], eax
xor eax, eax
jmp 0x1017fe90
lea ecx, [eax + 0xc]
mov edx, 0x40
jmp 0x1017fea0
mov ebp, dword [eax + 0x1026bff0]
mov ebx, dword [edi + 0x8c]
mov dword [eax + ebx], ebp
mov ebp, dword [eax + 0x1026bff4]
mov ebx, dword [edi + 0x8c]
mov dword [ebx + eax + 4], ebp
mov ebx, dword [edi + 0x8c]
add ebx, dword [esp + 0x14]
mov ebp, dword [eax + 0x1026bff8]
mov dword [ebx + eax + 0x1026bff4], ebp
mov ebp, dword [eax + 0x1026bffc]
mov ebx, dword [edi + 0x8c]
mov dword [ecx + ebx], ebp
add eax, 0x10
add ecx, 0x10
sub edx, 1
jne 0x1017fea0
cmp eax, 0x1000
jl 0x1017fe90
xor ecx, ecx
mov ebp, 0xc
mov edi, edi
mov edx, dword [edi + 0x88]
lea eax, [edx + ebp - 0xc]
mov dword [esp + 0x14], eax
lea eax, [ecx + 1]
cdq
idiv esi
lea eax, [ecx + 2]
movzx ebx, byte [esp + edx + 0x30]
cdq
idiv esi
mov bh, byte [esp + ecx + 0x30]
lea eax, [ecx + 3]
shl ebx, 8
movzx edx, byte [esp + edx + 0x30]
or ebx, edx
cdq
idiv esi
shl ebx, 8
movzx eax, byte [esp + edx + 0x30]
or ebx, eax
mov eax, dword [esp + 0x14]
xor dword [eax], ebx
lea eax, [ecx + 4]
cdq
idiv esi
mov ecx, edx
mov edx, dword [edi + 0x88]
lea eax, [edx + ebp - 8]
mov dword [esp + 0x14], eax
lea eax, [ecx + 1]
cdq
idiv esi
lea eax, [ecx + 2]
movzx ebx, byte [esp + edx + 0x30]
cdq
idiv esi
mov bh, byte [esp + ecx + 0x30]
lea eax, [ecx + 3]
shl ebx, 8
movzx edx, byte [esp + edx + 0x30]
or ebx, edx
cdq
idiv esi
shl ebx, 8
movzx eax, byte [esp + edx + 0x30]
or ebx, eax
mov eax, dword [esp + 0x14]
xor dword [eax], ebx
lea eax, [ecx + 4]
cdq
idiv esi
mov ecx, edx
mov edx, dword [edi + 0x88]
lea eax, [edx + ebp - 4]
mov dword [esp + 0x14], eax
lea eax, [ecx + 1]
cdq
idiv esi
lea eax, [ecx + 2]
movzx ebx, byte [esp + edx + 0x30]
cdq
idiv esi
mov bh, byte [esp + ecx + 0x30]
lea eax, [ecx + 3]
shl ebx, 8
movzx edx, byte [esp + edx + 0x30]
or ebx, edx
cdq
idiv esi
shl ebx, 8
movzx eax, byte [esp + edx + 0x30]
or ebx, eax
mov eax, dword [esp + 0x14]
xor dword [eax], ebx
lea eax, [ecx + 4]
cdq
idiv esi
mov ecx, edx
mov edx, dword [edi + 0x88]
lea eax, [edx + ebp]
mov dword [esp + 0x14], eax
lea eax, [ecx + 1]
cdq
idiv esi
lea eax, [ecx + 2]
movzx ebx, byte [esp + edx + 0x30]
cdq
idiv esi
mov bh, byte [esp + ecx + 0x30]
lea eax, [ecx + 3]
shl ebx, 8
movzx edx, byte [esp + edx + 0x30]
or ebx, edx
cdq
idiv esi
shl ebx, 8
movzx eax, byte [esp + edx + 0x30]
or ebx, eax
mov eax, dword [esp + 0x14]
xor dword [eax], ebx
lea eax, [ecx + 4]
cdq
idiv esi
mov ecx, edx
mov edx, dword [edi + 0x88]
lea eax, [edx + ebp + 4]
mov dword [esp + 0x14], eax
lea eax, [ecx + 1]
cdq
idiv esi
lea eax, [ecx + 2]
movzx ebx, byte [esp + edx + 0x30]
cdq
idiv esi
mov bh, byte [esp + ecx + 0x30]
lea eax, [ecx + 3]
shl ebx, 8
movzx edx, byte [esp + edx + 0x30]
or ebx, edx
cdq
idiv esi
shl ebx, 8
movzx eax, byte [esp + edx + 0x30]
or ebx, eax
mov eax, dword [esp + 0x14]
xor dword [eax], ebx
lea eax, [ecx + 4]
cdq
idiv esi
mov ecx, edx
lea eax, [ecx + 1]
cdq
idiv esi
lea eax, [ecx + 2]
movzx ebx, byte [esp + edx + 0x30]
cdq
idiv esi
mov bh, byte [esp + ecx + 0x30]
lea eax, [ecx + 3]
shl ebx, 8
movzx edx, byte [esp + edx + 0x30]
or ebx, edx
cdq
idiv esi
shl ebx, 8
and ebx, 0xffffff00
movzx eax, byte [esp + edx + 0x30]
mov edx, dword [edi + 0x88]
or eax, ebx
xor dword [edx + ebp + 8], eax
lea edx, [edx + ebp + 8]
lea eax, [ecx + 4]
cdq
idiv esi
add ebp, 0x18
cmp ebp, 0x54
mov ecx, edx
jl 0x1017ff00
xor ebx, ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], ebx
xor esi, esi
lea esp, [esp]
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x20]
push ecx
mov ecx, edi
call fcn.1017d250
mov edx, dword [edi + 0x88]
mov eax, dword [esp + 0x1c]
mov dword [esi + edx], eax
mov ecx, dword [edi + 0x88]
mov edx, dword [esp + 0x18]
mov dword [esi + ecx + 4], edx
add esi, 8
cmp esi, 0x48
jl 0x101800e0
xor esi, esi
mov ebx, 0x80
jmp 0x10180120
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x20]
push ecx
mov ecx, edi
call fcn.1017d250
mov edx, dword [edi + 0x8c]
mov eax, dword [esp + 0x1c]
mov dword [esi + edx], eax
mov ecx, dword [edi + 0x8c]
mov edx, dword [esp + 0x18]
mov dword [esi + ecx + 4], edx
add esi, 8
sub ebx, 1
jne 0x10180120
cmp esi, 0x1000
jl 0x10180116
lea ecx, [esp + 0x24]
mov dword [esp + 0x7c], 0xffffffff
call fcn.100616a0
mov al, 1
mov ecx, dword [esp + 0x74]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x5c]
xor ecx, esp
call fcn.1018f87e
add esp, 0x6c
ret 0x10