Function at 0x140020040
Capabilities:
Copy file

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xaa0
mov rax, qword [0x1400990a0]
xor rax, rsp
mov qword [rsp + 0xa98], rax
mov r14, rdx
mov rbx, rcx
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0x6d0], rdx
xor edi, edi
mov dword [rsp + 0x4c], edi
mov rcx, qword [rdx + 0x10]
test rcx, rcx
je 0x140020157
movabs rax, 0x7fffffffffffffff
sub rax, rcx
cmp rax, 1
jb 0x140021b03
mov rax, r14
cmp qword [rdx + 0x18], 0x10
jb 0x1400200bb
mov rax, qword [rdx]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 1
lea r9, [0x140089c74]
lea rcx, [rsp + 0x7f8]
call fcn.14000a730
nop
mov dword [rsp + 0x4c], 0x11
mov r8d, 1
lea rdx, [0x140089c70]
lea rcx, [rsp + 0x7f8]
call fcn.140008020
mov qword [rsp + 0x778], rdi
mov qword [rsp + 0x788], rdi
mov qword [rsp + 0x790], rdi
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x778], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x788], xmm1
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
lea rcx, [rsp + 0x778]
mov esi, 0x33
mov rbx, qword [rsp + 0x68]
jmp 0x14002019f
mov qword [rsp + 0x758], rdi
mov qword [rsp + 0x768], rdi
mov qword [rsp + 0x770], 0xf
mov byte [rsp + 0x758], 0
xor r8d, r8d
lea rdx, [0x14008412b]
lea rcx, [rsp + 0x758]
call fcn.140007ec0
lea rcx, [rsp + 0x758]
mov esi, 4
mov dword [rsp + 0x4c], esi
mov r9d, 0x14
lea r8, str.Updater.HandleUpdate
call fcn.14000b550
mov qword [rsp + 0xe8], rdi
mov qword [rsp + 0xf8], rdi
mov qword [rsp + 0x100], rdi
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0xe8], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0xf8], xmm1
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
or esi, 0x40
mov dword [rsp + 0x4c], esi
lea rcx, [rsp + 0xe8]
call fcn.14002ff50
nop
test sil, 4
je 0x140020270
and esi, 0xfffffffb
mov rdx, qword [rsp + 0x770]
cmp rdx, 0x10
jb 0x140020254
inc rdx
mov rcx, qword [rsp + 0x758]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002024f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140021b09
call fcn.1400407d0
mov qword [rsp + 0x768], rdi
mov qword [rsp + 0x770], 0xf
mov byte [rsp + 0x758], 0
test sil, 2
je 0x1400202d8
and esi, 0xfffffffd
mov rdx, qword [rsp + 0x790]
cmp rdx, 0x10
jb 0x1400202bc
inc rdx
mov rcx, qword [rsp + 0x778]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400202b7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140021b0f
call fcn.1400407d0
mov qword [rsp + 0x788], rdi
mov qword [rsp + 0x790], 0xf
mov byte [rsp + 0x778], 0
test sil, 1
je 0x140020340
and esi, 0xfffffffe
mov rdx, qword [rsp + 0x810]
cmp rdx, 0x10
jb 0x140020324
inc rdx
mov rcx, qword [rsp + 0x7f8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002031f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140021b15
call fcn.1400407d0
mov qword [rsp + 0x808], rdi
mov qword [rsp + 0x810], 0xf
mov byte [rsp + 0x7f8], 0
call qword [sym.imp.KERNEL32.dll_WTSGetActiveConsoleSessionId]
test eax, eax
jne 0x14002046f
mov qword [rsp + 0x6f8], rdi
mov qword [rsp + 0x708], rdi
mov qword [rsp + 0x710], 0xf
lea r8d, [rax + 0x2b]
lea rdx, str.Updater.HandleUpdate_Exit___IsUserLoggedIn_
lea rcx, [rsp + 0x6f8]
call fcn.140007ec0
lea rcx, [rsp + 0x6f8]
call fcn.14002ff50
lea rax, [rsp + 0x6f8]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x6f8], rdi
mov qword [rsp + 0x708], rdi
mov qword [rsp + 0x710], 0xf
mov r8d, 0x31
lea rdx, str.Exited_with_UpdateFailReason__User_not_logged_in_
lea rcx, [rsp + 0x6f8]
call fcn.140007ec0
nop
mov qword [rsp + 0x88], rdi
mov qword [rsp + 0x98], rdi
mov qword [rsp + 0xa0], 0xf
mov r8d, 0xc
lea rdx, str.HandleUpdate
lea rcx, [rsp + 0x88]
call fcn.140007ec0
nop
lea rdx, [rsp + 0x6f8]
lea rcx, [rsp + 0x88]
call fcn.140019ed0
nop
mov rdx, qword [r14 + 0x18]
cmp rdx, 0x10
jb 0x14002045a
mov rcx, qword [r14]
inc rdx
cmp rdx, 0x1000
jb 0x140020455
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140021b1b
mov rcx, r8
call fcn.1400407d0
mov qword [r14 + 0x10], rdi
mov qword [r14 + 0x18], 0xf
mov byte [r14], 0
jmp 0x140021ad6
mov qword [rsp + 0x718], rdi
mov qword [rsp + 0x728], rdi
mov qword [rsp + 0x730], 0xf
mov byte [rsp + 0x718], 0
xor r8d, r8d
lea rdx, [0x14008412b]
lea rcx, [rsp + 0x718]
call fcn.140007ec0
nop
mov dword [rsp + 0x50], edi
mov byte [rsp + 0x49], 0
mov qword [rsp + 0x188], rdi
mov qword [rsp + 0x198], rdi
mov qword [rsp + 0x1a0], 0xf
mov r8d, 0xd
lea rdx, str.Uninstall.exe
lea rcx, [rsp + 0x188]
call fcn.140007ec0
lea rdx, [rsp + 0x188]
lea rcx, [rsp + 0x798]
call fcn.140030ce0
nop
mov qword [rsp + 0x6d8], rdi
mov qword [rsp + 0x6e8], rdi
mov qword [rsp + 0x6f0], rdi
lea r15, [rbx + 0x20]
mov r13, qword [r15 + 0x10]
mov r12, r15
cmp qword [r15 + 0x18], 0x10
jb 0x14002052d
mov r12, qword [r15]
cmp r13, 0x10
jae 0x140020551
movups xmm0, xmmword [r12]
movups xmmword [rsp + 0x6d8], xmm0
mov qword [rsp + 0x6f0], 0xf
jmp 0x1400205d3
mov rbx, r13
or rbx, 0xf
movabs rax, 0x7fffffffffffffff
cmp rbx, rax
cmova rbx, rax
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x1400205a5
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140021b21
mov rcx, rax
call fcn.1400407d8
mov rcx, rax
test rax, rax
je 0x140021b26
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x1400205b4
test rcx, rcx
je 0x1400205b1
call fcn.1400407d8
jmp 0x1400205b4
mov rax, rdi
mov qword [rsp + 0x6d8], rax
lea r8, [r13 + 1]
mov rdx, r12
mov rcx, rax
call fcn.140042c60
mov qword [rsp + 0x6f0], rbx
mov qword [rsp + 0x6e8], r13
lea rdx, [rsp + 0x798]
cmp qword [rsp + 0x7b0], 0x10
cmovae rdx, qword [rsp + 0x798]
lea rcx, [rsp + 0x5c0]
call fcn.1400274c0
mov rax, qword [rsp + 0x5c0]
movsxd rcx, dword [rax + 4]
lea r13, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x5c0], r13
mov rax, qword [rsp + 0x5c0]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rsp + rcx + 0x5bc], edx
mov rax, qword [rsp + 0x5c0]
movsxd rcx, dword [rax + 4]
mov ebx, dword [rsp + rcx + 0x5d0]
mov qword [rsp + rcx + 0x5c0], r13
mov rax, qword [rsp + 0x5c0]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rsp + rcx + 0x5bc], edx
lea rcx, [rsp + 0x5d0]
call fcn.1400067c0
mov rax, qword [rsp + 0x5c0]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x5c0], rax
mov rax, qword [rsp + 0x5c0]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x18]
mov dword [rsp + rcx + 0x5bc], edx
lea rax, vtable.std::ios_base.0
mov qword [rsp + 0x670], rax
lea rcx, [rsp + 0x670]
call fcn.14003ed24
nop
test ebx, ebx
je 0x1400208ab
mov qword [rsp + 0x738], rdi
mov qword [rsp + 0x748], rdi
mov qword [rsp + 0x750], 7
mov word [rsp + 0x738], di
xor r8d, r8d
lea rdx, [0x140088fa8]
lea rcx, [rsp + 0x738]
call fcn.140007cf0
nop
mov qword [rsp + 0x1a8], rdi
mov qword [rsp + 0x1b8], rdi
mov qword [rsp + 0x1c0], 7
mov r8d, 0x12
lea rdx, str.UpdaterDownloadUrl
lea rcx, [rsp + 0x1a8]
call fcn.140007cf0
lea rdx, [rsp + 0x738]
lea rcx, [rsp + 0x1a8]
call fcn.14001b250
test al, al
je 0x1400207ec
cmp qword [rsp + 0x748], 0
je 0x1400207ec
lea rdx, [rsp + 0x738]
lea rcx, [rsp + 0x858]
call fcn.140031b20
mov rdx, rax
mov rcx, r14
call fcn.140006f10
mov rdx, qword [rsp + 0x870]
cmp rdx, 0x10
jb 0x1400207ce
inc rdx
mov rcx, qword [rsp + 0x858]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400207c9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140021b2c
call fcn.1400407d0
mov qword [rsp + 0x868], rdi
mov qword [rsp + 0x870], 0xf
mov byte [rsp + 0x858], 0
jmp 0x140020813
call fcn.140003370
lea rdx, [rax + 0x100]
cmp r14, rdx
je 0x140020813
mov r8, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x14002080b
mov rdx, qword [rdx]
mov rcx, r14
call fcn.140007ec0
lea rdx, [rsp + 0x798]
cmp qword [rsp + 0x7b0], 0x10
cmovae rdx, qword [rsp + 0x798]
mov r8, qword [rsp + 0x7a8]
lea rcx, [rsp + 0x6d8]
call fcn.140007ec0
mov byte [rsp + 0x49], 1
mov rdx, qword [rsp + 0x750]
cmp rdx, 8
jb 0x14002088f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x738]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002088a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140021b32
call fcn.1400407d0
mov qword [rsp + 0x748], rdi
mov qword [rsp + 0x750], 7
mov word [rsp + 0x738], di
movabs r12, 0x7fffffffffffffff
mov rax, r12
mov rcx, qword [rsp + 0x6e8]
sub rax, rcx
cmp rax, 0x14
jb 0x140021b38
lea rax, [rsp + 0x6d8]
cmp qword [rsp + 0x6f0], 0x10
cmovae rax, qword [rsp + 0x6d8]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x14
lea r9, str.Download_file_path:
lea rcx, [rsp + 0x2f0]
call fcn.14000a730
bts esi, 7
lea rcx, [rsp + 0x2f0]
call fcn.14002ff50
cmp qword [r14 + 0x10], 0
jne 0x140020b53
call fcn.1400300a0
mov rdx, rax
call fcn.14001f990
lea r9, [rsp + 0x50]
lea r8, [rsp + 0x718]
mov rdx, r14
call fcn.140022d20
test al, al
je 0x140020b10
mov rcx, qword [r14 + 0x10]
mov rax, r12
sub rax, rcx
cmp rax, 0x26
jb 0x140021b3d
mov rax, r14
cmp qword [r14 + 0x18], 0x10
jb 0x140020975
mov rax, qword [r14]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x26
lea r9, str.Updater.HandleUpdate_Update_Required__
lea rcx, [rsp + 0x7d8]
call fcn.14000a730
bts esi, 8
mov r8d, 1
lea rdx, [0x140089c70]
lea rcx, [rsp + 0x7d8]
call fcn.140008020
mov qword [rsp + 0xc8], rdi
mov qword [rsp + 0xd8], rdi
mov qword [rsp + 0xe0], rdi
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0xc8], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0xd8], xmm1
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
bts esi, 9
lea rcx, [rsp + 0xc8]
call fcn.14002ff50
nop
mov rdx, qword [rsp + 0x7f0]
cmp rdx, 0x10
jb 0x140020a4d
inc rdx
mov rcx, qword [rsp + 0x7d8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140020a48
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140021b42
call fcn.1400407d0
mov qword [rsp + 0x7e8], rdi
mov qword [rsp + 0x7f0], 0xf
mov byte [rsp + 0x7d8], 0
lea rax, [rsp + 0x330]
mov qword [rsp + 0x40], rax
mov rcx, qword [r14 + 0x10]
mov rax, r12
sub rax, rcx
cmp rax, 0x11
jb 0x140021b48
mov rax, r14
cmp qword [r14 + 0x18], 0x10
jb 0x140020a97
mov rax, qword [r14]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x11
lea r9, str.Update_Required:
lea rcx, [rsp + 0x330]
call fcn.14000a730
bts esi, 0xa
mov qword [rsp + 0xa8], rdi
mov qword [rsp + 0xb8], rdi
mov qword [rsp + 0xc0], 0xf
mov r8d, 0xc
lea rdx, str.HandleUpdate
lea rcx, [rsp + 0xa8]
call fcn.140007ec0
nop
lea rdx, [rsp + 0x330]
lea rcx, [rsp + 0xa8]
call fcn.140019ed0
jmp 0x140020b53
mov qword [rsp + 0xa8], rdi
mov qword [rsp + 0xb8], rdi
mov qword [rsp + 0xc0], 0xf
mov r8d, 0x28
lea rdx, str.Updater.HandleUpdate_Update_not_Required
lea rcx, [rsp + 0xa8]
call fcn.140007ec0
lea rcx, [rsp + 0xa8]
call fcn.14002ff50
mov rcx, qword [r14 + 0x10]
mov rax, r12
sub rax, rcx
cmp rax, 0xc
jb 0x140021b4d
mov rax, r14
cmp qword [r14 + 0x18], 0x10
jb 0x140020b74
mov rax, qword [r14]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0xc
lea r9, str.Update_URL:
lea rcx, [rsp + 0x2d0]
call fcn.14000a730
bts esi, 0xb
mov dword [rsp + 0x4c], esi
lea rcx, [rsp + 0x2d0]
call fcn.14002ff50
nop
mov rdx, r15
cmp qword [r15 + 0x18], 0x10
jb 0x140020bbe
mov rdx, qword [r15]
lea rcx, [rsp + 0x350]
call fcn.1400274c0
mov rax, qword [rsp + 0x350]
movsxd rcx, dword [rax + 4]
mov qword [rsp + rcx + 0x350], r13
mov rax, qword [rsp + 0x350]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rsp + rcx + 0x34c], edx
mov rax, qword [rsp + 0x350]
movsxd rcx, dword [rax + 4]
mov ebx, dword [rsp + rcx + 0x360]
mov qword [rsp + rcx + 0x350], r13
mov rax, qword [rsp + 0x350]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rsp + rcx + 0x34c], edx
lea rcx, [rsp + 0x360]
call fcn.1400067c0
mov rax, qword [rsp + 0x350]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x350], rax
mov rax, qword [rsp + 0x350]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x18]
mov dword [rsp + rcx + 0x34c], edx
lea rax, vtable.std::ios_base.0
mov qword [rsp + 0x400], rax
lea rcx, [rsp + 0x400]
call fcn.14003ed24
nop
test ebx, ebx
jne 0x140020cf8
mov rcx, r15
cmp qword [r15 + 0x18], 0x10
jb 0x140020c98
mov rcx, qword [r15]
call fcn.14005406c
mov rcx, qword [r15 + 0x10]
mov rax, r12
sub rax, rcx
cmp rax, 0x2b
jb 0x140021b53
cmp qword [r15 + 0x18], 0x10
jb 0x140020cbb
mov r15, qword [r15]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], 0x2b
lea r9, str.Updater.HandleUpdate_Deleting_old_updater:
lea rcx, [rsp + 0x310]
call fcn.14000a730
bts esi, 0xc
mov dword [rsp + 0x4c], esi
lea rcx, [rsp + 0x310]
call fcn.14002ff50
nop
mov r15, qword [rsp + 0x68]
jmp 0x140020d21
cmp qword [rsp + 0x6e8], 0
jne 0x140020d7c
mov qword [rsp + 0x6f8], rdi
mov qword [rsp + 0x708], rdi
mov qword [rsp + 0x710], 0xf
mov r8d, 0x33
lea rdx, str.Updater.DownloadUpdater_error_getting_download_path
lea rcx, [rsp + 0x6f8]
call fcn.140007ec0
lea rcx, [rsp + 0x6f8]
call fcn.14002ff50
mov dword [rsp + 0x50], 5
jmp 0x1400217b2
cmp qword [r14 + 0x10], 0
je 0x1400217a7
mov qword [rsp + 0x1c8], rdi
mov qword [rsp + 0x1d8], rdi
mov qword [rsp + 0x1e0], 0xf
mov r8d, 0x25
lea rdx, str.Updater.HandleUpdate_Checking_LastAct
lea rcx, [rsp + 0x1c8]
call fcn.140007ec0
lea rcx, [rsp + 0x1c8]
call fcn.14002ff50
mov r15d, edi
movabs r13, 0x7ffffff207b8a7fe
call fcn.14001fb50
mov rbx, rax
call fcn.1400300a0
sub rax, rbx
cmp rax, 0x47868c00
jge 0x140020ed5
mov eax, r15d
inc r15d
cmp eax, 0x3c
jl 0x140020fe1
mov qword [rsp + 0x1e8], rdi
mov qword [rsp + 0x1f8], rdi
mov qword [rsp + 0x200], 0xf
mov r8d, 0x2c
lea rdx, str.Updater.HandleUpdate_Break__LastAct_Timeout_
lea rcx, [rsp + 0x1e8]
call fcn.140007ec0
lea rcx, [rsp + 0x1e8]
call fcn.14002ff50
lea rax, [rsp + 0x208]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x208], rdi
mov qword [rsp + 0x218], rdi
mov qword [rsp + 0x220], 0xf
mov r8d, 0xf
lea rdx, str.LastAct_Timeout
lea rcx, [rsp + 0x208]
call fcn.140007ec0
nop
mov qword [rsp + 0x148], rdi
mov qword [rsp + 0x158], rdi
mov qword [rsp + 0x160], 0xf
mov r8d, 0x11
lea rdx, str.CheckLastActivity
lea rcx, [rsp + 0x148]
call fcn.140007ec0
nop
lea rdx, [rsp + 0x208]
lea rcx, [rsp + 0x148]
call fcn.140019ed0
cmp qword [rsp + 0x728], 0
je 0x1400212a7
mov qword [rsp + 0x108], rdi
mov qword [rsp + 0x118], rdi
mov qword [rsp + 0x120], 0xf
mov r8d, 0xd
lea rdx, str.Uninstall.exe
lea rcx, [rsp + 0x108]
call fcn.140007ec0
mov r8b, 1
lea rdx, [rsp + 0x108]
lea rcx, [rsp + 0x7b8]
call fcn.140031070
bts esi, 0xd
mov dword [rsp + 0x4c], esi
lea rdx, [rsp + 0x718]
mov r12, qword [rsp + 0x718]
cmp qword [rsp + 0x730], 0x10
cmovae rdx, r12
lea rcx, [rsp + 0x7b8]
mov r13, qword [rsp + 0x7d0]
cmp r13, 0x10
setae byte [rsp + 0x60]
mov rbx, qword [rsp + 0x7b8]
cmovae rcx, rbx
mov r8, qword [rsp + 0x7c8]
mov r15, qword [rsp + 0x728]
cmp r8, r15
jne 0x140020f9f
call fcn.140043530
test eax, eax
mov byte [rsp + 0x48], 1
je 0x140020fa4
mov byte [rsp + 0x48], 0
cmp byte [rsp + 0x60], 0
je 0x140021079
lea rdx, [r13 + 1]
mov rax, rbx
cmp rdx, 0x1000
jb 0x140021061
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140021b59
jmp 0x140021061
call fcn.14003faa4
mov rbx, rax
call fcn.14003fa88
cmp rbx, 0x989680
jne 0x140020ffd
imul rax, rax, 0x64
jmp 0x14002101b
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
imul rcx, rcx, 0x3b9aca00
add rax, rcx
cmp rax, r13
jg 0x140021047
movabs rcx, 0xdf8475800
add rcx, rax
mov qword [rsp + 0x80], rcx
lea rcx, [rsp + 0x80]
call fcn.140028c10
jmp 0x140020dd7
mov qword [rsp + 0x80], r12
lea rcx, [rsp + 0x80]
call fcn.140028c10
jmp 0x140020dd7
mov rcx, rbx
call fcn.1400407d0
mov r15, qword [rsp + 0x728]
mov r12, qword [rsp + 0x718]
mov qword [rsp + 0x7c8], rdi
mov qword [rsp + 0x7d0], 0xf
mov byte [rsp + 0x7b8], 0
cmp byte [rsp + 0x48], 0
je 0x1400212a7
movabs rax, 0x7fffffffffffffff
sub rax, r15
cmp rax, 0x19
jb 0x140021b5f
lea rax, [rsp + 0x718]
cmp qword [rsp + 0x730], 0x10
cmovae rax, r12
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x19
lea r9, str.Uninstall.exe_version_is
lea rcx, [rsp + 0x6f8]
call fcn.14000a730
bts esi, 0xe
mov r8d, 0x19
lea rdx, str.._Using_the_existing_file
lea rcx, [rsp + 0x6f8]
call fcn.140008020
mov qword [rsp + 0x88], rdi
mov qword [rsp + 0x98], rdi
mov qword [rsp + 0xa0], rdi
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x88], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x98], xmm1
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
bts esi, 0xf
mov dword [rsp + 0x4c], esi
lea rcx, [rsp + 0x88]
call fcn.14002ff50
nop
mov rdx, qword [rsp + 0x710]
cmp rdx, 0x10
jb 0x1400211a8
inc rdx
mov rcx, qword [rsp + 0x6f8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400211a3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140021b64
call fcn.1400407d0
mov qword [rsp + 0x708], rdi
mov qword [rsp + 0x710], 0xf
mov byte [rsp + 0x6f8], 0
lea rbx, [rsp + 0x6d8]
cmp qword [rsp + 0x6f0], 0x10
cmovae rbx, qword [rsp + 0x6d8]
mov qword [rsp + 0x128], rdi
mov qword [rsp + 0x138], rdi
mov qword [rsp + 0x140], 0xf
mov r8d, 0xd
lea rdx, str.Uninstall.exe
lea rcx, [rsp + 0x128]
call fcn.140007ec0
lea rdx, [rsp + 0x128]
lea rcx, [rsp + 0x838]
call fcn.140030ce0
cmp qword [rax + 0x18], 0x10
jb 0x140021233
mov rax, qword [rax]
xor r8d, r8d
mov rdx, rbx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CopyFileA]
mov ebx, eax
mov rdx, qword [rsp + 0x850]
cmp rdx, 0x10
jb 0x140021287
inc rdx
mov rcx, qword [rsp + 0x838]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140021282
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140021b6a
call fcn.1400407d0
mov qword [rsp + 0x848], rdi
mov qword [rsp + 0x850], 0xf
mov byte [rsp + 0x838], 0
test ebx, ebx
jne 0x1400212d3
mov rdx, r14
lea rcx, [rsp + 0x480]
call fcn.140007020
lea r8, [rsp + 0x6d8]
mov rdx, rax
call fcn.140021b80
mov dword [rsp + 0x50], eax
test eax, eax
jne 0x1400217a2
lea rdx, [rsp + 0x6d8]
lea rcx, [rsp + 0x460]
call fcn.140007020
mov rdx, rax
call fcn.140022800
mov dword [rsp + 0x50], eax
test eax, eax
jne 0x1400217a2
movzx r15d, byte [rsp + 0x49]
test r15b, r15b
jne 0x140021347
lea rax, [rsp + 0x4a0]
mov qword [rsp + 0x40], rax
mov rdx, r14
lea rcx, [rsp + 0x4a0]
call fcn.140031cc0
mov rbx, rax
lea rdx, str.UpdaterDownloadUrl
lea rcx, [rsp + 0x4c0]
call fcn.140006d40
nop
mov rdx, rbx
mov rcx, rax
call fcn.14001b5e0
lea rdx, [0x140088fa8]
lea rcx, [rsp + 0x878]
call fcn.140006d40
nop
lea rdx, str.LastUpdateDate
lea rcx, [rsp + 0x5a0]
call fcn.140006d40
lea rdx, [rsp + 0x878]
mov rcx, rax
call fcn.14001b250
nop
lea rax, str._update_repair
lea rdx, str._update
test r15b, r15b
cmovne rdx, rax
lea rcx, [rsp + 0x818]
call fcn.140006fe0
nop
lea r8, [rsp + 0x6d8]
lea rdx, str.Updater.HandleUpdate_About_to_run
lea rcx, [rsp + 0xa38]
call fcn.140008b00
nop
lea r8, [0x1400846b8]
mov rdx, rax
lea rcx, [rsp + 0x9f8]
call fcn.140008b70
nop
lea r8, [rsp + 0x818]
mov rdx, rax
lea rcx, [rsp + 0x4e0]
call fcn.140008bf0
mov rcx, rax
call fcn.14002ff50
nop
lea rcx, [rsp + 0x9f8]
call fcn.140006eb0
nop
lea rcx, [rsp + 0xa38]
call fcn.140006eb0
lea rax, [rsp + 0x520]
mov qword [rsp + 0x40], rax
lea r8, [rsp + 0x6d8]
lea rdx, str.Updater.HandleUpdate_About_to_run
lea rcx, [rsp + 0xa18]
call fcn.140008b00
nop
lea r8, [0x1400846b8]
mov rdx, rax
lea rcx, [rsp + 0x9d8]
call fcn.140008b70
nop
lea r8, [rsp + 0x818]
mov rdx, rax
lea rcx, [rsp + 0x520]
call fcn.140008bf0
mov rbx, rax
lea rdx, str.Updater::HandleUpdate
lea rcx, [rsp + 0x540]
call fcn.140006fe0
nop
mov rdx, rbx
mov rcx, rax
call fcn.140019ed0
nop
lea rcx, [rsp + 0x9d8]
call fcn.140006eb0
nop
lea rcx, [rsp + 0xa18]
call fcn.140006eb0
mov dword [rsp + 0x70], edi
lea rax, [rsp + 0x500]
mov qword [rsp + 0x40], rax
lea rdx, [rsp + 0x818]
lea rcx, [rsp + 0x500]
call fcn.140007020
mov rbx, rax
lea rdx, [rsp + 0x6d8]
lea rcx, [rsp + 0x560]
call fcn.140007020
nop
lea r9, [rsp + 0x70]
mov rdx, rbx
mov rcx, rax
call fcn.140031e50
test al, al
jne 0x1400215e1
lea rax, [rsp + 0x228]
mov qword [rsp + 0x58], rax
mov edx, dword [rsp + 0x70]
lea rcx, [rsp + 0x8f8]
call fcn.14001e700
nop
mov r8, rax
lea rdx, str.Error_code
lea rcx, [rsp + 0x998]
call fcn.140008aa0
nop
lea r8, str._while_running_updater_file:
mov rdx, rax
lea rcx, [rsp + 0x9b8]
call fcn.140008b70
nop
lea r8, [rsp + 0x6d8]
mov rdx, rax
lea rcx, [rsp + 0x228]
call fcn.140008bf0
mov rbx, rax
lea rdx, str.HandleUpdate
lea rcx, [rsp + 0x290]
call fcn.140006fe0
nop
mov rdx, rbx
mov rcx, rax
call fcn.14001a180
nop
lea rcx, [rsp + 0x9b8]
call fcn.140006eb0
nop
lea rcx, [rsp + 0x998]
call fcn.140006eb0
nop
lea rcx, [rsp + 0x8f8]
call fcn.140006eb0
mov dword [rsp + 0x50], 8
lea rcx, [rsp + 0x818]
call fcn.140006eb0
nop
lea rcx, [rsp + 0x878]
call fcn.140006c30
jmp 0x1400217b2
lea rcx, [rsp + 0x818]
call fcn.140006eb0
nop
lea rdx, str.Updater.HandleUpdate_Checking_if_update_is_running
lea rcx, [rsp + 0x8f8]
call fcn.140006fe0
mov rcx, rax
call fcn.14002ff50
mov ebx, edi
mov r15, qword [rsp + 0x68]
nop dword [rax]
nop word [rax + rax]
mov rdx, r15
lea rcx, [rsp + 0x998]
call fcn.140006d80
mov rcx, rax
call fcn.1400330b0
cmp al, 1
jne 0x140021667
mov eax, ebx
inc ebx
cmp eax, 0x12c
jl 0x14002172c
lea rdx, str.Updater.HandleUpdate_updater_process_still_running
lea rcx, [rsp + 0x9b8]
call fcn.140006fe0
mov rcx, rax
call fcn.14002ff50
lea rdx, str.Updater.HandleUpdate_Checking_for_LastUpdateDate
lea rcx, [rsp + 0x290]
call fcn.140006fe0
mov rcx, rax
call fcn.14002ff50
mov ebx, edi
lea rdx, [0x140088fa8]
lea rcx, [rsp + 0x8d8]
call fcn.140006d40
nop
lea rdx, str.LastUpdateDate
lea rcx, [rsp + 0x228]
call fcn.140006d40
lea rdx, [rsp + 0x8d8]
mov rcx, rax
call fcn.14001b250
nop
lea rdx, [rsp + 0x878]
lea rcx, [rsp + 0x8d8]
call fcn.1400157b0
test al, al
jne 0x14002170f
mov eax, ebx
inc ebx
cmp eax, 0x708
jl 0x140021744
mov dword [rsp + 0x50], 0xa
movsxd rdx, ebx
lea rax, str.Updater.HandleUpdate_LastUpdateDate_timeout_at_least
add rdx, rax
lea rcx, [rsp + 0x270]
call fcn.140006fe0
mov rcx, rax
call fcn.14002ff50
nop
lea rcx, [rsp + 0x8d8]
call fcn.140006c30
nop
lea rcx, [rsp + 0x878]
call fcn.140006c30
jmp 0x1400217a7
mov qword [rsp + 0x78], 0x3e8
lea rcx, [rsp + 0x78]
call fcn.140027ea0
jmp 0x140021620
mov qword [rsp + 0x40], 0x3e8
lea rcx, [rsp + 0x40]
call fcn.140027ea0
lea rdx, str.LastUpdateDate
lea rcx, [rsp + 0x248]
call fcn.140006d40
lea rdx, [rsp + 0x8d8]
mov rcx, rax
call fcn.14001b250
jmp 0x1400216c0
mov r15, qword [rsp + 0x68]
cmp dword [rsp + 0x50], 0
je 0x1400219c0
mov r13, qword [rsp + 0x68]
inc dword [r13 + 0x50]
mov edx, dword [r13 + 0x50]
lea rcx, [rsp + 0x898]
call fcn.140001f60
mov r15, rax
mov ebx, dword [rsp + 0x50]
mov edx, ebx
lea rcx, [rsp + 0x938]
call fcn.140001f60
nop
mov r8, rax
lea rdx, str.Updater.HandleUpdate_Exited_with_UpdateFailReason__
lea rcx, [rsp + 0xa78]
call fcn.140008aa0
nop
lea r8, str.__UpdateFailCount_
mov rdx, rax
lea rcx, [rsp + 0xa58]
call fcn.140008b70
nop
mov r8, r15
mov rdx, rax
lea rcx, [rsp + 0x580]
call fcn.140008bd0
mov rcx, rax
call fcn.14002ff50
nop
lea rcx, [rsp + 0xa58]
call fcn.140006eb0
nop
lea rcx, [rsp + 0xa78]
call fcn.140006eb0
nop
lea rcx, [rsp + 0x938]
call fcn.140006eb0
nop
lea rcx, [rsp + 0x898]
call fcn.140006eb0
lea rax, [rsp + 0x168]
mov qword [rsp + 0x58], rax
mov edx, dword [r13 + 0x50]
lea rcx, [rsp + 0x8b8]
call fcn.140001f60
mov r15, rax
mov edx, ebx
lea rcx, [rsp + 0x978]
call fcn.140001f60
nop
mov r8, rax
lea rdx, str.Exited_with_UpdateFailReason_
lea rcx, [rsp + 0x958]
call fcn.140008aa0
nop
lea r8, str._UpdateFailCount_
mov rdx, rax
lea rcx, [rsp + 0x918]
call fcn.140008b70
nop
mov r8, r15
mov rdx, rax
lea rcx, [rsp + 0x168]
call fcn.140008bd0
mov rbx, rax
lea rdx, str.HandleUpdate
lea rcx, [rsp + 0x2b0]
call fcn.140006fe0
nop
mov rdx, rbx
mov rcx, rax
call fcn.140019ed0
nop
lea rcx, [rsp + 0x918]
call fcn.140006eb0
nop
lea rcx, [rsp + 0x958]
call fcn.140006eb0
nop
lea rcx, [rsp + 0x978]
call fcn.140006eb0
nop
lea rcx, [rsp + 0x8b8]
call fcn.140006eb0
cmp dword [r13 + 0x50], 0xa
jle 0x1400219b0
mov dword [r13 + 0x50], edi
movabs rax, 0x861c46800
mov qword [r13 + 0x48], rax
lea rdx, str.Updater.HandleUpdate_Exited_with_UpdateFailReason_UpdateFailCount___10
lea rcx, [rsp + 0x8b8]
call fcn.140006fe0
mov rcx, rax
call fcn.14002ff50
lea rax, [rsp + 0x978]
mov qword [rsp + 0x58], rax
lea rdx, str.Exited_with_UpdateFailReason_UpdateFailCount___10
lea rcx, [rsp + 0x978]
call fcn.140006fe0
mov rbx, rax
lea rdx, str.HandleUpdate
lea rcx, [rsp + 0x958]
call fcn.140006fe0
nop
mov rdx, rbx
mov rcx, rax
call fcn.14001a180
jmp 0x1400219eb
movabs rax, 0x430e23400
mov qword [r13 + 0x48], rax
jmp 0x1400219eb
movabs rax, 0x861c46800
mov qword [r15 + 0x48], rax
lea rdx, str.Updater.HandleUpdate_Complete
lea rcx, [rsp + 0x8b8]
call fcn.140006fe0
mov rcx, rax
call fcn.14002ff50
nop
cmp qword [rsp + 0x6e8], 0
je 0x140021a20
lea rdx, [rsp + 0x6d8]
lea rcx, [rsp + 0x350]
call fcn.140025e80
or esi, 8
mov rcx, qword [rax]
movsxd rdx, dword [rcx + 4]
cmp dword [rdx + rax + 0x10], 0
jne 0x140021a20
mov bl, 1
jmp 0x140021a22
xor bl, bl
test sil, 8
je 0x140021a35
lea rcx, [rsp + 0x350]
call fcn.140005b70
test bl, bl
je 0x140021a73
lea r8, [rsp + 0x6d8]
lea rdx, str.Updater.HandleUpdate_Deleting_updater_file
lea rcx, [rsp + 0x918]
call fcn.140008b00
mov rcx, rax
call fcn.14002ff50
lea rcx, [rsp + 0x6d8]
call fcn.140006e80
mov rcx, rax
call fcn.14005406c
nop
jmp 0x140021a7d
lea rdx, str.Updater.HandleUpdate_Exit
lea rcx, [rsp + 0x2b0]
call fcn.140006fe0
mov rcx, rax
call fcn.14002ff50
nop
lea rcx, [rsp + 0x6d8]
call fcn.140006eb0
nop
lea rcx, [rsp + 0x798]
call fcn.140006eb0
nop
lea rcx, [rsp + 0x718]
call fcn.140006eb0
nop
jmp 0x140021ace
mov rcx, r14
call fcn.140006eb0
mov rcx, qword [rsp + 0xa98]
xor rcx, rsp
call fcn.1400407b0
lea r11, [rsp + 0xaa0]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
call fcn.140001380
nop
call fcn.140053304
nop
call fcn.140053304
nop
call fcn.140053304
nop
call fcn.140053304
nop
call fcn.1400012e0
call fcn.140053304
nop
call fcn.140053304
nop
call fcn.140053304
int3
call fcn.140001380
call fcn.140001380
call fcn.140053304
int3
call fcn.140001380
call fcn.140001380
nop
call fcn.140001380
nop
call fcn.140053304
int3
call fcn.140001380
call fcn.140053304
int3
call fcn.140053304
int3