Function at 0x413900
Capabilities:
Log keystrokes via polling

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x49201f
push eax
mov eax, dword [0x4b55b8]
mov dword fs:[0], esp
mov eax, dword [eax + 0x1c]
sub esp, 0xc8
push ebx
push ebp
push esi
push edi
xor edi, edi
cmp eax, edi
mov esi, ecx
mov ebp, 0x10
je 0x413d5e
mov ecx, dword [eax]
push eax
call dword [ecx + 0x28]
cmp eax, 0xb
je 0x413add
cmp eax, 0xc
je 0x413add
cmp eax, 0xd
jne 0x413d5e
mov eax, 0x13
mov word [esp + 0x10], ax
mov word [esp + 0x20], ax
mov word [esp + 0x30], ax
mov eax, dword [esp + 0xec]
mov ecx, 2
mov dword [esp + 0x18], ecx
mov dword [esp + 0x28], edi
mov dword [esp + 0x38], eax
add eax, 0xfffffff8
cmp eax, 0x64
mov dword [esp + 0xe0], ecx
ja case.0x41399f.10
movzx edx, byte [eax + 0x413e94]
jmp dword [edx*4 + 0x413e08]
push 0xd0
jmp 0x413a32
push 0x25
jmp 0x413a32
push 0x26
jmp 0x413a32
push 0x27
jmp 0x413a32
push 0x28
jmp 0x413a32
push 0x29
jmp 0x413a32
push 0x2b
jmp 0x413a32
push 0x2a
jmp 0x413a32
push 0x2c
jmp 0x413a32
push 9
jmp 0x413a32
push 0x70
jmp 0x413a32
push 0x71
jmp 0x413a32
push 0x72
jmp 0x413a32
push 0x73
jmp 0x413a32
push 0x74
jmp 0x413a32
push 0x75
jmp 0x413a32
push 0x76
jmp 0x413a32
push 0x77
jmp 0x413a32
push 0x78
jmp 0x413a32
push 0x79
jmp 0x413a32
push 0x7a
jmp 0x413a32
push 0x7b
jmp 0x413a32
push 0xd
jmp 0x413a32
push 0x1b
jmp 0x413a32
push 0x30
jmp 0x413a32
push 0x31
jmp 0x413a32
push 0x32
jmp 0x413a32
push 0x33
jmp 0x413a32
push 0x34
jmp 0x413a32
push 0x35
jmp 0x413a32
push 0x36
jmp 0x413a32
push 0x37
jmp 0x413a32
push 0x38
jmp 0x413a32
push 0x39
lea ecx, [esp + 0x24]
call fcn.00413020
mov ebx, 1
push ebx
lea eax, [esp + 0x48]
push eax
push str.HD_HotkeyMappings
mov dword [esp + 0x50], ebx
call fcn.0043acd0
mov eax, dword [esp + 0x50]
add esp, 0xc
cmp eax, edi
je 0x413acd
cmp word [esp + 0x28], di
je 0x413acd
mov ecx, esi
call fcn.00412f50
test eax, eax
jne 0x413acd
mov edx, dword [0x4b55b8]
lea ecx, [esp + 0x10]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], edi
mov dword [esp + 0x70], 3
mov dword [esp + 0x74], edi
mov eax, dword [edx + 0x1c]
mov ecx, dword [eax]
lea edx, [esp + 0x68]
push edx
mov edx, dword [esi + 4]
push 0x820
push edx
push eax
call dword [ecx + 0x44]
test eax, eax
jne 0x413acd
push 0x403ba0
push 3
push 0x10
lea eax, [esp + 0x1c]
push eax
mov dword [esp + 0xf0], 0xffffffff
call fcn.0048c494
jmp 0x413de9
push 0x403ba0
push 3
lea ecx, [esp + 0x18]
jmp 0x413d4c
mov eax, 0xff99
lea ecx, [esp + 0x68]
mov dword [esp + 0x68], ebp
mov dword [esp + 0x6c], 0x1b
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], 0x78
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x98], ebp
mov dword [esp + 0x9c], 0x79
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0x78], ebp
mov dword [esp + 0x7c], 0x7a
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], 0x7b
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
call fcn.004121b0
test eax, eax
mov ebx, 1
je 0x413b71
mov eax, 0xff01
jmp 0x413bc6
lea ecx, [esp + 0x48]
call fcn.004121b0
test eax, eax
je 0x413b85
mov eax, 0xff11
jmp 0x413bc6
lea ecx, [esp + 0x98]
call fcn.004121b0
test eax, eax
je 0x413b9c
mov eax, 0xff12
jmp 0x413bc6
lea ecx, [esp + 0x78]
call fcn.004121b0
test eax, eax
je 0x413bb0
mov eax, 0xff13
jmp 0x413bc6
lea ecx, [esp + 0x58]
call fcn.004121b0
test eax, eax
je 0x413c71
mov eax, 0xff14
mov edx, dword [esi + 4]
push 0x403ba0
push 0x408d90
push ebx
mov dword [esp + 0x6c], eax
push ebp
lea eax, [esp + 0x58]
push eax
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], 0x101
mov dword [esp + 0x78], edi
call fcn.0048c53e
mov eax, dword [0x4b55b8]
lea edx, [esp + 0x48]
mov dword [esp + 0x78], edx
lea edx, [esp + 0x78]
push edx
mov edx, dword [esi + 4]
lea ecx, [esp + 0x5c]
push 0x820
mov word [esp + 0x50], 0x4000
mov dword [esp + 0x58], ecx
mov dword [esp + 0x84], edi
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], edi
mov eax, dword [eax + 0x1c]
mov ecx, dword [eax]
push edx
push eax
mov dword [esp + 0xf0], edi
call dword [ecx + 0x44]
test eax, eax
push 0x403ba0
push ebx
mov dword [esp + 0xe8], 0xffffffff
push ebp
jne 0x413c67
lea eax, [esp + 0x54]
push eax
call fcn.0048c494
jmp 0x413de9
lea ecx, [esp + 0x54]
push ecx
call fcn.0048c494
mov edx, dword [esi + 4]
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0xf0]
push 0x403ba0
push 0x408d90
push ebx
mov dword [esp + 0xd4], edx
push ebp
lea edx, [esp + 0x98]
push edx
mov dword [esp + 0xe0], 0x101
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], ecx
call fcn.0048c53e
mov edx, dword [0x4b55b8]
lea eax, [esp + 0xc8]
lea ecx, [esp + 0x88]
mov word [esp + 0x88], 0x4000
mov dword [esp + 0x90], eax
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], edi
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], edi
mov eax, dword [edx + 0x1c]
mov ecx, dword [eax]
lea edx, [esp + 0xb8]
push edx
mov edx, dword [esi + 4]
push 0x820
push edx
push eax
mov dword [esp + 0xf0], ebx
call dword [ecx + 0x44]
test eax, eax
push 0x403ba0
push ebx
jne 0x413d45
push ebp
lea eax, [esp + 0x94]
push eax
mov dword [esp + 0xf0], 0xffffffff
call fcn.0048c494
jmp 0x413de9
lea ecx, [esp + 0x90]
push ebp
push ecx
mov dword [esp + 0xf0], 0xffffffff
call fcn.0048c494
mov ebx, dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov dword [esp + 0xa8], edi
mov dword [esp + 0xac], edi
mov dword [esp + 0xb0], edi
mov dword [esp + 0xb4], edi
mov edi, 0x49abbc
mov dword [esp + 0x40], edi
lea esp, [esp]
mov edx, dword [esp + 0xec]
cmp dword [edi - 4], edx
jne 0x413dda
push 0x12
call ebx
push 0x11
movsx ebp, ax
call ebx
movsx eax, ax
push 0x10
or ebp, eax
call ebx
movsx ecx, ax
or ebp, ecx
test ebp, ebp
js 0x413dda
mov edx, dword [esp + 0x40]
mov ebp, dword [edx]
push ebp
mov ecx, esi
call fcn.00412f00
test eax, eax
je 0x413dda
mov eax, dword [esi]
lea ecx, [esp + 0xa8]
push ecx
push ebp
push esi
call dword [eax + 0x28]
mov eax, dword [edi + 0xc]
add edi, 0xc
cmp eax, 0xfffffffe
mov dword [esp + 0x40], edi
jne 0x413d90
mov ecx, dword [esp + 0xd8]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
mov dword fs:[0], ecx
add esp, 0xd4
ret 0x10