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

Disassembly:
sub esp, 0x880
mov eax, dword [0x47b660]
xor eax, esp
mov dword [esp + 0x87c], eax
push ebx
mov ebx, dword [esp + 0x88c]
push ebp
mov ebp, dword [esp + 0x894]
push esi
mov esi, dword [esp + 0x890]
push edi
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x68a]
push ecx
mov dword [esp + 0x20], esi
mov dword [esp + 0x28], ebx
mov word [esp + 0x68c], ax
call fcn.00446a60
add esp, 0xc
test ebp, ebp
je 0x423b1d
test esi, esi
jne 0x423af9
mov dword [0x47fb40], 0x10000
jmp 0x423b1d
cmp dword [esi], 2
je 0x423b0a
mov dword [0x47fb40], 0x80000
jmp 0x423b1d
mov eax, dword [esi + 4]
push 4
push ebp
push eax
xor ecx, ecx
call fcn.00423300
mov dword [0x47fb40], eax
lea edx, [esp + 0x680]
mov eax, ebx
sub edx, ebx
jmp 0x423b30
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x423b30
lea edi, [esp + 0x680]
add edi, 0xfffffffe
lea esp, [esp]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x423b50
mov edx, dword [str.__n]
mov eax, ebp
mov dword [edi], edx
mov edx, eax
jmp 0x423b70
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x423b70
lea edi, [esp + 0x680]
sub eax, edx
add edi, 0xfffffffe
jmp 0x423b90
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x423b90
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
lea eax, [esp + 0x680]
rep movsb byte es:[edi], byte [esi]
add eax, 0xfffffffe
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x423bb6
mov ecx, dword [0x46f4ac]
mov dx, word [0x46f4b0]
mov dword [eax], ecx
mov word [eax + 4], dx
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x684]
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov esi, eax
mov dword [esp + 0x18], esi
cmp esi, 0xffffffff
jne 0x423c00
xor eax, eax
jmp 0x423f80
mov esi, dword [esp + 0x18]
mov edi, edi
lea edx, [esp + 0x20]
push edx
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x423f5f
mov ecx, 0x468050
lea eax, [esp + 0x4c]
lea ecx, [ecx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x423c46
test dx, dx
je 0x423c42
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x423c46
add eax, 4
add ecx, 4
test dx, dx
jne 0x423c20
xor eax, eax
jmp 0x423c4b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x423c00
mov ecx, 0x46f4b4
lea eax, [esp + 0x4c]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x423c7e
test dx, dx
je 0x423c7a
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x423c7e
add eax, 4
add ecx, 4
test dx, dx
jne 0x423c58
xor eax, eax
jmp 0x423c83
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x423c00
test byte [esp + 0x20], 0x10
push 0x206
push 0
je 0x423d77
lea ecx, [esp + 0x27a]
xor eax, eax
push ecx
mov word [esp + 0x27c], ax
call fcn.00446a60
mov eax, ebp
add esp, 0xc
mov edx, eax
jmp 0x423cc0
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x423cc0
lea edi, [esp + 0x270]
sub eax, edx
add edi, 0xfffffffe
jmp 0x423ce0
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x423ce0
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x270]
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x423d06
mov edx, dword [str.__n]
lea eax, [esp + 0x4c]
mov dword [edi], edx
mov edx, eax
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x423d20
lea edi, [esp + 0x270]
sub eax, edx
add edi, 0xfffffffe
jmp 0x423d40
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x423d40
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
lea eax, [esp + 0x270]
push eax
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x18]
push ebx
push ecx
call fcn.00423a90
add esp, 0xc
jmp 0x423bfa
lea eax, [esp + 0x482]
xor edx, edx
push eax
mov word [esp + 0x484], dx
call fcn.00446a60
add esp, 0xc
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x27a]
push edx
mov word [esp + 0x27c], cx
call fcn.00446a60
lea edx, [esp + 0x27c]
add esp, 0xc
mov eax, ebx
sub edx, ebx
lea esp, [esp]
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x423dc0
lea edi, [esp + 0x270]
add edi, 0xfffffffe
lea esp, [esp]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x423de0
mov ebx, dword [str.__n]
mov eax, ebp
mov dword [edi], ebx
mov edx, eax
jmp 0x423e00
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x423e00
lea edi, [esp + 0x270]
sub eax, edx
add edi, 0xfffffffe
jmp 0x423e20
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x423e20
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x270]
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x423e46
lea eax, [esp + 0x4c]
mov dword [edi], ebx
mov edx, eax
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x423e60
lea edi, [esp + 0x270]
sub eax, edx
add edi, 0xfffffffe
jmp 0x423e80
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x423e80
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
lea edx, [esp + 0x478]
rep movsb byte es:[edi], byte [esi]
mov eax, ebp
sub edx, ebp
jmp 0x423eb0
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x423eb0
lea edi, [esp + 0x478]
add edi, 0xfffffffe
lea esp, [esp]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x423ed0
lea eax, [esp + 0x4c]
mov dword [edi], ebx
mov edx, eax
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x423ee4
lea edi, [esp + 0x478]
sub eax, edx
add edi, 0xfffffffe
jmp 0x423f00
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x423f00
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp word [esp + 0x478], 0x5c
lea ebx, [esp + 0x478]
jne 0x423f35
lea ebx, [esp + 0x47a]
mov eax, dword [esp + 0x14]
push eax
mov ecx, 2
lea esi, [esp + 0x274]
call fcn.00423980
add esp, 4
test eax, eax
jne 0x423bf3
mov ebx, dword [esp + 0x1c]
jmp 0x423bfa
call dword [sym.imp.KERNEL32.dll_GetLastError]
push esi
cmp eax, 0x12
je 0x423f75
call dword [sym.imp.KERNEL32.dll_FindClose]
xor eax, eax
jmp 0x423f80
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, 1
mov ecx, dword [esp + 0x88c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00442896
add esp, 0x880
ret