Function at 0x18000beb0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1a0]
sub rsp, 0x2a0
mov qword [rsp + 0x38], 0xfffffffffffffffe
mov qword [rsp + 0x2e8], rbx
mov rax, qword [0x1800f10e0]
xor rax, rsp
mov qword [rbp + 0x190], rax
mov rdi, r9
mov r13, r8
mov r12, rcx
xor r15d, r15d
mov dword [rsp + 0x30], r15d
cmp qword [r9 + 0x18], 0x10
jb 0x18000bf0a
mov rdx, qword [r9]
jmp 0x18000bf0d
mov rdx, rdi
lea rcx, [rbp + 0x40]
call fcn.18000df10
nop
mov esi, dword [rbp + 0x50]
cmp qword [0x1800f9238], 0
jbe 0x18000c066
mov qword [rbp + 0x78], reloc.WS2_32.dll_ntohs
mov qword [rbp + 0x70], r15
mov byte [rbp + 0x60], 0
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [0x1800f9228]
lea rcx, [rbp + 0x60]
call fcn.180007c70
lea r14, [rbp + 0x40]
cmp qword [rbp + 0x58], 0x10
cmovae r14, qword [rbp + 0x40]
mov r15, qword [rbp + 0x70]
lea rbx, [rbp + 0x60]
cmp qword [rbp + 0x78], 0x10
cmovae rbx, qword [rbp + 0x60]
xor eax, eax
lea rcx, [rbp + 0x80]
mov r9d, 0x100
nop
mov byte [rcx], al
inc ax
lea rcx, [rcx + 1]
cmp ax, r9w
jl 0x18000bf80
mov word [rbp + 0x180], 0
xor r11b, r11b
xor r10b, r10b
lea r8, [rbp + 0x80]
nop word [rax + rax]
movzx edx, byte [r8]
movzx eax, r11b
movzx ecx, byte [rax + rbx]
add cl, dl
add r10b, cl
movzx eax, r10b
lea rcx, [rbp + 0x80]
add rcx, rax
movzx eax, byte [rcx]
mov byte [r8], al
mov byte [rcx], dl
movzx eax, r11b
inc eax
cdq
idiv r15d
mov r11d, edx
lea r8, [r8 + 1]
sub r9, 1
jne 0x18000bfb0
movzx r9d, byte [rbp + 0x180]
movzx r10d, byte [rbp + 0x181]
xor r15d, r15d
test esi, esi
je 0x18000c05d
mov r11d, r15d
mov rbx, rsi
nop dword [rax + rax]
inc r9b
movzx eax, r9b
lea rdx, [rbp + 0x80]
add rdx, rax
movzx r8d, byte [rdx]
add r10b, r8b
movzx eax, r10b
lea rcx, [rbp + 0x80]
add rcx, rax
movzx eax, byte [rcx]
mov byte [rdx], al
mov byte [rcx], r8b
movzx eax, byte [rdx]
add al, r8b
movzx eax, al
movzx ecx, byte [rbp + rax + 0x80]
xor byte [r11 + r14], cl
lea r11, [r11 + 1]
sub rbx, 1
jne 0x18000c010
lea rcx, [rbp + 0x60]
call fcn.1800052f0
lea eax, [rsi + rsi]
mov dword [rsp + 0x28], eax
movsxd rcx, eax
call fcn.18006c7cc
mov rbx, rax
mov eax, r15d
mov dword [rsp + 0x20], eax
mov rdx, qword [rdi + 0x10]
lea rcx, [rbp + 0x40]
cmp qword [rbp + 0x58], 0x10
cmovae rcx, qword [rbp + 0x40]
test edx, edx
je 0x18000c0a6
lea r9, [rsp + 0x20]
xor r8d, r8d
call fcn.180013930
mov eax, dword [rsp + 0x20]
inc eax
movsxd rcx, eax
call fcn.18006c7cc
mov r14, rax
mov r10, qword [rdi + 0x10]
lea rcx, [rbp + 0x40]
mov rdx, qword [rbp + 0x40]
mov r8, qword [rbp + 0x58]
cmp r8, 0x10
cmovae rcx, rdx
test r10d, r10d
je 0x18000c0e8
lea r9, [rsp + 0x20]
mov r8, rax
mov edx, r10d
call fcn.180013930
mov r8, qword [rbp + 0x58]
mov rdx, qword [rbp + 0x40]
mov qword [rbp + 0x78], reloc.WS2_32.dll_ntohs
mov qword [rbp + 0x70], r15
mov byte [rbp + 0x60], 0
lea rcx, [rbp + 0x40]
cmp r8, 0x10
cmovae rcx, rdx
test esi, esi
je 0x18000c117
lea r9, [rsp + 0x28]
mov r8, rbx
mov edx, esi
call fcn.180013930
lea rcx, [0x180000000]
lea rax, [rcx + 0xd9308]
mov qword [rsp + 0x40], rax
lea rax, [rcx + 0xd8c38]
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x30], 2
lea rax, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov qword [rbp - 0x28], rax
mov dword [rbp - 0x2c], Ordinal_133
mov qword [rsp + 0x48], r15
lea rdx, [rsp + 0x58]
lea rcx, [rbp - 0x28]
call fcn.180009ed0
nop
lea rax, [rsp + 0x50]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x50], rax
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x10]
mov dword [rsp + rcx + 0x4c], edx
mov rax, qword [rsp + 0x40]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_iostream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x40], rax
mov rax, qword [rsp + 0x40]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x20]
mov dword [rsp + rcx + 0x3c], edx
mov rax, qword [rsp + 0x40]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rsp + rcx + 0x40], rax
mov rax, qword [rsp + 0x40]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x98]
mov dword [rsp + rcx + 0x3c], edx
lea rax, [rsp + 0x58]
mov qword [rsp + 0x28], rax
lea rcx, [rsp + 0x58]
call fcn.180009aa0
nop
lea rax, vtable.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rsp + 0x58], rax
mov qword [rbp - 0x40], r15
mov dword [rbp - 0x38], r15d
lea rdx, [0x1800f91a8]
cmp qword [0x1800f91c0], 0x10
cmovae rdx, qword [0x1800f91a8]
lea rcx, [rsp + 0x50]
call fcn.18000ca30
mov rcx, rax
mov rdx, r13
call fcn.18000cc80
mov rcx, rax
mov rdx, rbx
call fcn.18000ca30
mov rcx, rbx
call fcn.18006c7c4
mov rcx, r14
call fcn.18006c7c4
mov rdx, r12
lea rcx, [rsp + 0x40]
call fcn.180005540
nop
lea rcx, [rbp - 0x28]
call fcn.180005570
nop
lea rax, vtable.std::ios_base.0
mov qword [rbp - 0x28], rax
lea rcx, [rbp - 0x28]
call fcn.18006e0fc
nop
mov rax, qword [rbp + 0x58]
cmp rax, 0x10
jb 0x18000c2d3
inc rax
mov rcx, qword [rbp + 0x40]
cmp rax, 0x1000
jb 0x18000c2ce
test cl, 0x1f
je 0x18000c2a1
call fcn.180072ffc
int3
mov rax, qword [rcx - 8]
cmp rax, rcx
jb 0x18000c2b0
call fcn.180072ffc
int3
sub rcx, rax
cmp rcx, 8
jae 0x18000c2bf
call fcn.180072ffc
int3
cmp rcx, 0x27
jbe 0x18000c2cb
call fcn.180072ffc
int3
mov rcx, rax
call fcn.18006baac
mov rax, r12
mov rcx, qword [rbp + 0x190]
xor rcx, rsp
call fcn.18006c2f0
mov rbx, qword [rsp + 0x2e8]
add rsp, 0x2a0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret