Function at 0x52205c
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 0x5229c2
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x20]
test al, al
jne 0x5229a7
mov eax, dword [ebp - 4]
call fcn.00523458
xor eax, eax
push ebp
push 0x522995
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.00523428
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0043dbbc
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x55c788]
call fcn.0040a2e0
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.004051e8
xor eax, eax
push ebp
push 0x522978
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.005134b4
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x5221db
mov eax, dword [ebp - 4]
call fcn.00523c24
cmp dword [eax + 8], 0
jle 0x52214b
mov eax, dword [ebp - 4]
call fcn.00523c24
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005134b4
mov edi, eax
dec edi
test edi, edi
jl 0x5221db
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00520e54
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x5221d7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00520e54
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.0043dbbc
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, dword [0x55c788]
call fcn.0040a2e0
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.004051e8
inc ebx
dec edi
jne 0x522160
test byte [ebp - 5], 4
je 0x5223ef
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005134b4
mov edi, eax
dec edi
test edi, edi
jl 0x5222c5
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00520e54
call fcn.0051d888
test al, al
je 0x5222bd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00520e54
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00520e54
mov eax, dword [eax + 0x34]
call fcn.00520008
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00520e54
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.00522044
test al, al
jne 0x5222bd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00520e54
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.0051ffa8
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.0043dbbc
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x55c788]
call fcn.0040a2e0
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.004051e8
inc ebx
dec edi
jne 0x5221fe
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005134b4
mov edi, eax
sub edi, 2
test edi, edi
jl 0x5223ff
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00520e54
cmp dword [eax + 0x34], 0
je 0x5223e5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00520e54
mov eax, dword [eax + 0x34]
call fcn.00520110
add al, 0xfe
sub al, 2
jae 0x5223e5
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00520e54
call fcn.0051d888
test al, al
jne 0x5223e5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00520e54
lea edx, [ebp - 0x20]
call fcn.0051d548
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00520e54
lea edx, [ebp - 0x30]
call fcn.0051d548
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 0x5223e5
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x40]
push eax
call sub.user32.dll_EqualRect
test eax, eax
je 0x52239c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00520e54
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.00520120
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.0043dbbc
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, dword [0x55c788]
call fcn.0040a2e0
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.004051e8
inc ebx
dec edi
jne 0x5222e0
jmp 0x5223ff
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005134b4
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x5224d2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005134b4
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x5224e0
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x522429
dec esi
test esi, esi
jle 0x522459
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00520e54
cmp dword [eax + 0x34], 0
je 0x522459
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00520e54
mov eax, dword [eax + 0x34]
call fcn.00520110
cmp al, 3
je 0x522428
test esi, esi
jl 0x52247e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00520e54
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00520e54
pop edx
call fcn.0051f5fc
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.0043dbbc
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x55c788]
call fcn.0040a2e0
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.004051e8
dec ebx
test ebx, ebx
jne 0x522420
jmp 0x5224e0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005134b4
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005134b4
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x522693
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005134b4
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x52264a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00520e54
mov eax, dword [eax + 0x30]
call fcn.005134b4
mov esi, eax
dec esi
cmp esi, 0
jl 0x5225ff
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00520e54
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0051c500
mov edx, dword [0x5100d4]
call fcn.00405148
test al, al
jne 0x5225de
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00520e54
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0051c500
mov edx, dword [0x50fc1c]
call fcn.00405148
test al, al
jne 0x5225de
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00520e54
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0051c500
mov edx, dword [0x510918]
call fcn.00405148
test al, al
jne 0x5225de
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00520e54
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0051c500
mov edx, dword [0x510ab8]
call fcn.00405148
test al, al
je 0x5225f5
test ebx, ebx
jg 0x5225de
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005134b4
dec eax
jne 0x5225f5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00520e54
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005134fc
dec esi
cmp esi, 0xffffffff
jne 0x522530
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00520e54
call fcn.0051c81c
test al, al
je 0x522640
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00520e54
mov eax, dword [eax + 0x30]
call fcn.005134b4
test eax, eax
jne 0x522640
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00520e54
call fcn.00404f14
dec ebx
cmp ebx, 0xffffffff
jne 0x52250f
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.0043dbbc
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x55c788]
call fcn.0040a2e0
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.004051e8
test byte [ebp - 5], 1
je 0x5227da
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005134b4
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x5227e8
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00520e54
call fcn.0051c81c
test al, al
jne 0x5227ce
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00520e54
call fcn.0051d888
test al, al
je 0x5227ce
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00520e54
mov eax, dword [eax + 0x34]
call fcn.005200e4
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00520e54
call fcn.0051f248
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00520e54
call fcn.0051c81c
test al, al
je 0x522785
test ebx, ebx
jle 0x522778
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00520e54
call fcn.0051d888
test al, al
je 0x522778
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00520e54
mov eax, dword [eax + 0x34]
call fcn.005200e4
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00520e54
mov eax, dword [eax + 0x34]
pop edx
call fcn.005200ec
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005134fc
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.0043dbbc
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [0x55c788]
call fcn.0040a2e0
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.004051e8
dec ebx
cmp ebx, 0xffffffff
jne 0x5226b4
jmp 0x5227e8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005134b4
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005134b4
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x52291e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005134b4
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x5228d5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00520e54
cmp dword [eax + 0x34], 0
je 0x52288a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00520e54
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.005200e4
test ax, ax
je 0x522854
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005134b4
dec eax
jne 0x52288a
mov eax, esi
call fcn.0051ff9c
test al, al
jne 0x52288a
mov eax, esi
call fcn.005200f4
test al, al
jne 0x52288a
mov eax, esi
call fcn.00520110
sub al, 2
jb 0x522883
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005134b4
dec eax
jne 0x52288a
mov eax, esi
call fcn.00404f14
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00520e54
call fcn.0051c81c
test al, al
je 0x5228cb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00520e54
mov eax, dword [eax + 0x30]
call fcn.005134b4
test eax, eax
jne 0x5228cb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00520e54
call fcn.00404f14
dec ebx
cmp ebx, 0xffffffff
jne 0x522817
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.0043dbbc
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x70]
mov eax, dword [0x55c788]
call fcn.0040a2e0
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.004051e8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x52297f
call fcn.00404574
test eax, eax
jne 0x52293b
mov ebx, 0x64
jmp 0x52293d
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.0043dbbc
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [0x55c788]
call fcn.0040a2e0
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.004051e8
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5229c9
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.00406b2c
ret