Function at 0x40f81f
Capabilities:
Delete directory
Delete file
Move file

Disassembly:
push 0x94
mov eax, 0x449958
call fcn.00431dc6
mov edi, ecx
mov ecx, dword [edi + 0x84]
call fcn.0040fed7
test eax, eax
jne 0x40f899
mov eax, dword [edi + 0x84]
cmp dword [eax + 8], 0
jne 0x40f874
cmp dword [eax + 0x24], 8
jb 0x40f856
mov eax, dword [eax + 0x10]
jmp 0x40f859
add eax, 0x10
mov esi, dword [edi + 0x68]
push eax
push str.check_download_information_failed_and_re_download__s_.
push 2
call fcn.00409217
add esp, 0xc
push 2
pop eax
jmp 0x40fe27
cmp dword [eax + 0x24], 8
jb 0x40f87f
mov eax, dword [eax + 0x10]
jmp 0x40f882
add eax, 0x10
mov esi, dword [edi + 0x68]
push eax
push str.check_download_information_failed__s_.
push 2
call fcn.00409217
add esp, 0xc
push 3
jmp 0x40f86e
mov eax, dword [edi + 0x24]
xor ebx, ebx
sub eax, ebx
je 0x40fd3a
dec eax
je 0x40fc04
dec eax
je 0x40f9e5
dec eax
jne 0x40fdd5
mov ecx, dword [edi + 0x68]
mov eax, dword [ecx]
call dword [eax + 0x90]
lea ecx, [ebp - 0x80]
call fcn.00401c6e
push 0xffffffffffffffff
push ebx
lea eax, [edi + 8]
lea esi, [ebp - 0x80]
mov dword [ebp - 4], 8
call fcn.00401fe4
cmp dword [ebp - 0x68], 8
mov eax, dword [ebp - 0x7c]
jae 0x40f8ef
lea eax, [ebp - 0x7c]
push 0x5c
push eax
mov dword [ebp - 0x84], eax
call fcn.0042d23b
pop ecx
mov esi, eax
cmp esi, ebx
pop ecx
push 0x2f
je 0x40f915
push esi
call fcn.0042d23b
cmp eax, ebx
pop ecx
pop ecx
je 0x40f924
jmp 0x40f922
push dword [ebp - 0x84]
call fcn.0042d23b
pop ecx
pop ecx
mov esi, eax
cmp esi, ebx
jne 0x40f933
xor edi, edi
inc edi
lea esi, [ebp - 0x80]
jmp 0x40fc77
and dword [ebp - 0x34], 0
and word [ebp - 0x44], 0
mov dword [ebp - 0x30], 7
push dword [ebp - 0x84]
mov ebx, esi
sub ebx, dword [ebp - 0x84]
lea eax, [ebp - 0x48]
sar ebx, 1
inc ebx
mov byte [ebp - 4], 9
call fcn.00401cd1
cmp dword [ebp - 0x30], 8
mov eax, dword [ebp - 0x44]
jae 0x40f96c
lea eax, [ebp - 0x44]
mov ecx, dword [edi + 0x84]
mov ecx, dword [ecx + 0x9c]
push eax
mov eax, dword [ecx]
call dword [eax]
push eax
mov eax, dword [edi + 0x68]
call fcn.0040677f
test eax, eax
jne 0x40f9cf
cmp dword [ebp - 0x30], 8
mov eax, dword [ebp - 0x44]
jae 0x40f996
lea eax, [ebp - 0x44]
mov ecx, dword [edi + 0x84]
mov ecx, dword [ecx + 0x9c]
push eax
mov eax, dword [ecx]
call dword [eax]
mov esi, dword [edi + 0x68]
push eax
push str.unzip_7z___s_to__s_failed.
push 2
call fcn.00409217
add esp, 0x10
xor ebx, ebx
push ebx
push 1
lea esi, [ebp - 0x48]
call fcn.004022b6
push 4
pop edi
jmp 0x40f92b
push 0
push 1
lea esi, [ebp - 0x48]
call fcn.004022b6
push 0
lea esi, [ebp - 0x80]
jmp 0x40fdca
push 7
pop eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x34], ebx
mov word [ebp - 0x44], bx
mov dword [ebp - 4], 3
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], ebx
mov word [ebp - 0x28], bx
mov byte [ebp - 4], 4
mov eax, dword [edi + 0x84]
cmp dword [eax + 4], ebx
je 0x40fb1b
mov dword [ebp - 0x68], 7
mov dword [ebp - 0x6c], ebx
mov word [ebp - 0x7c], bx
push 1
add eax, 0xc
push eax
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 5
call fcn.004107c1
mov eax, dword [edi + 0x68]
call fcn.004081e1
lea esi, [ebp - 0x2c]
call fcn.0040210f
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x80]
call fcn.00401fe4
cmp dword [ebp - 0x14], 8
mov eax, dword [ebp - 0x28]
jae 0x40fa5d
lea eax, [ebp - 0x28]
mov ecx, dword [edi + 0x84]
mov ecx, dword [ecx + 0x9c]
push eax
mov eax, dword [ecx]
call dword [eax]
push eax
mov eax, dword [edi + 0x68]
call fcn.0040677f
test eax, eax
jne 0x40facc
cmp dword [ebp - 0x14], 8
mov eax, dword [ebp - 0x28]
jae 0x40fa87
lea eax, [ebp - 0x28]
mov ecx, dword [edi + 0x84]
mov ecx, dword [ecx + 0x9c]
push eax
mov eax, dword [ecx]
call dword [eax]
mov esi, dword [edi + 0x68]
push eax
push str.unzip_7z__s_to__s_failed.
push 2
call fcn.00409217
add esp, 0x10
push ebx
push 1
lea esi, [ebp - 0x80]
call fcn.004022b6
push 4
pop edi
push ebx
push 1
lea esi, [ebp - 0x2c]
call fcn.004022b6
lea esi, [ebp - 0x48]
jmp 0x40fc77
mov eax, dword [edi + 0x84]
add eax, 0x80
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0xa0]
push eax
call fcn.00409ee6
add esp, 0xc
push 0xffffffffffffffff
lea ecx, [ebp - 0x48]
push ecx
xor ebx, ebx
mov byte [ebp - 4], 6
call fcn.00402089
push ebx
push 1
lea esi, [ebp - 0xa0]
call fcn.004022b6
push ebx
push 1
lea esi, [ebp - 0x80]
mov byte [ebp - 4], 4
call fcn.004022b6
jmp 0x40fb2d
mov ecx, dword [eax + 0x9c]
mov eax, dword [ecx]
call dword [eax]
lea esi, [ebp - 0x48]
call fcn.0040210f
mov ecx, dword [edi + 0x68]
mov eax, dword [ecx]
call dword [eax + 0x90]
lea ecx, [ebp - 0x64]
call fcn.00401c6e
push 0xffffffffffffffff
push ebx
lea eax, [edi + 8]
lea esi, [ebp - 0x64]
mov byte [ebp - 4], 7
call fcn.00401fe4
cmp dword [ebp - 0x30], 8
mov eax, dword [ebp - 0x44]
jae 0x40fb5e
lea eax, [ebp - 0x44]
mov edx, dword [ebp - 0x60]
push 8
pop esi
cmp dword [ebp - 0x4c], esi
jae 0x40fb6c
lea edx, [ebp - 0x60]
mov ecx, dword [edi + 0x84]
push dword [ecx]
mov ecx, dword [edi + 0x68]
push eax
call fcn.004067d3
test eax, eax
jne 0x40fbbd
cmp dword [ebp - 0x4c], esi
mov ecx, dword [ebp - 0x60]
jae 0x40fb8c
lea ecx, [ebp - 0x60]
cmp dword [ebp - 0x30], esi
mov eax, dword [ebp - 0x44]
jae 0x40fb97
lea eax, [ebp - 0x44]
mov esi, dword [edi + 0x68]
push ecx
push eax
push str.merge_package__s_to__s_failed.
push 2
call fcn.00409217
add esp, 0x10
push ebx
push 1
lea esi, [ebp - 0x64]
call fcn.004022b6
push 5
jmp 0x40fab8
cmp dword [ebp - 0x18], ebx
je 0x40fbe6
cmp dword [ebp - 0x30], esi
mov eax, dword [ebp - 0x44]
jae 0x40fbcd
lea eax, [ebp - 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp dword [ebp - 0x14], esi
mov eax, dword [ebp - 0x28]
jae 0x40fbdf
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
push ebx
push 1
lea esi, [ebp - 0x64]
call fcn.004022b6
push ebx
push 1
lea esi, [ebp - 0x2c]
call fcn.004022b6
lea esi, [ebp - 0x48]
jmp 0x40fdc9
mov ecx, dword [edi + 0x68]
mov eax, dword [ecx]
call dword [eax + 0x90]
lea ecx, [ebp - 0x64]
call fcn.00401c6e
push 0xffffffffffffffff
push ebx
lea eax, [edi + 8]
lea esi, [ebp - 0x64]
mov dword [ebp - 4], 1
call fcn.00401fe4
cmp dword [ebp - 0x4c], 8
mov eax, dword [ebp - 0x60]
jae 0x40fc38
lea eax, [ebp - 0x60]
push 0x5c
push eax
mov dword [ebp - 0x84], eax
call fcn.0042d23b
pop ecx
mov esi, eax
cmp esi, ebx
pop ecx
push 0x2f
je 0x40fc5e
push esi
call fcn.0042d23b
cmp eax, ebx
pop ecx
pop ecx
je 0x40fc6d
jmp 0x40fc6b
push dword [ebp - 0x84]
call fcn.0042d23b
pop ecx
pop ecx
mov esi, eax
cmp esi, ebx
jne 0x40fc86
xor edi, edi
inc edi
lea esi, [ebp - 0x64]
push ebx
push 1
call fcn.004022b6
mov eax, edi
jmp 0x40fe27
and dword [ebp - 0x18], 0
and word [ebp - 0x28], 0
mov dword [ebp - 0x14], 7
push dword [ebp - 0x84]
mov ebx, esi
sub ebx, dword [ebp - 0x84]
lea eax, [ebp - 0x2c]
sar ebx, 1
inc ebx
mov byte [ebp - 4], 2
call fcn.00401cd1
cmp dword [ebp - 0x14], 8
mov esi, dword [ebp - 0x28]
jae 0x40fcbf
lea esi, [ebp - 0x28]
mov eax, dword [edi + 0x84]
mov ecx, dword [eax + 0x9c]
mov eax, dword [ecx]
call dword [eax]
push dword [edi + 0x68]
mov edx, esi
mov ecx, eax
call fcn.004063f2
test eax, eax
jne 0x40fd24
cmp dword [ebp - 0x14], 8
mov eax, dword [ebp - 0x28]
jae 0x40fceb
lea eax, [ebp - 0x28]
mov ecx, dword [edi + 0x84]
mov ecx, dword [ecx + 0x9c]
push eax
mov eax, dword [ecx]
call dword [eax]
mov esi, dword [edi + 0x68]
push eax
push str.unzip__s_to__s_failed.
push 2
call fcn.00409217
add esp, 0x10
xor ebx, ebx
push ebx
push 1
lea esi, [ebp - 0x2c]
call fcn.004022b6
push 4
pop edi
jmp 0x40fc74
push 0
push 1
lea esi, [ebp - 0x2c]
call fcn.004022b6
push 0
lea esi, [ebp - 0x64]
jmp 0x40fdca
mov ecx, dword [edi + 0x68]
mov eax, dword [ecx]
call dword [eax + 0x90]
lea ecx, [ebp - 0x64]
call fcn.00401c6e
push 0xffffffffffffffff
push ebx
lea eax, [edi + 8]
lea esi, [ebp - 0x64]
mov dword [ebp - 4], ebx
call fcn.00401fe4
cmp dword [ebp - 0x4c], 8
mov eax, dword [ebp - 0x60]
jae 0x40fd6a
lea eax, [ebp - 0x60]
mov ecx, dword [edi + 0x84]
mov ecx, dword [ecx + 0x9c]
push eax
mov eax, dword [ecx]
call dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
jne 0x40fdc6
cmp dword [ebp - 0x4c], 8
mov eax, dword [ebp - 0x60]
jae 0x40fd92
lea eax, [ebp - 0x60]
mov ecx, dword [edi + 0x84]
mov ecx, dword [ecx + 0x9c]
push eax
mov eax, dword [ecx]
call dword [eax]
mov esi, dword [edi + 0x68]
push eax
push str.move_file__s_to__s_failed.
push 2
call fcn.00409217
add esp, 0x10
push ebx
push 1
lea esi, [ebp - 0x64]
call fcn.004022b6
xor eax, eax
inc eax
jmp 0x40fe27
lea esi, [ebp - 0x64]
push ebx
or dword [ebp - 4], 0xffffffff
push 1
call fcn.004022b6
mov eax, dword [edi + 0x84]
add eax, 0x64
cmp dword [eax + 0x18], 0x10
jb 0x40fde9
mov eax, dword [eax + 4]
jmp 0x40fdec
add eax, 4
mov ebx, eax
mov ecx, edi
call fcn.0040f3fe
test eax, eax
jne 0x40fe25
mov eax, dword [edi + 0x84]
add eax, 0x64
cmp dword [eax + 0x18], 0x10
jb 0x40fe0d
mov eax, dword [eax + 4]
jmp 0x40fe10
add eax, 4
mov esi, dword [edi + 0x68]
push eax
push str.save_current_version__s__failed.
push 2
call fcn.00409217
add esp, 0xc
jmp 0x40fdc1
xor eax, eax
call fcn.00431e49
ret