Function at 0x402510
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, dword [0x412204]
sub esp, 0x34
push ebx
push ebp
mov ebp, 1
push esi
xor ebx, ebx
push edi
mov edi, dword [esp + 0x48]
cmp eax, ebp
jne 0x40258e
lea eax, [edi + edi*2]
cmp eax, ebx
je 0x402576
mov esi, eax
call fcn.00408c90
cdq
mov ecx, 0x12c
idiv ecx
xor eax, eax
cmp dword [edx*4 + 0x411cc0], ebx
je 0x40255f
inc edx
cmp edx, 0x12c
jne 0x402557
xor edx, edx
inc eax
cmp eax, 0x12c
jne 0x402543
cmp eax, 0x12c
jne 0x40256c
mov dword [0x412204], ebx
dec esi
mov dword [edx*4 + 0x411cc0], ebp
jne 0x402534
mov eax, dword [0x412260]
cmp eax, ebx
je 0x40258e
sub eax, edi
mov dword [0x412260], eax
jns 0x40258e
mov dword [0x412260], ebx
cmp dword [0x41226c], ebp
jne 0x402607
lea edi, [edi + edi*2]
xor esi, esi
cmp edi, ebx
je 0x4025e1
call fcn.00408c90
cdq
mov ecx, 0x12c
idiv ecx
xor eax, eax
cmp dword [edx*4 + 0x411cc0], ebp
je 0x4025ca
inc edx
cmp edx, 0x12c
jne 0x4025c2
xor edx, edx
inc eax
cmp eax, 0x12c
jne 0x4025ae
cmp eax, 0x12c
je 0x402a26
inc esi
mov dword [edx*4 + 0x411cc0], ebx
cmp esi, edi
jne 0x40259f
mov eax, dword [0x412260]
cmp eax, 0x40
je 0x402603
add eax, dword [esp + 0x48]
cmp eax, 0x40
mov dword [0x412260], eax
jle 0x402603
mov dword [0x412260], 0x40
mov edi, dword [esp + 0x48]
mov eax, dword [0x41f6d0]
add eax, edi
cmp eax, 8
mov dword [0x41f6d0], eax
jge 0x402630
call fcn.00402a90
push edi
push ebx
push ebx
call fcn.00402af0
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
mov eax, dword [0x4121c0]
mov esi, 1
cmp eax, esi
mov dword [0x412178], 0xffff
mov dword [0x411b94], ebx
mov ebp, 3
jne 0x4026d8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0x34
push eax
push ebx
mov dword [esp + 0x1c], 0x83
call dword [sym.imp.WINMM.dll_joyGetPosEx]
test eax, eax
jne 0x4026d8
mov eax, dword [esp + 0x18]
cmp eax, 0xbfff
jbe 0x402688
mov dword [0x412178], ebx
cmp eax, 0x4000
jae 0x402699
mov dword [0x412178], 2
mov eax, dword [esp + 0x1c]
cmp eax, 0xbfff
jbe 0x4026aa
mov dword [0x412178], esi
cmp eax, 0x4000
jae 0x4026b7
mov dword [0x412178], ebp
cmp dword [esp + 0x30], esi
jne 0x4026d8
mov ecx, dword [0x411ba0]
push ebx
push 0x20
push 0x100
push ecx
call dword [sym.imp.USER32.dll_PostMessageA]
mov dword [0x411b94], esi
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x27
mov dword [0x41f6d0], ebx
mov dword [0x4121b4], ebx
call edi
test ax, ax
jl 0x4026ff
cmp dword [0x412178], ebx
jne 0x4027fe
cmp dword [0x41226c], ebx
jne 0x4027fe
cmp dword [0x412204], ebx
jne 0x4027fe
mov eax, dword [0x412190]
sub eax, ebx
je 0x402756
sub eax, 2
jne 0x4027fe
cmp dword [0x411b3c], esi
jne 0x4027fe
mov eax, dword [0x4121bc]
cmp eax, ebx
je 0x4027fe
add eax, 0xfa
mov dword [0x4121bc], eax
call fcn.00406690
jmp 0x4027fe
mov eax, dword [0x411ba4]
cmp eax, ebx
mov eax, dword [0x411b3c]
jne 0x4027bb
cmp eax, esi
jne 0x4027fe
mov edx, dword [0x4123a0]
mov ecx, dword [0x411b30]
add edx, 0xfffffffa
cmp ecx, edx
jge 0x4027fe
mov ebx, dword [0x41f69c]
mov esi, 0x305
inc ebx
mov eax, ebx
cdq
idiv esi
test edx, edx
jne 0x402799
cmp bl, 0xbd
je 0x4027a0
cmp ecx, 0x13
jl 0x4027a0
jmp 0x40279e
test ecx, ecx
jne 0x4027b0
mov dword [0x411b30], 4
jmp 0x4027f7
add ecx, 5
mov dword [0x411b30], ecx
jmp 0x4027f7
cmp eax, esi
jne 0x4027fe
mov eax, dword [0x4123a0]
mov esi, dword [0x411b30]
dec eax
cmp esi, eax
jge 0x4027f9
mov ecx, dword [0x41f69c]
mov ebx, 0x305
inc ecx
mov eax, ecx
cdq
idiv ebx
test edx, edx
jne 0x4027e9
cmp cl, 0xbd
je 0x4027f0
cmp esi, 0x13
jl 0x4027f0
jmp 0x4027ee
inc esi
mov dword [0x411b30], esi
xor ebx, ebx
mov esi, 1
push 0x25
call edi
test ax, ax
jl 0x402814
cmp dword [0x412178], 2
jne 0x402897
cmp dword [0x41226c], ebx
jne 0x402897
cmp dword [0x412204], ebx
jne 0x402897
mov eax, dword [0x412190]
sub eax, ebx
je 0x402857
sub eax, 2
jne 0x402897
cmp dword [0x411b3c], esi
jne 0x402897
mov eax, dword [0x4121bc]
cmp eax, 0xffffec78
je 0x402897
sub eax, 0xfa
mov dword [0x4121bc], eax
call fcn.00406690
jmp 0x402897
mov eax, dword [0x411ba4]
cmp eax, ebx
mov eax, dword [0x411b3c]
jne 0x402884
cmp eax, esi
jne 0x402897
mov eax, dword [0x411b30]
cmp eax, ebx
je 0x402897
cmp eax, 4
jne 0x40287f
mov dword [0x411b30], ebx
jmp 0x402897
sub eax, 5
jmp 0x402892
cmp eax, esi
jne 0x402897
mov eax, dword [0x411b30]
cmp eax, ebx
je 0x402897
dec eax
mov dword [0x411b30], eax
push 0x26
call edi
test ax, ax
jl 0x4028ac
cmp dword [0x412178], ebp
jne 0x402947
cmp dword [0x41226c], ebx
jne 0x402947
cmp dword [0x412204], ebx
jne 0x402947
mov eax, dword [0x411b3c]
cmp eax, ebx
je 0x402917
mov edx, eax
mov eax, dword [0x412190]
dec edx
cmp eax, ebx
mov dword [0x411b3c], edx
jne 0x4028e9
mov dword [0x4121b4], 0xffffffd0
cmp eax, 2
mov ecx, 0xffffffe0
jne 0x4028f9
mov dword [0x4121b4], ecx
cmp eax, esi
jne 0x4029f4
mov eax, dword [0x411b90]
mov dword [0x4121b4], ecx
dec eax
mov dword [0x411b90], eax
jmp 0x4029f4
cmp dword [0x411b90], ebx
je 0x4029f4
cmp dword [0x412190], esi
jne 0x4029f4
mov ecx, dword [0x411b90]
mov eax, dword [0x411b40]
dec ecx
dec eax
mov dword [0x411b90], ecx
jmp 0x4029ef
push 0x28
call edi
test ax, ax
jl 0x40295c
cmp dword [0x412178], esi
jne 0x4029f4
cmp dword [0x41226c], ebx
jne 0x4029f4
cmp dword [0x412204], ebx
jne 0x4029f4
mov ecx, dword [0x411b3c]
mov eax, dword [0x412238]
cmp ecx, eax
je 0x4029c9
mov eax, dword [0x412190]
mov edx, ecx
inc edx
cmp eax, ebx
mov dword [0x411b3c], edx
jne 0x40299f
mov dword [0x4121b4], 0x30
cmp eax, 2
jne 0x4029ae
mov dword [0x4121b4], 0x20
cmp eax, esi
jne 0x4029f4
mov eax, dword [0x411b90]
mov dword [0x4121b4], 0x20
inc eax
mov dword [0x411b90], eax
jmp 0x4029f4
mov edx, dword [0x411b90]
mov ecx, dword [0x41f698]
lea eax, [edx + 1]
cmp ecx, eax
jle 0x4029f4
cmp dword [0x412190], esi
jne 0x4029f4
mov dword [0x411b90], eax
mov eax, dword [0x411b40]
inc eax
mov dword [0x411b40], eax
call fcn.00402a90
mov eax, dword [esp + 0x48]
push eax
push ebx
push ebx
call fcn.00402af0
mov eax, dword [0x41239c]
add esp, 0xc
inc eax
cmp eax, 8
mov dword [0x41239c], eax
jne 0x402a1e
mov dword [0x41239c], ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
mov edx, dword [esp + 0x48]
push edx
push ebx
push ebx
call fcn.00402af0
mov eax, dword [0x411c10]
mov ecx, dword [0x411c0c]
mov edx, dword [0x411c08]
add esp, 0xc
mov dword [0x41f6b0], ebp
mov dword [0x41218c], ebx
push eax
push ecx
push edx
mov dword [0x411cbc], ebx
mov dword [0x412200], ebx
mov dword [0x4121d8], ebx
mov dword [0x411b88], ebx
mov dword [0x411b9c], ebx
mov dword [0x412198], ebx
mov dword [0x411b84], ebx
call fcn.00408110
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret