Function at 0x140003fb0
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.14000ce50
sub rsp, rax
mov rax, qword [0x140013040]
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.1400014d0
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 0x140004040
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, [0x14000eed0]
mov qword [rbp - 0x60], rax
lea rax, [0x14000ee38]
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 0x140004241
lea rdx, [0x14000ec90]
call fcn.140006cf0
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, [0x14000ec8c]
call fcn.140006cf0
lea rdx, [rsp + 0x38]
lea rcx, [rbp - 0x48]
call fcn.140006bf0
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 0x1400041e7
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 0x1400041fa
mov qword [rsp + 0x20], rdi
mov rdx, rdi
lea rcx, [rsp + 0x60]
call fcn.140006ec0
nop
mov rdx, qword [rsp + 0x50]
cmp rdx, 0xf
jbe 0x140004323
inc rdx
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000431e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14000431e
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
lea rdx, [0x14000ec94]
call fcn.140006cf0
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, [0x14000ec8c]
call fcn.140006cf0
lea rdx, [rsp + 0x38]
lea rcx, [rbp - 0x48]
call fcn.140006bf0
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 0x1400042d0
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 0x1400042e3
mov qword [rsp + 0x20], rdi
mov rdx, rdi
lea rcx, [rsp + 0x60]
call fcn.140006ec0
nop
mov rdx, qword [rsp + 0x50]
cmp rdx, 0xf
jbe 0x140004323
inc rdx
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000431e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14000431e
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14000c01c
lea rdx, str.xchat.exe
lea rcx, str.gdkWindowTemp
call qword [sym.imp.USER32.dll_FindWindowA]
test rax, rax
je 0x140004394
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
mov rax, rdx
sub rax, rcx
cmp rax, 1
jb 0x140004372
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 0x140004391
mov qword [rsp + 0x20], 1
lea r9, [0x14000ecb8]
mov edx, 1
lea rcx, [rsp + 0x60]
call fcn.140006ec0
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 0x140004404
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
mov rax, rdx
sub rax, rcx
cmp rax, 1
jb 0x1400043e3
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 0x140004409
mov qword [rsp + 0x20], 1
lea r9, [0x14000ec88]
mov edx, 1
lea rcx, [rsp + 0x60]
call fcn.140006ec0
jmp 0x140004409
test r14b, r14b
je 0x14000445e
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
mov rax, rdx
sub rax, rcx
cmp rax, 1
jb 0x14000443f
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 0x14000445e
mov qword [rsp + 0x20], 1
lea r9, [0x14000ec8c]
mov edx, 1
lea rcx, [rsp + 0x60]
call fcn.140006ec0
mov r13, qword [rbp - 0x68]
mov r15, qword [rbp - 0x80]
mov ecx, dword [rsp + 0x70]
cmp ecx, 0xe
jg 0x140004536
mov r14d, select
sub r14d, ecx
nop dword [rax]
mov eax, esi
cmp esi, 0x80000000
cmovae eax, esi
lea rcx, [rbp + 0xa0]
cmp eax, 0xffffffff
jne 0x1400044a0
call fcn.140003c50
mov ecx, eax
jmp 0x1400044dc
lea ebx, [rax + 1]
call fcn.140003c50
mov edi, ebx
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jae 0x1400044d8
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x1400044d8
lea rcx, [rbp + 0xa0]
call fcn.140003c50
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jb 0x1400044c2
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 0x140004522
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 0x14000452c
lea rcx, [rsp + 0x60]
call fcn.140003af0
sub r14, 1
jne 0x140004480
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
mov rax, rdx
sub rax, rcx
cmp rax, 1
jb 0x14000456c
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 0x14000458b
mov qword [rsp + 0x20], 1
lea r9, [0x14000ecd4]
mov edx, 1
lea rcx, [rsp + 0x60]
call fcn.140006ec0
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.140006970
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 0x14000462b
inc rdx
mov rcx, qword [rsp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140004626
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140004626
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14000c01c
mov qword [rsp + 0x70], r12
mov qword [rsp + 0x78], select
mov byte [rsp + 0x60], 0
cmp r13, 0xf
jbe 0x140004678
lea rdx, [r13 + 1]
mov rax, r15
cmp rdx, 0x1000
jb 0x140004670
add rdx, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140004670
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r15
call fcn.14000c01c
mov rax, rbx
mov rcx, qword [rbp + 0x1430]
xor rcx, rsp
call fcn.14000bd80
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