Function at 0x422f87
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x4c
xor eax, eax
push ebx
push ebp
push esi
mov esi, ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov eax, dword [esi]
mov edx, dword [eax + 0x64]
push edi
push 0x4b0
call edx
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0xa1
mov ebp, eax
call edi
push 0xa0
mov bx, ax
call edi
or bx, ax
and bx, 0x8000
movzx eax, bx
push 0x12
mov dword [esp + 0x14], eax
call edi
and ax, 0x8000
movzx ecx, ax
push 0x11
mov dword [esp + 0x18], ecx
call edi
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x6c]
and ax, 0x8000
movzx ebx, ax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], 0x100
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
call dword [sym.imp.USER32.dll_GetMessageTime]
mov dword [esp + 0x2c], eax
call dword [sym.imp.USER32.dll_GetMessagePos]
movzx edx, ax
shr eax, 0x10
cmp dword [esi + 0x1a0], 0
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], eax
je 0x423339
mov edi, dword [esp + 0x68]
cmp edi, 0x30
mov ebp, 1
jne 0x423085
test bx, bx
je 0x423305
cmp word [esp + 0x14], 0
jne 0x423305
cmp word [esp + 0x10], 0
jne 0x423305
push 0
mov ecx, esi
call fcn.004223a0
jmp 0x423307
cmp edi, 0x31
jne 0x4230b9
test bx, bx
je 0x423305
cmp word [esp + 0x14], 0
jne 0x423305
cmp word [esp + 0x10], 0
jne 0x423305
push 1
mov ecx, esi
call fcn.004223a0
jmp 0x423307
cmp edi, 0x32
jne 0x4230ed
test bx, bx
je 0x423305
cmp word [esp + 0x14], 0
jne 0x423305
cmp word [esp + 0x10], 0
jne 0x423305
push 2
mov ecx, esi
call fcn.004223a0
jmp 0x423307
cmp edi, 0x33
jne 0x423121
test bx, bx
je 0x423305
cmp word [esp + 0x14], 0
jne 0x423305
cmp word [esp + 0x10], 0
jne 0x423305
push 3
mov ecx, esi
call fcn.004223a0
jmp 0x423307
cmp edi, 0x35
jne 0x423162
test bx, bx
je 0x423305
cmp word [esp + 0x14], 0
jne 0x423305
cmp word [esp + 0x10], 0
jne 0x423305
cmp dword [esi + 0x26e], 0
je 0x423305
push 6
mov ecx, esi
call fcn.004223a0
jmp 0x423307
cmp edi, 0x34
jne 0x4231a3
test bx, bx
je 0x423305
cmp word [esp + 0x14], 0
jne 0x423305
cmp word [esp + 0x10], 0
jne 0x423305
cmp dword [esi + 0x26e], 0
je 0x423305
push 5
mov ecx, esi
call fcn.004223a0
jmp 0x423307
cmp edi, 0x66
je 0x4231ad
cmp edi, 0x46
jne 0x4231e0
test bx, bx
mov eax, dword [esp + 0x14]
je 0x4231e4
test ax, ax
jne 0x4231e4
cmp word [esp + 0x10], ax
jne 0x4231e4
mov eax, dword [esi]
mov edx, dword [eax + 0xc0]
push 0
push 0
push 0
push 0x5a3
push 1
mov ecx, esi
call edx
jmp 0x423307
mov eax, dword [esp + 0x14]
cmp edi, 0x20
jne 0x423245
test bx, bx
jne 0x423305
test ax, ax
jne 0x423305
cmp word [esp + 0x10], ax
jne 0x423305
mov eax, dword [esi]
mov edx, dword [eax + 0x1a0]
mov ecx, esi
call edx
test eax, eax
je 0x42322a
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x38c]
call eax
test eax, eax
jne 0x423307
mov ecx, esi
call fcn.00418900
test eax, eax
je 0x423307
mov ecx, esi
call fcn.00417a20
jmp 0x423307
cmp edi, 0x63
je 0x42324f
cmp edi, 0x43
jne 0x42326d
test bx, bx
je 0x42326d
test ax, ax
je 0x42326d
cmp word [esp + 0x10], 0
jne 0x42326d
mov ecx, esi
call fcn.0041d3b0
jmp 0x423307
cmp edi, 0x1b
jne 0x4232a6
test bx, bx
jne 0x423305
test ax, ax
jne 0x423305
cmp word [esp + 0x10], ax
jne 0x423305
mov edx, dword [esi]
mov eax, dword [edx + 0xc0]
push 0
push 0
push 0
push 0x5a3
push 1
mov ecx, esi
call eax
jmp 0x423307
cmp edi, 0x69
je 0x4232b0
cmp edi, 0x49
jne 0x4232c7
test bx, bx
je 0x4232c7
cmp dword [esi + 0x26a], 0
je 0x4232c7
mov ecx, esi
call fcn.004173e0
jmp 0x423307
cmp edi, 0x6b
je 0x4232d1
cmp edi, 0x4b
jne 0x4232e8
test bx, bx
je 0x4232e8
cmp dword [esi + 0x26a], 0
je 0x4232e8
mov ecx, esi
call fcn.0041cad0
jmp 0x423307
cmp edi, 0x74
je 0x4232f2
cmp edi, 0x54
jne 0x423305
test bx, bx
je 0x423305
test ax, ax
je 0x423305
mov ecx, esi
call fcn.0041dbf0
jmp 0x423307
xor ebp, ebp
mov edx, dword [esi]
mov edx, dword [edx + 0xc8]
lea eax, [esp + 0x38]
push eax
mov ecx, esi
mov dword [esp + 0x3c], 0x4e
call edx
mov eax, dword [esp + 0x60]
push edi
push eax
mov ecx, esi
call fcn.0048bbf0
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x4c
ret 0x14
push 0x6b
call edi
movsx ecx, ax
test ecx, 0x10000
jne 0x42335f
push 0x4b
call edi
movsx edx, ax
test edx, 0x10000
mov dword [esp + 0x18], 0
je 0x423367
mov dword [esp + 0x18], 1
mov ecx, dword [esp + 0x68]
cmp ecx, 0x6a
je 0x423379
cmp ecx, 0x4a
jne 0x423445
test bx, bx
jne 0x423445
mov eax, dword [esp + 0x14]
test ax, ax
jne 0x423449
cmp word [esp + 0x10], ax
jne 0x423449
mov eax, dword [esi]
mov edx, dword [eax + 0x1a0]
mov ecx, esi
call edx
mov edi, eax
test edi, edi
je 0x423628
mov eax, dword [edi]
mov edx, dword [eax + 0x38c]
mov ecx, edi
call edx
mov ecx, esi
call fcn.00418900
test eax, eax
jne 0x423436
cmp word [esp + 0x18], ax
je 0x4233e8
push 1
push 0xffffffffffffffff
mov ecx, esi
call fcn.0041a8e0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x4c
ret 0x14
mov eax, dword [edi]
fldz
mov edx, dword [eax + 0x238]
fstp dword [esp + 0x68]
lea ecx, [esp + 0x68]
push ecx
mov ecx, edi
call edx
fld dword [esp + 0x68]
fsub qword [0x5542a8]
fld qword [0x554758]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x42341c
fstp st(1)
jmp 0x42341e
fstp st(0)
fstp dword [esp + 0x60]
fld dword [esp + 0x60]
mov eax, dword [edi]
mov edx, dword [eax + 0x23c]
push ecx
mov ecx, edi
fstp dword [esp]
call edx
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x4c
ret 0x14
mov eax, dword [esp + 0x14]
cmp ecx, 0x6b
je 0x423453
cmp ecx, 0x4b
jne 0x423495
test bx, bx
jne 0x423495
test ax, ax
jne 0x423495
cmp word [esp + 0x10], ax
jne 0x423495
mov eax, dword [esi]
mov edx, dword [eax + 0x1a0]
mov ecx, esi
call edx
mov edi, eax
test edi, edi
je 0x423628
mov eax, dword [edi]
mov edx, dword [eax + 0x38c]
mov ecx, edi
call edx
mov ecx, esi
call fcn.00418900
test eax, eax
jne 0x423436
fldz
jmp 0x423426
cmp ecx, 0x6c
je 0x4234a3
cmp ecx, 0x4c
jne 0x423560
test bx, bx
jne 0x423560
test ax, ax
jne 0x423560
cmp word [esp + 0x10], ax
jne 0x423560
mov eax, dword [esi]
mov edx, dword [eax + 0x1a0]
mov ecx, esi
call edx
mov edi, eax
test edi, edi
je 0x423628
mov eax, dword [edi]
mov edx, dword [eax + 0x38c]
mov ecx, edi
call edx
mov ecx, esi
call fcn.00418900
test eax, eax
jne 0x423436
cmp word [esp + 0x18], ax
je 0x423512
push 1
push 1
mov ecx, esi
call fcn.0041a8e0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x4c
ret 0x14
mov eax, dword [edi]
fldz
mov edx, dword [eax + 0x238]
fstp dword [esp + 0x68]
lea ecx, [esp + 0x68]
push ecx
mov ecx, edi
call edx
fld dword [esp + 0x68]
fadd qword [0x5542a8]
fld qword [0x554750]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x423551
fstp st(1)
fstp dword [esp + 0x60]
fld dword [esp + 0x60]
jmp 0x423426
fstp st(0)
fstp dword [esp + 0x60]
fld dword [esp + 0x60]
jmp 0x423426
lea eax, [esp + 0x1c]
push eax
call fcn.0049c490
mov edi, dword [esp + 0x64]
push eax
push edi
call dword [sym.imp.USER32.dll_TranslateAcceleratorW]
cmp eax, 1
je 0x423436
test ebp, ebp
je 0x423602
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x68]
lea ecx, [esp + 0x60]
push ecx
mov ecx, dword [esp + 0x68]
push edx
push eax
push ecx
push edi
mov ecx, ebp
call fcn.00435740
test eax, eax
je 0x4235b1
mov eax, dword [esp + 0x60]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret 0x14
cmp dword [0x5aa830], 0
je 0x423602
mov ebp, dword [esp + 0x68]
cmp ebp, 0x69
je 0x4235d5
cmp ebp, 0x49
jne 0x4235e0
cmp word [esp + 0x14], 0
jne 0x423606
test bx, bx
jne 0x423606
push 0
mov ecx, esi
call fcn.004176f0
jmp 0x423606
cmp ebp, 0x6f
je 0x4235f7
cmp ebp, 0x4f
jne 0x423606
cmp word [esp + 0x14], 0
jne 0x423606
test bx, bx
jne 0x423606
push 1
mov ecx, esi
call fcn.004176f0
jmp 0x423606
mov ebp, dword [esp + 0x68]
mov edx, dword [esi]
mov edx, dword [edx + 0xc8]
lea eax, [esp + 0x38]
push eax
mov ecx, esi
mov dword [esp + 0x3c], 0x4e
call edx
push ebp
push edi
mov ecx, esi
call fcn.0048bbf0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x4c
ret 0x14