Function at 0x444ec0
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4924b9
mov eax, dword fs:[0]
push eax
sub esp, 0x28
push ebx
push esi
push edi
mov eax, dword [0x4c4074]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x18], 0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x34], eax
xor bl, bl
call fcn.00420c00
or esi, 0xffffffff
cmp byte [eax + 0x1c], bl
je 0x444ffb
call fcn.00420c00
test byte [eax + 0x20], 4
je 0x444ffb
call fcn.00420c00
mov dword [ebp - 0x30], eax
call fcn.00403d50
mov ecx, eax
test ecx, ecx
je 0x445311
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], 2
lea ecx, [ebp - 0x10]
push 0x25
push str.Waiting_for_commands._File_map_name:
call fcn.004023a0
mov edx, dword [edi + 0xc]
test edx, edx
je 0x444f7d
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 0x1c], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x444f63
sub ecx, dword [ebp - 0x1c]
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x10]
call fcn.004023a0
call fcn.00403d50
mov ecx, eax
test ecx, ecx
je 0x44531b
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x14]
push 0
push 0x4a85e8
call fcn.004023a0
push ecx
lea eax, [ebp - 0x10]
push eax
push ecx
mov ecx, dword [ebp - 0x30]
lea eax, [ebp - 0x14]
push eax
call fcn.00420d60
mov byte [ebp - 4], 2
mov eax, esi
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x444fda
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov eax, esi
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x444ffb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0xa
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x44504e
nop dword [eax]
test bl, bl
jne 0x445028
mov ecx, edi
call fcn.00446e40
test al, al
movzx ebx, bl
mov eax, 1
cmovne ebx, eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp - 0x34]
cmp eax, 0xea60
ja 0x4452f6
push 0xa
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
je 0x445010
test eax, eax
jne 0x4452e8
push dword [edi]
lea ecx, [ebp - 0x2c]
call fcn.00407430
mov dword [ebp - 4], 0xa
lea ecx, [ebp - 0x28]
mov eax, dword [edi]
add eax, 0x820
push eax
call fcn.00407430
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x24]
mov eax, dword [edi]
add eax, 0x1040
push eax
call fcn.00407430
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x20]
mov eax, dword [edi]
add eax, 0x1860
push eax
call fcn.00407430
mov byte [ebp - 4], 0xd
xor ebx, ebx
mov ecx, dword [edi + 0x20]
test ecx, ecx
je 0x4450c2
mov eax, dword [ecx]
lea edx, [ebp - 0x20]
push edx
lea edx, [ebp - 0x24]
push edx
lea edx, [ebp - 0x28]
push edx
lea edx, [ebp - 0x2c]
push edx
call dword [eax]
mov ebx, eax
call fcn.00420c00
cmp byte [eax + 0x1c], 0
je 0x44524c
call fcn.00420c00
test byte [eax + 0x20], 4
je 0x44524c
call fcn.00420c00
mov dword [ebp - 0x30], eax
call fcn.00403d50
mov ecx, eax
test ecx, ecx
je 0x445325
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x10], eax
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x10]
push 8
push str.Command
call fcn.004023a0
mov esi, dword [edi]
mov byte [ebp - 4], 0x11
call fcn.00403d50
mov ecx, eax
test ecx, ecx
je 0x44532f
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 0x11
lea eax, [esi + 0x1860]
push eax
lea eax, [esi + 0x1040]
mov dword [ebp - 0x18], 1
push eax
lea eax, [esi + 0x820]
push eax
push esi
lea eax, [ebp - 0x1c]
push str._s___s_____s_____s__
push eax
call fcn.00408580
mov esi, dword [ebp - 0x1c]
add esp, 0x18
test esi, esi
je 0x44518c
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x445173
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x10]
call fcn.004023a0
push str._executed._Return_code:
lea ecx, [ebp - 0x10]
call fcn.0040c520
push ebx
lea ecx, [ebp - 0x10]
call fcn.004207e0
mov dword [ebp - 0x34], eax
call fcn.00403d50
mov ecx, eax
test ecx, ecx
je 0x445339
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x14]
push 0
push 0x4a85e8
call fcn.004023a0
push ecx
push dword [ebp - 0x34]
lea eax, [ebp - 0x14]
push ecx
mov ecx, dword [ebp - 0x30]
push eax
call fcn.00420d60
mov byte [ebp - 4], 0x11
or eax, 0xffffffff
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x445202
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, 1
mov dword [ebp - 0x18], eax
and eax, 0xfffffffe
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 0x10
lea edx, [esi - 0x10]
or esi, 0xffffffff
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x44522e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xd
mov eax, esi
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x44524c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [edi]
mov dword [eax + 0x2080], ebx
push dword [edi + 8]
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov byte [ebp - 4], 0xc
mov eax, esi
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x44527b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xb
mov eax, esi
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x445299
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xa
mov eax, esi
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4452b7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg 0x4452ff
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [edi]
mov dword [ecx + 0x2080], eax
push dword [edi + 8]
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.004024c0
push 0x80004005
call fcn.004024c0
push 0x80004005
call fcn.004024c0
push 0x80004005
call fcn.004024c0
push 0x80004005
call fcn.004024c0
int3