Function at 0x43b198
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
xor ebx, ebx
mov esi, ecx
and byte [ebp - 2], bl
and byte [ebp - 1], bl
and byte [ebp - 3], bl
and byte [ebp - 4], bl
push edi
mov dword [ebp - 0x14], ebx
call fcn.00441580
inc eax
push eax
call fcn.00441226
push edi
mov dword [ebp + 8], eax
call fcn.00441580
lea eax, [eax + eax + 1]
push eax
call fcn.00441226
add esp, 0x10
mov dword [ebp - 0xc], eax
xor ecx, ecx
push 1
pop eax
mov dword [ebp - 8], eax
mov dword [ebp - 0x10], eax
mov al, byte [edi]
test al, al
je 0x43b20c
cmp dword [ebp - 0x10], 1
jne 0x43b20c
cmp al, 0x20
jne 0x43b1fe
and dword [ebp - 0x10], 0
jmp 0x43b205
mov edx, dword [ebp + 8]
mov byte [ecx + edx], al
inc ecx
mov al, byte [ebx + edi + 1]
inc ebx
jmp 0x43b1ea
mov eax, dword [ebp + 8]
and byte [ecx + eax], 0
cmp dword [ebp - 0x10], 0
jne 0x43b2ff
mov al, byte [ebx + edi]
cmp al, 0x20
je 0x43b228
cmp al, 9
jne 0x43b22b
inc ebx
jmp 0x43b21d
push 1
xor ecx, ecx
pop edx
add edi, ebx
mov al, byte [edi]
test al, al
je 0x43b24f
cmp edx, 1
jne 0x43b24f
test al, al
jne 0x43b245
xor edx, edx
jmp 0x43b24c
mov ebx, dword [ebp - 0xc]
mov byte [ecx + ebx], al
inc ecx
inc edi
jmp 0x43b232
mov eax, dword [ebp - 0xc]
push 0x459614
push eax
and byte [ecx + eax], 0
call fcn.00442c20
pop ecx
test eax, eax
pop ecx
jne 0x43b270
mov byte [ebp - 2], 1
jmp 0x43b2ff
mov edi, dword [ebp - 0xc]
push str.down
push edi
call fcn.00442c20
pop ecx
test eax, eax
pop ecx
jne 0x43b28a
mov byte [ebp - 1], 1
jmp 0x43b2ff
push 0x459608
push edi
call fcn.00442c20
pop ecx
test eax, eax
pop ecx
jne 0x43b2a1
mov byte [ebp - 3], 1
jmp 0x43b2ff
push 0x459604
push edi
call fcn.00442c20
pop ecx
test eax, eax
pop ecx
jne 0x43b2b8
mov byte [ebp - 4], 1
jmp 0x43b2ff
cmp byte [edi], 0x30
jne 0x43b2ea
mov al, byte [edi + 1]
cmp al, 0x78
je 0x43b2c8
cmp al, 0x58
jne 0x43b2ea
lea eax, [ebp - 8]
push eax
lea eax, [edi + 2]
push eax
call fcn.0043eb71
pop ecx
pop ecx
push dword [ebp - 8]
push 0x459600
push edi
call fcn.00442173
add esp, 0xc
jmp 0x43b2ff
push edi
call fcn.00442086
test eax, eax
pop ecx
mov dword [ebp - 8], eax
jg 0x43b2ff
mov dword [ebp - 8], 1
mov edi, 0x458ee0
push dword [ebp + 8]
push dword [edi]
call fcn.00442c20
pop ecx
test eax, eax
pop ecx
je 0x43b322
inc dword [ebp - 0x14]
add edi, 4
cmp edi, 0x459054
jl 0x43b304
mov eax, dword [ebp - 0x14]
cmp eax, 0x5d
jne 0x43b37d
cmp byte [ebp - 1], 0
je 0x43b349
mov eax, dword [ebp + 8]
push 0
mov al, byte [eax]
push eax
call dword [sym.imp.USER32.dll_VkKeyScanA]
and eax, 0xff
push eax
jmp 0x43b43a
cmp byte [ebp - 2], 0
je 0x43b368
mov eax, dword [ebp + 8]
push 0
mov al, byte [eax]
push eax
call dword [sym.imp.USER32.dll_VkKeyScanA]
and eax, 0xff
push eax
jmp 0x43b450
mov eax, dword [ebp + 8]
push dword [ebp - 8]
mov ecx, esi
mov al, byte [eax]
push eax
call fcn.0043a947
jmp case.default.0x43b3f9
cmp byte [eax + 0x459054], 0
jne 0x43b3e9
cmp byte [ebp - 1], 0
je 0x43b39a
push 0
push dword [eax*4 + str._f_b_b..__reepqrstuvwxyz________t___]
jmp 0x43b43a
cmp byte [ebp - 2], 0
je 0x43b3ae
push 0
push dword [eax*4 + str._f_b_b..__reepqrstuvwxyz________t___]
jmp 0x43b450
cmp byte [ebp - 3], 0
je 0x43b3b8
push 1
jmp 0x43b3c0
cmp byte [ebp - 4], 0
push 0
je 0x43b3d3
push dword [eax*4 + str._f_b_b..__reepqrstuvwxyz________t___]
mov ecx, esi
call fcn.0043a8e5
jmp case.default.0x43b3f9
push dword [ebp - 8]
mov ecx, esi
push dword [eax*4 + str._f_b_b..__reepqrstuvwxyz________t___]
call fcn.0043a9ac
jmp case.default.0x43b3f9
mov eax, dword [eax*4 + str._f_b_b..__reepqrstuvwxyz________t___]
cmp eax, 0xc
ja case.default.0x43b3f9
jmp dword [eax*4 + 0x43b5ca]
cmp byte [ebp - 1], 0
jne case.0x43b3f9.2
cmp byte [ebp - 2], 0
je 0x43b41f
mov eax, dword [esi + 0xc]
test al, 0x10
je case.default.0x43b3f9
xor eax, 0x10
mov dword [esi + 0xc], eax
jmp 0x43b42a
push 0
push 0x12
mov ecx, esi
call fcn.0043afc3
push 0
push 0x12
jmp 0x43b450
cmp byte [ebp - 1], 0
je 0x43b446
push 0
push 0xd
mov ecx, esi
call fcn.0043afc3
jmp case.default.0x43b3f9
cmp byte [ebp - 2], 0
je 0x43b45c
push 0
push 0xd
mov ecx, esi
call fcn.0043b0a7
jmp case.default.0x43b3f9
push 1
push 0xd
mov ecx, esi
call fcn.0043afc3
push 1
jmp 0x43b44e
mov eax, dword [esi + 0xc]
test al, 0x10
jne case.default.0x43b3f9
or al, 0x10
push 0
mov dword [esi + 0xc], eax
push 0x12
jmp 0x43b43a
mov eax, dword [esi + 0xc]
test al, 0x20
jne case.default.0x43b3f9
or al, 0x20
push 0
mov dword [esi + 0xc], eax
push 0x10
jmp 0x43b43a
mov eax, dword [esi + 0xc]
test al, 0x20
je case.default.0x43b3f9
xor eax, 0x20
push 0
mov dword [esi + 0xc], eax
push 0x10
jmp 0x43b450
mov eax, dword [esi + 0xc]
test al, 0x40
jne case.default.0x43b3f9
or al, 0x40
push 0
mov dword [esi + 0xc], eax
push 0x11
jmp 0x43b43a
mov eax, dword [esi + 0xc]
test al, 0x40
je case.default.0x43b3f9
xor eax, 0x40
push 0
mov dword [esi + 0xc], eax
push 0x11
jmp 0x43b450
mov eax, dword [esi + 0xc]
test al, 0x80
jne case.default.0x43b3f9
or al, 0x80
push 0
mov dword [esi + 0xc], eax
push 0x5b
jmp 0x43b43a
mov eax, dword [esi + 0xc]
test al, 0x80
je case.default.0x43b3f9
xor eax, 0x80
push 0
mov dword [esi + 0xc], eax
push 0x5b
jmp 0x43b450
mov ecx, dword [esi + 0xc]
mov eax, 0x100
test eax, ecx
jne case.default.0x43b3f9
or ecx, eax
push 0
mov dword [esi + 0xc], ecx
push 0x5c
jmp 0x43b43a
mov ecx, dword [esi + 0xc]
mov eax, 0x100
test eax, ecx
je case.default.0x43b3f9
xor ecx, eax
push 0
mov dword [esi + 0xc], ecx
push 0x5c
jmp 0x43b450
test byte [esi + 0xc], 0x10
jne 0x43b56d
mov al, byte [esi + 0x18]
push 0
push 0
push eax
push 0x12
call dword [sym.imp.USER32.dll_keybd_event]
push dword [esi + 4]
call fcn.0043ef79
pop ecx
mov ebx, dword [ebp - 0xc]
mov al, byte [ebx]
test al, al
je 0x43b593
movsx edi, al
add edi, 0x30
push 0
push edi
mov ecx, esi
call fcn.0043afc3
push 0
push edi
mov ecx, esi
call fcn.0043b0a7
inc ebx
jmp 0x43b570
test byte [esi + 0xc], 0x10
jne case.default.0x43b3f9
mov al, byte [esi + 0x18]
push 0
push 2
push eax
push 0x12
call dword [sym.imp.USER32.dll_keybd_event]
push dword [esi]
call fcn.0043ef79
pop ecx
push dword [ebp + 8]
call fcn.004415fb
push dword [ebp - 0xc]
call fcn.004415fb
pop ecx
pop ecx
pop edi
pop esi
pop ebx
leave
ret 4