Function at 0x4728d0
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xf4
mov eax, dword [0x56800c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, ecx
mov dword [ebp - 0xcc], edx
mov dword [ebp - 0xd0], ebx
push esi
push edi
test ebx, ebx
je 0x472b85
lea eax, [ebp - 0xc4]
push eax
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesExW]
test eax, eax
je 0x472b85
test byte [ebp - 0xc4], 0x10
jne 0x472b85
xor dl, dl
mov ecx, ebx
call fcn.00488c70
test al, al
je 0x472951
mov eax, dword [0x56be3c]
cmp byte [eax + 0x44], 0
jne 0x472951
mov ecx, ebx
call fcn.00472450
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004bcb15
mov esp, ebp
pop ebp
ret
mov edx, str..chm
mov ecx, ebx
call fcn.004198b0
test al, al
je 0x472984
mov eax, dword [0x56be3c]
cmp byte [eax + 0x64], 0
jne 0x472984
mov ecx, ebx
call fcn.004727c0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004bcb15
mov esp, ebp
pop ebp
ret
mov esi, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea eax, [ebp - 0xe0]
push eax
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xd4], 0
call esi
push ebx
push str.Starting:__s
push dword [0x56ca4c]
call fcn.00472170
add esp, 0xc
mov dword [ebp - 0xe8], 0
lea eax, [ebp - 0xf0]
mov dword [ebp - 0xe4], 0
push eax
call esi
push 1
push 1
push 0
xor edx, edx
mov ecx, ebx
call fcn.0042d260
mov edi, eax
add esp, 0xc
mov dword [ebp - 0xc8], edi
test edi, edi
jne 0x472a1b
push ebx
push str.Error:_failed_to_load__s
push dword [0x56ca4c]
call fcn.00472170
add esp, 0xc
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004bcb15
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0xe8]
push eax
call esi
lea ecx, [ebp - 0xf0]
call fcn.00411a90
sub esp, 8
fstp qword [esp]
push str.load:__.2f_ms
push dword [0x56ca4c]
call fcn.00472170
mov eax, dword [edi]
add esp, 0x10
mov ecx, edi
call dword [eax + 0xc]
mov ebx, eax
push ebx
push str.page_count:__d
push dword [0x56ca4c]
call fcn.00472170
add esp, 0xc
cmp dword [ebp - 0xcc], 0
jne 0x472a85
mov esi, 1
cmp ebx, esi
jl 0x472a85
mov edx, esi
mov ecx, edi
call fcn.00472210
inc esi
cmp esi, ebx
jle 0x472a77
sub esp, 8
lea ecx, [ebp - 0xa0]
call fcn.00474e00
mov ecx, dword [ebp - 0xcc]
lea edx, [ebp - 0xa0]
call fcn.0048dd60
test al, al
je 0x472b04
mov ecx, dword [ebp - 0xa0]
xor edi, edi
test ecx, ecx
je 0x472afe
mov eax, dword [ebp - 0x94]
lea ebx, [ebx]
mov esi, dword [eax + edi*8]
cmp esi, dword [eax + edi*8 + 4]
jg 0x472af9
lea esp, [esp]
cmp esi, 1
jl 0x472aec
cmp esi, ebx
jg 0x472aec
mov ecx, dword [ebp - 0xc8]
mov edx, esi
call fcn.00472210
mov eax, dword [ebp - 0x94]
inc esi
cmp esi, dword [eax + edi*8 + 4]
jle 0x472ad0
mov ecx, dword [ebp - 0xa0]
inc edi
cmp edi, ecx
jb 0x472ac0
mov edi, dword [ebp - 0xc8]
mov eax, dword [edi]
mov ecx, edi
push 1
call dword [eax]
lea eax, [ebp - 0xd8]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea ecx, [ebp - 0xe0]
call fcn.00411a90
push dword [ebp - 0xd0]
fstp st(0)
push ecx
lea ecx, [ebp - 0xe0]
call fcn.00411a90
push ecx
fstp qword [esp]
push str.Finished__in__.2f_ms_:__s
push dword [0x56ca4c]
call fcn.00472170
mov edx, dword [ebp - 0x94]
lea eax, [ebp - 0x90]
add esp, 0x14
cmp edx, eax
je 0x472b85
mov ecx, dword [ebp - 0x10]
push edx
test ecx, ecx
jne 0x472b80
call fcn.004bf8aa
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004bcb15
mov esp, ebp
pop ebp
ret
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004bcb15
mov esp, ebp
pop ebp
ret