Function at 0x10059ec0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x124
mov eax, dword [0x1008d040]
xor eax, ebp
mov dword [ebp - 4], eax
cmp byte [0x100b6e11], 0
push ebx
push esi
push edi
je 0x1005a1ac
cmp byte [0x100b6e06], 0
je 0x10059f07
mov eax, dword [0x100b6e1c]
push dword [eax*4 + 0x1007b480]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1005a1ac
mov ecx, dword [0x100b4e34]
mov eax, dword [ecx]
call dword [eax + 0xf4]
mov edi, eax
mov eax, dword [0x100b6e00]
test eax, eax
jne 0x1005a09f
push 4
push edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1005a1ac
test edi, edi
je 0x1005a1ac
xor ebx, ebx
cmp dword [edi + 0x18c], ebx
jle 0x1005a1ac
nop dword [eax + eax]
mov eax, dword [edi + 0x184]
push 4
mov esi, dword [eax + ebx*4]
push esi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1005a081
test esi, esi
je 0x1005a081
mov eax, dword [esi + 0x10]
push 4
push eax
mov dword [ebp - 0x114], eax
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x10059f97
cmp dword [ebp - 0x114], eax
je 0x10059f97
mov eax, 1
jmp 0x10059f99
xor eax, eax
test eax, eax
je 0x1005a081
mov eax, dword [0x1008dcf8]
push dword [esi + 0x5dc]
mov ecx, dword [eax]
call dword [0x1008dcf4]
mov ecx, dword [0x1008dcf8]
mov dword [ebp - 0x114], eax
mov ecx, dword [ecx]
call dword [0x1008dce4]
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x114]
test eax, eax
je 0x1005a081
mov edx, dword [eax + 4]
test edx, edx
je 0x1005a081
cmp byte [eax + 8], 0
jne 0x1005a081
mov ecx, dword [0x100b4e24]
push 1
mov eax, dword [ecx]
lea ecx, [ebp - 0x110]
push ecx
mov ecx, dword [0x100b4e24]
push 8
push edx
call dword [eax + 0x40]
mov ecx, dword [ebp - 0x114]
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0x118]
cmp eax, dword [ecx + 0xc]
je 0x1005a081
cmp byte [0x1008d225], 0
je 0x1005a034
cmp byte [esi + 0x562], 0
jne 0x1005a081
movss xmm2, dword [ebp - 0x110]
sub esp, 0xc
movss xmm1, dword [ebp - 0x10c]
mov ecx, esp
addss xmm2, dword [0x10089734]
subss xmm1, dword [0x10089700]
movss xmm0, dword [ebp - 0x108]
movss dword [ebp - 0x11c], xmm0
mov eax, dword [ebp - 0x11c]
unpcklps xmm2, xmm1
movq qword [ecx], xmm2
mov dword [ecx + 8], eax
call fcn.10059e40
add esp, 0xc
inc ebx
cmp ebx, dword [edi + 0x18c]
jl 0x10059f50
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1006eb52
mov esp, ebp
pop ebp
ret
cmp eax, 1
jne 0x1005a1ac
push 4
push edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1005a1ac
test edi, edi
je 0x1005a1ac
xor ebx, ebx
cmp dword [edi + 0x18c], ebx
jle 0x1005a1ac
nop
mov eax, dword [edi + 0x184]
push 4
mov esi, dword [eax + ebx*4]
push esi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1005a19f
test esi, esi
je 0x1005a19f
mov eax, dword [esi + 0x10]
push 4
push eax
mov dword [ebp - 0x118], eax
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1005a117
cmp dword [ebp - 0x118], eax
je 0x1005a117
mov eax, 1
jmp 0x1005a119
xor eax, eax
test eax, eax
je 0x1005a19f
mov ecx, dword [0x100b4e24]
lea edx, [ebp - 0x110]
push 1
push edx
push 8
mov eax, dword [ecx]
push dword [esi + 0x10]
call dword [eax + 0x40]
cmp dword [esi + 0x40], 0
jne 0x1005a19f
cmp byte [0x1008d225], 0
je 0x1005a152
cmp byte [esi + 0x562], 0
jne 0x1005a19f
movss xmm2, dword [ebp - 0x110]
sub esp, 0xc
movss xmm1, dword [ebp - 0x10c]
mov ecx, esp
addss xmm2, dword [0x10089734]
subss xmm1, dword [0x10089700]
movss xmm0, dword [ebp - 0x108]
movss dword [ebp - 0x11c], xmm0
mov eax, dword [ebp - 0x11c]
unpcklps xmm2, xmm1
movq qword [ecx], xmm2
mov dword [ecx + 8], eax
call fcn.10059e40
add esp, 0xc
inc ebx
cmp ebx, dword [edi + 0x18c]
jl 0x1005a0d0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1006eb52
mov esp, ebp
pop ebp
ret