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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4fac91
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]
cmp eax, ebx
jne 0x4a3f42
mov eax, 0x4fdc00
push eax
mov ecx, esi
call fcn.004a8020
mov ecx, eax
call fcn.0049ad00
test eax, eax
jne 0x4a3f68
mov ecx, esi
call fcn.004a34f0
mov ecx, esi
call fcn.004a2f50
jmp 0x4a42a4
call dword [sym.imp.kernel32.dll_GetTickCount]
mov dword [esp + 0x48], eax
mov ecx, dword [esi + 0x12c]
mov eax, dword [esi + 0x14c]
cmp eax, ecx
je 0x4a412b
mov ecx, dword [esi + 0x128]
xor edx, edx
cmp eax, ecx
sete dl
mov ebp, edx
cmp ebp, ebx
je 0x4a3fa0
mov ecx, esi
call fcn.004a32c0
mov al, byte [esp + 0x13]
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 [esi + 0x104]
lea edi, [esi + 0x104]
push ebx
lea ecx, [esp + 0x18]
mov byte [esp + 0x18], dl
call fcn.00403b70
mov eax, dword [0x4fdbfc]
lea ecx, [esp + 0x14]
push eax
push ebx
push edi
call fcn.004051a0
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x164], 2
cmp eax, ebx
jne 0x4a4042
mov eax, 0x4fdc00
lea ecx, [esp + 0x14]
push eax
push ecx
call fcn.00460a00
mov edx, dword [0x4fdbfc]
add esp, 8
lea eax, [esp + 0x14]
lea ecx, [esp + 0x28]
push edx
push ebx
push eax
call fcn.004051a0
mov eax, dword [esp + 0x2c]
cmp eax, ebx
jne 0x4a4073
mov eax, 0x4fdc00
mov ecx, dword [esi + 0x140]
push ecx
push eax
mov ecx, esi
call fcn.004a80d0
test eax, eax
jne 0x4a4095
mov ecx, esi
call fcn.004a46e0
test eax, eax
jne 0x4a414e
mov edi, dword [sym.imp.kernel32.dll_GetTickCount]
call edi
sub eax, dword [esp + 0x48]
cmp eax, 0x64
ja 0x4a4218
mov edx, dword [esi + 0x14c]
mov eax, dword [esp + 0x18]
add edx, 0x24
cmp eax, ebx
mov dword [esi + 0x14c], edx
je 0x4a40de
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x4a40d5
cmp al, 0xff
je 0x4a40d5
dec al
mov byte [ecx], al
jmp 0x4a40de
push ecx
call fcn.004dae3e
add esp, 4
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x18], ebx
cmp eax, ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x164], 0xffffffff
je 0x4a411a
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x4a4111
cmp al, 0xff
je 0x4a4111
dec al
mov byte [ecx], al
jmp 0x4a411a
push ecx
call fcn.004dae3e
add esp, 4
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
jmp 0x4a3f72
mov ecx, esi
call fcn.004a32c0
mov ecx, dword [esi + 0x10]
push ebx
push ebx
push 0x50a
push esi
call fcn.004971d0
mov ecx, esi
call fcn.004a2f50
jmp 0x4a42a4
call dword [sym.imp.kernel32.dll_GetLastError]
mov edi, eax
lea edx, [esp + 0x4c]
push edi
push edx
call fcn.00461090
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebx
jne 0x4a4170
mov eax, 0x4fdc00
mov ecx, dword [esp + 0x2c]
cmp ecx, ebx
jne 0x4a417d
mov ecx, 0x4fdc00
push eax
push ecx
lea eax, [esp + 0x64]
push str.Failed_to_change_attributes_of__s._n_s
push eax
call fcn.004c335e
add esp, 0x10
lea ecx, [esp + 0x4c]
push 1
call fcn.00403b70
cmp ebp, ebx
jne 0x4a41a7
mov ecx, esi
call fcn.004a32c0
mov edx, dword [esi + 0x14c]
add edx, 0x24
mov dword [esi + 0x14c], edx
mov ecx, dword [esi + 0x12c]
mov eax, edx
cmp eax, ecx
je 0x4a41d6
lea ecx, [esp + 0x5c]
push ecx
push edi
push 0x50e
mov ecx, esi
call fcn.004a38f0
jmp 0x4a41ea
lea edx, [esp + 0x5c]
mov ecx, esi
push edx
push edi
call fcn.004a3850
mov ecx, esi
call fcn.004a2f50
push 1
lea ecx, [esp + 0x18]
mov byte [esp + 0x168], 1
call fcn.00403b70
push 1
lea ecx, [esp + 0x2c]
mov dword [esp + 0x168], 0xffffffff
call fcn.00403b70
jmp 0x4a42a4
mov ecx, esi
call fcn.004a32c0
mov edx, dword [esi + 0x14c]
mov eax, fcn.004a3f10
add edx, 0x24
mov dword [esi + 0x60], eax
mov dword [esi + 0x14c], edx
mov dword [esi + 0x64], ebx
mov dword [esi + 0x38], ebx
call edi
add eax, 0x64
cmp eax, ebx
mov dword [esi + 0x3c], eax
jne 0x4a424f
mov dword [esi + 0x3c], 1
mov ecx, dword [esp + 0x18]
cmp ecx, ebx
je 0x4a4273
mov al, byte [ecx - 1]
cmp al, bl
je 0x4a4269
cmp al, 0xff
je 0x4a4269
dec al
mov byte [ecx - 1], al
jmp 0x4a4273
dec ecx
push ecx
call fcn.004dae3e
add esp, 4
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x18], ebx
cmp eax, ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
je 0x4a42a4
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x4a429b
cmp al, 0xff
je 0x4a429b
dec al
mov byte [ecx], al
jmp 0x4a42a4
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