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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ab986
mov eax, dword fs:[0]
push eax
sub esp, 0x618
mov eax, dword [0x4de880]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x5b8], ecx
mov dword [ebp - 0x5b4], 0
mov dword [ebp - 4], 0
lea ecx, [ebp + 8]
call fcn.0040dac0
movzx eax, al
test eax, eax
je 0x47ab85
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 8]
call fcn.00401030
jmp 0x47b4d7
push 0x4ba2a0
lea ecx, [ebp + 8]
push ecx
lea edx, [ebp - 0x288]
push edx
call fcn.00406a00
add esp, 0xc
mov byte [ebp - 4], 1
lea ecx, [ebp + 8]
call fcn.004018e0
sub eax, 1
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
push eax
lea ecx, [ebp + 8]
call fcn.0040dca0
movzx ecx, word [eax]
cmp ecx, 0x5c
jne 0x47ac12
push 0x4ba2a8
lea edx, [ebp + 8]
push edx
lea eax, [ebp - 0x4b8]
push eax
call fcn.00406a00
add esp, 0xc
mov dword [ebp - 0x5bc], eax
mov ecx, dword [ebp - 0x5bc]
mov dword [ebp - 0x5c0], ecx
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x5c0]
push edx
lea ecx, [ebp - 0x288]
call fcn.00401640
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x4b8]
call fcn.00401030
mov byte [ebp - 0x265], 0
lea ecx, [ebp + 8]
call fcn.00401050
push eax
call fcn.00474c10
add esp, 4
movzx eax, al
test eax, eax
jne 0x47ac47
mov byte [ebp - 0x265], 1
lea ecx, [ebp + 8]
push ecx
lea ecx, [ebp - 0x288]
call fcn.00401640
lea edx, [ebp - 0x264]
push edx
lea ecx, [ebp - 0x288]
call fcn.00401050
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0x26c], 0xffffffff
je 0x47b4b9
lea ecx, [ebp - 0x3b0]
call fcn.004015d0
mov byte [ebp - 4], 3
push 0x400
call fcn.00422e0b
add esp, 4
mov dword [ebp - 0x4bc], eax
mov eax, dword [ebp - 0x4bc]
mov dword [ebp - 0x3b4], eax
push 0x4ba2ac
lea ecx, [ebp - 0x238]
push ecx
call fcn.00440c9a
add esp, 8
test eax, eax
je 0x47acd1
push 0x4ba2b0
lea edx, [ebp - 0x238]
push edx
call fcn.00440c9a
add esp, 8
test eax, eax
jne 0x47acd6
jmp 0x47b466
mov eax, dword [ebp - 0x14]
push eax
lea ecx, [ebp + 8]
call fcn.0040dca0
movzx ecx, word [eax]
cmp ecx, 0x5c
je 0x47ad81
push 0x4ba2b8
lea edx, [ebp + 8]
push edx
lea eax, [ebp - 0x4d8]
push eax
call fcn.00406a00
add esp, 0xc
mov dword [ebp - 0x5c4], eax
mov ecx, dword [ebp - 0x5c4]
mov dword [ebp - 0x5c8], ecx
mov byte [ebp - 4], 4
lea edx, [ebp - 0x238]
push edx
mov eax, dword [ebp - 0x5c8]
push eax
lea ecx, [ebp - 0x4f4]
push ecx
call fcn.00406a00
add esp, 0xc
mov dword [ebp - 0x5cc], eax
mov edx, dword [ebp - 0x5cc]
mov dword [ebp - 0x5d0], edx
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x5d0]
push eax
lea ecx, [ebp - 0x3b0]
call fcn.00401640
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x4f4]
call fcn.00401030
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x4d8]
call fcn.00401030
jmp 0x47add2
lea ecx, [ebp - 0x238]
push ecx
lea edx, [ebp + 8]
push edx
lea eax, [ebp - 0x510]
push eax
call fcn.00406a00
add esp, 0xc
mov dword [ebp - 0x5d4], eax
mov ecx, dword [ebp - 0x5d4]
mov dword [ebp - 0x5d8], ecx
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x5d8]
push edx
lea ecx, [ebp - 0x3b0]
call fcn.00401640
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x510]
call fcn.00401030
movzx eax, byte [ebp - 0x265]
test eax, eax
je 0x47adef
lea ecx, [ebp - 0x288]
push ecx
lea ecx, [ebp - 0x3b0]
call fcn.00401640
mov edx, dword [ebp - 0x264]
and edx, 0x10
je 0x47ae33
movzx eax, byte [ebp + 0x24]
test eax, eax
je 0x47ae2e
mov cl, byte [ebp + 0x24]
push ecx
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x514], esp
lea edx, [ebp - 0x3b0]
push edx
call fcn.00403370
mov dword [ebp - 0x5dc], eax
mov ecx, dword [ebp - 0x5b8]
call fcn.0047ab20
jmp 0x47b466
mov eax, dword [ebp - 0x5b8]
mov ecx, dword [eax + 0x24]
add ecx, 1
mov edx, dword [ebp - 0x5b8]
mov dword [edx + 0x24], ecx
mov ecx, dword [ebp - 0x5b8]
call fcn.00474c80
movzx eax, al
test eax, eax
je 0x47ae8c
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x3b0]
call fcn.00401030
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x288]
call fcn.00401030
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 8]
call fcn.00401030
jmp 0x47b4d7
mov dword [ebp - 0x3b8], 0
lea ecx, [ebp - 0x3b0]
call fcn.00401050
push eax
mov ecx, dword [ebp - 0x5b8]
call fcn.00474ac0
movzx ecx, al
test ecx, ecx
je 0x47b43e
lea ecx, [ebp - 0x438]
call fcn.00471fc0
mov byte [ebp - 4], 7
sub esp, 0x1c
mov edx, esp
mov dword [ebp - 0x518], esp
lea eax, [ebp - 0x3b0]
push eax
push edx
call fcn.00484560
add esp, 8
mov dword [ebp - 0x5e0], eax
lea ecx, [ebp - 0x3f4]
push ecx
lea ecx, [ebp - 0x438]
call fcn.004720a0
mov dword [ebp - 0x5e4], eax
mov byte [ebp - 4], 8
mov dword [ebp - 0x418], 0
mov dword [ebp - 0x3bc], 0
mov edx, dword [ebp - 0x5b8]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x458], eax
mov ecx, dword [ebp - 0x5b8]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x3f8], edx
lea ecx, [ebp - 0x3d8]
call fcn.00404240
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x474]
call fcn.00404240
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x414]
call fcn.00404240
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x454]
call fcn.004015d0
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x490]
call fcn.004015d0
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x434]
call fcn.004015d0
mov byte [ebp - 4], 0xe
mov byte [ebp - 0x495], 0
push 0x104
push 0
lea eax, [ebp - 0x394]
push eax
call fcn.0043ff60
add esp, 0xc
push 0x4ba2bc
lea ecx, [ebp - 0x3f4]
push ecx
call fcn.00418a50
add esp, 8
movzx edx, al
test edx, edx
je 0x47b037
lea eax, [ebp - 0x418]
push eax
lea ecx, [ebp - 0x3f4]
call fcn.00401df0
push eax
mov ecx, dword [ebp - 0x458]
push ecx
lea edx, [ebp - 0x534]
push edx
mov ecx, dword [ebp - 0x5b8]
call fcn.00475bd0
mov dword [ebp - 0x5e8], eax
mov eax, dword [ebp - 0x5e8]
mov dword [ebp - 0x5ec], eax
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x5ec]
push ecx
lea ecx, [ebp - 0x3d8]
call fcn.004061d0
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x534]
call fcn.00401e40
mov edx, dword [ebp - 0x418]
mov dword [ebp - 0x458], edx
mov dword [ebp - 0x494], 0
lea eax, [ebp - 0x3b0]
push eax
lea ecx, [ebp - 0x550]
push ecx
call fcn.00484560
add esp, 8
mov dword [ebp - 0x5f0], eax
lea edx, [ebp - 0x494]
push edx
push 0x104
lea eax, [ebp - 0x394]
push eax
mov ecx, dword [ebp - 0x5f0]
call fcn.00401df0
push eax
mov ecx, dword [ebp - 0x5b8]
call fcn.00474d20
lea ecx, [ebp - 0x550]
call fcn.00401e40
lea ecx, [ebp - 0x394]
push ecx
call fcn.0043fbe0
add esp, 4
test eax, eax
setne dl
mov byte [ebp - 0x495], dl
lea ecx, [ebp - 0x3d8]
call fcn.004018e0
test eax, eax
jne 0x47b0d3
lea eax, [ebp - 0x394]
push eax
call fcn.0043fbe0
add esp, 4
test eax, eax
jne 0x47b0d3
jmp 0x47b3c6
lea ecx, [ebp - 0x3d8]
call fcn.004018e0
test eax, eax
jne 0x47b0f5
lea ecx, [ebp - 0x394]
push ecx
call fcn.0043fbe0
add esp, 4
test eax, eax
je 0x47b159
lea edx, [ebp - 0x3b0]
push edx
lea eax, [ebp - 0x570]
push eax
call fcn.00484560
add esp, 8
mov dword [ebp - 0x5f4], eax
mov ecx, dword [ebp - 0x5f4]
mov dword [ebp - 0x5f8], ecx
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x5b4]
or edx, 1
mov dword [ebp - 0x5b4], edx
mov eax, dword [ebp - 0x5f8]
push eax
mov ecx, dword [ebp - 0x5b8]
call fcn.00414350
mov ecx, eax
call fcn.004018e0
test eax, eax
jne 0x47b159
mov dword [ebp - 0x5fc], 1
jmp 0x47b163
mov dword [ebp - 0x5fc], 0
mov cl, byte [ebp - 0x5fc]
mov byte [ebp - 0x551], cl
mov dword [ebp - 4], 0xe
mov edx, dword [ebp - 0x5b4]
and edx, 1
je 0x47b193
and dword [ebp - 0x5b4], 0xfffffffe
lea ecx, [ebp - 0x570]
call fcn.00401e40
movzx eax, byte [ebp - 0x551]
test eax, eax
je 0x47b3b9
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x574], esp
lea edx, [ebp - 0x3b0]
push edx
push ecx
call fcn.00484560
add esp, 8
mov dword [ebp - 0x600], eax
mov ecx, dword [ebp - 0x5b8]
call fcn.004793c0
mov byte [ebp - 0x601], al
movzx eax, byte [ebp - 0x601]
test eax, eax
je 0x47b1e4
jmp 0x47b3b9
lea ecx, [ebp - 0x3d8]
call fcn.004018e0
test eax, eax
je 0x47b229
lea ecx, [ebp - 0x414]
push ecx
lea edx, [ebp - 0x474]
push edx
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x578], esp
lea eax, [ebp - 0x3d8]
push eax
call fcn.00403690
mov dword [ebp - 0x608], eax
mov ecx, dword [ebp - 0x5b8]
call fcn.00477560
movzx ecx, byte [ebp - 0x495]
test ecx, ecx
je 0x47b246
lea edx, [ebp - 0x394]
push edx
lea ecx, [ebp - 0x474]
call fcn.00406300
lea eax, [ebp - 0x3b0]
push eax
lea ecx, [ebp - 0x594]
push ecx
call fcn.00484560
add esp, 8
mov dword [ebp - 0x60c], eax
mov edx, dword [ebp - 0x60c]
mov dword [ebp - 0x610], edx
mov byte [ebp - 4], 0x11
lea eax, [ebp - 0x474]
push eax
mov ecx, dword [ebp - 0x610]
push ecx
mov ecx, dword [ebp - 0x5b8]
call fcn.00414350
mov ecx, eax
call fcn.004061d0
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x594]
call fcn.00401e40
push 0x8c
call fcn.00422de0
add esp, 4
mov dword [ebp - 0x59c], eax
cmp dword [ebp - 0x59c], 0
je 0x47b2d0
mov ecx, dword [ebp - 0x59c]
call fcn.004073b0
mov dword [ebp - 0x614], eax
jmp 0x47b2da
mov dword [ebp - 0x614], 0
mov edx, dword [ebp - 0x614]
mov dword [ebp - 0x598], edx
mov eax, dword [ebp - 0x598]
mov dword [ebp - 0x49c], eax
mov ecx, dword [ebp - 0x49c]
push ecx
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x5a0], esp
lea edx, [ebp - 0x474]
push edx
call fcn.00403690
mov dword [ebp - 0x618], eax
mov eax, dword [ebp - 0x618]
mov dword [ebp - 0x61c], eax
mov byte [ebp - 4], 0x12
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x5a4], esp
lea edx, [ebp - 0x3b0]
push edx
push ecx
call fcn.00484560
add esp, 8
mov dword [ebp - 0x620], eax
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x5b8]
call fcn.00475840
mov eax, dword [ebp - 0x49c]
push eax
push 3
mov ecx, dword [ebp - 0x5b8]
mov edx, dword [ecx + 0x18]
push edx
mov eax, dword [ebp - 0x5b8]
mov ecx, dword [eax + 0x14]
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, dword [ebp - 0x49c]
mov dword [ebp - 0x5ac], edx
mov eax, dword [ebp - 0x5ac]
mov dword [ebp - 0x5a8], eax
cmp dword [ebp - 0x5a8], 0
je 0x47b3af
push 1
mov ecx, dword [ebp - 0x5a8]
call fcn.00407400
mov dword [ebp - 0x624], eax
jmp 0x47b3b9
mov dword [ebp - 0x624], 0
cmp dword [ebp - 0x418], 0
jne 0x47af90
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x434]
call fcn.00401030
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x490]
call fcn.00401030
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x454]
call fcn.00401030
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x414]
call fcn.00401e40
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x474]
call fcn.00401e40
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x3d8]
call fcn.00401e40
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x3f4]
call fcn.00401e40
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x438]
call fcn.00471f90
lea ecx, [ebp - 0x3b0]
call fcn.00401050
push eax
push 4
mov ecx, dword [ebp - 0x5b8]
mov edx, dword [ecx + 0x18]
push edx
mov eax, dword [ebp - 0x5b8]
mov ecx, dword [eax + 0x14]
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
lea edx, [ebp - 0x264]
push edx
mov eax, dword [ebp - 0x26c]
push eax
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x47aca1
mov ecx, dword [ebp - 0x26c]
push ecx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov edx, dword [ebp - 0x3b4]
mov dword [ebp - 0x5b0], edx
mov eax, dword [ebp - 0x5b0]
push eax
call fcn.00422e10
add esp, 4
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x3b0]
call fcn.00401030
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x288]
call fcn.00401030
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 8]
call fcn.00401030
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0043f9e9
mov esp, ebp
pop ebp
ret 0x20