Function at 0x18003e520
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.1800b0850
sub rsp, rax
mov rax, qword [0x18043a040]
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.180049790
cmp qword [rax + 0x18], 7
jbe 0x18003e57e
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 0x18003e5d6
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003e5d1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18003e5d1
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18004cff8
movdqa xmm0, xmmword [0x1804271e0]
movdqu xmmword [rsp + 0x68], xmm0
mov word [rsp + 0x58], r14w
cmp rdi, 0xffffffffffffffff
je 0x18003e99a
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 0x18003e610
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, [0x180425638]
mov rdx, rsi
lea rcx, [rsp + 0x38]
call fcn.180049790
nop
lea rcx, [rbp + 0xec]
mov r8, 0xffffffffffffffff
inc r8
cmp word [rcx + r8*2], 0
jne 0x18003e673
lea rdx, [rbp + 0xec]
mov rcx, rax
call fcn.180048660
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 0x18003e6ff
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003e6fa
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003e9c6
call fcn.18004cff8
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x50], 7
mov word [rsp + 0x38], r14w
lea rcx, [rbp + 0x310]
call fcn.18004c6a0
mov ecx, eax
imul rbx, rcx, 0x1389
cmp ebx, 0xd92
ja 0x18003e74d
lea rcx, [rbp + 0x310]
call fcn.18004c6a0
mov ecx, eax
imul rbx, rcx, 0x1389
cmp ebx, 0xd93
jb 0x18003e730
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.18003dd80
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.180049130
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 0x18003e879
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.180049070
test rax, rax
jne 0x18003e813
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.180038340
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.180038340
lea rdx, [rsp + 0x78]
cmp qword [rbp - 0x70], 7
cmova rdx, qword [rsp + 0x78]
mov r8, qword [rbp - 0x78]
mov rcx, rax
call fcn.180039510
lea rdx, [0x180049910]
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.18003e360
jmp 0x18003e8b9
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.180038340
lea rdx, [rsp + 0x78]
cmp qword [rbp - 0x70], 7
cmova rdx, qword [rsp + 0x78]
mov r8, qword [rbp - 0x78]
mov rcx, rax
call fcn.180039510
lea rdx, [0x180049910]
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.1800485e0
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 0x18003e93c
mov rdx, qword [rbp - 0x58]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003e92b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003e9cd
call fcn.18004cff8
mov qword [rbp - 0x68], r14
mov qword [rbp - 0x60], r14
mov qword [rbp - 0x58], r14
mov rdx, qword [rbp - 0x70]
cmp rdx, 7
jbe 0x18003e979
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003e974
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003e9d4
call fcn.18004cff8
lea rdx, [rbp + 0xc0]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x18003e650
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindClose]
mov rcx, qword [rbp + 0x16a0]
xor rcx, rsp
call fcn.18004c8c0
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