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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x464
mov eax, dword [0x103f89c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
xor ebx, ebx
push 0x206
lea eax, [ebp - 0x20a]
push ebx
push eax
mov word [ebp - 0x20c], bx
call fcn.01017f90
add esp, 0xc
cmp esi, ebx
mov dword [ebp - 0x460], ebx
je 0x102c46f
cmp dword [esi + 4], ebx
je 0x102c46f
cmp dword [esi + 0x28], ebx
je 0x102c46f
mov edi, dword [esi + 0xc]
cmp edi, ebx
jl 0x102c298
cmp dword [ebp + 0x10], ebx
je 0x102c295
mov eax, dword [esi + 0x24]
or dword [esi + 0xc], 0xffffffff
cmp eax, ebx
je 0x102c2a7
push eax
call fcn.010267d5
test eax, eax
je 0x102c477
mov dword [esi + 0x24], ebx
jmp 0x102c2a7
inc edi
jmp 0x102c2a7
mov eax, dword [esi + 0x10]
cmp eax, 0xffffffff
jl 0x102c46f
lea edi, [eax + 1]
cmp dword [ebp + 0xc], 0
mov ebx, 0x104
jne 0x102c30d
push ebx
lea eax, [ebp - 0x20c]
push eax
push 0x501
push dword [esi + 4]
call fcn.010248b0
test eax, eax
je 0x102c477
lea eax, [ebp - 0x45c]
push eax
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
mov dword [ebp - 0x464], eax
jne 0x102c3db
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
jne 0x102c477
push dword [ebp - 0x464]
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [esi + 0x10]
cmp edi, eax
mov dword [ebp - 0x460], eax
je 0x102c46b
push ebx
lea eax, [ebp - 0x20c]
push eax
push edi
push 0x101
push dword [esi + 4]
call fcn.01024c25
test eax, eax
je 0x102c477
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x102c359
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x102c36f
lea eax, [edi + 1]
xor edx, edx
mov ecx, 0x2710
div ecx
mov edi, edx
cmp edi, dword [ebp - 0x460]
jne 0x102c31e
cmp edi, dword [ebp - 0x460]
je 0x102c46b
push 8
lea eax, [ebp - 0x20c]
push eax
mov eax, dword [esi + 0x28]
push dword [eax + 8]
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
je 0x102c477
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 8]
mov dword [eax + 0xc], edi
mov eax, dword [esi + 0x24]
test eax, eax
mov dword [esi + 0xc], edi
je 0x102c3c0
push eax
call fcn.010267d5
test eax, eax
je 0x102c477
and dword [esi + 0x24], 0
mov eax, dword [esi + 0x28]
and dword [esi + 0x28], 0
push esi
mov dword [esi + 0x24], eax
call fcn.01025647
neg eax
sbb eax, eax
neg eax
jmp 0x102c479
test byte [ebp - 0x45c], 0x10
je 0x102c443
lea eax, [ebp - 0x460]
push eax
lea eax, [ebp - 0x430]
push 0x1012d58
push eax
call fcn.0103055d
add esp, 0xc
cmp eax, 1
jne 0x102c443
mov eax, dword [ebp - 0x460]
cmp eax, dword [esi + 0x10]
je 0x102c443
cmp eax, dword [esi + 0xc]
je 0x102c443
lea eax, [ebp - 0x430]
push eax
push dword [esi + 4]
lea eax, [ebp - 0x20c]
push 0x1010fb0
push ebx
push eax
call fcn.01023bc3
add esp, 0x14
test eax, eax
jl 0x102c45f
lea eax, [ebp - 0x20c]
push eax
call fcn.010245a8
lea eax, [ebp - 0x45c]
push eax
push dword [ebp - 0x464]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x102c3db
jmp 0x102c301
push dword [ebp - 0x464]
call dword [sym.imp.KERNEL32.dll_FindClose]
push 0x32
jmp 0x102c471
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.01017c0a
leave
ret 0xc