Function at 0x14007f8a0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x28
lea rbp, [rsp + 0x20]
mov rsi, rcx
mov eax, dword [0x14029658c]
mov ecx, dword [0x140296590]
shrd ecx, eax, 5
xor ecx, 0xabeb5759
mov eax, ecx
shl rax, 4
call fcn.1401e2600
sub rsp, rax
mov r13, rsp
imul eax, dword [0x140296594], 0xc9300580
imul ecx, dword [0x140296598], 0x6ed0eef4
add eax, ecx
add eax, 0x87c4a53d
shl rax, 4
call fcn.1401e2600
sub rsp, rax
mov r12, rsp
mov eax, dword [0x14029659c]
mov ecx, dword [0x1402965a0]
shrd ecx, eax, 0x13
xor ecx, 0x48a5c8d0
mov eax, ecx
add rax, 0xf
and rax, 0xfffffffffffffff0
call fcn.1401e2600
sub rsp, rax
mov rbx, rsp
imul eax, dword [0x1402965a4], 0x604d4a74
imul ecx, dword [0x1402965a8], 0xc3f4b5a4
add eax, ecx
add eax, 0xbbe69bc1
lea rax, [rax*4 + 0xf]
and rax, 0xfffffffffffffff0
call fcn.1401e2600
sub rsp, rax
mov r14, rsp
imul eax, dword [0x1402965ac], 0x17f9ae46
imul ecx, dword [0x1402965b0], 0x1c12cdd0
add eax, ecx
add eax, 0xc8ccd1a1
shl rax, 4
call fcn.1401e2600
sub rsp, rax
mov qword [rbp], rsp
imul eax, dword [0x1402965b4], 0xd7b3403d
imul ecx, dword [0x1402965b8], 0xde9065ae
add eax, ecx
add eax, 0xb7457b7a
shl rax, 5
call fcn.1401e2600
sub rsp, rax
mov qword [rbp - 0x10], rsp
mov eax, dword [0x1402965bc]
mov ecx, dword [0x1402965c0]
shrd ecx, eax, 0x18
xor ecx, 0xc04f150b
mov eax, ecx
shl rax, 5
call fcn.1401e2600
sub rsp, rax
mov qword [rbp - 0x18], rsp
mov rax, qword [rsi + 0x10]
mov rdi, qword [rax - 8]
movabs r15, 0xba5220c1f8e9d66f
test rdi, rdi
je 0x14007fb0c
mov qword [rbp - 8], r12
mov r12, r13
mov r13, rax
sub r13, qword [rsi + 8]
mov rax, qword [0x1402f97c0]
add rax, r15
sub rsp, 0x20
call rax
add rsp, 0x20
cdqe
lea rcx, reloc.WS2_32.dll_closesocket
movzx ecx, byte [rcx + rax*8]
shr r13, cl
mov rax, qword [0x1402f97c8]
add rax, r15
sub rsp, 0x20
call rax
add rsp, 0x20
cdqe
lea rcx, [0x140251118]
add r13d, dword [rcx + rax*4]
mov rax, qword [0x1402f97d0]
add rax, r15
sub rsp, 0x20
call rax
add rsp, 0x20
cdqe
lea rcx, [0x140251124]
movzx eax, byte [rax + rcx]
mov byte [rbx], al
mov dword [r14], r13d
mov rcx, qword [rsi + 0xa8]
test rcx, rcx
je 0x140080092
mov rax, qword [rcx]
sub rsp, 0x20
mov rdx, r14
mov r8, rbx
mov r9, rdi
call qword [rax + reloc.WS2_32.dll_recv]
add rsp, 0x20
test al, al
mov r13, r12
mov r12, qword [rbp - 8]
jne 0x14007fb0c
mov rbx, qword [rbp]
mov rdi, rbx
lea rdx, [rsi + 0xb8]
mov rax, qword [0x1402f97e0]
add rax, r15
sub rsp, 0x20
mov rcx, rbx
call rax
add rsp, 0x20
mov rax, qword [rsi + 0x10]
mov rax, qword [rax - 8]
movzx edx, byte [rax]
movzx ecx, byte [rbx]
mov byte [rax], cl
mov byte [rbx], dl
mov rcx, rbx
add rcx, 8
mov r8, qword [rax + 8]
mov r9, qword [rbx + 8]
mov qword [rax + 8], r9
mov qword [rbx + 8], r8
mov rax, qword [0x1402f97e8]
add rax, r15
sub rsp, 0x20
call rax
add rsp, 0x20
add qword [rsi + 0x10], 0xfffffffffffffff8
mov rdi, r13
mov qword [rbp], r12
lea rax, [rsi + 0x20]
mov qword [rbp - 8], rax
mov r12, qword [rsi + 0x20]
mov r13, qword [rsi + 0x38]
mov rax, qword [0x1402f97f0]
add rax, r15
sub rsp, 0x20
call rax
add rsp, 0x20
movabs rax, 0x5a632050ea97a2ad
imul rax, qword [0x1402965c8]
movabs rcx, 0xe59d061748e8e5bb
imul rcx, qword [0x1402965d0]
add rcx, rax
movabs rbx, 0x1675d89a71045e74
add rbx, rcx
mov rax, qword [0x1402f97f8]
add rax, r15
sub rsp, 0x20
call rax
add rsp, 0x20
cdqe
lea rcx, reloc.WS2_32.dll_getpeername
movzx ecx, byte [rcx + rax*8]
mov r14, r13
shr r14, cl
mov rax, qword [0x1402f9800]
add rax, r15
sub rsp, 0x20
call rax
add rsp, 0x20
cdqe
lea rcx, [0x140251150]
mov rax, qword [rcx + rax*8]
or rax, r14
cmp r13, rbx
cmovge rax, r14
lea r12, [r12 + rax*4]
mov rax, qword [0x1402f9808]
add rax, r15
sub rsp, 0x20
call rax
add rsp, 0x20
cdqe
lea rcx, [0x140251170]
and r13, qword [rcx + rax*8]
mov rax, qword [0x1402f9810]
add rax, r15
sub rsp, 0x20
call rax
add rsp, 0x20
movabs rax, 0xf1b5080b7880f9c8
imul rax, qword [0x1402965d8]
movabs rcx, 0x6942d2dae512a2ef
imul rcx, qword [0x1402965e0]
add rcx, rax
movabs r14, 0xd37a4233b138db21
add r14, rcx
mov rax, qword [0x1402f9818]
add rax, r15
sub rsp, 0x20
call rax
add rsp, 0x20
cdqe
lea rcx, [0x140251190]
mov rbx, qword [rcx + rax*8]
add rbx, r13
mov rax, qword [0x1402f9820]
add rax, r15
sub rsp, 0x20
call rax
add rsp, 0x20
cdqe
lea rcx, reloc.WS2_32.dll_getpeername
movzx ecx, byte [rcx + rax*8]
mov rax, rbx
shr rax, cl
movabs rcx, 0xc4d39bd371371129
imul rcx, qword [0x1402965e8]
movabs rdx, 0xc980b6e1db387ca
imul rdx, qword [0x1402965f0]
add rdx, rcx
movabs rcx, 0x775da3cec11b457f
add rcx, rdx
cmp r13, r14
cmovne rcx, rax
lea r14, [r12 + rcx*4]
mov rax, qword [0x1402f9828]
add rax, r15
sub rsp, 0x20
call rax
add rsp, 0x20
cdqe
lea rcx, [0x1402511d0]
and rbx, qword [rcx + rax*8]
mov qword [rdi], r14
mov qword [rdi + 8], rbx
mov rax, qword [0x1402f9830]
add rax, r15
sub rsp, 0x20
mov rcx, qword [rbp - 8]
mov rdx, qword [rbp]
mov r8, rdi
call rax
add rsp, 0x20
mov rax, qword [rsi + 0x10]
cmp qword [rsi + 8], rax
je 0x14008007a
mov rax, qword [rax - 8]
mov qword [rbp], rax
test rax, rax
je 0x14008007a
mov rax, qword [rbp]
movzx r14d, byte [rax]
mov rax, qword [0x1402f9838]
add rax, r15
sub rsp, 0x20
call rax
add rsp, 0x20
cdqe
lea rcx, [0x1402511e8]
movzx ebx, byte [rax + rcx]
add bl, r14b
mov rax, qword [0x1402f9840]
add rax, r15
sub rsp, 0x20
call rax
add rsp, 0x20
cdqe
lea rcx, [0x1402511eb]
cmp bl, byte [rax + rcx]
jae 0x14008007a
mov eax, 0
mov ecx, 0
mov edx, 0
cmp r14b, 2
jge 0x14007fdb0
cmp r14b, 1
mov r8, qword [rbp - 0x10]
mov r9, qword [rbp - 0x18]
jne 0x14007fdd5
mov rax, qword [rbp]
mov rax, qword [rax + 8]
mov rax, qword [rax]
mov rdx, qword [rax]
movabs rax, 0x8000000000000000
xor ecx, ecx
jmp 0x14007fdd5
cmp r14b, 2
mov r8, qword [rbp - 0x10]
mov r9, qword [rbp - 0x18]
jne 0x14007fdd5
mov rax, qword [rbp]
mov rax, qword [rax + 8]
mov rcx, qword [rax]
movabs rax, 0x8000000000000000
xor edx, edx
mov qword [rbp - 8], r8
mov qword [rbp - 0x10], r9
jmp 0x14007fe0a
mov rax, qword [0x1402f9888]
add rax, r15
sub rsp, 0x20
call rax
add rsp, 0x20
cdqe
lea rcx, reloc.WS2_32.dll_accept
add r13, qword [rcx + rax*8]
mov rax, r13
mov rcx, rdi
mov rdx, rbx
mov rbx, rdx
mov rdi, rcx
mov r13, rax
cmp r14b, 2
jge 0x14007fe40
cmp r14b, 1
jne 0x14007fe60
mov rax, qword [rbp]
mov rax, qword [rax + 8]
cmp rbx, qword [rax]
je 0x14008007a
lea rax, [rbx + 0x40]
jmp 0x14007fe9f
jne 0x14007fe60
mov rax, qword [rbp]
mov rcx, qword [rax + 8]
mov rax, rdi
cmp rdi, qword [rcx + 8]
jne 0x14007fe9f
jmp 0x14008007a
mov rax, qword [0x1402f9848]
add rax, r15
sub rsp, 0x20
call rax
add rsp, 0x20
cdqe
lea rcx, reloc.WS2_32.dll_accept
cmp r13, qword [rcx + rax*8]
je 0x14008007a
mov rax, qword [0x1402f9850]
add rax, r15
sub rsp, 0x20
call rax
add rsp, 0x20
mov rax, qword [rbp]
movzx r12d, byte [rax]
mov rax, qword [0x1402f9858]
add rax, r15
sub rsp, 0x20
call rax
add rsp, 0x20
cdqe
lea rcx, [0x140251208]
cmp r12b, byte [rax + rcx]
je 0x14008004d
cmp r14b, 2
jge 0x14007ff80
cmp r14b, 1
jne 0x14007fde0
mov r12, qword [rbx + 0x10]
movzx esi, byte [r12 + 0x19]
mov rax, qword [0x1402f9868]
add rax, r15
sub rsp, 0x20
call rax
add rsp, 0x20
movzx eax, byte [0x140296608]
movzx ecx, byte [0x140296609]
imul eax, eax, 0xffffff99
mov edx, ecx
add ecx, ecx
shl edx, 5
sub edx, ecx
mov ecx, edx
add cl, al
add cl, 0x95
mov rax, r12
cmp sil, cl
jne 0x14007ff8f
nop word cs:[rax + rax]
mov rbx, rax
mov rsi, qword [rax]
movzx r12d, byte [rsi + 0x19]
mov rax, qword [0x1402f9880]
add rax, r15
sub rsp, 0x20
call rax
add rsp, 0x20
movzx eax, byte [0x14029660e]
movzx ecx, byte [reloc.WLDAP32.dll_Ordinal_50]
shr cl, 6
shl al, 2
or al, cl
mov ecx, eax
xor cl, 0xe8
mov rax, rsi
cmp r12b, cl
je 0x14007ff30
jmp 0x14007fe01
jne 0x14007fde0
add rdi, 0x10
jmp 0x14007fe01
mov r12, qword [rbx + 8]
movzx esi, byte [r12 + 0x19]
mov rax, qword [0x1402f9870]
add rax, r15
sub rsp, 0x20
call rax
add rsp, 0x20
movzx eax, byte [0x14029660a]
movzx ecx, byte [0x14029660b]
imul eax, eax, 0x6b
mov edx, ecx
shl edx, 4
add edx, ecx
neg edx
mov ecx, edx
add cl, al
mov r8d, ecx
add r8b, 0xc3
mov rax, r13
mov rcx, rdi
mov rdx, r12
cmp sil, r8b
jne 0x14007fe0a
mov rax, r12
nop word [rax + rax]
mov rcx, rbx
mov rbx, rax
cmp rcx, qword [rax + 0x10]
jne 0x14007fe01
mov r12, qword [rbx + 8]
movzx esi, byte [r12 + 0x19]
mov rax, qword [0x1402f9878]
add rax, r15
sub rsp, 0x20
call rax
add rsp, 0x20
movzx eax, byte [0x14029660c]
movzx ecx, byte [0x14029660d]
imul eax, eax, 0x5b
shl cl, 6
add cl, al
add cl, 0x9f
mov rax, r12
cmp sil, cl
je 0x14007fff0
mov rax, r13
mov rcx, rdi
mov rdx, r12
jmp 0x14007fe0a
mov rcx, qword [rbp]
mov r8, qword [rbp - 8]
mov qword [r8], rcx
mov qword [r8 + 8], rbx
mov qword [r8 + 0x10], rdi
mov qword [r8 + 0x18], r13
add r15, qword [0x1402f9860]
sub rsp, 0x20
mov rdx, qword [rbp - 0x10]
call r15
add rsp, 0x20
movzx eax, byte [reloc.WS2_32.dll_accept]
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
add r15, qword [0x1402f97d8]
sub rsp, 0x20
call r15
int3