Function at 0x4087e0
Capabilities:
Manipulate console buffer
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x454
mov eax, dword [0x4b2a8c]
xor eax, esp
mov dword [esp + 0x450], eax
push ebx
push esi
push edi
push 0xfffffffffffffff5
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov ebx, dword [ebp + 8]
mov edi, eax
mov eax, dword [0x2611430]
mov byte [eax + 0x2616380], bl
inc eax
mov dword [esp + 0x1c], edi
mov dword [0x2611430], eax
call fcn.00401d70
xor esi, esi
cmp dword [0x2611434], esi
jne 0x40937a
cmp dword [0x2611438], esi
je 0x409314
mov al, byte [0x2616381]
mov ecx, dword [0x2611430]
cmp al, 0x29
je 0x408851
cmp al, 0x28
jne 0x408856
cmp ecx, 3
je 0x4088d4
cmp al, 0x3d
jne 0x4088f5
cmp ecx, 4
jne 0x4088f5
movsx cx, byte [0x2616382]
movsx ax, byte [0x2616383]
add cx, word [0x25f2560]
sub ax, 0x20
sub cx, 0x20
mov word [esp + 0xc], ax
mov word [esp + 0xe], cx
mov edx, dword [esp + 0xc]
push edx
push edi
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
movzx eax, byte [0x4b9462]
mov cl, byte [esp + 0xc]
mov dl, byte [esp + 0xe]
sub dl, byte [0x25f2560]
mov byte [eax*2 + 0x4b9450], cl
movzx eax, byte [0x4b9462]
mov byte [eax*2 + 0x4b9451], dl
mov byte [0x4b800e], 0
mov byte [0x4b8033], 0
mov dword [0x2611438], esi
mov dword [0x2611430], esi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x450]
xor ecx, esp
call fcn.00482caa
mov esp, ebp
pop ebp
ret
cmp bl, 0x61
jb 0x4088ff
cmp bl, 0x7a
jbe 0x408912
cmp bl, 0x41
jb 0x408909
cmp bl, 0x5a
jbe 0x408912
cmp bl, 0x2a
jne 0x40960e
cmp byte [0x4b8033], 0
mov esi, dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
je 0x40897c
cmp byte [0x26112b2], 0
jne 0x40893d
lea ecx, [esp + 0x20]
push ecx
push edi
call esi
movsx edx, word [esp + 0x2c]
mov dword [0x25f2560], edx
movzx eax, byte [0x260dd8d]
movzx dx, byte [eax + eax + 0x4b9451]
movzx cx, byte [eax + eax + 0x4b9450]
add dx, word [0x25f2560]
add eax, eax
mov word [esp + 0xc], cx
mov word [esp + 0xe], dx
mov eax, dword [esp + 0xc]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
mov byte [0x4b8033], 0
lea ecx, [esp + 0x20]
push ecx
mov edx, edi
push edx
call esi
mov ax, word [esp + 0x24]
movzx ecx, word [esp + 0x28]
mov edi, dword [esp + 0x26]
mov word [esp + 0xc], ax
mov al, byte [0x2616381]
mov word [esp + 0xe], di
mov dword [esp + 0x38], ecx
cmp al, 0x44
jne 0x4089b8
lea edx, [edi + 1]
mov word [esp + 0xe], dx
jmp 0x408bf7
cmp al, 0x45
jne 0x4089d0
xor eax, eax
lea ecx, [edi + 1]
mov word [esp + 0xc], ax
mov word [esp + 0xe], cx
jmp 0x408d01
cmp al, 0x4d
jne 0x4089e1
lea edx, [edi - 1]
mov word [esp + 0xe], dx
jmp 0x408bf7
cmp al, 0x2a
jne 0x408a42
mov cx, word [esp + 0x2c]
mov edx, dword [esp + 0x20]
xor eax, eax
mov word [esp + 0x14], ax
movzx eax, word [esp + 0x30]
mov word [esp + 0x16], cx
dec edx
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x20]
mov word [esp + 0x1c], dx
mov edx, dword [0x4b8038]
push edx
mov word [esp + 0x22], ax
mov eax, dword [0x4b8008]
push eax
push 0x24c2200
push ecx
call dword [sym.imp.KERNEL32.dll_WriteConsoleOutputA]
movzx eax, word [esp + 0x2c]
xor edx, edx
mov word [esp + 0xc], dx
mov word [esp + 0xe], ax
jmp 0x408cfd
cmp al, 0x5b
jne 0x408bf7
push 0x400
lea ecx, [esp + 0x4c]
push 0
push ecx
mov dword [esp + 0x48], 0
call fcn.0048f0e0
mov esi, dword [0x2611430]
mov eax, dword [esp + 0x48]
mov edx, 2
add esp, 0xc
cmp esi, edx
jle 0x408ab8
lea esp, [esp]
mov cl, byte [edx + 0x2616380]
cmp cl, 0x30
jl 0x408aae
cmp cl, 0x39
jg 0x408aae
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + eax*4 + 0x48]
movsx ecx, cl
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
mov ecx, dword [esp + 0x3c]
mov dword [esp + ecx*4 + 0x48], eax
mov eax, ecx
jmp 0x408ab3
inc eax
mov dword [esp + 0x3c], eax
inc edx
cmp edx, esi
jl 0x408a80
cmp bl, 0x41
jne 0x408ad8
test eax, eax
mov eax, 1
je 0x408aca
mov eax, dword [esp + 0x48]
mov ecx, edi
sub ecx, eax
mov word [esp + 0xe], cx
jmp 0x408bf7
cmp bl, 0x42
jne 0x408af6
test eax, eax
mov eax, 1
je 0x408aea
mov eax, dword [esp + 0x48]
add eax, edi
mov word [esp + 0xe], ax
jmp 0x408bf7
cmp bl, 0x43
jne 0x408b18
test eax, eax
mov eax, 1
je 0x408b08
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x24]
add eax, edx
mov word [esp + 0xc], ax
jmp 0x408bf7
cmp bl, 0x44
jne 0x408b3a
test eax, eax
mov eax, 1
je 0x408b2a
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x24]
sub ecx, eax
mov word [esp + 0xc], cx
jmp 0x408bf7
cmp bl, 0x48
je 0x4092e2
cmp bl, 0x66
je 0x4092e2
cmp bl, 0x4a
jne 0x408dba
mov edx, dword [esp + 0x28]
call fcn.00404e70
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x408c0a
movzx eax, word [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov esi, dword [sym.imp.KERNEL32.dll_WriteConsoleOutputA]
dec ecx
lea edx, [esp + 0x14]
push edx
mov word [esp + 0x18], ax
mov eax, dword [0x4b8038]
push eax
mov word [esp + 0x20], cx
mov ecx, dword [0x4b8008]
push ecx
mov word [esp + 0x22], di
mov word [esp + 0x26], di
mov edi, dword [esp + 0x28]
push 0x24c2200
push edi
call esi
mov ax, word [esp + 0x30]
cmp word [esp + 0xe], ax
jge 0x408bf3
mov ecx, dword [esp + 0xe]
xor edx, edx
mov word [esp + 0x14], dx
mov edx, dword [esp + 0x20]
inc ecx
mov word [esp + 0x1a], ax
dec edx
lea eax, [esp + 0x14]
push eax
mov word [esp + 0x1a], cx
mov ecx, dword [0x4b8038]
push ecx
mov word [esp + 0x20], dx
mov edx, dword [0x4b8008]
push edx
push 0x24c2200
push edi
call esi
mov edi, dword [esp + 0x26]
cmp word [esp + 0xc], 0
jge 0x408d01
xor eax, eax
jmp 0x408d0d
cmp eax, 1
jne 0x408c9f
mov eax, dword [esp + 0x2c]
cmp di, ax
mov esi, dword [sym.imp.KERNEL32.dll_WriteConsoleOutputA]
jle 0x408c5d
mov edx, dword [esp + 0x20]
xor ecx, ecx
mov word [esp + 0x16], ax
dec edx
lea eax, [esp + 0x14]
push eax
mov eax, dword [esp + 0x20]
mov word [esp + 0x18], cx
mov ecx, dword [0x4b8038]
push ecx
mov word [esp + 0x20], dx
mov edx, dword [0x4b8008]
push edx
push 0x24c2200
dec edi
push eax
mov word [esp + 0x2e], di
call esi
mov ax, word [esp + 0xe]
mov dx, word [esp + 0xc]
xor ecx, ecx
mov word [esp + 0x16], ax
mov word [esp + 0x1a], ax
lea eax, [esp + 0x14]
push eax
mov eax, dword [esp + 0x20]
mov word [esp + 0x18], cx
mov ecx, dword [0x4b8038]
push ecx
mov word [esp + 0x20], dx
mov edx, dword [0x4b8008]
push edx
push 0x24c2200
push eax
jmp 0x408bf1
cmp eax, 2
jne 0x408bf7
mov dx, word [esp + 0x2c]
mov eax, dword [esp + 0x20]
xor ecx, ecx
mov word [esp + 0x16], dx
dec eax
mov word [esp + 0x14], cx
mov cx, word [esp + 0x30]
lea edx, [esp + 0x14]
push edx
mov edx, dword [esp + 0x20]
mov word [esp + 0x1c], ax
mov eax, dword [0x4b8038]
push eax
mov word [esp + 0x22], cx
mov ecx, dword [0x4b8008]
push ecx
push 0x24c2200
push edx
call dword [sym.imp.KERNEL32.dll_WriteConsoleOutputA]
xor eax, eax
mov word [esp + 0xe], ax
xor ecx, ecx
mov word [esp + 0xc], cx
mov edi, dword [esp + 0x26]
mov eax, dword [esp + 0x20]
cmp word [esp + 0xc], ax
jl 0x408d12
dec eax
mov word [esp + 0xc], ax
mov ax, word [esp + 0xe]
mov ecx, dword [esp + 0x2c]
cmp ax, cx
jl 0x408d2a
mov cx, word [esp + 0x30]
cmp ax, cx
jle 0x408d32
mov ax, cx
mov word [esp + 0xe], ax
mov cx, word [esp + 0xc]
cmp cx, word [esp + 0x24]
jne 0x408d43
cmp ax, di
je 0x408d82
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
movzx ecx, byte [0x4b9462]
mov dl, byte [esp + 0xc]
mov al, byte [esp + 0xe]
sub al, byte [esp + 0x2c]
mov byte [ecx*2 + 0x4b9450], dl
movzx ecx, byte [0x4b9462]
mov byte [ecx*2 + 0x4b9451], al
mov byte [0x4b800e], 0
mov eax, dword [esp + 0x38]
cmp ax, word [esp + 0x28]
je 0x408d99
mov edx, dword [esp + 0x1c]
push eax
push edx
call dword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
xor eax, eax
mov dword [0x2611438], eax
mov dword [0x2611430], eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x450]
xor ecx, esp
call fcn.00482caa
mov esp, ebp
pop ebp
ret
cmp bl, 0x4b
jne 0x408e70
mov edx, dword [esp + 0x28]
call fcn.00404e70
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x408e19
mov dx, word [esp + 0x24]
mov eax, dword [esp + 0x20]
dec eax
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x20]
mov word [esp + 0x18], dx
mov edx, dword [0x4b8038]
push edx
mov word [esp + 0x20], ax
mov eax, dword [0x4b8008]
push eax
push 0x24c2200
push ecx
mov word [esp + 0x2a], di
mov word [esp + 0x2e], di
call dword [sym.imp.KERNEL32.dll_WriteConsoleOutputA]
jmp 0x408bf3
cmp eax, 1
jne 0x408e60
mov ax, word [esp + 0x24]
xor edx, edx
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x20]
mov word [esp + 0x18], dx
mov edx, dword [0x4b8038]
push edx
mov word [esp + 0x20], ax
mov eax, dword [0x4b8008]
push eax
push 0x24c2200
push ecx
mov word [esp + 0x2a], di
mov word [esp + 0x2e], di
call dword [sym.imp.KERNEL32.dll_WriteConsoleOutputA]
jmp 0x408bf3
cmp eax, 2
jne 0x408bf7
xor edx, edx
jmp 0x408dd9
cmp bl, 0x4c
jne 0x408f60
mov esi, 1
test eax, eax
je 0x408e86
mov esi, dword [esp + 0x48]
mov eax, dword [esp + 0x20]
movzx ecx, word [esp + 0x30]
mov ebx, dword [esp + 0x1c]
xor edx, edx
dec eax
mov word [esp + 0x14], dx
lea edx, [esp + 0x14]
push edx
mov word [esp + 0x1c], ax
mov eax, dword [0x4b8038]
push eax
mov word [esp + 0x22], cx
mov ecx, dword [0x4b8008]
push ecx
push 0x24c2200
push ebx
mov word [esp + 0x2a], di
call dword [sym.imp.KERNEL32.dll_ReadConsoleOutputA]
mov eax, dword [esp + 0xe]
mov ecx, dword [esp + 0x20]
mov edi, dword [sym.imp.KERNEL32.dll_WriteConsoleOutputA]
xor edx, edx
add esi, eax
dec ecx
mov word [esp + 0x14], dx
mov dx, word [esp + 0x30]
lea eax, [esp + 0x14]
push eax
mov word [esp + 0x1c], cx
mov ecx, dword [0x4b8038]
push ecx
mov word [esp + 0x22], dx
mov edx, dword [0x4b8008]
push edx
push 0x24c2200
push ebx
mov word [esp + 0x2a], si
call edi
mov edx, dword [esp + 0x28]
call fcn.00404e70
movzx ecx, word [esp + 0xe]
mov edx, dword [esp + 0x20]
xor eax, eax
mov word [esp + 0x14], ax
dec edx
lea eax, [esp + 0x14]
push eax
mov word [esp + 0x1a], cx
mov ecx, dword [0x4b8038]
push ecx
mov word [esp + 0x20], dx
mov edx, dword [0x4b8008]
push edx
push 0x24c2200
dec esi
push ebx
mov word [esp + 0x2e], si
call edi
xor eax, eax
mov word [esp + 0xc], ax
jmp 0x408cfd
cmp bl, 0x4d
jne 0x409063
test eax, eax
mov eax, 1
je 0x408f76
mov eax, dword [esp + 0x48]
mov si, word [esp + 0x30]
movsx ecx, di
movsx edx, si
add ecx, eax
cmp ecx, edx
jle 0x408fd2
mov edx, dword [esp + 0x28]
call fcn.00404e70
mov ecx, dword [esp + 0x20]
xor eax, eax
dec ecx
lea edx, [esp + 0x14]
push edx
mov edx, dword [esp + 0x20]
mov word [esp + 0x18], ax
mov eax, dword [0x4b8038]
push eax
mov word [esp + 0x20], cx
mov ecx, dword [0x4b8008]
push ecx
push 0x24c2200
push edx
mov word [esp + 0x2a], di
mov word [esp + 0x2e], si
call dword [sym.imp.KERNEL32.dll_WriteConsoleOutputA]
jmp 0x408cf6
mov edx, dword [esp + 0x20]
add eax, edi
xor ecx, ecx
mov word [esp + 0x16], ax
dec edx
lea eax, [esp + 0x14]
push eax
mov word [esp + 0x18], cx
mov ecx, dword [0x4b8038]
push ecx
mov word [esp + 0x20], dx
mov edx, dword [0x4b8008]
push edx
mov word [esp + 0x26], si
mov esi, dword [esp + 0x28]
push 0x24c2200
push esi
call dword [sym.imp.KERNEL32.dll_ReadConsoleOutputA]
mov cx, word [esp + 0xe]
mov edx, dword [esp + 0x20]
xor eax, eax
dec edx
mov word [esp + 0x14], ax
mov ax, word [esp + 0x30]
mov word [esp + 0x16], cx
lea ecx, [esp + 0x14]
push ecx
mov word [esp + 0x1c], dx
mov edx, dword [0x4b8038]
push edx
mov word [esp + 0x22], ax
mov eax, dword [0x4b8008]
push eax
push 0x24c2200
push esi
call dword [sym.imp.KERNEL32.dll_WriteConsoleOutputA]
mov edx, dword [esp + 0x28]
call fcn.00404e70
jmp 0x408cf6
cmp bl, 0x68
jne 0x409091
cmp byte [0x2616382], 0x3e
jne 0x408bf7
cmp byte [0x2616383], 0x35
jne 0x408bf7
mov dword [0x4b8be4], 0
jmp 0x408bf7
cmp bl, 0x6c
jne 0x4090bf
cmp byte [0x2616382], 0x3e
jne 0x408bf7
cmp byte [0x2616383], 0x35
jne 0x408bf7
mov dword [0x4b8be4], 1
jmp 0x408bf7
cmp bl, 0x6d
jne 0x4091e3
xor ebx, ebx
xor edx, edx
cmp eax, ebx
mov dword [esp + 0x38], 7
mov dword [esp + 0x44], ebx
jle 0x408bf7
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
jmp 0x4090f0
mov eax, dword [esp + edx*4 + 0x48]
cmp eax, 1
jne 0x409101
or ecx, 8
jmp 0x40919e
cmp eax, 4
jne 0x409111
or ecx, 0x8000
jmp 0x40919e
cmp eax, 7
jne 0x40911e
lea ebx, [eax - 6]
jmp 0x40919e
cmp eax, 8
je 0x409196
cmp eax, 0x10
je 0x409196
cmp eax, 0x11
jl 0x409132
cmp eax, 0x17
jle 0x40913c
cmp eax, 0x1e
jl 0x40916f
cmp eax, 0x25
jg 0x40916f
and ecx, 0xfff8
cmp eax, 0x11
jl 0x409151
cmp eax, 0x17
jg 0x409151
add eax, 0xfffffff0
jmp 0x409154
add eax, 0xffffffe2
mov dword [esp + edx*4 + 0x48], eax
test al, 1
je 0x40915f
or ecx, 4
test al, 2
je 0x409166
or ecx, 2
test al, 4
je 0x40919e
or ecx, 1
jmp 0x40919e
cmp eax, 0x28
jl 0x40919e
cmp eax, 0x2f
jg 0x40919e
and ecx, 0xff8f
test al, 1
je 0x409186
or ecx, 0x40
test al, 2
je 0x40918d
or ecx, 0x20
test al, 4
je 0x40919e
or ecx, 0x10
jmp 0x40919e
mov dword [esp + 0x44], 1
inc edx
cmp edx, esi
jl 0x4090f0
mov dword [esp + 0x38], ecx
test ebx, ebx
je 0x4091bc
and ecx, 0xff70
or ecx, 0x70
mov dword [esp + 0x38], ecx
cmp dword [esp + 0x44], 0
je 0x408bf7
mov eax, dword [esp + 0x38]
and eax, 0xfff0
mov edx, eax
shr edx, 4
and edx, 0xf
or eax, edx
mov dword [esp + 0x38], eax
jmp 0x408bf7
cmp bl, 0x6e
jne 0x409288
cmp dword [esp + 0x48], 6
jne 0x408bf7
movsx eax, word [esp + 0x24]
movsx ecx, di
inc eax
push eax
inc ecx
push ecx
lea edx, [esp + 0x454]
push str.e__d__dR
push edx
call fcn.00483265
lea eax, [esp + 0x45c]
add esp, 0x10
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x409222
sub eax, edx
cmp dword [0x26112bc], 0
mov edi, eax
je 0x408bf3
cmp dword [0x26112c0], 0
je 0x408bf3
push 0x4b8054
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
xor esi, esi
test edi, edi
jle 0x409278
jmp 0x409260
movsx eax, byte [esp + esi + 0x44c]
push 0
push eax
call fcn.0040fad0
inc esi
add esp, 8
cmp esi, edi
jl 0x409260
push 0x4b8054
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x408bf3
cmp bl, 0x73
jne 0x4092b1
movsx ecx, word [esp + 0x24]
mov ax, word [esp + 0x28]
movsx edx, di
mov dword [0x2616378], ecx
mov dword [0x2616374], edx
mov word [0x2616370], ax
jmp 0x408bf7
cmp bl, 0x75
jne 0x408bf7
movzx eax, word [0x2616370]
mov cx, word [0x2616378]
mov dx, word [0x2616374]
mov word [esp + 0xc], cx
mov word [esp + 0xe], dx
mov dword [esp + 0x38], eax
jmp 0x408bf7
mov eax, dword [esp + 0x4c]
test eax, eax
jne 0x4092ef
mov eax, 1
dec eax
mov word [esp + 0xc], ax
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x409302
mov eax, 1
mov ecx, dword [esp + 0x2c]
lea edx, [eax + ecx - 1]
mov word [esp + 0xe], dx
jmp 0x408bf7
push ebx
call fcn.00405c90
add esp, 4
test eax, eax
je 0x409340
mov dword [0x2611434], 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x450]
xor ecx, esp
call fcn.00482caa
mov esp, ebp
pop ebp
ret
cmp bl, 0x1b
jne 0x40937a
mov bl, byte [ebp + 0x10]
mov edx, dword [ebp + 0xc]
push 0x1b
mov cl, bl
call fcn.00405d10
add esp, 4
test eax, eax
jne 0x40937d
mov dword [0x2611438], 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x450]
xor ecx, esp
call fcn.00482caa
mov esp, ebp
pop ebp
ret
mov bl, byte [ebp + 0x10]
xor edi, edi
xor esi, esi
cmp dword [0x2611430], edi
mov dword [0x2611434], edi
jle 0x4093fb
nop
cmp dword [0x2611434], 0
mov bl, byte [edi + 0x2616380]
je 0x4093ab
mov dword [0x2611434], 0
jmp 0x4093e8
mov eax, dword [ebp + 8]
push eax
call fcn.00405c90
add esp, 4
test eax, eax
je 0x4093c7
mov dword [0x2611434], 1
jmp 0x4093e8
mov ecx, dword [ebp + 0xc]
mov al, byte [ebp + 8]
push ecx
mov cl, byte [ebp + 0x10]
call fcn.00405cd0
add esp, 4
test eax, eax
je 0x4093e8
mov byte [esi + 0x2616330], 0x5e
inc esi
add bl, 0x40
mov byte [esi + 0x2616330], bl
inc edi
inc esi
cmp edi, dword [0x2611430]
jl 0x409390
mov bl, byte [ebp + 0x10]
cmp byte [0x4b8033], 0
mov edi, dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
mov byte [esi + 0x2616330], 0
je 0x409473
cmp byte [0x26112b2], 0
jne 0x409435
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x20]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
movsx ecx, word [esp + 0x2c]
mov dword [0x25f2560], ecx
movzx eax, byte [0x260dd8d]
movzx dx, byte [eax + eax + 0x4b9450]
add eax, eax
movzx ax, byte [eax + 0x4b9451]
add ax, word [0x25f2560]
mov word [esp + 0xc], dx
mov edx, dword [esp + 0x1c]
mov word [esp + 0xe], ax
mov ecx, dword [esp + 0xc]
push ecx
push edx
call edi
mov byte [0x4b8033], 0
cmp esi, 1
jne 0x4095c1
mov al, byte [0x2616330]
cmp al, 0x1b
jne 0x409492
cmp byte [0x4b5f0d], 0
jne 0x4095c1
mov ecx, dword [ebp + 0xc]
cmp ecx, 0x21
jne 0x4094f7
cmp bl, 2
je 0x409500
cmp bl, 6
jne 0x4094b0
cmp al, 9
je 0x40950c
cmp al, 0x1a
je 0x40950c
cmp al, 0x1b
jmp 0x40950a
cmp bl, 0x40
je 0x409504
cmp al, 8
jne 0x4095c1
mov esi, dword [esp + 0x1c]
lea eax, [esp + 0x20]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
mov eax, dword [esp + 0x24]
test ax, ax
jle 0x409587
mov cx, word [esp + 0x26]
dec eax
mov word [esp + 0xc], ax
mov word [esp + 0xe], cx
mov edx, dword [esp + 0xc]
push edx
push esi
call edi
jmp 0x4095dd
cmp ecx, 0x29
jne 0x4094b5
cmp al, 9
je 0x40950c
cmp al, 0x1a
je 0x40950c
cmp al, 0x1b
je 0x40950c
cmp al, 0xff
jne 0x4094b5
mov esi, dword [esp + 0x1c]
push 0
lea eax, [esp + 0x44]
push eax
push 1
push 0x4a7764
push esi
call dword [sym.imp.KERNEL32.dll_WriteConsoleA]
lea ecx, [esp + 0x20]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
mov eax, dword [esp + 0x24]
test ax, ax
jle 0x409542
mov dx, word [esp + 0x26]
dec eax
jmp 0x409561
mov eax, dword [esp + 0x26]
test ax, ax
jle 0x40955d
mov ecx, dword [esp + 0x20]
dec ecx
dec eax
mov word [esp + 0xc], cx
mov word [esp + 0xe], ax
jmp 0x40956b
xor edx, edx
xor eax, eax
mov word [esp + 0xc], ax
mov word [esp + 0xe], dx
mov edx, dword [esp + 0xc]
lea ecx, [esp + 0x40]
push ecx
push edx
push 1
push 0x2616330
push esi
call fcn.00401bb0
add esp, 0x14
jmp 0x4095dd
mov eax, dword [esp + 0x26]
test ax, ax
jle 0x4095aa
mov ecx, dword [esp + 0x20]
dec ecx
dec eax
mov word [esp + 0xc], cx
mov word [esp + 0xe], ax
mov edx, dword [esp + 0xc]
push edx
push esi
call edi
jmp 0x4095dd
push 0
lea eax, [esp + 0x44]
push eax
push 1
push 0x2616330
push esi
call dword [sym.imp.KERNEL32.dll_WriteConsoleA]
jmp 0x4095dd
mov edx, dword [esp + 0x1c]
push 0
lea ecx, [esp + 0x44]
push ecx
push esi
push 0x2616330
push edx
call dword [sym.imp.KERNEL32.dll_WriteConsoleA]
mov esi, dword [esp + 0x1c]
cmp byte [0x26112b2], 0
mov dword [0x2611430], 0
jne 0x409607
lea eax, [esp + 0x20]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
movsx ecx, word [esp + 0x2c]
mov dword [0x25f2560], ecx
mov byte [0x4b800e], 1
mov ecx, dword [esp + 0x45c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00482caa
mov esp, ebp
pop ebp
ret