Function at 0x40428e
Capabilities:
Check for time delay via gettickcount
Get common file path

Disassembly:
mov eax, 0x4193a8
call fcn.0040cfe4
sub esp, 0x640
push ebx
push esi
push edi
mov esi, ecx
call dword [sym.imp.kernel32.dll_GetTickCount]
mov dword [ebp - 0x3c], eax
mov byte [ebp - 0xd], 1
mov al, byte [ebp - 0xd]
xor ebx, ebx
push ebx
lea ecx, [ebp - 0x34]
mov byte [ebp - 0x34], al
call fcn.00404d0d
push esi
call fcn.0040c050
pop ecx
push eax
push esi
lea ecx, [ebp - 0x34]
call fcn.00404f12
lea eax, [ebp - 0x34]
mov ecx, 0x423f98
push eax
lea eax, [ebp - 0x14]
push eax
mov dword [ebp - 4], ebx
call fcn.00404e7a
mov edi, dword [ebp - 0x14]
or dword [ebp - 4], 0xffffffff
push 1
lea ecx, [ebp - 0x34]
call fcn.00404d0d
cmp edi, dword [0x423f9c]
je 0x4043a3
mov edi, dword [edi + 0x1c]
mov al, byte [edi + 0x2d0]
cmp al, bl
je 0x4043a3
mov cx, word [edi + 0x20]
cmp cx, word [esi + 0x20]
jb 0x40432a
cmp dword [esi + 0x2e4], ebx
jne 0x40432a
mov byte [ebp - 0xd], bl
cmp al, bl
je 0x4043a3
cmp word [esi + 0x20], bx
jne 0x4043a9
lea eax, [ebp - 0x24c]
push 0x200
push eax
call dword [sym.imp.kernel32.dll_GetSystemDirectoryA]
push esi
push 0x41b0bc
push 9
call fcn.00408cb1
pop ecx
pop ecx
push eax
lea eax, [ebp - 0x24c]
push eax
call fcn.0040c050
pop ecx
lea eax, [ebp + eax - 0x24c]
push eax
call fcn.0040ba39
push 0x41a800
push ebx
call fcn.00408cb1
add esp, 0x14
mov edx, eax
lea ecx, [ebp - 0x24c]
call fcn.00408010
push ebx
mov byte [edi + 0x2d0], bl
call fcn.0040c33a
pop ecx
mov dword [edi + 0x2dc], eax
jmp 0x4046f1
cmp word [esi + 0x20], bx
je 0x4043b1
cmp dword [esi + 0x2e0], ebx
je 0x4043b4
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x4046f1
mov al, byte [ebp - 0xd]
push ebx
lea ecx, [ebp - 0x24]
mov byte [ebp - 0x24], al
call fcn.00404d0d
push esi
call fcn.0040c050
pop ecx
push eax
push esi
lea ecx, [ebp - 0x24]
call fcn.00404f12
mov eax, dword [0x423f44]
mov edi, 0x423f40
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x38]
push eax
mov ecx, edi
mov dword [ebp - 4], 1
call fcn.00404dc0
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x38], eax
je 0x404469
mov al, byte [ebp - 0xd]
push ebx
lea ecx, [ebp - 0x34]
mov byte [ebp - 0x34], al
call fcn.00404d0d
push esi
call fcn.0040c050
pop ecx
push eax
push esi
lea ecx, [ebp - 0x34]
call fcn.00404f12
lea eax, [ebp - 0x34]
mov ecx, edi
push eax
mov byte [ebp - 4], 2
call fcn.00404afa
mov eax, dword [eax]
mov ecx, dword [0x41f1d0]
add eax, ecx
push ebx
mov dword [ebp - 0x14], eax
call fcn.0040c33a
cmp eax, dword [ebp - 0x14]
pop ecx
push 1
lea ecx, [ebp - 0x34]
setl byte [ebp - 0xd]
mov byte [ebp - 4], 1
call fcn.00404d0d
cmp byte [ebp - 0xd], bl
mov byte [ebp - 0xd], 1
jne 0x40446c
mov byte [ebp - 0xd], bl
or dword [ebp - 4], 0xffffffff
push 1
lea ecx, [ebp - 0x24]
call fcn.00404d0d
cmp byte [ebp - 0xd], bl
je 0x4044eb
mov al, byte [ebp - 0xd]
push ebx
lea ecx, [ebp - 0x24]
mov byte [ebp - 0x24], al
call fcn.00404d0d
push esi
call fcn.0040c050
pop ecx
push eax
push esi
lea ecx, [ebp - 0x24]
call fcn.00404f12
push ebx
mov dword [ebp - 4], 3
call fcn.0040c33a
mov ebx, dword [0x41f1d0]
pop ecx
sub ebx, eax
lea eax, [ebp - 0x24]
push eax
mov ecx, edi
call fcn.00404afa
mov eax, dword [eax]
add eax, ebx
push eax
push esi
push 0x41b06c
push 0x4e
call fcn.00408cb1
pop ecx
pop ecx
push eax
call fcn.0040a709
add esp, 0xc
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x24]
push 1
jmp 0x4046ec
mov ecx, esi
call fcn.00403f80
test eax, eax
je 0x404640
call dword [sym.imp.kernel32.dll_GetTickCount]
push ebx
mov edi, eax
call fcn.0040c33a
pop ecx
mov dword [ebp - 0x14], eax
mov al, byte [ebp - 0xd]
push ebx
lea ecx, [ebp - 0x24]
mov byte [ebp - 0x24], al
call fcn.00404d0d
push esi
call fcn.0040c050
pop ecx
push eax
push esi
lea ecx, [ebp - 0x24]
call fcn.00404f12
lea eax, [ebp - 0x24]
mov ecx, 0x423f98
push eax
lea eax, [ebp - 0x38]
push eax
mov dword [ebp - 4], 4
call fcn.00404e7a
mov eax, dword [ebp - 0x38]
push 1
cmp eax, dword [0x423f9c]
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x28], eax
setne byte [ebp - 0xd]
or dword [ebp - 4], 0xffffffff
call fcn.00404d0d
cmp byte [ebp - 0xd], bl
je 0x40457e
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x1c]
push eax
mov ecx, dword [eax + 0x2d4]
mov dword [ebp - 0x14], ecx
call fcn.0040b5d6
pop ecx
sub edi, dword [ebp - 0x3c]
mov dword [ebp - 0x28], ebx
movzx eax, word [esi + 0x20]
mov dword [ebp - 0x2c], edi
push ecx
fild qword [ebp - 0x2c]
push ecx
fmul dword [0x41b068]
fstp qword [esp]
push eax
push esi
push 0x41b044
push 0x23
call fcn.00408cb1
pop ecx
pop ecx
push eax
lea eax, [ebp - 0x64c]
push eax
call fcn.0040ba39
add esp, 0x18
lea eax, [ebp - 0x64c]
push eax
push 1
push 0x41b034
push 0xe
call fcn.00408cb1
pop ecx
pop ecx
push eax
call fcn.00407e55
mov eax, dword [ebp - 0x14]
push ebx
mov dword [esi + 0x2d4], eax
call fcn.0040c33a
add esp, 0x10
mov dword [esi + 0x2d8], eax
mov al, byte [ebp - 0xd]
lea ecx, [ebp - 0x24]
push ebx
mov dword [esi + 0x2dc], ebx
mov byte [esi + 0x2d0], 1
mov byte [ebp - 0x24], al
call fcn.00404d0d
push esi
call fcn.0040c050
pop ecx
push eax
push esi
lea ecx, [ebp - 0x24]
call fcn.00404f12
lea eax, [ebp - 0x24]
mov ecx, 0x423f98
push eax
mov dword [ebp - 4], 5
call fcn.00404bc8
or dword [ebp - 4], 0xffffffff
mov dword [eax], esi
push 1
lea ecx, [ebp - 0x24]
jmp 0x4046ec
call dword [sym.imp.kernel32.dll_GetTickCount]
sub eax, dword [ebp - 0x3c]
mov dword [ebp - 0x28], ebx
push ecx
push ecx
mov dword [ebp - 0x2c], eax
fild qword [ebp - 0x2c]
movzx eax, word [esi + 0x20]
fmul dword [0x41b068]
fstp qword [esp]
push dword [0x41f1d0]
push eax
push esi
push 0x41affc
push 0x35
call fcn.00408cb1
pop ecx
pop ecx
push eax
lea eax, [ebp - 0x64c]
push eax
call fcn.0040ba39
add esp, 0x1c
lea eax, [ebp - 0x64c]
push eax
push ebx
push 0x41b034
push 0xe
call fcn.00408cb1
pop ecx
pop ecx
push eax
call fcn.00407e55
mov al, byte [ebp - 0xd]
add esp, 0xc
lea ecx, [ebp - 0x4c]
mov byte [ebp - 0x4c], al
push ebx
call fcn.00404d0d
push esi
call fcn.0040c050
pop ecx
push eax
push esi
lea ecx, [ebp - 0x4c]
call fcn.00404f12
push ebx
mov dword [ebp - 4], 6
call fcn.0040c33a
mov esi, eax
pop ecx
lea eax, [ebp - 0x4c]
mov ecx, edi
push eax
call fcn.00404afa
or dword [ebp - 4], 0xffffffff
mov dword [eax], esi
push 1
lea ecx, [ebp - 0x4c]
call fcn.00404d0d
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
xor eax, eax
pop ebx
mov dword fs:[0], ecx
leave
ret