Function at 0x6e3d10
Capabilities:
Manipulate console buffer

Disassembly:
push ebp
push edi
mov eax, 0x159c
push esi
push ebx
call fcn.006f9d60
sub esp, eax
mov ebx, dword [esp + 0x15b0]
test ebx, ebx
je 0x6e3f11
mov esi, dword [ebx]
mov eax, dword [esi + 0x9c]
mov edi, dword [esi + 4]
test eax, eax
je 0x6e3ef0
mov ecx, dword [esi + 0x98]
test ecx, ecx
je 0x6e3ec3
cmp ecx, 0x1fff
ja 0x6e3e60
mov edx, 0xaaaaaaab
mov eax, ecx
mul edx
shr edx, 1
mov eax, 1
xchg dword [0x947a80], eax
cmp eax, 2
lea ebp, [ebx + 0x20]
je 0x6e3eb0
lea eax, [esp + 0x38]
mov dword [esp + 8], edx
lea edx, [esp + 0x3c]
mov dword [esp + 0x10], 0
mov dword [esp + 0x2c], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 4], edx
mov eax, dword [esi + 0x90]
mov dword [esp + 0x28], edx
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_ReadConsoleW]
sub esp, 0x14
test eax, eax
je 0x6e3e70
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov edx, dword [esp + 0x28]
mov dword [esp + 0x14], ecx
mov eax, dword [esi + 0x9c]
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov dword [esp], 0xfde9
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0xc], eax
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov dword [ebx + 0x24], eax
sub esp, 0x20
mov eax, 3
mov dword [ebx + 0x20], 0
xchg dword [0x947a80], eax
cmp eax, 2
je 0x6e3f40
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov eax, dword [edi + 0x1c]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
sub esp, 0x10
test eax, eax
je 0x6e3fee
add esp, 0x159c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret 4
mov edx, 0xaaa
mov ecx, 0x2000
jmp 0x6e3d67
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
test eax, eax
jle 0x6e3f32
call esi
movzx eax, ax
or eax, 0x80070000
mov dword [ebx + 0x20], eax
mov eax, 3
xchg dword [0x947a80], eax
cmp eax, 2
jne 0x6e3e24
mov dword [esp], 0x947a60
call dbg.uv_sem_post
jmp 0x6e3e24
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x24], 0
jmp 0x6e3e24
mov dword [esp + 8], 0x1de
mov dword [esp + 4], 0x86b320
mov dword [esp], str.handle__tty.rd.read_line_buffer.len___0
call dbg._assert
mov ecx, dword [esi + 0x98]
jmp 0x6e3d50
mov dword [esp + 8], 0x1dd
mov dword [esp + 4], 0x86b320
mov dword [esp], str.handle__tty.rd.read_line_buffer.base___NULL
call dbg._assert
jmp 0x6e3d42
mov dword [esp + 8], 0x1d7
mov dword [esp + 4], 0x86b320
mov dword [esp], str.data
call dbg._assert
jmp 0x6e3d2f
call esi
jmp 0x6e3e8a
mov eax, dword [0x947a7c]
mov edx, eax
lock cmpxchg dword [0x947a7c], eax
jne 0x6e3f45
test edx, edx
je 0x6e3e9d
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], pe_nt_image_headers32
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 3
mov dword [esp + 4], 0xc0000000
mov dword [esp], str.conout_
call dword [sym.imp.KERNEL32.dll_CreateFileA]
sub esp, 0x1c
cmp eax, 0xffffffff
mov ebx, eax
je 0x6e3e9d
movsx edx, word [0x947a66]
movsx ecx, word [0x947a6a]
mov dword [esp], ebx
sub edx, 1
mov eax, ecx
cmp ecx, edx
sete dl
movzx edx, dl
sub eax, edx
movzx edx, word [0x947a68]
shl eax, 0x10
or eax, edx
mov dword [esp + 4], eax
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
sub esp, 8
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
sub esp, 4
jmp 0x6e3e9d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 4], str.PostQueuedCompletionStatus
mov dword [esp], eax
call dbg.uv_fatal_error
lea esi, [esi]
lea edi, [edi]