Function at 0x140001300
Capabilities:
Encode data using xor
Execute command
Generate random numbers using a mersenne twister

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r12
push rbp
push r14
push r15
lea rbp, [rsp - 0x12f0]
mov eax, 0x13f0
call fcn.140002ca0
sub rsp, rax
mov rax, qword [0x140005040]
xor rax, rsp
mov qword [rbp + 0x12e0], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x40], 0xf
mov byte [rsp + 0x28], 0
mov r15d, 0x3e8
lea r12, str.It_seems_that_you_guessed_wrong._Better_luck_next_time__n
nop dword [rax + rax]
lea rcx, [0x140003414]
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
mov edx, r15d
lea rcx, str.Balance:__d_n
call fcn.140001020
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [rbp + 0x12d4], 0xffffffff
mov dword [rsp + 0x54], eax
mov edx, 1
nop word [rax + rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rsp + rdx*4 + 0x54], eax
inc rdx
cmp rdx, 0x270
jb 0x1400013b0
mov dword [rsp + 0x50], 0x270
lea rcx, [rsp + 0x50]
call fcn.140001c90
mov ecx, eax
imul rdi, rcx, 0xb
cmp edi, 3
ja 0x140001405
nop dword [rax]
lea rcx, [rsp + 0x50]
call fcn.140001c90
mov ecx, eax
imul rdi, rcx, 0xb
cmp edi, 4
jb 0x1400013f0
shr rdi, 0x20
lea rcx, str.Please_enter_the_amount_of_money_you_would_like_to_wager:_n
call fcn.140001020
lea rdx, [rsp + 0x28]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
call fcn.140001810
lea rsi, [rsp + 0x28]
mov r8, qword [rsp + 0x40]
cmp r8, 0xf
seta cl
mov rdx, qword [rsp + 0x28]
cmova rsi, rdx
mov r9, qword [rsp + 0x38]
add rsi, r9
lea rbx, [rsp + 0x28]
test cl, cl
cmovne rbx, rdx
cmp rbx, rsi
je 0x140001484
nop dword [rax + rax]
movsx ecx, byte [rbx]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isalpha]
test eax, eax
jne 0x140001475
inc rbx
cmp rbx, rsi
jne 0x140001460
mov r8, qword [rsp + 0x40]
mov r9, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x28]
lea rax, [rsp + 0x28]
cmp r8, 0xf
seta r10b
cmova rax, rdx
add rax, r9
cmp rbx, rax
je 0x1400014b9
lea rcx, str.Please_enter_a_valid_wager_amount_using_only_digits._n
call fcn.140001020
mov ecx, 0x9c4
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x140001370
lea rcx, [rsp + 0x28]
test r10b, r10b
cmovne rcx, rdx
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
mov r14d, eax
cmp eax, r15d
jle 0x1400014dc
lea rcx, str.You_do_not_have_enough_money_to_wager_this_amount._n
jmp 0x1400014a4
cmp r14d, 0x32
jge 0x140001503
mov edx, 0x32
lea rcx, str.The_minimum_amount_is__d__please_try_again_with_a_valid_amount._n
call fcn.140001020
mov ecx, 0x9c4
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x140001370
xor edx, edx
lea r8d, [rdx + 0xa]
lea rcx, str.Place_your_guess_with_a_number_between__d_and__d:_n
call fcn.140001020
lea rdx, [rsp + 0x28]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
call fcn.140001810
lea rsi, [rsp + 0x28]
mov rdx, qword [rsp + 0x40]
cmp rdx, 0xf
seta cl
mov r8, qword [rsp + 0x28]
cmova rsi, r8
mov r9, qword [rsp + 0x38]
add rsi, r9
lea rbx, [rsp + 0x28]
test cl, cl
cmovne rbx, r8
cmp rbx, rsi
je 0x140001584
nop dword [rax + rax]
movsx ecx, byte [rbx]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isalpha]
test eax, eax
jne 0x140001575
inc rbx
cmp rbx, rsi
jne 0x140001560
mov rdx, qword [rsp + 0x40]
mov r9, qword [rsp + 0x38]
mov r8, qword [rsp + 0x28]
lea rax, [rsp + 0x28]
cmp rdx, 0xf
seta r10b
cmova rax, r8
add rax, r9
cmp rbx, rax
je 0x1400015a9
lea rcx, str.Please_enter_a_number_using_only_digits._n
jmp 0x1400014a4
lea rcx, [rsp + 0x28]
test r10b, r10b
cmovne rcx, r8
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
mov ebx, eax
mov edx, edi
lea rcx, str.The_random_number_was__d__n
call fcn.140001020
cmp ebx, edi
jne 0x1400015d4
add r15d, r14d
jmp 0x1400015d7
sub r15d, r14d
lea rcx, str.Congrats__You_won_the_wager__You_got_double_the_amount_of_money_back_that_you_wagered._n
cmp ebx, edi
cmovne rcx, r12
call fcn.140001020
lea rcx, str.Continue___y_n_:
call fcn.140001020
mov byte [rsp + 0x20], 0
lea rdx, [rsp + 0x20]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
call fcn.1400019f0
movsx ecx, byte [rsp + 0x20]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_tolower]
cmp eax, 0x6e
je 0x14000162b
mov ecx, 0x9c4
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x140001370
mov rdx, qword [rsp + 0x40]
cmp rdx, 0xf
jbe 0x14000166b
inc rdx
mov rcx, qword [rsp + 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140001666
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140001666
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140001ecc
xor eax, eax
mov rcx, qword [rbp + 0x12e0]
xor rcx, rsp
call fcn.140001e70
lea r11, [rsp + 0x13f0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret