Function at 0x6e4610
Capabilities:
Manipulate console buffer

Disassembly:
push ebp
push edi
push esi
push ebx
push eax
mov eax, 0x4088
call fcn.006f9d60
sub esp, eax
mov edi, ecx
mov eax, dword [esp + eax]
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], ecx
mov esi, eax
mov dword [esp + 0x30], eax
movzx eax, byte [eax + 0x98]
movzx ebp, byte [esi + 0x9a]
mov byte [esp + 0x40], al
mov eax, dword [esi + 0x94]
mov dword [esp + 0x44], eax
movzx eax, byte [esi + 0x99]
mov byte [esp + 0x3c], al
mov eax, dword [esp + 0x40a0]
mov dword [eax], 0
mov dword [esp], 0x947a60
call dbg.uv_sem_wait
test edi, edi
je 0x6e5a99
lea eax, [esp + 0x80]
mov dword [esp + 0x34], 0
xor edi, edi
mov ebx, ebp
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x34]
mov edx, dword [eax + esi*8]
mov eax, dword [eax + esi*8 + 4]
mov dword [esp + 0x28], eax
mov eax, dword [0x7ee048]
mov dword [esp + 0x24], edx
test eax, eax
jne 0x6e46bb
test edx, edx
jne 0x6e49a5
mov eax, dword [esp + 0x24]
xor ebp, ebp
test eax, eax
je 0x6e4767
mov edx, ebx
movzx ebx, byte [esp + 0x40]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x44]
nop
lea esi, [esi]
mov eax, dword [esp + 0x28]
test bl, bl
movzx eax, byte [eax + ebp]
jne 0x6e47a0
test al, al
jne 0x6e4810
test dl, dl
je 0x6e4b20
cmp dl, 2
mov edi, 0xfffd
je 0x6e5d11
test dl, 4
je 0x6e47d0
mov ebx, edx
and ebx, 0x10
jne 0x6e4995
lea eax, [edi - 0x30]
cmp eax, 9
ja 0x6e4940
mov eax, dword [esp + 0x30]
test dl, 0x20
movzx eax, byte [eax + 0x9b]
jne 0x6e4b40
cmp al, 3
jbe 0x6e4bc8
or edx, 0x10
lea esi, [esi]
add ebp, 1
cmp dword [esp + 0x24], ebp
ja 0x6e46e0
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0x2c]
mov byte [esp + 0x40], bl
mov ebx, edx
add dword [esp + 0x34], 1
mov eax, dword [esp + 0x34]
cmp dword [esp + 0x4c], eax
jne 0x6e4693
mov eax, dword [esp + 0x30]
mov ebp, ebx
mov dword [esp + 0x50], 0
add eax, 0x90
mov dword [esp + 0x24], eax
jmp 0x6e4a6b
mov ecx, eax
and ecx, 0xffffffc0
cmp cl, 0x80
je 0x6e4890
sub ebp, 1
test dl, dl
je 0x6e4850
cmp dl, 2
je 0x6e4850
test dl, 4
mov edi, 0xfffd
jne 0x6e4717
test dl, 8
je 0x6e5d00
mov ebx, edx
and ebx, 0x40
je 0x6e48e0
test dl, dl
js 0x6e4b30
cmp edi, 0x22
je 0x6e4bb0
mov eax, edx
xor ebx, ebx
or edx, 0xffffff80
cmp edi, 0x5c
cmovne edx, eax
jmp 0x6e4750
mov ecx, eax
mov ebx, 0x1f
movzx edi, al
not ecx
movzx ecx, cl
bsr ecx, ecx
xor ecx, 0x1f
sub ebx, ecx
cmp ebx, 7
je 0x6e48a3
cmp ebx, 5
ja 0x6e47b1
sub ecx, 0x17
mov esi, 0xff
sar esi, cl
and esi, eax
mov eax, 6
sub eax, ebx
mov edi, esi
mov ebx, eax
jmp 0x6e4750
mov ebx, 0xfffffffd
mov edi, 0xfffd
cmp dword [esp + 0x2c], 0x2000
je 0x6e4910
mov esi, dword [esp + 0x2c]
mov eax, esi
add esi, 1
mov dword [esp + 0x2c], esi
mov word [esp + eax*2 + 0x80], bx
xor edx, edx
xor ebx, ebx
mov byte [esp + 0x3c], 0
jmp 0x6e4750
shl edi, 6
and eax, 0x3f
or eax, edi
sub bl, 1
mov edi, eax
jne 0x6e4750
test dl, dl
jne 0x6e4cc3
cmp edi, 0x1b
je 0x6e48d3
cmp edi, 0x9b
jne 0x6e5d05
mov eax, dword [esp + 0x30]
xor ebx, ebx
mov edx, 4
mov byte [eax + 0x9b], 0
jmp 0x6e4750
xor ebx, ebx
mov edx, 2
jmp 0x6e4750
cmp edi, 7
je case.0x6e497e.73
cmp edi, 0x5c
je 0x6e4985
cmp edi, 0x1b
je 0x6e4bc0
cmp edi, 0x22
je 0x6e4beb
and edx, 0xfffffffd
jmp 0x6e4750
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x40a0]
mov ecx, 0x2000
mov edx, dword [esp + 0x38]
add eax, 0x90
mov dword [esp], esi
call sym._uv_tty_emit_text.isra.8
mov dword [esp + 0x2c], 1
xor eax, eax
jmp 0x6e4875
cmp edi, 0x3b
je 0x6e4b70
cmp edi, 0x3f
je 0x6e4bfe
lea eax, [edi - 0x40]
cmp eax, 0x3e
ja 0x6e474a
mov eax, dword [esp + 0x30]
movzx ecx, byte [eax + 0x9b]
test cl, cl
jne 0x6e4976
cmp edi, 0x5b
je 0x6e474a
lea eax, [edi - 0x41]
cmp eax, 0x34
ja case.0x6e497e.73
jmp dword [eax*4 + 0x86b448]
test dl, 2
je 0x6e4904
xor edx, edx
jmp 0x6e4750
lea eax, [edi - 0x40]
xor ebx, ebx
cmp eax, 0x3f
cmovb edx, ebx
jmp 0x6e4750
mov eax, dword [esp + 0x24]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 4], 0
mov dword [esp], 0xfde9
mov esi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 8], eax
call esi
sub esp, 0x18
test eax, eax
mov edi, eax
je 0x6e5a6e
lea edx, [eax + eax + 2]
xor eax, eax
cmp edx, 0x2000
mov dword [esp + 0x2c], edx
seta al
mov dword [esp + 0x50], eax
ja 0x6e4c90
mov eax, dword [esp + 0x38]
mov dword [esp + 0x14], edi
mov dword [esp + 4], 0
mov dword [esp], 0xfde9
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 8], eax
call esi
sub esp, 0x18
mov esi, dword [esp + 0x30]
add esi, 0x90
test eax, eax
mov dword [esp + 0x24], esi
jne 0x6e4c1d
cmp dword [esp + 0x2c], 0x2000
mov ebp, ebx
ja 0x6e4cb2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, dword [esp + 0x40a0]
mov dword [esi], eax
mov eax, ebp
mov ebp, dword [esp + 0x38]
xor esi, esi
mov byte [esp + 0x28], al
mov esi, esi
lea edi, [edi]
mov ebx, edi
mov eax, 0x2000
lea edx, [ebp + esi*2]
sub ebx, esi
cmp ebx, 0x2000
cmova ebx, eax
mov eax, dword [esp + 0x40a0]
mov ecx, ebx
add esi, ebx
mov dword [esp], eax
mov eax, dword [esp + 0x24]
call sym._uv_tty_emit_text.isra.8
cmp edi, esi
ja 0x6e4a80
mov edx, dword [esp + 0x50]
movzx ebp, byte [esp + 0x28]
test edx, edx
jne 0x6e4ca1
movzx eax, byte [esp + 0x40]
mov edi, dword [esp + 0x30]
mov byte [edi + 0x98], al
mov eax, dword [esp + 0x44]
mov dword [edi + 0x94], eax
movzx eax, byte [esp + 0x3c]
mov byte [edi + 0x99], al
mov eax, ebp
mov byte [edi + 0x9a], al
mov dword [esp], 0x947a60
call dbg.uv_sem_post
mov eax, dword [esp + 0x40a0]
mov eax, dword [eax]
test eax, eax
setne al
add esp, 0x408c
movzx eax, al
pop ebx
neg eax
pop esi
pop edi
pop ebp
ret
mov edi, 0xfffd
mov ebx, edi
jmp 0x6e485a
and edx, 0x7f
xor ebx, ebx
jmp 0x6e4750
mov esi, dword [esp + 0x30]
lea ecx, [esi + eax*2]
movzx eax, word [ecx + 0x9a]
lea eax, [eax + eax*4]
add eax, eax
cmp eax, 0xffff
jg 0x6e474a
lea eax, [eax + edi - 0x30]
mov word [ecx + 0x9a], ax
jmp 0x6e4750
test dl, 0x20
jne 0x6e4bf6
mov eax, dword [esp + 0x30]
movzx eax, byte [eax + 0x9b]
cmp al, 3
ja 0x6e474a
mov esi, dword [esp + 0x30]
add eax, 1
xor ecx, ecx
mov byte [esi + 0x9b], al
movzx eax, al
mov word [esi + eax*2 + 0x9a], cx
jmp 0x6e4750
and edx, 0xffffffbf
xor ebx, ebx
jmp 0x6e4750
or edx, 2
jmp 0x6e4750
mov esi, dword [esp + 0x30]
add eax, 1
lea ecx, [edi - 0x30]
or edx, 0x20
mov byte [esi + 0x9b], al
movzx eax, al
mov word [esi + eax*2 + 0x9a], cx
jmp 0x6e4750
and edx, 0x7d
or edx, 0x40
jmp 0x6e4750
and edx, 0xffffffdf
jmp 0x6e4750
test dl, 0x20
jne 0x6e474a
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x9b], 0
jne 0x6e474a
jmp 0x6e4750
xor esi, esi
mov ebp, 0x2000
mov byte [esp + 0x28], bl
nop
lea esi, [esi]
mov eax, dword [esp + 0x38]
mov ebx, edi
sub ebx, esi
cmp ebx, 0x2000
lea edx, [eax + esi*2]
mov eax, dword [esp + 0x40a0]
cmova ebx, ebp
mov ecx, ebx
add esi, ebx
mov dword [esp], eax
mov eax, dword [esp + 0x24]
call sym._uv_tty_emit_text.isra.8
cmp edi, esi
ja 0x6e4c30
xor edi, edi
cmp dword [esp + 0x2c], 0x2000
movzx ebx, byte [esp + 0x28]
jbe 0x6e4767
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call dbg.uv__free
lea eax, [esp + 0x80]
mov dword [esp + 0x38], eax
jmp 0x6e4767
mov dword [esp], edx
call sym._uv__malloc
mov dword [esp + 0x38], eax
jmp 0x6e4a06
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call dbg.uv__free
jmp 0x6e4ac2
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call dbg.uv__free
jmp 0x6e4a5c
cmp dl, 2
jne 0x6e470e
lea eax, [edi - 0x1b]
cmp eax, 0x48
ja case.0x6e4cd8.28
jmp dword [eax*4 + 0x86b51c]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x44], edi
add eax, 0x90
mov dword [esp + 0x40], eax
xor eax, eax
mov edi, eax
mov esi, ebp
mov eax, 0x2000
sub esi, edi
cmp esi, 0x2000
cmova esi, eax
mov eax, dword [esp + 0x38]
mov ecx, esi
lea edx, [eax + edi*2]
mov eax, dword [esp + 0x40a0]
add edi, esi
mov dword [esp], eax
mov eax, dword [esp + 0x40]
call sym._uv_tty_emit_text.isra.8
cmp ebp, edi
ja 0x6e4cfc
mov ecx, dword [esp + 0x40a0]
mov eax, dword [esp + 0x30]
xor edx, edx
mov edi, dword [esp + 0x44]
mov ebp, dword [esp + 0x50]
call sym._uv_tty_restore_state
xor edx, edx
mov dword [esp + 0x2c], 0
jmp 0x6e4750
mov eax, dword [esp + 0x30]
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x44], edi
add eax, 0x90
mov dword [esp + 0x40], eax
xor eax, eax
mov edi, eax
mov esi, ebp
mov eax, 0x2000
sub esi, edi
cmp esi, 0x2000
cmova esi, eax
mov eax, dword [esp + 0x38]
mov ecx, esi
lea edx, [eax + edi*2]
mov eax, dword [esp + 0x40a0]
add edi, esi
mov dword [esp], eax
mov eax, dword [esp + 0x40]
call sym._uv_tty_emit_text.isra.8
cmp ebp, edi
ja 0x6e4d76
mov ecx, dword [esp + 0x40a0]
mov eax, dword [esp + 0x30]
xor edx, edx
mov edi, dword [esp + 0x44]
mov ebp, dword [esp + 0x50]
call dbg.uv_tty_save_state
xor edx, edx
mov dword [esp + 0x2c], 0
jmp 0x6e4750
mov eax, dword [esp + 0x30]
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x44], edi
add eax, 0x90
mov dword [esp + 0x40], eax
xor eax, eax
mov edi, eax
mov esi, ebp
mov eax, 0x2000
sub esi, edi
cmp esi, 0x2000
cmova esi, eax
mov eax, dword [esp + 0x38]
mov ecx, esi
lea edx, [eax + edi*2]
mov eax, dword [esp + 0x40a0]
add edi, esi
mov dword [esp], eax
mov eax, dword [esp + 0x40]
call sym._uv_tty_emit_text.isra.8
cmp ebp, edi
ja 0x6e4df0
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x44]
mov ebp, dword [esp + 0x50]
movzx eax, byte [eax + 0x9b]
test al, al
jne 0x6e5ac7
movzx eax, byte [0x7ee04c]
mov byte [esp + 0x2c], al
movzx eax, byte [0x947a5f]
mov byte [esp + 0x40], al
movzx eax, byte [0x947a5e]
mov byte [esp + 0x50], al
movzx eax, byte [0x947a5d]
mov esi, eax
movzx eax, byte [0x947a5c]
mov byte [esp + 0x44], al
cmp byte [esp + 0x2c], 0xff
jne 0x6e4eaa
cmp byte [esp + 0x40], 0xff
jne 0x6e4eaa
cmp byte [esp + 0x50], 0xff
mov eax, esi
sete dl
cmp al, 0xff
sete al
test dl, al
je 0x6e4ea0
cmp byte [esp + 0x44], 0xff
je 0x6e4ff0
mov byte [esp + 0x40], 0xff
mov byte [esp + 0x2c], 0xff
lea eax, [esp + 0x6a]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x90]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
sub esp, 8
test eax, eax
je 0x6e5cec
movzx eax, word [esp + 0x72]
test ah, 0x40
je 0x6e4ef6
mov edx, eax
mov ecx, eax
shr ax, 4
and edx, 0xf
xor cl, cl
and eax, 0xf
shl edx, 4
or edx, ecx
or eax, edx
mov word [esp + 0x72], ax
movzx edx, byte [esp + 0x2c]
cmp dl, 0xff
je 0x6e4f2e
and eax, 0xfffffff8
and edx, 1
je 0x6e4f0b
or eax, 4
test byte [esp + 0x2c], 2
mov word [esp + 0x72], ax
je 0x6e4f1f
or eax, 2
mov word [esp + 0x72], ax
test byte [esp + 0x2c], 4
je 0x6e4f2e
or eax, 1
mov word [esp + 0x72], ax
movzx edx, byte [esp + 0x50]
cmp dl, 0xff
je 0x6e4f48
test dl, dl
je 0x6e5c3a
or eax, 8
mov word [esp + 0x72], ax
movzx edx, byte [esp + 0x40]
cmp dl, 0xff
je 0x6e4f80
and eax, 0xffffff8f
and edx, 1
je 0x6e4f5d
or eax, 0x40
test byte [esp + 0x40], 2
mov word [esp + 0x72], ax
je 0x6e4f71
or eax, 0x20
mov word [esp + 0x72], ax
test byte [esp + 0x40], 4
je 0x6e4f80
or eax, 0x10
mov word [esp + 0x72], ax
mov edx, esi
cmp dl, 0xff
je 0x6e4f96
test dl, dl
je 0x6e5c47
or al, 0x80
mov word [esp + 0x72], ax
cmp byte [esp + 0x44], 0xff
je 0x6e5c21
cmp byte [esp + 0x44], 0
je 0x6e5c14
or ah, 0x40
mov edx, eax
mov ecx, eax
shr ax, 4
and edx, 0xf
xor cl, cl
and eax, 0xf
shl edx, 4
or edx, ecx
or eax, edx
mov word [esp + 0x72], ax
movzx eax, ax
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x90]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
sub esp, 8
test eax, eax
je 0x6e5cec
xor edx, edx
mov dword [esp + 0x2c], 0
jmp 0x6e4750
xor edx, edx
cmp cl, 1
jne 0x6e4750
mov eax, dword [esp + 0x30]
cmp word [eax + 0x9c], 0x19
jne 0x6e4750
add eax, 0x90
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x2c]
mov edx, 0x2000
mov ecx, dword [esp + 0x40a0]
sub esi, eax
cmp esi, 0x2000
mov dword [esp], ecx
cmova esi, edx
mov edx, dword [esp + 0x38]
mov ecx, esi
lea edx, [edx + eax*2]
mov eax, dword [esp + 0x44]
call sym._uv_tty_emit_text.isra.8
add dword [esp + 0x40], esi
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x2c], eax
ja 0x6e502d
mov ecx, dword [esp + 0x40a0]
mov eax, dword [esp + 0x44]
xor edx, edx
call sym._uv_tty_set_cursor_visibility.isra.7
xor edx, edx
mov dword [esp + 0x2c], 0
jmp 0x6e4750
xor edx, edx
cmp cl, 1
jne 0x6e4750
mov eax, dword [esp + 0x30]
cmp word [eax + 0x9c], 0x19
jne 0x6e4750
add eax, 0x90
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x2c]
mov edx, 0x2000
mov ecx, dword [esp + 0x40a0]
sub esi, eax
cmp esi, 0x2000
mov dword [esp], ecx
cmova esi, edx
mov edx, dword [esp + 0x38]
mov ecx, esi
lea edx, [edx + eax*2]
mov eax, dword [esp + 0x44]
call sym._uv_tty_emit_text.isra.8
add dword [esp + 0x40], esi
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x2c], eax
ja 0x6e50be
mov ecx, dword [esp + 0x40a0]
mov eax, dword [esp + 0x44]
mov edx, 1
call sym._uv_tty_set_cursor_visibility.isra.7
xor edx, edx
mov dword [esp + 0x2c], 0
jmp 0x6e4750
mov eax, dword [esp + 0x30]
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x44], edi
add eax, 0x90
mov dword [esp + 0x40], eax
xor eax, eax
mov edi, eax
mov esi, ebp
mov eax, 0x2000
sub esi, edi
cmp esi, 0x2000
cmova esi, eax
mov eax, dword [esp + 0x38]
mov ecx, esi
lea edx, [eax + edi*2]
mov eax, dword [esp + 0x40a0]
add edi, esi
mov dword [esp], eax
mov eax, dword [esp + 0x40]
call sym._uv_tty_emit_text.isra.8
cmp ebp, edi
ja 0x6e5141
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x44]
mov edx, 1
mov ebp, dword [esp + 0x50]
cmp byte [eax + 0x9b], 0
je 0x6e5196
movzx edx, word [eax + 0x9c]
mov eax, dword [esp + 0x40a0]
mov eax, dword [eax]
test eax, eax
mov dword [esp + 0x2c], eax
jne 0x6e4ff0
mov eax, dword [esp + 0x40a0]
mov dword [esp + 4], 1
mov ecx, 1
mov dword [esp], 0
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
call sym._uv_tty_move_caret.part.3
xor edx, edx
jmp 0x6e4750
mov eax, dword [esp + 0x30]
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x44], edi
add eax, 0x90
mov dword [esp + 0x40], eax
xor eax, eax
mov edi, eax
mov esi, ebp
mov eax, 0x2000
sub esi, edi
cmp esi, 0x2000
cmova esi, eax
mov eax, dword [esp + 0x38]
mov ecx, esi
lea edx, [eax + edi*2]
mov eax, dword [esp + 0x40a0]
add edi, esi
mov dword [esp], eax
mov eax, dword [esp + 0x40]
call sym._uv_tty_emit_text.isra.8
cmp ebp, edi
ja 0x6e51f7
mov eax, dword [esp + 0x30]
xor edx, edx
mov edi, dword [esp + 0x44]
mov ebp, dword [esp + 0x50]
cmp byte [eax + 0x9b], 0
je 0x6e5254
movzx eax, word [eax + 0x9c]
mov ecx, eax
sub eax, 1
test cx, cx
cmovne edx, eax
mov eax, dword [esp + 0x40a0]
mov eax, dword [eax]
test eax, eax
mov dword [esp + 0x2c], eax
jne 0x6e4ff0
mov eax, dword [esp + 0x40a0]
mov dword [esp + 4], 1
xor ecx, ecx
mov dword [esp], 0
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
call sym._uv_tty_move_caret.part.3
xor edx, edx
jmp 0x6e4750
mov eax, dword [esp + 0x30]
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x44], edi
add eax, 0x90
mov dword [esp + 0x40], eax
xor eax, eax
mov edi, eax
mov esi, ebp
mov eax, 0x2000
sub esi, edi
cmp esi, 0x2000
cmova esi, eax
mov eax, dword [esp + 0x38]
mov ecx, esi
lea edx, [eax + edi*2]
mov eax, dword [esp + 0x40a0]
add edi, esi
mov dword [esp], eax
mov eax, dword [esp + 0x40]
call sym._uv_tty_emit_text.isra.8
cmp ebp, edi
ja 0x6e52b2
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x44]
mov eax, 0xffffffff
mov ebp, dword [esp + 0x50]
cmp byte [edx + 0x9b], 0
je 0x6e5309
movzx eax, word [edx + 0x9c]
neg eax
mov esi, dword [esp + 0x40a0]
mov edx, dword [esi]
test edx, edx
mov dword [esp + 0x2c], edx
jne 0x6e4ff0
mov dword [esp], eax
mov eax, dword [esp + 0x30]
xor edx, edx
mov dword [esp + 8], esi
mov dword [esp + 4], 1
xor ecx, ecx
call sym._uv_tty_move_caret.part.3
xor edx, edx
jmp 0x6e4750
mov eax, dword [esp + 0x30]
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x44], edi
add eax, 0x90
mov dword [esp + 0x40], eax
xor eax, eax
mov edi, eax
mov esi, ebp
mov eax, 0x2000
sub esi, edi
cmp esi, 0x2000
cmova esi, eax
mov eax, dword [esp + 0x38]
mov ecx, esi
lea edx, [eax + edi*2]
mov eax, dword [esp + 0x40a0]
add edi, esi
mov dword [esp], eax
mov eax, dword [esp + 0x40]
call sym._uv_tty_emit_text.isra.8
cmp ebp, edi
ja 0x6e535e
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x44]
mov eax, 1
mov ebp, dword [esp + 0x50]
cmp byte [edx + 0x9b], 0
je 0x6e5309
movzx eax, word [edx + 0x9c]
jmp 0x6e5309
mov eax, dword [esp + 0x30]
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x44], edi
add eax, 0x90
mov dword [esp + 0x40], eax
xor eax, eax
mov edi, eax
mov esi, ebp
mov eax, 0x2000
sub esi, edi
cmp esi, 0x2000
cmova esi, eax
mov eax, dword [esp + 0x38]
mov ecx, esi
lea edx, [eax + edi*2]
mov eax, dword [esp + 0x40a0]
add edi, esi
mov dword [esp], eax
mov eax, dword [esp + 0x40]
call sym._uv_tty_emit_text.isra.8
cmp ebp, edi
ja 0x6e53d9
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x44]
mov edx, 0xffffffff
mov ebp, dword [esp + 0x50]
cmp byte [eax + 0x9b], 0
je 0x6e5196
movzx edx, word [eax + 0x9c]
neg edx
jmp 0x6e5196
mov eax, dword [esp + 0x30]
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x44], edi
add eax, 0x90
mov dword [esp + 0x40], eax
xor eax, eax
mov edi, eax
mov esi, ebp
mov eax, 0x2000
sub esi, edi
cmp esi, 0x2000
cmova esi, eax
mov eax, dword [esp + 0x38]
mov ecx, esi
lea edx, [eax + edi*2]
mov eax, dword [esp + 0x40a0]
add edi, esi
mov dword [esp], eax
mov eax, dword [esp + 0x40]
call sym._uv_tty_emit_text.isra.8
cmp ebp, edi
ja 0x6e5456
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x44]
mov ebp, dword [esp + 0x50]
cmp byte [eax + 0x9b], 0
je 0x6e5be7
movzx edx, word [eax + 0x9c]
cmp edx, 2
jg 0x6e4ff0
mov eax, dword [esp + 0x40a0]
mov ecx, 1
mov dword [esp], eax
mov eax, dword [esp + 0x30]
call dbg.uv_tty_clear
xor edx, edx
mov dword [esp + 0x2c], 0
jmp 0x6e4750
mov eax, dword [esp + 0x30]
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x44], edi
add eax, 0x90
mov dword [esp + 0x40], eax
xor eax, eax
mov edi, eax
mov esi, ebp
mov eax, 0x2000
sub esi, edi
cmp esi, 0x2000
cmova esi, eax
mov eax, dword [esp + 0x38]
mov ecx, esi
lea edx, [eax + edi*2]
mov eax, dword [esp + 0x40a0]
add edi, esi
mov dword [esp], eax
mov eax, dword [esp + 0x40]
call sym._uv_tty_emit_text.isra.8
cmp ebp, edi
ja 0x6e54f7
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x44]
mov ebp, dword [esp + 0x50]
movzx ecx, byte [eax + 0x9b]
test cl, cl
je 0x6e5bee
movzx eax, word [eax + 0x9c]
xor edx, edx
mov esi, eax
sub eax, 1
test si, si
cmove eax, edx
cmp cl, 1
jbe 0x6e5e53
mov esi, dword [esp + 0x30]
movzx ecx, word [esi + 0x9e]
mov esi, ecx
sub ecx, 1
test si, si
cmovne edx, ecx
mov esi, dword [esp + 0x40a0]
mov esi, dword [esi]
test esi, esi
mov dword [esp + 0x2c], esi
jne 0x6e4ff0
mov esi, dword [esp + 0x40a0]
mov dword [esp], eax
xor ecx, ecx
mov eax, dword [esp + 0x30]
mov dword [esp + 4], 0
mov dword [esp + 8], esi
call sym._uv_tty_move_caret.part.3
xor edx, edx
jmp 0x6e4750
mov eax, dword [esp + 0x30]
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x44], edi
add eax, 0x90
mov dword [esp + 0x40], eax
xor eax, eax
mov edi, eax
mov esi, ebp
mov eax, 0x2000
sub esi, edi
cmp esi, 0x2000
cmova esi, eax
mov eax, dword [esp + 0x38]
mov ecx, esi
lea edx, [eax + edi*2]
mov eax, dword [esp + 0x40a0]
add edi, esi
mov dword [esp], eax
mov eax, dword [esp + 0x40]
call sym._uv_tty_emit_text.isra.8
cmp ebp, edi
ja 0x6e55d3
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x44]
mov ebp, dword [esp + 0x50]
cmp byte [eax + 0x9b], 0
je 0x6e5ac0
movzx edx, word [eax + 0x9c]
cmp edx, 2
jg 0x6e4ff0
mov eax, dword [esp + 0x40a0]
xor ecx, ecx
mov dword [esp], eax
mov eax, dword [esp + 0x30]
call dbg.uv_tty_clear
xor edx, edx
mov dword [esp + 0x2c], 0
jmp 0x6e4750
mov eax, dword [esp + 0x30]
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x44], edi
add eax, 0x90
mov dword [esp + 0x40], eax
xor eax, eax
mov edi, eax
mov esi, ebp
mov eax, 0x2000
sub esi, edi
cmp esi, 0x2000
cmova esi, eax
mov eax, dword [esp + 0x38]
mov ecx, esi
lea edx, [eax + edi*2]
mov eax, dword [esp + 0x40a0]
add edi, esi
mov dword [esp], eax
mov eax, dword [esp + 0x40]
call sym._uv_tty_emit_text.isra.8
cmp ebp, edi
ja 0x6e5671
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x44]
mov eax, 0xffffffff
mov ebp, dword [esp + 0x50]
cmp byte [edx + 0x9b], 0
je 0x6e56c8
movzx eax, word [edx + 0x9c]
neg eax
mov esi, dword [esp + 0x40a0]
mov edx, dword [esi]
test edx, edx
mov dword [esp + 0x2c], edx
jne 0x6e4ff0
mov dword [esp], eax
mov eax, dword [esp + 0x30]
xor edx, edx
mov dword [esp + 8], esi
mov dword [esp + 4], 1
mov ecx, 1
call sym._uv_tty_move_caret.part.3
xor edx, edx
jmp 0x6e4750
mov eax, dword [esp + 0x30]
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x44], edi
add eax, 0x90
mov dword [esp + 0x40], eax
xor eax, eax
mov edi, eax
mov esi, ebp
mov eax, 0x2000
sub esi, edi
cmp esi, 0x2000
cmova esi, eax
mov eax, dword [esp + 0x38]
mov ecx, esi
lea edx, [eax + edi*2]
mov eax, dword [esp + 0x40a0]
add edi, esi
mov dword [esp], eax
mov eax, dword [esp + 0x40]
call sym._uv_tty_emit_text.isra.8
cmp ebp, edi
ja 0x6e5720
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x44]
mov eax, 1
mov ebp, dword [esp + 0x50]
cmp byte [edx + 0x9b], 0
je 0x6e56c8
movzx eax, word [edx + 0x9c]
jmp 0x6e56c8
mov eax, dword [esp + 0x30]
mov dword [esp + 0x44], edi
xor esi, esi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0x38]
add eax, 0x90
mov dword [esp + 0x40], eax
lea esi, [esi]
mov ebx, edi
mov eax, 0x2000
lea edx, [ebp + esi*2]
sub ebx, esi
cmp ebx, 0x2000
cmova ebx, eax
mov eax, dword [esp + 0x40a0]
mov ecx, ebx
add esi, ebx
mov dword [esp], eax
mov eax, dword [esp + 0x40]
call sym._uv_tty_emit_text.isra.8
cmp edi, esi
ja 0x6e57a0
mov esi, dword [esp + 0x40a0]
xor ebx, ebx
mov edi, dword [esp + 0x44]
mov ebp, dword [esp + 0x2c]
movzx eax, word [0x7ee04e]
mov esi, dword [esi]
test esi, esi
jne 0x6e5917
mov dword [esp + 4], eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x90]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
sub esp, 8
test eax, eax
je 0x6e5bfe
mov esi, dword [esp + 0x30]
mov dword [esp + 4], 0
mov eax, dword [esi + 0x90]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
sub esp, 8
test eax, eax
je 0x6e5908
lea eax, [esp + 0x6a]
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], ebp
mov edi, esi
mov dword [esp + 0x50], eax
mov esi, eax
jmp 0x6e58e2
lea eax, [esp + 0x64]
movsx edx, word [esp + 0x6c]
mov dword [esp + 0xc], ebx
mov dword [esp + 4], 0x20
mov dword [esp + 0x10], eax
movsx eax, word [esp + 0x6a]
imul eax, edx
mov dword [esp + 8], eax
mov eax, dword [edi + 0x90]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputCharacterW]
sub esp, 0x14
test eax, eax
je 0x6e58d1
lea eax, [esp + 0x64]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
mov eax, dword [edi + 0x90]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputAttribute]
sub esp, 0x14
test eax, eax
jne 0x6e5a4c
mov ebp, dword [sym.imp.KERNEL32.dll_GetLastError]
call ebp
cmp eax, 0x57
jne 0x6e5a30
mov dword [esp + 4], esi
mov eax, dword [edi + 0x90]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
sub esp, 8
test eax, eax
jne 0x6e5860
mov edi, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [esp + 0x40a0]
mov dword [edx], eax
xor ebx, ebx
jmp 0x6e4ff0
xor ebx, ebx
mov edx, 8
jmp 0x6e4750
mov eax, dword [esp + 0x30]
mov dword [esp + 0x44], edi
xor esi, esi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0x38]
add eax, 0x90
mov dword [esp + 0x40], eax
lea esi, [esi]
mov ebx, edi
mov eax, 0x2000
lea edx, [ebp + esi*2]
sub ebx, esi
cmp ebx, 0x2000
cmova ebx, eax
mov eax, dword [esp + 0x40a0]
mov ecx, ebx
add esi, ebx
mov dword [esp], eax
mov eax, dword [esp + 0x40]
call sym._uv_tty_emit_text.isra.8
cmp edi, esi
ja 0x6e5950
mov ecx, dword [esp + 0x40a0]
mov eax, dword [esp + 0x30]
mov edx, 1
mov edi, dword [esp + 0x44]
mov ebp, dword [esp + 0x2c]
xor ebx, ebx
call sym._uv_tty_restore_state
xor edx, edx
mov dword [esp + 0x2c], 0
jmp 0x6e4750
mov eax, dword [esp + 0x30]
mov dword [esp + 0x44], edi
xor esi, esi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0x38]
add eax, 0x90
mov dword [esp + 0x40], eax
nop
mov ebx, edi
mov eax, 0x2000
lea edx, [ebp + esi*2]
sub ebx, esi
cmp ebx, 0x2000
cmova ebx, eax
mov eax, dword [esp + 0x40a0]
mov ecx, ebx
add esi, ebx
mov dword [esp], eax
mov eax, dword [esp + 0x40]
call sym._uv_tty_emit_text.isra.8
cmp edi, esi
ja 0x6e59d0
mov ecx, dword [esp + 0x40a0]
mov eax, dword [esp + 0x30]
mov edx, 1
mov edi, dword [esp + 0x44]
mov ebp, dword [esp + 0x2c]
xor ebx, ebx
call dbg.uv_tty_save_state
jmp 0x6e4ff0
xor ebx, ebx
jmp 0x6e4750
mov esi, ebp
mov edi, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
call esi
mov edx, dword [esp + 0x40a0]
xor ebx, ebx
mov dword [edx], eax
jmp 0x6e4ff0
mov eax, dword [esp + 0x50]
mov edi, dword [esp + 0x40]
xor ebx, ebx
mov ebp, dword [esp + 0x44]
mov dword [0x7ee064], 0
call dbg.uv_tty_update_virtual_window
jmp 0x6e4ff0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [esp + 0x40a0]
mov ebp, ebx
mov dword [esp + 0x50], 0
mov dword [edx], eax
mov eax, dword [esp + 0x30]
add eax, 0x90
mov dword [esp + 0x24], eax
jmp 0x6e4a6b
mov eax, dword [esp + 0x30]
mov dword [esp + 0x50], 0
xor edi, edi
add eax, 0x90
mov dword [esp + 0x24], eax
lea eax, [esp + 0x80]
mov dword [esp + 0x38], eax
jmp 0x6e4a6b
xor edx, edx
jmp 0x6e5630
movzx edx, byte [0x947a5f]
mov esi, dword [esp + 0x30]
mov ecx, 0xffffffff
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], ebp
mov edi, ecx
mov byte [esp + 0x44], 0xff
mov byte [esp + 0x40], 0xff
mov byte [esp + 0x2c], 0xff
mov byte [esp + 0x55], dl
movzx edx, byte [0x947a5d]
mov byte [esp + 0x56], dl
movzx edx, byte [0x7ee04c]
mov byte [esp + 0x50], dl
movzx edx, byte [0x947a5e]
mov byte [esp + 0x54], dl
movzx edx, byte [0x947a5c]
mov byte [esp + 0x57], dl
lea edx, [esi + 0x9c]
lea esi, [edx + eax*2]
mov eax, 0xffffffff
mov ebp, eax
jmp 0x6e5b96
cmp ax, 1
je 0x6e5bc5
cmp ax, 2
je 0x6e5be1
cmp ax, 5
je 0x6e5bf7
cmp ax, 7
je 0x6e5c30
lea ecx, [eax - 0x15]
cmp cx, 1
jbe 0x6e5c81
cmp ax, 0x19
je 0x6e5c7a
cmp ax, 0x1b
je 0x6e5c70
lea ecx, [eax - 0x1e]
cmp cx, 7
ja 0x6e5c53
sub eax, 0x1e
mov byte [esp + 0x2c], al
add edx, 2
cmp esi, edx
je 0x6e5bcc
movzx eax, word [edx]
test ax, ax
jne 0x6e5b32
movzx eax, byte [esp + 0x57]
movzx edi, byte [esp + 0x56]
movzx ebp, byte [esp + 0x54]
mov byte [esp + 0x44], al
movzx eax, byte [esp + 0x55]
mov byte [esp + 0x40], al
movzx eax, byte [esp + 0x50]
mov byte [esp + 0x2c], al
jmp 0x6e5b8f
mov ebp, 1
jmp 0x6e5b8f
mov eax, ebp
mov esi, edi
mov ebp, dword [esp + 0x5c]
mov edi, dword [esp + 0x58]
mov byte [esp + 0x50], al
jmp 0x6e4e74
xor edi, edi
xor ebp, ebp
jmp 0x6e5b8f
xor edx, edx
jmp 0x6e54b3
xor eax, eax
xor edx, edx
jmp 0x6e5579
mov edi, 1
jmp 0x6e5b8f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, dword [esp + 0x40a0]
xor ebx, ebx
mov dword [esi], eax
jmp 0x6e4ff0
and ah, 0xbf
mov word [esp + 0x72], ax
jmp 0x6e4fcb
test ah, 0x40
jne 0x6e4faf
jmp 0x6e4fcb
mov byte [esp + 0x44], 1
jmp 0x6e5b8f
and eax, 0xfffffff7
mov word [esp + 0x72], ax
jmp 0x6e4f48
and al, 0x7f
mov word [esp + 0x72], ax
jmp 0x6e4f96
cmp ax, 0x27
je 0x6e5ca8
lea ecx, [eax - 0x28]
cmp cx, 7
ja 0x6e5c88
sub eax, 0x28
mov byte [esp + 0x40], al
jmp 0x6e5b8f
mov byte [esp + 0x44], 0
jmp 0x6e5b8f
xor edi, edi
jmp 0x6e5b8f
xor ebp, ebp
jmp 0x6e5b8f
cmp ax, 0x31
je 0x6e5cd9
lea ecx, [eax - 0x5a]
cmp cx, 7
ja 0x6e5cbb
sub eax, 0x5a
mov ebp, 1
mov byte [esp + 0x2c], al
jmp 0x6e5b8f
movzx eax, byte [esp + 0x50]
movzx ebp, byte [esp + 0x54]
mov byte [esp + 0x2c], al
jmp 0x6e5b8f
lea ecx, [eax - 0x64]
cmp cx, 7
ja 0x6e5b8f
sub eax, 0x64
mov edi, 1
mov byte [esp + 0x40], al
jmp 0x6e5b8f
movzx eax, byte [esp + 0x55]
movzx edi, byte [esp + 0x56]
mov byte [esp + 0x40], al
jmp 0x6e5b8f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [esp + 0x40a0]
mov dword [edx], eax
jmp 0x6e4ff0
call sym._abort
cmp edi, 0xffff
ja 0x6e4850
cmp edi, 0xa
sete al
cmp edi, 0xd
sete dl
je 0x6e5d27
test al, al
je 0x6e4b25
cmp byte [esp + 0x3c], 0xd
je 0x6e5d7b
test al, al
je 0x6e5d7b
mov esi, dword [esp + 0x2c]
mov eax, 0x2000
sub eax, esi
cmp eax, 1
jbe 0x6e5dd2
lea eax, [esi + 1]
mov edx, esi
add esi, 2
mov dword [esp + 0x2c], esi
mov ecx, 0xd
mov ebx, 0xa
mov word [esp + edx*2 + 0x80], cx
mov word [esp + eax*2 + 0x80], bx
mov eax, edi
xor ebx, ebx
xor edx, edx
mov byte [esp + 0x3c], al
jmp 0x6e4750
cmp byte [esp + 0x3c], 0xa
jne 0x6e5d86
test dl, dl
jne 0x6e5d6c
mov esi, dword [esp + 0x2c]
cmp esi, 0x2000
mov eax, esi
je 0x6e5da5
add esi, 1
mov dword [esp + 0x2c], esi
mov word [esp + eax*2 + 0x80], di
jmp 0x6e5d6c
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x40a0]
mov ecx, 0x2000
mov edx, dword [esp + 0x38]
add eax, 0x90
mov dword [esp], esi
call sym._uv_tty_emit_text.isra.8
mov dword [esp + 0x2c], 1
xor eax, eax
jmp 0x6e5d9b
mov eax, dword [esp + 0x30]
mov dword [esp + 0x40], edi
xor esi, esi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0x38]
add eax, 0x90
mov dword [esp + 0x3c], eax
mov ebx, edi
mov eax, 0x2000
lea edx, [ebp + esi*2]
sub ebx, esi
cmp ebx, 0x2000
cmova ebx, eax
mov eax, dword [esp + 0x40a0]
mov ecx, ebx
add esi, ebx
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
call sym._uv_tty_emit_text.isra.8
cmp edi, esi
ja 0x6e5df1
mov ebp, dword [esp + 0x2c]
mov edi, dword [esp + 0x40]
mov eax, 1
mov dword [esp + 0x2c], 2
xor edx, edx
jmp 0x6e5d52
lea eax, [edi - 0x40]
cmp eax, 0x1f
ja 0x6e5d05
xor ebx, ebx
xor edx, edx
jmp 0x6e4750
xor edx, edx
jmp 0x6e5579