Function at 0x40aaf0
Capabilities:
Enumerate files on windows
Enumerate files recursively
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x541904
mov eax, dword fs:[0]
push eax
sub esp, 0x274
mov eax, dword [0x594ca8]
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 esi, dword [ebp + 0xc]
push 0x570574
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x274]
xor ebx, ebx
push ecx
mov dword [ebp - 4], ebx
call fcn.00404260
mov eax, dword [eax]
add esp, 0xc
lea edx, [ebp - 0x260]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov edi, eax
mov eax, dword [ebp - 0x274]
add eax, 0xfffffff0
mov dword [ebp - 0x268], edi
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ab78
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp edi, 0xffffffff
je 0x40ad95
mov edi, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x40ab90
test byte [ebp - 0x260], 0x10
je 0x40aca9
lea ecx, [ebp - 0x234]
push ecx
lea ecx, [ebp - 0x264]
call fcn.004040f0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x264]
mov ecx, 0x570580
mov edi, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40abe6
cmp dx, bx
je 0x40abe2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40abe6
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x40abc0
xor eax, eax
jmp 0x40abeb
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
setne al
cmp al, bl
je 0x40ac9b
mov eax, dword [ebp - 0x264]
mov ecx, 0x570584
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40ac29
cmp dx, bx
je 0x40ac25
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40ac29
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x40ac03
xor eax, eax
jmp 0x40ac2e
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
setne al
cmp al, bl
je 0x40ac9b
push esi
push 0x57058c
lea edx, [ebp + 8]
push edx
lea eax, [ebp - 0x278]
push eax
call fcn.00404260
add esp, 8
mov ecx, esp
mov dword [ebp - 0x280], esp
lea edx, [ebp - 0x264]
push edx
push eax
push ecx
mov byte [ebp - 4], 2
call fcn.00403830
add esp, 0xc
call fcn.0040aaf0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x278]
add eax, 0xfffffff0
add esp, 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ac9b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x264]
jmp 0x40ad50
mov ecx, dword [ebp - 0x240]
add dword [esi], ecx
push 0x57058c
lea edx, [ebp + 8]
adc dword [esi + 4], ebx
push edx
lea eax, [ebp - 0x270]
push eax
call fcn.00404260
lea ecx, [ebp - 0x234]
push ecx
push eax
lea edx, [ebp - 0x27c]
push edx
mov byte [ebp - 4], 3
call fcn.00404260
push 0x5710ac
push eax
lea eax, [ebp - 0x26c]
push eax
mov byte [ebp - 4], 4
call fcn.00404260
mov eax, dword [eax]
add esp, 0x24
push eax
call edi
mov eax, dword [ebp - 0x26c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ad21
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x27c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ad47
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x270]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ad6c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebp - 0x268]
lea ecx, [ebp - 0x260]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x40ab90
mov eax, dword [ebp - 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40adbb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
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.005155a4
mov esp, ebp
pop ebp
ret