Function at 0x10014480
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x134
cmp byte [0x101f78e8], 0
push ebx
push ebp
push esi
mov ebp, ecx
push edi
mov dword [esp + 0x24], ebp
je 0x10014fb9
mov edx, dword [0x101be2f8]
mov eax, dword [0x101f78c0]
cmp edx, 3
ja case.0x100144ad.0
jmp dword [edx*4 + 0x10014fe4]
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
setne al
jmp 0x100144e5
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
setne al
jmp 0x100144e5
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
sete al
test al, al
je 0x10014fb9
cmp dword [0x101f764c], 0
je 0x10014fb9
call fcn.1000a2e0
test byte [0x101f79b0], 1
jne 0x10014fb9
cmp eax, 8
je 0x10014fb9
cmp eax, 0xa
je 0x10014fb9
cmp eax, 9
je 0x10014fb9
cmp dword [0x101f7980], 0
jne 0x10014e14
mov ecx, dword [0x101c1768]
push str.m_yaw
mov eax, dword [ecx]
call dword [eax + 0x44]
mov ecx, dword [0x101c1768]
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 [0x101f75d8]
lea ecx, [esp + 0x34]
movss xmm0, dword [0x101be230]
movss xmm1, dword [0x101b8480]
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 [0x101b8310]
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 [0x101b8610]
movss dword [esp + 0x18], xmm0
cmovae ecx, eax
lea eax, [esp + 0x30]
comiss xmm1, xmm0
cmovae eax, ecx
cmp byte [0x101f7939], 0
movss xmm0, dword [eax]
movss dword [esp + 0x14], xmm0
je 0x10014619
ucomiss xmm0, dword [0x101b81e8]
mov dword [esp + 0x18], 4
lahf
test ah, 0x44
jp 0x10014621
mov dword [esp + 0x18], 2
movss xmm0, dword [ebp + 0x24]
mov eax, dword [0x101f2eec]
mov ecx, dword [0x101f2ef0]
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 [0x101f7978], xmm0
cmp eax, ecx
je 0x10014667
mov ecx, eax
mov dword [0x101f2ef0], ecx
mov eax, dword [0x101f75e0]
mov edi, dword [0x101f764c]
test eax, eax
jne 0x100146aa
mov edx, 0xe80c2f78
mov ecx, 0x1014c931
call fcn.10003ad0
mov edx, 0xc10bf213
mov ecx, 0x1014c93d
mov esi, eax
call fcn.10003ad0
mov edx, esi
mov ecx, eax
call fcn.100abe50
mov ecx, dword [0x101f2ef0]
mov dword [0x101f75e0], eax
add eax, edi
cmp ecx, dword [0x101f2ef4]
je 0x100146cb
movq xmm0, qword [eax]
movq qword [ecx], xmm0
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
add dword [0x101f2ef0], 0xc
jmp 0x100146d7
push eax
push ecx
mov ecx, 0x101f2eec
call fcn.10006240
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 0x10014b19
movss xmm2, dword [esp + 0x14]
movaps xmm0, xmm1
movd xmm1, dword [0x101be2a8]
cvtdq2ps xmm1, xmm1
divss xmm2, xmm1
movss dword [esp + 0x14], xmm2
call fcn.10007cd0
movss xmm1, dword [esp + 0x14]
movaps xmm2, xmm0
movaps xmm0, xmm1
movss dword [esp + 0x40], xmm2
call fcn.10007cd0
comiss xmm2, xmm0
jb 0x10014d80
mov eax, dword [0x101c1730]
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.10015000
cmp esi, 2
jne 0x10014783
or dword [esp + 0xa0], 4
mov byte [0x101f795c], 1
jmp 0x10014797
cmp esi, 3
jne 0x100147cb
and dword [esp + 0xa0], 0xfffffffb
mov byte [0x101f795c], 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 [0x101f7968], 1
mov eax, dword [0x101f7890]
mov esi, dword [eax + 0x1c]
mov eax, dword [0x101fce10]
dec esi
cmp eax, dword [ebp + 4]
jle 0x10014818
push 0x101fce10
call fcn.1010fdd4
add esp, 4
cmp dword [0x101fce10], 0xffffffff
jne 0x10014818
mov edx, str.55_8B_EC_8B_4D___56_E8_________8B_75
mov ecx, str.client.dll
call fcn.10006a40
push 0x101fce10
mov dword [0x101fce14], eax
call fcn.1010fd83
add esp, 4
push esi
push 0
call dword [0x101fce14]
mov ebp, 1
cmp ebx, ebp
jl 0x10014ad4
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 0x10014863
xorps xmm1, xmm1
jmp 0x100148cf
movss xmm1, dword [esp + 0x38]
comiss xmm1, dword [0x101b862c]
jb 0x1001487f
movss xmm0, dword [0x101b84e0]
comiss xmm0, xmm1
jae 0x100148cf
movaps xmm0, xmm1
mulss xmm0, dword [0x101b8240]
call fcn.10007cd0
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 [0x101b853c]
jbe 0x100148cb
addss xmm1, xmm0
jmp 0x100148cf
subss xmm1, xmm0
movss dword [esp + 0x80], xmm1
subss xmm1, dword [0x101f7978]
movaps xmm0, xmm1
call fcn.10007cd0
comiss xmm0, dword [0x101f78a4]
ja 0x10014ad4
lea ecx, [esp + 0x70]
call fcn.100246e0
call fcn.10024d90
mov eax, dword [0x101f76c0]
mov edi, dword [0x101f764c]
mov ebx, edi
test eax, eax
jne 0x10014948
mov edx, 0xe80c2f78
mov ecx, 0x10198749
call fcn.10003ad0
mov edx, 0xc10bf213
mov ecx, 0x1014c93d
mov esi, eax
call fcn.10003ad0
mov edx, esi
mov ecx, eax
call fcn.100abe50
mov edi, dword [0x101f764c]
mov dword [0x101f76c0], eax
movss xmm0, dword [ebx + eax + 8]
comiss xmm0, dword [0x101b81e8]
ja 0x10014ad0
test eax, eax
jne 0x1001498d
mov edx, 0xe80c2f78
mov ecx, 0x10198749
call fcn.10003ad0
mov edx, 0xc10bf213
mov ecx, 0x1014c93d
mov esi, eax
call fcn.10003ad0
mov edx, esi
mov ecx, eax
call fcn.100abe50
mov dword [0x101f76c0], 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 [0x101b81e8]
lahf
test ah, 0x44
jnp 0x10014ad0
call fcn.1000a2e0
cmp eax, 9
je 0x10014ad0
mov eax, dword [0x101f75e0]
mov edi, dword [0x101f764c]
test eax, eax
jne 0x10014a20
mov edx, 0xe80c2f78
mov ecx, 0x1014c931
call fcn.10003ad0
mov edx, 0xc10bf213
mov ecx, 0x1014c93d
mov esi, eax
call fcn.10003ad0
mov edx, esi
mov ecx, eax
call fcn.100abe50
mov dword [0x101f75e0], eax
mov ecx, dword [0x101f2ef0]
add eax, edi
cmp ecx, dword [0x101f2ef4]
je 0x10014a47
movq xmm0, qword [eax]
movq qword [ecx], xmm0
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
add dword [0x101f2ef0], 0xc
jmp 0x10014a53
push eax
push ecx
mov ecx, 0x101f2eec
call fcn.10006240
lea edx, [esp + 0x13]
mov byte [esp + 0x13], 0
lea ecx, [esp + 0x70]
call fcn.100141c0
test al, al
jne 0x10014a7e
mov ebx, dword [esp + 0x1c]
cmp byte [esp + 0x13], al
jne 0x10014ad4
inc ebp
cmp ebp, ebx
jle 0x10014830
jmp 0x10014ad4
mov eax, dword [0x101f75d8]
movss xmm0, dword [esp + 0x94]
movss dword [0x101f7970], xmm0
movss xmm0, dword [esp + 0x98]
mov ecx, dword [eax + 0x1c]
movss dword [0x101f7974], xmm0
movss xmm0, dword [esp + 0x14]
mov dword [0x101f7980], ebp
lea eax, [ecx + ebp]
mov dword [0x101f797c], ebp
mov dword [0x101f7964], eax
mov dword [0x101f7960], ecx
movss dword [0x101f796c], xmm0
mov ebx, dword [esp + 0x1c]
movd xmm0, dword [0x101be2a8]
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.10007cd0
movss xmm2, dword [esp + 0x40]
comiss xmm2, xmm0
mov esi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x28]
jae 0x10014760
jmp 0x10014d7c
push ebp
lea ecx, [esp + 0xdc]
call fcn.10015000
test esi, esi
jne 0x10014b3b
or dword [esp + 0x108], 4
mov byte [0x101f795c], 1
jmp 0x10014b4f
cmp esi, 1
jne 0x10014b6c
and dword [esp + 0x108], 0xfffffffb
mov byte [0x101f795c], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0xfc], 0
mov byte [0x101f7968], 0
mov eax, dword [0x101f7890]
mov ecx, dword fs:[0x2c]
mov esi, dword [eax + 0x1c]
mov eax, dword [0x101c1730]
dec esi
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x101fce10]
cmp eax, dword [ecx + 4]
jle 0x10014bc8
push 0x101fce10
call fcn.1010fdd4
add esp, 4
cmp dword [0x101fce10], 0xffffffff
jne 0x10014bc8
mov edx, str.55_8B_EC_8B_4D___56_E8_________8B_75
mov ecx, str.client.dll
call fcn.10006a40
push 0x101fce10
mov dword [0x101fce14], eax
call fcn.1010fd83
add esp, 4
push esi
push 0
call dword [0x101fce14]
mov ebx, 1
cmp dword [esp + 0x1c], ebx
jl 0x10014d6b
lea ecx, [esp + 0xd8]
call fcn.100246e0
call fcn.10024d90
mov eax, dword [0x101f76c0]
mov edi, dword [0x101f764c]
mov ebp, edi
test eax, eax
jne 0x10014c36
mov edx, 0xe80c2f78
mov ecx, 0x10198749
call fcn.10003ad0
mov edx, 0xc10bf213
mov ecx, 0x1014c93d
mov esi, eax
call fcn.10003ad0
mov edx, esi
mov ecx, eax
call fcn.100abe50
mov edi, dword [0x101f764c]
mov dword [0x101f76c0], eax
movss xmm0, dword [eax + ebp + 8]
comiss xmm0, dword [0x101b81e8]
ja 0x10014d6b
test eax, eax
jne 0x10014c7b
mov edx, 0xe80c2f78
mov ecx, 0x10198749
call fcn.10003ad0
mov edx, 0xc10bf213
mov ecx, 0x1014c93d
mov esi, eax
call fcn.10003ad0
mov edx, esi
mov ecx, eax
call fcn.100abe50
mov dword [0x101f76c0], 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 [0x101b81e8]
lahf
test ah, 0x44
jnp 0x10014d6b
call fcn.1000a2e0
cmp eax, 9
je 0x10014d6b
mov eax, dword [0x101f75e0]
mov edi, dword [0x101f764c]
test eax, eax
jne 0x10014d0e
mov edx, 0xe80c2f78
mov ecx, 0x1014c931
call fcn.10003ad0
mov edx, 0xc10bf213
mov ecx, 0x1014c93d
mov esi, eax
call fcn.10003ad0
mov edx, esi
mov ecx, eax
call fcn.100abe50
mov dword [0x101f75e0], eax
mov ecx, dword [0x101f2ef0]
add eax, edi
cmp ecx, dword [0x101f2ef4]
je 0x10014d35
movq xmm0, qword [eax]
movq qword [ecx], xmm0
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
add dword [0x101f2ef0], 0xc
jmp 0x10014d41
push eax
push ecx
mov ecx, 0x101f2eec
call fcn.10006240
lea edx, [esp + 0x13]
mov byte [esp + 0x13], 0
lea ecx, [esp + 0xd8]
call fcn.100141c0
test al, al
jne 0x10014dbd
cmp byte [esp + 0x13], al
jne 0x10014d6b
inc ebx
cmp ebx, dword [esp + 0x1c]
jle 0x10014be0
movss xmm1, dword [esp + 0x14]
mov dword [esp + 0xd8], vtable.c_usercmd.0
mov esi, dword [esp + 0x2c]
cmp dword [0x101f7980], 0
mov ebp, dword [esp + 0x24]
jne 0x10014e14
mov ebx, dword [esp + 0x1c]
inc esi
mov dword [esp + 0x2c], esi
cmp esi, dword [esp + 0x18]
jl 0x100146f0
mov byte [0x101fcda3], 0
mov byte [0x101f7958], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x134
ret
mov eax, dword [0x101f75d8]
movss xmm0, dword [esp + 0xfc]
movss xmm1, dword [esp + 0x14]
movss dword [0x101f7970], xmm0
mov ecx, dword [eax + 0x1c]
movss xmm0, dword [esp + 0x100]
mov dword [0x101f7980], ebx
mov dword [0x101f797c], ebx
lea eax, [ecx + ebx]
mov dword [0x101f7960], ecx
mov dword [0x101f7964], eax
movss dword [0x101f7974], xmm0
movss dword [0x101f796c], xmm1
jmp 0x10014d71
cmp dword [0x101f7980], 1
jne 0x10014e40
cmp byte [0x101f791c], 0
je 0x10014e39
push str.OlegWare_print_edgebugged
push dword [0x101f76c4]
call fcn.1000a290
add esp, 8
mov byte [0x101f7958], 1
mov ecx, dword [ebp + 0x30]
mov eax, ecx
or eax, 4
mov byte [0x101fcda3], 1
and ecx, 0xfffffffb
cmp byte [0x101f795c], 0
cmovne ecx, eax
mov dword [ebp + 0x30], ecx
cmp byte [0x101f7968], 0
je 0x10014f9a
mov eax, dword [0x101f797c]
movss xmm0, dword [0x101f7970]
sub eax, dword [0x101f7980]
movss dword [ebp + 0x24], xmm0
inc eax
movss xmm0, dword [0x101f7974]
movss dword [ebp + 0x28], xmm0
push ecx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x101f796c]
addss xmm0, dword [0x101f7978]
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 0x10014edd
dec dword [0x101f7980]
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 [0x101b862c]
jb 0x10014f12
movss xmm1, dword [0x101b84e0]
comiss xmm1, xmm0
jb 0x10014f12
dec dword [0x101f7980]
movaps xmm2, xmm0
movss dword [ebp + 0x10], xmm2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x134
ret
mulss xmm0, dword [0x101b8240]
call fcn.10007cd0
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 0x10014f6f
movss xmm2, dword [esp + 0x18]
mulss xmm2, dword [0x101b853c]
dec dword [0x101f7980]
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 [0x101b853c]
dec dword [0x101f7980]
subss xmm2, xmm0
movss dword [ebp + 0x10], xmm2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x134
ret
dec dword [0x101f7980]
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 [0x101f7960], 0
mov dword [0x101f7964], 0
mov dword [0x101f7980], 0
pop ebx
add esp, 0x134
ret