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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x20
mov ebp, r8d
mov r15, rcx
cmp r8d, 0x10
ja 0x1400c90cb
mov ebp, reloc.WS2_32.dll_recv
jmp 0x1400c90e1
cmp ebp, 0x20
jb 0x1400c90d7
mov ebp, 0x20
jmp 0x1400c90e1
mov eax, 0x18
cmp ebp, eax
cmovne ebp, eax
lea r14, [rcx + 0x4c]
mov r8d, ebp
mov esi, ebp
mov edi, ebp
shr esi, 2
mov rbx, r14
lea eax, [rsi + 6]
mov dword [rcx + 0x48], eax
mov rcx, r14
call sub.VCRUNTIME140.dll_memcpy
lea r8d, [rsi*4]
xor edx, edx
sub r8d, ebp
lea rcx, [rdi + r14]
call sub.VCRUNTIME140.dll_memset
lea eax, [rbp + 3]
and eax, 0xfffffffc
shr eax, 2
test eax, eax
je 0x1400c9154
mov rdx, rbx
mov r8d, eax
nop dword [rax]
mov eax, dword [rdx]
lea rdx, [rdx + 4]
mov ecx, eax
rol eax, 8
ror ecx, 8
and eax, 0xff00ff
and ecx, 0xff00ff00
or ecx, eax
mov dword [rdx - 4], ecx
sub r8, 1
jne 0x1400c9130
cmp ebp, 0x10
je 0x1400c94a6
cmp ebp, 0x18
je 0x1400c933f
cmp ebp, 0x20
jne 0x1400c95f6
mov r8d, dword [r14 + 0x1c]
lea r10, [r14 + 0x20]
mov eax, r8d
lea r11, [0x1403f41b4]
shr eax, 0x18
lea edi, [rbp - 0x1a]
movzx ecx, al
mov rax, qword [0x1404b32a8]
movzx r9d, byte [rax + rcx*4]
mov eax, r8d
shr eax, 8
movzx ecx, al
mov rax, qword [str.p_v__]
mov edx, dword [rax + rcx*4]
mov eax, r8d
shr eax, 0x10
and edx, 0xff0000
xor r9d, edx
movzx ecx, al
mov rax, qword [str.p_a__]
mov edx, dword [rax + rcx*4]
mov rax, qword [0x1404b32a0]
and edx, 0xff000000
xor r9d, edx
movzx ecx, r8b
mov edx, dword [rax + rcx*4]
mov eax, dword [r14 + 4]
and edx, 0xff00
mov ecx, dword [r14 + 8]
xor r9d, edx
xor r9d, dword [r14]
xor r9d, dword [0x1403f41b0]
xor eax, r9d
mov dword [r10], r9d
xor ecx, eax
mov dword [r14 + 0x24], eax
mov eax, dword [r14 + 0xc]
xor eax, ecx
mov dword [r14 + 0x28], ecx
mov dword [r14 + 0x2c], eax
mov r8d, dword [rbx + 0x2c]
lea r11, [r11 + 4]
mov eax, r8d
shr eax, 0x10
movzx ecx, al
mov rax, qword [str.p_v__]
mov r9d, dword [rax + rcx*4]
mov eax, r8d
shr eax, 8
and r9d, 0xff0000
movzx ecx, al
mov rax, qword [0x1404b32a0]
mov edx, dword [rax + rcx*4]
mov eax, r8d
shr eax, 0x18
and edx, 0xff00
movzx ecx, al
xor r9d, edx
mov rax, qword [str.p_a__]
mov edx, dword [rax + rcx*4]
mov rax, qword [0x1404b32a8]
and edx, 0xff000000
xor r9d, edx
movzx ecx, r8b
movzx edx, byte [rax + rcx*4]
mov eax, dword [rbx + 0x14]
xor r9d, edx
xor r9d, dword [rbx + 0x10]
mov ecx, dword [rbx + 0x18]
xor eax, r9d
mov dword [rbx + 0x34], eax
xor ecx, eax
mov dword [rbx + 0x38], ecx
xor ecx, dword [rbx + 0x1c]
mov dword [rbx + 0x3c], ecx
mov dword [rbx + 0x30], r9d
lea rbx, [r10]
mov r8d, dword [r10 + 0x1c]
lea r10, [r10 + 0x20]
mov eax, r8d
shr eax, 0x18
movzx ecx, al
mov rax, qword [0x1404b32a8]
movzx r9d, byte [rax + rcx*4]
mov eax, r8d
shr eax, 8
movzx ecx, al
mov rax, qword [str.p_v__]
mov edx, dword [rax + rcx*4]
mov eax, r8d
shr eax, 0x10
and edx, 0xff0000
xor r9d, edx
movzx ecx, al
mov rax, qword [str.p_a__]
mov edx, dword [rax + rcx*4]
mov rax, qword [0x1404b32a0]
and edx, 0xff000000
xor r9d, edx
movzx ecx, r8b
mov edx, dword [rax + rcx*4]
and edx, 0xff00
xor r9d, edx
xor r9d, dword [r10 - 0x20]
xor r9d, dword [r11 - 4]
mov dword [r10], r9d
mov eax, dword [rbx + 4]
xor eax, r9d
mov dword [rbx + 0x24], eax
mov ecx, dword [rbx + 8]
xor ecx, eax
mov dword [rbx + 0x28], ecx
mov eax, dword [rbx + 0xc]
xor eax, ecx
mov dword [rbx + 0x2c], eax
sub rdi, 1
jne 0x1400c9211
jmp 0x1400c95f6
mov r8d, dword [r14 + 0x14]
lea r11, [0x1403f41b4]
mov eax, r8d
mov r10d, 7
shr eax, 0x18
movzx ecx, al
mov rax, qword [0x1404b32a8]
movzx r9d, byte [rax + rcx*4]
mov eax, r8d
shr eax, 8
movzx ecx, al
mov rax, qword [str.p_v__]
mov edx, dword [rax + rcx*4]
mov eax, r8d
shr eax, 0x10
and edx, 0xff0000
xor r9d, edx
movzx ecx, al
mov rax, qword [str.p_a__]
mov edx, dword [rax + rcx*4]
mov rax, qword [0x1404b32a0]
and edx, 0xff000000
xor r9d, edx
movzx ecx, r8b
mov edx, dword [rax + rcx*4]
mov eax, dword [r14 + 4]
and edx, 0xff00
mov ecx, dword [r14 + 8]
xor r9d, edx
xor r9d, dword [r14]
lea rdx, [r14 + 0x18]
xor r9d, dword [0x1403f41b0]
xor eax, r9d
mov dword [rdx], r9d
xor ecx, eax
mov dword [r14 + 0x1c], eax
mov eax, dword [r14 + 0xc]
xor eax, ecx
mov dword [r14 + 0x20], ecx
mov dword [r14 + 0x24], eax
nop dword [rax]
nop dword [rax + rax]
mov ecx, dword [rbx + 0x10]
lea r11, [r11 + 4]
xor ecx, dword [rbx + 0x24]
mov eax, dword [rbx + 0x14]
mov dword [rbx + 0x28], ecx
xor eax, ecx
mov dword [rbx + 0x2c], eax
lea rbx, [rdx]
mov r8d, dword [rdx + 0x14]
mov eax, r8d
shr eax, 0x18
movzx ecx, al
mov rax, qword [0x1404b32a8]
movzx r9d, byte [rax + rcx*4]
mov eax, r8d
shr eax, 8
movzx ecx, al
mov rax, qword [str.p_v__]
mov edx, dword [rax + rcx*4]
mov eax, r8d
shr eax, 0x10
and edx, 0xff0000
xor r9d, edx
movzx ecx, al
mov rax, qword [str.p_a__]
mov edx, dword [rax + rcx*4]
mov rax, qword [0x1404b32a0]
and edx, 0xff000000
xor r9d, edx
movzx ecx, r8b
mov edx, dword [rax + rcx*4]
and edx, 0xff00
xor r9d, edx
lea rdx, [rbx + 0x18]
xor r9d, dword [rbx]
xor r9d, dword [r11 - 4]
mov dword [rdx], r9d
mov eax, dword [rbx + 4]
xor eax, r9d
mov dword [rbx + 0x1c], eax
mov ecx, dword [rbx + 8]
xor ecx, eax
mov dword [rbx + 0x20], ecx
mov eax, dword [rbx + 0xc]
xor eax, ecx
mov dword [rbx + 0x24], eax
sub r10, 1
jne 0x1400c93f0
jmp 0x1400c95f6
mov r9d, dword [r14 + 0xc]
lea r11, [0x1403f41b4]
mov eax, r9d
mov ebx, 9
shr eax, 0x18
movzx ecx, al
mov rax, qword [0x1404b32a8]
movzx r8d, byte [rax + rcx*4]
mov eax, r9d
shr eax, 8
movzx ecx, al
mov rax, qword [str.p_v__]
mov edx, dword [rax + rcx*4]
mov eax, r9d
and edx, 0xff0000
shr eax, 0x10
xor r8d, edx
movzx ecx, al
mov rax, qword [str.p_a__]
mov edx, dword [rax + rcx*4]
mov rax, qword [0x1404b32a0]
and edx, 0xff000000
xor r8d, edx
movzx ecx, r9b
mov edx, dword [rax + rcx*4]
mov eax, dword [r14 + 4]
and edx, 0xff00
mov ecx, dword [r14 + 8]
xor r8d, edx
xor r8d, dword [r14]
lea rdx, [r14 + 0x10]
xor r8d, dword [0x1403f41b0]
xor eax, r8d
mov dword [rdx], r8d
xor ecx, eax
mov dword [r14 + 0x14], eax
xor r9d, ecx
mov dword [r14 + 0x18], ecx
mov dword [r14 + 0x1c], r9d
nop word [rax + rax]
mov r8d, dword [rdx + 0xc]
lea r10, [rdx]
mov eax, r8d
lea r11, [r11 + 4]
shr eax, 0x18
movzx ecx, al
mov rax, qword [0x1404b32a8]
movzx r9d, byte [rax + rcx*4]
mov eax, r8d
shr eax, 8
movzx ecx, al
mov rax, qword [str.p_v__]
mov edx, dword [rax + rcx*4]
mov eax, r8d
shr eax, 0x10
and edx, 0xff0000
xor r9d, edx
movzx ecx, al
mov rax, qword [str.p_a__]
mov edx, dword [rax + rcx*4]
mov rax, qword [0x1404b32a0]
and edx, 0xff000000
xor r9d, edx
movzx ecx, r8b
mov edx, dword [rax + rcx*4]
and edx, 0xff00
xor r9d, edx
lea rdx, [r10 + 0x10]
xor r9d, dword [r11 - 4]
xor r9d, dword [r10]
mov dword [rdx], r9d
mov eax, dword [r10 + 4]
xor eax, r9d
mov dword [r10 + 0x14], eax
mov ecx, dword [r10 + 8]
xor ecx, eax
mov dword [r10 + 0x18], ecx
mov eax, dword [r10 + 0xc]
xor eax, ecx
mov dword [r10 + 0x1c], eax
sub rbx, 1
jne 0x1400c9550
cmp dword [r15 + 0x40], 1
jne 0x1400c987d
mov r10d, dword [r15 + 0x48]
shl r10d, 2
test r10d, r10d
je 0x1400c969c
lea r11d, [r10 + 2]
mov r9d, 2
nop dword [rax]
lea eax, [r9 - 2]
mov r8d, dword [r14 + rax*4]
lea rdx, [r14 + rax*4]
mov eax, dword [r14 + r10*4]
lea rcx, [r14 + r10*4]
mov dword [rdx], eax
add r10d, 0xfffffffc
mov dword [rcx], r8d
lea eax, [r9 - 1]
mov r8d, dword [r14 + rax*4]
lea rdx, [r14 + rax*4]
lea eax, [r11 - 1]
mov ecx, eax
mov eax, dword [r14 + rax*4]
mov dword [rdx], eax
mov eax, r9d
lea rdx, [r14 + rax*4]
mov dword [r14 + rcx*4], r8d
mov eax, dword [r14 + r11*4]
lea rcx, [r14 + r11*4]
mov r8d, dword [rdx]
mov dword [rdx], eax
lea eax, [r9 + 1]
lea rdx, [r14 + rax*4]
mov dword [rcx], r8d
mov r8d, dword [rdx]
lea eax, [r11 + 1]
mov ecx, eax
lea r11d, [r11 - 4]
mov eax, dword [r14 + rax*4]
add r9d, 4
mov dword [rdx], eax
mov dword [r14 + rcx*4], r8d
lea eax, [r9 - 2]
cmp eax, r10d
jb 0x1400c9620
mov ebx, 1
cmp dword [r15 + 0x48], ebx
jbe 0x1400c987d
nop dword [rax + rax]
mov r11, qword [0x1404b32a8]
lea r14, [r14 + 0x10]
mov r10d, dword [r14]
mov eax, r10d
shr eax, 8
movzx ecx, al
mov eax, r10d
shr eax, 0x10
movzx eax, al
shr r10d, 0x18
movzx r8d, byte [r11 + rcx*4]
movzx ecx, byte [r11 + rax*4]
mov rax, qword [0x1404b32c8]
mov edx, dword [rax + rcx*4]
mov rax, qword [str.pe__]
mov r9d, dword [rax + r8*4]
xor r9d, edx
movzx eax, r10b
mov r10d, dword [r14 + 4]
movzx ecx, byte [r11 + rax*4]
mov rax, qword [0x1404b32c0]
xor r9d, dword [rax + rcx*4]
movzx eax, byte [r14]
movzx ecx, byte [r11 + rax*4]
mov rax, qword [0x1404b32d8]
xor r9d, dword [rax + rcx*4]
mov eax, r10d
mov dword [r14], r9d
mov r11, qword [0x1404b32a8]
shr eax, 8
movzx ecx, al
mov eax, r10d
shr eax, 0x10
movzx eax, al
shr r10d, 0x18
movzx r8d, byte [r11 + rcx*4]
movzx ecx, byte [r11 + rax*4]
mov rax, qword [0x1404b32c8]
mov edx, dword [rax + rcx*4]
mov rax, qword [str.pe__]
mov r9d, dword [rax + r8*4]
xor r9d, edx
movzx eax, r10b
mov r10d, dword [r14 + 8]
movzx ecx, byte [r11 + rax*4]
mov rax, qword [0x1404b32c0]
xor r9d, dword [rax + rcx*4]
movzx eax, byte [r14 + 4]
movzx ecx, byte [r11 + rax*4]
mov rax, qword [0x1404b32d8]
xor r9d, dword [rax + rcx*4]
mov eax, r10d
mov dword [r14 + 4], r9d
mov r11, qword [0x1404b32a8]
shr eax, 8
movzx ecx, al
mov eax, r10d
shr eax, 0x10
movzx eax, al
shr r10d, 0x18
movzx r8d, byte [r11 + rcx*4]
movzx ecx, byte [r11 + rax*4]
mov rax, qword [0x1404b32c8]
mov edx, dword [rax + rcx*4]
mov rax, qword [str.pe__]
mov r9d, dword [rax + r8*4]
movzx eax, r10b
xor r9d, edx
mov r10d, dword [r14 + 0xc]
movzx ecx, byte [r11 + rax*4]
mov rax, qword [0x1404b32c0]
xor r9d, dword [rax + rcx*4]
movzx eax, byte [r14 + 8]
movzx ecx, byte [r11 + rax*4]
mov rax, qword [0x1404b32d8]
xor r9d, dword [rax + rcx*4]
mov eax, r10d
shr eax, 8
mov dword [r14 + 8], r9d
mov r11, qword [0x1404b32a8]
movzx ecx, al
movzx r8d, byte [r11 + rcx*4]
mov eax, r10d
shr eax, 0x10
inc ebx
movzx eax, al
shr r10d, 0x18
movzx ecx, byte [r11 + rax*4]
mov rax, qword [0x1404b32c8]
mov edx, dword [rax + rcx*4]
mov rax, qword [str.pe__]
mov r9d, dword [rax + r8*4]
xor r9d, edx
movzx eax, r10b
movzx ecx, byte [r11 + rax*4]
mov rax, qword [0x1404b32c0]
xor r9d, dword [rax + rcx*4]
movzx eax, byte [r14 + 0xc]
movzx ecx, byte [r11 + rax*4]
mov rax, qword [0x1404b32d8]
xor r9d, dword [rax + rcx*4]
mov dword [r14 + 0xc], r9d
cmp ebx, dword [r15 + 0x48]
jb 0x1400c96b0
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x20
pop r15
pop r14
pop rdi
ret