Function at 0x1017f560
Capabilities:
Encode data using xor
Encrypt data using blowfish
Get number of processors
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x101aaba8
mov eax, dword fs:[0]
push eax
sub esp, 0x64
mov eax, dword [0x1026d48c]
xor eax, esp
mov dword [esp + 0x60], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1026d48c]
xor eax, esp
push eax
lea eax, [esp + 0x78]
mov dword fs:[0], eax
mov eax, dword [esp + 0x90]
mov ebx, dword [esp + 0x8c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x94]
push str.initCrypt_blowfish
mov edi, ecx
push eax
lea ecx, [esp + 0x30]
mov dword [esp + 0x2c], ebx
call fcn.10061630
mov eax, dword [ebx + 0x10]
cdq
and edx, 7
push 0x40
add eax, edx
lea ecx, [esp + 0x38]
mov esi, eax
push 0
push ecx
mov dword [esp + 0x8c], 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 0x1017f615
call fcn.1008bea0
test eax, eax
je 0x1017f63b
push 0x40
mov ecx, ebx
call fcn.1008bea0
push eax
lea edx, [esp + 0x3c]
push edx
jmp 0x1017f633
call fcn.1008bea0
test eax, eax
je 0x1017f63b
mov ecx, ebx
call fcn.100f6330
push eax
mov ecx, ebx
call fcn.1008bea0
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.10016e70
add esp, 0xc
mov edx, 0xc
sub edx, 0x1026bfac
mov dword [esp + 0x18], edx
mov edx, 0x10
sub edx, 0x1026bfac
mov dword [esp + 0x1c], edx
mov ecx, 8
mov edx, 0x14
xor eax, eax
sub ecx, 0x1026bfac
sub edx, 0x1026bfac
mov dword [esp + 0x14], edx
jmp 0x1017f680
mov ebx, dword [eax + 0x1026bfa8]
mov edx, dword [edi + 0x88]
mov dword [eax + edx], ebx
mov ebx, dword [eax + 0x1026bfac]
mov edx, dword [edi + 0x88]
mov dword [eax + edx + 4], ebx
mov ebp, dword [eax + 0x1026bfb0]
mov ebx, dword [edi + 0x88]
lea edx, [ecx + eax + 0x1026bfac]
mov dword [edx + ebx], ebp
mov ebp, dword [eax + 0x1026bfb4]
mov ebx, dword [edi + 0x88]
mov edx, dword [esp + 0x18]
lea edx, [edx + eax + 0x1026bfac]
mov dword [edx + ebx], ebp
mov ebp, dword [eax + 0x1026bfb8]
mov edx, dword [esp + 0x1c]
mov ebx, dword [edi + 0x88]
lea edx, [edx + eax + 0x1026bfac]
mov dword [edx + ebx], ebp
mov edx, dword [esp + 0x14]
mov ebp, dword [eax + 0x1026bfbc]
mov ebx, dword [edi + 0x88]
lea edx, [edx + eax + 0x1026bfac]
add eax, 0x18
cmp eax, 0x48
mov dword [edx + ebx], ebp
jl 0x1017f680
mov eax, 8
sub eax, 0x1026bff4
mov dword [esp + 0x14], eax
xor eax, eax
lea ecx, [eax + 0xc]
mov dword [esp + 0x18], 0x40
mov ebx, dword [eax + 0x1026bff0]
mov edx, dword [edi + 0x8c]
mov dword [eax + edx], ebx
mov ebx, dword [eax + 0x1026bff4]
mov edx, dword [edi + 0x8c]
mov dword [eax + edx + 4], ebx
mov edx, dword [esp + 0x14]
mov ebx, dword [edi + 0x8c]
mov ebp, dword [eax + 0x1026bff8]
lea edx, [edx + eax + 0x1026bff4]
mov dword [edx + ebx], ebp
mov ebx, dword [eax + 0x1026bffc]
mov edx, dword [edi + 0x8c]
mov dword [ecx + edx], ebx
add eax, 0x10
add ecx, 0x10
sub dword [esp + 0x18], 1
jne 0x1017f72a
cmp eax, 0x1000
jl 0x1017f71f
xor ecx, ecx
cmp byte [edi + 0x90], cl
mov ebp, 0xc
je 0x1017f972
lea esp, [esp]
mov eax, dword [edi + 0x88]
lea edx, [eax + ebp - 0xc]
mov dword [esp + 0x14], edx
lea eax, [ecx + 1]
cdq
idiv esi
lea eax, [ecx + 2]
movzx ebx, byte [esp + edx + 0x34]
cdq
idiv esi
mov bh, byte [esp + ecx + 0x34]
shl ebx, 8
movzx eax, byte [esp + edx + 0x34]
or ebx, eax
lea eax, [ecx + 3]
cdq
idiv esi
mov eax, dword [esp + 0x14]
shl ebx, 8
movzx edx, byte [esp + edx + 0x34]
or ebx, edx
xor dword [eax], ebx
lea eax, [ecx + 4]
cdq
idiv esi
mov eax, dword [edi + 0x88]
mov ecx, edx
lea edx, [eax + ebp - 8]
mov dword [esp + 0x14], edx
lea eax, [ecx + 1]
cdq
idiv esi
lea eax, [ecx + 2]
movzx ebx, byte [esp + edx + 0x34]
cdq
idiv esi
mov bh, byte [esp + ecx + 0x34]
shl ebx, 8
movzx eax, byte [esp + edx + 0x34]
or ebx, eax
lea eax, [ecx + 3]
cdq
idiv esi
mov eax, dword [esp + 0x14]
shl ebx, 8
movzx edx, byte [esp + edx + 0x34]
or ebx, edx
xor dword [eax], ebx
lea eax, [ecx + 4]
cdq
idiv esi
mov eax, dword [edi + 0x88]
mov ecx, edx
lea edx, [eax + ebp - 4]
mov dword [esp + 0x14], edx
lea eax, [ecx + 1]
cdq
idiv esi
lea eax, [ecx + 2]
movzx ebx, byte [esp + edx + 0x34]
cdq
idiv esi
mov bh, byte [esp + ecx + 0x34]
shl ebx, 8
movzx eax, byte [esp + edx + 0x34]
or ebx, eax
lea eax, [ecx + 3]
cdq
idiv esi
mov eax, dword [esp + 0x14]
shl ebx, 8
movzx edx, byte [esp + edx + 0x34]
or ebx, edx
xor dword [eax], ebx
lea eax, [ecx + 4]
cdq
idiv esi
mov eax, dword [edi + 0x88]
mov ecx, edx
lea edx, [eax + ebp]
mov dword [esp + 0x14], edx
lea eax, [ecx + 1]
cdq
idiv esi
lea eax, [ecx + 2]
movzx ebx, byte [esp + edx + 0x34]
cdq
idiv esi
mov bh, byte [esp + ecx + 0x34]
shl ebx, 8
movzx eax, byte [esp + edx + 0x34]
or ebx, eax
lea eax, [ecx + 3]
cdq
idiv esi
mov eax, dword [esp + 0x14]
shl ebx, 8
movzx edx, byte [esp + edx + 0x34]
or ebx, edx
xor dword [eax], ebx
lea eax, [ecx + 4]
cdq
idiv esi
mov eax, dword [edi + 0x88]
mov ecx, edx
lea edx, [eax + ebp + 4]
mov dword [esp + 0x14], edx
lea eax, [ecx + 1]
cdq
idiv esi
lea eax, [ecx + 2]
movzx ebx, byte [esp + edx + 0x34]
cdq
idiv esi
mov bh, byte [esp + ecx + 0x34]
shl ebx, 8
movzx eax, byte [esp + edx + 0x34]
or ebx, eax
lea eax, [ecx + 3]
cdq
idiv esi
mov eax, dword [esp + 0x14]
shl ebx, 8
movzx edx, byte [esp + edx + 0x34]
or ebx, edx
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 + 0x34]
cdq
idiv esi
mov bh, byte [esp + ecx + 0x34]
shl ebx, 8
movzx eax, byte [esp + edx + 0x34]
or ebx, eax
lea eax, [ecx + 3]
cdq
idiv esi
shl ebx, 8
and ebx, 0xffffff00
movzx eax, byte [esp + edx + 0x34]
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 0x1017f7a0
jmp 0x1017fb38
mov eax, dword [edi + 0x88]
lea edx, [eax + ebp - 0xc]
mov dword [esp + 0x14], edx
lea eax, [ecx + 2]
cdq
idiv esi
lea eax, [ecx + 1]
movzx ebx, byte [esp + edx + 0x34]
cdq
idiv esi
mov bh, byte [esp + ecx + 0x37]
shl ebx, 8
movzx eax, byte [esp + edx + 0x34]
or ebx, eax
mov eax, ecx
cdq
idiv esi
mov eax, dword [esp + 0x14]
shl ebx, 8
movzx edx, byte [esp + edx + 0x34]
or ebx, edx
xor dword [eax], ebx
lea eax, [ecx + 4]
cdq
idiv esi
mov eax, dword [edi + 0x88]
mov ecx, edx
lea edx, [eax + ebp - 8]
mov dword [esp + 0x14], edx
lea eax, [ecx + 2]
cdq
idiv esi
lea eax, [ecx + 1]
movzx ebx, byte [esp + edx + 0x34]
cdq
idiv esi
mov bh, byte [esp + ecx + 0x37]
shl ebx, 8
movzx eax, byte [esp + edx + 0x34]
or ebx, eax
mov eax, ecx
cdq
idiv esi
mov eax, dword [esp + 0x14]
shl ebx, 8
movzx edx, byte [esp + edx + 0x34]
or ebx, edx
xor dword [eax], ebx
lea eax, [ecx + 4]
cdq
idiv esi
mov eax, dword [edi + 0x88]
mov ecx, edx
lea edx, [eax + ebp - 4]
mov dword [esp + 0x14], edx
lea eax, [ecx + 2]
cdq
idiv esi
lea eax, [ecx + 1]
movzx ebx, byte [esp + edx + 0x34]
cdq
idiv esi
mov bh, byte [esp + ecx + 0x37]
shl ebx, 8
movzx eax, byte [esp + edx + 0x34]
or ebx, eax
mov eax, ecx
cdq
idiv esi
mov eax, dword [esp + 0x14]
shl ebx, 8
movzx edx, byte [esp + edx + 0x34]
or ebx, edx
xor dword [eax], ebx
lea eax, [ecx + 4]
cdq
idiv esi
mov eax, dword [edi + 0x88]
add eax, ebp
mov dword [esp + 0x14], eax
mov ecx, edx
lea eax, [ecx + 2]
cdq
idiv esi
lea eax, [ecx + 1]
movzx ebx, byte [esp + edx + 0x34]
cdq
idiv esi
mov bh, byte [esp + ecx + 0x37]
mov eax, ecx
shl ebx, 8
movzx edx, byte [esp + edx + 0x34]
or ebx, edx
cdq
idiv esi
shl ebx, 8
movzx eax, byte [esp + edx + 0x34]
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 + 2]
cdq
idiv esi
lea eax, [ecx + 1]
movzx ebx, byte [esp + edx + 0x34]
cdq
idiv esi
mov bh, byte [esp + ecx + 0x37]
mov eax, ecx
shl ebx, 8
movzx edx, byte [esp + edx + 0x34]
or ebx, edx
cdq
idiv esi
shl ebx, 8
movzx eax, byte [esp + edx + 0x34]
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 + 2]
cdq
idiv esi
lea eax, [ecx + 1]
movzx ebx, byte [esp + edx + 0x34]
cdq
idiv esi
mov bh, byte [esp + ecx + 0x37]
mov eax, ecx
shl ebx, 8
movzx edx, byte [esp + edx + 0x34]
or ebx, edx
cdq
idiv esi
shl ebx, 8
and ebx, 0xffffff00
movzx eax, byte [esp + edx + 0x34]
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 0x1017f972
xor ebp, ebp
xor esi, esi
cmp byte [edi + 0x90], 0
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], ebp
je 0x1017fbd3
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 0x1017fb51
xor esi, esi
jmp 0x1017fb90
mov ebx, 0x80
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 0x1017fb95
cmp esi, 0x1000
jl 0x1017fb90
jmp 0x1017fc51
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x20]
push ecx
mov ecx, edi
call fcn.1017d610
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 0x1017fbd3
xor esi, esi
lea esp, [esp]
mov ebx, 0x80
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x20]
push ecx
mov ecx, edi
call fcn.1017d610
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 0x1017fc15
cmp esi, 0x1000
jl 0x1017fc10
mov ebx, dword [esp + 0x20]
cmp ebx, ebp
je 0x1017fc8f
mov esi, dword [esp + 0x24]
mov eax, dword [esi + 8]
cmp eax, 3
je 0x1017fc6a
cmp eax, 4
jne 0x1017fc8f
mov eax, dword [edi + 0x80]
add esi, 0x34
push eax
mov ecx, esi
call fcn.100f6330
push eax
mov ecx, esi
call fcn.1008bea0
push eax
lea ecx, [ebx + 0x484]
call fcn.10174770
lea ecx, [esp + 0x28]
mov dword [esp + 0x80], 0xffffffff
call fcn.100616a0
mov al, 1
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.1018f87e
add esp, 0x70
ret 0x10