Function at 0x140001820
Capabilities:
Create http request
Read data from internet
Receive data

Disassembly:
push rbp
push r12
push r13
lea rbp, [rsp - 0x1180]
mov eax, 0x1280
call fcn.140013050
sub rsp, rax
mov qword [rbp + 0x170], 0xfffffffffffffffe
mov qword [rsp + 0x12a0], rbx
mov qword [rsp + 0x12a8], rsi
mov qword [rsp + 0x12b0], rdi
mov r12, r8
mov rsi, rdx
mov rbx, rcx
xor r13d, r13d
mov dword [rsp + 0x30], r13d
mov dword [rbp + 0x11b8], r13d
mov dword [rsp + 0x20], r13d
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea rcx, [0x14001bc00]
call qword [sym.imp.WININET.dll_InternetOpenW]
mov rdi, rax
test rax, rax
je 0x140001d42
mov qword [rsp + 0x28], r13
mov dword [rsp + 0x20], 0x4000000
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov rcx, rax
call qword [sym.imp.WININET.dll_InternetOpenUrlW]
mov rbx, rax
test rax, rax
jne 0x1400018d1
mov rcx, rdi
call qword [sym.imp.WININET.dll_InternetCloseHandle]
jmp 0x140001d42
lea rax, [0x14001bf98]
mov qword [rbp + 0x60], rax
mov dword [rsp + 0x30], 1
lea rax, vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov qword [rbp + 0x108], rax
lea rcx, [rbp + 0x108]
call fcn.140001600
lea r11, [rbp + 0x68]
mov qword [rbp + 0x150], r11
mov qword [rbp + 0x158], r13
lea rcx, [rbp + 0x108]
call fcn.140005070
mov byte [rbp + 0x160], al
cmp qword [rbp + 0x150], 0
jne 0x140001945
mov edx, dword [rbp + 0x118]
or edx, 4
xor r8d, r8d
lea rcx, [rbp + 0x108]
call fcn.140001490
nop
mov rax, qword [rbp + 0x60]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0x60], rax
lea rcx, [rbp + 0x68]
call fcn.1400043b0
nop
mov edx, 0x22
lea rcx, [rbp + 0x68]
call fcn.140004450
test rax, rax
jne 0x14000199c
mov rax, qword [rbp + 0x60]
movsxd rcx, dword [rax + 4]
lea rcx, [rbp + rcx + 0x60]
mov edx, dword [rcx + 0x10]
or edx, 2
cmp qword [rcx + 0x48], 0
jne 0x140001993
or edx, 4
xor r8d, r8d
call fcn.140001490
nop
mov rcx, rbx
cmp qword [rbp + 0x100], 0
jne 0x1400019d1
call qword [sym.imp.WININET.dll_InternetCloseHandle]
mov rcx, rdi
call qword [sym.imp.WININET.dll_InternetCloseHandle]
nop
lea rcx, [rbp + 0x108]
call fcn.1400031a0
lea rbx, vtable.std::ios_base.0
jmp 0x140001d2f
lea r9, [rbp + 0x11b8]
mov r8d, 0x1000
lea rdx, [rbp + 0x180]
call qword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x140001a2e
nop
mov eax, dword [rbp + 0x11b8]
test eax, eax
je 0x140001a2e
mov r8d, eax
lea rdx, [rbp + 0x180]
lea rcx, [rbp + 0x60]
call fcn.140002bc0
lea r9, [rbp + 0x11b8]
mov r8d, 0x1000
lea rdx, [rbp + 0x180]
mov rcx, rbx
call qword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
jne 0x1400019f0
lea rcx, [rbp + 0x68]
call fcn.140004540
test rax, rax
jne 0x140001a61
mov rax, qword [rbp + 0x60]
movsxd rcx, dword [rax + 4]
lea rcx, [rbp + rcx + 0x60]
mov edx, dword [rcx + 0x10]
or edx, 2
cmp qword [rcx + 0x48], 0
jne 0x140001a59
or edx, 4
xor r8d, r8d
call fcn.140001490
mov rcx, rbx
call qword [sym.imp.WININET.dll_InternetCloseHandle]
mov rcx, rdi
call qword [sym.imp.WININET.dll_InternetCloseHandle]
lea r11, [0x14001bf80]
mov qword [rsp + 0x50], r11
mov dword [rsp + 0x30], 5
lea rax, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov qword [rbp], rax
mov qword [rsp + 0x58], r13
lea rcx, [rbp]
call fcn.140001600
lea r11, [rsp + 0x60]
mov qword [rbp + 0x48], r11
mov qword [rbp + 0x50], r13
lea rcx, [rbp]
call fcn.140005070
mov byte [rbp + 0x58], al
cmp qword [rbp + 0x48], 0
jne 0x140001ad3
mov edx, dword [rbp + 0x10]
or edx, 4
xor r8d, r8d
lea rcx, [rbp]
call fcn.140001490
nop
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x50], rax
lea rcx, [rsp + 0x60]
call fcn.1400043b0
nop
mov edx, 0x25
lea rcx, [rsp + 0x60]
call fcn.140004450
test rax, rax
jne 0x140001b2e
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
lea rcx, [rsp + rcx + 0x50]
mov edx, dword [rcx + 0x10]
or edx, 2
cmp qword [rcx + 0x48], 0
jne 0x140001b25
or edx, 4
xor r8d, r8d
call fcn.140001490
nop
cmp qword [rbp - 8], 0
jne 0x140001b58
lea rcx, [rbp]
call fcn.140003d70
lea rbx, vtable.std::ios_base.0
mov qword [rbp], rbx
lea rcx, [rbp]
call fcn.140005c70
nop
jmp 0x140001d23
mov rcx, qword [rsp + 0x50]
movsxd rax, dword [rcx + 4]
test byte [rsp + rax + 0x60], 6
jne 0x140001b9a
mov rcx, qword [rbp + rax - 0x68]
mov rax, qword [rcx]
mov dword [rsp + 0x20], 1
mov r9d, 1
xor r8d, r8d
lea rdx, [rsp + 0x38]
call qword [rax + 0x50]
mov rcx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x38]
jmp 0x140001ba4
mov rdx, qword [0x140018518]
mov rax, r13
movsxd rbx, eax
add rbx, rdx
movsxd rax, dword [rcx + 4]
test byte [rsp + rax + 0x60], 6
jne 0x140001c10
movsxd rax, dword [rcx + 4]
mov rcx, qword [rbp + rax - 0x68]
mov rax, qword [rcx]
mov dword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
lea rdx, [rsp + 0x38]
call qword [rax + 0x50]
movsxd r11, dword [rsp + 0x40]
add r11, qword [rsp + 0x38]
cmp r11, qword [0x140018518]
jne 0x140001c10
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
lea rcx, [rsp + rcx + 0x50]
mov edx, dword [rcx + 0x10]
or edx, 2
cmp qword [rcx + 0x48], 0
jne 0x140001c08
or edx, 4
xor r8d, r8d
call fcn.140001490
mov rcx, rbx
call fcn.140006380
mov qword [rsi], rax
mov r8, rbx
mov rdx, rax
lea rcx, [rsp + 0x50]
call fcn.140002d80
mov rcx, qword [rax]
movsxd rdx, dword [rcx + 4]
add rdx, rax
test byte [rdx + 0x10], 6
cmovne rdx, r13
test rdx, rdx
je 0x140001cc0
mov dword [r12], ebx
lea rcx, [rsp + 0x60]
call fcn.140004540
test rax, rax
jne 0x140001c7c
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
lea rcx, [rsp + rcx + 0x50]
mov edx, dword [rcx + 0x10]
or edx, 2
cmp qword [rcx + 0x48], 0
jne 0x140001c73
or edx, 4
xor r8d, r8d
call fcn.140001490
nop
lea rcx, [rbp]
call fcn.140003d70
lea rbx, vtable.std::ios_base.0
mov qword [rbp], rbx
lea rcx, [rbp]
call fcn.140005c70
nop
lea rcx, [rbp + 0x108]
call fcn.1400031a0
mov qword [rbp + 0x108], rbx
lea rcx, [rbp + 0x108]
call fcn.140005c70
mov al, 1
jmp 0x140001d44
mov rcx, qword [rsi]
call fcn.140007a44
mov qword [rsi], r13
mov dword [r12], r13d
lea rcx, [rsp + 0x60]
call fcn.140004540
test rax, rax
jne 0x140001d05
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
lea rcx, [rsp + rcx + 0x50]
mov edx, dword [rcx + 0x10]
or edx, 2
cmp qword [rcx + 0x48], 0
jne 0x140001cfc
or edx, 4
xor r8d, r8d
call fcn.140001490
nop
lea rcx, [rbp]
call fcn.140003d70
lea rbx, vtable.std::ios_base.0
mov qword [rbp], rbx
lea rcx, [rbp]
call fcn.140005c70
nop
lea rcx, [rbp + 0x108]
call fcn.1400031a0
mov qword [rbp + 0x108], rbx
lea rcx, [rbp + 0x108]
call fcn.140005c70
xor al, al
lea r11, [rsp + 0x1280]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov rsp, r11
pop r13
pop r12
pop rbp
ret