Function at 0x1800192e0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x170
mov rdi, r9
movzx r15d, dx
mov r14, r8
mov r13, rcx
xor r12d, r12d
call fcn.18001ccf0
mov rsi, qword [rsp + 0x1e8]
mov r10d, r15d
mov rbp, qword [rsp + 0x1d0]
mov ebx, r15d
sub r10d, 6
je 0x180019342
sub r10d, 0x24
je 0x180019342
sub r10d, 2
je 0x180019342
cmp r10d, 1
jne 0x180019354
movzx edx, word [rbp]
mov r8d, 0x20
mov rcx, rsi
call fcn.180007630
cmp byte [0x18003a1c8], r12b
jne 0x180019877
lea eax, [r15 - 1]
cmp eax, 0xa3
ja case.0x18001938b.2
lea rdx, [0x180000000]
cdqe
movzx eax, byte [rdx + rax + 0x19948]
mov ecx, dword [rdx + rax*4 + 0x19914]
add rcx, rdx
jmp rcx
mov eax, dword [0x18003b181]
mov dword [rdi], eax
mov rax, qword [rsp + 0x1c0]
inc dword [rax]
jmp 0x1800198ec
mov word [r14], r12w
jmp 0x1800198ec
mov rax, qword [rsp + 0x1c8]
mov rcx, rsi
movzx r8d, word [rbp]
movzx edx, word [rax]
lea rax, [0x18003bc49]
add rdx, rax
call fcn.180008d80
jmp 0x1800198da
mov rax, qword [rsp + 0x1c8]
xor r9d, r9d
movzx edx, word [rbp]
mov rcx, rsi
movzx r8d, word [rax]
call fcn.180032bc0
movzx r12d, ax
jmp 0x1800198ec
movzx eax, word [0x18003b187]
mov dword [rdi], eax
jmp 0x1800198ec
mov rdx, qword [rsp + 0x1c8]
movzx eax, word [rdx]
cmp eax, 0x40
jae 0x18001945e
lea rcx, [rax + rax*2]
lea r9, [0x18003b0d0]
movzx eax, word [r9 + rcx*2 + 0xd3]
mov word [rbp], ax
movzx eax, word [rdx]
lea rcx, [rax + rax*2]
mov rax, qword [rsp + 0x1d8]
movzx ecx, word [r9 + rcx*2 + 0xd5]
mov word [rax], cx
movzx eax, word [rdx]
lea rcx, [rax + rax*2]
movzx r12d, word [r9 + rcx*2 + 0xd7]
jmp 0x1800198ec
mov rax, qword [rsp + 0x1d8]
mov word [rax], r12w
mov word [rbp], r12w
mov r12d, 7
jmp 0x1800198ec
mov eax, dword [rdi]
test eax, eax
jne 0x180019543
mov r11, qword [rsp + 0x1e0]
mov r13d, reloc.WS2_32.dll_recv
mov r10, qword [rsp + 0x1c8]
mov ecx, r13d
mov rbx, qword [rsp + 0x1d8]
movzx r8d, word [r11]
movzx r9d, r8w
movzx edx, byte [rbx]
and dl, 0xf
sub cl, dl
shr r9w, cl
movzx ecx, dl
shl r8w, cl
mov ecx, r13d
or r9w, r8w
mov word [r10], r9w
movzx r8d, r9w
movzx edx, byte [rbp]
and dl, 0xf
sub cl, dl
shr r8w, cl
movzx ecx, dl
shl r9w, cl
or r8w, r9w
mov word [r11], r8w
xor r8w, word [r10]
mov word [rbx], r8w
movzx eax, r8w
movzx edx, byte [r11]
and dl, 0xf
sub r13b, dl
movzx ecx, r13b
shr ax, cl
movzx ecx, dl
shl r8w, cl
or ax, r8w
mov word [r10], ax
xor ax, word [r11]
mov word [rbp], ax
cmp byte [0x180039ede], r12b
je 0x1800198ec
movzx eax, word [rbx]
rol ax, 2
xor ax, 7
mov word [rbx], ax
xor word [rbp], ax
jmp 0x1800198ec
cmp eax, 5
je 0x180019551
cmp eax, 8
jne 0x1800198ec
mov r14, qword [rsp + 0x1d8]
mov r13d, reloc.WS2_32.dll_recv
mov rsi, qword [rsp + 0x1c8]
mov ecx, 0xff
mov r15, qword [rsp + 0x1e0]
mov r9d, 3
mov r11d, reloc.WS2_32.dll_listen
movzx edi, word [r14]
xor di, word [r15]
and di, cx
xor di, word [r14]
mov word [r14], di
movzx ebx, word [r15]
movzx eax, word [rbp]
movzx ecx, bx
movzx edx, word [rsi]
xor cx, di
and cx, 0xf
movzx r8d, dx
and ax, 0xf
cmp cx, ax
cmovb r9d, r12d
cmovb r11w, r13w
mov ecx, r9d
and bl, 0xf
shl r8w, cl
movzx ecx, r11w
shr dx, cl
mov ecx, r13d
or r8w, dx
sub cl, bl
movzx r10d, r8w
movzx edx, di
shr r10w, cl
movzx ecx, bl
shl r8w, cl
mov ecx, r9d
shl dx, cl
or r10w, r8w
movzx ecx, r11w
mov r9d, r13d
shr di, cl
movzx ecx, r10b
or dx, di
and cl, 0xf
movzx r11d, dx
movzx eax, cl
sub r9w, ax
movzx r8d, cl
movzx ecx, r9w
shr r11w, cl
mov ecx, r8d
shl dx, cl
movzx ecx, r9w
or r11w, dx
movzx edx, r11w
xor dx, r10w
mov word [r14], dx
movzx eax, dx
shr ax, cl
mov ecx, r8d
shl dx, cl
movzx ecx, r9w
or ax, dx
mov word [rsi], ax
movzx eax, word [r14]
movzx edx, ax
shr dx, cl
mov ecx, r8d
shl ax, cl
or dx, ax
xor dx, r11w
mov word [rbp], dx
movzx r8d, word [rsi]
movzx edx, r8b
movzx eax, r8w
xor dl, r11b
and dl, 0xf
sub r13b, dl
movzx ecx, r13b
shr ax, cl
movzx ecx, dl
shl r8w, cl
or ax, r8w
mov word [r15], ax
jmp 0x1800198ec
movzx ecx, word [rbp]
mov r8d, 0x80
cmp cx, r8w
jne 0x1800197ef
movzx eax, byte [0x18003b8ac]
or al, byte [0x18003b8ad]
or al, byte [0x18003b8ae]
jne 0x1800197ef
lea rcx, [rsp + 0x60]
mov rdx, rsi
sub rdx, rcx
lea rax, [rsp + 0x60]
mov ebx, r12d
movzx ecx, byte [rdx + rax]
test cl, cl
je 0x1800196ec
mov byte [rax], cl
inc ebx
inc rax
cmp ebx, r8d
jb 0x1800196d8
mov eax, ebx
mov ecx, r12d
inc ebx
mov rdx, rsi
mov byte [rsp + rax + 0x60], r12b
nop dword [rax + rax]
movzx eax, byte [rdx]
lea rdx, [rdx + 1]
not al
add al, cl
inc ecx
mov byte [rdx - 1], al
cmp ecx, r8d
jb 0x180019700
movzx edi, word [rbp]
lea rcx, [rsp + 0x60]
mov eax, ebx
mov r8d, edi
add rcx, rax
mov rdx, rsi
call fcn.180008d80
lea r8d, [rbx + rdi]
lea rdx, [rsp + 0x60]
lea rcx, [0x18003b0d0]
call fcn.180012860
mov ebx, eax
mov r10, r12
movabs rax, 0x3b976aa78d156b0e
movabs r11, 0xf427de46c6d3be37
mov qword [rsp + 0x50], rax
movabs rax, 0x39017b044e426efa
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + r10*8 + 0x50]
mov r9d, r10d
neg r9d
mov r8, r11
and r9d, 0xf
rol r8, 3
not r8
rol r11, 1
mov rdx, r8
mov ecx, r9d
neg ecx
and ecx, 0x3f
shl rdx, cl
mov ecx, r9d
shr r8, cl
or rdx, r8
xor rdx, rax
mov qword [rsp + r10*8 + 0x50], rdx
inc r10
cmp r10, 2
jb 0x180019770
mov edx, dword [0x18003c840]
lea r8, [rsp + 0x50]
lea rcx, [0x18003e044]
call fcn.18002ceb0
test ebx, ebx
jle 0x1800198da
mov r9b, 1
lea rcx, [0x18003c700]
mov r8d, 0x6cf
mov edx, ebx
call fcn.180032bc0
jmp 0x1800198da
mov r8d, ecx
mov edx, r12d
test ecx, ecx
je 0x1800198da
mov rcx, rsi
movzx eax, byte [rcx]
lea rcx, [rcx + 1]
not al
add al, dl
inc edx
mov byte [rcx - 1], al
cmp edx, r8d
jb 0x180019800
jmp 0x1800198da
movzx r8d, word [rbp]
lea rdx, [0x18003b9ac]
mov rcx, rsi
call fcn.180008d80
jmp 0x1800198da
mov rax, qword [rsp + 0x1c8]
mov rcx, rsi
movzx r8d, word [rbp]
movzx edx, word [rax]
lea rax, [0x18003c031]
add rdx, rax
call fcn.180008d80
jmp 0x1800198da
mov rcx, qword [rsp + 0x1c0]
mov eax, dword [0x18003b0f0]
mov dword [rcx], eax
jmp 0x1800198ec
mov r12d, 1
jmp case.0x18001938b.4
mov rax, qword [rsp + 0x1e0]
mov r8, rdi
mov r9, qword [rsp + 0x1c0]
mov rdx, r14
mov qword [rsp + 0x40], rsi
movzx ecx, r15w
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x1d8]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x1c8]
mov qword [rsp + 0x28], rbp
mov qword [rsp + 0x20], rax
call r13
movzx r12d, ax
sub ebx, 5
je 0x1800198da
sub ebx, 0x25
je 0x1800198da
sub ebx, 2
je 0x1800198da
sub ebx, 1
je 0x1800198da
cmp ebx, 1
jne 0x1800198ec
movzx edx, word [rbp]
mov r8d, 0x20
mov rcx, rsi
call fcn.180007630
lea r11, [rsp + 0x170]
movzx eax, r12w
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret