Function at 0x140011285
Capabilities:
Manipulate console buffer
Read file on windows
Write file on windows

Disassembly:
jmp 0x1400119a0
push rbp
push rsi
push rdi
sub rsp, 0x980
lea rbp, [rsp + 0x40]
lea rdi, [rsp + 0x40]
mov ecx, 0x190
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rax, qword [section..data]
xor rax, rbp
mov qword [rbp + 0x938], rax
lea rcx, [0x1400240a2]
call fcn.140011393
mov dword [rbp + 0x104], 0
lea rax, [rbp + 0x258]
lea rcx, str.text.txt
mov rdi, rax
mov rsi, rcx
mov ecx, 9
rep movsb byte [rdi], byte [rsi]
mov eax, 0x20
mov word [rbp + 0x624], ax
mov ecx, 0xfffffff5
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov qword [rbp + 0xa8], rax
mov ecx, 0xfffffff6
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov qword [rbp + 0x88], rax
cmp qword [rbp + 0x88], 0xffffffffffffffff
je 0x140011a47
cmp qword [rbp + 0xa8], 0xffffffffffffffff
jne 0x140011a51
mov eax, 1
jmp 0x14001208c
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov r8d, 1
mov edx, 0x80000000
lea rcx, [rbp + 0x258]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov qword [rbp + 0x68], rax
cmp qword [rbp + 0x68], 0xffffffffffffffff
jne 0x140011adc
lea rdx, str.File_not_found_n
lea rcx, [rbp + 0x4d0]
call fcn.14001135c
lea rcx, [rbp + 0x4d0]
call fcn.140011181
mov qword [rsp + 0x20], 0
xor r9d, r9d
mov r8d, eax
lea rdx, [rbp + 0x4d0]
mov rcx, qword [rbp + 0xa8]
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, 1
jmp 0x14001208c
mov qword [rsp + 0x20], 0
lea r9, [rbp + 0x164]
mov r8d, 0xff
lea rdx, [rbp + 0x3b0]
mov rcx, qword [rbp + 0x68]
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [rbp + 0x144], eax
mov qword [rsp + 0x20], 0
lea r9, [rbp + 0x164]
mov r8d, dword [rbp + 0x164]
lea rdx, [rbp + 0x3b0]
mov rcx, qword [rbp + 0xa8]
call qword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [rbp + 0x164], 0
jne 0x140011adc
mov edx, 0x90
mov rcx, qword [rbp + 0x88]
call qword [sym.imp.KERNEL32.dll_SetConsoleMode]
mov eax, 2
mov word [rbp + 0x188], ax
xor eax, eax
cmp eax, 1
je 0x14001208a
lea r9, [rbp + 0x104]
mov r8d, 1
lea rdx, [rbp + 0x188]
mov rcx, qword [rbp + 0x88]
call qword [sym.imp.KERNEL32.dll_ReadConsoleInputW]
test eax, eax
je 0x140012085
cmp dword [rbp + 0x190], 2
jne 0x140011b9f
xor eax, eax
jmp 0x14001208c
mov eax, 0xf
mov word [rbp + 0x216], ax
mov eax, 1
mov word [rbp + 0x214], ax
mov eax, 0x11
mov word [rbp + 0x1f6], ax
mov eax, 1
mov word [rbp + 0x1f4], ax
cmp dword [rbp + 0x190], 1
jne 0x140012085
movzx eax, word [rbp + 0x18c]
mov word [rbp + 0x1b4], ax
movzx eax, word [rbp + 0x18e]
mov word [rbp + 0x1b6], ax
movzx eax, word [rbp + 0x18c]
mov word [rbp + 0x234], ax
movzx eax, word [rbp + 0x18e]
mov word [rbp + 0x236], ax
lea rax, [rbp + 0x104]
mov qword [rsp + 0x20], rax
mov r9d, dword [rbp + 0x1b4]
mov r8d, 1
lea rdx, [rbp + 0x5e4]
mov rcx, qword [rbp + 0xa8]
call qword [sym.imp.KERNEL32.dll_ReadConsoleOutputCharacterA]
lea rax, [rbp + 0x104]
mov qword [rsp + 0x20], rax
mov r9d, dword [rbp + 0x1b4]
mov r8d, 1
lea rdx, [rbp + 0x604]
mov rcx, qword [rbp + 0xa8]
call qword [sym.imp.KERNEL32.dll_ReadConsoleOutputCharacterA]
movsx eax, byte [rbp + 0x5e4]
cmp eax, 0x20
je 0x140012085
lea rax, [rbp + 0x104]
mov qword [rsp + 0x20], rax
mov r9d, dword [rbp + 0x1f4]
mov r8d, 0x50
xor edx, edx
mov rcx, qword [rbp + 0xa8]
call qword [sym.imp.KERNEL32.dll_FillConsoleOutputAttribute]
lea rcx, [rbp + 0x290]
call fcn.140011181
lea rcx, [rbp + 0x104]
mov qword [rsp + 0x20], rcx
mov r9d, dword [rbp + 0x1f4]
mov r8d, eax
lea rdx, [rbp + 0x290]
mov rcx, qword [rbp + 0xa8]
call qword [sym.imp.KERNEL32.dll_WriteConsoleOutputCharacterA]
mov edx, dword [rbp + 0x214]
mov rcx, qword [rbp + 0xa8]
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
lea rdx, str.
lea rcx, [rbp + 0x4d0]
call fcn.14001135c
lea rcx, [rbp + 0x4d0]
call fcn.140011181
mov qword [rsp + 0x20], 0
xor r9d, r9d
mov r8d, eax
lea rdx, [rbp + 0x4d0]
mov rcx, qword [rbp + 0xa8]
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov edx, dword [rbp + 0x214]
mov rcx, qword [rbp + 0xa8]
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
movsx eax, word [rbp + 0x1b6]
movsx ecx, word [rbp + 0x1b4]
mov r9d, eax
mov r8d, ecx
lea rdx, str._x___d__y___d_
lea rcx, [rbp + 0x4d0]
call fcn.14001135c
lea rcx, [rbp + 0x4d0]
call fcn.140011181
mov qword [rsp + 0x20], 0
xor r9d, r9d
mov r8d, eax
lea rdx, [rbp + 0x4d0]
mov rcx, qword [rbp + 0xa8]
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [rbp + 0x1b4]
mov dword [rbp + 0x1d4], eax
movsx eax, byte [rbp + 0x604]
cmp eax, 0x5a
jg 0x140011e4b
movsx eax, byte [rbp + 0x604]
cmp eax, 0x41
jl 0x140011e4b
movsx eax, byte [rbp + 0x604]
add eax, 0x20
mov byte [rbp + 0x604], al
mov edx, dword [rbp + 0x234]
mov rcx, qword [rbp + 0xa8]
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
mov dx, 3
mov rcx, qword [rbp + 0xa8]
call qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
movsx eax, byte [rbp + 0x604]
mov r8d, eax
lea rdx, [0x14001b184]
lea rcx, [rbp + 0x4d0]
call fcn.14001135c
lea rcx, [rbp + 0x4d0]
call fcn.140011181
mov qword [rsp + 0x20], 0
xor r9d, r9d
mov r8d, eax
lea rdx, [rbp + 0x4d0]
mov rcx, qword [rbp + 0xa8]
call qword [sym.imp.KERNEL32.dll_WriteFile]
jmp 0x140011eeb
movsx eax, byte [rbp + 0x604]
cmp eax, 0x7a
jg 0x140011eeb
movsx eax, byte [rbp + 0x604]
cmp eax, 0x61
jl 0x140011eeb
movsx eax, byte [rbp + 0x604]
sub eax, 0x20
mov byte [rbp + 0x604], al
mov edx, dword [rbp + 0x234]
mov rcx, qword [rbp + 0xa8]
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
mov dx, 4
mov rcx, qword [rbp + 0xa8]
call qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
movsx eax, byte [rbp + 0x604]
mov r8d, eax
lea rdx, [0x14001b184]
lea rcx, [rbp + 0x4d0]
call fcn.14001135c
lea rcx, [rbp + 0x4d0]
call fcn.140011181
mov qword [rsp + 0x20], 0
xor r9d, r9d
mov r8d, eax
lea rdx, [rbp + 0x4d0]
mov rcx, qword [rbp + 0xa8]
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov dx, 0xf
mov rcx, qword [rbp + 0xa8]
call qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
movsx eax, byte [rbp + 0x5e4]
cmp eax, 0x20
je 0x140011f53
movsx eax, word [rbp + 0x1b4]
test eax, eax
jle 0x140011f53
movzx eax, word [rbp + 0x1b4]
dec ax
mov word [rbp + 0x1b4], ax
lea rax, [rbp + 0x104]
mov qword [rsp + 0x20], rax
mov r9d, dword [rbp + 0x1b4]
mov r8d, 1
lea rdx, [rbp + 0x5e4]
mov rcx, qword [rbp + 0xa8]
call qword [sym.imp.KERNEL32.dll_ReadConsoleOutputCharacterA]
jmp 0x140011efc
movsx eax, byte [rbp + 0x5e4]
cmp eax, 0x20
jne 0x140011f70
movzx eax, word [rbp + 0x1b4]
inc ax
mov word [rbp + 0x1b4], ax
movzx eax, word [rbp + 0x1d4]
inc ax
mov word [rbp + 0x1d4], ax
lea rax, [rbp + 0x104]
mov qword [rsp + 0x20], rax
mov r9d, dword [rbp + 0x1d4]
mov r8d, 1
lea rdx, [rbp + 0x5e4]
mov rcx, qword [rbp + 0xa8]
call qword [sym.imp.KERNEL32.dll_ReadConsoleOutputCharacterA]
movsx eax, byte [rbp + 0x5e4]
cmp eax, 0x20
je 0x140011fc6
movsx eax, word [rbp + 0x1d4]
cmp eax, 0x50
jl 0x140011f70
movsx eax, byte [rbp + 0x5e4]
cmp eax, 0x20
jne 0x140011fe3
movzx eax, word [rbp + 0x1d4]
dec ax
mov word [rbp + 0x1d4], ax
movsx eax, word [rbp + 0x1d4]
movsx ecx, word [rbp + 0x1b4]
sub eax, ecx
inc eax
mov dword [rbp + 0x104], eax
lea rax, [rbp + 0x104]
mov qword [rsp + 0x20], rax
mov r9d, dword [rbp + 0x1b4]
mov r8d, dword [rbp + 0x104]
lea rdx, [rbp + 0x290]
mov rcx, qword [rbp + 0xa8]
call qword [sym.imp.KERNEL32.dll_ReadConsoleOutputCharacterA]
lea rax, [rbp + 0x104]
mov qword [rsp + 0x20], rax
mov r9d, dword [rbp + 0x1f4]
mov r8d, dword [rbp + 0x104]
lea rdx, [rbp + 0x290]
mov rcx, qword [rbp + 0xa8]
call qword [sym.imp.KERNEL32.dll_WriteConsoleOutputCharacterA]
lea rax, [rbp + 0x104]
mov qword [rsp + 0x20], rax
mov r9d, dword [rbp + 0x1f4]
mov r8d, dword [rbp + 0x104]
movzx edx, word [rbp + 0x624]
mov rcx, qword [rbp + 0xa8]
call qword [sym.imp.KERNEL32.dll_FillConsoleOutputAttribute]
jmp 0x140011b5b
xor eax, eax
mov rdi, rax
lea rcx, [rbp - 0x40]
lea rdx, [0x14001b040]
call fcn.140011325
mov rax, rdi
mov rcx, qword [rbp + 0x938]
xor rcx, rbp
call fcn.1400111c2
lea rsp, [rbp + 0x940]
pop rdi
pop rsi
pop rbp
ret