Function at 0x1018af0
Capabilities:
Hide graphical window
Log keystrokes via polling
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x124
push ebx
push esi
push edi
mov dword [ebp - 0x20], 0x60
mov eax, dword [ebp - 0x20]
push eax
call dword [sym.imp.USER32.dll_SetMessageQueue]
test eax, eax
jne 0x1018b1d
dec dword [ebp - 0x20]
jmp 0x1018b03
mov byte [ebp - 0xa0], 0
mov eax, dword [ebp + 0x10]
push eax
lea eax, [ebp - 0xa0]
push eax
call fcn.01046454
add esp, 8
lea eax, [ebp - 0xa0]
push eax
push str.ClTestX_command_line_is_____s____n
lea eax, [ebp - 0x120]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0x120]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 0xa0
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
movsx ebx, ax
push 0xa1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
movsx eax, ax
or ebx, eax
test bh, 0x80
je 0x1018b8d
call dword [sym.imp.KERNEL32.dll_DebugBreak]
call fcn.01019ac0
mov eax, dword [ebp + 8]
mov dword [0x1056420], eax
push str.ClTestMainMenu
push 0x1056300
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.01033b00
call fcn.0101a4b0
cmp dword [ebp + 0xc], 0
jne 0x1018be2
mov eax, dword [ebp + 8]
push eax
call fcn.01018f20
test eax, eax
jne 0x1018be2
xor eax, eax
jmp 0x1018db9
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.010190c0
test eax, eax
jne 0x1018bfc
jmp 0x1018d94
mov eax, dword [ebp + 8]
push eax
call fcn.0100dda0
test eax, eax
jne 0x1018c12
jmp 0x1018d94
call fcn.0101a6f0
call fcn.01024a70
push str.OleInitialize
call fcn.01033bb1
call fcn.010096b0
mov eax, dword [0x104d934]
push eax
push str.New_d
mov eax, dword [0x105643c]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov eax, dword [ebp + 8]
push eax
lea eax, [ebp - 0xa0]
push eax
mov eax, dword [0x10566c0]
push eax
call fcn.0103c8d2
test eax, eax
je 0x1018d43
cmp dword [0x104ed5c], 0
jne 0x1018cdc
push 5
mov eax, dword [0x1056430]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [0x10566c0]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [0x10566c0]
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
cmp dword [ebp + 0x14], 0
je 0x1018cd7
cmp dword [ebp + 0x14], 6
je 0x1018cd7
cmp dword [ebp + 0x14], 2
je 0x1018cd7
cmp dword [ebp + 0x14], 7
je 0x1018cd7
push 0
push 0
push 0x227
mov eax, dword [0x1056430]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x1018d3e
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x124], eax
jmp 0x1018d12
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [0x10566c0]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x1018d3e
push 7
mov eax, dword [0x10566c0]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x1018d3e
cmp dword [ebp - 0x124], 2
je 0x1018cea
cmp dword [ebp - 0x124], 6
jl 0x1018cff
cmp dword [ebp - 0x124], 7
jle 0x1018cea
jmp 0x1018cff
jmp 0x1018d55
push 0
push 0
push 0x10
mov eax, dword [0x10566c0]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
call fcn.010042f0
push str.Start_main_message_loop
call fcn.01033bb1
push 0
push 0
push 0
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.USER32.dll_GetMessageA]
test eax, eax
je 0x1018d8a
lea eax, [ebp - 0x1c]
push eax
call fcn.01018dc0
jmp 0x1018d64
push str.End_main_message_loop
call fcn.01033bb1
push 1
call fcn.01030412
call fcn.01019250
call fcn.0100dec0
call fcn.01019b20
push 0
call fcn.01030412
mov eax, dword [ebp - 0x14]
jmp 0x1018db9
pop edi
pop esi
pop ebx
leave
ret 0x10