Function at 0x140289710
Capabilities:
Encode data using xor

Disassembly:
mov r11, rsp
push rbp
push rsi
push r12
push r13
push r14
lea rbp, [r11 - 0x4f]
sub rsp, 0x90
mov rax, qword [0x140601e40]
xor rax, rsp
mov qword [rbp + 0xf], rax
mov r12, qword [rbp + 0x77]
mov rsi, rcx
mov r13, qword [rbp + 0x7f]
mov ecx, 0x304
mov qword [r11 + 0x18], rbx
mov r14, rdx
mov qword [r11 - 0x30], rdi
mov qword [r11 - 0x38], r15
cmp word [rsi + 0x1c60], cx
jae 0x14028983d
mov rax, qword [rsi + 0x38]
cmp byte [rax + 7], 3
je 0x14028983d
test r9b, r9b
je 0x14028977c
mov rbx, qword [rsi + 0x3918]
jmp 0x140289783
mov rbx, qword [rsi + 0x3910]
cmp word [rsi + 0x1c60], cx
jae 0x1402897e6
cmp byte [rax + 7], 3
je 0x1402897e6
mov r9d, 4
lea rdx, [rbp - 5]
mov r8, rbx
lea rcx, [rbp - 0x11]
call fcn.1402b2080
lea rdx, [rbp - 5]
mov rcx, rax
test r14, r14
jne 0x1402897cb
xor r8d, r8d
call fcn.1402b1fc0
add dword [rsi + 0x2c], 8
mov r14d, 8
jmp 0x1402898d0
mov r9d, 8
mov r8, r14
call fcn.1402b2080
add dword [rsi + 0x2c], 8
add r14, 8
jmp 0x1402898d0
xor r8d, r8d
lea rdx, [rbp - 5]
lea rcx, [rbp - 0x11]
call fcn.1402b1f70
xor r8d, r8d
lea rdx, [rbp - 5]
lea rcx, [rbp - 0xd]
call fcn.1402b1fc0
lea rax, [rbp - 0x11]
mov edx, listen
sub rbx, rax
lea rcx, [rbp - 0x11]
nop word [rax + rax]
movzx eax, byte [rcx + rbx]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x140289820
add dword [rsi + 0x2c], 8
add r14, 8
jmp 0x1402898d0
test r9b, r9b
je 0x14028984b
mov rbx, qword [rsi + 0x3918]
jmp 0x140289852
mov rbx, qword [rsi + 0x3910]
mov rdi, qword [rsi + 8]
cmp word [rsi + 0x1c60], cx
jae 0x140289890
mov rax, qword [rsi + 0x38]
cmp byte [rax + 7], 3
je 0x140289890
mov r9d, 4
lea rdx, [rbp - 5]
mov r8, rbx
lea rcx, [rbp - 0x11]
call fcn.1402b2080
mov r8, rdi
lea rdx, [rbp - 5]
mov rcx, rax
call fcn.1402b1fc0
jmp 0x1402898d0
xor r8d, r8d
lea rdx, [rbp - 5]
lea rcx, [rbp - 0x11]
call fcn.1402b1f70
mov r8, rdi
lea rdx, [rbp - 5]
lea rcx, [rbp - 0xd]
call fcn.1402b1fc0
lea rax, [rbp - 0x11]
mov edx, listen
sub rbx, rax
lea rcx, [rbp - 0x11]
movzx eax, byte [rcx + rbx]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x1402898c0
mov r15d, dword [rsi + 0x28]
lea rcx, [rbp - 1]
add r15d, 0xfffffff0
mov edi, 0x304
mov dword [rsi + 0x28], r15d
mov dword [rsi + 0x24], r15d
sub r15d, dword [rsi + 0x2c]
cmp word [rsi + 0x1c60], di
jae 0x14028994d
mov r8, qword [rsi + 8]
lea rdx, [rbp + 0xc]
movzx edi, word [rsi + 0x1c60]
movzx ebx, byte [rsi + 0x67b8]
call fcn.1402b1fc0
movzx r8d, bl
lea rdx, [rbp + 0xc]
mov rcx, rax
call fcn.1402b2060
movzx r8d, di
lea rdx, [rbp + 0xc]
mov rcx, rax
call fcn.1402b1f00
movzx r8d, r15w
lea rdx, [rbp + 0xc]
mov rcx, rax
call fcn.1402b1f00
mov ebx, reloc.WS2_32.dll_listen
mov edi, 0x304
jmp 0x140289964
mov ebx, 5
lea r8, [rsi + 0x67b8]
mov r9d, ebx
lea edx, [rbx + 8]
call fcn.140295280
mov rax, qword [rsi + 0x38]
lea r9, [rbp - 0x11]
mov dword [rsp + 0x40], reloc.WS2_32.dll_recv
mov r8d, r15d
mov rdx, r14
cmp byte [rax + 7], 2
movsxd rax, r15d
jne 0x1402899ae
add rax, r14
lea rcx, [rsi + 0x4098]
mov qword [rsp + 0x38], rax
lea rax, [rbp - 1]
mov dword [rsp + 0x30], ebx
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], select
call fcn.1402ac460
jmp 0x1402899d7
add rax, r14
lea rcx, [rsi + 0x46f0]
mov qword [rsp + 0x38], rax
lea rax, [rbp - 1]
mov dword [rsp + 0x30], ebx
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], select
call fcn.1402aab60
mov r15, qword [rsp + 0x80]
mov rbx, qword [rsp + 0xd0]
test eax, eax
jns 0x1402899f0
mov byte [r12], 1
cmp word [rsi + 0x1c60], di
mov rdi, qword [rsp + 0x88]
jb 0x140289a54
cmp byte [r12], 0
jne 0x140289a54
test eax, eax
jle 0x140289a47
nop dword [rax]
lea ecx, [rax - 1]
movsxd rdx, ecx
cmp byte [rdx + r14], 0
jne 0x140289a23
dec eax
test eax, eax
jg 0x140289a10
test eax, eax
jle 0x140289a47
mov edx, dword [rsi + 0x2c]
dec edx
add edx, eax
movsxd rcx, edx
mov dword [rsi + 0x24], edx
mov dword [rsi + 0x28], edx
movzx edx, byte [rcx + rsi + 0xa7bd]
mov byte [rsi + 0x67b8], dl
jmp 0x140289a54
mov dword [r13], 0xa
mov eax, 0xffffffff
mov rcx, qword [rbp + 0xf]
xor rcx, rsp
call fcn.140284180
add rsp, 0x90
pop r14
pop r13
pop r12
pop rsi
pop rbp
ret