Function at 0x43efa0
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x12c
mov eax, dword [esp + 0x138]
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x140]
movsx ebp, ax
shr eax, 0x10
cmp edi, 0x201
mov esi, ecx
mov byte [esp + 0x13], 0
movsx ebx, ax
je 0x43efe8
cmp edi, 0x204
je 0x43efe8
cmp edi, 0x202
je 0x43efe8
cmp edi, 0x205
jne 0x43f061
call fcn.005ffb10
mov eax, dword [eax + 0x30]
test eax, eax
mov dword [esp + 0x14], eax
mov ecx, eax
je 0x43f007
mov eax, dword [ecx + 0x300]
shr eax, 8
test al, 1
je 0x43f04b
mov eax, dword [0x74cdc4]
cmp ecx, eax
jne 0x43f01a
mov dl, byte [eax + 0x620]
test dl, dl
jne 0x43f04b
cmp edi, 0x204
jne 0x43f061
test ecx, ecx
je 0x43f779
mov ecx, dword [esp + 0x14]
call fcn.005e8a40
test eax, eax
je 0x43f779
mov ecx, dword [esp + 0x14]
cmp dword [0x74cdc8], ecx
je 0x43f779
pop edi
pop esi
mov byte [esp + 0xb], 0
mov al, byte [esp + 0xb]
pop ebp
pop ebx
add esp, 0x12c
ret 0xc
cmp edi, 0x201
ja 0x43f779
je 0x43f5ee
sub edi, 0x100
je 0x43f1ae
sub edi, 4
je 0x43f1ae
sub edi, 0xfc
jne case.default.0x43f3f2
mov al, byte [esp + 0x144]
test al, 1
mov dword [esi + 0xc60], ebp
mov dword [esi + 0xc64], ebx
jne 0x43f0b2
mov byte [esi + 0xc70], 0
mov bl, 2
test bl, al
jne 0x43f0bf
mov byte [esi + 0xc71], 0
call fcn.004605f0
cmp dword [eax + 0x170], 0x16
jne case.default.0x43f3f2
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0xb4]
test al, al
je 0x43f109
push 0xffff0000
push 0x6d3c84
mov ecx, 0x74cdb0
call fcn.00463940
pop edi
pop esi
mov byte [esp + 0xb], 1
mov al, byte [esp + 0xb]
pop ebp
pop ebx
add esp, 0x12c
ret 0xc
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x5c]
test byte [eax + 0x19], bl
jne 0x43f8ab
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x5c]
test byte [eax + 1], bl
jne 0x43f8ab
mov eax, dword [esi + 0xc64]
mov ecx, dword [esi + 0xc60]
push eax
push ecx
xor edi, edi
lea edx, [esp + 0x30]
mov dword [esi + 0xc90], edi
mov ecx, dword [0x74c650]
push edx
call fcn.00433e90
mov ecx, dword [eax]
mov dword [esi + 0xca0], ecx
mov edx, dword [eax + 4]
mov dword [esi + 0xca4], edx
mov dword [esi + 0xc94], 1
mov byte [esi + 0xb88], 1
mov al, byte [0x74f165]
test al, al
je 0x43f191
mov al, byte [esp + 0x13]
mov dword [esi + 0xca8], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x12c
ret 0xc
mov eax, dword [esi + 0xc78]
pop edi
mov dword [esi + 0xca8], eax
mov al, byte [esp + 0xf]
pop esi
pop ebp
pop ebx
add esp, 0x12c
ret 0xc
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
call edi
test ax, ax
mov ebx, dword [esp + 0x144]
jge 0x43f20e
push 0x10
call edi
test ax, ax
jge 0x43f20e
cmp ebx, 0x58
jne 0x43f20e
mov ecx, dword [0x74c650]
mov eax, dword [ecx + 0x45c]
test eax, eax
je 0x43f20e
mov edx, dword [eax + 0x3c]
shr edx, 2
test dl, 1
je 0x43f20e
mov ecx, dword [0x74ce44]
call fcn.0044f1b0
pop edi
pop esi
mov byte [esp + 0xb], 1
mov al, byte [esp + 0xb]
pop ebp
pop ebx
add esp, 0x12c
ret 0xc
push 0x11
call edi
test ax, ax
jge 0x43f23f
cmp ebx, 0x58
jne 0x43f23f
push 0xff
call fcn.004a0c40
add esp, 4
pop edi
pop esi
mov byte [esp + 0xb], 1
mov al, byte [esp + 0xb]
pop ebp
pop ebx
add esp, 0x12c
ret 0xc
xor edi, edi
mov ebp, 5
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jge 0x43f27f
mov ecx, dword [esp + 0x144]
lea eax, [edi + 0x31]
cmp ecx, eax
jne 0x43f27f
mov ebx, 5
jmp 0x43f270
mov ecx, dword [0x74cdec]
push edi
call fcn.004f0d00
dec ebx
jne 0x43f270
inc edi
dec ebp
jne 0x43f246
mov ebx, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
call ebx
test ax, ax
mov edi, dword [esp + 0x144]
jge 0x43f2be
cmp edi, 0xc0
jne 0x43f2be
mov ecx, esi
call fcn.0051c050
pop edi
pop esi
mov byte [esp + 0xb], 1
mov al, byte [esp + 0xb]
pop ebp
pop ebx
add esp, 0x12c
ret 0xc
mov ecx, dword [0x74ce5c]
xor ebp, ebp
cmp ecx, ebp
je 0x43f2d8
push edi
call fcn.00479520
test al, al
jne 0x43f8ab
cmp edi, 0x44
jne 0x43f308
mov al, byte [0x725ea0]
test al, al
je 0x43f356
call fcn.00494770
pop edi
pop esi
mov byte [esp + 0xb], 1
mov al, byte [esp + 0xb]
pop ebp
mov byte [0x725ea0], 0
pop ebx
add esp, 0x12c
ret 0xc
cmp edi, 0xc0
jne 0x43f31a
push ebp
mov ecx, esi
call fcn.00436060
jmp 0x43f356
cmp edi, 0x31
jne 0x43f342
push 0x11
call ebx
test ax, ax
jge 0x43f356
mov eax, dword [0x74cf00]
cmp eax, ebp
je 0x43f356
mov ecx, dword [eax + 0x444]
cmp ecx, ebp
je 0x43f356
call fcn.0044a9d0
jmp 0x43f356
cmp edi, 0x41
jne 0x43f356
mov ecx, esi
call fcn.004343f0
test al, al
jne 0x43f8ab
push 0x11
call ebx
test ax, ax
jl 0x43f37f
cmp edi, 0x46
jne 0x43f3ad
call fcn.00494120
pop edi
pop esi
mov byte [esp + 0xb], 1
mov al, byte [esp + 0xb]
pop ebp
pop ebx
add esp, 0x12c
ret 0xc
push 0x11
call ebx
test ax, ax
jge 0x43f3ad
cmp edi, 0x46
jne 0x43f3ad
mov ecx, 0x74cdb0
call fcn.00468060
pop edi
pop esi
mov byte [esp + 0xb], 1
mov al, byte [esp + 0xb]
pop ebp
pop ebx
add esp, 0x12c
ret 0xc
mov eax, dword [0x74cdc4]
cmp eax, ebp
je 0x43f3c0
mov cl, byte [eax + 0x4e4]
mov byte [esp + 0x1b], cl
push ebp
lea edx, [esp + 0x1f]
push edx
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x28]
push ecx
call fcn.00410fb0
mov ecx, eax
call fcn.004191e0
test al, al
je case.default.0x43f3f2
mov eax, dword [esp + 0x1c]
dec eax
cmp eax, 4
ja case.default.0x43f3f2
jmp dword [eax*4 + 0x43f8c4]
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x5c]
mov cl, byte [eax + 0x19]
mov bl, 2
test bl, cl
jne 0x43f448
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x5c]
test byte [eax + 1], bl
jne 0x43f448
mov ecx, dword [esp + 0x14]
push ecx
call fcn.00437d80
add esp, 4
test eax, eax
je 0x43f8ab
push eax
mov ecx, esi
call fcn.00439480
pop edi
pop esi
mov byte [esp + 0xb], 1
mov al, byte [esp + 0xb]
pop ebp
pop ebx
add esp, 0x12c
ret 0xc
call fcn.0040f720
mov al, byte [esp + 0x13]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x12c
ret 0xc
mov edx, dword [0x74c650]
mov ebx, dword [edx + 0x458]
mov eax, dword [esp + 0x14]
push eax
mov ecx, ebx
call fcn.00403fe0
mov edi, eax
test edi, edi
je 0x43f49e
mov ecx, edi
call fcn.004332f0
test al, al
je 0x43f49e
cmp dword [edi + 0x54], 1
je 0x43f4b9
mov al, byte [esp + 0x13]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x12c
ret 0xc
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x18]
push edx
mov ecx, ebx
mov dword [esp + 0x2c], 1
call fcn.00420070
mov edi, eax
test edi, edi
je case.default.0x43f3f2
mov eax, dword [0x74df40]
movzx edx, byte [0x74df42]
mov edi, dword [edi + 0x2c]
movzx ecx, ah
and ecx, edx
movzx edx, byte [0x74df43]
movzx eax, al
and edx, eax
or ecx, edx
mov eax, ecx
and eax, reloc.WS2_32.dll_getsockopt
jns 0x43f4f1
dec eax
or eax, 0xfffffff8
inc eax
push edi
mov ecx, esi
call dword [esi + eax*4 + 0xcbc]
pop edi
pop esi
pop ebp
mov byte [esp + 7], al
pop ebx
add esp, 0x12c
ret 0xc
mov esi, dword [esp + 0x14]
push str.dataicons.gl
lea ecx, [esp + 0x34]
mov byte [esp + 0x34], 0
mov dword [esp + 0x138], ebp
mov dword [esp + 0x13c], ebp
call fcn.0040f1e0
movzx esi, si
lea ecx, [esi - 0x3e8]
mov dword [esp + 0x134], 7
mov dword [esp + 0x138], ecx
call fcn.00481b00
push 8
push 3
mov dword [eax + 0xc], esi
mov dword [eax + 0x24], 4
call fcn.004605f0
mov ecx, eax
call fcn.004609e0
xor ecx, ecx
push ecx
xor eax, eax
push eax
lea edx, [esp + 0x38]
push edx
call fcn.00609f10
mov ecx, eax
call fcn.00609f40
mov al, byte [esp + 0x13]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x12c
ret 0xc
mov eax, dword [esp + 0x14]
mov ecx, dword [0x74cdec]
push eax
call fcn.004efef0
mov al, byte [esp + 0x13]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x12c
ret 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [0x74c650]
push ecx
mov ecx, dword [edx + 0x458]
call fcn.00403fe0
cmp eax, ebp
je case.default.0x43f3f2
push 0xffffffffffffffff
push eax
call fcn.005271d0
mov al, byte [esp + 0x1b]
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x12c
ret 0xc
mov eax, dword [0x74c650]
mov ecx, dword [eax + 0x248]
test ecx, ecx
je 0x43f628
mov ecx, dword [ecx + 0x28]
test ecx, ecx
je 0x43f628
push ecx
mov dword [eax + 0x248], 0
call fcn.004dccd0
add esp, 4
pop edi
pop esi
pop ebp
mov byte [esp + 7], al
pop ebx
add esp, 0x12c
ret 0xc
mov ecx, dword [eax + 0x24c]
test ecx, ecx
je 0x43f648
mov edi, dword [ecx + 0x3c]
mov ecx, edi
shr ecx, 1
test cl, 1
jne 0x43f65f
mov edx, edi
shr edx, 2
test dl, 1
jne 0x43f65f
mov byte [esi + 0xb42], 1
call sub.WINMM.dll_timeGetTime
mov dword [esi + 0xc74], eax
mov eax, dword [0x74c650]
mov edi, dword [eax + 0x24c]
test edi, edi
je 0x43f689
mov ecx, dword [edi + 0x3c]
shr ecx, 1
test cl, 1
je 0x43f689
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x64]
test al, al
jne 0x43f684
mov byte [esi + 0xb41], al
mov eax, dword [0x74c650]
push ebx
push ebp
mov ecx, eax
call fcn.00435dc0
test eax, eax
jne 0x43f6a3
mov ecx, dword [0x74c650]
push ebx
push ebp
call fcn.00435e00
push 1
push eax
mov ecx, esi
call fcn.0043eb90
test al, al
jne 0x43f8ab
call fcn.004605f0
mov ecx, dword [eax + 0x14c]
test ecx, ecx
je 0x43f6df
call fcn.0040f720
pop edi
pop esi
mov byte [esp + 0xb], 1
mov al, byte [esp + 0xb]
pop ebp
pop ebx
add esp, 0x12c
ret 0xc
call fcn.005ffb10
mov ecx, eax
call fcn.005fe590
test eax, eax
je 0x43f72b
call fcn.005ffb10
mov ecx, dword [eax + 0x30]
test ecx, ecx
jne 0x43f8ab
xor ecx, ecx
push ecx
push ecx
push ecx
xor eax, eax
push eax
push 0x201
push ecx
call fcn.00536220
add esp, 0x18
pop edi
pop esi
mov byte [esp + 0xb], 1
mov al, byte [esp + 0xb]
pop ebp
pop ebx
add esp, 0x12c
ret 0xc
call sub.WINMM.dll_timeGetTime
mov dword [esi + 0xc68], eax
mov dword [esi + 0xc60], ebp
mov dword [esi + 0xc64], ebx
mov byte [esi + 0xc70], 1
mov byte [esi + 0xc72], 0
mov eax, dword [0x74c650]
mov ecx, dword [eax + 0x24c]
push ecx
push 0x201
mov ecx, esi
call fcn.00434ae0
pop edi
pop esi
pop ebp
mov byte [esp + 7], al
pop ebx
add esp, 0x12c
ret 0xc
sub edi, 0x202
je 0x43f891
sub edi, 2
je 0x43f7a7
dec edi
jne case.default.0x43f3f2
mov byte [esi + 0xc71], 0
mov dword [esi + 0xc74], 0
jmp 0x43f89f
call fcn.004605f0
cmp dword [eax + 0x170], 0x18
jne 0x43f7da
mov ecx, dword [0x74cf00]
test ecx, ecx
je 0x43f7da
call fcn.004cdfd0
pop edi
pop esi
mov byte [esp + 0xb], 1
mov al, byte [esp + 0xb]
pop ebp
pop ebx
add esp, 0x12c
ret 0xc
call fcn.004605f0
cmp dword [eax + 0x174], 0x19
jne 0x43f827
lea edx, [esp + 0x20]
push edx
mov dword [esp + 0x24], 0
call fcn.004605f0
mov ecx, eax
call fcn.00460ab0
push 0
push 0
call fcn.004605f0
mov ecx, eax
call fcn.004609e0
pop edi
pop esi
mov byte [esp + 0xb], 1
mov al, byte [esp + 0xb]
pop ebp
pop ebx
add esp, 0x12c
ret 0xc
mov eax, dword [0x74c650]
mov eax, dword [eax + 0x24c]
test eax, eax
je 0x43f842
push eax
mov ecx, esi
call fcn.00434fb0
test al, al
jne 0x43f8ab
call sub.WINMM.dll_timeGetTime
mov dword [esi + 0xc6c], eax
mov dword [esi + 0xc60], ebp
mov dword [esi + 0xc64], ebx
mov byte [esi + 0xc71], 1
mov byte [esi + 0xc72], 0
mov ecx, dword [0x74c650]
mov edx, dword [ecx + 0x24c]
push edx
push 0x204
mov ecx, esi
call fcn.00434ae0
pop edi
pop esi
pop ebp
mov byte [esp + 7], al
pop ebx
add esp, 0x12c
ret 0xc
mov byte [esi + 0xc70], 0
mov byte [esi + 0xb42], 0
mov dword [esi + 0xc60], ebp
mov dword [esi + 0xc64], ebx
mov byte [esp + 0x13], 1
mov al, byte [esp + 0x13]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x12c
ret 0xc