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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4facc1
push eax
mov dword fs:[0], esp
sub esp, 0x14c
push ebx
push ebp
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov eax, dword [esi + 0x108]
lea ebp, [esi + 0x104]
cmp eax, ebx
jne 0x4a42f8
mov eax, 0x4fdc00
push eax
mov ecx, esi
call fcn.004a8020
mov ecx, eax
call fcn.0049ac70
test eax, eax
jne 0x4a431e
mov ecx, esi
call fcn.004a34f0
mov ecx, esi
call fcn.004a2f50
jmp 0x4a466c
call dword [sym.imp.kernel32.dll_GetTickCount]
mov dword [esp + 0x48], eax
mov ecx, dword [esi + 0x128]
mov eax, dword [esi + 0x14c]
cmp eax, ecx
je 0x4a44c2
mov ecx, dword [esi + 0x12c]
xor edx, edx
cmp eax, ecx
sete dl
mov ecx, edx
add eax, 0xffffffdc
cmp ecx, ebx
mov dword [esi + 0x14c], eax
je 0x4a435f
mov ecx, esi
call fcn.004a30a0
mov al, byte [esp + 0x23]
push ebx
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2c], al
call fcn.00403b70
mov edi, 0x536ec0
or ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0x164], ebx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x536ec0
lea ecx, [esp + 0x30]
call fcn.004053a0
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x40], ebx
mov ecx, dword [esi + 0x14c]
mov dword [esp + 0x164], 1
push ecx
lea ecx, [esp + 0x28]
call fcn.00461940
mov dl, byte [ebp]
push ebx
lea ecx, [esp + 0x14]
mov byte [esp + 0x14], dl
call fcn.00403b70
mov eax, dword [0x4fdbfc]
lea ecx, [esp + 0x10]
push eax
push ebx
push ebp
call fcn.004051a0
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x164], 2
cmp eax, ebx
jne 0x4a43f8
mov eax, 0x4fdc00
lea ecx, [esp + 0x10]
push eax
push ecx
call fcn.00460a00
mov edx, dword [0x4fdbfc]
add esp, 8
lea eax, [esp + 0x10]
lea ecx, [esp + 0x28]
push edx
push ebx
push eax
call fcn.004051a0
lea ecx, [esp + 0x24]
push ecx
mov ecx, esi
call fcn.004a8110
test eax, eax
jne 0x4a443b
mov ecx, esi
call fcn.004a46e0
test eax, eax
jne 0x4a44e5
mov edi, dword [sym.imp.kernel32.dll_GetTickCount]
call edi
sub eax, dword [esp + 0x48]
cmp eax, 0x64
ja 0x4a45ef
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x4a4475
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x4a446c
cmp al, 0xff
je 0x4a446c
dec al
mov byte [ecx], al
jmp 0x4a4475
push ecx
call fcn.004dae3e
add esp, 4
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x14], ebx
cmp eax, ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x164], 0xffffffff
je 0x4a44b1
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x4a44a8
cmp al, 0xff
je 0x4a44a8
dec al
mov byte [ecx], al
jmp 0x4a44b1
push ecx
call fcn.004dae3e
add esp, 4
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
jmp 0x4a4328
mov ecx, esi
call fcn.004a30a0
mov ecx, dword [esi + 0x10]
push ebx
push ebx
push 0x50a
push esi
call fcn.004971d0
mov ecx, esi
call fcn.004a2f50
jmp 0x4a466c
call dword [sym.imp.kernel32.dll_GetLastError]
mov edi, eax
mov eax, dword [esp + 0x24]
cmp eax, ebx
push edi
jne 0x4a4538
lea edx, [esp + 0x50]
push edx
call fcn.00461090
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebx
jne 0x4a450f
mov eax, 0x4fdc00
mov ecx, dword [esp + 0x14]
cmp ecx, ebx
jne 0x4a451c
mov ecx, 0x4fdc00
push eax
push ecx
lea eax, [esp + 0x64]
push str.File__s_cannot_be_deleted._n_s
push eax
call fcn.004c335e
add esp, 0x10
lea ecx, [esp + 0x4c]
push 1
jmp 0x4a4578
lea ecx, [esp + 0x50]
push ecx
call fcn.00461090
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebx
jne 0x4a4551
mov eax, 0x4fdc00
mov ecx, dword [esp + 0x14]
cmp ecx, ebx
jne 0x4a455e
mov ecx, 0x4fdc00
push eax
push ecx
lea edx, [esp + 0x64]
push str.Directory__s_cannot_be_deleted._n_s
push edx
call fcn.004c335e
add esp, 0x10
lea ecx, [esp + 0x4c]
push 1
call fcn.00403b70
mov ecx, esi
call fcn.004a30a0
mov eax, dword [esi + 0x128]
mov ecx, dword [esi + 0x14c]
cmp ecx, eax
je 0x4a45a8
lea eax, [esp + 0x5c]
mov ecx, esi
push eax
push edi
push 0x50c
call fcn.004a38f0
jmp 0x4a45bc
lea ecx, [esp + 0x5c]
push ecx
push edi
mov ecx, esi
call fcn.004a3850
mov ecx, esi
call fcn.004a2f50
push 1
lea ecx, [esp + 0x14]
mov byte [esp + 0x168], 1
call fcn.00403b70
mov eax, dword [esp + 0x2c]
cmp eax, ebx
je 0x4a466c
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x4a4663
cmp al, 0xff
je 0x4a4663
dec al
mov byte [ecx], al
jmp 0x4a466c
mov ecx, esi
call fcn.004a30a0
mov eax, fcn.004a42c0
mov dword [esi + 0x60], eax
mov dword [esi + 0x64], ebx
mov dword [esi + 0x38], ebx
call edi
add eax, 0x64
cmp eax, ebx
mov dword [esi + 0x3c], eax
jne 0x4a4617
mov dword [esi + 0x3c], 1
mov ecx, dword [esp + 0x14]
cmp ecx, ebx
je 0x4a463b
mov al, byte [ecx - 1]
cmp al, bl
je 0x4a4631
cmp al, 0xff
je 0x4a4631
dec al
mov byte [ecx - 1], al
jmp 0x4a463b
dec ecx
push ecx
call fcn.004dae3e
add esp, 4
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x14], ebx
cmp eax, ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
je 0x4a466c
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x4a4663
cmp al, 0xff
je 0x4a4663
dec al
mov byte [ecx], al
jmp 0x4a466c
push ecx
call fcn.004dae3e
add esp, 4
mov ecx, dword [esp + 0x15c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x158
ret