Function at 0x140021a30
Capabilities:
Read data from internet
Receive data

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x610
mov rbx, r9
mov r14, r8
mov rdi, rdx
mov rsi, rcx
lea rax, [rcx + 0x10]
mov qword [rcx], rax
mov r15, qword [r9]
mov r12, qword [r9 + 8]
mov qword [rsp + 0x210], r12
mov rcx, r12
cmp r12, 8
jb 0x140021a8f
lea rdx, [rsp + 0x210]
mov rcx, rsi
xor r8d, r8d
call fcn.1400b92e0
mov qword [rsi], rax
mov rcx, qword [rsp + 0x210]
mov qword [rsi + 0x10], rcx
test r12, r12
je 0x140021abf
cmp r12, 1
jne 0x140021aa3
movzx edx, word [r15]
mov word [rax], dx
jmp 0x140021abf
add r12, r12
mov rcx, rax
mov rdx, r15
mov r8, r12
call sub.msvcrt.dll_memcpy
mov rcx, qword [rsp + 0x210]
mov rax, qword [rsi]
mov qword [rsi + 8], rcx
mov word [rax + rcx*2], 0
mov rcx, qword [rdi]
test rcx, rcx
je 0x140021d63
mov rdx, qword [r14]
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x80000000
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.WININET.dll_InternetOpenUrlW]
mov qword [rdi + 8], rax
test rax, rax
je 0x140021b58
mov r15, qword [rbx]
mov r14, qword [rbx + 8]
lea rbx, [rsp + 0x220]
mov qword [rsp + 0x210], rbx
mov qword [rsp + 0x218], 0
mov qword [rsp + 0x40], r14
cmp r14, 0x10
jb 0x140021b6d
lea rcx, [rsp + 0x210]
lea rdx, [rsp + 0x40]
xor r8d, r8d
call fcn.1400b52d0
mov qword [rsp + 0x210], rax
mov rcx, qword [rsp + 0x40]
mov qword [rsp + 0x220], rcx
jmp 0x140021b79
mov qword [rsi + 8], 0
mov rax, qword [rsi]
mov word [rax], 0
jmp 0x140021d63
mov rax, rbx
test r14, r14
je 0x140021d8a
lea rcx, [r14 - 1]
mov dl, 0x3f
bzhi rdx, rcx, rdx
cmp rdx, 7
jb 0x140021bbb
movabs r8, 0x7fffffffffffffff
lea rcx, [r14 + r8]
and rcx, r8
lea r8, [r15 + rcx*2]
add r8, 2
cmp rax, r8
jae 0x140021d79
add rcx, rax
inc rcx
cmp r15, rcx
jae 0x140021d79
mov r8, rax
mov r9, r15
lea rax, [r15 + r14*2]
nop word cs:[rax + rax]
movzx ecx, byte [r9]
mov byte [r8], cl
add r9, 2
inc r8
cmp r9, rax
jne 0x140021bd0
mov r14, qword [rsp + 0x40]
mov rax, qword [rsp + 0x210]
mov qword [rsp + 0x218], r14
mov byte [rax + r14], 0
lea rcx, [rsp + 0x40]
lea rdx, [rsp + 0x210]
mov r8d, 4
vzeroupper
call fcn.1400a1dc0
mov rcx, qword [rsp + 0x210]
cmp rcx, rbx
je 0x140021c2a
call fcn.1400e4650
lea rbx, [rsp + 0x90]
mov rcx, rbx
call fcn.140027bd0
test al, al
je 0x140021ceb
mov rcx, qword [rdi + 8]
lea rdx, [rsp + 0x210]
lea r9, [rsp + 0x3c]
mov r8d, 0x400
call qword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x140021cbd
mov eax, dword [rsp + 0x3c]
test eax, eax
je 0x140021cbd
lea r14, [rsp + 0x40]
lea r15, [rsp + 0x210]
lea r12, [rsp + 0x3c]
mov r13, qword [sym.imp.WININET.dll_InternetReadFile]
nop word cs:[rax + rax]
mov r8d, eax
mov rcx, r14
mov rdx, r15
call fcn.140081f50
mov rcx, qword [rdi + 8]
mov rdx, r15
mov r8d, 0x400
mov r9, r12
call r13
test eax, eax
je 0x140021cbd
mov eax, dword [rsp + 0x3c]
test eax, eax
jne 0x140021c90
lea rcx, [rsp + 0x48]
call fcn.1400920f0
test rax, rax
jne 0x140021cfb
mov rax, qword [rsp + 0x40]
mov rax, qword [rax - 0x18]
lea rcx, [rsp + rax]
add rcx, 0x40
mov edx, dword [rsp + rax + 0x60]
or edx, 4
call fcn.1400d9780
jmp 0x140021cfb
mov qword [rsi + 8], 0
mov rax, qword [rsi]
mov word [rax], 0
mov rax, qword [0x1400f0138]
mov rcx, qword [rax]
mov rax, qword [rax + 0x18]
mov qword [rsp + 0x40], rcx
mov rcx, qword [rcx - 0x18]
mov qword [rsp + rcx + 0x40], rax
lea rcx, [rsp + 0x48]
mov rax, qword [0x1400f02f0]
add rax, 0x10
mov qword [rsp + 0x48], rax
call fcn.1400920f0
mov rcx, rbx
call fcn.14008acd0
mov rax, qword [0x1400f0340]
add rax, 0x10
mov qword [rsp + 0x48], rax
lea rcx, [rsp + 0x80]
call fcn.1400afc80
lea rcx, [rsp + 0x108]
call fcn.1400d85f0
mov rax, rsi
add rsp, 0x610
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [rdx + 1]
cmp rdx, 0x3f
jae 0x140021d92
xor edx, edx
jmp 0x140021e25
mov rax, rbx
jmp 0x140021bf0
mov rdx, rcx
and rdx, 0xffffffffffffffc0
xor r8d, r8d
vpbroadcastw ymm0, word [0x1400e9030]
nop word cs:[rax + rax]
vpand ymm1, ymm0, ymmword [r15 + r8*2]
vextracti128 xmm2, ymm1, 1
vpackuswb xmm1, xmm1, xmm2
vpand ymm2, ymm0, ymmword [r15 + r8*2 + 0x20]
vextracti128 xmm3, ymm2, 1
vpackuswb xmm2, xmm2, xmm3
vpand ymm3, ymm0, ymmword [r15 + r8*2 + 0x40]
vextracti128 xmm4, ymm3, 1
vpackuswb xmm3, xmm3, xmm4
vpand ymm4, ymm0, ymmword [r15 + r8*2 + 0x60]
vextracti128 xmm5, ymm4, 1
vpackuswb xmm4, xmm4, xmm5
vmovdqu xmmword [rax + r8], xmm1
vmovdqu xmmword [rax + r8 + 0x10], xmm2
vmovdqu xmmword [rax + r8 + 0x20], xmm3
vmovdqu xmmword [rax + r8 + 0x30], xmm4
add r8, 0x40
cmp rdx, r8
jne 0x140021db0
cmp rcx, rdx
je 0x140021be3
test cl, 0x38
je 0x140021e67
mov r10, rcx
and r10, 0xfffffffffffffff8
lea r8, [rax + r10]
lea r9, [r15 + r10*2]
vpbroadcastq xmm0, qword [0x1400e9038]
nop dword [rax]
vmovdqu xmm1, xmmword [r15 + rdx*2]
vpshufb xmm1, xmm1, xmm0
vmovq qword [rax + rdx], xmm1
add rdx, 8
cmp r10, rdx
jne 0x140021e40
cmp rcx, r10
jne 0x140021bc1
jmp 0x140021be3
lea r9, [r15 + rdx*2]
add rax, rdx
mov r8, rax
jmp 0x140021bc1