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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb24
mov eax, dword [0x4c9070]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
add eax, 0xffffff00
push edi
mov edi, ecx
mov ecx, dword [ebp + 0x14]
cmp eax, 3
ja case.default.0x46831c
jmp dword [eax*4 + 0x4685d4]
push 0xb18
xor ebx, ebx
lea eax, [ebp - 0xb20]
push ebx
push eax
call fcn.0046ea70
add esp, 0xc
lea eax, [ebp - 0xb20]
mov ecx, 0x4d1720
push eax
call fcn.0045a9d0
test eax, eax
jne 0x46844d
cmp dword [ebp - 0x698], 3
jne 0x4683a9
mov ecx, dword [edi + 0x3b0]
call dword [sym.imp.DuiLib.dll_public:_int___thiscall_DuiLib::CProgressUI::GetMaxValue_void_const]
mov ecx, dword [edi + 0x3b0]
mov esi, eax
call dword [sym.imp.DuiLib.dll_public:_int___thiscall_DuiLib::CProgressUI::GetValue_void_const]
cmp eax, esi
jne 0x4683a9
cmp dword [edi + 0x414], ebx
jne 0x468390
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 0x414], eax
jmp 0x4683a9
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [edi + 0x414]
mov ecx, 1
cmp eax, 0x3e8
cmova ebx, ecx
cmp dword [ebp - 0x254], 0
ja 0x4683bb
cmp dword [ebp - 0x258], 0
jbe 0x4683c2
or dword [0x4d5b90], 2
push 0
lea eax, [ebp - 0xb20]
mov ecx, edi
push eax
call fcn.00466190
lea eax, [ebp - 0xb20]
mov ecx, edi
push eax
call fcn.00466c20
mov eax, dword [ebp - 0x698]
cmp eax, 4
je 0x46844d
cmp eax, 1
jne 0x46841c
mov ecx, dword [edi + 0x3cc]
push 1
mov eax, dword [ecx]
call dword [eax + 0xcc]
mov ecx, dword [edi + 0x3d0]
push 0
mov eax, dword [ecx]
call dword [eax + 0xcc]
mov dword [edi + 0x434], 2
jmp 0x468452
cmp eax, 2
jne 0x468452
mov ecx, dword [edi + 0x3cc]
push 0
mov eax, dword [ecx]
call dword [eax + 0xcc]
mov ecx, dword [edi + 0x3d0]
push 1
mov eax, dword [ecx]
call dword [eax + 0xcc]
mov dword [edi + 0x434], 1
jmp 0x468452
mov ebx, 1
mov eax, dword [ebp - 0xb20]
and eax, dword [ebp - 0xb1c]
cmp eax, 0xffffffff
jne 0x468487
mov ecx, 0x4d1720
call fcn.0045ab70
test eax, eax
jne 0x468487
mov dword [edi + 0x3e8], 0xffffffff
mov dword [edi + 0x3ec], 0xffffffff
jmp 0x46848f
test ebx, ebx
je 0x4685bd
push 0x100
push dword [edi + 4]
call dword [sym.imp.USER32.dll_KillTimer]
and dword [0x4d5b90], 0xfffffffc
mov ecx, edi
mov dword [edi + 0x40c], 0xffffffff
call fcn.00465a90
jmp 0x4685bd
mov eax, dword [edi + 0x42c]
test eax, eax
je 0x4684f8
push 0
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x4684ec
push dword [edi + 0x42c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi + 0x42c], 0
jmp 0x4685bd
mov ecx, edi
call fcn.00466dc0
jmp 0x4685bd
push 0x101
push dword [edi + 4]
call dword [sym.imp.USER32.dll_KillTimer]
push 0
push 0x4ccd48
push 0x4cc648
push 0
push str.chk_sel_all_vir
push dword [edi + 0x3c8]
lea ecx, [edi + 0x30]
call dword [sym.imp.DuiLib.dll_public:_class_DuiLib::CControlUI____thiscall_DuiLib::CPaintManagerUI::FindSubControlByName_class_DuiLib::CControlUI___wchar_t_const__const]
push eax
call fcn.0048e49a
add esp, 0x14
test eax, eax
je 0x468541
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx + 0xe0]
cmp dword [edi + 0x410], 2
je 0x4685bd
mov ecx, edi
mov dword [edi + 0x40c], 2
call fcn.00465a90
jmp 0x4685bd
push 0xb10
lea eax, [ebp - 0xb18]
push 0
push eax
call fcn.0046ea70
add esp, 0xc
lea eax, [ebp - 0xb20]
mov ecx, 0x4d1720
push eax
call fcn.0045a9d0
test eax, eax
jne 0x4685bd
cmp dword [ebp - 0x698], eax
jne 0x4685bd
push 0x102
push dword [edi + 4]
call dword [sym.imp.USER32.dll_KillTimer]
jmp 0x46854a
push 0x103
push dword [edi + 4]
call dword [sym.imp.USER32.dll_KillTimer]
mov ecx, edi
call fcn.00464350
jmp 0x4685bd
mov dword [ecx], 0
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0046be2f
mov esp, ebp
pop ebp
ret 0x10