Function at 0x416780
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x432b80
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, 0x207c
call fcn.004223a0
mov ecx, dword [esp + 0x207c]
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], ebx
mov eax, dword [ecx]
mov dword [ebp - 0x14], ecx
call dword [eax + 0x74]
movzx eax, al
test eax, eax
je 0x4168bd
lea edi, [ebp - 0x6a8]
xor eax, eax
mov ecx, 0x200
and eax, 0xffff
mov ah, al
mov esi, ecx
mov edx, eax
shl eax, 0x10
shr ecx, 2
or eax, edx
rep stosd dword es:[edi], eax
mov ecx, esi
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x4a8]
push 0x200
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea edx, [ebp - 0x6a8]
lea eax, [ebp - 0x4a8]
push eax
push str.A_previous_version_of__s_is_already_installed._This_version_must_be_nuninstalled_before_the_installation_can_continue._n_nPress_Ok_to_uninstall_the_previous_version_or_Cancel_to_abort_the_installation.
push edx
call fcn.00420ee0
add esp, 0xc
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x6a8]
push 0
mov edx, dword [ecx]
push eax
call dword [edx + 0x64]
test eax, eax
jne 0x416861
mov edx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x18]
mov eax, 0xffffffff
mov dword [edx + 0x248], 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx]
call dword [eax + 0x78]
movzx eax, al
test eax, eax
je 0x41687f
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx]
call dword [eax + 0x74]
movzx eax, al
test eax, eax
je 0x4168bd
mov ecx, dword [ebp + 8]
push 0
mov eax, dword [ecx]
push str.The_previous_version_was_not_uninstalled_properly._nPress_Ok_to_continue_this_installation_or_Cancel_to_abort.
call dword [eax + 0x64]
test eax, eax
jne 0x4168bd
mov edx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x18]
mov eax, 0xffffffff
mov dword [edx + 0x248], 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x2a0]
push 0x200
mov edx, dword [ecx]
push eax
call dword [edx + 0x2c]
test eax, eax
je 0x4168f3
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x18]
mov eax, 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp - 0x14]
lea edx, [ebp - 0x2a0]
push 0
lea ecx, [eax + 0x224]
mov ebx, dword [ecx]
mov dword [ebp - 0x2c], ecx
push edx
call dword [ebx + 4]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x14]
mov dword [eax + 0xc], 0
mov ebx, dword [ecx]
lea edx, [ebp - 0xdd4]
push 0x200
push edx
call dword [ebx + 0x2c]
test eax, eax
je 0x416955
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ecx]
call dword [eax + 8]
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x18]
mov eax, 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8
lea ecx, [ebp - 0x1010]
call fcn.00409b50
mov dword [ebp - 0x38], 1
xor eax, eax
mov dword [ebp - 0xeec], eax
mov dword [ebp - 0xee8], eax
mov dword [ebp - 4], 0
mov edx, dword [ebp - 0x1010]
mov dword [ebp - 0xeec], 2
lea eax, [ebp - 0xdd4]
push 3
push 0
lea ecx, [ebp - 0x1010]
push 0x40000000
push eax
call dword [edx + 0x48]
test eax, eax
je 0x4169b5
mov dword [ebp - 0xee8], 1
jmp 0x4169d6
mov edx, dword [ebp - 0x1010]
mov dword [ebp - 0x78], 0
lea eax, [ebp - 0x78]
push eax
push 0x27
lea ecx, [ebp - 0x1010]
push str.Chaos_Software_installer_backup_file._n
call dword [edx + 0x10]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x1738]
push 0x200
mov edx, dword [ecx]
push eax
call dword [edx + 0x28]
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 0x1738]
push eax
push 0x434f98
push edx
call fcn.0040979c
add esp, 0xc
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x1538]
push 0x200
mov edx, dword [ecx]
push eax
call dword [edx + 0x20]
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 0x1538]
push eax
push 0x434f98
push edx
call fcn.0040979c
add esp, 0xc
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x14]
push eax
call fcn.004185b4
mov eax, dword [ebp - 0x14]
lea ecx, [eax + 0x1c0]
mov edx, dword [ecx]
mov dword [ebp - 0x28], ecx
call dword [edx + 8]
test eax, eax
jle 0x417f1b
xor eax, eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
imul esi, eax, 0x418
mov ecx, 0x418
mov edx, dword [ebp - 0x28]
add esi, dword [edx + 4]
lea edi, [ebp - 0xbcc]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
movsx eax, byte [ebp - 0xbc8]
test eax, eax
je 0x416ae9
movsx eax, byte [ebp - 0x8b6]
test eax, eax
je 0x416aac
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x8b6]
push eax
call fcn.00417f28
test eax, eax
je 0x416ae9
imul edx, dword [ebp - 0xbcc], 0x264
mov eax, dword [ebp - 0x14]
mov ebx, dword [eax + 0x1b0]
movsx ecx, byte [ebx + edx + 0x164]
test ecx, ecx
je 0x416b05
imul eax, dword [ebp - 0xbcc], 0x264
lea edx, [eax + ebx + 0x164]
mov ecx, dword [ebp - 0x14]
push edx
call fcn.00417f28
test eax, eax
jne 0x416b05
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx]
add dword [ebp - 0x24], 1
call dword [eax + 8]
mov edx, dword [ebp - 0x24]
cmp edx, eax
jl 0x416a5b
jmp 0x41733c
mov ecx, dword [ebp - 0x14]
lea edx, [ebp - 0xbc8]
lea eax, [ebp - 0xee4]
push pe_nt_image_headers32
push eax
push edx
call fcn.0041a124
test eax, eax
je 0x416b2c
mov eax, 1
mov dword [ebp - 0x34], eax
lea edi, [ebp - 0xee4]
mov edx, 0x435484
mov ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
add edi, 0xffffffff
mov al, byte [edx]
add edx, 1
mov byte [edi], al
add edi, 1
test al, al
jne 0x416b43
lea eax, [ebp - 0xee4]
push eax
call fcn.00430f00
pop ecx
mov dword [ebp - 0x3c], 0
lea eax, [ebp - 0xee4]
add esp, 0xfffffff8
lea edx, [ebp - 0x3c]
call fcn.0041839c
add esp, 8
test eax, eax
je 0x416b85
mov eax, 1
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x3c]
test eax, eax
jle 0x416bb4
mov ecx, dword [ebp - 0x2c]
lea eax, [ebp - 0xee4]
push eax
mov edx, 9
push edx
push dword [ebp - 0x3c]
push edx
push dword [0x4380a8]
push str._s_c_d_c_s
push ecx
call fcn.0040979c
add esp, 0x1c
lea ecx, [ebp - 0x7a8]
lea edx, [ebp - 0xee4]
lea eax, [ebp - 0x9c0]
push eax
push edx
push str._s_s
push ecx
call fcn.00420ee0
lea eax, [ebp - 0x7a8]
push eax
call fcn.00430f00
add esp, 0x14
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x7a8]
push eax
mov edx, dword [ecx]
call dword [edx + 0x58]
mov ecx, dword [ebp - 0x14]
lea ebx, [ebp - 0xac4]
lea edx, [ebp - 0x48]
lea eax, [ebp - 0x44]
push eax
push edx
push ebx
call fcn.00418474
test eax, eax
je 0x416c14
mov eax, 1
mov dword [ebp - 0x34], eax
lea ecx, [ebp - 0x1338]
call fcn.00409b50
mov dword [ebp - 0x4c], 1
mov dword [ebp - 4], 1
lea eax, [ebp - 0x7a8]
push 0
push 1
push 0x80000000
push eax
lea ecx, [ebp - 0x1338]
call fcn.00409cc0
test eax, eax
je 0x416c53
xor eax, eax
mov dword [ebp - 0x30], eax
jmp 0x416c66
lea ecx, [ebp - 0x1338]
call fcn.00409898
mov eax, 1
mov dword [ebp - 0x30], eax
test eax, eax
jne 0x416f45
mov ecx, dword [str.CREATE]
lea eax, [ebp - 0x7a8]
push eax
mov edx, 9
push edx
push ecx
mov ecx, dword [ebp - 0x2c]
push edx
push dword [0x4380ac]
push str._s_c_s_c_s
push ecx
call fcn.0040979c
add esp, 0x1c
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx]
call dword [eax + 8]
mov edx, eax
mov ecx, dword [ebp + 8]
lea esi, [ebp - 0xac4]
lea ebx, [ebp - 0x9c0]
push edx
mov eax, dword [ecx]
mov edx, dword [ebp - 0x24]
push edx
push ebx
push esi
call dword [eax + 0x5c]
test eax, eax
jne 0x4178e0
movzx eax, byte [ebp - 0x8b8]
test eax, eax
je 0x416d34
mov eax, dword [ebp - 0x8bc]
cmp eax, 0x200
jge 0x416d34
push 0x200
call fcn.0042098b
pop ecx
mov ebx, eax
mov esi, dword [ebp - 0x44]
mov edx, dword [ebp - 0x8bc]
mov ecx, dword [ebp - 0x14]
push 0x200
mov byte [edx + esi], 0
push ebx
push dword [ebp - 0x44]
call fcn.0041a124
push dword [ebp - 0x44]
call fcn.00420980
pop ecx
mov dword [ebp - 0x44], ebx
mov ecx, ebx
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x416d31
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x416d1a
add eax, 0xffffffff
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x7a8]
push 0
push eax
lea ecx, [ebp - 0x1338]
call fcn.00409b84
test eax, eax
je 0x416d5b
mov eax, 1
mov dword [ebp - 0x34], eax
mov ebx, 1
jmp 0x416da3
lea eax, [ebp - 0x70]
push eax
lea ecx, [ebp - 0x1338]
push dword [ebp - 0x48]
push dword [ebp - 0x44]
call fcn.00409ce8
test eax, eax
jne 0x416d80
mov eax, dword [ebp - 0x70]
cmp eax, dword [ebp - 0x48]
jne 0x416d80
xor ebx, ebx
jmp 0x416d98
lea ecx, [ebp - 0x1338]
call fcn.00409898
mov eax, 1
mov dword [ebp - 0x34], eax
mov ebx, 1
lea ecx, [ebp - 0x1338]
call fcn.00409898
push dword [ebp - 0x44]
call fcn.00420980
pop ecx
mov eax, dword [ebp - 0x34]
test eax, eax
jne 0x416dcc
mov ecx, dword [ebp - 0x14]
lea edx, [ebp - 0x7a8]
lea eax, [ebp - 0xbcc]
push eax
mov esi, dword [ecx]
push edx
call dword [esi + 0xa8]
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx]
call dword [eax + 8]
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp + 8]
mov esi, dword [ecx]
mov dword [ebp - 0x5c], edx
fild dword [ebp - 0x5c]
mov dword [ebp - 0x5c], eax
fild dword [ebp - 0x5c]
fdivp st(1)
fmul dword [0x434fc4]
fnstcw word [ebp - 0x208c]
movzx eax, word [ebp - 0x208c]
or eax, 0xc00
mov dword [ebp - 0x2084], eax
fldcw word [ebp - 0x2084]
fistp dword [ebp - 0x64]
fldcw word [ebp - 0x208c]
mov eax, dword [ebp - 0x64]
push eax
call dword [esi + 0x50]
lea edi, [ebp - 0x1210]
xor eax, eax
mov ecx, 0x200
and eax, 0xffff
mov ah, al
mov esi, ecx
mov edx, eax
shl eax, 0x10
shr ecx, 2
or eax, edx
rep stosd dword es:[edi], eax
mov ecx, esi
and ecx, 3
rep stosb byte es:[edi], al
test ebx, ebx
jne 0x416ed3
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x416e60
mov eax, str.Overwrite
mov dword [ebp - 0x30], eax
jmp 0x416e68
mov eax, str.Create
mov dword [ebp - 0x30], eax
xor ecx, ecx
lea edx, [ebp - 0x1210]
lea edx, [edx + ecx]
movsx eax, byte [edx]
test eax, eax
je 0x4176d9
lea edx, [ebp - 0x1210]
add ecx, 1
lea edx, [edx + ecx]
movsx eax, byte [edx]
test eax, eax
je 0x4176d9
lea edx, [ebp - 0x1210]
add ecx, 1
lea edx, [edx + ecx]
movsx eax, byte [edx]
test eax, eax
je 0x4176d9
lea edx, [ebp - 0x1210]
add ecx, 1
lea edx, [edx + ecx]
movsx eax, byte [edx]
test eax, eax
je 0x4176d9
add ecx, 1
cmp ecx, 0x200
jl 0x416e6a
jmp 0x4176d0
xor eax, eax
movsx edx, byte [eax + str.FAILED_to]
test edx, edx
je 0x41794f
mov byte [ebp + eax - 0x1210], dl
add eax, 1
movsx edx, byte [eax + str.FAILED_to]
test edx, edx
je 0x41794f
mov byte [ebp + eax - 0x1210], dl
add eax, 1
movsx edx, byte [eax + str.FAILED_to]
test edx, edx
je 0x41794f
mov byte [ebp + eax - 0x1210], dl
add eax, 1
movsx edx, byte [eax + str.FAILED_to]
test edx, edx
je 0x41794f
mov byte [ebp + eax - 0x1210], dl
add eax, 1
cmp eax, 0x1fc
jl 0x416ed5
jmp 0x417910
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x6c], ecx
lea eax, [ebp - 0x6c]
add esp, 0xfffffff4
call fcn.004166c4
add esp, 0xc
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
xor eax, eax
push eax
push eax
push eax
push eax
call dword [edx + 0x5c]
mov ebx, dword [ebp - 0x6c]
mov esi, dword [ebp - 0xeec]
mov dword [ebp - 0x90], pe_nt_image_headers32
cmp esi, 2
lea eax, [ebp - 0x1010]
mov dword [ebp - 0x9c], eax
lea edx, [ebp - 0x40]
mov dword [ebp - 0x98], edx
lea ecx, [ebp - 0x7a8]
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x8c], ebx
jne 0x4170c6
mov eax, dword [ebp - 0xee8]
test eax, eax
jne 0x417ebc
push 0x434904
lea eax, [ebp - 0x7a8]
push eax
call fcn.00420d06
mov dword [ebp - 0x74], eax
add esp, 8
test eax, eax
je 0x417eb5
lea edx, [ebp - 0x1d5c]
push eax
push 0x200
push edx
call fcn.00421a67
add esp, 0xc
test eax, eax
je 0x417eb5
lea eax, [ebp - 0x1d5c]
push 0x26
push str.Chaos_Software_installer_backup_file._n
push eax
call fcn.00420e20
mov edx, dword [ebp - 0x74]
push edx
mov ebx, eax
call fcn.00420d67
add esp, 0x10
xor edx, edx
test ebx, ebx
sete dl
test edx, edx
jne 0x417ea4
mov ecx, dword [ebp - 0x9c]
mov eax, dword [ecx]
mov dword [ebp - 0x84], 0
call dword [eax + 0x3c]
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x80], edx
mov eax, dword [ebp - 0x94]
mov edx, dword [ebp - 0x90]
mov dword [ebp - 0x50], eax
test edx, edx
mov dword [ebp - 0x74], edx
jle 0x417e9d
mov eax, edx
cmp eax, 6
jl 0x417e96
xor eax, eax
mov edx, dword [ebp - 0x50]
movsx ecx, byte [edx + eax]
test ecx, ecx
je 0x417971
add eax, 1
movsx ecx, byte [edx + eax]
test ecx, ecx
je 0x417971
add eax, 1
movsx ecx, byte [edx + eax]
test ecx, ecx
je 0x417971
add eax, 1
movsx ecx, byte [edx + eax]
test ecx, ecx
je 0x417971
add eax, 1
movsx ecx, byte [edx + eax]
test ecx, ecx
je 0x417971
mov edx, dword [ebp - 0x74]
add eax, 1
lea ecx, [edx - 6]
cmp eax, ecx
jle 0x417069
jmp 0x41795c
push str.Not_in_write_mode
push 0xffffffffffffffff
push str.BackupFile::addFile
push dword [ebp - 0x98]
call fcn.00431268
add esp, 0x10
mov dword [ebp - 4], 6
mov eax, dword [ebp - 0x40]
test eax, eax
jne 0x417edb
xor eax, eax
movsx edx, byte [eax + str.Back_up]
test edx, edx
je 0x417192
mov byte [ebp + eax - 0x1b5c], dl
add eax, 1
movsx edx, byte [eax + str.Back_up]
test edx, edx
je 0x417192
mov byte [ebp + eax - 0x1b5c], dl
add eax, 1
movsx edx, byte [eax + str.Back_up]
test edx, edx
je 0x417192
mov byte [ebp + eax - 0x1b5c], dl
add eax, 1
movsx edx, byte [eax + str.Back_up]
test edx, edx
je 0x417192
mov byte [ebp + eax - 0x1b5c], dl
add eax, 1
cmp eax, 0x1fc
jl 0x4170f4
movsx edx, byte [eax + str.Back_up]
test edx, edx
je 0x417192
mov byte [ebp + eax - 0x1b5c], dl
add eax, 1
movsx edx, byte [eax + str.Back_up]
test edx, edx
je 0x417192
mov byte [ebp + eax - 0x1b5c], dl
add eax, 1
movsx edx, byte [eax + str.Back_up]
test edx, edx
je 0x417192
mov byte [ebp + eax - 0x1b5c], dl
add eax, 1
mov byte [ebp + eax - 0x1b5c], 0
xor ecx, ecx
lea edx, [ebp - 0x1b5c]
lea edx, [edx + ecx]
movsx eax, byte [edx]
test eax, eax
je 0x4171f9
lea edx, [ebp - 0x1b5c]
add ecx, 1
lea edx, [edx + ecx]
movsx eax, byte [edx]
test eax, eax
je 0x4171f9
lea edx, [ebp - 0x1b5c]
add ecx, 1
lea edx, [edx + ecx]
movsx eax, byte [edx]
test eax, eax
je 0x4171f9
lea edx, [ebp - 0x1b5c]
add ecx, 1
lea edx, [edx + ecx]
movsx eax, byte [edx]
test eax, eax
je 0x4171f9
add ecx, 1
cmp ecx, 0x200
jl 0x41719c
lea eax, [ebp - 0x1b5c]
lea edx, [eax + ecx]
neg ecx
lea ebx, [ecx + 0x200]
test ebx, ebx
jle 0x4172a9
lea eax, [ecx + 0x1ff]
mov dword [ebp - 0x74], eax
test eax, eax
jle 0x417335
add ebx, 0xffffffff
cmp ebx, 6
jl 0x41732e
xor eax, eax
movsx ebx, byte [ebp + eax - 0x7a8]
test ebx, ebx
je 0x4172a5
mov byte [eax + edx], bl
add eax, 1
movsx ebx, byte [ebp + eax - 0x7a8]
test ebx, ebx
je 0x4172a5
mov byte [eax + edx], bl
add eax, 1
movsx ebx, byte [ebp + eax - 0x7a8]
test ebx, ebx
je 0x4172a5
mov byte [eax + edx], bl
add eax, 1
movsx ebx, byte [ebp + eax - 0x7a8]
test ebx, ebx
je 0x4172a5
mov byte [eax + edx], bl
add eax, 1
movsx ebx, byte [ebp + eax - 0x7a8]
test ebx, ebx
je 0x4172a5
mov byte [eax + edx], bl
add eax, 1
lea ebx, [ecx + 0x1f9]
cmp eax, ebx
jle 0x417228
movsx ecx, byte [ebp + eax - 0x7a8]
test ecx, ecx
je 0x4172a5
mov byte [eax + edx], cl
mov ecx, dword [ebp - 0x74]
add eax, 1
cmp eax, ecx
jl 0x41728c
mov byte [eax + edx], 0
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x1b5c]
mov ebx, dword [ecx]
xor edx, edx
push edx
push edx
push eax
push edx
push edx
call dword [ebx + 0x60]
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x4172cd
mov eax, 1
mov dword [ebp - 0x34], eax
mov dword [ebp - 4], 1
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x417311
mov ebx, dword [ebp - 0x40]
mov ecx, dword [ebx + 0x208]
test ecx, ecx
je 0x4172ed
call fcn.0041cf78
mov eax, dword [ebx + 0x20c]
mov dword [ebx + 0x208], 0
add eax, 0xffffffff
mov dword [ebx + 0x20c], eax
jne 0x417311
push 1
mov ecx, ebx
call fcn.0041cfb0
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x40], 0
test eax, eax
je 0x416c6e
mov ecx, dword [str.OVER]
jmp 0x416c74
xor eax, eax
jmp 0x41728c
xor eax, eax
jmp 0x4172a5
push str.Updating_environment_variables
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
call dword [eax + 0x58]
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x14]
push eax
push edx
call fcn.00418630
test eax, eax
jne 0x417364
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x41736b
mov ebx, 1
jmp 0x41736d
xor ebx, ebx
push str.Updating_.ini_files
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
call dword [eax + 0x58]
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x14]
push eax
push edx
call fcn.00419334
test eax, eax
jne 0x417392
test ebx, ebx
je 0x417399
mov ebx, 1
jmp 0x41739b
xor ebx, ebx
push str.Creating_shortcuts
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
call dword [eax + 0x58]
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x14]
push eax
push edx
call fcn.0041a2f4
test eax, eax
jne 0x4173c0
test ebx, ebx
je 0x4173c7
mov ebx, 1
jmp 0x4173c9
xor ebx, ebx
mov ecx, dword [ebp + 8]
push 0x64
mov eax, dword [ecx]
call dword [eax + 0x50]
test ebx, ebx
je 0x4173e6
push str.There_were_errors_during_the_installation.
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
call dword [eax + 0x58]
jmp 0x4173f3
push str.The_installation_was_successful.
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
call dword [eax + 0x58]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ecx]
call dword [eax + 8]
mov eax, dword [ebp - 0xeec]
cmp eax, 2
je 0x41768d
mov eax, dword [ebp - 0xeec]
test eax, eax
je 0x417423
mov eax, dword [ebp - 0x1010]
lea ecx, [ebp - 0x1010]
call dword [eax + 8]
xor eax, eax
mov dword [ebp - 0xeec], eax
test ebx, ebx
mov dword [ebp - 0xee8], eax
je 0x417530
mov ecx, dword [ebp + 8]
push 2
mov eax, dword [ecx]
push str.An_error_occurred_during_the_installation._nDo_you_want_to_undo_changes_made_to_your_system__n
call dword [eax + 0x64]
test eax, eax
je 0x417530
push 0x434904
lea eax, [ebp - 0x2a0]
push eax
call fcn.00420d06
add esp, 8
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov dword [ecx + 0x240], eax
lea eax, [ebp - 0xdd4]
push eax
push edx
call fcn.00412f80
mov eax, dword [ebp - 0x14]
push dword [eax + 0x240]
call fcn.00420d67
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x240], 0
lea edx, [ebp - 0x2a0]
push edx
call fcn.00420de4
lea eax, [ebp - 0xdd4]
push eax
call fcn.00420de4
add esp, 0xc
mov dword [ebp - 0x38], 0
lea eax, [ebp - 0x1010]
mov dword [ebp - 0x68], eax
mov dword [ebp - 4], 7
mov eax, dword [ebp - 0xeec]
cmp eax, 2
je 0x417607
mov eax, dword [ebp - 0xeec]
test eax, eax
je 0x4174f2
mov eax, dword [ebp - 0x1010]
lea ecx, [ebp - 0x1010]
call dword [eax + 8]
xor eax, eax
mov dword [ebp - 0xeec], eax
mov dword [ebp - 0xee8], eax
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x1010]
call fcn.00409838
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x18]
mov eax, 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x1950]
push 0x200
mov edx, dword [ecx]
push eax
call dword [edx + 0x1c]
lea eax, [ebp - 0x1950]
push eax
call fcn.00420de4
lea edx, [ebp - 0x2a0]
lea eax, [ebp - 0x1950]
push eax
push edx
call fcn.004223cf
lea eax, [ebp - 0x1538]
push eax
call fcn.00420de4
lea edx, [ebp - 0xdd4]
lea eax, [ebp - 0x1538]
push eax
push edx
call fcn.004223cf
add esp, 0x18
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx]
call dword [eax + 0x7c]
mov dword [ebp - 0x38], 0
lea eax, [ebp - 0x1010]
mov dword [ebp - 0x54], eax
mov dword [ebp - 4], 8
mov eax, dword [ebp - 0xeec]
cmp eax, 2
je 0x41764a
mov eax, dword [ebp - 0xeec]
test eax, eax
je 0x4175cc
mov eax, dword [ebp - 0x1010]
lea ecx, [ebp - 0x1010]
call dword [eax + 8]
xor eax, eax
mov dword [ebp - 0xeec], eax
mov dword [ebp - 0xee8], eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1010]
call fcn.00409838
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x18]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8
xor eax, eax
mov dword [ebp - 0x195c], eax
mov dword [ebp - 0x1958], eax
mov word [ebp - 0x1954], ax
mov ebx, dword [ebp - 0x1010]
mov dword [ebp - 0x1214], 0
lea edx, [ebp - 0x195c]
lea eax, [ebp - 0x1214]
push eax
push 1
push edx
lea ecx, [ebp - 0x1010]
call dword [ebx + 0x18]
jmp 0x4174d9
xor eax, eax
mov dword [ebp - 0xde4], eax
mov dword [ebp - 0xde0], eax
mov word [ebp - 0xddc], ax
mov ebx, dword [ebp - 0x1010]
mov dword [ebp - 0xa0], 0
lea edx, [ebp - 0xde4]
lea eax, [ebp - 0xa0]
push eax
push 1
push edx
lea ecx, [ebp - 0x1010]
call dword [ebx + 0x18]
jmp 0x4175b3
xor eax, eax
mov dword [ebp - 0x7b4], eax
mov dword [ebp - 0x7b0], eax
mov word [ebp - 0x7ac], ax
mov esi, dword [ebp - 0x1010]
mov dword [ebp - 0x88], 0
lea edx, [ebp - 0x7b4]
lea eax, [ebp - 0x88]
push eax
push 1
push edx
lea ecx, [ebp - 0x1010]
call dword [esi + 0x18]
jmp 0x41740a
lea eax, [ebp - 0x1210]
lea edx, [eax + ecx]
neg ecx
lea ebx, [ecx + 0x200]
test ebx, ebx
jle 0x417783
lea eax, [ecx + 0x1ff]
mov dword [ebp - 0x50], eax
test eax, eax
jle 0x417909
add ebx, 0xffffffff
cmp ebx, 6
jl 0x417902
xor eax, eax
mov ebx, dword [ebp - 0x30]
movsx ebx, byte [ebx + eax]
test ebx, ebx
je 0x41777f
mov byte [eax + edx], bl
mov ebx, dword [ebp - 0x30]
add eax, 1
movsx ebx, byte [ebx + eax]
test ebx, ebx
je 0x41777f
mov byte [eax + edx], bl
mov ebx, dword [ebp - 0x30]
add eax, 1
movsx ebx, byte [ebx + eax]
test ebx, ebx
je 0x41777f
mov byte [eax + edx], bl
mov ebx, dword [ebp - 0x30]
add eax, 1
movsx ebx, byte [ebx + eax]
test ebx, ebx
je 0x41777f
mov byte [eax + edx], bl
mov ebx, dword [ebp - 0x30]
add eax, 1
movsx ebx, byte [ebx + eax]
test ebx, ebx
je 0x41777f
mov byte [eax + edx], bl
add eax, 1
lea ebx, [ecx + 0x1f9]
cmp eax, ebx
jle 0x417708
mov ecx, dword [ebp - 0x30]
movsx ecx, byte [ecx + eax]
test ecx, ecx
je 0x41777f
mov byte [eax + edx], cl
mov ecx, dword [ebp - 0x50]
add eax, 1
cmp eax, ecx
jl 0x417767
mov byte [eax + edx], 0
xor ecx, ecx
lea edx, [ebp - 0x1210]
lea edx, [edx + ecx]
movsx eax, byte [edx]
test eax, eax
je 0x4177e2
lea edx, [ebp - 0x1210]
add ecx, 1
lea edx, [edx + ecx]
movsx eax, byte [edx]
test eax, eax
je 0x4177e2
lea edx, [ebp - 0x1210]
add ecx, 1
lea edx, [edx + ecx]
movsx eax, byte [edx]
test eax, eax
je 0x4177e2
lea edx, [ebp - 0x1210]
add ecx, 1
lea edx, [edx + ecx]
movsx eax, byte [edx]
test eax, eax
je 0x4177e2
add ecx, 1
cmp ecx, 0x200
jl 0x417785
lea eax, [ebp - 0x1210]
lea edx, [eax + ecx]
neg ecx
lea ebx, [ecx + 0x200]
test ebx, ebx
jle 0x417892
lea eax, [ecx + 0x1ff]
mov dword [ebp - 0x50], eax
test eax, eax
jle 0x4178fe
add ebx, 0xffffffff
cmp ebx, 6
jl 0x4178f7
xor eax, eax
movsx ebx, byte [ebp + eax - 0x7a8]
test ebx, ebx
je 0x41788e
mov byte [eax + edx], bl
add eax, 1
movsx ebx, byte [ebp + eax - 0x7a8]
test ebx, ebx
je 0x41788e
mov byte [eax + edx], bl
add eax, 1
movsx ebx, byte [ebp + eax - 0x7a8]
test ebx, ebx
je 0x41788e
mov byte [eax + edx], bl
add eax, 1
movsx ebx, byte [ebp + eax - 0x7a8]
test ebx, ebx
je 0x41788e
mov byte [eax + edx], bl
add eax, 1
movsx ebx, byte [ebp + eax - 0x7a8]
test ebx, ebx
je 0x41788e
mov byte [eax + edx], bl
add eax, 1
lea ebx, [ecx + 0x1f9]
cmp eax, ebx
jle 0x417811
movsx ecx, byte [ebp + eax - 0x7a8]
test ecx, ecx
je 0x41788e
mov byte [eax + edx], cl
mov ecx, dword [ebp - 0x50]
add eax, 1
cmp eax, ecx
jl 0x417875
mov byte [eax + edx], 0
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx]
call dword [eax + 8]
mov edi, eax
mov ecx, dword [ebp + 8]
lea ebx, [ebp - 0xac4]
lea edx, [ebp - 0x9c0]
lea eax, [ebp - 0x1210]
mov esi, dword [ecx]
push edi
mov edi, dword [ebp - 0x24]
push edi
push eax
push edx
push ebx
call dword [esi + 0x60]
test eax, eax
jne 0x4178e0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x1338]
call fcn.00409838
jmp 0x416ae9
mov dword [ebp - 0x4c], 0
lea ecx, [ebp - 0x1338]
call fcn.00409838
jmp 0x41733c
xor eax, eax
jmp 0x417875
xor eax, eax
jmp 0x41788e
xor eax, eax
jmp 0x417767
xor eax, eax
jmp 0x41777f
movsx edx, byte [eax + str.FAILED_to]
test edx, edx
je 0x41794f
mov byte [ebp + eax - 0x1210], dl
add eax, 1
movsx edx, byte [eax + str.FAILED_to]
test edx, edx
je 0x41794f
mov byte [ebp + eax - 0x1210], dl
add eax, 1
movsx edx, byte [eax + str.FAILED_to]
test edx, edx
je 0x41794f
mov byte [ebp + eax - 0x1210], dl
add eax, 1
mov byte [ebp + eax - 0x1210], 0
jmp 0x416e4f
mov edx, dword [ebp - 0x50]
movsx ecx, byte [edx + eax]
test ecx, ecx
je 0x417971
mov edx, dword [ebp - 0x74]
add eax, 1
cmp eax, edx
jl 0x41795c
mov ecx, dword [ebp - 0x9c]
mov ebx, dword [ecx]
add eax, 1
movzx edx, ax
lea eax, [ebp - 0x84]
push eax
push edx
push dword [ebp - 0x94]
call dword [ebx + 0x18]
test eax, eax
je 0x4179d6
mov eax, dword [ebp - 0x9c]
mov edx, dword [ebp - 0x80]
mov ebx, dword [ebp - 0x7c]
push edx
mov dword [eax + 0x128], 1
mov ecx, dword [ebp - 0x9c]
mov esi, dword [ecx]
push ebx
call dword [esi + 0x28]
push str.Error_writing_file_name
push 0xffffffffffffffff
push str.BackupFile::addFile
push dword [ebp - 0x98]
call fcn.00431268
add esp, 0x10
jmp 0x4170e0
push dword [ebp - 0x94]
mov ecx, dword [ebp - 0x9c]
mov eax, dword [ecx]
call dword [eax + 0x4c]
mov ecx, dword [ebp - 0x9c]
mov ebx, dword [ecx]
mov dword [ebp - 0x2a8], eax
mov dword [ebp - 0x2a4], edx
lea edx, [ebp - 0x2a8]
lea eax, [ebp - 0x84]
push eax
push 8
push edx
call dword [ebx + 0x10]
test eax, eax
jne 0x417a1d
mov eax, dword [ebp - 0x84]
cmp eax, 8
je 0x417a5f
mov eax, dword [ebp - 0x9c]
mov edx, dword [ebp - 0x80]
mov ebx, dword [ebp - 0x7c]
push edx
mov dword [eax + 0x128], 1
mov ecx, dword [ebp - 0x9c]
mov esi, dword [ecx]
push ebx
call dword [esi + 0x28]
push str.Error_writing_file_size
push 0xffffffffffffffff
push str.BackupFile::addFile
push dword [ebp - 0x98]
call fcn.00431268
add esp, 0x10
jmp 0x4170e0
mov ecx, dword [ebp - 0x9c]
lea edx, [ebp - 0x8c]
lea eax, [ebp - 0x84]
push eax
mov ebx, dword [ecx]
push 4
push edx
call dword [ebx + 0x10]
test eax, eax
jne 0x417a89
mov eax, dword [ebp - 0x84]
cmp eax, 4
je 0x417acb
mov eax, dword [ebp - 0x9c]
mov edx, dword [ebp - 0x80]
mov ebx, dword [ebp - 0x7c]
push edx
mov dword [eax + 0x128], 1
mov ecx, dword [ebp - 0x9c]
mov esi, dword [ecx]
push ebx
call dword [esi + 0x28]
push str.Error_writing_check_sum
push 0xffffffffffffffff
push str.BackupFile::addFile
push dword [ebp - 0x98]
call fcn.00431268
add esp, 0x10
jmp 0x4170e0
mov dword [ebp - 0xbd4], 0
mov dword [ebp - 0xbd0], 1
mov dword [ebp - 4], 2
mov eax, dword [ebp - 0x2a8]
or eax, dword [ebp - 0x2a4]
je 0x417d62
lea ecx, [ebp - 0x1e80]
call fcn.00409b50
mov dword [ebp - 0xdd8], 1
mov dword [ebp - 4], 3
push 0
push 1
push 0x80000000
push dword [ebp - 0x94]
lea ecx, [ebp - 0x1e80]
call fcn.00409cc0
test eax, eax
jne 0x417de8
push 0x8000
lea ebx, [ebp - 0x1e80]
xor eax, eax
mov dword [ebp - 0x1740], eax
mov dword [ebp - 0x173c], eax
mov dword [ebp - 0x1748], eax
mov dword [ebp - 0x1744], eax
lea ecx, [ebp - 0x1740]
lea edx, [ebp - 0x1748]
push edx
push ecx
push dword [ebp - 0x2a4]
push dword [ebp - 0x2a8]
push ebx
push dword [ebp - 0x9c]
call fcn.004098c8
mov dword [ebp - 0x74], eax
add esp, 0x1c
test eax, eax
jne 0x417bc7
mov edx, dword [ebp - 0x1740]
sub edx, dword [ebp - 0x2a8]
mov eax, dword [ebp - 0x173c]
sub eax, dword [ebp - 0x2a4]
or edx, eax
jne 0x417bc7
mov edx, dword [ebp - 0x1748]
sub edx, dword [ebp - 0x2a8]
mov eax, dword [ebp - 0x1744]
sub eax, dword [ebp - 0x2a4]
or edx, eax
je 0x417d3b
mov eax, dword [ebp - 0x9c]
mov edx, dword [ebp - 0x80]
mov ebx, dword [ebp - 0x7c]
push edx
mov dword [eax + 0x128], 1
mov ecx, dword [ebp - 0x9c]
mov esi, dword [ecx]
push ebx
call dword [esi + 0x28]
mov eax, dword [ebp - 0x74]
test eax, eax
je 0x417c92
lea edx, [ebp - 0x1750]
push eax
push str.Error_copying_stream___i_
push 0xffffffffffffffff
push str.BackupFile::addFile
push edx
call fcn.00431268
add esp, 0x14
mov dword [ebp - 4], 5
mov eax, dword [ebp - 0x1750]
test eax, eax
jne 0x417c26
xor eax, eax
jmp 0x417c33
mov eax, dword [ebp - 0x1750]
add dword [eax + 0x20c], 1
mov dword [ebp - 0xbd4], eax
mov dword [ebp - 4], 3
mov eax, dword [ebp - 0x1750]
test eax, eax
je 0x417c83
mov ebx, dword [ebp - 0x1750]
mov ecx, dword [ebx + 0x208]
test ecx, ecx
je 0x417c5f
call fcn.0041cf78
mov eax, dword [ebx + 0x20c]
mov dword [ebx + 0x208], 0
add eax, 0xffffffff
mov dword [ebx + 0x20c], eax
jne 0x417c83
push 1
mov ecx, ebx
call fcn.0041cfb0
mov dword [ebp - 0x1750], 0
jmp 0x417d3b
push dword [ebp - 0x1748]
push dword [ebp - 0x1740]
push dword [ebp - 0x2a8]
lea eax, [ebp - 0x174c]
push str.Copy_stream_mismatch:_wanted__i_bytes__read__i__written__i
push 0xffffffffffffffff
push str.BackupFile::addFile
push eax
call fcn.00431268
add esp, 0x1c
mov dword [ebp - 4], 4
mov eax, dword [ebp - 0x174c]
test eax, eax
jne 0x417cd4
xor eax, eax
jmp 0x417ce1
mov eax, dword [ebp - 0x174c]
add dword [eax + 0x20c], 1
mov dword [ebp - 0xbd4], eax
mov dword [ebp - 4], 3
mov eax, dword [ebp - 0x174c]
test eax, eax
je 0x417d31
mov ebx, dword [ebp - 0x174c]
mov ecx, dword [ebx + 0x208]
test ecx, ecx
je 0x417d0d
call fcn.0041cf78
mov eax, dword [ebx + 0x20c]
mov dword [ebx + 0x208], 0
add eax, 0xffffffff
mov dword [ebx + 0x20c], eax
jne 0x417d31
push 1
mov ecx, ebx
call fcn.0041cfb0
mov dword [ebp - 0x174c], 0
lea ecx, [ebp - 0x1e80]
call fcn.00409898
mov dword [ebp - 0xdd8], 0
mov dword [ebp - 4], 2
lea ecx, [ebp - 0x1e80]
call fcn.00409838
mov edx, dword [ebp - 0x98]
mov eax, dword [ebp - 0xbd4]
test eax, eax
jne 0x417d76
xor eax, eax
jmp 0x417d83
mov eax, dword [ebp - 0xbd4]
add dword [eax + 0x20c], 1
mov dword [ebp - 0xbd0], 0
mov dword [edx], eax
mov dword [ebp - 4], 1
mov eax, dword [ebp - 0xbd4]
test eax, eax
je 0x417dd9
mov ebx, dword [ebp - 0xbd4]
mov ecx, dword [ebx + 0x208]
test ecx, ecx
je 0x417db5
call fcn.0041cf78
mov eax, dword [ebx + 0x20c]
mov dword [ebx + 0x208], 0
add eax, 0xffffffff
mov dword [ebx + 0x20c], eax
jne 0x417dd9
push 1
mov ecx, ebx
call fcn.0041cfb0
mov dword [ebp - 0xbd4], 0
jmp 0x4170e0
mov eax, dword [ebp - 0x9c]
mov edx, dword [ebp - 0x80]
mov ebx, dword [ebp - 0x7c]
push edx
mov dword [eax + 0x128], 1
mov ecx, dword [ebp - 0x9c]
mov esi, dword [ecx]
push ebx
call dword [esi + 0x28]
push str.Error_opening_file
push 0xffffffffffffffff
push str.BackupFile::addFile
push dword [ebp - 0x98]
call fcn.00431268
add esp, 0x10
mov dword [ebp - 0xdd8], 0
lea ecx, [ebp - 0x1e80]
call fcn.00409838
mov eax, dword [ebp - 0xbd4]
mov dword [ebp - 0xbd0], 0
test eax, eax
je 0x417e87
mov ebx, dword [ebp - 0xbd4]
mov ecx, dword [ebx + 0x208]
test ecx, ecx
je 0x417e63
call fcn.0041cf78
mov eax, dword [ebx + 0x20c]
mov dword [ebx + 0x208], 0
add eax, 0xffffffff
mov dword [ebx + 0x20c], eax
jne 0x417e87
push 1
mov ecx, ebx
call fcn.0041cfb0
mov dword [ebp - 0xbd4], 0
jmp 0x4170e0
xor eax, eax
jmp 0x41795c
xor eax, eax
jmp 0x417971
mov eax, dword [ebp - 0x98]
mov dword [eax], 0
jmp 0x4170e0
xor edx, edx
jmp 0x41701f
push str.There_is_a_previous_error
push 0xffffffffffffffff
push str.BackupFile::addFile
push dword [ebp - 0x98]
call fcn.00431268
add esp, 0x10
jmp 0x4170e0
lea eax, [ebp - 0x2080]
push 0x200
push eax
lea ecx, [ebp - 0x40]
call fcn.00430ff0
lea ecx, [ebp - 0x1b5c]
lea edx, [ebp - 0x7a8]
lea eax, [ebp - 0x2080]
push eax
push edx
push str.FAILED_to_back_up__s:__s
push 0x200
push ecx
call fcn.00430ea4
add esp, 0x14
jmp 0x4172a9
xor eax, eax
mov dword [ebp - 0x34], eax
jmp 0x41733c