Function at 0x40a70f
Capabilities:
Check for peb beingdebugged flag
Encode data using xor
Get number of processors

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x380
push ebx
push ebp
push esi
push edi
xor edx, edx
mov dword [esp + 0x1a], 0x16012f64
push 0xc
mov ebx, ecx
mov dword [esp + 0x22], 0x5708010a
mov cl, 0x64
mov dword [esp + 0x26], 0x8004a56
mov word [esp + 0x2a], 8
mov eax, edx
pop edi
xor byte [esp + eax + 0x1b], cl
inc eax
cmp eax, edi
jae 0x40a758
mov cl, byte [esp + 0x1a]
jmp 0x40a749
mov byte [esp + 0x27], dl
cmp dword [ebx + 4], edx
jne 0x40a9db
mov eax, dword [ebx + 0x144]
mov ebp, edx
mov esi, dword [ebx + 0x140]
sub eax, esi
cdq
idiv edi
test eax, eax
je 0x40a7b8
xor edi, edi
cmp dword [ebx + 8], 0
jne 0x40a7b8
mov edx, dword [edi + esi + 4]
mov ecx, dword [edi + esi]
call fcn.0040c18e
cmp eax, dword [edi + esi + 8]
je 0x40a79d
mov dword [ebx + 8], 1
mov eax, dword [ebx + 0x144]
inc ebp
mov esi, dword [ebx + 0x140]
sub eax, esi
push 0xc
pop ecx
cdq
add edi, ecx
idiv ecx
cmp ebp, eax
jb 0x40a77e
xor edx, edx
mov dword [esp + 0x38], edx
mov eax, dword fs:[0x30]
movzx eax, byte [eax + 2]
mov dword [esp + 0x38], eax
cmp dword [esp + 0x38], edx
jne 0x40a9db
movaps xmm0, xmmword [0x408360]
push 0x7d
pop ecx
mov dword [esp + 0x34], ecx
mov eax, dword [esp + 0x34]
xor eax, ecx
mov dword [esp + 0x6c], 0x75686a6a
mov dword [esp + 0x34], eax
mov ecx, edx
movups xmmword [esp + 0x5c], xmm0
mov dword [esp + 0x70], 0x76687553
mov dword [esp + 0x74], 0x777168
movsx eax, byte [esp + 0x5c]
and eax, 0x8000000f
jns 0x40a81e
dec eax
or eax, 0xfffffff0
inc eax
sub byte [esp + ecx + 0x5d], al
inc ecx
cmp ecx, 0x1a
jb 0x40a80d
mov byte [esp + 0x77], dl
lea ecx, [esp + 0x1b]
lea edx, [esp + 0x5d]
call fcn.0040c457
mov dword [esp + 0x14], 0xfffff89c
lea edx, [esp + 0x34]
mov ecx, dword [esp + 0x14]
xor ecx, 0x763
push edx
push ecx
call eax
test eax, eax
je 0x40a874
cmp dword [esp + 0x34], 0
je 0x40a874
mov dword [esp + 0x14], 0x22e
mov eax, dword [esp + 0x14]
xor eax, 0x22f
jmp 0x40a9de
cmp dword [ebx + 0x24], 0
push 0x10
pop ebp
je 0x40a9e6
lea eax, [esp + 0x78]
mov dword [esp + 0x14], 0x3f6
mov ecx, dword [esp + 0x14]
cdq
xor ecx, 0x3fe
push edx
push eax
push 0
push ecx
lea eax, [esp + 0x90]
mov dword [esp + 0x24], 0x37
mov edi, dword [esp + 0x24]
cdq
xor edi, 0x29
push edx
push eax
push 0
push edi
push 0xffffffffffffffff
mov dword [esp + 0x38], 0x5c1
mov esi, dword [esp + 0x38]
push 0xffffffffffffffff
xor esi, 0x5c4
push esi
push 0
push dword [ebx + 0x160]
call fcn.0043e302
mov dword [esp + 0x48], 0xc000001b
mov esi, eax
mov ecx, dword [esp + 0x48]
add esp, 0x34
xor ecx, 0x348
cmp esi, ecx
jne 0x40a9db
test edx, edx
jne 0x40a9db
mov dword [esp + 0x14], 0xc0000569
mov eax, dword [esp + 0x14]
xor eax, 0x63a
cmp esi, eax
jne 0x40a931
test edx, edx
jne 0x40a931
mov eax, dword [esp + 0x80]
or eax, dword [esp + 0x84]
jne 0x40a9db
mov edx, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x34]
call fcn.0040c18e
cmp eax, dword [ebx + 0x38]
jne 0x40a9db
lea eax, [esp + 0x28]
mov dword [esp + 0x14], 0x1ad
mov edi, dword [esp + 0x14]
cdq
xor edi, 0x1a5
push edx
push eax
push 0
push edi
push edx
push eax
mov dword [esp + 0x2c], ebp
mov esi, dword [esp + 0x2c]
push 0
xor esi, 0xe
mov dword [esp + 0x30], 0x1f0
mov ecx, dword [esp + 0x30]
push esi
push 0xffffffffffffffff
push 0xffffffffffffffff
xor ecx, 0x1f5
push ecx
push 0
push dword [ebx + 0x160]
call fcn.0043e302
mov dword [esp + 0x48], 0xc00004f2
add esp, 0x34
mov ecx, dword [esp + 0x14]
xor ecx, 0x7a1
cmp eax, ecx
jne 0x40aacf
test edx, edx
jne 0x40aacf
mov dword [esp + 0x14], 0x14b
mov eax, dword [esp + 0x14]
xor eax, 0x143
cmp dword [esp + 0x28], eax
jne 0x40a9db
cmp dword [esp + 0x2c], edx
je 0x40aacf
xor eax, eax
inc eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebx + 0x15c]
lea esi, [esp + 0x80]
mov dword [esp + 0x14], 0x1f4
mov ecx, dword [esp + 0x14]
push esi
xor ecx, 0x1f0
mov dword [esp + 0x18], 0x65f
mov eax, dword [esp + 0x18]
push ecx
lea ecx, [esp + 0x30]
xor eax, 0x641
push ecx
push eax
push 0xffffffffffffffff
call edx
mov dword [esp + 0x14], 0xc000066c
mov ecx, dword [esp + 0x14]
xor ecx, 0x53f
cmp eax, ecx
jne 0x40a9db
mov dword [esp + 0x14], 0xc00003c3
mov ecx, dword [esp + 0x14]
xor ecx, 0x90
cmp eax, ecx
jne 0x40aa55
cmp dword [esp + 0x28], 0
jne 0x40a9db
mov edx, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x34]
call fcn.0040c18e
cmp eax, dword [ebx + 0x38]
jne 0x40a9db
mov edx, dword [ebx + 0x15c]
lea esi, [esp + 0x78]
mov dword [esp + 0x14], 0x5fe
mov ecx, dword [esp + 0x14]
push esi
xor ecx, 0x5fa
mov dword [esp + 0x18], 0x73d
mov eax, dword [esp + 0x18]
push ecx
mov ecx, esi
xor eax, 0x723
push ecx
push eax
push 0xffffffffffffffff
call edx
mov dword [esp + 0x28], 0xc000040e
mov ecx, dword [esp + 0x28]
xor ecx, 0x75d
cmp eax, ecx
jne 0x40aacf
mov dword [esp + 0x28], 1
mov eax, dword [esp + 0x28]
xor eax, 5
cmp dword [esp + 0x78], eax
jne 0x40a9db
push 0x2c8
lea eax, [esp + 0xc8]
push 0
push eax
call fcn.00445a50
movaps xmm0, xmmword [0x407d40]
add esp, 0xc
mov dword [esp + 0x28], 0x103a3
mov eax, dword [esp + 0x28]
xor eax, 0x3b3
mov word [esp + 0x9e], 0x6e
mov dword [esp + 0xc0], eax
xor ecx, ecx
movups xmmword [esp + 0x8e], xmm0
mov al, byte [esp + 0x8e]
xor byte [esp + ecx + 0x8f], al
inc ecx
cmp ecx, ebp
jb 0x40ab19
lea edx, [esp + 0x8f]
mov byte [esp + 0x9f], 0
lea ecx, [esp + 0x1b]
call fcn.0040c457
lea ecx, [esp + 0xc0]
push ecx
push 0xfffffffffffffffe
call eax
test eax, eax
je 0x40ab8c
cmp dword [esp + 0xc4], 0
jne 0x40a9db
cmp dword [esp + 0xc8], 0
jne 0x40a9db
cmp dword [esp + 0xcc], 0
jne 0x40a9db
cmp dword [esp + 0xd0], 0
jne 0x40a9db
movaps xmm0, xmmword [0x4080d0]
xor ecx, ecx
movups xmmword [esp + 0x3f], xmm0
mov dword [esp + 0x4f], 0x7b75807c
mov dword [esp + 0x53], 0x7a6d547a
mov dword [esp + 0x57], 0x7e717870
mov byte [esp + 0x5b], 0
movsx eax, byte [esp + 0x3f]
and eax, 0x8000000f
jns 0x40abc8
dec eax
or eax, 0xfffffff0
inc eax
sub byte [esp + ecx + 0x40], al
inc ecx
cmp ecx, 0x1b
jb 0x40abb7
lea edx, [esp + 0x40]
mov byte [esp + 0x5b], 0
lea ecx, [esp + 0x1b]
call fcn.0040c457
mov esi, 0x409009
push esi
push 0
call eax
int3