Function at 0x430c17
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x80
mov dword [ebp - 0x78], ecx
mov eax, dword [ebp - 0x78]
add eax, 0x304
push eax
mov ecx, dword [ebp - 0x78]
call fcn.00433109
test eax, eax
jne 0x430c51
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x78]
call fcn.00409450
jmp 0x4315fa
mov ecx, dword [ebp - 0x78]
mov edx, dword [ecx + 0x304]
mov eax, dword [ecx + 0x308]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10], 0
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
movsx ecx, ax
and ecx, 0x8000
test ecx, ecx
je case.0x430cb0.4
mov edx, dword [ebp + 8]
mov dword [ebp - 0x7c], edx
mov eax, dword [ebp - 0x7c]
sub eax, 0x2d
mov dword [ebp - 0x7c], eax
cmp dword [ebp - 0x7c], 0x2b
ja case.0x430cb0.4
mov edx, dword [ebp - 0x7c]
xor ecx, ecx
mov cl, byte [edx + 0x431614]
jmp dword [ecx*4 + 0x431600]
mov eax, dword [ebp - 0x78]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x78]
call dword [edx + 0xe4]
jmp case.0x430cb0.4
mov eax, dword [ebp - 0x78]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x78]
call dword [edx + 0xd8]
jmp case.0x430cb0.4
mov eax, dword [ebp - 0x78]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x78]
call dword [edx + 0xdc]
jmp case.0x430cb0.4
mov eax, dword [ebp - 0x78]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x78]
call dword [edx + 0xe0]
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
movsx eax, ax
and eax, 0x8000
test eax, eax
je 0x430d1d
cmp dword [ebp + 8], 0x2d
jne 0x430d1d
mov ecx, dword [ebp - 0x78]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x78]
call dword [edx + 0xe0]
cmp dword [ebp + 8], 0x2e
jne 0x430d36
mov eax, dword [ebp - 0x78]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x78]
call dword [edx + 0xb8]
jmp 0x431378
cmp dword [ebp + 8], 0x28
jne 0x430d94
mov dword [ebp - 8], 0
mov eax, dword [ebp - 0x18]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x78]
call fcn.00440c00
cmp dword [ebp - 0x18], eax
jge 0x430d83
mov edx, dword [ebp - 0x18]
push edx
mov ecx, dword [ebp - 0x78]
call fcn.00439ee7
test eax, eax
jle 0x430d78
mov dword [ebp - 8], 1
jmp 0x430d83
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
jmp 0x430d52
cmp dword [ebp - 8], 0
jne 0x430d8f
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x18], ecx
jmp 0x431378
cmp dword [ebp + 8], 0x26
jne 0x430df3
mov dword [ebp - 8], 0
mov edx, dword [ebp - 0x18]
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x18]
sub eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x78]
mov edx, dword [ebp - 0x18]
cmp edx, dword [ecx + 0xd8]
jl 0x430de2
mov eax, dword [ebp - 0x18]
push eax
mov ecx, dword [ebp - 0x78]
call fcn.00439ee7
test eax, eax
jle 0x430dd7
mov dword [ebp - 8], 1
jmp 0x430de2
mov ecx, dword [ebp - 0x18]
sub ecx, 1
mov dword [ebp - 0x18], ecx
jmp 0x430db0
cmp dword [ebp - 8], 0
jne 0x430dee
mov edx, dword [ebp - 4]
mov dword [ebp - 0x18], edx
jmp 0x431378
cmp dword [ebp + 8], 0x27
je 0x430e1b
cmp dword [ebp + 8], 9
jne 0x430efd
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
movsx eax, ax
and eax, 0x8000
test eax, eax
jne 0x430efd
mov dword [ebp - 8], 0
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 0x14]
add edx, 1
mov dword [ebp - 0x14], edx
cmp dword [ebp + 8], 9
jne 0x430ebb
mov ecx, dword [ebp - 0x78]
call fcn.00440c20
cmp dword [ebp - 0x14], eax
jne 0x430ea7
mov ecx, dword [ebp - 0x78]
call fcn.00440c00
sub eax, 1
cmp dword [ebp - 0x18], eax
jge 0x430ea7
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x78]
call fcn.00440c00
cmp dword [ebp - 0x18], eax
jge 0x430e92
mov ecx, dword [ebp - 0x18]
push ecx
mov ecx, dword [ebp - 0x78]
call fcn.00439ee7
test eax, eax
jle 0x430e87
mov dword [ebp - 8], 1
jmp 0x430e92
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
jmp 0x430e61
mov eax, dword [ebp - 0x78]
mov ecx, dword [eax + 0xe0]
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x1c], 1
jmp 0x430ebb
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
mov ecx, dword [ebp - 0x78]
call fcn.00409450
mov ecx, dword [ebp - 0x78]
call fcn.00440c20
cmp dword [ebp - 0x14], eax
jge 0x430eec
mov edx, dword [ebp - 0x14]
push edx
mov ecx, dword [ebp - 0x78]
call fcn.00439f1f
test eax, eax
jle 0x430ee1
mov dword [ebp - 8], 1
jmp 0x430eec
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
jmp 0x430ebb
cmp dword [ebp - 8], 0
jne 0x430ef8
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x14], ecx
jmp 0x431378
cmp dword [ebp + 8], 0x25
je 0x430f26
cmp dword [ebp + 8], 9
jne 0x43100b
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
movsx edx, ax
and edx, 0x8000
test edx, edx
je 0x43100b
mov dword [ebp - 8], 0
mov eax, dword [ebp - 0x14]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x14]
sub ecx, 1
mov dword [ebp - 0x14], ecx
cmp dword [ebp + 8], 9
jne 0x430fc8
mov ecx, dword [ebp - 0x78]
call fcn.00440c60
sub eax, 1
cmp dword [ebp - 0x14], eax
jne 0x430fb4
mov ecx, dword [ebp - 0x78]
call fcn.00440c40
cmp dword [ebp - 0x18], eax
jle 0x430fb4
mov edx, dword [ebp - 0x18]
sub edx, 1
mov dword [ebp - 0x18], edx
mov ecx, dword [ebp - 0x78]
call fcn.00440c40
cmp dword [ebp - 0x18], eax
jle 0x430f9d
mov eax, dword [ebp - 0x18]
push eax
mov ecx, dword [ebp - 0x78]
call fcn.00439ee7
test eax, eax
jle 0x430f92
mov dword [ebp - 8], 1
jmp 0x430f9d
mov ecx, dword [ebp - 0x18]
sub ecx, 1
mov dword [ebp - 0x18], ecx
jmp 0x430f6c
mov ecx, dword [ebp - 0x78]
call fcn.00440c20
sub eax, 1
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], 1
jmp 0x430fc8
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
mov ecx, dword [ebp - 0x78]
call fcn.00409450
mov edx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x14]
cmp eax, dword [edx + 0xe0]
jl 0x430ffa
mov ecx, dword [ebp - 0x14]
push ecx
mov ecx, dword [ebp - 0x78]
call fcn.00439f1f
test eax, eax
jle 0x430fef
mov dword [ebp - 8], 1
jmp 0x430ffa
mov edx, dword [ebp - 0x14]
sub edx, 1
mov dword [ebp - 0x14], edx
jmp 0x430fc8
cmp dword [ebp - 8], 0
jne 0x431006
mov eax, dword [ebp - 4]
mov dword [ebp - 0x14], eax
jmp 0x431378
cmp dword [ebp + 8], 0x22
jne 0x4310aa
push 0
lea ecx, [ebp - 0x4c]
push ecx
mov ecx, dword [ebp - 0x78]
call fcn.004359ee
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], eax
push 0
push 3
push 0x115
mov ecx, dword [ebp - 0x78]
call fcn.0042cd00
mov dword [ebp - 0x10], 1
push 0
lea ecx, [ebp - 0x54]
push ecx
mov ecx, dword [ebp - 0x78]
call fcn.004359ee
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x30]
sub ecx, dword [ebp - 0x24]
mov dword [ebp - 0x28], ecx
cmp dword [ebp - 0x28], 0
je 0x431097
mov edx, dword [ebp - 0x18]
add edx, dword [ebp - 0x28]
mov dword [ebp - 0x18], edx
mov ecx, dword [ebp - 0x78]
call fcn.00440c00
sub eax, 1
cmp dword [ebp - 0x18], eax
jle 0x431095
mov ecx, dword [ebp - 0x78]
call fcn.00440c00
sub eax, 1
mov dword [ebp - 0x18], eax
jmp 0x4310a5
mov ecx, dword [ebp - 0x78]
call fcn.00440c00
sub eax, 1
mov dword [ebp - 0x18], eax
jmp 0x431378
cmp dword [ebp + 8], 0x21
jne 0x431143
push 0
lea eax, [ebp - 0x5c]
push eax
mov ecx, dword [ebp - 0x78]
call fcn.004359ee
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], edx
push 0
push 2
push 0x115
mov ecx, dword [ebp - 0x78]
call fcn.0042cd00
mov dword [ebp - 0x10], 1
push 0
lea eax, [ebp - 0x64]
push eax
mov ecx, dword [ebp - 0x78]
call fcn.004359ee
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0x38]
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0
je 0x431132
mov ecx, dword [ebp - 0x18]
add ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x18]
cmp eax, dword [edx + 0xd8]
jge 0x431130
mov ecx, dword [ebp - 0x78]
mov edx, dword [ecx + 0xd8]
mov dword [ebp - 0x18], edx
jmp 0x43113e
mov eax, dword [ebp - 0x78]
mov ecx, dword [eax + 0xd8]
mov dword [ebp - 0x18], ecx
jmp 0x431378
cmp dword [ebp + 8], 0x24
jne 0x43122f
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
movsx edx, ax
and edx, 0x8000
test edx, edx
je 0x4311ac
push 0
push 6
push 0x115
mov ecx, dword [ebp - 0x78]
call fcn.0042cd00
push 0
push 6
push 0x114
mov ecx, dword [ebp - 0x78]
call fcn.0042cd00
mov dword [ebp - 0x10], 1
mov dword [ebp - 0xc], 1
mov eax, dword [ebp - 0x78]
mov ecx, dword [eax + 0xd8]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x78]
mov eax, dword [edx + 0xe0]
mov dword [ebp - 0x14], eax
jmp 0x4311d0
push 0
push 6
push 0x114
mov ecx, dword [ebp - 0x78]
call fcn.0042cd00
mov dword [ebp - 0xc], 1
mov ecx, dword [ebp - 0x78]
mov edx, dword [ecx + 0xe0]
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp - 0x78]
call fcn.00440c20
sub eax, 1
cmp dword [ebp - 0x14], eax
jge 0x4311fd
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x78]
call fcn.00439f1f
test eax, eax
jle 0x4311f2
jmp 0x4311fd
mov ecx, dword [ebp - 0x14]
add ecx, 1
mov dword [ebp - 0x14], ecx
jmp 0x4311d0
mov ecx, dword [ebp - 0x78]
call fcn.00440c00
sub eax, 1
cmp dword [ebp - 0x18], eax
jge 0x43122a
mov edx, dword [ebp - 0x18]
push edx
mov ecx, dword [ebp - 0x78]
call fcn.00439ee7
test eax, eax
jle 0x43121f
jmp 0x43122a
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
jmp 0x4311fd
jmp 0x431378
cmp dword [ebp + 8], 0x23
jne 0x431320
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
movsx ecx, ax
and ecx, 0x8000
test ecx, ecx
je 0x43129c
push 0
push 7
push 0x115
mov ecx, dword [ebp - 0x78]
call fcn.0042cd00
push 0
push 7
push 0x114
mov ecx, dword [ebp - 0x78]
call fcn.0042cd00
mov dword [ebp - 0xc], 1
mov dword [ebp - 0x10], 1
mov ecx, dword [ebp - 0x78]
call fcn.00440c00
sub eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x78]
call fcn.00440c20
sub eax, 1
mov dword [ebp - 0x14], eax
jmp 0x4312c2
push 0
push 7
push 0x114
mov ecx, dword [ebp - 0x78]
call fcn.0042cd00
mov dword [ebp - 0xc], 1
mov ecx, dword [ebp - 0x78]
call fcn.00440c20
sub eax, 1
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 0x78]
mov eax, dword [edx + 0xe0]
add eax, 1
cmp dword [ebp - 0x14], eax
jle 0x4312f0
mov ecx, dword [ebp - 0x14]
push ecx
mov ecx, dword [ebp - 0x78]
call fcn.00439f1f
test eax, eax
jle 0x4312e5
jmp 0x4312f0
mov edx, dword [ebp - 0x14]
sub edx, 1
mov dword [ebp - 0x14], edx
jmp 0x4312c2
mov eax, dword [ebp - 0x78]
mov ecx, dword [eax + 0xd8]
add ecx, 1
cmp dword [ebp - 0x18], ecx
jle 0x43131e
mov edx, dword [ebp - 0x18]
push edx
mov ecx, dword [ebp - 0x78]
call fcn.00439ee7
test eax, eax
jle 0x431313
jmp 0x43131e
mov eax, dword [ebp - 0x18]
sub eax, 1
mov dword [ebp - 0x18], eax
jmp 0x4312f0
jmp 0x431378
cmp dword [ebp + 8], 0x71
jne 0x43135f
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
lea ecx, [ebp - 0x6c]
call fcn.00440cb0
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [eax]
push edx
mov eax, dword [ebp - 0x78]
mov ecx, dword [eax + 0x308]
push ecx
mov edx, dword [ebp - 0x78]
mov eax, dword [edx + 0x304]
push eax
mov ecx, dword [ebp - 0x78]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x78]
call dword [edx + 0x114]
jmp 0x431378
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
mov ecx, dword [ebp - 0x78]
call fcn.00409450
jmp 0x4315fa
mov eax, dword [ebp - 0x78]
add eax, 0x304
push eax
lea ecx, [ebp - 0x18]
call fcn.00440ba0
test eax, eax
je 0x4315fa
mov ecx, dword [ebp - 0x78]
cmp dword [ecx + 0x2d8], 0
jne 0x431435
mov ecx, dword [ebp - 0x78]
add ecx, 0x348
call fcn.00442540
mov edx, dword [ebp - 0x78]
mov eax, dword [edx + 0x80]
neg eax
sbb eax, eax
add eax, 4
mov ecx, dword [ebp - 0x78]
mov dword [ecx + 0x2d8], eax
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
movsx edx, ax
and edx, 0x8000
test edx, edx
je 0x4313e3
cmp dword [ebp + 8], 9
jne 0x4313f8
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x18]
mov dword [eax + 0x2fc], ecx
mov edx, dword [ebp - 0x14]
mov dword [eax + 0x300], edx
push 0xffffffffffffff9c
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x18]
push ecx
mov ecx, dword [ebp - 0x78]
call fcn.0042fd6b
lea edx, [ebp - 0x18]
push edx
mov ecx, dword [ebp - 0x78]
call fcn.004340e3
push 0xffffffffffffff9b
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x18]
push ecx
mov ecx, dword [ebp - 0x78]
call fcn.0042fd6b
mov edx, dword [ebp - 0x78]
mov dword [edx + 0x2d8], 0
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x18]
push ecx
lea edx, [ebp - 0x74]
push edx
mov ecx, dword [ebp - 0x78]
call fcn.00433605
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x18]
push ecx
mov ecx, dword [ebp - 0x78]
call fcn.0043b37f
test eax, eax
jne 0x4315c0
mov edx, dword [ebp + 8]
mov dword [ebp - 0x80], edx
mov eax, dword [ebp - 0x80]
sub eax, 9
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x80], 0x1f
ja case.0x431485.5
mov edx, dword [ebp - 0x80]
xor ecx, ecx
mov cl, byte [edx + 0x431658]
jmp dword [ecx*4 + 0x431640]
push 0
push 1
push 0x114
mov ecx, dword [ebp - 0x78]
call fcn.0042cd00
mov dword [ebp - 0xc], 1
jmp case.0x431485.5
push 0
push 0
push 0x114
mov ecx, dword [ebp - 0x78]
call fcn.0042cd00
mov dword [ebp - 0xc], 1
jmp case.0x431485.5
push 0
push 1
push 0x115
mov ecx, dword [ebp - 0x78]
call fcn.0042cd00
mov dword [ebp - 0x10], 1
jmp case.0x431485.5
push 0
push 0
push 0x115
mov ecx, dword [ebp - 0x78]
call fcn.0042cd00
mov dword [ebp - 0x10], 1
jmp case.0x431485.5
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
movsx eax, ax
and eax, 0x8000
test eax, eax
je 0x431564
cmp dword [ebp - 0x1c], 0
je 0x43154a
push 0
push 0
push 0x115
mov ecx, dword [ebp - 0x78]
call fcn.0042cd00
mov dword [ebp - 0x10], 1
push 1
mov ecx, dword [ebp - 0x78]
mov edx, dword [ecx + 0x110]
push edx
push 0
mov ecx, dword [ebp - 0x78]
call fcn.0043608f
jmp case.0x431485.5
push 0
push 0
push 0x114
mov ecx, dword [ebp - 0x78]
call fcn.0042cd00
mov dword [ebp - 0xc], 1
jmp case.0x431485.5
cmp dword [ebp - 0x1c], 0
je 0x431592
push 0
push 1
push 0x115
mov ecx, dword [ebp - 0x78]
call fcn.0042cd00
mov dword [ebp - 0x10], 1
push 1
push 0
push 0
mov ecx, dword [ebp - 0x78]
call fcn.0043608f
jmp case.0x431485.5
push 0
push 1
push 0x114
mov ecx, dword [ebp - 0x78]
call fcn.0042cd00
mov dword [ebp - 0xc], 1
lea eax, [ebp - 0x18]
push eax
mov ecx, dword [ebp - 0x78]
call fcn.00440c80
push 1
mov ecx, dword [ebp - 0x78]
call fcn.00409430
lea ecx, [ebp - 0x18]
push ecx
mov ecx, dword [ebp - 0x78]
call fcn.00440c80
cmp dword [ebp - 0xc], 0
je 0x4315e3
push 0
push 8
push 0x114
mov ecx, dword [ebp - 0x78]
call fcn.0042cd00
cmp dword [ebp - 0x10], 0
je 0x4315fa
push 0
push 8
push 0x115
mov ecx, dword [ebp - 0x78]
call fcn.0042cd00
mov esp, ebp
pop ebp
ret 0xc