Function at 0x180010020
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
lea rbp, [rsp - 0x57]
sub rsp, 0xc0
mov rbx, r8
mov rdi, rcx
test r8, r8
je 0x180010141
mov ecx, dword [0x180037d98]
mov rax, qword gs:[0x58]
mov edx, 4
mov rcx, qword [rax + rcx*8]
xor esi, esi
mov eax, dword [rdx + rcx]
cmp dword [0x180038384], eax
jg 0x180010205
cmp qword [0x1800383e8], 0
jne 0x18001016c
mov dword [rbp - 0x39], 0xf377f30e
mov dword [rbp - 0x35], 0xf378f30a
mov dword [rbp - 0x31], 0xf33bf31f
mov dword [rbp - 0x2d], 0xf330f332
mov dword [rbp - 0x29], 0xf33af338
mov dword [rbp - 0x25], 0xf314f37f
mov dword [rbp - 0x21], 0xf342f30e
mov dword [rbp - 0x1d], 0xf30df305
mov dword [rbp - 0x19], 0xf302f30b
mov dword [rbp - 0x15], 0xf32df347
mov dword [rbp - 0x11], 0xf32bf311
mov dword [rbp - 0xd], 0xf300f307
mov dword [rbp - 9], 0xf30df302
mov dword [rbp - 5], 0xf304f30e
mov dword [rbp - 1], 0xf322f314
mov dword [rbp + 3], 0xf31bf31c
mov dword [rbp + 7], 0xf319
mov edx, esi
mov r8d, 0xcab
movsxd rax, edx
lea rcx, [rbp - 0x39]
lea rcx, [rcx + rax*2]
movzx eax, dx
sub ax, r8w
xor word [rcx], ax
inc edx
cmp edx, 0x21
jb 0x180010101
mov word [rbp + 9], si
lea rdx, [rbp - 0x39]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t___std::wcout]
call fcn.180015960
lea rdx, [0x180015b40]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64____cdecl___class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64_____ptr64]
xor eax, eax
lea r11, [rsp + 0xc0]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret
inc r8
cmp byte [rax + r8], 0
je 0x18001019c
jmp 0x180010160
mov qword [rbp + 0x2f], rsi
mov qword [rsp + 0x20], rbx
lea rdx, [rbp + 0x2f]
mov rcx, rdi
call fcn.180015ba0
test al, al
je 0x180010141
mov rax, qword [rbp + 0x2f]
jmp 0x180010143
lea rcx, [0x180038384]
call fcn.18002a168
jmp 0x180010074
lea rdx, [rbp + 0x17]
lea rcx, [rbp + 0x37]
call fcn.180006240
nop
lea r8, [rbp + 0x37]
mov rdx, qword [0x180037eb8]
mov rcx, rdi
call fcn.1800104e0
mov qword [0x1800383e8], rax
mov rdx, qword [rbp + 0x4f]
cmp rdx, 0x10
jb 0x18001018b
inc rdx
mov rcx, qword [rbp + 0x37]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18001027e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18001027e
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
lea rcx, [0x180038384]
call fcn.18002a1c8
cmp dword [0x180038384], 0xffffffff
jne 0x180010074
movdqa xmm0, xmmword [0x18002ebc0]
movdqu xmmword [rbp + 0x17], xmm0
mov dword [rbp + 0x27], 0x9330e11
mov word [rbp + 0x2b], recvfrom
mov eax, esi
nop word [rax + rax]
movsxd rcx, eax
lea rdx, [rbp + 0x17]
add rdx, rcx
lea ecx, [rax + 0x55]
xor byte [rdx], cl
inc eax
cmp eax, 0x15
jb 0x180010240
mov byte [rbp + 0x2c], 0
mov qword [rbp + 0x37], rsi
mov qword [rbp + 0x47], rsi
mov qword [rbp + 0x4f], sendto
mov byte [rbp + 0x37], 0
lea rax, [rbp + 0x17]
mov r8, 0xffffffffffffffff
jmp 0x180010160
call fcn.180029c7c
jmp 0x18001018b