Function at 0x10004b50
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 8
push ebx
push esi
push edi
mov edi, 1
cmp dword [0x102277bc], edi
jg 0x10004c77
cmp byte [0x1022770a], 0
jne 0x10004c77
push 0x1cc
push 0x1a9
call dword [0x10167d2c]
mov eax, dword [0x10227820]
mov ecx, dword [0x1022781c]
mov edx, dword [0x10227818]
push eax
mov eax, dword [0x10227814]
push ecx
mov ecx, dword [0x10227810]
push edx
mov edx, dword [0x1017c050]
push eax
push ecx
push edx
push str.X_P_G_C_B_M_:__d__d__d__d__d__d
call dword [0x1016e514]
add esp, 0x24
push 0x1dc
push 0x1a9
call dword [0x10167d2c]
fild dword [0x10227810]
fmul qword [0x101140d0]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fild dword [0x10227810]
fiadd dword [0x10227814]
fiadd dword [0x10227818]
fiadd dword [0x1022781c]
fiadd dword [0x10227820]
fdivp st(1)
fstp qword [esp]
push str.Perfect_:__.1f___
call dword [0x1016e514]
add esp, 0xc
push 0x1ec
push 0x1a9
call dword [0x10167d2c]
mov eax, dword [0x10210854]
push eax
push str.xPerfect_:__d
call dword [0x1016e514]
push 0x1fc
push 0x1a9
call dword [0x10167d2c]
mov ecx, dword [0x1016d954]
push ecx
push str.Combo_:__d
call dword [0x1016e514]
push 0x20c
push 0x1a9
call dword [0x10167d2c]
mov edx, dword [0x10227824]
push edx
push str.Score_:__d
call dword [0x1016e514]
add esp, 0x30
mov eax, dword [0x10227790]
push eax
call dword [0x1017c0bc]
mov ecx, dword [0x10227790]
push ecx
mov esi, eax
call dword [0x1015532c]
cmp eax, esi
je 0x10004f02
mov eax, dword [0x10227924]
mov edx, dword [0x10227920]
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
lea ecx, [eax + edx]
add ecx, dword [0x1022791c]
mov eax, dword [0x10227810]
cmp eax, ecx
jle 0x10004daa
push 0x39
call dword [0x10210cd0]
add esp, 4
test eax, eax
je 0x10004cd6
add dword [0x10227924], edi
push 0x1d
call dword [0x10210cd0]
add esp, 4
test eax, eax
je 0x10004ceb
add dword [0x10227924], edi
push 0x9d
call dword [0x10210cd0]
add esp, 4
test eax, eax
je 0x10004d03
add dword [0x10227924], edi
push 0x52
call dword [0x10210cd0]
add esp, 4
test eax, eax
je 0x10004d18
add dword [0x10227924], edi
push 0x4c
call dword [0x10210cd0]
add esp, 4
test eax, eax
je 0x10004d2d
add dword [0x10227924], edi
push 0x24
call esi
mov edx, 0x8000
test dx, ax
je 0x10004d41
add dword [0x1022791c], edi
push 0x25
call esi
mov ecx, 0x8000
test cx, ax
je 0x10004d55
add dword [0x1022791c], edi
push 0x23
call esi
mov edx, 0x8000
test dx, ax
je 0x10004d69
add dword [0x1022791c], edi
push 0x21
call esi
mov ecx, 0x8000
test cx, ax
je 0x10004d7d
add dword [0x10227920], edi
push 0x27
call esi
mov edx, 0x8000
test dx, ax
je 0x10004d91
add dword [0x10227920], edi
push 0x22
call esi
mov ecx, 0x8000
test cx, ax
mov eax, dword [0x10227810]
je 0x10004daa
add dword [0x10227920], edi
mov edx, dword [0x10227814]
mov ebx, dword [0x10227934]
lea ecx, [eax + edx]
add ecx, dword [0x10227818]
mov edx, dword [0x1022792c]
add ecx, dword [0x1022781c]
add ebx, edx
add ebx, dword [0x10227928]
mov dword [0x10227930], ecx
cmp ecx, ebx
jle 0x10004eca
push 0x39
call dword [0x10210cd0]
add esp, 4
test eax, eax
je 0x10004df6
add dword [0x10227934], edi
push 0x1d
call dword [0x10210cd0]
add esp, 4
test eax, eax
je 0x10004e0b
add dword [0x10227934], edi
push 0x9d
call dword [0x10210cd0]
add esp, 4
test eax, eax
je 0x10004e23
add dword [0x10227934], edi
push 0x52
call dword [0x10210cd0]
add esp, 4
test eax, eax
je 0x10004e38
add dword [0x10227934], edi
push 0x4c
call dword [0x10210cd0]
add esp, 4
test eax, eax
je 0x10004e4d
add dword [0x10227934], edi
push 0x24
call esi
mov ecx, 0x8000
test cx, ax
je 0x10004e61
add dword [0x10227928], edi
push 0x25
call esi
mov edx, 0x8000
test dx, ax
je 0x10004e75
add dword [0x10227928], edi
push 0x23
call esi
mov ecx, 0x8000
test cx, ax
je 0x10004e89
add dword [0x10227928], edi
push 0x21
call esi
mov edx, 0x8000
test dx, ax
je 0x10004e9d
add dword [0x1022792c], edi
push 0x27
call esi
mov ecx, 0x8000
test cx, ax
je 0x10004eb1
add dword [0x1022792c], edi
push 0x22
call esi
mov edx, 0x8000
test dx, ax
mov eax, dword [0x10227810]
je 0x10004eca
add dword [0x1022792c], edi
mov ecx, dword [0x10227cc8]
cmp dword [ecx], 0x19999
jne 0x10004f02
sub eax, dword [0x10227924]
sub eax, dword [0x10227920]
sub eax, dword [0x1022791c]
cmp eax, 5
jle 0x10004f02
cmp byte [0x102276fd], 0
jne 0x10004f02
push str.Left_Right_something_wrong__nAuto_
call fcn.1000f940
cmp dword [0x102277bc], edi
jg 0x10005146
cmp byte [0x1022770a], 0
jne 0x10005146
push 0x21c
push 0x1a9
call dword [0x10167d2c]
mov eax, dword [0x1022791c]
mov edx, eax
imul edx, edx, 0x64
mov dword [esp + 0x18], edx
mov ecx, dword [0x10227928]
fild dword [esp + 0x18]
fidiv dword [0x10227928]
fstp qword [esp]
push ecx
push eax
push str.Left___d__d__:__.1f___
call dword [0x1016e514]
add esp, 0x14
push 0x22c
push 0x1a9
call dword [0x10167d2c]
mov eax, dword [0x10227920]
mov edx, eax
imul edx, edx, 0x64
mov dword [esp + 0x18], edx
mov ecx, dword [0x1022792c]
fild dword [esp + 0x18]
fidiv dword [0x1022792c]
fstp qword [esp]
push ecx
push eax
push str.Right___d__d__:__.1f___
call dword [0x1016e514]
add esp, 0x14
push 0x23c
push 0x1a9
call dword [0x10167d2c]
mov eax, dword [0x10227924]
mov edx, eax
imul edx, edx, 0x64
mov dword [esp + 0x18], edx
mov ecx, dword [0x10227934]
fild dword [esp + 0x18]
fidiv dword [0x10227934]
fstp qword [esp]
push ecx
push eax
push str.Space___d__d__:__.1f___
call dword [0x1016e514]
add esp, 0x14
push 0x24c
push 0x1a9
call dword [0x10167d2c]
push str.On_Off_F11
call dword [0x1016e514]
mov edx, dword [0x10227810]
mov eax, dword [0x10227814]
add edx, eax
add edx, dword [0x10227818]
add esp, 0xc
add edx, dword [0x1022781c]
add edx, dword [0x10227820]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
fild dword [0x1016d954]
fld dword [esp + 0x10]
fld st(0)
fdivp st(2)
fld qword [0x101140d0]
fmul st(2), st(0)
fxch st(2)
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fild dword [0x10227810]
fdivrp st(2)
fxch st(1)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x10]
fadd dword [esp + 0x10]
fmul qword [0x10114058]
fstp dword [esp + 0x10]
push 0x25c
push 0x1a9
call dword [0x10167d2c]
fld dword [esp + 0x18]
fstp qword [esp]
push str.Judgement_Score_:__.2f
call dword [0x1016e514]
mov ecx, dword [0x10227c80]
add esp, 0xc
cmp dword [ecx], edi
jne 0x10005146
cmp byte [0x10139237], 0
je 0x10005146
cmp dword [0x1022775c], 0
je 0x10005146
call fcn.10009080
test al, al
je 0x10005146
cmp dword [0x10216c0c], edi
jne 0x10005146
mov edx, 0x101119eb
mov ecx, 0x1019d2b8
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100050f3
test al, al
je 0x100050ef
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100050f3
add ecx, 2
add edx, 2
test al, al
jne 0x100050d3
xor eax, eax
jmp 0x100050f8
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x10005146
mov edx, dword [0x10227cc8]
cmp dword [edx], 0x19999
jne 0x10005146
cmp byte [0x10130d6a], 0
je 0x10005146
fld dword [esp + 0x10]
sub esp, 8
fstp qword [esp]
push str.Judgement_Score_:__.2f
push 0x10162e38
call fcn.10096d80
mov ecx, dword [0x102279f0]
add esp, 0x10
push 0x10162e38
call fcn.10007e90
mov byte [0x10130d6a], 0
pop edi
pop esi
pop ebx
add esp, 8
ret