Function at 0x18013e504
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
lea rbp, [rax - 0x1d8]
sub rsp, 0x2c0
mov qword [rbp - 0x58], 0xfffffffffffffffe
mov qword [rax + 0x20], rbx
xor esi, esi
cmp dword [0x1801911dc], esi
je 0x18013e885
cmp dword [0x1801911d8], esi
je 0x18013e885
cmp dword [0x1801911d4], esi
je 0x18013e885
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
mov qword [rbp + 0x1e0], rax
lea rdx, [rbp + 0x1e0]
lea rcx, [rbp - 0x50]
call qword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__localtime64_s]
lea rcx, [rbp + 0xd0]
call fcn.18000b7c4
nop
lea rcx, [rbp - 0x20]
call fcn.18000b7c4
nop
mov dword [rsp + 0x38], 0x77
lea edx, [rsi + 0x52]
mov word [rsp + 0x3c], dx
lea eax, [rsi + 0x2e]
mov word [rsp + 0x3e], ax
lea ecx, [rsi + 0x5a]
mov word [rsp + 0x40], cx
mov word [rsp + 0x42], dx
lea eax, [rsi + 0x1a]
mov word [rsp + 0x44], ax
mov word [rsp + 0x46], cx
mov word [rsp + 0x48], dx
lea eax, [rsi + 0x13]
mov word [rsp + 0x4a], ax
xor eax, eax
mov word [rsp + 0x4c], ax
movzx eax, word [rsp + 0x3c]
mov edx, esi
lea edi, [rsi + 1]
movzx eax, word [rsp + rdx*2 + 0x3c]
mov ecx, dword [rsp + 0x38]
xor cx, ax
mov word [rsp + rdx*2 + 0x3c], cx
add rdx, rdi
cmp rdx, 8
jb 0x18013e5d1
mov word [rsp + 0x4c], si
lea rax, [rbp - 0x50]
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x3c]
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x3c]
mov qword [rsp + 0x60], rax
mov ebx, 2
cmp word [rsp + 0x3c], si
je 0x18013e62b
lea rax, [rsp + 0x3c]
add rax, rbx
cmp word [rax], si
jne 0x18013e61e
mov qword [rsp + 0x60], rax
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x20]
call fcn.18000c294
nop
xor edx, edx
lea r8d, [rdx + 0x12]
lea rcx, [rsp + 0x3c]
call qword [sym.imp.VCRUNTIME140.dll_memset]
mov dword [rsp + 0x20], 0x69
mov eax, dword [rsp + 0x20]
xor ax, 0x25
mov word [rsp + 0x24], ax
mov eax, dword [rsp + 0x20]
add ax, di
xor ax, 0x59
mov word [rsp + 0x26], ax
mov eax, dword [rsp + 0x20]
add ax, bx
xor ax, 0x2d
mov word [rsp + 0x28], ax
mov eax, dword [rsp + 0x20]
add ax, 3
xor ax, 0x25
mov word [rsp + 0x2a], ax
mov eax, dword [rsp + 0x20]
add ax, 4
xor ax, 0x6d
mov word [rsp + 0x2c], ax
mov eax, dword [rsp + 0x20]
add ax, 5
xor ax, 0x2d
mov word [rsp + 0x2e], ax
mov eax, dword [rsp + 0x20]
add ax, 6
xor ax, 0x25
mov word [rsp + 0x30], ax
mov eax, dword [rsp + 0x20]
add ax, 7
xor ax, 0x64
mov word [rsp + 0x32], ax
xor eax, eax
mov word [rsp + 0x34], ax
movzx eax, word [rsp + 0x24]
mov rdx, rsi
movzx eax, word [rsp + rdx*2 + 0x24]
mov ecx, dword [rsp + 0x20]
add cx, dx
xor cx, ax
mov word [rsp + rdx*2 + 0x24], cx
add rdx, rdi
cmp rdx, 8
jb 0x18013e6e4
mov word [rsp + 0x34], si
lea rax, [0x1801911c8]
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x24]
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x24]
mov qword [rsp + 0x60], rax
cmp word [rsp + 0x24], si
je 0x18013e73f
lea rax, [rsp + 0x24]
add rax, rbx
cmp word [rax], si
jne 0x18013e732
mov qword [rsp + 0x60], rax
lea rdx, [rsp + 0x50]
lea rcx, [rbp + 0xd0]
call fcn.18000c294
nop
xor edx, edx
lea r8d, [rdx + 0x12]
lea rcx, [rsp + 0x24]
call qword [sym.imp.VCRUNTIME140.dll_memset]
lea rdx, [rbp - 0x78]
lea rcx, [rbp + 0xd8]
call fcn.18000c140
nop
lea rdx, [rsp + 0x68]
lea rcx, [rbp - 0x18]
call fcn.18000c140
lea rdx, [rbp - 0x78]
lea rcx, [rsp + 0x68]
call fcn.18000d4c8
mov bl, al
lea rcx, [rsp + 0x68]
call fcn.18000bd8c
nop
lea rcx, [rbp - 0x78]
call fcn.18000bd8c
test bl, bl
jne 0x18013e7eb
lea rax, [rsp + 0x68]
mov qword [rbp + 0x1e8], rax
lea rdx, [rsp + 0x68]
lea rcx, [rbp + 0xd8]
call fcn.18000c140
nop
lea rdx, [rbp - 0x78]
lea rcx, [rbp - 0x18]
call fcn.18000c140
nop
lea rcx, [rbp - 0x78]
call fcn.18000bd8c
lea rcx, [rsp + 0x68]
call fcn.18000bd8c
mov dil, sil
mov rax, qword [rbp - 0x20]
movsxd rcx, dword [rax + 4]
lea rbx, vtable.std::basic_ostringstream_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__.0
mov qword [rbp + rcx - 0x20], rbx
mov rax, qword [rbp - 0x20]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x88]
mov dword [rbp + rcx - 0x24], edx
lea rcx, [rbp - 0x18]
call fcn.18000b6fc
lea rcx, [rbp - 0x10]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ostream_unsigned_short_int__struct_std::char_traits_unsigned_short_int__::destructor_void____ptr64]
lea rcx, [rbp + 0x68]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_unsigned_short_int__struct_std::char_traits_unsigned_short_int__::destructor_void____ptr64]
nop
mov rax, qword [rbp + 0xd0]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx + 0xd0], rbx
mov rax, qword [rbp + 0xd0]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x88]
mov dword [rbp + rcx + 0xcc], edx
lea rcx, [rbp + 0xd8]
call fcn.18000b6fc
lea rcx, [rbp + 0xe0]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ostream_unsigned_short_int__struct_std::char_traits_unsigned_short_int__::destructor_void____ptr64]
lea rcx, [rbp + 0x158]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_unsigned_short_int__struct_std::char_traits_unsigned_short_int__::destructor_void____ptr64]
mov al, dil
jmp 0x18013e88a
mov eax, 1
mov rbx, qword [rsp + 0x2f8]
add rsp, 0x2c0
pop rdi
pop rsi
pop rbp
ret