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

Disassembly:
add esp, 4
pop ecx
push esi
add esi, 0x110da
pop esi
push ecx
sub ecx, 0x749f
pop ecx
mov dword [ebp - 0x20d0], 0xe
push edx
xor edx, 0xbf3d
and edx, 0xaf71
and edx, 0x1da8
pop edx
push ebx
sub ebx, 0xe7dc
call 0x4048d4
add byte [eax + eax*2 + 0x35], cl
dec ebx
inc edx
dec ebx
cmp al, 0x83
les eax, [ecx + eax*4]
rol byte [edx], 1
add byte [eax], al
pop ebx
mov ecx, 1
imul edx, ecx, 0
lea eax, [ebp + edx - 0xbf0]
mov dword [ebp - 0x15cc], eax
push ebx
push ecx
add esp, 4
or ebx, 0xd208
xor ebx, 0xdfa
or ebx, 0x16986
pop ebx
push edi
sub edi, 0x178cf
jmp 0x404918
pop edi
push ecx
push esi
add esp, 4
sub ecx, 0x1140e
pop ecx
mov dword [ebp - 0x20d4], 0xffffffff
push eax
push edi
add esp, 4
and eax, 0x4f2f
pop eax
push esi
push ecx
add esp, 4
or esi, 0xc76a
sub esi, 0x12ecf
sub esi, 0x9962
sub esi, 0xeb1c
pop esi
push esi
add esi, 0x1158b
pop esi
mov ecx, dword [ebp - 0x3f4]
mov dword [ebp - 0x500], ecx
jmp 0x40497e
mov edx, dword [ebp - 0x500]
add edx, 1
mov dword [ebp - 0x500], edx
push edi
call 0x40498b
add byte [ebx], dh
dec ebp
inc ebp
inc edi
inc ebx
dec esp
add esp, 4
and edi, 0x182f0
pop edi
push edi
push edx
add esp, 4
sub edi, 0x888e
pop edi
push edx
push ebx
add esp, 4
jmp 0x4049af
pop edx
mov eax, dword [ebp - 0x500]
sub eax, dword [ebp - 0x3f4]
cmp eax, 0xffffffff
jb 0x4049f8
push ebx
xor ebx, 0x5685
xor ebx, 0x71e5
pop ebx
push edi
push edx
add esp, 4
call 0x4049e3
add byte [eax], bh
inc esp
dec edx
dec ecx
dec esi
cmp dh, byte [ebx + edi]
add esp, 4
and edi, 0x13ca9
xor edi, 0xbb2d
pop edi
jmp 0x404c26
mov dword [ebp - 0xc84], 7
mov ecx, dword [ebp - 0x500]
mov dword [ebp - 0xad0], ecx
push ebx
and ebx, 0x15919
pop ebx
push edx
and edx, 0xe271
pop edx
push edi
add edi, 0xe5af
xor edi, 0x16329
or edi, 0x1028f
and edi, 0x18454
pop edi
push edi
and edi, 0x12d2f
pop edi
mov edx, dword [ebp - 0x15cc]
mov dword [ebp - 0xacc], edx
mov dword [ebp - 0xc88], 0
mov eax, dword [ebp - 0x500]
cmp eax, dword [ebp - 0x15cc]
jne 0x404aa7
push esi
push edi
add esp, 4
xor esi, 0x651e
call 0x404a7c
add byte [edx + esi], dh
cmp al, 0x3a
dec eax
cmp byte [esi], dh
add esp, 4
jmp 0x404a84
call 0x404a92
add byte [edi + 0x38], al
dec ebx
cmp eax, 0x423e3c36
add esp, 4
pop esi
mov ecx, dword [ebp - 0xc88]
mov dword [ebp - 0x15d4], ecx
jmp 0x404bd8
cmp dword [ebp - 0xc84], 0
jle 0x404bcc
push esi
jmp 0x404aba
call 0x404ac6
add byte [ecx + 0x40], cl
aas
xor al, 0x47
inc ebp
add esp, 4
jmp 0x404ad1
and esi, 0x6cc0
pop esi
push ebx
push eax
add esp, 4
jmp 0x404ae5
pop ebx
mov edx, dword [ebp - 0xad0]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0xacc]
movzx edx, byte [ecx]
cmp eax, edx
je 0x404b68
push ecx
call 0x404b09
add byte [0x4a354d37], bh
xor eax, 0x8104c483
sal dword [eax], 0xd8
add byte [eax], al
jmp 0x404b1b
pop ecx
push ebx
push esi
add esp, 4
xor ebx, 0x10de5
jmp 0x404b2d
pop ebx
mov eax, dword [ebp - 0xad0]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0xacc]
movzx eax, byte [edx]
cmp ecx, eax
jle 0x404b50
mov dword [ebp - 0x15d0], 1
jmp 0x404b5a
mov dword [ebp - 0x15d0], 0xffffffff
mov ecx, dword [ebp - 0x15d0]
mov dword [ebp - 0xc88], ecx
jmp 0x404bcc
push ecx
add ecx, 0x161c5
sub ecx, 0x1753
and ecx, 0x18408
pop ecx
push edx
push edi
add esp, 4
and edx, 0xe780
xor edx, 0x9005
add edx, 0x5d6e
add edx, 0x15008
pop edx
mov edx, dword [ebp - 0xc84]
sub edx, 1
mov dword [ebp - 0xc84], edx
mov eax, dword [ebp - 0xad0]
add eax, 1
mov dword [ebp - 0xad0], eax
mov ecx, dword [ebp - 0xacc]
add ecx, 1
mov dword [ebp - 0xacc], ecx
jmp 0x404aa7
mov edx, dword [ebp - 0xc88]
mov dword [ebp - 0x15d4], edx
cmp dword [ebp - 0x15d4], 0
jne 0x404c21
push edx
push ebx
add esp, 4
and edx, 0x3382
jmp 0x404bf5
pop edx
push ebx
jmp 0x404c00
or ebx, 0x9ce7
add ebx, 0xb49e
add ebx, 0x1046c
pop ebx
mov eax, dword [ebp - 0x500]
mov dword [ebp - 0x3e4], eax
jmp 0x404c62
jmp 0x40496f
push ecx
xor ecx, 0x18dc
and ecx, 0xfb33
and ecx, 0x78ad
sub ecx, 0xf95e
pop ecx
push ebx
push esi
add esp, 4
jmp 0x404c4b
add ebx, 0xe5ca
sub ebx, 0x1fb7
pop ebx
mov dword [ebp - 0x3e4], 0
push edx
push eax
add esp, 4
or edx, 0x11ba5
or edx, 0x64cf
sub edx, 0xb79a
pop edx
push edx
and edx, 0x180e7
or edx, 0x66ec
sub edx, 0x593e
xor edx, 0xed87
pop edx
push ecx
and ecx, 0x3a37
or ecx, 0x5355
call 0x404cb0
add byte [0x3e3a324d], bh
dec ebx
dec esi
dec esp
inc eax
add esp, 4
pop ecx
push ecx
push ecx
add esp, 4
sub ecx, 0x6e0c
add ecx, 0x61e3
pop ecx
mov ecx, 1
imul edx, ecx, 0
lea eax, [ebp + edx - 0xbe8]
mov dword [ebp - 0x15d8], eax
push ebx
push edx
add esp, 4
jmp 0x404ce5
or ebx, 0x5f2a
add ebx, 0x19ba
call 0x404cfd
add byte [eax + ecx*2 + 0x4e], cl
inc ebp
inc eax
xor al, byte [ebx + 0x505b04c4]
push ecx
add esp, 4
sub eax, 0x17d2f
pop eax
mov dword [ebp - 0x20d8], 0xffffffff
push ebx
push edx
add esp, 4
and ebx, 0xb820
and ebx, 0xefae
jmp 0x404d31
add ebx, 0x8a95
pop ebx
push eax
call 0x404d45
add byte [edx], dh
dec edx
dec ebx
inc esp
xor al, byte [ebx + eax*4 - 0x3c]
add al, 0x58
mov ecx, dword [ebp - 0x3f4]
mov dword [ebp - 0x504], ecx
jmp 0x404d66
mov edx, dword [ebp - 0x504]
add edx, 1
mov dword [ebp - 0x504], edx
push esi
push edi
add esp, 4
add esi, 0x12961
pop esi
push ecx
push esi
add esp, 4
or ecx, 0x6fca
add ecx, 0x150d
or ecx, 0xdd25
xor ecx, 0x13d98
pop ecx
push edi
sub edi, 0x16659
pop edi
mov eax, dword [ebp - 0x504]
sub eax, dword [ebp - 0x3f4]
cmp eax, 0xffffffff
jb 0x404de0
push ecx
push esi
add esp, 4
add ecx, 0xbe65
or ecx, 0x2f8f
and ecx, 0x482e
or ecx, 0xb601
pop ecx
push eax
call 0x404dd7
add byte [ecx], bh
inc ebp
dec eax
aas
dec ebp
dec edx
inc ebx
push eax
aaa
add esp, 4
pop eax
jmp 0x40500e
mov dword [ebp - 0xc8c], 7
mov ecx, dword [ebp - 0x504]
mov dword [ebp - 0xac8], ecx
push ecx
call 0x404e03
add byte [eax + 0x33], cl
dec ecx
dec esi
dec esp
cmp byte [ebx - 0x367efb3c], al
push ebp
sub al, 1
add byte [ecx + 0x17de0e1], al
add bl, ch
pop es
xor eax, dword [edi + ecx*2 + 0x39]
xor edi, dword [ebx]
dec esp
pop ecx
push esi
push eax
add esp, 4
xor esi, 0x7789
pop esi
mov edx, dword [ebp - 0x15d8]
mov dword [ebp - 0xa64], edx
mov dword [ebp - 0xc90], 0
mov eax, dword [ebp - 0x504]
cmp eax, dword [ebp - 0x15d8]
jne 0x404e8f
push edx
jmp 0x404e55
xor edx, 0x2c4a
call 0x404e67
add byte [esi + 0x3c], cl
inc edx
dec esi
aaa
xor al, byte [ebx + 0xbe804c4]
add byte [eax], al
add byte [eax], al
dec esi
inc ebx
inc ebp
xor al, byte [ecx + 0x50]
inc edi
cmp cl, byte ss:[ecx - 0x7d]
les eax, [edx + ebx*2]
mov ecx, dword [ebp - 0xc90]
mov dword [ebp - 0x15a8], ecx
jmp 0x404fc0
cmp dword [ebp - 0xc8c], 0
jle 0x404fb4
push ecx
push esi
add esp, 4
sub ecx, 0xf581
add ecx, 0x9fde
pop ecx
push ecx
or ecx, 0xbdf2
sub ecx, 0x27
call 0x404eca
add byte [ebx], bh
inc esp
dec esi
push eax
cmp dword [esi], edi
dec edi
dec edx
add esp, 4
pop ecx
mov edx, dword [ebp - 0xac8]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0xa64]
movzx edx, byte [ecx]
cmp eax, edx
je 0x404f50
push ebx
push esi
add esp, 4
add ebx, 0x12fa
jmp 0x404ef7
and ebx, 0x6ef
pop ebx
push edx
push edi
add esp, 4
jmp 0x404f09
pop edx
push ecx
push eax
add esp, 4
or ecx, 0xb540
pop ecx
mov eax, dword [ebp - 0xac8]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0xa64]
movzx eax, byte [edx]
cmp ecx, eax
jle 0x404f38
mov dword [ebp - 0x15dc], 1
jmp 0x404f42
mov dword [ebp - 0x15dc], 0xffffffff
mov ecx, dword [ebp - 0x15dc]
mov dword [ebp - 0xc90], ecx
jmp 0x404fb4
push edx
push edx
add esp, 4
or edx, 0xe619
or edx, 0x6e58
pop edx
push ebx
push esi
add esp, 4
sub ebx, 0x11762
or ebx, 0xa27b
pop ebx
push edx
sub edx, 0x644f
and edx, 0x11cc7
pop edx
mov edx, dword [ebp - 0xc8c]
sub edx, 1
mov dword [ebp - 0xc8c], edx
mov eax, dword [ebp - 0xac8]
add eax, 1
mov dword [ebp - 0xac8], eax
mov ecx, dword [ebp - 0xa64]
add ecx, 1
mov dword [ebp - 0xa64], ecx
jmp 0x404e8f
mov edx, dword [ebp - 0xc90]
mov dword [ebp - 0x15a8], edx
cmp dword [ebp - 0x15a8], 0
jne 0x405009
push ecx
push edx
add esp, 4
and ecx, 0xd78b
pop ecx
push edx
push eax
add esp, 4
and edx, 0x2a3f
add edx, 0x127dd
pop edx
push ecx
call 0x404ff7
add byte [edi], dh
dec esp
cmp eax, 0x33353339
xor al, 0x39
add esp, 4
pop ecx
mov eax, dword [ebp - 0x504]
mov dword [ebp - 0xac4], eax
jmp 0x40504a
jmp 0x404d57
push ecx
push ecx
add esp, 4
xor ecx, 0x92d6
call 0x405027
add byte [ecx], bh
cmp byte [eax], bh
dec ebp
cmp al, byte [esp + eax*2 + 0x35]
add esp, 4
call 0x405036
add byte [edi + 0x39], cl
inc esp
cmp esi, dword [eax + edi]
add esp, 4
and ecx, 0xcbde
pop ecx
mov dword [ebp - 0xac4], 0
push edx
add edx, 0xc06b
call 0x40505e
add byte [esi], bh
cmp dword [esi], esi
inc ecx
inc esi
xor edi, dword [edi]
add esp, 4
and edx, 0x116ee
pop edx
push ecx
push ecx
add esp, 4
and ecx, 0xe5b0
pop ecx
push ebx
sub ebx, 0x3fcd
pop ebx
mov byte [ebp - 0x87c], 0x45
mov byte [ebp - 0x87b], 0x78
mov byte [ebp - 0x87a], 0x69
mov byte [ebp - 0x879], 0x74
mov byte [ebp - 0x878], 0x50
mov byte [ebp - 0x877], 0x72
mov byte [ebp - 0x876], 0x6f
mov byte [ebp - 0x875], 0x63
mov byte [ebp - 0x874], 0x65
mov byte [ebp - 0x873], 0x73
mov byte [ebp - 0x872], 0x73
mov byte [ebp - 0x871], 0
push edi
push esi
add esp, 4
xor edi, 0x15c2b
pop edi
push ebx
push ecx
add esp, 4
add ebx, 0x102e4
or ebx, 0xec51
or ebx, 0x1301f
add ebx, 0x159d1
pop ebx
push esi
xor esi, 0x5cfb
pop esi
mov ecx, 0x6b
mov word [ebp - 0x1740], cx
mov edx, 0x65
mov word [ebp - 0x173e], dx
mov eax, 0x72
mov word [ebp - 0x173c], ax
mov ecx, 0x6e
mov word [ebp - 0x173a], cx
mov edx, 0x65
mov word [ebp - 0x1738], dx
mov eax, 0x6c
mov word [ebp - 0x1736], ax
mov ecx, 0x33
mov word [ebp - 0x1734], cx
mov edx, 0x32
mov word [ebp - 0x1732], dx
mov eax, 0x2e
mov word [ebp - 0x1730], ax
mov ecx, 0x64
mov word [ebp - 0x172e], cx
mov edx, 0x6c
mov word [ebp - 0x172c], dx
mov eax, 0x6c
mov word [ebp - 0x172a], ax
xor ecx, ecx
mov word [ebp - 0x1728], cx
push eax
xor eax, 0x132cd
pop eax
push esi
push esi
add esp, 4
jmp 0x4051ad
jmp 0x4051b4
sub esi, 0x474d
call 0x4051c9
add byte [edi + 0x33], al
aas
cmp edi, dword [edx]
cmp byte [ebp + 0x48], al
xor al, byte [ebx + 0x515e04c4]
push esi
add esp, 4
and ecx, 0x10a27
xor ecx, 0xe59c
or ecx, 0x42a9
pop ecx
push edx
xor edx, 0x16162
xor edx, 0x14ef3
or edx, 0x16c5a
sub edx, 0x6b8d
pop edx
mov edx, dword fs:[0x18]
mov dword [ebp - 0x2034], edx
mov eax, dword [ebp - 0x2034]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0x198c], ecx
mov edx, dword [ebp - 0x198c]
mov dword [ebp - 0x15e0], edx
push ecx
push ecx
add esp, 4
jmp 0x405232
pop ecx
push ecx
push ebx
add esp, 4
xor ecx, 0x15e4c
pop ecx
push edx
jmp 0x405246
or edx, 0x13f11
or edx, 0x4baf
and edx, 0xbb62
pop edx
cmp dword [ebp - 0x15e0], 0
jne 0x405271
mov dword [ebp - 0x2d4], 0
jmp 0x40552d
mov eax, dword [ebp - 0x15e0]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0xc9c], edx
push esi
xor esi, 0x5fc9
add esi, 0x3e1e
pop esi
push ecx
call 0x40529e
add byte [eax + eax*2 + 0x44], cl
cmp dword [esi + 0x37], ecx
add esp, 4
jmp 0x4052a8
sub ecx, 0x151b8
sub ecx, 0x10943
pop ecx
cmp dword [ebp - 0xc9c], 0
jne 0x4052cd
mov dword [ebp - 0x2d4], 0
jmp 0x40552d
mov eax, dword [ebp - 0xc9c]
mov dword [ebp - 0x508], eax
push eax
push edi
add esp, 4
xor eax, 0xde52
or eax, 0x16a3f
pop eax
push edx
push esi
add esp, 4
call 0x4052ff
add byte [edx + 0x36], al
dec edi
xor al, 0x32
inc ecx
cmp edx, dword [eax - 0x7d]
les eax, [edx + ebx*2]
push ebx
sub ebx, 0x528a
pop ebx
lea ecx, [ebp - 0x1740]
mov dword [ebp - 0xc98], ecx
mov edx, dword [ebp - 0x508]
mov eax, dword [edx + 0x30]
mov dword [ebp - 0xc94], eax
xor ecx, ecx
mov word [ebp - 0x210], cx
xor edx, edx
mov word [ebp - 0x10c], dx
push ecx
push ebx
add esp, 4
jmp 0x405345
add ecx, 0x55df
pop ecx
push edi
push ebx
add esp, 4
add edi, 0x1a71
xor edi, 0x779
add edi, 0x6e4d
sub edi, 0x8d67
pop edi
mov eax, dword [ebp - 0xc94]
mov cx, word [eax]
mov word [ebp - 0x1036], cx
mov edx, dword [ebp - 0xc94]
add edx, 2
mov dword [ebp - 0xc94], edx
mov ax, word [ebp - 0x1036]
mov word [ebp - 0x210], ax
mov ecx, dword [ebp - 0xc98]
mov dx, word [ecx]
mov word [ebp - 0x1038], dx
mov eax, dword [ebp - 0xc98]
add eax, 2
mov dword [ebp - 0xc98], eax
mov cx, word [ebp - 0x1038]
mov word [ebp - 0x10c], cx
push eax
push esi
add esp, 4
add eax, 0x876b
xor eax, 0x14c8f
add eax, 0x150a5
jmp 0x4053e3
pop eax
push ebx
push esi
add esp, 4
jmp 0x4053ef
xor ebx, 0x157eb
pop ebx
movzx edx, word [ebp - 0x10c]
test edx, edx
jne 0x405419
movzx eax, word [ebp - 0x210]
movzx ecx, word [ebp - 0x10c]
sub eax, ecx
mov dword [ebp - 0x15e8], eax
jmp 0x40547c
movzx edx, word [ebp - 0x210]
movzx eax, word [ebp - 0x10c]
cmp edx, eax
je 0x405338
movzx ecx, word [ebp - 0x210]
xor ecx, 0x20
movzx edx, word [ebp - 0x10c]
cmp ecx, edx
je 0x405338
movzx eax, word [ebp - 0x210]
movzx ecx, word [ebp - 0x10c]
cmp eax, ecx
jge 0x405466
mov dword [ebp - 0x15e4], 0xffffffff
jmp 0x405470
mov dword [ebp - 0x15e4], 1
mov edx, dword [ebp - 0x15e4]
mov dword [ebp - 0x15e8], edx
cmp dword [ebp - 0x15e8], 0
jne 0x4054c5
push edx
and edx, 0x1235b
pop edx
push esi
jmp 0x405497
xor esi, 0x10478
xor esi, 0x4cee
call 0x4054b3
add byte [ecx + edi], bh
inc eax
cmp eax, dword [eax + 0x3e]
cmp eax, 0x833e453a
les eax, [esi + ebx*2]
mov eax, dword [ebp - 0x508]
mov dword [ebp - 0x2d4], eax
jmp 0x40552d
push ecx
xor ecx, 0x9724
xor ecx, 0x13861
pop ecx
push ecx
push ecx
add esp, 4
jmp 0x4054e0
call 0x4054ed
add byte [esi + 0x4a], cl
xor eax, dword [edi + 0x39]
dec edi
add esp, 4
and ecx, 0xaeb5
pop ecx
mov ecx, dword [ebp - 0x508]
mov edx, dword [ecx]
mov dword [ebp - 0x508], edx
mov eax, dword [ebp - 0x508]
cmp eax, dword [ebp - 0xc9c]
je 0x405523
mov ecx, dword [ebp - 0x508]
cmp dword [ecx + 0x30], 0
jne 0x4052d9
mov dword [ebp - 0x2d4], 0
push ebx
push ecx
add esp, 4
call 0x40553e
add byte [ebx + 0x36], al
cmp eax, 0x83414a44
les eax, [ecx + eax*4]
ret