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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4af167
mov eax, dword fs:[0]
push eax
sub esp, 0x36c
mov eax, dword [0x500ef0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, edx
mov ebx, ecx
mov dword [ebp - 0x35c], ebx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x358], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x364], eax
xor eax, eax
mov dword [ebp - 0xd4], 7
mov dword [ebp - 0xd8], 0
mov word [ebp - 0xe8], ax
mov dword [ebp - 4], eax
lea ecx, [ebp - 0x40]
push ebx
mov dword [ebp - 0x2c], 7
mov dword [ebp - 0x30], eax
mov word [ebp - 0x40], ax
call fcn.0040a170
xor eax, eax
mov dword [ebp - 0x44], 7
mov dword [ebp - 0x48], 0
mov word [ebp - 0x58], ax
lea edx, [ebp - 0x40]
mov byte [ebp - 4], 2
mov ecx, ebx
call fcn.0040dc10
push 0x4d7440
lea edx, [ebp - 0x40]
lea ecx, [ebp - 0xa0]
call fcn.0040aa00
add esp, 4
mov esi, eax
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 3
cmp eax, esi
je 0x40cd5b
mov eax, dword [ebp - 0x2c]
cmp eax, 8
jb 0x40ccfd
mov edx, dword [ebp - 0x40]
inc eax
mov ecx, edx
cmp eax, 0x7fffffff
ja 0x40d6d1
add eax, eax
cmp eax, 0x1000
jb 0x40ccf4
test cl, 0x1f
jne 0x40d6d1
mov edx, dword [ecx - 4]
cmp edx, ecx
jae 0x40d6d1
sub ecx, edx
cmp ecx, 4
jb 0x40d6d1
cmp ecx, 0x23
ja 0x40d6d1
push edx
call fcn.0041211c
add esp, 4
xor eax, eax
mov dword [ebp - 0x2c], 7
mov dword [ebp - 0x30], 0
mov word [ebp - 0x40], ax
cmp dword [esi + 0x14], 8
jae 0x40cd31
mov eax, dword [esi + 0x10]
add eax, 1
je 0x40cd3c
add eax, eax
push eax
lea eax, [ebp - 0x40]
push esi
push eax
call fcn.0047b690
add esp, 0xc
jmp 0x40cd3c
mov eax, dword [esi]
mov dword [ebp - 0x40], eax
mov dword [esi], 0
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x30], eax
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x2c], eax
xor eax, eax
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], 0
mov word [esi], ax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x8c]
cmp eax, 8
jb 0x40cdb8
mov edx, dword [ebp - 0xa0]
inc eax
mov ecx, edx
cmp eax, 0x7fffffff
ja 0x40d6d1
add eax, eax
cmp eax, 0x1000
jb 0x40cdaf
test cl, 0x1f
jne 0x40d6d1
mov edx, dword [ecx - 4]
cmp edx, ecx
jae 0x40d6d1
sub ecx, edx
cmp ecx, 4
jb 0x40d6d1
cmp ecx, 0x23
ja 0x40d6d1
push edx
call fcn.0041211c
add esp, 4
test edi, edi
je 0x40ce3b
xor eax, eax
mov dword [ebp - 0x5c], 7
push edi
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x60], 0
mov word [ebp - 0x70], ax
call fcn.0040a170
lea eax, [ebp - 0x70]
push eax
lea ecx, [ebp - 0xe8]
call fcn.00409f50
mov eax, dword [ebp - 0x5c]
cmp eax, 8
jb 0x40ce3b
mov edx, dword [ebp - 0x70]
inc eax
mov ecx, edx
cmp eax, 0x7fffffff
ja 0x40d6d1
add eax, eax
cmp eax, 0x1000
jb 0x40ce32
test cl, 0x1f
jne 0x40d6d1
mov edx, dword [ecx - 4]
cmp edx, ecx
jae 0x40d6d1
sub ecx, edx
cmp ecx, 4
jb 0x40d6d1
cmp ecx, 0x23
ja 0x40d6d1
push edx
call fcn.0041211c
add esp, 4
cmp dword [ebp - 0x2c], 8
lea ecx, [ebp - 0x350]
lea eax, [ebp - 0x40]
cmovae eax, dword [ebp - 0x40]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x354], eax
cmp eax, 0xffffffff
jne 0x40ce8e
cmp dword [ebp - 0x2c], 8
lea eax, [ebp - 0x40]
cmovae eax, dword [ebp - 0x40]
push eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.FindFirstFile_failed__error_code_is__d_dir_is__s
push 2
call fcn.0040bbb0
push eax
call fcn.0040bac0
add esp, 0x14
xor bl, bl
jmp 0x40d5a0
mov ebx, dword [ebp - 0x354]
nop dword [eax]
nop dword [eax + eax]
mov ecx, 0x4d73c8
lea eax, [ebp - 0x324]
nop dword [eax + eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40ced6
test dx, dx
je 0x40ced2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40ced6
add eax, 4
add ecx, 4
test dx, dx
jne 0x40ceb0
xor eax, eax
jmp 0x40cedb
sbb eax, eax
or eax, 1
test eax, eax
je 0x40cf23
mov ecx, 0x4d73cc
lea eax, [ebp - 0x324]
nop word [eax + eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40cf16
test dx, dx
je 0x40cf12
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40cf16
add eax, 4
add ecx, 4
test dx, dx
jne 0x40cef0
xor eax, eax
jmp 0x40cf1b
sbb eax, eax
or eax, 1
test eax, eax
je 0x40cf23
xor al, al
jmp 0x40cf25
mov al, 1
test al, al
jne 0x40d581
xor eax, eax
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
lea ecx, [ebp - 0x28]
lea eax, [ebp - 0x324]
mov dword [ebp - 0x18], 0
push eax
call fcn.0040a170
xor eax, eax
mov dword [ebp - 0x74], 7
mov dword [ebp - 0x78], 0
mov word [ebp - 0x88], ax
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xd0]
push 0x4d74ac
mov dword [ebp - 0xbc], 7
mov dword [ebp - 0xc0], eax
mov word [ebp - 0xd0], ax
call fcn.0040a170
push dword [ebp - 0x35c]
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x70]
xor eax, eax
mov dword [ebp - 0x5c], 7
mov dword [ebp - 0x60], 0
mov word [ebp - 0x70], ax
call fcn.0040a170
lea eax, [ebp - 0xd0]
mov byte [ebp - 4], 7
push eax
lea edx, [ebp - 0x70]
lea ecx, [ebp - 0xa0]
call fcn.0040e2a0
add esp, 4
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 8
push ecx
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.0040e210
add esp, 0xc
mov esi, eax
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 9
cmp eax, esi
je 0x40d0ae
mov eax, dword [ebp - 0x44]
cmp eax, 8
jb 0x40d050
mov edx, dword [ebp - 0x58]
inc eax
mov ecx, edx
cmp eax, 0x7fffffff
ja 0x40d6d1
add eax, eax
cmp eax, 0x1000
jb 0x40d047
test cl, 0x1f
jne 0x40d6d1
mov edx, dword [ecx - 4]
cmp edx, ecx
jae 0x40d6d1
sub ecx, edx
cmp ecx, 4
jb 0x40d6d1
cmp ecx, 0x23
ja 0x40d6d1
push edx
call fcn.0041211c
add esp, 4
xor eax, eax
mov dword [ebp - 0x44], 7
mov dword [ebp - 0x48], 0
mov word [ebp - 0x58], ax
cmp dword [esi + 0x14], 8
jae 0x40d084
mov eax, dword [esi + 0x10]
add eax, 1
je 0x40d08f
add eax, eax
push eax
lea eax, [ebp - 0x58]
push esi
push eax
call fcn.0047b690
add esp, 0xc
jmp 0x40d08f
mov eax, dword [esi]
mov dword [ebp - 0x58], eax
mov dword [esi], 0
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x48], eax
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x44], eax
xor eax, eax
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], 0
mov word [esi], ax
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0xec]
cmp eax, 8
jb 0x40d10b
mov edx, dword [ebp - 0x100]
inc eax
mov ecx, edx
cmp eax, 0x7fffffff
ja 0x40d6d1
add eax, eax
cmp eax, 0x1000
jb 0x40d102
test cl, 0x1f
jne 0x40d6d1
mov edx, dword [ecx - 4]
cmp edx, ecx
jae 0x40d6d1
sub ecx, edx
cmp ecx, 4
jb 0x40d6d1
cmp ecx, 0x23
ja 0x40d6d1
push edx
call fcn.0041211c
add esp, 4
xor eax, eax
mov byte [ebp - 4], 7
mov word [ebp - 0x100], ax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0xec], 7
mov dword [ebp - 0xf0], 0
cmp eax, 8
jb 0x40d185
mov edx, dword [ebp - 0xa0]
inc eax
mov ecx, edx
cmp eax, 0x7fffffff
ja 0x40d6d1
add eax, eax
cmp eax, 0x1000
jb 0x40d17c
test cl, 0x1f
jne 0x40d6d1
mov edx, dword [ecx - 4]
cmp edx, ecx
jae 0x40d6d1
sub ecx, edx
cmp ecx, 4
jb 0x40d6d1
cmp ecx, 0x23
ja 0x40d6d1
push edx
call fcn.0041211c
add esp, 4
xor eax, eax
mov byte [ebp - 4], 6
mov word [ebp - 0xa0], ax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x8c], 7
mov dword [ebp - 0x90], 0
cmp eax, 8
jb 0x40d1f9
mov edx, dword [ebp - 0x70]
inc eax
mov ecx, edx
cmp eax, 0x7fffffff
ja 0x40d6d1
add eax, eax
cmp eax, 0x1000
jb 0x40d1f0
test cl, 0x1f
jne 0x40d6d1
mov edx, dword [ecx - 4]
cmp edx, ecx
jae 0x40d6d1
sub ecx, edx
cmp ecx, 4
jb 0x40d6d1
cmp ecx, 0x23
ja 0x40d6d1
push edx
call fcn.0041211c
add esp, 4
xor eax, eax
mov byte [ebp - 4], 5
mov word [ebp - 0x70], ax
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x5c], 7
mov dword [ebp - 0x60], 0
cmp eax, 8
jb 0x40d26a
mov edx, dword [ebp - 0xd0]
inc eax
mov ecx, edx
cmp eax, 0x7fffffff
ja 0x40d6d1
add eax, eax
cmp eax, 0x1000
jb 0x40d261
test cl, 0x1f
jne 0x40d6d1
mov edx, dword [ecx - 4]
cmp edx, ecx
jae 0x40d6d1
sub ecx, edx
cmp ecx, 4
jb 0x40d6d1
cmp ecx, 0x23
ja 0x40d6d1
push edx
call fcn.0041211c
add esp, 4
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0xa0]
push eax
call fcn.0040a800
add esp, 0xc
mov esi, eax
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0xa
cmp eax, esi
je 0x40d346
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x40d2e8
mov edx, dword [ebp - 0x28]
inc eax
mov ecx, edx
cmp eax, 0x7fffffff
ja 0x40d6d1
add eax, eax
cmp eax, 0x1000
jb 0x40d2df
test cl, 0x1f
jne 0x40d6d1
mov edx, dword [ecx - 4]
cmp edx, ecx
jae 0x40d6d1
sub ecx, edx
cmp ecx, 4
jb 0x40d6d1
cmp ecx, 0x23
ja 0x40d6d1
push edx
call fcn.0041211c
add esp, 4
xor eax, eax
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x18], 0
mov word [ebp - 0x28], ax
cmp dword [esi + 0x14], 8
jae 0x40d31c
mov eax, dword [esi + 0x10]
add eax, 1
je 0x40d327
add eax, eax
push eax
lea eax, [ebp - 0x28]
push esi
push eax
call fcn.0047b690
add esp, 0xc
jmp 0x40d327
mov eax, dword [esi]
mov dword [ebp - 0x28], eax
mov dword [esi], 0
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x18], eax
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x14], eax
xor eax, eax
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], 0
mov word [esi], ax
push 0
push 1
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 5
call fcn.0040a0f0
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x88]
call fcn.0040a2e0
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
mov edx, dword [ebp - 0x28]
lea ecx, [ebp - 0x28]
cmovae eax, edx
lea ebx, [ebp - 0x28]
mov dword [ebp - 0x360], eax
cmovae ecx, edx
mov eax, dword [ebp - 0x18]
cmovae ebx, edx
lea esi, [ecx + eax*2]
cmp ebx, esi
je 0x40d3b7
mov edi, dword [ebp - 0x360]
sub edi, ebx
nop dword [eax]
movzx eax, word [ebx]
push eax
call fcn.0048aa06
mov word [edi + ebx], ax
add esp, 4
add ebx, 2
cmp ebx, esi
jne 0x40d3a0
cmp dword [ebp - 0x44], 8
lea ecx, [ebp - 0x58]
cmovae ecx, dword [ebp - 0x58]
call fcn.0040c700
lea edx, [ebp - 0x28]
test al, al
je 0x40d460
cmp dword [ebp - 0x14], 8
mov ecx, edx
cmovae ecx, dword [ebp - 0x28]
call fcn.0040dc10
lea eax, [ebp - 0x88]
push eax
lea edx, [ebp - 0x28]
lea ecx, [ebp - 0xb8]
call fcn.0040e300
add esp, 4
mov ebx, dword [ebp - 0x364]
mov ecx, ebx
push eax
mov byte [ebp - 4], 0xb
call fcn.0040e390
push eax
add eax, 0x10
push eax
push ecx
lea eax, [ebp - 0x36c]
mov ecx, ebx
push eax
call fcn.0040b4a0
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 5
call fcn.00409ef0
lea ecx, [ebp - 0xb8]
call fcn.00409ef0
cmp dword [ebp - 0x14], 8
lea edx, [ebp - 0x28]
push ebx
cmovae edx, dword [ebp - 0x28]
lea ecx, [ebp - 0x58]
cmp dword [ebp - 0x44], 8
push dword [ebp - 0x358]
cmovae ecx, dword [ebp - 0x58]
call fcn.0040cbe0
add esp, 8
jmp 0x40d4b3
lea eax, [ebp - 0x88]
push eax
lea ecx, [ebp - 0xb8]
call fcn.0040e300
add esp, 4
mov ecx, dword [ebp - 0x358]
push eax
mov byte [ebp - 4], 0xc
call fcn.0040e390
push eax
add eax, 0x10
push eax
push ecx
mov ecx, dword [ebp - 0x358]
lea eax, [ebp - 0x374]
push eax
call fcn.0040b4a0
lea ecx, [ebp - 0xa0]
call fcn.00409ef0
lea ecx, [ebp - 0xb8]
call fcn.00409ef0
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x74]
cmp eax, 8
jb 0x40d50d
mov edx, dword [ebp - 0x88]
inc eax
mov ecx, edx
cmp eax, 0x7fffffff
ja 0x40d6d1
add eax, eax
cmp eax, 0x1000
jb 0x40d504
test cl, 0x1f
jne 0x40d6d1
mov edx, dword [ecx - 4]
cmp edx, ecx
jae 0x40d6d1
sub ecx, edx
cmp ecx, 4
jb 0x40d6d1
cmp ecx, 0x23
ja 0x40d6d1
push edx
call fcn.0041211c
add esp, 4
xor eax, eax
mov byte [ebp - 4], 2
mov word [ebp - 0x88], ax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x74], 7
mov dword [ebp - 0x78], 0
cmp eax, 8
jb 0x40d57b
mov edx, dword [ebp - 0x28]
inc eax
mov ecx, edx
cmp eax, 0x7fffffff
ja 0x40d6d1
add eax, eax
cmp eax, 0x1000
jb 0x40d572
test cl, 0x1f
jne 0x40d6d1
mov edx, dword [ecx - 4]
cmp edx, ecx
jae 0x40d6d1
sub ecx, edx
cmp ecx, 4
jb 0x40d6d1
cmp ecx, 0x23
ja 0x40d6d1
push edx
call fcn.0041211c
add esp, 4
mov ebx, dword [ebp - 0x354]
lea eax, [ebp - 0x350]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x40cea0
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov bl, 1
mov eax, dword [ebp - 0x44]
cmp eax, 8
jb 0x40d5f3
mov edx, dword [ebp - 0x58]
inc eax
mov ecx, edx
cmp eax, 0x7fffffff
ja 0x40d6d1
add eax, eax
cmp eax, 0x1000
jb 0x40d5ea
test cl, 0x1f
jne 0x40d6d1
mov edx, dword [ecx - 4]
cmp edx, ecx
jae 0x40d6d1
sub ecx, edx
cmp ecx, 4
jb 0x40d6d1
cmp ecx, 0x23
ja 0x40d6d1
push edx
call fcn.0041211c
add esp, 4
xor eax, eax
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x48], 0
cmp eax, 8
jb 0x40d65a
mov edx, dword [ebp - 0x40]
inc eax
mov ecx, edx
cmp eax, 0x7fffffff
ja 0x40d6d1
add eax, eax
cmp eax, 0x1000
jb 0x40d651
test cl, 0x1f
jne 0x40d6d1
mov edx, dword [ecx - 4]
cmp edx, ecx
jae 0x40d6d1
sub ecx, edx
cmp ecx, 4
jb 0x40d6d1
cmp ecx, 0x23
ja 0x40d6d1
push edx
call fcn.0041211c
add esp, 4
xor eax, eax
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0x30], 0
cmp eax, 8
jb 0x40d6b3
mov edx, dword [ebp - 0xe8]
inc eax
mov ecx, edx
cmp eax, 0x7fffffff
ja 0x40d6d1
add eax, eax
cmp eax, 0x1000
jb 0x40d6aa
test cl, 0x1f
jne 0x40d6d1
mov edx, dword [ecx - 4]
cmp edx, ecx
jae 0x40d6d1
sub ecx, edx
cmp ecx, 4
jb 0x40d6d1
cmp ecx, 0x23
ja 0x40d6d1
push edx
call fcn.0041211c
add esp, 4
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0047a65d
mov esp, ebp
pop ebp
ret
call fcn.0047f6df
int3