Function at 0x180025390
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x1f8]
sub rsp, 0x2c0
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
mov rax, qword [0x1801ab040]
xor rax, rsp
mov qword [rbp + 0x190], rax
mov r15, rdx
mov qword [rsp + 0x60], rdx
mov rdi, rcx
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x40], rcx
xor r12d, r12d
mov r13d, r12d
mov dword [rsp + 0x48], r12d
mov rcx, rdx
call fcn.1800169f0
mov rbx, rax
test rax, rax
jne 0x18002540c
mov qword [rdi], r12
mov qword [rdi + 8], r12
mov qword [rdi + 0x10], r12
mov rax, rdi
jmp 0x180025ccb
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 8], xmm0
mov qword [rbp + 0x18], rax
mov dword [rsp + 0x30], 0xb040008
mov dword [rsp + 0x34], 0x12e0401
mov dword [rsp + 0x38], 0x61c0610
mov word [rsp + 0x3c], 3
mov byte [rsp + 0x3e], 1
mov rcx, r12
lea eax, [rcx + 0x6b]
xor byte [rsp + rcx + 0x30], al
inc rcx
cmp rcx, 0xd
jb 0x180025440
mov byte [rsp + 0x3e], r12b
xorps xmm0, xmm0
movups xmmword [rbp - 0x68], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x58], xmm1
lea rax, [rsp + 0x30]
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], r12b
jne 0x180025470
lea rdx, [rsp + 0x30]
lea rcx, [rbp - 0x68]
call fcn.18000eea0
nop
lea r8, [rbp - 0x68]
lea rdx, [rbp + 8]
mov rcx, rbx
call fcn.1800a4b80
nop
lea rcx, [rbp - 0x68]
call fcn.18000e640
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x10], xmm0
mov qword [rbp], rax
mov dword [rsp + 0x30], 0x1c0c0418
mov dword [rsp + 0x34], 0x12e140a
mov dword [rsp + 0x38], 0x61c0610
mov word [rsp + 0x3c], 3
mov byte [rsp + 0x3e], 1
mov rcx, r12
nop word [rax + rax]
lea eax, [rcx + 0x6b]
xor byte [rsp + rcx + 0x30], al
inc rcx
cmp rcx, 0xd
jb 0x1800254e0
mov byte [rsp + 0x3e], 0
xorps xmm0, xmm0
movups xmmword [rbp + 0x20], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x30], xmm1
lea rax, [rsp + 0x30]
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], 0
jne 0x180025510
lea rdx, [rsp + 0x30]
lea rcx, [rbp + 0x20]
call fcn.18000eea0
nop
lea r8, [rbp + 0x20]
lea rdx, [rbp - 0x10]
mov rcx, rbx
call fcn.1800a4b80
nop
lea rcx, [rbp + 0x20]
call fcn.18000e640
xorps xmm0, xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x28], xmm1
mov qword [rbp - 0x18], r12
movdqu xmmword [rbp + 0x160], xmm0
mov qword [rbp + 0x170], r12
mov rdx, qword [rbp + 0x10]
sub rdx, qword [rbp + 8]
sar rdx, 5
movabs r14, 0x7ffffffffffffff
test rdx, rdx
je 0x1800255f3
cmp rdx, r14
ja 0x180025d12
lea rcx, [rbp + 0x160]
call fcn.180017b10
lea rax, [rbp + 0x160]
mov qword [rsp + 0x40], rax
mov rdi, qword [rbp + 8]
mov rsi, qword [rbp + 0x10]
xorps xmm0, xmm0
movups xmmword [rbp - 0x68], xmm0
mov rbx, qword [rbp + 0x160]
mov qword [rbp - 0x68], rbx
mov qword [rbp - 0x60], rbx
lea rax, [rbp + 0x160]
mov qword [rbp - 0x58], rax
cmp rdi, rsi
je 0x1800255ec
nop dword [rax + rax]
mov rdx, rdi
mov rcx, rbx
call fcn.180015180
add rbx, 0x20
mov qword [rbp - 0x60], rbx
add rdi, 0x20
cmp rdi, rsi
jne 0x1800255d0
mov qword [rbp + 0x168], rbx
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x178], xmm0
mov qword [rbp + 0x188], r12
mov rdx, qword [rbp - 8]
sub rdx, qword [rbp - 0x10]
sar rdx, 5
test rdx, rdx
je 0x180025688
cmp rdx, r14
ja 0x180025d18
lea rcx, [rbp + 0x178]
call fcn.180017b10
lea rax, [rbp + 0x178]
mov qword [rsp + 0x40], rax
mov rdi, qword [rbp - 0x10]
mov rsi, qword [rbp - 8]
xorps xmm0, xmm0
movups xmmword [rbp - 0x68], xmm0
mov rbx, qword [rbp + 0x178]
mov qword [rbp - 0x68], rbx
mov qword [rbp - 0x60], rbx
lea rax, [rbp + 0x178]
mov qword [rbp - 0x58], rax
cmp rdi, rsi
je 0x180025681
mov rdx, rdi
mov rcx, rbx
call fcn.180015180
add rbx, 0x20
mov qword [rbp - 0x60], rbx
add rdi, 0x20
cmp rdi, rsi
jne 0x180025665
mov qword [rbp + 0x180], rbx
lea rax, [rbp + 0x160]
mov qword [rsp + 0x50], rax
lea rbx, vtable.std::basic_istringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
nop dword [rax + rax]
mov r12, qword [rax]
mov r14, qword [rax + 8]
mov qword [rsp + 0x58], r14
cmp r12, r14
je 0x180025c4b
lea rax, [r15 + 0xf0]
mov qword [rsp + 0x40], rax
mov rdx, rax
lea rcx, [rsp + 0x78]
call fcn.180015180
or r13d, 2
mov rdx, r12
cmp qword [r12 + 0x18], 0xf
jbe 0x1800256e1
mov rdx, qword [r12]
mov r8, qword [r12 + 0x10]
lea rcx, [rsp + 0x78]
call fcn.18000df10
movups xmm6, xmmword [rax]
movups xmmword [rbp + 0x20], xmm6
movups xmm7, xmmword [rax + 0x10]
movups xmmword [rbp + 0x30], xmm7
mov qword [rax + 0x10], 0
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
or r13d, 4
lea rcx, [rsp + 0x78]
call fcn.18000e640
xorps xmm0, xmm0
movups xmmword [rbp - 0x68], xmm0
mov qword [rbp - 0x58], 0
mov qword [rbp - 0x50], 0
lea rsi, [rbp + 0x20]
movq rcx, xmm6
movdqa xmm0, xmm7
psrldq xmm0, 8
movq rax, xmm0
cmp rax, 0xf
cmova rsi, rcx
movq rdi, xmm7
movabs rax, 0x7fffffffffffffff
cmp rdi, rax
ja 0x180025d0c
mov qword [rbp - 0x50], 0xf
cmp rdi, 0xf
ja 0x18002578c
mov qword [rbp - 0x58], rdi
movups xmm0, xmmword [rsi]
movups xmmword [rbp - 0x68], xmm0
jmp 0x180025824
mov rbx, rdi
or rbx, 0xf
cmp rbx, rax
jbe 0x1800257ab
mov rbx, rax
movabs rax, 0x8000000000000000
add rax, 0x27
jmp 0x1800257d2
cmp rbx, 0x16
mov eax, 0x16
cmovb rbx, rax
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x1800257f4
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x180025d06
mov rcx, rax
call fcn.1800cac20
mov rcx, rax
test rax, rax
je 0x180025cff
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x180025802
test rcx, rcx
je 0x180025800
call fcn.1800cac20
jmp 0x180025802
xor eax, eax
mov qword [rbp - 0x68], rax
mov qword [rbp - 0x58], rdi
mov qword [rbp - 0x50], rbx
lea r8, [rdi + 1]
mov rdx, rsi
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
lea rbx, vtable.std::basic_istringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
lea rdx, [rbp - 0x68]
lea rcx, [rbp + 0x40]
call fcn.1800251a0
nop
cmp byte [rbp + 0x60], 0
jne 0x18002583d
jmp 0x180025c26
xor edx, edx
mov r8d, 0xf0
lea rcx, [rbp + 0x70]
call sub.VCRUNTIME140.dll_memset
lea rax, [0x1800d5600]
mov qword [rbp + 0x70], rax
lea rcx, [rbp + 0x100]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::constructor_void____ptr64]
nop
or r13d, 8
mov dword [rsp + 0x48], r13d
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp + 0x80]
lea rcx, [rbp + 0x70]
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::basic_istream_char__struct_std::char_traits_char__::constructor_class_std::basic_streambuf_char__struct_std::char_traits_char______ptr64__bool____ptr64]
nop
mov rax, qword [rbp + 0x70]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx + 0x70], rbx
mov rax, qword [rbp + 0x70]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x90]
mov dword [rbp + rcx + 0x6c], edx
lea rax, [rbp + 0x80]
mov qword [rsp + 0x70], rax
lea rcx, [rbp + 0x80]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::constructor_void____ptr64]
nop
lea rax, vtable.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rbp + 0x80], rax
lea rdx, [rbp + 0x40]
cmp qword [rbp + 0x58], 0xf
cmova rdx, qword [rbp + 0x40]
mov r9d, 2
mov r8, qword [rbp + 0x50]
lea rcx, [rbp + 0x80]
call fcn.180015ac0
nop
xorps xmm0, xmm0
movups xmmword [rbp - 0x48], xmm0
mov qword [rbp - 0x38], 0
mov qword [rbp - 0x30], 0xf
mov byte [rbp - 0x48], 0
mov rax, qword [rbp + 0x70]
movsxd rcx, dword [rax + 4]
lea rax, [rbp + 0x70]
add rcx, rax
mov dl, 0xa
call qword [sym.imp.MSVCP140.dll_public:_char___cdecl_std::basic_ios_char__struct_std::char_traits_char__::widen_char_const___ptr64]
movzx r8d, al
lea rdx, [rbp - 0x48]
lea rcx, [rbp + 0x70]
call fcn.180017c90
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_bool___cdecl_std::ios_base::operator_bool_void_const___ptr64]
test al, al
je 0x180025bc6
nop
lea r15, [rbp - 0x48]
mov rdx, qword [rbp - 0x30]
cmp rdx, 0xf
seta al
mov r8, qword [rbp - 0x48]
cmova r15, r8
mov r14, qword [rbp - 0x38]
add r15, r14
lea rcx, [rbp - 0x48]
test al, al
je 0x18002597f
mov rbx, r8
lea rsi, [r14 + r8]
jmp 0x180025987
lea rsi, [rcx + r14]
lea rbx, [rbp - 0x48]
cmp rbx, rsi
je 0x1800259e9
nop dword [rax]
movsx ecx, byte [rbx]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
test eax, eax
jne 0x1800259a5
inc rbx
cmp rbx, rsi
jne 0x180025990
mov rdx, qword [rbp - 0x30]
mov r14, qword [rbp - 0x38]
mov r8, qword [rbp - 0x48]
cmp rbx, rsi
je 0x1800259e9
lea rdi, [rbx + 1]
cmp rdi, rsi
je 0x1800259e9
nop
movsx ecx, byte [rdi]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
test eax, eax
jne 0x1800259d5
movzx eax, byte [rdi]
mov byte [rbx], al
inc rbx
inc rdi
cmp rdi, rsi
jne 0x1800259c0
mov rdx, qword [rbp - 0x30]
mov r14, qword [rbp - 0x38]
mov r8, qword [rbp - 0x48]
lea rax, [rbp - 0x48]
cmp rdx, 0xf
seta cl
cmova rax, r8
mov rdx, rbx
sub rdx, rax
sub r15, rbx
mov rax, r14
sub rax, rdx
cmp rax, r15
cmovb r15, rax
lea rax, [rbp - 0x48]
test cl, cl
cmovne rax, r8
lea rcx, [rax + rdx]
sub r14, r15
mov r8, r14
sub r8, rdx
inc r8
lea rdx, [rcx + r15]
call sub.VCRUNTIME140.dll_memmove
mov qword [rbp - 0x38], r14
movdqa xmm0, xmmword [0x180192e20]
movdqu xmmword [rbp - 0x68], xmm0
mov dword [rbp - 0x58], 0x1000815
xor ecx, ecx
nop dword [rax + rax]
lea eax, [rcx + 0x6b]
xor byte [rbp + rcx - 0x68], al
inc rcx
cmp rcx, 0x12
jb 0x180025a50
mov byte [rbp - 0x55], 0
lea rcx, [rbp - 0x68]
mov rax, 0xffffffffffffffff
nop
inc rax
cmp byte [rcx + rax], 0
jne 0x180025a70
lea rcx, [rbp - 0x48]
cmp qword [rbp - 0x30], 0xf
cmova rcx, qword [rbp - 0x48]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x68]
mov rdx, r14
call fcn.180017510
cmp rax, 0xffffffffffffffff
je 0x180025ad2
mov rax, qword [rbp - 0x20]
cmp rax, qword [rbp - 0x18]
je 0x180025ac2
lea rdx, [rbp - 0x48]
mov rcx, rax
call fcn.180015180
mov rbx, qword [rbp - 0x20]
add rbx, 0x20
mov qword [rbp - 0x20], rbx
jmp 0x180025ad6
lea r8, [rbp - 0x48]
mov rdx, rax
lea rcx, [rbp - 0x28]
call fcn.180018080
mov rbx, qword [rbp - 0x20]
mov dword [rsp + 0x30], 0x9041e3f
mov dword [rsp + 0x34], 0x37031508
mov dword [rsp + 0x38], 0x21b1105
mov word [rsp + 0x3c], 0x100
xor ecx, ecx
nop word [rax + rax]
lea eax, [rcx + 0x6b]
xor byte [rsp + rcx + 0x30], al
inc rcx
cmp rcx, 0xc
jb 0x180025b00
mov byte [rsp + 0x3d], 0
lea rcx, [rsp + 0x30]
mov rax, 0xffffffffffffffff
inc rax
cmp byte [rcx + rax], 0
jne 0x180025b21
lea rcx, [rbp - 0x48]
cmp qword [rbp - 0x30], 0xf
cmova rcx, qword [rbp - 0x48]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x30]
mov rdx, qword [rbp - 0x38]
call fcn.180017510
cmp rax, 0xffffffffffffffff
je 0x180025b7a
cmp rbx, qword [rbp - 0x18]
je 0x180025b6a
lea rdx, [rbp - 0x48]
mov rcx, rbx
call fcn.180015180
add qword [rbp - 0x20], 0x20
jmp 0x180025b7a
lea r8, [rbp - 0x48]
mov rdx, rbx
lea rcx, [rbp - 0x28]
call fcn.180018080
mov rax, qword [rbp + 0x70]
movsxd rcx, dword [rax + 4]
lea rax, [rbp + 0x70]
add rcx, rax
mov dl, 0xa
call qword [sym.imp.MSVCP140.dll_public:_char___cdecl_std::basic_ios_char__struct_std::char_traits_char__::widen_char_const___ptr64]
movzx r8d, al
lea rdx, [rbp - 0x48]
lea rcx, [rbp + 0x70]
call fcn.180017c90
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_bool___cdecl_std::ios_base::operator_bool_void_const___ptr64]
test al, al
jne 0x180025950
mov r14, qword [rsp + 0x58]
lea rbx, vtable.std::basic_istringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
lea rcx, [rbp - 0x48]
call fcn.18000e640
nop
mov rax, qword [rbp + 0x70]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx + 0x70], rbx
mov rax, qword [rbp + 0x70]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x90]
mov dword [rbp + rcx + 0x6c], edx
lea rcx, [rbp + 0x80]
call fcn.180014920
lea rcx, [rbp + 0x88]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_istream_char__struct_std::char_traits_char__::destructor_void____ptr64]
lea rcx, [rbp + 0x100]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
nop
cmp byte [rbp + 0x60], 0
je 0x180025c26
lea rcx, [rbp + 0x40]
call fcn.18000e640
nop
lea rcx, [rbp + 0x20]
call fcn.18000e640
add r12, 0x20
cmp r12, r14
mov rax, qword [rsp + 0x40]
jne 0x1800256c1
mov rax, qword [rsp + 0x50]
mov r15, qword [rsp + 0x60]
add rax, 0x18
mov qword [rsp + 0x50], rax
lea rcx, [rbp + 0x190]
cmp rax, rcx
jne 0x1800256a0
lea r9, [fcn.180014b60]
mov edx, 0x18
lea r8d, [rdx - 0x16]
lea rcx, [rbp + 0x160]
call fcn.1800cb120
mov rdx, qword [rbp - 0x18]
xor r12d, r12d
mov qword [rbp - 0x18], r12
mov rcx, qword [rbp - 0x20]
mov qword [rbp - 0x20], r12
mov rax, qword [rbp - 0x28]
mov qword [rbp - 0x28], r12
mov rbx, qword [rsp + 0x68]
mov qword [rbx], rax
mov qword [rbx + 8], rcx
mov qword [rbx + 0x10], rdx
lea rcx, [rbp - 0x28]
call fcn.180015870
nop
lea rcx, [rbp - 0x10]
call fcn.180015870
nop
lea rcx, [rbp + 8]
call fcn.180015870
mov rax, rbx
mov rcx, qword [rbp + 0x190]
xor rcx, rsp
call fcn.1800cac00
lea r11, [rsp + 0x2c0]
mov rbx, qword [r11 + 0x50]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call fcn.18000ac90
int3
call fcn.18000ad30
nop
call fcn.18000e880
nop
call fcn.18000e880
int3