Function at 0x401516
Capabilities:
Log keystrokes via polling

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push ecx
sub esp, 0xa4
call sym.___main
mov dword [esp], 0
call sym._GetDC_4
sub esp, 4
mov dword [ebp - 0x24], eax
mov dword [esp + 4], 0x7f03
mov dword [esp], 0
call sym._LoadIconA_8
sub esp, 8
mov dword [ebp - 0x28], eax
mov dword [esp + 4], 0x7f01
mov dword [esp], 0
call sym._LoadIconA_8
sub esp, 8
mov dword [ebp - 0x2c], eax
mov dword [esp + 4], 0x7f04
mov dword [esp], 0
call sym._LoadIconA_8
sub esp, 8
mov dword [ebp - 0x30], eax
mov dword [esp + 4], 0x7f00
mov dword [esp], 0
call sym._LoadIconA_8
sub esp, 8
mov dword [ebp - 0x34], eax
mov dword [esp], 0
call sym._GetSystemMetrics_4
sub esp, 4
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
mov dword [ebp - 0x38], eax
mov dword [esp], 1
call sym._GetSystemMetrics_4
sub esp, 4
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0xc], 0x1f4
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x1c], 0xc8
mov dword [ebp - 0x20], 0
mov dword [esp], 0
call sym._time
mov dword [esp], eax
call sym._srand
fild dword [ebp - 0xc]
fstp qword [ebp - 0x78]
fild dword [ebp - 0x10]
fld qword [0x406068]
fmulp st(1)
fld qword [0x406070]
fdivp st(1)
fstp qword [esp]
call sym._cos
fmul qword [ebp - 0x78]
fnstcw word [ebp - 0x6a]
movzx eax, word [ebp - 0x6a]
mov ah, 0xc
mov word [ebp - 0x6c], ax
fldcw word [ebp - 0x6c]
fistp dword [ebp - 0x70]
fldcw word [ebp - 0x6a]
mov edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x38]
add eax, edx
mov dword [ebp - 0x40], eax
fild dword [ebp - 0xc]
fstp qword [ebp - 0x78]
fild dword [ebp - 0x10]
fld qword [0x406068]
fmulp st(1)
fld qword [0x406070]
fdivp st(1)
fstp qword [esp]
call sym._sin
fmul qword [ebp - 0x78]
fnstcw word [ebp - 0x6a]
movzx eax, word [ebp - 0x6a]
mov ah, 0xc
mov word [ebp - 0x6c], ax
fldcw word [ebp - 0x6c]
fistp dword [ebp - 0x70]
fldcw word [ebp - 0x6a]
mov edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x3c]
add eax, edx
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x28]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x44]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x40]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._DrawIcon_16
sub esp, 0x10
fild dword [ebp - 0xc]
fstp qword [ebp - 0x78]
fild dword [ebp - 0x10]
fld qword [0x406068]
fmulp st(1)
fld qword [0x406070]
fdivp st(1)
fstp qword [esp]
call sym._cos
fmul qword [ebp - 0x78]
fnstcw word [ebp - 0x6a]
movzx eax, word [ebp - 0x6a]
mov ah, 0xc
mov word [ebp - 0x6c], ax
fldcw word [ebp - 0x6c]
fistp dword [ebp - 0x70]
fldcw word [ebp - 0x6a]
mov edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x38]
sub eax, edx
mov dword [ebp - 0x48], eax
fild dword [ebp - 0xc]
fstp qword [ebp - 0x78]
fild dword [ebp - 0x10]
fld qword [0x406068]
fmulp st(1)
fld qword [0x406070]
fdivp st(1)
fstp qword [esp]
call sym._sin
fmul qword [ebp - 0x78]
fnstcw word [ebp - 0x6a]
movzx eax, word [ebp - 0x6a]
mov ah, 0xc
mov word [ebp - 0x6c], ax
fldcw word [ebp - 0x6c]
fistp dword [ebp - 0x70]
fldcw word [ebp - 0x6a]
mov edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x3c]
sub eax, edx
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x14], 0x13
jle 0x4017ca
call sym._rand
mov edx, eax
mov eax, edx
sar eax, 0x1f
shr eax, 0x1a
add edx, eax
and edx, 0x3f
sub edx, eax
mov eax, edx
add eax, 0x10
mov dword [ebp - 0x50], eax
mov dword [esp + 0x20], 3
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov eax, dword [ebp - 0x50]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x50]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x4c]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x48]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._DrawIconEx_36
sub esp, 0x24
mov dword [ebp - 0x14], 0
jmp 0x4017ed
mov eax, dword [ebp - 0x2c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x4c]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x48]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._DrawIcon_16
sub esp, 0x10
fild dword [ebp - 0x1c]
fstp qword [ebp - 0x78]
fild dword [ebp - 0x18]
fld qword [0x406068]
fmulp st(1)
fld qword [0x406070]
fdivp st(1)
fstp qword [esp]
call sym._cos
fmul qword [ebp - 0x78]
fnstcw word [ebp - 0x6a]
movzx eax, word [ebp - 0x6a]
mov ah, 0xc
mov word [ebp - 0x6c], ax
fldcw word [ebp - 0x6c]
fistp dword [ebp - 0x70]
fldcw word [ebp - 0x6a]
mov edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x38]
add eax, edx
mov dword [ebp - 0x54], eax
fild dword [ebp - 0x1c]
fstp qword [ebp - 0x78]
fild dword [ebp - 0x18]
fld qword [0x406068]
fmulp st(1)
fld qword [0x406070]
fdivp st(1)
fstp qword [esp]
call sym._sin
fmul qword [ebp - 0x78]
fnstcw word [ebp - 0x6a]
movzx eax, word [ebp - 0x6a]
mov ah, 0xc
mov word [ebp - 0x6c], ax
fldcw word [ebp - 0x6c]
fistp dword [ebp - 0x70]
fldcw word [ebp - 0x6a]
mov edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x3c]
add eax, edx
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x30]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x58]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x54]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._DrawIcon_16
sub esp, 0x10
add dword [ebp - 0x18], 0x14
call sym._rand
mov edx, eax
mov eax, edx
sar eax, 0x1f
shr eax, 0x1e
add edx, eax
and edx, 3
sub edx, eax
mov eax, edx
sub eax, 2
add dword [ebp - 0x1c], eax
mov dword [ebp - 0x5c], 0x20
mov eax, dword [ebp - 0x5c]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
neg eax
mov edx, eax
mov eax, dword [ebp - 0x38]
add eax, edx
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x5c]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
neg eax
mov edx, eax
mov eax, dword [ebp - 0x3c]
add eax, edx
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x20]
mov dword [esp + 0x20], 3
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0x5c]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x5c]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x34]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x64]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x60]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._DrawIconEx_36
sub esp, 0x24
add dword [ebp - 0x20], 0xa
add dword [ebp - 0x10], 0xa
sub dword [ebp - 0xc], 2
add dword [ebp - 0x14], 1
mov dword [esp], 0x32
call sym._Sleep_4
sub esp, 4
mov dword [esp], 0x1b
call sym._GetAsyncKeyState_4
sub esp, 4
test ax, ax
setne al
test al, al
jne 0x401978
jmp 0x40161d
nop
mov eax, dword [ebp - 0x24]
mov dword [esp + 4], eax
mov dword [esp], 0
call sym._ReleaseDC_8
sub esp, 8
mov eax, 0
mov ecx, dword [ebp - 4]
leave
lea esp, [ecx - 4]
ret