Function at 0x100654b0
Capabilities:
Manipulate console buffer

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
mov eax, dword [ebp + 0x10]
push ebx
lea edx, [eax + 0x7bc]
push esi
mov ecx, eax
push edi
mov dword [ebp + 0x10], ecx
mov dword [ebp - 0x2c], edx
cmp eax, edx
ja 0x1006553e
mov esi, dword [ebp + 0x18]
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
jmp 0x100654e0
cmp ecx, 0x2732
ja 0x10065618
je 0x100655d3
cmp ecx, 0x258e
ja 0x100655b1
je 0x10065593
mov eax, ecx
sub eax, 0x1aee
je 0x10065569
sub eax, 0x63
je 0x10065528
sub eax, 0x9da
jne 0x100656c5
mov eax, dword [ebp + 8]
mov dword [ebp - 0xc], eax
jmp 0x100656c5
mov ecx, 0xda2
lea ecx, [ecx]
mov eax, ecx
sub eax, 0xda2
je 0x10065548
sub eax, 0x4f
jne 0x10065559
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x18], 0
je 0x100656de
mov dword [ebp - 4], 0
add ecx, 0x4f
cmp ecx, 0xdf1
jbe 0x10065530
jmp 0x1006563f
mov edx, dword [ebp + 8]
mov ecx, dword [ebx]
push edx
lea eax, [ebp - 0x18]
push eax
push 0
push 0x6140
push 0
mov dword [ebp - 0x18], ecx
call fcn.10064dc0
fldz
fstp dword [esi]
add esp, 0x14
mov dword [ebp - 0x18], eax
jmp 0x100656c2
cmp dword [esi], 0
je 0x100655aa
dec dword [esi]
mov eax, dword [ebp - 0xc]
mov dl, byte [ebx]
mov byte [eax], dl
inc eax
cmp dword [esi], 0
mov dword [ebp - 0xc], eax
jne 0x10065598
dec dword [esi]
jmp 0x100656c5
mov eax, ecx
sub eax, 0x25f1
je 0x100655c8
sub eax, 0x63
je 0x1006553e
jmp 0x100656c5
mov eax, dword [ebp + 8]
mov dword [ebp - 4], eax
jmp 0x100656c5
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx]
mov eax, dword [esi]
lea ecx, [ebp - 4]
push ecx
mov ecx, dword [ebp + 8]
push 0xf6e
mov dword [ebp - 0x1c], edx
push ebx
lea edx, [ebp - 0x1c]
push edx
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
push eax
push ecx
lea edx, [ebp - 0x24]
push edx
mov dword [ebp - 0x24], 1
mov dword [ebp - 4], 0
call fcn.10004d10
add esp, 0x1c
mov dword [ebp - 4], eax
jmp 0x100656c2
cmp ecx, 0x669b
ja 0x10065670
je 0x10065660
mov eax, ecx
sub eax, 0x2795
je 0x1006553e
sub eax, 0x3e40
je 0x10065656
sub eax, 0x63
jne 0x100656c5
push 0xfffffffffffffff5
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov edi, eax
lea eax, [ebp - 0x44]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
jmp 0x100656c2
xor edx, edx
mov dword [ebp - 0x10], edx
mov dword [ebp - 8], edx
jmp 0x100656c5
movsx eax, word [ebp - 0x42]
movsx edx, word [ebp - 0x44]
imul eax, edx
mov dword [ebp - 0x14], eax
jmp 0x100656c5
mov eax, ecx
sub eax, 0x66fe
je 0x100656ad
sub eax, 0x63
jne 0x100656c5
lea eax, [ebp - 0x44]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x28]
push ecx
mov ecx, dword [ebp - 0x3c]
push edx
push eax
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputAttribute]
mov edx, dword [ebp - 8]
push edx
push edi
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
jmp 0x100656c2
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x28]
push eax
push ecx
push edx
push 0x20
push edi
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputCharacterW]
mov ecx, dword [ebp + 0x10]
add ecx, 0x63
mov dword [ebp + 0x10], ecx
cmp ecx, dword [ebp - 0x2c]
jbe 0x100654e0
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret