Function at 0x14002e560
Capabilities:
Connect to http server
Create http request
Download and write a file
Read data from internet
Receive and write data from server to client
Receive data
Send data
Send http request
Write file on windows

Disassembly:
push rbp
push rdi
push r12
lea rbp, [rsp - 0x2520]
mov eax, 0x2620
call fcn.140034560
sub rsp, rax
mov qword [rbp - 0x68], 0xfffffffffffffffe
mov qword [rsp + 0x2650], rbx
mov qword [rsp + 0x2658], rsi
mov rax, qword [0x14006c270]
xor rax, rsp
mov qword [rbp + 0x2510], rax
mov rdi, rdx
mov rbx, rcx
xor r12d, r12d
mov dword [rsp + 0x48], r12d
lea rcx, [rbp - 0x60]
call fcn.14002cce0
mov dword [rbp + 0x23f0], 2
mov dword [rbp + 0x23f4], 4
mov eax, VarR8FromDisp
mov word [rbp + 0x23ec], ax
lea r9d, [r12 + 4]
mov r8, qword [str.http]
lea edx, [rax - 0x2f]
lea rcx, [rbp - 0x60]
call fcn.14003433c
test eax, eax
je 0x14002e62b
cmp eax, 0xc
je 0x14002e620
cmp eax, 0x16
je 0x14002e615
cmp eax, 0x22
je 0x14002e615
cmp eax, 0x50
je 0x14002e62b
mov ecx, 0x80004005
call fcn.140001050
int3
mov ecx, 0x80070057
call fcn.140001050
int3
mov ecx, 0x8007000e
call fcn.140001050
int3
xor r8d, r8d
mov rdx, qword [rdi]
lea rcx, [rbp - 0x60]
call fcn.14002e290
test eax, eax
jne 0x14002e65b
lea rcx, [0x14006bfe0]
mov rdx, qword [0x14006bfe0]
call qword [rdx + 0x18]
add rax, 0x18
mov qword [rbx], rax
jmp 0x14002ea39
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [0x14006dd10], rax
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [0x14006dd18], rax
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [0x14006dd20], rax
mov dword [rsp + 0x20], 0x10000000
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea rcx, [0x140051670]
call qword [sym.imp.WININET.dll_InternetOpenW]
mov qword [0x14006dcf8], rax
test rax, rax
jne 0x14002e6e6
lea rcx, [0x14006bfe0]
mov rax, qword [0x14006bfe0]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbx], rax
jmp 0x14002ea39
lea rdx, [0x14002cd40]
mov rcx, rax
call qword [sym.imp.WININET.dll_InternetSetStatusCallbackW]
cmp rax, 0xffffffffffffffff
je 0x14002e6c9
mov dword [0x14006dd28], r12d
mov qword [rsp + 0x38], 1
mov dword [rsp + 0x30], r12d
mov dword [rsp + 0x28], 3
mov qword [rsp + 0x20], r12
xor r9d, r9d
movzx r8d, word [rbp + 0x23ec]
lea rdx, [rbp - 0x1e]
mov rcx, qword [0x14006dcf8]
call qword [sym.imp.WININET.dll_InternetConnectW]
mov qword [0x14006dd00], rax
test rax, rax
jne 0x14002e770
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
je 0x14002e760
mov rcx, rbx
call fcn.140003660
jmp 0x14002ea39
or edx, 0xffffffff
mov rcx, qword [0x14006dd10]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea rdx, [rbp + 0x3e8]
lea rcx, [rsp + 0x50]
call fcn.140006350
nop
lea r8, [rbp + 0x13ea]
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.1400056c0
mov qword [rsp + 0x38], 2
mov dword [rsp + 0x30], 0x84000000
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
xor r9d, r9d
mov r8, qword [rax]
lea rdx, [0x140051668]
mov rcx, qword [0x14006dd00]
call qword [sym.imp.WININET.dll_HttpOpenRequestW]
mov qword [0x14006dd08], rax
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
or edi, 0xffffffff
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002e7f5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002e814
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [0x14006dd08]
test rcx, rcx
jne 0x14002e848
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
jne 0x14002e753
or edx, 0xffffffff
mov rcx, qword [0x14006dd18]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [0x14006dd08]
mov dword [rsp + 0x20], r12d
xor r9d, r9d
xor r8d, r8d
xor edx, edx
call qword [sym.imp.WININET.dll_HttpSendRequestW]
test eax, eax
jne 0x14002e870
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
jne 0x14002e753
or edx, 0xffffffff
mov rcx, qword [0x14006dd20]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea rcx, [rsp + 0x40]
call fcn.14002e4b0
nop
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 2
xor r9d, r9d
xor r8d, r8d
mov edx, 0x40000000
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x14002e8cd
mov rcx, rbx
call fcn.140003660
nop
jmp 0x14002ea1c
mov dword [rsp + 0x48], r12d
xor eax, eax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x78], rax
mov qword [rbp - 0x70], rax
mov dword [rsp + 0x60], 0x38
lea rax, [rbp + 0x2410]
mov qword [rbp - 0x80], rax
mov dword [rbp - 0x78], 0xff
mov r9d, 2
xor r8d, r8d
lea rdx, [rsp + 0x60]
mov rcx, qword [0x14006dd08]
call qword [sym.imp.WININET.dll_InternetReadFileExW]
test eax, eax
jne 0x14002e94a
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
jne 0x14002e98d
or edx, 0xffffffff
mov rcx, qword [0x14006dd20]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov r8d, dword [rbp - 0x78]
mov byte [rbp + r8 + 0x2410], 0
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0x48]
lea rdx, [rbp + 0x2410]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x14002ea13
cmp dword [rbp - 0x78], 0
je 0x14002e99b
cmp dword [0x14006dd28], 0
jne 0x14002e9a5
jmp 0x14002e8d2
mov rcx, rbx
call fcn.140003660
nop
jmp 0x14002ea1c
mov dword [0x14006dd28], 1
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [0x14006dd08]
call qword [sym.imp.WININET.dll_InternetCloseHandle]
mov rcx, qword [0x14006dd00]
call qword [sym.imp.WININET.dll_InternetCloseHandle]
mov rcx, qword [0x14006dcf8]
call qword [sym.imp.WININET.dll_InternetCloseHandle]
mov rcx, qword [0x14006dd10]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [0x14006dd20]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [0x14006dd18]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x40]
add rcx, 0xffffffffffffffe8
call fcn.1400026f0
add rax, 0x18
mov qword [rbx], rax
jmp 0x14002ea1c
mov rcx, rbx
call fcn.140003660
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], edi
dec edi
test edi, edi
jg 0x14002ea39
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, rbx
mov rcx, qword [rbp + 0x2510]
xor rcx, rsp
call fcn.140034530
lea r11, [rsp + 0x2620]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r12
pop rdi
pop rbp
ret