Function at 0x4194a0
Capabilities:
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x280
push ebx
push esi
push edi
lea ecx, [ebp - 8]
call dword [sym.imp.Ngs3.dll_public:_void___thiscall_C2bString::constructor_void_]
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0xbc]
test eax, eax
je 0x4194db
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
mov esi, dword [eax]
push eax
mov eax, dword [0x425630]
push 0
push eax
call edi
mov eax, esi
test esi, esi
jne 0x4194c8
xor esi, esi
mov dword [ebx + 0xc0], esi
mov dword [ebx + 0xbc], esi
mov dword [ebx + 0xc4], esi
mov dword [ebp - 0xc], esi
mov eax, str..16
test esi, esi
je 0x419500
mov eax, 0x421368
push eax
lea ecx, [ebp - 8]
push 5
push ecx
call dword [sym.imp.Ngs3.dll_ngsGetPath]
mov ecx, dword [ebp - 8]
add esp, 0xc
xor edx, edx
test esi, esi
sete dl
lea eax, [ebp - 0x274]
push eax
push ecx
mov edi, edx
mov dword [ebp - 0x10], edi
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
xor edx, edx
cmp eax, 0xffffffff
setne dl
mov dword [ebp - 0x27c], eax
mov eax, edx
mov dword [ebp - 0x278], eax
test eax, eax
je 0x4196c3
jmp 0x419553
mov edi, dword [ebp - 0x10]
test byte [ebp - 0x274], 0x10
jne 0x41969e
lea eax, [ebp - 0x248]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x419570
sub eax, edx
sar eax, 1
lea ecx, [edi + 0xa]
cmp eax, ecx
je 0x419591
add ecx, 2
cmp eax, ecx
jne 0x41969e
mov cx, word [ebp - 0x248]
lea edx, [ebp - 0x248]
cmp cx, 0x2e
je 0x4195da
movzx ecx, cx
cmp cx, 0x30
jb 0x4195b3
cmp cx, 0x39
jbe 0x4195c2
or ecx, 0x20
cmp cx, 0x61
jb 0x4195d0
cmp cx, 0x66
ja 0x4195d0
movzx ecx, word [edx + 2]
add edx, 2
cmp ecx, 0x2e
jne 0x4195a7
jmp 0x4195da
cmp word [edx], 0x2e
jne 0x41969e
xor edx, edx
lea ecx, [edi + 0xa]
cmp eax, ecx
setne dl
lea eax, [ebp - 0x248]
lea ecx, [ebp - 0x20]
lea esi, [edx + 4]
push esi
push eax
push ecx
call dword [sym.imp.MSVCRT.dll_wcsncpy]
xor edx, edx
push 0x10
push edx
lea eax, [ebp - 0x20]
lea edi, [ebp + esi*2 - 0x20]
push eax
mov word [edi], dx
call dword [sym.imp.MSVCRT.dll_wcstoul]
push esi
lea ecx, [ebp + esi*2 - 0x248]
push ecx
lea edx, [ebp - 0x20]
push edx
mov ebx, eax
call dword [sym.imp.MSVCRT.dll_wcsncpy]
xor eax, eax
push 0x10
push eax
lea ecx, [ebp - 0x20]
push ecx
mov word [edi], ax
call dword [sym.imp.MSVCRT.dll_wcstoul]
mov edx, dword [0x425630]
add esp, 0x30
push 0x18
push 0
push edx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ecx, dword [ebp + 8]
test eax, eax
je 0x419675
mov edx, dword [ecx + 0xc0]
mov dword [eax + 4], edx
xor edx, edx
mov dword [eax + 8], edx
mov edx, dword [ebp - 0x10]
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], esi
mov dword [eax], 0
mov dword [eax + 0x14], edx
jmp 0x419677
xor eax, eax
mov edx, dword [ecx + 0xc0]
test edx, edx
je 0x419683
mov dword [edx], eax
inc dword [ecx + 0xc4]
cmp dword [ecx + 0xbc], 0
mov dword [ecx + 0xc0], eax
jne 0x41969e
mov dword [ecx + 0xbc], eax
mov ecx, dword [ebp - 0x27c]
lea eax, [ebp - 0x274]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
mov dword [ebp - 0x278], eax
test eax, eax
jne 0x419550
mov esi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x27c]
cmp eax, 0xffffffff
je 0x4196d5
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
inc esi
mov dword [ebp - 0xc], esi
cmp esi, 2
jl 0x4194f2
lea ecx, [ebp - 8]
call dword [sym.imp.Ngs3.dll_public:_void___thiscall_C2bString::destructor_void_]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4