Function at 0x1400017e0
Capabilities:
Execute command

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
lea rbp, [rsp - 0x2710]
mov eax, 0x2810
call fcn.140004540
sub rsp, rax
mov rax, qword [0x140008040]
xor rax, rsp
mov qword [rbp + 0x2700], rax
lea rax, [rbp - 0xf]
mov ecx, 0x64
nop word [rax + rax]
mov dword [rax - 1], 0x20202020
mov dword [rax + 3], 0x20202020
mov dword [rax + 7], 0x20202020
mov dword [rax + 0xb], 0x20202020
mov dword [rax + 0xf], 0x20202020
mov dword [rax + 0x13], 0x20202020
mov dword [rax + 0x17], 0x20202020
mov dword [rax + 0x1b], 0x20202020
mov dword [rax + 0x1f], 0x20202020
mov dword [rax + 0x23], 0x20202020
mov dword [rax + 0x27], 0x20202020
mov dword [rax + 0x2b], 0x20202020
mov dword [rax + 0x2f], 0x20202020
mov dword [rax + 0x33], 0x20202020
mov dword [rax + 0x37], 0x20202020
mov dword [rax + 0x3b], 0x20202020
mov dword [rax + 0x3f], 0x20202020
mov dword [rax + 0x43], 0x20202020
mov dword [rax + 0x47], 0x20202020
mov dword [rax + 0x4b], 0x20202020
mov dword [rax + 0x4f], 0x20202020
mov dword [rax + 0x53], 0x20202020
mov dword [rax + 0x57], 0x20202020
mov dword [rax + 0x5b], 0x20202020
mov dword [rax + 0x5f], 0x20202020
lea rax, [rax + 0x64]
sub rcx, 1
jne 0x140001830
xorps xmm0, xmm0
movups xmmword [rbp - 0x40], xmm0
xor r14d, r14d
mov qword [rbp - 0x30], r14
mov qword [rbp - 0x28], 0xf
mov byte [rbp - 0x40], r14b
mov dword [rsp + 0x6c], r14d
mov dword [rsp + 0x70], r14d
mov eax, 1
mov qword [rbp - 0x78], rax
mov dword [rsp + 0x7c], eax
mov r12d, 5
mov dword [rsp + 0x74], r12d
mov dword [rsp + 0x68], r12d
mov r13d, 0xfa
mov dword [rsp + 0x78], r13d
lea rdx, str.Enter_a_blank_for_all_options_to_get_default_settings._nUsing_invalid_values_uses_defualt_settings._nWarning:_if_you_make_a_large_box__zoom_out_or_it_wont_render_properly._n
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140002e10
lea rdx, str._nBox_width__must_be_between_2__
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140002e10
mov rcx, rax
mov edx, 0x64
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, [0x14000556c]
call fcn.140002e10
mov rbx, qword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
mov rax, qword [rbx]
movsxd rcx, dword [rax + 4]
add rcx, rbx
mov dl, 0xa
call qword [sym.imp.MSVCP140.dll_public:_char___cdecl_std::basic_ios_char__struct_std::char_traits_char__::widen_char_const___ptr64]
movzx r8d, al
lea rdx, [rbp - 0x40]
mov rcx, rbx
call fcn.140003320
movabs r15, 0x7fffffffffffffff
mov edx, 0x16
movabs rcx, 0x8000000000000000
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
lea rsi, [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova rsi, qword [rbp - 0x40]
mov rdi, qword [rbp - 0x30]
cmp rdi, r15
ja 0x140002d36
cmp rdi, 0xf
ja 0x140001a02
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], 0xf
movups xmm0, xmmword [rsi]
movups xmmword [rsp + 0x20], xmm0
jmp 0x140001a88
mov rbx, rdi
or rbx, 0xf
cmp rbx, r15
jbe 0x140001a17
mov rbx, r15
lea rax, [rcx + 0x27]
jmp 0x140001a43
cmp rbx, 0x16
cmovb rbx, rdx
lea rcx, [rbx + 1]
test rcx, rcx
jne 0x140001a2d
mov rax, r14
jmp 0x140001a6a
cmp rcx, 0x1000
jb 0x140001a65
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140002a26
mov rcx, rax
call fcn.140003604
mov rcx, rax
test rax, rax
je 0x140002a1f
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x140001a6a
call fcn.140003604
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], rbx
lea r8, [rdi + 1]
mov rdx, rsi
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [rsp + 0x20]
call fcn.140001600
test al, al
jne 0x140001c02
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x60], r14
lea r14, [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova r14, qword [rbp - 0x40]
mov rsi, qword [rbp - 0x30]
cmp rsi, r15
ja 0x140002d36
cmp rsi, 0xf
ja 0x140001aef
mov ebx, 0xf
mov qword [rsp + 0x60], rbx
movups xmm0, xmmword [r14]
movups xmmword [rsp + 0x48], xmm0
mov qword [rsp + 0x58], rsi
movq rdi, xmm0
jmp 0x140001b83
mov rbx, rsi
or rbx, 0xf
cmp rbx, r15
jbe 0x140001b0e
mov rbx, r15
movabs rax, 0x8000000000000000
add rax, 0x27
jmp 0x140001b3e
cmp rbx, 0x16
mov eax, 0x16
cmovb rbx, rax
lea rcx, [rbx + 1]
test rcx, rcx
jne 0x140001b28
xor edi, edi
jmp 0x140001b65
cmp rcx, 0x1000
jb 0x140001b5d
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140002a26
mov rcx, rax
call fcn.140003604
test rax, rax
je 0x140002a1f
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x140001b65
call fcn.140003604
mov rdi, rax
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x60], rbx
lea r8, [rsi + 1]
mov rdx, r14
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
xor r14d, r14d
xor r15d, r15d
test rsi, rsi
je 0x140001bbe
nop
lea rax, [rsp + 0x48]
cmp rbx, 0xf
cmova rax, rdi
movsx ecx, byte [rax + r15]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
test eax, eax
je 0x140001c6a
inc r14d
inc r15
movsxd rax, r14d
cmp rax, rsi
jb 0x140001b90
cmp rbx, 0xf
jbe 0x140001bf5
lea rdx, [rbx + 1]
mov rax, rdi
cmp rdx, 0x1000
jb 0x140001bed
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002a1f
mov rcx, rdi
call fcn.140003640
xor r14d, r14d
movabs r15, 0x7fffffffffffffff
lea rax, [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova rax, qword [rbp - 0x40]
movsx ecx, byte [rax]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isdigit]
mov esi, 0xa
test eax, eax
je 0x140001d16
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov rdi, rax
lea rbx, [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova rbx, qword [rbp - 0x40]
mov dword [rax], r14d
mov r8d, esi
lea rdx, [rbp - 0x48]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtol]
mov esi, eax
cmp rbx, qword [rbp - 0x48]
jne 0x140001ce5
lea rcx, str.invalid_stoi_argument
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xinvalid_argument_char_const____ptr64_]
int3
cmp rbx, 0xf
jbe 0x140001ca1
lea rdx, [rbx + 1]
mov rax, rdi
cmp rdx, 0x1000
jb 0x140001c99
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002a1f
mov rcx, rdi
call fcn.140003640
lea rdx, str._nEnter_an_integer_or_blank:
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140002e10
mov rbx, qword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
mov rax, qword [rbx]
movsxd rcx, dword [rax + 4]
add rcx, rbx
mov dl, 0xa
call qword [sym.imp.MSVCP140.dll_public:_char___cdecl_std::basic_ios_char__struct_std::char_traits_char__::widen_char_const___ptr64]
movzx r8d, al
lea rdx, [rbp - 0x40]
mov rcx, rbx
call fcn.140003320
xor r14d, r14d
jmp 0x1400019a5
cmp dword [rdi], 0x22
jne 0x140001cf8
lea rcx, str.stoi_argument_out_of_range
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const____ptr64_]
int3
cmp esi, 0x64
jle 0x140001d07
mov dword [rsp + 0x68], 0x64
jmp 0x140001d16
cmp esi, 2
mov eax, 2
cmovl esi, eax
mov dword [rsp + 0x68], esi
lea rdx, str._nBox_height__must_be_between_2__
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140002e10
mov rcx, rax
mov edx, 0x64
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, [0x14000556c]
call fcn.140002e10
mov rbx, qword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
mov rax, qword [rbx]
movsxd rcx, dword [rax + 4]
add rcx, rbx
mov dl, 0xa
call qword [sym.imp.MSVCP140.dll_public:_char___cdecl_std::basic_ios_char__struct_std::char_traits_char__::widen_char_const___ptr64]
movzx r8d, al
lea rdx, [rbp - 0x40]
mov rcx, rbx
call fcn.140003320
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x60], r14
lea rsi, [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova rsi, qword [rbp - 0x40]
mov r14, qword [rbp - 0x30]
cmp r14, r15
ja 0x140002d36
cmp r14, 0xf
ja 0x140001dc4
mov ebx, 0xf
mov qword [rsp + 0x60], rbx
movups xmm0, xmmword [rsi]
movups xmmword [rsp + 0x48], xmm0
mov qword [rsp + 0x58], r14
movq rdi, xmm0
jmp 0x140001e58
mov rbx, r14
or rbx, 0xf
cmp rbx, r15
jbe 0x140001de3
mov rbx, r15
movabs rax, 0x8000000000000000
add rax, 0x27
jmp 0x140001e13
cmp rbx, 0x16
mov eax, 0x16
cmovb rbx, rax
lea rcx, [rbx + 1]
test rcx, rcx
jne 0x140001dfd
xor edi, edi
jmp 0x140001e3a
cmp rcx, 0x1000
jb 0x140001e32
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140002a26
mov rcx, rax
call fcn.140003604
test rax, rax
je 0x140002a1f
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x140001e3a
call fcn.140003604
mov rdi, rax
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x60], rbx
lea r8, [r14 + 1]
mov rdx, rsi
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
xor esi, esi
xor r15d, r15d
test r14, r14
je 0x140001e8f
lea rax, [rsp + 0x48]
cmp rbx, 0xf
cmova rax, rdi
movsx ecx, byte [r15 + rax]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isdigit]
test eax, eax
je 0x140001f3a
inc esi
inc r15
movsxd rax, esi
cmp rax, r14
jb 0x140001e62
cmp rbx, 0xf
jbe 0x140001ec6
lea rdx, [rbx + 1]
mov rax, rdi
cmp rdx, 0x1000
jb 0x140001ebe
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002a1f
mov rcx, rdi
call fcn.140003640
movabs r15, 0x7fffffffffffffff
lea rax, [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova rax, qword [rbp - 0x40]
movsx ecx, byte [rax]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isdigit]
test eax, eax
je 0x1400020dc
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov rdi, rax
lea rbx, [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova rbx, qword [rbp - 0x40]
mov dword [rax], 0
mov r8d, 0xa
lea rdx, [rbp - 0x48]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtol]
mov r12d, eax
cmp rbx, qword [rbp - 0x48]
jne 0x1400020a9
lea rcx, str.invalid_stoi_argument
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xinvalid_argument_char_const____ptr64_]
int3
cmp rbx, 0xf
jbe 0x140001f71
lea rdx, [rbx + 1]
mov rax, rdi
cmp rdx, 0x1000
jb 0x140001f69
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002a1f
mov rcx, rdi
call fcn.140003640
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
lea rsi, [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova rsi, qword [rbp - 0x40]
mov rdi, qword [rbp - 0x30]
movabs r15, 0x7fffffffffffffff
cmp rdi, r15
ja 0x140002d36
cmp rdi, 0xf
ja 0x140001fbf
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], 0xf
movups xmm0, xmmword [rsi]
movups xmmword [rsp + 0x20], xmm0
jmp 0x140002053
mov rbx, rdi
or rbx, 0xf
cmp rbx, r15
jbe 0x140001fde
mov rbx, r15
movabs rax, 0x8000000000000000
add rax, 0x27
jmp 0x14000200e
cmp rbx, 0x16
mov eax, 0x16
cmovb rbx, rax
lea rcx, [rbx + 1]
test rcx, rcx
jne 0x140001ff8
xor eax, eax
jmp 0x140002035
cmp rcx, 0x1000
jb 0x140002030
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140002a26
mov rcx, rax
call fcn.140003604
mov rcx, rax
test rax, rax
je 0x140002a1f
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x140002035
call fcn.140003604
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], rbx
lea r8, [rdi + 1]
mov rdx, rsi
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [rsp + 0x20]
call fcn.1400016f0
test al, al
jne 0x140001ed0
lea rdx, str._nEnter_an_integer_or_blank:
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140002e10
mov rbx, qword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
mov rax, qword [rbx]
movsxd rcx, dword [rax + 4]
add rcx, rbx
mov dl, 0xa
call qword [sym.imp.MSVCP140.dll_public:_char___cdecl_std::basic_ios_char__struct_std::char_traits_char__::widen_char_const___ptr64]
movzx r8d, al
lea rdx, [rbp - 0x40]
mov rcx, rbx
call fcn.140003320
xor r14d, r14d
jmp 0x140001d70
cmp dword [rdi], 0x22
jne 0x1400020bc
lea rcx, str.stoi_argument_out_of_range
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const____ptr64_]
int3
cmp r12d, 0x64
jle 0x1400020ca
mov r12d, 0x64
jmp 0x1400020d7
cmp r12d, 2
mov eax, 2
cmovl r12d, eax
mov dword [rsp + 0x74], r12d
lea rdx, str._nBall_start_x_position__must_be_between_0__
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140002e10
mov rcx, rax
mov r14d, dword [rsp + 0x68]
mov edx, r14d
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, [0x14000556c]
call fcn.140002e10
mov rbx, qword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
mov rax, qword [rbx]
movsxd rcx, dword [rax + 4]
mov dl, 0xa
add rcx, rbx
call qword [sym.imp.MSVCP140.dll_public:_char___cdecl_std::basic_ios_char__struct_std::char_traits_char__::widen_char_const___ptr64]
movzx r8d, al
lea rdx, [rbp - 0x40]
mov rcx, rbx
call fcn.140003320
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
lea rsi, [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova rsi, qword [rbp - 0x40]
mov rdi, qword [rbp - 0x30]
cmp rdi, r15
ja 0x140002d36
cmp rdi, 0xf
ja 0x14000217c
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], 0xf
movups xmm0, xmmword [rsi]
movups xmmword [rsp + 0x20], xmm0
jmp 0x140002210
mov rbx, rdi
or rbx, 0xf
cmp rbx, r15
jbe 0x14000219b
mov rbx, r15
movabs rax, 0x8000000000000000
add rax, 0x27
jmp 0x1400021cb
cmp rbx, 0x16
mov eax, 0x16
cmovb rbx, rax
lea rcx, [rbx + 1]
test rcx, rcx
jne 0x1400021b5
xor eax, eax
jmp 0x1400021f2
cmp rcx, 0x1000
jb 0x1400021ed
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140002a26
mov rcx, rax
call fcn.140003604
mov rcx, rax
test rax, rax
je 0x140002a1f
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x1400021f2
call fcn.140003604
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], rbx
lea r8, [rdi + 1]
mov rdx, rsi
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [rsp + 0x20]
call fcn.140001600
test al, al
jne 0x14000231b
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
lea rsi, [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova rsi, qword [rbp - 0x40]
mov rdi, qword [rbp - 0x30]
cmp rdi, r15
ja 0x140002d36
cmp rdi, 0xf
ja 0x140002266
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x60], 0xf
movups xmm0, xmmword [rsi]
movups xmmword [rsp + 0x48], xmm0
jmp 0x1400022fa
mov rbx, rdi
or rbx, 0xf
cmp rbx, r15
jbe 0x140002285
mov rbx, r15
movabs rax, 0x8000000000000000
add rax, 0x27
jmp 0x1400022b5
cmp rbx, 0x16
mov eax, 0x16
cmovb rbx, rax
lea rcx, [rbx + 1]
test rcx, rcx
jne 0x14000229f
xor eax, eax
jmp 0x1400022dc
cmp rcx, 0x1000
jb 0x1400022d7
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140002a26
mov rcx, rax
call fcn.140003604
mov rcx, rax
test rax, rax
je 0x140002a1f
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x1400022dc
call fcn.140003604
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x60], rbx
lea r8, [rdi + 1]
mov rdx, rsi
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [rsp + 0x48]
call fcn.1400016f0
test al, al
jne 0x14000231b
lea rdx, str._nEnter_an_integer_or_blank:
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
jmp 0x14000210a
lea rax, [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova rax, qword [rbp - 0x40]
movsx ecx, byte [rax]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isdigit]
test eax, eax
je 0x14000239b
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov rdi, rax
lea rbx, [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova rbx, qword [rbp - 0x40]
mov dword [rax], 0
mov r8d, 0xa
lea rdx, [rbp - 0x48]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtol]
cmp rbx, qword [rbp - 0x48]
jne 0x14000237a
lea rcx, str.invalid_stoi_argument
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xinvalid_argument_char_const____ptr64_]
int3
cmp dword [rdi], 0x22
jne 0x14000238d
lea rcx, str.stoi_argument_out_of_range
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const____ptr64_]
int3
cmp eax, r14d
jle 0x140002439
mov dword [rsp + 0x70], r14d
xor r14d, r14d
lea rdx, str._nBall_start_y_position__must_be_between_0__
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140002e10
mov rcx, rax
mov edx, r12d
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, [0x14000556c]
call fcn.140002e10
mov rbx, qword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
mov rax, qword [rbx]
movsxd rcx, dword [rax + 4]
mov dl, 0xa
add rcx, rbx
call qword [sym.imp.MSVCP140.dll_public:_char___cdecl_std::basic_ios_char__struct_std::char_traits_char__::widen_char_const___ptr64]
movzx r8d, al
lea rdx, [rbp - 0x40]
mov rcx, rbx
call fcn.140003320
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
lea rsi, [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova rsi, qword [rbp - 0x40]
mov rdi, qword [rbp - 0x30]
cmp rdi, r15
ja 0x140002d36
cmp rdi, 0xf
ja 0x14000244e
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], 0xf
movups xmm0, xmmword [rsi]
movups xmmword [rsp + 0x20], xmm0
jmp 0x1400024e3
test eax, eax
mov r14d, 0
cmovs eax, r14d
mov dword [rsp + 0x70], eax
jmp 0x14000239e
mov rbx, rdi
or rbx, 0xf
cmp rbx, r15
jbe 0x14000246d
mov rbx, r15
movabs rax, 0x8000000000000000
add rax, 0x27
jmp 0x14000249e
cmp rbx, 0x16
mov eax, 0x16
cmovb rbx, rax
lea rcx, [rbx + 1]
test rcx, rcx
jne 0x140002488
mov rax, r14
jmp 0x1400024c5
cmp rcx, 0x1000
jb 0x1400024c0
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140002a26
mov rcx, rax
call fcn.140003604
mov rcx, rax
test rax, rax
je 0x140002a1f
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x1400024c5
call fcn.140003604
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], rbx
lea r8, [rdi + 1]
mov rdx, rsi
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [rsp + 0x20]
call fcn.140001600
test al, al
jne 0x1400025ef
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
lea rsi, [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova rsi, qword [rbp - 0x40]
mov rdi, qword [rbp - 0x30]
cmp rdi, r15
ja 0x140002d36
cmp rdi, 0xf
ja 0x140002539
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x60], 0xf
movups xmm0, xmmword [rsi]
movups xmmword [rsp + 0x48], xmm0
jmp 0x1400025ce
mov rbx, rdi
or rbx, 0xf
cmp rbx, r15
jbe 0x140002558
mov rbx, r15
movabs rax, 0x8000000000000000
add rax, 0x27
jmp 0x140002589
cmp rbx, 0x16
mov eax, 0x16
cmovb rbx, rax
lea rcx, [rbx + 1]
test rcx, rcx
jne 0x140002573
mov rax, r14
jmp 0x1400025b0
cmp rcx, 0x1000
jb 0x1400025ab
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140002a26
mov rcx, rax
call fcn.140003604
mov rcx, rax
test rax, rax
je 0x140002a1f
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x1400025b0
call fcn.140003604
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x60], rbx
lea r8, [rdi + 1]
mov rdx, rsi
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [rsp + 0x48]
call fcn.1400016f0
test al, al
jne 0x1400025ef
lea rdx, str.Enter_an_integer_or_blank:
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
jmp 0x1400023c7
lea rax, [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova rax, qword [rbp - 0x40]
movsx ecx, byte [rax]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isdigit]
test eax, eax
je 0x140002674
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov rdi, rax
lea rbx, [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova rbx, qword [rbp - 0x40]
mov dword [rax], r14d
mov r8d, 0xa
lea rdx, [rbp - 0x48]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtol]
cmp rbx, qword [rbp - 0x48]
jne 0x14000264b
lea rcx, str.invalid_stoi_argument
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xinvalid_argument_char_const____ptr64_]
int3
cmp dword [rdi], 0x22
jne 0x14000265e
lea rcx, str.stoi_argument_out_of_range
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const____ptr64_]
int3
cmp eax, r12d
jle 0x14000266a
mov dword [rsp + 0x6c], r12d
jmp 0x140002674
test eax, eax
cmovs eax, r14d
mov dword [rsp + 0x6c], eax
lea rdx, str._nShow_ball_trail___y_n_:
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140002e10
mov rbx, qword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
mov rax, qword [rbx]
movsxd rcx, dword [rax + 4]
mov dl, 0xa
add rcx, rbx
call qword [sym.imp.MSVCP140.dll_public:_char___cdecl_std::basic_ios_char__struct_std::char_traits_char__::widen_char_const___ptr64]
movzx r8d, al
lea rdx, [rbp - 0x40]
mov rcx, rbx
call fcn.140003320
lea rax, [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova rax, qword [rbp - 0x40]
movsx ecx, byte [rax]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_tolower]
cmp eax, 0x79
je 0x1400027e3
lea rax, [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova rax, qword [rbp - 0x40]
movsx ecx, byte [rax]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_tolower]
cmp eax, 0x6e
je 0x1400027e3
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
lea rsi, [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova rsi, qword [rbp - 0x40]
mov rdi, qword [rbp - 0x30]
cmp rdi, r15
ja 0x140002d36
cmp rdi, 0xf
ja 0x140002734
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], 0xf
movups xmm0, xmmword [rsi]
movups xmmword [rsp + 0x20], xmm0
jmp 0x1400027c9
mov rbx, rdi
or rbx, 0xf
cmp rbx, r15
jbe 0x140002753
mov rbx, r15
movabs rax, 0x8000000000000000
add rax, 0x27
jmp 0x140002784
cmp rbx, 0x16
mov eax, 0x16
cmovb rbx, rax
lea rcx, [rbx + 1]
test rcx, rcx
jne 0x14000276e
mov rax, r14
jmp 0x1400027ab
cmp rcx, 0x1000
jb 0x1400027a6
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140002a26
mov rcx, rax
call fcn.140003604
mov rcx, rax
test rax, rax
je 0x140002a1f
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x1400027ab
call fcn.140003604
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], rbx
lea r8, [rdi + 1]
mov rdx, rsi
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [rsp + 0x20]
call fcn.1400016f0
test al, al
jne 0x1400027e3
lea rdx, str._nEnter_yes___no:
jmp 0x14000267b
lea rax, [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova rax, qword [rbp - 0x40]
movsx ecx, byte [rax]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_tolower]
mov ecx, 0x20
mov edx, 0x2d
cmp eax, 0x6e
cmovne ecx, edx
mov dword [rbp - 0x80], ecx
lea rdx, str._nSimulation_speed__in_milliseconds__must_be_between_10___5000_:
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140002e10
mov rbx, qword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
mov rax, qword [rbx]
movsxd rcx, dword [rax + 4]
mov dl, 0xa
add rcx, rbx
call qword [sym.imp.MSVCP140.dll_public:_char___cdecl_std::basic_ios_char__struct_std::char_traits_char__::widen_char_const___ptr64]
movzx r8d, al
lea rdx, [rbp - 0x40]
mov rcx, rbx
call fcn.140003320
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
lea rsi, [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova rsi, qword [rbp - 0x40]
mov rdi, qword [rbp - 0x30]
cmp rdi, r15
ja 0x140002d36
cmp rdi, 0xf
ja 0x14000288d
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], 0xf
movups xmm0, xmmword [rsi]
movups xmmword [rsp + 0x20], xmm0
jmp 0x140002922
mov rbx, rdi
or rbx, 0xf
cmp rbx, r15
jbe 0x1400028ac
mov rbx, r15
movabs rax, 0x8000000000000000
add rax, 0x27
jmp 0x1400028dd
cmp rbx, 0x16
mov eax, 0x16
cmovb rbx, rax
lea rcx, [rbx + 1]
test rcx, rcx
jne 0x1400028c7
mov rax, r14
jmp 0x140002904
cmp rcx, 0x1000
jb 0x1400028ff
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140002a26
mov rcx, rax
call fcn.140003604
mov rcx, rax
test rax, rax
je 0x140002a1f
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x140002904
call fcn.140003604
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], rbx
lea r8, [rdi + 1]
mov rdx, rsi
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [rsp + 0x20]
call fcn.140001600
test al, al
jne 0x140002a2c
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
lea rsi, [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova rsi, qword [rbp - 0x40]
mov rdi, qword [rbp - 0x30]
cmp rdi, r15
ja 0x140002d36
cmp rdi, 0xf
ja 0x140002978
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x60], 0xf
movups xmm0, xmmword [rsi]
movups xmmword [rsp + 0x48], xmm0
jmp 0x140002a05
mov rbx, rdi
or rbx, 0xf
cmp rbx, r15
jbe 0x140002997
mov rbx, r15
movabs rax, 0x8000000000000000
add rax, 0x27
jmp 0x1400029c4
cmp rbx, 0x16
mov eax, 0x16
cmovb rbx, rax
lea rcx, [rbx + 1]
test rcx, rcx
jne 0x1400029b2
mov rax, r14
jmp 0x1400029e7
cmp rcx, 0x1000
jb 0x1400029e2
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140002a26
mov rcx, rax
call fcn.140003604
mov rcx, rax
test rax, rax
je 0x140002a1f
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x1400029e7
call fcn.140003604
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x60], rbx
lea r8, [rdi + 1]
mov rdx, rsi
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [rsp + 0x48]
call fcn.1400016f0
test al, al
jne 0x140002a2c
lea rdx, str.Enter_an_integer_or_blank:
jmp 0x140002814
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140001100
int3
lea rax, [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova rax, qword [rbp - 0x40]
movsx ecx, byte [rax]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isdigit]
test eax, eax
je 0x140002abb
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov rdi, rax
lea rbx, [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova rbx, qword [rbp - 0x40]
mov dword [rax], r14d
mov esi, 0xa
mov r8d, esi
lea rdx, [rbp - 0x48]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtol]
cmp rbx, qword [rbp - 0x48]
jne 0x140002a8a
lea rcx, str.invalid_stoi_argument
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xinvalid_argument_char_const____ptr64_]
int3
cmp dword [rdi], 0x22
jne 0x140002a9d
lea rcx, str.stoi_argument_out_of_range
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const____ptr64_]
int3
mov r13d, 0x1388
mov dword [rsp + 0x78], r13d
cmp eax, r13d
jg 0x140002abb
mov r13d, eax
cmp eax, esi
cmovl r13d, esi
mov dword [rsp + 0x78], r13d
mov ecx, 0xfffffff5
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov rbx, rax
lea rdx, [rbp - 0x20]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetConsoleCursorInfo]
mov dword [rbp - 0x1c], r14d
lea rdx, [rbp - 0x20]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorInfo]
lea rcx, [0x1400056e4]
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
movsxd r11, dword [rsp + 0x6c]
mov r15, r11
movsxd rdi, dword [rsp + 0x70]
mov r12, rdi
mov r10d, 1
mov r14d, r10d
mov esi, r10d
mov r9d, dword [rsp + 0x74]
dec r9d
mov dword [rbp - 0x48], r9d
mov r8d, dword [rsp + 0x68]
dec r8d
mov dword [rbp - 0x7c], r8d
movsxd rax, r13d
imul rbx, rax, 0xf4240
mov qword [rsp + 0x40], rbx
movabs r13, 0x7fffffffffffffff
sub r13, rbx
mov qword [rbp - 0x50], r13
nop dword [rax + rax]
mov rcx, r12
mov rdx, r15
lea eax, [r10 + r11]
cmp eax, r9d
jg 0x140002b63
test eax, eax
jns 0x140002b6d
neg r10d
mov qword [rbp - 0x78], r10
neg r14
add r11d, r10d
mov dword [rsp + 0x6c], r11d
add r15, r14
mov qword [rbp - 0x60], r15
mov r9d, dword [rsp + 0x7c]
lea eax, [r9 + rdi]
cmp eax, r8d
jg 0x140002b8e
test eax, eax
jns 0x140002b99
neg r9d
mov dword [rsp + 0x7c], r9d
neg rsi
add edi, r9d
mov dword [rsp + 0x70], edi
add r12, rsi
mov qword [rbp - 0x58], r12
imul rax, r15, 0x64
add rax, r12
mov byte [rbp + rax - 0x10], 0x4f
imul rax, rdx, 0x64
add rax, rcx
mov ecx, dword [rbp - 0x80]
mov byte [rbp + rax - 0x10], cl
mov r8d, dword [rsp + 0x68]
mov edx, dword [rsp + 0x74]
lea rcx, [rbp - 0x10]
call fcn.1400012a0
lea rcx, [rbp - 0x70]
call fcn.1400011c0
mov rdi, qword [rbp - 0x70]
mov ecx, dword [rsp + 0x78]
test ecx, ecx
jle 0x140002bfc
cmp rdi, r13
jge 0x140002bf2
add rdi, rbx
jmp 0x140002bfc
movabs rdi, 0x7fffffffffffffff
movabs r13, 0x4e94914f0000
movabs r15, 0x431bde82d7b634db
movabs r12, 0xb2f4fc0794908cf3
nop word [rax + rax]
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
mov rcx, rax
cmp rbx, 0x989680
jne 0x140002c41
imul rax, rcx, 0x64
jmp 0x140002cb2
cmp rbx, 0x16e3600
jne 0x140002c94
mov rax, r12
imul rcx
lea r8, [rcx + rdx]
sar r8, 0x18
mov rax, r8
shr rax, 0x3f
add r8, rax
imul rax, r8, 0x16e3600
sub rcx, rax
imul rcx, rcx, 0x3b9aca00
mov rax, r12
imul rcx
lea rax, [rcx + rdx]
sar rax, 0x18
mov rcx, rax
shr rcx, 0x3f
add rax, rcx
imul rcx, r8, 0x3b9aca00
jmp 0x140002caf
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
imul rcx, rcx, 0x3b9aca00
add rax, rcx
cmp rax, rdi
jge 0x140002d0b
mov rcx, rdi
sub rcx, rax
cmp rcx, r13
jle 0x140002cd1
mov ecx, 0x5265c00
call sub.KERNEL32.dll_Sleep
jmp 0x140002c20
mov rax, r15
imul rcx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rax, rdx, 0xf4240
cmp rax, rcx
jge 0x140002cff
lea rcx, [rdx + 1]
call sub.KERNEL32.dll_Sleep
jmp 0x140002c20
mov ecx, edx
call sub.KERNEL32.dll_Sleep
jmp 0x140002c20
mov r15, qword [rbp - 0x60]
mov r12, qword [rbp - 0x58]
mov r13, qword [rbp - 0x50]
mov rbx, qword [rsp + 0x40]
mov r8d, dword [rbp - 0x7c]
mov r9d, dword [rbp - 0x48]
mov r10, qword [rbp - 0x78]
mov r11d, dword [rsp + 0x6c]
mov edi, dword [rsp + 0x70]
jmp 0x140002b50
call fcn.1400011a0
int3