Function at 0x14003ccd0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r13
push r15
lea rbp, [rsp - 7]
sub rsp, 0xa8
mov rax, qword [0x140088040]
xor rax, rsp
mov qword [rbp - 9], rax
mov rax, qword [rbp + 0x67]
mov r13, r8
mov rbx, qword [rbp + 0x5f]
mov rsi, qword [rbp + 0x77]
mov rdi, qword [rbp + 0x7f]
mov dword [rbp - 0x61], edx
mov rdx, qword [rbp + 0x8f]
mov qword [rbp - 0x51], rax
mov rax, qword [rbp + 0x87]
mov qword [rbp - 0x41], rax
mov qword [rbp - 0x49], r9
mov qword [rbp - 0x69], rcx
cmp rdx, 2
je 0x14003d1c8
cmp rdx, 0x10
ja 0x14003d1c8
test dl, 1
jne 0x14003d1c8
lea rax, [rbx - 7]
cmp rax, 6
ja 0x14003d1c8
lea eax, [rdx + 0xfe]
mov r15d, select
shl al, 2
sub r15b, bl
and al, 0xf8
mov r8, rbx
mov rdx, r9
lea ecx, [r15 - 1]
or al, cl
mov byte [rbp - 0x71], cl
or al, 0x40
lea rcx, [rbp - 0x38]
mov byte [rbp - 0x39], al
call fcn.140065900
mov rax, r13
test r15b, r15b
je 0x14003cdb0
lea rcx, [rbp - 0x2a]
movzx edx, r15b
nop dword [rax]
nop word [rax + rax]
mov byte [rcx], al
lea rcx, [rcx - 1]
shr rax, 8
sub rdx, 1
jne 0x14003cda0
test rax, rax
jne 0x14003d1c8
mov qword [rsp + 0xe8], r12
xorps xmm0, xmm0
mov qword [rsp + 0xa0], r14
xor r12d, r12d
mov r14d, reloc.WS2_32.dll_recv
mov ecx, r12d
mov edx, r14d
movups xmmword [rbp - 0x29], xmm0
nop
movzx eax, byte [rbp + rcx - 0x39]
xor byte [rbp + rcx - 0x29], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x14003cde0
mov rcx, qword [rbp - 0x69]
lea rax, [rbp - 0x59]
lea r9, [rbp - 0x29]
mov qword [rsp + 0x20], rax
mov r8, r14
lea rdx, [rbp - 0x29]
call fcn.14002de80
test eax, eax
jne 0x14003d19c
mov rcx, qword [rbp - 0x51]
xorps xmm0, xmm0
movups xmmword [rbp - 0x39], xmm0
mov byte [rbp - 0x38], reloc.WS2_32.dll_listen
mov rdx, r14
mov eax, dword [rcx + 8]
movsd xmm0, qword [rcx]
mov dword [rbp - 0x2f], eax
movzx eax, byte [rcx + 0xc]
mov rcx, r12
mov byte [rbp - 0x2b], al
movsd qword [rbp - 0x37], xmm0
movzx eax, byte [rbp + rcx - 0x39]
xor byte [rbp + rcx - 0x29], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x14003ce43
mov rcx, qword [rbp - 0x69]
lea rax, [rbp - 0x59]
lea r9, [rbp - 0x29]
mov qword [rsp + 0x20], rax
mov r8, r14
lea rdx, [rbp - 0x29]
call fcn.14002de80
test eax, eax
jne 0x14003d19c
movzx eax, byte [rbp - 0x71]
lea rcx, [rbp - 0x18]
mov rdx, qword [rbp - 0x49]
mov r8, rbx
mov byte [rbp - 0x19], al
call fcn.140065900
lea rcx, [rbp - 0x18]
movzx r8d, r15b
add rcx, rbx
xor edx, edx
call fcn.140065540
mov byte [rbp - 0xa], 1
test r13, r13
je 0x14003d112
nop dword [rax]
nop word [rax + rax]
cmp r13, r14
mov rbx, r13
cmova rbx, r14
cmp dword [rbp - 0x61], r12d
jne 0x14003cf28
xorps xmm0, xmm0
lea rcx, [rbp - 0x39]
mov r8, rbx
mov rdx, rsi
movups xmmword [rbp - 0x39], xmm0
call fcn.140065900
mov rcx, r12
mov rdx, r14
nop dword [rax]
movzx eax, byte [rbp + rcx - 0x39]
xor byte [rbp + rcx - 0x29], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x14003cef0
mov rcx, qword [rbp - 0x69]
lea rax, [rbp - 0x59]
lea r9, [rbp - 0x29]
mov qword [rsp + 0x20], rax
mov r8, r14
lea rdx, [rbp - 0x29]
call fcn.14002de80
test eax, eax
jne 0x14003d19c
mov rcx, qword [rbp - 0x69]
lea rax, [rbp - 0x59]
lea r9, [rbp - 0x39]
mov qword [rsp + 0x20], rax
mov r8, r14
lea rdx, [rbp - 0x19]
call fcn.14002de80
test eax, eax
jne 0x14003d19c
cmp rbx, 8
jb 0x14003d04d
lea ecx, [rbx - 1]
movzx edx, cl
lea rcx, [rbp - 0x39]
add rcx, rdx
lea r8, [rdx + rdi]
cmp rdi, rcx
ja 0x14003cf7a
lea rcx, [rbp - 0x39]
cmp r8, rcx
jae 0x14003d04d
lea rcx, [rdx + rsi]
cmp rdi, rcx
ja 0x14003cf8c
cmp r8, rsi
jae 0x14003d04d
cmp rbx, 0x40
jb 0x14003d022
mov r8, rbx
mov r9, rbx
and r8d, 0x3f
sub r9, r8
mov rcx, r12
mov r10b, 0x20
nop dword [rax]
movdqu xmm0, xmmword [rbp + rcx - 0x39]
add al, 0x40
movdqu xmm1, xmmword [rcx + rsi]
xorps xmm1, xmm0
movdqu xmmword [rcx + rdi], xmm1
lea ecx, [r10 - 0x10]
movzx edx, cl
movzx ecx, r10b
movdqu xmm0, xmmword [rdx + rsi]
movdqu xmm1, xmmword [rbp + rdx - 0x39]
xorps xmm1, xmm0
movdqu xmm0, xmmword [rcx + rsi]
movdqu xmmword [rdi + rdx], xmm1
movdqu xmm1, xmmword [rbp + rcx - 0x39]
xorps xmm1, xmm0
movdqu xmmword [rdi + rcx], xmm1
lea ecx, [r10 + 0x10]
add r10b, 0x40
movzx edx, cl
movzx ecx, al
movdqu xmm1, xmmword [rbp + rdx - 0x39]
movdqu xmm0, xmmword [rdx + rsi]
xorps xmm1, xmm0
movdqu xmmword [rdi + rdx], xmm1
cmp rcx, r9
jb 0x14003cfb0
cmp r8, 8
jb 0x14003d04d
mov rdx, rbx
and rdx, 0xfffffffffffffff8
movzx ecx, al
nop dword [rax]
movq xmm1, qword [rcx + rsi]
add al, 8
movq xmm0, qword [rbp + rcx - 0x39]
xorps xmm1, xmm0
movq qword [rcx + rdi], xmm1
movzx ecx, al
cmp rcx, rdx
jb 0x14003d030
movzx edx, al
cmp rdx, rbx
jae 0x14003d075
nop word [rax + rax]
movzx ecx, byte [rdx + rsi]
inc al
xor cl, byte [rbp + rdx - 0x39]
mov byte [rdx + rdi], cl
movzx edx, al
cmp rdx, rbx
jb 0x14003d060
cmp dword [rbp - 0x61], 1
jne 0x14003d0d8
xorps xmm0, xmm0
lea rcx, [rbp - 0x39]
mov r8, rbx
mov rdx, rdi
movups xmmword [rbp - 0x39], xmm0
call fcn.140065900
mov rcx, r12
mov rdx, r14
nop word [rax + rax]
movzx eax, byte [rbp + rcx - 0x39]
xor byte [rbp + rcx - 0x29], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x14003d0a0
mov rcx, qword [rbp - 0x69]
lea rax, [rbp - 0x59]
lea r9, [rbp - 0x29]
mov qword [rsp + 0x20], rax
mov r8, r14
lea rdx, [rbp - 0x29]
call fcn.14002de80
test eax, eax
jne 0x14003d19c
add rdi, rbx
add rsi, rbx
sub r13, rbx
xor dl, dl
test r15b, r15b
je 0x14003d109
nop dword [rax + rax]
movzx eax, dl
mov ecx, select
sub rcx, rax
add byte [rbp + rcx - 0x19], 1
jne 0x14003d109
inc dl
cmp dl, r15b
jb 0x14003d0f0
test r13, r13
jne 0x14003cec0
xor dl, dl
test r15b, r15b
je 0x14003d140
nop dword [rax]
movzx eax, dl
mov ecx, select
sub rcx, rax
cmp rcx, r14
jae 0x14003d1cf
inc dl
mov byte [rbp + rcx - 0x19], r12b
cmp dl, r15b
jb 0x14003d120
mov rcx, qword [rbp - 0x69]
lea rax, [rbp - 0x59]
lea r9, [rbp - 0x39]
mov qword [rsp + 0x20], rax
mov r8, r14
lea rdx, [rbp - 0x19]
call fcn.14002de80
test eax, eax
jne 0x14003d19c
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rbp + r12 - 0x39]
xor byte [rbp + r12 - 0x29], al
lea r12, [r12 + 1]
sub r14, 1
jne 0x14003d170
mov r8, qword [rbp + 0x8f]
lea rdx, [rbp - 0x29]
mov rcx, qword [rbp - 0x41]
call fcn.140065900
xor eax, eax
mov r12, qword [rsp + 0xe8]
mov r14, qword [rsp + 0xa0]
mov rcx, qword [rbp - 9]
xor rcx, rsp
call fcn.140042de0
add rsp, 0xa8
pop r15
pop r13
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov eax, 0xfffffff3
jmp 0x14003d1ac
call fcn.14004355c
int3