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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4fa600
push eax
mov dword fs:[0], esp
sub esp, 0x38
push ebx
push ebp
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov eax, dword [esi + 0xec]
cmp eax, ebx
jne 0x49d6ef
mov eax, 0x4fdc00
push eax
mov ecx, esi
call fcn.004a8020
mov ecx, eax
call fcn.0049acb0
test eax, eax
jne 0x49d721
push 0x501
mov ecx, esi
call fcn.0049d110
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x38]
mov dword fs:[0], ecx
add esp, 0x44
ret
call dword [sym.imp.kernel32.dll_GetTickCount]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x10c]
mov ecx, dword [esi + 0x140]
cmp ecx, eax
jne 0x49d77e
lea edi, [esi + 0x108]
mov dword [esi + 0x120], ebx
push edi
mov dword [esi + 0x118], ebx
mov dword [esi + 0x124], ebx
call fcn.00461df0
push edi
mov dword [esi + 0x118], eax
call fcn.00461e40
add esp, 8
mov dword [esi + 0x120], eax
mov ecx, esi
mov dword [esi + 0x124], edx
push ebx
push 1
call fcn.0049cb90
mov eax, dword [esi + 0x110]
mov ecx, dword [esi + 0x140]
cmp ecx, eax
je 0x49d999
mov ecx, esi
call fcn.0049d690
test eax, eax
je 0x49d7a8
push 1
push 1
mov ecx, esi
call fcn.0049cb90
mov ebp, dword [esi + 0x140]
lea eax, [ebp + 0x24]
mov dword [esi + 0x140], eax
mov eax, dword [ebp]
cmp eax, 1
jne 0x49d72b
mov cl, byte [esi + 0xe8]
lea edi, [esi + 0xe8]
mov byte [esp + 0x38], cl
push ebx
lea ecx, [esp + 0x3c]
call fcn.00403b70
mov edx, dword [0x4fdbfc]
lea ecx, [esp + 0x38]
push edx
push ebx
push edi
call fcn.004051a0
mov eax, dword [ebp + 8]
mov dword [esp + 0x50], ebx
cmp eax, ebx
jne 0x49d7ff
mov eax, 0x4fdc00
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.00460a00
mov ecx, dword [esi + 0x10c]
mov eax, dword [esi + 0x140]
sub eax, ecx
add esp, 8
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 3
mov ecx, edx
mov dword [esp + 0x2c], ebx
shr ecx, 0x1f
add edx, ecx
mov dword [esp + 0x30], ebx
mov ebp, edx
mov dl, byte [esp + 0x13]
mov dword [esp + 0x18], ebp
mov byte [esp + 0x28], dl
mov dword [esp + 0x34], ebx
mov eax, dword [edi + 4]
mov byte [esp + 0x50], 1
cmp eax, ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
jne 0x49d865
mov eax, 0x4fdc00
mov ecx, dword [esp + 0x3c]
cmp ecx, ebx
jne 0x49d872
mov ecx, 0x4fdc00
push eax
lea eax, [esp + 0x24]
push ebx
push eax
lea edx, [esp + 0x20]
lea eax, [esp + 0x34]
push edx
push eax
push ecx
mov ecx, esi
call fcn.004a8030
mov ecx, dword [esp + 0x14]
mov eax, dword [esi + 0x118]
mov edx, dword [esp + 0x20]
mov edi, dword [esi + 0x120]
add eax, ecx
add edi, edx
mov dword [esi + 0x118], eax
mov eax, dword [esp + 0x24]
mov dword [esi + 0x120], edi
mov ecx, dword [esi + 0x124]
mov edi, dword [esp + 0x2c]
adc ecx, eax
mov eax, dword [esp + 0x30]
cmp edi, eax
mov dword [esi + 0x124], ecx
je 0x49d8f0
lea ebp, [esi + 0x108]
mov eax, dword [ebp + 8]
push edi
push 1
push eax
mov ecx, ebp
call fcn.004065c0
mov eax, dword [esp + 0x30]
add edi, 0x24
cmp edi, eax
jne 0x49d8d3
mov ebp, dword [esp + 0x18]
mov eax, dword [esi + 0x10c]
lea ecx, [ebp + ebp*8]
shl ecx, 2
mov edi, eax
mov dword [esi + 0x140], eax
add edi, ecx
mov dword [esi + 0x140], edi
mov edi, dword [sym.imp.kernel32.dll_GetTickCount]
call edi
sub eax, dword [esp + 0x1c]
cmp eax, 0x64
ja 0x49d9bc
mov ebp, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
cmp edi, ebp
mov byte [esp + 0x50], bl
je 0x49d947
push 1
lea ecx, [edi + 4]
call fcn.00403b70
add edi, 0x24
cmp edi, ebp
jne 0x49d932
mov edi, dword [esp + 0x2c]
push edi
call fcn.004dae3e
mov ecx, dword [esp + 0x40]
add esp, 4
cmp ecx, ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x50], 0xffffffff
je 0x49d988
mov al, byte [ecx - 1]
cmp al, bl
je 0x49d97e
cmp al, 0xff
je 0x49d97e
dec al
mov byte [ecx - 1], al
jmp 0x49d988
dec ecx
push ecx
call fcn.004dae3e
add esp, 4
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
jmp 0x49d72b
push ebx
push ebx
mov ecx, esi
call fcn.0049cb90
mov ecx, esi
call fcn.0049da60
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x38]
mov dword fs:[0], ecx
add esp, 0x44
ret
mov eax, fcn.0049d6c0
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], ebx
mov dword [esi + 0x38], ebx
call edi
add eax, 0x64
cmp eax, ebx
mov dword [esi + 0x3c], eax
jne 0x49d9dd
mov dword [esi + 0x3c], 1
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
cmp esi, edi
mov byte [esp + 0x50], bl
je 0x49da02
push 1
lea ecx, [esi + 4]
call fcn.00403b70
add esi, 0x24
cmp esi, edi
jne 0x49d9ed
mov esi, dword [esp + 0x2c]
push esi
call fcn.004dae3e
mov ecx, dword [esp + 0x40]
add esp, 4
cmp ecx, ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
je 0x49da4c
mov al, byte [ecx - 1]
cmp al, bl
je 0x49da42
cmp al, 0xff
je 0x49da42
pop edi
dec al
pop esi
pop ebp
mov byte [ecx - 1], al
pop ebx
mov ecx, dword [esp + 0x38]
mov dword fs:[0], ecx
add esp, 0x44
ret
dec ecx
push ecx
call fcn.004dae3e
add esp, 4
mov ecx, dword [esp + 0x48]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x44
ret