Function at 0x409000
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x42de08
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 8
mov eax, dword [0x436cfc]
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0x30]
push ecx
push edx
lea ecx, [esp + 0x18]
mov dword [esp + 0x28], 0
call fcn.0040b2b0
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx - 8]
cmp eax, 0x64
jle 0x40920a
mov esi, dword [sym.imp.MSVCRT.dll__mbsstr]
test eax, eax
jl 0x4090a4
push 0x4373d8
push ecx
call esi
add esp, 8
test eax, eax
jne 0x409072
mov ecx, dword [esp + 0x10]
or eax, 0xffffffff
jmp 0x409080
mov ecx, dword [esp + 0x10]
sub eax, ecx
test eax, eax
jbe 0x40920a
inc eax
test eax, eax
jl 0x4090b3
cmp eax, dword [ecx - 8]
jg 0x4090b3
add ecx, eax
push 0x4373d8
push ecx
call esi
add esp, 8
test eax, eax
jne 0x4090a9
mov ecx, dword [esp + 0x10]
or esi, 0xffffffff
jmp 0x4090b6
or eax, 0xffffffff
jmp 0x409080
mov ecx, dword [esp + 0x10]
sub eax, ecx
mov esi, eax
jmp 0x4090b6
or esi, 0xffffffff
push 0x5c
push ecx
call dword [sym.imp.MSVCRT.dll__mbsrchr]
mov ecx, dword [esp + 0x18]
add esp, 8
test eax, eax
jne 0x4090cf
or edi, 0xffffffff
jmp 0x4090d9
sub eax, ecx
mov edi, eax
je 0x40920a
test esi, esi
jbe 0x40920a
cmp edi, esi
jbe 0x40920a
inc esi
sub edi, esi
mov ebx, esi
test esi, esi
jge 0x4090f4
xor ebx, ebx
mov ebp, dword [ecx - 8]
test edi, edi
jle 0x409144
cmp ebx, ebp
jge 0x409144
lea eax, [ebx + edi]
cmp eax, ebp
jle 0x40910a
mov edi, ebp
sub edi, ebx
lea ecx, [esp + 0x10]
call fcn.00406f80
mov ecx, dword [esp + 0x10]
mov eax, ebp
sub eax, ebx
mov edx, dword [ecx - 4]
sub eax, edi
sub edx, ebx
inc eax
inc edx
cmp edx, eax
jb 0x40913f
push eax
lea eax, [ebx + edi]
add eax, ecx
add ebx, ecx
push eax
push ebx
call dword [sym.imp.ntdll.dll_memmove]
mov ecx, dword [esp + 0x1c]
add esp, 0xc
sub ebp, edi
mov dword [ecx - 8], ebp
test esi, esi
jge 0x40914a
xor esi, esi
mov ecx, 0x4373d4
test ecx, ecx
jne 0x409157
xor ebx, ebx
jmp 0x409164
push 0x4373d4
call dword [sym.imp.KERNEL32.DLL_lstrlenA]
mov ebx, eax
mov edx, dword [esp + 0x10]
test ebx, ebx
mov edi, dword [edx - 8]
jle 0x40920a
lea ecx, [esp + 0x10]
call fcn.00406f80
cmp esi, edi
jle 0x409182
mov esi, edi
mov eax, dword [esp + 0x10]
add edi, ebx
cmp dword [eax - 4], edi
jge 0x4091c7
push edi
lea ecx, [esp + 0x14]
lea ebp, [eax - 0xc]
mov dword [esp + 0x18], eax
call fcn.00406d60
test eax, eax
je 0x40920a
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x14]
inc eax
lea edx, [edi + 1]
push eax
mov eax, dword [esp + 0x14]
push ecx
push edx
push eax
call fcn.00406c30
add esp, 0x10
push ebp
call fcn.00407060
mov eax, dword [esp + 0x10]
mov ecx, edi
lea edx, [esi + eax]
sub ecx, ebx
sub ecx, esi
inc ecx
push ecx
mov ecx, dword [eax - 4]
sub ecx, ebx
push edx
sub ecx, esi
lea edx, [ebx + esi]
inc ecx
add edx, eax
push ecx
push edx
call fcn.004099d0
mov eax, dword [esp + 0x20]
push ebx
push 0x4373d4
mov ecx, dword [eax - 4]
sub ecx, esi
add esi, eax
inc ecx
push ecx
push esi
call fcn.00406c30
mov edx, dword [esp + 0x30]
add esp, 0x20
mov dword [edx - 8], edi
push 0x4373cc
push 0x4373c4
lea ecx, [esp + 0x18]
call fcn.0040b010
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
push eax
push 0x417
mov edx, dword [ecx + 4]
push edx
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov eax, dword [esp + 0x10]
mov edx, dword [0x436d00]
pop edi
pop esi
lea ecx, [eax - 0xc]
pop ebp
cmp ecx, edx
pop ebx
je 0x409268
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.DLL_InterlockedDecrement]
test eax, eax
jg 0x409268
mov edx, dword [esp]
add edx, 0xfffffff4
push edx
call fcn.0042d5f4
add esp, 4
mov ecx, dword [esp + 8]
mov dword fs:[0], ecx
add esp, 0x14
ret