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

Disassembly:
sub esp, 0x7c
cmp byte [0x1028131c], 0
push ebx
push ebp
push esi
mov ebp, ecx
push edi
mov dword [esp + 0x10], ebp
je 0x1000733f
mov edi, dword [0x10281360]
test edi, edi
je 0x1000733f
mov eax, dword [0x1028135c]
test eax, eax
jne 0x10006a7f
mov edx, 0xe80c2f78
mov ecx, 0x10219689
call fcn.10004f10
mov edx, 0xc10bf213
mov ecx, 0x102195b1
mov esi, eax
call fcn.10004f10
mov edx, esi
mov ecx, eax
call fcn.10127750
mov dword [0x1028135c], eax
cmp dword [eax + edi], 0
jle 0x1000733f
push dword [0x10281320]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1000733f
mov edi, dword [0x10281360]
mov edx, 0xe80c2f78
mov ecx, 0x102196c1
call fcn.10004f10
mov edx, 0xc10bf213
mov ecx, 0x102195b1
mov esi, eax
call fcn.10004f10
mov edx, esi
mov ecx, eax
call fcn.10127750
mov ecx, dword [0x102812e0]
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 [esp + 0x3c], edi
call fcn.10005900
test al, al
jne 0x10006b46
mov ecx, edi
call fcn.10005620
test al, al
jne 0x10006b46
mov ecx, edi
call fcn.10005530
test al, al
jne 0x10006b46
mov ecx, edi
call fcn.10005af0
test al, al
jne 0x10006b46
mov ecx, edi
call fcn.10005440
test al, al
jne 0x10006b46
mov ecx, edi
call fcn.10005a00
test al, al
jne 0x10006b46
mov ecx, edi
call fcn.10005800
test al, al
jne 0x10006b46
mov ecx, edi
call fcn.10005710
test al, al
je 0x1000733f
mov ecx, edi
call fcn.10005440
test al, al
je 0x10006b76
mov eax, dword [0x1028130c]
mov ecx, dword [0x1028132c]
mov dword [0x1024b340], eax
mov eax, dword [0x102470a4]
mov dword [0x10282000], ecx
mov dword [0x1024b348], eax
jmp 0x10006cc3
mov ecx, edi
call fcn.10005530
test al, al
je 0x10006ba6
mov eax, dword [0x10281330]
mov ecx, dword [0x10281350]
mov dword [0x1024b340], eax
mov eax, dword [0x102470ac]
mov dword [0x10282000], ecx
mov dword [0x1024b348], eax
jmp 0x10006cc3
mov ecx, edi
call fcn.10005620
test al, al
je 0x10006bd6
mov eax, dword [0x10281338]
mov ecx, dword [0x10281344]
mov dword [0x1024b340], eax
mov eax, dword [0x102470b0]
mov dword [0x10282000], ecx
mov dword [0x1024b348], eax
jmp 0x10006cc3
mov ecx, edi
call fcn.10005710
test al, al
je 0x10006c06
mov eax, dword [0x10281308]
mov ecx, dword [0x10281348]
mov dword [0x1024b340], eax
mov eax, dword [0x102470a0]
mov dword [0x10282000], ecx
mov dword [0x1024b348], eax
jmp 0x10006cc3
mov ecx, edi
call fcn.10005800
test al, al
je 0x10006c36
mov eax, dword [0x102812fc]
mov ecx, dword [0x10281334]
mov dword [0x1024b340], eax
mov eax, dword [0x10247094]
mov dword [0x10282000], ecx
mov dword [0x1024b348], eax
jmp 0x10006cc3
mov ecx, edi
call fcn.10005900
test al, al
je 0x10006c63
mov eax, dword [0x10281314]
mov ecx, dword [0x10281318]
mov dword [0x1024b340], eax
mov eax, dword [0x102470a8]
mov dword [0x10282000], ecx
mov dword [0x1024b348], eax
jmp 0x10006cc3
mov ecx, edi
call fcn.10005a00
test al, al
je 0x10006c90
mov eax, dword [0x10281340]
mov ecx, dword [0x10281324]
mov dword [0x1024b340], eax
mov eax, dword [0x1024709c]
mov dword [0x10282000], ecx
mov dword [0x1024b348], eax
jmp 0x10006cc3
mov ecx, edi
call fcn.10005af0
test al, al
je 0x10006cbd
mov eax, dword [0x10281304]
mov ecx, dword [0x10281300]
mov dword [0x1024b340], eax
mov eax, dword [0x10247098]
mov dword [0x10282000], ecx
mov dword [0x1024b348], eax
jmp 0x10006cc3
mov ecx, dword [0x10282000]
cmp ecx, 3
ja case.default.0x10006cc8
jmp dword [ecx*4 + 0x10007348]
mov dword [0x1024b344], 0
jmp case.default.0x10006cc8
mov dword [0x1024b344], 1
jmp case.default.0x10006cc8
mov dword [0x1024b344], 6
jmp case.default.0x10006cc8
mov dword [0x1024b344], 3
mov ecx, ebp
call fcn.100065f0
mov ecx, dword fs:[0x2c]
mov ebx, eax
mov edx, dword [0x1024b2f0]
mov dword [esp + 0x40], ebx
mov edx, dword [ecx + edx*4]
mov ecx, dword [0x10281fd0]
cmp ecx, dword [edx + 4]
jle 0x10006d70
push 0x10281fd0
call fcn.1018b6e4
add esp, 4
cmp dword [0x10281fd0], 0xffffffff
jne 0x10006d70
mov ecx, dword [0x1024b328]
push str.weapon_recoil_scale
mov eax, dword [ecx]
call dword [eax + 0x44]
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x30]
mov dword [esp + 0x1c], ecx
mov ecx, eax
call dword [esp + 0x1c]
push 0x10281fd0
fstp dword [0x1028201c]
call fcn.1018b693
add esp, 4
test ebx, ebx
je 0x1000733f
mov ecx, dword [0x10281360]
lea eax, [esp + 0x60]
push eax
call fcn.10004f40
cmp byte [0x10281354], 0
je 0x1000705a
cmp byte [0x10281328], 0
je 0x1000705a
mov eax, dword [ebx + 8]
lea ecx, [ebx + 8]
mov eax, dword [eax + 0x28]
call eax
mov dword [esp + 0x20], eax
mov ecx, 0x1027cb40
lea eax, [esp + 0x20]
push eax
call fcn.10007360
mov edx, dword [ebx + 4]
lea ecx, [ebx + 4]
mov ebp, eax
mov edx, dword [edx + 0x20]
call edx
mov ecx, dword [0x102812ec]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x80]
call edx
test eax, eax
je 0x10006e12
cmp dword [eax + 0xac], 0
jl 0x10006e12
mov edx, dword [eax + 0xb0]
add edx, eax
je 0x10006e12
mov ecx, dword [0x1024b344]
mov eax, dword [edx + 8]
shl ecx, 4
add ecx, dword [0x1024b344]
lea eax, [eax + ecx*4]
add eax, edx
je 0x10006e12
mov ecx, dword [eax]
jmp 0x10006e17
mov ecx, 8
mov eax, dword [ebp + 0x10]
xor esi, esi
mov ebx, dword [esp + 0x10]
sub eax, 2
movss xmm0, dword [0x102408ec]
add ebx, 0xc
movss dword [esp + 0x18], xmm0
test eax, eax
jle 0x10007036
lea edx, [ecx + ecx*2]
mov dword [esp + 0x30], ebp
shl edx, 4
or edi, 0xffffffff
mov dword [esp + 0x1c], edx
nop dword [eax]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
add ecx, esi
dec eax
and ecx, eax
mov eax, dword [ebp + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [0x10281360]
movss xmm0, dword [eax + edx + 0x24]
movss dword [esp + 0x14], xmm0
movss xmm0, dword [eax + edx + 0x34]
movss dword [esp + 0x24], xmm0
movss xmm0, dword [eax + edx + 0x44]
lea eax, [esp + 0x6c]
push eax
movss dword [esp + 0x2c], xmm0
call fcn.10004f40
movq xmm0, qword [eax]
movq qword [esp + 0x54], xmm0
movss xmm0, dword [esp + 0x54]
subss xmm0, dword [esp + 0x14]
mov eax, dword [eax + 8]
mov dword [esp + 0x5c], eax
movss dword [esp + 0x2c], xmm0
fld dword [esp + 0x2c]
movss dword [esp + 0x14], xmm0
movss xmm0, dword [esp + 0x58]
subss xmm0, dword [esp + 0x24]
fstp dword [esp + 0x2c]
movss xmm2, dword [esp + 0x2c]
mulss xmm2, xmm2
movss dword [esp + 0x24], xmm0
fld dword [esp + 0x24]
fstp dword [esp + 0x2c]
movss xmm1, dword [esp + 0x2c]
mulss xmm1, xmm1
movss dword [esp + 0x30], xmm0
movss xmm0, dword [esp + 0x5c]
addss xmm2, xmm1
xorps xmm1, xmm1
subss xmm0, dword [esp + 0x28]
sqrtss xmm1, xmm2
movss dword [esp + 0x2c], xmm1
fld dword [esp + 0x2c]
fstp dword [esp + 0x2c]
divss xmm0, dword [esp + 0x2c]
call sub.api_ms_win_crt_math_l1_1_0.dll___libm_sse2_atanf
mulss xmm0, dword [0x102407f0]
subss xmm0, dword [ebx]
movss dword [esp + 0x48], xmm0
movss xmm0, dword [esp + 0x30]
divss xmm0, dword [esp + 0x14]
call sub.api_ms_win_crt_math_l1_1_0.dll___libm_sse2_atanf
movaps xmm1, xmm0
mov dword [esp + 0x50], 0
mulss xmm1, dword [0x102407f0]
movss xmm0, dword [esp + 0x14]
comiss xmm0, dword [0x102404e0]
subss xmm1, dword [ebx + 4]
movss dword [esp + 0x4c], xmm1
jb 0x10006f88
addss xmm1, dword [0x10240840]
movss dword [esp + 0x4c], xmm1
lea ecx, [esp + 0x48]
call fcn.10127580
movss xmm1, dword [esp + 0x48]
movss xmm0, dword [esp + 0x4c]
mulss xmm1, xmm1
mov dword [esp + 0x78], 0
mulss xmm0, xmm0
addss xmm1, xmm0
movss dword [esp + 0x30], xmm1
sqrtss xmm0, dword [esp + 0x30]
movss dword [esp + 0x78], xmm0
movss xmm1, dword [esp + 0x18]
mov eax, esi
movss xmm0, dword [esp + 0x78]
mov edx, dword [esp + 0x1c]
comiss xmm1, xmm0
minss xmm0, xmm1
cmovbe eax, edi
inc esi
mov edi, eax
mov eax, dword [ebp + 0x10]
sub eax, 2
movaps xmm1, xmm0
movss dword [esp + 0x18], xmm1
cmp esi, eax
jl 0x10006e50
mov dword [esp + 0x30], edi
cmp edi, 0xffffffff
mov edi, dword [esp + 0x3c]
je 0x10007036
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
add ecx, dword [esp + 0x30]
dec eax
and ecx, eax
mov dword [esp + 0x40], ebp
mov eax, dword [ebp + 4]
mov ebp, dword [esp + 0x10]
mov eax, dword [eax + ecx*4]
mov ecx, edx
movss xmm0, dword [eax + ecx + 0x34]
movss xmm4, dword [eax + ecx + 0x44]
add eax, 0x24
add eax, ecx
jmp 0x10007079
push dword [0x1024b344]
mov ecx, dword [esp + 0x44]
lea eax, [esp + 0x70]
push eax
call fcn.100051a0
mov ebp, dword [esp + 0x10]
movss xmm0, dword [eax + 4]
movss xmm4, dword [eax + 8]
jmp 0x10007079
push dword [0x1024b344]
lea eax, [esp + 0x70]
mov ecx, ebx
push eax
call fcn.100051a0
lea ebx, [ebp + 0xc]
movss xmm0, dword [eax + 4]
movss xmm4, dword [eax + 8]
movss xmm1, dword [esp + 0x64]
movss xmm3, dword [esp + 0x60]
subss xmm1, xmm0
subss xmm3, dword [eax]
movss xmm2, dword [esp + 0x68]
subss xmm2, xmm4
movaps xmm0, xmm1
movss dword [esp + 0x40], xmm1
mulss xmm0, xmm1
movaps xmm1, xmm3
mulss xmm1, xmm3
movss dword [esp + 0x1c], xmm3
addss xmm0, xmm1
call fcn.10004e00
divss xmm2, xmm0
movaps xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll___libm_sse2_atanf
mulss xmm0, dword [0x102407f0]
movss dword [esp + 0x30], xmm0
movss xmm0, dword [esp + 0x40]
divss xmm0, dword [esp + 0x1c]
call sub.api_ms_win_crt_math_l1_1_0.dll___libm_sse2_atanf
movaps xmm1, xmm0
mov dword [esp + 0x38], 0
mulss xmm1, dword [0x102407f0]
movss xmm0, dword [esp + 0x1c]
comiss xmm0, dword [0x102404e0]
movss dword [esp + 0x34], xmm1
jb 0x1000711b
addss xmm1, dword [0x10240840]
movss dword [esp + 0x34], xmm1
lea ecx, [esp + 0x30]
call fcn.10127490
movss xmm0, dword [ebx]
lea ecx, [esp + 0x48]
subss xmm0, dword [esp + 0x30]
movss dword [esp + 0x48], xmm0
movss xmm0, dword [ebx + 4]
subss xmm0, dword [esp + 0x34]
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [ebx + 8]
subss xmm0, dword [esp + 0x38]
movss dword [esp + 0x50], xmm0
call fcn.10127490
movss xmm0, dword [ebx]
lea ecx, [esp + 0x30]
subss xmm0, dword [esp + 0x48]
movss dword [esp + 0x30], xmm0
movss xmm0, dword [ebx + 4]
subss xmm0, dword [esp + 0x4c]
movss dword [esp + 0x34], xmm0
movss xmm0, dword [ebx + 8]
subss xmm0, dword [esp + 0x50]
movss dword [esp + 0x38], xmm0
call fcn.10127490
mov eax, dword [0x102812e8]
movss xmm0, dword [eax + 0x20]
mov eax, dword [0x10281360]
mov dword [esp + 0x40], eax
mov eax, dword [0x10281364]
movss dword [esp + 0x3c], xmm0
test eax, eax
jne 0x100071ea
mov edx, 0xe80c2f78
mov ecx, 0x102196b5
call fcn.10004f10
mov edx, 0xc10bf213
mov ecx, 0x102195b1
mov esi, eax
call fcn.10004f10
mov edx, esi
mov ecx, eax
call fcn.10127750
mov dword [0x10281364], eax
mov ecx, dword [esp + 0x40]
movd xmm0, dword [ecx + eax]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [esp + 0x3c]
mulss xmm0, dword [0x1024056c]
comiss xmm0, dword [0x102470b4]
movss dword [esp + 0x40], xmm0
jbe 0x1000723c
mov ecx, edi
call fcn.10005be0
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, al
je 0x10007242
push dword [0x10281320]
call esi
test ax, ax
je 0x10007242
cmp byte [0x1028133c], 0
je 0x10007279
jmp 0x10007242
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, edi
call fcn.10005be0
test al, al
je 0x1000733f
push dword [0x10281320]
call esi
test ax, ax
je 0x1000733f
cmp byte [0x1028133c], 0
je 0x1000733f
test byte [ebp + 0x30], 1
je 0x1000733f
mov eax, dword [0x10281358]
mov edi, dword [0x10281360]
test eax, eax
jne 0x100072b6
mov edx, 0xe80c2f78
mov ecx, 0x10219695
call fcn.10004f10
mov edx, 0xc10bf213
mov ecx, 0x102195d9
mov esi, eax
call fcn.10004f10
mov edx, esi
mov ecx, eax
call fcn.10127750
mov dword [0x10281358], eax
movss xmm2, dword [0x1028201c]
movss xmm3, dword [esp + 0x30]
movaps xmm0, xmm2
mulss xmm0, dword [edi + eax]
movss xmm1, dword [esp + 0x34]
subss xmm3, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [edi + eax + 4]
mulss xmm2, dword [edi + eax + 8]
subss xmm1, xmm0
movss dword [ebp + 0xc], xmm3
movss xmm0, dword [esp + 0x38]
subss xmm0, xmm2
movss dword [ebp + 0x10], xmm1
movss dword [ebp + 0x14], xmm0
cmp byte [0x1028134c], 0
jne 0x10007319
mov ecx, dword [0x1024b32c]
push ebx
mov eax, dword [ecx]
mov eax, dword [eax + 0x4c]
call eax
cmp byte [0x10281310], 0
jne 0x1000733f
movss xmm0, dword [esp + 0x40]
comiss xmm0, dword [0x102470b4]
jbe 0x1000733f
mov ecx, dword [0x1024b32c]
push ebx
mov eax, dword [ecx]
mov eax, dword [eax + 0x4c]
call eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret