Function at 0x59edbc
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 - 5], dl
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x59f722
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 0x59f707
mov eax, dword [ebp - 4]
call fcn.005a010c
xor eax, eax
push ebp
push 0x59f6f5
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.005a00e4
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0041f684
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x65d8f8]
call fcn.0040742c
mov eax, dword [ebp - 0x54]
push eax
xor ecx, ecx
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.004044b8
xor eax, eax
push ebp
push 0x59f6d8
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 + 0x30]
call fcn.00593114
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x59ef3b
mov eax, dword [ebp - 4]
call fcn.005a08f4
cmp dword [eax + 8], 0
jle 0x59eeab
mov eax, dword [ebp - 4]
call fcn.005a08f4
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00593114
mov edi, eax
dec edi
test edi, edi
jl 0x59ef3b
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0059de10
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x59ef37
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0059de10
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.0041f684
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, dword [0x65d8f8]
call fcn.0040742c
mov eax, dword [ebp - 0x58]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.004044b8
inc ebx
dec edi
jne 0x59eec0
test byte [ebp - 5], 4
je 0x59f14f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00593114
mov edi, eax
dec edi
test edi, edi
jl 0x59f025
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0059de10
call fcn.0059ace4
test al, al
je 0x59f01d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0059de10
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0059de10
mov eax, dword [eax + 0x34]
call fcn.0059d25c
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0059de10
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.0059eda4
test al, al
jne 0x59f01d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0059de10
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.0059d238
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.0041f684
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x65d8f8]
call fcn.0040742c
mov eax, dword [ebp - 0x5c]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.004044b8
inc ebx
dec edi
jne 0x59ef5e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00593114
mov edi, eax
sub edi, 2
test edi, edi
jl 0x59f15f
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0059de10
cmp dword [eax + 0x34], 0
je 0x59f145
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0059de10
mov eax, dword [eax + 0x34]
call fcn.0059d354
add al, 0xfe
sub al, 2
jae 0x59f145
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0059de10
call fcn.0059ace4
test al, al
jne 0x59f145
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0059de10
lea edx, [ebp - 0x20]
call fcn.0059aa14
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0059de10
lea edx, [ebp - 0x30]
call fcn.0059aa14
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 0x59f145
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x40]
push eax
call sub.user32.dll_EqualRect
test eax, eax
je 0x59f0fc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0059de10
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.0059d364
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.0041f684
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, dword [0x65d8f8]
call fcn.0040742c
mov eax, dword [ebp - 0x60]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.004044b8
inc ebx
dec edi
jne 0x59f040
jmp 0x59f15f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00593114
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x59f232
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00593114
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x59f240
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x59f189
dec esi
test esi, esi
jle 0x59f1b9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0059de10
cmp dword [eax + 0x34], 0
je 0x59f1b9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0059de10
mov eax, dword [eax + 0x34]
call fcn.0059d354
cmp al, 3
je 0x59f188
test esi, esi
jl 0x59f1de
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0059de10
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0059de10
pop edx
call fcn.0059ca08
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.0041f684
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x65d8f8]
call fcn.0040742c
mov eax, dword [ebp - 0x64]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.004044b8
dec ebx
test ebx, ebx
jne 0x59f180
jmp 0x59f240
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00593114
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00593114
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x59f3f3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00593114
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x59f3aa
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0059de10
mov eax, dword [eax + 0x30]
call fcn.00593114
mov esi, eax
dec esi
cmp esi, 0
jl 0x59f35f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0059de10
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00599a48
mov edx, dword [0x592424]
call fcn.00404448
test al, al
jne 0x59f33e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0059de10
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00599a48
mov edx, dword [0x592370]
call fcn.00404448
test al, al
jne 0x59f33e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0059de10
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00599a48
mov edx, dword [0x592604]
call fcn.00404448
test al, al
jne 0x59f33e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0059de10
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00599a48
mov edx, dword [0x5926c8]
call fcn.00404448
test al, al
je 0x59f355
test ebx, ebx
jg 0x59f33e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00593114
dec eax
jne 0x59f355
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0059de10
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0059315c
dec esi
cmp esi, 0xffffffff
jne 0x59f290
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0059de10
call fcn.00599d68
test al, al
je 0x59f3a0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0059de10
mov eax, dword [eax + 0x30]
call fcn.00593114
test eax, eax
jne 0x59f3a0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0059de10
call fcn.004042bc
dec ebx
cmp ebx, 0xffffffff
jne 0x59f26f
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.0041f684
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x65d8f8]
call fcn.0040742c
mov eax, dword [ebp - 0x68]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.004044b8
test byte [ebp - 5], 1
je 0x59f53a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00593114
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x59f548
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0059de10
call fcn.00599d68
test al, al
jne 0x59f52e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0059de10
call fcn.0059ace4
test al, al
je 0x59f52e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0059de10
mov eax, dword [eax + 0x34]
call fcn.0059d338
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0059de10
call fcn.0059c650
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0059de10
call fcn.00599d68
test al, al
je 0x59f4e5
test ebx, ebx
jle 0x59f4d8
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0059de10
call fcn.0059ace4
test al, al
je 0x59f4d8
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0059de10
mov eax, dword [eax + 0x34]
call fcn.0059d338
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0059de10
mov eax, dword [eax + 0x34]
pop edx
call fcn.0059d340
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0059315c
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.0041f684
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [0x65d8f8]
call fcn.0040742c
mov eax, dword [ebp - 0x6c]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.004044b8
dec ebx
cmp ebx, 0xffffffff
jne 0x59f414
jmp 0x59f548
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00593114
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00593114
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x59f67e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00593114
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x59f635
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0059de10
cmp dword [eax + 0x34], 0
je 0x59f5ea
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0059de10
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.0059d338
test ax, ax
je 0x59f5b4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00593114
dec eax
jne 0x59f5ea
mov eax, esi
call fcn.0059d22c
test al, al
jne 0x59f5ea
mov eax, esi
call fcn.0059d348
test al, al
jne 0x59f5ea
mov eax, esi
call fcn.0059d354
sub al, 2
jb 0x59f5e3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00593114
dec eax
jne 0x59f5ea
mov eax, esi
call fcn.004042bc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0059de10
call fcn.00599d68
test al, al
je 0x59f62b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0059de10
mov eax, dword [eax + 0x30]
call fcn.00593114
test eax, eax
jne 0x59f62b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0059de10
call fcn.004042bc
dec ebx
cmp ebx, 0xffffffff
jne 0x59f577
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.0041f684
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x70]
mov eax, dword [0x65d8f8]
call fcn.0040742c
mov eax, dword [ebp - 0x70]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.004044b8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x59f6df
call fcn.00403034
test eax, eax
jne 0x59f69b
mov ebx, 0x64
jmp 0x59f69d
xor ebx, ebx
push ebx
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0041f684
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [0x65d8f8]
call fcn.0040742c
mov eax, dword [ebp - 0x74]
push eax
mov cl, 2
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.004044b8
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x59f729
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.004051fc
ret