Function at 0x408120
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x478468
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4eec64]
xor eax, esp
push eax
lea eax, [esp + 0x20]
mov dword fs:[0], eax
mov ebx, dword [esp + 0x30]
mov esi, ecx
mov eax, dword [esi]
test eax, eax
je 0x4089f8
add eax, 4
je 0x4089f8
cmp dword [0x4f85d0], 0
je 0x4089f8
lea edi, [ebx + 0x10]
push esi
mov ecx, edi
mov dword [ebx], 0x64
call fcn.00401190
mov eax, dword [esp + 0x34]
mov dword [ebx + 4], eax
mov esi, dword [esi]
mov dword [esp + 0x14], esi
test esi, esi
je 0x4081a1
movzx ecx, byte [esi]
cmp ecx, 0x80
jae 0x4081a1
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov dword [esp + 0x28], 0
test esi, esi
je 0x4089c1
mov edx, dword [esp + 0x14]
movzx eax, byte [edx]
cmp eax, 1
jbe 0x4081c6
lea ecx, [esp + 0x14]
call fcn.004013f0
cmp dword [esp + 0x14], 0
je 0x4089c1
mov ebx, dword [esp + 0x14]
add ebx, 4
je 0x4089c1
push 0x3a
push ebx
call fcn.0045efd0
push 0x28
push ebx
mov esi, eax
call fcn.0045da10
add esp, 0x10
mov ebp, eax
mov dword [esp + 0x18], ebp
test esi, esi
je 0x408885
mov byte [esi], 0
test ebp, ebp
je 0x408260
cmp ebp, esi
jae 0x408260
mov byte [ebp], 0
inc ebp
push 0x29
push ebp
mov dword [esp + 0x20], ebp
call fcn.0045da10
add esp, 8
test eax, eax
jne 0x40825d
push str.Need_closing_paren
mov ecx, ebp
call fcn.00407a20
add esp, 4
lea ecx, [esp + 0x14]
mov dword [esp + 0x28], 0xffffffff
call fcn.00401080
mov eax, 3
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
mov byte [eax], 0
mov al, byte [esi + 1]
inc esi
mov cl, al
sub cl, 0x61
cmp cl, 0x19
jbe 0x40827e
mov dl, al
sub dl, 0x41
cmp dl, 0x19
jbe 0x40827e
sub al, 0x30
cmp al, 9
ja 0x408260
push esi
lea ecx, [esp + 0x20]
call fcn.004010d0
push eax
mov ecx, edi
mov byte [esp + 0x2c], 1
call fcn.00401190
lea ecx, [esp + 0x1c]
mov byte [esp + 0x28], 0
call fcn.00401080
mov eax, dword [0x4f85d0]
xor esi, esi
test dword [eax + 0x2c], 0xfffffffe
jbe 0x4082f9
mov eax, dword [eax + 0x28]
mov ecx, dword [eax + esi*4]
mov edx, dword [ecx]
mov eax, dword [edx]
call eax
mov ecx, ebx
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x4082e1
test dl, dl
je 0x4082dd
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x4082e1
add ecx, 2
add eax, 2
test dl, dl
jne 0x4082c1
xor eax, eax
jmp 0x4082e6
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x408320
mov eax, dword [0x4f85d0]
mov ecx, dword [eax + 0x2c]
inc esi
shr ecx, 1
cmp esi, ecx
jb 0x4082b3
mov ecx, str.rect
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40832e
test dl, dl
je 0x40831c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40832e
add eax, 2
add ecx, 2
test dl, dl
jne 0x408300
xor eax, eax
jmp 0x408333
mov edx, dword [esp + 0x30]
add esi, 0x7c
mov dword [edx], esi
jmp 0x408885
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408346
mov eax, dword [esp + 0x30]
mov dword [eax], 0x69
jmp 0x408885
mov ecx, str.srect
mov eax, ebx
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x408370
test dl, dl
je 0x40836c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x408370
add eax, 2
add ecx, 2
test dl, dl
jne 0x408350
xor eax, eax
jmp 0x408375
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408388
mov ecx, dword [esp + 0x30]
mov dword [ecx], 0x6a
jmp 0x408885
mov ecx, str.tbitmap
mov eax, ebx
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4083b0
test dl, dl
je 0x4083ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4083b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x408390
xor eax, eax
jmp 0x4083b5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4083c8
mov edx, dword [esp + 0x30]
mov dword [edx], 0x65
jmp 0x408885
mov ecx, str.scbitmap
mov eax, ebx
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4083f0
test dl, dl
je 0x4083ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4083f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4083d0
xor eax, eax
jmp 0x4083f5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408408
mov eax, dword [esp + 0x30]
mov dword [eax], 0x66
jmp 0x408885
mov ecx, str.bicubic
mov eax, ebx
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x408430
test dl, dl
je 0x40842c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x408430
add eax, 2
add ecx, 2
test dl, dl
jne 0x408410
xor eax, eax
jmp 0x408435
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408448
mov ecx, dword [esp + 0x30]
mov dword [ecx], 0x74
jmp 0x408885
mov ecx, str.decrect
mov eax, ebx
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x408470
test dl, dl
je 0x40846c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x408470
add eax, 2
add ecx, 2
test dl, dl
jne 0x408450
xor eax, eax
jmp 0x408475
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408488
mov edx, dword [esp + 0x30]
mov dword [edx], 0x6b
jmp 0x408885
mov ecx, str.text
mov eax, ebx
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4084b0
test dl, dl
je 0x4084ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4084b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x408490
xor eax, eax
jmp 0x4084b5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4084c8
mov eax, dword [esp + 0x30]
mov dword [eax], 0x6c
jmp 0x408885
mov ecx, str.textedit
mov eax, ebx
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4084f0
test dl, dl
je 0x4084ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4084f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4084d0
xor eax, eax
jmp 0x4084f5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408508
mov ecx, dword [esp + 0x30]
mov dword [ecx], 0x6d
jmp 0x408885
mov ecx, str.window
mov eax, ebx
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x408530
test dl, dl
je 0x40852c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x408530
add eax, 2
add ecx, 2
test dl, dl
jne 0x408510
xor eax, eax
jmp 0x408535
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408548
mov edx, dword [esp + 0x30]
mov dword [edx], 0x6e
jmp 0x408885
mov ecx, str.swindow
mov eax, ebx
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x408570
test dl, dl
je 0x40856c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x408570
add eax, 2
add ecx, 2
test dl, dl
jne 0x408550
xor eax, eax
jmp 0x408575
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408588
mov eax, dword [esp + 0x30]
mov dword [eax], 0x6f
jmp 0x408885
mov ecx, str.clip
mov eax, ebx
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4085b0
test dl, dl
je 0x4085ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4085b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x408590
xor eax, eax
jmp 0x4085b5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4085c8
mov ecx, dword [esp + 0x30]
mov dword [ecx], 0x70
jmp 0x408885
mov ecx, str.selection
mov eax, ebx
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4085f0
test dl, dl
je 0x4085ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4085f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4085d0
xor eax, eax
jmp 0x4085f5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408608
mov edx, dword [esp + 0x30]
mov dword [edx], 0x71
jmp 0x408885
mov ecx, str.static
mov eax, ebx
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x408630
test dl, dl
je 0x40862c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x408630
add eax, 2
add ecx, 2
test dl, dl
jne 0x408610
xor eax, eax
jmp 0x408635
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408648
mov eax, dword [esp + 0x30]
mov dword [eax], 0x72
jmp 0x408885
mov ecx, str.button
mov eax, ebx
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x408670
test dl, dl
je 0x40866c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x408670
add eax, 2
add ecx, 2
test dl, dl
jne 0x408650
xor eax, eax
jmp 0x408675
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408688
mov ecx, dword [esp + 0x30]
mov dword [ecx], 0x73
jmp 0x408885
mov ecx, str.vbutton
mov eax, ebx
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4086b0
test dl, dl
je 0x4086ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4086b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x408690
xor eax, eax
jmp 0x4086b5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4086c8
mov edx, dword [esp + 0x30]
mov dword [edx], 0x75
jmp 0x408885
mov ecx, str.vbuttcon
mov eax, ebx
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4086f0
test dl, dl
je 0x4086ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4086f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4086d0
xor eax, eax
jmp 0x4086f5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408708
mov eax, dword [esp + 0x30]
mov dword [eax], 0x76
jmp 0x408885
mov ecx, str.buttcon
mov eax, ebx
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x408730
test dl, dl
je 0x40872c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x408730
add eax, 2
add ecx, 2
test dl, dl
jne 0x408710
xor eax, eax
jmp 0x408735
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408748
mov ecx, dword [esp + 0x30]
mov dword [ecx], 0x77
jmp 0x408885
mov ecx, str.buttcontainer
mov eax, ebx
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x408770
test dl, dl
je 0x40876c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x408770
add eax, 2
add ecx, 2
test dl, dl
jne 0x408750
xor eax, eax
jmp 0x408775
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408788
mov edx, dword [esp + 0x30]
mov dword [edx], 0x78
jmp 0x408885
mov ecx, 0x48cb84
mov eax, ebx
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4087b0
test dl, dl
je 0x4087ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4087b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x408790
xor eax, eax
jmp 0x4087b5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4087c8
mov eax, dword [esp + 0x30]
mov dword [eax], 0x79
jmp 0x408885
mov ecx, 0x48cb88
mov eax, ebx
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4087f0
test dl, dl
je 0x4087ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4087f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4087d0
xor eax, eax
jmp 0x4087f5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408808
mov ecx, dword [esp + 0x30]
mov dword [ecx], 0x7a
jmp 0x408885
mov ecx, str.circle
mov eax, ebx
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x408830
test dl, dl
je 0x40882c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x408830
add eax, 2
add ecx, 2
test dl, dl
jne 0x408810
xor eax, eax
jmp 0x408835
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408845
mov edx, dword [esp + 0x30]
mov dword [edx], 0x67
jmp 0x408885
mov ecx, str.colorwheel
mov eax, ebx
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x408870
test dl, dl
je 0x40886c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x408870
add eax, 2
add ecx, 2
test dl, dl
jne 0x408850
xor eax, eax
jmp 0x408875
sbb eax, eax
sbb eax, 0xffffffff
mov ecx, dword [esp + 0x30]
neg eax
sbb eax, eax
and eax, 0x13
add eax, 0x68
mov dword [ecx], eax
test ebp, ebp
je 0x4089c1
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x18]
add ebx, 8
push 0x2c
push esi
call fcn.0045da10
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x4088da
mov byte [ebp], 0
lea ecx, [ecx]
mov al, byte [ebp + 1]
inc ebp
mov dl, al
sub dl, 0x61
cmp dl, 0x19
jbe 0x4088da
mov cl, al
sub cl, 0x41
cmp cl, 0x19
jbe 0x4088da
mov dl, al
sub dl, 0x30
cmp dl, 9
jbe 0x4088da
cmp al, 0x2d
je 0x4088da
cmp al, 0x2e
jne 0x4088b0
xor edi, edi
mov dword [esp + 0x1c], edi
test esi, esi
je 0x40892e
mov eax, esi
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4088f0
sub eax, edx
mov esi, eax
push 0
lea eax, [esi + 1]
push eax
lea ecx, [esp + 0x24]
push ecx
call fcn.004012c0
mov edi, dword [esp + 0x1c]
test edi, edi
je 0x40892e
test esi, esi
je 0x408929
mov edx, dword [esp + 0x18]
push esi
push edx
lea eax, [edi + 4]
push eax
call fcn.0045e4a0
add esp, 0xc
mov byte [esi + edi + 4], 0
mov byte [esp + 0x28], 2
mov eax, dword [ebx + 4]
test al, 1
jne 0x408983
shr eax, 1
lea ecx, [eax - 1]
test eax, ecx
jne 0x40895c
add eax, eax
jne 0x408950
mov eax, 1
push eax
mov ecx, ebx
call fcn.00401fd0
test eax, eax
je 0x408983
mov eax, dword [ebx + 4]
mov ecx, dword [ebx]
lea edx, [esp + 0x1c]
shr eax, 1
push edx
lea ecx, [ecx + eax*4]
call fcn.00401190
mov eax, dword [ebx + 4]
mov edx, eax
and edx, 0xfffffffe
add edx, 2
and eax, 1
xor edx, eax
mov dword [ebx + 4], edx
mov byte [esp + 0x28], 0
test edi, edi
je 0x4089b3
mov eax, dword [edi]
and eax, 0xff
cmp eax, 0x80
jae 0x4089a6
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
and eax, 0xff
test eax, eax
jne 0x4089b3
push edi
call fcn.00402770
add esp, 4
mov esi, ebp
mov dword [esp + 0x18], esi
test ebp, ebp
jne 0x408898
mov dword [esp + 0x28], 0xffffffff
mov esi, dword [esp + 0x14]
test esi, esi
je 0x4089f8
mov eax, dword [esi]
and eax, 0xff
cmp eax, 0x80
jae 0x4089eb
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
and eax, 0xff
test eax, eax
jne 0x4089f8
push esi
call fcn.00402770
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret