Function at 0x40c38f
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push 0x374
mov eax, 0x5aeafd
call fcn.0058f792
mov eax, dword [ebp + 0xc]
lea ecx, [ebp - 0x380]
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x350], ebx
mov dword [ebp - 0x34c], eax
call fcn.0047409e
and dword [ebp - 4], 0
lea ecx, [ebp - 0x344]
push ebx
call fcn.00406ad4
push ebx
lea ecx, [ebp - 0x348]
mov byte [ebp - 4], 1
call fcn.00406ad4
lea ecx, [ebp - 0x338]
mov byte [ebp - 4], 2
call sym.SETUP.exe_public:_void___thiscall_CDeviceInfSection::constructor_void_
mov esi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
xorps xmm0, xmm0
push ebx
mov byte [ebp - 4], 3
movlpd qword [ebp - 0x358], xmm0
call esi
cmp eax, 0xffffffff
je 0x40c4b1
push ebx
call esi
cmp eax, 0xffffffff
je 0x40c4b1
push ebx
call esi
test al, 0x10
je 0x40c4b1
push 0x5c
lea ecx, [ebp - 0x344]
call fcn.0041efc9
push 0x5c5f64
lea ecx, [ebp - 0x344]
call fcn.00409054
lea eax, [ebp - 0x348]
push eax
call fcn.00409001
lea ecx, [ebp - 0x348]
mov dword [esp], 0x5c59c4
call fcn.00409054
call fcn.00474a71
mov esi, dword [eax + 4]
call fcn.00474a71
lea ecx, [esi + 0xcc]
mov edi, dword [eax + 4]
mov eax, dword [ebp - 0x348]
mov dword [ebp - 0x340], eax
mov ebx, dword [eax - 0xc]
call fcn.00413f8c
movzx eax, ax
push eax
lea eax, [ebp - 0x338]
push eax
lea eax, [edi + 0xd0]
push eax
lea eax, [ebx + 1]
push eax
push dword [ebp - 0x340]
call fcn.004125dd
mov ebx, dword [ebp - 0x350]
add esp, 0x14
push 0
push dword [ebp - 0x344]
lea ecx, [ebp - 0x380]
call fcn.004741ba
mov esi, dword [ebp - 0x354]
mov edi, dword [ebp - 0x358]
test eax, eax
je 0x40c6a7
push ebx
lea ecx, [ebp - 0x33c]
call fcn.00406ad4
lea ecx, [ebp - 0x380]
mov byte [ebp - 4], 4
call fcn.00474362
lea ecx, [ebp - 0x380]
mov dword [ebp - 0x354], eax
call fcn.00474720
test eax, eax
jne 0x40c67d
push 0x5c
lea ecx, [ebp - 0x33c]
call fcn.0041efc9
lea eax, [ebp - 0x364]
push eax
lea ecx, [ebp - 0x380]
call fcn.0047442e
push eax
lea eax, [ebp - 0x360]
mov byte [ebp - 4], 5
push 0x5c4f0c
push eax
call fcn.0040897a
add esp, 0xc
mov eax, dword [eax]
lea ecx, [ebp - 0x33c]
mov byte [ebp - 4], 6
push dword [eax - 0xc]
push eax
call fcn.0040907d
mov ecx, dword [ebp - 0x360]
lea ecx, [ecx - 0x10]
call fcn.0041d6f2
mov ecx, dword [ebp - 0x364]
mov byte [ebp - 4], 4
lea ecx, [ecx - 0x10]
call fcn.0041d6f2
mov eax, dword [ebp - 0x380]
lea ecx, [ebp - 0x380]
push 0x10
call dword [eax + 0x38]
test eax, eax
je 0x40c662
lea ecx, [ebp - 0x338]
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInfSection::Count_void_
test eax, eax
je 0x40c649
and dword [ebp - 0x340], 0
lea ecx, [ebp - 0x338]
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInfSection::Count_void_
test eax, eax
je 0x40c67d
mov ebx, dword [ebp - 0x340]
lea eax, [ebp - 0x35c]
push eax
lea ecx, [ebp - 0x380]
call fcn.0047442e
push dword [eax]
lea ecx, [ebp - 0x338]
mov byte [ebp - 4], 7
push ebx
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetValue_unsigned_long_int_
push eax
call fcn.005921d4
pop ecx
pop ecx
mov ecx, dword [ebp - 0x35c]
test eax, eax
mov byte [ebp - 4], 4
setne bl
lea ecx, [ecx - 0x10]
call fcn.0041d6f2
test bl, bl
je 0x40c62a
mov ebx, dword [ebp - 0x340]
lea ecx, [ebp - 0x338]
inc ebx
mov dword [ebp - 0x340], ebx
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInfSection::Count_void_
cmp ebx, eax
jb 0x40c5c5
jmp 0x40c641
push dword [ebp - 0x34c]
push dword [ebp - 0x33c]
call fcn.0040c38f
add edi, eax
pop ecx
pop ecx
adc esi, edx
mov ebx, dword [ebp - 0x350]
jmp 0x40c67d
push dword [ebp - 0x34c]
push dword [ebp - 0x33c]
call fcn.0040c38f
add edi, eax
pop ecx
pop ecx
adc esi, edx
jmp 0x40c67d
lea ecx, [ebp - 0x380]
call fcn.004746e1
add edi, eax
mov eax, dword [ebp - 0x34c]
adc esi, edx
test eax, eax
je 0x40c67d
inc dword [eax]
mov ecx, dword [ebp - 0x33c]
mov byte [ebp - 4], 3
lea ecx, [ecx - 0x10]
call fcn.0041d6f2
cmp dword [ebp - 0x354], 0
jne 0x40c4d8
lea ecx, [ebp - 0x380]
call fcn.0047416e
lea ecx, [ebp - 0x338]
mov byte [ebp - 4], 2
call sym.SETUP.exe_public_virtual:_void___thiscall_CDeviceInfSection::destructor_void_
mov ecx, dword [ebp - 0x348]
lea ecx, [ecx - 0x10]
call fcn.0041d6f2
mov ecx, dword [ebp - 0x344]
add ecx, 0xfffffff0
call fcn.0041d6f2
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x380]
call fcn.004740ce
mov eax, edi
mov edx, esi
call fcn.0058f741
ret