Function at 0x757acc
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffffc8
mov ebx, eax
mov dword [esp + 4], 0xffffffff
mov dword [esp + 8], 0xffffffff
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x10], 0xffffffff
or edi, 0xffffffff
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x18], 0xffffffff
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov ebp, dword [eax + 8]
dec ebp
test ebp, ebp
jl 0x757db2
inc ebp
mov dword [esp], 0
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, dword [esp]
call fcn.00447f1c
mov esi, eax
cmp byte [esi + 0x15], 0
je 0x757da8
movzx eax, byte [esi]
cmp eax, 8
ja case.0x757b4a.0
jmp dword [eax*4 + 0x757b51]
cmp dword [esp + 4], 0xffffffff
jne 0x757b88
mov eax, dword [esi + 0x11]
mov dword [esp + 4], eax
jmp case.0x757b4a.0
mov eax, dword [esp + 4]
cmp eax, dword [esi + 0x11]
je case.0x757b4a.0
mov dword [esp + 4], 0xfffffffe
jmp case.0x757b4a.0
cmp dword [esp + 8], 0xffffffff
jne 0x757bbf
fld dword [esi + 9]
call fcn.00404d4c
mov dword [esp + 8], eax
fld dword [esi + 9]
fstp qword [esp + 0x28]
wait
jmp 0x757be3
fld dword [esi + 9]
call fcn.00404d4c
push edx
push eax
mov eax, dword [esp + 0x10]
cdq
cmp edx, dword [esp + 4]
jne 0x757bd7
cmp eax, dword [esp]
pop edx
pop eax
je 0x757be3
mov dword [esp + 8], 0xfffffffe
cmp dword [esp + 0xc], 0xffffffff
jne 0x757c00
fld dword [esi + 0xd]
call fcn.00404d4c
mov dword [esp + 0xc], eax
fld dword [esi + 0xd]
fstp qword [esp + 0x20]
wait
jmp 0x757c24
fld dword [esi + 0xd]
call fcn.00404d4c
push edx
push eax
mov eax, dword [esp + 0x14]
cdq
cmp edx, dword [esp + 4]
jne 0x757c18
cmp eax, dword [esp]
pop edx
pop eax
je 0x757c24
mov dword [esp + 0xc], 0xfffffffe
cmp dword [esp + 0x10], 0xffffffff
jne 0x757c61
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, dword [esp]
call fcn.00447f1c
call fcn.0064a1a0
add esp, 0xfffffff8
fstp qword [esp]
wait
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, dword [esp + 8]
call fcn.00447f1c
call fcn.0064a03c
mov dword [esp + 0x10], eax
jmp 0x757c9f
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, dword [esp]
call fcn.00447f1c
call fcn.0064a1a0
add esp, 0xfffffff8
fstp qword [esp]
wait
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, dword [esp + 8]
call fcn.00447f1c
call fcn.0064a03c
cmp eax, dword [esp + 0x10]
je 0x757c9f
mov dword [esp + 0x10], 0xfffffffe
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, dword [esp]
call fcn.00447f1c
call fcn.0064a374
mov byte [esp + 0x30], al
jmp case.0x757b4a.0
cmp dword [esp + 4], 0xffffffff
jne 0x757cd7
fld dword [esi + 9]
fsub dword [esi + 0xd]
call fcn.00404d4c
mov dword [esp + 4], eax
jmp case.0x757b4a.0
fld dword [esi + 9]
fsub dword [esi + 0xd]
call fcn.00404d4c
push edx
push eax
mov eax, dword [esp + 0xc]
cdq
cmp edx, dword [esp + 4]
jne 0x757cf2
cmp eax, dword [esp]
pop edx
pop eax
je case.0x757b4a.0
mov dword [esp + 4], 0xfffffffe
jmp case.0x757b4a.0
cmp dword [esp + 0x14], 0xffffffff
jne 0x757d37
mov edx, 1
mov eax, dword [esi + 0x18]
call fcn.00447f1c
push eax
xor edx, edx
mov eax, dword [esi + 0x18]
call fcn.00447f1c
pop edx
call fcn.00620d20
call fcn.00404d4c
mov dword [esp + 0x14], eax
jmp 0x757d4c
fild dword [esp + 0x14]
fcomp dword [esi + 9]
wait
fnstsw ax
sahf
je 0x757d4c
mov dword [esp + 0x14], 0xfffffffe
cmp dword [esp + 0x18], 0xffffffff
jne 0x757d7f
mov edx, 2
mov eax, dword [esi + 0x18]
call fcn.00447f1c
push eax
mov edx, 1
mov eax, dword [esi + 0x18]
call fcn.00447f1c
pop edx
call fcn.00620d20
call fcn.00404d4c
mov dword [esp + 0x18], eax
jmp case.0x757b4a.0
fild dword [esp + 0x18]
fcomp dword [esi + 0xd]
wait
fnstsw ax
sahf
je case.0x757b4a.0
mov dword [esp + 0x18], 0xfffffffe
cmp edi, 0xffffffff
jne 0x757d9e
mov edi, dword [esi + 0x29]
jmp 0x757da8
cmp edi, dword [esi + 0x29]
je 0x757da8
mov edi, 0xfffffffe
inc dword [esp]
dec ebp
jne 0x757b23
push 0x11
call sub.user32.dll_GetAsyncKeyState
mov byte [ebx + 0xc73], 1
cmp dword [esp + 4], 0xffffffff
jle 0x757dd2
mov edx, dword [esp + 4]
mov eax, ebx
call fcn.00756898
cmp dword [esp + 4], 0xffffffff
jne 0x757de6
mov edx, dword [ebx + 0xc3e]
mov eax, ebx
call fcn.00756898
cmp dword [esp + 4], 0xfffffffe
sete dl
mov eax, dword [ebx + 0x6f4]
mov byte [eax + 0x322], dl
cmp dword [esp + 4], 0xffffffff
setne cl
mov edx, eax
mov eax, ebx
call fcn.0077e4ac
cmp dword [esp + 8], 0xffffffff
jle 0x757e2a
fld qword [esp + 0x28]
fmul dword [0x758040]
add esp, 0xfffffff8
fstp qword [esp]
wait
mov eax, ebx
call fcn.00756940
cmp dword [esp + 8], 0xffffffff
jne 0x757e44
push dword [ebx + 0xc5a]
push dword [ebx + 0xc56]
mov eax, ebx
call fcn.00756940
cmp dword [esp + 8], 0xfffffffe
sete dl
mov eax, dword [ebx + 0x6f8]
mov byte [eax + 0x322], dl
cmp dword [esp + 8], 0xffffffff
setne cl
mov edx, eax
mov eax, ebx
call fcn.0077e4ac
cmp dword [esp + 0xc], 0xffffffff
jle 0x757e88
fld qword [esp + 0x20]
fmul dword [0x758040]
add esp, 0xfffffff8
fstp qword [esp]
wait
mov eax, ebx
call fcn.00756918
cmp dword [esp + 0xc], 0xffffffff
jne 0x757ea2
push dword [ebx + 0xc52]
push dword [ebx + 0xc4e]
mov eax, ebx
call fcn.00756918
cmp dword [esp + 0xc], 0xfffffffe
sete dl
mov eax, dword [ebx + 0x6fc]
mov byte [eax + 0x322], dl
cmp dword [esp + 0xc], 0xffffffff
setne cl
mov edx, eax
mov eax, ebx
call fcn.0077e4ac
cmp dword [esp + 0x14], 0xffffffff
jle 0x757ed9
mov edx, dword [esp + 0x14]
mov eax, ebx
call fcn.007568c8
cmp dword [esp + 0x14], 0xffffffff
jne 0x757eed
mov edx, dword [ebx + 0xc42]
mov eax, ebx
call fcn.007568c8
cmp dword [esp + 0x14], 0xfffffffe
sete dl
mov eax, dword [ebx + 0x700]
mov byte [eax + 0x322], dl
cmp dword [esp + 0x14], 0xffffffff
setne cl
mov edx, eax
mov eax, ebx
call fcn.0077e4ac
cmp dword [esp + 0x18], 0xffffffff
jle 0x757f24
mov edx, dword [esp + 0x18]
mov eax, ebx
call fcn.007568f0
cmp dword [esp + 0x18], 0xffffffff
jne 0x757f38
mov edx, dword [ebx + 0xc46]
mov eax, ebx
call fcn.007568f0
cmp dword [esp + 0x18], 0xfffffffe
sete dl
mov eax, dword [ebx + 0x704]
mov byte [eax + 0x322], dl
cmp dword [esp + 0x18], 0xffffffff
setne cl
mov edx, eax
mov eax, ebx
call fcn.0077e4ac
cmp edi, 0xffffffff
jle 0x757f89
mov dword [esp + 0x34], edi
fild dword [esp + 0x34]
fdiv dword [0x758044]
add esp, 0xfffffffc
fstp dword [esp]
wait
mov eax, dword [ebx + 0xaac]
call fcn.0061f800
mov eax, dword [0x7a66d0]
mov dword [eax], edi
cmp edi, 0xffffffff
jne 0x757fb9
fild dword [ebx + 0xc4a]
fdiv dword [0x758044]
add esp, 0xfffffffc
fstp dword [esp]
wait
mov eax, dword [ebx + 0xaac]
call fcn.0061f800
mov eax, dword [0x7a66d0]
mov edx, dword [ebx + 0xc4a]
mov dword [eax], edx
cmp edi, 0xfffffffe
sete dl
mov eax, dword [ebx + 0xaac]
mov byte [eax + 0x322], dl
inc edi
setne cl
mov edx, eax
mov eax, ebx
call fcn.0077e4ac
cmp dword [esp + 0x10], 0xffffffff
jle 0x758002
movzx edx, byte [esp + 0x30]
mov eax, dword [ebx + 0x5a8]
call fcn.00554c9c
movzx edx, byte [esp + 0x10]
mov eax, ebx
call fcn.007584c4
mov eax, ebx
call fcn.007709e4
cmp dword [esp + 0x10], 0xfffffffe
jne 0x758019
xor edx, edx
mov eax, ebx
call fcn.007584c4
mov eax, ebx
call fcn.007709e4
cmp dword [esp + 0x10], 0xffffffff
jne 0x758030
mov edx, dword [0x7a6290]
movzx edx, byte [edx]
mov eax, ebx
call fcn.007584c4
mov byte [ebx + 0xc73], 0
add esp, 0x38
pop ebp
pop edi
pop esi
pop ebx
ret