Function at 0x140021d70
Capabilities:
Download url
Receive data

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x230
mov rax, qword [0x1400950a0]
xor rax, rsp
mov qword [rsp + 0x228], rax
mov rsi, r8
mov rdi, rdx
mov qword [rsp + 0x180], rdx
mov qword [rsp + 0x68], r8
mov rdx, r8
lea rcx, [rsp + 0x70]
call fcn.14002acc0
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 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
lea rcx, [rsp + 0x80]
call fcn.140006750
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea r13, vtable.std::basic_istream_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 - 0x18]
mov dword [rsp + rcx + 0x6c], edx
lea r15, vtable.std::ios_base.0
mov qword [rsp + 0x120], r15
lea rcx, [rsp + 0x120]
call fcn.14003ccd0
nop
test ebx, ebx
jne 0x140021eb5
mov rcx, rsi
cmp qword [rsi + 0x18], 0x10
jb 0x140021e4f
mov rcx, qword [rsi]
call fcn.14005201c
mov rcx, qword [rsi + 0x10]
movabs r14, 0x7fffffffffffffff
mov rax, r14
sub rax, rcx
cmp rax, 0x31
jb 0x1400229fb
mov rax, rsi
cmp qword [rsi + 0x18], 0x10
jb 0x140021e7f
mov rax, qword [rsi]
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.14000a6b0
lea rcx, [rsp + 0x188]
call fcn.14002f780
jmp 0x140021ebf
movabs r14, 0x7fffffffffffffff
jmp 0x140021eed
xor ebx, ebx
nop
mov rcx, qword [rdi + 0x10]
mov rax, r14
sub rax, rcx
cmp rax, 0x12
jb 0x1400229f5
mov rax, rdi
cmp qword [rdi + 0x18], 0x10
jb 0x140021f11
mov rax, qword [rdi]
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.14000a6b0
nop
mov r8d, 4
lea rdx, str._to
lea rcx, [rsp + 0x188]
call fcn.140007fb0
xor ecx, ecx
mov qword [rsp + 0x1a8], rcx
mov qword [rsp + 0x1b8], rcx
mov qword [rsp + 0x1c0], rcx
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x1a8], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x1b8], xmm1
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], 0xf
mov byte [rax], cl
mov rdx, rsi
cmp qword [rsi + 0x18], 0x10
jb 0x140021f9f
mov rdx, qword [rsi]
mov r8, qword [rsi + 0x10]
lea rcx, [rsp + 0x1a8]
call fcn.140007fb0
xor ecx, ecx
mov qword [rsp + 0x1c8], rcx
mov qword [rsp + 0x1d8], rcx
mov qword [rsp + 0x1e0], rcx
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x1c8], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x1d8], xmm1
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], 0xf
mov byte [rax], cl
lea rcx, [rsp + 0x1c8]
call fcn.14002f780
nop
mov rdx, qword [rsp + 0x1c0]
cmp rdx, 0x10
jb 0x140022040
inc rdx
mov rcx, qword [rsp + 0x1a8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002203b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022a01
call fcn.14003e780
mov qword [rsp + 0x1b8], 0
mov qword [rsp + 0x1c0], 0xf
mov byte [rsp + 0x1a8], 0
mov rdx, qword [rsp + 0x1a0]
cmp rdx, 0x10
jb 0x1400220a3
inc rdx
mov rcx, qword [rsp + 0x188]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002209e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022a07
call fcn.14003e780
lea rax, [rsp + 0x1c8]
mov qword [rsp + 0x60], rax
mov rcx, qword [rdi + 0x10]
mov rax, r14
sub rax, rcx
cmp rax, 0x12
jb 0x140022a4d
mov rax, rdi
cmp qword [rdi + 0x18], 0x10
jb 0x1400220d1
mov rax, qword [rdi]
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.14000a6b0
nop
mov r8d, 4
lea rdx, str._to
lea rcx, [rsp + 0x188]
call fcn.140007fb0
xor ecx, ecx
mov qword [rsp + 0x1a8], rcx
mov qword [rsp + 0x1b8], rcx
mov qword [rsp + 0x1c0], rcx
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x1a8], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x1b8], xmm1
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], 0xf
mov byte [rax], cl
mov rdx, rsi
cmp qword [rsi + 0x18], 0x10
jb 0x14002215f
mov rdx, qword [rsi]
mov r8, qword [rsi + 0x10]
lea rcx, [rsp + 0x1a8]
call fcn.140007fb0
xor ecx, ecx
mov qword [rsp + 0x1c8], rcx
mov qword [rsp + 0x1d8], rcx
mov qword [rsp + 0x1e0], rcx
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x1c8], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x1d8], xmm1
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], 0xf
mov byte [rax], cl
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x58], 0xf
lea r8d, [rcx + 0x18]
lea rdx, str.Updater::DownloadUpdater
lea rcx, [rsp + 0x40]
call fcn.140007e50
nop
lea rdx, [rsp + 0x1c8]
lea rcx, [rsp + 0x40]
call fcn.140019e20
nop
mov rdx, qword [rsp + 0x1c0]
cmp rdx, 0x10
jb 0x14002222e
inc rdx
mov rcx, qword [rsp + 0x1a8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140022229
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022a0d
call fcn.14003e780
mov qword [rsp + 0x1b8], 0
mov qword [rsp + 0x1c0], 0xf
mov byte [rsp + 0x1a8], 0
mov rdx, qword [rsp + 0x1a0]
cmp rdx, 0x10
jb 0x140022291
inc rdx
mov rcx, qword [rsp + 0x188]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002228c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022a13
call fcn.14003e780
mov r8, rsi
cmp qword [rsi + 0x18], 0x10
jb 0x14002229e
mov r8, qword [rsi]
mov rdx, rdi
cmp qword [rdi + 0x18], 0x10
jb 0x1400222ab
mov rdx, qword [rdi]
mov qword [rsp + 0x20], 0
xor r9d, r9d
xor ecx, ecx
call qword [sym.imp.urlmon.dll_URLDownloadToFileA]
mov r8d, eax
inc ebx
test eax, eax
je 0x14002266c
cmp ebx, 3
jl 0x140021ef0
lea rax, [rsp + 0x40]
mov qword [rsp + 0x60], rax
lea r9, [rsp + 0x1bd]
test r8d, r8d
jns 0x140022330
neg r8d
nop
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 0x1400222f0
dec r9
mov byte [r9], 0x2d
jmp 0x14002235a
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 0x140022330
xor ebx, ebx
mov qword [rsp + 0x1c8], rbx
mov qword [rsp + 0x1d8], rbx
mov qword [rsp + 0x1e0], 0xf
mov byte [rsp + 0x1c8], bl
lea rax, [rsp + 0x1bd]
cmp r9, rax
je 0x1400223a8
lea r8, [rsp + 0x1bd]
sub r8, r9
mov rdx, r9
lea rcx, [rsp + 0x1c8]
call fcn.140007e50
nop
mov r9d, 0xb
lea r8, str.Error_code
lea rcx, [rsp + 0x1c8]
call fcn.14000b4d0
mov qword [rsp + 0x208], rbx
mov qword [rsp + 0x218], rbx
mov qword [rsp + 0x220], rbx
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x208], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x218], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov r8d, 0x19
lea rdx, str._while_downloading_from:
lea rcx, [rsp + 0x208]
call fcn.140007fb0
mov qword [rsp + 0x1e8], rbx
mov qword [rsp + 0x1f8], rbx
mov qword [rsp + 0x200], rbx
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x1e8], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x1f8], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov rdx, rdi
cmp qword [rdi + 0x18], 0x10
jb 0x140022465
mov rdx, qword [rdi]
mov r8, qword [rdi + 0x10]
lea rcx, [rsp + 0x1e8]
call fcn.140007fb0
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rbx
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x40], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x50], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov qword [rsp + 0x188], rbx
mov qword [rsp + 0x198], rbx
mov qword [rsp + 0x1a0], 0xf
mov r8d, 0xf
lea rdx, str.DownloadUpdater
lea rcx, [rsp + 0x188]
call fcn.140007e50
nop
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x188]
call fcn.14001a0d0
nop
mov rdx, qword [rsp + 0x200]
cmp rdx, 0x10
jb 0x140022532
inc rdx
mov rcx, qword [rsp + 0x1e8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002252d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022a19
call fcn.14003e780
mov qword [rsp + 0x1f8], rbx
mov qword [rsp + 0x200], 0xf
mov byte [rsp + 0x1e8], 0
mov rdx, qword [rsp + 0x220]
cmp rdx, 0x10
jb 0x140022591
inc rdx
mov rcx, qword [rsp + 0x208]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002258c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022a1f
call fcn.14003e780
mov qword [rsp + 0x218], rbx
mov qword [rsp + 0x220], 0xf
mov byte [rsp + 0x208], 0
mov rdx, qword [rsp + 0x1e0]
cmp rdx, 0x10
jb 0x1400225f1
inc rdx
mov rcx, qword [rsp + 0x1c8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400225eb
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022a25
call fcn.14003e780
nop
mov rdx, qword [rdi + 0x18]
cmp rdx, 0x10
jb 0x14002262b
inc rdx
mov rcx, qword [rdi]
cmp rdx, 0x1000
jb 0x140022626
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140022a47
mov rcx, r8
call fcn.14003e780
mov qword [rdi + 0x10], rbx
mov qword [rdi + 0x18], 0xf
mov byte [rdi], 0
mov eax, 6
mov rcx, qword [rsp + 0x228]
xor rcx, rsp
call fcn.14003e760
lea r11, [rsp + 0x230]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
xor eax, eax
mov qword [rsp + 0x188], rax
mov qword [rsp + 0x198], rax
mov qword [rsp + 0x1a0], 0xf
lea r8d, [rax + 0x11]
lea rdx, str.Download_complete
lea rcx, [rsp + 0x188]
call fcn.140007e50
lea rcx, [rsp + 0x188]
call fcn.14002f780
nop
mov rdx, rsi
lea rcx, [rsp + 0x70]
call fcn.14002acc0
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], 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.140006750
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 - 0x18]
mov dword [rsp + rcx + 0x6c], edx
mov qword [rsp + 0x120], r15
lea rcx, [rsp + 0x120]
call fcn.14003ccd0
nop
test ebx, ebx
je 0x14002298a
mov rcx, qword [rsi + 0x10]
mov rax, r14
sub rax, rcx
cmp rax, 0x28
jb 0x140022a2b
mov rax, rsi
cmp qword [rsi + 0x18], 0x10
jb 0x140022753
mov rax, qword [rsi]
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.14000a6b0
nop
mov r8d, 0xf
lea rdx, str._does_not_exist
lea rcx, [rsp + 0x188]
call fcn.140007fb0
xor ebx, ebx
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rbx
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x40], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x50], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], bl
lea rcx, [rsp + 0x40]
call fcn.14002f780
nop
mov rdx, qword [rsp + 0x1a0]
cmp rdx, 0x10
jb 0x140022813
inc rdx
mov rcx, qword [rsp + 0x188]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002280e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022a30
call fcn.14003e780
lea rax, [rsp + 0x40]
mov qword [rsp + 0x60], rax
mov rax, qword [rsi + 0x10]
sub r14, rax
cmp r14, 0x10
jb 0x140022a36
cmp qword [rsi + 0x18], 0x10
jb 0x140022838
mov rsi, qword [rsi]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], 0x10
lea r9, str.Downloaded_file
lea rcx, [rsp + 0x1c8]
call fcn.14000a6b0
nop
mov r8d, 0xf
lea rdx, str._does_not_exist
lea rcx, [rsp + 0x1c8]
call fcn.140007fb0
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rbx
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x40], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x50], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov qword [rsp + 0x188], rbx
mov qword [rsp + 0x198], rbx
mov qword [rsp + 0x1a0], 0xf
mov r8d, 0xf
lea rdx, str.DownloadUpdater
lea rcx, [rsp + 0x188]
call fcn.140007e50
nop
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x188]
call fcn.14001a0d0
nop
mov rdx, qword [rsp + 0x1e0]
cmp rdx, 0x10
jb 0x140022937
inc rdx
mov rcx, qword [rsp + 0x1c8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140022931
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022a3b
call fcn.14003e780
nop
mov rdx, qword [rdi + 0x18]
cmp rdx, 0x10
jb 0x140022971
mov rcx, qword [rdi]
inc rdx
cmp rdx, 0x1000
jb 0x14002296c
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140022a41
mov rcx, r8
call fcn.14003e780
mov qword [rdi + 0x10], rbx
mov qword [rdi + 0x18], 0xf
mov byte [rdi], 0
mov eax, 7
jmp 0x14002263f
mov rdx, qword [rdi + 0x18]
cmp rdx, 0x10
jb 0x1400229c4
inc rdx
mov rcx, qword [rdi]
cmp rdx, 0x1000
jb 0x1400229bf
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140022a47
mov rcx, r8
call fcn.14003e780
mov qword [rdi + 0x10], 0
mov qword [rdi + 0x18], 0xf
mov byte [rdi], 0
xor eax, eax
jmp 0x14002263f
call fcn.140001350
nop
call fcn.140001350
nop
call fcn.1400512b4
nop
call fcn.1400512b4
nop
call fcn.1400512b4
nop
call fcn.1400512b4
nop
call fcn.1400512b4
nop
call fcn.1400512b4
nop
call fcn.1400512b4
nop
call fcn.140001350
call fcn.1400512b4
int3
call fcn.140001350
call fcn.1400512b4
nop
call fcn.1400512b4
int3
call fcn.1400512b4
nop
call fcn.140001350
int3