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

Disassembly:
push edi
push ecx
add esp, 4
or edi, 0x14be6
or edi, 0x9aae
sub edi, 0xd2f1
jmp 0x40a8ef
pop edi
push edi
push edi
add esp, 4
xor edi, 0x135e7
xor edi, 0xb8db
pop edi
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
add esi, 0x10916
jmp 0x40a938
pop esi
push edi
sub edi, 0x15790
and edi, 0xb3de
call 0x40a953
add byte [ebx + 0x42], cl
dec edi
dec eax
dec ecx
cmp al, 0x3b
add esp, 4
jmp 0x40a95d
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
or esi, 0x125d6
jmp 0x40a9c2
pop esi
push edx
xor edx, 0x8e0a
pop edx
push esi
add esi, 0x9041
add esi, 0x7662
sub esi, 0xd956
pop esi
push edx
and edx, 0x51f8
pop edx
movzx eax, word [ebp - 0x38]
test eax, eax
jne 0x40aa04
movzx ecx, word [ebp - 0x204]
movzx edx, word [ebp - 0x38]
sub ecx, edx
mov dword [ebp - 0x1514], ecx
jmp 0x40aa5e
movzx eax, word [ebp - 0x204]
movzx ecx, word [ebp - 0x38]
cmp eax, ecx
je 0x40a92c
movzx edx, word [ebp - 0x204]
xor edx, 0x20
movzx eax, word [ebp - 0x38]
cmp edx, eax
je 0x40a92c
movzx ecx, word [ebp - 0x204]
movzx edx, word [ebp - 0x38]
cmp ecx, edx
jge 0x40aa48
mov dword [ebp - 0x1510], 0xffffffff
jmp 0x40aa52
mov dword [ebp - 0x1510], 1
mov eax, dword [ebp - 0x1510]
mov dword [ebp - 0x1514], eax
cmp dword [ebp - 0x1514], 0
jne 0x40aaa7
push ecx
push ecx
add esp, 4
and ecx, 0x3c98
sub ecx, 0x13a75
pop ecx
push esi
push ecx
add esp, 4
sub esi, 0xf41e
add esi, 0x12371
jmp 0x40aa91
jmp 0x40aa98
pop esi
mov ecx, dword [ebp - 0x4e4]
mov dword [ebp - 0x2a8], ecx
jmp 0x40ab0f
push ecx
sub ecx, 0x85ee
or ecx, 0x2cc3
pop ecx
push ecx
sub ecx, 0x12eb1
sub ecx, 0x1627e
add dword [eax], eax
add dword [eax], eax
call 0x40aacf
add byte [eax], bh
push eax
xor al, 0x36
inc esi
cmp esi, dword [edx]
add esp, 4
add ecx, 0xb9de
pop ecx
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 0x40ab05
mov edx, dword [ebp - 0x4e4]
cmp dword [edx + 0x30], 0
jne 0x40a8d0
mov dword [ebp - 0x2a8], 0
push ebx
push esi
add esp, 4
jmp 0x40ab1b
and ebx, 0x17eb3
pop ebx
push edi
call 0x40ab31
add byte [eax + 0x4f], al
cmp eax, 0x3e443c3e
xor eax, 0x8104c483
out 0x4e, eax
je 0x40ab39
add byte [ecx + 0x1589cf7], al
add byte [edi - 0x7d], bl
mov ebp, 0xfffffd58
add byte [edi], cl
test eax, edi
or byte [eax], al
add byte [eax + 0x6b], bh
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 ebx
add esp, 4
xor edx, 0xe661
add edx, 0x160db
xor edx, 0x5530
add edx, 0xaa87
pop edx
push ecx
push ecx
add esp, 4
sub ecx, 0x12646
pop ecx
push edx
or edx, 0x1817
pop edx
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 ebx
push eax
add esp, 4
call 0x40acaf
add byte [esi], dh
dec ebx
inc ecx
cmp byte [eax + 0x3a], dl
dec esp
dec ebx
add esp, 4
pop ebx
push esi
push eax
add esp, 4
jmp 0x40acc1
sub esi, 0x65cc
or esi, 0x8c28
pop esi
cmp dword [ebp - 0x1518], 0
jne 0x40ace6
mov dword [ebp - 0x710], 0
jmp 0x40af8d
mov edx, dword [ebp - 0x1518]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0xc58], ecx
push ecx
push esi
add esp, 4
or ecx, 0x121e4
pop ecx
push ebx
add ebx, 0x12651
sub ebx, 0x18545
call 0x40ad20
add byte [0x374e474f], bh
xor bh, byte [edi]
cmp byte [eax - 0x7d], al
les eax, [ecx + eax*4]
ret
push ecx
add ecx, 0x18274
jmp 0x40af9b
pop ecx
push edi
add edi, 0xf4f5
pop edi
push edx
and edx, 0x17753
jmp 0x40afb2
xor edx, 0x15420
and edx, 0x3e50
pop edx
cmp dword [ebp - 0x710], 0
jne 0x40b009
push ecx
push esi
add esp, 4
call 0x40afda
add byte [esp + esi], bh
inc edi
dec eax
inc ebx
inc edx
add esp, 4
jmp 0x40afe5
sub ecx, 0x7de0
jmp 0x40aff1
pop ecx
push edi
or edi, 0x6084
pop edi
mov dword [ebp - 0xa58], 0
jmp 0x40bb31
push edi
push eax
add esp, 4
sub edi, 0x52b9
pop edi
push ebx
push edi
add esp, 4
sub ebx, 0xba7a
xor ebx, 0x105d2
pop ebx
push ecx
add ecx, 0x7998
jmp 0x40b034
or ecx, 0xcc9e
pop ecx
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 0x40b07a
mov ecx, dword [ebp - 0x720]
mov dword [ebp - 0x3c8], ecx
jmp 0x40b36b
mov edx, dword [ebp - 0x1564]
mov eax, dword [ebp - 0x300]
add eax, dword [edx + 0x3c]
mov dword [ebp - 0x1568], eax
jne 0x40b0a2
mov ecx, dword [ebp - 0x720]
mov dword [ebp - 0x3c8], ecx
jmp 0x40b36b
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 0x40b0d4
mov eax, dword [ebp - 0x720]
mov dword [ebp - 0x3c8], eax
jmp 0x40b36b
mov ecx, dword [ebp - 0x300]
add ecx, dword [ebp - 0x1570]
mov dword [ebp - 0x714], ecx
jne 0x40b0f9
mov edx, dword [ebp - 0x720]
mov dword [ebp - 0x3c8], edx
jmp 0x40b36b
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 0x40b153
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 0x40b35f
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 0x40b1c3
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 0x40b275
mov edx, dword [ebp - 0x188]
movsx eax, byte [ebp + edx - 0x830]
test eax, eax
je 0x40b275
push ecx
sub ecx, 0xd43c
and ecx, 0x6e83
call 0x40b20c
add byte [0x41373738], dh
dec ebx
dec ebp
dec ebx
add esp, 4
add ecx, 0x12728
pop ecx
push ecx
push ecx
add esp, 4
xor ecx, 0x1f7e
pop ecx
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 0x40b267
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 0x40b26e
jmp 0x40b1b4
jmp 0x40b275
push eax
xor eax, 0x15138
xor eax, 0x4270
and eax, 0x7837
pop eax
push eax
push edx
add esp, 4
sub eax, 0x8303
and eax, 0x10ad8
and eax, 0x12653
xor eax, 0x8d7f
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 0x40b2d4
mov dword [ebp - 0xc5c], 0
jmp 0x40b343
push ebx
sub ebx, 0x15de0
and ebx, 0xa631
add ebx, 0x1550
jmp 0x40b2ed
pop ebx
push ecx
push ebx
add esp, 4
sub ecx, 0x14a01
or ecx, 0x4d00
and ecx, 0x16b72
pop ecx
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 0x40b339
mov dword [ebp - 0xc5c], 0xffffffff
jmp 0x40b343
mov dword [ebp - 0xc5c], 1
cmp dword [ebp - 0xc5c], 0
jne 0x40b35a
mov edx, dword [ebp - 0x18ec]
mov dword [ebp - 0x3c8], edx
jmp 0x40b36b
jmp 0x40b144
mov eax, dword [ebp - 0x720]
mov dword [ebp - 0x3c8], eax
cmp dword [ebp - 0x3c8], 0
je 0x40b446
push esi
push eax
add esp, 4
call 0x40b38c
add byte [edx + 0x47], al
xor al, 0x35
dec eax
inc ebp
dec edx
inc esp
xor al, 0x83
les eax, [ecx + eax*4]
into
jp 0x40b318
add dword [eax], eax
pop esi
push ecx
push eax
add esp, 4
or ecx, 0x133d1
pop ecx
push edx
or edx, 0xbdbc
pop edx
mov ecx, dword [ebp - 0x3c8]
mov dword [ebp - 0x18f0], ecx
push eax
sub eax, 0x1287c
and eax, 0x1632b
sub eax, 0x16faa
pop eax
push ecx
push esi
add esp, 4
call 0x40b3df
add byte [edx + 0x34], cl
cmp eax, 0x324d443c
inc ebx
inc edi
aas
add esp, 4
jmp 0x40b3e7
pop ecx
mov edx, dword [ebp - 0x18f0]
mov dword [ebp - 0x18f4], edx
lea eax, [ebp - 0x1628]
push eax
call dword [ebp - 0x18f4]
test eax, eax
jne 0x40b446
push eax
xor eax, 0x1487d
sub eax, 0x13026
or eax, 0x16d83
pop eax
push edi
sub edi, 0xe81f
call 0x40b42d
add byte [ebx], dh
xor al, 0x39
inc ebp
xor eax, 0xc4834d46
add al, 0x81
iretd
push ebx
push esi
add esp, 4
jmp 0x40b450
or ebx, 0x1375c
pop ebx
push edx
call 0x40b468
add byte [edx + 0x3a], cl
xor ecx, dword [edx + 0x44]
dec ecx
dec edx
aas
inc edx
xor al, 0x83
les eax, [ecx + eax*4]
ljmp 0xea81
push ebx
push edx
add esp, 4
sub ebx, 0x11c34
xor ebx, 0x9737
pop ebx
push edx
sub edx, 0xcb8d
pop edx
push edx
push edi
add esp, 4
call 0x40bb5f
add byte [eax + 0x3f], al
cmp al, 0x41
dec ebp
xor eax, dword [esi + 0x4a]
inc ebx
add esp, 4
pop edx
mov edx, dword [ebp - 0xa58]
mov dword [ebp - 0x1910], edx
lea eax, [ebp - 0xc70]
push eax
push 0x40
mov ecx, dword [ebp - 0x158c]
push ecx
mov edx, dword [ebp - 0x3cc]
push edx
call dword [ebp - 0x1910]
test eax, eax
jne 0x40bbd6
push ebx
and ebx, 0x137a8
pop ebx
push eax
push edi
add esp, 4
or eax, 0x17cd4
or eax, 0x487e
or eax, 0xac04
call 0x40bbbe
add byte [ebx + 0x45], al
xor eax, 0x3e374d4f
inc esp
add esp, 4
pop eax
mov eax, dword [ebp - 0x738]
mov dword [ebp - 0x1914], eax
push 0
call dword [ebp - 0x1914]
mov ecx, dword [ebp - 0x1918]
mov dword [ebp - 0x734], ecx
jmp 0x40bbf3
mov edx, dword [ebp - 0x734]
add edx, 1
mov dword [ebp - 0x734], edx
mov eax, dword [ebp - 0x734]
cmp eax, dword [ebp - 0xa5c]
jae 0x40bc4f
push eax
push eax
add esp, 4
call 0x40bc12
add byte [edx + 0x3b], al
dec esp
aas
dec eax
xor al, byte [ebx + 0x505804c4]
push esi
add esp, 4
sub eax, 0x12fb2
sub eax, 0xe33e
add eax, 0x9796
jmp 0x40bc32
pop eax
movzx ecx, byte [ebp - 0x381]
mov edx, dword [ebp - 0x734]
movsx eax, byte [edx]
sub eax, ecx
mov ecx, dword [ebp - 0x734]
mov byte [ecx], al
jmp 0x40bbe4
mov edx, dword [ebp - 0xa58]
mov dword [ebp - 0x191c], edx
lea eax, [ebp - 0xc70]
push eax
mov ecx, dword [ebp - 0xc70]
push ecx
mov edx, dword [ebp - 0x158c]
push edx
mov eax, dword [ebp - 0x3cc]
push eax
call dword [ebp - 0x191c]
test eax, eax
jne 0x40bcc7
push ecx
sub ecx, 0x8d2f
sub ecx, 0xd627
pop ecx
push ebx
and ebx, 0x5174
pop ebx
push ebx
push ecx
add esp, 4
xor ebx, 0x243e
pop ebx
push edx
xor edx, 0x12153
pop edx
push eax
jmp 0x40bcb2
pop eax
mov ecx, dword [ebp - 0x738]
mov dword [ebp - 0x1920], ecx
push 0
call dword [ebp - 0x1920]
push edi
xor edi, 0xc24e
jmp 0x40bcd7
add edi, 0xbcc9
pop edi
push ebx
call 0x40bced
add byte [ebp + 0x38], al
cmp eax, 0x3b484243
cmp eax, dword [ebx + 0x6eb04c4]
cmp byte [ebp + 0x3e], cl
aas
inc esp
dec ecx
pop ebx
push edx
mov ecx, 0x10101010
pop edx
push ecx
mov ecx, 0xffff01ff
pop ecx
push edx
push esp
test ch, al
add eax, 0x4a3906ec
dec ebx
dec edx
push eax
xor dl, 0xa0
jge 0x40bd1a
add dword [edx + 0x104c5ea], eax
add dword [edx + 0x58], ebx
push ecx
test ch, al
add eax, 0x1010ce9
add dword [ecx], eax
xor al, 0x4d
cmp dh, byte [edi]
cmp byte [ebx + 0x4a], al
push ecx
dec ebx
aas
test ch, al
add eax, 0x16cbb60
add dword [ecx], eax
mov dl, byte [bp - 0x1543]
add byte [eax], al
mov ecx, 0x1010166
mov al, byte [bp - 0x1541]
add byte [eax], al
mov edx, 0x1010173
mov cl, byte [bp - 0x153f]
add byte [eax], al
mov ebx, 0x101016f
mov dl, byte [bp - 0x153d]
add byte [eax], al
mov ecx, 0x1010166
mov al, byte [bp - 0x153b]
add byte [eax], al
mov edx, 0x101016d
mov cl, byte [bp - 0x1539]
add byte [eax], al
mov ebx, 0x1010134
mov dl, byte [bp - 0x1537]
add byte [eax], al
mov ecx, 0x1010133
mov al, byte [bp - 0x1535]
add byte [eax], al
mov edx, 0x101012f
mov cl, byte [bp - 0x1533]
add byte [eax], al
mov ebx, 0x1010165
mov dl, byte [bp - 0x1531]
add byte [eax], al
mov ecx, 0x101016d
mov al, byte [bp - 0x152f]
add byte [eax], al
mov edx, 0x101016d
mov cl, byte [bp - 0x152d]
add byte [eax], al
xor al, 0xd3
ljmp 0x585a:0x10104c5
mov dl, byte [bp - 0x152b]
add byte [eax], al
mov dword [esi + 0xf06d], 0x6e86c748
lock add byte [eax], al
mov word [esi + 0xf06f], 0xc775
xchg byte [eax - 0x10], dh
add byte [eax], al
dec esi
mov dword [esi + 0xf071], 0x7286c770
lock add byte [eax], al
invalid
invalid
xchg byte [ebx - 0x10], dh