Function at 0x1800054b0
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
mov eax, 0x1890
call fcn.18011c0c0
sub rsp, rax
lea rbp, [rsp + 0x50]
and rbp, 0xffffffffffffffe0
mov rax, qword [0x18018f080]
xor rax, rsp
mov qword [rbp + 0x1830], rax
xor esi, esi
movabs rax, 0x6dccbfcb0d812e59
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x40], rax
movabs rax, 0xe236e40db84d94ad
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x48], rax
movabs rax, 0x5de631dd876c5884
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x50], rax
movabs rax, 0xbd48b5219cf3995
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x58], rax
movabs rax, 0xac4d0d6cf4edf52a
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x60], rax
movabs rax, 0x548b263fdb2bf827
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x68], rax
movabs rax, 0x9f5680b0addd3268
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x70], rax
movabs rax, 0xe98e37fa865e325
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x78], rax
movabs rax, 0x22a7dbbc311b1d30
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x80], rax
movabs rax, 0xdd0b96df2b089a09
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x88], rax
movabs rax, 0x361dfb920889368e
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x90], rax
movabs rax, 0xc382eaf0a4d5c15b
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x98], rax
movabs rax, 0xc7e85ad73feb08da
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xa0], rax
movabs rax, 0xd4780c41241be07b
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xa8], rax
movabs rax, 0xcc8d65b7b6669fea
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xb0], rax
movabs rax, 0xe8f3e6c7015adaee
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xb8], rax
movabs rax, 0x4afc1a0ae43a1620
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xc0], rax
movabs rax, 0x7cc66bb7ad4d70f
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xc8], rax
movabs rax, 0x117c4330b2907316
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xd0], rax
movabs rax, 0xff7ced82ee8f21bd
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xd8], rax
movabs rax, 0xc47b5af32282a6ad
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xe0], rax
movabs rcx, 0xf9278706dd654be2
mov qword [rbp], rcx
mov rax, qword [rbp]
mov qword [rbp + 0xe8], rax
movabs r14, 0x6dbcbfbf0df52e31
mov qword [rbp], r14
mov rax, qword [rbp]
mov qword [rbp + 0x1520], rax
movabs r15, 0xe219e422b87794de
mov qword [rbp], r15
mov rax, qword [rbp]
mov qword [rbp + 0x1528], rax
movabs r12, 0x5d8e31a9870558e3
mov qword [rbp], r12
mov rax, qword [rbp]
mov qword [rbp + 0x1530], rax
movabs r13, 0xbb78b7c19ad39e0
mov qword [rbp], r13
mov rax, qword [rbp]
mov qword [rbp + 0x1538], rax
movabs rax, 0xac200d43f480f545
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x1540], rax
movabs rax, 0x54e72656db59f852
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x1548], rax
movabs rax, 0x9f3a80ddadba3207
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x1550], rax
movabs rax, 0xef4e350a857e314
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x1558], rax
movabs rax, 0x22d4dbd731751d59
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x1560], rax
movabs rax, 0xdd6796ba2b7a9a26
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x1568], rax
movabs rax, 0x3678fbe108e836eb
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x1570], rax
movabs rax, 0xc3edea94a4fac128
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x1578], rax
movabs rax, 0xc7875abb3f8508ad
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x1580], rax
movabs rax, 0xd41b0c6e247fe01a
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x1588], rax
movabs rax, 0xcca865f5b6549fcf
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x1590], rax
movabs rax, 0xe8bee6e80118dadc
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x1598], rax
movabs rax, 0x4ab21a6fe4511641
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x15a0], rax
movabs rax, 0x7ba66d27aa0d76e
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x15a8], rax
movabs rax, 0x11124359b2c77373
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x15b0], rax
movabs rax, 0xff19edaceecb21f0
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x15b8], rax
movabs rax, 0xc47b5af322e7a6d5
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x15c0], rax
mov qword [rbp], rcx
mov rax, qword [rbp]
mov qword [rbp + 0x15c8], rax
vmovdqu ymm0, ymmword [rbp + 0x40]
vpxor ymm1, ymm0, ymmword [rbp + 0x1520]
vmovdqa ymmword [rbp + 0x40], ymm1
vmovdqu ymm0, ymmword [rbp + 0x60]
vpxor ymm1, ymm0, ymmword [rbp + 0x1540]
vmovdqa ymmword [rbp + 0x60], ymm1
vmovdqu ymm0, ymmword [rbp + 0x80]
vpxor ymm1, ymm0, ymmword [rbp + 0x1560]
vmovdqa ymmword [rbp + 0x80], ymm1
vmovdqu ymm0, ymmword [rbp + 0xa0]
vpxor ymm1, ymm0, ymmword [rbp + 0x1580]
vmovdqa ymmword [rbp + 0xa0], ymm1
vmovdqu ymm0, ymmword [rbp + 0xc0]
vpxor ymm1, ymm0, ymmword [rbp + 0x15a0]
vmovdqa ymmword [rbp + 0xc0], ymm1
vmovdqa xmm0, xmmword [rbp + 0xe0]
vxorps xmm0, xmm0, xmmword [rbp + 0x15c0]
vmovdqa xmmword [rbp + 0xe0], xmm0
vxorps xmm0, xmm0, xmm0
vmovups xmmword [rbp + 0x158], xmm0
vxorps xmm1, xmm1, xmm1
vmovdqu xmmword [rbp + 0x168], xmm1
lea rax, [rbp + 0x40]
mov rbx, 0xffffffffffffffff
mov r8, rbx
vzeroupper
nop dword [rax + rax]
inc r8
cmp word [rax + r8*2], si
jne 0x1800059d0
lea rdx, [rbp + 0x40]
lea rcx, [rbp + 0x158]
call fcn.180013970
nop
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x120], xmm1
mov qword [rbp + 0x130], rsi
lea rdx, [rbp + 0x120]
lea rcx, [rbp + 0x158]
call fcn.180004cb0
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t___std::wcout]
test al, al
je 0x180005ea0
lea rdx, str.Arquivo_baixado_com_sucesso.
call fcn.1800123e0
lea rdx, [0x1800125c0]
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]
movabs rax, 0x6debbfe30dcf2e72
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x10], rax
movabs rax, 0xe276e446b81994b7
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x18], rax
movabs rax, 0x5dda31f587765894
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x20], rax
movabs rax, 0xbb78b0c19c03985
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x28], rax
mov qword [rbp], r14
mov rax, qword [rbp]
mov qword [rbp + 0x15e0], rax
mov qword [rbp], r15
mov rax, qword [rbp]
mov qword [rbp + 0x15e8], rax
mov qword [rbp], r12
mov rax, qword [rbp]
mov qword [rbp + 0x15f0], rax
mov qword [rbp], r13
mov rax, qword [rbp]
mov qword [rbp + 0x15f8], rax
vmovdqu ymm0, ymmword [rbp + 0x10]
vpxor ymm1, ymm0, ymmword [rbp + 0x15e0]
vmovdqu ymmword [rbp + 0x10], ymm1
vxorps xmm0, xmm0, xmm0
vmovups xmmword [rbp + 0x138], xmm0
vxorps xmm1, xmm1, xmm1
vmovdqu xmmword [rbp + 0x148], xmm1
lea rax, [rbp + 0x10]
mov r8, rbx
vzeroupper
inc r8
cmp word [rax + r8*2], 0
jne 0x180005b03
lea rdx, [rbp + 0x10]
lea rcx, [rbp + 0x138]
call fcn.180013970
nop
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [rbp + 0x1504], 0xffffffff
mov dword [rbp + 0x184], eax
mov edi, 1
mov ecx, edi
nop dword [rax]
mov edx, eax
shr edx, 0x1e
xor edx, eax
imul eax, edx, 0x6c078965
add eax, ecx
mov dword [rbp + rcx*4 + 0x184], eax
inc rcx
cmp rcx, 0x270
jb 0x180005b40
mov dword [rbp + 0x180], 0x270
lea rcx, [rbp + 0x180]
call fcn.180015930
mov ecx, eax
imul rdx, rcx, 0x186a0
cmp edx, 0x106df
ja 0x180005bad
nop dword [rax]
lea rcx, [rbp + 0x180]
call fcn.180015930
mov ecx, eax
imul rdx, rcx, 0x186a0
cmp edx, 0x106e0
jb 0x180005b90
shr rdx, 0x20
lea r9, [rbp + 0x138]
cmp qword [rbp + 0x150], 7
cmova r9, qword [rbp + 0x138]
movabs rax, 0x6dc8bfe30d862e14
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x10], rax
movabs rax, 0xe229e407b80794bd
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x18], rax
movabs rax, 0x5dfa3187876158da
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x20], rax
movabs rax, 0xbb78b7c19dd398d
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x28], rax
mov qword [rbp], r14
mov rax, qword [rbp]
mov qword [rbp + 0x1600], rax
mov qword [rbp], r15
mov rax, qword [rbp]
mov qword [rbp + 0x1608], rax
mov qword [rbp], r12
mov rax, qword [rbp]
mov qword [rbp + 0x1610], rax
mov qword [rbp], r13
mov rax, qword [rbp]
mov qword [rbp + 0x1618], rax
vmovdqu ymm0, ymmword [rbp + 0x10]
vpxor ymm1, ymm0, ymmword [rbp + 0x1600]
vmovdqu ymmword [rbp + 0x10], ymm1
mov dword [rsp + 0x20], edx
lea r8, [rbp + 0x10]
mov edx, 0x104
lea rcx, [rbp + 0x1620]
vzeroupper
call fcn.180002c30
xorps xmm0, xmm0
movups xmmword [rbp + 0x100], xmm0
mov qword [rbp + 0x110], rsi
mov qword [rbp + 0x118], rsi
lea rax, [rbp + 0x1620]
nop dword [rax]
inc rbx
cmp word [rax + rbx*2], 0
jne 0x180005cb0
mov r8, rbx
lea rdx, [rbp + 0x1620]
lea rcx, [rbp + 0x100]
call fcn.180013970
nop
cmp qword [rbp + 0x110], 0
jne 0x180005db1
lea rdx, str.Falha_ao_gerar_o_nome_do_arquivo_tempor
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t___std::wcout]
call fcn.1800123e0
lea rdx, [0x1800125c0]
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 rdx, qword [rbp + 0x118]
cmp rdx, 7
jbe 0x180005d49
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x100]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180005d44
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180005e30
call fcn.18011b8e4
mov qword [rbp + 0x110], rsi
mov qword [rbp + 0x118], 7
mov word [rbp + 0x100], si
mov rdx, qword [rbp + 0x150]
cmp rdx, 7
jbe 0x180005ebe
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x138]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180005da7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180005e92
call fcn.18011b8e4
jmp 0x180005ebe
lea rdx, [rbp + 0x100]
lea rcx, [rbp + 0x120]
call fcn.180005150
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t___std::wcout]
test al, al
lea rdx, str.Programa_executado_com_sucesso.
jne 0x180005ddd
lea rdx, str.Falha_ao_executar_o_programa.
call fcn.1800123e0
lea rdx, [0x1800125c0]
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 rdx, qword [rbp + 0x118]
cmp rdx, 7
jbe 0x180005e3c
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x100]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180005e37
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180005e37
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18011b8e4
mov qword [rbp + 0x110], rsi
mov qword [rbp + 0x118], 7
mov word [rbp + 0x100], si
mov rdx, qword [rbp + 0x150]
cmp rdx, 7
jbe 0x180005ebc
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x138]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180005e99
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180005e99
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18011b8e4
jmp 0x180005ebc
lea rdx, str.Falha_ao_baixar_o_arquivo.
call fcn.1800123e0
lea rdx, [0x1800125c0]
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]
mov edi, esi
mov rcx, qword [rbp + 0x120]
test rcx, rcx
je 0x180005f13
mov rdx, qword [rbp + 0x130]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x180005efc
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180005efc
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18011b8e4
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x120], xmm0
mov qword [rbp + 0x130], rsi
mov rdx, qword [rbp + 0x170]
cmp rdx, 7
jbe 0x180005f5c
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x158]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180005f57
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180005f57
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18011b8e4
mov eax, edi
mov rcx, qword [rbp + 0x1830]
xor rcx, rsp
call fcn.18011b440
lea r11, [rsp + 0x1890]
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