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

Disassembly:
mov eax, 0x1578
call fcn.140002b00
sub rsp, rax
mov rax, qword [0x140005010]
xor rax, rsp
mov qword [rsp + 0x1560], rax
xor edx, edx
xor ecx, ecx
xor eax, eax
cmp rcx, 0x34
jae 0x140001964
mov dword [rsp + rcx*8 + 0x30], edx
mov dword [rsp + rcx*8 + 0x34], eax
inc rcx
inc eax
cmp eax, 4
jl 0x140001565
inc edx
cmp edx, 0xd
jl 0x140001563
mov rax, qword gs:[0x58]
mov qword [rsp + 0x1580], rbx
mov qword [rsp + 0x1570], rdi
mov edi, 4
add rdi, qword [rax]
nop dword [rax]
xor ebx, ebx
mov eax, dword [rdi]
cmp dword [0x140005648], eax
jle 0x1400015dd
lea rcx, [0x140005648]
call fcn.140001d9c
cmp dword [0x140005648], 0xffffffff
jne 0x1400015dd
lea rcx, [0x140005648]
call fcn.140001d30
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [rsp + 0x1554], 0xffffffff
mov ecx, 1
mov dword [rsp + 0x1d4], eax
nop word [rax + rax]
mov edx, eax
shr edx, 0x1e
xor edx, eax
imul eax, edx, 0x6c078965
add eax, ecx
mov dword [rsp + rcx*4 + 0x1d4], eax
inc rcx
cmp rcx, 0x270
jb 0x140001600
mov dword [rsp + 0x1d0], 0x270
lea r8, [rsp + 0x1d8]
mov r9d, 0x270
nop dword [rax + rax]
mov edx, dword [r8 - 4]
xor edx, dword [r8]
lea r8, [r8 + 4]
btr edx, 0x1f
xor edx, dword [r8 - 8]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x62c]
xor ecx, edx
mov dword [r8 + 0x9b8], ecx
sub r9, 1
jne 0x140001640
mov eax, dword [rsp + 0x1d0]
mov ecx, dword [rsp + rax*4 + 0x1d4]
mov eax, ecx
shr eax, 0xb
and eax, dword [rsp + 0x1554]
xor ecx, eax
mov eax, ecx
and eax, 0xff3a58ad
shl eax, 7
xor ecx, eax
mov eax, ecx
and eax, 0xffffdf8c
shl eax, 0xf
xor ecx, eax
mov eax, ecx
shr eax, 0x12
xor ecx, eax
mov eax, 0x4ec4ec4f
mul ecx
shr edx, 4
imul eax, edx, 0x34
sub ecx, eax
movsxd rdx, ecx
cmp rdx, 0x34
jae 0x14000195e
cmp rbx, 0x34
jae 0x14000196a
mov rax, qword [rsp + rbx*8 + 0x30]
mov rcx, qword [rsp + rdx*8 + 0x30]
mov qword [rsp + rbx*8 + 0x30], rcx
inc rbx
mov qword [rsp + rdx*8 + 0x30], rax
cmp rbx, 0x34
jl 0x1400015b2
lea rcx, [rsp + 0x30]
call section..text
test eax, eax
je 0x1400017e2
sub eax, 1
je 0x140001780
cmp eax, 1
jne 0x140001880
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, [0x140003334]
call fcn.140001a00
mov rcx, rax
mov edx, 0x21
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___int____ptr64]
mov rcx, rax
lea rdx, [0x140003330]
call fcn.140001a00
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, str.WHAT_THE_FUCK_ARE_YOU_PLAYING_AT__ARE_YOU_HAPPY_NOW___NOBODY_FUCKING_WON__NOBODY__FUCK_YOU__YOU_FUCKING_PIECE_OF_SHIT.
call fcn.140001a00
mov rcx, rax
lea rdx, [0x140001bd0]
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___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov ecx, 0x69
jmp 0x140001842
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, [0x140003334]
call fcn.140001a00
mov rcx, rax
mov edx, 0x1f
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___int____ptr64]
mov rcx, rax
lea rdx, [0x140003330]
call fcn.140001a00
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, str.You_lose__________
call fcn.140001a00
mov rcx, rax
lea rdx, [0x140001bd0]
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___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov ecx, 0x68
jmp 0x140001842
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, [0x140003334]
call fcn.140001a00
mov rcx, rax
mov edx, 0x20
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___int____ptr64]
mov rcx, rax
lea rdx, [0x140003330]
call fcn.140001a00
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, str.YOU_WIN____CONGRATULATION_________FUCK_YOU____FUCK_YOUR_FAMILY____FUCK_AMERICA____YOU_WIIIIIIIIIIIIIIIIIIIN_______________FUCK_YEAH____________
call fcn.140001a00
mov rcx, rax
lea rdx, [0x140001bd0]
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___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov ecx, 0x6a
mov r8d, 0x40005
mov rdx, rax
call qword [sym.imp.WINMM.dll_PlaySoundW]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, [0x140003334]
call fcn.140001a00
xor edx, edx
mov rcx, rax
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___int____ptr64]
mov rcx, rax
lea rdx, [0x140003330]
call fcn.140001a00
nop
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, str.Enter_y_if_you_want_play_again__or_n_for_exit_from_game
call fcn.140001a00
mov rcx, rax
lea rdx, [0x140001bd0]
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___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
lea rdx, [rsp + 0x20]
call fcn.140001c10
movzx ebx, byte [rsp + 0x20]
cmp bl, 0x79
je 0x1400015b0
cmp bl, 0x6e
je 0x1400018ef
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, str.Oops__incorrect_value__please_try_again
call fcn.140001a00
mov rcx, rax
lea rdx, [0x140001bd0]
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___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
cmp bl, 0x6e
jne 0x140001880
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, [0x140001bd0]
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___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov rcx, rax
lea rdx, str.please_enter_any_value
call fcn.140001a00
mov rcx, rax
lea rdx, [0x140001bd0]
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___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
lea rdx, [rsp + 0x24]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_istream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_istream_char__struct_std::char_traits_char__::operator___int____ptr64____ptr64]
mov rbx, qword [rsp + 0x1580]
xor eax, eax
mov rdi, qword [rsp + 0x1570]
mov rcx, qword [rsp + 0x1560]
xor rcx, rsp
call fcn.140001d10
add rsp, 0x1578
ret
call fcn.1400019b0
int3
call fcn.1400019b0
int3
call fcn.1400019b0
int3