Function at 0x42d744
Capabilities:
Check for time delay via gettickcount
Check if file exists

Disassembly:
push 0x564
mov eax, 0x47e230
call fcn.0046436b
mov esi, ecx
mov dword [ebp - 0x42c], esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x428], eax
lea eax, [esi + 0x164]
push eax
mov dword [ebp - 0x444], eax
mov byte [ebp - 0x440], 1
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
xor edi, edi
mov dword [ebp - 4], edi
mov dword [esi + 0x10c], edi
mov dword [esi + 0x110], edi
call fcn.00418880
mov ebx, eax
cmp ebx, edi
mov dword [ebp - 0x424], ebx
je 0x42d7ae
mov eax, dword [ebx]
push 0x48b6c8
mov ecx, ebx
call dword [eax]
mov eax, dword [esi + 0x15c]
mov eax, dword [eax]
add esi, 0x158
mov dword [ebp - 0x418], esi
mov dword [ebp - 0x41c], eax
mov dword [ebp - 0x420], esi
mov eax, dword [ebp - 0x418]
mov ecx, dword [eax + 4]
lea edi, [ebp - 0x434]
lea esi, [ebp - 0x420]
mov dword [ebp - 0x430], ecx
mov dword [ebp - 0x434], eax
call fcn.0041eaa7
test al, al
jne 0x42d94e
mov edi, dword [ebp - 0x420]
test edi, edi
jne 0x42d80b
call fcn.0045d307
mov esi, dword [ebp - 0x41c]
cmp esi, dword [edi + 4]
jne 0x42d81b
call fcn.0045d307
lea edi, [esi + 0x18]
lea eax, [edi + 0x15b]
cmp byte [eax], 0
jne 0x42d84a
mov byte [eax], 1
lea eax, [edi + 0x3c]
push eax
movzx eax, word [edi + 0x156]
push eax
push dword [edi + 0x152]
xor ecx, ecx
push 0x30
call fcn.0041c851
add esp, 0x10
cmp dword [edi + 0x164], 0
jne 0x42d863
lea esi, [ebp - 0x420]
call fcn.0043131c
jmp 0x42d7ce
mov eax, dword [ebp - 0x428]
sub eax, dword [edi + 0x160]
mov ecx, 0x88b8
cmp eax, ecx
jbe 0x42d8a6
cmp byte [edi + 0x158], 0
jne 0x42d8a6
mov edi, dword [ebp - 0x420]
mov dword [ebp - 0x438], esi
lea esi, [ebp - 0x420]
call fcn.0043131c
push dword [ebp - 0x438]
lea eax, [ebp - 0x570]
jmp 0x42d90b
cmp eax, 0x927c0
jbe 0x42d8db
cmp byte [edi + 0x158], 0
je 0x42d8db
mov edi, dword [ebp - 0x420]
mov dword [ebp - 0x460], esi
lea esi, [ebp - 0x420]
call fcn.0043131c
push dword [ebp - 0x460]
lea eax, [ebp - 0x44c]
jmp 0x42d90b
cmp eax, ecx
jbe 0x42d91d
cmp byte [edi + 0x158], 0
jne 0x42d91d
mov edi, dword [ebp - 0x420]
mov dword [ebp - 0x458], esi
lea esi, [ebp - 0x420]
call fcn.0043131c
push dword [ebp - 0x458]
lea eax, [ebp - 0x454]
push edi
push eax
push dword [ebp - 0x418]
call fcn.00430948
jmp 0x42d7ce
push 0
push 0xa
lea esi, [edi + 0xf98]
call fcn.0043069c
test ebx, ebx
mov dword [edi + 0x180], eax
je 0x42d853
mov ebx, edi
mov edi, dword [ebp - 0x424]
call fcn.0042d0c0
mov ebx, edi
jmp 0x42d853
mov edi, 0x4a96e8
call fcn.00421bdc
xor edi, edi
cmp dword [0x4a6760], edi
je 0x42de45
cmp ebx, edi
je 0x42de57
mov eax, dword [ebx]
push edi
push edi
mov ecx, ebx
call dword [eax + 4]
mov eax, dword [ebp - 0x42c]
mov eax, dword [eax + 0x160]
mov edx, dword [ebx]
push edi
push eax
mov ecx, ebx
call dword [edx + 0xc]
push dword [0x4a96e8]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
lea eax, [ebp - 0x414]
push 0x48b6e0
push eax
call fcn.0045c670
add esp, 0x10
lea eax, [ebp - 0x414]
push eax
lea esi, [ebp - 0x568]
call fcn.00417d0e
mov byte [ebp - 4], 1
mov eax, dword [eax]
mov edx, dword [ebx]
push eax
mov ecx, ebx
call dword [edx + 8]
lea eax, [ebp - 0x564]
mov byte [ebp - 4], 0
cmp dword [ebp - 0x568], eax
je 0x42d9eb
push dword [ebp - 0x568]
call int.0045cc72
pop ecx
push dword [0x4a96ec]
lea eax, [ebp - 0x414]
push 0x48b6f0
push eax
call fcn.0045c670
add esp, 0xc
lea eax, [ebp - 0x414]
push eax
lea esi, [ebp - 0x568]
call fcn.00417d0e
mov byte [ebp - 4], 2
mov eax, dword [eax]
mov edx, dword [ebx]
push eax
mov ecx, ebx
call dword [edx + 8]
lea eax, [ebp - 0x564]
mov byte [ebp - 4], 0
cmp dword [ebp - 0x568], eax
je 0x42da43
push dword [ebp - 0x568]
call int.0045cc72
pop ecx
mov eax, 0x4a96e8
call fcn.0042c5ca
push eax
lea eax, [ebp - 0x414]
push 0x48b700
push eax
call fcn.0045c670
add esp, 0xc
lea eax, [ebp - 0x414]
push eax
lea esi, [ebp - 0x568]
call fcn.00417d0e
mov byte [ebp - 4], 3
mov eax, dword [eax]
mov edx, dword [ebx]
push eax
mov ecx, ebx
call dword [edx + 8]
lea eax, [ebp - 0x564]
mov byte [ebp - 4], 0
cmp dword [ebp - 0x568], eax
je 0x42daa0
push dword [ebp - 0x568]
call int.0045cc72
pop ecx
movzx eax, byte [0x4a9d98]
push eax
lea eax, [ebp - 0x414]
push 0x489d18
push eax
call fcn.0045c670
add esp, 0xc
lea eax, [ebp - 0x414]
push eax
lea esi, [ebp - 0x568]
call fcn.00417d0e
mov byte [ebp - 4], 4
mov eax, dword [eax]
mov edx, dword [ebx]
push eax
mov ecx, ebx
call dword [edx + 8]
lea eax, [ebp - 0x564]
mov byte [ebp - 4], 0
cmp dword [ebp - 0x568], eax
je 0x42dafa
push dword [ebp - 0x568]
call int.0045cc72
pop ecx
movzx eax, byte [0x4a9d99]
push eax
lea eax, [ebp - 0x414]
push 0x489d20
push eax
call fcn.0045c670
add esp, 0xc
lea eax, [ebp - 0x414]
push eax
lea esi, [ebp - 0x568]
call fcn.00417d0e
mov byte [ebp - 4], 5
mov eax, dword [eax]
mov edx, dword [ebx]
push eax
mov ecx, ebx
call dword [edx + 8]
lea eax, [ebp - 0x564]
mov byte [ebp - 4], 0
cmp dword [ebp - 0x568], eax
je 0x42db54
push dword [ebp - 0x568]
call int.0045cc72
pop ecx
push edi
mov esi, 0x4a96e8
call fcn.00419888
push eax
lea eax, [ebp - 0x414]
push 0x48b70c
push eax
call fcn.0045c670
add esp, 0xc
lea eax, [ebp - 0x414]
push eax
lea esi, [ebp - 0x568]
call fcn.00417d0e
mov byte [ebp - 4], 6
mov eax, dword [eax]
mov edx, dword [ebx]
push eax
mov ecx, ebx
call dword [edx + 8]
lea eax, [ebp - 0x564]
mov byte [ebp - 4], 0
cmp dword [ebp - 0x568], eax
je 0x42dbb2
push dword [ebp - 0x568]
call int.0045cc72
pop ecx
push dword [0x4a973c]
mov eax, dword [ebx]
push dword [0x4a9738]
mov ecx, ebx
call dword [eax + 0xc]
mov ecx, dword [0x4a9738]
sub ecx, dword [0x4aab60]
mov edx, dword [0x4a973c]
sbb edx, dword [0x4aab64]
mov eax, dword [ebx]
push edx
push ecx
mov ecx, ebx
call dword [eax + 0xc]
mov eax, dword [ebx]
push 0x486cac
mov ecx, ebx
call dword [eax + 8]
push edi
mov edi, 0x4a9718
push 0x14
mov esi, edi
call fcn.0041daa0
push edx
push eax
lea eax, [ebp - 0x414]
push 0x48b714
push eax
call fcn.0045c670
add esp, 0x10
lea eax, [ebp - 0x414]
push eax
lea esi, [ebp - 0x568]
call fcn.00417d0e
mov byte [ebp - 4], 7
mov eax, dword [eax]
mov edx, dword [ebx]
push eax
mov ecx, ebx
call dword [edx + 8]
lea eax, [ebp - 0x564]
mov byte [ebp - 4], 0
cmp dword [ebp - 0x568], eax
je 0x42dc55
push dword [ebp - 0x568]
call int.0045cc72
pop ecx
mov eax, edi
call fcn.0041dbb0
push edx
push eax
lea eax, [ebp - 0x414]
push 0x48b720
push eax
call fcn.0045c670
add esp, 0x10
lea eax, [ebp - 0x414]
push eax
lea esi, [ebp - 0x568]
call fcn.00417d0e
mov byte [ebp - 4], 8
mov eax, dword [eax]
mov edx, dword [ebx]
push eax
mov ecx, ebx
call dword [edx + 8]
lea eax, [ebp - 0x564]
mov byte [ebp - 4], 0
cmp dword [ebp - 0x568], eax
je 0x42dcb0
push dword [ebp - 0x568]
call int.0045cc72
pop ecx
push dword [0x4a96f4]
lea eax, [ebp - 0x414]
push 0x48b72c
push eax
call fcn.0045c670
add esp, 0xc
lea eax, [ebp - 0x414]
push eax
lea esi, [ebp - 0x568]
call fcn.00417d0e
mov byte [ebp - 4], 9
mov eax, dword [eax]
mov edx, dword [ebx]
push eax
mov ecx, ebx
call dword [edx + 8]
lea eax, [ebp - 0x564]
mov byte [ebp - 4], 0
cmp dword [ebp - 0x568], eax
je 0x42dd08
push dword [ebp - 0x568]
call int.0045cc72
pop ecx
push dword [0x4a9714]
lea eax, [ebp - 0x414]
push 0x48b734
push eax
call fcn.0045c670
add esp, 0xc
lea eax, [ebp - 0x414]
push eax
lea esi, [ebp - 0x568]
call fcn.00417d0e
mov byte [ebp - 4], 0xa
mov eax, dword [eax]
mov edx, dword [ebx]
push eax
mov ecx, ebx
call dword [edx + 8]
lea eax, [ebp - 0x564]
mov byte [ebp - 4], 0
cmp dword [ebp - 0x568], eax
je 0x42dd60
push dword [ebp - 0x568]
call int.0045cc72
pop ecx
mov edi, 0x49dafc
mov eax, edi
call fcn.0042c5ca
push eax
push dword [0x49d3e8]
lea eax, [ebp - 0x414]
push 0x48b740
push eax
call fcn.0045c670
add esp, 0x10
lea eax, [ebp - 0x414]
push eax
lea esi, [ebp - 0x568]
call fcn.00417d0e
mov byte [ebp - 4], 0xb
mov eax, dword [eax]
mov edx, dword [ebx]
push eax
mov ecx, ebx
call dword [edx + 8]
lea eax, [ebp - 0x564]
mov byte [ebp - 4], 0
cmp dword [ebp - 0x568], eax
je 0x42ddc5
push dword [ebp - 0x568]
call int.0045cc72
pop ecx
push 0
mov esi, 0x49db08
call fcn.00419888
push eax
push 0
mov esi, edi
call fcn.00419888
push eax
push 0
mov esi, 0x49daf0
call fcn.00419888
push eax
push ecx
call fcn.0042d510
pop ecx
push eax
lea eax, [ebp - 0x414]
push 0x48b750
push eax
call fcn.0045c670
add esp, 0x18
lea eax, [ebp - 0x414]
push eax
lea esi, [ebp - 0x568]
call fcn.00417d0e
mov byte [ebp - 4], 0xc
mov eax, dword [eax]
mov edx, dword [ebx]
push eax
mov ecx, ebx
call dword [edx + 8]
lea eax, [ebp - 0x564]
mov byte [ebp - 4], 0
cmp dword [ebp - 0x568], eax
je 0x42de43
push dword [ebp - 0x568]
call int.0045cc72
pop ecx
xor edi, edi
cmp ebx, edi
je 0x42de57
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x14]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x18]
mov eax, dword [0x4a96f4]
mov dword [0x4a7854], eax
mov eax, dword [0x4a903c]
mov dword [0x4a7864], eax
mov eax, dword [0x4aab1c]
mov dword [0x4a785c], eax
mov eax, dword [0x4a8984]
push edi
push 0x14
mov esi, 0x4a9dd0
mov dword [0x4a7858], edi
mov dword [0x4a7868], edi
mov dword [0x4a7860], edi
mov dword [0x4a786c], eax
mov dword [0x4a7870], edi
call fcn.0041daa0
mov dword [0x4a7874], eax
mov eax, esi
mov dword [0x4a7878], edx
call fcn.0041dbb0
push edi
push 0x14
mov esi, 0x4aa488
mov dword [0x4a787c], eax
mov dword [0x4a7880], edx
call fcn.0041daa0
mov dword [0x4a7884], eax
mov eax, esi
mov dword [0x4a7888], edx
call fcn.0041dbb0
mov dword [0x4a788c], eax
mov eax, dword [ebp - 0x42c]
add eax, 0x140
push eax
mov dword [0x4a7890], edx
mov dword [ebp - 0x43c], eax
mov byte [ebp - 0x438], 1
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [ebp - 4], 0xd
call fcn.00418880
mov ebx, eax
cmp ebx, edi
mov dword [ebp - 0x428], ebx
je 0x42dfab
mov eax, dword [ebx]
push 0x48b768
mov ecx, ebx
call dword [eax]
call fcn.00429b22
mov esi, dword [eax + 8]
cmp esi, edi
jbe 0x42dfab
mov eax, esi
imul eax, eax, 0x125
push eax
call fcn.0045b0a4
pop ecx
mov dword [ebp - 0x418], eax
call fcn.00429b22
cmp dword [ebp - 0x418], edi
je 0x42df6d
push dword [ebp - 0x418]
mov ecx, esi
mov esi, eax
call fcn.0042ad77
jmp 0x42df70
mov eax, dword [eax + 8]
cmp eax, edi
jbe 0x42df9f
mov esi, dword [ebp - 0x418]
mov dword [ebp - 0x424], eax
jmp 0x42df88
mov ebx, dword [ebp - 0x428]
mov ecx, esi
mov edi, ebx
call fcn.0042ce9c
add esi, 0x125
dec dword [ebp - 0x424]
jne 0x42df82
push dword [ebp - 0x418]
call fcn.0045c296
pop ecx
mov eax, dword [ebp - 0x42c]
mov ecx, dword [eax + 0x138]
mov ebx, dword [ecx]
add eax, 0x134
mov dword [ebp - 0x418], eax
mov dword [ebp - 0x41c], ebx
mov dword [ebp - 0x420], eax
mov ecx, dword [eax + 4]
lea edi, [ebp - 0x434]
lea esi, [ebp - 0x420]
mov dword [ebp - 0x430], ecx
mov dword [ebp - 0x434], eax
call fcn.0041eaa7
test al, al
jne 0x42e09c
mov edi, dword [ebp - 0x420]
test edi, edi
jne 0x42e007
call fcn.0045d307
cmp ebx, dword [edi + 4]
jne 0x42e011
call fcn.0045d307
lea esi, [ebx + 0x3c]
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x42e064
push esi
push 0x48b780
call fcn.00417a54
mov esi, dword [ebx + 0x20]
pop ecx
pop ecx
call fcn.00436aa8
lea esi, [ebp - 0x420]
call fcn.00427eb3
lea eax, [ebp - 0x454]
push ebx
push edi
push eax
push dword [ebp - 0x418]
call fcn.004301ac
mov ebx, dword [ebp - 0x41c]
mov eax, dword [ebp - 0x418]
jmp 0x42dfd0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebx + 0x30]
cmp eax, 0xea60
jbe 0x42e08f
mov esi, dword [ebx + 0x20]
call fcn.00436aa8
lea esi, [ebp - 0x420]
call fcn.00427eb3
lea eax, [ebp - 0x44c]
jmp 0x42e045
lea esi, [ebp - 0x420]
call fcn.00427eb3
jmp 0x42e053
mov esi, dword [ebp - 0x428]
test esi, esi
je 0x42e0b4
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x14]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x18]
push dword [ebp - 0x43c]
mov esi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call esi
push dword [ebp - 0x444]
call esi
call fcn.004643ee
ret