Function at 0x404670
Capabilities:
Enumerate files on windows

Disassembly:
push 0xffffffffffffffff
push 0x409a1a
mov eax, dword fs:[0]
push eax
sub esp, 0x24
mov eax, dword [0x40f01c]
xor eax, esp
mov dword [esp + 0x20], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x40f01c]
xor eax, esp
push eax
lea eax, [esp + 0x38]
mov dword fs:[0], eax
mov eax, dword [esp + 0x48]
mov ebp, dword [esp + 0x4c]
mov ebx, ecx
lea ecx, [esp + 0x18]
mov dword [esp + 0x14], eax
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
mov dword [esp + 0x40], 0
cmp dword [ebp + 0x3c], 0
je 0x404768
lea esp, [esp]
mov ecx, dword [ebp + 0x3c]
mov edi, 0x10
add ecx, edi
push ecx
lea ecx, [esp + 0x1c]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
push 0
push 0x2e
lea ecx, [esp + 0x20]
call dword [sym.imp.MSVCP80.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_first_of_char__unsigned_int_const]
mov edx, dword [sym.imp.MSVCP80.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
cmp eax, dword [edx]
jne 0x404709
push 0x2e
lea ecx, [esp + 0x1c]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::push_back_char_]
cmp dword [esp + 0x30], edi
mov esi, dword [esp + 0x1c]
jae 0x404717
lea esi, [esp + 0x1c]
cmp dword [ebp + 0x34], edi
jb 0x404721
mov edi, dword [ebp + 0x20]
jmp 0x404724
lea edi, [ebp + 0x20]
mov al, byte [edi]
test al, al
je 0x4047b8
mov edi, edi
cmp al, 0x2a
je 0x404795
mov cl, byte [esi]
mov dl, al
or cl, 0x20
or dl, 0x20
cmp dl, cl
je 0x404746
cmp al, 0x3f
jne 0x404757
mov al, byte [edi + 1]
add edi, 1
add esi, 1
test al, al
jne 0x404730
cmp byte [esi], al
je 0x4047b8
mov ecx, dword [ebp + 0x3c]
mov edx, dword [ecx + 8]
test edx, edx
mov dword [ebp + 0x3c], edx
jne 0x4046d0
mov eax, dword [ebp + 0x38]
test eax, eax
je 0x4047e1
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
lea ecx, [esp + 0x18]
setne bl
mov dword [esp + 0x40], 0xffffffff
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov al, bl
jmp 0x404855
add edi, 1
jmp 0x4047a0
mov edx, esi
mov ecx, edi
call fcn.00403cb0
test al, al
jne 0x4047b8
mov al, byte [esi]
add esi, 1
test al, al
jne 0x4047a0
jmp 0x404757
mov ecx, dword [ebp + 0x3c]
mov eax, ebx
call fcn.00403bf0
mov eax, dword [ebp + 0x3c]
mov ecx, dword [eax + 8]
mov dword [ebp + 0x3c], ecx
lea ecx, [esp + 0x18]
mov dword [esp + 0x40], 0xffffffff
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov al, 1
jmp 0x404855
mov esi, 0x10
cmp dword [ebp + 0x18], esi
jb 0x4047f0
mov ecx, dword [ebp + 4]
jmp 0x4047f3
lea ecx, [ebp + 4]
mov edx, dword [esp + 0x14]
push edx
lea edx, [esp + 0x1c]
call fcn.00403f20
test eax, eax
je 0x404841
cmp dword [esp + 0x2c], 0
je 0x404841
cmp dword [esp + 0x30], esi
mov eax, dword [esp + 0x1c]
jae 0x40481a
lea eax, [esp + 0x1c]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
lea ecx, [esp + 0x18]
mov dword [ebp + 0x38], eax
setne bl
mov dword [esp + 0x40], 0xffffffff
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov al, bl
jmp 0x404855
lea ecx, [esp + 0x18]
mov dword [esp + 0x40], 0xffffffff
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
xor al, al
mov ecx, dword [esp + 0x38]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.00403339
add esp, 0x30
ret 8