Function at 0x180023fb0
Capabilities:
Encode data using xor
Encrypt data using aes
Reference aes constants

Disassembly:
mov qword [rsp + 0x18], r8
push r12
push r13
push r14
sub rsp, 0x10
mov r13d, dword [rcx + 0xf0]
mov r12, r8
mov r14, rcx
shr r13d, 1
lea eax, [r13 - 1]
cmp eax, 6
ja 0x18002457f
mov eax, dword [rdx]
mov r9d, dword [rdx + 4]
mov r10d, dword [rdx + 8]
mov edx, dword [rdx + 0xc]
mov r11d, r9d
rol r9d, 8
and r9d, 0xff00ff
mov qword [rsp + 0x30], rbx
ror r11d, 8
mov r8d, eax
mov qword [rsp + 0x38], rbp
and r11d, 0xff00ff00
or r11d, r9d
mov r9d, r10d
mov qword [rsp + 0x48], rsi
ror r8d, 8
xor r11d, dword [rcx + 4]
mov qword [rsp + 8], rdi
ror r9d, 8
and r8d, 0xff00ff00
lea rbp, [0x180044b00]
rol eax, 8
and r9d, 0xff00ff00
mov qword [rsp], r15
rol r10d, 8
and eax, 0xff00ff
lea rdi, [0x180045b00]
and r10d, 0xff00ff
or r8d, eax
mov rax, rbp
xor r8d, dword [rcx]
or r9d, r10d
mov r10d, edx
xor r9d, dword [rcx + 8]
ror r10d, 8
and r10d, 0xff00ff00
rol edx, 8
and edx, 0xff00ff
or r10d, edx
xor r10d, dword [rcx + 0xc]
xor ebx, ebx
mov edx, ebx
mov ecx, reloc.WS2_32.dll_recv
and edx, dword [rax]
add rax, 0x40
dec rcx
jne 0x180024095
cmp rax, rdi
jl 0x180024090
or r8d, edx
mov eax, r10d
add r14, 0x20
shr eax, 0x10
movzx edx, al
mov eax, r9d
mov r15d, dword [rbp + rdx*4 + 0x400]
shr eax, 8
movzx ecx, al
mov eax, r8d
xor r15d, dword [rbp + rcx*4 + 0x800]
shr eax, 0x18
movzx ecx, al
movzx eax, r11b
xor r15d, dword [rbp + rcx*4]
xor r15d, dword [rbp + rax*4 + 0xc00]
mov eax, r10d
xor r15d, dword [r14 - 0x10]
shr eax, 8
movzx edx, al
mov eax, r11d
mov edi, dword [rbp + rdx*4 + 0x800]
shr eax, 0x18
movzx ecx, al
mov eax, r8d
xor edi, dword [rbp + rcx*4]
shr eax, 0x10
movzx ecx, al
movzx eax, r9b
xor edi, dword [rbp + rcx*4 + 0x400]
xor edi, dword [rbp + rax*4 + 0xc00]
mov eax, r9d
shr r9d, 0x10
xor edi, dword [r14 - 0xc]
shr eax, 0x18
movzx edx, al
mov eax, r11d
shr r11d, 8
mov esi, dword [rbp + rdx*4]
shr eax, 0x10
movzx ecx, al
mov eax, r8d
xor esi, dword [rbp + rcx*4 + 0x400]
shr eax, 8
movzx ecx, al
movzx eax, r10b
shr r10d, 0x18
xor esi, dword [rbp + rcx*4 + 0x800]
movzx ecx, r10b
xor esi, dword [rbp + rax*4 + 0xc00]
mov ebp, dword [rbp + rcx*4]
lea rcx, [0x180044b00]
xor esi, dword [r14 - 8]
movzx eax, r9b
xor ebp, dword [rcx + rax*4 + 0x400]
movzx eax, r11b
xor ebp, dword [rcx + rax*4 + 0x800]
movzx eax, r8b
xor ebp, dword [rcx + rax*4 + 0xc00]
xor ebp, dword [r14 - 4]
dec r13d
je 0x1800243ae
lea r12, [0x180044b00]
mov eax, ebp
shr eax, 0x10
movzx edx, al
mov eax, esi
mov r11d, dword [r12 + rdx*4 + 0x400]
shr eax, 8
movzx ecx, al
mov eax, r15d
xor r11d, dword [r12 + rcx*4 + 0x800]
shr eax, 0x18
movzx ecx, al
movzx eax, dil
xor r11d, dword [r12 + rcx*4]
xor r11d, dword [r12 + rax*4 + 0xc00]
mov eax, ebp
xor r11d, dword [r14]
shr eax, 8
movzx edx, al
mov eax, edi
mov r10d, dword [r12 + rdx*4 + 0x800]
shr eax, 0x18
movzx ecx, al
mov eax, r15d
xor r10d, dword [r12 + rcx*4]
shr eax, 0x10
movzx ecx, al
movzx eax, sil
xor r10d, dword [r12 + rcx*4 + 0x400]
xor r10d, dword [r12 + rax*4 + 0xc00]
mov eax, esi
shr esi, 0x10
xor r10d, dword [r14 + 4]
shr eax, 0x18
movzx edx, al
mov eax, edi
shr edi, 8
mov r9d, dword [r12 + rdx*4]
shr eax, 0x10
movzx ecx, al
mov eax, r15d
xor r9d, dword [r12 + rcx*4 + 0x400]
shr eax, 8
movzx ecx, al
movzx eax, bpl
shr ebp, 0x18
xor r9d, dword [r12 + rcx*4 + 0x800]
movzx ecx, bpl
xor r9d, dword [r12 + rax*4 + 0xc00]
mov r8d, dword [r12 + rcx*4]
movzx eax, sil
xor r8d, dword [r12 + rax*4 + 0x400]
xor r9d, dword [r14 + 8]
movzx eax, dil
xor r8d, dword [r12 + rax*4 + 0x800]
movzx eax, r15b
xor r8d, dword [r12 + rax*4 + 0xc00]
xor r8d, dword [r14 + 0xc]
mov eax, r8d
shr eax, 0x10
movzx edx, al
mov eax, r9d
mov r15d, dword [r12 + rdx*4 + 0x400]
shr eax, 8
movzx ecx, al
mov eax, r11d
xor r15d, dword [r12 + rcx*4 + 0x800]
shr eax, 0x18
movzx ecx, al
movzx eax, r10b
xor r15d, dword [r12 + rcx*4]
xor r15d, dword [r12 + rax*4 + 0xc00]
mov eax, r8d
xor r15d, dword [r14 + 0x10]
shr eax, 8
movzx edx, al
mov eax, r10d
mov edi, dword [r12 + rdx*4 + 0x800]
shr eax, 0x18
movzx ecx, al
mov eax, r11d
xor edi, dword [r12 + rcx*4]
shr eax, 0x10
add r14, 0x20
movzx ecx, al
movzx eax, r9b
xor edi, dword [r12 + rcx*4 + 0x400]
xor edi, dword [r12 + rax*4 + 0xc00]
mov eax, r9d
shr r9d, 0x10
xor edi, dword [r14 - 0xc]
shr eax, 0x18
movzx edx, al
mov eax, r10d
shr r10d, 8
mov esi, dword [r12 + rdx*4]
shr eax, 0x10
movzx ecx, al
mov eax, r11d
xor esi, dword [r12 + rcx*4 + 0x400]
shr eax, 8
movzx ecx, al
movzx eax, r8b
shr r8d, 0x18
xor esi, dword [r12 + rcx*4 + 0x800]
movzx ecx, r8b
xor esi, dword [r12 + rax*4 + 0xc00]
mov ebp, dword [r12 + rcx*4]
movzx eax, r9b
xor ebp, dword [r12 + rax*4 + 0x400]
xor esi, dword [r14 - 8]
movzx eax, r10b
xor ebp, dword [r12 + rax*4 + 0x800]
movzx eax, r11b
xor ebp, dword [r12 + rax*4 + 0xc00]
xor ebp, dword [r14 - 4]
dec r13d
jne 0x1800241b4
mov r12, qword [rsp + 0x40]
mov rcx, rbx
lea r11, [0x180044a00]
nop dword [rax + rax]
movzx eax, byte [rcx + r11]
add rcx, 0x40
and ebx, eax
cmp rcx, 0x100
jl 0x1800243c0
or r15d, ebx
mov eax, r15d
shr eax, 0x18
movzx ecx, al
mov eax, ebp
movzx r10d, byte [rcx + r11]
shr eax, 0x10
movzx ecx, al
shl r10d, 8
movzx eax, byte [rcx + r11]
xor r10d, eax
mov eax, esi
shr eax, 8
shl r10d, 8
movzx ecx, al
movzx eax, byte [rcx + r11]
xor r10d, eax
movzx eax, dil
movzx ecx, byte [rax + r11]
mov eax, edi
shl r10d, 8
shr eax, 0x18
xor r10d, ecx
xor r10d, dword [r14]
movzx ecx, al
mov eax, r15d
movzx r9d, byte [rcx + r11]
shr eax, 0x10
movzx ecx, al
shl r9d, 8
movzx eax, byte [rcx + r11]
xor r9d, eax
mov eax, ebp
shr eax, 8
shl r9d, 8
movzx ecx, al
movzx eax, byte [rcx + r11]
xor r9d, eax
movzx eax, sil
movzx ecx, byte [rax + r11]
mov eax, esi
shl r9d, 8
shr eax, 0x18
xor r9d, ecx
shr esi, 0x10
xor r9d, dword [r14 + 4]
movzx ecx, al
mov eax, edi
movzx r8d, byte [rcx + r11]
shr eax, 0x10
shr edi, 8
movzx ecx, al
shl r8d, 8
movzx eax, byte [rcx + r11]
xor r8d, eax
mov eax, r15d
shr eax, 8
shl r8d, 8
movzx ecx, al
movzx eax, byte [rcx + r11]
xor r8d, eax
movzx eax, bpl
shr ebp, 0x18
movzx ecx, byte [rax + r11]
shl r8d, 8
movzx eax, bpl
movzx edx, byte [rax + r11]
xor r8d, ecx
movzx eax, sil
movzx ecx, byte [rax + r11]
xor r8d, dword [r14 + 8]
shl edx, 8
xor edx, ecx
movzx eax, dil
movzx ecx, byte [rax + r11]
shl edx, 8
movzx eax, r15b
xor edx, ecx
movzx ecx, byte [rax + r11]
shl edx, 8
xor edx, ecx
xor edx, dword [r14 + 0xc]
mov r15, qword [rsp]
mov rdi, qword [rsp + 8]
mov rsi, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
mov eax, r10d
rol r10d, 8
and r10d, 0xff00ff
ror eax, 8
and eax, 0xff00ff00
or eax, r10d
mov dword [r12], eax
mov eax, r9d
ror eax, 8
and eax, 0xff00ff00
rol r9d, 8
and r9d, 0xff00ff
or eax, r9d
mov dword [r12 + 4], eax
mov eax, r8d
ror eax, 8
and eax, 0xff00ff00
rol r8d, 8
and r8d, 0xff00ff
or eax, r8d
mov dword [r12 + 8], eax
mov eax, edx
ror eax, 8
and eax, 0xff00ff00
rol edx, 8
and edx, 0xff00ff
or eax, edx
mov dword [r12 + 0xc], eax
add rsp, 0x10
pop r14
pop r13
pop r12
ret