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

Disassembly:
out dx, eax
insd dword es:[edi], dx
jp 0x581d5f
add byte [edi + 0x51], bl
or ecx, 0x17ede
jmp 0x581d71
jmp 0x581d78
sub ecx, 0x5049
pop ecx
cmp dword [ebp - 0x188], 0
jne 0x582652
mov eax, 0x6b
mov word [ebp - 0xca8], ax
mov ecx, 0x65
mov word [ebp - 0xca6], cx
mov edx, 0x72
mov word [ebp - 0xca4], dx
mov eax, 0x6e
mov word [ebp - 0xca2], ax
mov ecx, 0x65
mov word [ebp - 0xca0], cx
mov edx, 0x6c
mov word [ebp - 0xc9e], dx
mov eax, 0x33
mov word [ebp - 0xc9c], ax
mov ecx, 0x32
mov word [ebp - 0xc9a], cx
mov edx, 0x2e
mov word [ebp - 0xc98], dx
mov eax, 0x64
mov word [ebp - 0xc96], ax
mov ecx, 0x6c
mov word [ebp - 0xc94], cx
mov edx, 0x6c
mov word [ebp - 0xc92], dx
xor eax, eax
mov word [ebp - 0xc90], ax
push edx
push esi
add esp, 4
or edx, 0x79f7
and edx, 0x1122d
xor edx, 0x11445
sub edx, 0x6bb4
pop edx
push eax
and eax, 0xe9cc
jmp 0x581e50
sub eax, 0xb6af
pop eax
mov byte [ebp - 0x4c0], 0x4c
mov byte [ebp - 0x4bf], 0x6f
mov byte [ebp - 0x4be], 0x61
mov byte [ebp - 0x4bd], 0x64
mov byte [ebp - 0x4bc], 0x4c
mov byte [ebp - 0x4bb], 0x69
mov byte [ebp - 0x4ba], 0x62
mov byte [ebp - 0x4b9], 0x72
mov byte [ebp - 0x4b8], 0x61
mov byte [ebp - 0x4b7], 0x72
mov byte [ebp - 0x4b6], 0x79
mov byte [ebp - 0x4b5], 0x57
mov byte [ebp - 0x4b4], 0
mov ecx, dword fs:[0x18]
mov dword [ebp - 0xe30], ecx
mov edx, dword [ebp - 0xe30]
mov eax, dword [edx + 0x30]
mov dword [ebp - 0xe34], eax
mov ecx, dword [ebp - 0xe34]
mov dword [ebp - 0xb60], ecx
push esi
push esi
add esp, 4
add esi, 0x259
xor esi, 0x56ef
or esi, 0x9397
pop esi
push edx
push esi
add esp, 4
and edx, 0x14327
pop edx
push ecx
or ecx, 0x155c6
xor ecx, 0xebc4
pop ecx
cmp dword [ebp - 0xb60], 0
jne 0x581f24
mov dword [ebp - 0x3cc], 0
jmp 0x5821cb
mov edx, dword [ebp - 0xb60]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x6bc], ecx
push ecx
push ebx
add esp, 4
sub ecx, 0x1053
jmp 0x581f49
sub ecx, 0xfd6c
pop ecx
push ecx
push ecx
add esp, 4
xor ecx, 0x93de
and ecx, 0x13022
or ecx, 0x9620
pop ecx
cmp dword [ebp - 0x6bc], 0
jne 0x581f80
mov dword [ebp - 0x3cc], 0
jmp 0x5821cb
mov edx, dword [ebp - 0x6bc]
mov dword [ebp - 0x258], edx
push edi
push esi
add esp, 4
add edi, 0x2cf9
jmp 0x581fa0
jmp 0x581fa9
pop edi
push ecx
sub ecx, 0x182be
and ecx, 0xc62c
sub ecx, 0x15060
pop ecx
lea eax, [ebp - 0xca8]
mov dword [ebp - 0x6b8], eax
mov ecx, dword [ebp - 0x258]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0x6b4], edx
xor eax, eax
mov word [ebp - 0x118], ax
xor ecx, ecx
mov word [ebp - 0x2c], cx
push ebx
push edx
add esp, 4
add ebx, 0x6e51
call 0x582000
add byte [edx + 0x46], al
cmp dh, byte [ebx]
xor ecx, dword [eax + 0x4f]
add esp, 4
add ebx, 0x6e47
pop ebx
push ebx
jmp 0x582013
xor ebx, 0x4829
pop ebx
mov edx, dword [ebp - 0x6b4]
mov ax, word [edx]
mov word [ebp - 0x876], ax
mov ecx, dword [ebp - 0x6b4]
add ecx, 2
mov dword [ebp - 0x6b4], ecx
mov dx, word [ebp - 0x876]
mov word [ebp - 0x118], dx
mov eax, dword [ebp - 0x6b8]
mov cx, word [eax]
mov word [ebp - 0x878], cx
mov edx, dword [ebp - 0x6b8]
add edx, 2
mov dword [ebp - 0x6b8], edx
mov ax, word [ebp - 0x878]
mov word [ebp - 0x2c], ax
push ecx
jmp 0x582077
xor ecx, 0xcf5
jmp 0x582082
pop ecx
push ecx
xor ecx, 0x94f1
or ecx, 0x1761b
call 0x58209f
add byte [0x394d3b48], dh
xor eax, dword [esi + 0x36]
inc eax
add esp, 4
pop ecx
movzx ecx, word [ebp - 0x2c]
test ecx, ecx
jne 0x5820c0
movzx edx, word [ebp - 0x118]
movzx eax, word [ebp - 0x2c]
sub edx, eax
mov dword [ebp - 0xb68], edx
jmp 0x58211a
movzx ecx, word [ebp - 0x118]
movzx edx, word [ebp - 0x2c]
cmp ecx, edx
je 0x581fe8
movzx eax, word [ebp - 0x118]
xor eax, 0x20
movzx ecx, word [ebp - 0x2c]
cmp eax, ecx
je 0x581fe8
movzx edx, word [ebp - 0x118]
movzx eax, word [ebp - 0x2c]
cmp edx, eax
jge 0x582104
mov dword [ebp - 0xb64], 0xffffffff
jmp 0x58210e
mov dword [ebp - 0xb64], 1
mov ecx, dword [ebp - 0xb64]
mov dword [ebp - 0xb68], ecx
cmp dword [ebp - 0xb68], 0
jne 0x582163
push eax
jmp 0x58212a
or eax, 0x6293
and eax, 0x1536d
pop eax
push eax
push ebx
add esp, 4
or eax, 0x4cb9
and eax, 0x68d
pop eax
push edx
push ecx
add esp, 4
add edx, 0x4dc5
pop edx
mov edx, dword [ebp - 0x258]
mov dword [ebp - 0x3cc], edx
jmp 0x5821cb
push ecx
push esi
add esp, 4
jmp 0x58216d
xor ecx, 0x13d46
call 0x582181
add byte [eax + edx*2 + 0x3a], cl
xor ecx, dword [ebx + 0x50]
dec ebp
inc ebx
add esp, 4
pop ecx
push edi
jmp 0x58218e
add edi, 0x5bf7
pop edi
mov eax, dword [ebp - 0x258]
mov ecx, dword [eax]
mov dword [ebp - 0x258], ecx
mov edx, dword [ebp - 0x258]
cmp edx, dword [ebp - 0x6bc]
inc esp
stc
invalid
invalid
je 0x5821c1
mov eax, dword [ebp - 0x258]
cmp dword [eax + 0x30], 0
jne 0x581f8c
mov dword [ebp - 0x3cc], 0