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

Disassembly:
sub esp, 0x8b0
mov eax, dword [esp + 0x8cc]
push ebx
push ebp
push esi
xor ecx, ecx
mov esi, 1
cmp eax, ecx
push edi
mov ebp, esi
mov dword [esp + 0x10], 0xa
jne 0x45c295
xor eax, eax
mov dword [0x78a9d8], ecx
mov dword [0x78a9dc], eax
jmp 0x45c29a
mov eax, dword [0x78a9dc]
cmp dword [0x78a9b4], ecx
je 0x45c311
cmp dword [0x78a9d8], 0x10
jl 0x45c2b8
mov eax, 0x10
mov dword [0x78a9d8], ecx
jmp 0x45c2bc
cmp eax, ecx
jle 0x45c311
dec eax
mov dword [0x78a9dc], eax
mov eax, dword [esp + 0x8e4]
cmp eax, ecx
mov ecx, dword [esp + 0x8e0]
jne 0x45c2d9
shl ecx, 0xb
jmp 0x45c2e7
lea eax, [ecx + ecx*2]
shl eax, 4
add eax, ecx
lea ecx, [eax + eax*2]
shl ecx, 4
mov edi, dword [esp + 0x8d8]
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x8b0
ret
mov eax, dword [esp + 0x8f4]
cmp eax, ecx
je 0x45c31e
mov dword [eax], ecx
mov eax, dword [esp + 0x8ec]
cmp eax, 0x96
jbe 0x45c332
mov dword [esp + 0x10], ecx
jmp 0x45c349
cmp eax, 2
jbe 0x45c33d
mov dword [esp + 0x10], esi
jmp 0x45c349
cmp eax, ecx
jbe 0x45c349
mov dword [esp + 0x10], 5
mov edx, dword [esp + 0x8e4]
mov eax, dword [esp + 0x8e0]
cmp edx, ecx
mov dword [esp + 0x14], eax
mov esi, eax
je 0x45c36d
cmp eax, 0x10
jbe 0x45c377
mov esi, 0x10
jmp 0x45c377
cmp eax, 0x20
jbe 0x45c377
mov esi, 0x20
cmp eax, ecx
je 0x45c88e
mov ebx, dword [esp + 0x8d8]
mov eax, dword [esp + 0x14]
cmp esi, eax
jbe 0x45c390
mov esi, eax
mov eax, dword [esp + 0x8e4]
xor ecx, ecx
cmp eax, ecx
mov eax, dword [0x817700]
jne 0x45c4f1
cmp eax, 2
jl 0x45c426
mov eax, 1
mov dword [esp + 0x18], ecx
cmp eax, esi
mov edi, 1
sbb eax, eax
neg eax
add eax, 2
cmp eax, ecx
mov dword [esp + 0x10], eax
jle 0x45c499
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esp + 0x8dc]
mov edx, dword [esp + 0x8d4]
mov eax, dword [esp + 0x8c8]
push esi
push ecx
push ebx
push edx
push eax
call fcn.0045c0a0
add esp, 0x14
mov ebp, eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp ebp, 1
je 0x45c55e
mov ecx, dword [0x78a9d8]
inc ecx
cmp esi, 1
mov dword [0x78a9d8], ecx
ja 0x45c492
mov eax, dword [esp + 0x10]
mov ecx, edi
inc edi
cmp ecx, eax
jl 0x45c3ce
jmp 0x45c499
push str.Can_not_read_CD_DVD_Blu_ray_disc_sector.
push 0x79
call fcn.0051faa0
mov edi, dword [esp + 0x18]
add esp, 8
mov dword [esp + 0x18], eax
mov ebx, 1
lea edi, [edi + edi*4]
test edi, edi
jl 0x45c492
mov edx, dword [esp + 0x8dc]
mov eax, dword [esp + 0x8d8]
mov ecx, dword [esp + 0x8d0]
push esi
push edx
mov edx, dword [esp + 0x8dc]
push eax
push ecx
push edx
call fcn.0045bd40
mov ebp, eax
add esp, 0x14
cmp ebp, 1
je 0x45c4de
mov ecx, dword [0x78a9d8]
inc ecx
cmp esi, 1
mov dword [0x78a9d8], ecx
ja 0x45c492
mov eax, ebx
inc ebx
cmp eax, edi
jle 0x45c449
mov ebx, dword [esp + 0x8d8]
cmp ebp, 1
jne 0x45c56f
mov edx, dword [esp + 0x8dc]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x8e4]
add edx, esi
sub ecx, esi
mov dword [esp + 0x8dc], edx
test eax, eax
mov dword [esp + 0x14], ecx
jne 0x45c57e
mov eax, esi
shl eax, 0xb
add ebx, eax
mov dword [esp + 0x8d8], ebx
jmp 0x45c882
mov ebx, dword [esp + 0x8d8]
mov dword [0x78a9d8], 0
jmp 0x45c4a2
cmp eax, 2
jl 0x45c56d
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], ecx
cmp eax, ecx
mov edi, 1
jl 0x45c499
mov ecx, dword [esp + 0x8dc]
mov edx, dword [esp + 0x8d4]
mov eax, dword [esp + 0x8cc]
push esi
push ecx
mov ecx, dword [esp + 0x8d0]
push ebx
push edx
push eax
push ecx
call fcn.0045c160
mov ebp, eax
add esp, 0x18
cmp ebp, 1
je 0x45c55e
mov ecx, dword [0x78a9d8]
inc ecx
cmp esi, 1
mov dword [0x78a9d8], ecx
ja 0x45c492
mov eax, dword [esp + 0x10]
mov edx, edi
inc edi
cmp edx, eax
jle 0x45c507
jmp 0x45c499
mov dword [0x78a9d8], 0
jmp 0x45c4a2
xor ebp, ebp
cmp esi, 1
jbe 0x45c59a
mov esi, 1
jmp 0x45c882
lea eax, [esi + esi*2]
shl eax, 4
add eax, esi
lea ecx, [eax + eax*2]
shl ecx, 4
add ebx, ecx
mov dword [esp + 0x8d8], ebx
jmp 0x45c882
mov eax, dword [esp + 0x8ec]
test eax, eax
je 0x45c61f
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x8dc]
mov eax, dword [esp + 0x8e4]
add ecx, esi
test eax, eax
mov dword [esp + 0x8dc], ecx
mov dword [esp + 0x14], 0
jne 0x45c5d3
mov edx, esi
shl edx, 0xb
jmp 0x45c5e1
lea eax, [esi + esi*2]
shl eax, 4
add eax, esi
lea edx, [eax + eax*2]
shl edx, 4
mov ecx, edx
xor eax, eax
mov ebp, ecx
mov edi, ebx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, ebp
add ebx, edx
and ecx, 3
mov dword [esp + 0x8d8], ebx
rep stosb byte es:[edi], al
mov eax, dword [esp + 0x8f4]
test eax, eax
je 0x45c60f
mov dword [eax], 1
mov ebp, 1
mov dword [0x78a9d4], ebp
jmp 0x45c882
mov eax, dword [esp + 0x8e8]
test eax, eax
je 0x45c88e
cmp dword [0x78a9b4], 1
je 0x45c7c6
mov eax, dword [esp + 0x8c4]
test eax, eax
je 0x45c653
cmp dword [eax + 0x3bbc], 1
je 0x45c7c6
mov eax, dword [0x78ca5c]
test eax, eax
je 0x45c79f
call fcn.004f2d10
mov edi, eax
test edi, edi
je 0x45c671
cmp word [edi], 0
jne 0x45c678
call fcn.004f2d10
mov edi, eax
push str.Do_you_want_to_retry_
push edi
lea edx, [esp + 0xc8]
push str._r_n_s__s
push edx
call fcn.0053f7f2
lea eax, [esp + 0xd0]
push str._Retry_Cancel_Ignore_IgnoreAll_:
push eax
call fcn.0053f3dc
lea ecx, [esp + 0xd8]
push ecx
call fcn.004a87c0
push 0x734e70
lea edx, [esp + 0x3c]
push 0x51
push edx
call fcn.004a89f0
lea eax, [esp + 0x44]
push str.Retry
push eax
call fcn.0053f51d
add esp, 0x30
test eax, eax
je 0x45c882
lea ecx, [esp + 0x1c]
push 0x69e594
push ecx
call fcn.0053f51d
add esp, 8
test eax, eax
je 0x45c88e
lea edx, [esp + 0x1c]
push str.Ignore
push edx
call fcn.0053f51d
add esp, 8
test eax, eax
je 0x45c787
lea eax, [esp + 0x1c]
push str.IgnoreAll
push eax
call fcn.0053f51d
add esp, 8
test eax, eax
je 0x45c793
push str.Do_you_want_to_retry_
push edi
lea ecx, [esp + 0xc8]
push str._r_n_s__s
push ecx
call fcn.0053f7f2
lea edx, [esp + 0xd0]
push str._Retry_Cancel_Ignore_IgnoreAll_:
push edx
call fcn.0053f3dc
lea eax, [esp + 0xd8]
push eax
call fcn.004a87c0
push 0x734e70
lea ecx, [esp + 0x3c]
push 0x51
push ecx
call fcn.004a89f0
lea edx, [esp + 0x44]
push str.Retry
push edx
call fcn.0053f51d
add esp, 0x30
test eax, eax
jne 0x45c6da
jmp 0x45c882
mov dword [0x78a9b4], 0
jmp 0x45c7c6
mov dword [0x78a9b4], 1
jmp 0x45c7c6
mov eax, dword [esp + 0x8f0]
test eax, eax
jne 0x45c7af
mov eax, dword [0x78a9a8]
mov ecx, dword [esp + 0x18]
push ecx
push eax
call fcn.004f27f0
add esp, 8
cmp eax, 5
jne 0x45c87d
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x8dc]
mov eax, dword [esp + 0x8e4]
add ecx, esi
test eax, eax
mov dword [esp + 0x8dc], ecx
mov dword [esp + 0x14], 0
jne 0x45c7f4
mov edx, esi
shl edx, 0xb
jmp 0x45c802
lea eax, [esi + esi*2]
shl eax, 4
add eax, esi
lea edx, [eax + eax*2]
shl edx, 4
mov ecx, edx
xor eax, eax
mov ebp, ecx
mov edi, ebx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, ebp
add ebx, edx
and ecx, 3
mov ebp, 1
rep stosb byte es:[edi], al
mov eax, dword [esp + 0x8c4]
mov dword [esp + 0x8d8], ebx
test eax, eax
mov dword [0x78a9d4], ebp
je 0x45c83d
cmp dword [eax + 0x3bbc], ebp
je 0x45c882
mov eax, dword [0x78a9b4]
test eax, eax
jne 0x45c882
mov eax, dword [0x78ca5c]
test eax, eax
jne 0x45c882
push 0x24
push str.Do_you_want_to_ignore_all_errors_
push 0x19b
call fcn.0051faa0
add esp, 8
push eax
call fcn.004f3450
add esp, 8
cmp eax, 6
jne 0x45c882
mov dword [0x78a9b4], 1
jmp 0x45c882
cmp eax, 4
jne 0x45c88e
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x45c386
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
add esp, 0x8b0
ret