Function at 0x14003e840
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 0x14003e8b2
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 0x14003e8e3
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 0x14003e966
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.14003ddd0
jmp 0x14003e985
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.14003b720
cmp dword [rsp + 0x40], edi
je 0x14003eb22
shr esi, 3
test esi, esi
je 0x14003e9dd
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 0x14003e9b0
test r13d, r13d
je 0x14003ec5f
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 0x14003ea4d
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 0x14003ea20
mov r9d, r14d
mov r8d, ebx
mov rdx, r13
mov rcx, r12
call fcn.14003e350
add edi, dword [rsp + 0x68]
dec rbp
jne 0x14003ea00
mov r13d, dword [rsp + 0xe0]
mov r15, qword [rsp + 0x60]
test r13d, r13d
je 0x14003ec5f
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 0x14003eafd
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 0x14003ead0
mov rdx, qword [rsp + 0x58]
mov r9d, ebp
mov r8d, ebx
mov rcx, r12
call fcn.14003e350
dec rdi
jne 0x14003eaa0
mov r15, qword [rsp + 0x60]
mov r13d, dword [rsp + 0xe0]
test r13d, r13d
je 0x14003ec5f
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 0x14003eb8d
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 0x14003eb60
mov r9d, dword [rsp + 0xe8]
mov r8d, ebx
mov rdx, r13
mov rcx, r15
call fcn.14003e350
add ebp, dword [rsp + 0x68]
dec rsi
jne 0x14003eb41
mov r13d, dword [rsp + 0xe0]
mov r12, qword [rsp + 0x70]
test r13d, r13d
je 0x14003ec5f
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 0x14003ec3d
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 0x14003ec10
mov r9d, dword [rsp + 0xe8]
mov rdx, qword [rsp + 0x58]
mov r8d, ebx
mov rcx, r15
call fcn.14003e350
dec rsi
jne 0x14003ebe0
mov r12, qword [rsp + 0x70]
cmp dword [rsp + 0x40], 0
mov rcx, qword [rsp + 0x48]
je 0x14003ecb5
mov eax, ecx
shr eax, 3
test eax, eax
je 0x14003ecb5
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 0x14003ec83
mov rcx, qword [rsp + 0x48]
dec dword [rsp + 0x44]
mov rax, qword [rsp + 0xd0]
mov r8, r15
je 0x14003ece5
mov r9d, ecx
mov rcx, qword [rsp + 0xd8]
mov dword [rsp + 0x30], 0x20
mov qword [rsp + 0x28], rax
call fcn.14003ddd0
jmp 0x14003ed03
mov r9d, ecx
mov rcx, qword [rsp + 0xd8]
mov qword [rsp + 0x30], 0x20
mov qword [rsp + 0x28], rax
call fcn.14003b720
add rsp, 0x88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret