Function at 0x48ab60
Capabilities:
Manipulate console buffer

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x40c4
call fcn.004a5580
mov eax, dword [0x51808c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x14]
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
xor esi, esi
mov dword [ebp - 0x403c], eax
push 0x52402c
mov dword [ebp - 0x4030], edi
mov al, byte [edi + 0x98]
movzx ebx, word [edi + 0x9a]
mov byte [ebp - 0x4021], al
mov eax, dword [edi + 0x94]
mov dword [ebp - 0x402c], eax
mov al, byte [edi + 0x99]
mov dword [ebp - 0x4020], ecx
mov dword [ebp - 0x4028], esi
mov byte [ebp - 0x4022], al
mov dword [ecx], esi
call fcn.0048db00
xor edx, edx
add esp, 4
mov dword [ebp - 0x4038], edx
cmp dword [ebp + 0x10], edx
jbe 0x48bce1
mov ecx, dword [sym.imp.KERNEL32.dll_WriteConsoleW]
nop
mov eax, dword [ebp - 0x403c]
mov edi, dword [ebp - 0x403c]
mov edx, dword [eax + edx*8]
mov eax, dword [ebp - 0x4038]
mov dword [ebp - 0x4050], edx
mov eax, dword [edi + eax*8 + 4]
mov edi, dword [ebp - 0x4030]
mov dword [ebp - 0x4048], eax
xor eax, eax
mov dword [ebp - 0x4034], eax
test edx, edx
je 0x48bc91
nop dword [eax + eax]
mov edx, dword [ebp - 0x4048]
mov dl, byte [edx + eax]
mov ah, byte [ebp - 0x4021]
mov al, dl
test ah, ah
jne 0x48aca0
not al
movzx eax, al
bsr eax, eax
mov dword [ebp - 0x404c], eax
je 0x48ace2
cmp eax, 7
jne 0x48ac66
movzx edx, dl
jmp 0x48ace7
cmp eax, 5
ja 0x48ace2
mov ecx, 8
sub ecx, eax
mov eax, 0xff
sar eax, cl
mov ecx, dword [sym.imp.KERNEL32.dll_WriteConsoleW]
mov dword [ebp - 0x402c], eax
movzx eax, dl
mov edx, dword [ebp - 0x402c]
and edx, eax
mov al, 6
sub al, byte [ebp - 0x404c]
mov byte [ebp - 0x4021], al
jmp 0x48acc5
and al, 0xc0
cmp al, 0x80
jne 0x48acd5
dec ah
mov byte [ebp - 0x4021], ah
movzx eax, dl
mov edx, dword [ebp - 0x402c]
and eax, 0x3f
shl edx, 6
or edx, eax
mov al, byte [ebp - 0x4021]
mov dword [ebp - 0x402c], edx
test al, al
jne case.0x48ad48.27
jmp 0x48aced
dec dword [ebp - 0x4034]
mov byte [ebp - 0x4021], 0
mov edx, 0xfffd
mov dword [ebp - 0x402c], edx
cmp dword [0x518060], 0
je 0x48b071
test bx, bx
jne 0x48ad2b
cmp edx, 0x1b
je 0x48ad21
cmp edx, 0x9b
jne 0x48b071
mov ebx, 4
mov byte [edi + 0x9c], 0
jmp case.0x48ad48.27
mov ebx, 2
jmp case.0x48ad48.27
cmp bx, 2
jne 0x48b0f8
lea eax, [edx - 0x1b]
cmp eax, 0x48
ja case.0x48ad48.28
movzx eax, byte [eax + 0x48bdc8]
jmp dword [eax*4 + 0x48bdac]
mov ebx, 8
jmp case.0x48ad48.27
mov ebx, dword [ebp - 0x4020]
test esi, esi
je 0x48ad95
cmp dword [ebx], 0
jne 0x48ad8d
push 0
lea eax, [ebp - 0x4070]
push eax
push esi
lea eax, [ebp - 0x4004]
push eax
push dword [edi + 0x90]
call ecx
test eax, eax
jne 0x48ad8d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebx], eax
xor eax, eax
mov dword [ebp - 0x4028], eax
xor eax, eax
cmp dword [ebx], 0
mov dword [ebp - 0x4040], eax
mov ax, word [0x518058]
movzx edi, ax
jne 0x48aed9
mov ebx, dword [ebp - 0x4030]
movzx eax, ax
push eax
push dword [ebx + 0x90]
call dword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
test eax, eax
jne 0x48ade0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x4020]
mov edi, ebx
xor ebx, ebx
mov dword [ecx], eax
jmp case.0x48ad48.27
mov esi, dword [ebp - 0x4040]
push esi
push dword [ebx + 0x90]
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
test eax, eax
jne 0x48ae10
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x4020]
mov edi, ebx
xor ebx, ebx
mov dword [ecx], eax
jmp case.0x48ad48.27
lea eax, [ebp - 0x401c]
push eax
push dword [ebx + 0x90]
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
je 0x48adc9
movsx eax, word [ebp - 0x401c]
movsx ecx, word [ebp - 0x401a]
imul ecx, eax
lea eax, [ebp - 0x4044]
push eax
push esi
push ecx
push 0x20
push dword [ebx + 0x90]
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputCharacterW]
test eax, eax
je 0x48ae72
lea eax, [ebp - 0x4044]
push eax
push esi
push dword [ebp - 0x4044]
push edi
push dword [ebx + 0x90]
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputAttribute]
test eax, eax
jne 0x48ae94
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x57
je 0x48ae10
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x4020]
mov edi, ebx
xor ebx, ebx
mov dword [ecx], eax
jmp case.0x48ad48.27
lea eax, [ebp - 0x401c]
mov dword [0x51803c], 0
push eax
call fcn.0048aa40
add esp, 4
mov edi, ebx
push 0x524034
push dword [edi + 0x90]
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorInfo]
test eax, eax
jne 0x48aedf
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x4020]
xor ebx, ebx
mov dword [ecx], eax
jmp case.0x48ad48.27
mov edi, dword [ebp - 0x4030]
xor ebx, ebx
jmp case.0x48ad48.27
mov ebx, dword [ebp - 0x4020]
test esi, esi
je 0x48af22
cmp dword [ebx], 0
jne 0x48af1a
push 0
lea eax, [ebp - 0x4074]
push eax
push esi
lea eax, [ebp - 0x4004]
push eax
push dword [edi + 0x90]
call ecx
test eax, eax
jne 0x48af1a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebx], eax
xor eax, eax
mov dword [ebp - 0x4028], eax
cmp dword [ebx], 0
jne 0x48af96
lea eax, [ebp - 0x401c]
push eax
push dword [edi + 0x90]
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
jne 0x48af4d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebx], eax
xor ebx, ebx
jmp case.0x48ad48.27
lea eax, [ebp - 0x401c]
push eax
call fcn.0048aa40
mov ax, word [ebp - 0x4018]
add esp, 4
mov word [edi + 0xa6], ax
mov eax, dword [ebp - 0x4016]
sub eax, dword [0x51803c]
mov word [edi + 0xa8], ax
mov eax, dword [ebp - 0x4014]
and eax, 0x88
or dword [edi + 0x2c], 0xc000000
mov word [edi + 0xaa], ax
xor ebx, ebx
jmp case.0x48ad48.27
mov ebx, dword [ebp - 0x4020]
test esi, esi
je 0x48afd9
cmp dword [ebx], 0
jne 0x48afd1
push 0
lea eax, [ebp - 0x4078]
push eax
push esi
lea eax, [ebp - 0x4004]
push eax
push dword [edi + 0x90]
call ecx
test eax, eax
jne 0x48afd1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebx], eax
xor eax, eax
mov dword [ebp - 0x4028], eax
cmp dword [ebx], 0
jne case.0x48b467.73
test dword [edi + 0x2c], 0x4000000
je 0x48b009
movsx eax, word [edi + 0xa8]
push ebx
push 0
push eax
movsx eax, word [edi + 0xa6]
push 0
push eax
push edi
call fcn.0048a170
add esp, 0x18
test eax, eax
jne case.0x48b467.73
test dword [edi + 0x2c], 0x8000000
je case.0x48b467.73
lea eax, [ebp - 0x401c]
push eax
push dword [edi + 0x90]
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
je 0x48b04f
mov eax, dword [ebp - 0x4014]
and eax, 0xff77
or ax, word [edi + 0xaa]
movzx eax, ax
push eax
push dword [edi + 0x90]
call dword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
test eax, eax
jne case.0x48b467.73
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebx], eax
xor ebx, ebx
jmp case.0x48ad48.27
cmp edx, 0x40
jb 0x48b06f
cmp edx, 0x5f
ja 0x48b06f
xor ebx, ebx
jmp case.0x48ad48.27
xor ebx, ebx
cmp edx, 0xa
je 0x48bd36
cmp edx, 0xd
je 0x48bc00
mov eax, 0x2000
sub eax, esi
cmp edx, 0xffff
ja 0x48bb75
cmp eax, 1
jae 0x48b0dd
test esi, esi
je 0x48b0dd
mov eax, dword [ebp - 0x4020]
cmp dword [eax], 0
jne 0x48b0db
push 0
lea eax, [ebp - 0x40ac]
push eax
push esi
lea eax, [ebp - 0x4004]
push eax
push dword [edi + 0x90]
call ecx
test eax, eax
jne 0x48b0d5
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x4020]
mov dword [ecx], eax
mov edx, dword [ebp - 0x402c]
xor esi, esi
mov word [ebp + esi*2 - 0x4004], dx
inc esi
mov dword [ebp - 0x4028], esi
mov byte [ebp - 0x4022], 0
jmp case.0x48ad48.27
cmp bx, 0x10
jne 0x48b117
cmp edx, 0x40
jb case.0x48ad48.27
cmp edx, 0x7e
ja case.0x48ad48.27
xor ebx, ebx
jmp case.0x48ad48.27
mov eax, 0x200
cmp bx, ax
jne 0x48b1ff
cmp edx, 0x40
jb 0x48b1f5
cmp edx, 0x7e
ja 0x48b1f5
cmp edx, 0x71
jne case.0x48b467.73
cmp byte [edi + 0x9c], 0
je 0x48b15b
movzx esi, word [edi + 0x9e]
cmp esi, 6
ja case.0x48b467.73
jmp 0x48b160
mov esi, 1
mov eax, dword [ebp - 0x4028]
mov ebx, dword [ebp - 0x4020]
test eax, eax
je 0x48b1a2
cmp dword [ebx], 0
jne 0x48b19a
push 0
lea edx, [ebp - 0x407c]
push edx
push eax
lea eax, [ebp - 0x4004]
push eax
push dword [edi + 0x90]
call ecx
test eax, eax
jne 0x48b19a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebx], eax
xor eax, eax
mov dword [ebp - 0x4028], eax
lea eax, [ebp - 0x4058]
push eax
push dword [edi + 0x90]
call dword [sym.imp.KERNEL32.dll_GetConsoleCursorInfo]
test eax, eax
je 0x48b04f
test esi, esi
jne 0x48b1c8
mov eax, dword [0x524034]
jmp 0x48b1d7
mov eax, 2
cmp eax, esi
sbb eax, eax
and eax, 0xffffffb5
add eax, 0x64
mov dword [ebp - 0x4058], eax
lea eax, [ebp - 0x4058]
push eax
push dword [edi + 0x90]
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorInfo]
jmp 0x48b04b
mov ebx, 0x10
jmp 0x48b071
test bl, 4
je 0x48baf2
cmp edx, 0x30
jb 0x48b27d
cmp edx, 0x39
ja 0x48b27d
mov al, byte [edi + 0x9c]
test bl, 0x20
jne 0x48b249
cmp al, 4
jb 0x48b22b
mov ebx, 0x10
jmp case.0x48ad48.27
or ebx, 0x20
lea ecx, [edx - 0x30]
inc al
mov byte [edi + 0x9c], al
movzx eax, al
mov word [edi + eax*2 + 0x9c], cx
jmp case.0x48ad48.27
movzx eax, al
lea ecx, [edi + eax*2]
movzx eax, word [ecx + 0x9c]
lea eax, [eax + eax*4]
add eax, eax
cmp eax, 0xffff
jbe 0x48b26c
mov ebx, 0x10
jmp case.0x48ad48.27
add eax, 0xffffffd0
add eax, edx
mov word [ecx + 0x9c], ax
jmp case.0x48ad48.27
cmp edx, 0x3b
jne 0x48b2c0
test bl, 0x20
je 0x48b292
and ebx, 0xffdf
jmp case.0x48ad48.27
mov al, byte [edi + 0x9c]
cmp al, 4
jb 0x48b2a6
mov ebx, 0x10
jmp case.0x48ad48.27
inc al
xor ecx, ecx
mov byte [edi + 0x9c], al
movzx eax, al
mov word [edi + eax*2 + 0x9c], cx
jmp case.0x48ad48.27
cmp edx, 0x3f
jne 0x48b2e1
test ebx, 0x120
jne 0x48b2f9
cmp byte [edi + 0x9c], 0
jne 0x48b2f9
or ebx, 0x100
jmp case.0x48ad48.27
cmp edx, 0x20
jne 0x48b2f9
and ebx, 0x100
jne 0x48b221
mov ebx, eax
jmp case.0x48ad48.27
and ebx, 0x100
cmp edx, 0x40
jb 0x48b221
cmp edx, 0x7e
ja 0x48b221
test bx, bx
je 0x48b454
cmp edx, 0x68
je 0x48b3c0
cmp edx, 0x6c
jne case.0x48b467.73
cmp byte [edi + 0x9c], 1
jne case.0x48b467.73
cmp word [edi + 0x9e], 0x19
jne case.0x48b467.73
mov ebx, dword [ebp - 0x4020]
test esi, esi
je 0x48b383
cmp dword [ebx], 0
jne 0x48b37b
push 0
lea eax, [ebp - 0x4080]
push eax
push esi
lea eax, [ebp - 0x4004]
push eax
push dword [edi + 0x90]
call ecx
test eax, eax
jne 0x48b37b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebx], eax
xor eax, eax
mov dword [ebp - 0x4028], eax
lea eax, [ebp - 0x4064]
push eax
push dword [edi + 0x90]
call dword [sym.imp.KERNEL32.dll_GetConsoleCursorInfo]
test eax, eax
je 0x48b04f
lea eax, [ebp - 0x4064]
mov dword [ebp - 0x4060], 0
push eax
push dword [edi + 0x90]
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorInfo]
jmp 0x48b04b
cmp byte [edi + 0x9c], 1
jne case.0x48b467.73
cmp word [edi + 0x9e], 0x19
jne case.0x48b467.73
mov ebx, dword [ebp - 0x4020]
test esi, esi
je 0x48b417
cmp dword [ebx], 0
jne 0x48b40f
push 0
lea eax, [ebp - 0x40c0]
push eax
push esi
lea eax, [ebp - 0x4004]
push eax
push dword [edi + 0x90]
call ecx
test eax, eax
jne 0x48b40f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebx], eax
xor eax, eax
mov dword [ebp - 0x4028], eax
lea eax, [ebp - 0x406c]
push eax
push dword [edi + 0x90]
call dword [sym.imp.KERNEL32.dll_GetConsoleCursorInfo]
test eax, eax
je 0x48b04f
lea eax, [ebp - 0x406c]
mov dword [ebp - 0x4068], 1
push eax
push dword [edi + 0x90]
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorInfo]
jmp 0x48b04b
lea eax, [edx - 0x41]
cmp eax, 0x34
ja case.0x48b467.73
movzx eax, byte [eax + 0x48be4c]
jmp dword [eax*4 + 0x48be14]
mov ebx, dword [ebp - 0x4020]
test esi, esi
je 0x48b4aa
cmp dword [ebx], 0
jne 0x48b4a2
push 0
lea eax, [ebp - 0x40a4]
push eax
push esi
lea eax, [ebp - 0x4004]
push eax
push dword [edi + 0x90]
call ecx
test eax, eax
jne 0x48b4a2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebx], eax
xor eax, eax
mov dword [ebp - 0x4028], eax
cmp byte [edi + 0x9c], 0
je 0x48b4d4
movzx eax, word [edi + 0x9e]
push ebx
push 1
neg eax
push eax
push 1
push 0
push edi
call fcn.0048a170
add esp, 0x18
xor ebx, ebx
jmp case.0x48ad48.27
push ebx
mov eax, 1
push eax
neg eax
push eax
push 1
push 0
push edi
call fcn.0048a170
add esp, 0x18
xor ebx, ebx
jmp case.0x48ad48.27
mov ebx, dword [ebp - 0x4020]
test esi, esi
je 0x48b52e
cmp dword [ebx], 0
jne 0x48b526
push 0
lea eax, [ebp - 0x40b8]
push eax
push esi
lea eax, [ebp - 0x4004]
push eax
push dword [edi + 0x90]
call ecx
test eax, eax
jne 0x48b526
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebx], eax
xor eax, eax
mov dword [ebp - 0x4028], eax
cmp byte [edi + 0x9c], 0
je 0x48b556
movzx eax, word [edi + 0x9e]
push ebx
push 1
push eax
push 1
push 0
push edi
call fcn.0048a170
add esp, 0x18
xor ebx, ebx
jmp case.0x48ad48.27
push ebx
mov eax, 1
push eax
push eax
push eax
push 0
push edi
call fcn.0048a170
add esp, 0x18
xor ebx, ebx
jmp case.0x48ad48.27
mov ebx, dword [ebp - 0x4020]
test esi, esi
je 0x48b5ad
cmp dword [ebx], 0
jne 0x48b5a5
push 0
lea eax, [ebp - 0x40bc]
push eax
push esi
lea eax, [ebp - 0x4004]
push eax
push dword [edi + 0x90]
call ecx
test eax, eax
jne 0x48b5a5
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebx], eax
xor eax, eax
mov dword [ebp - 0x4028], eax
cmp byte [edi + 0x9c], 0
je 0x48b5d5
movzx eax, word [edi + 0x9e]
push ebx
push 1
push 0
push 1
push eax
push edi
call fcn.0048a170
add esp, 0x18
xor ebx, ebx
jmp case.0x48ad48.27
push ebx
mov eax, 1
push eax
push 0
push eax
push eax
push edi
call fcn.0048a170
add esp, 0x18
xor ebx, ebx
jmp case.0x48ad48.27
mov ebx, dword [ebp - 0x4020]
test esi, esi
je 0x48b62c
cmp dword [ebx], 0
jne 0x48b624
push 0
lea eax, [ebp - 0x4084]
push eax
push esi
lea eax, [ebp - 0x4004]
push eax
push dword [edi + 0x90]
call ecx
test eax, eax
jne 0x48b624
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebx], eax
xor eax, eax
mov dword [ebp - 0x4028], eax
cmp byte [edi + 0x9c], 0
je 0x48b656
movzx eax, word [edi + 0x9e]
push ebx
push 1
push 0
push 1
neg eax
push eax
push edi
call fcn.0048a170
add esp, 0x18
xor ebx, ebx
jmp case.0x48ad48.27
push ebx
mov eax, 1
push eax
push 0
push eax
neg eax
push eax
push edi
call fcn.0048a170
add esp, 0x18
xor ebx, ebx
jmp case.0x48ad48.27
mov ebx, dword [ebp - 0x4020]
test esi, esi
je 0x48b6af
cmp dword [ebx], 0
jne 0x48b6a7
push 0
lea eax, [ebp - 0x4088]
push eax
push esi
lea eax, [ebp - 0x4004]
push eax
push dword [edi + 0x90]
call ecx
test eax, eax
jne 0x48b6a7
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebx], eax
xor eax, eax
mov dword [ebp - 0x4028], eax
cmp byte [edi + 0x9c], 0
je 0x48b6d7
movzx eax, word [edi + 0x9e]
push ebx
push 1
push eax
push 0
push 0
push edi
call fcn.0048a170
add esp, 0x18
xor ebx, ebx
jmp case.0x48ad48.27
push ebx
mov eax, 1
push eax
push eax
push 0
push 0
push edi
call fcn.0048a170
add esp, 0x18
xor ebx, ebx
jmp case.0x48ad48.27
mov ebx, dword [ebp - 0x4020]
test esi, esi
je 0x48b72f
cmp dword [ebx], 0
jne 0x48b727
push 0
lea eax, [ebp - 0x408c]
push eax
push esi
lea eax, [ebp - 0x4004]
push eax
push dword [edi + 0x90]
call ecx
test eax, eax
jne 0x48b727
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebx], eax
xor eax, eax
mov dword [ebp - 0x4028], eax
cmp byte [edi + 0x9c], 0
je 0x48b759
movzx eax, word [edi + 0x9e]
push ebx
push 1
neg eax
push eax
push 0
push 0
push edi
call fcn.0048a170
add esp, 0x18
xor ebx, ebx
jmp case.0x48ad48.27
push ebx
mov eax, 1
push eax
neg eax
push eax
push 0
push 0
push edi
call fcn.0048a170
add esp, 0x18
xor ebx, ebx
jmp case.0x48ad48.27
mov ebx, dword [ebp - 0x4020]
test esi, esi
je 0x48b7b3
cmp dword [ebx], 0
jne 0x48b7ab
push 0
lea eax, [ebp - 0x4090]
push eax
push esi
lea eax, [ebp - 0x4004]
push eax
push dword [edi + 0x90]
call ecx
test eax, eax
jne 0x48b7ab
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebx], eax
xor eax, eax
mov dword [ebp - 0x4028], eax
cmp byte [edi + 0x9c], 1
jb 0x48b7e1
movzx eax, word [edi + 0x9e]
test ax, ax
je 0x48b7e1
push ebx
push 1
push 0
dec eax
push 0
push eax
push edi
call fcn.0048a170
add esp, 0x18
xor ebx, ebx
jmp case.0x48ad48.27
push ebx
xor eax, eax
push 1
push eax
push eax
push eax
push edi
call fcn.0048a170
add esp, 0x18
xor ebx, ebx
jmp case.0x48ad48.27
mov ebx, dword [ebp - 0x4020]
test esi, esi
je 0x48b835
cmp dword [ebx], 0
jne 0x48b82d
push 0
lea eax, [ebp - 0x4094]
push eax
push esi
lea eax, [ebp - 0x4004]
push eax
push dword [edi + 0x90]
call ecx
test eax, eax
jne 0x48b82d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebx], eax
xor eax, eax
mov dword [ebp - 0x4028], eax
mov dl, byte [edi + 0x9c]
cmp dl, 1
jb 0x48b851
movzx eax, word [edi + 0x9e]
test ax, ax
je 0x48b851
lea ecx, [eax - 1]
jmp 0x48b853
xor ecx, ecx
cmp dl, 2
jb 0x48b87c
movzx eax, word [edi + 0xa0]
test ax, ax
je 0x48b87c
push ebx
push 0
push ecx
dec eax
push 0
push eax
push edi
call fcn.0048a170
add esp, 0x18
xor ebx, ebx
jmp case.0x48ad48.27
push ebx
xor eax, eax
push eax
push ecx
push eax
push eax
push edi
call fcn.0048a170
add esp, 0x18
xor ebx, ebx
jmp case.0x48ad48.27
mov ebx, dword [ebp - 0x4020]
test esi, esi
je 0x48b8cf
cmp dword [ebx], 0
jne 0x48b8c7
push 0
lea eax, [ebp - 0x4098]
push eax
push esi
lea eax, [ebp - 0x4004]
push eax
push dword [edi + 0x90]
call ecx
test eax, eax
jne 0x48b8c7
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebx], eax
xor eax, eax
mov dword [ebp - 0x4028], eax
cmp byte [edi + 0x9c], 0
je 0x48b8fc
movzx eax, word [edi + 0x9e]
cmp eax, 2
ja case.0x48b467.73
push ebx
push 1
push eax
push edi
call fcn.00489bc0
add esp, 0x10
xor ebx, ebx
jmp case.0x48ad48.27
push ebx
xor eax, eax
push 1
push eax
push edi
call fcn.00489bc0
add esp, 0x10
xor ebx, ebx
jmp case.0x48ad48.27
mov ebx, dword [ebp - 0x4020]
test esi, esi
je 0x48b94e
cmp dword [ebx], 0
jne 0x48b946
push 0
lea eax, [ebp - 0x409c]
push eax
push esi
lea eax, [ebp - 0x4004]
push eax
push dword [edi + 0x90]
call ecx
test eax, eax
jne 0x48b946
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebx], eax
xor eax, eax
mov dword [ebp - 0x4028], eax
cmp byte [edi + 0x9c], 0
je 0x48b97b
movzx eax, word [edi + 0x9e]
cmp eax, 2
ja case.0x48b467.73
push ebx
push 0
push eax
push edi
call fcn.00489bc0
add esp, 0x10
xor ebx, ebx
jmp case.0x48ad48.27
xor eax, eax
push ebx
push eax
push eax
push edi
call fcn.00489bc0
add esp, 0x10
xor ebx, ebx
jmp case.0x48ad48.27
mov ebx, dword [ebp - 0x4020]
test esi, esi
je 0x48b9cc
cmp dword [ebx], 0
jne 0x48b9c4
push 0
lea eax, [ebp - 0x40a0]
push eax
push esi
lea eax, [ebp - 0x4004]
push eax
push dword [edi + 0x90]
call ecx
test eax, eax
jne 0x48b9c4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebx], eax
xor eax, eax
mov dword [ebp - 0x4028], eax
push ebx
push edi
call fcn.0048a6f0
add esp, 8
xor ebx, ebx
jmp case.0x48ad48.27
mov ebx, dword [ebp - 0x4020]
test esi, esi
je 0x48ba19
cmp dword [ebx], 0
jne 0x48ba11
push 0
lea eax, [ebp - 0x40c4]
push eax
push esi
lea eax, [ebp - 0x4004]
push eax
push dword [edi + 0x90]
call ecx
test eax, eax
jne 0x48ba11
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebx], eax
xor eax, eax
mov dword [ebp - 0x4028], eax
cmp dword [ebx], 0
jne case.0x48b467.73
lea eax, [ebp - 0x401c]
push eax
push dword [edi + 0x90]
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
je 0x48b04f
lea eax, [ebp - 0x401c]
push eax
call fcn.0048aa40
mov ax, word [ebp - 0x4018]
add esp, 4
or dword [edi + 0x2c], 0x4000000
mov word [edi + 0xa6], ax
mov eax, dword [ebp - 0x4016]
sub eax, dword [0x51803c]
xor ebx, ebx
mov word [edi + 0xa8], ax
jmp case.0x48ad48.27
mov ebx, dword [ebp - 0x4020]
test esi, esi
je 0x48bab7
cmp dword [ebx], 0
jne 0x48baaf
push 0
lea eax, [ebp - 0x40a8]
push eax
push esi
lea eax, [ebp - 0x4004]
push eax
push dword [edi + 0x90]
call ecx
test eax, eax
jne 0x48baaf
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebx], eax
xor eax, eax
mov dword [ebp - 0x4028], eax
cmp dword [ebx], 0
jne case.0x48b467.73
test dword [edi + 0x2c], 0x4000000
je case.0x48b467.73
movsx eax, word [edi + 0xa8]
push ebx
push 0
push eax
movsx eax, word [edi + 0xa6]
push 0
push eax
push edi
call fcn.0048a170
add esp, 0x18
xor ebx, ebx
jmp case.0x48ad48.27
test bl, 8
je 0x48bda4
test bl, 0x40
je 0x48bb33
test bl, bl
js 0x48bb28
cmp edx, 0x22
jne 0x48bb14
and ebx, 0xffbf
jmp case.0x48ad48.27
cmp edx, 0x5c
jne case.0x48ad48.27
or ebx, 0x80
jmp case.0x48ad48.27
and ebx, 0xff7f
jmp case.0x48ad48.27
cmp edx, 7
je 0x48aedf
cmp edx, 0x5c
jne 0x48bb55
test bl, 2
jne 0x48aedf
and ebx, 0xfffd
jmp case.0x48ad48.27
cmp edx, 0x1b
jne 0x48bb62
or ebx, 2
jmp case.0x48ad48.27
cmp edx, 0x22
jne 0x48bb4a
and ebx, 0xff7d
or ebx, 0x40
jmp case.0x48ad48.27
cmp eax, 2
jae 0x48bbbc
test esi, esi
je 0x48bbbc
mov eax, dword [ebp - 0x4020]
cmp dword [eax], 0
jne 0x48bbba
push 0
lea eax, [ebp - 0x40b0]
push eax
push esi
lea eax, [ebp - 0x4004]
push eax
push dword [edi + 0x90]
call ecx
test eax, eax
jne 0x48bbb4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x4020]
mov dword [ecx], eax
mov edx, dword [ebp - 0x402c]
xor esi, esi
sub edx, 0x10000
mov byte [ebp - 0x4022], 0
mov eax, edx
mov dword [ebp - 0x402c], edx
shr eax, 0xa
sub eax, 0x2800
mov word [ebp + esi*2 - 0x4004], ax
mov eax, edx
and eax, 0x3ff
sub eax, 0x2400
mov word [ebp + esi*2 - 0x4002], ax
add esi, 2
mov dword [ebp - 0x4028], esi
jmp case.0x48ad48.27
cmp byte [ebp - 0x4022], 0xa
je 0x48bc66
mov eax, 0x2000
sub eax, esi
cmp eax, 1
jae 0x48bc57
test esi, esi
je 0x48bc57
mov eax, dword [ebp - 0x4020]
cmp dword [eax], 0
jne 0x48bc55
push 0
lea eax, [ebp - 0x405c]
push eax
push esi
lea eax, [ebp - 0x4004]
push eax
push dword [edi + 0x90]
call ecx
test eax, eax
jne 0x48bc4f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x4020]
mov dword [ecx], eax
mov edx, dword [ebp - 0x402c]
xor esi, esi
mov word [ebp + esi*2 - 0x4004], dx
inc esi
mov dword [ebp - 0x4028], esi
mov byte [ebp - 0x4022], dl
mov eax, dword [ebp - 0x4034]
mov esi, dword [ebp - 0x4028]
inc eax
mov ecx, dword [sym.imp.KERNEL32.dll_WriteConsoleW]
mov dword [ebp - 0x4034], eax
cmp eax, dword [ebp - 0x4050]
jb 0x48ac30
mov edx, dword [ebp - 0x4038]
inc edx
mov dword [ebp - 0x4038], edx
cmp edx, dword [ebp + 0x10]
jb 0x48abf0
test esi, esi
je 0x48bce1
mov eax, dword [ebp - 0x4020]
cmp dword [eax], 0
jne 0x48bce1
push 0
lea eax, [ebp - 0x405c]
push eax
push esi
lea eax, [ebp - 0x4004]
push eax
push dword [edi + 0x90]
call ecx
test eax, eax
jne 0x48bce1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x4020]
mov dword [ecx], eax
mov al, byte [ebp - 0x4021]
mov byte [edi + 0x98], al
mov eax, dword [ebp - 0x402c]
mov dword [edi + 0x94], eax
mov al, byte [ebp - 0x4022]
push 0x52402c
mov byte [edi + 0x99], al
mov word [edi + 0x9a], bx
call fcn.0048dae0
mov eax, dword [ebp - 0x4020]
add esp, 4
mov ecx, dword [ebp - 4]
mov eax, dword [eax]
neg eax
pop edi
sbb eax, eax
xor ecx, ebp
pop esi
pop ebx
call fcn.004a4a5b
mov esp, ebp
pop ebp
ret
cmp byte [ebp - 0x4022], 0xd
je 0x48bc09
mov eax, 0x2000
sub eax, esi
cmp eax, 2
jae 0x48bd91
test esi, esi
je 0x48bd91
mov eax, dword [ebp - 0x4020]
cmp dword [eax], 0
jne 0x48bd8f
push 0
lea eax, [ebp - 0x40b4]
push eax
push esi
lea eax, [ebp - 0x4004]
push eax
push dword [edi + 0x90]
call ecx
test eax, eax
jne 0x48bd89
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x4020]
mov dword [ecx], eax
mov edx, dword [ebp - 0x402c]
xor esi, esi
mov dword [ebp + esi*2 - 0x4004], 0xa000d
add esi, 2
jmp 0x48bc60
call fcn.004b2fbd
nop dword [eax]
insb byte es:[edi], dx
mov esp, -1360658360
dec eax
add byte [ebp + 0x4f0048af], bl
lodsd eax, dword [esi]
dec eax
add byte [eax], dl
lodsd eax, dword [esi]
dec eax
add byte [ecx - 0x53], bl
dec eax
add byte [esi - 0x50], bl
dec eax
add byte [eax], al
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
add dword [edx], eax
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
add eax, dword [esi]
push es
push es
push es
push es
push es
push es
push es
push es
push es
add al, 6
add eax, dword [ebx]
add eax, dword [esi]
push es
push es
add eax, 1845501711
mov ah, 72
add dl, dh
mov ah, 0x48
add byte [ecx - 0x4b], dh
dec eax
add al, dh
mov ch, 0x48
add byte [ebx - 0x4a], dh
dec eax
add bl, dh
mov dh, 0x48
add byte [edi - 0x49], dh
dec eax
add cl, bh
mov bh, 0x48
add byte [ebx + 0x120048b8], dl
mov ecx, 0xb9900048
dec eax
add ch, bl
mov ecx, 0xba7b0048
dec eax
add byte [edi - 0x50], dl
dec eax
add byte [eax], al
add dword [edx], eax
add eax, dword [eax + 135071494]
or dword [218959117], ecx
or eax, 218959117
or eax, 218959117
or eax, 218959117
or eax, 218959117
or eax, 218959111
or eax, 218762509
or eax, 185404685
or eax, -858993652
int3