Function at 0x411e37
Capabilities:
Check if file exists
Copy file
Create directory
Move file
Print debug messages
Set file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8a4
push esi
push edi
mov dword [ebp - 0x8a4], ecx
mov dword [ebp - 0x3b4], 0
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0x3b0], 0
mov dword [ebp - 0x1a4], 0
mov dword [ebp - 4], 0
mov byte [ebp - 0x108], 0
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x107]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov byte [ebp - 0x3ac], 0
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x3ab]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov byte [ebp - 0x2a8], 0
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x2a7]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov dword [ebp - 0x114], 0x14
mov eax, dword [ebp + 0x14]
mov dword [eax], 0
xor ecx, ecx
mov cl, byte [0x4331a0]
test ecx, ecx
jne 0x411ef0
jmp 0x412449
mov edx, dword [ebp + 0xc]
push edx
mov ecx, dword [ebp - 0x8a4]
call fcn.0041354d
mov dword [ebp - 0x110], eax
cmp dword [ebp - 0x110], 0
jne 0x411f22
push 0
push str.BackupAndUpdateFilesFromLocal:AppDeleteFolder_Failed.
call fcn.00410257
add esp, 8
jmp 0x412447
mov eax, dword [ebp + 0xc]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x41202e
mov cl, byte [0x439a14]
mov byte [ebp - 0x4b8], cl
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x4b7]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edx, dword [ebp + 0xc]
push edx
call sub.MSVCRT.dll_strlen
add esp, 4
sub eax, 1
push eax
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x4b8]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov edx, dword [ebp + 0xc]
push edx
call sub.MSVCRT.dll_strlen
add esp, 4
mov byte [ebp + eax - 0x4b9], 0
lea eax, [ebp - 0x4b8]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x411fff
mov cl, byte [0x439a18]
mov byte [ebp - 0x5bc], cl
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x5bb]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x434024
lea edx, [ebp - 0x4b8]
push edx
push 0x434028
lea eax, [ebp - 0x5bc]
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x10
lea ecx, [ebp - 0x5bc]
push ecx
lea edx, [ebp - 0x4b8]
push edx
call dword [sym.imp.MSVCRT.dll_rename]
add esp, 8
push 0
push str.Rename_the_KANBackup_file_to_KANBackupOld.
call fcn.00410257
add esp, 8
push 0
mov eax, dword [ebp + 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov dword [ebp - 0x110], eax
cmp dword [ebp - 0x110], 0
jne 0x41202e
push 0
push str.Cant_Create_Backup_Folder.
call fcn.00410257
add esp, 8
jmp 0x412445
xor ecx, ecx
mov cl, byte [0x4331a0]
test ecx, ecx
jne 0x41203f
jmp 0x412443
mov edx, dword [ebp - 0x8a4]
add edx, 4
push edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x8a4]
call fcn.00414a5d
test eax, eax
jne 0x412061
call fcn.0041a0c9
mov ecx, dword [ebp - 0x8a4]
call fcn.00415387
test eax, eax
jne 0x4120d3
mov ecx, dword [ebp - 0x8a4]
add ecx, 4
push ecx
mov edx, dword [ebp + 8]
push edx
mov ecx, dword [ebp - 0x8a4]
call fcn.00414a5d
test eax, eax
jne 0x4120d3
push 1
push 7
mov ecx, dword [ebp - 0x8a4]
call fcn.004130cc
mov ecx, dword [ebp - 0x8a4]
call fcn.00414e72
mov dword [ebp - 0x110], eax
xor eax, eax
cmp dword [ebp - 0x110], 0
sete al
mov ecx, dword [ebp - 0x8a4]
mov dword [ecx + 0x34], eax
push 0
push str.Need_to_reboot_system_to_complete_update.
call fcn.00410257
add esp, 8
jmp 0x412138
mov edx, dword [ebp - 0x8a4]
cmp dword [edx + 0x30], 0
je 0x412138
call fcn.00412468
test eax, eax
je 0x412138
mov eax, dword [ebp - 0x8a4]
cmp dword [eax + 0x2c], 1
jne 0x412138
push 1
push 7
mov ecx, dword [ebp - 0x8a4]
call fcn.004130cc
mov ecx, dword [ebp - 0x8a4]
call fcn.00414e72
mov dword [ebp - 0x110], eax
xor ecx, ecx
cmp dword [ebp - 0x110], 0
sete cl
mov edx, dword [ebp - 0x8a4]
mov dword [edx + 0x34], ecx
push 0
push str.Need_to_reboot_system_to_complete_last_update.
call fcn.00410257
add esp, 8
mov ecx, dword [ebp - 0x8a4]
add ecx, 4
call fcn.00418a10
mov dword [ebp - 0x10c], eax
mov dword [ebp - 4], 0
jmp 0x41215e
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0x14
jg 0x4123f4
push str.Update::loop_times
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov ecx, dword [ebp - 0x10c]
sub ecx, 1
mov dword [ebp - 0x1a4], ecx
jmp 0x412193
mov edx, dword [ebp - 0x1a4]
sub edx, 1
mov dword [ebp - 0x1a4], edx
cmp dword [ebp - 0x1a4], 0
jl 0x4123c5
xor eax, eax
mov al, byte [0x4331a0]
test eax, eax
jne 0x4121b0
jmp 0x412441
mov ecx, dword [ebp - 0x1a4]
push ecx
lea edx, [ebp - 0x8a0]
push edx
mov ecx, dword [ebp - 0x8a4]
add ecx, 4
call fcn.00418a50
mov esi, eax
mov ecx, 0x23
lea edi, [ebp - 0x1a0]
rep movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x1a0]
push eax
mov ecx, dword [ebp + 8]
push ecx
push 0x4340e8
lea edx, [ebp - 0x108]
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x10
lea eax, [ebp - 0x1a0]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
push 0x4340f0
lea edx, [ebp - 0x3ac]
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x10
lea eax, [ebp - 0x1a0]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
push 0x4340f8
lea edx, [ebp - 0x2a8]
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x10
lea eax, [ebp - 0x2a8]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x412251
jmp 0x412184
push 0
lea ecx, [ebp - 0x3ac]
push ecx
lea edx, [ebp - 0x108]
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
mov dword [ebp - 0x110], eax
mov eax, dword [ebp - 0x8a4]
cmp dword [eax + 0x34], 1
jne 0x412313
cmp dword [ebp - 0x118], 5
je 0x412313
lea ecx, [ebp - 0x108]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x412313
lea edx, [ebp - 0x2a8]
push edx
lea eax, [ebp - 0x108]
push eax
call fcn.00406dc2
add esp, 8
mov dword [ebp - 0x110], eax
cmp dword [ebp - 0x110], 0
jne 0x4122f7
lea ecx, [ebp - 0x2a8]
push ecx
push 0x434100
push 0x43411c
lea edx, [ebp - 0x6e8]
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x10
push 0
lea eax, [ebp - 0x6e8]
push eax
call fcn.00410257
add esp, 8
jmp 0x41243f
push 1
mov ecx, dword [ebp - 0x1a4]
push ecx
mov ecx, dword [ebp - 0x8a4]
add ecx, 4
call fcn.00418ac0
jmp 0x412184
push 0x80
lea edx, [ebp - 0x108]
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
push 0
lea eax, [ebp - 0x108]
push eax
lea ecx, [ebp - 0x2a8]
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
mov dword [ebp - 0x110], eax
cmp dword [ebp - 0x110], 0
je 0x412361
push 1
mov edx, dword [ebp - 0x1a4]
push edx
mov ecx, dword [ebp - 0x8a4]
add ecx, 4
call fcn.00418ac0
cmp dword [ebp - 4], 0x14
jne 0x4123c0
lea eax, [ebp - 0x2a8]
push eax
lea ecx, [ebp - 0x108]
push ecx
call fcn.00406dc2
add esp, 8
mov dword [ebp - 0x110], eax
cmp dword [ebp - 0x110], 0
jne 0x4123c0
lea edx, [ebp - 0x2a8]
push edx
push str.Cant_ProcessSharingFile:
push 0x434140
lea eax, [ebp - 0x814]
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x10
push 0
lea ecx, [ebp - 0x814]
push ecx
call fcn.00410257
add esp, 8
jmp 0x41243d
jmp 0x412184
mov ecx, dword [ebp - 0x8a4]
add ecx, 4
call fcn.00418a10
mov dword [ebp - 0x10c], eax
cmp dword [ebp - 0x10c], 0
jne 0x4123e4
jmp 0x4123f4
push 0xc8
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x412155
mov dword [ebp - 0x3b4], 1
mov ecx, dword [ebp - 0x8a4]
add ecx, 4
call fcn.00418a30
cmp dword [ebp - 0x3b4], 0
jne 0x412426
push 0
push str.Backup_and_Update_Local_Files_Failed.
call fcn.00410257
add esp, 8
jmp 0x412435
push 0
push str.Backup_and_Update_Files_Success.
call fcn.00410257
add esp, 8
mov eax, dword [ebp - 0x3b4]
jmp 0x41244b
jmp 0x4123fe
jmp 0x4123fe
jmp 0x4123fe
jmp 0x4123fe
jmp 0x4123fe
jmp 0x4123fe
jmp 0x4123fe
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10