Function at 0x405ef0
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x59ac01
mov eax, dword fs:[0]
push eax
sub esp, 0x470
mov eax, dword [0x5fdb00]
xor eax, esp
mov dword [esp + 0x468], eax
push ebx
push esi
push edi
mov eax, dword [0x5fdb00]
xor eax, esp
push eax
lea eax, [esp + 0x480]
mov dword fs:[0], eax
lea eax, [esp + 0x30]
mov esi, ecx
push eax
mov dword [esp + 0x24], esi
mov dword [esp + 0x34], 8
mov dword [esp + 0x38], 0xff
call dword [0x59f03c]
mov ecx, esi
call fcn.0040d053
xor ebx, ebx
push ebx
call fcn.0040d37b
test eax, eax
jne 0x405f73
push 0xffffffffffffffff
push ebx
push 0x67
call fcn.0040c09b
jmp 0x40648c
push ebx
call fcn.0040dc90
push 0xc
call fcn.00409aab
add esp, 8
mov dword [esp + 0x18], eax
mov dword [esp + 0x488], ebx
cmp eax, ebx
je 0x405f9f
mov ecx, eax
call fcn.0040e44b
mov dword [esp + 0x18], eax
jmp 0x405fa3
mov dword [esp + 0x18], ebx
push 0x5cfc18
mov ecx, esi
mov dword [esp + 0x48c], 0xffffffff
call fcn.0040e5da
push 8
call fcn.00409aab
add esp, 4
cmp eax, ebx
je 0x405fdc
mov dword [eax], vtable.CConnectServer.0
mov byte [0x607c50], bl
mov dword [0x607c4c], ebx
jmp 0x405fde
xor eax, eax
lea ecx, [esp + 0x36c]
push ecx
push 0x104
mov dword [0x607c58], eax
call dword [0x59f4d4]
push str.client.dll
lea edx, [esp + 0x370]
push edx
push str._s_s
push 0x608094
call fcn.00403f40
lea eax, [esp + 0x2c]
mov ecx, eax
mov dword [0x607c54], eax
mov eax, dword [0x607fa8]
mov dword [esp + 0x24], ecx
mov ecx, dword [0x607fac]
add esp, 0x10
mov dword [esp + 0x1c], vtable.Notification.0
cmp eax, ecx
je 0x406055
jmp 0x406040
lea edx, [esp + 0x1c]
cmp edx, dword [eax]
je 0x406051
add eax, 4
cmp eax, ecx
jne 0x406040
jmp 0x406055
cmp eax, ecx
jne 0x40605e
lea eax, [esp + 0x14]
call fcn.00402560
mov dword [esp + 0x3c], vtable.CMd5A.0
mov dword [esp + 0x488], 1
call fcn.00409b4c
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x40608b
push 0x80004005
call fcn.00402740
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x44]
push ecx
mov byte [esp + 0x48c], 2
call fcn.00408220
mov byte [esp + 0x488], 3
lea ecx, [esp + 0x44]
call fcn.0040f5b4
cmp eax, 1
jne 0x406442
mov eax, 0xf
mov dword [esp + 0x280], eax
mov dword [esp + 0x27c], ebx
mov byte [esp + 0x26c], bl
mov dword [esp + 0x29c], eax
mov dword [esp + 0x298], ebx
mov byte [esp + 0x288], bl
mov dword [esp + 0x2b8], eax
mov dword [esp + 0x2b4], ebx
mov byte [esp + 0x2a4], bl
mov dword [esp + 0x2d4], eax
mov dword [esp + 0x2d0], ebx
mov byte [esp + 0x2c0], bl
mov dword [esp + 0x2f0], eax
mov dword [esp + 0x2ec], ebx
mov byte [esp + 0x2dc], bl
mov byte [esp + 0x488], 4
mov edx, dword [esp + 0xfc]
mov ecx, dword [edx - 8]
mov eax, 1
sub eax, dword [edx - 4]
or ecx, eax
jge 0x406167
push ebx
lea ecx, [esp + 0x100]
call fcn.00403df0
mov edx, dword [esp + 0xfc]
mov eax, edx
lea esi, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x406170
sub eax, esi
push eax
push edx
lea ecx, [esp + 0x274]
call fcn.004014f0
mov edx, dword [esp + 0x1e8]
mov ecx, dword [edx - 8]
mov eax, 1
sub eax, dword [edx - 4]
or ecx, eax
jge 0x4061b1
push ebx
lea ecx, [esp + 0x1ec]
call fcn.00403df0
mov edx, dword [esp + 0x1e8]
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4061b6
sub eax, esi
push eax
push edx
lea ecx, [esp + 0x290]
call fcn.004014f0
mov edx, dword [esp + 0x268]
mov eax, edx
lea esi, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4061e0
sub eax, esi
push eax
push edx
lea ecx, [esp + 0x2ac]
call fcn.004014f0
mov edx, dword [esp + 0x260]
mov ecx, dword [edx - 8]
mov eax, 1
sub eax, dword [edx - 4]
or ecx, eax
jge 0x406221
push ebx
lea ecx, [esp + 0x264]
call fcn.00403df0
mov edx, dword [esp + 0x260]
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x406226
sub eax, esi
push eax
push edx
lea ecx, [esp + 0x2c8]
call fcn.004014f0
mov ecx, dword [0x607c58]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
lea eax, [esp + 0x26c]
push eax
call edx
mov esi, eax
call fcn.00409b4c
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
je 0x406081
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x40], edi
mov byte [esp + 0x488], 5
cmp esi, ebx
je 0x4062ca
push esi
call fcn.00406750
lea eax, [edi - 0x10]
add esp, 4
mov byte [esp + 0x488], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4062b1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea esi, [esp + 0x26c]
mov byte [esp + 0x488], 3
call fcn.004064f0
jmp 0x4060b5
mov ecx, dword [0x607c58]
mov edx, dword [ecx]
mov edx, dword [edx + 8]
lea eax, [esp + 0x330]
push eax
mov byte [0x607fa6], 1
mov byte [0x607fa5], 1
call edx
mov eax, dword [esp + 0x268]
lea ecx, [esp + 0x348]
jmp 0x406300
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x406320
cmp dl, bl
je 0x40631c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x406320
add eax, 2
add ecx, 2
cmp dl, bl
jne 0x406300
xor eax, eax
jmp 0x406325
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x340]
add eax, dword [esp + 0x330]
mov ecx, dword [esp + 0x344]
adc ecx, dword [esp + 0x334]
lea edx, [esp + 0x24]
push edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
call fcn.00509b29
mov esi, eax
add esp, 4
mov dword [0x607c64], esi
cmp esi, ebx
je 0x4064b7
mov eax, dword [0x607fcc]
cmp dword [eax - 4], 1
jle 0x40638c
mov eax, dword [eax - 0xc]
push eax
mov ecx, 0x607fcc
call fcn.00403d20
mov eax, dword [0x607fcc]
push esi
push eax
push 0x64
push 0x608158
call fcn.0050a589
mov eax, 0x608158
add esp, 0x10
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4063a5
sub eax, edx
je 0x4064b2
push ebx
push ebx
push ebx
push 0x406690
push ebx
push ebx
call dword [0x59f530]
lea eax, [edi - 0x10]
mov byte [0x607fa4], 1
mov byte [esp + 0x488], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4063ef
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea esi, [esp + 0x26c]
mov byte [esp + 0x488], 3
call fcn.004064f0
lea ecx, [esp + 0x26c]
push ecx
call fcn.00406b40
mov eax, dword [esp + 0x20]
lea edx, [esp + 0x26c]
mov byte [esp + 0x488], 6
mov ecx, edx
mov dword [eax + 0x20], edx
call fcn.0040f5b4
lea ecx, [esp + 0x26c]
push ecx
mov byte [esp + 0x48c], 3
call fcn.00406590
mov ecx, dword [esp + 0x18]
cmp ecx, ebx
je 0x406453
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push 1
call eax
lea ecx, [esp + 0x44]
mov byte [esp + 0x488], 2
call fcn.00408340
mov byte [esp + 0x488], 1
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40648c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
mov ecx, dword [esp + 0x480]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x468]
xor ecx, esp
call fcn.00507bdc
mov esp, ebp
pop ebp
ret
call fcn.00405940
lea eax, [edi - 0x10]
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x488], 4
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4064db
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea esi, [esp + 0x26c]
call fcn.004064f0
jmp 0x406453