Function at 0x1402e2960
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 7]
sub rsp, 0xb0
mov rax, qword [0x140398b38]
xor rax, rsp
mov qword [rbp - 1], rax
mov rax, qword [rbp + 0x6f]
mov rbx, r8
mov r14, qword [rbp + 0x7f]
mov rdi, qword [rbp + 0x87]
mov qword [rbp - 0x71], rcx
mov rcx, qword [rbp + 0x97]
mov qword [rbp - 0x61], rax
mov rax, qword [rbp + 0x8f]
mov dword [rbp - 0x59], edx
mov rdx, qword [rbp + 0x67]
mov qword [rbp - 0x39], rax
mov qword [rbp - 0x49], r9
mov qword [rbp - 0x41], rbx
mov qword [rbp - 0x51], rdx
cmp rcx, 2
je 0x1402e2ee3
cmp rcx, 0x10
ja 0x1402e2ee3
test cl, 1
jne 0x1402e2ee3
lea rax, [rdx - 7]
cmp rax, 6
ja 0x1402e2ee3
mov r15, qword [rbp + 0x77]
cmp r15, 0xff00
jae 0x1402e2ee3
add cl, 0xfe
mov r13d, reloc.WS2_32.dll_ntohs
shl cl, 2
sub r13b, dl
and cl, 0xf8
xor r12d, r12d
mov eax, r12d
mov r10d, 0x40
test r15, r15
lea r8d, [r13 - 1]
cmovne eax, r10d
mov byte [rbp - 0x79], r8b
or cl, al
or cl, r8b
mov r8, rdx
mov byte [rbp - 0x31], cl
mov rdx, r9
lea rcx, [rbp - 0x30]
call fcn.140260c10
mov rax, rbx
test r13b, r13b
je 0x1402e2a70
lea rcx, [rbp - 0x22]
movzx edx, r13b
nop word [rax + rax]
mov byte [rcx], al
lea rcx, [rcx - 1]
shr rax, 8
sub rdx, 1
jne 0x1402e2a60
test rax, rax
jne 0x1402e2ee3
mov qword [rsp + 0xf8], rsi
xorps xmm0, xmm0
mov esi, reloc.WS2_32.dll_recv
mov rcx, r12
mov edx, esi
movups xmmword [rbp - 0x21], xmm0
movzx eax, byte [rbp + rcx - 0x31]
xor byte [rbp + rcx - 0x21], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x1402e2a92
mov rcx, qword [rbp - 0x71]
lea rax, [rbp - 0x69]
lea r9, [rbp - 0x21]
mov qword [rsp + 0x20], rax
mov r8, rsi
lea rdx, [rbp - 0x21]
call fcn.1402cd910
test eax, eax
jne 0x1402e2ebc
test r15, r15
je 0x1402e2bd8
mov rdx, qword [rbp - 0x61]
lea rcx, [rbp - 0x2f]
mov ebx, reloc.WLDAP32.dll_Ordinal_14
xorps xmm0, xmm0
movups xmmword [rbp - 0x31], xmm0
mov rax, r15
mov byte [rbp - 0x30], r15b
shr rax, 8
cmp r15, rbx
mov byte [rbp - 0x31], al
cmovb rbx, r15
mov r8, rbx
call fcn.140260c10
sub r15, rbx
mov rcx, r12
add qword [rbp - 0x61], rbx
mov rdx, rsi
movzx eax, byte [rbp + rcx - 0x31]
xor byte [rbp + rcx - 0x21], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x1402e2b11
mov rcx, qword [rbp - 0x71]
lea rax, [rbp - 0x69]
lea r9, [rbp - 0x21]
mov qword [rsp + 0x20], rax
mov r8, rsi
lea rdx, [rbp - 0x21]
call fcn.1402cd910
test eax, eax
jne 0x1402e2ebc
test r15, r15
je 0x1402e2bd8
mov rax, qword [rbp - 0x61]
nop word [rax + rax]
cmp r15, rsi
lea rcx, [rbp - 0x31]
xorps xmm0, xmm0
mov rbx, r15
cmova rbx, rsi
mov rdx, rax
mov r8, rbx
movups xmmword [rbp - 0x31], xmm0
call fcn.140260c10
mov rcx, r12
mov rdx, rsi
nop word [rax + rax]
movzx eax, byte [rbp + rcx - 0x31]
xor byte [rbp + rcx - 0x21], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x1402e2b90
mov rcx, qword [rbp - 0x71]
lea rax, [rbp - 0x69]
lea r9, [rbp - 0x21]
mov qword [rsp + 0x20], rax
mov r8, rsi
lea rdx, [rbp - 0x21]
call fcn.1402cd910
test eax, eax
jne 0x1402e2ebc
mov rax, qword [rbp - 0x61]
add rax, rbx
mov qword [rbp - 0x61], rax
sub r15, rbx
jne 0x1402e2b60
movzx eax, byte [rbp - 0x79]
lea rcx, [rbp - 0x10]
mov r8, qword [rbp - 0x51]
mov rdx, qword [rbp - 0x49]
mov byte [rbp - 0x11], al
call fcn.140260c10
lea rcx, [rbp - 0x10]
movzx r8d, r13b
add rcx, qword [rbp - 0x51]
xor edx, edx
call fcn.1402612c0
mov r15, qword [rbp - 0x41]
mov byte [rbp - 2], 1
test r15, r15
je 0x1402e2e32
nop dword [rax]
nop dword [rax + rax]
cmp r15, rsi
mov rbx, r15
cmova rbx, rsi
cmp dword [rbp - 0x59], r12d
jne 0x1402e2c88
xorps xmm0, xmm0
lea rcx, [rbp - 0x31]
mov r8, rbx
mov rdx, r14
movups xmmword [rbp - 0x31], xmm0
call fcn.140260c10
mov rcx, r12
mov rdx, rsi
nop dword [rax]
movzx eax, byte [rbp + rcx - 0x31]
xor byte [rbp + rcx - 0x21], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x1402e2c50
mov rcx, qword [rbp - 0x71]
lea rax, [rbp - 0x69]
lea r9, [rbp - 0x21]
mov qword [rsp + 0x20], rax
mov r8, rsi
lea rdx, [rbp - 0x21]
call fcn.1402cd910
test eax, eax
jne 0x1402e2ebc
mov rcx, qword [rbp - 0x71]
lea rax, [rbp - 0x69]
lea r9, [rbp - 0x31]
mov qword [rsp + 0x20], rax
mov r8, rsi
lea rdx, [rbp - 0x11]
call fcn.1402cd910
test eax, eax
jne 0x1402e2ebc
xor dl, dl
cmp rbx, 0x40
jb 0x1402e2d75
lea eax, [rbx - 1]
movzx ecx, al
lea rax, [rbp - 0x31]
add rax, rcx
lea r8, [rcx + rdi]
cmp rdi, rax
ja 0x1402e2cdc
lea rax, [rbp - 0x31]
cmp r8, rax
jae 0x1402e2d75
lea rax, [rcx + r14]
cmp rdi, rax
ja 0x1402e2cee
cmp r8, r14
jae 0x1402e2d75
mov r8, rbx
and r8, 0xffffffffffffffc0
mov rax, r12
mov r9b, 0x20
nop dword [rax + rax]
movdqu xmm0, xmmword [rbp + rax - 0x31]
add dl, 0x40
movdqu xmm1, xmmword [rax + r14]
pxor xmm1, xmm0
movdqu xmmword [rax + rdi], xmm1
lea eax, [r9 - 0x10]
movzx ecx, al
movzx eax, r9b
movdqu xmm0, xmmword [rbp + rcx - 0x31]
movdqu xmm1, xmmword [rcx + r14]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rbp + rax - 0x31]
movdqu xmmword [rcx + rdi], xmm1
movdqu xmm1, xmmword [rax + r14]
pxor xmm1, xmm0
movdqu xmmword [rax + rdi], xmm1
lea eax, [r9 + 0x10]
add r9b, 0x40
movzx ecx, al
movzx eax, dl
movdqu xmm1, xmmword [rcx + r14]
movdqu xmm0, xmmword [rbp + rcx - 0x31]
pxor xmm1, xmm0
movdqu xmmword [rcx + rdi], xmm1
cmp rax, r8
jb 0x1402e2d00
movzx eax, dl
cmp rax, rbx
jae 0x1402e2d96
nop dword [rax]
movzx ecx, byte [rax + r14]
inc dl
xor cl, byte [rbp + rax - 0x31]
mov byte [rax + rdi], cl
movzx eax, dl
cmp rax, rbx
jb 0x1402e2d80
cmp dword [rbp - 0x59], 1
jne 0x1402e2df8
xorps xmm0, xmm0
lea rcx, [rbp - 0x31]
mov r8, rbx
mov rdx, rdi
movups xmmword [rbp - 0x31], xmm0
call fcn.140260c10
mov rcx, r12
mov rdx, rsi
nop dword [rax + rax]
movzx eax, byte [rbp + rcx - 0x31]
xor byte [rbp + rcx - 0x21], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x1402e2dc0
mov rcx, qword [rbp - 0x71]
lea rax, [rbp - 0x69]
lea r9, [rbp - 0x21]
mov qword [rsp + 0x20], rax
mov r8, rsi
lea rdx, [rbp - 0x21]
call fcn.1402cd910
test eax, eax
jne 0x1402e2ebc
add rdi, rbx
add r14, rbx
sub r15, rbx
xor dl, dl
test r13b, r13b
je 0x1402e2e29
nop dword [rax + rax]
movzx eax, dl
mov ecx, reloc.WS2_32.dll_ntohs
sub rcx, rax
add byte [rbp + rcx - 0x11], 1
jne 0x1402e2e29
inc dl
cmp dl, r13b
jb 0x1402e2e10
test r15, r15
jne 0x1402e2c20
xor dl, dl
test r13b, r13b
je 0x1402e2e60
nop dword [rax]
movzx eax, dl
mov ecx, reloc.WS2_32.dll_ntohs
sub rcx, rax
cmp rcx, rsi
jae 0x1402e2eea
inc dl
mov byte [rbp + rcx - 0x11], r12b
cmp dl, r13b
jb 0x1402e2e40
mov rcx, qword [rbp - 0x71]
lea rax, [rbp - 0x69]
lea r9, [rbp - 0x31]
mov qword [rsp + 0x20], rax
mov r8, rsi
lea rdx, [rbp - 0x11]
call fcn.1402cd910
test eax, eax
jne 0x1402e2ebc
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rbp + r12 - 0x31]
xor byte [rbp + r12 - 0x21], al
lea r12, [r12 + 1]
sub rsi, 1
jne 0x1402e2e90
mov r8, qword [rbp + 0x97]
lea rdx, [rbp - 0x21]
mov rcx, qword [rbp - 0x39]
call fcn.140260c10
xor eax, eax
mov rsi, qword [rsp + 0xf8]
mov rcx, qword [rbp - 1]
xor rcx, rsp
call fcn.14025e930
add rsp, 0xb0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rbx
pop rbp
ret
mov eax, 0xfffffff3
jmp 0x1402e2ec4
call fcn.14025e688
int3