Function at 0x14003fa50
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x88
mov r13d, 0x80
mov ebp, setsockopt
xor edi, edi
mov esi, r8d
mov r14, rdx
mov dword [rsp + 0x40], 1
lea ebx, [r13 - 0x7e]
mov dword [rsp + 0xe0], r13d
mov dword [rsp + 0xe8], ebp
test r8b, 1
je 0x14003fac2
lea ebx, [rbp - 0x13]
mov r13d, 0x400
mov ebp, 8
mov dword [rsp + 0xe8], ebp
mov dword [rsp + 0xe0], r13d
mov dword [rsp + 0x40], edi
test r8d, r8d
jns 0x14003faf3
mov ecx, r8d
mov r13d, 1
mov ebx, 1
shr ecx, 8
and ecx, 0x1f
inc ecx
shl r13d, cl
mov ecx, r8d
shr ecx, 5
mov dword [rsp + 0xe0], r13d
and ecx, 7
shl ebx, cl
lea ecx, [r13 + 3]
imul ecx, ebx
shl ecx, 7
add ecx, 0x40
call qword [sym.imp.MSVCR120.dll_malloc]
shr esi, 1
mov r8, r14
lea r15, [rax + 0x40]
mov eax, ebx
and esi, 0xf
shl eax, 5
mov qword [rsp + 0x60], r15
mov dword [rsp + 0x44], esi
lea r12, [r15 + rax*4]
mov qword [rsp + 0x68], rax
mov eax, ebx
shl eax, 6
mov qword [rsp + 0x70], r12
mov rcx, r14
lea rax, [r15 + rax*4]
mov qword [rsp + 0x58], rax
lea eax, [rbx + rbx*2]
shl eax, 5
lea rax, [r15 + rax*4]
mov qword [rsp + 0x50], rax
mov eax, esi
dec eax
je 0x14003fb76
mov eax, ebx
mov r9d, 0x50
shl eax, 7
mov esi, eax
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x48], rsi
call fcn.14003efe0
jmp 0x14003fb95
mov esi, ebx
mov r9d, 0x50
shl esi, 7
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x48], rsi
call fcn.14003c9a0
cmp dword [rsp + 0x40], edi
je 0x14003fd32
shr esi, 3
test esi, esi
je 0x14003fbed
lea r8d, [rsi - 1]
mov rdx, r15
lea rcx, [r12 + 8]
shr r8d, 2
sub rdx, r12
inc r8d
nop dword [rax]
mov rax, qword [rdx + rcx - 8]
lea rcx, [rcx + 0x20]
mov qword [rcx - 0x28], rax
mov rax, qword [rdx + rcx - 0x20]
mov qword [rcx - 0x20], rax
mov rax, qword [rdx + rcx - 0x18]
mov qword [rcx - 0x18], rax
mov rax, qword [rdx + rcx - 0x10]
mov qword [rcx - 0x10], rax
dec r8
jne 0x14003fbc0
test r13d, r13d
je 0x14003fe6f
mov r15, qword [rsp + 0x50]
mov r14d, ebp
mov ebp, r13d
mov r13, qword [rsp + 0x58]
bts r14d, 8
nop dword [rax + rax]
lea r8, [r15 + rdi*4]
test esi, esi
je 0x14003fc5d
lea rcx, [r8 + 8]
mov rdx, r12
sub rdx, r8
lea r8d, [rsi - 1]
shr r8d, 2
inc r8d
nop dword [rax]
mov rax, qword [rdx + rcx - 8]
lea rcx, [rcx + 0x20]
mov qword [rcx - 0x28], rax
mov rax, qword [rdx + rcx - 0x20]
mov qword [rcx - 0x20], rax
mov rax, qword [rdx + rcx - 0x18]
mov qword [rcx - 0x18], rax
mov rax, qword [rdx + rcx - 0x10]
mov qword [rcx - 0x10], rax
dec r8
jne 0x14003fc30
mov r9d, r14d
mov r8d, ebx
mov rdx, r13
mov rcx, r12
call fcn.14003f560
add edi, dword [rsp + 0x68]
dec rbp
jne 0x14003fc10
mov r13d, dword [rsp + 0xe0]
mov r15, qword [rsp + 0x60]
test r13d, r13d
je 0x14003fe6f
mov ebp, dword [rsp + 0xe8]
mov r15, qword [rsp + 0x50]
lea eax, [rbx*2 - 1]
shl eax, 4
mov edi, r13d
bts ebp, 8
lea r14, [r12 + rax*4]
nop
lea eax, [r13 - 1]
and eax, dword [r14]
imul eax, ebx
shl eax, 5
lea rdx, [r15 + rax*4]
test esi, esi
je 0x14003fd0d
lea r8d, [rsi - 1]
sub rdx, r12
lea rcx, [r12 + 8]
shr r8d, 2
inc r8d
nop dword [rax + rax]
mov rax, qword [rdx + rcx - 8]
lea rcx, [rcx + 0x20]
xor qword [rcx - 0x28], rax
mov rax, qword [rdx + rcx - 0x20]
xor qword [rcx - 0x20], rax
mov rax, qword [rdx + rcx - 0x18]
xor qword [rcx - 0x18], rax
mov rax, qword [rdx + rcx - 0x10]
xor qword [rcx - 0x10], rax
dec r8
jne 0x14003fce0
mov rdx, qword [rsp + 0x58]
mov r9d, ebp
mov r8d, ebx
mov rcx, r12
call fcn.14003f560
dec rdi
jne 0x14003fcb0
mov r15, qword [rsp + 0x60]
mov r13d, dword [rsp + 0xe0]
test r13d, r13d
je 0x14003fe6f
mov edi, dword [rsp + 0x48]
mov r12, qword [rsp + 0x50]
mov esi, r13d
mov r13, qword [rsp + 0x58]
shr edi, 3
xor ebp, ebp
lea r8, [r12 + rbp*4]
test edi, edi
je 0x14003fd9d
lea rcx, [r8 + 8]
mov rdx, r15
sub rdx, r8
lea r8d, [rdi - 1]
shr r8d, 2
inc r8d
nop
mov rax, qword [rdx + rcx - 8]
lea rcx, [rcx + 0x20]
mov qword [rcx - 0x28], rax
mov rax, qword [rdx + rcx - 0x20]
mov qword [rcx - 0x20], rax
mov rax, qword [rdx + rcx - 0x18]
mov qword [rcx - 0x18], rax
mov rax, qword [rdx + rcx - 0x10]
mov qword [rcx - 0x10], rax
dec r8
jne 0x14003fd70
mov r9d, dword [rsp + 0xe8]
mov r8d, ebx
mov rdx, r13
mov rcx, r15
call fcn.14003f560
add ebp, dword [rsp + 0x68]
dec rsi
jne 0x14003fd51
mov r13d, dword [rsp + 0xe0]
mov r12, qword [rsp + 0x70]
test r13d, r13d
je 0x14003fe6f
mov edi, dword [rsp + 0x48]
mov r12, qword [rsp + 0x50]
lea eax, [rbx*2 - 1]
shl eax, 4
mov esi, r13d
shr edi, 3
lea rbp, [r15 + rax*4]
nop
lea eax, [r13 - 1]
and eax, dword [rbp]
imul eax, ebx
shl eax, 5
lea rdx, [r12 + rax*4]
test edi, edi
je 0x14003fe4d
lea r8d, [rdi - 1]
sub rdx, r15
lea rax, [r15 + 8]
shr r8d, 2
inc r8d
nop word [rax + rax]
mov rcx, qword [rdx + rax - 8]
lea rax, [rax + 0x20]
xor qword [rax - 0x28], rcx
mov rcx, qword [rdx + rax - 0x20]
xor qword [rax - 0x20], rcx
mov rcx, qword [rdx + rax - 0x18]
xor qword [rax - 0x18], rcx
mov rcx, qword [rdx + rax - 0x10]
xor qword [rax - 0x10], rcx
dec r8
jne 0x14003fe20
mov r9d, dword [rsp + 0xe8]
mov rdx, qword [rsp + 0x58]
mov r8d, ebx
mov rcx, r15
call fcn.14003f560
dec rsi
jne 0x14003fdf0
mov r12, qword [rsp + 0x70]
cmp dword [rsp + 0x40], 0
mov rcx, qword [rsp + 0x48]
je 0x14003fec5
mov eax, ecx
shr eax, 3
test eax, eax
je 0x14003fec5
lea edx, [rax - 1]
sub r12, r15
lea rcx, [r15 + 8]
shr edx, 2
inc edx
mov rax, qword [r12 + rcx - 8]
lea rcx, [rcx + 0x20]
xor qword [rcx - 0x28], rax
mov rax, qword [r12 + rcx - 0x20]
xor qword [rcx - 0x20], rax
mov rax, qword [r12 + rcx - 0x18]
xor qword [rcx - 0x18], rax
mov rax, qword [r12 + rcx - 0x10]
xor qword [rcx - 0x10], rax
dec rdx
jne 0x14003fe93
mov rcx, qword [rsp + 0x48]
dec dword [rsp + 0x44]
mov rax, qword [rsp + 0xd0]
mov r8, r15
je 0x14003fef5
mov r9d, ecx
mov rcx, qword [rsp + 0xd8]
mov dword [rsp + 0x30], 0x20
mov qword [rsp + 0x28], rax
call fcn.14003efe0
jmp 0x14003ff13
mov r9d, ecx
mov rcx, qword [rsp + 0xd8]
mov qword [rsp + 0x30], 0x20
mov qword [rsp + 0x28], rax
call fcn.14003c9a0
add rsp, 0x88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret