Function at 0x812870
Capabilities:
Connect to http server
Create http request
Read data from internet
Receive data
Send data
Send http request

Disassembly:
push rbp
push rsi
push rbx
sub rsp, 0x720
mov rbp, rsp
mov qword [rbp + 0x6f8], 0
mov qword [rbp + 0x6f0], 0
mov qword [rbp + 0x2d8], 0
mov qword [rbp + 0x2c0], 0
mov qword [rbp + 0x2b8], 0
mov qword [rbp + 0x48], rbp
mov qword [rbp + 0x740], rcx
mov qword [rbp + 0x748], rdx
mov qword [rbp + 0x750], r8
mov qword [rbp + 0x758], r9
movzx rax, byte [rbp + 0x760]
mov byte [rbp + 0x760], al
movzx rax, byte [rbp + 0x768]
mov byte [rbp + 0x768], al
mov rax, qword [rbp + 0x770]
mov qword [rbp + 0x770], rax
mov rcx, qword [rbp + 0x748]
call fcn.00412ee0
mov rcx, qword [rbp + 0x750]
call fcn.00412ee0
mov rcx, qword [rbp + 0x758]
call fcn.00412ee0
mov rcx, qword [rbp + 0x770]
call fcn.00412ee0
nop
nop
mov rax, qword [rbp + 0x740]
mov byte [rax + 0x198], 0
mov rcx, qword [rbp + 0x740]
mov rdx, qword [rbp + 0x748]
lea r8, [rbp + 0x6f8]
lea r9, [rbp + 0x6f0]
mov rax, qword [rbp + 0x740]
mov rbx, qword [rax]
call qword [rbx + 0xd8]
cmp qword [rbp + 0x6f8], 0
jne 0x8129ab
mov rcx, qword [rbp + 0x740]
mov rax, qword [rbp + 0x740]
mov rax, qword [rax + 0x80]
mov rdx, qword [rax + 8]
lea r8, [rbp + 0x6f8]
lea r9, [rbp + 0x2c0]
mov rax, qword [rbp + 0x740]
mov rbx, qword [rax]
call qword [rbx + 0xd8]
lea rcx, [rbp + 0x2d8]
lea rdx, [0x00812f6c]
call fcn.00413430
mov rcx, qword [rbp + 0x2d8]
call fcn.00414500
mov rcx, rax
xor edx, edx
xor r8, r8
xor r9, r9
mov dword [rsp + 0x20], 0
call sub.wininet.dll_InternetOpenW
mov qword [rbp + 0x700], rax
mov rcx, qword [rbp + 0x6f8]
call fcn.00414500
mov rbx, rax
mov rcx, qword [rbp + 0x750]
call fcn.00414500
mov rsi, rax
mov rcx, qword [rbp + 0x758]
call fcn.00414500
mov rcx, qword [rbp + 0x700]
mov rdx, rbx
mov r8, qword [rbp + 0x740]
movzx r8, word [r8 + 0x210]
mov r9, rsi
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x28], 3
mov dword [rsp + 0x30], 0
mov qword [rsp + 0x38], 0
call sub.wininet.dll_InternetConnectW
mov qword [rbp + 0x708], rax
lea rax, [0x00812f82]
mov qword [rbp + 0x2c8], rax
mov dword [rbp + 0x2d4], 0x80000000
mov rcx, qword [rbp + 0x6f0]
call fcn.00414500
mov rcx, qword [rbp + 0x708]
mov rdx, qword [rbp + 0x2c8]
mov r8, rax
lea r9, [0x00812f8a]
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x28], 0
mov eax, dword [rbp + 0x2d4]
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x38], 0
call sub.wininet.dll_HttpOpenRequestW
mov qword [rbp + 0x710], rax
mov rcx, qword [rbp + 0x710]
xor edx, edx
xor r8, r8
xor r9, r9
mov dword [rsp + 0x20], 0
call sub.wininet.dll_HttpSendRequestW
mov rax, qword [rbp + 0x740]
cmp byte [rax + 0x198], 0
je 0x812b0d
mov rcx, rbp
call fcn.00812830
mov rax, qword [rbp + 0x740]
mov byte [rax + 0x1f8], 0
jmp 0x812e94
mov dword [rbp + 0x6e8], 0
mov dword [rbp + 0x6ec], 0x400
mov ecx, dword [rbp + 0x6ec]
call fcn.004092d0
mov qword [rbp + 0x718], rax
mov rcx, qword [rbp + 0x710]
mov edx, 5
mov r8, qword [rbp + 0x718]
lea r9, [rbp + 0x6ec]
lea rax, [rbp + 0x6e8]
mov qword [rsp + 0x20], rax
call sub.wininet.dll_HttpQueryInfoW
mov rcx, qword [rbp + 0x740]
test eax, eax
setne al
mov byte [rcx + 0x1f8], al
mov rax, qword [rbp + 0x740]
cmp byte [rax + 0x198], 0
je 0x812ba7
mov rcx, qword [rbp + 0x718]
call fcn.00409300
mov rcx, rbp
call fcn.00812830
mov rax, qword [rbp + 0x740]
mov byte [rax + 0x1f8], 0
jmp 0x812e94
mov rax, qword [rbp + 0x740]
movzx rax, byte [rax + 0x1f8]
test al, al
jne 0x812bc7
cmp byte [rbp + 0x760], 0
jne 0x812dfd
test al, al
je 0x812be4
mov rcx, qword [rbp + 0x718]
call fcn.0043c290
mov rcx, qword [rbp + 0x740]
mov dword [rcx + 0x1fc], eax
mov rax, qword [rbp + 0x740]
mov dword [rax + 0x204], 0
cmp byte [rbp + 0x768], 0
je 0x812c28
lea rcx, [rbp + 0x50]
mov rdx, qword [rbp + 0x770]
call fcn.0040cbb0
call fcn.00409610
lea rcx, [rbp + 0x50]
mov edx, 1
call fcn.0040e120
call fcn.00409610
jmp 0x812c34
lea rcx, [rbp + 0x2b8]
call fcn.00412d10
mov rax, qword [rbp + 0x740]
cmp byte [rax + 0x198], 0
je 0x812c82
cmp byte [rbp + 0x768], 0
je 0x812c5b
lea rcx, [rbp + 0x50]
call fcn.0040cec0
call fcn.00409610
mov rcx, qword [rbp + 0x718]
call fcn.00409300
mov rcx, rbp
call fcn.00812830
mov rax, qword [rbp + 0x740]
mov byte [rax + 0x1f8], 0
jmp 0x812e94
mov rcx, qword [rbp + 0x710]
lea rdx, [rbp + 0x2e7]
mov r8d, 0x401
mov rax, qword [rbp + 0x740]
lea r9, [rax + 0x200]
call sub.wininet.dll_InternetReadFile
test eax, eax
je 0x812d79
mov rax, qword [rbp + 0x740]
mov eax, dword [rax + 0x200]
test eax, eax
je 0x812d79
cmp byte [rbp + 0x768], 0
je 0x812cec
lea rcx, [rbp + 0x50]
lea rdx, [rbp + 0x2e7]
mov r8d, eax
xor r9, r9
call fcn.0040ce90
call fcn.00409610
jmp 0x812d31
lea rcx, [rbp + 0x2c0]
lea rdx, [rbp + 0x2e7]
mov r8d, 0x401
call fcn.004145c0
lea rcx, [rbp + 0x2c0]
mov rax, qword [rbp + 0x740]
mov edx, dword [rax + 0x200]
call fcn.00414780
lea rcx, [rbp + 0x2b8]
mov rdx, qword [rbp + 0x2c0]
call fcn.00414860
mov rax, qword [rbp + 0x740]
lea rax, [rax + 0x204]
mov rcx, qword [rbp + 0x740]
mov ecx, dword [rcx + 0x200]
add dword [rax], ecx
mov rcx, qword [rbp + 0x740]
mov rax, qword [rbp + 0x740]
mov rbx, qword [rax]
call qword [rbx + 0x88]
mov rax, qword [0x0091a378]
mov rcx, qword [rax]
call fcn.007397f0
jmp 0x812c34
nop
cmp byte [rbp + 0x768], 0
je 0x812daf
mov rax, qword [rbp + 0x740]
mov rcx, qword [rbp + 0x740]
mov rdx, qword [rbp + 0x740]
mov ecx, dword [rcx + 0x1fc]
cmp ecx, dword [rdx + 0x204]
sete cl
mov byte [rax + 0x1f8], cl
jmp 0x812de6
lea rcx, [rbp + 0x2b8]
mov rax, qword [rbp + 0x740]
mov edx, dword [rax + 0x204]
call fcn.00414780
mov rax, qword [rbp + 0x740]
mov rcx, qword [rbp + 0x740]
cmp dword [rcx + 0x204], 0
setne cl
mov byte [rax + 0x1f8], cl
cmp byte [rbp + 0x768], 0
je 0x812dfd
lea rcx, [rbp + 0x50]
call fcn.0040cec0
call fcn.00409610
mov rcx, qword [rbp + 0x718]
call fcn.00409300
mov rcx, rbp
call fcn.00812830
mov rax, qword [rbp + 0x740]
cmp byte [rax + 0x1f8], 0
je 0x812e64
cmp byte [rbp + 0x768], 0
jne 0x812e93
mov rax, qword [rbp + 0x740]
mov rax, qword [rax + 0xc0]
mov rcx, rax
mov rbx, qword [rax]
call qword [rbx + 0x90]
mov rax, qword [rbp + 0x740]
mov rax, qword [rax + 0xc0]
mov rcx, rax
mov rdx, qword [rbp + 0x2b8]
mov rbx, qword [rax]
call qword [rbx + 0x60]
jmp 0x812e93
mov rcx, qword [rbp + 0x740]
mov rax, qword [rbp + 0x740]
mov rbx, qword [rax]
call qword [rbx + 0x90]
jmp 0x812e93
nop
lea rcx, [rbp + 0x2b8]
mov edx, 2
call fcn.00412df0
lea rcx, [rbp + 0x2d8]
call fcn.00412d10
lea rcx, [rbp + 0x6f0]
mov edx, 2
call fcn.00412df0
lea rcx, [rbp + 0x748]
mov edx, 3
call fcn.00412df0
lea rcx, [rbp + 0x770]
call fcn.00412d10
lea rsp, [rbp + 0x720]
pop rbx
pop rsi
pop rbp
ret