Function at 0x1800a89f0
Capabilities:
Encode data using xor
Manually build aes constants

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
push r14
push r15
mov word [0x1800ef010], 0
mov word [0x1800eeb10], 0x301
mov byte [0x1800ef013], 1
mov r8d, 2
lea r9, [0x1800eeb11]
lea r12, [0x180000000]
mov ebx, pe_nt_image_headers64
nop dword [rax]
movzx edx, byte [r9]
lea r9, [r9 + 1]
movzx eax, dl
and al, 0x80
neg al
movzx eax, dl
sbb cl, cl
add al, al
xor al, dl
and cl, 0x1b
xor al, cl
movzx eax, al
mov byte [r9], al
mov byte [rax + r12 + 0xef010], r8b
inc r8d
cmp r8d, ebx
jl 0x1800a8a40
mov byte [0x1800ee890], 0x63
mov byte [0x1800ee9f3], 0
mov r9d, 1
lea r10, [0x1800ee891]
lea r11, [0x1800eec0f]
movzx r8d, r9b
mov rcx, r11
inc r9d
movzx eax, byte [r8 + r12 + 0xef010]
inc r10
sub rcx, rax
movzx edx, byte [rcx]
movzx ecx, dl
rol cl, 1
xor dl, cl
rol cl, 1
xor dl, cl
rol cl, 1
movzx eax, cl
rol al, 1
xor al, dl
xor al, cl
xor al, 0x63
mov byte [r10 - 1], al
movzx eax, al
mov byte [rax + r12 + 0xee990], r8b
cmp r9d, ebx
jl 0x1800a8a95
mov al, 1
lea r8, [0x1800eea90]
mov r9d, 0x1e
nop dword [rax]
movzx ecx, al
mov dword [r8], ecx
movzx ecx, al
and cl, 0x80
neg cl
sbb dl, dl
add al, al
add r8, 4
and dl, 0x1b
xor al, dl
dec r9
jne 0x1800a8af0
mov ecx, dword [0x180002d58]
movzx r15d, byte [reloc.WS2_32.dll_ntohl]
movzx r14d, byte [reloc.WS2_32.dll_htons]
movzx ebp, byte [0x180002d59]
xor esi, esi
nop
movzx r10d, byte [rsi + r12 + 0xee890]
movzx r9d, r10b
movzx r11d, r10b
and r9b, 0x80
movzx eax, r9b
neg al
sbb dl, dl
add r11b, r11b
and dl, 0x1b
movzx r8d, r11b
xor r8b, dl
xor r8b, r10b
neg r9b
movzx r9d, byte [rsi + r12 + 0xee990]
sbb al, al
movzx edx, r8b
shl edx, 8
and al, 0x1b
or edx, r10d
xor r11b, al
shl edx, 8
movzx eax, r11b
or edx, r10d
shl edx, 8
or edx, eax
mov dword [r12 + rsi*4 + 0xeec10], edx
test cl, cl
je 0x1800a8be2
test r9b, r9b
je 0x1800a8be2
movzx eax, cl
movzx r8d, byte [rax + r12 + 0xef010]
movzx eax, r9b
movzx eax, byte [rax + r12 + 0xef010]
add r8d, eax
mov eax, 0x80808081
imul r8d
add edx, r8d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xff
sub r8d, eax
movsxd rax, r8d
movzx edi, byte [rax + r12 + 0xeeb10]
jmp 0x1800a8be5
xor dil, dil
test bpl, bpl
je 0x1800a8c38
test r9b, r9b
je 0x1800a8c38
movzx eax, bpl
movzx r8d, byte [rax + r12 + 0xef010]
movzx eax, r9b
movzx eax, byte [rax + r12 + 0xef010]
add r8d, eax
mov eax, 0x80808081
imul r8d
add edx, r8d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xff
sub r8d, eax
movsxd rax, r8d
movzx r11d, byte [rax + r12 + 0xeeb10]
jmp 0x1800a8c3b
xor r11b, r11b
test r14b, r14b
je 0x1800a8c8e
test r9b, r9b
je 0x1800a8c8e
movzx eax, r14b
movzx r8d, byte [rax + r12 + 0xef010]
movzx eax, r9b
movzx eax, byte [rax + r12 + 0xef010]
add r8d, eax
mov eax, 0x80808081
imul r8d
add edx, r8d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xff
sub r8d, eax
movsxd rax, r8d
movzx r10d, byte [rax + r12 + 0xeeb10]
jmp 0x1800a8c91
xor r10b, r10b
test r15b, r15b
je 0x1800a8ce4
test r9b, r9b
je 0x1800a8ce4
movzx eax, r15b
movzx r8d, byte [rax + r12 + 0xef010]
movzx eax, r9b
movzx eax, byte [rax + r12 + 0xef010]
add r8d, eax
mov eax, 0x80808081
imul r8d
add edx, r8d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xff
sub r8d, eax
movsxd rax, r8d
movzx r8d, byte [rax + r12 + 0xeeb10]
jmp 0x1800a8ce7
xor r8b, r8b
movzx eax, r11b
movzx edx, dil
inc rsi
shl edx, 8
or edx, eax
movzx eax, r10b
shl edx, 8
or edx, eax
movzx eax, r8b
shl edx, 8
or edx, eax
mov dword [r12 + rsi*4 + 0xee48c], edx
dec rbx
jne 0x1800a8b30
mov rbx, qword [rsp + 0x20]
mov rbp, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
pop r15
pop r14
pop r12
ret