Function at 0x405a37
Capabilities:
Check if file exists
Enumerate files on windows
Get disk information
Get file attributes

Disassembly:
push 0x468
mov eax, 0x5b2d44
call fcn.0056cecb
mov eax, dword [ebp + 8]
mov dword [ebp - 0x32c], eax
mov dword [ebp - 0x340], str.game
mov dword [ebp - 0x33c], str.steam
mov dword [ebp - 0x338], str.origin
mov dword [ebp - 0x334], str.uplay
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov dword [ebp - 0x328], eax
test eax, eax
je 0x405e0a
mov byte [ebp - 0x31d], 0
cmp byte [ebp - 0x31d], 0x1a
jge 0x405e0a
mov cl, byte [ebp - 0x31d]
xor eax, eax
inc eax
shl eax, cl
test dword [ebp - 0x328], eax
je 0x405d38
mov eax, dword [0x5c3ab8]
mov dword [ebp - 0x20], eax
mov eax, dword [0x5c3abc]
mov dword [ebp - 0x1c], eax
movsx ax, cl
add ax, 0x41
mov word [ebp - 0x20], ax
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 3
jne 0x405d38
lea eax, [ebp - 0x20]
push eax
lea esi, [ebp - 0x74]
call fcn.00409096
and dword [ebp - 4], 0
lea eax, [ebp - 0xc8]
push 0x5c3ac0
push eax
mov ebx, esi
call fcn.0040cf5b
cmp dword [eax + 0x14], 8
pop ecx
pop ecx
jb 0x405b12
mov eax, dword [eax]
lea ecx, [ebp - 0x31c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov ebx, eax
push 1
xor edi, edi
lea esi, [ebp - 0xc8]
mov dword [ebp - 0x330], ebx
call fcn.0040b028
cmp ebx, 0xffffffff
jne 0x405bb6
lea eax, [ebp - 0x3dc]
push eax
call fcn.00409ac6
mov esi, eax
push 0x5c3ac4
push esi
mov byte [ebp - 4], 1
call fcn.0040fa1f
push esi
lea ecx, [ebp - 0x74]
call fcn.0040fbd3
add esp, 0xc
push str.__skipping.
push esi
call fcn.0040fa1f
pop ecx
pop ecx
lea eax, [ebp - 0x3c]
push eax
mov eax, esi
call fcn.00409b30
push 2
pop ecx
mov byte [ebp - 4], cl
cmp dword [ebp - 0x28], 8
mov eax, dword [ebp - 0x3c]
jae 0x405b8f
lea eax, [ebp - 0x3c]
push eax
call fcn.0047c666
pop ecx
push 1
xor edi, edi
lea esi, [ebp - 0x3c]
call fcn.0040b028
lea eax, [ebp - 0x3dc]
mov byte [ebp - 4], 0
call fcn.004021a3
jmp 0x405d28
mov dword [ebp - 0x324], ebx
mov byte [ebp - 4], 3
mov ecx, 0x5c3b10
lea eax, [ebp - 0x2f0]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x405bf1
test dx, dx
je 0x405bed
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x405bf1
add eax, 4
add ecx, 4
test dx, dx
jne 0x405bcb
xor eax, eax
jmp 0x405bf6
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x405cf0
mov ecx, 0x5c3b14
lea eax, [ebp - 0x2f0]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x405c2f
test dx, dx
je 0x405c2b
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x405c2f
add eax, 4
add ecx, 4
test dx, dx
jne 0x405c09
xor eax, eax
jmp 0x405c34
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x405cf0
lea eax, [ebp - 0x2f0]
push eax
lea eax, [ebp - 0x58]
push eax
lea ebx, [ebp - 0x74]
call fcn.0040cf5b
pop ecx
pop ecx
mov byte [ebp - 4], 4
cmp dword [ebp - 0x44], 8
mov eax, dword [ebp - 0x58]
jae 0x405c61
lea eax, [ebp - 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x405ce0
test al, 0x10
je 0x405ce0
xor ebx, ebx
lea eax, [ebp - 0x2f0]
push eax
lea esi, [ebp - 0xac]
call fcn.00409096
lea eax, [ebp - 0x3c]
push eax
mov ecx, esi
mov byte [ebp - 4], 5
call fcn.00477fa8
pop ecx
push 1
xor edi, edi
mov byte [ebp - 4], 4
call fcn.0040b028
mov ecx, dword [ebp + ebx*4 - 0x340]
mov eax, ecx
lea edx, [eax + 2]
mov si, word [eax]
add eax, 2
test si, si
jne 0x405cae
sub eax, edx
sar eax, 1
push eax
push ecx
xor eax, eax
lea ecx, [ebp - 0x3c]
call fcn.0040af00
xor edi, edi
push 1
lea esi, [ebp - 0x3c]
cmp eax, 0xffffffff
jne 0x405d43
call fcn.0040b028
inc ebx
cmp ebx, 4
jb 0x405c73
push 1
xor edi, edi
lea esi, [ebp - 0x58]
mov byte [ebp - 4], 3
call fcn.0040b028
lea eax, [ebp - 0x31c]
push eax
push dword [ebp - 0x330]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x405bc0
cmp dword [ebp - 0x324], eax
je 0x405d28
cmp dword [ebp - 0x324], 0xffffffff
je 0x405d28
push dword [ebp - 0x324]
call dword [sym.imp.KERNEL32.dll_FindClose]
or dword [ebp - 4], 0xffffffff
push 1
xor edi, edi
lea esi, [ebp - 0x74]
call fcn.0040b028
inc byte [ebp - 0x31d]
jmp 0x405a92
call fcn.0040b028
mov ecx, dword [ebp - 0x32c]
lea edx, [ebp - 0x58]
mov byte [ebp - 4], 6
call fcn.00403e3d
mov dword [ebp - 4], 4
jmp 0x405ce0
call fcn.0056cf27
ret 4