Function at 0x409547
Capabilities:
Enumerate files on windows
Enumerate files recursively

Disassembly:
push ebp
mov ebp, esp
add esp, reloc.gdi32.dll_SetWorldTransform
mov dword [ebp - 0x148], 0
mov eax, dword [ebp + 0x14]
and eax, eax
je reloc.gdi32.dll_SetWorldTransform
cmp byte [eax], 0
jne reloc.gdi32.dll_SetWorldTransform
jmp reloc.gdi32.dll_SetWorldTransform
push dword [ebp + 0x14]
call fcn.00402573
and eax, eax
jne reloc.gdi32.dll_SetWorldTransform
push reloc.shlwapi.dll_PathIsUNCServerShareW
push dword [ebp + 0x14]
call fcn.00401db1
jmp reloc.gdi32.dll_SetWorldTransform
push reloc.shlwapi.dll_SHRegGetUSValueW
push dword [ebp + 0x14]
call fcn.00401db1
mov dword [ebp - 0x148], eax
push reloc.gdi32.dll_SetWorldTransform
lea eax, [ebp - 0x140]
push eax
call fcn.0040189f
lea eax, [ebp - 0x140]
push eax
push dword [ebp - reloc.gdi32.dll_SetWorldTransform]
call sub.kernel32.dll_FindFirstFileA
mov dword [ebp - 0x144], eax
inc eax
je reloc.gdi32.dll_SetWorldTransform
lea edx, [ebp - 0x140]
test dword [edx], 0x10
je reloc.gdi32.dll_SetWorldTransform
lea eax, [edx + 0x2c]
push eax
push reloc.shlwapi.dll_StrRStrIA
call sub.kernel32.dll_lstrcmpiA
and eax, eax
jne reloc.gdi32.dll_SetWorldTransform
jmp reloc.gdi32.dll_SetWorldTransform
lea edx, [ebp - 0x140]
lea eax, [edx + 0x2c]
push eax
push reloc.shlwapi.dll_StrRStrIA
call sub.kernel32.dll_lstrcmpiA
and eax, eax
jne reloc.gdi32.dll_SetWorldTransform
jmp reloc.gdi32.dll_SetWorldTransform
push dword [ebp + 0x14]
call fcn.00402573
and eax, eax
jne reloc.gdi32.dll_SetWorldTransform
push reloc.shlwapi.dll_PathIsUNCServerShareW
push dword [ebp + 0x14]
call fcn.00401db1
jmp reloc.gdi32.dll_SetWorldTransform
push 0
push dword [ebp + 0x14]
call fcn.00401db1
lea edx, [ebp - 0x140]
lea edx, [edx + 0x2c]
push edx
push eax
call fcn.00401e05
push eax
push eax
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00409547
call fcn.00401871
jmp reloc.gdi32.dll_SetWorldTransform
lea eax, [edx + 0x2c]
mov dword [ebp - 0x14c], eax
cmp dword [0x41680e], 3
jne reloc.gdi32.dll_SetWorldTransform
push reloc.shlwapi.dll_ColorHLSToRGB
push dword [ebp - reloc.gdi32.dll_SetWorldTransform]
call sub.shlwapi.dll_StrStrIA
and eax, eax
je reloc.gdi32.dll_SetWorldTransform
push reloc.shlwapi.dll_PathIsUNCServerShareW
push dword [ebp + 0x14]
call fcn.00401db1
push dword [ebp - reloc.gdi32.dll_SetWorldTransform]
push eax
call fcn.00401e05
push eax
push reloc.gdi32.dll_SetWorldTransform
push eax
push dword [ebp + 8]
call fcn.00403f0f
call fcn.00401871
jmp reloc.gdi32.dll_SetWorldTransform
push reloc.gdi32.dll_GdiComment
push dword [ebp - reloc.gdi32.dll_SetWorldTransform]
call sub.shlwapi.dll_StrStrIA
and eax, eax
je reloc.gdi32.dll_SetWorldTransform
push reloc.shlwapi.dll_PathIsUNCServerShareW
push dword [ebp + 0x14]
call fcn.00401db1
push dword [ebp - reloc.gdi32.dll_SetWorldTransform]
push eax
call fcn.00401e05
push eax
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push eax
push dword [ebp + 8]
call fcn.00409166
call fcn.00401871
push dword [ebp - reloc.gdi32.dll_SetWorldTransform]
call sub.kernel32.dll_lstrlenA
cmp eax, 2
jb reloc.gdi32.dll_SetWorldTransform
mov edx, dword [ebp - 0x14c]
add edx, eax
sub edx, 2
cmp word [edx], 0x732e
jne reloc.gdi32.dll_SetWorldTransform
jmp reloc.gdi32.dll_SetWorldTransform
push reloc.gdi32.dll_GdiComment
push dword [ebp - reloc.gdi32.dll_SetWorldTransform]
call sub.shlwapi.dll_StrStrIA
push eax
push reloc.gdi32.dll_GdiComment
push dword [ebp - reloc.gdi32.dll_SetWorldTransform]
call sub.shlwapi.dll_StrStrIA
push eax
push reloc.gdi32.dll_GdiComment
push dword [ebp - reloc.gdi32.dll_SetWorldTransform]
call sub.shlwapi.dll_StrStrIA
pop edx
pop ecx
and eax, eax
jne reloc.gdi32.dll_SetWorldTransform
and edx, edx
jne reloc.gdi32.dll_SetWorldTransform
and ecx, ecx
je reloc.gdi32.dll_SetWorldTransform
push reloc.shlwapi.dll_PathIsUNCServerShareW
push dword [ebp + 0x14]
call fcn.00401db1
push dword [ebp - reloc.gdi32.dll_SetWorldTransform]
push eax
call fcn.00401e05
push eax
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push eax
push dword [ebp + 8]
call fcn.004091f1
call fcn.00401871
lea eax, [ebp - 0x140]
push eax
push dword [ebp - reloc.gdi32.dll_SetWorldTransform]
call sub.kernel32.dll_FindNextFileA
test eax, eax
jne reloc.gdi32.dll_SetWorldTransform
push dword [ebp - reloc.gdi32.dll_SetWorldTransform]
call sub.kernel32.dll_FindClose
push dword [ebp - reloc.gdi32.dll_SetWorldTransform]
call fcn.00401871
leave
ret 0x10