Function at 0x401140
Capabilities:
Contain obfuscated stackstrings
Get number of processors
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x423069
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xa8
push ebx
push ebp
push esi
push edi
xor edx, edx
mov bl, 0x6d
mov cl, 0x64
mov word [esp + 0x1c], dx
mov byte [esp + 0x18], bl
mov byte [esp + 0x19], cl
mov byte [esp + 0x1a], cl
mov byte [esp + 0x1e], dl
mov byte [esp + 0x20], cl
mov byte [esp + 0x28], bl
mov cl, 0x7f
mov dl, 0x65
mov bl, 0x6e
mov byte [esp + 0x22], cl
mov byte [esp + 0x27], dl
mov byte [esp + 0x29], bl
mov byte [esp + 0x2b], cl
mov byte [esp + 0x32], dl
mov byte [esp + 0x36], bl
mov byte [esp + 0x38], cl
mov byte [esp + 0x40], bl
mov byte [esp + 0x42], cl
mov byte [esp + 0x43], bl
mov byte [esp + 0x45], cl
mov al, 0xb
xor ebp, ebp
mov dl, 0x78
mov cl, 0x7d
mov bl, 0x69
mov byte [esp + 0x1b], al
mov byte [esp + 0x1f], 0x6c
mov byte [esp + 0x21], 0x6a
mov byte [esp + 0x23], al
mov word [esp + 0x24], bp
mov byte [esp + 0x26], 0x62
mov byte [esp + 0x2a], 0x68
mov byte [esp + 0x2c], al
mov byte [esp + 0x2d], 0x7b
mov byte [esp + 0x2e], 0x7e
mov byte [esp + 0x2f], 0x7b
mov byte [esp + 0x30], 0x60
mov byte [esp + 0x31], 0x62
mov byte [esp + 0x33], al
mov byte [esp + 0x34], 0x6c
mov byte [esp + 0x35], 0x7e
mov byte [esp + 0x37], dl
mov byte [esp + 0x39], al
mov byte [esp + 0x3a], 0
mov byte [esp + 0x3b], dl
mov byte [esp + 0x3c], 0x6a
mov byte [esp + 0x3d], 0x66
mov byte [esp + 0x3e], 0x7b
mov byte [esp + 0x3f], 0x67
mov byte [esp + 0x41], al
mov byte [esp + 0x44], dl
mov byte [esp + 0x46], al
mov word [esp + 0x47], bp
mov byte [esp + 0x49], cl
mov byte [esp + 0x4a], 0x26
mov byte [esp + 0x4b], 0x67
mov byte [esp + 0x4c], 0x6a
mov byte [esp + 0x4d], bl
mov byte [esp + 0x4e], al
mov byte [esp + 0x4f], 0
mov byte [esp + 0x50], cl
mov byte [esp + 0x51], 0x67
mov byte [esp + 0x52], 0x6a
mov byte [esp + 0x53], bl
mov byte [esp + 0x54], al
mov word [esp + 0x55], bp
mov byte [esp + 0x57], cl
mov byte [esp + 0x58], 0x62
mov byte [esp + 0x59], 0x79
mov byte [esp + 0x5a], 0x7e
mov byte [esp + 0x5b], dl
mov byte [esp + 0x5c], al
mov byte [esp + 0x5d], 0
inc byte [0x42ca4e]
movsx eax, word [0x42ca62]
push eax
push eax
call fcn.0040e840
mov esi, dword [esp + 0xd0]
add word [0x42ca52], ax
push esi
call fcn.00401120
add word [0x42ca62], 0xfffe
push 0x9d03ffff
push 0xf3f7ffff
call fcn.0040e890
mov bl, byte [0x42ca49]
mov dl, byte [0x42ca4d]
mov cl, byte [0x42ca4c]
add bl, al
mov al, byte [0x42ca54]
mov edi, esi
or al, dl
add esp, 0x14
add cl, al
xor eax, eax
mov byte [0x42ca4c], cl
mov cl, byte [esp + 0x17]
mov byte [esp + 0x60], cl
or ecx, 0xffffffff
mov byte [0x42ca49], bl
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x68], ebp
mov ebx, ecx
lea ecx, [esp + 0x64]
push ebx
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], ebp
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x401359
mov edi, dword [esp + 0x64]
mov ecx, ebx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x64]
mov dword [esp + 0x68], ebx
mov byte [eax + ebx], 0
lea ecx, [esp + 0x18]
mov dword [esp + 0xc0], ebp
mov dword [esp + 0x70], ebp
mov dword [esp + 0x10], ecx
push 0xb411ffff
push 0x843ffff
call fcn.0040e960
movsx edx, byte [0x42ca4f]
push 0x6b3dffff
push edx
mov dword [0x42ca8c], eax
call fcn.0040ea40
mov dl, byte [0x42ca80]
mov byte [0x42ca4b], al
mov eax, dword [0x42ca84]
or cl, 0xff
add eax, 0xcd55ffff
sub cl, dl
movsx edx, word [0x42ca56]
mov dword [0x42ca6c], eax
mov al, byte [0x42ca4e]
add al, cl
push edx
push 0x4df9ffff
mov byte [0x42ca4e], al
call fcn.0040ea40
mov dl, byte [0x42ca48]
push 0x20fffff
add dl, al
push 0x388dffff
mov byte [0x42ca48], dl
call fcn.0040e8d0
mov ecx, dword [esp + 0x30]
mov byte [0x42ca4a], al
lea eax, [esp + 0x98]
push eax
push ecx
call section..text
push 0xaecbffff
push 0x1323ffff
call fcn.0040e7e0
mov edi, dword [0x42ca84]
add esp, 0x30
add edi, eax
dec word [0x42ca58]
mov dword [0x42ca84], edi
lea edi, [esp + 0x78]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, ecx
mov dword [esp + 0x74], esi
je 0x4014ae
mov ebp, dword [esp + 0x68]
test ebp, ebp
jbe 0x4014a4
cmp esi, ebp
ja 0x4014a4
movsx eax, byte [esp + 0x78]
mov ebx, dword [esp + 0x64]
mov edx, 1
sub edx, esi
add ebp, edx
push ebp
push eax
push ebx
call dword [sym.imp.MSVCRT.dll_memchr]
add esp, 0xc
test eax, eax
je 0x4014a4
jmp 0x401474
mov esi, dword [esp + 0x74]
mov ecx, esi
lea edi, [esp + 0x78]
mov esi, eax
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40151e
sub ebx, eax
lea ebp, [ebx + ebp - 1]
lea ebx, [eax + 1]
movsx eax, byte [esp + 0x78]
push ebp
push eax
push ebx
call dword [sym.imp.MSVCRT.dll_memchr]
add esp, 0xc
test eax, eax
jne 0x401470
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov eax, dword [ecx]
xor ebp, ebp
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
cmp eax, dword [edx]
jne 0x401524
movsx ecx, word [0x42ca5c]
imul ecx, ecx, 0xb545ffff
mov ebx, dword [0x42ca70]
mov edx, dword [0x42ca6c]
mov al, byte [0x42ca58]
add ebx, ecx
push 0xb29dffff
push edx
mov byte [0x42ca50], al
mov dword [0x42ca70], ebx
call fcn.0040ea40
mov bl, byte [0x42ca4e]
mov edx, dword [esp + 0x18]
add bl, al
mov eax, dword [esp + 0x78]
add esp, 8
inc eax
add edx, 7
cmp eax, 0xa
mov byte [0x42ca4e], bl
mov dword [esp + 0x70], eax
mov dword [esp + 0x10], edx
jb 0x40136c
jmp 0x401593
sub eax, dword [esp + 0x64]
jmp 0x4014ac
mov ax, word [0x42ca5c]
inc ax
mov word [0x42ca5c], ax
movsx eax, ax
push eax
push 0x9e1bffff
call fcn.0040e9f0
mov bl, byte [0x42ca50]
mov ecx, dword [0x42ca68]
mov edx, dword [0x42ca88]
add bl, al
push ecx
push edx
mov byte [0x42ca50], bl
call fcn.0040e840
mov ecx, dword [esp + 0x74]
add esp, 0x10
cmp ecx, ebp
mov dword [0x42ca68], eax
je 0x40158f
mov al, byte [ecx - 1]
test al, al
je 0x401585
cmp al, 0xff
je 0x401585
dec al
mov byte [ecx - 1], al
mov al, 1
jmp 0x4015ee
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov al, 1
jmp 0x4015ee
push 0x7777ffff
push 0xd943ffff
call fcn.0040e9f0
push 0x2835ffff
push 0xdcddffff
mov word [0x42ca54], ax
call fcn.0040e9f0
mov cl, byte [0x42ca4f]
add esp, 0x10
add cl, al
mov byte [0x42ca4f], cl
mov ecx, dword [esp + 0x64]
cmp ecx, ebp
je 0x4015ec
mov al, byte [ecx - 1]
test al, al
je 0x4015e2
cmp al, 0xff
je 0x4015e2
dec al
mov byte [ecx - 1], al
jmp 0x4015ec
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
xor al, al
mov ecx, dword [esp + 0xb8]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xb4
ret