Function at 0x1002157b
Capabilities:
Copy file
Move file

Disassembly:
push 0x798
mov eax, 0x100ebeb4
call fcn.100c74e5
mov eax, dword [ebp + 8]
mov dword [ebp - 0x794], eax
push 0x80
lea eax, [ebp - 0x130]
push eax
mov esi, str.revision
push esi
push str.Update
call fcn.100399f9
add esp, 0x10
xor edi, edi
test eax, eax
je 0x10021807
xor eax, eax
push 0x626
mov word [ebp - 0x758], ax
lea eax, [ebp - 0x756]
push edi
push eax
call fcn.100c1480
add esp, 0xc
push 0x30c
lea eax, [ebp - 0x758]
push eax
push str.DataDir
mov ebx, str.Prefs
push ebx
call fcn.100399f9
add esp, 0x10
test eax, eax
je 0x10021807
push 1
lea eax, [ebp - 0x130]
push eax
push esi
push ebx
call fcn.10039999
add esp, 0x10
lea eax, [ebp - 0x758]
push eax
lea eax, [ebp - 0x774]
call fcn.10008945
push str.config.xml
lea eax, [ebp - 0x774]
push eax
mov dword [ebp - 4], edi
call fcn.10014c04
lea eax, [ebp - 0x758]
push eax
lea eax, [ebp - 0x790]
call fcn.10008945
push str.almost.xml
lea eax, [ebp - 0x790]
push eax
mov byte [ebp - 4], 1
call fcn.10014c04
cmp dword [ebp - 0x778], 8
mov ecx, dword [ebp - 0x78c]
jae 0x10021676
lea ecx, [ebp - 0x78c]
push 1
push edi
push edi
push edi
call fcn.10023ad0
add esp, 0x10
test eax, eax
jne 0x100216f0
lea eax, [ebp - 0x130]
push eax
mov ecx, esi
call fcn.1004e861
cmp dword [ebp - 0x75c], 8
pop ecx
mov ecx, dword [ebp - 0x770]
jae 0x100216ab
lea ecx, [ebp - 0x770]
cmp dword [ebp - 0x778], 8
mov eax, dword [ebp - 0x78c]
jae 0x100216c0
lea eax, [ebp - 0x78c]
push 9
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
cmp dword [ebp - 0x75c], 8
mov eax, dword [ebp - 0x770]
jae 0x100216df
lea eax, [ebp - 0x770]
mov ebx, dword [ebp - 0x794]
push eax
call fcn.10021421
jmp 0x100217e7
push 0x10
lea eax, [ebp - 0x30]
push eax
mov dword [ebp - 0x798], edi
mov edi, str.RetryCounter
push edi
push str.Update
call fcn.100399f9
add esp, 0x10
test eax, eax
je 0x1002171f
lea eax, [ebp - 0x30]
push eax
call fcn.100c25e7
pop ecx
jmp 0x10021725
mov eax, dword [ebp - 0x798]
inc eax
cmp eax, 5
jl 0x100217c2
push 0
push str.0_____
push edi
push ebx
call fcn.10039999
lea eax, [ebp - 0x130]
push eax
mov ecx, esi
call fcn.1004e861
mov eax, dword [ebp - 0x770]
add esp, 0x14
push 8
pop esi
cmp dword [ebp - 0x75c], esi
jae 0x10021765
lea eax, [ebp - 0x770]
push eax
call fcn.1002d22b
pop ecx
test eax, eax
jne 0x100217a0
mov ecx, dword [ebp - 0x770]
cmp dword [ebp - 0x75c], esi
jae 0x10021784
lea ecx, [ebp - 0x770]
mov eax, dword [0x10136510]
cmp dword [0x10136524], esi
jae 0x10021796
mov eax, 0x10136510
push 0
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov eax, dword [ebp - 0x770]
cmp dword [ebp - 0x75c], esi
jae 0x100217b4
lea eax, [ebp - 0x770]
mov ebx, dword [ebp - 0x794]
push eax
call fcn.10021421
jmp 0x100217e5
push eax
lea eax, [ebp - 0x30]
push 0x10108bfc
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push 1
lea eax, [ebp - 0x30]
push eax
push edi
push ebx
call fcn.10039999
add esp, 0x10
xor edi, edi
push edi
push 1
lea esi, [ebp - 0x790]
call fcn.100016e6
or dword [ebp - 4], 0xffffffff
push edi
push 1
lea esi, [ebp - 0x774]
call fcn.100016e6
mov eax, dword [ebp - 0x794]
mov dword [0x10136628], edi
push dword [eax + 4]
mov dword [ebp - 0x7a0], edi
mov dword [ebp - 0x79c], edi
sub esp, 0xc
mov edi, esp
mov dword [ebp - 0x7a4], 0x88
lea esi, [ebp - 0x7a4]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 0x101365a0
movsd dword es:[edi], dword [esi]
call fcn.10039bc6
xor eax, eax
call fcn.100c7568
ret 4