Function at 0x14001fe70
Capabilities:
Download url
Receive data

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x230
mov rax, qword [0x1400850b0]
xor rax, rsp
mov qword [rsp + 0x228], rax
mov r14, r8
mov rsi, rdx
mov qword [rsp + 0x180], rdx
mov qword [rsp + 0x68], r8
lea rdx, [rsp + 0x188]
call fcn.14001e640
mov rdx, rax
mov rcx, r14
call fcn.140006ad0
mov rdx, qword [rsp + 0x1a0]
cmp rdx, 0x10
jb 0x14001ff03
inc rdx
mov rcx, qword [rsp + 0x188]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001fefe
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140020bcd
call fcn.140031c90
cmp qword [r14 + 0x10], 0
jne 0x14002002e
xor edi, edi
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], 0xf
lea r8d, [rdi + 0x33]
lea rdx, str.Updater.DownloadUpdater_error_getting_download_path
lea rcx, [rsp + 0x40]
call fcn.140007b00
lea rcx, [rsp + 0x40]
call fcn.1400283a0
lea rax, [rsp + 0x40]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], 0xf
lea r8d, [rdi + 0x27]
lea rdx, str.Error_getting_destination_download_path
lea rcx, [rsp + 0x40]
call fcn.140007b00
nop
mov qword [rsp + 0x1a8], rdi
mov qword [rsp + 0x1b8], rdi
mov qword [rsp + 0x1c0], 0xf
lea r8d, [rdi + 0xf]
lea rdx, str.DownloadUpdater
lea rcx, [rsp + 0x1a8]
call fcn.140007b00
nop
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x1a8]
call fcn.1400199a0
nop
mov rdx, qword [rsi + 0x18]
cmp rdx, 0x10
jb 0x14001fff7
inc rdx
mov rcx, qword [rsi]
cmp rdx, 0x1000
jb 0x14001fff2
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140020c03
mov rcx, r8
call fcn.140031c90
mov qword [rsi + 0x10], rdi
mov qword [rsi + 0x18], 0xf
mov byte [rsi], 0
mov eax, 5
mov rcx, qword [rsp + 0x228]
xor rcx, rsp
call fcn.140031c70
add rsp, 0x230
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov rdx, r14
cmp qword [r14 + 0x18], 0x10
jb 0x14002003b
mov rdx, qword [r14]
lea rcx, [rsp + 0x70]
call fcn.1400261d0
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea r12, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x70], r12
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rsp + rcx + 0x6c], edx
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
mov ebx, dword [rsp + rcx + 0x80]
mov qword [rsp + rcx + 0x70], r12
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rsp + rcx + 0x6c], edx
lea rcx, [rsp + 0x80]
call fcn.1400063a0
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x70], rax
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x18]
mov dword [rsp + rcx + 0x6c], edx
lea r13, vtable.std::ios_base.0
mov qword [rsp + 0x120], r13
lea rcx, [rsp + 0x120]
call fcn.140030240
nop
test ebx, ebx
jne 0x14002015b
mov rcx, r14
cmp qword [r14 + 0x18], 0x10
jb 0x1400200f5
mov rcx, qword [r14]
call fcn.14004552c
mov rcx, qword [r14 + 0x10]
movabs r15, 0x7fffffffffffffff
mov rax, r15
sub rax, rcx
cmp rax, 0x31
jb 0x140020bd3
mov rax, r14
cmp qword [r14 + 0x18], 0x10
jb 0x140020125
mov rax, qword [r14]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x31
lea r9, str.Updater.DownloadUpdater_Deleting_old_update_from
lea rcx, [rsp + 0x188]
call fcn.14000a230
lea rcx, [rsp + 0x188]
call fcn.1400283a0
jmp 0x140020165
movabs r15, 0x7fffffffffffffff
jmp 0x14002018c
xor edi, edi
mov ebx, edi
mov rcx, qword [rsi + 0x10]
mov rax, r15
sub rax, rcx
cmp rax, 0x12
jb 0x140020bc7
mov rax, rsi
cmp qword [rsi + 0x18], 0x10
jb 0x1400201b1
mov rax, qword [rsi]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x12
lea r9, str.About_to_download
lea rcx, [rsp + 0x188]
call fcn.14000a230
nop
mov r8d, 4
lea rdx, str._to
lea rcx, [rsp + 0x188]
call fcn.140007c60
mov qword [rsp + 0x1c8], rdi
mov qword [rsp + 0x1d8], rdi
mov qword [rsp + 0x1e0], rdi
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x1c8], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x1d8], xmm1
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov rdx, r14
cmp qword [r14 + 0x18], 0x10
jb 0x14002023e
mov rdx, qword [r14]
mov r8, qword [r14 + 0x10]
lea rcx, [rsp + 0x1c8]
call fcn.140007c60
mov qword [rsp + 0x1a8], rdi
mov qword [rsp + 0x1b8], rdi
mov qword [rsp + 0x1c0], rdi
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x1a8], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x1b8], xmm1
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
lea rcx, [rsp + 0x1a8]
call fcn.1400283a0
nop
mov rdx, qword [rsp + 0x1e0]
cmp rdx, 0x10
jb 0x1400202de
inc rdx
mov rcx, qword [rsp + 0x1c8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400202d9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140020bd9
call fcn.140031c90
mov qword [rsp + 0x1d8], rdi
mov qword [rsp + 0x1e0], 0xf
mov byte [rsp + 0x1c8], 0
mov rdx, qword [rsp + 0x1a0]
cmp rdx, 0x10
jb 0x14002033d
inc rdx
mov rcx, qword [rsp + 0x188]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140020338
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140020bdf
call fcn.140031c90
lea rax, [rsp + 0x1a8]
mov qword [rsp + 0x60], rax
mov rcx, qword [rsi + 0x10]
mov rax, r15
sub rax, rcx
cmp rax, 0x12
jb 0x140020c1a
mov rax, rsi
cmp qword [rsi + 0x18], 0x10
jb 0x14002036b
mov rax, qword [rsi]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x12
lea r9, str.About_to_download
lea rcx, [rsp + 0x188]
call fcn.14000a230
nop
mov r8d, 4
lea rdx, str._to
lea rcx, [rsp + 0x188]
call fcn.140007c60
mov qword [rsp + 0x1c8], rdi
mov qword [rsp + 0x1d8], rdi
mov qword [rsp + 0x1e0], rdi
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x1c8], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x1d8], xmm1
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov rdx, r14
cmp qword [r14 + 0x18], 0x10
jb 0x1400203f8
mov rdx, qword [r14]
mov r8, qword [r14 + 0x10]
lea rcx, [rsp + 0x1c8]
call fcn.140007c60
mov qword [rsp + 0x1a8], rdi
mov qword [rsp + 0x1b8], rdi
mov qword [rsp + 0x1c0], rdi
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x1a8], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x1b8], xmm1
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], 0xf
mov r8d, 0x18
lea rdx, str.Updater::DownloadUpdater
lea rcx, [rsp + 0x40]
call fcn.140007b00
nop
lea rdx, [rsp + 0x1a8]
lea rcx, [rsp + 0x40]
call fcn.1400196f0
nop
mov rdx, qword [rsp + 0x1e0]
cmp rdx, 0x10
jb 0x1400204c8
inc rdx
mov rcx, qword [rsp + 0x1c8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400204c3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140020be5
call fcn.140031c90
mov qword [rsp + 0x1d8], rdi
mov qword [rsp + 0x1e0], 0xf
mov byte [rsp + 0x1c8], 0
mov rdx, qword [rsp + 0x1a0]
cmp rdx, 0x10
jb 0x140020527
inc rdx
mov rcx, qword [rsp + 0x188]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140020522
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140020beb
call fcn.140031c90
mov r8, r14
cmp qword [r14 + 0x18], 0x10
jb 0x140020534
mov r8, qword [r14]
mov rdx, rsi
cmp qword [rsi + 0x18], 0x10
jb 0x140020541
mov rdx, qword [rsi]
mov qword [rsp + 0x20], rdi
xor r9d, r9d
xor ecx, ecx
call qword [sym.imp.urlmon.dll_URLDownloadToFileA]
mov r8d, eax
inc ebx
test eax, eax
je 0x1400208d3
cmp ebx, 3
jl 0x140020190
lea rax, [rsp + 0x40]
mov qword [rsp + 0x60], rax
lea r9, [rsp + 0x1dd]
test r8d, r8d
jns 0x1400205c0
neg r8d
dec r9
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8d, edx
test edx, edx
jne 0x140020581
dec r9
mov byte [r9], 0x2d
jmp 0x1400205ea
dec r9
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8d, edx
test edx, edx
jne 0x1400205c0
mov qword [rsp + 0x1a8], rdi
mov qword [rsp + 0x1b8], rdi
mov qword [rsp + 0x1c0], 0xf
mov byte [rsp + 0x1a8], 0
lea rax, [rsp + 0x1dd]
cmp r9, rax
je 0x140020637
lea r8, [rsp + 0x1dd]
sub r8, r9
mov rdx, r9
lea rcx, [rsp + 0x1a8]
call fcn.140007b00
nop
mov r9d, 0xb
lea r8, str.Error_code
lea rcx, [rsp + 0x1a8]
call fcn.14000b050
mov qword [rsp + 0x208], rdi
mov qword [rsp + 0x218], rdi
mov qword [rsp + 0x220], rdi
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x208], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x218], xmm1
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov r8d, 0x19
lea rdx, str._while_downloading_from:
lea rcx, [rsp + 0x208]
call fcn.140007c60
mov qword [rsp + 0x1e8], rdi
mov qword [rsp + 0x1f8], rdi
mov qword [rsp + 0x200], rdi
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x1e8], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x1f8], xmm1
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov rdx, rsi
cmp qword [rsi + 0x18], 0x10
jb 0x1400206f4
mov rdx, qword [rsi]
mov r8, qword [rsi + 0x10]
lea rcx, [rsp + 0x1e8]
call fcn.140007c60
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], rdi
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x40], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x50], xmm1
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov qword [rsp + 0x188], rdi
mov qword [rsp + 0x198], rdi
mov qword [rsp + 0x1a0], 0xf
mov r8d, 0xf
lea rdx, str.DownloadUpdater
lea rcx, [rsp + 0x188]
call fcn.140007b00
nop
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x188]
call fcn.1400199a0
nop
mov rdx, qword [rsp + 0x200]
cmp rdx, 0x10
jb 0x1400207c1
inc rdx
mov rcx, qword [rsp + 0x1e8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400207bc
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140020bf1
call fcn.140031c90
mov qword [rsp + 0x1f8], rdi
mov qword [rsp + 0x200], 0xf
mov byte [rsp + 0x1e8], 0
mov rdx, qword [rsp + 0x220]
cmp rdx, 0x10
jb 0x140020820
inc rdx
mov rcx, qword [rsp + 0x208]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002081b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140020bf7
call fcn.140031c90
mov qword [rsp + 0x218], rdi
mov qword [rsp + 0x220], 0xf
mov byte [rsp + 0x208], 0
mov rdx, qword [rsp + 0x1c0]
cmp rdx, 0x10
jb 0x140020880
inc rdx
mov rcx, qword [rsp + 0x1a8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002087a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140020bfd
call fcn.140031c90
nop
mov rdx, qword [rsi + 0x18]
cmp rdx, 0x10
jb 0x1400208ba
inc rdx
mov rcx, qword [rsi]
cmp rdx, 0x1000
jb 0x1400208b5
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140020c03
mov rcx, r8
call fcn.140031c90
mov qword [rsi + 0x10], rdi
mov qword [rsi + 0x18], 0xf
mov byte [rsi], 0
mov eax, 6
jmp 0x14002000b
mov qword [rsp + 0x188], rdi
mov qword [rsp + 0x198], rdi
mov qword [rsp + 0x1a0], 0xf
mov r8d, 0x11
lea rdx, str.Download_complete
lea rcx, [rsp + 0x188]
call fcn.140007b00
lea rcx, [rsp + 0x188]
call fcn.1400283a0
nop
mov rdx, r14
cmp qword [r14 + 0x18], 0x10
jb 0x140020924
mov rdx, qword [r14]
lea rcx, [rsp + 0x70]
call fcn.1400261d0
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
mov qword [rsp + rcx + 0x70], r12
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rsp + rcx + 0x6c], edx
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
mov ebx, dword [rsp + rcx + 0x80]
mov qword [rsp + rcx + 0x70], r12
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rsp + rcx + 0x6c], edx
lea rcx, [rsp + 0x80]
call fcn.1400063a0
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x70], rax
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x18]
mov dword [rsp + rcx + 0x6c], edx
mov qword [rsp + 0x120], r13
lea rcx, [rsp + 0x120]
call fcn.140030240
nop
test ebx, ebx
je 0x140020ba1
mov rcx, qword [r14 + 0x10]
mov rax, r15
sub rax, rcx
cmp rax, 0x28
jb 0x140020c09
mov rax, r14
cmp qword [r14 + 0x18], 0x10
jb 0x1400209e8
mov rax, qword [r14]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x28
lea r9, str.Updater.DownloadUpdater_downloaded_file
lea rcx, [rsp + 0x188]
call fcn.14000a230
nop
mov r8d, 0xf
lea rdx, str._does_not_exist
lea rcx, [rsp + 0x188]
call fcn.140007c60
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], rdi
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x40], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x50], xmm1
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
lea rcx, [rsp + 0x40]
call fcn.1400283a0
nop
mov rdx, qword [rsp + 0x1a0]
cmp rdx, 0x10
jb 0x140020aa7
inc rdx
mov rcx, qword [rsp + 0x188]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140020aa2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140020c0e
call fcn.140031c90
lea rax, [rsp + 0x40]
mov qword [rsp + 0x60], rax
mov rax, qword [r14 + 0x10]
sub r15, rax
cmp r15, 0x10
jb 0x140020c14
cmp qword [r14 + 0x18], 0x10
jb 0x140020acc
mov r14, qword [r14]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], 0x10
lea r9, str.Downloaded_file
lea rcx, [rsp + 0x1a8]
call fcn.14000a230
nop
mov r8d, 0xf
lea rdx, str._does_not_exist
lea rcx, [rsp + 0x1a8]
call fcn.140007c60
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], rdi
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x40], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x50], xmm1
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov qword [rsp + 0x188], rdi
mov qword [rsp + 0x198], rdi
mov qword [rsp + 0x1a0], 0xf
lea rdx, str.DownloadUpdater
lea rcx, [rsp + 0x188]
call fcn.140007ae0
nop
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x188]
call fcn.1400199a0
nop
lea rcx, [rsp + 0x1a8]
call fcn.140006a70
nop
mov rcx, rsi
call fcn.140006a70
mov eax, 7
jmp 0x14002000b
mov rcx, rsi
call fcn.140006a70
xor eax, eax
jmp 0x14002000b
call fcn.140001350
int3
call fcn.1400447c4
nop
call fcn.140001350
nop
call fcn.1400447c4
nop
call fcn.1400447c4
nop
call fcn.1400447c4
nop
call fcn.1400447c4
nop
call fcn.1400447c4
nop
call fcn.1400447c4
nop
call fcn.1400447c4
nop
call fcn.1400447c4
nop
call fcn.140001350
call fcn.1400447c4
int3
call fcn.140001350
nop
call fcn.140001350
int3