Function at 0x140004260
Capabilities:
Execute command
Manipulate console buffer

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
mov rax, qword [0x14000a040]
xor rax, rsp
mov qword [rsp + 0x50], rax
call qword [sym.imp.KERNEL32.dll_GetConsoleWindow]
mov r12, rax
mov rcx, rax
call qword [sym.imp.USER32.dll_GetDC]
mov rbp, rax
mov edx, 0x64
mov rcx, rax
call qword [sym.imp.GDI32.dll_SetGraphicsMode]
mov edx, 0x1a
lea ecx, [rdx + 0x27]
call qword [sym.imp.USER32.dll_SetPhysicalCursorPos]
mov rcx, rbp
call fcn.140004110
mov rcx, rbp
call fcn.140004110
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
movdqa xmm1, xmmword [0x140007a80]
movdqu xmmword [rsp + 0x40], xmm1
mov byte [rsp + 0x30], 0
mov dword [0x14000a790], 0x64
mov dword [0x14000a7a0], 0x64
mov dword [0x14003b4e0], 0x64
mov dword [0x14003bd00], 0x64
mov dword [0x14003bcec], 0xa
xor r13d, r13d
mov dword [0x14003b4f8], r13d
mov dword [0x14003bce8], 1
mov r14d, r13d
mov rdx, rbp
lea ecx, [r13 + 1]
call fcn.140003c60
mov r15d, r13d
lea rdi, [0x140000000]
mov ebx, 0x14
inc r14d
mov eax, 0x51eb851f
imul r14d
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [0x14000a79c], edx
cmp edx, r15d
je 0x1400043bc
mov rcx, rbp
call fcn.140004110
mov r15d, dword [0x14000a79c]
mov ecx, 0xfffffff5
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov dword [rsp + 0x20], 0x1a002d
mov edx, dword [rsp + 0x20]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
lea rdx, [0x140007938]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140005080
mov rcx, rax
mov edx, dword [0x14000a79c]
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]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__kbhit]
test eax, eax
je case.0x1400043f2.105
call qword [sym.imp.api_ms_win_crt_conio_l1_1_0.dll__getch]
add eax, 0xffffff9f
cmp eax, 0x9a
ja case.0x1400043f2.105
cdqe
movzx eax, byte [rdi + rax + 0x4a2c]
mov ecx, dword [rdi + rax*4 + 0x4a08]
add rcx, rdi
jmp rcx
cmp dword [0x14003bcec], 0xa
jne 0x140004439
jmp case.0x1400043f2.105
cmp dword [0x14003bcec], 0xfffffff6
jne 0x14000445c
jmp case.0x1400043f2.105
cmp dword [0x14003b4f8], 0xa
jne 0x140004482
jmp case.0x1400043f2.105
cmp dword [0x14003b4f8], 0xfffffff6
jne 0x1400044a1
jmp case.0x1400043f2.105
cmp dword [0x14003bcec], 0xa
je case.0x1400043f2.105
mov dword [0x14003bcec], 0xfffffff6
mov dword [0x14003b4f8], r13d
mov dword [0x14003b4e4], r13d
jmp case.0x1400043f2.105
cmp dword [0x14003bcec], 0xfffffff6
je case.0x1400043f2.105
mov dword [0x14003bcec], 0xa
mov dword [0x14003b4f8], r13d
mov dword [0x14003b4e4], 1
jmp case.0x1400043f2.105
cmp dword [0x14003b4f8], 0xa
je case.0x1400043f2.105
mov dword [0x14003b4f8], 0xfffffff6
mov dword [0x14003b4e4], 2
jmp 0x1400044b5
cmp dword [0x14003b4f8], 0xfffffff6
je case.0x1400043f2.105
mov dword [0x14003b4f8], 0xa
mov dword [0x14003b4e4], 3
mov dword [0x14003bcec], r13d
mov r10d, dword [0x14000a790]
add r10d, dword [0x14003bcec]
mov dword [0x14000a790], r10d
cmp r10d, 0x14
jge 0x1400044e6
mov r10d, 0x32a
mov dword [0x14000a790], r10d
jmp 0x1400044f8
cmp r10d, 0x32a
jle 0x1400044f8
mov r10d, ebx
mov dword [0x14000a790], ebx
mov r8d, dword [0x14003b4e0]
add r8d, dword [0x14003b4f8]
mov dword [0x14003b4e0], r8d
cmp r8d, 0x14
jge 0x140004522
mov r8d, 0x186
mov dword [0x14003b4e0], r8d
jmp 0x140004534
cmp r8d, 0x186
jle 0x140004534
mov r8d, ebx
mov dword [0x14003b4e0], ebx
mov rdi, r13
mov edx, dword [0x14000a7a0]
test edx, edx
je 0x1400045c1
mov ecx, dword [0x14003bd00]
test ecx, ecx
je 0x1400045c1
mov esi, 0xfffffff6
mov ebx, 0xfffffff6
nop dword [rax]
lea rax, [0x14000a0d8]
cmp qword [0x14000a0f0], 0xf
cmova rax, qword [0x14000a0d8]
mov dword [0x14003bcd8], r13d
cmp byte [rdi + rax], 0x30
jne 0x1400045a2
lea r8d, [rcx + rsi]
add edx, ebx
xor r9d, r9d
mov rcx, rbp
call qword [sym.imp.GDI32.dll_SetPixel]
mov edx, dword [0x14000a7a0]
mov ecx, dword [0x14003bd00]
inc rdi
inc ebx
cmp ebx, 0xa
jle 0x140004560
inc esi
cmp esi, 0xa
jle 0x140004554
mov r10d, dword [0x14000a790]
mov r8d, dword [0x14003b4e0]
mov rdi, r13
mov byte [0x14003b4f0], dil
mov esi, 0xfffffff6
mov ebx, 0xfffffff6
lea r9, [0x14006ca40]
nop dword [rax]
movsxd rcx, dword [0x14003b4e4]
shl rcx, 5
add rcx, r9
mov rax, rcx
mov rdx, qword [rcx + 0x18]
cmp rdx, 0xf
jbe 0x1400045fe
mov rax, qword [rcx]
cmp byte [rdi + rax], 0x30
jne 0x14000463f
mov dword [0x14003bcd8], 0xffffff
add r8d, esi
lea edx, [r10 + rbx]
mov rcx, rbp
call qword [sym.imp.GDI32.dll_GetPixel]
mov dword [0x14000a794], eax
mov r8d, dword [0x14003b4e0]
add r8d, esi
mov edx, dword [0x14000a790]
add edx, ebx
mov r9d, dword [0x14003bcd8]
jmp 0x1400046ae
cmp rdx, 0xf
jbe 0x140004648
mov rcx, qword [rcx]
cmp byte [rdi + rcx], 0x31
jne 0x140004660
mov dword [0x14003bcd8], 0xffff
mov r9d, 0xffff
jmp 0x1400046a7
movsxd rax, dword [0x14003b4e4]
shl rax, 5
add rax, r9
cmp rdx, 0xf
jbe 0x140004677
mov rax, qword [rax]
cmp byte [rdi + rax], 0x32
jne 0x1400046ce
movzx r9d, byte [0x14003bcd4]
shl r9d, 8
movzx eax, byte [0x14003bcf8]
shl eax, 0x10
or r9d, eax
movzx eax, byte [0x14003b4fc]
or r9d, eax
mov dword [0x14003bcd8], r9d
lea edx, [r10 + rbx]
add r8d, esi
mov rcx, rbp
call qword [sym.imp.GDI32.dll_SetPixel]
mov r10d, dword [0x14000a790]
mov r8d, dword [0x14003b4e0]
lea r9, [0x14006ca40]
jmp 0x1400046d5
mov dword [0x14003bcd8], r13d
movzx ecx, byte [0x14003b4e8]
shl ecx, 8
movzx eax, byte [0x14003bcdc]
shl eax, 0x10
or ecx, eax
cmp dword [0x14000a794], ecx
jne 0x1400046fa
mov byte [0x14003b4f0], 1
inc rdi
inc ebx
cmp ebx, 0xa
jle 0x1400045e0
inc esi
cmp esi, 0xa
jle 0x1400045d0
mov rdx, rbp
xor ecx, ecx
call fcn.140003c60
cmp byte [0x14003b4f0], 1
jne 0x14000477b
mov rdx, rbp
mov ecx, 1
call fcn.140003c60
inc dword [0x14003b4f4]
mov ecx, 0xfffffff5
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov dword [rsp + 0x24], 0x1a001e
mov edx, dword [rsp + 0x24]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
lea rdx, [0x140007948]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140005080
mov rcx, rax
mov edx, dword [0x14003b4f4]
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]
movsxd r8, dword [0x14003bce8]
mov r10d, dword [0x14000a790]
lea rdi, [0x140000000]
mov dword [rdi + r8*4 + 0xa7a0], r10d
mov r9d, dword [0x14003b4e0]
mov dword [rdi + r8*4 + 0x3bd00], r9d
mov edx, r13d
test r8d, r8d
js 0x1400047f9
mov rcx, r13
cmp r10d, dword [rcx + rdi + 0xa7a0]
jne 0x1400047d2
cmp r9d, dword [rcx + rdi + 0x3bd00]
jne 0x1400047d2
lea eax, [r8 - 1]
cmp edx, eax
jle 0x1400048f2
mov eax, dword [rcx + rdi + 0xa7a4]
mov dword [rcx + rdi + 0xa7a0], eax
mov eax, dword [rcx + rdi + 0x3bd04]
mov dword [rcx + rdi + 0x3bd00], eax
inc edx
add rcx, 4
cmp edx, r8d
jle 0x1400047b2
mov ecx, 0xfffffff5
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov dword [rsp + 0x28], 0x1a0014
mov edx, dword [rsp + 0x28]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
mov eax, 0x66666667
imul dword [0x14003b4e0]
mov ebx, edx
sar ebx, 2
mov eax, ebx
shr eax, 0x1f
add ebx, eax
mov eax, 0x66666667
imul dword [0x14000a790]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
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, [0x1400079b0]
call fcn.140005080
mov rcx, rax
mov edx, ebx
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 ecx, 0xfffffff5
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov dword [rsp + 0x2c], 0x1a0041
mov edx, dword [rsp + 0x2c]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
mov ecx, 0x32
sub ecx, dword [0x14000a79c]
call qword [sym.imp.KERNEL32.dll_Sleep]
cmp r14d, 0x2710
jl 0x140004346
lea rcx, [0x140007954]
cmp dword [0x14003b4f4], 0x64
jg 0x140004963
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
lea rdx, [0x1400079f0]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140005080
mov rcx, rax
mov edx, dword [0x14003b4f4]
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]
lea rdx, [0x1400079b8]
jmp 0x140004992
lea rcx, [0x140007954]
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
lea rdx, [0x140007988]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140005080
mov rcx, rax
mov edx, dword [0x14003b4f4]
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, [0x140007958]
call fcn.140005080
mov rcx, rax
lea rdx, [0x140005250]
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]
lea rdx, [0x140005250]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
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]
lea rcx, str.pause
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
jmp 0x1400049d8
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
lea rdx, [0x140007a28]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140005080
mov rcx, rax
mov edx, dword [0x14003b4f4]
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]
lea rdx, [0x140007a10]
mov rcx, rax
call fcn.140005080
lea rdx, [0x140005250]
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___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
lea rdx, [0x140005250]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
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]
lea rcx, str.pause
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
mov rdx, rbp
mov rcx, r12
call qword [sym.imp.USER32.dll_ReleaseDC]
nop
xor eax, eax
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.1400052a0
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret