Function at 0x1003fcb0
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x34
mov eax, dword [0x1026a5dc]
xor eax, esp
mov dword [esp + 0x2c], eax
mov eax, dword [0x102c26d4]
push ebx
mov ebx, dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll_clock]
push ebp
push esi
push edi
mov dword [esp + 0x2c], eax
call ebx
inc dword [0x102c26c4]
cmp dword [0x102c25c8], 0
mov dword [esp + 0x30], eax
jne 0x1003fced
call ebx
mov dword [0x102c25c8], eax
push 0x2d
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x1003fd33
cmp byte [0x102c25c1], 0
sete al
mov byte [0x102c25c1], al
test al, al
je 0x1003fd13
push 0x80080
jmp 0x1003fd25
push 0xffffffffffffffec
push dword [0x102c26c8]
call dword [sym.imp.USER32.dll_GetWindowLongA]
or eax, 0x20
push eax
push 0xffffffffffffffec
push dword [0x102c26c8]
call dword [sym.imp.USER32.dll_SetWindowLongA]
call fcn.100ddbb0
cmp dword [0x102c2b88], 0
jne 0x1003fd46
call fcn.10078040
call fcn.100774f0
call fcn.10055030
cmp dword [0x102c2758], 0
jne 0x1003fd6c
push 1
call fcn.100e8420
mov dword [esp + 0x14], eax
add esp, 4
mov dword [0x102c2758], eax
mov edi, dword [0x102c26dc]
lea eax, [esp + 0x10]
push eax
mov dword [esp + 0x14], 4
movss xmm0, dword [edi + 0x37ac]
lea ecx, [edi + 0x4744]
movss dword [esp + 0x18], xmm0
call fcn.10066590
lea edx, [esp + 0x10]
mov dword [edi + 0x37ac], 0
mov ecx, 2
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
call fcn.10051a30
mov esi, dword [0x102c26dc]
lea eax, [esp + 0x10]
push eax
mov dword [esp + 0x14], 2
movups xmm0, xmmword [esi + 0x3880]
lea ecx, [esi + 0x4738]
movups xmmword [esp + 0x18], xmm0
call fcn.10066650
xorps xmm0, xmm0
xor edx, edx
push 0xc0201
mov ecx, str.Backbuffer
movups xmmword [esi + 0x3880], xmm0
call fcn.1005b100
mov esi, dword [0x102c26dc]
lea edx, [esp + 0x14]
add esp, 4
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov ecx, dword [esi + 0x3e28]
push 1
call fcn.1005e1f0
movss xmm0, dword [edi + 0x10]
lea edx, [esp + 0x14]
movss xmm1, dword [edi + 0x14]
add esp, 4
mov ecx, dword [esi + 0x3e28]
movss dword [esp + 0x10], xmm0
movss dword [esp + 0x14], xmm1
push 1
call fcn.1005e340
add esp, 4
cmp dword [0x102c2758], 0
jne 0x1003fe78
push 1
call fcn.100e8420
mov dword [esp + 0x14], eax
add esp, 4
mov dword [0x102c2758], eax
cmp byte [0x102c27ad], 0
je 0x1003fe86
call fcn.1009ed40
cmp byte [0x102c27af], 0
je 0x1003fe94
call fcn.100a2010
cmp byte [0x102c27ac], 0
je 0x1003fea2
call fcn.1009f6e0
cmp byte [0x102b74b0], 0
je 0x1003feb0
call fcn.100a0670
cmp byte [0x102c27bb], 0
je 0x1003febe
call fcn.100a0c40
call fcn.100ab2a0
call fcn.10015310
cmp byte [0x102b74b1], 0
je 0x1003fedf
cmp byte [0x102c25c1], 0
je 0x1003fedf
call fcn.1002a3b0
cmp byte [0x102c27ae], 0
je 0x1003feed
call fcn.100b6bd0
cmp dword [0x102c2758], 0
jne 0x1003ff09
push 1
call fcn.100e8420
mov dword [esp + 0x14], eax
add esp, 4
mov dword [0x102c2758], eax
mov ecx, dword [0x102c26dc]
mov eax, dword [ecx + 0x3e28]
mov byte [eax + 0x90], 1
mov eax, dword [ecx + 0x3e28]
mov ebp, dword [eax + 0x248]
mov eax, dword [ebp + 0x2c]
movss xmm0, dword [eax + 0x20]
movss xmm2, dword [eax + 0x18]
comiss xmm2, xmm0
movss xmm3, dword [eax + 0x24]
movss xmm1, dword [eax + 0x1c]
movss dword [esp + 0x10], xmm2
movss dword [esp + 0x14], xmm1
movss dword [esp + 0x18], xmm0
movss dword [esp + 0x1c], xmm3
jb 0x1003ff62
movss dword [esp + 0x18], xmm2
comiss xmm1, xmm3
jb 0x1003ff6d
movss dword [esp + 0x1c], xmm1
mov ecx, dword [ebp + 0x3c]
mov edi, dword [ebp + 0x40]
cmp ecx, edi
jne 0x1003ff9d
inc ecx
test edi, edi
je 0x1003ff87
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add eax, edi
jmp 0x1003ff8c
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
lea ecx, [ebp + 0x3c]
call fcn.10066e60
mov ecx, dword [ebp + 0x3c]
mov eax, dword [ebp + 0x44]
add ecx, ecx
movups xmm0, xmmword [esp + 0x10]
movups xmmword [eax + ecx*8], xmm0
inc dword [ebp + 0x3c]
mov ecx, ebp
movups xmmword [ebp + 0x60], xmm0
call fcn.1006f1e0
call fcn.1005db40
mov edi, dword [0x102c26dc]
cmp dword [edi + 0x4738], 1
jl 0x1003fff6
mov eax, dword [edi + 0x4738]
mov edx, dword [edi + 0x4740]
lea esi, [eax + eax*4]
mov eax, dword [edx + esi*4 - 0x14]
movups xmm0, xmmword [edx + esi*4 - 0x10]
add eax, 0x386
add eax, eax
movups xmmword [edi + eax*8], xmm0
dec dword [edi + 0x4738]
mov ecx, 2
call fcn.10051ab0
movss xmm0, dword [0x102c2810]
addss xmm0, dword [0x1025af90]
comiss xmm0, dword [0x1025b00c]
movss dword [0x102c2810], xmm0
jbe 0x1004002b
mov dword [0x102c2810], 0
call fcn.10097540
cmp byte [0x102b74b2], 0
je 0x1004003e
call fcn.10097540
cmp byte [0x102c25c1], 0
je 0x1004004c
call fcn.10097940
call fcn.100574e0
mov esi, dword [esp + 0x2c]
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x3c]
push eax
push esi
call fcn.100dd9a0
add esp, 0xc
push dword [esp + 0x34]
push dword [esp + 0x3c]
push 0
push 0
call dword [sym.imp.OPENGL32.dll_glViewport]
push 0x4000
call dword [sym.imp.OPENGL32.dll_glClear]
mov eax, dword [0x102c26dc]
mov eax, dword [eax + 0x47a4]
mov ecx, dword [eax]
xor eax, eax
add ecx, 0x38
cmp byte [ecx], al
cmove ecx, eax
call fcn.10077a20
push esi
call fcn.100dd350
mov eax, dword [0x102b74ac]
add esp, 4
test eax, eax
jne 0x100400b8
lea esi, [eax + 0x19]
jmp 0x100400c8
cmp eax, 1
mov esi, 9
mov ecx, 0xe
cmove esi, ecx
cmp byte [0x102b74ab], 0
je 0x100400f7
call ebx
mov edx, dword [esp + 0x30]
add edx, esi
sub edx, eax
lea ecx, [edx - 1]
cmp ecx, 0x1c
ja 0x100400f7
mov eax, edx
lea ecx, [esp + 0x10]
cdq
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
call fcn.10016870
call ebx
sub eax, dword [0x102c25c8]
cmp eax, 0x3e8
jle 0x10040124
mov eax, dword [0x102c26c4]
mov dword [0x102c26cc], eax
mov dword [0x102c25c8], 0
mov dword [0x102c26c4], 0
mov ecx, dword [esp + 0x3c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.100e8209
add esp, 0x34
ret