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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x668
push edi
mov dword [ebp - 0x668], ecx
mov dword [ebp - 0x210], 0
mov dword [ebp - 0x660], 0
mov al, byte [0x439a88]
mov byte [ebp - 0x558], al
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x557]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov cl, byte [0x439a8c]
mov byte [ebp - 0x454], cl
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x453]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov dl, byte [0x439a90]
mov byte [ebp - 0x65c], dl
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x65b]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov al, byte [0x439a94]
mov byte [ebp - 0x208], al
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x207]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov cl, byte [0x439a98]
mov byte [ebp - 0x104], cl
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x103]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x104
lea edx, [ebp - 0x454]
push edx
call fcn.0040ea68
add esp, 8
mov dword [ebp - 0x210], eax
push 0x104
lea eax, [ebp - 0x558]
push eax
mov ecx, dword [ebp - 0x668]
call fcn.0041654d
mov dword [ebp - 0x210], eax
lea ecx, [ebp - 0x558]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x41674e
jmp 0x4168fb
lea edx, [ebp - 0x558]
push edx
push 0x435200
lea eax, [ebp - 0x104]
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
lea ecx, [ebp - 0x350]
push ecx
lea edx, [ebp - 0x104]
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x20c], eax
cmp dword [ebp - 0x20c], 0xffffffff
jne 0x416792
jmp 0x4168f9
push 0x435208
lea eax, [ebp - 0x324]
push eax
call sub.MSVCRT.dll_strcmp
add esp, 8
test eax, eax
je 0x41689c
push 0x43520c
lea ecx, [ebp - 0x324]
push ecx
call sub.MSVCRT.dll_strcmp
add esp, 8
test eax, eax
je 0x41689c
mov edx, dword [ebp - 0x350]
and edx, 0x10
test edx, edx
je 0x4167dc
jmp 0x41689c
mov dword [ebp - 0x664], 0
jmp 0x4167f7
mov eax, dword [ebp - 0x664]
add eax, 1
mov dword [ebp - 0x664], eax
cmp dword [ebp - 0x664], 6
jge 0x41682a
lea ecx, [ebp - 0x324]
push ecx
mov edx, dword [ebp - 0x664]
imul edx, edx, 0x104
add edx, 0x426ce8
push edx
call sub.MSVCRT.dll_strcmp
add esp, 8
test eax, eax
jne 0x416828
jmp 0x4167e8
jmp 0x4167e8
lea eax, [ebp - 0x324]
push eax
lea ecx, [ebp - 0x454]
push ecx
push 0x435210
lea edx, [ebp - 0x208]
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x10
lea eax, [ebp - 0x324]
push eax
lea ecx, [ebp - 0x558]
push ecx
push 0x435218
lea edx, [ebp - 0x65c]
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x10
push 0x80
lea eax, [ebp - 0x65c]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea ecx, [ebp - 0x208]
push ecx
lea edx, [ebp - 0x65c]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileA]
mov dword [ebp - 0x210], eax
lea eax, [ebp - 0x350]
push eax
mov ecx, dword [ebp - 0x20c]
push ecx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x416792
mov edx, dword [ebp - 0x20c]
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov dword [ebp - 0x20c], 0
mov dword [ebp - 0x660], 1
cmp dword [ebp - 0x660], 0
jne 0x4168f1
push 0
push str.KANUpdate2::VersionUpdateRollBack___Fail
call fcn.00410257
add esp, 8
mov eax, dword [ebp - 0x660]
jmp 0x4168fd
jmp 0x4168d9
jmp 0x4168cf
pop edi
mov esp, ebp
pop ebp
ret