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

Disassembly:
push 0x468
mov eax, 0x570254
call fcn.00523a34
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 0x40a5c1
mov byte [ebp - 0x31d], 0
cmp byte [ebp - 0x31d], 0x1a
jge 0x40a5c1
mov cl, byte [ebp - 0x31d]
xor eax, eax
inc eax
shl eax, cl
test dword [ebp - 0x328], eax
je 0x40a4ef
mov eax, dword [0x587bc8]
mov dword [ebp - 0x20], eax
mov eax, dword [0x587bcc]
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 0x40a4ef
lea eax, [ebp - 0x20]
push eax
lea esi, [ebp - 0x74]
call fcn.00403350
and dword [ebp - 4], 0
lea eax, [ebp - 0xc8]
push 0x587bd0
push eax
mov ebx, esi
call fcn.004100e9
cmp dword [eax + 0x14], 8
pop ecx
pop ecx
jb 0x40a2e2
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.0040412d
cmp ebx, 0xffffffff
jne 0x40a386
lea eax, [ebp - 0x3dc]
push eax
call fcn.00403689
mov esi, eax
push 0x587bd4
push esi
mov byte [ebp - 4], 1
call fcn.00405d65
push esi
lea ecx, [ebp - 0x74]
call fcn.00411926
add esp, 0xc
push str.__skipping.
push esi
call fcn.00405d65
pop ecx
pop ecx
lea eax, [ebp - 0x3c]
push eax
mov eax, esi
call fcn.004036f3
push 2
pop ecx
mov byte [ebp - 4], cl
cmp dword [ebp - 0x28], 8
mov eax, dword [ebp - 0x3c]
jae 0x40a35f
lea eax, [ebp - 0x3c]
push eax
call fcn.00492cc7
pop ecx
push 1
xor edi, edi
lea esi, [ebp - 0x3c]
call fcn.0040412d
lea eax, [ebp - 0x3dc]
mov byte [ebp - 4], 0
call fcn.0040262a
jmp 0x40a4df
mov dword [ebp - 0x324], ebx
mov byte [ebp - 4], 3
mov ecx, 0x587c20
lea eax, [ebp - 0x2f0]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40a3c1
test dx, dx
je 0x40a3bd
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40a3c1
add eax, 4
add ecx, 4
test dx, dx
jne 0x40a39b
xor eax, eax
jmp 0x40a3c6
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40a4a7
mov ecx, 0x587c24
lea eax, [ebp - 0x2f0]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40a3ff
test dx, dx
je 0x40a3fb
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40a3ff
add eax, 4
add ecx, 4
test dx, dx
jne 0x40a3d9
xor eax, eax
jmp 0x40a404
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40a4a7
lea eax, [ebp - 0x2f0]
push eax
lea eax, [ebp - 0x58]
push eax
lea ebx, [ebp - 0x74]
call fcn.004100e9
pop ecx
pop ecx
mov byte [ebp - 4], 4
cmp dword [ebp - 0x44], 8
mov eax, dword [ebp - 0x58]
jae 0x40a431
lea eax, [ebp - 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x40a497
test al, 0x10
je 0x40a497
xor ebx, ebx
lea eax, [ebp - 0x2f0]
push eax
lea esi, [ebp - 0xac]
call fcn.00403350
lea eax, [ebp - 0x3c]
push eax
mov ecx, esi
mov byte [ebp - 4], 5
call fcn.0048faf7
pop ecx
push 1
xor edi, edi
mov byte [ebp - 4], 4
call fcn.0040412d
push dword [ebp + ebx*4 - 0x340]
lea eax, [ebp - 0x3c]
push eax
call fcn.0040da50
push 1
lea esi, [ebp - 0x3c]
cmp eax, 0xffffffff
jne 0x40a4fa
call fcn.0040412d
inc ebx
cmp ebx, 4
jb 0x40a443
push 1
xor edi, edi
lea esi, [ebp - 0x58]
mov byte [ebp - 4], 3
call fcn.0040412d
lea eax, [ebp - 0x31c]
push eax
push dword [ebp - 0x330]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x40a390
cmp dword [ebp - 0x324], eax
je 0x40a4df
cmp dword [ebp - 0x324], 0xffffffff
je 0x40a4df
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.0040412d
inc byte [ebp - 0x31d]
jmp 0x40a262
call fcn.0040412d
mov ecx, dword [ebp - 0x32c]
lea edx, [ebp - 0x58]
mov byte [ebp - 4], 6
call fcn.00408629
mov dword [ebp - 4], 4
jmp 0x40a497
call fcn.00523a90
ret 4