Function at 0x10004ab0
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 8
push ebx
push esi
push edi
mov edi, 1
cmp dword [0x1022050c], edi
jg 0x10004bd7
cmp byte [0x1022045a], 0
jne 0x10004bd7
push 0x1cc
push 0x1a9
call dword [0x10160a7c]
mov eax, dword [0x10220570]
mov ecx, dword [0x1022056c]
mov edx, dword [0x10220568]
push eax
mov eax, dword [0x10220564]
push ecx
mov ecx, dword [0x10220560]
push edx
mov edx, dword [0x10174da0]
push eax
push ecx
push edx
push str.X_P_G_C_B_M_:__d__d__d__d__d__d
call dword [0x10167264]
add esp, 0x24
push 0x1dc
push 0x1a9
call dword [0x10160a7c]
fild dword [0x10220560]
fmul qword [0x1010d098]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fild dword [0x10220560]
fiadd dword [0x10220564]
fiadd dword [0x10220568]
fiadd dword [0x1022056c]
fiadd dword [0x10220570]
fdivp st(1)
fstp qword [esp]
push str.Perfect_:__.1f___
call dword [0x10167264]
add esp, 0xc
push 0x1ec
push 0x1a9
call dword [0x10160a7c]
mov eax, dword [0x102095a4]
push eax
push str.xPerfect_:__d
call dword [0x10167264]
push 0x1fc
push 0x1a9
call dword [0x10160a7c]
mov ecx, dword [0x101666a4]
push ecx
push str.Combo_:__d
call dword [0x10167264]
push 0x20c
push 0x1a9
call dword [0x10160a7c]
mov edx, dword [0x10220574]
push edx
push str.Score_:__d
call dword [0x10167264]
add esp, 0x30
mov eax, dword [0x102204e0]
push eax
call dword [0x10174e0c]
mov ecx, dword [0x102204e0]
push ecx
mov esi, eax
call dword [0x1014e07c]
cmp eax, esi
je 0x10004e62
mov eax, dword [0x10220674]
mov edx, dword [0x10220670]
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
lea ecx, [eax + edx]
add ecx, dword [0x1022066c]
mov eax, dword [0x10220560]
cmp eax, ecx
jle 0x10004d0a
push 0x39
call dword [0x10209a20]
add esp, 4
test eax, eax
je 0x10004c36
add dword [0x10220674], edi
push 0x1d
call dword [0x10209a20]
add esp, 4
test eax, eax
je 0x10004c4b
add dword [0x10220674], edi
push 0x9d
call dword [0x10209a20]
add esp, 4
test eax, eax
je 0x10004c63
add dword [0x10220674], edi
push 0x52
call dword [0x10209a20]
add esp, 4
test eax, eax
je 0x10004c78
add dword [0x10220674], edi
push 0x4c
call dword [0x10209a20]
add esp, 4
test eax, eax
je 0x10004c8d
add dword [0x10220674], edi
push 0x24
call esi
mov edx, 0x8000
test dx, ax
je 0x10004ca1
add dword [0x1022066c], edi
push 0x25
call esi
mov ecx, 0x8000
test cx, ax
je 0x10004cb5
add dword [0x1022066c], edi
push 0x23
call esi
mov edx, 0x8000
test dx, ax
je 0x10004cc9
add dword [0x1022066c], edi
push 0x21
call esi
mov ecx, 0x8000
test cx, ax
je 0x10004cdd
add dword [0x10220670], edi
push 0x27
call esi
mov edx, 0x8000
test dx, ax
je 0x10004cf1
add dword [0x10220670], edi
push 0x22
call esi
mov ecx, 0x8000
test cx, ax
mov eax, dword [0x10220560]
je 0x10004d0a
add dword [0x10220670], edi
mov edx, dword [0x10220564]
mov ebx, dword [0x10220684]
lea ecx, [eax + edx]
add ecx, dword [0x10220568]
mov edx, dword [0x1022067c]
add ecx, dword [0x1022056c]
add ebx, edx
add ebx, dword [0x10220678]
mov dword [0x10220680], ecx
cmp ecx, ebx
jle 0x10004e2a
push 0x39
call dword [0x10209a20]
add esp, 4
test eax, eax
je 0x10004d56
add dword [0x10220684], edi
push 0x1d
call dword [0x10209a20]
add esp, 4
test eax, eax
je 0x10004d6b
add dword [0x10220684], edi
push 0x9d
call dword [0x10209a20]
add esp, 4
test eax, eax
je 0x10004d83
add dword [0x10220684], edi
push 0x52
call dword [0x10209a20]
add esp, 4
test eax, eax
je 0x10004d98
add dword [0x10220684], edi
push 0x4c
call dword [0x10209a20]
add esp, 4
test eax, eax
je 0x10004dad
add dword [0x10220684], edi
push 0x24
call esi
mov ecx, 0x8000
test cx, ax
je 0x10004dc1
add dword [0x10220678], edi
push 0x25
call esi
mov edx, 0x8000
test dx, ax
je 0x10004dd5
add dword [0x10220678], edi
push 0x23
call esi
mov ecx, 0x8000
test cx, ax
je 0x10004de9
add dword [0x10220678], edi
push 0x21
call esi
mov edx, 0x8000
test dx, ax
je 0x10004dfd
add dword [0x1022067c], edi
push 0x27
call esi
mov ecx, 0x8000
test cx, ax
je 0x10004e11
add dword [0x1022067c], edi
push 0x22
call esi
mov edx, 0x8000
test dx, ax
mov eax, dword [0x10220560]
je 0x10004e2a
add dword [0x1022067c], edi
mov ecx, dword [0x10220a0c]
cmp dword [ecx], 0x19999
jne 0x10004e62
sub eax, dword [0x10220674]
sub eax, dword [0x10220670]
sub eax, dword [0x1022066c]
cmp eax, 5
jle 0x10004e62
cmp byte [0x1022044d], 0
jne 0x10004e62
push str.Left_Right_something_wrong__nAuto_
call fcn.1000fc30
cmp dword [0x1022050c], edi
jg 0x100050a6
cmp byte [0x1022045a], 0
jne 0x100050a6
push 0x21c
push 0x1a9
call dword [0x10160a7c]
mov eax, dword [0x1022066c]
mov edx, eax
imul edx, edx, 0x64
mov dword [esp + 0x18], edx
mov ecx, dword [0x10220678]
fild dword [esp + 0x18]
fidiv dword [0x10220678]
fstp qword [esp]
push ecx
push eax
push str.Left___d__d__:__.1f___
call dword [0x10167264]
add esp, 0x14
push 0x22c
push 0x1a9
call dword [0x10160a7c]
mov eax, dword [0x10220670]
mov edx, eax
imul edx, edx, 0x64
mov dword [esp + 0x18], edx
mov ecx, dword [0x1022067c]
fild dword [esp + 0x18]
fidiv dword [0x1022067c]
fstp qword [esp]
push ecx
push eax
push str.Right___d__d__:__.1f___
call dword [0x10167264]
add esp, 0x14
push 0x23c
push 0x1a9
call dword [0x10160a7c]
mov eax, dword [0x10220674]
mov edx, eax
imul edx, edx, 0x64
mov dword [esp + 0x18], edx
mov ecx, dword [0x10220684]
fild dword [esp + 0x18]
fidiv dword [0x10220684]
fstp qword [esp]
push ecx
push eax
push str.Space___d__d__:__.1f___
call dword [0x10167264]
add esp, 0x14
push 0x24c
push 0x1a9
call dword [0x10160a7c]
push str.On_Off_F11
call dword [0x10167264]
mov edx, dword [0x10220560]
mov eax, dword [0x10220564]
add edx, eax
add edx, dword [0x10220568]
add esp, 0xc
add edx, dword [0x1022056c]
add edx, dword [0x10220570]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
fild dword [0x101666a4]
fld dword [esp + 0x10]
fld st(0)
fdivp st(2)
fld qword [0x1010d098]
fmul st(2), st(0)
fxch st(2)
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fild dword [0x10220560]
fdivrp st(2)
fxch st(1)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x10]
fadd dword [esp + 0x10]
fmul qword [0x1010d038]
fstp dword [esp + 0x10]
push 0x25c
push 0x1a9
call dword [0x10160a7c]
fld dword [esp + 0x18]
fstp qword [esp]
push str.Judgement_Score_:__.2f
call dword [0x10167264]
mov ecx, dword [0x102209c4]
add esp, 0xc
cmp dword [ecx], edi
jne 0x100050a6
cmp byte [0x10131f87], 0
je 0x100050a6
cmp dword [0x102204ac], 0
je 0x100050a6
call fcn.10009550
test al, al
je 0x100050a6
cmp dword [0x1020f95c], edi
jne 0x100050a6
mov edx, 0x1010b90f
mov ecx, 0x10196008
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10005053
test al, al
je 0x1000504f
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10005053
add ecx, 2
add edx, 2
test al, al
jne 0x10005033
xor eax, eax
jmp 0x10005058
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100050a6
mov edx, dword [0x10220a0c]
cmp dword [edx], 0x19999
jne 0x100050a6
cmp byte [0x10129d02], 0
je 0x100050a6
fld dword [esp + 0x10]
sub esp, 8
fstp qword [esp]
push str.Judgement_Score_:__.2f
push 0x1015bb88
call fcn.10091b90
mov ecx, dword [0x1022073c]
add esp, 0x10
push 0x1015bb88
call fcn.10008360
mov byte [0x10129d02], 0
pop edi
pop esi
pop ebx
add esp, 8
ret