Function at 0x10189a30
Capabilities:
Manipulate console buffer

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
mov eax, dword [0x10254be4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
add eax, 4
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x20], 1
lea eax, [ebp - 0x1c]
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
jne 0x10189a6f
jmp case.0x10189abb.8
cmp dword [ebp - 0x30], 0
jle 0x10189a97
mov edx, 4
imul eax, edx, 0
mov ecx, dword [ebp - 0x28]
cmp dword [ecx + eax], 0
jle 0x10189a97
mov edx, 4
imul eax, edx, 0
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx + eax]
mov dword [ebp - 0x20], edx
movzx eax, word [ebp + 0x10]
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x34]
sub ecx, 0x41
mov dword [ebp - 0x34], ecx
cmp dword [ebp - 0x34], 0x34
ja case.0x10189abb.8
mov edx, dword [ebp - 0x34]
movzx eax, byte [edx + 0x10189ef0]
jmp dword [eax*4 + 0x10189eac]
mov ecx, dword [ebp + 0xc]
movzx edx, word [ecx + 0x44]
push edx
movzx eax, word [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x28]
push ecx
mov edx, dword [ebp - 0x30]
push edx
call fcn.10189780
add esp, 0x10
movzx eax, ax
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
jmp case.0x10189abb.8
xor edx, edx
mov word [ebp - 0x18], dx
movsx eax, word [ebp - 0x16]
sub eax, dword [ebp - 0x20]
mov word [ebp - 0x16], ax
movsx ecx, word [ebp - 0x16]
test ecx, ecx
jge 0x10189b11
xor edx, edx
mov word [ebp - 0x16], dx
mov eax, dword [ebp - 0x18]
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
jmp case.0x10189abb.8
xor edx, edx
mov word [ebp - 0x18], dx
movsx eax, word [ebp - 0x16]
add eax, dword [ebp - 0x20]
mov word [ebp - 0x16], ax
movsx ecx, word [ebp - 0x16]
movsx edx, word [ebp - 0x1a]
cmp ecx, edx
jl 0x10189b49
mov ax, word [ebp - 0x1a]
mov word [ebp - 0x16], ax
mov ecx, dword [ebp - 0x18]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
jmp case.0x10189abb.8
movsx eax, word [ebp - 0x18]
add eax, dword [ebp - 0x20]
mov word [ebp - 0x18], ax
movsx ecx, word [ebp - 0x18]
movsx edx, word [ebp - 0x1c]
cmp ecx, edx
jl 0x10189b7b
mov ax, word [ebp - 0x1c]
mov word [ebp - 0x18], ax
mov ecx, dword [ebp - 0x18]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
jmp case.0x10189abb.8
movsx eax, word [ebp - 0x18]
sub eax, dword [ebp - 0x20]
mov word [ebp - 0x18], ax
movsx ecx, word [ebp - 0x18]
test ecx, ecx
jge 0x10189ba7
xor edx, edx
mov word [ebp - 0x18], dx
mov eax, dword [ebp - 0x18]
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
jmp case.0x10189abb.8
movsx edx, word [ebp - 0x1c]
cmp dword [ebp - 0x20], edx
jle 0x10189bcc
movsx eax, word [ebp - 0x1c]
mov dword [ebp - 0x40], eax
jmp 0x10189bd2
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x40], ecx
mov edx, dword [ebp - 0x40]
sub edx, 1
mov word [ebp - 0x18], dx
mov eax, dword [ebp - 0x18]
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
jmp case.0x10189abb.8
movsx edx, word [ebp - 0x1a]
cmp dword [ebp - 0x20], edx
jle 0x10189c01
movsx eax, word [ebp - 0x1a]
mov dword [ebp - 0x44], eax
jmp 0x10189c07
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x44], ecx
mov edx, dword [ebp - 0x44]
sub edx, 1
mov word [ebp - 0x16], dx
mov eax, dword [ebp - 0x18]
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
jmp case.0x10189abb.8
movsx edx, word [ebp - 0x1a]
cmp dword [ebp - 0x20], edx
jle 0x10189c36
movsx eax, word [ebp - 0x1a]
mov dword [ebp - 0x48], eax
jmp 0x10189c3c
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x48], ecx
mov edx, dword [ebp - 0x48]
sub edx, 1
mov word [ebp - 0x22], dx
cmp dword [ebp - 0x30], 2
jl 0x10189c63
mov eax, 4
shl eax, 0
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx + eax]
mov dword [ebp - 0x20], edx
cmp dword [ebp - 0x20], 0
jg 0x10189c6a
mov dword [ebp - 0x20], 1
movsx eax, word [ebp - 0x1c]
cmp dword [ebp - 0x20], eax
jle 0x10189c7c
movsx ecx, word [ebp - 0x1c]
mov dword [ebp - 0x4c], ecx
jmp 0x10189c82
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x4c]
sub eax, 1
mov word [ebp - 0x24], ax
mov ecx, dword [ebp - 0x24]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
jmp case.0x10189abb.8
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
je 0x10189cbc
cmp dword [ebp - 0x38], 1
je 0x10189cea
cmp dword [ebp - 0x38], 2
je 0x10189d20
jmp 0x10189d4c
lea ecx, [ebp - 0x2c]
push ecx
mov edx, dword [ebp - 0x18]
push edx
movsx eax, word [ebp - 0x1c]
movsx ecx, word [ebp - 0x1a]
movsx edx, word [ebp - 0x16]
sub ecx, edx
imul eax, ecx
movsx ecx, word [ebp - 0x18]
sub eax, ecx
push eax
push 0x20
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputCharacterW]
jmp 0x10189d4c
xor eax, eax
mov word [ebp - 0x24], ax
mov cx, word [ebp - 0x16]
mov word [ebp - 0x22], cx
lea edx, [ebp - 0x2c]
push edx
mov eax, dword [ebp - 0x24]
push eax
movsx ecx, word [ebp - 0x1c]
movsx edx, word [ebp - 0x16]
imul ecx, edx
movsx eax, word [ebp - 0x18]
add ecx, eax
push ecx
push 0x20
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputCharacterW]
jmp 0x10189d4c
xor edx, edx
mov word [ebp - 0x24], dx
xor eax, eax
mov word [ebp - 0x22], ax
lea ecx, [ebp - 0x2c]
push ecx
mov edx, dword [ebp - 0x24]
push edx
movsx eax, word [ebp - 0x1c]
movsx ecx, word [ebp - 0x1a]
imul eax, ecx
push eax
push 0x20
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputCharacterW]
jmp case.0x10189abb.8
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0
je 0x10189d6b
cmp dword [ebp - 0x3c], 1
je 0x10189d8c
cmp dword [ebp - 0x3c], 2
je 0x10189db5
jmp 0x10189ddc
lea ecx, [ebp - 0x2c]
push ecx
mov edx, dword [ebp - 0x18]
push edx
movsx eax, word [ebp - 0x1c]
movsx ecx, word [ebp - 0x18]
sub eax, ecx
push eax
push 0x20
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputCharacterW]
jmp 0x10189ddc
xor eax, eax
mov word [ebp - 0x24], ax
mov cx, word [ebp - 0x16]
mov word [ebp - 0x22], cx
lea edx, [ebp - 0x2c]
push edx
mov eax, dword [ebp - 0x24]
push eax
movsx ecx, word [ebp - 0x18]
push ecx
push 0x20
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputCharacterW]
jmp 0x10189ddc
xor eax, eax
mov word [ebp - 0x24], ax
mov cx, word [ebp - 0x16]
mov word [ebp - 0x22], cx
lea edx, [ebp - 0x2c]
push edx
mov eax, dword [ebp - 0x24]
push eax
movsx ecx, word [ebp - 0x1c]
push ecx
push 0x20
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputCharacterW]
jmp case.0x10189abb.8
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x18]
mov dword [eax + 0x46], ecx
jmp case.0x10189abb.8
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x46]
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
jmp case.0x10189abb.8
cmp dword [ebp - 0x30], 2
jl 0x10189e50
mov edx, 4
imul eax, edx, 0
mov ecx, dword [ebp - 0x28]
cmp dword [ecx + eax], 0xffffffff
jne 0x10189e50
mov edx, 4
shl edx, 0
mov eax, dword [ebp - 0x28]
cmp dword [eax + edx], 0x19
jne 0x10189e50
lea ecx, [ebp - 0x54]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_GetConsoleCursorInfo]
mov dword [ebp - 0x50], 1
lea eax, [ebp - 0x54]
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorInfo]
jmp case.0x10189abb.8
cmp dword [ebp - 0x30], 2
jl case.0x10189abb.8
mov edx, 4
imul eax, edx, 0
mov ecx, dword [ebp - 0x28]
cmp dword [ecx + eax], 0xffffffff
jne case.0x10189abb.8
mov edx, 4
shl edx, 0
mov eax, dword [ebp - 0x28]
cmp dword [eax + edx], 0x19
jne case.0x10189abb.8
lea ecx, [ebp - 0x5c]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_GetConsoleCursorInfo]
mov dword [ebp - 0x58], 0
lea eax, [ebp - 0x5c]
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorInfo]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.101949b1
mov esp, ebp
pop ebp
ret