Function at 0x7ff7a3902c40
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x588]
sub rsp, 0x660
movaps xmmword [rax - 0x38], xmm6
mov rax, qword [0x7ff7a4317500]
xor rax, rsp
mov qword [rbp + 0x540], rax
xor r12d, r12d
mov dword [rsp + 0x40], r12d
movdqa xmm0, xmmword [0x7ff7a39e0fa0]
movdqu xmmword [rbp + 0x70], xmm0
movdqa xmm1, xmmword [0x7ff7a39e1050]
movdqu xmmword [rbp + 0x80], xmm1
mov dword [rbp + 0x90], 0x1b090d04
mov dword [rbp + 0x94], 0x91f480d
mov dword [rbp + 0x98], 0x46481c01
mov word [rbp + 0x9c], 0x4646
xor eax, eax
mov byte [rbp + 0x9e], al
mov ecx, r12d
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rbp + 0x70]
xor byte [rbp + rcx + 0x71], al
movzx eax, byte [rbp + 0x70]
xor byte [rbp + rcx + 0x72], al
movzx eax, byte [rbp + 0x70]
xor byte [rbp + rcx + 0x73], al
movzx eax, byte [rbp + 0x70]
xor byte [rbp + rcx + 0x74], al
movzx eax, byte [rbp + 0x70]
xor byte [rbp + rcx + 0x75], al
movzx eax, byte [rbp + 0x70]
xor byte [rbp + rcx + 0x76], al
movzx eax, byte [rbp + 0x70]
xor byte [rbp + rcx + 0x77], al
movzx eax, byte [rbp + 0x70]
xor byte [rbp + rcx + 0x78], al
movzx eax, byte [rbp + 0x70]
xor byte [rbp + rcx + 0x79], al
movzx eax, byte [rbp + 0x70]
xor byte [rbp + rcx + 0x7a], al
movzx eax, byte [rbp + 0x70]
xor byte [rbp + rcx + 0x7b], al
movzx eax, byte [rbp + 0x70]
xor byte [rbp + rcx + 0x7c], al
movzx eax, byte [rbp + 0x70]
xor byte [rbp + rcx + 0x7d], al
movzx eax, byte [rbp + 0x70]
xor byte [rbp + rcx + 0x7e], al
movzx eax, byte [rbp + 0x70]
xor byte [rbp + rcx + 0x7f], al
add rcx, 0xf
cmp rcx, 0x2d
jb 0x7ff7a3902ce0
mov byte [rbp + 0x9e], r12b
lea r9, [rbp + 0x71]
lea r8, [0x7ff7a3a0f00c]
mov edx, 0x100
lea rcx, [0x7ff7a43206b0]
call fcn.7ff7a37f3500
lea rax, [0x7ff7a39df4e0]
mov qword [0x7ff7a43207b0], rax
mov dword [0x7ff7a4320b68], r12d
mov dword [0x7ff7a4320bb0], r12d
mov dword [0x7ff7a4320bb4], 0x43160000
mov dword [0x7ff7a4320bbc], r12d
movss xmm6, dword [0x7ff7a39d0378]
mov dword [0x7ff7a4320bb8], 0x42200000
mov rdi, qword [0x7ff7a43173f0]
lea rax, [0x7ff7a3a13d18]
mov qword [rsp + 0x70], rax
lea rax, [0x7ff7a3a10e90]
mov qword [rbp - 0x80], rax
lea rcx, [rbp + 8]
call qword [sym.imp.msvcp140.dll_protected:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::constructor_void____ptr64]
nop
mov dword [rsp + 0x40], 1
xor r8d, r8d
lea rdx, [rbp - 0x78]
lea rcx, [rsp + 0x70]
call qword [sym.imp.msvcp140.dll_public:_void___cdecl_std::basic_iostream_char__struct_std::char_traits_char__::constructor_class_std::basic_streambuf_char__struct_std::char_traits_char______ptr64____ptr64]
nop
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea rax, [0x7ff7a39df588]
mov qword [rsp + rcx + 0x70], rax
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x98]
mov dword [rsp + rcx + 0x6c], edx
lea rcx, [rbp - 0x78]
call qword [sym.imp.msvcp140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::constructor_void____ptr64]
lea rax, [0x7ff7a39deb30]
mov qword [rbp - 0x78], rax
mov qword [rbp - 0x10], r12
mov dword [rbp - 8], r12d
lea rdx, [0x7ff7a43207d0]
lea rcx, [rbp - 0x80]
call fcn.7ff7a38134a0
mov rcx, rax
lea rdx, [0x7ff7a39df8f4]
call fcn.7ff7a38134a0
mov rcx, rax
lea rdx, [0x7ff7a43208d0]
call fcn.7ff7a38134a0
lea rdx, [rbp + 0x70]
lea rcx, [rbp - 0x78]
call fcn.7ff7a380d3c0
nop
lea rdx, [rbp + 0x70]
cmp qword [rbp + 0x88], 0xf
cmova rdx, qword [rbp + 0x70]
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], r12
mov rbx, 0xffffffffffffffff
mov r8, rbx
nop word [rax + rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x7ff7a3902ec0
lea rcx, [rsp + 0x48]
call fcn.7ff7a3814400
mov byte [rsp + 0x30], 1
mov byte [rsp + 0x28], 0
mov byte [rsp + 0x20], 0
mov r9d, 0x400
lea r8, [rbp + 0x140]
lea rdx, [rsp + 0x48]
mov rcx, rdi
call fcn.7ff7a3914f30
mov edi, eax
mov rdx, qword [rbp + 0x88]
cmp rdx, 0xf
jbe 0x7ff7a3902f40
inc rdx
mov rcx, qword [rbp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x7ff7a3902f3b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x7ff7a3902f3b
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.7ff7a3938048
test edi, edi
jne 0x7ff7a3903236
xorps xmm0, xmm0
movups xmmword [rbp + 0xa0], xmm0
mov qword [rbp + 0xb0], r12
mov qword [rbp + 0xb8], r12
lea rax, [rbp + 0x140]
inc rbx
cmp byte [rax + rbx], 0
jne 0x7ff7a3902f67
mov r8, rbx
lea rdx, [rbp + 0x140]
lea rcx, [rbp + 0xa0]
call fcn.7ff7a3814400
nop
lea r10, [rbp + 0xa0]
mov rdi, qword [rbp + 0xa0]
mov r14, qword [rbp + 0xb8]
cmp r14, 0xf
cmova r10, rdi
lea r11, [rbp + 0xa0]
cmova r11, rdi
mov rsi, qword [rbp + 0xb0]
add r11, rsi
lea r9, [rbp + 0xa0]
cmp r14, 0xf
cmova r9, rdi
cmp r9, r11
je 0x7ff7a3903007
sub r10, r9
movzx r8d, byte [r9]
lea edx, [r8 - 0x41]
lea eax, [r8 + 0x20]
movzx ecx, al
cmp dl, 0x19
cmova ecx, r8d
mov byte [r10 + r9], cl
inc r9
cmp r9, r11
jne 0x7ff7a3902fd0
mov r14, qword [rbp + 0xb8]
mov rsi, qword [rbp + 0xb0]
mov rdi, qword [rbp + 0xa0]
mov rbx, qword [0x7ff7a4320a78]
mov r15, qword [0x7ff7a4320a80]
cmp rbx, r15
je 0x7ff7a390305f
nop word [rax + rax]
mov rax, qword [rbx + 0x10]
mov r9, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x7ff7a3903031
mov r9, qword [rbx]
lea rcx, [rbp + 0xa0]
cmp r14, 0xf
cmova rcx, rdi
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov rdx, rsi
call fcn.7ff7a38f57a0
cmp rax, 0xffffffffffffffff
jne 0x7ff7a39030a7
add rbx, 0x48
cmp rbx, r15
jne 0x7ff7a3903020
mov dword [rbp + 0xc0], 0x2d2b0d0a
mov word [rbp + 0xc4], 0x5d5b
lea r15, [rbp + 0xc0]
nop dword [rax]
lea rax, [rbp + 0xa0]
cmp r14, 0xf
seta cl
cmova rax, rdi
lea r14, [rsi + rax]
lea rax, [rbp + 0xa0]
test cl, cl
je 0x7ff7a39030d8
lea rbx, [rsi + rdi]
jmp 0x7ff7a39030e3
lea rcx, [rbx + 0x20]
cmp qword [rcx + 0x18], 0xf
jbe 0x7ff7a39030b5
mov rcx, qword [rcx]
lea rax, [0x7ff7a39daffc]
lea rdx, [0x7ff7a39df4e4]
cmp byte [rbx + 0x40], 0
cmovne rdx, rax
movaps xmm2, xmm6
call fcn.7ff7a390b340
jmp 0x7ff7a39031e9
lea rbx, [rsi + rax]
lea rdi, [rbp + 0xa0]
movzx esi, byte [r15]
movzx r8d, sil
mov rdx, rbx
mov rcx, rdi
call fcn.7ff7a39350a0
mov r10, rax
cmp rax, rbx
je 0x7ff7a390311c
inc rax
cmp rax, rbx
je 0x7ff7a390311c
movzx ecx, byte [rax]
cmp cl, sil
je 0x7ff7a3903114
mov byte [r10], cl
inc r10
inc rax
cmp rax, rbx
jne 0x7ff7a3903106
lea rcx, [rbp + 0xa0]
cmp qword [rbp + 0xb8], 0xf
seta r8b
cmova rcx, qword [rbp + 0xa0]
mov r9, r10
sub r9, rcx
sub r14, r10
mov rsi, qword [rbp + 0xb0]
mov rax, rsi
sub rax, r9
cmp rax, r14
cmovb r14, rax
lea rcx, [rbp + 0xa0]
test r8b, r8b
cmovne rcx, qword [rbp + 0xa0]
add rcx, r9
sub rsi, r14
mov r8, rsi
sub r8, r9
inc r8
lea rdx, [rcx + r14]
call sub.VCRUNTIME140.dll_memcpy_1
mov qword [rbp + 0xb0], rsi
inc r12d
inc r15
cmp r12d, 6
jae 0x7ff7a39031a4
mov r14, qword [rbp + 0xb8]
mov rdi, qword [rbp + 0xa0]
jmp 0x7ff7a3903080
lea r9, [rbp + 0xa0]
cmp qword [rbp + 0xb8], 0xf
cmova r9, qword [rbp + 0xa0]
lea r8, [0x7ff7a39df900]
mov edx, 0x64
lea rcx, [rbp + 0xd0]
call fcn.7ff7a37f3500
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp + 0xd0]
xor ecx, ecx
call qword [sym.imp.user32.dll_MessageBoxA]
nop
mov rdx, qword [rbp + 0xb8]
cmp rdx, 0xf
jbe 0x7ff7a390350a
inc rdx
mov rcx, qword [rbp + 0xa0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x7ff7a390322c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x7ff7a390322c
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.7ff7a3938048
jmp 0x7ff7a390350a
cmp edi, 2
jne 0x7ff7a39033b2
movdqa xmm1, xmmword [0x7ff7a39e0da0]
movdqa xmm2, xmmword [0x7ff7a39e0d80]
mov cl, 0x4c
mov dl, 0x40
mov r8b, 5
mov r10b, 0x12
mov bl, 0xf
mov r14b, 0x50
mov r15b, 0x18
mov r12b, 0x54
mov r13b, 0x55
movzx esi, dl
movzx edi, r10b
movzx r11d, r10b
movdqu xmmword [rbp + 0x80], xmm2
movdqu xmmword [rbp + 0x70], xmm1
movdqa xmm0, xmm1
psrldq xmm0, 1
movd eax, xmm0
movd r9d, xmm1
xor al, r9b
mov byte [rbp + 0x71], al
xor byte [rbp + 0x72], r9b
xor byte [rbp + 0x73], r9b
xor byte [rbp + 0x74], r9b
xor byte [rbp + 0x75], r9b
xor byte [rbp + 0x76], r9b
xor byte [rbp + 0x77], r9b
xor byte [rbp + 0x78], r9b
xor byte [rbp + 0x79], r9b
xor byte [rbp + 0x7a], r9b
xor byte [rbp + 0x7b], r9b
xor byte [rbp + 0x7c], r9b
xor byte [rbp + 0x7d], r9b
xor byte [rbp + 0x7e], r9b
xor byte [rbp + 0x7f], r9b
movd eax, xmm2
xor al, r9b
mov byte [rbp + 0x80], al
xor byte [rbp + 0x81], r9b
xor byte [rbp + 0x82], r9b
xor byte [rbp + 0x83], r9b
xor byte [rbp + 0x84], r9b
xor byte [rbp + 0x85], r9b
xor byte [rbp + 0x86], r9b
xor byte [rbp + 0x87], r9b
xor byte [rbp + 0x88], r9b
xor byte [rbp + 0x89], r9b
xor byte [rbp + 0x8a], r9b
xor byte [rbp + 0x8b], r9b
xor byte [rbp + 0x8c], r9b
xor byte [rbp + 0x8d], r9b
xor byte [rbp + 0x8e], r9b
xor byte [rbp + 0x8f], r9b
xor cl, r9b
mov byte [rbp + 0x90], cl
xor dl, r9b
mov byte [rbp + 0x91], dl
xor r8b, r9b
mov byte [rbp + 0x92], r8b
xor r10b, r9b
xor r11b, r9b
xor bl, r9b
xor dil, r9b
mov byte [rbp + 0x96], dil
xor sil, r9b
mov byte [rbp + 0x97], sil
xor r14b, r9b
mov byte [rbp + 0x98], r14b
xor r15b, r9b
mov byte [rbp + 0x99], r15b
xor r12b, r9b
mov byte [rbp + 0x9a], r12b
xor r13b, r9b
mov byte [rbp + 0x9b], r13b
mov byte [rbp + 0x9c], 0
jmp 0x7ff7a39034e2
cmp edi, 5
jne 0x7ff7a39033e4
movdqa xmm1, xmmword [0x7ff7a39e0fc0]
movdqa xmm2, xmmword [0x7ff7a39e0f90]
mov cl, 0x6c
mov dl, 0x60
mov r8b, 0x25
mov r10b, 0x32
mov bl, 0x2f
mov r14b, 0x70
mov r15b, 0x38
mov r12b, 0x75
mov r13b, 0x77
jmp 0x7ff7a3903267
movdqa xmm1, xmmword [0x7ff7a39e1280]
movdqu xmmword [rbp + 0x70], xmm1
movdqa xmm2, xmmword [0x7ff7a39e1290]
movdqu xmmword [rbp + 0x80], xmm2
mov dl, 6
mov r8b, 0x45
mov r9b, 0x4e
mov r10b, 0x43
mov r11b, 0x47
mov bl, 0x52
movdqa xmm0, xmm1
psrldq xmm0, 1
movd eax, xmm0
movd ecx, xmm1
xor al, cl
mov byte [rbp + 0x71], al
xor byte [rbp + 0x72], cl
xor byte [rbp + 0x73], cl
xor byte [rbp + 0x74], cl
xor byte [rbp + 0x75], cl
xor byte [rbp + 0x76], cl
xor byte [rbp + 0x77], cl
xor byte [rbp + 0x78], cl
xor byte [rbp + 0x79], cl
xor byte [rbp + 0x7a], cl
xor byte [rbp + 0x7b], cl
xor byte [rbp + 0x7c], cl
xor byte [rbp + 0x7d], cl
xor byte [rbp + 0x7e], cl
xor byte [rbp + 0x7f], cl
movd eax, xmm2
xor al, cl
mov byte [rbp + 0x80], al
xor byte [rbp + 0x81], cl
xor byte [rbp + 0x82], cl
xor byte [rbp + 0x83], cl
xor byte [rbp + 0x84], cl
xor byte [rbp + 0x85], cl
xor byte [rbp + 0x86], cl
xor byte [rbp + 0x87], cl
xor byte [rbp + 0x88], cl
xor byte [rbp + 0x89], cl
xor byte [rbp + 0x8a], cl
xor byte [rbp + 0x8b], cl
xor byte [rbp + 0x8c], cl
xor byte [rbp + 0x8d], cl
xor byte [rbp + 0x8e], cl
xor byte [rbp + 0x8f], cl
xor dl, cl
mov byte [rbp + 0x90], dl
xor r8b, cl
mov byte [rbp + 0x91], r8b
xor r9b, cl
mov byte [rbp + 0x92], r9b
xor r10b, cl
xor r11b, cl
xor bl, cl
mov byte [rbp + 0x96], 0
mov byte [rbp + 0x93], r10b
mov byte [rbp + 0x94], r11b
mov byte [rbp + 0x95], bl
movaps xmm2, xmm6
lea rdx, [0x7ff7a39df4e4]
lea rcx, [rbp + 0x71]
call fcn.7ff7a390b340
nop
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea rax, [0x7ff7a39df588]
mov qword [rsp + rcx + 0x70], rax
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x98]
mov dword [rsp + rcx + 0x6c], edx
lea rcx, [rbp - 0x78]
call fcn.7ff7a380a340
lea rcx, [rbp - 0x70]
call qword [sym.imp.msvcp140.dll_public_virtual:_void___cdecl_std::basic_iostream_char__struct_std::char_traits_char__::destructor_void____ptr64]
lea rcx, [rbp + 8]
call qword [sym.imp.msvcp140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
mov rcx, qword [rbp + 0x540]
xor rcx, rsp
call fcn.7ff7a3937cf0
lea r11, [rsp + 0x660]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret