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

Disassembly:
push rsi
push rdi
push r14
sub rsp, 0x10
mov esi, dword [rcx + 0xf0]
mov r14, r8
mov rdi, rcx
shr esi, 1
cmp esi, 7
ja 0x1800041d6
test esi, esi
je 0x1800041d6
mov r9d, dword [rdx]
mov r10d, dword [rdx + 4]
mov r11d, dword [rdx + 0xc]
mov qword [rsp + 0x30], rbx
mov ebx, dword [rdx + 8]
mov eax, r9d
ror eax, 8
rol r9d, 8
mov r8d, r11d
mov ecx, r10d
mov edx, ebx
xor r9d, eax
ror ecx, 8
rol r10d, 8
ror edx, 8
rol ebx, 8
ror r8d, 8
rol r11d, 8
xor r11d, r8d
xor r10d, ecx
xor ebx, edx
and r11d, 0xff00ff
and r10d, 0xff00ff
and ebx, 0xff00ff
xor r11d, dword [rdi + 0xc]
xor r10d, dword [rdi + 4]
xor ebx, dword [rdi + 8]
mov qword [rsp + 0x38], rbp
and r9d, 0xff00ff
mov qword [rsp + 0x40], r12
xor r9d, eax
xor r11d, r8d
mov qword [rsp + 8], r13
xor r9d, dword [rdi]
mov qword [rsp], r15
lea r15, [0x18009bba0]
xor r10d, ecx
xor ebx, edx
lea r8, [0x18009cba0]
xor edx, edx
mov rax, r15
nop word [rax + rax]
mov ecx, reloc.WS2_32.dll_recv
and edx, dword [rax]
add rax, 0x40
dec rcx
jne 0x180003ce5
cmp rax, r8
jl 0x180003ce0
or r9d, edx
mov eax, ebx
add rdi, 0x20
shr eax, 8
movzx edx, al
mov eax, r10d
mov ebp, dword [r15 + rdx*4 + 0x800]
shr eax, 0x10
movzx ecx, al
mov eax, r9d
xor ebp, dword [r15 + rcx*4 + 0x400]
shr eax, 0x18
movzx ecx, al
movzx eax, r11b
xor ebp, dword [r15 + rcx*4]
xor ebp, dword [r15 + rax*4 + 0xc00]
mov eax, r11d
xor ebp, dword [rdi - 0x10]
shr eax, 8
movzx edx, al
mov eax, ebx
mov r12d, dword [r15 + rdx*4 + 0x800]
shr eax, 0x10
movzx ecx, al
mov eax, r10d
xor r12d, dword [r15 + rcx*4 + 0x400]
shr eax, 0x18
movzx ecx, al
movzx eax, r9b
xor r12d, dword [r15 + rcx*4]
xor r12d, dword [r15 + rax*4 + 0xc00]
mov eax, r11d
shr r11d, 0x18
xor r12d, dword [rdi - 0xc]
shr eax, 0x10
movzx edx, al
mov eax, ebx
mov r13d, dword [r15 + rdx*4 + 0x400]
shr eax, 0x18
movzx ecx, al
mov eax, r9d
shr r9d, 0x10
xor r13d, dword [r15 + rcx*4]
shr eax, 8
movzx ecx, al
movzx eax, r10b
shr r10d, 8
xor r13d, dword [r15 + rcx*4 + 0x800]
movzx ecx, r11b
xor r13d, dword [r15 + rax*4 + 0xc00]
mov r8d, dword [r15 + rcx*4]
movzx eax, r10b
xor r8d, dword [r15 + rax*4 + 0x800]
xor r13d, dword [rdi - 8]
movzx eax, r9b
xor r8d, dword [r15 + rax*4 + 0x400]
movzx eax, bl
xor r8d, dword [r15 + rax*4 + 0xc00]
xor r8d, dword [rdi - 4]
dec esi
je 0x180003ff9
nop dword [rax + rax]
mov eax, r13d
shr eax, 8
movzx edx, al
mov eax, r12d
mov r11d, dword [r15 + rdx*4 + 0x800]
shr eax, 0x10
movzx ecx, al
mov eax, ebp
xor r11d, dword [r15 + rcx*4 + 0x400]
shr eax, 0x18
movzx ecx, al
movzx eax, r8b
xor r11d, dword [r15 + rcx*4]
xor r11d, dword [r15 + rax*4 + 0xc00]
mov eax, r8d
xor r11d, dword [rdi]
shr eax, 8
movzx edx, al
mov eax, r13d
mov r10d, dword [r15 + rdx*4 + 0x800]
shr eax, 0x10
movzx ecx, al
mov eax, r12d
xor r10d, dword [r15 + rcx*4 + 0x400]
shr eax, 0x18
movzx ecx, al
movzx eax, bpl
xor r10d, dword [r15 + rcx*4]
xor r10d, dword [r15 + rax*4 + 0xc00]
mov eax, r8d
shr r8d, 0x18
xor r10d, dword [rdi + 4]
shr eax, 0x10
movzx edx, al
mov eax, r13d
mov r9d, dword [r15 + rdx*4 + 0x400]
shr eax, 0x18
movzx ecx, al
mov eax, ebp
shr ebp, 0x10
xor r9d, dword [r15 + rcx*4]
shr eax, 8
movzx ecx, al
movzx eax, r12b
shr r12d, 8
xor r9d, dword [r15 + rcx*4 + 0x800]
movzx ecx, r8b
xor r9d, dword [r15 + rax*4 + 0xc00]
mov r8d, dword [r15 + rcx*4]
movzx eax, r12b
xor r8d, dword [r15 + rax*4 + 0x800]
xor r9d, dword [rdi + 8]
movzx eax, bpl
xor r8d, dword [r15 + rax*4 + 0x400]
movzx eax, r13b
xor r8d, dword [r15 + rax*4 + 0xc00]
mov eax, r9d
xor r8d, dword [rdi + 0xc]
shr eax, 8
movzx edx, al
mov eax, r10d
mov ebp, dword [r15 + rdx*4 + 0x800]
shr eax, 0x10
movzx ecx, al
mov eax, r11d
xor ebp, dword [r15 + rcx*4 + 0x400]
shr eax, 0x18
movzx ecx, al
movzx eax, r8b
xor ebp, dword [r15 + rcx*4]
xor ebp, dword [r15 + rax*4 + 0xc00]
mov eax, r8d
xor ebp, dword [rdi + 0x10]
shr eax, 8
movzx edx, al
mov eax, r9d
mov r12d, dword [r15 + rdx*4 + 0x800]
shr eax, 0x10
movzx ecx, al
mov eax, r10d
xor r12d, dword [r15 + rcx*4 + 0x400]
shr eax, 0x18
add rdi, 0x20
movzx ecx, al
movzx eax, r11b
xor r12d, dword [r15 + rcx*4]
xor r12d, dword [r15 + rax*4 + 0xc00]
mov eax, r8d
shr r8d, 0x18
xor r12d, dword [rdi - 0xc]
shr eax, 0x10
movzx edx, al
mov eax, r9d
mov r13d, dword [r15 + rdx*4 + 0x400]
shr eax, 0x18
movzx ecx, al
mov eax, r11d
shr r11d, 0x10
xor r13d, dword [r15 + rcx*4]
shr eax, 8
movzx ecx, al
movzx eax, r10b
shr r10d, 8
xor r13d, dword [r15 + rcx*4 + 0x800]
movzx ecx, r8b
xor r13d, dword [r15 + rax*4 + 0xc00]
mov r8d, dword [r15 + rcx*4]
movzx eax, r10b
xor r8d, dword [r15 + rax*4 + 0x800]
xor r13d, dword [rdi - 8]
movzx eax, r11b
xor r8d, dword [r15 + rax*4 + 0x400]
movzx eax, r9b
xor r8d, dword [r15 + rax*4 + 0xc00]
xor r8d, dword [rdi - 4]
dec esi
jne 0x180003e00
mov eax, r12d
shr eax, 0x10
movzx ecx, al
mov eax, r13d
mov ebx, dword [r15 + rcx*4 + 0xc00]
shr eax, 8
movzx ecx, al
and ebx, 0xff0000
mov eax, dword [r15 + rcx*4]
and eax, 0xff00
xor ebx, eax
mov eax, ebp
shr eax, 0x18
movzx ecx, al
mov eax, dword [r15 + rcx*4 + 0x800]
and eax, 0xff000000
xor ebx, eax
movzx eax, r8b
movzx eax, byte [r15 + rax*4 + 0x400]
xor ebx, eax
mov eax, r13d
shr eax, 0x10
xor ebx, dword [rdi]
movzx ecx, al
mov eax, r8d
mov r11d, dword [r15 + rcx*4 + 0xc00]
shr eax, 8
movzx ecx, al
and r11d, 0xff0000
mov eax, dword [r15 + rcx*4]
and eax, 0xff00
xor r11d, eax
mov eax, r12d
shr eax, 0x18
movzx ecx, al
mov eax, dword [r15 + rcx*4 + 0x800]
and eax, 0xff000000
xor r11d, eax
movzx eax, bpl
movzx eax, byte [r15 + rax*4 + 0x400]
xor r11d, eax
mov eax, r8d
shr r8d, 0x18
xor r11d, dword [rdi + 4]
shr eax, 0x10
movzx ecx, al
mov eax, r13d
mov r10d, dword [r15 + rcx*4 + 0xc00]
shr eax, 0x18
movzx ecx, al
and r10d, 0xff0000
mov eax, dword [r15 + rcx*4 + 0x800]
and eax, 0xff000000
xor r10d, eax
mov eax, ebp
shr ebp, 0x10
shr eax, 8
movzx ecx, al
mov eax, dword [r15 + rcx*4]
and eax, 0xff00
xor r10d, eax
movzx eax, r12b
shr r12d, 8
movzx eax, byte [r15 + rax*4 + 0x400]
xor r10d, eax
movzx eax, bpl
mov r9d, dword [r15 + rax*4 + 0xc00]
xor r10d, dword [rdi + 8]
movzx eax, r8b
mov ecx, dword [r15 + rax*4 + 0x800]
and r9d, 0xff0000
movzx eax, r12b
and ecx, 0xff000000
xor r9d, ecx
mov ecx, dword [r15 + rax*4]
movzx eax, r13b
movzx eax, byte [r15 + rax*4 + 0x400]
and ecx, 0xff00
xor r9d, ecx
xor r9d, eax
xor r9d, dword [rdi + 0xc]
mov r15, qword [rsp]
mov r13, qword [rsp + 8]
mov r12, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x38]
mov eax, ebx
mov ecx, r11d
ror eax, 8
rol ebx, 8
ror ecx, 8
rol r11d, 8
mov edx, r10d
mov r8d, r9d
ror edx, 8
rol r10d, 8
xor ebx, eax
ror r8d, 8
rol r9d, 8
xor r11d, ecx
xor r10d, edx
and ebx, 0xff00ff
xor r9d, r8d
xor ebx, eax
and r11d, 0xff00ff
and r10d, 0xff00ff
xor r11d, ecx
xor r10d, edx
and r9d, 0xff00ff
xor r9d, r8d
mov dword [r14], ebx
mov rbx, qword [rsp + 0x30]
mov dword [r14 + 0xc], r9d
mov dword [r14 + 4], r11d
mov dword [r14 + 8], r10d
add rsp, 0x10
pop r14
pop rdi
pop rsi
ret