Function at 0x5f69e0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x7e6fec
mov eax, dword fs:[0]
push eax
sub esp, 0x108
push esi
push edi
push ecx
lea edi, [ebp - 0x114]
mov ecx, 0x42
mov eax, 0xcccccccc
rep stosd dword es:[edi], eax
pop ecx
mov eax, dword [0x87fbc0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], 0x200
je 0x5f6a5e
cmp dword [ebp - 0x18], 0xa0
je 0x5f6a5e
cmp dword [ebp - 0x18], 0x202
je 0x5f6a5e
cmp dword [ebp - 0x18], 0x205
je 0x5f6a5e
cmp dword [ebp - 0x18], 0x208
jne 0x5f709e
mov esi, esp
push 1
call dword [sym.imp.USER32.dll_GetKeyState]
cmp esi, esp
call fcn.00784930
movsx edx, ax
test edx, edx
jl 0x5f709e
mov esi, esp
push 2
call dword [sym.imp.USER32.dll_GetKeyState]
cmp esi, esp
call fcn.00784930
cwde
test eax, eax
jl 0x5f709e
mov esi, esp
push 4
call dword [sym.imp.USER32.dll_GetKeyState]
cmp esi, esp
call fcn.00784930
movsx ecx, ax
test ecx, ecx
jl 0x5f709e
call fcn.005d0330
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp + 8]
mov eax, dword [edx]
push eax
call fcn.00436870
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
je 0x5f6ae7
mov ecx, dword [ebp - 0x20]
mov edx, dword [ecx + 0x60]
and edx, 0x401
jne 0x5f6ae7
mov ecx, dword [ebp - 0x20]
call fcn.0041dbe0
mov dword [ebp - 0x20], eax
jmp 0x5f6ac6
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x14]
je 0x5f6b0e
cmp dword [ebp - 0x20], 0
jne 0x5f6b09
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x40], 0
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x44], 0xffffffff
jmp 0x5f71e1
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x3c]
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x14]
call fcn.00437130
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x24], 0
je 0x5f6bf1
mov ecx, dword [ebp - 0x24]
call fcn.0041db90
cmp eax, dword [ebp - 0x28]
je 0x5f6bf1
mov edx, dword [ebp - 0x24]
mov eax, dword [edx]
mov esi, esp
mov ecx, dword [eax + 0x68]
mov dword [ebp - 0xe0], ecx
mov edi, esp
mov ecx, dword [ebp - 0xe0]
call dword [0x7f5aac]
cmp edi, esp
call fcn.00784930
mov ecx, dword [ebp - 0x24]
call dword [ebp - 0xe0]
cmp esi, esp
call fcn.00784930
nop
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0xcc], edx
cmp dword [ebp - 0xcc], 0
je 0x5f6bd6
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
mov dword [ebp - 0xe4], edx
mov esi, esp
push 1
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0xe8], eax
mov edi, esp
mov ecx, dword [ebp - 0xe8]
call dword [0x7f5aac]
cmp edi, esp
call fcn.00784930
mov ecx, dword [ebp - 0xcc]
call dword [ebp - 0xe8]
cmp esi, esp
call fcn.00784930
mov dword [ebp - 0xec], eax
jmp 0x5f6be0
mov dword [ebp - 0xec], 0
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x3c], 0
mov dword [ebp - 0x24], 0
cmp dword [ebp - 0x24], 0
jne 0x5f6d38
push 0x1a0
push str.D:_a_work1_s_src_vctoolsVC7LibsShipATLMFCSrcMFC_tooltip.cpp
push 0xa0
call fcn.00412090
mov dword [ebp - 0xd4], eax
mov dword [ebp - 4], 0
cmp dword [ebp - 0xd4], 0
je 0x5f6c38
mov ecx, dword [ebp - 0xd4]
call fcn.005f61e0
mov dword [ebp - 0xf0], eax
jmp 0x5f6c42
mov dword [ebp - 0xf0], 0
mov edx, dword [ebp - 0xf0]
mov dword [ebp - 0xd0], edx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx]
mov eax, dword [edx + 0x16c]
mov dword [ebp - 0xf4], eax
mov esi, esp
push 1
mov ecx, dword [ebp - 0x28]
push ecx
mov edx, dword [ebp - 0xf4]
mov dword [ebp - 0xf8], edx
mov edi, esp
mov ecx, dword [ebp - 0xf8]
call dword [0x7f5aac]
cmp edi, esp
call fcn.00784930
mov ecx, dword [ebp - 0x24]
call dword [ebp - 0xf8]
cmp esi, esp
call fcn.00784930
test eax, eax
jne 0x5f6d1e
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0xd8], eax
cmp dword [ebp - 0xd8], 0
je 0x5f6d0f
mov ecx, dword [ebp - 0xd8]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
mov dword [ebp - 0xfc], eax
mov esi, esp
push 1
mov ecx, dword [ebp - 0xfc]
mov dword [ebp - 0x100], ecx
mov edi, esp
mov ecx, dword [ebp - 0x100]
call dword [0x7f5aac]
cmp edi, esp
call fcn.00784930
mov ecx, dword [ebp - 0xd8]
call dword [ebp - 0x100]
cmp esi, esp
call fcn.00784930
mov dword [ebp - 0x104], eax
jmp 0x5f6d19
mov dword [ebp - 0x104], 0
jmp 0x5f71e1
push 0
push 0
push 0x401
mov ecx, dword [ebp - 0x24]
call fcn.0041f5a0
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
mov dword [edx + 0x3c], eax
push 0x1aa
push str.D:_a_work1_s_src_vctoolsVC7LibsShipATLMFCSrcMFC_tooltip.cpp
mov ecx, dword [ebp - 0x24]
push ecx
call fcn.0047ca40
mov esi, esp
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0x20]
push eax
call dword [sym.imp.USER32.dll_IsWindow]
cmp esi, esp
call fcn.00784930
test eax, eax
jne 0x5f6d79
push 0x1ab
push str.D:_a_work1_s_src_vctoolsVC7LibsShipATLMFCSrcMFC_tooltip.cpp
call fcn.004053b0
test eax, eax
je 0x5f6d79
int3
push 0x30
push 0
lea edx, [ebp - 0x5c]
push edx
call fcn.0078bf70
add esp, 0xc
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x18]
push ecx
mov edx, dword [eax + 0x14]
push edx
lea ecx, [ebp - 0x6c]
call fcn.0044ad20
mov esi, esp
lea eax, [ebp - 0x6c]
push eax
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x20]
push edx
call dword [sym.imp.USER32.dll_ScreenToClient]
cmp esi, esp
call fcn.00784930
push 0x30
push 0
lea eax, [ebp - 0xa4]
push eax
call fcn.0078bf70
add esp, 0xc
mov dword [ebp - 0xa4], 0x2c
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx]
mov eax, dword [edx + 0x7c]
mov dword [ebp - 0x108], eax
mov esi, esp
lea ecx, [ebp - 0xa4]
push ecx
mov edx, dword [ebp - 0x68]
push edx
mov eax, dword [ebp - 0x6c]
push eax
mov ecx, dword [ebp - 0x108]
mov dword [ebp - 0x10c], ecx
mov edi, esp
mov ecx, dword [ebp - 0x10c]
call dword [0x7f5aac]
cmp edi, esp
call fcn.00784930
mov ecx, dword [ebp - 0x14]
call dword [ebp - 0x10c]
cmp esi, esp
call fcn.00784930
mov dword [ebp - 0xac], eax
cmp dword [ebp - 0xac], 0xffffffff
jne 0x5f6e3e
mov dword [ebp - 0x110], 0
jmp 0x5f6e47
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x110]
mov dword [ebp - 0xb0], eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x44]
cmp edx, dword [ebp - 0xac]
jne 0x5f6e73
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x40]
cmp ecx, dword [ebp - 0xb0]
je 0x5f700e
cmp dword [ebp - 0xac], 0xffffffff
je 0x5f6f54
mov ecx, 0xc
lea esi, [ebp - 0xa4]
lea edi, [ebp - 0x5c]
rep movsd dword es:[edi], dword [esi]
mov edx, dword [ebp - 0x58]
and edx, 0x3fffffff
mov dword [ebp - 0x58], edx
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x60]
and ecx, 0x400
je 0x5f6eb3
mov edx, dword [ebp - 0x58]
or edx, 0x20
mov dword [ebp - 0x58], edx
lea eax, [ebp - 0x5c]
push eax
push 0
push 0x404
mov ecx, dword [ebp - 0x24]
call fcn.0041f5a0
test eax, eax
jne 0x5f6ede
push 0x1c1
push str.D:_a_work1_s_src_vctoolsVC7LibsShipATLMFCSrcMFC_tooltip.cpp
call fcn.004053b0
test eax, eax
je 0x5f6ede
int3
mov edx, dword [ebp - 0xa0]
and edx, 0x40000000
jne 0x5f6ef8
mov ecx, dword [ebp - 0x14]
call fcn.00438570
test eax, eax
je 0x5f6f52
push 0
push 1
push 0x401
mov ecx, dword [ebp - 0x24]
call fcn.0041f5a0
nop
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x60]
and ecx, 0x400
je 0x5f6f2c
lea edx, [ebp - 0x5c]
push edx
push 1
push 0x411
mov ecx, dword [ebp - 0x24]
call fcn.0041f5a0
nop
mov esi, esp
push 0x213
push 0
push 0
push 0
push 0
push 0
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x20]
push ecx
call dword [sym.imp.USER32.dll_SetWindowPos]
cmp esi, esp
call fcn.00784930
nop
jmp 0x5f6f66
push 0
push 0
push 0x401
mov ecx, dword [ebp - 0x24]
call fcn.0041f5a0
nop
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0x24]
push eax
call fcn.005f7b40
nop
mov ecx, dword [ebp - 0x1c]
cmp dword [ecx + 0x48], 0
je 0x5f6f9f
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x48]
cmp dword [eax], 0x2c
jb 0x5f6f9f
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x48]
push edx
push 0
push 0x405
mov ecx, dword [ebp - 0x24]
call fcn.0041f5a0
nop
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xb0]
mov dword [eax + 0x40], ecx
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xac]
mov dword [edx + 0x44], eax
mov ecx, dword [ebp - 0x1c]
cmp dword [ecx + 0x48], 0
jne 0x5f6ff9
push 0x1df
push str.D:_a_work1_s_src_vctoolsVC7LibsShipATLMFCSrcMFC_tooltip.cpp
push 0x30
call fcn.00412030
add esp, 0xc
mov dword [ebp - 0xdc], eax
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xdc]
mov dword [edx + 0x48], eax
push 0x30
push 0
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x48]
push edx
call fcn.0078bf70
add esp, 0xc
mov eax, dword [ebp - 0x1c]
mov ecx, 0xc
lea esi, [ebp - 0xa4]
mov edi, dword [eax + 0x48]
rep movsd dword es:[edi], dword [esi]
jmp 0x5f707e
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x60]
and edx, 0x400
je 0x5f7067
mov esi, esp
lea eax, [ebp - 0xbc]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
cmp esi, esp
call fcn.00784930
mov ecx, dword [ebp - 0xbc]
and ecx, 0xffff
movzx edx, cx
mov eax, dword [ebp - 0xb8]
and eax, 0xffff
movzx ecx, ax
shl ecx, 0x10
or edx, ecx
push edx
push 0
push 0x412
mov ecx, dword [ebp - 0x24]
call fcn.0041f5a0
nop
jmp 0x5f707e
cmp dword [ebp - 0xac], 0xffffffff
je 0x5f707e
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0x24]
push eax
call fcn.005f7b40
nop
cmp dword [ebp - 0x80], 0xffffffff
je 0x5f7099
cmp dword [ebp - 0x84], 0
jne 0x5f7099
mov ecx, dword [ebp - 0x80]
push ecx
call fcn.0079ae50
add esp, 4
jmp 0x5f71e1
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0x60]
and eax, 0x401
je 0x5f71e1
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
push edx
call fcn.00436870
mov dword [ebp - 0xc4], eax
cmp dword [ebp - 0xc4], 0
je 0x5f70f8
mov eax, dword [ebp - 0xc4]
cmp eax, dword [ebp - 0x14]
je 0x5f70f8
mov ecx, dword [ebp - 0xc4]
mov edx, dword [ecx + 0x60]
and edx, 0x401
jne 0x5f70f8
mov ecx, dword [ebp - 0xc4]
call fcn.0041dbe0
mov dword [ebp - 0xc4], eax
jmp 0x5f70c0
mov eax, dword [ebp - 0xc4]
cmp eax, dword [ebp - 0x14]
je 0x5f7108
jmp 0x5f71e1
cmp dword [ebp - 0x18], 0x100
jb 0x5f711a
cmp dword [ebp - 0x18], 0x109
jbe 0x5f7138
cmp dword [ebp - 0x18], 0x104
jb 0x5f712c
cmp dword [ebp - 0x18], 0x107
jbe 0x5f7138
mov dword [ebp - 0x114], 0
jmp 0x5f7142
mov dword [ebp - 0x114], 1
mov ecx, dword [ebp - 0x114]
mov dword [ebp - 0xc8], ecx
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0x60]
and eax, 0x400
jne 0x5f71e1
cmp dword [ebp - 0xc8], 0
jne 0x5f71d4
cmp dword [ebp - 0x18], 0x201
je 0x5f71d4
cmp dword [ebp - 0x18], 0x203
je 0x5f71d4
cmp dword [ebp - 0x18], 0x204
je 0x5f71d4
cmp dword [ebp - 0x18], 0x206
je 0x5f71d4
cmp dword [ebp - 0x18], 0x207
je 0x5f71d4
cmp dword [ebp - 0x18], 0x209
je 0x5f71d4
cmp dword [ebp - 0x18], 0xa1
je 0x5f71d4
cmp dword [ebp - 0x18], 0xa3
je 0x5f71d4
cmp dword [ebp - 0x18], 0xa4
je 0x5f71d4
cmp dword [ebp - 0x18], 0xa6
je 0x5f71d4
cmp dword [ebp - 0x18], 0xa7
je 0x5f71d4
cmp dword [ebp - 0x18], 0xa9
jne 0x5f71e1
mov ecx, dword [ebp - 0xc8]
push ecx
call fcn.00434990
nop
push edx
mov ecx, ebp
push eax
lea edx, [0x5f721c]
call fcn.007848d0
pop eax
pop edx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00783b00
add esp, 0x114
cmp ebp, esp
call fcn.00784930
mov esp, ebp
pop ebp
ret 4