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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4547cf
mov eax, dword fs:[0]
push eax
sub esp, 0x358
mov eax, dword [0x46a1c0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edx, ecx
mov dword [ebp - 0x2e4], edx
mov ecx, dword [edx + 0x10]
mov eax, 0x7ffffffe
sub eax, ecx
xorps xmm0, xmm0
movlpd qword [ebp - 0x2c8], xmm0
cmp eax, 2
jb 0x405a01
cmp dword [edx + 0x14], 7
mov eax, edx
jbe 0x4052dd
mov eax, dword [edx]
push 2
push 0x460d30
push ecx
push eax
push ecx
push dword [ebp - 0x2b8]
lea ecx, [ebp - 0x58]
call fcn.00419c40
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x2a8]
cmp dword [ebp - 0x44], 7
lea eax, [ebp - 0x58]
push ecx
cmova eax, dword [ebp - 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x2b8], eax
cmp eax, 0xffffffff
jne 0x405354
mov edx, str.Error_finding_first_file_in_the_folder_
mov ecx, 0x46cfd0
call fcn.00415d50
push eax
call fcn.00415ff0
xorps xmm0, xmm0
add esp, 4
movlpd qword [ebp - 0x2bc], xmm0
mov esi, dword [ebp - 0x2b8]
mov edi, dword [ebp - 0x2bc]
jmp 0x4059ac
mov esi, dword [ebp - 0x2c4]
mov edi, dword [ebp - 0x2c8]
mov dword [ebp - 0x2ac], esi
mov dword [ebp - 0x2b0], edi
nop dword [eax]
xorps xmm0, xmm0
mov dword [ebp - 0x18], 0
lea ecx, [ebp - 0x27c]
mov dword [ebp - 0x14], 0
movups xmmword [ebp - 0x28], xmm0
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x405390
sub ecx, edx
lea eax, [ebp - 0x27c]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x28]
call fcn.00417190
mov byte [ebp - 4], 1
lea esi, [ebp - 0x28]
cmp dword [ebp - 0x14], 7
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
cmova esi, edi
mov dword [ebp - 0x2c0], edi
cmp eax, 1
jne 0x4053ed
mov ecx, 0x460d60
mov edx, eax
sub esi, ecx
mov ax, word [esi + ecx]
cmp ax, word [ecx]
jne 0x4053ea
add ecx, 2
sub edx, 1
jne 0x4053d7
jmp 0x405416
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x14], 7
lea esi, [ebp - 0x28]
cmova esi, edi
cmp eax, 2
jne 0x405452
mov ecx, 0x460d64
mov edx, eax
sub esi, ecx
mov ax, word [esi + ecx]
cmp ax, word [ecx]
jne 0x405452
add ecx, 2
sub edx, 1
jne 0x405405
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x14]
cmp eax, 7
jbe 0x40597d
lea ecx, [eax*2 + 2]
mov eax, edi
cmp ecx, 0x1000
jb 0x40544b
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405a06
push ecx
push edi
jmp 0x405975
mov edx, dword [ebp - 0x2e4]
mov eax, 0x7ffffffe
mov ecx, dword [edx + 0x10]
sub eax, ecx
cmp eax, 1
jb 0x405a01
cmp dword [edx + 0x14], 7
mov eax, edx
jbe 0x405475
mov eax, dword [edx]
push 1
push 0x460c48
push ecx
push eax
push ecx
push dword [ebp - 0x2b8]
lea ecx, [ebp - 0x2e0]
call fcn.00419c40
mov byte [ebp - 4], 2
lea edx, [ebp - 0x28]
cmp dword [ebp - 0x14], 7
mov ecx, dword [ebp - 0x2d0]
mov eax, dword [ebp - 0x2cc]
cmova edx, edi
mov edi, dword [ebp - 0x18]
sub eax, ecx
mov dword [ebp - 0x2b4], ecx
cmp edi, eax
ja 0x4054fd
cmp dword [ebp - 0x2cc], 7
lea eax, [edi + ecx]
lea esi, [ebp - 0x2e0]
mov dword [ebp - 0x2d0], eax
cmova esi, dword [ebp - 0x2e0]
lea eax, [edi + edi]
push eax
push edx
lea ecx, [esi + ecx*2]
push ecx
call fcn.00434d10
mov eax, dword [ebp - 0x2b4]
add esp, 0xc
add eax, edi
xor ecx, ecx
mov word [esi + eax*2], cx
lea eax, [ebp - 0x2e0]
jmp 0x405521
push edi
push edx
mov byte [ebp - 0x2e8], 0
lea ecx, [ebp - 0x2e0]
push dword [ebp - 0x2e8]
push edi
call fcn.00417f80
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x2c0], ecx
mov dword [ebp - 0x30], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x40], xmm0
mov dword [ebp - 0x2c], 0
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x40], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x30], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x2cc]
cmp ecx, 7
jbe 0x40559e
mov edx, dword [ebp - 0x2e0]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x405594
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405a06
push ecx
push edx
call fcn.00433928
add esp, 8
xor eax, eax
mov dword [ebp - 0x2d0], 0
test byte [ebp - 0x2a8], 0x10
mov dword [ebp - 0x2cc], 7
mov word [ebp - 0x2e0], ax
je 0x4055dd
lea ecx, [ebp - 0x40]
call fcn.00405280
add dword [ebp - 0x2b0], eax
adc dword [ebp - 0x2ac], edx
jmp 0x4058eb
mov ecx, dword [ebp - 0x288]
mov eax, dword [ebp - 0x28c]
add dword [ebp - 0x2b0], ecx
push eax
adc dword [ebp - 0x2ac], eax
push ecx
lea ecx, [ebp - 0x364]
call fcn.00403130
add esp, 8
mov esi, eax
mov byte [ebp - 4], 5
mov ecx, 0x7ffffffe
mov edx, dword [ebp - 0x30]
sub ecx, edx
cmp ecx, 5
jb 0x405a01
cmp dword [ebp - 0x2c], 7
lea ecx, [ebp - 0x40]
push edx
cmova ecx, dword [ebp - 0x40]
push ecx
push 5
push str._FIL_
push ecx
push dword [ebp - 0x2b8]
lea ecx, [ebp - 0x31c]
call fcn.00419c40
push str._SZ_
lea edx, [ebp - 0x31c]
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x34c]
call fcn.00415c80
add esp, 4
push esi
push eax
push dword [ebp - 0x2b8]
lea ecx, [ebp - 0x304]
mov byte [ebp - 4], 7
call fcn.00419a40
push 0x460d28
lea edx, [ebp - 0x304]
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x334]
call fcn.00415c80
add esp, 4
mov byte [ebp - 4], 9
mov ecx, eax
cmp dword [eax + 0x14], 7
mov dword [ebp - 0x2b4], eax
jbe 0x4056af
mov ecx, dword [eax]
mov dword [ebp - 0x2b4], ecx
mov edx, dword [eax + 0x10]
mov esi, dword [0x46de54]
mov eax, dword [0x46de58]
sub eax, esi
mov dword [ebp - 0x2ec], esi
cmp edx, eax
ja 0x405709
cmp dword [0x46de58], 7
lea edi, [esi + edx]
mov eax, dword [ebp - 0x2ec]
mov esi, 0x46de44
cmova esi, dword [0x46de44]
mov dword [0x46de54], edi
lea ecx, [esi + eax*2]
lea eax, [edx + edx]
push eax
push dword [ebp - 0x2b4]
push ecx
call fcn.00434d10
add esp, 0xc
xor eax, eax
mov word [esi + edi*2], ax
jmp 0x405723
push edx
push ecx
mov byte [ebp - 0x2c4], 0
mov ecx, 0x46de44
push dword [ebp - 0x2c4]
push edx
call fcn.00417f80
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x320]
cmp ecx, 7
jbe 0x405767
mov edx, dword [ebp - 0x334]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40575d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405a06
push ecx
push edx
call fcn.00433928
add esp, 8
xor eax, eax
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x2f0]
mov dword [ebp - 0x324], 0
mov dword [ebp - 0x320], 7
mov word [ebp - 0x334], ax
cmp ecx, 7
jbe 0x4057c8
mov edx, dword [ebp - 0x304]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4057be
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405a06
push ecx
push edx
call fcn.00433928
add esp, 8
xor eax, eax
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x338]
mov dword [ebp - 0x2f4], 0
mov dword [ebp - 0x2f0], 7
mov word [ebp - 0x304], ax
cmp ecx, 7
jbe 0x405829
mov edx, dword [ebp - 0x34c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40581f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405a06
push ecx
push edx
call fcn.00433928
add esp, 8
xor eax, eax
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x308]
mov dword [ebp - 0x33c], 0
mov dword [ebp - 0x338], 7
mov word [ebp - 0x34c], ax
cmp ecx, 7
jbe 0x40588a
mov edx, dword [ebp - 0x31c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x405880
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405a06
push ecx
push edx
call fcn.00433928
add esp, 8
xor eax, eax
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x350]
mov dword [ebp - 0x30c], 0
mov dword [ebp - 0x308], 7
mov word [ebp - 0x31c], ax
cmp ecx, 7
jbe 0x4058eb
mov edx, dword [ebp - 0x364]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4058e1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405a06
push ecx
push edx
call fcn.00433928
add esp, 8
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x2c]
cmp ecx, 7
jbe 0x405929
mov edx, dword [ebp - 0x40]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40591f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405a06
push ecx
push edx
call fcn.00433928
add esp, 8
xor eax, eax
mov dword [ebp - 0x30], 0
mov word [ebp - 0x40], ax
mov byte [ebp - 4], al
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x2c], 7
cmp eax, 7
jbe 0x40597d
mov edx, dword [ebp - 0x2c0]
lea ecx, [eax*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x405973
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405a06
push ecx
push edx
call fcn.00433928
add esp, 8
mov esi, dword [ebp - 0x2b8]
lea eax, [ebp - 0x2a8]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x405370
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov esi, dword [ebp - 0x2ac]
mov edi, dword [ebp - 0x2b0]
mov ecx, dword [ebp - 0x44]
cmp ecx, 7
jbe 0x4059e2
mov edx, dword [ebp - 0x58]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4059d8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405a06
push ecx
push edx
call fcn.00433928
add esp, 8
mov eax, edi
mov edx, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004333df
mov esp, ebp
pop ebp
ret
call fcn.004015a0
call fcn.0043bda5
int3