Function at 0x1400219c0
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 [0x1400920a0]
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.140020210
mov rdx, rax
mov rcx, r14
call fcn.140007010
mov rdx, qword [rsp + 0x1a0]
cmp rdx, 0x10
jb 0x140021a53
inc rdx
mov rcx, qword [rsp + 0x188]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140021a4e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400226d6
call fcn.14003cd00
cmp qword [r14 + 0x10], 0
jne 0x140021b7e
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.140007e00
lea rcx, [rsp + 0x40]
call fcn.14002e1d0
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.140007e00
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.140007e00
nop
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x1a8]
call fcn.14001a090
nop
mov rdx, qword [rsi + 0x18]
cmp rdx, 0x10
jb 0x140021b47
inc rdx
mov rcx, qword [rsi]
cmp rdx, 0x1000
jb 0x140021b42
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14002270c
mov rcx, r8
call fcn.14003cd00
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.14003cce0
add rsp, 0x230
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov rdx, r14
lea rcx, [rsp + 0x70]
call fcn.1400291f0
mov rcx, qword [rax]
movsxd rdx, dword [rcx + 4]
mov ebx, dword [rdx + rax + 0x10]
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea r13, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x70], r13
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.140006750
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 r12, vtable.std::ios_base.0
mov qword [rsp + 0x120], r12
lea rcx, [rsp + 0x120]
call fcn.14003b250
nop
test ebx, ebx
jne 0x140021c84
mov rcx, r14
cmp qword [r14 + 0x18], 0x10
jb 0x140021c1e
mov rcx, qword [r14]
call fcn.14005059c
mov rcx, qword [r14 + 0x10]
movabs r15, 0x7fffffffffffffff
mov rax, r15
sub rax, rcx
cmp rax, 0x31
jb 0x1400226dc
mov rax, r14
cmp qword [r14 + 0x18], 0x10
jb 0x140021c4e
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.14000a670
lea rcx, [rsp + 0x188]
call fcn.14002e1d0
jmp 0x140021c8e
movabs r15, 0x7fffffffffffffff
jmp 0x140021cb5
xor edi, edi
mov ebx, edi
nop dword [rax]
mov rcx, qword [rsi + 0x10]
mov rax, r15
sub rax, rcx
cmp rax, 0x12
jb 0x1400226d0
mov rax, rsi
cmp qword [rsi + 0x18], 0x10
jb 0x140021ce1
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.14000a670
nop
mov r8d, 4
lea rdx, str._to
lea rcx, [rsp + 0x188]
call fcn.140007f60
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 0x140021d6e
mov rdx, qword [r14]
mov r8, qword [r14 + 0x10]
lea rcx, [rsp + 0x1c8]
call fcn.140007f60
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.14002e1d0
nop
mov rdx, qword [rsp + 0x1e0]
cmp rdx, 0x10
jb 0x140021e0e
inc rdx
mov rcx, qword [rsp + 0x1c8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140021e09
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400226e2
call fcn.14003cd00
mov qword [rsp + 0x1d8], rdi
mov qword [rsp + 0x1e0], 0xf
mov byte [rsp + 0x1c8], 0
mov rdx, qword [rsp + 0x1a0]
cmp rdx, 0x10
jb 0x140021e6d
inc rdx
mov rcx, qword [rsp + 0x188]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140021e68
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400226e8
call fcn.14003cd00
lea rax, [rsp + 0x1a8]
mov qword [rsp + 0x60], rax
mov rcx, qword [rsi + 0x10]
mov rax, r15
sub rax, rcx
cmp rax, 0x12
jb 0x140022723
mov rax, rsi
cmp qword [rsi + 0x18], 0x10
jb 0x140021e9b
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.14000a670
nop
mov r8d, 4
lea rdx, str._to
lea rcx, [rsp + 0x188]
call fcn.140007f60
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 0x140021f28
mov rdx, qword [r14]
mov r8, qword [r14 + 0x10]
lea rcx, [rsp + 0x1c8]
call fcn.140007f60
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.140007e00
nop
lea rdx, [rsp + 0x1a8]
lea rcx, [rsp + 0x40]
call fcn.140019de0
nop
mov rdx, qword [rsp + 0x1e0]
cmp rdx, 0x10
jb 0x140021ff8
inc rdx
mov rcx, qword [rsp + 0x1c8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140021ff3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400226ee
call fcn.14003cd00
mov qword [rsp + 0x1d8], rdi
mov qword [rsp + 0x1e0], 0xf
mov byte [rsp + 0x1c8], 0
mov rdx, qword [rsp + 0x1a0]
cmp rdx, 0x10
jb 0x140022057
inc rdx
mov rcx, qword [rsp + 0x188]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140022052
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400226f4
call fcn.14003cd00
mov r8, r14
cmp qword [r14 + 0x18], 0x10
jb 0x140022064
mov r8, qword [r14]
mov rdx, rsi
cmp qword [rsi + 0x18], 0x10
jb 0x140022071
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 0x140022403
cmp ebx, 3
jl 0x140021cc0
lea rax, [rsp + 0x40]
mov qword [rsp + 0x60], rax
lea r9, [rsp + 0x1dd]
test r8d, r8d
jns 0x1400220f0
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 0x1400220b1
dec r9
mov byte [r9], 0x2d
jmp 0x14002211a
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 0x1400220f0
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 0x140022167
lea r8, [rsp + 0x1dd]
sub r8, r9
mov rdx, r9
lea rcx, [rsp + 0x1a8]
call fcn.140007e00
nop
mov r9d, 0xb
lea r8, str.Error_code
lea rcx, [rsp + 0x1a8]
call fcn.14000b490
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.140007f60
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 0x140022224
mov rdx, qword [rsi]
mov r8, qword [rsi + 0x10]
lea rcx, [rsp + 0x1e8]
call fcn.140007f60
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.140007e00
nop
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x188]
call fcn.14001a090
nop
mov rdx, qword [rsp + 0x200]
cmp rdx, 0x10
jb 0x1400222f1
inc rdx
mov rcx, qword [rsp + 0x1e8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400222ec
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400226fa
call fcn.14003cd00
mov qword [rsp + 0x1f8], rdi
mov qword [rsp + 0x200], 0xf
mov byte [rsp + 0x1e8], 0
mov rdx, qword [rsp + 0x220]
cmp rdx, 0x10
jb 0x140022350
inc rdx
mov rcx, qword [rsp + 0x208]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002234b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022700
call fcn.14003cd00
mov qword [rsp + 0x218], rdi
mov qword [rsp + 0x220], 0xf
mov byte [rsp + 0x208], 0
mov rdx, qword [rsp + 0x1c0]
cmp rdx, 0x10
jb 0x1400223b0
inc rdx
mov rcx, qword [rsp + 0x1a8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400223aa
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022706
call fcn.14003cd00
nop
mov rdx, qword [rsi + 0x18]
cmp rdx, 0x10
jb 0x1400223ea
inc rdx
mov rcx, qword [rsi]
cmp rdx, 0x1000
jb 0x1400223e5
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14002270c
mov rcx, r8
call fcn.14003cd00
mov qword [rsi + 0x10], rdi
mov qword [rsi + 0x18], 0xf
mov byte [rsi], 0
mov eax, 6
jmp 0x140021b5b
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.140007e00
lea rcx, [rsp + 0x188]
call fcn.14002e1d0
nop
mov rdx, r14
lea rcx, [rsp + 0x70]
call fcn.1400291f0
mov rcx, qword [rax]
movsxd rdx, dword [rcx + 4]
mov ebx, dword [rdx + rax + 0x10]
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
mov qword [rsp + rcx + 0x70], r13
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.140006750
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], r12
lea rcx, [rsp + 0x120]
call fcn.14003b250
nop
test ebx, ebx
je 0x1400226aa
mov rcx, qword [r14 + 0x10]
mov rax, r15
sub rax, rcx
cmp rax, 0x28
jb 0x140022712
mov rax, r14
cmp qword [r14 + 0x18], 0x10
jb 0x1400224f1
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.14000a670
nop
mov r8d, 0xf
lea rdx, str._does_not_exist
lea rcx, [rsp + 0x188]
call fcn.140007f60
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.14002e1d0
nop
mov rdx, qword [rsp + 0x1a0]
cmp rdx, 0x10
jb 0x1400225b0
inc rdx
mov rcx, qword [rsp + 0x188]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400225ab
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022717
call fcn.14003cd00
lea rax, [rsp + 0x40]
mov qword [rsp + 0x60], rax
mov rax, qword [r14 + 0x10]
sub r15, rax
cmp r15, 0x10
jb 0x14002271d
cmp qword [r14 + 0x18], 0x10
jb 0x1400225d5
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.14000a670
nop
mov r8d, 0xf
lea rdx, str._does_not_exist
lea rcx, [rsp + 0x1a8]
call fcn.140007f60
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.140007de0
nop
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x188]
call fcn.14001a090
nop
lea rcx, [rsp + 0x1a8]
call fcn.140006fb0
nop
mov rcx, rsi
call fcn.140006fb0
mov eax, 7
jmp 0x140021b5b
mov rcx, rsi
call fcn.140006fb0
xor eax, eax
jmp 0x140021b5b
call fcn.140001350
int3
call fcn.14004f834
nop
call fcn.140001350
nop
call fcn.14004f834
nop
call fcn.14004f834
nop
call fcn.14004f834
nop
call fcn.14004f834
nop
call fcn.14004f834
nop
call fcn.14004f834
nop
call fcn.14004f834
nop
call fcn.14004f834
nop
call fcn.140001350
call fcn.14004f834
int3
call fcn.140001350
nop
call fcn.140001350
int3