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

Disassembly:
sub esp, 0x260
mov eax, dword [0x4240c0]
xor eax, esp
mov dword [esp + 0x25c], eax
cmp byte [0x4240b8], 0
push ebx
mov ebx, dword [esp + 0x26c]
push esi
push edi
mov edi, dword [esp + 0x270]
mov dword [esp + 0x14], ebx
je 0x40212c
push str.__
push edi
call fcn.004039ac
add esp, 8
test eax, eax
je 0x401e6c
push str.Path_should_not_start_with____use_simple_paths_n
call fcn.0040384b
add esp, 4
push 1
call fcn.0040438a
push 0x2a
push edi
call fcn.00404046
add esp, 8
test eax, eax
je 0x401fc1
push 0x5c
push edi
mov byte [0x424fae], 1
call fcn.00404046
add esp, 8
test eax, eax
je 0x401f14
push 0x5c
push edi
call fcn.00404046
add eax, 2
push eax
push ebx
call fcn.00403433
push 0x5c
push edi
call fcn.00404046
sub eax, edi
sar eax, 1
lea eax, [eax + eax + 0x12]
push eax
call fcn.00402f73
mov ebx, eax
add esp, 0x1c
mov dword [esp + 0xc], ebx
test ebx, ebx
jne 0x401ee2
push str.Out_of_memory_error_n
call fcn.0040384b
add esp, 4
push 1
call fcn.0040438a
push edi
push str.__s
push ebx
call fcn.00403433
push 0x5c
push ebx
mov esi, 0x41fb7c
call fcn.00404046
lea ecx, [eax + 2]
add esp, 0x14
sub ecx, esi
movzx eax, word [esi]
mov word [ecx + esi], ax
add esi, 2
test ax, ax
jne 0x401f03
jmp 0x401f70
mov eax, edi
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x401f20
sub eax, edx
sar eax, 1
lea ecx, [eax + eax + 0xa]
push ecx
call fcn.00402f73
mov esi, eax
add esp, 4
mov dword [esp + 0xc], esi
test esi, esi
jne 0x401f5a
push str.Out_of_memory_error_n
call fcn.0040384b
add esp, 4
push 1
call fcn.0040438a
push edi
push ebx
call fcn.00403433
push edi
push str.__s
push esi
call fcn.00403433
add esp, 0x14
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x401f75
sub eax, edx
sar eax, 1
lea edx, [eax + eax + 0xa]
push edx
call fcn.00402f73
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x401fad
push str.Out_of_memory_error_n
call fcn.0040384b
add esp, 4
push 1
call fcn.0040438a
push edi
push str.__s
push eax
call fcn.00403433
add esp, 0xc
jmp 0x4021e0
push 0x41fb7c
push ebx
call fcn.00403433
add esp, 8
cmp byte [0x424fac], 0
mov eax, edi
lea edx, [eax + 2]
je 0x402090
mov byte [0x424fae], 1
jmp 0x401ff0
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x401ff0
sub eax, edx
sar eax, 1
lea eax, [eax + eax + 0x12]
push eax
call fcn.00402f73
add esp, 4
mov dword [esp + 0xc], eax
test eax, eax
jne 0x402028
push str.Out_of_memory_error_n
call fcn.0040384b
add esp, 4
push 1
call fcn.0040438a
push edi
push str.__s.
push eax
call fcn.00403433
mov eax, edi
add esp, 0xc
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x402040
sub eax, edx
sar eax, 1
lea ecx, [eax + eax + 0x12]
push ecx
call fcn.00402f73
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x402078
push str.Out_of_memory_error_n
call fcn.0040384b
add esp, 4
push 1
call fcn.0040438a
push edi
push str.__s.
push eax
call fcn.00403433
add esp, 0xc
jmp 0x4021e0
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x402090
sub eax, edx
sar eax, 1
lea edx, [eax + eax + 2]
push edx
call fcn.00402f73
add esp, 4
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4020c8
push str.Out_of_memory_error_n
call fcn.0040384b
add esp, 4
push 1
call fcn.0040438a
push edi
push 0x41fb5c
push eax
call fcn.00403433
mov eax, edi
add esp, 0xc
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4020e0
sub eax, edx
sar eax, 1
lea eax, [eax + eax + 2]
push eax
call fcn.00402f73
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x402118
push str.Out_of_memory_error_n
call fcn.0040384b
add esp, 4
push 1
call fcn.0040438a
push edi
push 0x41fb5c
push eax
call fcn.00403433
add esp, 0xc
jmp 0x4021e0
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x402131
sub eax, edx
sar eax, 1
lea ecx, [eax + eax + 0xa]
push ecx
call fcn.00402f73
add esp, 4
mov dword [esp + 0xc], eax
test eax, eax
jne 0x402169
push str.Out_of_memory_error_n
call fcn.0040384b
add esp, 4
push 1
call fcn.0040438a
push edi
push str._s.
push eax
call fcn.00403433
mov eax, edi
add esp, 0xc
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x402180
sub eax, edx
sar eax, 1
mov edx, eax
mov eax, ebx
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x402196
sub eax, esi
sar eax, 1
add eax, edx
lea edx, [eax + eax + 4]
push edx
call fcn.00402f73
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4021d0
push str.Out_of_memory_error_n
call fcn.0040384b
add esp, 4
push 1
call fcn.0040438a
push ebx
push edi
push str._s_s
push eax
call fcn.00403433
add esp, 0x10
mov ecx, dword [esp + 0x10]
mov ebx, dword [sym.imp.KERNEL32.dll_FindFirstFileW]
push ebp
lea eax, [esp + 0x1c]
push eax
push ecx
xor edi, edi
call ebx
mov esi, dword [esp + 0x10]
mov ebp, eax
cmp ebp, 0xffffffff
je 0x40239b
mov ecx, 0x41faf8
lea eax, [esp + 0x48]
lea ecx, [ecx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x402236
test dx, dx
je 0x402232
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x402236
add eax, 4
add ecx, 4
test dx, dx
jne 0x402210
xor eax, eax
jmp 0x40223b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x402380
mov ecx, 0x41fb38
lea eax, [esp + 0x48]
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x402276
test dx, dx
je 0x402272
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x402276
add eax, 4
add ecx, 4
test dx, dx
jne 0x402250
xor eax, eax
jmp 0x40227b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x402380
push 0x5c
push esi
call fcn.00404046
add esp, 8
test eax, eax
je 0x40232b
mov eax, esi
lea edx, [eax + 2]
jmp 0x4022a0
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4022a0
sub eax, edx
sar eax, 1
mov edx, eax
lea eax, [esp + 0x48]
lea esi, [eax + 2]
jmp 0x4022c0
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4022c0
sub eax, esi
sar eax, 1
add eax, edx
lea edx, [eax + eax + 2]
push edx
push edi
call fcn.00403e2b
mov edi, eax
add esp, 8
test edi, edi
je 0x4023f4
mov eax, dword [esp + 0x10]
mov edx, edi
sub edx, eax
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4022f1
push 0x5c
push edi
lea esi, [esp + 0x50]
call fcn.00404046
lea ecx, [eax + 2]
mov eax, esi
add esp, 8
sub ecx, eax
movzx eax, word [esi]
mov word [ecx + esi], ax
add esi, 2
test ax, ax
jne 0x402316
mov esi, dword [esp + 0x10]
jmp 0x402372
lea eax, [esp + 0x48]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x402332
sub eax, edx
sar eax, 1
lea ecx, [eax + eax + 2]
push ecx
push edi
call fcn.00403e2b
mov edi, eax
add esp, 8
test edi, edi
je 0x4023f4
lea eax, [esp + 0x48]
mov edx, edi
mov ecx, eax
sub edx, ecx
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x402363
lea edx, [esp + 0x1c]
push edi
push edx
call fcn.00401a00
add esp, 8
lea eax, [esp + 0x1c]
push eax
push ebp
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x402204
push ebp
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp byte [0x424fac], 0
je 0x4025db
cmp byte [0x4240b8], 0
je 0x40245d
push 0x5c
push esi
call fcn.00404046
add esp, 8
test eax, eax
jne 0x40245d
push 0x2a
push esi
call fcn.00404046
add esp, 8
test eax, eax
je 0x402408
lea ecx, [esp + 0x1c]
push ecx
push 0x41fb7c
call ebx
mov ebp, eax
cmp ebp, 0xffffffff
jne 0x40241b
mov edx, dword [esp + 0x14]
push edx
jmp 0x4025e0
push str.Out_of_memory_error_n
call fcn.0040384b
add esp, 4
push 1
call fcn.0040438a
lea eax, [esp + 0x1c]
push eax
push esi
call ebx
mov ebp, eax
cmp ebp, 0xffffffff
je 0x4025db
mov byte [0x4240b8], 0
mov bl, pe_nt_image_headers32
test byte [esp + 0x1c], bl
je 0x4025c0
mov ecx, 0x41faf8
lea eax, [esp + 0x48]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x402476
test dx, dx
je 0x402459
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x402476
add eax, 4
add ecx, 4
test dx, dx
jne 0x402437
xor eax, eax
jmp 0x40247b
lea edx, [esp + 0x1c]
push edx
push esi
call ebx
mov ebp, eax
cmp ebp, 0xffffffff
jne 0x40241b
mov eax, dword [esp + 0x14]
push eax
jmp 0x4025e0
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4025c0
mov ecx, 0x41fb38
lea eax, [esp + 0x48]
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4024b6
test dx, dx
je 0x4024b2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4024b6
add eax, 4
add ecx, 4
test dx, dx
jne 0x402490
xor eax, eax
jmp 0x4024bb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4025c0
push 0x5c
push esi
call fcn.00404046
add esp, 8
test eax, eax
je 0x40256b
mov eax, esi
lea edx, [eax + 2]
jmp 0x4024e0
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4024e0
sub eax, edx
sar eax, 1
mov edx, eax
lea eax, [esp + 0x48]
lea esi, [eax + 2]
jmp 0x402500
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x402500
sub eax, esi
sar eax, 1
add eax, edx
lea ecx, [eax + eax + 2]
push ecx
push edi
call fcn.00403e2b
mov edi, eax
add esp, 8
test edi, edi
je 0x4023f4
mov eax, dword [esp + 0x10]
mov edx, edi
sub edx, eax
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x402531
push 0x5c
push edi
lea esi, [esp + 0x50]
call fcn.00404046
lea ecx, [eax + 2]
mov edx, esi
add esp, 8
sub ecx, edx
movzx eax, word [esi]
mov word [ecx + esi], ax
add esi, 2
test ax, ax
jne 0x402556
mov esi, dword [esp + 0x10]
jmp 0x4025b2
lea eax, [esp + 0x48]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x402572
sub eax, edx
sar eax, 1
lea eax, [eax + eax + 2]
push eax
push edi
call fcn.00403e2b
mov edi, eax
add esp, 8
test edi, edi
je 0x4023f4
lea eax, [esp + 0x48]
mov edx, edi
mov ecx, eax
sub edx, ecx
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4025a3
mov edx, dword [esp + 0x18]
push edx
push edi
call fcn.00401e10
add esp, 8
lea eax, [esp + 0x1c]
push eax
push ebp
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x402424
push ebp
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, dword [esp + 0x14]
push ecx
call fcn.004033a5
push esi
call fcn.004033a5
push edi
call fcn.004033a5
mov ecx, dword [esp + 0x278]
add esp, 0xc
pop ebp
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00403600
add esp, 0x260
ret