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

Disassembly:
push eax
push ebx
add esp, 4
jmp 0x512af3
pop eax
push edx
push esi
add esp, 4
add al, 0x81
rcr byte [ebp + 1], 1
add byte [ecx + 0x17132f2], al
add byte [edx + 0x51], bl
add al, 0x81
rcr byte [ebp + 1], 1
add byte [ecx + 0x17132f2], al
add byte [edx + 0x51], bl
push edi
add esp, 4
jmp 0x512b13
xor ecx, 0x5e83
pop ecx
lea edx, [ebp - 0x1628]
mov dword [ebp - 0xc48], edx
mov eax, dword [ebp - 0x4e4]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0xc44], ecx
xor edx, edx
mov word [ebp - 0x204], dx
xor eax, eax
mov word [ebp - 0x38], ax
push esi
push ebx
add esp, 4
xor esi, 0x11f35
jmp 0x512b55
jmp 0x512b5b
pop esi
push edx
push esi
add esp, 4
jmp 0x512b67
pop edx
push edi
sub edi, 0xd86f
or edi, 0x14578
pop edi
mov ecx, dword [ebp - 0xc44]
mov dx, word [ecx]
mov word [ebp - 0xf8a], dx
mov eax, dword [ebp - 0xc44]
add eax, 2
mov dword [ebp - 0xc44], eax
mov cx, word [ebp - 0xf8a]
mov word [ebp - 0x204], cx
mov edx, dword [ebp - 0xc48]
mov ax, word [edx]
mov word [ebp - 0xf8c], ax
mov ecx, dword [ebp - 0xc48]
add ecx, 2
mov dword [ebp - 0xc48], ecx
mov dx, word [ebp - 0xf8c]
mov word [ebp - 0x38], dx
push esi
add esi, 0xad9e
pop esi
push ebx
push edx
add esp, 4
and ebx, 0x59c0
call 0x512bef
add byte [0x503f4a48], bh
dec edx
dec ebx
cmp al, 0x83
les eax, [ebx + ebx*2]
push ebx
push esi
add esp, 4
add ebx, 0xb580
pop ebx
movzx eax, word [ebp - 0x38]
test eax, eax
jne 0x512c1c
movzx ecx, word [ebp - 0x204]
movzx edx, word [ebp - 0x38]
sub ecx, edx
mov dword [ebp - 0x1514], ecx
jmp 0x512c76
movzx eax, word [ebp - 0x204]
movzx ecx, word [ebp - 0x38]
cmp eax, ecx
je 0x512b44
movzx edx, word [ebp - 0x204]
xor edx, 0x20
movzx eax, word [ebp - 0x38]
cmp edx, eax
je 0x512b44
movzx ecx, word [ebp - 0x204]
movzx edx, word [ebp - 0x38]
cmp ecx, edx
jge 0x512c60
mov dword [ebp - 0x1510], 0xffffffff
jmp 0x512c6a
mov dword [ebp - 0x1510], 1
mov eax, dword [ebp - 0x1510]
mov dword [ebp - 0x1514], eax
cmp dword [ebp - 0x1514], 0
jne 0x512cbf
push esi
and esi, 0xce88
xor esi, 0xe228
pop esi
push ecx
push ebx
add esp, 4
call 0x512ca1
add byte [ecx + eax*2 + 0x40], cl
inc ecx
cmp byte [ebp + 0x39], cl
inc esi
dec esi
add esp, 4
add ecx, 0x15b37
xor ecx, 0x12bdb
pop ecx
mov ecx, dword [ebp - 0x4e4]
mov dword [ebp - 0x2a8], ecx
jmp 0x512d27
push esi
add esi, 0x78d5
or esi, 0x7dc
pop esi
push ebx
xor ebx, 0x16de8
and ebx, 0x7390
xor ebx, 0x9b69
sub ebx, 0xa6af
pop ebx
push esi
jmp 0x512cf0
pop esi
mov edx, dword [ebp - 0x4e4]
mov eax, dword [edx]
mov dword [ebp - 0x4e4], eax
mov ecx, dword [ebp - 0x4e4]
cmp ecx, dword [ebp - 0xc4c]
je 0x512d1d
mov edx, dword [ebp - 0x4e4]
cmp dword [edx + 0x30], 0
jne 0x512ae8
mov dword [ebp - 0x2a8], 0
push edx
push esi
add esp, 4
or edx, 0x12fd5
or edx, 0x17cc1
pop edx
push ecx
or ecx, 0x112c
or ecx, 0xfaca
add ecx, 0x1337b
pop ecx
push ebx
push ebx
add esp, 4
or ebx, 0xf7d5
pop ebx
cmp dword [ebp - 0x2a8], 0
jne 0x51365e
mov eax, 0x6b
mov word [ebp - 0x16e8], ax
mov ecx, 0x65
mov word [ebp - 0x16e6], cx
mov edx, 0x72
mov word [ebp - 0x16e4], dx
mov eax, 0x6e
mov word [ebp - 0x16e2], ax
mov ecx, 0x65
mov word [ebp - 0x16e0], cx
mov edx, 0x6c
mov word [ebp - 0x16de], dx
mov eax, 0x33
mov word [ebp - 0x16dc], ax
mov ecx, 0x32
mov word [ebp - 0x16da], cx
mov edx, 0x2e
mov word [ebp - 0x16d8], dx
mov eax, 0x64
mov word [ebp - 0x16d6], ax
mov ecx, 0x6c
mov word [ebp - 0x16d4], cx
mov edx, 0x6c
mov word [ebp - 0x16d2], dx
xor eax, eax
mov word [ebp - 0x16d0], ax
push edx
push edi
add esp, 4
jmp 0x512e0a
and edx, 0xac9b
pop edx
push edi
call 0x512e21
add byte [esi + 0x4c], al
dec esp
inc edi
dec ecx
dec ebx
cmp eax, 0xc4833f42
add al, 0x81
out dx, eax
adc eax, 0x8100000c
out dx, eax
sbb al, 0x6f
add byte [eax], al
pop edi
mov byte [ebp - 0x830], 0x4c
mov byte [ebp - 0x82f], 0x6f
mov byte [ebp - 0x82e], 0x61
mov byte [ebp - 0x82d], 0x64
mov byte [ebp - 0x82c], 0x4c
mov byte [ebp - 0x82b], 0x69
mov byte [ebp - 0x82a], 0x62
mov byte [ebp - 0x829], 0x72
mov byte [ebp - 0x828], 0x61
mov byte [ebp - 0x827], 0x72
mov byte [ebp - 0x826], 0x79
mov byte [ebp - 0x825], 0x57
mov byte [ebp - 0x824], 0
mov ecx, dword fs:[0x18]
mov dword [ebp - 0x18d8], ecx
mov edx, dword [ebp - 0x18d8]
mov eax, dword [edx + 0x30]
mov dword [ebp - 0x18dc], eax
mov ecx, dword [ebp - 0x18dc]
mov dword [ebp - 0x1518], ecx
push edi
push eax
add esp, 4
sub edi, 0x1d38
xor edi, 0x5707
xor edi, 0x15224
pop edi
push ebx
and ebx, 0x182d9
xor ebx, 0xcc06
and ebx, 0x10b82
xor ebx, 0xb66f
pop ebx
cmp dword [ebp - 0x1518], 0
jne 0x512efe
mov dword [ebp - 0x710], 0
jmp 0x5131a5
mov edx, dword [ebp - 0x1518]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0xc58], ecx
push eax
push eax
add esp, 4
add eax, 0xb3bd
xor eax, 0x17e1f
pop eax
push edx
push edx
add esp, 4
and edx, 0xa6cb
sub edx, 0x74b5
pop edx
push ebx
or ebx, 0xd4ad
or ebx, 0x13ff4
pop ebx
cmp dword [ebp - 0xc58], 0
jne 0x512f5a
mov dword [ebp - 0x710], 0
jmp 0x5131a5
mov edx, dword [ebp - 0xc58]
mov dword [ebp - 0x4e8], edx
push edx
push eax
add esp, 4
and edx, 0xf9b7
or edx, 0x144b
pop edx
push ecx
push ebx
add esp, 4
xor ecx, 0x6613
pop ecx
push edx
xor edx, 0x68a3
pop edx
push ecx
push edi
add esp, 4
add ecx, 0xcee8
pop ecx
lea eax, [ebp - 0x16e8]
mov dword [ebp - 0xc54], eax
mov ecx, dword [ebp - 0x4e8]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0xc50], edx
xor eax, eax
mov word [ebp - 0x208], ax
xor ecx, ecx
mov word [ebp - 0x3c], cx
push edi
push esi
add esp, 4
add edi, 0xdb0e
pop edi
push ecx
call 0x512fdc
add byte [edi + edi + 0x34], cl
dec ebx
inc esp
dec ebx
cmp al, 0x83
les eax, [ecx + eax*4]
jmp 0x51bef5
push edi
push ebx
add esp, 4
and edi, 0x1591b
jmp 0x5131b8
jmp 0x5131c0
pop edi
push ecx
jmp 0x5131c8
sub ecx, 0x62b7
jmp 0x5131d6
pop ecx
cmp dword [ebp - 0x710], 0
jne 0x513221
push eax
add eax, 0x15a51
or eax, 0x13ab
sub eax, 0x8e75
add eax, 0x7b3d
pop eax
push ecx
push edx
add esp, 4
or ecx, 0x74d8
sub ecx, 0x15839
add ecx, 0x17011
pop ecx
mov dword [ebp - 0xa58], 0
jmp 0x513d49
push esi
push edx
add esp, 4
sub esi, 0xc6dc
pop esi
push eax
push edx
add esp, 4
sub eax, 0xdd61
sub eax, 0x90ae
pop eax
push eax
xor eax, 0xb09c
add eax, 0x1699f
and eax, 0x111b0
pop eax
mov ecx, dword [ebp - 0x710]
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0x300], edx
mov dword [ebp - 0x720], 0
mov eax, dword [ebp - 0x300]
mov dword [ebp - 0x1564], eax
cmp dword [ebp - 0x1564], 0
jne 0x513292
mov ecx, dword [ebp - 0x720]
mov dword [ebp - 0x3c8], ecx
jmp 0x513583
mov edx, dword [ebp - 0x1564]
mov eax, dword [ebp - 0x300]
add eax, dword [edx + 0x3c]
mov dword [ebp - 0x1568], eax
jne 0x5132ba
mov ecx, dword [ebp - 0x720]
mov dword [ebp - 0x3c8], ecx
jmp 0x513583
mov edx, 8
imul eax, edx, 0
mov ecx, dword [ebp - 0x1568]
mov edx, dword [ecx + eax + 0x78]
mov dword [ebp - 0x1570], edx
cmp dword [ebp - 0x1570], 0
jne 0x5132ec
mov eax, dword [ebp - 0x720]
mov dword [ebp - 0x3c8], eax
jmp 0x513583
mov ecx, dword [ebp - 0x300]
add ecx, dword [ebp - 0x1570]
mov dword [ebp - 0x714], ecx
jne 0x513311
mov edx, dword [ebp - 0x720]
mov dword [ebp - 0x3c8], edx
jmp 0x513583
mov eax, dword [ebp - 0x714]
mov ecx, dword [ebp - 0x300]
add ecx, dword [eax + 0x20]
mov dword [ebp - 0x18e0], ecx
mov edx, dword [ebp - 0x714]
mov eax, dword [ebp - 0x300]
add eax, dword [edx + 0x24]
mov dword [ebp - 0x18e4], eax
mov ecx, dword [ebp - 0x714]
mov edx, dword [ebp - 0x300]
add edx, dword [ecx + 0x1c]
mov dword [ebp - 0x18e8], edx
mov dword [ebp - 0x718], 0
jmp 0x51336b
mov eax, dword [ebp - 0x718]
add eax, 1
mov dword [ebp - 0x718], eax
mov ecx, dword [ebp - 0x714]
mov edx, dword [ebp - 0x718]
cmp edx, dword [ecx + 0x18]
jae 0x513577
mov eax, dword [ebp - 0x718]
mov ecx, dword [ebp - 0x18e0]
mov edx, dword [ebp - 0x300]
add edx, dword [ecx + eax*4]
mov dword [ebp - 0x71c], edx
mov eax, dword [ebp - 0x718]
mov ecx, dword [ebp - 0x18e4]
movzx edx, word [ecx + eax*2]
mov eax, dword [ebp - 0x18e8]
mov ecx, dword [ebp - 0x300]
add ecx, dword [eax + edx*4]
mov dword [ebp - 0x18ec], ecx
mov dword [ebp - 0x188], 0
jmp 0x5133db
mov edx, dword [ebp - 0x188]
add edx, 1
mov dword [ebp - 0x188], edx
mov eax, dword [ebp - 0x71c]
add eax, dword [ebp - 0x188]
movsx ecx, byte [eax]
test ecx, ecx
je 0x51348d
mov edx, dword [ebp - 0x188]
movsx eax, byte [ebp + edx - 0x830]
test eax, eax
je 0x51348d
push edx
sub edx, 0x321c
add edx, 0x74bb
sub edx, 0x6481
pop edx
push esi
push ecx
add esp, 4
or esi, 0xf025
xor esi, 0x17c69
and esi, 0x175c8
sub esi, 0x3ba2
pop esi
mov ecx, dword [ebp - 0x71c]
add ecx, dword [ebp - 0x188]
movsx edx, byte [ecx]
mov eax, dword [ebp - 0x188]
movsx ecx, byte [ebp + eax - 0x830]
cmp edx, ecx
je 0x51347f
mov edx, dword [ebp - 0x71c]
add edx, dword [ebp - 0x188]
movsx eax, byte [edx]
xor eax, 0x20
mov ecx, dword [ebp - 0x188]
movsx edx, byte [ebp + ecx - 0x830]
cmp eax, edx
jne 0x513486
jmp 0x5133cc
jmp 0x51348d
push ebx
push edi
add esp, 4
sub ebx, 0xa982
call 0x5134a7
add byte [edi + 0x35], cl
cmp eax, 0x453e5037
dec ebx
inc ebx
add esp, 4
pop ebx
push edi
push edi
add esp, 4
sub edi, 0xec8c
pop edi
push eax
or eax, 0x3d57
pop eax
mov eax, dword [ebp - 0x71c]
add eax, dword [ebp - 0x188]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0x188]
movsx eax, byte [ebp + edx - 0x830]
cmp ecx, eax
jne 0x5134ec
mov dword [ebp - 0xc5c], 0
jmp 0x51355b
push eax
push edi
add esp, 4
xor eax, 0xbd52
add eax, 0x175af
xor eax, 0x33cb
pop eax
push edx
add edx, 0x3a6b
or edx, 0x7d54
add edx, 0x421e
add edx, 0x3a91
pop edx
mov ecx, dword [ebp - 0x71c]
add ecx, dword [ebp - 0x188]
movsx edx, byte [ecx]
or edx, 0x20
mov eax, dword [ebp - 0x188]
movsx ecx, byte [ebp + eax - 0x830]
or ecx, 0x20
cmp edx, ecx
jge 0x513551
mov dword [ebp - 0xc5c], 0xffffffff
jmp 0x51355b
mov dword [ebp - 0xc5c], 1
cmp dword [ebp - 0xc5c], 0
jne 0x513572
mov edx, dword [ebp - 0x18ec]
mov dword [ebp - 0x3c8], edx
jmp 0x513583
jmp 0x51335c
mov eax, dword [ebp - 0x720]
mov dword [ebp - 0x3c8], eax
cmp dword [ebp - 0x3c8], 0
je 0x51365e
push ebx
and ebx, 0x162b3
add ebx, 0x35e2
and ebx, 0x3782
pop ebx
push edi
xor edi, 0x1842c
call 0x5135b8
add byte [edx], bh
dec esi
push eax
dec esi
cmp eax, 0xc4834e4a
add al, 0x81
out dx, eax
cmp dword [esi], ebp
add dword [eax], eax
pop edi
mov ecx, dword [ebp - 0x3c8]
mov dword [ebp - 0x18f0], ecx
push eax
push edx
add esp, 4
jmp 0x5135d9
add eax, 0x67d7
pop eax
push edx
and edx, 0x1533d
xor edx, 0x2aac
or edx, 0xb7b2
pop edx
push edi
push esi
add esp, 4
or edi, 0x743
pop edi
mov edx, dword [ebp - 0x18f0]
mov dword [ebp - 0x18f4], edx
lea eax, [ebp - 0x1628]
push eax
call dword [ebp - 0x18f4]
test eax, eax
jne 0x51365e
push ebx
push ebx
add esp, 4
and ebx, 0x1462b
and ebx, 0x17ef3
and ebx, 0x5355
sub ebx, 0x890f
pop ebx
push ebx
sub ebx, 0x143c3
pop ebx
push ecx
push ebx
add esp, 4
sub ecx, 0xbb60
pop ecx
mov dword [ebp - 0xa58], 0
jmp 0x513d49
push ecx
push ebx
add esp, 4
and ecx, 0x168c6
and ecx, 0x11d13
sub ecx, 0x29e5
xor ecx, 0x1611d
pop ecx
push esi
and esi, 0x1593a
pop esi
push eax
push esi
add esp, 4
sub eax, 0x5f25
pop eax
mov ecx, dword fs:[0x18]
mov dword [ebp - 0x18f8], ecx
mov edx, dword [ebp - 0x18f8]
mov eax, dword [edx + 0x30]
mov dword [ebp - 0x18fc], eax
mov ecx, dword [ebp - 0x18fc]
mov dword [ebp - 0x1574], ecx
push edx
and edx, 0x12622
add edx, 0x11353
sub edx, 0x7d4d
pop edx
push edi
push esi
add esp, 4
add edi, 0xa28f
and edi, 0x5240
or edi, 0xc26e
sub edi, 0x14a66
pop edi
cmp dword [ebp - 0x1574], 0
jne 0x513702
mov dword [ebp - 0x2a8], 0
jmp 0x5139a9
mov edx, dword [ebp - 0x1574]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0xc68], ecx
push edi
call 0x513724
add byte [eax + 0x40], al
inc edx
xor eax, dword [eax + 0x38]
cmp byte [edi], bh
cmp eax, 0x8104c483
test eax, 0x81000004
out dx, eax
les esi, [0x565f0000]
push ecx
add esp, 4
or esi, 0xcbb0
and esi, 0x11092
pop esi
cmp dword [ebp - 0xc68], 0
jne 0x51375e
mov dword [ebp - 0x2a8], 0
jmp 0x5139a9
mov edx, dword [ebp - 0xc68]
mov dword [ebp - 0x4ec], edx
push ecx
and ecx, 0xc764
and ecx, 0x18363
and ecx, 0xab43
pop ecx
push edi
push ebx
add esp, 4
and edi, 0x12b1d
add edi, 0x11747
add edi, 0x8762
add edi, 0xc78b
pop edi
lea eax, [ebp - 0x1628]
mov dword [ebp - 0xc64], eax
mov ecx, dword [ebp - 0x4ec]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0xc60], edx
xor eax, eax
mov word [ebp - 0x20c], ax
xor ecx, ecx
mov word [ebp - 0x40], cx
push eax
call 0x5137d5
add byte [ecx + 0x4a], al
cmp al, byte [ecx + 0x4e]
cmp dl, byte [eax + 0x43]
add esp, 4
call 0x5137e5
add byte [ebx], bh
dec ecx
cmp al, 0x47
cmp al, byte ds:[ecx - 0x7d]
les eax, [ebx + ebp*8]
pop es
dec eax
cmp byte [edi + 0x3a], cl
dec edi
cmp al, 0x40
and eax, 0x6384
pop eax
mov edx, dword [ebp - 0xc60]
mov ax, word [edx]
mov word [ebp - 0xf92], ax
mov ecx, dword [ebp - 0xc60]
add ecx, 2
mov dword [ebp - 0xc60], ecx
mov dx, word [ebp - 0xf92]
mov word [ebp - 0x20c], dx
mov eax, dword [ebp - 0xc64]
mov cx, word [eax]
mov word [ebp - 0xf94], cx
mov edx, dword [ebp - 0xc64]
add edx, 2
mov dword [ebp - 0xc64], edx
mov ax, word [ebp - 0xf94]
mov word [ebp - 0x40], ax
push eax
sub eax, 0x17ad8
call 0x513866
add byte [edx], dh
dec ecx
dec ebp
dec esi
dec eax
push eax
xor al, byte [ecx + edi + 0x45]
add esp, 4
call 0x513877
add byte [ebp + 0x4f], al
inc esi
dec edi
inc edi
inc ebx
inc eax
cmp eax, dword [ebx - 0xf7efb3c]
dec esp
and al, 0
add byte [eax + 0xf], bl
mov bh, 0x4d
rol byte [ebp + 0xf1575c9], 0xb7
xchg ebp, eax
hlt
push ebx
push esi
add esp, 4
jmp 0x5139b5
pop ebx
push eax
and eax, 0x120c0
call 0x5139cb
add byte [edx + 0x33], cl
dec esi
inc eax
cmp cl, byte [eax + 0x3a]
xor al, 0x83
les eax, [ecx + eax*4]
call fcn.00513e48
xor eax, 0xaa24
pop eax
mov ecx, dword [ebp - 0x2a8]
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0x304], edx
push ecx
push edi
add esp, 4
and ecx, 0x17ebd
pop ecx
push eax
call 0x513a06
add byte [esi + 0x32], cl
dec esi
cmp ecx, dword [ebp + edi + 0x35]
dec eax
add esp, 4
or eax, 0x183dd
xor eax, 0xbe5a
add eax, 0xb9a2
pop eax
mov dword [ebp - 0x730], 0
mov eax, dword [ebp - 0x304]
mov dword [ebp - 0x1580], eax
cmp dword [ebp - 0x1580], 0
jne 0x513a4c
mov ecx, dword [ebp - 0x730]
mov dword [ebp - 0x4f0], ecx
jmp 0x513d3d
mov edx, dword [ebp - 0x1580]
mov eax, dword [ebp - 0x304]
add eax, dword [edx + 0x3c]
mov dword [ebp - 0x1584], eax
jne 0x513a74
mov ecx, dword [ebp - 0x730]
mov dword [ebp - 0x4f0], ecx
jmp 0x513d3d
mov edx, 8
imul eax, edx, 0
mov ecx, dword [ebp - 0x1584]
mov edx, dword [ecx + eax + 0x78]
mov dword [ebp - 0x1588], edx
cmp dword [ebp - 0x1588], 0
jne 0x513aa6
mov eax, dword [ebp - 0x730]
mov dword [ebp - 0x4f0], eax
jmp 0x513d3d
mov ecx, dword [ebp - 0x304]
add ecx, dword [ebp - 0x1588]
mov dword [ebp - 0x724], ecx
jne 0x513acb
mov edx, dword [ebp - 0x730]
mov dword [ebp - 0x4f0], edx
jmp 0x513d3d
mov eax, dword [ebp - 0x724]
mov ecx, dword [ebp - 0x304]
add ecx, dword [eax + 0x20]
dec eax
and byte [ecx - 0x18ff73], cl
dec dword [ebx - 0x7236b]
dec dword [ebx - 0x3037b]
inc dword [ebx]
inc edx
and al, 0x89
test esp, edi
out 0xff, al
dec dword [ebx - 0x72373]
dec dword [ebx - 0x3036b]
inc dword [ebx]
push ecx
sbb al, 0x89
xchg ebp, eax
clc
out 0xff, al
inc edi
test eax, ebx
clc
invalid
inc dword [eax]
add byte [eax], al
add bl, ch
invalid
in al, dx
add eax, 0x38353c39
jmp 0x152c00a