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

Disassembly:
push 0xffffffffffffffff
push 0x415574
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x16c
mov eax, dword [0x41c260]
push ebx
push esi
push edi
mov edi, dword [esp + 0x188]
mov dword [esp + 0x174], eax
mov eax, edi
mov dword [esp + 0x24], ecx
lea edx, [eax + 1]
xor ebx, ebx
lea esp, [esp]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40d4b0
sub eax, edx
add eax, 0xa
push eax
call sub.MFC71.DLL_operator_new
mov esi, eax
mov edx, esi
add esp, 4
mov eax, edi
sub edx, edi
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
cmp cl, bl
jne 0x40d4d0
push esi
call fcn.004100f0
add esp, 4
mov edi, esi
dec edi
test eax, eax
jne 0x40d510
lea ebx, [ebx]
mov al, byte [edi + 1]
inc edi
cmp al, bl
jne 0x40d4f0
mov ax, word [0x416a28]
mov word [edi], ax
mov cl, byte [0x416a2a]
mov byte [edi + 2], cl
jmp 0x40d522
mov al, byte [edi + 1]
inc edi
cmp al, bl
jne 0x40d510
mov dx, word [0x416a24]
mov word [edi], dx
lea eax, [esp + 0x34]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov edi, eax
push esi
mov dword [esp + 0x2c], edi
call sub.MFC71.DLL_operator_delete
add esp, 4
cmp edi, 0xffffffff
je 0x40d888
push ebp
mov ebp, dword [esp + 0x190]
mov edi, edi
mov esi, dword [sym.imp.MSVCR71.dll__mbscmp]
lea ecx, [esp + 0x64]
push 0x416a20
push ecx
call esi
add esp, 8
test eax, eax
je 0x40d868
lea edx, [esp + 0x64]
push 0x416a1c
push edx
call esi
add esp, 8
test eax, eax
je 0x40d868
test byte [esp + 0x38], 0x10
je 0x40d6bb
mov edi, dword [esp + 0x28]
cmp dword [edi + 0x218], ebx
je 0x40d868
mov eax, dword [esp + 0x18c]
push eax
lea ecx, [esp + 0x14]
call dword [0x416138]
lea ecx, [esp + 0x64]
push ecx
lea edx, [esp + 0x14]
push edx
mov dword [esp + 0x18c], ebx
call fcn.00410210
add esp, 8
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
mov ecx, ebp
call fcn.0040c780
cmp eax, ebx
jne 0x40d69f
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_3]
lea eax, [esp + 0x1c]
push eax
mov ecx, ebp
mov byte [esp + 0x188], 1
call fcn.0040d170
lea ecx, [esp + 0x64]
push ecx
lea edx, [esp + 0x20]
push edx
call fcn.00410210
push 0x40
call sub.MFC71.DLL_operator_new_1
mov esi, eax
add esp, 0xc
mov dword [esp + 0x30], esi
cmp esi, ebx
mov byte [esp + 0x184], 2
je 0x40d644
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
push ebp
mov ecx, esi
call fcn.0040ca90
mov esi, eax
jmp 0x40d646
xor esi, esi
push esi
mov ecx, ebp
mov byte [esp + 0x188], 1
call fcn.0040d3d0
test eax, eax
jne 0x40d679
cmp esi, ebx
je 0x40d68c
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax]
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x10]
jmp 0x40d857
push esi
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
mov ecx, edi
call fcn.0040d470
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x10]
jmp 0x40d857
push eax
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
mov ecx, edi
call fcn.0040d470
lea ecx, [esp + 0x10]
jmp 0x40d857
lea eax, [esp + 0x64]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40d6c2
mov ecx, dword [esp + 0x28]
add ecx, 0x114
sub eax, edx
push ecx
lea ecx, [esp + 0x28]
mov edi, eax
call dword [0x416138]
lea edx, [esp + 0x14]
push edx
push 0x416a18
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x30]
mov dword [esp + 0x190], 3
mov dword [esp + 0x20], ebx
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Tokenize]
cmp dword [esp + 0x14], 0xffffffff
mov byte [esp + 0x184], 4
je 0x40d849
lea ecx, [ecx]
lea ecx, [esp + 0x20]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40d730
sub eax, edx
lea ecx, [esp + 0x20]
mov esi, eax
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
mov ecx, edi
push esi
sub ecx, esi
push eax
lea edx, [esp + ecx + 0x6c]
push edx
call dword [sym.imp.MSVCR71.dll__mbsnbicmp]
add esp, 0xc
test eax, eax
je 0x40d7ab
lea eax, [esp + 0x14]
push eax
push 0x416a18
lea ecx, [esp + 0x3c]
push ecx
lea ecx, [esp + 0x30]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Tokenize]
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x188], 5
call dword [0x41614c]
lea ecx, [esp + 0x34]
mov byte [esp + 0x184], 4
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
cmp dword [esp + 0x14], 0xffffffff
jne 0x40d720
jmp 0x40d849
mov edx, dword [esp + 0x18c]
push edx
lea ecx, [esp + 0x1c]
call dword [0x416138]
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov byte [esp + 0x18c], 6
call fcn.00410210
add esp, 8
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
mov ecx, ebp
call fcn.0040c780
test eax, eax
jne 0x40d83f
push 0x30
call sub.MFC71.DLL_operator_new_1
mov esi, eax
add esp, 4
mov dword [esp + 0x30], esi
cmp esi, ebx
mov byte [esp + 0x184], 7
je 0x40d81e
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
push ebp
mov ecx, esi
call fcn.0040c630
jmp 0x40d820
xor eax, eax
cmp dword [eax + 0x20], ebx
mov byte [esp + 0x184], 6
jne 0x40d837
mov edx, dword [eax]
push 1
mov ecx, eax
call dword [edx]
jmp 0x40d83f
push eax
mov ecx, ebp
call fcn.0040d3d0
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x20]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x24]
mov dword [esp + 0x184], 0xffffffff
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov esi, dword [esp + 0x2c]
lea eax, [esp + 0x38]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x40d550
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
pop ebp
mov ecx, dword [esp + 0x178]
pop edi
pop esi
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x16c]
pop ebx
call fcn.004140fd
add esp, 0x178
ret 8