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

Disassembly:
push 0xffffffffffffffff
push 0x4829f0
mov eax, dword fs:[0]
push eax
sub esp, 0x64
mov eax, dword [0x4a1620]
xor eax, esp
mov dword [esp + 0x60], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4a1620]
xor eax, esp
push eax
lea eax, [esp + 0x78]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [edi + 0x2e4]
mov esi, dword [edi + 0xbc]
push 0x18
push eax
push 8
push 0x1c
mov ecx, 0xc454c4
call fcn.00402610
add esp, 0x10
cmp byte [0x4a5dec], 0
mov esi, eax
mov dword [esp + 0x28], esi
jne 0x418edd
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov dword [0x4a5de8], eax
mov eax, dword [edi + 0x328]
test eax, eax
mov byte [0x4a5dec], 1
jne 0x4188ae
mov dword [esp + 0x24], 0
mov dword [esp + 0x1c], esi
mov edx, dword [esp + 0x1c]
mov eax, dword [edi + 0xbc]
push 0
push 4
lea ecx, [esp + 0x34]
push ecx
push edx
push eax
call ebx
test eax, eax
jne 0x4186b9
or eax, 0xffffffff
jmp 0x4186c5
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4187f5
mov esi, dword [edi + 0xbc]
push 0
lea ebp, [eax + 4]
push 4
lea eax, [esp + 0x3c]
push eax
push ebp
push esi
call ebx
test eax, eax
je 0x418704
mov eax, dword [esp + 0x34]
push 0
push 4
lea ecx, [esp + 0x40]
push ecx
add eax, 0x128
push eax
push esi
call ebx
test eax, eax
je 0x418704
cmp dword [esp + 0x38], 1
je 0x4187f5
mov eax, dword [edi + 0x4894]
mov ecx, dword [edi + 0xbc]
push 0
push 4
lea edx, [esp + 0x38]
push edx
push eax
push ecx
call ebx
test eax, eax
jne 0x418726
or esi, 0xffffffff
jmp 0x41872a
mov esi, dword [esp + 0x30]
mov eax, dword [edi + 0x4890]
mov ecx, dword [edi + 0xbc]
push 0
push 4
lea edx, [esp + 0x20]
push edx
push eax
push ecx
call ebx
test eax, eax
jne 0x41874c
or eax, 0xffffffff
jmp 0x418750
mov eax, dword [esp + 0x18]
push esi
mov esi, dword [edi + 0xbc]
push eax
push 0x44
mov ecx, ebp
call fcn.004024d0
mov esi, dword [edi + 0xbc]
add esp, 4
push eax
push 0x3c
mov ecx, ebp
call fcn.004024d0
add esp, 4
call fcn.0040c4e0
cmp eax, dword [edi + 0x2108]
jge 0x4187f5
mov esi, dword [edi + 0xbc]
push 0x294
mov ecx, ebp
call fcn.004024d0
add esp, 4
lea ecx, [esp + 0x20]
push ecx
push edi
mov ecx, 2
mov edx, eax
call fcn.0041a140
xor ebp, ebp
mov dword [esp + 0x80], ebp
mov edx, dword [esp + 0x20]
push 0x48d6fc
push edx
call fcn.00466452
add esp, 8
cmp eax, ebp
je 0x418815
mov dword [esp + 0x80], 0xffffffff
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4187f5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x24]
add dword [esp + 0x1c], 4
add eax, 1
cmp eax, 0x301
mov dword [esp + 0x24], eax
jl 0x418699
jmp 0x41889a
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov esi, dword [edi + 0xbc]
push 8
lea ecx, [ecx + eax*4]
mov dword [0x4a2c5c], eax
call fcn.004024d0
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x48ebb0
mov dword [0x4a5de4], eax
mov dword [edi + 0x330], ebp
mov dword [edi + 0x328], 1
mov dword [0x4a5de0], ebp
call fcn.004014f0
push edi
call fcn.00411cf0
mov dword [esp + 0x80], 0xffffffff
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov dword [0x4a5aec], ebp
mov dword [0x4a5ddc], ebp
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41889a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [edi + 0x328]
test eax, eax
jne 0x4188ae
mov dword [0x4a5dd8], 0xbb8
cmp eax, 1
mov esi, 2
jne 0x4188de
cmp dword [0x4a5aec], esi
jge 0x4188ce
call fcn.0041af10
add dword [0x4a5aec], 1
jmp 0x4188de
mov dword [edi + 0x328], esi
mov dword [0x4a5dd8], 0x1f4
cmp dword [edi + 0x328], esi
jne 0x41892e
mov esi, dword [edi + 0xbc]
push 0x29
push 0x258
push 0x1c
mov ecx, 0xc454c4
call fcn.00402570
add esp, 0xc
shl eax, 0x1f
jne 0x41891a
mov eax, edi
call fcn.00420370
mov dword [0x4a5dd8], 0x1f4
jmp 0x41892e
mov dword [edi + 0x328], 3
mov dword [0x4a5dd8], 0x64
cmp dword [edi + 0x328], 3
jne 0x418cc5
mov ecx, dword [0x4a2c5c]
mov edx, dword [esp + 0x28]
push 0
lea eax, [edx + ecx*4]
mov ecx, dword [edi + 0xbc]
push 4
lea edx, [esp + 0x20]
push edx
push eax
push ecx
call ebx
test eax, eax
jne 0x418964
or esi, 0xffffffff
jmp 0x418968
mov esi, dword [esp + 0x18]
call fcn.0044bb76
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x418982
push 0x80004005
call fcn.004012e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
test esi, esi
mov dword [esp + 0x80], 1
je 0x418c7f
lea ebp, [esi + 4]
mov esi, dword [edi + 0xbc]
push 0x294
mov ecx, ebp
call fcn.004024d0
add esp, 4
lea ecx, [esp + 0x18]
push ecx
push edi
mov ecx, 2
mov edx, eax
call fcn.0041a140
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x84], 2
call fcn.00405a40
mov byte [esp + 0x80], 1
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x418a09
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [edi + 0xbc]
push 0x44
push 0x28
push 0x1c
mov ecx, 0xc454c4
call fcn.00402570
mov esi, dword [edi + 0xbc]
add esp, 0xc
push eax
push 0x3c
push 0x28
push 0x1c
mov ecx, 0xc454c4
call fcn.00402570
mov esi, dword [edi + 0xbc]
add esp, 0xc
push eax
push 0x44
mov ecx, ebp
call fcn.004024d0
mov esi, dword [edi + 0xbc]
add esp, 4
push eax
push 0x3c
mov ecx, ebp
call fcn.004024d0
add esp, 4
call fcn.0040c4e0
mov ecx, dword [esp + 0x20]
push 0x48d6fc
push ecx
mov esi, eax
call fcn.00466452
add esp, 8
test eax, eax
sete al
test al, al
je 0x418c7f
cmp esi, 0x1e
jge 0x418c7f
mov eax, edi
call fcn.0041e3e0
mov esi, dword [0x4a5de4]
cmp esi, eax
je 0x418b98
push 0x38
xor ebp, ebp
lea edx, [esp + 0x40]
push ebp
push edx
call fcn.00467720
mov ebx, dword [sym.imp.KERNEL32.dll_VirtualAllocEx]
add esp, 0xc
cmp byte [edi + 0x307], 1
mov dword [esp + 0x3c], esi
mov dword [esp + 0x44], 0x6c8ea0
jne 0x418ae8
mov byte [edi + 0x307], 0
mov dword [0x4a5dd4], ebp
mov dword [0x4a5dd0], ebp
jmp 0x418af1
mov eax, dword [0x4a5dd4]
cmp eax, ebp
jne 0x418b09
mov eax, dword [edi + 0xbc]
push 4
push 0x1000
push 0x38
push ebp
push eax
call ebx
mov dword [0x4a5dd4], eax
mov edx, dword [edi + 0xbc]
mov esi, dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
push ebp
push 0x38
lea ecx, [esp + 0x44]
push ecx
push eax
push edx
call esi
mov eax, dword [0x4a5dd0]
cmp eax, ebp
jne 0x418b47
mov eax, dword [edi + 0xb4]
mov ecx, dword [edi + 0xbc]
push 0x40
push 0x3000
push eax
push ebp
push ecx
call ebx
mov dword [0x4a5dd0], eax
mov edx, dword [edi + 0xb4]
push ebp
push edx
push 0x4429e0
push eax
mov eax, dword [edi + 0xbc]
push eax
call esi
mov edx, dword [0x4a5dd4]
mov eax, dword [0x4a5dd0]
lea ecx, [edi + 0xc0]
push ecx
mov ecx, dword [edi + 0xbc]
push ebp
push edx
push eax
push ebp
push ebp
push ecx
call dword [sym.imp.KERNEL32.dll_CreateRemoteThread]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x4a5dd8], 0x1f4
jmp 0x418c89
mov ebp, 5
cmp dword [0x4a5ddc], ebp
jge 0x418bac
mov eax, edi
call fcn.0041e590
mov edx, dword [edi + 0x21d8]
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
add dword [0x4a5ddc], 1
push 0
push 0
push 0x18b
push edx
call ebx
test eax, eax
jle 0x418c59
lea ecx, [esp + 0x1c]
call fcn.00402440
mov byte [esp + 0x80], 3
mov eax, dword [0x4a5de0]
lea esi, [edi + 0x21b8]
push eax
mov ecx, esi
call fcn.00405ac0
mov ecx, esi
call fcn.004014a0
lea ecx, [esp + 0x1c]
push ecx
push eax
mov ecx, esi
call fcn.0044edf2
push ecx
lea edx, [esp + 0x20]
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
call fcn.004021e0
mov ecx, edi
call fcn.00411800
test eax, eax
jne 0x418c49
push ecx
lea eax, [esp + 0x20]
mov ecx, esp
mov dword [esp + 0x1c], esp
push eax
call fcn.004021e0
mov ecx, edi
call fcn.004110b0
mov dword [0x4a5dd8], 0x7d0
add dword [0x4a5de0], 1
lea ecx, [esp + 0x1c]
call fcn.004010b0
mov ecx, dword [edi + 0x21d8]
push 0
push 0
push 0x18b
push ecx
call ebx
cmp dword [0x4a5de0], eax
jl 0x418c8e
mov dword [0x4a5de0], 0
jmp 0x418c8e
mov dword [edi + 0x328], 4
mov ebp, 5
mov dword [esp + 0x80], 0xffffffff
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov dword [edi + 0x330], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x418cca
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x418cca
mov ebp, 5
cmp dword [edi + 0x328], 4
mov ebx, 6
jne 0x418d61
cmp dword [edi + 0x2210], 1
jne 0x418d5b
mov eax, dword [edi + 0x47ec]
sub eax, 0
je 0x418de7
sub eax, 1
jne 0x418d61
mov esi, dword [edi + 0xbc]
push 0x1724
push 0x28
push 0x1c
mov ecx, 0xc454c4
call fcn.00402570
mov esi, eax
add esp, 0xc
mov eax, edi
call fcn.0041e3e0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
cmp esi, eax
push 0
mov eax, edi
jne 0x418dce
call fcn.0041e430
shr eax, 0x10
push eax
mov eax, edi
call fcn.0041e430
shl eax, 0x10
or eax, 2
push eax
push ebx
mov esi, edi
call fcn.00415a20
mov dword [edi + 0x328], ebp
cmp dword [edi + 0x328], ebp
jne 0x418e60
cmp dword [edi + 0x2214], 1
jne 0x418e5a
mov esi, dword [edi + 0xbc]
push 0x29
push 0x258
push 0x1c
mov ecx, 0xc454c4
call fcn.00402570
add esp, 0xc
test al, 1
je 0x418e5a
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x72
push 4
mov esi, edi
call fcn.00415a20
mov dword [0x4a5dd8], 0x1f4
jmp 0x418e60
call fcn.0041e430
shr eax, 0x10
push eax
mov eax, edi
call fcn.0041e430
shl eax, 0x10
or eax, 2
push eax
jmp 0x418e43
mov esi, dword [edi + 0xbc]
push 0x264
push 0x28
push 0x1c
mov ecx, 0xc454c4
call fcn.00402570
mov esi, eax
add esp, 0xc
mov eax, edi
call fcn.0041e3e0
cmp esi, eax
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
jne 0x418e36
mov ecx, esi
shr ecx, 0x10
shl esi, 0x10
push ecx
or esi, 2
push esi
jmp 0x418d53
mov edx, esi
shr edx, 0x10
shl esi, 0x10
push edx
or esi, 2
push esi
push ebx
mov esi, edi
call fcn.00415a20
mov dword [0x4a5dd8], 0x1f4
jmp 0x418d61
mov dword [edi + 0x328], ebx
cmp dword [edi + 0x328], ebx
mov esi, 7
jne 0x418e92
cmp dword [edi + 0x2218], 1
jne 0x418e7d
call fcn.00420e80
jmp 0x418e8c
push 0xffffffffffffffff
push 0
lea ecx, [edi + 0x129c]
call fcn.0045147c
mov dword [edi + 0x328], esi
cmp dword [edi + 0x328], esi
jne 0x418edd
xor eax, eax
cmp dword [edi + 0x12a4], eax
je 0x418eb5
call fcn.004213e0
mov dword [0x4a5dd8], 0x1f4
jmp 0x418edd
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x48ebc0
mov dword [edi + 0x328], eax
mov dword [edi + 0x330], ebp
mov dword [0x4a5dd8], eax
call fcn.004014f0
push edi
call fcn.00411cf0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x4a5de8]
cmp eax, dword [0x4a5dd8]
jl 0x418f02
mov dword [0x4a5dd8], 0
mov byte [0x4a5dec], 0
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.00465b73
add esp, 0x70
ret