Function at 0x4930e0
Capabilities:
Manipulate console buffer

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x84
mov eax, dword [0x581900]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x18]
xorps xmm0, xmm0
push ebx
push esi
mov esi, dword [ebp + 0x14]
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x58], 0
movlpd qword [ebp - 0x4c], xmm0
mov dword [ebp - 0xc], 0
mov word [ebp - 8], 0
movups xmmword [ebp - 0x1c], xmm0
movups xmmword [ebp - 0x6c], xmm0
test edi, edi
je 0x4936d0
push edi
push dword [0x671b24]
call fcn.00491320
add esp, 8
test eax, eax
je 0x493678
lea eax, [edi + 0x38]
push 0xca3
push eax
mov dword [ebp - 0x70], eax
call fcn.00433710
add esp, 8
test eax, eax
je 0x4936d0
cmp dword [edi + 0x14], 0
je 0x493655
call fcn.0040deb0
mov dword [ebp - 0x74], eax
test eax, eax
je 0x493655
cmp eax, 0xffffffff
je 0x493655
lea ecx, [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
je 0x493655
movsx eax, word [ebp - 0x12]
movsx ecx, word [ebp - 0xe]
sub ecx, eax
movsx eax, word [ebp - 0x10]
inc ecx
mov dword [ebp - 0x34], ecx
movsx ecx, word [ebp - 0xc]
sub ecx, eax
inc ecx
mov dword [ebp - 0x38], ecx
test esi, esi
jne 0x4931ea
mov eax, dword [edi + 4]
xor ebx, ebx
mov ecx, dword [edi]
dec eax
mov edx, dword [ebp + 0xc]
dec ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x64], ecx
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x24], edx
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x68], esi
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x2c], ecx
jmp 0x493230
movups xmm0, xmmword [esi]
mov ecx, dword [ebp + 0x10]
movups xmmword [ebp - 0x6c], xmm0
psrldq xmm0, 4
movd esi, xmm0
test esi, esi
jns 0x493208
sub ecx, esi
xor esi, esi
mov dword [ebp - 0x68], esi
mov ebx, dword [ebp - 0x6c]
mov dword [ebp - 0x2c], ecx
test ebx, ebx
jns 0x493221
mov edx, dword [ebp + 0xc]
sub edx, ebx
xor ebx, ebx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x6c], ebx
jmp 0x493227
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x24], eax
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x30], eax
cmp eax, dword [edi + 4]
jl 0x493242
mov eax, dword [edi + 4]
dec eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x60], eax
mov eax, dword [edi]
cmp edx, eax
jl 0x493251
lea edx, [eax - 1]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x64], edx
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x493331
mov edx, dword [eax + 4]
cmp ecx, edx
jge 0x49326f
mov eax, edx
mov dword [ebp - 0x2c], edx
sub eax, ecx
add esi, eax
mov dword [ebp - 0x68], esi
movups xmm0, xmmword [ebp - 0x6c]
sub esp, 0x10
mov eax, esp
movups xmmword [ebp - 0x84], xmm0
movups xmmword [eax], xmm0
call fcn.00457b00
mov edx, dword [ebp - 0x28]
add esp, 0x10
add eax, dword [ebp - 0x2c]
cmp eax, dword [edx + 0xc]
jle 0x4932c2
movups xmm0, xmmword [ebp - 0x84]
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
call fcn.00457b00
mov ecx, dword [ebp - 0x28]
add esp, 0x10
mov ecx, dword [ecx + 0xc]
sub ecx, dword [ebp - 0x2c]
sub ecx, eax
mov eax, dword [ebp - 0x30]
add eax, ecx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
mov ecx, dword [eax]
cmp edx, ecx
jge 0x4932da
mov eax, ecx
mov dword [ebp - 0x24], ecx
sub eax, edx
add ebx, eax
mov dword [ebp - 0x6c], ebx
movups xmm0, xmmword [ebp - 0x6c]
sub esp, 0x10
mov eax, esp
movups xmmword [ebp - 0x84], xmm0
movups xmmword [eax], xmm0
call fcn.00457ba0
mov edx, dword [ebp - 0x28]
add esp, 0x10
mov ecx, dword [ebp - 0x24]
add eax, ecx
cmp eax, dword [edx + 8]
jle 0x493334
movups xmm0, xmmword [ebp - 0x84]
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
call fcn.00457ba0
mov ecx, dword [ebp - 0x28]
add esp, 0x10
mov ecx, dword [ecx + 8]
sub ecx, dword [ebp - 0x24]
sub ecx, eax
mov eax, dword [ebp - 0x20]
add eax, ecx
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x20], eax
jmp 0x493337
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x30]
cmp esi, edx
jg 0x493655
cmp ebx, eax
jg 0x493655
mov edi, eax
sub edi, ebx
mov dword [ebp - 0x5c], edi
mov word [ebp - 0x44], di
mov edi, edx
sub edi, esi
mov dword [ebp - 0x3c], edi
mov word [ebp - 0x42], di
mov edi, dword [ebp - 0x50]
test ecx, ecx
jns 0x493398
sub ebx, ecx
movzx ecx, bx
mov edi, ecx
mov word [ebp - 0x58], bx
sub eax, ecx
mov dword [ebp - 0x28], edi
mov edi, dword [ebp - 0x50]
xor ecx, ecx
mov word [ebp - 0x44], ax
mov dword [ebp - 0x24], ecx
cmp ebx, dword [ebp - 0x20]
jg 0x49362f
mov edx, dword [ebp - 0x28]
mov word [ebp - 0x58], dx
mov edx, dword [ebp - 0x30]
jmp 0x4933ae
cmp ecx, dword [ebp - 0x34]
jge 0x49362f
mov ax, bx
mov dword [ebp - 0x28], eax
mov word [ebp - 0x58], ax
mov eax, dword [ebp - 0x5c]
cwde
mov dword [ebp - 0x5c], eax
add eax, ecx
cmp eax, dword [ebp - 0x34]
jle 0x4933dd
mov eax, dword [ebp - 0x34]
sub eax, dword [ebp - 0x5c]
sub eax, ecx
mov ecx, dword [ebp - 0x20]
add ecx, eax
mov eax, ecx
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x34]
sub eax, ebx
movzx eax, ax
mov word [ebp - 0x44], ax
cwde
sub ecx, eax
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x28]
cwde
mov dword [ebp - 0x28], eax
cmp eax, dword [ebp - 0x20]
jg 0x49362f
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
jns 0x493420
sub esi, ecx
movzx ecx, si
mov eax, ecx
mov word [ebp - 0x56], si
mov dword [ebp - 0x2c], eax
mov eax, edx
sub eax, ecx
xor ecx, ecx
mov word [ebp - 0x42], ax
cmp esi, edx
jg 0x49362f
mov edi, dword [ebp - 0x2c]
mov word [ebp - 0x56], di
mov edi, dword [ebp - 0x50]
jmp 0x493436
cmp ecx, dword [ebp - 0x38]
jge 0x49362f
mov ax, si
mov dword [ebp - 0x2c], eax
mov word [ebp - 0x56], ax
mov eax, dword [ebp - 0x3c]
cwde
mov dword [ebp - 0x3c], eax
add eax, ecx
cmp eax, dword [ebp - 0x38]
jle 0x49345c
mov eax, dword [ebp - 0x38]
sub eax, dword [ebp - 0x3c]
sub eax, ecx
mov ecx, dword [ebp - 0x38]
add edx, eax
mov eax, edx
sub eax, esi
movzx eax, ax
mov word [ebp - 0x42], ax
cwde
sub ecx, eax
mov eax, dword [ebp - 0x2c]
cwde
mov dword [ebp - 0x2c], eax
cmp eax, edx
jg 0x49362f
mov edx, dword [ebp - 0x24]
xor eax, eax
test esi, esi
cmovs esi, eax
test ebx, ebx
cmovs ebx, eax
mov eax, dword [ebp - 0x44]
sub edx, ebx
sub ecx, esi
add ecx, dword [ebp - 0x56]
mov esi, dword [ebp - 0x58]
add edx, esi
mov ebx, dword [ebp - 0x42]
add eax, edx
add ebx, ecx
mov word [ebp - 0x4a], cx
mov word [ebp - 0x4c], dx
mov word [ebp - 0x46], bx
mov dword [ebp - 0x3c], eax
mov word [ebp - 0x48], ax
test cx, cx
jns 0x4934ae
xor eax, eax
mov word [ebp - 0x4a], ax
test dx, dx
jns 0x4934b9
xor eax, eax
mov word [ebp - 0x4c], ax
mov ecx, dword [ebp - 0x38]
movsx eax, bx
cmp eax, ecx
jl 0x4934ca
lea eax, [ecx - 1]
mov word [ebp - 0x46], ax
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x34]
cwde
cmp eax, ecx
jl 0x4934dc
lea eax, [ecx - 1]
mov word [ebp - 0x48], ax
movzx ebx, word [edi]
lea eax, [ebp - 0x4c]
movzx edi, word [edi + 4]
push eax
mov eax, dword [ebp - 0x50]
push esi
mov word [ebp - 0x44], bx
mov word [ebp - 0x42], di
push dword [ebp - 0x44]
push dword [eax + 0x14]
push dword [ebp - 0x74]
call dword [sym.imp.KERNEL32.dll_WriteConsoleOutputA]
movsx ecx, bx
movsx edx, di
imul edx, ecx
xor ecx, ecx
mov dword [ebp - 0x5c], eax
movsx eax, di
mov dword [ebp - 0x3c], eax
movsx eax, bx
mov dword [ebp - 0x34], eax
test edx, edx
jle 0x49360b
mov eax, dword [ebp - 0x50]
mov eax, dword [eax + 0x14]
nop word [eax + eax]
cmp byte [eax], 0x20
jb 0x493542
inc ecx
add eax, 4
cmp ecx, edx
jl 0x493530
jmp 0x49360b
cmp ecx, edx
jge 0x49360b
push dword [ebp - 0x48]
push dword [ebp - 0x4c]
call fcn.00457d30
mov ecx, dword [ebp - 0x34]
add eax, dword [ebp - 0x28]
push dword [ebp - 0x48]
cmp eax, ecx
push dword [ebp - 0x4c]
lea ebx, [ecx - 1]
cmovl ebx, eax
mov dword [ebp - 0x30], ebx
call fcn.00457cf0
mov ecx, dword [ebp - 0x3c]
add esp, 0x10
mov edx, dword [ebp - 0x2c]
add eax, edx
cmp eax, ecx
lea edi, [ecx - 1]
cmovl edi, eax
mov dword [ebp - 0x24], edi
cmp edx, edi
jg 0x49360b
mov ecx, dword [ebp - 0x34]
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
imul ecx, edx
add ecx, edi
mov dword [ebp - 0x20], ecx
cmp edi, ebx
jg 0x4935fa
lea ebx, [ecx*4]
nop dword [eax + eax]
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x14]
add ecx, ebx
cmp byte [ecx], 0x20
jae 0x4935e8
sub edx, dword [ebp - 0x56]
mov eax, edi
add edx, dword [ebp - 0x4a]
sub eax, esi
add eax, dword [ebp - 0x4c]
mov word [ebp - 0x38], ax
lea eax, [ebp - 0x3c]
push eax
mov word [ebp - 0x36], dx
push dword [ebp - 0x38]
push 1
push ecx
push dword [ebp - 0x74]
call dword [sym.imp.KERNEL32.dll_WriteConsoleOutputCharacterA]
mov edx, dword [ebp - 0x2c]
inc edi
add ebx, 4
cmp edi, dword [ebp - 0x30]
jle 0x4935b0
mov ebx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
add ecx, dword [ebp - 0x34]
inc edx
mov edi, dword [ebp - 0x28]
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x20], ecx
cmp edx, eax
jle 0x4935a0
push 0xcad
push dword [ebp - 0x70]
call fcn.00433ae0
mov eax, dword [ebp - 0x5c]
add esp, 8
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e50dc
mov esp, ebp
pop ebp
ret
push 0xcad
push dword [ebp - 0x70]
call fcn.00433ae0
add esp, 8
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e50dc
mov esp, ebp
pop ebp
ret
push 0xcad
push dword [ebp - 0x70]
call fcn.00433ae0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e50dc
mov esp, ebp
pop ebp
ret
cmp edi, dword [0x671b3c]
jne 0x49369e
cmp dword [0x671b44], 0x320
jne 0x49369e
call fcn.004d9850
sub eax, dword [0x671b40]
cmp eax, 0x3e8
jbe 0x4936d0
push 0x320
push str.C:UsersOfficeDocumentsVisual_StudioPAULAScreenBuffer.c
push edi
push str.Invalid_HSCREENBUFFER:__p__File:___s___Line:__ld
call fcn.00424fd0
add esp, 0x10
mov dword [0x671b3c], edi
mov dword [0x671b44], 0x320
call fcn.004d9850
mov dword [0x671b40], eax
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004e50dc
mov esp, ebp
pop ebp
ret