Function at 0x41a56b
Capabilities:
Manipulate console buffer

Disassembly:
push ebp
lea ebp, [esp - 0x7a0]
sub esp, 0x820
mov eax, dword [0x6294a0]
xor eax, ebp
mov dword [ebp + 0x79c], eax
mov eax, dword [ebp + 0x7a8]
push ebx
push esi
push edi
xor ebx, ebx
push 0x7fe
mov dword [ebp - 0x78], eax
lea eax, [ebp - 0x62]
push ebx
push eax
mov esi, ecx
mov word [ebp - 0x64], bx
call fcn.00508d00
xor eax, eax
add esp, 0xc
cmp byte [ebp + 0x7b0], bl
lea edi, [ebp - 0x6e]
stosw word es:[edi], ax
setne al
mov ecx, 0x400
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x74], ebx
sub ecx, eax
cmp esi, ecx
jl 0x41a5d7
mov esi, 0x3ff
sub esi, eax
call fcn.00401645
mov edi, eax
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x68]
push eax
mov dword [ebp - 0x80], edi
call fcn.0040322e
cmp byte [ebp + 0x7b0], bl
mov ax, word [ebp - 0x68]
mov word [ebp - 0x70], ax
mov ax, word [ebp - 0x6c]
pop ecx
pop ecx
mov word [ebp - 0x6e], ax
je 0x41a609
inc esi
cmp esi, ebx
jle 0x41a727
lea eax, [ebp - 0x74]
push eax
push dword [ebp - 0x70]
lea eax, [ebp - 0x64]
push esi
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadConsoleOutputAttribute]
test eax, eax
je 0x41a75b
cmp dword [ebp - 0x74], ebx
je 0x41a75b
cmp dword [ebp - 0x74], esi
je 0x41a64e
push esi
push dword [ebp - 0x74]
push str.:8:ReadConsoleOutputAttribute___FAILED:_Read__ld__not__ld.
call fcn.004020c2
mov esi, dword [ebp - 0x74]
add esp, 0xc
xor eax, eax
cmp dword [ebp + 0x7ac], ebx
je 0x41a669
cmp esi, ebx
jle 0x41a679
or word [ebp + eax*2 - 0x64], 8
inc eax
cmp eax, esi
jl 0x41a65c
jmp 0x41a679
cmp esi, ebx
jle 0x41a679
and word [ebp + eax*2 - 0x64], 0xfff7
inc eax
cmp eax, esi
jl 0x41a66d
cmp byte [ebp + 0x7b0], bl
je 0x41a68a
lea eax, [ebp + eax*2 - 0x66]
and word [eax], 0xfff7
lea eax, [ebp - 0x74]
push eax
push dword [ebp - 0x70]
lea eax, [ebp - 0x64]
push esi
push eax
push edi
call dword [sym.imp.KERNEL32.dll_WriteConsoleOutputAttribute]
lea eax, [ebp - 0x74]
push eax
push dword [ebp - 0x70]
xor eax, eax
cmp byte [ebp + 0x7b0], bl
mov ecx, esi
setne al
sub ecx, eax
push ecx
push dword [ebp - 0x78]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_WriteConsoleOutputCharacterA]
call edi
call fcn.004027de
cmp esi, ebx
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x7c], ebx
jle 0x41a727
cmp byte [ebp + 0x7b0], bl
je 0x41a704
lea eax, [esi - 1]
cmp dword [ebp - 0x7c], eax
jne 0x41a704
mov ax, word [ebp - 0x68]
mov word [ebp - 0x70], ax
mov ax, word [ebp - 0x6c]
mov word [ebp - 0x6e], ax
lea eax, [ebp - 0x74]
push eax
push dword [ebp - 0x70]
lea eax, [ebp + 0x7b0]
push 1
push eax
push dword [ebp - 0x80]
call edi
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
cmp eax, dword [ebp - 0x78]
jl 0x41a71f
call fcn.0040326a
inc dword [ebp - 0x6c]
cmp dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], ebx
jge 0x41a74e
inc dword [ebp - 0x7c]
cmp dword [ebp - 0x7c], esi
jl 0x41a6cf
push dword [ebp - 0x6c]
push dword [ebp - 0x68]
call fcn.004032a1
pop ecx
pop ecx
mov eax, esi
mov ecx, dword [ebp + 0x79c]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00508cf0
add ebp, 0x7a0
leave
ret
dec eax
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x78]
dec eax
mov dword [ebp - 0x68], eax
jmp 0x41a727
or eax, 0xffffffff
jmp 0x41a736