Function at 0x1001a140
Capabilities:
Log keystrokes via polling
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x124
cmp byte [0x1027341c], 0
push ebx
push esi
push edi
mov edi, ecx
mov dword [esp + 0x18], edi
je 0x1001a737
mov ecx, dword [0x10237398]
mov eax, dword [0x102733e0]
cmp ecx, 3
ja case.0x1001a172.0
jmp dword [ecx*4 + 0x1001a740]
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
setne al
jmp 0x1001a1aa
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
setne al
jmp 0x1001a1aa
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
sete al
test al, al
je 0x1001a737
mov ebx, dword [0x1023d288]
test ebx, ebx
je 0x1001a737
mov eax, ebx
mov dword [esp + 0x10], eax
test eax, eax
je 0x1001a737
mov eax, dword [0x1023d284]
test eax, eax
jne 0x1001a20b
mov edx, 0xe80c2f78
mov ecx, 0x1021170d
call fcn.100050d0
mov edx, 0xc10bf213
mov ecx, 0x10211635
mov esi, eax
call fcn.100050d0
mov edx, esi
mov ecx, eax
call fcn.1011f760
mov ebx, dword [0x1023d288]
mov dword [0x1023d284], eax
mov ecx, dword [esp + 0x10]
cmp dword [eax + ecx], 0
jle 0x1001a737
mov eax, dword [0x1023d2c0]
test eax, eax
jne 0x1001a250
mov edx, 0xe80c2f78
mov ecx, 0x10211851
call fcn.100050d0
mov edx, 0xc10bf213
mov ecx, 0x10211635
mov esi, eax
call fcn.100050d0
mov edx, esi
mov ecx, eax
call fcn.1011f760
mov dword [0x1023d2c0], eax
test byte [eax + ebx], 1
jne 0x1001a737
call fcn.1000c050
cmp eax, 9
je 0x1001a737
cmp eax, 8
je 0x1001a737
cmp byte [0x10239759], 0
jne 0x1001a737
mov dword [esp + 0x14], 0
nop word [eax + eax]
cmp byte [0x10239759], 0
jne 0x1001a737
call fcn.10027840
mov eax, dword [0x1023d2c0]
mov ecx, dword [0x1023d288]
mov ebx, ecx
test eax, eax
jne 0x1001a2e7
mov edx, 0xe80c2f78
mov ecx, 0x10211851
call fcn.100050d0
mov edx, 0xc10bf213
mov ecx, 0x10211635
mov esi, eax
call fcn.100050d0
mov edx, esi
mov ecx, eax
call fcn.1011f760
mov ecx, dword [0x1023d288]
mov dword [0x1023d2c0], eax
mov eax, dword [ebx + eax]
mov ebx, ecx
mov dword [esp + 0x1c], eax
mov eax, dword [0x1023d310]
test eax, eax
jne 0x1001a32d
mov edx, 0xe80c2f78
mov ecx, 0x102119f5
call fcn.100050d0
mov edx, 0xc10bf213
mov ecx, 0x1021165d
mov esi, eax
call fcn.100050d0
mov edx, esi
mov ecx, eax
call fcn.1011f760
mov ecx, dword [0x1023d288]
mov dword [0x1023d310], eax
movq xmm0, qword [ebx + eax]
mov eax, dword [ebx + eax + 8]
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x20]
push eax
movq qword [esp + 0x68], xmm0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xe0], 0
mov dword [esp + 0xdc], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xe4], 0
call fcn.100050f0
mov ecx, dword [0x1023d288]
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
mov ecx, eax
call edx
mov ecx, dword [0x1023d288]
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
mov dword [esp + 0x54], eax
mov eax, dword [ecx]
movq qword [esp + 0x4c], xmm0
mov eax, dword [eax + 0xc]
call eax
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
mov ecx, eax
call edx
movss xmm1, dword [edi + 0xc]
mulss xmm1, dword [0x1022f8d4]
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [esp + 0x40], xmm0
movaps xmm0, xmm1
mov dword [esp + 0x48], eax
call fcn.10184cd0
movss xmm1, dword [edi + 0x10]
mulss xmm1, dword [0x1022f8d4]
movaps xmmword [esp + 0x120], xmm0
movaps xmm0, xmm1
call fcn.10184cd0
movups xmm4, xmmword [esp + 0x120]
mov eax, dword [esp + 0x28]
movaps xmm2, xmm0
mov dword [esp + 0x60], eax
movq xmm0, qword [esp + 0x20]
movaps xmm1, xmm2
shufps xmm1, xmm2, 1
movaps xmm3, xmm4
shufps xmm3, xmm4, 1
mulss xmm4, dword [0x1022fca8]
mov dword [esp + 0x38], vtable.trace_world_only.0
mulss xmm1, xmm3
mov dword [esp + 0x78], 0
mulss xmm3, xmm2
mov dword [esp + 0x74], 0
mulss xmm1, dword [0x1022fae0]
mov dword [esp + 0x70], 0
mulss xmm3, dword [0x1022fae0]
mov dword [esp + 0x88], 0
movss xmm2, dword [esp + 0x20]
addss xmm2, xmm1
movq qword [esp + 0x58], xmm0
movss xmm1, dword [esp + 0x24]
movss xmm0, dword [esp + 0x28]
addss xmm1, xmm3
addss xmm0, xmm4
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
movss dword [esp + 0x2c], xmm2
mov dword [esp + 0x98], 0
movss dword [esp + 0x30], xmm1
movss dword [esp + 0x34], xmm0
lea eax, [esp + 0x40]
mov dword [esp + 0x94], 0
push eax
lea eax, [esp + 0x50]
mov dword [esp + 0x94], 0
push eax
lea eax, [esp + 0x34]
mov dword [esp + 0xb0], 0
push eax
lea eax, [esp + 0x64]
mov dword [esp + 0xb0], 0
push eax
lea ecx, [esp + 0x80]
mov dword [esp + 0xb0], 0
call fcn.1000c3a0
mov ecx, dword [0x1023d210]
lea edx, [esp + 0xc8]
push edx
lea edx, [esp + 0x3c]
push edx
mov eax, dword [ecx]
lea edx, [esp + 0x78]
push 0x201400b
push edx
call dword [eax + 0x14]
movss xmm0, dword [esp + 0x6c]
xor ebx, ebx
movss dword [esp + 0x10], xmm0
nop dword [eax]
push 0x68
call fcn.101832c9
add esp, 4
mov ecx, eax
push edi
call fcn.10018e30
mov esi, dword [esp + 0x14]
mov edi, eax
mov ecx, dword [edi + 0x30]
test esi, esi
jne 0x1001a5a4
or ecx, 4
jmp 0x1001a5a7
and ecx, 0xfffffffb
mov dword [edi + 0x30], ecx
mov ecx, edi
call fcn.100273c0
test byte [esp + 0x1c], 1
jne 0x1001a725
movss xmm0, dword [esp + 0x10]
movss xmm1, dword [0x1022fca0]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x1001a636
mov eax, dword [0x1023d288]
mov dword [esp + 0x10], eax
mov eax, dword [0x1023d310]
test eax, eax
jne 0x1001a61f
mov edx, 0xe80c2f78
mov ecx, 0x102119f5
call fcn.100050d0
mov edx, 0xc10bf213
mov ecx, 0x1021165d
mov esi, eax
call fcn.100050d0
mov edx, esi
mov ecx, eax
call fcn.1011f760
movss xmm1, dword [0x1022fca0]
mov esi, dword [esp + 0x14]
mov dword [0x1023d310], eax
mov ecx, dword [esp + 0x10]
movss xmm0, dword [eax + ecx + 8]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1001a6fa
movss xmm0, dword [esp + 0xf4]
comiss xmm0, dword [0x1022f9c8]
ja 0x1001a6fa
call fcn.10027ab0
mov eax, dword [0x1023d2c0]
mov edi, dword [0x1023d288]
mov dword [esp + 0x10], edi
test eax, eax
jne 0x1001a698
mov edx, 0xe80c2f78
mov ecx, 0x10211851
call fcn.100050d0
mov edx, 0xc10bf213
mov ecx, 0x10211635
mov esi, eax
call fcn.100050d0
mov edx, esi
mov ecx, eax
call fcn.1011f760
mov edi, dword [0x1023d288]
mov dword [0x1023d2c0], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + eax]
mov dword [esp + 0x1c], eax
mov eax, dword [0x1023d310]
test eax, eax
jne 0x1001a6da
mov edx, 0xe80c2f78
mov ecx, 0x102119f5
call fcn.100050d0
mov edx, 0xc10bf213
mov ecx, 0x1021165d
mov esi, eax
call fcn.100050d0
mov edx, esi
mov ecx, eax
call fcn.1011f760
mov dword [0x1023d310], eax
movss xmm0, dword [edi + eax + 8]
inc ebx
mov edi, dword [esp + 0x18]
movss dword [esp + 0x10], xmm0
cmp ebx, 0x10
jle 0x1001a580
mov esi, dword [esp + 0x14]
jmp 0x1001a725
mov eax, dword [esp + 0x18]
mov byte [0x10273448], 1
mov eax, dword [eax + 8]
add eax, ebx
mov dword [0x10239768], edi
test esi, esi
mov dword [0x10239760], eax
mov byte [0x10239759], 1
sete byte [0x1023975a]
mov edi, dword [esp + 0x18]
inc esi
mov dword [esp + 0x14], esi
cmp esi, 2
jl 0x1001a290
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret