Function at 0x407041
Capabilities:
Get number of processors
Resolve function by parsing pe exports

Disassembly:
add esp, 4
call 0x406ff3
add byte [ecx + 0x45], cl
push eax
inc eax
xor eax, 0x504e3e3f
add esp, 4
and ecx, 0x57f1
or ecx, 0xf2b1
pop ecx
cmp dword [ebp - 0x1614], 0
jne 0x40701b
mov dword [ebp - 0x2fc], 0
jmp 0x4072c2
mov ecx, dword [ebp - 0x1614]
mov edx, dword [ecx + 0xc]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0xcc4], eax
push edi
xor edi, 0x98fa
call 0x407041
add byte [esi + 0x42], al
aaa
xor bh, byte ds:[edi]
add esp, 4
pop edi
push ebx
push ecx
add esp, 4
or ebx, 0x49f7
pop ebx
push edi
add edi, 0xf83b
add edi, 0x11841
pop edi
cmp dword [ebp - 0xcc4], 0
jne 0x407077
mov dword [ebp - 0x2fc], 0
jmp 0x4072c2
mov ecx, dword [ebp - 0xcc4]
mov dword [ebp - 0x514], ecx
push edi
push eax
add esp, 4
or edi, 0xcb94
and edi, 0x15301
pop edi
push esi
xor esi, 0x15eb2
pop esi
push esi
push esi
add esp, 4
sub esi, 0x13e66
add esi, 0x145cf
add esi, 0xb67b
pop esi
lea edx, [ebp - 0x1738]
mov dword [ebp - 0xcc0], edx
mov eax, dword [ebp - 0x514]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0xcbc], ecx
xor edx, edx
mov word [ebp - 0x21c], dx
xor eax, eax
mov word [ebp - 0x38], ax
push eax
push edi
add esp, 4
call 0x4070f4
add byte [eax + 0x4d], cl
inc ebx
dec eax
dec edx
inc edi
aas
cmp cl, byte [esi + 0x48]
add esp, 4
and eax, 0x37a2
jmp 0x407105
pop eax
push edx
jmp 0x407110
pop edx
mov ecx, dword [ebp - 0xcbc]
mov dx, word [ecx]
mov word [ebp - 0x103e], dx
mov eax, dword [ebp - 0xcbc]
add eax, 2
mov dword [ebp - 0xcbc], eax
mov cx, word [ebp - 0x103e]
mov word [ebp - 0x21c], cx
mov edx, dword [ebp - 0xcc0]
mov ax, word [edx]
mov word [ebp - 0x1040], ax
mov ecx, dword [ebp - 0xcc0]
add ecx, 2
mov dword [ebp - 0xcc0], ecx
mov dx, word [ebp - 0x1040]
mov word [ebp - 0x38], dx
push ebx
push esi
add esp, 4
xor ebx, 0x14462
call 0x40717f
add byte [edi], bh
inc ebp
dec esp
dec esi
cmp byte [ebx + eax*4 - 0x3c], al
add al, 0x5b
push edx
push esi
add esp, 4
jmp 0x40718d
jmp 0x407193
and edx, 0xe7fd
pop edx
movzx eax, word [ebp - 0x38]
test eax, eax
jne 0x4071b7
movzx ecx, word [ebp - 0x21c]
movzx edx, word [ebp - 0x38]
sub ecx, edx
mov dword [ebp - 0x161c], ecx
jmp 0x407211
movzx eax, word [ebp - 0x21c]
movzx ecx, word [ebp - 0x38]
cmp eax, ecx
je 0x4070df
movzx edx, word [ebp - 0x21c]
xor edx, 0x20
movzx eax, word [ebp - 0x38]
cmp edx, eax
je 0x4070df
movzx ecx, word [ebp - 0x21c]
movzx edx, word [ebp - 0x38]
cmp ecx, edx
jge 0x4071fb
mov dword [ebp - 0x1618], 0xffffffff
jmp 0x407205
mov dword [ebp - 0x1618], 1
mov eax, dword [ebp - 0x1618]
mov dword [ebp - 0x161c], eax
cmp dword [ebp - 0x161c], 0
jne 0x40725a
push eax
or eax, 0x804b
pop eax
push ecx
jmp 0x40722a
and ecx, 0x8aad
add ecx, 0xb0c4
jmp 0x40723d
pop ecx
push ebx
xor ebx, 0xbc3
or ebx, 0x439e
pop ebx
mov ecx, dword [ebp - 0x514]
mov dword [ebp - 0x2fc], ecx
jmp 0x4072c2
push ebx
push eax
add esp, 4
add ebx, 0x10cd5
pop ebx
push edi
and edi, 0x50f9
add edi, 0x3b6b
xor edi, 0x4b88
and edi, 0xf725
pop edi
push eax
push edi
add esp, 4
sub eax, 0xd6d
pop eax
mov edx, dword [ebp - 0x514]
mov eax, dword [edx]
mov dword [ebp - 0x514], eax
mov ecx, dword [ebp - 0x514]
cmp ecx, dword [ebp - 0xcc4]
je 0x4072b8
mov edx, dword [ebp - 0x514]
cmp dword [edx + 0x30], 0
jne 0x407083
mov dword [ebp - 0x2fc], 0
push ebx
push ebx
add esp, 4
and ebx, 0x5e65
sub ebx, 0x1bd1
or ebx, 0x13094
and ebx, 0xa83a
pop ebx
push edx
and edx, 0x7a30
xor edx, 0x184b3
and edx, 0x974a
pop edx
cmp dword [ebp - 0x2fc], 0
jne 0x407bf9
mov eax, 0x6b
mov word [ebp - 0x1790], ax
mov ecx, 0x65
mov word [ebp - 0x178e], cx
mov edx, 0x72
mov word [ebp - 0x178c], dx
mov eax, 0x6e
mov word [ebp - 0x178a], ax
mov ecx, 0x65
mov word [ebp - 0x1788], cx
mov edx, 0x6c
mov word [ebp - 0x1786], dx
mov eax, 0x33
mov word [ebp - 0x1784], ax
mov ecx, 0x32
mov word [ebp - 0x1782], cx
mov edx, 0x2e
mov word [ebp - 0x1780], dx
mov eax, 0x64
mov word [ebp - 0x177e], ax
mov ecx, 0x6c
mov word [ebp - 0x177c], cx
mov edx, 0x6c
mov word [ebp - 0x177a], dx
xor eax, eax
mov word [ebp - 0x1778], ax
push edx
sub edx, 0x585e
pop edx
push ecx
call 0x4073b3
add byte [esi + ecx*2 + 0x4b], cl
inc eax
dec ecx
dec ebx
dec eax
dec esi
dec ecx
add esp, 4
call 0x4073c2
add byte [eax + 0x3d], cl
inc ebp
cmp eax, 0xc4833c38
add al, 0x81
loope 0x4073e3
bound eax, qword [eax]
add byte [ecx - 0x3a], bl
test dword [edi + esi*8 - 1], ebx
dec dword [esi + eax*8 - 0x7b]
pop ebp
idiv edi
jmp [edi - 0x3a]
pop edi
idiv edi
jmp dword [esi + eax*8 - 0x7b]
push eax
jmp 0x407c02
and eax, 0xc07
jmp 0x407c10
pop eax
push ebx
add ebx, 0x9470
pop ebx
push ecx
push ecx
add esp, 4
and ecx, 0x6f0e
add ecx, 0x5be3
pop ecx
mov ecx, dword fs:[0x18]
mov dword [ebp - 0x19bc], ecx
mov edx, dword [ebp - 0x19bc]
mov eax, dword [edx + 0x30]
mov dword [ebp - 0x19c0], eax
mov ecx, dword [ebp - 0x19c0]
mov dword [ebp - 0x167c], ecx
push esi
push esi
add esp, 4
or esi, 0xb1f
or esi, 0x308a
pop esi
push esi
sub esi, 0x137a
pop esi
push ecx
push edx
add esp, 4
add ecx, 0x2fec
and ecx, 0xa498
sub ecx, 0x176f4
pop ecx
cmp dword [ebp - 0x167c], 0
jne 0x407c9d
mov dword [ebp - 0x2fc], 0
jmp 0x407f44
mov edx, dword [ebp - 0x167c]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0xce0], ecx
push ebx
call 0x407cbf
add byte [esi + 0x37], al
xor al, byte [eax + 0x43]
dec ebp
cmp cl, byte [edi + 0x40]
add esp, 4
pop ebx
push edi
sub edi, 0x1ef7
xor edi, 0x1075
jmp 0x407cd8
pop edi
push ebx
sub ebx, 0xcd9c
pop ebx
cmp dword [ebp - 0xce0], 0
jne 0x407cf9
mov dword [ebp - 0x2fc], 0
jmp 0x407f44
mov edx, dword [ebp - 0xce0]
mov dword [ebp - 0x51c], edx
push ebx
push ecx
add esp, 4
xor ebx, 0x36a7
pop ebx
push edx
call 0x407d22
add byte [ebx + 0x3a], cl
inc ebx
xor eax, 0x484b4136
cmp eax, 0x4c48345
pop edx
push ecx
call 0x407d33
add byte [edi], dh
cmp edx, dword [eax + 0x43]
aas
cmp byte [ebx - 0x72a6fb3c], al
test eax, ecx
call 0x85ca7d3e
and al, 0xf3
invalid
push edi
push edi
add esp, 4
or edi, 0xf41
jmp 0x407f54
pop edi
push esi
push edx
add esp, 4
add esi, 0x14331
jmp 0x407f66
call 0x407f72
add byte [eax + 0x4f], cl
inc ecx
cmp cl, byte [esi + 0x44]
add esp, 4
pop esi
mov ecx, dword [ebp - 0x2fc]
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0x338], edx
push esi
push esi
add esp, 4
or esi, 0x1ba7
pop esi
push ebx
or ebx, 0xb20
call 0x407fa5
add byte [edx], dh
cmp byte [ebp + 0x42], cl
aaa
inc ecx
add esp, 4
or ebx, 0x5b6b
jmp 0x407fb6
pop ebx
mov dword [ebp - 0x794], 0
mov eax, dword [ebp - 0x338]
mov dword [ebp - 0x1688], eax
cmp dword [ebp - 0x1688], 0
jne 0x407fe7
mov ecx, dword [ebp - 0x794]
mov dword [ebp - 0x520], ecx
jmp 0x4082d8
mov edx, dword [ebp - 0x1688]
mov eax, dword [ebp - 0x338]
add eax, dword [edx + 0x3c]
mov dword [ebp - 0x168c], eax
jne 0x40800f
mov ecx, dword [ebp - 0x794]
mov dword [ebp - 0x520], ecx
jmp 0x4082d8
mov edx, 8
imul eax, edx, 0
mov ecx, dword [ebp - 0x168c]
mov edx, dword [ecx + eax + 0x78]
mov dword [ebp - 0x1690], edx
cmp dword [ebp - 0x1690], 0
jne 0x408041
mov eax, dword [ebp - 0x794]
mov dword [ebp - 0x520], eax
jmp 0x4082d8
mov ecx, dword [ebp - 0x338]
add ecx, dword [ebp - 0x1690]
mov dword [ebp - 0x788], ecx
jne 0x408066
mov edx, dword [ebp - 0x794]
mov dword [ebp - 0x520], edx
jmp 0x4082d8
mov eax, dword [ebp - 0x788]
mov ecx, dword [ebp - 0x338]
add ecx, dword [eax + 0x20]
mov dword [ebp - 0x19c4], ecx
mov edx, dword [ebp - 0x788]
mov eax, dword [ebp - 0x338]
add eax, dword [edx + 0x24]
mov dword [ebp - 0x19c8], eax
mov ecx, dword [ebp - 0x788]
mov edx, dword [ebp - 0x338]
add edx, dword [ecx + 0x1c]
mov dword [ebp - 0x19cc], edx
mov dword [ebp - 0x78c], 0
jmp 0x4080c0
mov eax, dword [ebp - 0x78c]
add eax, 1
mov dword [ebp - 0x78c], eax
mov ecx, dword [ebp - 0x788]
mov edx, dword [ebp - 0x78c]
cmp edx, dword [ecx + 0x18]
jae 0x4082cc
mov eax, dword [ebp - 0x78c]
mov ecx, dword [ebp - 0x19c4]
mov edx, dword [ebp - 0x338]
add edx, dword [ecx + eax*4]
mov dword [ebp - 0x790], edx
mov eax, dword [ebp - 0x78c]
mov ecx, dword [ebp - 0x19c8]
movzx edx, word [ecx + eax*2]
mov eax, dword [ebp - 0x19cc]
mov ecx, dword [ebp - 0x338]
add ecx, dword [eax + edx*4]
mov dword [ebp - 0x19d0], ecx
mov dword [ebp - 0x1a4], 0
jmp 0x408130
mov edx, dword [ebp - 0x1a4]
add edx, 1
mov dword [ebp - 0x1a4], edx
mov eax, dword [ebp - 0x790]
add eax, dword [ebp - 0x1a4]
movsx ecx, byte [eax]
test ecx, ecx
je 0x4081e2
mov edx, dword [ebp - 0x1a4]
movsx eax, byte [ebp + edx - 0x9d4]
test eax, eax
je 0x4081e2
push ecx
jmp 0x408167
jmp 0x40816d
or ecx, 0x4e72
pop ecx
push eax
push esi
add esp, 4
xor eax, 0xcad0
jmp 0x408188
xor eax, 0x7f0d
pop eax
mov ecx, dword [ebp - 0x790]
add ecx, dword [ebp - 0x1a4]
movsx edx, byte [ecx]
mov eax, dword [ebp - 0x1a4]
movsx ecx, byte [ebp + eax - 0x9d4]
cmp edx, ecx
je 0x4081d4
mov edx, dword [ebp - 0x790]
add edx, dword [ebp - 0x1a4]
movsx eax, byte [edx]
xor eax, 0x20
mov ecx, dword [ebp - 0x1a4]
movsx edx, byte [ebp + ecx - 0x9d4]
cmp eax, edx
jne 0x4081db
jmp 0x408121
jmp 0x4081e2
push edi
push esi
add esp, 4
add edi, 0xd728
xor edi, 0x7ec0
xor edi, 0xb85
pop edi
push ebx
push esi
add esp, 4
sub ebx, 0x4b
xor ebx, 0x887f
pop ebx
push esi
xor esi, 0x12117
pop esi
mov eax, dword [ebp - 0x790]
add eax, dword [ebp - 0x1a4]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0x1a4]
movsx eax, byte [ebp + edx - 0x9d4]
cmp ecx, eax
jne 0x408241
mov dword [ebp - 0xce4], 0
jmp 0x4082b0
push esi
push edi
add esp, 4
call 0x408252
add byte [ebp + 0x4c], al
xor eax, 0xc4833342
add al, 0xe8
or dword [eax], eax
add byte [eax], al
add byte [eax + 0x48], dl
xor al, byte [esi + 0x49]
dec edi
cmp edi, dword [ecx]
add esp, 4
xor esi, 0x7437
add esi, 0x10b3d
pop esi
mov ecx, dword [ebp - 0x790]
add ecx, dword [ebp - 0x1a4]
movsx edx, byte [ecx]
or edx, 0x20
mov eax, dword [ebp - 0x1a4]
movsx ecx, byte [ebp + eax - 0x9d4]
or ecx, 0x20
cmp edx, ecx
jge 0x4082a6
mov dword [ebp - 0xce4], 0xffffffff
jmp 0x4082b0
mov dword [ebp - 0xce4], 1
cmp dword [ebp - 0xce4], 0
jne 0x4082c7
mov edx, dword [ebp - 0x19d0]
mov dword [ebp - 0x520], edx
jmp 0x4082d8
jmp 0x4080b1
mov eax, dword [ebp - 0x794]
mov dword [ebp - 0x520], eax
mov ecx, dword [ebp - 0x520]
mov dword [ebp - 0xab4], ecx
push esi
add esi, 0x5ea1
add esi, 0x16be6
add esi, 0xb428
jmp 0x4082fc
pop esi
push ebx
call 0x40830a
add byte [edx + 0x34], al
aas
xor cl, byte [ebp + 0x50]
add esp, 4
pop ebx
push ecx
xor ecx, 0x12787
pop ecx
mov edx, dword [ebp - 0xab4]
mov dword [ebp - 0x19d4], edx
lea eax, [ebp - 0xce8]
push eax
push 0x40
mov ecx, dword [ebp - 0x1694]
push ecx
mov edx, dword [ebp - 0x3e8]
push edx
call dword [ebp - 0x19d4]
test eax, eax
jne 0x408389
push ebx
push eax
add esp, 4
add ebx, 0x17a0f
sub ebx, 0x17ea7
and ebx, 0x92d7
pop ebx
push esi
or esi, 0x34a8
and esi, 0x10a7f
or esi, 0xb038
add esi, 0x8bf9
pop esi
mov eax, dword [ebp - 0x79c]
mov dword [ebp - 0x19d8], eax
push 0
call dword [ebp - 0x19d8]
mov ecx, dword [ebp - 0x19dc]
mov dword [ebp - 0x798], ecx
jmp 0x4083a6
mov edx, dword [ebp - 0x798]
add edx, 1
mov dword [ebp - 0x798], edx
mov eax, dword [ebp - 0x798]
cmp eax, dword [ebp - 0xab8]
jae 0x408402
push esi
push edx
add esp, 4
xor esi, 0x679f
add esi, 0x1608
and esi, 0x1697c
pop esi
push esi
or esi, 0x17e21
or esi, 0xa475
and esi, 0xcfc0
or esi, 0x91aa
pop esi
movzx ecx, byte [ebp - 0x3ae]
mov edx, dword [ebp - 0x798]
movsx eax, byte [edx]
sub eax, ecx
mov ecx, dword [ebp - 0x798]
mov byte [ecx], al
jmp 0x408397
mov edx, dword [ebp - 0xab4]
mov dword [ebp - 0x19e0], edx
lea eax, [ebp - 0xce8]
push eax
mov ecx, dword [ebp - 0xce8]
push ecx
mov edx, dword [ebp - 0x1694]
push edx
mov eax, dword [ebp - 0x3e8]
push eax
call dword [ebp - 0x19e0]
test eax, eax
jne 0x40847a
push ecx
call 0x408445
add byte [ecx + 0x45], al
inc esi
aas
cmp byte [ebp + ecx*2 + 0x3e], cl
push eax
cmp al, 0x83
les eax, [ecx + eax*4]
int1
out dx, al
add dword [ecx], eax
add al, ch
or dword [eax], eax
add byte [eax], al
add byte [eax + edi], bh
cmp al, 0x3f
xor eax, 0x83423735
les eax, [ecx + eax*4]
leave
invalid
push ebx
push eax
add esp, 4
or ebx, 0x16cbf
pop ebx
push esi
and esi, 0x111e1
pop esi
push edi
push ebx
add esp, 4
or edi, 0xf3cd
sub edi, 0x9f43
and edi, 0xf1d2
add edi, 0x136dd
pop edi
push edx
mov ecx, 0x10101010
pop edx
push ecx
mov ecx, 0xffff04ff
pop ecx
push edi
push esi
xchg eax, ecx
or byte [ebp + 0x4ab64c7], al
add al, 0xef
or bh, byte [ecx]
inc ebx
push ecx
inc ecx
inc ebp
aas
pop edi
push esp
pop edx
xchg eax, ecx
or byte [ebp + 0x48217c4], al
add al, 0x5c
push edi
pop ebx
xchg eax, ecx
or byte [ebp + 0x535dff7], al
add al, 0x85
out 0x81, eax
cmc
add al, 4
pop edi
retf 0xb889