Function at 0x1800014fa
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x268
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x1e0], 0xfffffffffffffffe
mov rax, qword [0x1800a4040]
movabs rdx, 0x37de200acf95e12d
mov rax, qword [rax + rdx]
lea rdi, [rcx + 0x58]
mov qword [rbp + 0x1d8], rcx
cmp qword [rcx + 0x70], 8
mov rcx, rdi
jb 0x180001555
mov rcx, qword [rbp + 0x1d8]
mov rcx, qword [rcx + 0x58]
mov rsi, qword [rax + 0x18]
call fcn.1800813ac
movabs rcx, 0x37de200acf95e154
add rcx, qword [0x1800a4048]
call fcn.18001eef0
movabs rax, 0x37de200acf95e10d
mov rdx, qword [0x1800a4050]
add rdx, rax
lea rcx, [rbp + 0x190]
call fcn.180008941
lea rbx, [rbp + 0x1b0]
lea r8, [rbp + 0x190]
mov rcx, rbx
mov rdx, rdi
call fcn.1800021d6
cmp qword [rbp + 0x1c8], 8
jb 0x1800015be
mov rbx, qword [rbp + 0x1b0]
mov dword [rsp + 0x20], 1
lea rcx, [rbp - 0x48]
mov rdx, rbx
mov r8d, 2
mov r9d, 0x40
call fcn.1800089a0
mov rax, qword [rbp + 0x1c8]
cmp rax, 8
jb 0x1800015ff
mov rcx, qword [rbp + 0x1b0]
lea rdx, [rax*2 + 2]
call fcn.180004dc2
mov qword [rbp + 0x1c0], 0
mov qword [rbp + 0x1c8], 7
mov word [rbp + 0x1b0], 0
mov rax, qword [rbp + 0x1a8]
cmp rax, 8
jb 0x18000163f
mov rcx, qword [rbp + 0x190]
lea rdx, [rax*2 + 2]
call fcn.180004dc2
mov rax, qword [rbp - 0x48]
movsxd rax, dword [rax + 4]
lea rcx, [rax + rbp]
add rcx, 0xffffffffffffffb8
call qword [sym.imp.MSVCP140.dll_public:_bool___cdecl_std::ios_base::good_void_const___ptr64]
test al, al
je 0x18000215d
test rsi, rsi
je 0x180001811
mov rax, qword [rbp + 0x1d8]
movsxd rax, dword [rax + 0xc]
mov byte [rbp + 0xc0], 5
mov qword [rbp + 0xc8], rax
mov rax, qword [0x1800a40d8]
movabs rcx, 0xb37183f09182a284
mov rax, qword [rax + rcx]
mov rdi, qword [rax + rsi + 0x18]
xorps xmm0, xmm0
lea rbx, [rbp + 0x190]
movaps xmmword [rbx], xmm0
movaps xmmword [rbx + 0x10], xmm0
mov rcx, rdi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
mov rcx, rbx
mov rdx, rdi
mov r8, rax
call fcn.180005588
cmp byte [0x1800a8f26], 0
jne 0x180001730
mov rax, qword [0x1800a4048]
movabs r8, 0x37de200acf95e1a6
add r8, rax
movabs r9, 0x37de200acf95e192
add r9, rax
xor ecx, ecx
movabs r10, 0xcccccccccccccccd
lea r11, [0x1800a8f0c]
mov rax, rcx
mul r10
shr rdx, 2
and rdx, 0xfffffffffffffffc
lea rax, [rdx + rdx*4]
mov rdx, r9
sub rdx, rax
mov al, byte [rdx + rcx]
xor al, byte [r8 + rcx]
mov byte [rcx + r11], al
inc rcx
cmp rcx, 0x1a
jne 0x1800016fd
mov byte [0x1800a8f26], 1
mov rdi, qword [0x1800a4058]
movabs rax, 0x37de200acf95e10d
add rdi, rax
mov rcx, rdi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
lea rcx, [rbp + 0x190]
mov rdx, rdi
mov r8, rax
call fcn.1800066a6
mov rcx, qword [rbp + 0x1d8]
add rcx, 0x78
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
lea rdx, [rbp + 0x1b0]
movaps xmmword [rdx + 0x10], xmm1
movaps xmmword [rdx], xmm0
mov qword [rax + 0x10], 0
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
call fcn.18000224e
lea rcx, [rbp + 0xc8]
mov dl, byte [rax]
mov r8b, byte [rcx - 8]
mov byte [rax], r8b
mov byte [rcx - 8], dl
mov r8, qword [rax + 8]
mov r9, qword [rcx]
mov qword [rax + 8], r9
mov qword [rcx], r8
call fcn.180007b66
mov rdx, qword [rbp + 0x1c8]
cmp rdx, 0x10
jb 0x1800017d8
mov rcx, qword [rbp + 0x1b0]
inc rdx
call fcn.180004dc2
mov qword [rbp + 0x1c0], 0
mov qword [rbp + 0x1c8], 0xf
mov byte [rbp + 0x1b0], 0
mov rdx, qword [rbp + 0x1a8]
cmp rdx, 0x10
jb 0x180001811
mov rcx, qword [rbp + 0x190]
inc rdx
call fcn.180004dc2
mov rcx, qword [rbp + 0x1d8]
call fcn.18007992c
lea rcx, [rbp + 0x1b0]
mov qword [rcx], rax
mov qword [rbp + 0x138], 0
mov byte [rbp + 0x130], 3
call fcn.18000abe8
mov qword [rbp + 0x138], rax
mov rax, qword [rbp + 0x1d8]
lea rdi, [rax + 0x78]
movabs rcx, 0x37de200acf95e1d9
add rcx, qword [0x1800a4048]
call fcn.18001ef40
mov rdx, qword [0x1800a4060]
movabs rax, 0x37de200acf95e10d
add rdx, rax
mov rcx, rdi
call fcn.1800024aa
lea rcx, [rbp + 0x138]
mov dl, byte [rax]
mov r8b, byte [rcx - 8]
mov byte [rax], r8b
mov byte [rcx - 8], dl
mov r8, qword [rax + 8]
mov r9, qword [rcx]
mov qword [rax + 8], r9
mov qword [rcx], r8
call fcn.180007b66
mov rax, qword [rbp + 0x1d8]
lea rcx, [rax + 1]
call fcn.18007992c
lea rcx, [rbp + 0x1b0]
mov qword [rcx], rax
mov qword [rbp + 0x148], 0
mov byte [rbp + 0x140], 3
call fcn.18000abe8
mov qword [rbp + 0x148], rax
movabs rcx, 0x37de200acf95e204
add rcx, qword [0x1800a4048]
call fcn.18001ef60
mov rdx, qword [0x1800a4068]
movabs rax, 0x37de200acf95e10d
add rdx, rax
mov rcx, rdi
call fcn.1800024aa
lea rcx, [rbp + 0x148]
mov dl, byte [rax]
mov r8b, byte [rcx - 8]
mov byte [rax], r8b
mov byte [rcx - 8], dl
mov r8, qword [rax + 8]
mov r9, qword [rcx]
mov qword [rax + 8], r9
mov qword [rcx], r8
call fcn.180007b66
mov rax, qword [rbp + 0x1d8]
lea rcx, [rax + 2]
call fcn.18007992c
lea rcx, [rbp + 0x1b0]
mov qword [rcx], rax
mov qword [rbp + 0x158], 0
mov byte [rbp + 0x150], 3
call fcn.18000abe8
mov qword [rbp + 0x158], rax
movabs rcx, 0x37de200acf95e244
add rcx, qword [0x1800a4048]
call fcn.18001ef90
mov rdx, qword [0x1800a4070]
movabs rax, 0x37de200acf95e10d
add rdx, rax
mov rcx, rdi
call fcn.1800024aa
lea rcx, [rbp + 0x158]
mov dl, byte [rax]
mov r8b, byte [rcx - 8]
mov byte [rax], r8b
mov byte [rcx - 8], dl
mov r8, qword [rax + 8]
mov r9, qword [rcx]
mov qword [rax + 8], r9
mov qword [rcx], r8
call fcn.180007b66
mov rax, qword [rbp + 0x1d8]
movzx eax, byte [rax + 8]
mov byte [rbp + 0xd0], 4
mov qword [rbp + 0xd8], rax
movabs rcx, 0x37de200acf95e27e
add rcx, qword [0x1800a4048]
call fcn.18001efc0
mov rdx, qword [0x1800a4078]
movabs rax, 0x37de200acf95e10d
add rdx, rax
mov rcx, rdi
call fcn.1800024aa
lea rcx, [rbp + 0xd8]
mov dl, byte [rax]
mov r8b, byte [rcx - 8]
mov byte [rax], r8b
mov byte [rcx - 8], dl
mov r8, qword [rax + 8]
mov r9, qword [rcx]
mov qword [rax + 8], r9
mov qword [rcx], r8
call fcn.180007b66
mov rax, qword [rbp + 0x1d8]
movzx eax, byte [rax + 9]
mov byte [rbp + 0xe0], 4
mov qword [rbp + 0xe8], rax
movabs rcx, 0x37de200acf95e2c3
add rcx, qword [0x1800a4048]
call fcn.18001eff0
mov rdx, qword [0x1800a4080]
movabs rax, 0x37de200acf95e10d
add rdx, rax
mov rcx, rdi
call fcn.1800024aa
lea rcx, [rbp + 0xe8]
mov dl, byte [rax]
mov r8b, byte [rcx - 8]
mov byte [rax], r8b
mov byte [rcx - 8], dl
mov r8, qword [rax + 8]
mov r9, qword [rcx]
mov qword [rax + 8], r9
mov qword [rcx], r8
call fcn.180007b66
mov rax, qword [rbp + 0x1d8]
cvtss2sd xmm0, dword [rax + 4]
mov byte [rbp + 0xf0], 7
movsd qword [rbp + 0xf8], xmm0
movabs rcx, 0x37de200acf95e30c
add rcx, qword [0x1800a4048]
call fcn.18001f020
mov rdx, qword [0x1800a4088]
movabs rax, 0x37de200acf95e10d
add rdx, rax
mov rcx, rdi
call fcn.1800024aa
lea rcx, [rbp + 0xf8]
mov dl, byte [rax]
mov r8b, byte [rcx - 8]
mov byte [rax], r8b
mov byte [rcx - 8], dl
mov r8, qword [rax + 8]
mov r9, qword [rcx]
mov qword [rax + 8], r9
mov qword [rcx], r8
call fcn.180007b66
mov rax, qword [rbp + 0x1d8]
movsxd rax, dword [rax + 0x18]
mov byte [rbp + 0x100], 5
mov qword [rbp + 0x108], rax
cmp byte [0x1800a8fbc], 0
jne 0x180001ba8
mov rax, qword [0x1800a4048]
movabs r8, 0x37de200acf95e35b
add r8, rax
movabs r9, 0x37de200acf95e34a
add r9, rax
xor ecx, ecx
movabs r10, 0xf0f0f0f0f0f0f0f1
lea r11, [0x1800a8fa3]
mov rax, rcx
mul r10
mov rax, rdx
shr rax, 4
and rdx, 0xfffffffffffffff0
add rdx, rax
mov rax, r9
sub rax, rdx
mov al, byte [rax + rcx]
xor al, byte [r8 + rcx]
mov byte [rcx + r11], al
inc rcx
cmp rcx, 0x19
jne 0x180001b73
mov byte [0x1800a8fbc], 1
mov rdx, qword [0x1800a4090]
movabs rax, 0x37de200acf95e10d
add rdx, rax
mov rcx, rdi
call fcn.1800024aa
lea rcx, [rbp + 0x108]
mov dl, byte [rax]
mov r8b, byte [rcx - 8]
mov byte [rax], r8b
mov byte [rcx - 8], dl
mov r8, qword [rax + 8]
mov r9, qword [rcx]
mov qword [rax + 8], r9
mov qword [rcx], r8
call fcn.180007b66
mov rax, qword [rbp + 0x1d8]
movsxd rax, dword [rax + 0x1c]
mov byte [rbp + 0x110], 5
mov qword [rbp + 0x118], rax
cmp byte [0x1800a8fd5], 0
jne 0x180001c59
mov rdx, qword [0x1800a4048]
movabs rax, 0x37de200acf95e388
add rax, rdx
movabs rcx, 0x37de200acf95e398
add rcx, rdx
xor edx, edx
lea r8, [0x1800a8fbd]
mov r9d, edx
and r9d, 0xf
mov r9b, byte [rax + r9]
xor r9b, byte [rcx + rdx]
mov byte [rdx + r8], r9b
inc rdx
cmp rdx, 0x18
jne 0x180001c36
mov byte [0x1800a8fd5], 1
mov rdx, qword [0x1800a4098]
movabs rax, 0x37de200acf95e10d
add rdx, rax
mov rcx, rdi
call fcn.1800024aa
lea rcx, [rbp + 0x118]
mov dl, byte [rax]
mov r8b, byte [rcx - 8]
mov byte [rax], r8b
mov byte [rcx - 8], dl
mov r8, qword [rax + 8]
mov r9, qword [rcx]
mov qword [rax + 8], r9
mov qword [rcx], r8
call fcn.180007b66
mov rax, qword [rbp + 0x1d8]
movsxd rax, dword [rax + 0x14]
mov byte [rbp + 0x120], 5
mov qword [rbp + 0x128], rax
cmp byte [0x1800a8ff0], 0
jne 0x180001d03
mov rdx, qword [0x1800a4048]
movabs rax, 0x37de200acf95e3c5
add rax, rdx
movabs rcx, 0x37de200acf95e3e4
add rcx, rdx
xor edx, edx
lea r8, [0x1800a8fd6]
mov r9b, byte [rax + rdx]
xor r9b, byte [rcx + rdx]
mov byte [rdx + r8], r9b
inc rdx
cmp rdx, 0x1a
jne 0x180001ce7
mov byte [0x1800a8ff0], 1
mov rdx, qword [0x1800a40a0]
movabs rax, 0x37de200acf95e10d
add rdx, rax
mov rcx, rdi
call fcn.1800024aa
lea rcx, [rbp + 0x128]
mov dl, byte [rax]
mov r8b, byte [rcx - 8]
mov byte [rax], r8b
mov byte [rcx - 8], dl
mov r8, qword [rax + 8]
mov r9, qword [rcx]
mov qword [rax + 8], r9
mov qword [rcx], r8
call fcn.180007b66
mov rax, qword [rbp + 0x1d8]
mov rsi, qword [rax + 0x28]
mov r14, qword [rsi]
lea rbx, [rbp + 0x190]
mov qword [rbx], r14
lea r15, [rbp + 0x1b0]
lea r13, [0x1800a8ff1]
cmp r14, rsi
je 0x180001e66
movsxd rax, dword [r14 + 0x28]
mov byte [rbp + 0x160], 5
mov qword [rbp + 0x168], rax
cmp byte [0x1800a900f], 0
jne 0x180001dce
mov rax, qword [0x1800a4048]
movabs rcx, 0x37de200acf95e40e
add rcx, rax
movabs rdx, 0x37de200acf95e42c
add rax, rdx
xor edx, edx
mov r8b, byte [rcx + rdx]
xor r8b, byte [rax + rdx]
mov byte [rdx + r13], r8b
inc rdx
cmp rdx, 0x1e
jne 0x180001db2
mov byte [0x1800a900f], 1
mov rdx, qword [0x1800a40a8]
movabs rax, 0x37de200acf95e10d
add rdx, rax
mov rcx, rdi
call fcn.1800024aa
mov r12, rax
mov rdx, qword [r14 + 0x20]
mov rcx, r15
call fcn.18000680a
mov rcx, r12
mov rdx, r15
call fcn.18000224e
mov dl, byte [rax]
mov cl, byte [rbp + 0x160]
mov byte [rax], cl
mov byte [rbp + 0x160], dl
mov rcx, qword [rax + 8]
mov r8, qword [rbp + 0x168]
mov qword [rax + 8], r8
mov qword [rbp + 0x168], rcx
lea rcx, [rbp + 0x168]
call fcn.180007b66
mov rdx, qword [rbp + 0x1c8]
cmp rdx, 0x10
jb 0x180001e52
mov rcx, qword [rbp + 0x1b0]
inc rdx
call fcn.180004dc2
mov rcx, rbx
call fcn.1800081d0
mov r14, qword [rbp + 0x190]
jmp 0x180001d6b
mov rax, qword [rbp + 0x1d8]
mov rsi, qword [rax + 0x38]
mov rbx, qword [rsi]
lea rax, [rbp + 0x190]
mov qword [rax], rbx
lea r15, [rbp + 0x1b0]
movabs r13, 0x8888888888888889
lea r14, [0x1800a9010]
cmp rbx, rsi
je 0x180001fa6
movsxd rax, dword [rbx + 0x28]
mov byte [rbp + 0x170], 5
mov qword [rbp + 0x178], rax
cmp byte [0x1800a902f], 0
jne 0x180001f0a
mov r8, qword [0x1800a4048]
movabs rax, 0x37de200acf95e47a
lea r9, [r8 + rax]
movabs rax, 0x37de200acf95e45c
add r8, rax
xor ecx, ecx
mov rax, rcx
mul r13
shr rdx, 4
imul rax, rdx, 0xffffffffffffffe2
add rax, r8
mov al, byte [rcx + rax]
xor al, byte [r9 + rcx]
mov byte [rcx + r14], al
inc rcx
cmp rcx, 0x1f
jne 0x180001ede
mov byte [0x1800a902f], 1
mov rdx, qword [0x1800a40b0]
movabs rax, 0x37de200acf95e10d
add rdx, rax
mov rcx, rdi
call fcn.1800024aa
mov r12, rax
mov rdx, qword [rbx + 0x20]
mov rcx, r15
call fcn.18000680a
mov rcx, r12
mov rdx, r15
call fcn.18000224e
mov dl, byte [rax]
mov cl, byte [rbp + 0x170]
mov byte [rax], cl
mov byte [rbp + 0x170], dl
mov rcx, qword [rax + 8]
mov r8, qword [rbp + 0x178]
mov qword [rax + 8], r8
mov qword [rbp + 0x178], rcx
lea rcx, [rbp + 0x178]
call fcn.180007b66
mov rdx, qword [rbp + 0x1c8]
cmp rdx, 0x10
jb 0x180001f8e
mov rcx, qword [rbp + 0x1b0]
inc rdx
call fcn.180004dc2
lea rcx, [rbp + 0x190]
call fcn.1800081d0
mov rbx, qword [rbp + 0x190]
jmp 0x180001e96
mov rax, qword [rbp + 0x1d8]
mov r12, qword [rax + 0x48]
mov rsi, qword [r12]
lea rax, [rbp + 0x190]
mov qword [rax], rsi
lea r14, [rbp + 0x1b0]
movabs r13, 0x4924924924924925
lea rbx, [0x1800a9030]
cmp rsi, r12
je 0x1800020ec
movsxd rax, dword [rsi + 0x28]
mov byte [rbp + 0x180], 5
mov qword [rbp + 0x188], rax
cmp byte [0x1800a9054], 0
jne 0x180002050
mov rcx, qword [0x1800a4048]
movabs rax, 0x37de200acf95e4d0
lea r8, [rcx + rax]
movabs rax, 0x37de200acf95e4b4
add rcx, rax
xor r9d, r9d
mov rax, r9
shr rax, 2
mul r13
shr rdx, 1
imul rax, rdx, 0xffffffffffffffe4
add rax, rcx
mov al, byte [r9 + rax]
xor al, byte [r8 + r9]
mov byte [r9 + rbx], al
inc r9
cmp r9, 0x24
jne 0x180002020
mov byte [0x1800a9054], 1
mov rdx, qword [0x1800a40b8]
movabs rax, 0x37de200acf95e10d
add rdx, rax
mov rcx, rdi
call fcn.1800024aa
mov r15, rax
mov rdx, qword [rsi + 0x20]
mov rcx, r14
call fcn.18000680a
mov rcx, r15
mov rdx, r14
call fcn.18000224e
mov dl, byte [rax]
mov cl, byte [rbp + 0x180]
mov byte [rax], cl
mov byte [rbp + 0x180], dl
mov rcx, qword [rax + 8]
mov r8, qword [rbp + 0x188]
mov qword [rax + 8], r8
mov qword [rbp + 0x188], rcx
lea rcx, [rbp + 0x188]
call fcn.180007b66
mov rdx, qword [rbp + 0x1c8]
cmp rdx, 0x10
jb 0x1800020d4
mov rcx, qword [rbp + 0x1b0]
inc rdx
call fcn.180004dc2
lea rcx, [rbp + 0x190]
call fcn.1800081d0
mov rsi, qword [rbp + 0x190]
jmp 0x180001fd7
mov dword [rsp + 0x28], 0
mov byte [rsp + 0x20], 0
lea rsi, [rbp + 0x1b0]
mov rcx, rdi
mov rdx, rsi
mov r8d, 0xffffffff
mov r9b, 0x20
call fcn.1800026be
mov r8, qword [rbp + 0x1c0]
cmp qword [rbp + 0x1c8], 0x10
jb 0x18000212c
mov rsi, qword [rbp + 0x1b0]
lea rcx, [rbp - 0x48]
mov rdx, rsi
call fcn.18000e259
mov rdx, qword [rbp + 0x1c8]
cmp rdx, 0x10
jb 0x180002154
mov rcx, qword [rbp + 0x1b0]
inc rdx
call fcn.180004dc2
lea rcx, [rbp - 0x48]
call fcn.1800028bc
lea rsi, [rbp + 0x60]
mov rax, qword [rsi - 0xa8]
movsxd rax, dword [rax + 4]
lea rcx, vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rax - 0x48], rcx
mov rax, qword [rsi - 0xa8]
movsxd rax, dword [rax + 4]
lea ecx, [rax - 0xa8]
mov dword [rbp + rax - 0x4c], ecx
lea rcx, [rbp - 0x40]
call fcn.180006886
mov rcx, rsi
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::ios_base::destructor_void____ptr64]
nop
add rsp, 0x268
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret