Function at 0x401460
Capabilities:
Get keyboard layout
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x5c
mov eax, dword [0x4fc040]
xor eax, esp
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, dword [ebp + 0x10]
push edi
mov dword [esp + 0xc], eax
call fcn.0042c590
mov dword [0x500398], eax
mov eax, dword [ebp + 0xc]
mov dword [0x4fda64], eax
call fcn.00459790
call fcn.004175c0
call fcn.00420c00
call fcn.0041d050
call fcn.0048d4a0
cmp dword [0x500370], 4
jb 0x4014c0
jne 0x4014d0
cmp dword [0x500368], 2
je 0x4014d0
push str.MSWHEEL_ROLLMSG
call dword [sym.imp.USER32.dll_RegisterWindowMessageA]
mov dword [0x4fcbd4], eax
call fcn.0040a9f0
call fcn.00407570
call fcn.0048d720
push 0
mov dword [0x4febe0], eax
call dword [sym.imp.ole32.dll_CoInitialize]
test eax, eax
je 0x401539
cmp eax, 1
je 0x401539
push 0x4d6d90
push str._s_Fatal_Error
call fcn.00490340
add esp, 8
mov esi, eax
push 0x30
push esi
push str.Failed_to_initialize_COM_subsystem
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov ecx, esi
call fcn.00490070
mov ecx, dword [esp + 0x64]
mov eax, 1
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00495b16
mov esp, ebp
pop ebp
ret 0x10
mov edx, esi
call fcn.0040a110
push 0xb0c
push 0
push 0x4fdff0
call fcn.00497aa0
add esp, 0xc
call fcn.00403b00
mov ecx, dword [0x4febe0]
mov edx, 0x80
mov dword [0x4fda60], 0xa
mov dword [0x4fda68], 0x14
mov dword [0x4fda54], 0x19
mov dword [0x4fdfac], 0x1c
call fcn.0048d930
imul eax, dword [0x4fda60]
mov edx, 0x81
mov edi, dword [0x4fda54]
mov ecx, dword [0x4febe0]
add edi, eax
call fcn.0048d930
imul eax, dword [0x4fda68]
lea ecx, [esp + 0x38]
mov esi, dword [0x4fdfac]
add esi, eax
call fcn.00409d50
mov eax, dword [esp + 0x40]
mov ecx, 3
sub eax, dword [esp + 0x38]
cmp edi, eax
cmovle eax, edi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x44]
sub eax, dword [esp + 0x3c]
cmp esi, eax
cmovle eax, esi
mov dword [esp + 0x10], eax
call fcn.00451e50
xor bl, bl
mov ecx, 1
test eax, eax
je 0x401608
test byte [eax + 0x58], cl
movzx ebx, bl
cmovne ebx, ecx
push 0x4d6d90
xor ecx, ecx
call fcn.004903e0
add esp, 4
mov dword [esp + 0x18], eax
xor ecx, ecx
push 0x4d6d90
call fcn.004903e0
add esp, 4
mov dword [0x4febac], eax
xor ecx, ecx
push 0x4d6d90
call fcn.004903e0
mov ecx, dword [0x4febe0]
add esp, 4
mov edx, 0x7a
mov dword [0x4fec1c], eax
call fcn.0048d8a0
test al, al
mov ecx, 0xef0000
mov edi, 0xcf0000
mov edx, 0x7c
cmovne edi, ecx
mov ecx, dword [0x4febe0]
call fcn.0048d930
cmp eax, 1
je 0x40167b
test bl, bl
je 0x401681
and edi, 0xfffaffff
mov ecx, dword [0x4febe0]
mov edx, 0x63
call fcn.0048d8a0
mov ecx, dword [0x4febe0]
mov edx, 0x8c
movzx esi, al
neg esi
sbb esi, esi
and esi, 8
call fcn.0048d8a0
mov ecx, dword [sym.imp.USER32.dll_PeekMessageW]
mov bl, al
push 0
push dword [esp + 0x10]
mov dword [0x4fdfcc], ecx
mov ecx, dword [sym.imp.USER32.dll_DispatchMessageW]
push 0
push 0
push dword [esp + 0x20]
mov dword [0x4febb4], ecx
push dword [esp + 0x28]
mov ecx, dword [sym.imp.USER32.dll_DefWindowProcW]
push SysReAllocString
push SysReAllocString
push edi
mov edi, dword [esp + 0x3c]
push edi
mov byte [0x4fda0f], 1
mov dword [0x4fdb70], ecx
call fcn.004013c0
push eax
mov eax, esi
or eax, 0x200
test bl, bl
cmove eax, esi
push eax
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov dword [0x4fcbe0], eax
test eax, eax
je 0x401c69
xorps xmm0, xmm0
movups xmmword [0x4fdfb4], xmm0
movq qword [0x4fdfc4], xmm0
call fcn.004026e0
mov ecx, edi
call fcn.00490070
xor edx, edx
xor ecx, ecx
call fcn.004027a0
call fcn.00408930
push ecx
mov dword [0x4febcc], 0x4c7790
call fcn.0040d590
add esp, 4
mov dword [0x4fdfd4], eax
call fcn.00401e10
mov edx, dword [0x4febe0]
mov ecx, 0x4fcbe8
call fcn.0041be90
mov dword [0x4fdfd0], eax
call fcn.00417000
mov ecx, dword [0x4febe0]
mov edx, 0x6d
call fcn.0048d930
push eax
push ecx
mov ecx, dword [0x4febe0]
mov edx, 0x80
call fcn.0048d930
mov ecx, dword [0x4febe0]
add esp, 4
mov edx, 0x81
push eax
call fcn.0048d930
mov edx, eax
call fcn.0040d920
add esp, 8
lea eax, [esp + 0x48]
push eax
push dword [0x4fcbe0]
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [esp + 0x38]
push eax
push dword [0x4fcbe0]
call dword [sym.imp.USER32.dll_GetClientRect]
mov ecx, dword [0x4febe0]
mov edx, 0x8d
call fcn.0048d930
mov ecx, dword [0x4fdfd4]
mov dword [0x4fda1c], eax
mov dword [0x4feba0], eax
lea edx, [eax + eax]
sub edx, dword [esp + 0x44]
lea esi, [eax + eax]
mov eax, dword [ecx + 0x128]
imul eax, dword [0x4fda68]
sub edx, dword [esp + 0x4c]
add edx, dword [esp + 0x3c]
add edx, dword [esp + 0x54]
sub esi, dword [esp + 0x40]
sub esi, dword [esp + 0x48]
add eax, edx
add esi, dword [esp + 0x38]
add esi, dword [esp + 0x50]
push 0xe
push eax
mov eax, dword [ecx + 0x12c]
imul eax, dword [0x4fda60]
mov dword [0x4fda54], esi
mov dword [0x4fdfac], edx
add eax, esi
push eax
push 0
push 0
push 0
push dword [0x4fcbe0]
call dword [sym.imp.USER32.dll_SetWindowPos]
mov eax, dword [0x4fda60]
add eax, 0xf
cdq
and edx, 0xf
lea esi, [edx + eax]
mov edx, 1
sar esi, 4
imul esi, dword [0x4fda68]
push 0
add esi, esi
mov ecx, esi
call fcn.0048ffe0
add esp, 4
mov edi, eax
push esi
push 0
push edi
call fcn.00497aa0
add esp, 0xc
push edi
push 1
push 1
push dword [0x4fda68]
push dword [0x4fda60]
call dword [sym.imp.GDI32.dll_CreateBitmap]
mov ecx, edi
mov dword [0x4febb0], eax
call fcn.00490070
push dword [0x4fda68]
push dword [0x4fda60]
push dword [0x4febb0]
push dword [0x4fcbe0]
call dword [sym.imp.USER32.dll_CreateCaret]
mov eax, dword [0x4fdfd4]
push 0
mov dword [esp + 0x4c], 0x1c
mov dword [esp + 0x50], 0x1f
mov ecx, dword [eax + 0x128]
mov dword [esp + 0x54], 0
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], 0
lea eax, [ecx - 1]
mov dword [esp + 0x58], eax
lea eax, [esp + 0x4c]
push eax
push 1
push dword [0x4fcbe0]
call dword [sym.imp.USER32.dll_SetScrollInfo]
mov dword [0x4fec0c], 0
mov dword [0x4fda24], 0
call dword [sym.imp.USER32.dll_GetDoubleClickTime]
push 0
push dword [0x4fcbe0]
mov dword [0x4febc8], eax
call dword [sym.imp.USER32.dll_GetSystemMenu]
mov dword [0x4fec14], eax
call dword [sym.imp.USER32.dll_CreatePopupMenu]
mov ebx, dword [sym.imp.USER32.dll_AppendMenuA]
push 0x4c7098
push 0x190
push 0
push eax
mov dword [0x4fec18], eax
call ebx
push str.Paste
push 0x1a0
push 0
push dword [0x4fec18]
call ebx
call dword [sym.imp.USER32.dll_CreateMenu]
mov dl, 1
mov dword [0x4febc0], eax
mov ecx, 0x4febec
call fcn.004559d0
call fcn.00401f00
xor eax, eax
mov dword [esp + 0xc], eax
nop dword [eax]
mov esi, dword [eax + 0x4fec14]
push 0
push 0
push 0x800
push esi
call ebx
push str.Event_Log
push 0x10
push 0
push esi
call ebx
push 0
push 0
push 0x800
push esi
call ebx
push str.New_Session...
push 0x20
push 0
push esi
call ebx
push str.Duplicate_Session
push 0x30
push 0
push esi
call ebx
push 0x4c70d8
push dword [0x4febc0]
push 0x10
push esi
call ebx
push str.Change_Settings...
push 0x50
push 0
push esi
call ebx
push 0
push 0
push 0x800
push esi
call ebx
push str.Copy_All_to_Clipboard
push 0x170
push 0
push esi
call ebx
push str.Clear_Scrollback
push 0x60
push 0
push esi
call ebx
push str.Reset_Terminal
push 0x70
push 0
push esi
call ebx
push 0
push 0
push 0x800
push esi
call ebx
mov ecx, dword [0x4febe0]
mov edx, 0x7c
push str.Full_Screen
push 0x180
call fcn.0048d930
dec eax
neg eax
sbb eax, eax
inc eax
push eax
push esi
call ebx
push 0
push 0
push 0x800
push esi
call ebx
call fcn.0040aaa0
test al, al
je 0x401aa5
push 0x4c7148
push 0x140
push 0
push esi
call ebx
push 0x4d6d90
push 0x4c7150
call fcn.00490340
add esp, 8
mov edi, eax
push edi
push 0x150
push 0
push esi
call ebx
mov ecx, edi
call fcn.00490070
mov eax, dword [esp + 0xc]
add eax, 4
mov dword [esp + 0xc], eax
cmp eax, 8
jb 0x4019c0
call fcn.0048d320
test al, al
je 0x401af7
mov edx, str.Running_with_restricted_process_ACL
mov ecx, 0x4fcbe8
call fcn.004010d0
mov ecx, dword [0x4fcbe0]
call fcn.004299d0
call fcn.00401150
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
mov ecx, eax
call fcn.00403790
push dword [ebp + 0x14]
push dword [0x4fcbe0]
call dword [sym.imp.USER32.dll_ShowWindow]
push dword [0x4fcbe0]
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov esi, dword [sym.imp.USER32.dll_GetForegroundWindow]
call esi
cmp eax, dword [0x4fcbe0]
sete dl
call fcn.00417020
push dword [0x4fcbe0]
call dword [sym.imp.USER32.dll_UpdateWindow]
push ecx
mov ecx, dword [0x4fcbe0]
mov edx, 0x4fcbe4
call fcn.0040a720
mov edi, dword [sym.imp.USER32.dll_IsWindow]
add esp, 4
mov ebx, dword [sym.imp.USER32.dll_IsDialogMessageA]
call fcn.00429c20
test al, al
jne 0x401bad
push 0
push 0
push 0
push 0
lea eax, [esp + 0x2c]
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
jne 0x401bad
mov dword [esp + 0xc], 0xffffffff
call esi
cmp eax, dword [0x4fcbe0]
sete dl
call fcn.00417020
jmp 0x401bb5
mov dword [esp + 0xc], 0
call fcn.00429db0
push 0x1cff
push dword [esp + 0x10]
mov esi, eax
push 0
push esi
push dword [esi + 0x100]
call dword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
cmp eax, dword [esi + 0x100]
jae 0x401be5
mov edx, eax
mov ecx, esi
call fcn.00429e50
mov ecx, esi
call fcn.00429eb0
push 1
push 0
push 0
push 0
lea eax, [esp + 0x2c]
push eax
call dword [0x4fdfcc]
test eax, eax
je 0x401c50
cmp dword [esp + 0x20], 0x12
je 0x401c60
call fcn.0041c570
mov esi, eax
push esi
call edi
test eax, eax
je 0x401c24
lea eax, [esp + 0x1c]
push eax
push esi
call ebx
test eax, eax
jne 0x401c2f
lea eax, [esp + 0x1c]
push eax
call dword [0x4febb4]
cmp dword [esp + 0x20], 0x8005
jne 0x401c50
push 1
push 0
push 0
push 0
lea eax, [esp + 0x2c]
push eax
call dword [0x4fdfcc]
test eax, eax
jne 0x401c03
call fcn.00429bd0
mov esi, dword [sym.imp.USER32.dll_GetForegroundWindow]
jmp 0x401b73
mov ecx, dword [esp + 0x24]
call fcn.00401ec0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.0048fb60
push eax
push str.Unable_to_create_terminal_window:__s
call fcn.00409890
int3