Function at 0x18003cf90
Capabilities:
Encode data using xor
Enumerate files on windows
Generate random numbers using a mersenne twister

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r14
push r15
lea rbp, [rsp - 0x16b0]
mov eax, 0x17b0
call fcn.1800ab820
sub rsp, rax
mov rax, qword [0x180427040]
xor rax, rsp
mov qword [rbp + 0x16a0], rax
mov rsi, rcx
xor r14d, r14d
lea r8, str..dll
mov rdx, rcx
lea rcx, [rsp + 0x58]
call fcn.180045300
cmp qword [rax + 0x18], 7
jbe 0x18003cfee
mov rax, qword [rax]
lea rdx, [rbp + 0xc0]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov rdi, rax
mov rdx, qword [rsp + 0x70]
cmp rdx, 7
jbe 0x18003d046
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003d041
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18003d041
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180047fc8
movdqa xmm0, xmmword [0x180415600]
movdqu xmmword [rsp + 0x68], xmm0
mov word [rsp + 0x58], r14w
cmp rdi, 0xffffffffffffffff
je 0x18003d40a
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [rbp + 0x1694], 0xffffffff
mov dword [rbp + 0x314], eax
mov edx, 1
nop
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rbp + rdx*4 + 0x314], eax
inc rdx
cmp rdx, 0x270
jb 0x18003d080
mov dword [rbp + 0x310], 0x270
lea r15, vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
nop dword [rax]
nop word [rax + rax]
lea r8, [0x180414448]
mov rdx, rsi
lea rcx, [rsp + 0x38]
call fcn.180045300
nop
lea rcx, [rbp + 0xec]
mov r8, 0xffffffffffffffff
inc r8
cmp word [rcx + r8*2], 0
jne 0x18003d0e3
lea rdx, [rbp + 0xec]
mov rcx, rax
call fcn.180044850
xorps xmm0, xmm0
movups xmmword [rsp + 0x78], xmm0
mov qword [rbp - 0x78], r14
mov qword [rbp - 0x70], r14
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x78], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x78], xmm1
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], 7
mov word [rax], r14w
mov rdx, qword [rsp + 0x50]
cmp rdx, 7
jbe 0x18003d16f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003d16a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003d436
call fcn.180047fc8
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x50], 7
mov word [rsp + 0x38], r14w
lea rcx, [rbp + 0x310]
call fcn.180039400
mov ecx, eax
imul rbx, rcx, 0x1389
cmp ebx, 0xd92
ja 0x18003d1bd
lea rcx, [rbp + 0x310]
call fcn.180039400
mov ecx, eax
imul rbx, rcx, 0x1389
cmp ebx, 0xd93
jb 0x18003d1a0
shr rbx, 0x20
sub rbx, 0x7fffbd98
xor rbx, 0xffffffff80000000
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x68], xmm0
mov qword [rbp - 0x58], rax
mov rdx, rbx
lea rcx, [rbp - 0x68]
call fcn.18003c840
nop
xor edx, edx
mov r8d, 0x108
lea rcx, [rbp - 0x50]
call sub.VCRUNTIME140.dll_memset
lea rdx, [rsp + 0x78]
cmp qword [rbp - 0x70], 7
cmova rdx, qword [rsp + 0x78]
mov r8d, 0x20
lea rcx, [rbp - 0x50]
call fcn.180044d10
mov rax, qword [rbp - 0x50]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx - 0x50], r15
mov rax, qword [rbp - 0x50]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xa8]
mov dword [rbp + rcx - 0x54], edx
cmp qword [rbp + 0x38], 0
je 0x18003d2e9
mov r8, qword [rbp - 0x60]
mov rdx, qword [rbp - 0x68]
sub r8, rdx
lea rcx, [rbp - 0x50]
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__::write_char_const____ptr64__long_long___int64_____ptr64]
lea rcx, [rbp - 0x48]
call fcn.180044c50
test rax, rax
jne 0x18003d283
mov rax, qword [rbp - 0x50]
movsxd rcx, dword [rax + 4]
lea rax, [rbp - 0x50]
add rcx, rax
xor r8d, r8d
mov edx, 2
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::setstate_int__bool____ptr64]
lea rdx, str.Arquivo_preenchido_com
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t___std::wcout]
call fcn.180045480
mov rdx, rbx
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___unsigned_long_long_unsigned___int64_____ptr64]
mov rcx, rax
lea rdx, str._bytes_aleat
call fcn.180045480
lea rdx, [rsp + 0x78]
cmp qword [rbp - 0x70], 7
cmova rdx, qword [rsp + 0x78]
mov r8, qword [rbp - 0x78]
mov rcx, rax
call fcn.180046dd0
lea rdx, [0x180045660]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64____cdecl___class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64_____ptr64]
lea rcx, [rsp + 0x78]
call fcn.18003cdd0
jmp 0x18003d329
lea rdx, str.Erro_ao_abrir_o_arquivo:
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t___std::wcerr]
call fcn.180045480
lea rdx, [rsp + 0x78]
cmp qword [rbp - 0x70], 7
cmova rdx, qword [rsp + 0x78]
mov r8, qword [rbp - 0x78]
mov rcx, rax
call fcn.180046dd0
lea rdx, [0x180045660]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64____cdecl___class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64_____ptr64]
nop
mov rax, qword [rbp - 0x50]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx - 0x50], r15
mov rax, qword [rbp - 0x50]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xa8]
mov dword [rbp + rcx - 0x54], edx
lea rcx, [rbp - 0x48]
call fcn.1800447e0
lea rcx, [rbp - 0x40]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::destructor_void____ptr64]
lea rcx, [rbp + 0x58]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
nop
mov rcx, qword [rbp - 0x68]
test rcx, rcx
je 0x18003d3ac
mov rdx, qword [rbp - 0x58]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003d39b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003d43d
call fcn.180047fc8
mov qword [rbp - 0x68], r14
mov qword [rbp - 0x60], r14
mov qword [rbp - 0x58], r14
mov rdx, qword [rbp - 0x70]
cmp rdx, 7
jbe 0x18003d3e9
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003d3e4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003d444
call fcn.180047fc8
lea rdx, [rbp + 0xc0]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x18003d0c0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindClose]
mov rcx, qword [rbp + 0x16a0]
xor rcx, rsp
call fcn.180047890
lea r11, [rsp + 0x17b0]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3