Function at 0x10014405
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x134
cmp byte [0x101f58f0], 0
push ebx
push ebp
push esi
mov ebp, ecx
push edi
mov dword [esp + 0x24], ebp
je 0x10014ee9
mov edx, dword [0x101bc2fc]
mov eax, dword [0x101f58c8]
cmp edx, 3
ja case.0x100143dd.0
jmp dword [edx*4 + 0x10014f14]
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
setne al
jmp 0x10014415
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
setne al
jmp 0x10014415
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
sete al
test al, al
je 0x10014ee9
cmp dword [0x101f565c], 0
je 0x10014ee9
call fcn.10009f10
test byte [0x101f59b8], 1
jne 0x10014ee9
cmp eax, 8
je 0x10014ee9
cmp eax, 0xa
je 0x10014ee9
cmp eax, 9
je 0x10014ee9
cmp dword [0x101f5988], 0
jne 0x10014d44
mov ecx, dword [0x101bf778]
push str.m_yaw
mov eax, dword [ecx]
call dword [eax + 0x44]
mov ecx, dword [0x101bf778]
mov esi, eax
push str.sensitivity
mov edx, dword [ecx]
call dword [edx + 0x44]
mov ecx, dword [esi]
mov edi, eax
mov ecx, dword [ecx + 0x30]
mov dword [esp + 0x18], ecx
mov ecx, esi
call dword [esp + 0x18]
mov ecx, dword [edi]
fstp dword [esp + 0x20]
mov eax, dword [ecx + 0x30]
mov ecx, edi
mov dword [esp + 0x18], eax
call dword [esp + 0x18]
mov eax, dword [0x101f55e8]
lea ecx, [esp + 0x34]
movss xmm0, dword [0x101bc234]
movss xmm1, dword [0x101b64f8]
fstp dword [esp + 0x18]
divss xmm0, dword [eax + 0x20]
movsx eax, word [ebp + 0x44]
mov dword [esp + 0x30], 0x41f00000
mov dword [esp + 0x34], 0xc1f00000
addss xmm0, dword [0x101b6388]
cvttss2si ebx, xmm0
movd xmm0, eax
lea eax, [esp + 0x18]
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x1c], ebx
mulss xmm0, dword [esp + 0x20]
mulss xmm0, dword [esp + 0x18]
comiss xmm0, dword [0x101b6688]
movss dword [esp + 0x18], xmm0
cmovae ecx, eax
lea eax, [esp + 0x30]
comiss xmm1, xmm0
cmovae eax, ecx
cmp byte [0x101f5941], 0
movss xmm0, dword [eax]
movss dword [esp + 0x14], xmm0
je 0x10014549
ucomiss xmm0, dword [0x101b626c]
mov dword [esp + 0x18], 4
lahf
test ah, 0x44
jp 0x10014551
mov dword [esp + 0x18], 2
movss xmm0, dword [ebp + 0x24]
mov eax, dword [0x101f0efc]
mov ecx, dword [0x101f0f00]
movss dword [esp + 0x30], xmm0
movss xmm0, dword [ebp + 0x28]
movss dword [esp + 0x34], xmm0
movq xmm0, qword [ebp + 0xc]
movq qword [esp + 0x44], xmm0
movss xmm0, dword [esp + 0x48]
movss dword [0x101f5980], xmm0
cmp eax, ecx
je 0x10014597
mov ecx, eax
mov dword [0x101f0f00], ecx
mov eax, dword [0x101f55f0]
mov edi, dword [0x101f565c]
test eax, eax
jne 0x100145da
mov edx, 0xe80c2f78
mov ecx, 0x1014a929
call fcn.10003700
mov edx, 0xc10bf213
mov ecx, 0x1014a935
mov esi, eax
call fcn.10003700
mov edx, esi
mov ecx, eax
call fcn.100aa660
mov ecx, dword [0x101f0f00]
mov dword [0x101f55f0], eax
add eax, edi
cmp ecx, dword [0x101f0f04]
je 0x100145fb
movq xmm0, qword [eax]
movq qword [ecx], xmm0
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
add dword [0x101f0f00], 0xc
jmp 0x10014607
push eax
push ecx
mov ecx, 0x101f0efc
call fcn.10005e70
movss xmm1, dword [esp + 0x14]
xor esi, esi
mov dword [esp + 0x2c], esi
nop dword [eax]
nop word [eax + eax]
movss dword [esp + 0x3c], xmm1
cmp esi, 1
jle 0x10014a49
movss xmm2, dword [esp + 0x14]
movaps xmm0, xmm1
movd xmm1, dword [0x101bc2ac]
cvtdq2ps xmm1, xmm1
divss xmm2, xmm1
movss dword [esp + 0x14], xmm2
call fcn.10007900
movss xmm1, dword [esp + 0x14]
movaps xmm2, xmm0
movaps xmm0, xmm1
movss dword [esp + 0x40], xmm2
call fcn.10007900
comiss xmm2, xmm0
jb 0x10014cb0
mov eax, dword [0x101bf740]
mov ecx, dword fs:[0x2c]
mov ebp, dword [ecx + eax*4]
mov dword [esp + 0x28], ebp
nop word [eax + eax]
push dword [esp + 0x24]
lea ecx, [esp + 0x74]
call fcn.10014f30
cmp esi, 2
jne 0x100146b3
or dword [esp + 0xa0], 4
mov byte [0x101f5964], 1
jmp 0x100146c7
cmp esi, 3
jne 0x100146fb
and dword [esp + 0xa0], 0xfffffffb
mov byte [0x101f5964], 0
movss xmm0, dword [esp + 0x48]
movss dword [esp + 0x80], xmm0
movss xmm0, dword [esp + 0x30]
movss dword [esp + 0x94], xmm0
movss xmm0, dword [esp + 0x34]
movss dword [esp + 0x98], xmm0
mov byte [0x101f5970], 1
mov eax, dword [0x101f5894]
mov esi, dword [eax + 0x1c]
mov eax, dword [0x101fae18]
dec esi
cmp eax, dword [ebp + 4]
jle 0x10014748
push 0x101fae18
call fcn.1010e5e4
add esp, 4
cmp dword [0x101fae18], 0xffffffff
jne 0x10014748
mov edx, str.55_8B_EC_8B_4D___56_E8_________8B_75
mov ecx, str.client.dll
call fcn.10006670
push 0x101fae18
mov dword [0x101fae1c], eax
call fcn.1010e593
add esp, 4
push esi
push 0
call dword [0x101fae1c]
mov ebp, 1
cmp ebx, ebp
jl 0x10014a04
nop
movd xmm0, ebp
cvtdq2ps xmm0, xmm0
push ecx
mulss xmm0, dword [esp + 0x18]
addss xmm0, dword [esp + 0x4c]
movss dword [esp + 0x3c], xmm0
fld dword [esp + 0x3c]
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll__fdclass
add esp, 4
test ax, ax
jle 0x10014793
xorps xmm1, xmm1
jmp 0x100147ff
movss xmm1, dword [esp + 0x38]
comiss xmm1, dword [0x101b66a4]
jb 0x100147af
movss xmm0, dword [0x101b6558]
comiss xmm0, xmm1
jae 0x100147ff
movaps xmm0, xmm1
mulss xmm0, dword [0x101b62c0]
call fcn.10007900
movss dword [esp + 0x20], xmm0
fld dword [esp + 0x20]
push ecx
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movss xmm1, dword [esp + 0x3c]
xorps xmm0, xmm0
add esp, 4
comiss xmm0, xmm1
fstp dword [esp + 0x20]
movss xmm0, dword [esp + 0x20]
mulss xmm0, dword [0x101b65b4]
jbe 0x100147fb
addss xmm1, xmm0
jmp 0x100147ff
subss xmm1, xmm0
movss dword [esp + 0x80], xmm1
subss xmm1, dword [0x101f5980]
movaps xmm0, xmm1
call fcn.10007900
comiss xmm0, dword [0x101f58ac]
ja 0x10014a04
lea ecx, [esp + 0x70]
call fcn.100245f0
call fcn.10024ca0
mov eax, dword [0x101f56d0]
mov edi, dword [0x101f565c]
mov ebx, edi
test eax, eax
jne 0x10014878
mov edx, 0xe80c2f78
mov ecx, 0x10196741
call fcn.10003700
mov edx, 0xc10bf213
mov ecx, 0x1014a935
mov esi, eax
call fcn.10003700
mov edx, esi
mov ecx, eax
call fcn.100aa660
mov edi, dword [0x101f565c]
mov dword [0x101f56d0], eax
movss xmm0, dword [ebx + eax + 8]
comiss xmm0, dword [0x101b626c]
ja 0x10014a00
test eax, eax
jne 0x100148bd
mov edx, 0xe80c2f78
mov ecx, 0x10196741
call fcn.10003700
mov edx, 0xc10bf213
mov ecx, 0x1014a935
mov esi, eax
call fcn.10003700
mov edx, esi
mov ecx, eax
call fcn.100aa660
mov dword [0x101f56d0], eax
movss xmm1, dword [edi + eax + 4]
movss xmm0, dword [edi + eax]
mulss xmm0, xmm0
mov dword [esp + 0x50], 0
mulss xmm1, xmm1
addss xmm0, xmm1
movss dword [esp + 0x20], xmm0
sqrtss xmm0, dword [esp + 0x20]
movss dword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0x50]
ucomiss xmm0, dword [0x101b626c]
lahf
test ah, 0x44
jnp 0x10014a00
call fcn.10009f10
cmp eax, 9
je 0x10014a00
mov eax, dword [0x101f55f0]
mov edi, dword [0x101f565c]
test eax, eax
jne 0x10014950
mov edx, 0xe80c2f78
mov ecx, 0x1014a929
call fcn.10003700
mov edx, 0xc10bf213
mov ecx, 0x1014a935
mov esi, eax
call fcn.10003700
mov edx, esi
mov ecx, eax
call fcn.100aa660
mov dword [0x101f55f0], eax
mov ecx, dword [0x101f0f00]
add eax, edi
cmp ecx, dword [0x101f0f04]
je 0x10014977
movq xmm0, qword [eax]
movq qword [ecx], xmm0
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
add dword [0x101f0f00], 0xc
jmp 0x10014983
push eax
push ecx
mov ecx, 0x101f0efc
call fcn.10005e70
lea edx, [esp + 0x13]
mov byte [esp + 0x13], 0
lea ecx, [esp + 0x70]
call fcn.100140f0
test al, al
jne 0x100149ae
mov ebx, dword [esp + 0x1c]
cmp byte [esp + 0x13], al
jne 0x10014a04
inc ebp
cmp ebp, ebx
jle 0x10014760
jmp 0x10014a04
mov eax, dword [0x101f55e8]
movss xmm0, dword [esp + 0x94]
movss dword [0x101f5978], xmm0
movss xmm0, dword [esp + 0x98]
mov ecx, dword [eax + 0x1c]
movss dword [0x101f597c], xmm0
movss xmm0, dword [esp + 0x14]
mov dword [0x101f5988], ebp
lea eax, [ecx + ebp]
mov dword [0x101f5984], ebp
mov dword [0x101f596c], eax
mov dword [0x101f5968], ecx
movss dword [0x101f5974], xmm0
mov ebx, dword [esp + 0x1c]
movd xmm0, dword [0x101bc2ac]
movss xmm1, dword [esp + 0x3c]
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
addss xmm1, dword [esp + 0x14]
movaps xmm0, xmm1
movss dword [esp + 0x14], xmm1
call fcn.10007900
movss xmm2, dword [esp + 0x40]
comiss xmm2, xmm0
mov esi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x28]
jae 0x10014690
jmp 0x10014cac
push ebp
lea ecx, [esp + 0xdc]
call fcn.10014f30
test esi, esi
jne 0x10014a6b
or dword [esp + 0x108], 4
mov byte [0x101f5964], 1
jmp 0x10014a7f
cmp esi, 1
jne 0x10014a9c
and dword [esp + 0x108], 0xfffffffb
mov byte [0x101f5964], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0xfc], 0
mov byte [0x101f5970], 0
mov eax, dword [0x101f5894]
mov ecx, dword fs:[0x2c]
mov esi, dword [eax + 0x1c]
mov eax, dword [0x101bf740]
dec esi
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x101fae18]
cmp eax, dword [ecx + 4]
jle 0x10014af8
push 0x101fae18
call fcn.1010e5e4
add esp, 4
cmp dword [0x101fae18], 0xffffffff
jne 0x10014af8
mov edx, str.55_8B_EC_8B_4D___56_E8_________8B_75
mov ecx, str.client.dll
call fcn.10006670
push 0x101fae18
mov dword [0x101fae1c], eax
call fcn.1010e593
add esp, 4
push esi
push 0
call dword [0x101fae1c]
mov ebx, 1
cmp dword [esp + 0x1c], ebx
jl 0x10014c9b
lea ecx, [esp + 0xd8]
call fcn.100245f0
call fcn.10024ca0
mov eax, dword [0x101f56d0]
mov edi, dword [0x101f565c]
mov ebp, edi
test eax, eax
jne 0x10014b66
mov edx, 0xe80c2f78
mov ecx, 0x10196741
call fcn.10003700
mov edx, 0xc10bf213
mov ecx, 0x1014a935
mov esi, eax
call fcn.10003700
mov edx, esi
mov ecx, eax
call fcn.100aa660
mov edi, dword [0x101f565c]
mov dword [0x101f56d0], eax
movss xmm0, dword [eax + ebp + 8]
comiss xmm0, dword [0x101b626c]
ja 0x10014c9b
test eax, eax
jne 0x10014bab
mov edx, 0xe80c2f78
mov ecx, 0x10196741
call fcn.10003700
mov edx, 0xc10bf213
mov ecx, 0x1014a935
mov esi, eax
call fcn.10003700
mov edx, esi
mov ecx, eax
call fcn.100aa660
mov dword [0x101f56d0], eax
movss xmm1, dword [edi + eax + 4]
movss xmm0, dword [edi + eax]
mulss xmm0, xmm0
mov dword [esp + 0x60], 0
mulss xmm1, xmm1
addss xmm0, xmm1
movss dword [esp + 0x28], xmm0
sqrtss xmm0, dword [esp + 0x28]
movss dword [esp + 0x60], xmm0
movss xmm0, dword [esp + 0x60]
ucomiss xmm0, dword [0x101b626c]
lahf
test ah, 0x44
jnp 0x10014c9b
call fcn.10009f10
cmp eax, 9
je 0x10014c9b
mov eax, dword [0x101f55f0]
mov edi, dword [0x101f565c]
test eax, eax
jne 0x10014c3e
mov edx, 0xe80c2f78
mov ecx, 0x1014a929
call fcn.10003700
mov edx, 0xc10bf213
mov ecx, 0x1014a935
mov esi, eax
call fcn.10003700
mov edx, esi
mov ecx, eax
call fcn.100aa660
mov dword [0x101f55f0], eax
mov ecx, dword [0x101f0f00]
add eax, edi
cmp ecx, dword [0x101f0f04]
je 0x10014c65
movq xmm0, qword [eax]
movq qword [ecx], xmm0
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
add dword [0x101f0f00], 0xc
jmp 0x10014c71
push eax
push ecx
mov ecx, 0x101f0efc
call fcn.10005e70
lea edx, [esp + 0x13]
mov byte [esp + 0x13], 0
lea ecx, [esp + 0xd8]
call fcn.100140f0
test al, al
jne 0x10014ced
cmp byte [esp + 0x13], al
jne 0x10014c9b
inc ebx
cmp ebx, dword [esp + 0x1c]
jle 0x10014b10
movss xmm1, dword [esp + 0x14]
mov dword [esp + 0xd8], vtable.c_usercmd.0
mov esi, dword [esp + 0x2c]
cmp dword [0x101f5988], 0
mov ebp, dword [esp + 0x24]
jne 0x10014d44
mov ebx, dword [esp + 0x1c]
inc esi
mov dword [esp + 0x2c], esi
cmp esi, dword [esp + 0x18]
jl 0x10014620
mov byte [0x101fadab], 0
mov byte [0x101f5960], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x134
ret
mov eax, dword [0x101f55e8]
movss xmm0, dword [esp + 0xfc]
movss xmm1, dword [esp + 0x14]
movss dword [0x101f5978], xmm0
mov ecx, dword [eax + 0x1c]
movss xmm0, dword [esp + 0x100]
mov dword [0x101f5988], ebx
mov dword [0x101f5984], ebx
lea eax, [ecx + ebx]
mov dword [0x101f5968], ecx
mov dword [0x101f596c], eax
movss dword [0x101f597c], xmm0
movss dword [0x101f5974], xmm1
jmp 0x10014ca1
cmp dword [0x101f5988], 1
jne 0x10014d70
cmp byte [0x101f5924], 0
je 0x10014d69
push str.solutional_print_edgebugged
push dword [0x101f56d4]
call fcn.10009ec0
add esp, 8
mov byte [0x101f5960], 1
mov ecx, dword [ebp + 0x30]
mov eax, ecx
or eax, 4
mov byte [0x101fadab], 1
and ecx, 0xfffffffb
cmp byte [0x101f5964], 0
cmovne ecx, eax
mov dword [ebp + 0x30], ecx
cmp byte [0x101f5970], 0
je 0x10014eca
mov eax, dword [0x101f5984]
movss xmm0, dword [0x101f5978]
sub eax, dword [0x101f5988]
movss dword [ebp + 0x24], xmm0
inc eax
movss xmm0, dword [0x101f597c]
movss dword [ebp + 0x28], xmm0
push ecx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x101f5974]
addss xmm0, dword [0x101f5980]
movss dword [esp + 0x28], xmm0
fld dword [esp + 0x28]
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll__fdclass
add esp, 4
test ax, ax
jle 0x10014e0d
dec dword [0x101f5988]
xorps xmm2, xmm2
movss dword [ebp + 0x10], xmm2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x134
ret
movss xmm0, dword [esp + 0x24]
comiss xmm0, dword [0x101b66a4]
jb 0x10014e42
movss xmm1, dword [0x101b6558]
comiss xmm1, xmm0
jb 0x10014e42
dec dword [0x101f5988]
movaps xmm2, xmm0
movss dword [ebp + 0x10], xmm2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x134
ret
mulss xmm0, dword [0x101b62c0]
call fcn.10007900
movss dword [esp + 0x28], xmm0
fld dword [esp + 0x28]
push ecx
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movss xmm1, dword [esp + 0x28]
xorps xmm0, xmm0
add esp, 4
comiss xmm0, xmm1
fstp dword [esp + 0x18]
jbe 0x10014e9f
movss xmm2, dword [esp + 0x18]
mulss xmm2, dword [0x101b65b4]
dec dword [0x101f5988]
addss xmm2, xmm1
movss dword [ebp + 0x10], xmm2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x134
ret
movss xmm0, dword [esp + 0x18]
movaps xmm2, xmm1
mulss xmm0, dword [0x101b65b4]
dec dword [0x101f5988]
subss xmm2, xmm0
movss dword [ebp + 0x10], xmm2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x134
ret
dec dword [0x101f5988]
mov dword [ebp + 0x24], 0
mov dword [ebp + 0x28], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x134
ret
pop edi
pop esi
pop ebp
mov dword [0x101f5968], 0
mov dword [0x101f596c], 0
mov dword [0x101f5988], 0
pop ebx
add esp, 0x134
ret