Function at 0x100553d0
Capabilities:
Manipulate console buffer

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [ebp + 8]
push ebx
lea ecx, [eax + 0x1638]
push esi
push edi
mov edi, eax
mov dword [ebp - 0x20], ecx
cmp eax, ecx
ja 0x100555fc
mov esi, dword [ebp + 0x14]
mov ebx, dword [ebp + 8]
jmp 0x10055400
cmp edi, 0x5f53
ja 0x10055539
je 0x10055517
cmp edi, 0x279c
ja 0x10055495
je 0x10055487
cmp edi, 0x583
ja 0x1005546a
je 0x100555fc
mov eax, edi
sub eax, 0x4e5
je 0x1005544f
sub eax, 0x4f
jne 0x1005561e
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax]
mov edx, dword [esi + 4]
mov eax, dword [edx + ecx*4]
mov dword [ebp + 8], eax
jmp 0x1005561e
mov ecx, dword [ebp + 0x18]
mov eax, dword [ecx]
test eax, eax
js 0x10055461
cmp eax, dword [esi + 0x20]
jl 0x1005561e
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
cmp edi, 0x274d
jne 0x1005561e
mov edx, dword [ebp + 0x18]
mov ax, word [edx]
dec ax
mov word [ebp - 4], ax
jmp 0x1005561e
mov cx, word [esi]
dec cx
mov word [ebp - 2], cx
jmp 0x1005561e
mov eax, edi
sub eax, 0x27eb
je 0x100554ff
sub eax, 0x36ca
je 0x100554da
sub eax, 0x4f
jne 0x1005561e
cmp ebx, eax
je 0x10055634
mov edx, dword [esi + 0xc4]
mov ecx, dword [ebx + 0x50]
mov dword [ebx], edx
mov edx, dword [ebx + 0x54]
mov dword [ecx + 4], edx
mov ecx, dword [ebx + 0x54]
mov edx, dword [ebx + 0x50]
mov dword [ecx], edx
mov dword [ebx + 0x50], eax
mov dword [ebx + 0x54], eax
jmp 0x1005561e
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax]
push 0
push 0x1ae4
lea edx, [ebp - 0xc]
push edx
push esi
push 0
mov dword [ebp - 0xc], ecx
call fcn.10063d80
add esp, 0x14
mov ebx, eax
jmp 0x1005561e
mov eax, dword [ebp - 4]
push eax
push 0xfffffffffffffff5
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
push eax
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
jmp 0x1005561e
mov ecx, dword [esi + 0x38]
lea eax, [ebx + 0x50]
mov dword [ebx + 0x54], ecx
lea edx, [esi + 0x34]
mov dword [eax], edx
mov ecx, dword [esi + 0x38]
mov dword [ecx], eax
mov dword [esi + 0x38], eax
mov dword [ebp + 8], 0
jmp 0x1005561e
cmp edi, 0x7257
ja 0x100555e9
je 0x100555ac
mov eax, edi
sub eax, 0x5fa2
je 0x100555fc
sub eax, 0x1217
je 0x1005557c
sub eax, 0x4f
jne 0x1005561e
cmp dword [esi + 0x74], eax
jne 0x1005561e
lea edx, [esi + 0x7c]
push edx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
jmp 0x1005561e
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 8]
push ecx
lea edx, [ebp - 0x24]
push 0x1e74
push edx
mov dword [ebp - 0x10], 4
call fcn.1006bc50
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov edx, dword [ecx]
add esp, 0x10
mov dword [ebp - 8], eax
mov dword [ebp - 0x14], edx
jmp 0x1005561e
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax]
push esi
lea edx, [ebp - 8]
push edx
lea eax, [ebp - 0x10]
push eax
mov dword [ebp - 0x1c], ecx
push 0x17d5
lea ecx, [ebp - 0x14]
push ecx
lea edx, [ebp - 0x18]
push edx
lea eax, [ebp - 0x1c]
push eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x10], 1
call fcn.10054790
add esp, 0x1c
mov dword [ebp - 0x1c], eax
jmp 0x1005561e
mov eax, edi
sub eax, 0x72a6
je 0x1005560e
sub eax, 0x4f
je 0x10055606
sub eax, 0x4f
jne 0x1005561e
mov eax, dword [ebp + 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x1c]
mov dword [ebp + 8], ecx
jmp 0x1005561e
cmp dword [esi + 0x74], 0
jne 0x1005561e
lea edx, [esi + 0x7c]
push edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
add edi, 0x4f
cmp edi, dword [ebp - 0x20]
jbe 0x10055400
mov eax, dword [ebp + 8]
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