Function at 0x1000fb90
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1001951d
mov eax, dword fs:[0]
push eax
sub esp, 0xb4
push esi
push edi
mov eax, dword [0x1002000c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword fs:[0x2c]
mov ecx, dword [0x10020d68]
mov byte [0x10020054], 0
mov byte [0x10020065], 0
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x10021fc8]
cmp eax, dword [ecx + 4]
jle 0x1000fc11
push 0x10021fc8
call fcn.10017d6d
add esp, 4
cmp dword [0x10021fc8], 0xffffffff
jne 0x1000fc11
mov al, byte [0x10020064]
push 0x10021fc8
mov byte [0x10021bac], al
call fcn.10017d1c
add esp, 4
mov al, byte [0x10020064]
cmp byte [0x10021bac], al
je 0x1000fc2e
mov byte [0x10021bac], al
test al, al
je 0x1000fc2e
mov byte [0x10020054], 1
mov ecx, dword [0x10020dfc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x70]
call eax
test al, al
je 0x1000fc57
mov byte [0x10020064], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push 0x2d
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x1000fc96
mov ecx, dword [0x10020e14]
cmp byte [0x10020064], 0
mov eax, dword [ecx]
mov edx, dword [eax + 0xd0]
sete al
push eax
mov byte [0x10020064], al
call edx
mov ecx, dword [0x10020dfc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
fstp dword [0x10020fdc]
mov ecx, dword [0x10020dfc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
fsub dword [0x10020fdc]
movss xmm3, dword [0x10020060]
movss xmm4, dword [0x1001c804]
fstp dword [ebp - 0x18]
movss xmm1, dword [ebp - 0x18]
comiss xmm3, xmm1
movss dword [0x1002005c], xmm1
jbe 0x1000fd47
cmp byte [0x10020064], 0
xorps xmm2, xmm2
je 0x1000fce2
movaps xmm0, xmm4
xorps xmm5, xmm5
jmp 0x1000fce8
xorps xmm0, xmm0
movaps xmm5, xmm4
ucomiss xmm2, xmm3
lahf
test ah, 0x44
jp 0x1000fcfb
comiss xmm1, xmm3
jae 0x1000fd1b
movaps xmm0, xmm5
jmp 0x1000fd1b
subss xmm1, xmm2
subss xmm3, xmm2
subss xmm0, xmm5
divss xmm1, xmm3
maxss xmm2, xmm1
minss xmm4, xmm2
mulss xmm0, xmm4
addss xmm0, xmm5
mov ecx, dword [0x10020e14]
movss dword [0x10020058], xmm0
push ecx
movss dword [esp], xmm0
mov eax, dword [ecx]
call dword [eax + 0x1b0]
movss xmm3, dword [0x10020060]
movss xmm1, dword [0x1002005c]
cmp byte [0x10020064], 0
jne 0x1000fd59
comiss xmm3, xmm1
jbe 0x10010772
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
xor esi, esi
push esi
call edi
test ax, ax
jns 0x1000fd94
mov eax, dword [esi*4 + 0x10021bb0]
cmp eax, 1
jne 0x1000fd82
mov dword [esi*4 + 0x10021bb0], 2
jmp 0x1000fd9f
cmp eax, 2
je 0x1000fd9f
mov dword [esi*4 + 0x10021bb0], 1
jmp 0x1000fd9f
mov dword [esi*4 + 0x10021bb0], 0
inc esi
cmp esi, 0x100
jl 0x1000fd61
mov ecx, dword [0x10020e14]
push 0x10021fb4
push 0x10021fb0
mov eax, dword [ecx]
call dword [eax + 0x180]
cmp dword [0x10021bb4], 2
mov ecx, dword [0x10020024]
mov edx, dword [0x10021fb0]
sete byte [ebp - 0xd]
mov eax, dword [0x1002002c]
mov esi, dword [0x10021fb4]
mov edi, dword [0x10020028]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], eax
cmp edx, ecx
jle 0x1000fe35
add eax, ecx
cmp edx, eax
jge 0x1000fe35
lea eax, [edi - 0x10]
cmp esi, eax
jle 0x1000fe35
cmp esi, edi
jge 0x1000fe35
cmp byte [ebp - 0xd], 0
je 0x1000fe35
cmp byte [0x10020fd1], 0
mov byte [0x10020fd0], 1
jne 0x1000fe3e
mov eax, edx
mov byte [0x10020fd1], 1
sub eax, ecx
mov edx, esi
sub edx, edi
mov dword [0x10021b9c], eax
mov dword [0x10021ba0], edx
jmp 0x1000fe49
cmp byte [0x10020fd0], 0
je 0x1000fe64
mov edx, dword [0x10021ba0]
mov eax, dword [0x10021b9c]
mov ecx, dword [0x10021fb0]
mov edi, esi
sub ecx, eax
sub edi, edx
mov dword [ebp - 0x18], ecx
mov dword [0x10020024], ecx
mov dword [0x10020028], edi
cmp byte [ebp - 0xd], 0
jne 0x1000fe78
mov byte [0x10020fd0], 0
mov byte [0x10020fd1], 0
mov ecx, dword [0x10020e14]
push dword [0x10020400]
mov esi, dword [0x10020030]
mov eax, dword [ecx]
call dword [eax + 0x28]
mov ecx, dword [0x10020e14]
mov eax, dword [ecx]
mov edx, dword [eax + 0x30]
lea eax, [edi + esi]
mov esi, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x14]
add eax, esi
push eax
push edi
push esi
call edx
mov eax, dword [0x10020028]
mov ecx, dword [0x10020e14]
add eax, 0xfffffff0
push dword [0x1002040c]
mov edi, dword [0x1002002c]
mov esi, dword [0x10020024]
mov dword [ebp - 0x18], eax
mov eax, dword [ecx]
call dword [eax + 0x28]
mov ecx, dword [0x10020e14]
mov eax, dword [ecx]
mov edx, dword [eax + 0x30]
mov eax, dword [ebp - 0x18]
add eax, 0x10
push eax
lea eax, [esi + edi]
push eax
push dword [ebp - 0x18]
push esi
call edx
mov eax, dword [0x10020028]
push str.Team_Fortress_2_Classic
add eax, 0xfffffff8
mov dword [ebp - 0x14], 0xa
push 0x18
push 0x10020410
push eax
mov eax, dword [0x1002002c]
cdq
sub eax, edx
sar eax, 1
add eax, dword [0x10020024]
push eax
lea eax, [ebp - 0x14]
push eax
push 0x10021150
call fcn.10014270
mov eax, dword [0x10020024]
add esp, 0x14
add eax, 8
mov dword [0x1002003c], 0
cmp dword [0x10020fd8], 0
mov dword [0x10020034], eax
mov eax, dword [0x10020028]
mov dword [0x10020038], eax
sete al
movzx eax, al
push eax
push 0x1001af3c
mov dword [0x10020040], 0
call fcn.100108d0
test al, al
je 0x1000ff7d
xor eax, eax
mov dword [0x10020fd8], eax
jmp 0x1000ff82
mov eax, dword [0x10020fd8]
sub esp, 8
cmp eax, 1
sete al
movzx eax, al
push eax
push 0x1001af44
call fcn.100108d0
test al, al
je 0x1000ffa9
mov eax, 1
mov dword [0x10020fd8], eax
jmp 0x1000ffae
mov eax, dword [0x10020fd8]
sub esp, 8
cmp eax, 2
sete al
movzx eax, al
push eax
push str.Misc
call fcn.100108d0
test al, al
je 0x1000ffd3
mov dword [0x10020fd8], 2
mov ecx, dword [0x1002003c]
mov eax, dword [0x10020034]
add ecx, 8
mov esi, dword [0x10020030]
add eax, ecx
mov ecx, dword [0x10020e14]
dec esi
mov edi, dword [0x10020028]
add esi, edi
push dword [0x100203fc]
mov dword [ebp - 0x14], eax
mov eax, dword [ecx]
call dword [eax + 0x28]
mov ecx, dword [0x10020e14]
push esi
mov esi, dword [ebp - 0x14]
push esi
mov eax, dword [ecx]
push edi
push esi
call dword [eax + 0x3c]
mov eax, dword [0x10020fd8]
lea ecx, [esi + 8]
mov dword [0x10020034], ecx
mov dword [0x10020038], edi
mov dword [0x1002003c], 0
mov dword [0x10020040], 0
sub eax, 0
je 0x100102b5
sub eax, 1
je 0x10010102
sub eax, 1
jne 0x10010772
lea eax, [edi + 4]
mov dword [0x10020044], ecx
mov dword [0x10020048], eax
lea eax, [esi + 0x10]
mov dword [0x10020034], eax
lea eax, [edi + 8]
push 0x10020454
mov dword [0x10020038], eax
call fcn.100107a0
push 0x1002044c
call fcn.100107a0
push 0x10020444
call fcn.100107a0
push 0xd2
push str.Main
call fcn.10011930
mov ecx, dword [0x10020034]
mov eax, dword [0x10020040]
mov edx, dword [0x10020038]
add eax, 4
add eax, edx
mov dword [0x10020044], ecx
mov dword [0x10020048], eax
lea eax, [ecx + 8]
mov dword [0x10020034], eax
lea eax, [edx + 8]
push 0x10020414
mov dword [0x10020038], eax
call fcn.100107a0
push ecx
call fcn.100111c0
push 0
push 0x1002041c
call fcn.100114c0
push 0xd2
push str.Sequence_Skipper
jmp 0x1001076d
movups xmm0, xmmword [0x10020034]
lea eax, [edi + 4]
mov dword [0x10020044], ecx
mov dword [0x10020048], eax
lea eax, [esi + 0x10]
mov dword [0x10020034], eax
lea eax, [edi + 8]
push 0x100204b8
movups xmmword [ebp - 0x28], xmm0
mov dword [0x10020038], eax
movups xmmword [ebp - 0x74], xmm0
call fcn.100107a0
push 0x100204b0
call fcn.100107a0
push 0xd2
push str.Main
call fcn.10011930
mov edx, dword [ebp - 0x28]
add edx, 0xda
mov dword [ebp - 0x74], edx
movups xmm1, xmmword [ebp - 0x74]
push 0x10020478
lea eax, [edx + 8]
mov dword [ebp - 0x14], edx
movaps xmm0, xmm1
mov dword [0x10020044], edx
movups xmmword [0x10020034], xmm1
mov dword [0x10020034], eax
psrldq xmm0, 4
movd ecx, xmm0
psrldq xmm1, 0xc
movd edi, xmm1
add edi, 4
add edi, ecx
lea esi, [ecx + 8]
mov dword [0x10020048], edi
mov dword [0x10020038], esi
call fcn.100107a0
push 0x10020490
call fcn.100107a0
lea ecx, [ebp - 0xb0]
mov dword [ebp - 0xb0], 0
push ecx
lea eax, [ebp - 0x74]
mov dword [ebp - 0xa0], 0x1001b024
push eax
push ecx
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x9c], 1
mov dword [ebp - 0x8c], str.Full
mov dword [ebp - 0x88], 2
mov dword [ebp - 0x78], str.Corner
call fcn.10011cf0
lea eax, [ebp - 0x24]
mov dword [ebp - 4], 8
push eax
push 0x10020464
call fcn.10010a00
lea ecx, [ebp - 0x24]
mov dword [ebp - 4], 0xffffffff
call fcn.10012080
push 0x10020480
call fcn.100107a0
push 0x1002045c
call fcn.100107a0
push 0x10020488
call fcn.100107a0
push 0xd2
push str.Players
call fcn.10011930
mov ecx, dword [ebp - 0x14]
mov dword [0x10020048], edi
lea eax, [ecx + 0xda]
mov dword [ebp - 0x74], eax
movups xmm0, xmmword [ebp - 0x74]
mov dword [0x10020044], eax
lea eax, [ecx + 0xe2]
movups xmmword [0x10020034], xmm0
mov dword [0x10020034], eax
mov dword [0x10020038], esi
push 0x100204a0
call fcn.100107a0
push 0x100204a8
call fcn.100107a0
push 0x10020498
call fcn.100107a0
push 0xd2
push str.Buildings
jmp 0x1001076d
movups xmm0, xmmword [0x10020034]
lea eax, [edi + 4]
mov dword [0x10020044], ecx
mov dword [0x10020048], eax
lea eax, [esi + 0x10]
mov dword [0x10020034], eax
lea eax, [edi + 8]
push 0x100203f4
movups xmmword [ebp - 0xc0], xmm0
mov dword [0x10020038], eax
movups xmmword [ebp - 0x74], xmm0
call fcn.100107a0
push 1
push 0x100203d8
call fcn.100114c0
push 0x100203c0
call fcn.100107a0
push 0x100203b8
call fcn.100107a0
push 0x100203d0
call fcn.100107a0
push 0x100203b0
call fcn.100107a0
push 0x100203ec
call fcn.100107a0
push 0x100203c8
call fcn.100107a0
push 0xa0
push str.Global
call fcn.10011930
mov ecx, dword [0x10020034]
mov eax, dword [0x10020040]
mov edx, dword [0x10020038]
add eax, 4
add eax, edx
mov dword [0x10020044], ecx
mov dword [0x10020048], eax
lea eax, [ecx + 8]
mov dword [0x10020034], eax
lea eax, [edx + 8]
push 0x100202c4
mov dword [0x10020038], eax
call fcn.100107a0
push ecx
push 0x10020280
call fcn.10010eb0
push ecx
push 0x100202b0
call fcn.10010eb0
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x64], 0
push ecx
lea eax, [ebp - 0x28]
mov dword [ebp - 0x54], str.Plain
push eax
push ecx
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x50], 1
mov dword [ebp - 0x40], str.Smooth
mov dword [ebp - 0x3c], 2
mov dword [ebp - 0x2c], str.Silent
call fcn.10011cf0
lea eax, [ebp - 0x24]
mov dword [ebp - 4], 0
push eax
push 0x1002026c
call fcn.10010a00
lea ecx, [ebp - 0x24]
mov dword [ebp - 4], 0xffffffff
call fcn.10012080
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x50], 0
push ecx
lea eax, [ebp - 0x28]
mov dword [ebp - 0x40], 0x1001a7fc
push eax
push ecx
mov dword [ebp - 0x3c], 1
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x2c], str.Distance
call fcn.10011cf0
lea eax, [ebp - 0x24]
mov dword [ebp - 4], 1
push eax
push 0x1002029c
call fcn.10010a00
lea ecx, [ebp - 0x24]
mov dword [ebp - 4], 0xffffffff
call fcn.10012080
push 0x10020294
call fcn.100107a0
push 0xd7
push str.Melee
call fcn.10011930
mov edx, dword [ebp - 0xc0]
add edx, 0xa8
mov dword [ebp - 0x74], edx
movups xmm1, xmmword [ebp - 0x74]
push 0x100203a8
lea eax, [edx + 8]
mov dword [ebp - 0x14], edx
movaps xmm0, xmm1
mov dword [0x10020044], edx
movups xmmword [0x10020034], xmm1
mov dword [0x10020034], eax
psrldq xmm0, 4
movd ecx, xmm0
psrldq xmm1, 0xc
movd edi, xmm1
add edi, 4
add edi, ecx
lea esi, [ecx + 8]
mov dword [0x10020048], edi
mov dword [0x10020038], esi
call fcn.100107a0
push ecx
push 0x10020350
call fcn.10010eb0
push ecx
push 0x10020394
call fcn.10010eb0
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x50], 0
push ecx
lea eax, [ebp - 0x28]
mov dword [ebp - 0x40], 0x1001a7fc
push eax
push ecx
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x3c], 1
mov dword [ebp - 0x2c], str.Distance
call fcn.10011cf0
lea eax, [ebp - 0x24]
mov dword [ebp - 4], 2
push eax
push 0x10020380
call fcn.10010a00
lea ecx, [ebp - 0x24]
mov dword [ebp - 4], 0xffffffff
call fcn.10012080
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x64], 0
push ecx
lea eax, [ebp - 0x28]
mov dword [ebp - 0x54], str.Head
push eax
push ecx
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x50], 1
mov dword [ebp - 0x40], str.Body
mov dword [ebp - 0x3c], 2
mov dword [ebp - 0x2c], str.Auto
call fcn.10011cf0
lea eax, [ebp - 0x24]
mov dword [ebp - 4], 3
push eax
push 0x1002036c
call fcn.10010a00
lea ecx, [ebp - 0x24]
mov dword [ebp - 4], 0xffffffff
call fcn.10012080
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x64], 0
push ecx
lea eax, [ebp - 0x28]
mov dword [ebp - 0x54], str.Plain
push eax
push ecx
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x50], 1
mov dword [ebp - 0x40], str.Smooth
mov dword [ebp - 0x3c], 2
mov dword [ebp - 0x2c], str.Silent
call fcn.10011cf0
lea eax, [ebp - 0x24]
mov dword [ebp - 4], 4
push eax
push 0x1002033c
call fcn.10010a00
lea ecx, [ebp - 0x24]
mov dword [ebp - 4], 0xffffffff
call fcn.10012080
push 0x10020334
call fcn.100107a0
push 0x10020364
call fcn.100107a0
push 0xd7
push str.Hitscan
call fcn.10011930
mov ecx, dword [ebp - 0x14]
push 0x1002032c
mov dword [0x10020048], edi
lea eax, [ecx + 0xdf]
mov dword [ebp - 0x74], eax
movups xmm0, xmmword [ebp - 0x74]
mov dword [0x10020044], eax
lea eax, [ecx + 0xe7]
movups xmmword [0x10020034], xmm0
mov dword [0x10020034], eax
mov dword [0x10020038], esi
call fcn.100107a0
push ecx
push 0x100202f4
call fcn.10010eb0
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x50], 0
push ecx
lea eax, [ebp - 0x28]
mov dword [ebp - 0x40], 0x1001a7fc
push eax
push ecx
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x3c], 1
mov dword [ebp - 0x2c], str.Distance
call fcn.10011cf0
lea eax, [ebp - 0x24]
mov dword [ebp - 4], 5
push eax
push 0x10020318
call fcn.10010a00
lea ecx, [ebp - 0x24]
mov dword [ebp - 4], 0xffffffff
call fcn.10012080
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x64], 0
push ecx
lea eax, [ebp - 0x28]
mov dword [ebp - 0x54], str.Body
push eax
push ecx
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x50], 1
mov dword [ebp - 0x40], str.Feet
mov dword [ebp - 0x3c], 2
mov dword [ebp - 0x2c], str.Auto
call fcn.10011cf0
lea eax, [ebp - 0x24]
mov dword [ebp - 4], 6
push eax
push 0x100202e0
call fcn.10010a00
lea ecx, [ebp - 0x24]
mov dword [ebp - 4], 0xffffffff
call fcn.10012080
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x50], 0
push ecx
lea eax, [ebp - 0x28]
mov dword [ebp - 0x40], str.Plain
push eax
push ecx
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x3c], 1
mov dword [ebp - 0x2c], str.Silent
call fcn.10011cf0
lea eax, [ebp - 0x24]
mov dword [ebp - 4], 7
push eax
push 0x100202cc
call fcn.10010a00
lea ecx, [ebp - 0x24]
mov dword [ebp - 4], 0xffffffff
call fcn.10012080
push 0x10020310
call fcn.100107a0
push 0x10020308
call fcn.100107a0
push 0xd7
push str.Projectile
call fcn.10011930
mov ecx, dword [0x10020e14]
push ecx
mov dword [esp], 0x3f800000
mov eax, dword [ecx]
call dword [eax + 0x1b0]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret