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

Disassembly:
push 0x468
mov eax, 0x5b5ba5
call fcn.0056bee1
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 0x40aaad
mov byte [ebp - 0x31d], 0
cmp byte [ebp - 0x31d], 0x1a
jge 0x40aaad
mov cl, byte [ebp - 0x31d]
xor eax, eax
inc eax
shl eax, cl
test dword [ebp - 0x328], eax
je 0x40a9db
mov eax, dword [0x5cb4e8]
mov dword [ebp - 0x20], eax
mov eax, dword [0x5cb4ec]
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 0x40a9db
lea eax, [ebp - 0x20]
push eax
lea esi, [ebp - 0x74]
call fcn.004037ae
and dword [ebp - 4], 0
lea eax, [ebp - 0xc8]
push 0x5cb4f0
push eax
mov ebx, esi
call fcn.00410581
cmp dword [eax + 0x14], 8
pop ecx
pop ecx
jb 0x40a7b5
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.00404589
cmp ebx, 0xffffffff
jne 0x40a859
lea eax, [ebp - 0x3dc]
push eax
call fcn.00403aba
mov esi, eax
push 0x5cb4f4
push esi
mov byte [ebp - 4], 1
call fcn.0040635f
push esi
lea ecx, [ebp - 0x74]
call fcn.00411d36
add esp, 0xc
push str.__skipping.
push esi
call fcn.0040635f
pop ecx
pop ecx
lea eax, [ebp - 0x3c]
push eax
mov eax, esi
call fcn.00403b24
push 2
pop ecx
mov byte [ebp - 4], cl
cmp dword [ebp - 0x28], 8
mov eax, dword [ebp - 0x3c]
jae 0x40a832
lea eax, [ebp - 0x3c]
push eax
call fcn.0047feaf
pop ecx
push 1
xor edi, edi
lea esi, [ebp - 0x3c]
call fcn.00404589
lea eax, [ebp - 0x3dc]
mov byte [ebp - 4], 0
call fcn.004027ed
jmp 0x40a9cb
mov dword [ebp - 0x324], ebx
mov byte [ebp - 4], 3
mov ecx, 0x5cb540
lea eax, [ebp - 0x2f0]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40a894
test dx, dx
je 0x40a890
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40a894
add eax, 4
add ecx, 4
test dx, dx
jne 0x40a86e
xor eax, eax
jmp 0x40a899
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40a993
mov ecx, 0x5cb544
lea eax, [ebp - 0x2f0]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40a8d2
test dx, dx
je 0x40a8ce
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40a8d2
add eax, 4
add ecx, 4
test dx, dx
jne 0x40a8ac
xor eax, eax
jmp 0x40a8d7
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40a993
lea eax, [ebp - 0x2f0]
push eax
lea eax, [ebp - 0x58]
push eax
lea ebx, [ebp - 0x74]
call fcn.00410581
pop ecx
pop ecx
mov byte [ebp - 4], 4
cmp dword [ebp - 0x44], 8
mov eax, dword [ebp - 0x58]
jae 0x40a904
lea eax, [ebp - 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x40a983
test al, 0x10
je 0x40a983
xor ebx, ebx
lea eax, [ebp - 0x2f0]
push eax
lea esi, [ebp - 0xac]
call fcn.004037ae
lea eax, [ebp - 0x3c]
push eax
mov ecx, esi
mov byte [ebp - 4], 5
call fcn.0047c7d6
pop ecx
push 1
xor edi, edi
mov byte [ebp - 4], 4
call fcn.00404589
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 0x40a951
sub eax, edx
sar eax, 1
push eax
push ecx
xor eax, eax
lea ecx, [ebp - 0x3c]
call fcn.0040ee00
xor edi, edi
push 1
lea esi, [ebp - 0x3c]
cmp eax, 0xffffffff
jne 0x40a9e6
call fcn.00404589
inc ebx
cmp ebx, 4
jb 0x40a916
push 1
xor edi, edi
lea esi, [ebp - 0x58]
mov byte [ebp - 4], 3
call fcn.00404589
lea eax, [ebp - 0x31c]
push eax
push dword [ebp - 0x330]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x40a863
cmp dword [ebp - 0x324], eax
je 0x40a9cb
cmp dword [ebp - 0x324], 0xffffffff
je 0x40a9cb
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.00404589
inc byte [ebp - 0x31d]
jmp 0x40a735
call fcn.00404589
mov ecx, dword [ebp - 0x32c]
lea edx, [ebp - 0x58]
mov byte [ebp - 4], 6
call fcn.00408ade
mov dword [ebp - 4], 4
jmp 0x40a983
call fcn.0056bf3d
ret 4