Function at 0x47f860
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff8c
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
mov byte [ebp - 6], cl
mov byte [ebp - 5], dl
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x480115
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x1c]
test al, al
jne 0x4800fa
mov eax, dword [ebp - 4]
call fcn.0048166c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0040f460
xor eax, eax
push ebp
push 0x4800f3
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0040e680
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, 0x4738dc
call fcn.00405b2c
mov eax, dword [ebp - 0x54]
push eax
xor ecx, ecx
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov bx, 0xfffd
call fcn.00403060
xor eax, eax
push ebp
push 0x4800d3
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.00477c48
add eax, eax
lea eax, [eax + eax*2]
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x47f9e4
mov eax, dword [ebp - 4]
call fcn.00481088
cmp dword [eax + 8], 0
jle 0x47f954
mov eax, dword [ebp - 4]
call fcn.00481088
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.00477c48
mov edi, eax
dec edi
test edi, edi
jl 0x47f9e4
inc edi
xor esi, esi
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047e204
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x47f9e0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047e204
mov eax, dword [eax + 0x20]
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_MulDiv
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0040e680
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, 0x4738dc
call fcn.00405b2c
mov eax, dword [ebp - 0x58]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov bx, 0xfffd
call fcn.00403060
inc esi
dec edi
jne 0x47f969
test byte [ebp - 5], 4
je 0x47fbf2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.00477c48
mov edi, eax
dec edi
test edi, edi
jl 0x47facb
inc edi
xor esi, esi
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047e204
cmp byte [eax + 0x34], 0
je 0x47fac3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047e204
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047e204
mov eax, dword [eax + 0x38]
call fcn.0047d6f4
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047e204
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.0047f848
test al, al
jne 0x47fac3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047e204
mov eax, dword [eax + 0x38]
xor edx, edx
call fcn.0047d6e0
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_MulDiv
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0040e680
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, 0x4738dc
call fcn.00405b2c
mov eax, dword [ebp - 0x5c]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov bx, 0xfffd
call fcn.00403060
inc esi
dec edi
jne 0x47fa07
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.00477c48
mov edi, eax
sub edi, 2
test edi, edi
jl 0x47fc02
inc edi
xor esi, esi
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047e204
cmp dword [eax + 0x38], 0
je 0x47fbe8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047e204
mov eax, dword [eax + 0x38]
call fcn.0047d78c
add al, 0xfe
sub al, 2
jae 0x47fbe8
lea edx, [esi + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0047e204
cmp byte [eax + 0x34], 0
jne 0x47fbe8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047e204
lea edx, [ebp - 0x20]
call fcn.0047b0fc
lea edx, [esi + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0047e204
lea edx, [ebp - 0x30]
call fcn.0047b0fc
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x40]
push eax
call sub.user32.dll_IntersectRect
test eax, eax
je 0x47fbe8
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x40]
push eax
call sub.user32.dll_EqualRect
test eax, eax
je 0x47fb9f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047e204
mov eax, dword [eax + 0x38]
xor edx, edx
call fcn.0047d79c
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_MulDiv
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0040e680
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, 0x4738dc
call fcn.00405b2c
mov eax, dword [ebp - 0x60]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov bx, 0xfffd
call fcn.00403060
inc esi
dec edi
jne 0x47fae6
jmp 0x47fc02
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.00477c48
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x47fcd1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.00477c48
mov esi, eax
dec esi
cmp esi, 1
jl 0x47fcdf
inc dword [ebp - 0xc]
mov ebx, esi
dec ebx
jmp 0x47fc2c
dec ebx
test ebx, ebx
jle 0x47fc5c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, ebx
call fcn.0047e204
cmp dword [eax + 0x38], 0
je 0x47fc5c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, ebx
call fcn.0047e204
mov eax, dword [eax + 0x38]
call fcn.0047d78c
cmp al, 3
je 0x47fc2b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, ebx
call fcn.0047e204
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047e204
pop edx
call fcn.0047cfb8
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_MulDiv
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0040e680
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, 0x4738dc
call fcn.00405b2c
mov eax, dword [ebp - 0x64]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov bx, 0xfffd
call fcn.00403060
dec esi
test esi, esi
jne 0x47fc23
jmp 0x47fcdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.00477c48
add dword [ebp - 0xc], eax
test byte [ebp - 5], 1
je 0x47fe20
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.00477c48
mov esi, eax
dec esi
cmp esi, 0
jl 0x47fe2e
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047e204
call fcn.0047a298
test al, al
jne 0x47fe14
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047e204
cmp byte [eax + 0x34], 0
je 0x47fe14
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047e204
mov eax, dword [eax + 0x38]
call fcn.0047d774
movzx ebx, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047e204
call fcn.0047cc58
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047e204
call fcn.0047a298
test al, al
je 0x47fdcb
test esi, esi
jle 0x47fdbe
mov edx, esi
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0047e204
cmp byte [eax + 0x34], 0
je 0x47fdbe
mov edi, esi
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0047e204
mov eax, dword [eax + 0x38]
call fcn.0047d774
add ax, bx
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0047e204
mov eax, dword [eax + 0x38]
pop edx
call fcn.0047d77c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00477c78
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_MulDiv
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0040e680
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, 0x4738dc
call fcn.00405b2c
mov eax, dword [ebp - 0x68]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov bx, 0xfffd
call fcn.00403060
dec esi
cmp esi, 0xffffffff
jne 0x47fd00
jmp 0x47fe2e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.00477c48
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.00477c48
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x480056
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.00477c48
mov esi, eax
dec esi
cmp esi, 0
jl 0x48000b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047e204
mov eax, dword [eax + 0x30]
call fcn.00477c48
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x47ff4d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047e204
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00479fe0
mov edx, dword [0x47323c]
call fcn.00402ffc
test al, al
jne 0x47ff2c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047e204
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00479fe0
mov edx, dword [0x47317c]
call fcn.00402ffc
test al, al
jne 0x47ff2c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047e204
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00479fe0
mov edx, dword [0x473434]
call fcn.00402ffc
test al, al
jne 0x47ff2c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047e204
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00479fe0
mov edx, dword [0x473508]
call fcn.00402ffc
test al, al
je 0x47ff43
test esi, esi
jg 0x47ff2c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.00477c48
dec eax
jne 0x47ff43
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047e204
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00477c78
dec ebx
cmp ebx, 0xffffffff
jne 0x47fe7e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047e204
cmp dword [eax + 0x38], 0
je 0x47ffc0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047e204
mov ebx, dword [eax + 0x38]
mov eax, ebx
call fcn.0047d774
test ax, ax
je 0x47ff8a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.00477c48
dec eax
jne 0x47ffc0
mov eax, ebx
call fcn.0047d6d8
test al, al
jne 0x47ffc0
mov eax, ebx
call fcn.0047d784
test al, al
jne 0x47ffc0
mov eax, ebx
call fcn.0047d78c
sub al, 2
jb 0x47ffb9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.00477c48
dec eax
jne 0x47ffc0
mov eax, ebx
call fcn.00402e84
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047e204
call fcn.0047a298
test al, al
je 0x480001
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047e204
mov eax, dword [eax + 0x30]
call fcn.00477c48
test eax, eax
jne 0x480001
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047e204
call fcn.00402e84
dec esi
cmp esi, 0xffffffff
jne 0x47fe5d
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_MulDiv
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0040e680
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, 0x4738dc
call fcn.00405b2c
mov eax, dword [ebp - 0x6c]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov bx, 0xfffd
call fcn.00403060
jmp 0x480077
test byte [ebp - 5], 0x10
je 0x480077
cmp byte [ebp - 6], 9
jne 0x480077
lea edx, [ebp - 0x70]
mov eax, 0x4738a4
call fcn.00405b2c
mov eax, dword [ebp - 0x70]
call fcn.00473a8c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4800da
call fcn.0040a40c
test eax, eax
jne 0x480094
mov esi, 0x64
jmp 0x480096
xor esi, esi
mov eax, esi
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0040e680
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, 0x4738dc
call fcn.00405b2c
mov eax, dword [ebp - 0x74]
push eax
mov cl, 2
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov bx, 0xfffd
call fcn.00403060
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x48011c
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.00403bb4
ret