Function at 0x43db0f
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa0
push ebx
push esi
push edi
mov dword [ebp - 0xc], 0xffffffff
mov dword [ebp - 0x88], 1
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x38], 0
push 4
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
jne 0x43db62
jmp 0x43e719
push 1
call fcn.0049c470
add esp, 4
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
movzx eax, ax
xor ecx, ecx
mov cl, ah
test ecx, ecx
jne 0x43db8d
cmp dword [ebp + 0x20], 0
je 0x43db99
mov dword [ebp - 0x80], 1
jmp 0x43dba0
mov dword [ebp - 0x80], 0
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x90], eax
jmp 0x43dc98
mov dword [ebp + 0xc], 0x457
mov eax, dword [ebp - 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x68]
xor ecx, ecx
mov cx, word [eax + 0xde]
mov dword [ebp + 0x10], ecx
mov eax, dword [ebp - 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
jmp case.0x43dcbd.4
mov dword [ebp - 0x84], 1
mov eax, dword [ebp - 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov dword [ebp - 0x68], eax
lea eax, [ebp - 0x58]
push eax
push 1
lea eax, [ebp - 0x6c]
push eax
push 0
mov eax, dword [ebp - 0x68]
push eax
call fcn.004ae123
add esp, 0x14
test eax, eax
jne 0x43dc23
mov dword [ebp - 0x54], 1
jmp 0x43dc2a
mov dword [ebp - 0x54], 0
mov eax, dword [ebp - 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
cmp dword [ebp - 0x54], 0
je 0x43dc43
jmp 0x43e719
jmp case.0x43dcbd.4
push 0x7fff
push 0x7fff
push 0
push 0
lea eax, [ebp - 0x30]
push eax
call dword [sym.imp.USER32.dll_SetRect]
lea eax, [ebp - 0x30]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00454fa6
add esp, 8
cmp dword [ebp - 0x80], 0
je 0x43dc84
jmp 0x43e719
mov dword [0x53110c], 0xffffffff
jmp case.0x43dcbd.4
sub dword [ebp - 0x90], 0x452
cmp dword [ebp - 0x90], 0xa
ja case.0x43dcbd.4
mov eax, dword [ebp - 0x90]
xor ecx, ecx
mov cl, byte [eax + 0x43dcd8]
jmp dword [ecx*4 + 0x43dcc4]
push 0
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x5c], 0
jne 0x43dd01
jmp 0x43e719
mov eax, dword [ebp - 0x5c]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x70]
mov eax, dword [eax + 8]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x5c]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov eax, dword [ebp - 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov dword [ebp - 0x68], eax
cmp dword [ebp + 0x14], 0
je 0x43ddb3
mov dword [0x531134], sym.MSOCht32.EXE_DrawSelect
mov dword [0x531138], 0x431edc
mov dword [0x53113c], 0x4347a6
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0xb6]
mov dword [0x5310dc], eax
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0x1c6]
mov dword [0x5310e0], eax
mov eax, dword [ebp - 0x68]
add eax, 0xce
push eax
push 0x67
push 0x64
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0x26]
push eax
call fcn.00476c98
add esp, 0x10
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 0
je 0x43dda0
jmp 0x43e719
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0xce]
mov dword [0x5310e4], eax
jmp 0x43ddd1
mov dword [0x531134], 0
mov dword [0x531138], 0
mov dword [0x53113c], 0
mov eax, dword [ebp - 0x68]
test byte [eax + 0x22], 0x80
jne 0x43dde3
jmp 0x43e6a9
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x30]
push eax
call dword [sym.imp.USER32.dll_SetRect]
mov eax, dword [ebp - 0x68]
cmp dword [eax + 0xe6], 0
je 0x43de65
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0xe6]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x48]
cmp dword [eax + 0x44], 2
jne 0x43de43
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 0x3c]
shr eax, 0x10
and eax, 0xffff
movsx eax, ax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x48]
movsx eax, word [eax + 0x3c]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0xe6]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push 1
mov eax, dword [ebp - 0x68]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.004adcb0
add esp, 0xc
mov eax, dword [ebp - 0x68]
mov dword [eax + 0x42], 0xffffffff
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x94], eax
jmp 0x43de8f
mov eax, dword [ebp + 0x10]
mov dword [0x53110c], eax
jmp 0x43dec4
cmp dword [ebp - 0x94], 0x454
je 0x43de7d
cmp dword [ebp - 0x94], 0x457
jl 0x43dec4
cmp dword [ebp - 0x94], 0x459
jle 0x43de7d
jmp 0x43dec4
mov eax, dword [ebp - 0x68]
add eax, 0xd6
push eax
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0xde]
push eax
push 0x65
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0x26]
push eax
call fcn.00476c98
add esp, 0x10
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 0
je 0x43defa
jmp 0x43e6a9
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x98], eax
jmp 0x43e13f
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x7c], sym.MSOCht32.EXE__GetLevel
push 0
push 0
mov eax, dword [ebp - 0x7c]
push eax
lea eax, [ebp - 0x74]
push eax
push 0
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0xd6]
push eax
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0x26]
push eax
call fcn.0043808e
add esp, 0x1c
mov dword [ebp - 0x54], eax
inc dword [ebp - 0x74]
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], 1
cmp dword [ebp + 0xc], 0x458
jne 0x43dfe8
mov eax, dword [ebp - 0x74]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 4]
push eax
call fcn.004a894e
add esp, 0xc
test eax, eax
jne 0x43df85
mov dword [ebp - 0x54], 1
jmp 0x43df8c
mov dword [ebp - 0x54], 0
cmp dword [ebp - 0x54], 0
je 0x43df9b
jmp 0x43e6a9
push 1
call fcn.0049c470
add esp, 4
dec dword [ebp - 4]
jns 0x43dfb5
mov dword [ebp - 4], 0
dec dword [ebp - 0x10]
jns 0x43dfc5
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 4]
cmp dword [ebp - 0x10], eax
jge 0x43dfe3
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 4], eax
jmp 0x43dff5
mov eax, dword [ebp - 0x74]
dec eax
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
and eax, 0xffff
shl eax, 0x10
mov ecx, dword [ebp - 0x10]
and ecx, 0xffff
or eax, ecx
mov dword [0x53110c], eax
mov dword [ebp + 0xc], 0x458
mov dword [0x531090], 0x439c74
mov dword [ebp - 0x88], 0
jmp case.0x43e164.7
cmp dword [ebp - 0xc], 0
jl case.0x43e164.3
lea eax, [ebp - 0x4c]
push eax
mov eax, dword [ebp - 0xc]
push eax
push 0x65
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0x26]
push eax
call fcn.00476b89
add esp, 0x10
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 0
jne case.0x43e164.3
mov eax, dword [ebp - 0x4c]
push eax
call fcn.004796fa
add esp, 4
mov eax, dword [ebp - 0x4c]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x50]
push eax
mov eax, dword [ebp - 8]
push eax
call fcn.004379c0
add esp, 8
mov dword [ebp - 0x20], eax
push 1
push 4
mov eax, dword [ebp - 0x20]
add eax, 0x2c
push eax
call fcn.004e43fc
add esp, 0xc
mov eax, dword [ebp - 0x4c]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov eax, dword [ebp - 0x4c]
push eax
call fcn.0047947b
add esp, 4
mov dword [0x531090], sym.MSOCht32.EXE_CHF_SelMsgPG
mov dword [ebp - 0x88], 0
jmp case.0x43e164.7
mov eax, dword [0x53110c]
shr eax, 0x10
and eax, 0xffff
movsx eax, ax
mov ecx, dword [ebp - 0x68]
mov dword [ecx + 0x42], eax
movsx eax, word [0x53110c]
mov ecx, dword [ebp - 0x68]
mov dword [ecx + 0x46], eax
mov dword [0x531090], sym.MSOCht32.EXE_CHF_SelMsgPG
mov dword [ebp - 0x88], 0
jmp case.0x43e164.7
mov dword [ebp + 0xc], 0
mov dword [ebp - 0x38], 1
mov eax, dword [0x53110c]
shr eax, 0x10
and eax, 0xffff
movsx eax, ax
mov dword [ebp - 0x78], eax
movsx eax, word [0x53110c]
mov dword [ebp - 0x3c], eax
jmp case.0x43e164.7
sub dword [ebp - 0x98], 0x44e
cmp dword [ebp - 0x98], 0xb
ja case.0x43e164.7
mov eax, dword [ebp - 0x98]
xor ecx, ecx
mov cl, byte [eax + 0x43e18b]
jmp dword [ecx*4 + 0x43e16b]
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0xe2]
mov dword [0x531140], eax
mov eax, dword [ebp + 8]
mov dword [0x531144], eax
mov eax, dword [ebp - 0x68]
cmp dword [eax + 0x1de], 0
je 0x43e1f8
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_GetDC]
mov dword [ebp - 0x14], eax
push 0
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0x1de]
push eax
mov eax, dword [ebp - 0x14]
push eax
call dword [sym.imp.GDI32.dll_SelectPalette]
mov eax, dword [ebp - 0x14]
push eax
call dword [sym.imp.GDI32.dll_RealizePalette]
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [ebp - 0x68]
test byte [eax + 0x23], 2
jne 0x43e21c
cmp dword [ebp - 0x44], 0
je 0x43e226
cmp dword [ebp - 0x44], 0x1f4
jge 0x43e226
mov dword [0x5310b4], 1
cmp dword [ebp + 0xc], 0
jle 0x43e35e
mov dword [ebp - 0x40], sym.MSOCht32.EXE_CHF_SelMsgL
mov dword [ebp - 0x18], sym.MSOCht32.EXE_CHF_SelMsgPos
mov eax, dword [ebp - 0x80]
push eax
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x40]
push eax
call fcn.00437adb
add esp, 0x10
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_GetDC]
mov dword [ebp - 0x14], eax
push 0x52de90
mov eax, dword [ebp - 0x14]
push eax
call dword [sym.imp.GDI32.dll_GetWindowOrgEx]
mov dword [0x531108], 0
mov dword [0x53109c], 0
mov eax, dword [ebp - 0x68]
add eax, 0xea
mov dword [0x53111c], eax
mov eax, dword [ebp - 0x68]
cmp dword [eax + 0x32], 0
je 0x43e2b8
cmp dword [ebp - 0x80], 0
jne 0x43e2c4
mov eax, dword [0x53111c]
mov dword [eax + 4], 1
mov eax, dword [ebp - 0x68]
add eax, 0x16a
mov dword [0x531120], eax
mov eax, dword [ebp - 0x68]
cmp dword [eax + 0x36], 0
je 0x43e2e8
cmp dword [ebp - 0x80], 0
jne 0x43e2f3
mov eax, dword [0x531120]
mov dword [eax], 1
mov eax, dword [ebp - 0x88]
push eax
push 0
lea eax, [ebp - 0x30]
push eax
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x60]
push ecx
push eax
mov eax, dword [ebp - 0x68]
add eax, 0x6e
mov ecx, dword [eax]
mov eax, dword [eax + 4]
push eax
push ecx
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0xd6]
push eax
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0x26]
push eax
mov eax, dword [ebp - 0x44]
push eax
mov eax, dword [ebp - 0x14]
push eax
call fcn.00438bf4
add esp, 0x2c
mov dword [ebp - 0x54], eax
cmp dword [0x531090], 0
je 0x43e346
mov dword [0x531090], 0
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
cmp dword [0x531098], 0
je 0x43e375
cmp dword [ebp + 0xc], 0
jne 0x43e438
mov dword [ebp - 0x40], sym.MSOCht32.EXE_CHF_DeSelLine
mov dword [ebp - 0x18], sym.MSOCht32.EXE_CHF_DeSelPos
push 0
push 0
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x40]
push eax
call fcn.00437adb
add esp, 0x10
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_GetDC]
mov dword [ebp - 0x14], eax
push 0x52de90
mov eax, dword [ebp - 0x14]
push eax
call dword [sym.imp.GDI32.dll_GetWindowOrgEx]
mov dword [0x531108], 0
mov dword [0x53109c], 1
mov dword [0x53111c], 0
mov dword [0x531120], 0
push 1
push 0
lea eax, [ebp - 0x30]
push eax
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x60]
push ecx
push eax
mov eax, dword [ebp - 0x68]
add eax, 0x6e
mov ecx, dword [eax]
mov eax, dword [eax + 4]
push eax
push ecx
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0xd6]
push eax
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0x26]
push eax
mov eax, dword [ebp - 0x44]
push eax
mov eax, dword [ebp - 0x14]
push eax
call fcn.00438bf4
add esp, 0x2c
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
mov dword [0x5310b4], 0
mov eax, dword [ebp - 0x68]
add eax, 0xea
mov dword [0x53111c], eax
mov eax, dword [ebp - 0x68]
add eax, 0x16a
mov dword [0x531120], eax
mov eax, dword [0x53111c]
test byte [eax + 5], 0x40
jne 0x43e4b1
mov eax, dword [0x531120]
test byte [eax + 1], 0x40
jne 0x43e4b1
mov eax, dword [0x53111c]
cmp dword [eax + 4], 1
jne 0x43e496
mov eax, dword [ebp - 0x68]
cmp dword [eax + 0x32], 0
jne 0x43e4b1
mov eax, dword [0x531120]
cmp dword [eax], 1
jne 0x43e4e0
mov eax, dword [ebp - 0x68]
cmp dword [eax + 0x36], 0
je 0x43e4e0
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_GetDC]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x30]
push eax
mov eax, dword [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x14]
push eax
call fcn.0043cbb3
add esp, 0xc
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0xd6]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x44]
mov ecx, dword [ebp - 0x68]
mov dword [ecx + 0x32], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x48]
mov ecx, dword [ebp - 0x68]
mov dword [ecx + 0x36], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x9c], eax
jmp 0x43e546
cmp dword [ebp - 0x80], 0
jne 0x43e53c
push 1
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0x1d6]
push eax
call fcn.00454abc
add esp, 8
jmp 0x43e55b
cmp dword [ebp - 0x9c], 0x45a
je 0x43e55b
jmp 0x43e51e
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0xd6]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
cmp dword [ebp + 0x24], 0
je 0x43e57c
mov dword [ebp + 0xc], 0
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xa0], eax
jmp 0x43e605
mov eax, dword [ebp + 0x1c]
push eax
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [ebp + 0x18]
push eax
mov eax, dword [ebp - 0x68]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.0043beeb
add esp, 0x14
jmp 0x43e637
cmp dword [ebp - 0x84], 0
jne 0x43e5c7
cmp dword [ebp + 0x1c], 0
je 0x43e5d6
mov dword [ebp - 0x8c], 1
jmp 0x43e5e0
mov dword [ebp - 0x8c], 0
push 0
mov eax, dword [ebp - 0x8c]
push eax
push 0
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.0043c5da
add esp, 0x14
jmp 0x43e637
cmp dword [ebp - 0xa0], 0
je 0x43e637
cmp dword [ebp - 0xa0], 0x457
je 0x43e58f
cmp dword [ebp - 0xa0], 0x459
je 0x43e58f
jmp 0x43e5b0
cmp dword [ebp - 0x38], 0
je 0x43e665
push 1
push 0
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x60]
push ecx
push eax
mov eax, dword [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x78]
push eax
mov eax, dword [ebp - 0x68]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.0043c901
add esp, 0x20
mov eax, dword [ebp - 0x68]
cmp dword [eax + 0xe6], 0
jne 0x43e68f
mov eax, dword [ebp - 0x68]
cmp dword [eax + 0x32], 0
jne 0x43e68f
mov eax, dword [ebp - 0x68]
mov dword [eax + 0xee], 0
mov eax, dword [ebp - 0x68]
cmp dword [eax + 0x36], 0
jne 0x43e6a9
mov eax, dword [ebp - 0x68]
mov dword [eax + 0x16a], 0
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0xd6]
push eax
call fcn.0047947b
add esp, 4
cmp dword [0x531134], 0
je 0x43e6c8
mov dword [0x531134], 0
cmp dword [0x531138], 0
je 0x43e6df
mov dword [0x531138], 0
cmp dword [0x53113c], 0
je 0x43e6f6
mov dword [0x53113c], 0
mov eax, dword [ebp - 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push 0
call fcn.0049c470
add esp, 4
jmp 0x43e719
pop edi
pop esi
pop ebx
leave
ret