Function at 0x484ee2
Capabilities:
Hide graphical window
Log keystrokes

Disassembly:
sub esp, 0xc
push ebx
push edi
mov byte [esp + 0xb], dl
mov edi, ecx
call fcn.0049998e
mov dl, byte [esp + 0xb]
mov ebx, eax
mov dword [esp + 0xc], ebx
lea ecx, [ebx + 0x11e]
mov dword [esp + 0x10], ecx
test dl, dl
jne 0x484f26
cmp dword [ecx], 0
je 0x484f2a
mov edx, str.Cant_show_non_modal_form_when_modal_form_is_displayed
mov ecx, 0x800a0191
call fcn.004951d8
pop edi
pop ebx
add esp, 0xc
ret 4
mov dword [esp + 0x10], ecx
mov eax, dword [edi + 0x48]
push esi
cmp byte [eax + 0x49], 0
jne 0x484f7f
cmp byte [eax + 0x51], 0
jne 0x484f67
test dl, dl
jne 0x484f67
mov esi, dword [eax + 0x3c]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov ebx, dword [sym.imp.USER32.dll_SetForegroundWindow]
cmp eax, esi
je 0x484f54
push esi
call ebx
mov eax, dword [edi + 0x48]
push dword [eax + 0x3c]
call ebx
pop esi
pop edi
xor eax, eax
pop ebx
add esp, 0xc
ret 4
mov edx, str.Form_already_displayed__cant_show_modally
mov ecx, 0x800a0190
call fcn.004951d8
pop esi
pop edi
pop ebx
add esp, 0xc
ret 4
push ebp
mov ebp, dword [ebx + 0x83]
test dl, dl
je 0x484fa3
inc dword [ecx]
mov ecx, dword [esp + 0x20]
test ecx, ecx
jne 0x484f9a
mov ecx, dword [ebx + 0x10e]
mov eax, dword [edi + 0x48]
mov byte [eax + 0x51], 1
jmp 0x484fab
mov ecx, dword [esp + 0x20]
mov byte [eax + 0x51], 0
test ecx, ecx
je 0x485077
mov eax, dword [ecx]
lea edx, [esp + 0x20]
push edx
push 0x4d096c
push ecx
mov dword [esp + 0x2c], 0
call dword [eax]
test eax, eax
js 0x485077
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x485077
mov eax, dword [ecx + 0x48]
test eax, eax
je 0x484fef
mov ebp, eax
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
jmp 0x485018
mov eax, dword [ecx + 0x30]
test eax, eax
je 0x48500e
mov eax, dword [eax + 0xc]
test eax, eax
je 0x48500e
mov eax, dword [eax + 0x48]
test eax, eax
je 0x48500e
mov ebp, eax
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
jmp 0x485018
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
test ebp, ebp
je 0x485077
cmp dword [ebp + 0x3c], 0
jne 0x485035
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax + 0x28]
test ecx, ecx
je 0x485035
mov ecx, dword [ecx + 0x64]
test ecx, ecx
je 0x485035
mov eax, dword [ecx]
push ecx
call dword [eax + 0x34]
mov ecx, dword [edi + 0x48]
mov edx, dword [ecx + 0x14]
cmp edx, ebp
je 0x485077
mov eax, dword [edx + 0x34]
add edx, 0x34
test eax, eax
je 0x48505d
cmp eax, ecx
je 0x485058
lea edx, [eax + 0x10]
mov eax, dword [edx]
test eax, eax
jne 0x485049
jmp 0x48505d
mov eax, dword [ecx + 0x10]
mov dword [edx], eax
mov eax, dword [ebp + 0x34]
mov dword [ecx + 0x10], eax
mov dword [ebp + 0x34], ecx
mov dword [ecx + 0x14], ebp
push dword [ebp + 0x3c]
push 0xfffffffffffffff8
push dword [ecx + 0x3c]
call dword [sym.imp.USER32.dll_SetWindowLongW]
mov eax, dword [edi + 0x48]
mov edx, str.WindowStateINIT
push 0
mov esi, 5
mov byte [eax + 0x48], 0
mov eax, dword [edi + 0x48]
mov byte [eax + 0x49], 0
mov eax, dword [edi + 0x48]
mov byte [eax + 0x4e], 0
mov ecx, dword [edi + 0x48]
mov ecx, dword [ecx + 0x18]
call fcn.0048bf51
cmp eax, 1
jne 0x4850ad
lea esi, [eax + 5]
jmp 0x4850b5
cmp eax, 2
jne 0x4850b5
lea esi, [eax + 1]
cmp byte [esp + 0x13], 0
je 0x4850f8
mov eax, dword [edi + 0x48]
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x4850f8
mov edx, dword [eax + 0x3c]
mov ecx, dword [ecx + 0x3c]
cmp edx, ecx
je 0x4850f8
mov eax, dword [ebx + 0x83]
cmp ecx, dword [eax + 0x3c]
je 0x4850f8
push 0xffffffffffffffec
push edx
call dword [sym.imp.USER32.dll_GetWindowLongW]
and eax, 0xfffbffff
push eax
mov eax, dword [edi + 0x48]
push 0xffffffffffffffec
push dword [eax + 0x3c]
call dword [sym.imp.USER32.dll_SetWindowLongW]
mov eax, dword [edi + 0x48]
push esi
mov bl, byte [eax + 0x4a]
mov byte [eax + 0x4a], 1
mov eax, dword [edi + 0x48]
push dword [eax + 0x3c]
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [edi + 0x48]
mov esi, dword [sym.imp.USER32.dll_GetWindowLongW]
mov byte [eax + 0x4a], bl
mov eax, dword [edi + 0x48]
mov ebx, dword [sym.imp.USER32.dll_SetWindowLongA]
cmp byte [eax + 0x54], 0
je 0x485141
push 0xfffffffffffffff0
push dword [eax + 0x3c]
call esi
and eax, 0xfffeffff
push eax
mov eax, dword [edi + 0x48]
push 0xfffffffffffffff0
push dword [eax + 0x3c]
call ebx
mov eax, dword [edi + 0x48]
cmp byte [eax + 0x55], 0
je 0x485161
push 0xffffffffffffffec
push dword [eax + 0x3c]
call esi
or eax, 0x80
push eax
mov eax, dword [edi + 0x48]
push 0xffffffffffffffec
push dword [eax + 0x3c]
call ebx
mov eax, dword [edi + 0x48]
mov esi, dword [eax + 0x3c]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
cmp eax, esi
je 0x485178
push esi
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov ebx, dword [edi + 0x48]
cmp byte [ebx + 0x51], 0
je 0x4851e1
call fcn.0049998e
mov esi, dword [eax + 0x12a]
test esi, esi
je 0x4851e1
mov edi, edi
cmp esi, ebx
je 0x4851da
push dword [esi + 0x3c]
call dword [sym.imp.USER32.dll_IsWindowEnabled]
test eax, eax
je 0x4851da
push 8
push 8
push dword [0x4a01c8]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ecx, eax
test ecx, ecx
je 0x4851c4
mov dword [ecx], esi
mov dword [ecx + 4], 0
jmp 0x4851c6
xor ecx, ecx
mov eax, dword [ebx + 0x30]
mov dword [ecx + 4], eax
push 0
mov dword [ebx + 0x30], ecx
push dword [esi + 0x3c]
call dword [sym.imp.USER32.dll_EnableWindow]
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x485192
mov ebx, dword [sym.imp.USER32.dll_SetTimer]
mov esi, 1
lea ebx, [ebx]
mov ecx, dword [edi + 0x48]
cmp esi, 1
jl 0x485231
mov eax, dword [ecx + 0x88]
shr eax, 2
cmp esi, eax
ja 0x485231
mov eax, dword [ecx + 0x84]
mov eax, dword [eax + esi*4 - 4]
test eax, eax
je 0x485231
mov edx, dword [eax + 0x30]
test edx, edx
je 0x48522e
cmp word [eax + 0x42], 0
je 0x48522e
push 0
push edx
push dword [eax + 0x34]
push dword [ecx + 0x3c]
call ebx
inc esi
jmp 0x4851f2
cmp byte [esp + 0x13], 0
je 0x48532b
test ecx, ecx
je 0x485317
mov eax, dword [ecx + 0x18]
mov eax, dword [eax + 0x28]
test eax, eax
je 0x485317
mov eax, dword [eax + 0x64]
test eax, eax
je 0x485317
cmp dword [eax + 0x80], 0
je 0x485317
xor dl, dl
call fcn.00484c93
mov ebx, dword [esp + 0x14]
cmp ebp, dword [ebx + 0x83]
je 0x4852fa
mov esi, dword [ebp + 0x3c]
mov edi, dword [sym.imp.USER32.dll_GetForegroundWindow]
call edi
cmp eax, esi
je 0x485297
push esi
mov esi, dword [sym.imp.USER32.dll_SetForegroundWindow]
call esi
jmp 0x48529d
mov esi, dword [sym.imp.USER32.dll_SetForegroundWindow]
push dword [ebp + 0x3c]
call esi
call edi
cmp eax, dword [ebp + 0x3c]
je 0x4852e6
push 0
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, dword [sym.imp.USER32.dll_AttachThreadInput]
mov edi, eax
push 1
push edi
push ebx
call esi
push dword [ebp + 0x3c]
call dword [sym.imp.USER32.dll_BringWindowToTop]
push 5
push dword [ebp + 0x3c]
call dword [sym.imp.USER32.dll_ShowWindow]
push 0
push edi
push ebx
call esi
mov ebx, dword [esp + 0x14]
mov eax, dword [ebx + 0x83]
push dword [eax + 0x3c]
push 0xfffffffffffffff8
push dword [ebp + 0x3c]
call dword [sym.imp.USER32.dll_SetWindowLongW]
mov eax, dword [esp + 0x18]
pop ebp
pop esi
pop edi
dec dword [eax]
movzx eax, byte [ebx + 0x5f]
neg eax
pop ebx
sbb eax, eax
and eax, 0xeaeaea03
add esp, 0xc
ret 4
call fcn.00498819
pop ebp
pop esi
pop edi
mov eax, 0x80004005
pop ebx
add esp, 0xc
ret 4
pop ebp
pop esi
pop edi
xor eax, eax
pop ebx
add esp, 0xc
ret 4