Function at 0x404c70
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
lea esp, [esp - 0x38]
push ebx
push esi
mov dword [ebp - 4], 0
xor eax, eax
push fcn.00404c60
push ebp
push 0x40d9d0
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 0x400
call fcn.004106b0
test al, al
jne 0x404ca3
jmp 0x404d07
cmp dword [0x4823bc], 0
je 0x404cae
jmp 0x404cd8
mov eax, dword [0x4823b8]
cdq
mov ecx, 0x10000
idiv ecx
mov eax, edx
lea edx, [ebp - 4]
call fcn.004088c0
mov ecx, dword [ebp - 4]
mov edx, dword [0x4384d0]
mov eax, 0x4384d0
call fcn.00408610
cmp dword [0x4823bc], 1
je 0x404ce3
jmp 0x404cf2
mov eax, 0x4384d0
mov edx, 0
call fcn.004085d0
cmp dword [0x4823bc], 2
je 0x404cfd
jmp 0x404d07
mov eax, dword [0x4384d0]
call fcn.00402c10
call fcn.00410850
test al, al
jne 0x404d12
jmp 0x404d22
lea eax, [ebp - 4]
call fcn.00410880
mov eax, dword [ebp - 4]
call fcn.00402c10
call fcn.004107d0
test al, al
jne 0x404d40
jmp 0x404d2d
mov eax, 0x200
call fcn.004106b0
test al, al
jne 0x404d40
jmp 0x404df5
cmp dword [0x4823b8], 1
je 0x404d4e
jmp 0x404df5
call fcn.00410990
mov dword [0x413090], eax
jmp 0x404d5a
call fcn.004104f0
test al, al
jne 0x404d5a
jmp 0x404d65
cmp dword [0x413090], 0
jl 0x404d70
jmp 0x404d7a
mov dword [0x413090], 0
push dword [0x413184]
push dword [0x413180]
mov edx, dword [0x413090]
mov eax, edx
sar eax, 0x1f
push eax
push edx
call fcn.00407310
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], edx
fild qword [ebp - 0x10]
fild dword [0x4822e0]
fdivp st(1)
lea esp, [esp - 0xc]
fstp xword [esp]
call fcn.00406a10
mov dword [0x413190], eax
mov dword [0x413194], edx
push 0
push dword [0x413194]
push dword [0x413190]
push dword [0x413130]
call sub.bass.dll_BASS_ChannelSetPosition
cmp byte [0x411110], 0
jne 0x404de4
jmp 0x404df5
mov dword [0x4384a0], 0xffffffff
mov byte [0x438480], 1
push 0x10
call sub.user32.dll_GetKeyState
cmp ax, 0
setl byte [0x4131d0]
push 0x11
call sub.user32.dll_GetKeyState
cmp ax, 0
setl byte [0x4131c0]
mov eax, 0x27
call fcn.00410710
test al, al
jne 0x404e3c
jmp 0x404e29
mov eax, 0x25
call fcn.00410710
test al, al
jne 0x404e3c
jmp 0x404f5d
mov dword [0x4131e0], 1
cmp byte [0x4131c0], 0
jne 0x404e51
jmp 0x404e5b
mov dword [0x4131e0], 5
cmp byte [0x4131d0], 0
jne 0x404e66
jmp 0x404e70
mov dword [0x4131e0], 0x1e
mov eax, 0x27
call fcn.00410710
test al, al
jne 0x404e80
jmp 0x404e9e
mov eax, dword [0x4131e0]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], 0
fild qword [ebp - 0x10]
fadd qword [0x4131b0]
fstp qword [0x4131b0]
mov eax, 0x25
call fcn.00410710
test al, al
jne 0x404eae
jmp 0x404ecc
mov eax, dword [0x4131e0]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0
fild qword [ebp - 0x18]
fsubr qword [0x4131b0]
fstp qword [0x4131b0]
fld qword [0x4131a0]
fld qword [0x4131b0]
fcompp
fnstsw ax
sahf
jp 0x404ee1
ja 0x404ee3
jmp 0x404eeb
fldz
fstp qword [0x4131b0]
fldz
fld qword [0x4131b0]
fcompp
fnstsw ax
sahf
jp 0x404efc
jb 0x404efe
jmp 0x404f06
fldz
fstp qword [0x4131b0]
push dword [0x4131b4]
push dword [0x4131b0]
push dword [0x413130]
call sub.bass.dll_BASS_ChannelSeconds2Bytes
mov dword [0x413190], eax
mov dword [0x413194], edx
push 0
push dword [0x413194]
push dword [0x413190]
push dword [0x413130]
call sub.bass.dll_BASS_ChannelSetPosition
cmp byte [0x411110], 0
jne 0x404f4c
jmp 0x404f5d
mov dword [0x4384a0], 0xffffffff
mov byte [0x438480], 1
mov eax, 0x26
call fcn.00410710
test al, al
jne 0x404f8b
jmp 0x404f6d
mov eax, 0x28
call fcn.00410710
test al, al
jne 0x404f8b
jmp 0x404f7d
call fcn.00410830
test al, al
jne 0x404f8b
jmp 0x405049
mov eax, 0x26
call fcn.00410710
test al, al
jne 0x404fb5
jmp 0x404f9b
call fcn.00410830
test al, al
jne 0x404fa6
jmp 0x404fb3
cmp dword [0x4823b8], 0
jg 0x404fb1
jmp 0x404fb3
jmp 0x404fb5
jmp 0x404fc2
mov eax, dword [0x411230]
lea eax, [eax + 1]
mov dword [0x411230], eax
mov eax, 0x28
call fcn.00410710
test al, al
jne 0x404fec
jmp 0x404fd2
call fcn.00410830
test al, al
jne 0x404fdd
jmp 0x404fea
cmp dword [0x4823b8], 0
jl 0x404fe8
jmp 0x404fea
jmp 0x404fec
jmp 0x404ff9
mov eax, dword [0x411230]
lea eax, [eax - 1]
mov dword [0x411230], eax
cmp dword [0x411230], 0xe
ja 0x405004
jmp 0x40500e
mov dword [0x411230], 0xe
cmp dword [0x411230], 1
jb 0x405019
jmp 0x405023
mov dword [0x411230], 1
mov eax, dword [0x411230]
fld qword [eax*8 + 0x4111b8]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
lea esp, [esp - 4]
fstp dword [esp]
push 2
push dword [0x413130]
call sub.bass.dll_BASS_ChannelSetAttribute
mov eax, 0x21
call fcn.00410710
test al, al
jne 0x40508c
jmp 0x405059
mov eax, 0x22
call fcn.00410710
test al, al
jne 0x40508c
jmp 0x405069
mov eax, 0x24
call fcn.00410710
test al, al
jne 0x40508c
jmp 0x405079
mov eax, 0x23
call fcn.00410710
test al, al
jne 0x40508c
jmp 0x405126
mov eax, 0x21
call fcn.00410710
test al, al
jne 0x40509c
jmp 0x4050b4
mov eax, dword [0x438760]
lea eax, [eax - 1]
lea edx, [ebp - 4]
call fcn.00402220
mov eax, dword [ebp - 4]
call fcn.00402c10
mov eax, 0x22
call fcn.00410710
test al, al
jne 0x4050c4
jmp 0x4050dc
mov eax, dword [0x438760]
lea eax, [eax + 1]
lea edx, [ebp - 4]
call fcn.00402220
mov eax, dword [ebp - 4]
call fcn.00402c10
mov eax, 0x24
call fcn.00410710
test al, al
jne 0x4050ec
jmp 0x405101
lea edx, [ebp - 4]
mov eax, 1
call fcn.00402220
mov eax, dword [ebp - 4]
call fcn.00402c10
mov eax, 0x23
call fcn.00410710
test al, al
jne 0x405111
jmp 0x405126
mov eax, dword [0x438750]
lea edx, [ebp - 4]
call fcn.00402220
mov eax, dword [ebp - 4]
call fcn.00402c10
mov eax, 0xbb
call fcn.00410710
test al, al
jne 0x405149
jmp 0x405136
mov eax, 0xbd
call fcn.00410710
test al, al
jne 0x405149
jmp 0x4051e8
mov eax, 0xbb
call fcn.00410710
test al, al
jne 0x405159
jmp 0x405183
cmp dword [0x411260], 0x30
jl 0x405164
jmp 0x405183
fld qword [0x4373c0]
fmul qword [0x411250]
fstp qword [0x411250]
mov eax, dword [0x411260]
lea eax, [eax + 1]
mov dword [0x411260], eax
mov eax, 0xbd
call fcn.00410710
test al, al
jne 0x405193
jmp 0x4051bd
cmp dword [0x411260], 0xffffffd0
jg 0x40519e
jmp 0x4051bd
fld qword [0x4373c0]
fdivr qword [0x411250]
fstp qword [0x411250]
mov eax, dword [0x411260]
lea eax, [eax - 1]
mov dword [0x411260], eax
fld1
fsubr qword [0x411250]
fmul qword [0x412250]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
lea esp, [esp - 4]
fstp dword [esp]
push 0x10000
push dword [0x413130]
call sub.bass.dll_BASS_ChannelSetAttribute
mov eax, 0xdb
call fcn.00410710
test al, al
jne 0x40520b
jmp 0x4051f8
mov eax, 0xdd
call fcn.00410710
test al, al
jne 0x40520b
jmp 0x40529c
mov eax, 0xdd
call fcn.00410710
test al, al
jne 0x40521b
jmp 0x405245
cmp dword [0x4112a0], 0x3c
jl 0x405226
jmp 0x405245
fld qword [0x4373c0]
fmul qword [0x411290]
fstp qword [0x411290]
mov eax, dword [0x4112a0]
lea eax, [eax + 1]
mov dword [0x4112a0], eax
mov eax, 0xdb
call fcn.00410710
test al, al
jne 0x405255
jmp 0x40527f
cmp dword [0x4112a0], 0xffffffc4
jg 0x405260
jmp 0x40527f
fld qword [0x4373c0]
fdivr qword [0x411290]
fstp qword [0x411290]
mov eax, dword [0x4112a0]
lea eax, [eax - 1]
mov dword [0x4112a0], eax
fild dword [0x4112a0]
lea esp, [esp - 4]
fstp dword [esp]
push 0x10001
push dword [0x413130]
call sub.bass.dll_BASS_ChannelSetAttribute
mov eax, 0x6b
call fcn.00410710
test al, al
jne 0x4052bf
jmp 0x4052ac
mov eax, 0x6d
call fcn.00410710
test al, al
jne 0x4052bf
jmp 0x4053e2
mov eax, 0x6b
call fcn.00410710
test al, al
jne 0x4052cf
jmp 0x4052ee
fld qword [0x4373c0]
fmul qword [0x411270]
fstp qword [0x411270]
mov eax, dword [0x411280]
lea eax, [eax + 1]
mov dword [0x411280], eax
mov eax, 0x6d
call fcn.00410710
test al, al
jne 0x4052fe
jmp 0x40531d
fld qword [0x4373c0]
fdivr qword [0x411270]
fstp qword [0x411270]
mov eax, dword [0x411280]
lea eax, [eax - 1]
mov dword [0x411280], eax
fld dword [0x411240]
fmul qword [0x411270]
mov eax, dword [0x4130b8]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], 0
fild qword [ebp - 0x28]
fcompp
fnstsw ax
sahf
jp 0x405344
jb 0x405346
jmp 0x405365
fld qword [0x4373c0]
fdivr qword [0x411270]
fstp qword [0x411270]
mov eax, dword [0x411280]
lea eax, [eax - 1]
mov dword [0x411280], eax
fld dword [0x411240]
fmul qword [0x411270]
mov eax, dword [0x4130b4]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], 0
fild qword [ebp - 0x30]
fcompp
fnstsw ax
sahf
jp 0x40538c
ja 0x40538e
jmp 0x4053ad
fld qword [0x4373c0]
fmul qword [0x411270]
fstp qword [0x411270]
mov eax, dword [0x411280]
lea eax, [eax + 1]
mov dword [0x411280], eax
fld dword [0x411240]
fmul qword [0x411270]
lea esp, [esp - 0xc]
fstp xword [esp]
call fcn.00406a10
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
fild qword [ebp - 0x38]
lea esp, [esp - 4]
fstp dword [esp]
push 1
push dword [0x413130]
call sub.bass.dll_BASS_ChannelSetAttribute
mov eax, 0x72
call fcn.00410710
test al, al
jne 0x405402
jmp 0x4053f2
mov eax, 0x73
call fcn.00410710
test al, al
jne 0x405402
jmp 0x405451
mov eax, 0x72
call fcn.00410710
test al, al
jne 0x405412
jmp 0x40541f
mov eax, dword [0x4111b0]
lea eax, [eax - 1]
mov dword [0x4111b0], eax
mov eax, 0x73
call fcn.00410710
test al, al
jne 0x40542f
jmp 0x40543c
mov eax, dword [0x4111b0]
lea eax, [eax + 1]
mov dword [0x4111b0], eax
cmp dword [0x4111b0], 0
je 0x405447
jmp 0x405451
mov dword [0x4111b0], 1
mov eax, 0x74
call fcn.00410710
test al, al
jne 0x405474
jmp 0x405461
mov eax, 0x75
call fcn.00410710
test al, al
jne 0x405474
jmp 0x4054d9
mov eax, 0x75
call fcn.00410710
test al, al
jne 0x405484
jmp 0x405490
mov eax, dword [0x411190]
shl eax, 1
mov dword [0x411190], eax
mov eax, 0x74
call fcn.00410710
test al, al
jne 0x4054a0
jmp 0x4054ac
mov eax, dword [0x411190]
shr eax, 1
mov dword [0x411190], eax
cmp dword [0x411190], 1
jb 0x4054b7
jmp 0x4054c1
mov dword [0x411190], 1
cmp dword [0x411190], 0x200
ja 0x4054cf
jmp 0x4054d9
mov dword [0x411190], 0x200
mov eax, 0x76
call fcn.00410710
test al, al
jne 0x4054fc
jmp 0x4054e9
mov eax, 0x77
call fcn.00410710
test al, al
jne 0x4054fc
jmp 0x405591
mov eax, 0x76
call fcn.00410710
test al, al
jne 0x40550c
jmp 0x40554e
cmp dword [0x4110e0], 0xa
ja 0x405517
jmp 0x40554e
mov esi, dword [0x4110e0]
mov ebx, 0
push 0
push 0x3c
mov edx, dword [0x4110e0]
mov eax, 0
sub edx, 1
sbb eax, 0
push eax
push edx
call fcn.00406a50
add eax, 1
adc edx, 0
sub esi, eax
sbb ebx, edx
mov dword [0x4110e0], esi
mov eax, 0x77
call fcn.00410710
test al, al
jne 0x40555e
jmp 0x40558a
cmp dword [0x4110e0], 0x168
jb 0x40556c
jmp 0x40558a
mov edx, dword [0x4110e0]
mov eax, 0x88888889
mul edx
shr edx, 5
lea eax, [edx + 1]
add eax, dword [0x4110e0]
mov dword [0x4110e0], eax
mov byte [0x413050], 1
mov eax, 0x7b
call fcn.00410710
test al, al
jne 0x4055a1
jmp 0x4055c3
mov eax, dword [0x4131f0]
xor eax, 4
mov dword [0x4131f0], eax
mov eax, dword [0x438760]
lea edx, [ebp - 4]
call fcn.00402220
mov eax, dword [ebp - 4]
call fcn.00402c10
mov eax, 0x7a
call fcn.00410710
test al, al
jne 0x4055d3
jmp 0x4055e1
cmp byte [0x411110], 0
sete byte [0x411110]
mov eax, 0x20
call fcn.00410710
test al, al
jne 0x4055fc
jmp 0x4055f1
call fcn.00410810
test al, al
jne 0x4055fc
jmp 0x40561a
push dword [0x413130]
call sub.bass.dll_BASS_ChannelPause
test eax, eax
je 0x40560d
jmp 0x40561a
push 0
push dword [0x413130]
call sub.bass.dll_BASS_ChannelPlay
mov eax, 0x71
call fcn.00410710
test al, al
jne 0x40562a
jmp 0x40563c
mov edx, dword [0x4111a0]
mov eax, 0x20
sub eax, edx
mov dword [0x4111a0], eax
mov eax, 0x70
call fcn.00410710
test al, al
jne 0x40564c
jmp 0x405656
mov eax, 0x404b80
call fcn.0040e9c0
mov eax, 0x1b
call fcn.00410710
test al, al
jne 0x405666
jmp 0x40566b
call fcn.0040ee60
xor eax, eax
pop edx
add esp, 0xc
mov dword fs:[eax], edx
mov eax, ebp
call fcn.00404c60
pop esi
pop ebx
leave
ret