Function at 0x4478a0
Capabilities:
Hide graphical window
Log keystrokes

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x44
mov ecx, dword [0x4a13a4]
push ebx
push esi
push edi
push 1
push 0
push 0xffffffffffffffff
push 0x4916f4
mov ebx, eax
call fcn.004668b0
mov esi, dword [ebp + 8]
call fcn.00446b80
mov dword [esp + 0x14], eax
test eax, eax
je 0x447b87
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 0x18]
call fcn.0043b7d0
mov dword [esp + 0x18], eax
test eax, eax
je 0x447b87
mov esi, dword [ebp + 0xc]
mov ecx, eax
push ecx
call fcn.00468140
mov edi, eax
add esp, 4
test edi, edi
je 0x447b87
mov esi, dword [esp + 0x14]
lea eax, [esi - 1]
cmp eax, 0x10
ja case.default.0x44791e
jmp dword [eax*4 + 0x4480b4]
lea edx, [esp + 0x10]
push edx
push 0x7d0
push 2
push 0
push 0
push pe_nt_image_headers32
push edi
call dword [sym.imp.USER32.dll_SendMessageTimeoutA]
test eax, eax
je 0x447b87
xor eax, eax
cmp esi, 1
sete al
cmp dword [esp + 0x10], eax
je case.default.0x44791e
mov ecx, dword [esp + 0x18]
push 0
push ecx
mov byte [esp + 0x17], 0
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov ebx, eax
mov dword [esp + 0x14], ebx
test ebx, ebx
je 0x4479a3
cmp ebx, dword [0x4a2bbc]
je 0x4479a3
mov esi, dword [esp + 0x18]
call fcn.00468640
test al, al
jne 0x4479a3
mov edx, dword [0x4a2bbc]
push 1
push ebx
push edx
call dword [sym.imp.USER32.dll_AttachThreadInput]
test eax, eax
setne byte [esp + 0xf]
mov eax, dword [esp + 0x18]
cmp eax, edi
jne 0x4479b2
mov eax, edi
call fcn.004685d0
push eax
call dword [sym.imp.USER32.dll_SetActiveWindow]
lea eax, [esp + 0x20]
push eax
push edi
call dword [sym.imp.USER32.dll_GetWindowRect]
test eax, eax
jne 0x4479d9
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
sub eax, dword [esp + 0x24]
mov ebx, dword [sym.imp.USER32.dll_PostMessageA]
cdq
sub eax, edx
sar eax, 1
movzx esi, ax
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x20]
shl esi, 0x10
cdq
sub eax, edx
sar eax, 1
movzx ecx, ax
or esi, ecx
push esi
push 1
push 0x201
push edi
call ebx
push esi
push 0
push 0x202
push edi
call ebx
cmp byte [esp + 0xf], 0
je case.default.0x44791e
mov edx, dword [esp + 0x14]
mov eax, dword [0x4a2bbc]
push 0
push edx
push eax
call dword [sym.imp.USER32.dll_AttachThreadInput]
jmp case.default.0x44791e
push 1
push edi
call dword [sym.imp.USER32.dll_EnableWindow]
mov ecx, dword [0x49d3c8]
mov eax, dword [ecx + 0x58]
cmp eax, 0xffffffff
jle 0x447a58
push 1
push eax
call fcn.00401340
add esp, 8
mov ecx, dword [0x4a13a4]
push 1
push 0
push 0xffffffffffffffff
push 0x4900b0
call fcn.004668b0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
push 0
jmp 0x447a38
push 4
push edi
call dword [sym.imp.USER32.dll_ShowWindow]
jmp case.default.0x44791e
push 0
push edi
call dword [sym.imp.USER32.dll_ShowWindow]
jmp case.default.0x44791e
cmp byte [ebx], 0
je 0x447b87
xor eax, eax
cmp esi, 7
sete al
lea eax, [eax*4 - 0x14]
push eax
push edi
mov dword [esp + 0x1c], eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov dword [esp + 0x18], eax
movsx eax, byte [ebx]
push eax
push 0x494a78
call fcn.00477c01
add esp, 8
test eax, eax
jne 0x447ad9
mov esi, ebx
call fcn.00411cd0
mov esi, eax
jmp 0x447b11
lea esi, [ebx + 1]
call fcn.00411cd0
movsx ecx, byte [ebx]
sub ecx, 0x2b
je 0x447b05
sub ecx, 2
je 0x447afb
sub ecx, 0x31
jne 0x447b0d
xor eax, dword [esp + 0x18]
mov esi, eax
jmp 0x447b11
not eax
and eax, dword [esp + 0x18]
mov esi, eax
jmp 0x447b11
or eax, dword [esp + 0x18]
mov esi, eax
jmp 0x447b11
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
cmp esi, ebx
je 0x447a58
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
push esi
mov esi, dword [esp + 0x18]
push esi
push edi
call dword [sym.imp.USER32.dll_SetWindowLongA]
test eax, eax
jne 0x447b40
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x447b87
push esi
push edi
call dword [sym.imp.USER32.dll_GetWindowLongA]
cmp eax, ebx
je 0x447b87
push 1
push 0
push edi
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x447a58
xor edx, edx
lea ecx, [esp + 0x10]
push ecx
push 0x7d0
cmp esi, 9
sete dl
push 2
push 0
push edx
push 0x14f
push edi
call dword [sym.imp.USER32.dll_SendMessageTimeoutA]
test eax, eax
jne case.default.0x44791e
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
cmp byte [ebx], 0
je 0x447ba5
mov esi, ebx
call fcn.0040c2c0
mov esi, eax
jmp 0x447baa
mov esi, 1
cmp dword [esp + 0x14], 0xb
setne al
xor bl, bl
lea eax, [eax + eax + 0x25]
mov byte [esp + 0x18], al
mov eax, dword [esp + 0x18]
push eax
call fcn.00411340
movzx eax, ax
add esp, 4
shl eax, 0x10
test esi, esi
jle case.default.0x44791e
movzx ebx, byte [esp + 0x18]
mov ecx, eax
or ecx, 1
or eax, 0xc0000001
mov dword [esp + 0x18], esi
mov esi, dword [sym.imp.USER32.dll_PostMessageA]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x14]
push ecx
push ebx
push 0x100
push edi
call esi
push 1
push 0
mov dword [0x49d328], 0
call fcn.00401340
mov edx, dword [esp + 0x24]
add esp, 8
push edx
push ebx
push 0x101
push edi
mov dword [0x49d328], 1
call esi
dec dword [esp + 0x18]
jne 0x447bf8
jmp case.default.0x44791e
mov esi, dword [ebp + 0xc]
cmp byte [esi], 0
jne 0x447c59
push 0x20
lea eax, [esp + 0x34]
push eax
push edi
call dword [sym.imp.USER32.dll_GetClassNameA]
lea esi, [esp + 0x30]
push str.Combo
mov eax, esi
call fcn.00464370
add esp, 4
test eax, eax
je 0x447c73
mov eax, 0x143
jmp 0x447c8f
push str.List
mov eax, esi
call fcn.00464370
add esp, 4
test eax, eax
je 0x447b87
mov eax, 0x180
lea ecx, [esp + 0x10]
push ecx
push 0x7d0
push 2
push ebx
push 0
push eax
push edi
call dword [sym.imp.USER32.dll_SendMessageTimeoutA]
test eax, eax
je 0x447b87
mov eax, dword [esp + 0x10]
cmp eax, 0xffffffff
je 0x447cc0
cmp eax, 0xfffffffe
jne case.default.0x44791e
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
cmp byte [ebx], 0
je 0x447b87
mov esi, ebx
call fcn.0040c2c0
mov esi, eax
dec esi
js 0x447b87
mov ebx, dword [ebp + 0xc]
cmp byte [ebx], 0
jne 0x447d01
push 0x20
lea edx, [esp + 0x34]
push edx
push edi
call dword [sym.imp.USER32.dll_GetClassNameA]
lea ebx, [esp + 0x30]
push str.Combo
mov eax, ebx
call fcn.00464370
add esp, 4
test eax, eax
je 0x447d1b
mov eax, 0x144
jmp 0x447d37
push str.List
mov eax, ebx
call fcn.00464370
add esp, 4
test eax, eax
je 0x447b87
mov eax, 0x182
lea ecx, [esp + 0x10]
push ecx
push 0x7d0
push 2
push 0
push esi
push eax
push edi
call dword [sym.imp.USER32.dll_SendMessageTimeoutA]
test eax, eax
je 0x447b87
cmp dword [esp + 0x10], 0xffffffff
jne case.default.0x44791e
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
cmp byte [ebx], 0
je 0x447b87
mov esi, ebx
call fcn.0040c2c0
mov esi, eax
dec esi
js 0x447b87
mov ebx, dword [ebp + 0xc]
cmp byte [ebx], 0
jne 0x447da2
push 0x20
lea edx, [esp + 0x34]
push edx
push edi
call dword [sym.imp.USER32.dll_GetClassNameA]
lea ebx, [esp + 0x30]
push str.Combo
mov eax, ebx
call fcn.00464370
add esp, 4
test eax, eax
je 0x447e7a
mov eax, 0x14e
mov dword [esp + 0x14], 9
lea ecx, [esp + 0x10]
push ecx
push 0x7d0
push 2
push 0
push esi
mov esi, dword [sym.imp.USER32.dll_SendMessageTimeoutA]
push eax
push edi
call esi
test eax, eax
je 0x447b87
cmp dword [esp + 0x10], 0xffffffff
je 0x447b87
push edi
call dword [sym.imp.USER32.dll_GetParent]
mov dword [esp + 0x18], eax
test eax, eax
je 0x447b87
push edi
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
test eax, eax
je 0x447b87
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x10]
push edx
push 0x7d0
movzx ebx, ax
push 2
push edi
mov eax, ebx
or eax, 0x10000
push eax
push 0x111
push ecx
call esi
test eax, eax
je 0x447b87
movzx eax, word [esp + 0x14]
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x10]
push edx
push 0x7d0
push 2
push edi
shl eax, 0x10
or eax, ebx
push eax
push 0x111
push ecx
call esi
test eax, eax
jne case.default.0x44791e
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
push str.List
mov eax, ebx
call fcn.00464370
add esp, 4
test eax, eax
je 0x447b87
push 0xfffffffffffffff0
push edi
call dword [sym.imp.USER32.dll_GetWindowLongA]
and eax, 0x808
neg eax
sbb eax, eax
add eax, 0x186
mov dword [esp + 0x14], 2
cmp eax, 0x185
jne 0x447dc6
lea eax, [esp + 0x10]
push eax
push 0x7d0
push 2
push esi
mov esi, dword [sym.imp.USER32.dll_SendMessageTimeoutA]
push 1
push 0x185
push edi
call esi
test eax, eax
jne 0x447de7
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov esi, dword [ebp + 0xc]
cmp byte [esi], 0
jne 0x447f08
push 0x20
lea edx, [esp + 0x34]
push edx
push edi
call dword [sym.imp.USER32.dll_GetClassNameA]
lea esi, [esp + 0x30]
push str.Combo
mov eax, esi
call fcn.00464370
add esp, 4
test eax, eax
je 0x447fe1
mov eax, 0x14d
mov dword [esp + 0x14], 9
lea edx, [esp + 0x10]
push edx
push 0x7d0
push 2
push ebx
mov ebx, dword [sym.imp.USER32.dll_SendMessageTimeoutA]
push 1
push eax
push edi
call ebx
test eax, eax
je 0x447b87
cmp dword [esp + 0x10], 0xffffffff
je 0x447b87
push edi
call dword [sym.imp.USER32.dll_GetParent]
mov dword [esp + 0x18], eax
test eax, eax
je 0x447b87
push edi
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
test eax, eax
je 0x447b87
mov edx, dword [esp + 0x18]
movzx esi, ax
lea eax, [esp + 0x10]
push eax
push 0x7d0
push 2
push edi
mov ecx, esi
or ecx, 0x10000
push ecx
push 0x111
push edx
call ebx
test eax, eax
je 0x447b87
movzx ecx, word [esp + 0x14]
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x10]
push eax
push 0x7d0
push 2
push edi
shl ecx, 0x10
or ecx, esi
push ecx
push 0x111
push edx
call ebx
test eax, eax
jne case.default.0x44791e
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
push str.List
mov eax, esi
call fcn.00464370
add esp, 4
test eax, eax
je 0x447b87
push 0xfffffffffffffff0
push edi
call dword [sym.imp.USER32.dll_GetWindowLongA]
and eax, 0x808
neg eax
sbb eax, eax
and eax, 3
add eax, 0x18c
mov dword [esp + 0x14], 2
cmp eax, 0x18f
jne 0x447f2c
lea eax, [esp + 0x1c]
push eax
push 0x7d0
push 2
push ebx
mov ebx, dword [sym.imp.USER32.dll_SendMessageTimeoutA]
push 0xffffffffffffffff
push 0x18f
push edi
call ebx
test eax, eax
je 0x448075
mov eax, dword [esp + 0x1c]
cmp eax, 0xffffffff
je 0x448075
lea ecx, [esp + 0x10]
push ecx
push 0x7d0
push 2
push eax
push 1
push 0x185
push edi
call ebx
test eax, eax
je 0x448075
cmp dword [esp + 0x10], 0xffffffff
jne 0x447f58
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
lea eax, [esp + 0x10]
push eax
push 0x7d0
push 2
push ebx
push 1
push 0xc2
push edi
call dword [sym.imp.USER32.dll_SendMessageTimeoutA]
test eax, eax
jne case.default.0x44791e
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 0x18