Function at 0x402430
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x51d5b9
mov eax, dword fs:[0]
push eax
sub esp, 0x3c4
mov eax, dword [0x57e9a8]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x3b0], ecx
call fcn.00415190
mov ecx, eax
call fcn.00415040
mov ecx, eax
call fcn.004160a0
push 2
call fcn.00415330
mov ecx, eax
call fcn.004152f0
add eax, 0x30
mov ecx, eax
call fcn.0041d660
push eax
lea ecx, [ebp - 0x38c]
call fcn.0040bba0
mov dword [ebp - 4], 0
mov dword [ebp - 0x3a8], 0
jmp 0x4024bb
mov eax, dword [ebp - 0x3a8]
add eax, 1
mov dword [ebp - 0x3a8], eax
push 2
call fcn.00415330
mov ecx, eax
call fcn.004152f0
add eax, 0x30
mov ecx, eax
call fcn.0041d660
cmp dword [ebp - 0x3a8], eax
jae 0x402516
mov ecx, dword [ebp - 0x3a8]
push ecx
push 2
call fcn.00415330
mov ecx, eax
call fcn.004152f0
add eax, 0x30
mov ecx, eax
call fcn.004da9e0
push eax
mov edx, dword [ebp - 0x3a8]
push edx
lea ecx, [ebp - 0x38c]
call fcn.004da9e0
mov ecx, eax
call fcn.0041c930
jmp 0x4024ac
push 2
call fcn.00415330
mov ecx, eax
call fcn.004152f0
add eax, 0x30
push eax
call fcn.00415190
mov ecx, eax
call fcn.00415040
mov ecx, eax
call fcn.00416470
call fcn.00415190
mov ecx, eax
call fcn.00415040
mov ecx, eax
call fcn.00417100
push 1
call fcn.00415330
mov ecx, eax
call fcn.004152f0
add eax, 0x64
push eax
lea ecx, [ebp - 0x374]
call fcn.0041c870
mov byte [ebp - 4], 1
push 1
call fcn.00415330
mov ecx, eax
call fcn.004152f0
add eax, 0x68
push eax
lea ecx, [ebp - 0x10]
call fcn.0041c870
mov byte [ebp - 4], 2
push 1
call fcn.00415330
mov ecx, eax
call fcn.004152f0
mov eax, dword [eax + 0x50]
mov dword [ebp - 0x3a0], eax
push 1
call fcn.00415330
mov ecx, eax
call fcn.004152f0
mov ecx, dword [eax + 0x4c]
mov dword [ebp - 0x394], ecx
push 1
call fcn.00415330
mov ecx, eax
call fcn.004152f0
mov dl, byte [eax + 0x6c]
mov byte [ebp - 0x36d], dl
push 1
call fcn.00415330
mov ecx, eax
call fcn.004152f0
mov al, byte [eax + 0x6d]
mov byte [ebp - 0x3a1], al
push 1
call fcn.00415330
mov ecx, eax
call fcn.004152f0
mov ecx, dword [eax + 0x70]
mov dword [ebp - 0x39c], ecx
push 1
call fcn.00415330
mov ecx, eax
call fcn.004152f0
mov edx, dword [eax + 0x74]
mov dword [ebp - 0x398], edx
mov eax, dword [ebp - 0x3b0]
mov ecx, dword [eax + 8]
push ecx
lea ecx, [ebp - 0x36c]
call fcn.00402dc0
mov byte [ebp - 4], 3
push 1
call fcn.00415330
mov ecx, eax
call fcn.004152d0
push eax
call sub.USER32.dll_WINNLSEnableIME
push 0
call fcn.00415190
mov ecx, eax
call fcn.004150c0
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [ebp - 0x36c]
call fcn.0040cd80
push 1
call fcn.00415190
mov ecx, eax
call fcn.004150c0
push 0
call fcn.00415330
mov ecx, eax
call fcn.004152d0
push eax
call sub.USER32.dll_WINNLSEnableIME
cmp dword [ebp - 0x20], 0
jl 0x402698
mov edx, dword [ebp - 0x3b0]
mov eax, dword [ebp - 0x20]
mov dword [edx + 8], eax
call fcn.00415190
mov ecx, eax
call fcn.00415040
mov ecx, eax
call fcn.004160a0
push 0
call fcn.00415190
mov ecx, eax
call fcn.00415040
mov ecx, eax
call fcn.00416470
push 1
call fcn.00415330
mov ecx, eax
call fcn.004152f0
mov ecx, eax
call fcn.00415350
mov dword [ebp - 0x3b4], eax
mov ecx, dword [ebp - 0x3b4]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x3b4]
mov eax, dword [edx + 0x10]
call eax
movzx ecx, byte [eax]
test ecx, ecx
je 0x40270a
call fcn.00415190
mov ecx, eax
call fcn.00415040
mov ecx, eax
call fcn.00415d10
jmp 0x402788
push 2
call fcn.00415330
mov ecx, eax
call fcn.004152f0
add eax, 0x2c
mov ecx, eax
call fcn.0041cf10
movzx edx, al
test edx, edx
jne 0x402788
push 1
call fcn.00415330
mov ecx, eax
call fcn.004152f0
mov ecx, eax
call fcn.00415350
mov dword [ebp - 0x3b8], eax
push 1
mov eax, dword [ebp - 0x3b8]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x3b8]
mov eax, dword [edx + 0x14]
call eax
mov ecx, dword [eax]
push ecx
push 2
call fcn.00415330
mov ecx, eax
call fcn.004152f0
add eax, 0x2c
mov ecx, eax
call fcn.0042e470
push eax
call fcn.00415190
mov ecx, eax
call fcn.00415040
mov ecx, eax
call fcn.00415c60
push 1
call fcn.00415330
mov ecx, eax
call fcn.004152f0
mov ecx, eax
call fcn.00415350
mov dword [ebp - 0x3bc], eax
mov edx, dword [ebp - 0x3bc]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x3bc]
mov edx, dword [eax + 0x14]
call edx
mov eax, dword [eax]
push eax
call fcn.00415190
mov ecx, eax
call fcn.00415040
mov ecx, eax
call fcn.00415d30
mov dword [ebp - 0x3ac], 0
jmp 0x4027e7
mov ecx, dword [ebp - 0x3ac]
add ecx, 1
mov dword [ebp - 0x3ac], ecx
call fcn.00415030
add eax, 4
mov ecx, eax
call fcn.0041da00
mov edx, dword [ebp - 0x3ac]
cmp edx, dword [eax + 0x50]
jge 0x402899
mov eax, dword [ebp - 0x3ac]
push eax
lea ecx, [ebp - 0x38c]
call fcn.004da9e0
mov ecx, eax
call fcn.0041cf10
movzx ecx, al
test ecx, ecx
jne 0x402894
push 0
mov edx, dword [ebp - 0x3ac]
push edx
mov eax, dword [ebp - 0x3ac]
push eax
lea ecx, [ebp - 0x38c]
call fcn.004da9e0
mov ecx, eax
call fcn.0042e470
push eax
call fcn.00415190
mov ecx, eax
call fcn.00415040
mov ecx, eax
call fcn.004160f0
mov ecx, dword [ebp - 0x3ac]
push ecx
lea ecx, [ebp - 0x38c]
call fcn.004da9e0
push eax
mov edx, dword [ebp - 0x3ac]
push edx
push 2
call fcn.00415330
mov ecx, eax
call fcn.004152f0
add eax, 0x30
mov ecx, eax
call fcn.004da9e0
mov ecx, eax
call fcn.0041c930
jmp 0x4027d8
jmp 0x4028aa
mov eax, dword [ebp - 0x3ac]
add eax, 1
mov dword [ebp - 0x3ac], eax
lea ecx, [ebp - 0x38c]
call fcn.0041d660
cmp dword [ebp - 0x3ac], eax
jge 0x402ab9
mov ecx, dword [ebp - 0x3ac]
push ecx
lea ecx, [ebp - 0x38c]
call fcn.004da9e0
mov ecx, eax
call fcn.0041cf10
movzx edx, al
test edx, edx
jne 0x402ab4
push 1
call fcn.00415330
mov ecx, eax
call fcn.004152f0
mov ecx, eax
call fcn.00415350
mov dword [ebp - 0x3c0], eax
mov eax, dword [ebp - 0x3c0]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x3c0]
mov eax, dword [edx + 0x28]
call eax
movzx ecx, al
test ecx, ecx
je 0x4029cf
push 1
call fcn.00415330
mov ecx, eax
call fcn.004152f0
mov ecx, eax
call fcn.00415350
mov dword [ebp - 0x3c4], eax
mov edx, dword [ebp - 0x3c4]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x3c4]
mov edx, dword [eax + 0x2c]
call edx
movzx eax, byte [eax]
test eax, eax
je 0x4029ca
push 1
call fcn.00415330
mov ecx, eax
call fcn.004152f0
mov ecx, eax
call fcn.00415350
mov dword [ebp - 0x3c8], eax
mov ecx, dword [ebp - 0x3c8]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x3c8]
mov eax, dword [edx + 0x30]
call eax
mov ecx, dword [eax]
push ecx
call fcn.00415030
add eax, 4
mov ecx, eax
call fcn.0041da00
mov edx, dword [ebp - 0x3ac]
sub edx, dword [eax + 0x50]
push edx
mov eax, dword [ebp - 0x3ac]
push eax
lea ecx, [ebp - 0x38c]
call fcn.004da9e0
mov ecx, eax
call fcn.0042e470
push eax
call fcn.00415190
mov ecx, eax
call fcn.00415040
mov ecx, eax
call fcn.00416300
jmp 0x402a7b
push 1
call fcn.00415330
mov ecx, eax
call fcn.004152f0
mov ecx, eax
call fcn.00415350
mov dword [ebp - 0x3cc], eax
mov ecx, dword [ebp - 0x3cc]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x3cc]
mov eax, dword [edx + 0x20]
call eax
movzx ecx, byte [eax]
test ecx, ecx
je 0x402a7b
push 1
call fcn.00415330
mov ecx, eax
call fcn.004152f0
mov ecx, eax
call fcn.00415350
mov dword [ebp - 0x3d0], eax
mov edx, dword [ebp - 0x3d0]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x3d0]
mov edx, dword [eax + 0x24]
call edx
mov eax, dword [eax]
push eax
call fcn.00415030
add eax, 4
mov ecx, eax
call fcn.0041da00
mov ecx, dword [ebp - 0x3ac]
sub ecx, dword [eax + 0x50]
push ecx
mov edx, dword [ebp - 0x3ac]
push edx
lea ecx, [ebp - 0x38c]
call fcn.004da9e0
mov ecx, eax
call fcn.0042e470
push eax
call fcn.00415190
mov ecx, eax
call fcn.00415040
mov ecx, eax
call fcn.00416300
mov eax, dword [ebp - 0x3ac]
push eax
lea ecx, [ebp - 0x38c]
call fcn.004da9e0
push eax
mov ecx, dword [ebp - 0x3ac]
push ecx
push 2
call fcn.00415330
mov ecx, eax
call fcn.004152f0
add eax, 0x30
mov ecx, eax
call fcn.004da9e0
mov ecx, eax
call fcn.0041c930
jmp 0x40289b
push 1
call fcn.00415330
mov ecx, eax
call fcn.004152f0
mov edx, dword [eax + 0x98]
push edx
push 5
call fcn.00415330
mov ecx, eax
call fcn.004152f0
mov ecx, eax
call fcn.00415370
mov byte [ebp - 0x38d], 0
push 1
call fcn.00415330
mov ecx, eax
call fcn.004152f0
add eax, 0x64
mov ecx, eax
call fcn.0042e470
push eax
lea ecx, [ebp - 0x374]
call fcn.0041ca10
test eax, eax
jne 0x402b37
push 1
call fcn.00415330
mov ecx, eax
call fcn.004152f0
add eax, 0x68
mov ecx, eax
call fcn.0042e470
push eax
lea ecx, [ebp - 0x10]
call fcn.0041ca10
test eax, eax
je 0x402b9b
push 1
call fcn.00415330
mov ecx, eax
call fcn.004152f0
add eax, 0x64
mov ecx, eax
call fcn.0042e470
push eax
call fcn.00413fc0
mov ecx, eax
call fcn.00413f40
push 1
call fcn.00415330
mov ecx, eax
call fcn.004152f0
add eax, 0x68
mov ecx, eax
call fcn.0042e470
push eax
call fcn.00413fc0
mov ecx, eax
call fcn.00413f80
call fcn.00415190
mov ecx, eax
call fcn.0044aa70
mov ecx, eax
call fcn.004cd250
mov byte [ebp - 0x38d], 1
push 1
call fcn.00415330
mov ecx, eax
call fcn.004152f0
mov ecx, dword [ebp - 0x3a0]
cmp ecx, dword [eax + 0x50]
jne 0x402bcd
push 1
call fcn.00415330
mov ecx, eax
call fcn.004152f0
mov edx, dword [ebp - 0x394]
cmp edx, dword [eax + 0x4c]
je 0x402bf2
push 0xffffffffffffffff
push 1
call fcn.00415190
mov ecx, eax
call fcn.0043ba60
mov ecx, eax
call fcn.004173b0
mov ecx, eax
call fcn.004176f0
mov byte [ebp - 0x38d], 1
movzx esi, byte [ebp - 0x36d]
push 1
call fcn.00415330
mov ecx, eax
call fcn.004152f0
movzx eax, byte [eax + 0x6c]
cmp esi, eax
jne 0x402c5e
movzx esi, byte [ebp - 0x3a1]
push 1
call fcn.00415330
mov ecx, eax
call fcn.004152f0
movzx ecx, byte [eax + 0x6d]
cmp esi, ecx
jne 0x402c5e
push 1
call fcn.00415330
mov ecx, eax
call fcn.004152f0
mov edx, dword [ebp - 0x39c]
cmp edx, dword [eax + 0x70]
jne 0x402c5e
push 1
call fcn.00415330
mov ecx, eax
call fcn.004152f0
mov ecx, dword [ebp - 0x398]
cmp ecx, dword [eax + 0x74]
je 0x402c65
mov byte [ebp - 0x38d], 1
movzx edx, byte [ebp - 0x38d]
test edx, edx
je 0x402cee
push 3
call fcn.00415190
mov ecx, eax
call fcn.0043ba60
mov ecx, eax
call fcn.004173b0
mov ecx, eax
call fcn.00414fd0
movzx eax, al
test eax, eax
je 0x402caf
push 3
call fcn.00415190
mov ecx, eax
call fcn.0043ba60
mov ecx, eax
call fcn.004173b0
mov ecx, eax
call fcn.00418ae0
push 5
call fcn.00415190
mov ecx, eax
call fcn.0043ba60
mov ecx, eax
call fcn.004173b0
mov ecx, eax
call fcn.00414fd0
movzx ecx, al
test ecx, ecx
je 0x402cee
push 5
call fcn.00415190
mov ecx, eax
call fcn.0043ba60
mov ecx, eax
call fcn.004173b0
mov ecx, eax
call fcn.0041b0c0
push 0
call fcn.00415190
mov ecx, eax
call fcn.0043ba60
mov ecx, eax
call fcn.004173b0
mov ecx, eax
call fcn.00417540
push 3
call fcn.00415190
mov ecx, eax
call fcn.0043ba60
mov ecx, eax
call fcn.004173b0
mov ecx, eax
call fcn.0041a7b0
push 1
call fcn.00415190
mov ecx, eax
call fcn.0043ba60
mov ecx, eax
call fcn.004173b0
mov ecx, eax
call fcn.00417830
push 2
call fcn.00415190
mov ecx, eax
call fcn.0043ba60
mov ecx, eax
call fcn.004173b0
mov ecx, eax
call fcn.00417a00
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x36c]
call fcn.00402f90
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x10]
call fcn.0041c910
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x374]
call fcn.0041c910
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x38c]
call fcn.0041d600
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00509f49
mov esp, ebp
pop ebp
ret