Function at 0x10007e00
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100449e1
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
push ebx
push esi
push edi
mov eax, dword [0x10055040]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov ecx, dword [0x10057730]
mov edi, dword [ebp + 8]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
test eax, eax
je 0x10007e52
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1000816e
mov ecx, dword [0x10057730]
mov eax, dword [ecx + 8]
cmp byte [eax], 0
je 0x1000816e
cmp byte [0x100562ac], 0
mov esi, dword [ebp + 0xc]
mov eax, dword [0x10057734]
mov ecx, dword [esi]
mov dword [eax], ecx
mov ecx, dword [0x10057734]
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
mov eax, dword [esi + 8]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0xc]
mov dword [ecx + 0xc], eax
je 0x1000816e
mov eax, dword [0x10057730]
mov eax, dword [eax]
cmp byte [eax + 1], 0
je 0x10007ea0
or dword [edi + 0x24], 1
test byte [edi + 0x24], 1
je 0x1000816e
mov ecx, dword [ebx + 0x34]
mov eax, 0x2aaaaaab
sub ecx, dword [ebx + 0x30]
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 2
jb 0x10007ff3
mov ecx, dword [0x10056274]
test ecx, ecx
jne 0x10007ed8
mov dword [ebp - 0x14], ecx
jmp 0x10007ee0
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0x14], eax
call dword [ebp - 0x14]
mov ecx, dword [ebx + 0x34]
mov eax, 0x2aaaaaab
sub ecx, dword [ebx + 0x30]
imul ecx
fstp dword [ebp - 0x10]
mov dword [ebp - 0x28], 0
sar edx, 1
mov eax, edx
mov dword [ebp - 0x24], 0
shr eax, 0x1f
mov dword [ebp - 0x20], 0
add eax, edx
je 0x10007f9d
cmp eax, 0x15555555
ja 0x10008182
lea esi, [eax + eax*2]
shl esi, 2
test esi, esi
jne 0x10007f30
xor edx, edx
jmp 0x10007f6c
cmp esi, 0x1000
jb 0x10007f61
lea eax, [esi + 0x23]
cmp eax, esi
jbe 0x10008187
push eax
call fcn.10042c27
add esp, 4
test eax, eax
je 0x10007f5b
lea edx, [eax + 0x23]
and edx, 0xffffffe0
mov dword [edx - 4], eax
jmp 0x10007f6c
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push esi
call fcn.10042c27
add esp, 4
mov edx, eax
lea ecx, [esi + edx]
mov dword [ebp - 0x28], edx
mov esi, dword [ebx + 0x34]
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebx + 0x30]
cmp ecx, esi
je 0x10007f9a
nop
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov eax, dword [ecx + 8]
add ecx, 0xc
mov dword [edx + 8], eax
add edx, 0xc
cmp ecx, esi
jne 0x10007f80
mov dword [ebp - 0x24], edx
vmovss xmm0, dword [ebp - 0x10]
lea esi, [ebx + 0x3c]
lea eax, [ebp - 0x28]
vmovss dword [ebp - 0x1c], xmm0
cmp esi, eax
je 0x10007fe3
mov ecx, esi
call fcn.10002e90
mov eax, dword [ebp - 0x28]
vmovss xmm0, dword [ebp - 0x1c]
mov dword [esi], eax
mov eax, dword [ebp - 0x24]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x20]
mov dword [esi + 8], eax
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
lea ecx, [ebp - 0x28]
vmovss dword [esi + 0xc], xmm0
call fcn.10002e90
mov esi, dword [ebp + 0xc]
vmovss xmm2, dword [edi + 0x1c]
vmovss xmm1, dword [edi + 0x18]
vxorps xmm0, xmm0, xmm0
vsubss xmm2, xmm2, xmm0
vucomiss xmm2, xmm0
vsubss xmm1, xmm1, xmm0
lahf
test ah, 0x44
jp 0x1000801d
vucomiss xmm1, xmm0
lahf
test ah, 0x44
jnp 0x1000802e
vmovaps xmm0, xmm2
call fcn.10001920
vmulss xmm0, xmm0, dword [0x1004d9bc]
vmovsd xmm1, qword [0x1004d970]
vmovss dword [ebp - 0x14], xmm0
vmovss xmm0, dword [edi + 0x18]
vcvtss2sd xmm0, xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_pow_precise
vmovsd xmm1, qword [0x1004d970]
vcvtsd2ss xmm0, xmm0, xmm0
vmovss dword [ebp - 0x10], xmm0
vmovss xmm0, dword [edi + 0x1c]
vcvtss2sd xmm0, xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_pow_precise
vcvtsd2ss xmm0, xmm0, xmm0
vaddss xmm0, xmm0, dword [ebp - 0x10]
vcvtss2sd xmm0, xmm0, xmm0
vxorpd xmm1, xmm1, xmm1
vucomisd xmm1, xmm0
ja 0x10008085
vsqrtsd xmm0, xmm0, xmm0
jmp 0x1000808a
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
vcvtsd2ss xmm0, xmm0, xmm0
vmovss dword [ebp - 0x10], xmm0
vmovss xmm0, dword [esi + 0x14]
vsubss xmm0, xmm0, dword [edi + 0x10]
vaddss xmm0, xmm0, dword [ebp - 0x14]
vmulss xmm0, xmm0, dword [0x1004d8f0]
vcvtss2sd xmm0, xmm0, xmm0
vmovsd qword [ebp - 0x18], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_cos_precise
vcvtsd2ss xmm1, xmm0, xmm0
vmulss xmm1, xmm1, dword [ebp - 0x10]
vmovsd xmm0, qword [ebp - 0x18]
vmovss dword [edi + 0x18], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sin_precise
vcvtsd2ss xmm0, xmm0, xmm0
vmulss xmm0, xmm0, dword [ebp - 0x10]
vmovss dword [edi + 0x1c], xmm0
mov eax, dword [esi + 0x10]
mov dword [edi + 0xc], eax
mov eax, dword [esi + 0x14]
mov dword [edi + 0x10], eax
mov eax, dword [esi + 0x18]
mov dword [edi + 0x14], eax
cmp byte [ebx + 0x15], 0
je 0x1000816e
mov eax, dword fs:[0x2c]
mov ecx, dword [0x10056238]
mov esi, dword [0x1005628c]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x10056330]
cmp eax, dword [ecx + 4]
jle 0x10008156
push 0x10056330
call fcn.10042bc3
add esp, 4
cmp dword [0x10056330], 0xffffffff
jne 0x10008156
push str.m_flChargeBeginTime
push str.CTFPipebombLauncher
mov dword [ebp - 4], 0
call fcn.10033580
push 0x10056330
mov dword [0x10056324], eax
call fcn.10042b72
add esp, 4
mov eax, dword [0x10056324]
vxorps xmm1, xmm1, xmm1
vmovss xmm0, dword [esi + eax]
vcomiss xmm0, xmm1
jbe 0x1000816e
and dword [edi + 0x24], 0xfffffffe
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
call fcn.10003340
call fcn.10001a50
int3