Function at 0x1400066c0
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1440]
mov eax, 0x1540
call fcn.1400105a0
sub rsp, rax
mov rax, qword [0x140017040]
xor rax, rsp
mov qword [rbp + 0x1430], rax
xor r12d, r12d
mov dword [rsp + 0x30], r12d
xor r14b, r14b
xorps xmm0, xmm0
movups xmmword [rbp - 0x80], xmm0
mov qword [rbp - 0x70], r12
mov qword [rbp - 0x68], r12
lea r8d, [r12 + 0x34]
lea rdx, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
lea rcx, [rbp - 0x80]
call fcn.140003790
nop
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [rbp + 0x1424], 0xffffffff
mov dword [rbp + 0xa4], eax
lea edx, [r12 + 1]
nop dword [rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rbp + rdx*4 + 0xa4], eax
inc rdx
cmp rdx, 0x270
jb 0x140006750
mov dword [rbp + 0xa0], 0x270
mov esi, dword [rbp - 0x70]
dec esi
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], r12
mov qword [rsp + 0x78], select
mov byte [rsp + 0x60], 0
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_srand]
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
mov rcx, rax
mov eax, 0x10624dd3
mul ecx
shr edx, 6
mov eax, 0xc22e4507
mul edx
mov ebx, edx
shr ebx, 0x10
xor edx, edx
mov r8d, 0xf8
lea rcx, [rbp - 0x60]
call sub.VCRUNTIME140.dll_memset
lea rax, [0x140012608]
mov qword [rbp - 0x60], rax
lea rax, [0x140012570]
mov qword [rbp - 0x50], rax
lea rcx, [rbp + 0x38]
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 + 0x30], 1
xor r8d, r8d
lea rdx, [rbp - 0x48]
lea rcx, [rbp - 0x60]
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 [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rbp + rcx - 0x60], rax
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x98]
mov dword [rbp + rcx - 0x64], edx
lea rcx, [rbp - 0x48]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::constructor_void____ptr64]
lea rax, vtable.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rbp - 0x48], rax
mov qword [rbp + 0x20], r12
mov dword [rbp + 0x28], r12d
lea rcx, [rbp - 0x50]
cmp ebx, 0xa
jae 0x140006951
lea rdx, [0x1400122d0]
call fcn.140009470
mov rcx, rax
mov edx, ebx
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_int____ptr64]
mov rcx, rax
lea rdx, [0x1400122cc]
call fcn.140009470
lea rdx, [rsp + 0x38]
lea rcx, [rbp - 0x48]
call fcn.140009370
nop
lea r9, [rsp + 0x38]
cmp qword [rsp + 0x50], 0xf
cmova r9, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
mov rax, rdx
sub rax, rcx
cmp rdi, rax
ja 0x1400068f7
lea rax, [rcx + rdi]
mov qword [rsp + 0x70], rax
lea rbx, [rsp + 0x60]
cmp rdx, 0xf
cmova rbx, qword [rsp + 0x60]
add rbx, rcx
mov r8, rdi
mov rdx, r9
mov rcx, rbx
call sub.VCRUNTIME140.dll_memmove
mov byte [rbx + rdi], 0
jmp 0x14000690a
mov qword [rsp + 0x20], rdi
mov rdx, rdi
lea rcx, [rsp + 0x60]
call fcn.140009640
nop
mov rdx, qword [rsp + 0x50]
cmp rdx, 0xf
jbe 0x140006a33
inc rdx
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140006a2e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140006a2e
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
lea rdx, [0x1400122d4]
call fcn.140009470
mov rcx, rax
mov edx, ebx
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_int____ptr64]
mov rcx, rax
lea rdx, [0x1400122cc]
call fcn.140009470
lea rdx, [rsp + 0x38]
lea rcx, [rbp - 0x48]
call fcn.140009370
nop
lea r9, [rsp + 0x38]
cmp qword [rsp + 0x50], 0xf
cmova r9, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
mov rax, rdx
sub rax, rcx
cmp rdi, rax
ja 0x1400069e0
lea rax, [rdi + rcx]
mov qword [rsp + 0x70], rax
lea rbx, [rsp + 0x60]
cmp rdx, 0xf
cmova rbx, qword [rsp + 0x60]
add rbx, rcx
mov r8, rdi
mov rdx, r9
mov rcx, rbx
call sub.VCRUNTIME140.dll_memmove
mov byte [rbx + rdi], 0
jmp 0x1400069f3
mov qword [rsp + 0x20], rdi
mov rdx, rdi
lea rcx, [rsp + 0x60]
call fcn.140009640
nop
mov rdx, qword [rsp + 0x50]
cmp rdx, 0xf
jbe 0x140006a33
inc rdx
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140006a2e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140006a2e
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14000f76c
lea rdx, str.xchat.exe
lea rcx, str.gdkWindowTemp
call qword [sym.imp.USER32.dll_FindWindowA]
test rax, rax
je 0x140006aa4
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
mov rax, rdx
sub rax, rcx
cmp rax, 1
jb 0x140006a82
lea rax, [rcx + 1]
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0x60]
cmp rdx, 0xf
cmova rax, qword [rsp + 0x60]
mov word [rax + rcx], 0x58
jmp 0x140006aa1
mov qword [rsp + 0x20], 1
lea r9, [0x1400122f8]
mov edx, 1
lea rcx, [rsp + 0x60]
call fcn.140009640
mov r14b, 1
xor r9d, r9d
lea r8, str.Chrome_WidgetWin_1
xor edx, edx
xor ecx, ecx
call qword [sym.imp.USER32.dll_FindWindowExA]
test rax, rax
je 0x140006b14
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
mov rax, rdx
sub rax, rcx
cmp rax, 1
jb 0x140006af3
lea rax, [rcx + 1]
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0x60]
cmp rdx, 0xf
cmova rax, qword [rsp + 0x60]
mov word [rax + rcx], 0x43
jmp 0x140006b19
mov qword [rsp + 0x20], 1
lea r9, [0x1400122c8]
mov edx, 1
lea rcx, [rsp + 0x60]
call fcn.140009640
jmp 0x140006b19
test r14b, r14b
je 0x140006b6e
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
mov rax, rdx
sub rax, rcx
cmp rax, 1
jb 0x140006b4f
lea rax, [rcx + 1]
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0x60]
cmp rdx, 0xf
cmova rax, qword [rsp + 0x60]
mov word [rax + rcx], 0x7c
jmp 0x140006b6e
mov qword [rsp + 0x20], 1
lea r9, [0x1400122cc]
mov edx, 1
lea rcx, [rsp + 0x60]
call fcn.140009640
mov r13, qword [rbp - 0x68]
mov r15, qword [rbp - 0x80]
mov ecx, dword [rsp + 0x70]
cmp ecx, 0xc
jg 0x140006c46
mov r14d, reloc.WS2_32.dll_listen
sub r14d, ecx
nop dword [rax]
mov eax, esi
cmp esi, 0x80000000
cmovae eax, esi
lea rcx, [rbp + 0xa0]
cmp eax, 0xffffffff
jne 0x140006bb0
call fcn.140006320
mov ecx, eax
jmp 0x140006bec
lea ebx, [rax + 1]
call fcn.140006320
mov edi, ebx
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jae 0x140006be8
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x140006be8
lea rcx, [rbp + 0xa0]
call fcn.140006320
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jb 0x140006bd2
shr rcx, 0x20
lea rdx, [rbp - 0x80]
cmp r13, 0xf
cmova rdx, r15
movsxd rax, ecx
movzx r9d, byte [rax + rdx]
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
cmp rcx, rdx
jae 0x140006c32
lea rax, [rcx + 1]
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0x60]
cmp rdx, 0xf
cmova rax, qword [rsp + 0x60]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], 0
jmp 0x140006c3c
lea rcx, [rsp + 0x60]
call fcn.1400061c0
sub r14, 1
jne 0x140006b90
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
mov rax, rdx
sub rax, rcx
cmp rax, 1
jb 0x140006c7c
lea rax, [rcx + 1]
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0x60]
cmp rdx, 0xf
cmova rax, qword [rsp + 0x60]
mov word [rax + rcx], 0x5d
jmp 0x140006c9b
mov qword [rsp + 0x20], 1
lea r9, [0x140012314]
mov edx, 1
lea rcx, [rsp + 0x60]
call fcn.140009640
lea rcx, [rsp + 0x60]
cmp qword [rsp + 0x78], 0xf
cmova rcx, qword [rsp + 0x60]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strdup]
mov rbx, rax
mov rcx, qword [rbp - 0x60]
movsxd rdx, dword [rcx + 4]
lea rax, vtable.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rbp + rdx - 0x60], rax
mov rcx, qword [rbp - 0x60]
movsxd rdx, dword [rcx + 4]
lea r8d, [rdx - 0x98]
mov dword [rbp + rdx - 0x64], r8d
lea rcx, [rbp - 0x48]
call fcn.1400090f0
lea rcx, [rbp - 0x40]
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 + 0x38]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
nop
mov rdx, qword [rsp + 0x78]
cmp rdx, 0xf
jbe 0x140006d3b
inc rdx
mov rcx, qword [rsp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140006d36
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140006d36
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14000f76c
mov qword [rsp + 0x70], r12
mov qword [rsp + 0x78], select
mov byte [rsp + 0x60], 0
cmp r13, 0xf
jbe 0x140006d88
lea rdx, [r13 + 1]
mov rax, r15
cmp rdx, 0x1000
jb 0x140006d80
add rdx, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140006d80
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r15
call fcn.14000f76c
mov rax, rbx
mov rcx, qword [rbp + 0x1430]
xor rcx, rsp
call fcn.14000f4d0
lea r11, [rsp + 0x1540]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret