Function at 0x140001990
Capabilities:
Execute command

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r12
push r13
push r15
sub rsp, 0x20
mov qword [rsp + 0x58], r14
call fcn.140001210
mov rbp, qword [0x1400060d0]
lea r15, [0x1400060b8]
mov rsi, qword [0x1400060b8]
lea r13, [0x140006780]
mov rdi, qword [0x1400060c8]
lea r12, [0x1400068ac]
cmp rbp, 0xf
mov rcx, r15
cmova rcx, rsi
cmp rdi, 2
jne 0x140001624
mov r8, rdi
lea rdx, [0x1400043fc]
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x140001624
mov r14d, dword [0x140006774]
sub r14d, 1
js 0x140001609
movsxd rax, r14d
imul rsi, rax, 0x1e
nop
movsxd rcx, dword [0x140006770]
lea rax, [rsi + rcx]
mov byte [rax + r13], 0x2e
mov eax, dword [0x140006774]
dec eax
cmp r14d, eax
je 0x140001577
lea rax, [rsi + rcx]
mov byte [rax + r13 + 0x1e], 0x31
lea rcx, [0x1400043f8]
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
call fcn.140001210
mov rdi, r13
nop dword [rax]
xor ebx, ebx
nop dword [rax]
nop word [rax + rax]
movzx edx, byte [rdi + rbx]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140002060
inc rbx
cmp rbx, 0x1e
jl 0x1400015a0
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, [0x140002230]
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]
add rdi, 0x1e
cmp rdi, r12
jl 0x140001590
mov ecx, 0x19
call qword [sym.imp.KERNEL32.dll_Sleep]
sub rsi, 0x1e
mov eax, r14d
sub r14d, 1
jns 0x140001550
mov rbp, qword [0x1400060d0]
mov rdi, qword [0x1400060c8]
mov rsi, qword [0x1400060b8]
jmp 0x14000160d
mov eax, dword [rsp + 0x50]
movsxd rbx, dword [0x140006770]
cdqe
imul rcx, rax, 0x1e
add rcx, rbx
mov byte [rcx + r13], 0x31
jmp 0x14000162a
mov ebx, dword [0x140006770]
cmp rbp, 0xf
mov rcx, r15
cmova rcx, rsi
cmp rdi, 4
jne 0x140001747
mov r8, rdi
lea rdx, str.DOWN
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x140001747
mov r14d, dword [0x140006774]
inc r14d
cmp r14d, 0xa
jge 0x140001732
movsxd rax, r14d
imul rsi, rax, 0x1e
movsxd rcx, ebx
lea rax, [rcx + rsi]
mov byte [rax + r13], 0x2e
mov eax, dword [0x140006774]
inc eax
cmp r14d, eax
je 0x140001694
lea rax, [rsi + rcx]
mov byte [rax + r13 - 0x1e], 0x31
lea rcx, [0x1400043f8]
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
call fcn.140001210
mov rdi, r13
nop dword [rax]
xor ebx, ebx
nop dword [rax]
nop word [rax + rax]
movzx edx, byte [rdi + rbx]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140002060
inc rbx
cmp rbx, 0x1e
jl 0x1400016c0
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, [0x140002230]
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]
add rdi, 0x1e
cmp rdi, r12
jl 0x1400016b0
mov ecx, 0x19
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ebx, dword [0x140006770]
mov eax, r14d
inc r14d
add rsi, 0x1e
cmp r14d, 0xa
jl 0x140001671
mov rbp, qword [0x1400060d0]
mov rdi, qword [0x1400060c8]
mov rsi, qword [0x1400060b8]
jmp 0x140001736
mov eax, dword [rsp + 0x50]
cdqe
imul rcx, rax, 0x1e
movsxd rax, ebx
add rcx, rax
mov byte [rcx + r13], 0x31
cmp rbp, 0xf
mov rcx, r15
cmova rcx, rsi
cmp rdi, 5
jne 0x14000186b
mov r8, rdi
lea rdx, str.RIGHT
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x14000186b
lea r14d, [rbx + 1]
cmp r14d, 0x1e
jge 0x140001851
movsxd rsi, r14d
nop dword [rax]
nop dword [rax + rax]
movsxd rax, dword [0x140006774]
imul rcx, rax, 0x1e
lea eax, [rbx + 1]
add rcx, rsi
mov byte [rcx + r13], 0x2e
cmp r14d, eax
je 0x1400017b1
mov byte [rcx + r13 - 1], 0x31
lea rcx, [0x1400043f8]
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
call fcn.140001210
mov rdi, r13
nop word [rax + rax]
xor ebx, ebx
nop dword [rax]
nop word [rax + rax]
movzx edx, byte [rdi + rbx]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140002060
inc rbx
cmp rbx, 0x1e
jl 0x1400017e0
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, [0x140002230]
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]
add rdi, 0x1e
cmp rdi, r12
jl 0x1400017d0
mov ecx, 0x19
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ebx, dword [0x140006770]
mov edx, r14d
inc r14d
inc rsi
cmp r14d, 0x1e
jl 0x140001790
mov rbp, qword [0x1400060d0]
mov rdi, qword [0x1400060c8]
mov rsi, qword [0x1400060b8]
jmp 0x140001855
mov edx, dword [rsp + 0x50]
movsxd rax, dword [0x140006774]
imul rcx, rax, 0x1e
movsxd rax, edx
add rcx, rax
mov byte [rcx + r13], 0x31
mov r14, qword [rsp + 0x58]
cmp rbp, 0xf
cmova r15, rsi
cmp rdi, 4
jne 0x140001970
mov r8, rdi
lea rdx, str.LEFT
mov rcx, r15
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x140001970
lea esi, [rbx - 1]
test esi, esi
js 0x140001956
movsxd rbp, esi
nop word [rax + rax]
movsxd rax, dword [0x140006774]
imul rdx, rax, 0x1e
lea eax, [rbx - 1]
add rdx, rbp
mov byte [rdx + r13], 0x2e
cmp esi, eax
je 0x1400018d0
mov byte [rdx + r13 + 1], 0x31
lea rcx, [0x1400043f8]
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
call fcn.140001210
mov rdi, r13
nop word [rax + rax]
xor ebx, ebx
nop dword [rax]
nop word [rax + rax]
movzx edx, byte [rdi + rbx]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140002060
inc rbx
cmp rbx, 0x1e
jl 0x140001900
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, [0x140002230]
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]
add rdi, 0x1e
cmp rdi, r12
jl 0x1400018f0
mov ecx, 0x19
call qword [sym.imp.KERNEL32.dll_Sleep]
dec rbp
mov edx, esi
sub esi, 1
js 0x14000195a
mov ebx, dword [0x140006770]
jmp 0x1400018b0
mov edx, dword [rsp + 0x50]
movsxd rax, dword [0x140006774]
imul rcx, rax, 0x1e
movsxd rax, edx
add rcx, rax
mov byte [rcx + r13], 0x31
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
add rsp, 0x20
pop r15
pop r13
pop r12
pop rdi
pop rsi
ret
sub rsp, 0x28
call qword [sym.imp.api_ms_win_crt_conio_l1_1_0.dll__getch]
cmp al, 0x20
jne 0x1400019a7
add rsp, 0x28
jmp 0x1400014c0
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x38], rbp
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x20], rdi
cmp al, 0x48
jne 0x140001aab
call fcn.140001210
movsxd rdx, dword [0x140006774]
lea rbx, [0x140006780]
movsxd r8, dword [0x140006770]
lea eax, [rdx - 1]
movsxd rcx, eax
imul rax, rcx, 0x1e
imul rcx, rdx, 0x1e
add rax, r8
mov byte [rax + rbx], 0x30
mov rax, qword [0x1400060d0]
add rcx, r8
mov byte [rcx + rbx], 0x31
cmp rax, 2
jb 0x140001a2f
mov qword [0x1400060c8], 2
lea rdi, [0x1400060b8]
cmp rax, 0xf
cmova rdi, qword [0x1400060b8]
mov word [rdi], 0x5055
mov byte [rdi + 2], 0
jmp 0x140001a40
lea r9, [0x1400043fc]
mov edx, 2
call fcn.140002440
lea rcx, [0x1400043f8]
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
call fcn.140001210
xor esi, esi
lea rbp, [0x1400068ac]
nop dword [rax + rax]
mov rdi, rsi
nop dword [rax]
nop word [rax + rax]
movzx edx, byte [rbx + rdi]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140002060
inc rdi
cmp rdi, 0x1e
jl 0x140001a70
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, [0x140002230]
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]
add rbx, 0x1e
cmp rbx, rbp
jl 0x140001a60
jmp 0x140001deb
cmp al, 0x50
jne 0x140001b9b
call fcn.140001210
movsxd rdx, dword [0x140006774]
lea rbx, [0x140006780]
movsxd r8, dword [0x140006770]
lea eax, [rdx + 1]
movsxd rcx, eax
imul rax, rcx, 0x1e
imul rcx, rdx, 0x1e
add rax, r8
mov byte [rax + rbx], 0x30
mov rax, qword [0x1400060d0]
add rcx, r8
mov byte [rcx + rbx], 0x31
cmp rax, 4
jb 0x140001b20
mov qword [0x1400060c8], 4
lea rdi, [0x1400060b8]
cmp rax, 0xf
cmova rdi, qword [0x1400060b8]
mov dword [rdi], 0x4e574f44
mov byte [rdi + 4], 0
jmp 0x140001b31
lea r9, str.DOWN
mov edx, 4
call fcn.140002440
lea rcx, [0x1400043f8]
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
call fcn.140001210
xor esi, esi
lea rbp, [0x1400068ac]
nop dword [rax]
mov rdi, rsi
nop dword [rax]
nop word [rax + rax]
movzx edx, byte [rbx + rdi]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140002060
inc rdi
cmp rdi, 0x1e
jl 0x140001b60
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, [0x140002230]
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]
add rbx, 0x1e
cmp rbx, rbp
jl 0x140001b50
jmp 0x140001deb
cmp al, 0x4d
jne 0x140001c9b
call fcn.140001210
movsxd rdx, dword [0x140006770]
lea rbx, [0x140006780]
movsxd r8, dword [0x140006774]
imul r9, r8, 0x1e
lea eax, [rdx + 1]
movsxd rcx, eax
add rcx, r9
lea rax, [r9 + rdx]
mov byte [rcx + rbx], 0x30
mov byte [rax + rbx], 0x31
mov rax, qword [0x1400060d0]
cmp rax, 5
jb 0x140001c1c
cmp rax, 0xf
mov qword [0x1400060c8], 5
lea rdi, [0x1400060b8]
mov r8d, 5
cmova rdi, qword [0x1400060b8]
lea rdx, str.RIGHT
mov rcx, rdi
call sub.VCRUNTIME140.dll_memmove
mov byte [rdi + 5], 0
jmp 0x140001c2d
lea r9, str.RIGHT
mov edx, 5
call fcn.140002440
lea rcx, [0x1400043f8]
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
call fcn.140001210
xor esi, esi
lea rbp, [0x1400068ac]
nop dword [rax + rax]
mov rdi, rsi
nop dword [rax]
nop word [rax + rax]
movzx edx, byte [rbx + rdi]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140002060
inc rdi
cmp rdi, 0x1e
jl 0x140001c60
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, [0x140002230]
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]
add rbx, 0x1e
cmp rbx, rbp
jl 0x140001c50
jmp 0x140001deb
cmp al, 0x4b
jne 0x140001d88
call fcn.140001210
movsxd rdx, dword [0x140006770]
lea rbx, [0x140006780]
movsxd r8, dword [0x140006774]
imul r9, r8, 0x1e
lea eax, [rdx - 1]
movsxd rcx, eax
add rcx, r9
lea rax, [r9 + rdx]
mov byte [rcx + rbx], 0x30
mov byte [rax + rbx], 0x31
mov rax, qword [0x1400060d0]
cmp rax, 4
jb 0x140001d0d
mov qword [0x1400060c8], 4
lea rdi, [0x1400060b8]
cmp rax, 0xf
cmova rdi, qword [0x1400060b8]
mov dword [rdi], 0x5446454c
mov byte [rdi + 4], 0
jmp 0x140001d1e
lea r9, str.LEFT
mov edx, 4
call fcn.140002440
lea rcx, [0x1400043f8]
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
call fcn.140001210
xor esi, esi
lea rbp, [0x1400068ac]
nop dword [rax]
mov rdi, rsi
nop dword [rax]
nop word [rax + rax]
movzx edx, byte [rbx + rdi]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140002060
inc rdi
cmp rdi, 0x1e
jl 0x140001d50
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, [0x140002230]
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]
add rbx, 0x1e
cmp rbx, rbp
jl 0x140001d40
jmp 0x140001deb
cmp al, 0x1b
jne 0x140001deb
xor esi, esi
lea rbx, [0x140006780]
nop word [rax + rax]
mov dword [rsi + rbx], 0x31313131
mov dword [rsi + rbx + 4], 0x31313131
mov dword [rsi + rbx + 8], 0x31313131
mov dword [rsi + rbx + 0xc], 0x31313131
mov dword [rsi + rbx + 0x10], 0x31313131
mov dword [rsi + rbx + 0x14], 0x31313131
mov dword [rsi + rbx + 0x18], 0x31313131
mov word [rsi + rbx + 0x1c], 0x3131
add rsi, 0x1e
cmp rsi, 0x10e
jle 0x140001da0
mov rsi, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x20]
add rsp, 0x28
ret