Function at 0x14013e560
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x168
call fcn.1401ef830
sub rsp, rax
lea rbp, [rsp + 0x50]
and rbp, 0xffffffffffffffe0
mov rax, qword [0x140310170]
xor rax, rsp
mov qword [rbp + 0x100], rax
movsxd r15, dword [rsp + 0x1d0]
xor esi, esi
mov rax, qword [rsp + 0x1d8]
mov rbx, rdx
mov qword [rbp + 0x18], r9
mov r14d, esi
mov qword [rbp + 0x30], r8
mov r12d, esi
lea edi, [r15 + r15*2]
mov qword [rbp + 0x48], rdx
shl edi, 9
add edi, 0x40
mov qword [rbp + 0x40], rcx
mov qword [rbp + 0x68], rax
test edi, edi
jg 0x14013e5da
mov qword [rbp + 0x38], rsi
jmp 0x14013eea5
mov rax, qword [0x14036bc78]
mov dword [reloc.WS2_32.dll_accept], esi
test rax, rax
je 0x14013e609
mov r9d, 0x267
mov dword [reloc.WS2_32.dll_accept], esi
lea r8, [0x140347a18]
mov dword [rsp + 0x20], esi
mov edx, edi
xor ecx, ecx
call rax
movsxd rcx, edi
call fcn.14021a348
mov r13, rax
mov qword [rbp + 0x38], rax
mov rax, qword [0x14036bc78]
test rax, rax
je 0x14013e647
mov r9d, 0x267
mov dword [rsp + 0x20], 1
lea r8, [0x140347a18]
mov edx, edi
mov rcx, r13
call rax
mov rax, qword [0x14036bc78]
test r13, r13
je 0x14013eea5
imul edi, r15d, 0x21
test edi, edi
jle 0x14013eea5
mov dword [reloc.WS2_32.dll_accept], esi
test rax, rax
je 0x14013e684
mov r9d, 0x269
mov dword [reloc.WS2_32.dll_accept], esi
lea r8, [0x140347a78]
mov dword [rsp + 0x20], esi
mov edx, edi
xor ecx, ecx
call rax
movsxd rcx, edi
call fcn.14021a348
mov r14, rax
mov qword [rbp + 8], rax
mov rax, qword [0x14036bc78]
test rax, rax
je 0x14013e6bb
mov r9d, 0x269
mov dword [rsp + 0x20], 1
lea r8, [0x140347a78]
mov edx, edi
mov rcx, r14
call rax
test r14, r14
je 0x14013eea5
lea ecx, [r15*8]
mov r8d, 0x26a
lea rdx, [0x140347a98]
call fcn.1400b3ae0
mov qword [rbp + 0x10], rax
mov r13, rax
test rax, rax
je 0x14013eea2
mov rcx, qword [rbp + 0x38]
mov eax, esi
and rcx, 0xffffffffffffffc0
mov dword [rbp], eax
add rcx, 0x40
mov qword [rbp + 0x60], r15
mov qword [rbp + 0x20], rcx
mov r12, r15
mov qword [rbp + 0x50], rsi
test r15d, r15d
jle 0x14013eba9
mov r12, qword [rbp + 0x30]
mov rbx, r13
mov r15, qword [rbp + 0x18]
sub r12, r13
sub r15, r13
mov qword [rbp + 0x28], rsi
mov qword [rbp + 0x18], r15
mov r10, rsi
mov qword [rbp + 0x58], rbx
mov qword [rbp + 0x30], r12
nop dword [rax + rax]
mov rdx, qword [r12 + rbx]
cdqe
lea r13, [rax + rax*2]
mov eax, dword [rdx + 8]
shl r13, 9
add r13, rcx
lea edi, [rax - 1]
test eax, eax
je 0x14013e776
mov rcx, qword [rdx]
movsxd rax, edi
mov rcx, qword [rcx + rax*8]
call fcn.14009aea0
shl edi, 6
add eax, edi
cmp eax, 0x100
jg 0x14013e781
cmp dword [rdx + 0x10], 0
jne 0x14013e781
mov qword [rbx], rdx
jmp 0x14013e7c6
mov r15, qword [rbp + 0x68]
mov rcx, r15
call fcn.1400f5840
mov rdi, rax
test rax, rax
je 0x14013eab3
mov r8, qword [rbp + 0x40]
mov r9, r15
mov rdx, qword [r12 + rbx]
add r8, 0x10
mov rcx, rax
call fcn.140157680
test eax, eax
je 0x14013eb83
mov r10, qword [rbp + 0x28]
mov rdx, rdi
mov r15, qword [rbp + 0x18]
mov qword [rbx], rdi
mov ecx, dword [rdx + 8]
mov r9d, esi
shl ecx, 3
mov rax, rsi
test ecx, ecx
jle 0x14013e86b
lea r8, [r14 + r10]
nop
mov ecx, r9d
test r9d, r9d
jns 0x14013e7ec
lea ecx, [r9 + 7]
sar ecx, 3
add r9d, 8
movsxd rdi, ecx
mov rcx, qword [rbx]
mov rdx, qword [rcx]
mov rdx, qword [rdx + rdi*8]
mov byte [rax + r8], dl
mov rcx, rdx
shr rcx, 8
mov byte [rax + r8 + 1], cl
mov rcx, rdx
shr rcx, 0x10
mov byte [rax + r8 + 2], cl
shr rdx, 0x18
mov byte [rax + r8 + 3], dl
shr rdx, 8
mov byte [rax + r8 + 4], dl
mov rcx, rdx
shr rcx, 8
mov byte [rax + r8 + 5], cl
mov rcx, rdx
shr rdx, 0x18
mov byte [rax + r8 + 7], dl
shr rcx, 0x10
mov byte [rax + r8 + 6], cl
add rax, 8
mov rcx, qword [rbx]
mov edx, dword [rcx + 8]
shl edx, 3
cmp r9d, edx
jl 0x14013e7e0
cmp rax, 0x21
jge 0x14013e87e
lea rdi, [rax + r10]
mov ecx, reloc.WLDAP32.dll_Ordinal_33
add rdi, r14
sub rcx, rax
xor eax, eax
rep stosb byte [rdi], al
mov rdx, qword [r15 + rbx]
cmp dword [rdx + 0x10], 4
jg 0x14013ea91
xor eax, eax
mov rcx, r13
mov qword [r13], rax
mov qword [r13 + 8], rax
mov qword [r13 + 0x10], rax
mov qword [r13 + 0x18], rax
movsxd r8, dword [rdx + 0x10]
mov rdx, qword [rdx + 8]
shl r8, 3
call fcn.14020f990
mov rdx, qword [r15 + rbx]
lea rcx, [r13 + 0x20]
cmp dword [rdx + 0x28], 4
jg 0x14013ea91
xor eax, eax
mov qword [rcx], rax
mov qword [rcx + 8], rax
mov qword [rcx + 0x10], rax
mov qword [rcx + 0x18], rax
movsxd r8, dword [rdx + 0x28]
mov rdx, qword [rdx + 0x20]
shl r8, 3
call fcn.14020f990
mov rdx, qword [r15 + rbx]
lea rcx, [r13 + 0x40]
cmp dword [rdx + 0x40], 4
jg 0x14013ea91
xor eax, eax
mov qword [rcx], rax
mov qword [rcx + 8], rax
mov qword [rcx + 0x10], rax
mov qword [rcx + 0x18], rax
movsxd r8, dword [rdx + 0x40]
mov rdx, qword [rdx + 0x38]
shl r8, 3
call fcn.14020f990
mov rdx, r13
lea rcx, [r13 + 0x60]
call fcn.1400444a0
mov r8, r13
lea rdx, [r13 + 0x60]
lea rcx, [r13 + 0xc0]
call fcn.1400447c0
lea rdx, [r13 + 0x60]
lea rcx, [r13 + 0x120]
call fcn.1400444a0
lea rdx, [r13 + 0xc0]
lea rcx, [r13 + 0x1e0]
call fcn.1400444a0
lea rdx, [r13 + 0x120]
lea rcx, [r13 + 0x2a0]
call fcn.1400444a0
lea rdx, [r13 + 0x1e0]
lea rcx, [r13 + 0x420]
call fcn.1400444a0
mov r8, r13
lea rdx, [r13 + 0x120]
lea rcx, [r13 + 0x180]
call fcn.1400447c0
mov r8, r13
lea rdx, [r13 + 0x1e0]
lea rcx, [r13 + 0x240]
call fcn.1400447c0
lea rcx, [r13 + 0x300]
mov r8, r13
lea rdx, [r13 + 0x2a0]
call fcn.1400447c0
lea rcx, [r13 + 0x480]
mov r8, r13
lea rdx, [r13 + 0x420]
call fcn.1400447c0
lea rdx, [r13 + 0x240]
lea rcx, [r13 + 0x4e0]
call fcn.1400444a0
lea rdx, [r13 + 0x180]
lea rcx, [r13 + 0x360]
call fcn.1400444a0
mov r8, r13
lea rdx, [r13 + 0x4e0]
lea rcx, [r13 + 0x540]
call fcn.1400447c0
lea rcx, [r13 + 0x3c0]
mov r8, r13
lea rdx, [r13 + 0x360]
call fcn.1400447c0
lea rcx, [r13 + 0x5a0]
mov r8, r13
lea rdx, [r13 + 0x540]
call fcn.1400447c0
mov eax, dword [rbp]
xor esi, esi
mov r8, qword [rbp + 0x50]
inc eax
mov r10, qword [rbp + 0x28]
inc r8
mov rbx, qword [rbp + 0x58]
add r10, 0x21
mov r12, qword [rbp + 0x60]
add rbx, 8
mov r14, qword [rbp + 8]
mov dword [rbp], eax
mov qword [rbp + 0x50], r8
mov qword [rbp + 0x28], r10
mov qword [rbp + 0x58], rbx
cmp r8, r12
jge 0x14013eba5
mov rcx, qword [rbp + 0x20]
mov r15, qword [rbp + 0x18]
mov r12, qword [rbp + 0x30]
jmp 0x14013e740
mov edx, 0xf2
mov dword [rsp + 0x20], 0x29c
lea r9, [0x140347af8]
mov ecx, reloc.WS2_32.dll_recv
lea r8d, [rdx - 0x60]
call fcn.1400a36f0
mov r14, qword [rbp + 8]
mov r12, qword [rbp + 0x10]
mov rdi, qword [rbp + 0x38]
mov rax, qword [0x14036bc68]
test rdi, rdi
je 0x14013eafb
test rax, rax
je 0x14013ead7
xor edx, edx
mov rcx, rdi
call rax
mov rcx, rdi
call fcn.1402196e8
mov rax, qword [0x14036bc68]
test rax, rax
je 0x14013eafb
mov edx, 1
xor ecx, ecx
call rax
mov rax, qword [0x14036bc68]
test r14, r14
je 0x14013eb30
test rax, rax
je 0x14013eb0c
xor edx, edx
mov rcx, r14
call rax
mov rcx, r14
call fcn.1402196e8
mov rax, qword [0x14036bc68]
test rax, rax
je 0x14013eb30
mov edx, 1
xor ecx, ecx
call rax
mov rax, qword [0x14036bc68]
test r12, r12
je 0x14013eb5e
test rax, rax
je 0x14013eb41
xor edx, edx
mov rcx, r12
call rax
mov rcx, r12
call fcn.1402196e8
mov rdi, qword [0x14036bc68]
test rdi, rdi
je 0x14013eb5e
mov edx, 1
xor ecx, ecx
call rdi
mov eax, esi
mov rcx, qword [rbp + 0x100]
xor rcx, rsp
call fcn.1401ef4e0
add rsp, 0x168
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, reloc.WS2_32.dll_recv
mov dword [rsp + 0x20], 0x27b
lea r9, [0x140347a58]
mov edx, 0xf2
lea r8d, [rcx - 0xd]
jmp 0x14013eaae
mov rbx, qword [rbp + 0x48]
movzx edx, byte [r14 + 0x1f]
mov eax, 0x3f
shr edx, 6
mov r15d, 0xff
and edx, 0x3f
mov dword [rbp], r15d
sub eax, edx
mov ecx, edx
shr ecx, 5
dec ecx
not ecx
and eax, ecx
not ecx
and ecx, edx
mov rdx, qword [rbp + 0x20]
or eax, ecx
mov rcx, rbx
mov r8d, eax
and eax, 1
shr r8d, 1
add r8d, eax
btr r8d, 0x1f
call fcn.140043dc0
nop dword [rax]
nop word [rax + rax]
cmp r15d, 0xff
mov eax, esi
sete al
mov r14d, eax
cmp r14, r12
jge 0x14013ed53
mov rsi, qword [rbp + 8]
lea ecx, [r15 - 1]
mov r13d, ecx
shr ecx, 3
and r13d, 7
mov qword [rbp + 0x40], rcx
imul r15, r14, 0x21
lea eax, [rcx + 1]
sub r12, r14
mov qword [rbp + 0x48], rax
nop dword [rax]
add rax, r15
movzx edx, byte [rax + rsi]
lea rax, [rcx + r15]
movzx ecx, byte [rax + rsi]
shl edx, 8
or edx, ecx
mov ecx, r13d
shr edx, cl
mov ecx, 0x3f
and edx, 0x3f
sub ecx, edx
mov edi, edx
shr edi, 5
dec edi
not edi
and ecx, edi
mov eax, edi
not eax
and edi, 1
and eax, edx
or ecx, eax
mov eax, ecx
and ecx, 1
shr eax, 1
add eax, ecx
lea rcx, [rbp + 0x80]
lea edi, [rdi + rax*2]
movsxd rax, r14d
mov r8d, edi
shr r8d, 1
lea rdx, [rax + rax*2]
shl rdx, 9
add rdx, qword [rbp + 0x20]
call fcn.140043dc0
lea rdx, [rbp + 0xa0]
lea rcx, [rbp + 0xe0]
call fcn.140043240
movdqu xmm0, xmmword [rbp + 0xe0]
mov eax, edi
lea r8, [rbp + 0x80]
and eax, 1
mov rdx, rbx
neg rax
mov rcx, rbx
movq xmm4, rax
not rax
punpcklqdq xmm4, xmm4
movdqa xmm2, xmm4
pand xmm2, xmm0
movdqu xmm0, xmmword [rbp + 0xf0]
movq xmm3, rax
punpcklqdq xmm3, xmm3
pand xmm4, xmm0
movdqa xmm1, xmm3
pand xmm3, xmmword [rbp + 0xb0]
pand xmm1, xmmword [rbp + 0xa0]
pxor xmm4, xmm3
pxor xmm2, xmm1
movdqa xmmword [rbp + 0xb0], xmm4
movdqa xmmword [rbp + 0xa0], xmm2
call fcn.1400447c0
mov rax, qword [rbp + 0x48]
inc r14d
mov rcx, qword [rbp + 0x40]
add r15, 0x21
sub r12, 1
jne 0x14013ec40
mov r15d, dword [rbp]
xor esi, esi
mov r12, qword [rbp + 0x60]
add r15d, 0xfffffffb
mov rdx, rbx
mov rcx, rbx
mov dword [rbp], r15d
call fcn.1400444a0
mov rdx, rbx
mov rcx, rbx
call fcn.1400444a0
mov rdx, rbx
mov rcx, rbx
call fcn.1400444a0
mov rdx, rbx
mov rcx, rbx
call fcn.1400444a0
mov rdx, rbx
mov rcx, rbx
call fcn.1400444a0
cmp r15d, 5
jae 0x14013ec00
mov r14, qword [rbp + 8]
test r12, r12
jle 0x14013ee98
mov r13, qword [rbp + 0x20]
mov r15, r14
movzx edx, byte [r15]
mov ecx, 0x3f
and edx, 0x1f
add edx, edx
sub ecx, edx
mov edi, edx
shr edi, 5
dec edi
not edi
and ecx, edi
mov eax, edi
not eax
and edi, 1
and eax, edx
or ecx, eax
mov eax, ecx
and ecx, 1
shr eax, 1
add eax, ecx
lea rcx, [rbp + 0x80]
lea edi, [rdi + rax*2]
movsxd rax, esi
mov r8d, edi
shr r8d, 1
lea rdx, [rax + rax*2]
shl rdx, 9
add rdx, r13
call fcn.140043dc0
lea rdx, [rbp + 0xa0]
lea rcx, [rbp + 0xe0]
call fcn.140043240
movdqa xmm0, xmmword [rbp + 0xa0]
lea r8, [rbp + 0x80]
movdqu xmm1, xmmword [rbp + 0xe0]
mov eax, edi
mov rdx, rbx
and eax, 1
mov rcx, rbx
neg rax
movq xmm3, rax
not rax
punpcklqdq xmm3, xmm3
pand xmm1, xmm3
movq xmm2, rax
punpcklqdq xmm2, xmm2
pand xmm0, xmm2
pand xmm2, xmmword [rbp + 0xb0]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rbp + 0xf0]
movdqa xmmword [rbp + 0xa0], xmm1
pand xmm3, xmm0
pxor xmm3, xmm2
movdqa xmmword [rbp + 0xb0], xmm3
call fcn.1400447c0
inc esi
lea r15, [r15 + 0x21]
sub r12, 1
jne 0x14013edb0
mov esi, 1
jmp 0x14013eab7
mov r12, rax
mov ecx, reloc.WS2_32.dll_recv
mov dword [rsp + 0x20], 0x26b
lea r9, [0x140347a38]
mov edx, 0xf2
lea r8d, [rcx + 0x31]
call fcn.1400a36f0
jmp 0x14013eabb