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

Disassembly:
mov eax, 0x41e910
call fcn.00411694
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.0040256e
push esi
call fcn.00410a60
pop ecx
push eax
push esi
lea ecx, [ebp - 0x34]
call fcn.00402731
lea eax, [ebp - 0x34]
mov ecx, 0x42bde0
push eax
lea eax, [ebp - 0x14]
push eax
mov dword [ebp - 4], ebx
call fcn.004051ed
mov edi, dword [ebp - 0x14]
or dword [ebp - 4], 0xffffffff
push 1
lea ecx, [ebp - 0x34]
call fcn.0040256e
cmp edi, dword [0x42bde4]
je 0x404907
mov edi, dword [edi + 0x1c]
mov al, byte [edi + 0x2d0]
cmp al, bl
je 0x404907
mov cx, word [edi + 0x20]
cmp cx, word [esi + 0x20]
jb 0x40488e
mov byte [ebp - 0xd], bl
cmp al, bl
je 0x404907
cmp word [esi + 0x20], bx
jne 0x40490d
lea eax, [ebp - 0x24c]
push 0x200
push eax
call dword [sym.imp.KERNEL32.DLL_GetSystemDirectoryA]
push esi
push 0x41ff5c
push 9
call fcn.0040857d
pop ecx
pop ecx
push eax
lea eax, [ebp - 0x24c]
push eax
call fcn.00410a60
pop ecx
lea eax, [ebp + eax - 0x24c]
push eax
call fcn.0041088a
push 0x41f5b8
push ebx
call fcn.0040857d
add esp, 0x14
mov edx, eax
lea ecx, [ebp - 0x24c]
call fcn.00407e67
push ebx
mov byte [edi + 0x2d0], bl
call fcn.00410b5f
pop ecx
mov dword [edi + 0x2dc], eax
jmp 0x404c55
cmp word [esi + 0x20], bx
je 0x404915
cmp dword [esi + 0x2e0], ebx
je 0x404918
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x404c55
mov al, byte [ebp - 0xd]
push ebx
lea ecx, [ebp - 0x24]
mov byte [ebp - 0x24], al
call fcn.0040256e
push esi
call fcn.00410a60
pop ecx
push eax
push esi
lea ecx, [ebp - 0x24]
call fcn.00402731
mov eax, dword [0x42a52c]
mov edi, 0x42a528
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.00405198
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x38], eax
je 0x4049cd
mov al, byte [ebp - 0xd]
push ebx
lea ecx, [ebp - 0x34]
mov byte [ebp - 0x34], al
call fcn.0040256e
push esi
call fcn.00410a60
pop ecx
push eax
push esi
lea ecx, [ebp - 0x34]
call fcn.00402731
lea eax, [ebp - 0x34]
mov ecx, edi
push eax
mov byte [ebp - 4], 2
call fcn.00404fe4
mov eax, dword [eax]
mov ecx, dword [0x425488]
add eax, ecx
push ebx
mov dword [ebp - 0x14], eax
call fcn.00410b5f
cmp eax, dword [ebp - 0x14]
pop ecx
push 1
lea ecx, [ebp - 0x34]
setl byte [ebp - 0xd]
mov byte [ebp - 4], 1
call fcn.0040256e
cmp byte [ebp - 0xd], bl
mov byte [ebp - 0xd], 1
jne 0x4049d0
mov byte [ebp - 0xd], bl
or dword [ebp - 4], 0xffffffff
push 1
lea ecx, [ebp - 0x24]
call fcn.0040256e
cmp byte [ebp - 0xd], bl
je 0x404a4f
mov al, byte [ebp - 0xd]
push ebx
lea ecx, [ebp - 0x24]
mov byte [ebp - 0x24], al
call fcn.0040256e
push esi
call fcn.00410a60
pop ecx
push eax
push esi
lea ecx, [ebp - 0x24]
call fcn.00402731
push ebx
mov dword [ebp - 4], 3
call fcn.00410b5f
mov ebx, dword [0x425488]
pop ecx
sub ebx, eax
lea eax, [ebp - 0x24]
push eax
mov ecx, edi
call fcn.00404fe4
mov eax, dword [eax]
add eax, ebx
push eax
push esi
push 0x41ff0c
push 0x4e
call fcn.0040857d
pop ecx
pop ecx
push eax
call fcn.004016e1
add esp, 0xc
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x24]
push 1
jmp 0x404c50
mov ecx, esi
call fcn.00404557
test eax, eax
je 0x404ba4
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
push ebx
mov edi, eax
call fcn.00410b5f
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.0040256e
push esi
call fcn.00410a60
pop ecx
push eax
push esi
lea ecx, [ebp - 0x24]
call fcn.00402731
lea eax, [ebp - 0x24]
mov ecx, 0x42bde0
push eax
lea eax, [ebp - 0x38]
push eax
mov dword [ebp - 4], 4
call fcn.004051ed
mov eax, dword [ebp - 0x38]
push 1
cmp eax, dword [0x42bde4]
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x28], eax
setne byte [ebp - 0xd]
or dword [ebp - 4], 0xffffffff
call fcn.0040256e
cmp byte [ebp - 0xd], bl
je 0x404ae2
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x1c]
push eax
mov ecx, dword [eax + 0x2d4]
mov dword [ebp - 0x14], ecx
call fcn.004116b3
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 [0x41ff08]
fstp qword [esp]
push eax
push esi
push 0x41fee4
push 0x23
call fcn.0040857d
pop ecx
pop ecx
push eax
lea eax, [ebp - 0x64c]
push eax
call fcn.0041088a
add esp, 0x18
lea eax, [ebp - 0x64c]
push eax
push 1
push 0x41fed4
push 0xe
call fcn.0040857d
pop ecx
pop ecx
push eax
call fcn.00407c97
mov eax, dword [ebp - 0x14]
push ebx
mov dword [esi + 0x2d4], eax
call fcn.00410b5f
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.0040256e
push esi
call fcn.00410a60
pop ecx
push eax
push esi
lea ecx, [ebp - 0x24]
call fcn.00402731
lea eax, [ebp - 0x24]
mov ecx, 0x42bde0
push eax
mov dword [ebp - 4], 5
call fcn.004050b2
or dword [ebp - 4], 0xffffffff
mov dword [eax], esi
push 1
lea ecx, [ebp - 0x24]
jmp 0x404c50
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 [0x41ff08]
fstp qword [esp]
push dword [0x425488]
push eax
push esi
push 0x41fe9c
push 0x35
call fcn.0040857d
pop ecx
pop ecx
push eax
lea eax, [ebp - 0x64c]
push eax
call fcn.0041088a
add esp, 0x1c
lea eax, [ebp - 0x64c]
push eax
push ebx
push 0x41fed4
push 0xe
call fcn.0040857d
pop ecx
pop ecx
push eax
call fcn.00407c97
mov al, byte [ebp - 0xd]
add esp, 0xc
lea ecx, [ebp - 0x4c]
mov byte [ebp - 0x4c], al
push ebx
call fcn.0040256e
push esi
call fcn.00410a60
pop ecx
push eax
push esi
lea ecx, [ebp - 0x4c]
call fcn.00402731
push ebx
mov dword [ebp - 4], 6
call fcn.00410b5f
mov esi, eax
pop ecx
lea eax, [ebp - 0x4c]
mov ecx, edi
push eax
call fcn.00404fe4
or dword [ebp - 4], 0xffffffff
mov dword [eax], esi
push 1
lea ecx, [ebp - 0x4c]
call fcn.0040256e
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
xor eax, eax
pop ebx
mov dword fs:[0], ecx
leave
ret