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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa84
mov eax, dword [0x1013a420]
xor eax, esp
mov dword [esp + 0xa80], eax
push ebx
push esi
push edi
xor eax, eax
mov dword [esp + 0x10], edx
push 0x206
push eax
mov word [esp + 0x680], ax
mov ebx, ecx
lea eax, [esp + 0x682]
mov dword [esp + 0x1c], ebx
push eax
xor edi, edi
call fcn.1003e9c0
push ebx
lea eax, [esp + 0x688]
push str._s.lnk
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x18
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x67c]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x1000d6f6
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpyW]
test byte [esp + 0x18], 0x10
jne 0x1000d6a7
xor eax, eax
push 0x206
push eax
mov word [esp + 0x888], ax
lea eax, [esp + 0x88a]
push eax
call fcn.1003e9c0
lea eax, [esp + 0x50]
push eax
push dword [esp + 0x24]
lea eax, [esp + 0x894]
push 0x1012df4c
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
xor eax, eax
push 0x206
push eax
mov word [esp + 0x28c], ax
lea eax, [esp + 0x28e]
push eax
call fcn.1003e9c0
add esp, 0x28
lea edx, [esp + 0x268]
lea ecx, [esp + 0x880]
call fcn.1000d44b
test eax, eax
je 0x1000d6a7
lea eax, [esp + 0x268]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x1000d6a7
xor eax, eax
push 0x206
push eax
mov word [esp + 0x478], ax
lea eax, [esp + 0x47a]
push eax
call fcn.1003e9c0
add esp, 0xc
lea eax, [esp + 0x268]
push eax
lea eax, [esp + 0x474]
push eax
call ebx
lea eax, [esp + 0x470]
push eax
call fcn.1003a0b7
lea eax, [esp + 0x474]
mov dword [esp], str.kugou.exe
push eax
call fcn.10038cb5
pop ecx
pop ecx
test eax, eax
jne 0x1000d6bd
lea eax, [esp + 0x470]
push str.kugou7.exe
push eax
call fcn.10038cb5
pop ecx
pop ecx
test eax, eax
jne 0x1000d6bd
lea eax, [esp + 0x470]
push str.kugoo.exe
push eax
call fcn.10038cb5
pop ecx
pop ecx
test eax, eax
jne 0x1000d6bd
lea eax, [esp + 0x18]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x1000d589
jmp 0x1000d6e3
lea ecx, [esp + 0x268]
call fcn.1000cc81
mov edi, eax
lea eax, [esp + 0x268]
push eax
push dword [esp + 0x14]
call ebx
push dword [esp + 0x10]
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
test edi, edi
jg 0x1000d7ec
mov ebx, dword [esp + 0x14]
cmp dword [ebp + 8], 0
je 0x1000d7ec
push ebx
lea eax, [esp + 0x67c]
push str._s
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x67c]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x1000d7ec
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test byte [esp + 0x18], 0x10
je 0x1000d7d1
push 0x1012df58
lea eax, [esp + 0x48]
push eax
call ebx
test eax, eax
je 0x1000d7d1
push 0x1012df5c
lea eax, [esp + 0x48]
push eax
call ebx
test eax, eax
je 0x1000d7d1
xor eax, eax
push 0x206
push eax
mov word [esp + 0x270], ax
lea eax, [esp + 0x272]
push eax
call fcn.1003e9c0
lea eax, [esp + 0x50]
push eax
push dword [esp + 0x24]
lea eax, [esp + 0x27c]
push 0x1012df4c
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [esp + 0x284]
push 0x1012e334
push eax
call fcn.10038cb5
add esp, 0x24
test eax, eax
je 0x1000d7d1
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x268]
push 0
call fcn.1000d508
mov edi, eax
pop ecx
test edi, edi
jg 0x1000d7e5
lea eax, [esp + 0x18]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x1000d73b
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, dword [esp + 0xa8c]
mov eax, edi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1003890f
mov esp, ebp
pop ebp
ret