Function at 0x446ee0
Capabilities:
Check for time delay via gettickcount
Enumerate files on windows
Enumerate files recursively
Timestomp file

Disassembly:
sub esp, 0x3ec
push ebx
push ebp
push esi
mov esi, dword [0x4b7468]
mov ebx, ecx
xor ebp, ebp
cmp byte [esp + 0x410], 0
push edi
mov edi, dword [esp + 0x404]
mov dword [esp + 0x20], ebx
jne 0x446f7a
cmp byte [edi], 0
jne 0x446f63
mov eax, esi
cmp byte [eax + 0xe4], 0
mov dword [eax + 0x30], 0x57
jne 0x446f44
mov eax, dword [0x4bbf74]
push 1
push ebp
push 0xffffffffffffffff
push 0x4a7fd8
push eax
call fcn.00481890
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3ec
ret 0x18
push 0x4a6869
push ebp
push 0x4a7fd8
call fcn.00432b40
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3ec
ret 0x18
cmp dword [esp + 0x40c], ebp
jne 0x446f77
mov dword [esp + 0x40c], 1
mov dword [esi + 0x30], ebp
mov eax, edi
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x446f80
sub eax, edx
cmp eax, 0x104
jb 0x446fe5
mov dword [esi + 0x30], 0x6f
cmp byte [esi + 0xe4], cl
jne 0x446fc4
mov ecx, dword [0x4bbf74]
push 1
push ebp
push 0xffffffffffffffff
push 0x4a7fd8
push ecx
call fcn.00481890
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3ec
ret 0x18
push 0x4a6869
push ebp
push 0x4a7fd8
mov ecx, ebx
call fcn.00432b40
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3ec
ret 0x18
mov edx, dword [esp + 0x400]
push 0x3f
push edx
lea eax, [esp + 0x50]
push eax
call fcn.004954d0
lea edx, [esp + 0x2fc]
add esp, 0xc
mov byte [esp + 0x87], 0
mov eax, edi
sub edx, edi
nop
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x447010
cmp byte [esp + 0x48], cl
je 0x447097
push ebp
lea esi, [esp + 0x3c]
lea eax, [esp + 0x4c]
call fcn.0047d830
add esp, 4
lea ecx, [esp + 0x30]
push ecx
mov edx, esi
push edx
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
test eax, eax
je 0x447057
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x34]
push edx
call dword [sym.imp.KERNEL32.dll_LocalFileTimeToFileTime]
test eax, eax
jne 0x4470a2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [0x4b7468]
mov dword [ecx + 0x30], eax
cmp byte [ecx + 0xe4], 0
jne 0x446fc4
mov eax, dword [0x4bbf74]
push 1
push ebp
push 0xffffffffffffffff
push 0x4a7fd8
push eax
call fcn.00481890
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3ec
ret 0x18
lea ecx, [esp + 0x24]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
lea edx, [esp + 0x1e8]
mov eax, edi
sub edx, edi
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4470b0
lea edx, [esp + 0x1e8]
push 0x5c
push edx
call fcn.00493de2
add esp, 8
cmp eax, ebp
je 0x4470eb
mov byte [eax + 1], 0
lea eax, [esp + 0x1e8]
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4470e0
sub eax, edx
jmp 0x4470f5
mov byte [esp + 0x1e8], 0
xor eax, eax
lea ecx, [esp + eax + 0x1e8]
mov dword [esp + 0x10], ecx
mov ecx, 0x103
lea edx, [esp + 0x2f0]
sub ecx, eax
push 0x5c
push edx
mov dword [esp + 0x1c], ecx
call fcn.00493de2
add esp, 8
cmp eax, ebp
je 0x447124
inc eax
jmp 0x44712b
lea eax, [esp + 0x2f0]
mov edi, 0x4aeb14
mov dword [esp + 0x18], eax
call fcn.0040a290
test eax, eax
jne 0x447148
mov dword [esp + 0x40c], 2
lea eax, [esp + 0xa8]
push eax
lea ecx, [esp + 0x2f4]
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov esi, eax
mov dword [esp + 0x2c], esi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [esp + 0x1c], eax
cmp esi, 0xffffffff
je 0x44732c
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
sub eax, dword [0x4bddf4]
mov edx, dword [0x4b7468]
cmp eax, dword [edx + 0xb4]
jbe 0x4471d2
push 0
push 0
push 0
push 0
lea eax, [esp + 0x9c]
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x4471cb
mov ecx, dword [0x4bd780]
cmp ecx, dword [esp + 0x1c]
jne 0x4471cb
push 1
push 0xffffffffffffffff
call fcn.00401280
add esp, 8
call esi
mov dword [0x4bddf4], eax
test byte [esp + 0xa8], 0x10
je 0x447216
cmp byte [esp + 0xd4], 0x2e
jne 0x447207
mov al, byte [esp + 0xd5]
test al, al
je 0x44730a
cmp al, 0x2e
jne 0x447207
cmp byte [esp + 0xd6], 0
je 0x44730a
cmp dword [esp + 0x40c], 1
jne 0x447224
jmp 0x44730a
cmp dword [esp + 0x40c], 3
je 0x44730a
lea eax, [esp + 0xd4]
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x447230
sub eax, edx
cmp eax, dword [esp + 0x14]
jbe 0x447252
mov edx, dword [0x4b7468]
mov dword [edx + 0x30], 0x6f
inc ebp
jmp 0x44730a
mov edx, dword [esp + 0x10]
lea eax, [esp + 0xd4]
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x447261
push 0
push 0x22000000
push 3
push 0
push 3
push 0x40000000
lea edx, [esp + 0x200]
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
jne 0x4472a0
call ebx
mov ecx, dword [0x4b7468]
mov dword [ecx + 0x30], eax
inc ebp
jmp 0x44730a
movzx esi, byte [esp + 0x408]
test esi, 0xffffff80
jne 0x4472c2
push 2
push esi
call fcn.0049303e
add esp, 8
test eax, eax
je 0x4472c2
and esi, 0xffffffdf
mov eax, esi
movsx eax, al
sub eax, 0x41
lea edx, [esp + 0x24]
je 0x4472e1
sub eax, 2
je 0x4472da
push edx
push 0
jmp 0x4472e4
push 0
push 0
push edx
jmp 0x4472e6
push 0
push edx
push 0
push edi
call dword [sym.imp.KERNEL32.dll_SetFileTime]
test eax, eax
jne 0x4472fd
call ebx
mov ecx, dword [0x4b7468]
mov dword [ecx + 0x30], eax
inc ebp
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, dword [esp + 0x2c]
lea edx, [esp + 0xa8]
push edx
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x447183
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ebx, dword [esp + 0x410]
test bl, bl
je 0x44748e
cmp dword [esp + 0x14], 2
jbe 0x44748e
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0xa8]
push ecx
lea edx, [esp + 0x1ec]
push edx
mov dword [eax], 0x2a2e2a
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov edi, eax
cmp edi, 0xffffffff
je 0x44748e
mov eax, dword [esp + 0x18]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x447378
sub eax, edx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x4bddf4]
mov ecx, dword [0x4b7468]
cmp eax, dword [ecx + 0xb4]
jbe 0x4473da
push 0
push 0
push 0
push 0
lea edx, [esp + 0x9c]
push edx
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x4473cf
mov eax, dword [esp + 0x1c]
cmp dword [0x4bd780], eax
jne 0x4473cf
push 1
push 0xffffffffffffffff
call fcn.00401280
add esp, 8
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x4bddf4], eax
test byte [esp + 0xa8], 0x10
je 0x447470
cmp byte [esp + 0xd4], 0x2e
jne 0x44740b
mov al, byte [esp + 0xd5]
test al, al
je 0x447470
cmp al, 0x2e
jne 0x44740b
cmp byte [esp + 0xd6], 0
je 0x447470
lea eax, [esp + 0xd4]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x447415
sub eax, edx
add eax, esi
cmp eax, dword [esp + 0x14]
jae 0x447470
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
push ecx
lea edx, [esp + 0xd8]
push edx
push 0x4ab2e8
push eax
call fcn.00491f88
mov ecx, dword [esp + 0x41c]
mov edx, dword [esp + 0x418]
add esp, 0x10
push 1
push ebx
push ecx
push edx
lea eax, [esp + 0x1f8]
push eax
lea ecx, [esp + 0x5c]
push ecx
mov ecx, dword [esp + 0x38]
call fcn.00446ee0
add ebp, eax
lea edx, [esp + 0xa8]
push edx
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x447383
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp byte [esp + 0x414], 0
jne 0x4474a3
mov eax, dword [esp + 0x20]
push ebp
push eax
call fcn.00432cf0
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x3ec
ret 0x18