Function at 0x40cb40
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x4bd260
mov eax, dword fs:[0]
push eax
sub esp, 0x18
push ebx
push ebp
push edi
mov eax, dword [0x4ec6a0]
xor eax, esp
push eax
lea eax, [esp + 0x28]
mov dword fs:[0], eax
mov ebp, dword [esi + 0x98]
mov edi, dword [esi + 0x9c]
push 1
push 0x1e
push 0x28
add ebp, 0x69
push ebp
add edi, 0x35
push edi
lea ecx, [esi + 0x9a0]
call fcn.00480a78
push 1
push 0x1e
push 0x28
push ebp
lea ebx, [edi + 0x2d]
push ebx
lea ecx, [esi + 0x9f4]
call fcn.00480a78
push 1
push 0x1e
push 0x28
lea eax, [edi + 0x5a]
push ebp
push eax
lea ecx, [esi + 0xa48]
mov dword [esp + 0x2c], eax
call fcn.00480a78
push 1
push 0x1e
lea eax, [ebp + 0x23]
push 0x28
push eax
push edi
lea ecx, [esi + 0xa9c]
mov dword [esp + 0x28], eax
call fcn.00480a78
mov eax, dword [esp + 0x14]
push 1
push 0x1e
push 0x28
push eax
push ebx
lea ecx, [esi + 0xaf0]
call fcn.00480a78
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
push 1
push 0x1e
push 0x28
push ecx
push edx
lea ecx, [esi + 0xb44]
call fcn.00480a78
push 1
push 0x1e
lea eax, [ebp + 0x46]
push 0x28
push eax
push edi
lea ecx, [esi + 0xbec]
mov dword [esp + 0x28], eax
call fcn.00480a78
mov eax, dword [esp + 0x14]
push 1
push 0x1e
push 0x28
push eax
push ebx
lea ecx, [esi + 0xc40]
call fcn.00480a78
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
push 1
push 0x1e
push 0x28
push ecx
push edx
lea ecx, [esi + 0xb98]
call fcn.00480a78
add ebp, 0x69
push 1
push 0x64
push 0x82
push ebp
lea eax, [edi - 0xc]
push eax
lea ecx, [esi + 0x4c8]
call fcn.00480a78
push 1
push 0x1c
push 0x1c
add ebp, 0x73
push ebp
sub edi, 0xf
push edi
lea ecx, [esi + 0x164]
call fcn.00480a78
push 1
push 0x1c
push 0x1c
lea eax, [edi + 0x21]
push ebp
push eax
lea ecx, [esi + 0x308]
mov dword [esp + 0x2c], eax
call fcn.00480a78
push 1
push 0x1c
push 0x1c
lea eax, [edi + 0x42]
push ebp
push eax
lea ecx, [esi + 0x20c]
mov dword [esp + 0x28], eax
call fcn.00480a78
push 1
push 0x1c
push 0x1c
lea eax, [edi + 0x63]
push ebp
push eax
lea ecx, [esi + 0x260]
mov dword [esp + 0x30], eax
call fcn.00480a78
push 1
push 0x1c
push 0x1c
lea eax, [edi + 0x84]
push ebp
push eax
lea ecx, [esi + 0x1b8]
mov dword [esp + 0x34], eax
call fcn.00480a78
push 1
push 0x1c
push 0x1c
lea ebx, [ebp + 0x21]
push ebx
push edi
lea ecx, [esi + 0x3b0]
call fcn.00480a78
mov ecx, dword [esp + 0x18]
push 1
push 0x1c
push 0x1c
push ebx
push ecx
lea ecx, [esi + 0x404]
call fcn.00480a78
mov edx, dword [esp + 0x14]
push 1
push 0x1c
push 0x1c
push ebx
push edx
lea ecx, [esi + 0xd4c]
call fcn.00480a78
push 1
push 0x1c
push 0x1c
push ebx
mov eax, dword [esp + 0x2c]
push eax
lea ecx, [esi + 0x35c]
call fcn.00480a78
mov ecx, dword [esp + 0x20]
push 1
push 0x1c
push 0x1c
push ebx
push ecx
lea ecx, [esi + 0x2b4]
call fcn.00480a78
push 1
push 0x14
push 0x55
add edi, 0x21
add ebp, 0x51
push ebp
lea edx, [edi + 0xb]
push edx
push 0x4d5
mov ecx, esi
call fcn.004808f5
mov ecx, eax
call fcn.00480a78
push 1
push 0x12
push 0x5a
lea ebx, [ebp + 0x23]
push ebx
lea eax, [edi - 0x19]
push eax
push 0x454
mov ecx, esi
call fcn.004808f5
mov ecx, eax
call fcn.00480a78
push 1
push 0x12
push 0x5a
push ebx
lea ecx, [edi + 0x4b]
push ecx
push 0x453
mov ecx, esi
call fcn.004808f5
mov ecx, eax
call fcn.00480a78
push 1
push 0x14
push 0x23
add ebp, 0x46
push ebp
lea edx, [edi - 0x3c]
push edx
push 0x628
mov ecx, esi
call fcn.004808f5
mov ecx, eax
call fcn.00480a78
push 1
push 0x14
push 0x23
push ebp
lea eax, [edi + 0xa]
push eax
push 0x427
mov ecx, esi
call fcn.004808f5
mov ecx, eax
call fcn.00480a78
push 1
push 0x14
push 0x23
push ebp
lea ecx, [edi + 0x50]
push ecx
push 0x44f
mov ecx, esi
call fcn.004808f5
mov ecx, eax
call fcn.00480a78
push 1
push 0x14
push 0x1e
push ebp
lea edx, [edi + 0x91]
push edx
push 0x5de
mov ecx, esi
call fcn.004808f5
mov ecx, eax
call fcn.00480a78
push 0x628
mov ecx, esi
call fcn.004808f5
push 0x5f6
mov ecx, esi
mov ebx, eax
call fcn.004808f5
test ebx, ebx
je 0x40ce67
mov ebx, dword [ebx + 0x20]
mov eax, dword [eax + 0x20]
push 0
push ebx
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
push 0x469
push eax
call ebx
push eax
call fcn.0047dae0
push 0x5f6
mov ecx, esi
call fcn.004808f5
mov ecx, dword [eax + 0x20]
push 0x17
push 0
push 0x465
push ecx
call ebx
push 0x5f6
mov ecx, esi
call fcn.004808f5
mov edx, dword [eax + 0x20]
push 0
push 0
push 0x467
push edx
call ebx
push 0x427
mov ecx, esi
call fcn.004808f5
push 0x62c
mov ecx, esi
mov dword [esp + 0x24], eax
call fcn.004808f5
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x40cede
mov ecx, dword [ecx + 0x20]
mov eax, dword [eax + 0x20]
push 0
push ecx
push 0x469
push eax
call ebx
push eax
call fcn.0047dae0
push 0x62c
mov ecx, esi
call fcn.004808f5
mov ecx, dword [eax + 0x20]
push 0x3b
push 0
push 0x465
push ecx
call ebx
push 0x62c
mov ecx, esi
call fcn.004808f5
mov edx, dword [eax + 0x20]
push 0
push 0
push 0x467
push edx
call ebx
push 0x44f
mov ecx, esi
call fcn.004808f5
push 0x62d
mov ecx, esi
mov dword [esp + 0x24], eax
call fcn.004808f5
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x40cf4f
mov ecx, dword [ecx + 0x20]
mov eax, dword [eax + 0x20]
push 0
push ecx
push 0x469
push eax
call ebx
push eax
call fcn.0047dae0
push 0x62d
mov ecx, esi
call fcn.004808f5
mov ecx, dword [eax + 0x20]
push 0x3b
push 0
push 0x465
push ecx
call ebx
push 0x62d
mov ecx, esi
call fcn.004808f5
mov edx, dword [eax + 0x20]
push 0
push 0
push 0x467
push edx
call ebx
push 1
push 0x14
push 0x14
lea ebx, [ebp + 3]
push ebx
lea eax, [edi - 0x14]
push eax
push 0x629
mov ecx, esi
call fcn.004808f5
mov ecx, eax
call fcn.00480a78
push 1
push 0x14
push 0x14
push ebx
lea ecx, [edi + 0x32]
push ecx
push 0x62a
mov ecx, esi
call fcn.004808f5
mov ecx, eax
call fcn.00480a78
push 1
push 0x14
push 0x14
push ebx
add edi, 0x78
push edi
push 0x62b
mov ecx, esi
call fcn.004808f5
mov ecx, eax
call fcn.00480a78
call fcn.00474091
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40d010
push 0x80004005
call fcn.00404150
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
push 0x5f2
lea ecx, [esp + 0x24]
push ecx
mov dword [esp + 0x38], 0
call fcn.0040ed80
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x34], 1
call fcn.00404a60
mov byte [esp + 0x30], 0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40d06b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
push ecx
push 0x629
mov ecx, esi
call fcn.0048093d
push 0x5f3
lea edx, [esp + 0x24]
push edx
call fcn.0040ed80
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x34], 2
call fcn.00404a60
mov byte [esp + 0x30], 0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d0bf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
push ecx
push 0x62a
mov ecx, esi
call fcn.0048093d
push 0x5496
lea edx, [esp + 0x28]
push edx
call fcn.0040ed80
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x34], 3
call fcn.00404a60
mov byte [esp + 0x30], 0
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d113
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x14]
push edi
push 0x62b
mov ecx, esi
call fcn.0048093d
mov ecx, dword [esi + 0x9c]
mov eax, dword [esi + 0x8c]
sub eax, ecx
sub eax, 0x4a
cdq
push 1
sub eax, edx
mov ebx, eax
push 0x36
sar ebx, 1
add ebx, ecx
push 0x36
lea ecx, [ebp + 0x28]
push ecx
push ebx
push 0x49a
mov ecx, esi
call fcn.004808f5
mov ecx, eax
call fcn.00480a78
push 1
push 0x24
push 0x2a
add ebp, 0x3a
push ebp
add ebx, 0x3c
push ebx
push 0x62f
mov ecx, esi
call fcn.004808f5
mov ecx, eax
call fcn.00480a78
mov ebx, esi
call fcn.00409530
lea eax, [edi - 0x10]
mov dword [esp + 0x30], 0xffffffff
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40d1a8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x28]
mov dword fs:[0], ecx
pop ecx
pop edi
pop ebp
pop ebx
add esp, 0x24
ret