Function at 0x4154c3
Capabilities:
Contain obfuscated stackstrings
Get number of processors
Get process heap force flags
Resolve function by parsing pe exports

Disassembly:
cmp ecx, edx
jge 0x4153e0
mov dword [ebp - 0x1618], 0xffffffff
jmp 0x4153ea
mov dword [ebp - 0x1618], 1
mov eax, dword [ebp - 0x1618]
mov dword [ebp - 0x161c], eax
cmp dword [ebp - 0x161c], 0
jne 0x41543f
push edx
push esi
add esp, 4
add edx, 0x17a1c
and edx, 0x23f5
pop edx
push esi
push edx
add esp, 4
or esi, 0x12604
pop esi
push eax
jmp 0x415424
sub eax, 0x9820
add eax, 0x4db4
pop eax
mov ecx, dword [ebp - 0x514]
mov dword [ebp - 0x2fc], ecx
jmp 0x4154a7
push edx
push esi
add esp, 4
add edx, 0x85b8
sub edx, 0x176f8
or edx, 0x1341b
pop edx
push eax
or eax, 0x3f46
or eax, 0x5f6e
or eax, 0x8e75
and eax, 0x18b4
pop eax
mov edx, dword [ebp - 0x514]
mov eax, dword [edx]
mov dword [ebp - 0x514], eax
mov ecx, dword [ebp - 0x514]
cmp ecx, dword [ebp - 0xcc4]
je 0x41549d
mov edx, dword [ebp - 0x514]
cmp dword [edx + 0x30], 0
jne 0x415268
mov dword [ebp - 0x2fc], 0
push edi
push esi
add esp, 4
or edi, 0x11fe6
pop edi
push eax
call 0x4154c3
add byte [esi + eax*2], bh
aas
cmp al, 0x35
inc esp
cmp ecx, dword [ebp - 0x7d]
les eax, [ecx + eax*4]
loopne 0x4154cc
pushal
add byte [eax], al
pop eax
push eax
push ecx
add esp, 4
add eax, 0x25fd
pop eax
cmp dword [ebp - 0x2fc], 0
jne 0x415dde
mov eax, 0x6b
mov word [ebp - 0x1790], ax
mov ecx, 0x65
mov word [ebp - 0x178e], cx
mov edx, 0x72
mov word [ebp - 0x178c], dx
mov eax, 0x6e
mov word [ebp - 0x178a], ax
mov ecx, 0x65
mov word [ebp - 0x1788], cx
mov edx, 0x6c
mov word [ebp - 0x1786], dx
mov eax, 0x33
mov word [ebp - 0x1784], ax
mov ecx, 0x32
mov word [ebp - 0x1782], cx
mov edx, 0x2e
mov word [ebp - 0x1780], dx
mov eax, 0x64
mov word [ebp - 0x177e], ax
mov ecx, 0x6c
mov word [ebp - 0x177c], cx
mov edx, 0x6c
mov word [ebp - 0x177a], dx
xor eax, eax
mov word [ebp - 0x1778], ax
push esi
or esi, 0x10e67
add esi, 0xfbe8
sub esi, 0xe27d
pop esi
push ebx
push edi
add esp, 4
and ebx, 0x2445
xor ebx, 0xf04e
add ebx, 0x5c8d
sub ebx, 0xad8c
pop ebx
mov byte [ebp - 0x8a4], 0x4c
mov byte [ebp - 0x8a3], 0x6f
mov byte [ebp - 0x8a2], 0x61
test dword [esi - 9], ebx
invalid
jmp dword [ecx - 0x3a]
test dword [edi - 9], ebx
invalid
jmp dword [esi + eax*8 - 0x7b]
pushal
idiv edi
dec dword [esi + eax*8 - 0x7b]
popal
idiv edi
jmp [ecx - 0x3a]
test dword [edx - 9], esp
invalid
jmp dword [edx - 0x3a]
test dword [ebx - 9], esp
invalid
push dword [edx - 0x3a]
test dword [edi + esi*8 - 1], esp
jmp dword [ecx - 0x3a]
test dword [ebp - 9], esp
invalid
push dword [edx - 0x3a]
test dword [esi - 9], esp
invalid
invalid
jns 0x4155c5
test dword [edi - 9], esp
invalid
call dword [edi - 0x3a]
test dword [eax - 9], ebp
invalid
inc dword [eax]
mov ecx, dword fs:[0x18]
mov dword [ebp - 0x199c], ecx
mov edx, dword [ebp - 0x199c]
mov eax, dword [edx + 0x30]
mov dword [ebp - 0x19a0], eax
mov ecx, dword [ebp - 0x19a0]
mov dword [ebp - 0x1620], ecx
push ecx
xor ecx, 0x178b2
call 0x415648
add byte [esp + edi + 0x32], cl
xor al, 0x44
inc esp
inc edx
add esp, 4
pop ecx
push edi
or edi, 0xf9b9
or edi, 0x1696f
add edi, 0x1700d
add edi, 0xaac2
mov edx, 0x5f0000aa
cmp dword [ebp - 0x1620], 0
jne 0x41567e
mov dword [ebp - 0x774], 0
jmp 0x415925
mov edx, dword [ebp - 0x1620]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0xcd0], ecx
push ebx
push ecx
add esp, 4
jmp 0x41569e
sub ebx, 0x15320
pop ebx
push esi
push ecx
add esp, 4
jmp 0x4156af
pop esi
push esi
push eax
add esp, 4
or esi, 0x1581b
sub esi, 0x51e1
pop esi
cmp dword [ebp - 0xcd0], 0
jne 0x4156da
mov dword [ebp - 0x774], 0
jmp 0x415925
mov edx, dword [ebp - 0xcd0]
mov dword [ebp - 0x518], edx
push ebx
push ebx
add esp, 4
sub ebx, 0xa72f
and ebx, 0x1762a
sub ebx, 0x687d
add ebx, 0x955b
pop ebx
push ebx
sub ebx, 0x873f
sub ebx, 0x10ca9
or ebx, 0x1a6
pop ebx
lea eax, [ebp - 0x1790]
mov dword [ebp - 0xccc], eax
mov ecx, dword [ebp - 0x518]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0xcc8], edx
xor eax, eax
mov word [ebp - 0x220], ax
xor ecx, ecx
mov word [ebp - 0x3c], cx
push eax
and eax, 0x170e8
or eax, 0xd90e
or eax, 0x1057b
enter 0x57b, 1
add byte [eax + 0x50], bl
push ebx
add esp, 4
xor eax, 0xd1be
add byte [ecx + 0x17babc8], al
add byte [ecx + 0x15a19f0], al
add byte [ecx + 0x1008ae0], al
add byte [eax - 0x75], bl
xchg ebp, eax
cmp bl, dh
invalid
jmp dword [esi - 0x75]
add ah, byte [esi - 0x77]
test dword [esi - 0x74000011], edi
lea edi, [eax]
invalid
invalid
inc dword [ebx - 0x7276fd3f]
cmp bl, dh
invalid
jmp dword [esi - 0x75]
xchg ebp, eax
mov esi, 0x66ffffef
mov dword [ebp - 0x220], edx
mov eax, dword [ebp - 0xccc]
mov cx, word [eax]
mov word [ebp - 0x1044], cx
mov edx, dword [ebp - 0xccc]
add edx, 2
mov dword [ebp - 0xccc], edx
push ebx
call 0x415935