Function at 0x40e830
Capabilities:
Check if file exists
Enumerate files on windows
Enumerate files recursively
Get file attributes
Move file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x447a31
mov eax, dword fs:[0]
push eax
mov eax, 0x22c0
call fcn.0042a310
mov eax, dword [0x465074]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov esi, eax
mov ecx, dword [ebp + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
sub eax, 2
and esi, eax
mov edx, dword [ebp + 0xc]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
sub eax, 0x81
and esi, eax
and esi, 0xffe0fe00
push esi
mov eax, dword [ebp + 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov dword [ebp - 0x22b8], 0
mov dword [ebp - 0x22b4], 1
mov ecx, dword [ebp + 0xc]
push ecx
push 0x44eea8
lea edx, [ebp - 0x1010]
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea eax, [ebp - 0x22a8]
push eax
lea ecx, [ebp - 0x1010]
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x22b8], eax
cmp dword [ebp - 0x22b8], 0xffffffff
jne 0x40e8f4
xor eax, eax
jmp 0x40ee76
push 0x44eee4
lea edx, [ebp - 0x227c]
push edx
call fcn.0042fb23
add esp, 8
test eax, eax
je 0x40ee33
push 0x44eee8
lea eax, [ebp - 0x227c]
push eax
call fcn.0042fb23
add esp, 8
test eax, eax
je 0x40ee33
mov ecx, 2
imul edx, ecx, 0
lea eax, [ebp + edx - 0x227c]
push eax
lea ecx, [ebp - 0x2058]
call fcn.00403550
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x22b9]
call fcn.0041f440
push eax
lea ecx, [ebp - 0x22c0]
push ecx
lea ecx, [ebp - 0x2058]
call fcn.00422170
mov edx, dword [eax]
push edx
lea eax, [ebp - 0x22c4]
push eax
lea ecx, [ebp - 0x2058]
call fcn.004216b0
mov ecx, dword [eax]
push ecx
lea ecx, [ebp - 0x2040]
call fcn.004013b0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x22ba]
call fcn.0041f440
push eax
lea edx, [ebp - 0x22c8]
push edx
lea ecx, [ebp - 0x2040]
call fcn.00422100
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x22cc]
push ecx
lea ecx, [ebp - 0x2040]
call fcn.00421650
mov edx, dword [eax]
push edx
lea ecx, [ebp - 0x2028]
call fcn.00401340
mov byte [ebp - 4], 2
cmp dword [ebp + 0x10], 1
jne 0x40ea05
lea ecx, [ebp - 0x2028]
call fcn.00421840
push eax
mov eax, dword [ebp + 8]
push eax
push 0x44ef60
lea ecx, [ebp - 0x2010]
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
jmp 0x40ea2a
lea ecx, [ebp - 0x2028]
call fcn.00421840
push eax
mov edx, dword [ebp + 8]
push edx
push 0x44ef7c
lea eax, [ebp - 0x2010]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea ecx, [ebp - 0x227c]
push ecx
mov edx, dword [ebp + 0xc]
push edx
push 0x44ef88
lea eax, [ebp - 0x1010]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea ecx, [ebp - 0x1010]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov esi, eax
lea edx, [ebp - 0x1010]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
sub eax, 2
and esi, eax
lea eax, [ebp - 0x1010]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
sub eax, 0x81
and esi, eax
and esi, 0xffe0fe00
push esi
lea ecx, [ebp - 0x1010]
push ecx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov edx, dword [ebp - 0x22a8]
and edx, 0x10
je 0x40eda4
lea eax, [ebp - 0x227c]
push eax
call fcn.0042fb85
add esp, 4
cmp eax, 1
jne 0x40ebd6
mov ecx, 0x61
mov word [ebp - 0x22ac], cx
jmp 0x40eada
mov dx, word [ebp - 0x22ac]
add dx, 1
mov word [ebp - 0x22ac], dx
movzx eax, word [ebp - 0x22ac]
cmp eax, 0x7a
jg 0x40eb33
mov ecx, 2
imul edx, ecx, 0
movzx eax, word [ebp + edx - 0x227c]
movzx ecx, word [ebp - 0x22ac]
cmp eax, ecx
je 0x40eb25
mov edx, 2
imul eax, edx, 0
movzx esi, word [ebp + eax - 0x227c]
movzx ecx, word [ebp - 0x22ac]
push ecx
call fcn.0042fac2
add esp, 4
cmp esi, eax
jne 0x40eb31
mov dword [ebp - 0x22b4], 0
jmp 0x40eb33
jmp 0x40eac8
cmp dword [ebp - 0x22b4], 1
jne 0x40eb91
mov edx, 0x30
mov word [ebp - 0x22b0], dx
jmp 0x40eb5c
mov ax, word [ebp - 0x22b0]
add ax, 1
mov word [ebp - 0x22b0], ax
movzx ecx, word [ebp - 0x22b0]
cmp ecx, 0x39
jg 0x40eb91
mov edx, 2
imul eax, edx, 0
movzx ecx, word [ebp + eax - 0x227c]
movzx edx, word [ebp - 0x22b0]
cmp ecx, edx
jne 0x40eb8f
mov dword [ebp - 0x22b4], 0
jmp 0x40eb91
jmp 0x40eb4a
cmp dword [ebp - 0x22b4], 1
jne 0x40ebb1
push 0
lea eax, [ebp - 0x1010]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0040e830
add esp, 0xc
jmp 0x40ebd1
push 8
lea edx, [ebp - 0x2010]
push edx
lea eax, [ebp - 0x1010]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov dword [ebp - 0x22b4], 1
jmp 0x40eda2
push 0x44f194
lea ecx, [ebp - 0x227c]
push ecx
call fcn.0042fb23
add esp, 8
test eax, eax
je 0x40ecb0
push 5
push 0x44f1c0
lea edx, [ebp - 0x227c]
push edx
call fcn.0042fba0
add esp, 0xc
test eax, eax
je 0x40ecb0
push 6
push 0x44f1f4
lea eax, [ebp - 0x227c]
push eax
call fcn.0042fba0
add esp, 0xc
test eax, eax
je 0x40ecb0
push 0xb
push 0x44f20c
lea ecx, [ebp - 0x227c]
push ecx
call fcn.0042fba0
add esp, 0xc
test eax, eax
je 0x40ecb0
push 0xb
push 0x44f254
lea edx, [ebp - 0x227c]
push edx
call fcn.0042fba0
add esp, 0xc
test eax, eax
je 0x40ecb0
push 8
push 0x44f2a8
lea eax, [ebp - 0x227c]
push eax
call fcn.0042fba0
add esp, 0xc
test eax, eax
je 0x40ecb0
push 0xd
push 0x44f2cc
lea ecx, [ebp - 0x227c]
push ecx
call fcn.0042fba0
add esp, 0xc
test eax, eax
je 0x40ecb0
push 0x19
push 0x44f2f0
lea edx, [ebp - 0x227c]
push edx
call fcn.0042fba0
add esp, 0xc
test eax, eax
jne 0x40ecc4
lea eax, [ebp - 0x1010]
push eax
call fcn.00408d60
add esp, 4
jmp 0x40eda2
push 5
push 0x44f37c
lea ecx, [ebp - 0x227c]
push ecx
call fcn.0042fba0
add esp, 0xc
test eax, eax
je 0x40ed2c
push 6
push 0x44f390
lea edx, [ebp - 0x227c]
push edx
call fcn.0042fba0
add esp, 0xc
test eax, eax
je 0x40ed2c
push 0xd
push 0x44f3a8
lea eax, [ebp - 0x227c]
push eax
call fcn.0042fba0
add esp, 0xc
test eax, eax
je 0x40ed2c
push 0x1a
push 0x44f3cc
lea ecx, [ebp - 0x227c]
push ecx
call fcn.0042fba0
add esp, 0xc
test eax, eax
jne 0x40ed43
push 0
lea edx, [ebp - 0x1010]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0040e830
add esp, 0xc
jmp 0x40eda2
push 8
lea ecx, [ebp - 0x2010]
push ecx
lea edx, [ebp - 0x1010]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
lea eax, [ebp - 0x2010]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov esi, eax
lea ecx, [ebp - 0x2010]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
sub eax, 2
and esi, eax
lea edx, [ebp - 0x2010]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
sub eax, 0x81
and esi, eax
and esi, 0xffe0fe00
push esi
lea eax, [ebp - 0x2010]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
jmp 0x40ee03
push 8
lea ecx, [ebp - 0x2010]
push ecx
lea edx, [ebp - 0x1010]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
lea eax, [ebp - 0x2010]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov esi, eax
lea ecx, [ebp - 0x2010]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
sub eax, 2
and esi, eax
lea edx, [ebp - 0x2010]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
sub eax, 0x81
and esi, eax
and esi, 0xffe0fe00
push esi
lea eax, [ebp - 0x2010]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2028]
call fcn.004046b0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2040]
call fcn.00404660
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2058]
call fcn.004046b0
lea ecx, [ebp - 0x22a8]
push ecx
mov edx, dword [ebp - 0x22b8]
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x40ee58
cmp dword [0x465f70], 0
je 0x40e8f4
mov eax, dword [ebp - 0x22b8]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.00408d60
add esp, 4
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0042a2fe
mov esp, ebp
pop ebp
ret