Function at 0x1024a4b0
Capabilities:
Encode data using xor
Hash data using fnv
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10336599
mov eax, dword fs:[0]
push eax
sub esp, 0x40
mov eax, dword [0x1040e140]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x14], 0
lea ecx, [ebp - 0x4c]
push 9
xorps xmm0, xmm0
mov dword [ebp - 0x3c], 0
push str.airStrafe
movups xmmword [ebp - 0x4c], xmm0
mov dword [ebp - 0x38], 0
call fcn.10029750
lea eax, [ebp - 0x4c]
mov dword [ebp - 4], 0
push eax
mov ecx, 0x105b380c
call fcn.100267e0
lea ecx, [ebp - 0x4c]
mov esi, dword [eax]
mov dword [ebp - 4], 0xffffffff
call fcn.10027fc0
cmp esi, 2
jne 0x1024acf5
mov eax, dword [0x105b297c]
mov esi, dword [0x1059ba80]
add eax, 0xffffffce
xor eax, 0xbacf7ff3
mov eax, dword [eax + esi]
cmp eax, 9
je 0x1024acf5
cmp eax, 8
je 0x1024acf5
cmp eax, 0xa
je 0x1024acf5
test dword [0x1059bb0c], 0x20000
jne 0x1024acf5
test byte [0x1059bb0c], 2
je 0x1024acf5
test byte [0x1059ba88], 1
jne 0x1024acf5
mov eax, dword [0x105b2940]
add eax, 0xffffffdd
xor eax, 0xbacf7fe4
movss xmm1, dword [eax + esi]
movss xmm0, dword [eax + esi + 4]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.10019850
movss xmm1, dword [0x103e3ac4]
movaps xmm2, xmm0
xorps xmm3, xmm3
movss dword [0x105aa558], xmm2
comiss xmm2, xmm3
jbe 0x1024a60d
movss xmm0, dword [0x103e39f8]
divss xmm0, xmm2
cvtps2pd xmm0, xmm0
call fcn.102f6b00
movss xmm1, dword [0x103e3ac4]
xorps xmm3, xmm3
movss xmm2, dword [0x105aa558]
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [0x103e3a94]
movss dword [ebp - 0x14], xmm0
jmp 0x1024a615
movaps xmm0, xmm1
movss dword [ebp - 0x14], xmm1
comiss xmm2, xmm3
movss dword [0x105aa55c], xmm0
jbe 0x1024a657
movss xmm0, dword [0x103e3a50]
divss xmm0, xmm2
cvtps2pd xmm0, xmm0
call fcn.102f6b00
movss xmm1, dword [0x103e3ac4]
xorps xmm2, xmm2
cvtsd2ss xmm2, xmm0
movss xmm0, dword [ebp - 0x14]
xorps xmm3, xmm3
mulss xmm2, dword [0x103e3a94]
jmp 0x1024a65a
movaps xmm2, xmm1
comiss xmm0, xmm1
lea eax, [ebp - 0x14]
mov ecx, 0x105aa55c
mov dword [ebp - 0x14], 0x42b40000
push 0xb
push str.cstrafe_key
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
movss dword [0x105aa560], xmm2
cmovbe eax, ecx
mov ecx, 0x105aa560
comiss xmm2, xmm1
movss xmm0, dword [eax]
lea eax, [ebp - 0x14]
maxss xmm0, xmm3
mov dword [ebp - 0x14], 0x42b40000
cmovbe eax, ecx
lea ecx, [ebp - 0x34]
movss dword [0x105aa55c], xmm0
movss xmm0, dword [eax]
mov eax, dword [0x105b2944]
maxss xmm0, xmm3
add eax, 0xffffffdc
xor eax, 0xbacf7fe5
movss dword [0x105aa560], xmm0
movss xmm0, dword [eax + esi]
movss dword [0x105aa564], xmm0
movss xmm0, dword [eax + esi + 4]
movss dword [0x105aa568], xmm0
movss xmm0, dword [eax + esi + 8]
mov eax, dword [0x105b2948]
add eax, 0xffffffdb
movss dword [0x105aa56c], xmm0
xor eax, 0xbacf7fe6
movss xmm0, dword [eax + esi]
movss dword [0x105aa570], xmm0
movss xmm0, dword [eax + esi + 4]
movss dword [0x105aa574], xmm0
movss xmm0, dword [eax + esi + 8]
mov eax, dword [0x105b2938]
add eax, 0xffffffdf
movss dword [0x105aa578], xmm0
xor eax, 0xbacf7fe2
movss xmm0, dword [eax + esi]
movss dword [0x105aa57c], xmm0
movss xmm0, dword [eax + esi + 4]
movss dword [0x105aa580], xmm0
movss xmm0, dword [eax + esi + 8]
inc dword [0x105aa58c]
movss dword [0x105aa584], xmm0
movss xmm0, dword [0x105aa588]
mulss xmm0, dword [0x103e3c50]
movss dword [0x105aa588], xmm0
xorps xmm0, xmm0
movups xmmword [ebp - 0x34], xmm0
call fcn.10029750
lea eax, [ebp - 0x34]
mov dword [ebp - 4], 1
mov esi, 1
mov ecx, 0x105b380c
push eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x14], esi
call fcn.100267e0
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push dword [eax]
call edi
cwde
shr eax, 0x10
test eax, eax
je 0x1024a80f
push 7
xorps xmm0, xmm0
mov dword [ebp - 0x3c], 0
push str.cstrafe
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x38], 0
movups xmmword [ebp - 0x4c], xmm0
call fcn.10029750
lea eax, [ebp - 0x4c]
mov dword [ebp - 4], 2
mov esi, 3
mov ecx, 0x105b37ec
push eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x14], esi
call fcn.10026800
mov byte [ebp - 0x15], 1
cmp byte [eax], 0
jne 0x1024a813
mov byte [ebp - 0x15], 0
mov eax, dword [ebp - 0x1c]
test al, 2
je 0x1024a82b
and eax, 0xfffffffd
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x1c], eax
call fcn.10027fc0
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 4], 0xffffffff
test al, 1
je 0x1024a844
and eax, 0xfffffffe
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x1c], eax
call fcn.10027fc0
cmp byte [ebp - 0x15], 0
xorps xmm0, xmm0
je 0x1024a8b0
push 7
push str.airDuck
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x24], 0
movups xmmword [ebp - 0x34], xmm0
mov dword [ebp - 0x20], 0
call fcn.10029750
lea eax, [ebp - 0x34]
mov dword [ebp - 4], 3
push eax
mov ecx, 0x105b37ec
call fcn.10026800
lea ecx, [ebp - 0x34]
mov al, byte [eax]
mov byte [ebp - 0x15], al
mov dword [ebp - 4], 0xffffffff
call fcn.10027fc0
cmp byte [ebp - 0x15], 0
jne 0x1024a8a6
mov eax, dword [0x1059bb04]
or dword [eax + 0x30], 4
call fcn.1024ad10
jmp 0x1024acf5
push 0xb
push str.zstrafe_key
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x3c], 0
movups xmmword [ebp - 0x4c], xmm0
mov dword [ebp - 0x38], 0
call fcn.10029750
mov dword [ebp - 4], 4
lea eax, [ebp - 0x4c]
mov esi, dword [ebp - 0x1c]
mov ecx, 0x105b380c
or esi, 4
push eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x14], esi
call fcn.100267e0
push dword [eax]
call edi
cwde
shr eax, 0x10
test eax, eax
je 0x1024a949
push 7
xorps xmm0, xmm0
mov dword [ebp - 0x24], 0
push str.zstrafe
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x20], 0
movups xmmword [ebp - 0x34], xmm0
call fcn.10029750
lea eax, [ebp - 0x34]
mov dword [ebp - 4], 5
or esi, 8
mov ecx, 0x105b37ec
push eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x14], esi
call fcn.10026800
mov byte [ebp - 0x15], 1
cmp byte [eax], 0
jne 0x1024a94d
mov byte [ebp - 0x15], 0
mov eax, dword [ebp - 0x1c]
test al, 8
je 0x1024a965
and eax, 0xfffffff7
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x1c], eax
call fcn.10027fc0
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 4], 0xffffffff
test al, 4
je 0x1024a978
lea ecx, [ebp - 0x4c]
call fcn.10027fc0
cmp byte [ebp - 0x15], 0
je 0x1024aa5e
push 6
xorps xmm0, xmm0
mov dword [ebp - 0x24], 0
push 0x103cfd60
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x20], 0
movups xmmword [ebp - 0x34], xmm0
call fcn.10029750
lea eax, [ebp - 0x34]
mov dword [ebp - 4], 6
push eax
mov ecx, 0x105b382c
call fcn.100267e0
lea ecx, [ebp - 0x34]
movss xmm0, dword [eax]
mulss xmm0, dword [0x103e37e8]
mov eax, dword [0x105b278c]
mulss xmm0, dword [eax]
mov dword [ebp - 4], 0xffffffff
movss dword [ebp - 0x14], xmm0
call fcn.10027fc0
push 6
xorps xmm0, xmm0
mov dword [ebp - 0x24], 0
push 0x103cfd68
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x20], 0
movups xmmword [ebp - 0x34], xmm0
call fcn.10029750
lea eax, [ebp - 0x34]
mov dword [ebp - 4], 7
push eax
mov ecx, 0x105b382c
call fcn.100267e0
lea ecx, [ebp - 0x34]
movss xmm0, dword [eax]
mulss xmm0, dword [0x103e382c]
mov dword [ebp - 4], 0xffffffff
movss dword [ebp - 0x1c], xmm0
call fcn.10027fc0
movss xmm0, dword [ebp - 0x14]
call fcn.10019830
mulss xmm0, dword [ebp - 0x1c]
addss xmm0, dword [0x1059bb24]
movss dword [0x1059bb24], xmm0
jmp 0x1024aa66
movss xmm0, dword [0x1059bb24]
mov eax, dword [0x105b2940]
add eax, 0xffffffdd
movss dword [ebp - 0x14], xmm0
xor eax, 0xbacf7fe4
add eax, dword [0x1059ba80]
movss xmm1, dword [eax + 4]
movss xmm0, dword [eax]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.10019850
movss xmm1, dword [0x103e3884]
comiss xmm1, xmm0
ja 0x1024acf5
movss xmm1, dword [ebp - 0x14]
mov eax, dword [0x105c6728]
movss dword [0x105aa590], xmm1
movss dword [0x105aa594], xmm1
test al, 1
jne 0x1024ab3b
or eax, 1
mov dword [0x105c6728], eax
mov eax, dword [0x105b272c]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x1024ab26
nop
mov edi, dword [eax + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + edi], 0
jne 0x1024aaf0
xor edx, edx
test ecx, ecx
je 0x1024ab1c
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x1024ab00
cmp esi, 0xda6a172f
je 0x1024ab30
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 4]
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x1024aae0
xor esi, esi
mov dword [0x105c672c], esi
jmp 0x1024ab41
mov esi, dword [ebp - 0x14]
mov dword [0x105c672c], esi
jmp 0x1024ab41
mov esi, dword [0x105c672c]
mov edi, dword [0x1059bb04]
mov eax, dword [edi + 0x30]
mov ecx, eax
shr ecx, 3
mov edx, eax
and ecx, 0xffffff01
shr edx, 0xa
mov dword [ebp - 0x14], ecx
and dl, 1
mov ecx, eax
shr eax, 4
shr ecx, 9
and cl, 1
test al, 1
je 0x1024abb8
movss xmm0, dword [0x103e3cb8]
mov dword [0x105be20c], 0xc3340000
test cl, cl
je 0x1024ab9c
movss xmm0, dword [0x103e3ccc]
mov dword [0x105be20c], 0xc3610000
jmp 0x1024ac27
test dl, dl
je 0x1024ac27
movss xmm0, dword [0x103e3cb4]
mov dword [0x105be20c], 0xc3070000
jmp 0x1024ac27
test cl, cl
je 0x1024abea
cmp byte [ebp - 0x14], 0
mov dword [0x105be20c], 0x42b40000
je 0x1024abe0
movss xmm0, dword [0x103e3a80]
mov dword [0x105be20c], 0x42340000
jmp 0x1024ac27
movss xmm0, dword [0x103e3ac4]
jmp 0x1024ac27
test dl, dl
je 0x1024ac1a
cmp byte [ebp - 0x14], 0
movss xmm0, dword [0x103e3cac]
mov dword [0x105be20c], 0xc2b40000
je 0x1024ac27
movss xmm0, dword [0x103e3ca0]
mov dword [0x105be20c], 0xc2340000
jmp 0x1024ac27
mov dword [0x105be20c], 0
xorps xmm0, xmm0
addss xmm0, xmm1
movss dword [0x1059bb24], xmm0
mov dword [edi + 0x24], 0
mov eax, dword [0x1059bb04]
mov dword [eax + 0x28], 0
mov ecx, dword [0x105b2940]
mov eax, dword [0x1059ba80]
add ecx, 0xffffffdd
xor ecx, 0xbacf7fe4
movss xmm1, dword [ecx + eax]
movss xmm0, dword [ecx + eax + 4]
call fcn.10019730
mulss xmm0, dword [0x103e3a94]
lea ecx, [ebp - 0x14]
movss xmm1, dword [0x1059bb24]
subss xmm1, xmm0
movss dword [ebp - 0x14], xmm1
call fcn.10249910
mov eax, dword [esi]
xorps xmm1, xmm1
movss xmm0, dword [ebp - 0x14]
mov ecx, esi
comiss xmm0, xmm1
mov eax, dword [eax + 0x30]
jbe 0x1024acb6
mov dword [ebp - 0x1c], eax
call dword [ebp - 0x1c]
fstp dword [ebp - 0x1c]
movss xmm0, dword [ebp - 0x1c]
xorps xmm0, xmmword [0x103e41e0]
jmp 0x1024acc4
mov dword [ebp - 0x1c], eax
call dword [ebp - 0x1c]
fstp dword [ebp - 0x1c]
movss xmm0, dword [ebp - 0x1c]
mov eax, dword [0x1059bb04]
lea ecx, [ebp - 0x14]
movss dword [eax + 0x28], xmm0
movss xmm0, dword [0x1059bb24]
subss xmm0, dword [ebp - 0x14]
movss dword [ebp - 0x14], xmm0
call fcn.10249910
movss xmm0, dword [ebp - 0x14]
movss dword [0x1059bb24], xmm0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.102e0890
mov esp, ebp
pop ebp
ret