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

Disassembly:
push 0x200
mov eax, 0x42e77f
call fcn.0042c6c5
xor edi, edi
mov dword [ebp - 4], edi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x20], edi
xor ebx, ebx
lea eax, [ebp - 0x1c]
inc ebx
mov byte [ebp - 4], bl
push 0x436f9c
push dword [ebp + 8]
mov dword [ebp - 0x1c], edi
push eax
call fcn.0041b5f0
add esp, 0xc
cmp dword [ebp - 0x1c], edi
je 0x40713b
push ecx
push ecx
lea ecx, [ebp - 0x20c]
call fcn.004106d0
mov byte [ebp - 4], 2
push dword [ebp - 0x1c]
call fcn.00410bd0
test eax, eax
jne 0x407130
push 0x436fa4
lea ecx, [ebp - 0x20c]
call fcn.00404b1b
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x14], eax
call fcn.00404ba5
test eax, eax
jne 0x406cea
push dword [ebp - 0x1c]
call fcn.0041b6ae
jmp 0x40712f
push 0x436fb0
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x14]
call fcn.00404b7d
lea ecx, [ebp - 0x10]
call fcn.00404ba5
test eax, eax
je 0x406d5c
mov esi, dword [ebp - 0x10]
test esi, esi
je 0x406d13
mov eax, dword [esi + 0x1c]
jmp 0x406d15
mov eax, edi
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x10], eax
call fcn.00404bc5
test eax, eax
je 0x406d5c
test esi, esi
je 0x406d2d
mov eax, dword [esi + 0x1c]
jmp 0x406d2f
mov eax, edi
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x10], eax
call fcn.00404bc5
mov ecx, eax
call fcn.0040f0f0
test eax, eax
je 0x406d5c
push eax
lea ecx, [ebp - 0x28]
call fcn.00404c2b
mov esi, dword [ebp + 0x10]
push eax
lea ecx, [esi + 0xc]
call fcn.00401b68
jmp 0x406d5f
mov esi, dword [ebp + 0x10]
push 0x436fbc
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x14]
call fcn.00404b7d
lea ecx, [ebp - 0x10]
call fcn.00404ba5
test eax, eax
je 0x406db2
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x406d88
mov eax, dword [eax + 0x1c]
jmp 0x406d8a
mov eax, edi
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x10], eax
call fcn.00404bc5
mov ecx, eax
call fcn.0040f0f0
test eax, eax
je 0x406db2
push eax
lea ecx, [ebp - 0x28]
call fcn.00404c2b
push eax
lea ecx, [esi + 0x10]
call fcn.00401b68
push 0x436fc4
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x14]
call fcn.00404b7d
lea ecx, [ebp - 0x10]
call fcn.00404ba5
test eax, eax
je 0x406e09
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x406ddb
mov eax, dword [eax + 0x1c]
jmp 0x406ddd
mov eax, edi
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x10], eax
call fcn.00404bc5
test eax, eax
je 0x406e09
mov ecx, eax
call fcn.0040f0f0
test eax, eax
je 0x406e09
push eax
lea ecx, [ebp - 0x28]
call fcn.00404c2b
push eax
lea ecx, [esi + 0x14]
call fcn.00401b68
push 0x436fd0
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x14]
call fcn.00404b7d
lea ecx, [ebp - 0x10]
call fcn.00404ba5
test eax, eax
je 0x406e60
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x406e32
mov eax, dword [eax + 0x1c]
jmp 0x406e34
mov eax, edi
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x10], eax
call fcn.00404bc5
test eax, eax
je 0x406e60
mov ecx, eax
call fcn.0040f0f0
test eax, eax
je 0x406e60
push eax
lea ecx, [ebp - 0x28]
call fcn.00404c2b
push eax
lea ecx, [esi + 0x18]
call fcn.00401b68
push 0x436fdc
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x14]
call fcn.00404b7d
lea ecx, [ebp - 0x10]
call fcn.00404ba5
test eax, eax
je 0x406eb7
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x406e89
mov eax, dword [eax + 0x1c]
jmp 0x406e8b
mov eax, edi
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x10], eax
call fcn.00404bc5
test eax, eax
je 0x406eb7
mov ecx, eax
call fcn.0040f0f0
test eax, eax
je 0x406eb7
push eax
lea ecx, [ebp - 0x28]
call fcn.00404c2b
push eax
lea ecx, [esi + 0x28]
call fcn.00401b68
cmp dword [ebp + 0xc], 0
je 0x407125
mov ecx, dword [ebp + 8]
lea ecx, [ecx - 0x10]
call fcn.00401ccd
lea esi, [eax + 0x10]
mov dword [ebp - 0x18], esi
mov byte [ebp - 4], 3
push 0x5c
push dword [ebp + 8]
call fcn.00414947
pop ecx
pop ecx
test eax, eax
je 0x406f19
sub eax, dword [ebp + 8]
sar eax, 1
js 0x406f19
push eax
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp + 8]
call fcn.00403a8a
push eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 4
call fcn.00403de0
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx - 0x10]
call fcn.00401592
mov esi, dword [ebp - 0x18]
mov edi, dword [esi - 0xc]
cmp edi, ebx
jg 0x406f30
lea ecx, [esi - 0x10]
call fcn.00401ccd
lea edi, [eax + 0x10]
mov dword [ebp - 0x10], edi
jmp 0x406f4a
lea ecx, [ebp - 0x18]
call fcn.00403f2e
dec edi
push eax
push ebx
lea ecx, [esi + edi*2]
push ecx
lea ecx, [ebp - 0x10]
call fcn.0040406a
mov edi, dword [ebp - 0x10]
push 0x436638
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 5
call fcn.00403d5f
lea ecx, [edi - 0x10]
mov byte [ebp - 4], 3
mov ebx, eax
call fcn.00401592
test ebx, ebx
je 0x406f7d
push 0x436638
lea ecx, [ebp - 0x18]
call fcn.00403da5
mov esi, dword [ebp - 0x18]
push str.FileList
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x14]
call fcn.00404b7d
lea ecx, [ebp - 0x10]
call fcn.00404ba5
test eax, eax
jne 0x406fb3
push dword [ebp - 0x1c]
call fcn.0041b6ae
pop ecx
lea ecx, [esi - 0x10]
call fcn.00401592
xor ebx, ebx
inc ebx
jmp 0x407130
push str.FileItem
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x10]
call fcn.00404b7d
lea ecx, [ebp - 0x14]
call fcn.00404ba5
test eax, eax
je 0x40711b
mov edi, dword [ebp + 0x10]
push ecx
push str.name
lea ecx, [ebp - 0x14]
call fcn.00404ba5
mov ecx, eax
call fcn.0040fea0
push ecx
push str.description
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x2c], eax
call fcn.00404ba5
mov ecx, eax
call fcn.0040fea0
push ecx
push str.optional
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x34], eax
call fcn.00404ba5
mov ecx, eax
call fcn.0040fea0
mov ebx, eax
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x4070f8
push eax
lea ecx, [ebp - 0x28]
call fcn.00404c2b
push eax
lea ecx, [ebp - 0x10]
call fcn.00403e7d
lea ecx, [ebp - 0x4c]
call fcn.00404be5
lea eax, [ebp - 0x10]
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp - 0x4c]
call fcn.00403de0
lea eax, [ebp - 0x10]
push eax
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x30]
call fcn.00403a35
pop ecx
push eax
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 8
call fcn.00403de0
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x30]
lea ecx, [ecx - 0x10]
call fcn.00401592
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x407098
push eax
lea ecx, [ebp - 0x28]
call fcn.00404c2b
push eax
lea ecx, [ebp - 0x44]
call fcn.00401b68
and dword [ebp - 0x40], 0
test ebx, ebx
je 0x4070b8
cmp byte [ebx], 0x31
jne 0x4070b2
movzx eax, byte [ebx + 1]
test al, al
jne 0x4070b2
xor eax, eax
inc eax
jmp 0x4070b5
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x3c], eax
push dword [ebp - 0x48]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4070e1
test al, 0x10
jne 0x4070e1
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x10]
push eax
lea ecx, [edi + 0x78]
call fcn.004074cb
mov ecx, eax
call fcn.004050bd
lea ecx, [ebp - 0x4c]
call fcn.0040683b
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
call fcn.00401592
push ecx
lea ecx, [ebp - 0x14]
call fcn.00404ba5
mov ecx, eax
call fcn.00404b4d
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x14], eax
call fcn.00404ba5
test eax, eax
jne 0x406fd7
lea ecx, [esi - 0x10]
call fcn.00401592
xor edi, edi
push dword [ebp - 0x1c]
call fcn.0041b6ae
mov ebx, edi
pop ecx
lea ecx, [ebp - 0x20c]
call fcn.00410930
lea ecx, [ebp - 0x28]
call fcn.00402862
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
call fcn.00401592
mov eax, ebx
call fcn.0042c693
ret 0xc