Function at 0x4015d6
Capabilities:
Check if file exists
Enumerate files on windows

Disassembly:
push 0x80c
mov eax, 0x442838
call fcn.0042bcc0
lea ecx, [ebp - 0xa4]
call fcn.00401edb
and dword [ebp - 4], 0
cmp dword [ebp - 0x94], 0
jne 0x401604
xor bl, bl
jmp 0x401ba1
cmp dword [ebp - 0x90], 0x10
lea edx, [ebp - 0xa4]
lea ecx, [ebp - 0x8c]
cmovae edx, dword [ebp - 0xa4]
call fcn.0041dcac
lea eax, [ebp - 0x8c]
mov byte [ebp - 4], 1
push eax
lea ecx, [ebp - 0x11c]
call fcn.0040284c
mov edi, 0x44d0c0
mov byte [ebp - 4], 2
push edi
call fcn.0040126a
pop ecx
push eax
push edi
lea ecx, [ebp - 0x8c]
call fcn.00402e83
cmp dword [ebp - 0x78], 8
lea ecx, [ebp - 0x370]
lea eax, [ebp - 0x8c]
cmovae eax, dword [ebp - 0x8c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov ebx, eax
mov dword [ebp - 0x814], ebx
cmp ebx, 0xffffffff
je 0x401b81
test byte [ebp - 0x370], 0x10
je 0x401b6b
push 4
lea ecx, [ebp - 0x344]
mov eax, str.Temp
pop esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4016c5
test dx, dx
je 0x4016c1
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4016c5
add eax, esi
add ecx, esi
test dx, dx
jne 0x4016a1
xor eax, eax
jmp 0x4016ca
sbb eax, eax
or eax, 1
test eax, eax
je 0x401b6b
lea ecx, [ebp - 0x344]
mov eax, 0x44d0d8
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x401701
test dx, dx
je 0x4016fd
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x401701
add eax, esi
add ecx, esi
test dx, dx
jne 0x4016dd
xor eax, eax
jmp 0x401706
sbb eax, eax
or eax, 1
test eax, eax
je 0x401b6b
lea ecx, [ebp - 0x344]
mov eax, 0x44d0dc
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40173d
test dx, dx
je 0x401739
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40173d
add eax, esi
add ecx, esi
test dx, dx
jne 0x401719
xor eax, eax
jmp 0x401742
sbb eax, eax
or eax, 1
test eax, eax
je 0x401b6b
lea eax, [ebp - 0x11c]
push eax
lea ecx, [ebp - 0x2c]
call fcn.0040284c
mov esi, 0x44d0e4
mov byte [ebp - 4], 3
push esi
call fcn.0040126a
pop ecx
push eax
push esi
lea ecx, [ebp - 0x2c]
call fcn.00402e83
lea eax, [ebp - 0x344]
push eax
call fcn.0040126a
pop ecx
push eax
lea eax, [ebp - 0x344]
push eax
lea ecx, [ebp - 0x2c]
call fcn.00402e83
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x5c]
call fcn.0040284c
push edi
mov byte [ebp - 4], 4
call fcn.0040126a
pop ecx
push eax
push edi
lea ecx, [ebp - 0x5c]
call fcn.00402e83
cmp dword [ebp - 0x48], 8
lea ecx, [ebp - 0x5c0]
lea eax, [ebp - 0x5c]
cmovae eax, dword [ebp - 0x5c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov esi, eax
mov dword [ebp - 0x818], esi
cmp esi, 0xffffffff
je 0x401b4f
test byte [ebp - 0x5c0], 0x10
je 0x401b33
push 4
lea ecx, [ebp - 0x594]
mov eax, 0x44d0d8
pop ebx
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40181a
test dx, dx
je 0x401816
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40181a
add eax, ebx
add ecx, ebx
test dx, dx
jne 0x4017f6
xor eax, eax
jmp 0x40181f
sbb eax, eax
or eax, 1
test eax, eax
je 0x401b33
lea ecx, [ebp - 0x594]
mov eax, 0x44d0dc
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x401856
test dx, dx
je 0x401852
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x401856
add eax, ebx
add ecx, ebx
test dx, dx
jne 0x401832
xor eax, eax
jmp 0x40185b
sbb eax, eax
or eax, 1
test eax, eax
je 0x401b33
mov ebx, 0x44d0e4
push ebx
call fcn.0040126a
pop ecx
push eax
push ebx
lea ecx, [ebp - 0x2c]
call fcn.00402e83
lea eax, [ebp - 0x594]
push eax
call fcn.0040126a
pop ecx
push eax
lea eax, [ebp - 0x594]
push eax
lea ecx, [ebp - 0x2c]
call fcn.00402e83
mov ebx, 0x44d0e8
push ebx
call fcn.0040126a
pop ecx
push eax
push ebx
lea ecx, [ebp - 0x2c]
call fcn.00402e83
cmp dword [ebp - 0x18], 8
lea eax, [ebp - 0x2c]
cmovae eax, dword [ebp - 0x2c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x401b33
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x74]
call fcn.0040284c
push edi
mov byte [ebp - 4], 5
call fcn.0040126a
pop ecx
push eax
push edi
lea ecx, [ebp - 0x74]
call fcn.00402e83
cmp dword [ebp - 0x60], 8
lea ecx, [ebp - 0x810]
lea eax, [ebp - 0x74]
cmovae eax, dword [ebp - 0x74]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x401b23
test byte [ebp - 0x810], 0x10
je 0x401b02
push 4
lea ecx, [ebp - 0x7e4]
mov eax, 0x44d0d8
pop esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40194a
test dx, dx
je 0x401946
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40194a
add eax, esi
add ecx, esi
test dx, dx
jne 0x401926
xor eax, eax
jmp 0x40194f
sbb eax, eax
or eax, 1
test eax, eax
je 0x401b02
lea ecx, [ebp - 0x7e4]
mov eax, 0x44d0dc
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x401986
test dx, dx
je 0x401982
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x401986
add eax, esi
add ecx, esi
test dx, dx
jne 0x401962
xor eax, eax
jmp 0x40198b
sbb eax, eax
or eax, 1
test eax, eax
je 0x401b02
mov esi, 0x44d0e4
push esi
call fcn.0040126a
pop ecx
push eax
push esi
lea ecx, [ebp - 0x2c]
call fcn.00402e83
lea eax, [ebp - 0x7e4]
push eax
call fcn.0040126a
pop ecx
push eax
lea eax, [ebp - 0x7e4]
push eax
lea ecx, [ebp - 0x2c]
call fcn.00402e83
mov esi, 0x44d0f0
push esi
call fcn.0040126a
pop ecx
push eax
push esi
lea ecx, [ebp - 0x2c]
call fcn.00402e83
cmp dword [ebp - 0x18], 8
lea eax, [ebp - 0x2c]
cmovae eax, dword [ebp - 0x2c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x401b02
and dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
mov byte [ebp - 4], 6
lea edx, [ebp - 0x2c]
cmp dword [ebp - 0x18], 8
lea ecx, [ebp - 0xd4]
cmovae edx, dword [ebp - 0x2c]
call fcn.0041dd26
lea edx, [ebp - 0x44]
mov byte [ebp - 4], 7
lea ecx, [ebp - 0xd4]
call fcn.0041ae2d
mov esi, str.encode__1_
push esi
call fcn.004012d5
pop ecx
push eax
push 0
push esi
lea ecx, [ebp - 0x44]
call fcn.00402ca2
mov edi, eax
cmp edi, 0xffffffff
je 0x401ae3
mov esi, 0x44d110
push esi
call fcn.004012d5
pop ecx
push eax
push edi
push esi
lea ecx, [ebp - 0x44]
call fcn.00402ca2
mov esi, eax
cmp esi, 0xffffffff
je 0x401ae3
push str.encode__
lea ecx, [ebp - 0xec]
call fcn.0040276c
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x44]
mov eax, dword [ebp - 0xdc]
sub esi, eax
sub esi, edi
add eax, edi
push esi
push eax
lea eax, [ebp - 0xbc]
push eax
call fcn.0040281c
push ecx
push ecx
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 9
push eax
lea ecx, [ebp - 0xbc]
mov byte [ebp - 0x14], 0x24
call fcn.00402d3b
lea ecx, [ebp - 0xbc]
cmp eax, 0xffffffff
jne 0x401bb8
push 0
push 1
call fcn.00402d99
push 0
push 1
lea ecx, [ebp - 0xec]
call fcn.00402d99
push 0
push 1
lea ecx, [ebp - 0xd4]
call fcn.00402d99
push 0
push 1
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 5
call fcn.00402d99
lea eax, [ebp - 0x810]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x40190b
mov esi, dword [ebp - 0x818]
mov edi, 0x44d0c0
push 0
push 1
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 4
call fcn.00403476
lea eax, [ebp - 0x5c0]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x4017db
mov ebx, dword [ebp - 0x814]
push 0
push 1
lea ecx, [ebp - 0x5c]
call fcn.00403476
push 0
push 1
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 2
call fcn.00403476
lea eax, [ebp - 0x370]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x401686
xor bl, bl
push 0
push 1
lea ecx, [ebp - 0x11c]
call fcn.00403476
push 0
push 1
lea ecx, [ebp - 0x8c]
call fcn.00403476
push 0
push 1
lea ecx, [ebp - 0xa4]
call fcn.00402d99
mov al, bl
call fcn.0042bc6f
ret
push 0xffffffffffffffff
inc eax
push eax
lea eax, [ebp - 0x104]
push eax
call fcn.0040281c
push 0xffffffffffffffff
xor ebx, ebx
mov byte [ebp - 4], 0xa
push ebx
lea eax, [ebp - 0x104]
mov ecx, 0x45b6a4
push eax
call fcn.00402c0e
push ebx
push 1
lea ecx, [ebp - 0x104]
mov byte [0x45cec4], 1
call fcn.00402d99
push ebx
push 1
lea ecx, [ebp - 0xbc]
call fcn.00402d99
push ebx
push 1
lea ecx, [ebp - 0xec]
call fcn.00402d99
push ebx
push 1
lea ecx, [ebp - 0xd4]
call fcn.00402d99
push ebx
push 1
lea ecx, [ebp - 0x44]
call fcn.00402d99
push ebx
push 1
lea ecx, [ebp - 0x74]
call fcn.00403476
push ebx
push 1
lea ecx, [ebp - 0x5c]
call fcn.00403476
push ebx
push 1
lea ecx, [ebp - 0x2c]
call fcn.00403476
mov bl, 1
jmp 0x401b83