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

Disassembly:
xor al, 0x34
aaa
cmp dword [eax + 0x4c], ecx
inc eax
add esp, 4
pop edi
cmp dword [ebp - 0x14dc], 0
jne 0x409074
mov dword [ebp - 0x6ec], 0
jmp 0x409330
mov ecx, dword [ebp - 0x14dc]
mov edx, dword [ecx + 0xc]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0xc2c], eax
push esi
push ecx
add esp, 4
add esi, 0xc457
pop esi
push edx
add edx, 0x1579
sub edx, 0x15f0e
or edx, 0x14398
pop edx
push edx
push edx
add esp, 4
xor edx, 0x102f1
sub edx, 0xd8a6
pop edx
cmp dword [ebp - 0xc2c], 0
jne 0x4090d0
mov dword [ebp - 0x6ec], 0
jmp 0x409330
mov ecx, dword [ebp - 0xc2c]
mov dword [ebp - 0x4d8], ecx
push eax
push ecx
add esp, 4
xor eax, 0xa78f
pop eax
push eax
call 0x4090f6
add byte [ebx + 0x3d], cl
dec edx
push eax
inc ecx
cmp al, 0x49
add esp, 4
pop eax
push edi
and edi, 0xa5a1
or edi, 0xb037
or edi, 0xc81c
pop edi
lea edx, [ebp - 0x16cc]
mov dword [ebp - 0xc28], edx
mov eax, dword [ebp - 0x4d8]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0xc24], ecx
xor edx, edx
mov word [ebp - 0x1fc], dx
xor eax, eax
mov word [ebp - 0x104], ax
push ebx
or ebx, 0x129ec
xor ebx, 0x13854
xor ebx, 0x18f7
add ebx, 0x14a1
pop ebx
push esi
push edi
add esp, 4
sub esi, 0x92a2
sub esi, 0xf40c
add esi, 0x15ecc
pop esi
mov ecx, dword [ebp - 0xc24]
mov dx, word [ecx]
mov word [ebp - 0xf82], dx
mov eax, dword [ebp - 0xc24]
add eax, 2
mov dword [ebp - 0xc24], eax
mov cx, word [ebp - 0xf82]
mov word [ebp - 0x1fc], cx
mov edx, dword [ebp - 0xc28]
mov ax, word [edx]
mov word [ebp - 0xf84], ax
mov ecx, dword [ebp - 0xc28]
add ecx, 2
mov dword [ebp - 0xc28], ecx
mov dx, word [ebp - 0xf84]
mov word [ebp - 0x104], dx
push ecx
sub ecx, 0x3b23
call 0x4091de
add byte [esi + 0x4c], cl
dec edx
dec ebx
inc edi
dec esp
cmp eax, 0x83434b43
les eax, [ecx + eax*4]
rcl dword [edx], 0x7c
add byte [eax], al
pop ecx
push edi
push ebx
add esp, 4
sub edi, 0x1e0b
jmp 0x4091f8
pop edi
movzx eax, word [ebp - 0x104]
test eax, eax
jne 0x40921c
movzx ecx, word [ebp - 0x1fc]
movzx edx, word [ebp - 0x104]
sub ecx, edx
mov dword [ebp - 0x14e4], ecx
jmp 0x40927f
movzx eax, word [ebp - 0x1fc]
movzx ecx, word [ebp - 0x104]
cmp eax, ecx
je 0x40913b
movzx edx, word [ebp - 0x1fc]
xor edx, 0x20
movzx eax, word [ebp - 0x104]
cmp edx, eax
je 0x40913b
movzx ecx, word [ebp - 0x1fc]
movzx edx, word [ebp - 0x104]
cmp ecx, edx
jge 0x409269
mov dword [ebp - 0x14e0], 0xffffffff
jmp 0x409273
mov dword [ebp - 0x14e0], 1
mov eax, dword [ebp - 0x14e0]
mov dword [ebp - 0x14e4], eax
cmp dword [ebp - 0x14e4], 0
jne 0x4092c8
push ecx
push edi
add esp, 4
xor ecx, 0x73f1
sub ecx, 0x6065
pop ecx
push esi
push eax
add esp, 4
and esi, 0xba16
sub esi, 0x90bb
xor esi, 0xb205
pop esi
push ebx
and ebx, 0x594
pop ebx
mov ecx, dword [ebp - 0x4d8]
mov dword [ebp - 0x6ec], ecx
jmp 0x409330
push edi
sub edi, 0x7bf9
and edi, 0xd88f
jmp 0x4092db
sub edi, 0x1a14
pop edi
push edx
push eax
add esp, 4
add edx, 0xd3f4
xor edx, 0x3541
sub edx, 0x5cf2
pop edx
mov edx, dword [ebp - 0x4d8]
mov eax, dword [edx]
mov dword [ebp - 0x4d8], eax
mov ecx, dword [ebp - 0x4d8]
cmp ecx, dword [ebp - 0xc2c]
je 0x409326
mov edx, dword [ebp - 0x4d8]
cmp dword [edx + 0x30], 0
jne 0x4090dc
mov dword [ebp - 0x6ec], 0
push edi
sub edi, 0x13e59
add edi, 0xcb8e
pop edi
push esi
push edx
add esp, 4
or esi, 0x1943
and esi, 0xfbe8
call 0x40935e
add byte [ebx + ecx*2 + 0x4b], cl
dec ebx
xor eax, 0x4933414d
add esp, 4
pop esi
cmp dword [ebp - 0x6ec], 0
jne 0x4093ac
push ecx
push edx
add esp, 4
call 0x40937e
add byte [0x463d5040], dh
dec ebp
inc edi
add esp, 4
call 0x40938d
add byte [ebp + 0x41], al
dec edx
inc edx
inc ecx
aas
add esp, 4
pop ecx
push edi
push edx
add esp, 4
or edi, 0x2877
pop edi
mov dword [ebp - 0x738], 0
jmp 0x409ed3
push edx
or edx, 0x13191
jmp 0x4093b9
xor edx, 0x159fa
xor edx, 0x1408a
pop edx
push eax
push eax
add esp, 4
xor eax, 0xe4a0
sub eax, 0x1768e
add eax, 0xb9ee
pop eax
mov eax, dword [ebp - 0x6ec]
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x2f8], ecx
mov dword [ebp - 0x6fc], 0
mov edx, dword [ebp - 0x2f8]
mov dword [ebp - 0x14e8], edx
cmp dword [ebp - 0x14e8], 0
jne 0x40941d
mov eax, dword [ebp - 0x6fc]
mov dword [ebp - 0x3c4], eax
jmp 0x40970e
mov ecx, dword [ebp - 0x14e8]
mov edx, dword [ebp - 0x2f8]
add edx, dword [ecx + 0x3c]
mov dword [ebp - 0x14ec], edx
jne 0x409445
mov eax, dword [ebp - 0x6fc]
mov dword [ebp - 0x3c4], eax
jmp 0x40970e
mov ecx, 8
imul edx, ecx, 0
mov eax, dword [ebp - 0x14ec]
mov ecx, dword [eax + edx + 0x78]
mov dword [ebp - 0x14f0], ecx
cmp dword [ebp - 0x14f0], 0
jne 0x409477
mov edx, dword [ebp - 0x6fc]
mov dword [ebp - 0x3c4], edx
jmp 0x40970e
mov eax, dword [ebp - 0x2f8]
add eax, dword [ebp - 0x14f0]
mov dword [ebp - 0x6f0], eax
jne 0x40949c
mov ecx, dword [ebp - 0x6fc]
mov dword [ebp - 0x3c4], ecx
jmp 0x40970e
mov edx, dword [ebp - 0x6f0]
mov eax, dword [ebp - 0x2f8]
add eax, dword [edx + 0x20]
mov dword [ebp - 0x18a0], eax
mov ecx, dword [ebp - 0x6f0]
mov edx, dword [ebp - 0x2f8]
add edx, dword [ecx + 0x24]
mov dword [ebp - 0x18a4], edx
mov eax, dword [ebp - 0x6f0]
mov ecx, dword [ebp - 0x2f8]
add ecx, dword [eax + 0x1c]
mov dword [ebp - 0x18a8], ecx
mov dword [ebp - 0x6f4], 0
jmp 0x4094f6
mov edx, dword [ebp - 0x6f4]
add edx, 1
mov dword [ebp - 0x6f4], edx
mov eax, dword [ebp - 0x6f0]
mov ecx, dword [ebp - 0x6f4]
cmp ecx, dword [eax + 0x18]
jae 0x409702
mov edx, dword [ebp - 0x6f4]
mov eax, dword [ebp - 0x18a0]
mov ecx, dword [ebp - 0x2f8]
add ecx, dword [eax + edx*4]
mov dword [ebp - 0x6f8], ecx
mov edx, dword [ebp - 0x6f4]
mov eax, dword [ebp - 0x18a4]
movzx ecx, word [eax + edx*2]
mov edx, dword [ebp - 0x18a8]
mov eax, dword [ebp - 0x2f8]
add eax, dword [edx + ecx*4]
mov dword [ebp - 0x18ac], eax
mov dword [ebp - 0x180], 0
jmp 0x409566
mov ecx, dword [ebp - 0x180]
add ecx, 1
mov dword [ebp - 0x180], ecx
mov edx, dword [ebp - 0x6f8]
add edx, dword [ebp - 0x180]
movsx eax, byte [edx]
test eax, eax
je 0x409618
mov ecx, dword [ebp - 0x180]
movsx edx, byte [ebp + ecx - 0x820]
test edx, edx
je 0x409618
push eax
push ebx
add esp, 4
or eax, 0x4515
jmp 0x4095a4
xor eax, 0xdd9e
xor eax, 0x7e2f
pop eax
push edi
xor edi, 0xead8
sub edi, 0x10625
xor edi, 0x15413
pop edi
mov eax, dword [ebp - 0x6f8]
add eax, dword [ebp - 0x180]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0x180]
movsx eax, byte [ebp + edx - 0x820]
cmp ecx, eax
je 0x40960a
mov ecx, dword [ebp - 0x6f8]
add ecx, dword [ebp - 0x180]
movsx edx, byte [ecx]
xor edx, 0x20
mov eax, dword [ebp - 0x180]
movsx ecx, byte [ebp + eax - 0x820]
cmp edx, ecx
jne 0x409611
jmp 0x409557
jmp 0x409618
push edx
or edx, 0x1503
pop edx
push ecx
push eax
add esp, 4
add ecx, 0xc182
and ecx, 0xb0b2
add ecx, 0x17a75
pop ecx
push ebx
push esi
add esp, 4
or ebx, 0xde08
and ebx, 0xbf52
pop ebx
mov edx, dword [ebp - 0x6f8]
add edx, dword [ebp - 0x180]
movsx eax, byte [edx]
mov ecx, dword [ebp - 0x180]
movsx edx, byte [ebp + ecx - 0x820]
cmp eax, edx
jne 0x409677
mov dword [ebp - 0xc30], 0
jmp 0x4096e6
push esi
push edi
add esp, 4
or esi, 0xc781
sub esi, 0x16d7e
pop esi
push eax
and eax, 0x11032
pop eax
push ebx
push ecx
add esp, 4
xor ebx, 0x1222f
add ebx, 0x10738
and ebx, 0x1453a
pop ebx
mov eax, dword [ebp - 0x6f8]
add eax, dword [ebp - 0x180]
movsx ecx, byte [eax]
or ecx, 0x20
mov edx, dword [ebp - 0x180]
movsx eax, byte [ebp + edx - 0x820]
or eax, 0x20
cmp ecx, eax
jge 0x4096dc
mov dword [ebp - 0xc30], 0xffffffff
jmp 0x4096e6
mov dword [ebp - 0xc30], 1
cmp dword [ebp - 0xc30], 0
jne 0x4096fd
mov ecx, dword [ebp - 0x18ac]
mov dword [ebp - 0x3c4], ecx
jmp 0x40970e
jmp 0x4094e7
mov edx, dword [ebp - 0x6fc]
mov dword [ebp - 0x3c4], edx
cmp dword [ebp - 0x3c4], 0
je 0x4097e9
push edx
xor edx, 0xc808
pop edx
push ebx
push edi
add esp, 4
call 0x409737
add byte [esi + 0x40], cl
aaa
dec ecx
dec edi
dec ebp
cmp byte [eax + ecx*2], bh
add esp, 4
or ebx, 0xef8b
pop ebx
push edi
push eax
add esp, 4
jmp 0x40974c
pop edi
mov eax, dword [ebp - 0x3c4]
mov dword [ebp - 0x18b0], eax
push eax
push eax
add esp, 4
call 0x40976a
add byte [edi + 0x4a], al
cmp byte [esi], bh
xor eax, 0x4c48340
sub eax, 0x12e33
and eax, 0x182b8
pop eax
push ebx
push eax
add esp, 4
jmp 0x409784
add ebx, 0x11ddd
pop ebx
mov ecx, dword [ebp - 0x18b0]
mov dword [ebp - 0x18b4], ecx
lea edx, [ebp - 0x1628]
push edx
call dword [ebp - 0x18b4]
test eax, eax
jne 0x4097e9
push edx
push edx
add esp, 4
jmp 0x4097b5
call 0x4097c2
add byte [ebx], bh
dec edx
inc ebp
dec edi
xor dh, byte [edi]
add esp, 4
add edx, 0x2e84
pop edx
push ecx
or ecx, 0x3b00
add ecx, 0x17e17
pop ecx
mov dword [ebp - 0x738], 0
jmp 0x409ed3
push esi
push ecx
add esp, 4
xor esi, 0x395d
pop esi
push edx
call 0x409805
add byte [ecx + 0x50], al
xor eax, 0x3d3d4f37
aaa
add esp, 4
and edx, 0x879a
and edx, 0xd549
add edx, 0x6dd6
pop edx
mov eax, dword fs:[0x18]
mov dword [ebp - 0x18b8], eax
mov ecx, dword [ebp - 0x18b8]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0x18bc], edx
mov eax, dword [ebp - 0x18bc]
mov dword [ebp - 0x14f4], eax
push edi
sub edi, 0x68e2
sub edi, 0x8b42
call 0x40985c
add byte [ecx], bh
dec ebx
dec ebp
cmp dword [esi + 0x3a], ecx
dec esi
add esp, 4
pop edi
push ebx
or ebx, 0x16f63
pop ebx
push ebx
push eax
add esp, 4
sub ebx, 0x13e48
pop ebx
cmp dword [ebp - 0x14f4], 0
jne 0x40988c
mov dword [ebp - 0x2e0], 0
jmp 0x409b33
mov ecx, dword [ebp - 0x14f4]
mov edx, dword [ecx + 0xc]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0xc3c], eax
push eax
add eax, 0x118b3
pop eax
push ebx
push eax
add esp, 4
sub ebx, 0x356f
add ebx, 0x24a8
and ebx, 0x8fd
pop ebx
push eax
push ebx
add esp, 4
and eax, 0x4d32
jmp 0x4098cf
pop eax
cmp dword [ebp - 0xc3c], 0
jne 0x4098e8
mov dword [ebp - 0x2e0], 0
jmp 0x409b33
mov ecx, dword [ebp - 0xc3c]
mov dword [ebp - 0x4dc], ecx
push ecx
sub ecx, 0x7db1
sub ecx, 0x9c8b
call 0x409910
add byte [edi], dh
cmp dword [0x41353d42], esi
dec ebp
inc edi
add esp, 4
and ecx, 0x72b2
pop ecx
push ebx
push ebx
add esp, 4
add ebx, 0x954c
pop ebx
lea edx, [ebp - 0x1628]
mov dword [ebp - 0xc38], edx
mov eax, dword [ebp - 0x4dc]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0xc34], ecx
xor edx, edx
mov word [ebp - 0x200], dx
xor eax, eax
mov word [ebp - 0x34], ax
push edi
or edi, 0x17d44
call 0x409967
add byte [ebx], dh
aas
xor bh, byte [edx]
push eax
cmp dword [0x83493a49], esi
les eax, [ebx + ebp*8]
add edx, dword [eax + 0x45]
dec ecx
pop edi
push ecx
push eax
add esp, 4
and ecx, 0xe65d
sub ecx, 0x133c1
pop ecx
mov ecx, dword [ebp - 0xc34]
mov dx, word [ecx]
mov word [ebp - 0xf86], dx
mov eax, dword [ebp - 0xc34]
add eax, 2
mov dword [ebp - 0xc34], eax
mov cx, word [ebp - 0xf86]
mov word [ebp - 0x200], cx
mov edx, dword [ebp - 0xc38]
mov ax, word [edx]
mov word [ebp - 0xf88], ax
mov ecx, dword [ebp - 0xc38]
add ecx, 2
mov dword [ebp - 0xc38], ecx
mov dx, word [ebp - 0xf88]
mov word [ebp - 0x34], dx
push ebx
push ebx
add esp, 4
xor ebx, 0xb13d
jmp 0x4099eb
pop ebx
push eax
jmp 0x4099f2
or eax, 0x48c8
pop eax
push edi
push eax
add esp, 4
xor edi, 0x162a1
and edi, 0x5bdd
pop edi
movzx eax, word [ebp - 0x34]
test eax, eax
jne 0x409a28
movzx ecx, word [ebp - 0x200]
movzx edx, word [ebp - 0x34]
sub ecx, edx
mov dword [ebp - 0x14fc], ecx
jmp 0x409a82
movzx eax, word [ebp - 0x200]
movzx ecx, word [ebp - 0x34]
cmp eax, ecx
je 0x409950
movzx edx, word [ebp - 0x200]
xor edx, 0x20
movzx eax, word [ebp - 0x34]
cmp edx, eax
je 0x409950
movzx ecx, word [ebp - 0x200]
movzx edx, word [ebp - 0x34]
cmp ecx, edx
jge 0x409a6c
mov dword [ebp - 0x14f8], 0xffffffff
jmp 0x409a76
mov dword [ebp - 0x14f8], 1
mov eax, dword [ebp - 0x14f8]
mov dword [ebp - 0x14fc], eax
cmp dword [ebp - 0x14fc], 0
jne 0x409acb
push esi
add esi, 0xc8ba
and esi, 0x17f42
sub esi, 0x1245c
pop esi
push ecx
push edi
add esp, 4
call 0x409ab3
add byte [esp + esi], bh
dec edi
inc esi
cmp eax, dword [ebp + 0x48]
cmp eax, 0x4c48335
and ecx, 0x137e6
pop ecx
mov ecx, dword [ebp - 0x4dc]
mov dword [ebp - 0x2e0], ecx
jmp 0x409b33
push edx
add edx, 0xd17
and edx, 0x11a78
xor edx, 0x42c8
pop edx
push ebx
push ecx
add esp, 4
add ebx, 0xf422
sub ebx, 0xa865
or ebx, 0xf2d0
or ebx, 0x1e9b
pop ebx
mov edx, dword [ebp - 0x4dc]
mov eax, dword [edx]
mov dword [ebp - 0x4dc], eax
mov ecx, dword [ebp - 0x4dc]
cmp ecx, dword [ebp - 0xc3c]
je 0x409b29
mov edx, dword [ebp - 0x4dc]
cmp dword [edx + 0x30], 0
jne 0x4098f4
mov dword [ebp - 0x2e0], 0
push ebx
push edi
add esp, 4
and ebx, 0x1041f
xor ebx, 0x143af
jmp 0x409b4a
pop ebx
push ecx
sub ecx, 0x13a6a
or ecx, 0xa8ad
add ecx, 0x4d16
sub ecx, 0x5e1a
pop ecx
mov eax, dword [ebp - 0x2e0]
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x2fc], ecx
push eax
push ebx
add esp, 4
add eax, 0x15b4a
add eax, 0xe988
jmp 0x409b8a
pop eax
push edx
push esi
add esp, 4
call 0x409b9c
add byte [edi], dh
dec edi
inc eax
dec esp
inc esi
aas
add esp, 4
xor edx, 0xc6e4
pop edx
mov dword [ebp - 0x70c], 0
mov edx, dword [ebp - 0x2fc]
mov dword [ebp - 0x1500], edx
cmp dword [ebp - 0x1500], 0
jne 0x409bd6
mov eax, dword [ebp - 0x70c]
mov dword [ebp - 0x4e0], eax
jmp 0x409ec7
mov ecx, dword [ebp - 0x1500]
mov edx, dword [ebp - 0x2fc]
add edx, dword [ecx + 0x3c]
mov dword [ebp - 0x1504], edx
jne 0x409bfe
mov eax, dword [ebp - 0x70c]
mov dword [ebp - 0x4e0], eax
jmp 0x409ec7
mov ecx, 8
imul edx, ecx, 0
mov eax, dword [ebp - 0x1504]
mov ecx, dword [eax + edx + 0x78]
mov dword [ebp - 0x1508], ecx
cmp dword [ebp - 0x1508], 0
jne 0x409c30
mov edx, dword [ebp - 0x70c]
mov dword [ebp - 0x4e0], edx
jmp 0x409ec7
mov eax, dword [ebp - 0x2fc]
add eax, dword [ebp - 0x1508]
mov dword [ebp - 0x700], eax
jne 0x409c55
mov ecx, dword [ebp - 0x70c]
mov dword [ebp - 0x4e0], ecx
jmp 0x409ec7
mov edx, dword [ebp - 0x700]
mov eax, dword [ebp - 0x2fc]
add eax, dword [edx + 0x20]
mov dword [ebp - 0x18c0], eax
mov ecx, dword [ebp - 0x700]
mov edx, dword [ebp - 0x2fc]
add edx, dword [ecx + 0x24]
mov dword [ebp - 0x18c4], edx
mov eax, dword [ebp - 0x700]
mov ecx, dword [ebp - 0x2fc]
add ecx, dword [eax + 0x1c]
mov dword [ebp - 0x18c8], ecx
mov dword [ebp - 0x704], 0
jmp 0x409caf
mov edx, dword [ebp - 0x704]
add edx, 1
mov dword [ebp - 0x704], edx
mov eax, dword [ebp - 0x700]
mov ecx, dword [ebp - 0x704]
cmp ecx, dword [eax + 0x18]
jae 0x409ebb
mov edx, dword [ebp - 0x704]
mov eax, dword [ebp - 0x18c0]
mov ecx, dword [ebp - 0x2fc]
add ecx, dword [eax + edx*4]
mov dword [ebp - 0x708], ecx
mov edx, dword [ebp - 0x704]
mov eax, dword [ebp - 0x18c4]
movzx ecx, word [eax + edx*2]
mov edx, dword [ebp - 0x18c8]
mov eax, dword [ebp - 0x2fc]
add eax, dword [edx + ecx*4]
mov dword [ebp - 0x18cc], eax
mov dword [ebp - 0x184], 0
jmp 0x409d1f
mov ecx, dword [ebp - 0x184]
add ecx, 1
mov dword [ebp - 0x184], ecx
mov edx, dword [ebp - 0x708]
add edx, dword [ebp - 0x184]
movsx eax, byte [edx]
test eax, eax
je 0x409dd1
mov ecx, dword [ebp - 0x184]
movsx edx, byte [ebp + ecx - 0x804]
test edx, edx
je 0x409dd1
push ebx
push ecx
add esp, 4
and ebx, 0x134fa
or ebx, 0x52df
and ebx, 0x14bb7
add ebx, 0x1562f
pop ebx
push eax
call 0x409d7a
add byte [edx + eax*2], dh
push eax
inc ecx
inc ecx
inc ecx
dec eax
inc ecx
add esp, 4
pop eax
invalid
invalid