Function at 0x100075e0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1019bf51
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x80
cmp byte [0x102a0328], 0
push ebx
push esi
mov ebx, ecx
push edi
mov dword [ebp - 0x1c], ebx
je 0x10007d9a
mov edi, dword [0x102a036c]
test edi, edi
je 0x10007d9a
mov eax, dword [0x102a0368]
test eax, eax
jne 0x10007658
mov edx, 0xe80c2f78
mov ecx, 0x102113c1
call fcn.10005520
mov edx, 0xc10bf213
mov ecx, 0x102112e9
mov esi, eax
call fcn.10005520
mov edx, esi
mov ecx, eax
call fcn.10133370
mov dword [0x102a0368], eax
cmp dword [eax + edi], 0
jle 0x10007d9a
push dword [0x102a032c]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x10007d9a
mov edi, dword [0x102a036c]
mov edx, 0xe80c2f78
mov ecx, 0x102113f9
call fcn.10005520
mov edx, 0xc10bf213
mov ecx, 0x102112e9
mov esi, eax
call fcn.10005520
mov edx, esi
mov ecx, eax
call fcn.10133370
mov ecx, dword [0x102a02f0]
mov edx, dword [eax + edi]
mov eax, dword [ecx]
and edx, 0xfff
push edx
mov eax, dword [eax + 0xc]
call eax
mov edi, eax
mov ecx, edi
mov dword [ebp - 0x44], edi
call fcn.100062d0
test al, al
jne 0x1000771e
mov ecx, edi
call fcn.10005f10
test al, al
jne 0x1000771e
mov ecx, edi
call fcn.10005dc0
test al, al
jne 0x1000771e
mov ecx, edi
call fcn.10006560
test al, al
jne 0x1000771e
mov ecx, edi
call fcn.10005c80
test al, al
jne 0x1000771e
mov ecx, edi
call fcn.10006420
test al, al
jne 0x1000771e
mov ecx, edi
call fcn.10006180
test al, al
jne 0x1000771e
mov ecx, edi
call fcn.10006040
test al, al
je 0x10007d9a
mov ecx, edi
call fcn.100066a0
mov ecx, ebx
call fcn.10007260
mov ecx, dword fs:[0x2c]
mov ebx, eax
mov edx, dword [0x1026a304]
mov dword [ebp - 0x48], ebx
mov edx, dword [ecx + edx*4]
mov ecx, dword [0x102a0ffc]
cmp ecx, dword [edx + 4]
jle 0x100077a3
push 0x102a0ffc
call fcn.1019a606
add esp, 4
cmp dword [0x102a0ffc], 0xffffffff
jne 0x100077a3
mov dword [ebp - 4], 0
mov ecx, dword [0x1026a338]
push str.weapon_recoil_scale
mov eax, dword [ecx]
call dword [eax + 0x44]
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x30]
mov dword [ebp - 0x24], ecx
mov ecx, eax
call dword [ebp - 0x24]
push 0x102a0ffc
fstp dword [0x102a1048]
mov dword [ebp - 4], 0xffffffff
call fcn.1019a5bc
add esp, 4
test ebx, ebx
je 0x10007d9a
mov ecx, dword [0x102a036c]
lea eax, [ebp - 0x70]
push eax
call fcn.10005630
cmp byte [0x102a0360], 0
movss xmm0, dword [0x10251778]
movss dword [ebp - 0x10], xmm0
je 0x10007a74
cmp byte [0x102a0334], 0
je 0x10007a74
mov eax, dword [ebx + 8]
lea ecx, [ebx + 8]
mov eax, dword [eax + 0x28]
call eax
mov dword [ebp - 0x28], eax
mov ecx, 0x1029bb50
lea eax, [ebp - 0x28]
push eax
call fcn.10007e20
mov edx, dword [ebx + 4]
lea ecx, [ebx + 4]
mov dword [ebp - 0x18], eax
mov edx, dword [edx + 0x20]
call edx
mov ecx, dword [0x102a02fc]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x80]
call edx
test eax, eax
je 0x10007850
cmp dword [eax + 0xac], 0
jl 0x10007850
mov edx, dword [eax + 0xb0]
add edx, eax
je 0x10007850
mov ecx, dword [0x1026a354]
mov eax, dword [edx + 8]
shl ecx, 4
add ecx, dword [0x1026a354]
lea eax, [eax + ecx*4]
add eax, edx
je 0x10007850
mov ecx, dword [eax]
jmp 0x10007855
mov ecx, 8
mov eax, dword [ebp - 0x18]
or ebx, 0xffffffff
movss xmm1, dword [0x1025181c]
xor esi, esi
movss dword [ebp - 0x14], xmm1
mov eax, dword [eax + 0x10]
sub eax, 2
test eax, eax
jle 0x10007a43
mov edi, dword [ebp - 0x18]
lea edx, [ecx + ecx*2]
shl edx, 4
mov dword [ebp - 0x24], edx
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 8]
mov dword [ebp - 0x38], eax
dec ecx
add eax, esi
movss dword [ebp - 0x40], xmm1
and ecx, eax
mov eax, dword [edi + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [0x102a036c]
movss xmm0, dword [eax + edx + 0x24]
movss dword [ebp - 0x20], xmm0
movss xmm0, dword [eax + edx + 0x34]
movss dword [ebp - 0x2c], xmm0
movss xmm0, dword [eax + edx + 0x44]
lea eax, [ebp - 0x7c]
push eax
movss dword [ebp - 0x30], xmm0
call fcn.10005630
sub esp, 8
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [ebp - 0x64], xmm0
movss xmm0, dword [ebp - 0x64]
subss xmm0, dword [ebp - 0x20]
mov dword [ebp - 0x5c], eax
movss dword [ebp - 0x34], xmm0
movss dword [ebp - 0x20], xmm0
movss xmm0, dword [ebp - 0x60]
subss xmm0, dword [ebp - 0x2c]
movss dword [ebp - 0x2c], xmm0
fld dword [ebp - 0x2c]
movss dword [ebp - 0x38], xmm0
movss xmm0, dword [ebp - 0x5c]
subss xmm0, dword [ebp - 0x30]
fstp dword [esp + 4]
fld dword [ebp - 0x34]
fstp dword [esp]
movss dword [ebp - 0x30], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__hypotf
movss xmm0, dword [ebp - 0x30]
add esp, 8
fstp dword [ebp - 0x34]
divss xmm0, dword [ebp - 0x34]
call fcn.100053c0
mulss xmm0, dword [0x10251730]
mov eax, dword [ebp - 0x1c]
subss xmm0, dword [eax + 0xc]
movss dword [ebp - 0x58], xmm0
movss xmm0, dword [ebp - 0x38]
divss xmm0, dword [ebp - 0x20]
call fcn.100053c0
mov eax, dword [ebp - 0x1c]
movaps xmm1, xmm0
mulss xmm1, dword [0x10251730]
mov dword [ebp - 0x50], 0
movss xmm0, dword [ebp - 0x20]
comiss xmm0, dword [0x1025145c]
subss xmm1, dword [eax + 0x10]
movss dword [ebp - 0x54], xmm1
jb 0x10007998
addss xmm1, dword [ebp - 0x10]
movss dword [ebp - 0x54], xmm1
lea ecx, [ebp - 0x58]
call fcn.101331b0
movss xmm1, dword [ebp - 0x58]
movss xmm0, dword [ebp - 0x54]
mulss xmm1, xmm1
mov dword [ebp - 0x8c], 0
mulss xmm0, xmm0
addss xmm1, xmm0
movss dword [ebp - 0x38], xmm1
sqrtss xmm0, dword [ebp - 0x38]
movss dword [ebp - 0x8c], xmm0
movss xmm0, dword [ebp - 0x8c]
movss xmm1, dword [ebp - 0x14]
comiss xmm1, xmm0
jbe 0x100079ec
movaps xmm1, xmm0
movss dword [ebp - 0x14], xmm1
movss xmm2, dword [ebp - 0x40]
mov eax, esi
mov edx, dword [ebp - 0x24]
comiss xmm2, xmm0
cmovbe eax, ebx
inc esi
mov ebx, eax
mov eax, dword [edi + 0x10]
sub eax, 2
cmp esi, eax
jl 0x10007884
mov edi, dword [ebp - 0x44]
cmp ebx, 0xffffffff
je 0x10007a43
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x48], eax
lea ecx, [ebx + eax]
mov eax, dword [edx + 8]
dec eax
and ecx, eax
mov eax, dword [edx + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x24]
movss xmm1, dword [eax + ecx + 0x44]
movss xmm2, dword [eax + ecx + 0x34]
add eax, 0x24
add eax, ecx
jmp 0x10007a5f
push dword [0x1026a354]
mov ecx, dword [ebp - 0x48]
lea eax, [ebp - 0x7c]
push eax
call fcn.10005940
movss xmm1, dword [eax + 8]
movss xmm2, dword [eax + 4]
movss xmm0, dword [eax]
movss dword [ebp - 0x58], xmm0
movss dword [ebp - 0x54], xmm2
movss dword [ebp - 0x50], xmm1
jmp 0x10007aa2
push dword [0x1026a354]
lea eax, [ebp - 0x7c]
mov ecx, ebx
push eax
call fcn.10005940
movss xmm0, dword [eax]
movss dword [ebp - 0x58], xmm0
movss xmm0, dword [eax + 4]
movss dword [ebp - 0x54], xmm0
movss xmm0, dword [eax + 8]
movss dword [ebp - 0x50], xmm0
lea eax, [ebp - 0x58]
push eax
lea edx, [ebp - 0x70]
lea ecx, [ebp - 0x64]
call fcn.10005540
movss xmm2, dword [ebp - 0x64]
add esp, 4
movss xmm0, dword [0x1025174c]
comiss xmm2, xmm0
movss xmm1, dword [0x102518a4]
movss dword [ebp - 0x20], xmm2
movss dword [ebp - 0x14], xmm0
jbe 0x10007adf
movss dword [ebp - 0x20], xmm0
jmp 0x10007ae9
comiss xmm1, xmm2
jbe 0x10007ae9
movss dword [ebp - 0x20], xmm1
movss xmm0, dword [ebp - 0x60]
sub esp, 8
mov dword [esp + 4], 0x43b40000
movss dword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_remainderf]
movss xmm0, dword [ebp - 0x10]
add esp, 8
movss xmm1, dword [0x102518b4]
fstp dword [ebp - 0x48]
movss xmm3, dword [ebp - 0x48]
comiss xmm3, xmm0
jbe 0x10007b26
movaps xmm3, xmm0
jmp 0x10007b2e
comiss xmm1, xmm3
jbe 0x10007b2e
movaps xmm3, xmm1
movss xmm0, dword [0x1025172c]
movss xmm2, dword [ebp - 0x5c]
comiss xmm2, xmm0
movss xmm1, dword [0x102518a0]
movss dword [ebp - 0x18], xmm0
jbe 0x10007b52
movaps xmm2, xmm0
jmp 0x10007b5a
comiss xmm1, xmm2
jbe 0x10007b5a
movaps xmm2, xmm1
mov esi, dword [ebp - 0x1c]
movss xmm0, dword [esi + 0x14]
lea ebx, [esi + 0xc]
movss xmm1, dword [ebx]
subss xmm0, xmm2
subss xmm1, dword [ebp - 0x20]
movss xmm4, dword [ebx + 4]
subss xmm4, xmm3
movss dword [ebp - 0x44], xmm0
movss xmm0, dword [ebp - 0x14]
comiss xmm1, xmm0
movss dword [ebp - 0x20], xmm1
ja 0x10007b9c
movss xmm0, dword [0x102518a4]
comiss xmm0, xmm1
jbe 0x10007ba1
movss dword [ebp - 0x20], xmm0
sub esp, 8
mov dword [esp + 4], 0x43b40000
movss dword [esp], xmm4
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_remainderf]
movss xmm0, dword [ebp - 0x10]
add esp, 8
fstp dword [ebp - 0x48]
movss xmm3, dword [ebp - 0x48]
comiss xmm3, xmm0
ja 0x10007bd9
movss xmm0, dword [0x102518b4]
comiss xmm0, xmm3
jbe 0x10007bdc
movaps xmm3, xmm0
movss xmm0, dword [ebp - 0x18]
movss xmm1, dword [ebp - 0x44]
comiss xmm1, xmm0
ja 0x10007bf8
movss xmm0, dword [0x102518a0]
comiss xmm0, xmm1
jbe 0x10007bfb
movaps xmm1, xmm0
movss xmm2, dword [ebx]
movss xmm0, dword [ebx + 8]
subss xmm2, dword [ebp - 0x20]
movss xmm4, dword [ebx + 4]
subss xmm0, xmm1
subss xmm4, xmm3
comiss xmm2, dword [ebp - 0x14]
movss dword [ebp - 0x44], xmm0
ja 0x10007c3a
movss xmm0, dword [0x102518a4]
comiss xmm0, xmm2
jbe 0x10007c35
movss dword [ebp - 0x14], xmm0
jmp 0x10007c3a
movss dword [ebp - 0x14], xmm2
sub esp, 8
mov dword [esp + 4], 0x43b40000
movss dword [esp], xmm4
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_remainderf]
fstp dword [ebp - 0x48]
movss xmm1, dword [ebp - 0x48]
add esp, 8
comiss xmm1, dword [ebp - 0x10]
ja 0x10007c7a
movss xmm0, dword [0x102518b4]
comiss xmm0, xmm1
jbe 0x10007c75
movss dword [ebp - 0x10], xmm0
jmp 0x10007c7a
movss dword [ebp - 0x10], xmm1
movss xmm1, dword [ebp - 0x44]
comiss xmm1, dword [ebp - 0x18]
ja 0x10007c9e
movss xmm0, dword [0x102518a0]
comiss xmm0, xmm1
jbe 0x10007c99
movss dword [ebp - 0x18], xmm0
jmp 0x10007c9e
movss dword [ebp - 0x18], xmm1
mov ecx, edi
call fcn.10006880
test al, al
je 0x10007cc3
push dword [0x102a032c]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x10007cc3
cmp byte [0x102a0348], 0
je 0x10007cfe
mov ecx, edi
call fcn.10006880
test al, al
je 0x10007d9a
push dword [0x102a032c]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x10007d9a
cmp byte [0x102a0348], 0
je 0x10007d9a
test byte [esi + 0x30], 1
je 0x10007d9a
mov eax, dword [0x102a0364]
mov edi, dword [0x102a036c]
test eax, eax
jne 0x10007d3b
mov edx, 0xe80c2f78
mov ecx, 0x102113cd
call fcn.10005520
mov edx, 0xc10bf213
mov ecx, 0x10211311
mov esi, eax
call fcn.10005520
mov edx, esi
mov ecx, eax
call fcn.10133370
mov dword [0x102a0364], eax
movss xmm1, dword [0x102a1048]
movss xmm3, dword [ebp - 0x14]
movaps xmm0, xmm1
mulss xmm0, dword [edi + eax]
movss xmm2, dword [ebp - 0x10]
subss xmm3, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [edi + eax + 4]
mulss xmm1, dword [edi + eax + 8]
subss xmm2, xmm0
movss dword [ebx], xmm3
movss xmm0, dword [ebp - 0x18]
subss xmm0, xmm1
movss dword [ebx + 4], xmm2
movss dword [ebx + 8], xmm0
cmp byte [0x102a0358], 0
jne 0x10007d9a
mov ecx, dword [0x1026a33c]
push ebx
mov eax, dword [ecx]
mov eax, dword [eax + 0x4c]
call eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret