Function at 0x140020810
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 [0x14009b0a0]
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 0x140020927
movabs rax, 0x7fffffffffffffff
sub rax, rcx
cmp rax, 1
jb 0x1400222d3
mov rax, r14
cmp qword [rdx + 0x18], 0x10
jb 0x14002088b
mov rax, qword [rdx]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 1
lea r9, [0x14008acf0]
lea rcx, [rsp + 0x7f8]
call fcn.14000a730
nop
mov dword [rsp + 0x4c], 0x11
mov r8d, 1
lea rdx, [0x14008acec]
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 0x14002096f
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, [0x14008512b]
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.1400307e0
nop
test sil, 4
je 0x140020a40
and esi, 0xfffffffb
mov rdx, qword [rsp + 0x770]
cmp rdx, 0x10
jb 0x140020a24
inc rdx
mov rcx, qword [rsp + 0x758]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140020a1f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400222d9
call fcn.140041080
mov qword [rsp + 0x768], rdi
mov qword [rsp + 0x770], 0xf
mov byte [rsp + 0x758], 0
test sil, 2
je 0x140020aa8
and esi, 0xfffffffd
mov rdx, qword [rsp + 0x790]
cmp rdx, 0x10
jb 0x140020a8c
inc rdx
mov rcx, qword [rsp + 0x778]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140020a87
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400222df
call fcn.140041080
mov qword [rsp + 0x788], rdi
mov qword [rsp + 0x790], 0xf
mov byte [rsp + 0x778], 0
test sil, 1
je 0x140020b10
and esi, 0xfffffffe
mov rdx, qword [rsp + 0x810]
cmp rdx, 0x10
jb 0x140020af4
inc rdx
mov rcx, qword [rsp + 0x7f8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140020aef
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400222e5
call fcn.140041080
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 0x140020c3f
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.1400307e0
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 0x140020c2a
mov rcx, qword [r14]
inc rdx
cmp rdx, 0x1000
jb 0x140020c25
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1400222eb
mov rcx, r8
call fcn.140041080
mov qword [r14 + 0x10], rdi
mov qword [r14 + 0x18], 0xf
mov byte [r14], 0
jmp 0x1400222a6
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, [0x14008512b]
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.140031570
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 0x140020cfd
mov r12, qword [r15]
cmp r13, 0x10
jae 0x140020d21
movups xmm0, xmmword [r12]
movups xmmword [rsp + 0x6d8], xmm0
mov qword [rsp + 0x6f0], 0xf
jmp 0x140020da3
mov rbx, r13
or rbx, 0xf
movabs rax, 0x7fffffffffffffff
cmp rbx, rax
cmova rbx, rax
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x140020d75
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x1400222f1
mov rcx, rax
call fcn.140041088
mov rcx, rax
test rax, rax
je 0x1400222f6
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x140020d84
test rcx, rcx
je 0x140020d81
call fcn.140041088
jmp 0x140020d84
mov rax, rdi
mov qword [rsp + 0x6d8], rax
lea r8, [r13 + 1]
mov rdx, r12
mov rcx, rax
call fcn.140043510
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.140027c90
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.14003f5d4
nop
test ebx, ebx
je 0x14002107b
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, [0x140089fa8]
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.14001b230
test al, al
je 0x140020fbc
cmp qword [rsp + 0x748], 0
je 0x140020fbc
lea rdx, [rsp + 0x738]
lea rcx, [rsp + 0x858]
call fcn.1400323b0
mov rdx, rax
mov rcx, r14
call fcn.140006f10
mov rdx, qword [rsp + 0x870]
cmp rdx, 0x10
jb 0x140020f9e
inc rdx
mov rcx, qword [rsp + 0x858]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140020f99
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400222fc
call fcn.140041080
mov qword [rsp + 0x868], rdi
mov qword [rsp + 0x870], 0xf
mov byte [rsp + 0x858], 0
jmp 0x140020fe3
call fcn.140003370
lea rdx, [rax + 0x100]
cmp r14, rdx
je 0x140020fe3
mov r8, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x140020fdb
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 0x14002105f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x738]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002105a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022302
call fcn.140041080
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 0x140022308
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.1400307e0
cmp qword [r14 + 0x10], 0
jne 0x140021323
call fcn.140030930
mov rdx, rax
call fcn.14001fb80
lea r9, [rsp + 0x50]
lea r8, [rsp + 0x718]
mov rdx, r14
call fcn.1400234f0
test al, al
je 0x1400212e0
mov rcx, qword [r14 + 0x10]
mov rax, r12
sub rax, rcx
cmp rax, 0x26
jb 0x14002230d
mov rax, r14
cmp qword [r14 + 0x18], 0x10
jb 0x140021145
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, [0x14008acec]
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.1400307e0
nop
mov rdx, qword [rsp + 0x7f0]
cmp rdx, 0x10
jb 0x14002121d
inc rdx
mov rcx, qword [rsp + 0x7d8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140021218
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022312
call fcn.140041080
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 0x140022318
mov rax, r14
cmp qword [r14 + 0x18], 0x10
jb 0x140021267
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 0x140021323
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.1400307e0
mov rcx, qword [r14 + 0x10]
mov rax, r12
sub rax, rcx
cmp rax, 0xc
jb 0x14002231d
mov rax, r14
cmp qword [r14 + 0x18], 0x10
jb 0x140021344
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.1400307e0
nop
mov rdx, r15
cmp qword [r15 + 0x18], 0x10
jb 0x14002138e
mov rdx, qword [r15]
lea rcx, [rsp + 0x350]
call fcn.140027c90
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.14003f5d4
nop
test ebx, ebx
jne 0x1400214c8
mov rcx, r15
cmp qword [r15 + 0x18], 0x10
jb 0x140021468
mov rcx, qword [r15]
call fcn.14005491c
mov rcx, qword [r15 + 0x10]
mov rax, r12
sub rax, rcx
cmp rax, 0x2b
jb 0x140022323
cmp qword [r15 + 0x18], 0x10
jb 0x14002148b
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.1400307e0
nop
mov r15, qword [rsp + 0x68]
jmp 0x1400214f1
cmp qword [rsp + 0x6e8], 0
jne 0x14002154c
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.1400307e0
mov dword [rsp + 0x50], 5
jmp 0x140021f82
cmp qword [r14 + 0x10], 0
je 0x140021f77
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.1400307e0
mov r15d, edi
movabs r13, 0x7ffffff207b8a7fe
call fcn.14001fc70
mov rbx, rax
call fcn.140030930
sub rax, rbx
cmp rax, 0x47868c00
jge 0x1400216a5
mov eax, r15d
inc r15d
cmp eax, 0x3c
jl 0x1400217b1
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.1400307e0
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 0x140021a77
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.140031900
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 0x14002176f
call fcn.140043de0
test eax, eax
mov byte [rsp + 0x48], 1
je 0x140021774
mov byte [rsp + 0x48], 0
cmp byte [rsp + 0x60], 0
je 0x140021849
lea rdx, [r13 + 1]
mov rax, rbx
cmp rdx, 0x1000
jb 0x140021831
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022329
jmp 0x140021831
call fcn.140040354
mov rbx, rax
call fcn.140040338
cmp rbx, 0x989680
jne 0x1400217cd
imul rax, rax, 0x64
jmp 0x1400217eb
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
imul rcx, rcx, 0x3b9aca00
add rax, rcx
cmp rax, r13
jg 0x140021817
movabs rcx, 0xdf8475800
add rcx, rax
mov qword [rsp + 0x80], rcx
lea rcx, [rsp + 0x80]
call fcn.1400293e0
jmp 0x1400215a7
mov qword [rsp + 0x80], r12
lea rcx, [rsp + 0x80]
call fcn.1400293e0
jmp 0x1400215a7
mov rcx, rbx
call fcn.140041080
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 0x140021a77
movabs rax, 0x7fffffffffffffff
sub rax, r15
cmp rax, 0x19
jb 0x14002232f
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.1400307e0
nop
mov rdx, qword [rsp + 0x710]
cmp rdx, 0x10
jb 0x140021978
inc rdx
mov rcx, qword [rsp + 0x6f8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140021973
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022334
call fcn.140041080
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.140031570
cmp qword [rax + 0x18], 0x10
jb 0x140021a03
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 0x140021a57
inc rdx
mov rcx, qword [rsp + 0x838]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140021a52
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002233a
call fcn.140041080
mov qword [rsp + 0x848], rdi
mov qword [rsp + 0x850], 0xf
mov byte [rsp + 0x838], 0
test ebx, ebx
jne 0x140021aa3
mov rdx, r14
lea rcx, [rsp + 0x480]
call fcn.140007020
lea r8, [rsp + 0x6d8]
mov rdx, rax
call fcn.140022350
mov dword [rsp + 0x50], eax
test eax, eax
jne 0x140021f72
lea rdx, [rsp + 0x6d8]
lea rcx, [rsp + 0x460]
call fcn.140007020
mov rdx, rax
call fcn.140022fd0
mov dword [rsp + 0x50], eax
test eax, eax
jne 0x140021f72
movzx r15d, byte [rsp + 0x49]
test r15b, r15b
jne 0x140021b17
lea rax, [rsp + 0x4a0]
mov qword [rsp + 0x40], rax
mov rdx, r14
lea rcx, [rsp + 0x4a0]
call fcn.140032550
mov rbx, rax
lea rdx, str.UpdaterDownloadUrl
lea rcx, [rsp + 0x4c0]
call fcn.140006d40
nop
mov rdx, rbx
mov rcx, rax
call fcn.14001b5c0
lea rdx, [0x140089fa8]
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.14001b230
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, [0x1400856b8]
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.1400307e0
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, [0x1400856b8]
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.1400326e0
test al, al
jne 0x140021db1
lea rax, [rsp + 0x228]
mov qword [rsp + 0x58], rax
mov edx, dword [rsp + 0x70]
lea rcx, [rsp + 0x8f8]
call fcn.14001e740
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 0x140021f82
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.1400307e0
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.140033960
cmp al, 1
jne 0x140021e37
mov eax, ebx
inc ebx
cmp eax, 0x12c
jl 0x140021efc
lea rdx, str.Updater.HandleUpdate_updater_process_still_running
lea rcx, [rsp + 0x9b8]
call fcn.140006fe0
mov rcx, rax
call fcn.1400307e0
lea rdx, str.Updater.HandleUpdate_Checking_for_LastUpdateDate
lea rcx, [rsp + 0x290]
call fcn.140006fe0
mov rcx, rax
call fcn.1400307e0
mov ebx, edi
lea rdx, [0x140089fa8]
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.14001b230
nop
lea rdx, [rsp + 0x878]
lea rcx, [rsp + 0x8d8]
call fcn.1400157b0
test al, al
jne 0x140021edf
mov eax, ebx
inc ebx
cmp eax, 0x708
jl 0x140021f14
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.1400307e0
nop
lea rcx, [rsp + 0x8d8]
call fcn.140006c30
nop
lea rcx, [rsp + 0x878]
call fcn.140006c30
jmp 0x140021f77
mov qword [rsp + 0x78], 0x3e8
lea rcx, [rsp + 0x78]
call fcn.140028670
jmp 0x140021df0
mov qword [rsp + 0x40], 0x3e8
lea rcx, [rsp + 0x40]
call fcn.140028670
lea rdx, str.LastUpdateDate
lea rcx, [rsp + 0x248]
call fcn.140006d40
lea rdx, [rsp + 0x8d8]
mov rcx, rax
call fcn.14001b230
jmp 0x140021e90
mov r15, qword [rsp + 0x68]
cmp dword [rsp + 0x50], 0
je 0x140022190
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.1400307e0
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 0x140022180
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.1400307e0
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 0x1400221bb
movabs rax, 0x430e23400
mov qword [r13 + 0x48], rax
jmp 0x1400221bb
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.1400307e0
nop
cmp qword [rsp + 0x6e8], 0
je 0x1400221f0
lea rdx, [rsp + 0x6d8]
lea rcx, [rsp + 0x350]
call fcn.140026650
or esi, 8
mov rcx, qword [rax]
movsxd rdx, dword [rcx + 4]
cmp dword [rdx + rax + 0x10], 0
jne 0x1400221f0
mov bl, 1
jmp 0x1400221f2
xor bl, bl
test sil, 8
je 0x140022205
lea rcx, [rsp + 0x350]
call fcn.140005b70
test bl, bl
je 0x140022243
lea r8, [rsp + 0x6d8]
lea rdx, str.Updater.HandleUpdate_Deleting_updater_file
lea rcx, [rsp + 0x918]
call fcn.140008b00
mov rcx, rax
call fcn.1400307e0
lea rcx, [rsp + 0x6d8]
call fcn.140006e80
mov rcx, rax
call fcn.14005491c
nop
jmp 0x14002224d
lea rdx, str.Updater.HandleUpdate_Exit
lea rcx, [rsp + 0x2b0]
call fcn.140006fe0
mov rcx, rax
call fcn.1400307e0
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 0x14002229e
mov rcx, r14
call fcn.140006eb0
mov rcx, qword [rsp + 0xa98]
xor rcx, rsp
call fcn.140041060
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.140053bb4
nop
call fcn.140053bb4
nop
call fcn.140053bb4
nop
call fcn.140053bb4
nop
call fcn.1400012e0
call fcn.140053bb4
nop
call fcn.140053bb4
nop
call fcn.140053bb4
int3
call fcn.140001380
call fcn.140001380
call fcn.140053bb4
int3
call fcn.140001380
call fcn.140001380
nop
call fcn.140001380
nop
call fcn.140053bb4
int3
call fcn.140001380
call fcn.140053bb4
int3
call fcn.140053bb4
int3