Function at 0x1002e1e0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100c3851
mov eax, dword fs:[0]
push eax
sub esp, 0xc8
mov eax, dword [0x100f03c8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x18], edi
mov esi, dword [edi + 0x1c]
lea eax, [ebp - 0x60]
push eax
mov ecx, esi
call fcn.10021cf0
mov eax, dword [ebp - 0x5c]
add eax, dword [edi + 8]
mov ecx, dword [esi + 8]
mov edx, dword [edi + 4]
add edx, dword [ebp - 0x60]
mov dword [ebp - 0x24], eax
lea eax, [edi + 0x70]
push 0
push eax
push ecx
mov eax, esp
mov dword [ebp - 0x20], edx
mov byte [eax + 3], cl
mov ecx, 0x1011f630
mov word [eax], 0xcdcd
mov byte [eax + 2], 0xcd
mov eax, dword [ebp - 0x24]
add eax, 0xfffffffe
push eax
lea eax, [edx + 0x14]
push eax
call fcn.10085c60
mov eax, dword [ebp - 0x18]
mov ecx, dword [0x1011c424]
mov esi, dword [edi + 0xc]
add esi, dword [ebp - 0x20]
mov eax, dword [eax + 0x1c]
mov word [ebp - 0x1c], 0
mov byte [ebp - 0x1a], 0
lea edi, [esi - 0x14]
mov eax, dword [eax + 8]
mov byte [ebp - 0x19], al
mov eax, dword [ecx]
push dword [ebp - 0x1c]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x1011c424]
mov eax, dword [ecx]
mov edx, dword [eax + 0x48]
mov eax, dword [ebp - 0x24]
add eax, 8
push eax
push esi
mov esi, dword [ebp - 0x24]
push esi
push edi
call edx
mov ecx, dword [ebp - 0x18]
lea edi, [esi + 7]
mov esi, dword [ebp - 0x20]
add esi, 0xffffffed
mov eax, dword [ecx + 0x88]
add esi, dword [ecx + 0xc]
mov dword [ebp - 0x44], eax
mov eax, dword [ecx + 0x1c]
mov ecx, dword [0x1011c424]
mov al, byte [eax + 8]
mov byte [ebp - 0x41], al
mov eax, dword [ecx]
push dword [ebp - 0x44]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x1011c424]
push edi
mov eax, dword [ecx]
mov edx, dword [eax + 0x40]
lea eax, [esi + 0x12]
push eax
mov eax, dword [ebp - 0x24]
inc eax
push eax
push esi
call edx
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x18]
add esi, 0xffffffed
mov eax, dword [ecx + 0x1c]
add esi, dword [ecx + 0xc]
mov ecx, dword [0x1011c424]
mov word [ebp - 0x1c], 0x3232
mov eax, dword [eax + 8]
mov byte [ebp - 0x19], al
mov eax, dword [ecx]
mov byte [ebp - 0x1a], 0x23
push dword [ebp - 0x1c]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x1011c424]
push 0
push 0x96
push 0
mov eax, dword [ecx]
push edi
mov edx, dword [eax + 0x1ec]
lea eax, [esi + 0x12]
push eax
mov eax, dword [ebp - 0x24]
inc eax
push eax
push esi
call edx
mov edi, dword [ebp - 0x18]
movss xmm1, dword [0x10122afc]
cmp byte [edi + 0x6c], 0
je 0x1002e35f
addss xmm1, dword [0x100e0a34]
jmp 0x1002e367
subss xmm1, dword [0x100e0a34]
movss xmm0, dword [0x100e0b04]
comiss xmm1, xmm0
mov dword [ebp - 0x54], 0x3f800000
mov dword [ebp - 0x3c], 0
movss dword [0x10122afc], xmm1
ja 0x1002e3a0
comiss xmm1, dword [0x100e09dc]
lea eax, [ebp - 0x3c]
mov ecx, 0x10122afc
cmovae eax, ecx
movss xmm0, dword [eax]
movss dword [0x10122afc], xmm0
cmp byte [edi + 0x6c], 0
je 0x1002f060
mov edi, dword [edi + 0xc]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x20]
add edx, 0xc
lea eax, [edi + 0xa]
mov word [ebp - 0x1c], 0x3c3c
mov dword [ebp - 0x48], eax
dec esi
mov eax, dword [ecx + 0x10]
add eax, edx
mov byte [ebp - 0x1a], 0x3c
mov dword [ebp - 0x30], eax
mov eax, dword [ecx + 0x1c]
mov ecx, dword [0x1011c424]
mov dword [ebp - 0x3c], edi
mov eax, dword [eax + 8]
mov byte [ebp - 0x19], al
mov eax, dword [ecx]
push dword [ebp - 0x1c]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x1011c424]
mov eax, dword [ecx]
mov edx, dword [eax + 0x40]
mov eax, dword [ebp - 0x30]
add eax, 0xc
add eax, edi
push eax
lea eax, [edi + 2]
add eax, esi
push eax
push dword [ebp - 0x30]
push esi
call edx
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x30]
mov word [ebp - 0x1c], 0x2828
inc esi
mov byte [ebp - 0x1a], 0x28
mov eax, dword [ecx + 0x1c]
mov ecx, dword [0x1011c424]
mov eax, dword [eax + 8]
mov byte [ebp - 0x19], al
mov eax, dword [ecx]
push dword [ebp - 0x1c]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x1011c424]
add edi, dword [ebp - 0x20]
mov eax, dword [ecx]
mov edx, dword [eax + 0x40]
mov eax, dword [ebp - 0x48]
add eax, esi
push eax
push edi
push esi
push dword [ebp - 0x20]
call edx
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff2
mov esi, dword [edx + 0xc]
mov edi, dword [edx + 0x10]
push dword [edx + 0x88]
add edi, 2
lea eax, [esi - 8]
mov dword [ebp - 0x40], edi
movd xmm0, eax
add esi, 0xffffffea
mov eax, dword [ebp - 0x3c]
add eax, ecx
mov dword [ebp - 0x44], esi
mov ecx, dword [0x1011c424]
mov dword [ebp - 0x28], eax
cvtdq2ps xmm0, xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
movss dword [ebp - 0x34], xmm0
call eax
mov ecx, dword [0x1011c424]
mov edx, dword [ebp - 0x30]
mov eax, dword [ecx]
add edx, 5
movd xmm2, edi
cvtdq2ps xmm2, xmm2
mov eax, dword [eax + 0x40]
cvttss2si esi, xmm2
add edx, esi
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x14], edx
push dword [ebp - 0x14]
mov edx, dword [ebp - 0x28]
add edx, esi
push edx
mov edx, dword [ebp - 0x30]
add edx, 5
push edx
push dword [ebp - 0x28]
call eax
mov ecx, dword [ebp - 0x18]
mov word [ebp - 0x1c], 0x1a1a
mov byte [ebp - 0x1a], 0x1a
mov eax, dword [ecx + 0x1c]
mov ecx, dword [0x1011c424]
mov eax, dword [eax + 8]
mov byte [ebp - 0x19], al
mov eax, dword [ecx]
push dword [ebp - 0x1c]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x1011c424]
push dword [ebp - 0x14]
mov edx, dword [ebp - 0x28]
add edx, esi
mov eax, dword [ecx]
mov ecx, dword [ebp - 0x30]
push edx
add ecx, 5
mov eax, dword [eax + 0x48]
push ecx
push dword [ebp - 0x28]
mov ecx, dword [0x1011c424]
call eax
mov esi, dword [ebp - 0x44]
xorps xmm0, xmm0
movd xmm2, esi
cvtdq2ps xmm2, xmm2
comiss xmm2, xmm0
jbe 0x1002e5b5
mov ecx, dword [ebp - 0x20]
mov eax, 0xfffffffc
sub eax, ecx
xorps xmm1, xmm1
mov dword [ebp - 0x4c], eax
lea edi, [ecx + 4]
nop
movss xmm3, dword [0x100e0b04]
lea ecx, [ebp - 0x54]
divss xmm1, xmm2
movaps xmm2, xmm3
call fcn.1002ddf0
mov ecx, dword [0x1011c424]
push dword [eax]
mov edx, dword [ecx]
mov edx, dword [edx + 0x38]
call edx
push dword [ebp - 0x14]
mov edx, dword [0x1011c424]
lea ecx, [edi + 1]
push ecx
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp - 0x30]
mov eax, dword [edx]
add ecx, 5
push ecx
push edi
mov ecx, edx
mov eax, dword [eax + 0x40]
call eax
mov eax, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x2c]
add eax, edi
mov esi, dword [ebp - 0x44]
movd xmm1, eax
movd xmm2, esi
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm2, xmm2
comiss xmm2, xmm1
ja 0x1002e550
mov eax, dword [ebp - 0x18]
mov ecx, dword [0x1011c424]
mov word [ebp - 0x1c], 0x3c3c
mov byte [ebp - 0x1a], 0x3c
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 8]
mov byte [ebp - 0x19], al
mov eax, dword [ebp - 0x20]
push dword [ebp - 0x1c]
add eax, 4
mov dword [ebp - 0x38], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x1011c424]
push dword [ebp - 0x14]
movd xmm0, esi
cvtdq2ps xmm0, xmm0
mov eax, dword [ecx]
mov edx, dword [eax + 0x48]
cvttss2si eax, xmm0
add eax, dword [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x30]
add eax, 5
push eax
push dword [ebp - 0x38]
call edx
mov edi, dword [ebp - 0x40]
xorps xmm2, xmm2
movd xmm5, dword [ebp - 0x48]
movss xmm1, dword [ebp - 0x34]
comiss xmm1, xmm2
movd xmm0, edi
cvtdq2ps xmm5, xmm5
cvtdq2ps xmm0, xmm0
subss xmm5, xmm0
subss xmm5, dword [0x100e0bc0]
movss dword [ebp - 0x28], xmm5
jbe 0x1002e8c7
mov eax, dword [ebp - 0x20]
mov ecx, 0xfffffffc
mov edx, dword [ebp - 0x38]
sub ecx, eax
movss xmm6, dword [0x100e0a18]
xorps xmm0, xmm0
mov esi, dword [ebp - 0x18]
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x2c], ecx
nop dword [eax]
nop word [eax + eax]
comiss xmm5, xmm2
mov dword [ebp - 0x4c], 0
jbe 0x1002e8ab
divss xmm0, xmm1
lea ecx, [edx + 3]
mov dword [ebp - 0x84], ecx
movss xmm1, dword [0x100e0b04]
movaps xmm4, xmm2
movaps xmm3, xmm1
movss dword [ebp - 0x40], xmm4
divss xmm3, xmm5
movss dword [ebp - 0x64], xmm0
movss dword [ebp - 0x54], xmm3
nop
comiss xmm2, xmm0
jbe 0x1002e6ba
movaps xmm7, xmm2
jmp 0x1002e6c1
movaps xmm7, xmm0
minss xmm7, xmm1
movaps xmm0, xmm3
movaps xmm3, xmm1
mulss xmm0, xmm4
subss xmm3, xmm0
comiss xmm2, xmm3
jbe 0x1002e6d9
movaps xmm3, xmm2
jmp 0x1002e6dd
minss xmm3, xmm1
mov ecx, dword [esi + 0xc]
add eax, 0xfffffffd
add eax, ecx
mov dword [ebp - 0x1c], 3
mov dword [ebp - 0x48], 3
cmp dword [ebp - 0x84], eax
jle 0x1002e706
sub ecx, edx
sub ecx, dword [ebp - 0x2c]
sub ecx, 8
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x24]
mov eax, dword [esi + 0x10]
add ecx, 0xe
add eax, ecx
movd xmm0, edi
cvtdq2ps xmm0, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
addss xmm1, xmm0
addss xmm1, dword [0x100e0b84]
addss xmm4, xmm1
addss xmm1, xmm5
movaps xmm0, xmm4
addss xmm0, dword [0x100e0b64]
comiss xmm0, xmm1
jbe 0x1002e74e
subss xmm1, xmm4
cvttss2si eax, xmm1
mov dword [ebp - 0x48], eax
movzx eax, byte [esi + 0x8a]
movd xmm0, eax
movzx eax, byte [esi + 0x89]
cvtdq2ps xmm0, xmm0
movd xmm4, eax
movzx eax, byte [esi + 0x88]
cvtdq2ps xmm4, xmm4
movd xmm5, eax
cvtdq2ps xmm5, xmm5
mulss xmm0, xmm6
mulss xmm4, xmm6
mulss xmm5, xmm6
movaps xmm6, xmm2
comiss xmm0, xmm4
jbe 0x1002e794
movss xmm6, dword [0x100e0ce0]
movaps xmm2, xmm4
minss xmm4, xmm0
maxss xmm2, xmm0
comiss xmm2, xmm5
jbe 0x1002e7b3
movss xmm0, dword [0x100e0cd8]
subss xmm0, xmm6
movaps xmm6, xmm0
movaps xmm0, xmm5
movaps xmm1, xmm4
minss xmm0, xmm2
maxss xmm5, xmm2
minss xmm1, xmm0
subss xmm0, xmm4
subss xmm5, xmm1
mulss xmm5, dword [0x100e0b8c]
addss xmm5, dword [0x100e09e8]
divss xmm0, xmm5
addss xmm0, xmm6
call fcn.100218b0
movaps xmm2, xmm7
lea ecx, [ebp - 0x50]
movaps xmm1, xmm0
call fcn.1002ddf0
mov edx, dword [ebp - 0x24]
mov eax, dword [esi + 0x10]
add edx, 0x10
add eax, edx
movd xmm2, edi
mov ecx, dword [0x1011c424]
cvtdq2ps xmm2, xmm2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
push dword [ebp - 0x50]
addss xmm0, xmm2
addss xmm0, dword [0x100e0b84]
addss xmm0, dword [ebp - 0x40]
cvttss2si eax, xmm0
mov dword [ebp - 0x40], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x1011c424]
mov esi, dword [ebp - 0x14]
mov eax, dword [ecx]
mov edx, dword [eax + 0x40]
mov eax, dword [ebp - 0x40]
add eax, dword [ebp - 0x48]
push eax
mov eax, dword [ebp - 0x1c]
add eax, esi
push eax
push dword [ebp - 0x40]
push esi
call edx
mov eax, dword [ebp - 0x4c]
xorps xmm2, xmm2
movss xmm5, dword [ebp - 0x28]
add eax, 3
movss xmm1, dword [0x100e0b04]
movss xmm0, dword [ebp - 0x64]
movss xmm6, dword [0x100e0a18]
movss xmm3, dword [ebp - 0x54]
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
movd xmm4, eax
cvtdq2ps xmm4, xmm4
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x20]
comiss xmm5, xmm4
movss dword [ebp - 0x40], xmm4
ja 0x1002e6b0
movss xmm1, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x2c]
add edx, 3
mov dword [ebp - 0x14], edx
lea eax, [edx + ecx]
movd xmm0, eax
mov eax, dword [ebp - 0x20]
cvtdq2ps xmm0, xmm0
comiss xmm1, xmm0
ja 0x1002e670
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x24]
mov word [ebp - 0x14], 0x3c3c
mov byte [ebp - 0x12], 0x3c
mov eax, dword [ecx + 0x1c]
mov eax, dword [eax + 8]
mov byte [ebp - 0x11], al
mov eax, dword [ecx + 0x10]
mov ecx, dword [0x1011c424]
add eax, 0x1c
push dword [ebp - 0x14]
add eax, esi
mov dword [ebp - 0x2c], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x1011c424]
movss xmm0, dword [ebp - 0x28]
addss xmm0, dword [0x100e0b04]
mov eax, dword [ecx]
mov edx, dword [eax + 0x48]
cvttss2si eax, xmm0
movss xmm0, dword [ebp - 0x34]
addss xmm0, dword [0x100e0b40]
add eax, dword [ebp - 0x2c]
push eax
cvttss2si eax, xmm0
add eax, dword [ebp - 0x38]
push eax
push dword [ebp - 0x2c]
push dword [ebp - 0x38]
call edx
mov edx, dword [ebp - 0x18]
add esi, 0x1b
mov eax, dword [edx + 0x10]
add eax, esi
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, dword [ebp - 0x28]
addss xmm0, dword [0x100e0b64]
cvttss2si eax, xmm0
mov dword [ebp - 0x1c], eax
mov eax, dword [edx + 0x1c]
mov ecx, dword [eax + 8]
mov al, byte [edx + 0x88]
mov byte [ebp - 0x14], al
mov al, byte [edx + 0x89]
mov byte [ebp - 0x13], al
mov al, byte [edx + 0x8a]
mov byte [ebp - 0x11], cl
mov ecx, dword [0x1011c424]
mov byte [ebp - 0x12], al
push dword [ebp - 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x1011c424]
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mov eax, dword [ecx]
subss xmm0, dword [0x100e0b40]
mov edx, dword [eax + 0x40]
cvttss2si eax, xmm0
cvttss2si esi, xmm0
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x1c]
movss dword [ebp - 0x64], xmm0
add eax, esi
mov esi, dword [ebp - 0x38]
mov dword [ebp - 0x2c], eax
cvttss2si eax, dword [ebp - 0x34]
push dword [ebp - 0x2c]
add eax, esi
push eax
push dword [ebp - 0x1c]
mov dword [ebp - 0x54], eax
push esi
call edx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx + 0x1c]
mov eax, dword [eax + 8]
mov ecx, dword [0x1011c424]
mov byte [ebp - 0x11], al
mov word [ebp - 0x14], 0x3c3c
mov byte [ebp - 0x12], 0x3c
mov eax, dword [ecx]
push dword [ebp - 0x14]
mov eax, dword [eax + 0x38]
call eax
push dword [ebp - 0x2c]
mov ecx, dword [0x1011c424]
push dword [ebp - 0x54]
push dword [ebp - 0x1c]
mov eax, dword [ecx]
push esi
mov eax, dword [eax + 0x48]
call eax
mov eax, dword [ebp - 0x18]
mov ecx, dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov esi, dword [ebp - 0x44]
cmp byte [eax + 0xb0], 0
je 0x1002eb8b
push 1
call ecx
test ax, ax
je 0x1002eb7b
movd xmm1, dword [ebp - 0x38]
movd xmm2, dword [0x10119230]
mov eax, dword [ebp - 0x30]
add eax, 5
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm2, xmm2
movd xmm0, eax
comiss xmm2, xmm1
mov eax, dword [ebp - 0x18]
cvtdq2ps xmm0, xmm0
jbe 0x1002eb85
movd xmm3, esi
cvtdq2ps xmm3, xmm3
addss xmm1, xmm3
comiss xmm1, xmm2
jbe 0x1002eb85
movd xmm1, dword [0x10119234]
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm0
jbe 0x1002eb85
movd xmm2, edi
cvtdq2ps xmm2, xmm2
addss xmm0, xmm2
comiss xmm0, xmm1
jbe 0x1002eb85
movss xmm3, dword [eax + 0xac]
lea ecx, [ebp - 0x54]
movss xmm2, dword [eax + 0xa8]
movss xmm1, dword [eax + 0xa4]
call fcn.1002ddf0
mov edx, eax
mov eax, dword [ebp - 0x18]
movzx ecx, byte [eax + 0x8b]
mov al, byte [edx]
mov byte [ebp - 0x14], al
mov al, byte [edx + 1]
movd xmm1, ecx
movzx ecx, byte [edx + 3]
cvtdq2ps xmm1, xmm1
mov byte [ebp - 0x13], al
mov al, byte [edx + 2]
mov byte [ebp - 0x12], al
movd xmm0, ecx
maxss xmm1, dword [0x100e09dc]
cvtdq2ps xmm0, xmm0
minss xmm1, dword [0x100e0b04]
mulss xmm0, xmm1
movd xmm1, esi
cvtdq2ps xmm1, xmm1
cvttss2si ecx, xmm0
mov byte [ebp - 0x11], cl
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov dword [ecx + 0x88], eax
mov eax, dword [0x10119230]
sub eax, dword [ebp - 0x20]
sub eax, 4
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx + 0x98], xmm0
mov eax, dword [0x10119234]
sub eax, dword [ebp - 0x30]
sub eax, 5
movd xmm0, eax
mov eax, ecx
cvtdq2ps xmm0, xmm0
movss dword [eax + 0x9c], xmm0
mov eax, dword [0x10119230]
sub eax, dword [ebp - 0x20]
add eax, 4
movd xmm0, eax
mov eax, ecx
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [eax + 0xa4], xmm0
jmp 0x1002eb85
mov eax, dword [ebp - 0x18]
mov byte [eax + 0xb0], 0
mov ecx, dword [sym.imp.USER32.dll_GetAsyncKeyState]
cmp byte [eax + 0xb3], 0
je 0x1002ec7b
push 1
call ecx
test ax, ax
je 0x1002ec5f
mov edx, dword [ebp - 0x38]
mov eax, dword [0x10119230]
mov ecx, dword [ebp - 0x1c]
movd xmm2, edx
movd xmm3, eax
cvtdq2ps xmm2, xmm2
cvtdq2ps xmm3, xmm3
movd xmm1, ecx
comiss xmm3, xmm2
cvtdq2ps xmm1, xmm1
jbe 0x1002ec78
movss xmm4, dword [ebp - 0x34]
movaps xmm0, xmm4
addss xmm0, xmm2
comiss xmm0, xmm3
jbe 0x1002ec78
movd xmm0, dword [0x10119234]
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm1
jbe 0x1002ec78
addss xmm1, dword [ebp - 0x64]
comiss xmm1, xmm0
jbe 0x1002ec78
sub eax, edx
jns 0x1002ec0d
xor eax, eax
jmp 0x1002ec17
mov edx, 0xff
cmp eax, edx
cmovg eax, edx
movd xmm1, eax
mov eax, dword [ebp - 0x18]
cvtdq2ps xmm1, xmm1
movss dword [eax + 0xb4], xmm1
mov eax, dword [0x10119230]
divss xmm1, xmm4
sub eax, ecx
mov ecx, dword [ebp - 0x18]
movd xmm0, eax
mov eax, dword [ebp - 0x18]
mulss xmm1, dword [0x100e0c88]
cvtdq2ps xmm0, xmm0
movss dword [eax + 0xb8], xmm0
cvttss2si eax, xmm1
mov byte [ecx + 0x8b], al
mov eax, ecx
jmp 0x1002ec7b
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov eax, dword [ebp - 0x18]
jne 0x1002ec7b
mov byte [eax + 0xb3], 0
jmp 0x1002ec7b
mov eax, dword [ebp - 0x18]
cmp byte [eax + 0xb1], 0
je 0x1002ee3c
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov edx, dword [ebp - 0x24]
movss xmm5, dword [ebp - 0x34]
test ax, ax
je 0x1002ee30
mov eax, dword [ebp - 0x18]
movd xmm2, dword [ebp - 0x38]
movd xmm3, dword [0x10119230]
movd xmm0, edi
mov eax, dword [eax + 0x10]
add eax, 0x10
add eax, edx
cvtdq2ps xmm0, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm2, xmm2
addss xmm1, xmm0
cvtdq2ps xmm3, xmm3
addss xmm1, dword [0x100e0b84]
comiss xmm3, xmm2
movss dword [ebp - 0x54], xmm1
jbe 0x1002ee44
movaps xmm0, xmm5
addss xmm0, xmm2
comiss xmm0, xmm3
jbe 0x1002ee44
movd xmm2, dword [0x10119234]
mov edi, dword [ebp - 0x18]
cvtdq2ps xmm2, xmm2
comiss xmm2, xmm1
jbe 0x1002ee47
movaps xmm0, xmm1
movss xmm1, dword [ebp - 0x28]
addss xmm0, xmm1
comiss xmm0, xmm2
jbe 0x1002ee4c
movss xmm3, dword [edi + 0xac]
lea ecx, [ebp - 0x64]
movss xmm2, dword [edi + 0xa8]
movss xmm1, dword [edi + 0xa4]
call fcn.1002ddf0
movzx ecx, byte [edi + 0x8b]
mov edx, eax
movss xmm3, dword [0x100e0b04]
xorps xmm2, xmm2
movss xmm5, dword [ebp - 0x34]
mov al, byte [edx]
movd xmm1, ecx
movzx ecx, byte [edx + 3]
cvtdq2ps xmm1, xmm1
mov byte [ebp - 0x14], al
mov al, byte [edx + 1]
mov byte [ebp - 0x13], al
mov al, byte [edx + 2]
movd xmm0, ecx
maxss xmm1, xmm2
mov byte [ebp - 0x12], al
cvtdq2ps xmm0, xmm0
minss xmm1, xmm3
mulss xmm0, xmm1
cvttss2si ecx, xmm0
mov byte [ebp - 0x11], cl
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x20]
mov dword [edi + 0x88], eax
mov eax, dword [0x10119230]
sub eax, ecx
sub eax, 4
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, xmm5
comiss xmm2, xmm0
jbe 0x1002edbd
xorps xmm0, xmm0
jmp 0x1002edc1
minss xmm0, xmm3
movss xmm1, dword [ebp - 0x28]
movaps xmm4, xmm3
movss dword [edi + 0xa8], xmm0
movd xmm0, dword [0x10119234]
cvtdq2ps xmm0, xmm0
subss xmm0, dword [ebp - 0x54]
divss xmm0, xmm1
subss xmm4, xmm0
comiss xmm2, xmm4
jbe 0x1002edf3
xorps xmm4, xmm4
jmp 0x1002edf7
minss xmm4, xmm3
mov edx, dword [ebp - 0x24]
movss dword [edi + 0xac], xmm4
mov eax, dword [0x10119234]
sub eax, edx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x94], xmm0
mov eax, dword [0x10119230]
sub eax, ecx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x90], xmm0
jmp 0x1002ee52
mov edi, dword [ebp - 0x18]
mov byte [edi + 0xb1], 0
jmp 0x1002ee47
movss xmm5, dword [ebp - 0x34]
mov edx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x18]
movss xmm1, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x20]
xorps xmm2, xmm2
movss xmm4, dword [edi + 0x90]
ucomiss xmm4, xmm2
lahf
test ah, 0x44
jnp 0x1002ef15
movss xmm0, dword [edi + 0x94]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jnp 0x1002ef15
comiss xmm2, xmm4
movaps xmm3, xmm5
subss xmm3, dword [0x100e0b88]
jbe 0x1002ee91
xorps xmm3, xmm3
jmp 0x1002ee95
minss xmm3, xmm4
comiss xmm2, xmm0
addss xmm1, dword [0x100e0bf0]
movss dword [edi + 0x90], xmm3
jbe 0x1002eeaf
xorps xmm1, xmm1
jmp 0x1002eeb3
minss xmm1, xmm0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
mov dword [ebp - 0x14], 0xff2e2c2b
push dword [ebp - 0x14]
addss xmm0, xmm1
movss dword [edi + 0x94], xmm1
cvttss2si eax, xmm0
movd xmm0, ecx
mov ecx, dword [0x1011c424]
cvtdq2ps xmm0, xmm0
mov dword [ebp - 0x2c], eax
mov eax, dword [ecx]
addss xmm0, xmm3
mov eax, dword [eax + 0x38]
cvttss2si edi, xmm0
call eax
mov ecx, dword [0x1011c424]
mov eax, dword [ecx]
mov edx, dword [eax + 0x48]
mov eax, dword [ebp - 0x2c]
add eax, 5
push eax
lea eax, [edi + 5]
push eax
push dword [ebp - 0x2c]
push edi
call edx
mov edi, dword [ebp - 0x18]
xorps xmm2, xmm2
movss xmm1, dword [edi + 0x98]
ucomiss xmm1, xmm2
lahf
test ah, 0x44
jnp 0x1002efb9
movss xmm0, dword [edi + 0x9c]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jnp 0x1002efb9
movss xmm0, dword [0x100e0b40]
comiss xmm0, xmm1
movd xmm2, esi
cvtdq2ps xmm2, xmm2
subss xmm2, xmm0
jbe 0x1002ef5c
movaps xmm2, xmm0
jmp 0x1002ef60
minss xmm2, xmm1
movss dword [edi + 0x98], xmm2
subss xmm2, xmm0
movd xmm0, dword [ebp - 0x38]
mov ecx, dword [0x1011c424]
cvtdq2ps xmm0, xmm0
mov dword [ebp - 0x14], 0xff2e2c2b
mov eax, dword [ecx]
push dword [ebp - 0x14]
addss xmm2, xmm0
mov eax, dword [eax + 0x38]
cvttss2si esi, xmm2
call eax
mov ecx, dword [0x1011c424]
mov edi, dword [ebp - 0x30]
mov eax, dword [ecx]
mov edx, dword [eax + 0x48]
lea eax, [edi + 5]
add eax, dword [ebp - 0x3c]
push eax
lea eax, [esi + 4]
push eax
lea eax, [edi + 5]
push eax
push esi
call edx
mov edi, dword [ebp - 0x18]
xorps xmm2, xmm2
movss xmm3, dword [edi + 0xb4]
ucomiss xmm3, xmm2
lahf
test ah, 0x44
jnp 0x1002f054
movss xmm0, dword [edi + 0xb8]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jnp 0x1002f054
movss xmm1, dword [0x100e0b40]
comiss xmm1, xmm3
movss xmm2, dword [ebp - 0x34]
subss xmm2, xmm1
jbe 0x1002effe
movaps xmm2, xmm1
jmp 0x1002f002
minss xmm2, xmm3
movd xmm0, dword [ebp - 0x38]
cvtdq2ps xmm0, xmm0
mov dword [ebp - 0x14], 0xff2e2c2b
push dword [ebp - 0x14]
movss dword [edi + 0xb4], xmm2
addss xmm0, xmm2
mov ecx, dword [0x1011c424]
mov eax, dword [ecx]
subss xmm0, xmm1
mov eax, dword [eax + 0x38]
cvttss2si esi, xmm0
call eax
mov ecx, dword [0x1011c424]
mov eax, dword [ecx]
mov edx, dword [eax + 0x48]
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0x50]
push eax
lea eax, [esi + 4]
push eax
push dword [ebp - 0x1c]
push esi
call edx
mov edi, dword [ebp - 0x18]
mov al, byte [edi + 0x8b]
mov byte [edi + 0x8b], al
cmp byte [edi + 0xb2], 0
je 0x1002f412
push 4
push str.copy
lea ecx, [ebp - 0x80]
mov byte [edi + 0x6c], 0
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0xf
mov byte [ebp - 0x80], 0
call fcn.1001fe30
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x9c]
push 5
push str.paste
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x88], 0xf
mov byte [ebp - 0x9c], 0
call fcn.1001fe30
lea eax, [ebp - 0x9c]
mov byte [ebp - 4], 1
push eax
lea eax, [ebp - 0x58]
mov ecx, 0x1011f66c
push eax
call fcn.10085eb0
mov esi, eax
mov ecx, 0x1011f66c
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x68]
push eax
call fcn.10085eb0
mov ecx, dword [eax]
mov eax, dword [esi]
add eax, 2
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x88]
add eax, ecx
mov dword [ebp - 0x3c], eax
cmp edx, 0x10
jb 0x1002f13d
mov ecx, dword [ebp - 0x9c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1002f133
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002f43d
push edx
push ecx
call fcn.10099e4f
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x6c]
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x88], 0xf
mov byte [ebp - 0x9c], 0
cmp edx, 0x10
jb 0x1002f193
mov ecx, dword [ebp - 0x80]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1002f189
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002f442
push edx
push ecx
call fcn.10099e4f
add esp, 8
mov eax, dword [edi + 0x1c]
mov ecx, dword [ebp - 0x20]
mov edi, dword [edi + 0xc]
add ecx, 0xffffffed
mov esi, dword [ebp - 0x24]
add edi, ecx
mov ecx, dword [0x1011c424]
add esi, 0xa
mov eax, dword [eax + 8]
mov byte [ebp - 0x11], al
mov word [ebp - 0x14], 0x3c3c
mov eax, dword [ecx]
mov byte [ebp - 0x12], 0x3c
push dword [ebp - 0x14]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x1011c424]
mov eax, dword [ecx]
mov edx, dword [eax + 0x40]
lea eax, [esi + 0x14]
push eax
mov eax, dword [ebp - 0x3c]
add eax, 0x12
add eax, edi
push eax
push esi
push edi
call edx
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x24]
mov word [ebp - 0x14], 0x2828
add esi, 0xb
mov byte [ebp - 0x12], 0x28
mov eax, dword [ecx + 0x1c]
mov edi, dword [ecx + 0xc]
mov ecx, dword [ebp - 0x20]
add ecx, 0xffffffee
mov eax, dword [eax + 8]
add edi, ecx
mov ecx, dword [0x1011c424]
mov byte [ebp - 0x11], al
push dword [ebp - 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x1011c424]
mov eax, dword [ecx]
mov edx, dword [eax + 0x40]
lea eax, [esi + 0x12]
push eax
mov eax, dword [ebp - 0x3c]
add eax, 0x10
add eax, edi
push eax
push esi
push edi
call edx
push 6
push str.copy__
lea ecx, [ebp - 0x80]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0xf
mov byte [ebp - 0x80], 0
call fcn.1001fe30
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x24]
mov dword [ebp - 4], 2
add esi, 0xd
push 0
mov eax, dword [edi + 0x1c]
mov word [ebp - 0x14], 0xcdcd
mov byte [ebp - 0x12], 0xcd
mov eax, dword [eax + 8]
mov byte [ebp - 0x11], al
lea eax, [ebp - 0x80]
push eax
push dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
push esi
add eax, 0xa1
push eax
mov ecx, 0x1011f66c
call fcn.10085c60
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x6c]
cmp edx, 0x10
jb 0x1002f2d2
mov ecx, dword [ebp - 0x80]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1002f2c8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002f447
push edx
push ecx
call fcn.10099e4f
add esp, 8
push 7
push str.__paste
lea ecx, [ebp - 0xd4]
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0xc0], 0xf
mov byte [ebp - 0xd4], 0
call fcn.1001fe30
mov dword [ebp - 4], 3
lea ecx, [ebp - 0xb4]
mov eax, dword [edi + 0x1c]
push 4
push str.copy
mov word [ebp - 0x14], 0xcdcd
mov eax, dword [eax + 8]
mov byte [ebp - 0x12], 0xcd
mov byte [ebp - 0x11], al
mov dword [ebp - 0xa4], 0
mov dword [ebp - 0xa0], 0xf
mov byte [ebp - 0xb4], 0
call fcn.1001fe30
lea eax, [ebp - 0xb4]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0xbc]
mov ecx, 0x1011f66c
push eax
call fcn.10085eb0
mov ecx, dword [ebp - 0x20]
lea edx, [ebp - 0xd4]
push 0
push edx
push dword [ebp - 0x14]
mov eax, dword [eax]
add ecx, 0xa6
add eax, ecx
mov ecx, 0x1011f66c
push esi
push eax
call fcn.10085c60
mov edx, dword [ebp - 0xa0]
cmp edx, 0x10
jb 0x1002f3c1
mov ecx, dword [ebp - 0xb4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1002f3b7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002f44c
push edx
push ecx
call fcn.10099e4f
add esp, 8
mov edx, dword [ebp - 0xc0]
mov dword [ebp - 0xa4], 0
mov dword [ebp - 0xa0], 0xf
mov byte [ebp - 0xb4], 0
cmp edx, 0x10
jb 0x1002f412
mov ecx, dword [ebp - 0xd4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1002f408
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002f451
push edx
push ecx
call fcn.10099e4f
add esp, 8
cmp byte [edi + 0x6c], 0
jne 0x1002f422
mov dword [0x10122afc], 0
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.1009999a
mov esp, ebp
pop ebp
ret
call fcn.100a1274
call fcn.100a1274
call fcn.100a1274
call fcn.100a1274
call fcn.100a1274
int3