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

Disassembly:
push 0xffffffffffffffff
push 0x4fa631
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x14c
push ebx
push ebp
push esi
push edi
mov esi, ecx
call dword [sym.imp.kernel32.dll_GetTickCount]
mov dword [esp + 0x48], eax
xor ebx, ebx
mov ecx, dword [esi + 0x110]
mov eax, dword [esi + 0x140]
cmp eax, ecx
je 0x49dd72
mov ecx, dword [esi + 0x10c]
xor edx, edx
cmp eax, ecx
sete dl
mov ebp, edx
cmp ebp, ebx
je 0x49db8b
mov ecx, esi
call fcn.0049cee0
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 + 0x140]
mov dword [esp + 0x164], 1
push ecx
lea ecx, [esp + 0x28]
call fcn.00461940
mov dl, byte [esi + 0xe8]
lea edi, [esi + 0xe8]
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 edi
call fcn.004051a0
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x164], 2
cmp eax, ebx
jne 0x49dc2d
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
mov ecx, esi
call fcn.004a2550
mov edx, dword [0x4fdbfc]
mov ecx, dword [esi + 0x15c]
push edx
lea eax, [esp + 0x14]
push ebx
add ecx, 0x30
push eax
call fcn.004051a0
mov ecx, dword [esi + 0x15c]
mov edx, dword [esi + 0x128]
mov dword [ecx + 0x50], edx
mov eax, dword [esp + 0x14]
cmp eax, ebx
jne 0x49dc8f
mov eax, 0x4fdc00
push eax
mov ecx, esi
call fcn.004a8020
mov ecx, eax
call fcn.0049ad00
test eax, eax
je 0x49dd95
mov eax, dword [esp + 0x2c]
cmp eax, ebx
jne 0x49dcb3
mov eax, 0x4fdc00
mov ecx, dword [esi + 0x128]
push ecx
push eax
mov ecx, esi
call fcn.004a80d0
test eax, eax
jne 0x49dcd5
mov ecx, esi
call fcn.0049e440
test eax, eax
jne 0x49dde2
mov ecx, esi
call fcn.004a2740
mov edi, dword [sym.imp.kernel32.dll_GetTickCount]
call edi
sub eax, dword [esp + 0x48]
cmp eax, 0x64
ja 0x49ded1
mov edx, dword [esi + 0x140]
mov eax, dword [esp + 0x14]
add edx, 0x24
cmp eax, ebx
mov dword [esi + 0x140], edx
je 0x49dd25
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x49dd1c
cmp al, 0xff
je 0x49dd1c
dec al
mov byte [ecx], al
jmp 0x49dd25
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 0x49dd61
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x49dd58
cmp al, 0xff
je 0x49dd58
dec al
mov byte [ecx], al
jmp 0x49dd61
push ecx
call fcn.004dae3e
add esp, 4
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
jmp 0x49db5d
mov ecx, esi
call fcn.0049cee0
mov ecx, dword [esi + 0x10]
push ebx
push ebx
push 0x50a
push esi
call fcn.004971d0
mov ecx, esi
call fcn.0049cb50
jmp 0x49df5d
mov edx, dword [esi + 0x15c]
mov ecx, esi
mov dword [edx + 0x2c], 5
call fcn.004a2740
mov eax, dword [esi + 0x50]
mov ecx, esi
push eax
call fcn.0049d110
push 1
lea ecx, [esp + 0x14]
mov byte [esp + 0x168], 1
call fcn.00403b70
push 1
lea ecx, [esp + 0x2c]
mov dword [esp + 0x168], 0xffffffff
call fcn.00403b70
jmp 0x49df5d
call dword [sym.imp.kernel32.dll_GetLastError]
mov ecx, dword [esi + 0x15c]
mov edi, eax
mov dword [ecx + 0x2c], edi
mov ecx, esi
call fcn.004a2740
lea edx, [esp + 0x4c]
push edi
push edx
call fcn.00461090
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebx
jne 0x49de14
mov eax, 0x4fdc00
mov ecx, dword [esp + 0x2c]
cmp ecx, ebx
jne 0x49de21
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 0x49de4b
mov ecx, esi
call fcn.0049cee0
mov edx, dword [esi + 0x140]
add edx, 0x24
mov dword [esi + 0x140], edx
mov ecx, dword [esi + 0x110]
mov eax, edx
cmp eax, ecx
je 0x49de7f
lea ecx, [esp + 0x24]
lea edx, [esp + 0x5c]
push ecx
push edx
push edi
push 0x50e
mov ecx, esi
call fcn.0049d4f0
jmp 0x49de93
lea eax, [esp + 0x5c]
mov ecx, esi
push eax
push edi
call fcn.0049d450
mov ecx, esi
call fcn.0049cb50
push 1
lea ecx, [esp + 0x14]
mov byte [esp + 0x168], 1
call fcn.00403b70
mov eax, dword [esp + 0x2c]
cmp eax, ebx
je 0x49df5d
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x49df54
cmp al, 0xff
je 0x49df54
dec al
mov byte [ecx], al
jmp 0x49df5d
mov ecx, esi
call fcn.0049cee0
mov edx, dword [esi + 0x140]
mov eax, fcn.0049db30
add edx, 0x24
mov dword [esi + 0x40], eax
mov dword [esi + 0x140], edx
mov dword [esi + 0x44], ebx
mov dword [esi + 0x38], ebx
call edi
add eax, 0x64
cmp eax, ebx
mov dword [esi + 0x3c], eax
jne 0x49df08
mov dword [esi + 0x3c], 1
mov ecx, dword [esp + 0x14]
cmp ecx, ebx
je 0x49df2c
mov al, byte [ecx - 1]
cmp al, bl
je 0x49df22
cmp al, 0xff
je 0x49df22
dec al
mov byte [ecx - 1], al
jmp 0x49df2c
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 0x49df5d
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x49df54
cmp al, 0xff
je 0x49df54
dec al
mov byte [ecx], al
jmp 0x49df5d
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