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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x658
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
mov edi, dword [ebp + 0x10]
push 0
push 0x2d
push dword [edi]
lea eax, [ebp - 0x244]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCompactPathExW]
mov eax, dword [ebx]
push 0
lea ecx, [ebp - 0x244]
push ecx
mov ecx, ebx
call dword [eax + 0x20]
mov eax, dword [ebx]
push 1
push 0x5befa0
mov ecx, ebx
call dword [eax + 0x20]
lea eax, [edi + 4]
lea esi, [ebp - 8]
call fcn.0050a3c7
mov eax, dword [edi + 8]
inc word [eax + 0x16]
mov ecx, dword [ebp - 8]
test ecx, ecx
mov dword [ebp - 0xc], eax
je 0x508128
cmp byte [ecx + 0xd], 0
setne cl
jmp 0x50812a
mov cl, 1
test cl, cl
je 0x50813c
mov esi, dword [ebp + 8]
mov dword [esi], 2
jmp 0x508394
test byte [eax + 0x11], 1
jne 0x50812e
movzx ecx, byte [eax + 0x10]
push ecx
push dword [eax + 0xc]
lea eax, [ebp - 8]
call fcn.00512a6f
and dword [ebp - 0x28], 0
fld dword [0x60d410]
lea eax, [ebp - 8]
push eax
fstp dword [ebp - 0x23]
lea eax, [ebp + 0xc]
push eax
lea ecx, [ebp - 0x2c]
mov byte [ebp - 0x24], 0
mov dword [ebp - 0x2c], 0x5c8d00
call dword [0x5c8d04]
push eax
lea edi, [ebp - 8]
call fcn.0050a441
lea ecx, [ebp + 0xc]
call fcn.0050a40d
mov ecx, dword [ebp - 8]
xor edi, edi
cmp ecx, edi
je 0x50819c
mov eax, dword [ecx]
push edi
push edi
call dword [eax + 0x10]
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0xc]
or ecx, dword [eax + 0x10]
jne 0x5081b4
mov eax, dword [ebx]
mov ecx, ebx
mov byte [ebp + 0xf], 1
call dword [eax + 0x28]
jmp 0x5081bf
mov eax, dword [ebx]
mov ecx, ebx
mov byte [ebp + 0xf], 0
call dword [eax + 0x2c]
mov eax, dword [ebp - 8]
cmp eax, edi
je 0x5081cb
mov al, byte [eax + 8]
jmp 0x5081cd
mov al, 1
movzx eax, al
shl eax, 0xd
lea esi, [ebp - 0x10]
call fcn.00435451
mov dword [ebp - 0x14], edi
jmp 0x508355
mov ecx, dword [ebp - 8]
test ecx, ecx
je 0x5081f8
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, dword [ebp - 8]
mov esi, eax
mov edi, edx
jmp 0x5081fc
xor esi, esi
xor edi, edi
test ecx, ecx
je 0x508207
mov eax, dword [ecx]
call dword [eax + 0xc]
jmp 0x50820b
xor eax, eax
xor edx, edx
sub eax, esi
sbb edx, edi
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp - 0x14]
cmp eax, 0xc8
jbe 0x50828b
mov eax, dword [ebp - 8]
test eax, eax
je 0x508231
mov eax, dword [eax + 4]
jmp 0x508236
mov eax, 0xac44
push edi
push esi
call fcn.0050a10e
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x44c]
push eax
lea eax, [ebp - 0x34]
mov dword [ebp - 0x30], edx
call fcn.0050a512
mov eax, dword [ebp + 0x10]
push dword [eax]
lea eax, [ebp - 0x44c]
push eax
push 0x5ff938
mov esi, 0x104
lea edi, [ebp - 0x654]
call fcn.004a9039
mov eax, dword [ebx]
add esp, 0xc
push 0
mov ecx, edi
push ecx
mov ecx, ebx
call dword [eax + 0x20]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x14], eax
xor edi, edi
cmp dword [ebp - 0x18], edi
jl 0x508326
jg 0x5082a1
cmp dword [ebp - 0x1c], edi
jbe 0x508326
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
call fcn.00402663
mov ecx, dword [ebp - 8]
test ecx, ecx
mov edi, eax
push edi
push dword [ebp - 0x10]
je 0x5082c0
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x5082c7
mov al, 1
call fcn.0040263e
mov esi, dword [ebp - 0xc]
mov eax, dword [esi]
push edi
push dword [ebp - 0x10]
mov ecx, esi
call dword [eax + 4]
test byte [esi + 0x11], 1
jne 0x50836e
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x10]
mov dword [ebp - 0x2c], eax
or eax, ecx
mov dword [ebp - 0x28], ecx
je 0x50831a
push dword [esi + 8]
mov eax, dword [esi + 0xc]
push dword [esi + 4]
mov edi, dword [ebx]
call fcn.0050a10e
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
fild qword [ebp - 0x3c]
push ecx
fild qword [ebp - 0x2c]
push ecx
mov ecx, ebx
fdivp st(1)
fstp qword [esp]
call dword [edi + 0x24]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax]
test al, al
jne 0x508363
jmp 0x508355
mov ecx, dword [ebp - 8]
cmp ecx, edi
je 0x508334
mov eax, dword [ecx]
call dword [eax + 0x18]
jmp 0x508336
xor al, al
test al, al
je 0x508379
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax]
test al, al
jne 0x508363
mov ecx, dword [ebp - 8]
cmp ecx, edi
je 0x508355
mov eax, dword [ecx]
push 0x96
call dword [eax + 0x1c]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax]
test al, al
je 0x5081e3
mov esi, dword [ebp + 8]
mov dword [esi], 1
jmp 0x50838b
mov esi, dword [ebp + 8]
mov dword [esi], 2
jmp 0x50838b
cmp byte [ebp + 0xf], 0
je 0x508386
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x2c]
mov esi, dword [ebp + 8]
mov dword [esi], edi
push dword [ebp - 0x10]
call fcn.0058f8c9
pop ecx
lea ecx, [ebp - 0xc]
call fcn.0040602e
lea ecx, [ebp - 8]
call fcn.0050a40d
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret 0xc