Function at 0x1003bc10
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov eax, dword [edi + 8]
cmp eax, 0x400500cd
ja 0x1003bef8
je 0x1003bddb
sub eax, 0x40040065
je 0x1003bd9a
sub eax, 0x10063
je 0x1003bcc8
dec eax
jne 0x1003c1cd
call fcn.100424f0
test al, al
je 0x1003c1cd
mov esi, dword [edi + 0x14]
mov ecx, 0x100afb20
mov dword [0x100afb2c], 0x3ed
mov eax, dword [edi + 0x14]
mov dword [0x100b6df4], eax
movss xmm0, dword [edi + 0x24]
movss dword [0x100b6df8], xmm0
movss xmm0, dword [edi + 0x28]
push 0x100b6df4
movss dword [0x100b6dfc], xmm0
call fcn.1003ba50
push 0x100afb20
call fcn.10042500
mov ecx, eax
call fcn.10041d80
cmp esi, 1
je 0x1003c1cd
cmp esi, 4
je 0x1003c1cd
mov dword [0x100afb1c], 0x3ea
jmp 0x1003bd48
call fcn.100424f0
test al, al
je 0x1003c1cd
mov esi, dword [edi + 0x14]
mov ecx, 0x100afb20
mov dword [0x100afb2c], 0x3ee
mov dword [0x100b6df4], esi
movss xmm0, dword [edi + 0x24]
movss dword [0x100b6df8], xmm0
movss xmm0, dword [edi + 0x28]
push 0x100b6df4
movss dword [0x100b6dfc], xmm0
mov dword [0x100b6e00], 0
call fcn.1003ba50
push 0x100afb20
call fcn.10042500
mov ecx, eax
call fcn.10041d80
cmp esi, 1
je 0x1003c1cd
cmp esi, 4
je 0x1003c1cd
mov dword [0x100afb1c], 0x3eb
push esi
call fcn.1003c6d0
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
add esp, 4
mov dword [0x100b6ad0], eax
mov dword [0x100b6ad4], 0xffffffff
push 0x12
call esi
shr eax, 0xf
and al, 1
push 0x11
mov byte [0x100b6ade], al
call esi
shr eax, 0xf
and al, 1
push 0x10
mov byte [0x100b6add], al
call esi
shr eax, 0xf
and al, 1
mov byte [0x100b6adc], al
mov al, byte [0x100b6ac9]
jmp 0x1003c147
call fcn.100424f0
test al, al
je 0x1003c1cd
push 0x30c
push 0
push 0x100b6ae8
call fcn.10060c20
add esp, 0xc
mov dword [0x100afb5c], 0x3fe
push 0x100afb50
call fcn.10042500
mov ecx, eax
call fcn.10041d80
jmp 0x1003c1cd
call fcn.100424f0
test al, al
je 0x1003c1cd
cmp dword [edi + 0x2c], 0x78
mov dword [0x100afb3c], 0x3ef
sete bl
mov dword [0x100b6e05], edi
cmp dword [0x100afb38], 5
mov byte [0x100b6e04], bl
jae 0x1003be2a
push dword [0x100afb34]
call fcn.10060d01
push 5
call fcn.10060cb0
add esp, 8
mov dword [0x100afb34], eax
jmp 0x1003be2f
mov eax, dword [0x100afb34]
push 5
push 0x100b6e04
push 5
push eax
call fcn.10064066
add esp, 0x10
push 0x100afb30
call fcn.10042500
mov ecx, eax
call fcn.10041d80
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
xor eax, eax
test bl, bl
mov dword [0x100afb1c], 0x3eb
push 0x12
sete al
mov dword [0x100b6ad4], 0xffffffff
add eax, 0x1005
mov dword [0x100b6ad0], eax
call esi
shr eax, 0xf
and al, 1
push 0x11
mov byte [0x100b6ade], al
call esi
shr eax, 0xf
and al, 1
push 0x10
mov byte [0x100b6add], al
call esi
shr eax, 0xf
and al, 1
mov dword [0x100b6ae0], edi
cmp dword [0x100afb18], 0x14
mov byte [0x100b6adc], al
mov al, byte [0x100b6ac9]
mov byte [0x100b6adf], al
jae 0x1003bedc
push dword [0x100afb14]
call fcn.10060d01
push 0x14
call fcn.10060cb0
add esp, 8
mov dword [0x100afb14], eax
jmp 0x1003bee1
mov eax, dword [0x100afb14]
push 0x14
push 0x100b6ad0
push 0x14
push eax
call fcn.10064066
add esp, 0x10
jmp 0x1003c161
sub eax, 0x40060064
je 0x1003bf51
sub eax, 2
jne 0x1003c1cd
mov esi, dword [edi + 0x10]
mov byte [esi + 0x100b6ae8], al
call fcn.100424f0
test al, al
je 0x1003c1cd
call fcn.10054340
mov eax, dword [eax + 0x3fc]
cmp dword [eax + 0x1dc], 1
je 0x1003c1cd
mov dword [0x100b6ad0], esi
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov dword [0x100afb1c], 0x3ea
jmp 0x1003c118
mov ebx, dword [edi + 0x10]
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov byte [ebx + 0x100b6ae8], 1
cmp ebx, 0x201
jne 0x1003bf9b
push 0x12
call esi
shr eax, 0xf
test al, 1
je 0x1003bfdb
push 0x10
call esi
shr eax, 0xf
test al, 1
jne 0x1003bfdb
push 0x11
call esi
shr eax, 0xf
test al, 1
jne 0x1003bfdb
call fcn.10060a80
mov dword [edi + 8], 0
jmp 0x1003c1cd
cmp ebx, 0x209
jne 0x1003bfdb
push 0x12
call esi
shr eax, 0xf
test al, 1
jne 0x1003bfdb
push 0x10
call esi
shr eax, 0xf
test al, 1
je 0x1003bfdb
push 0x11
call esi
shr eax, 0xf
test al, 1
jne 0x1003bfdb
push 0
call dword [0x100b4fec]
add esp, 4
mov dword [edi + 8], 0
jmp 0x1003c1cd
call fcn.100424f0
test al, al
je 0x1003c1cd
call fcn.10054340
mov eax, dword [eax + 0x3fc]
cmp dword [eax + 0x1dc], 1
je 0x1003c174
cmp ebx, 0x303
jne 0x1003c03f
push 0x10
call esi
shr eax, 0xf
test al, 1
je 0x1003c0fa
push 0x12
call esi
shr eax, 0xf
test al, 1
jne 0x1003c0fa
push 0x11
call esi
shr eax, 0xf
test al, 1
jne 0x1003c0fa
call fcn.1000d930
jmp 0x1003c0fa
cmp ebx, 0x119
jne 0x1003c0fa
push 0x12
call esi
shr eax, 0xf
test al, 1
jne 0x1003c0fa
push 0x10
call esi
shr eax, 0xf
test al, 1
jne 0x1003c0fa
push 0x11
call esi
shr eax, 0xf
test al, 1
jne 0x1003c0fa
cmp dword [0x100b6acc], 0
je 0x1003c0fa
push dword [0x100aef74]
push dword [0x100aef70]
call fcn.1001e880
add esp, 8
mov dword [ebp - 4], eax
mov dword [ebp + 8], 0x201
mov byte [0x100b6aca], 1
lea ecx, [ebp + 8]
mov edx, dword [0x100b6acc]
call dword [ebp - 4]
cmp dword [0x100b6acc], 0
mov byte [0x100b6aca], 0
je 0x1003c0fa
push dword [0x100aef7c]
push dword [0x100aef78]
call fcn.1001e880
add esp, 8
mov dword [ebp - 4], eax
mov dword [ebp + 8], 0x201
mov byte [0x100b6aca], 1
lea ecx, [ebp + 8]
mov edx, dword [0x100b6acc]
call dword [ebp - 4]
mov byte [0x100b6aca], 0
push ebx
mov dword [0x100afb1c], 0x3eb
mov dword [0x100b6ad0], ebx
call fcn.1003c380
add esp, 4
mov dword [0x100b6ad4], eax
push 0x12
call esi
shr eax, 0xf
and al, 1
push 0x11
mov byte [0x100b6ade], al
call esi
shr eax, 0xf
and al, 1
push 0x10
mov byte [0x100b6add], al
call esi
shr eax, 0xf
and al, 1
mov byte [0x100b6adc], al
mov al, byte [0x100b6aca]
push 0x100b6ad0
mov ecx, 0x100afb10
mov byte [0x100b6adf], al
mov dword [0x100b6ae0], edi
call fcn.1003b9d0
push 0x100afb10
call fcn.10042500
mov ecx, eax
call fcn.10041d80
jmp 0x1003c1cd
cmp ebx, 0x201
jne 0x1003c1cd
call fcn.10054340
push 0x100b6ae4
mov ecx, 0x100afb40
mov eax, dword [eax + 0x3fc]
mov eax, dword [eax + 0x1e0]
mov eax, dword [eax + 0x1e4]
mov dword [0x100b6ae4], eax
mov dword [0x100afb4c], 0x3f8
call fcn.1003ba10
push 0x100afb40
call fcn.10042500
mov ecx, eax
call fcn.10041d80
test al, al
jne 0x1003c1cd
mov dword [edi + 0x10], 0x200
cmp byte [0x100b6ab0], 0
je 0x1003c1e6
mov byte [0x100b6ab0], 0
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret