Function at 0x100cadc0
Capabilities:
Check for time delay via gettickcount
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
push ebx
xor bl, bl
push esi
push edi
cmp byte [0x118cee69], bl
jne 0x100cae18
cmp byte [0x118d9d72], 1
jne 0x100cb75f
lea eax, [ebp - 0x30]
mov ecx, 8
push eax
mov dword [ebp - 0x30], 0x2ad308c1
mov dword [ebp - 0x2c], 0x6f
call fcn.10100800
add esp, 4
mov byte [0x118d9d72], bl
mov byte [0x118d9d71], bl
mov byte [0x118d9d70], bl
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xd
mov ecx, 0x861110
call ecx
mov edx, 0x85ec20
mov ecx, eax
call edx
test al, al
jne 0x100cae40
push 0xd
mov eax, 0x861110
call eax
mov edx, 0x85ec50
mov ecx, eax
call edx
push 0x10
mov eax, 0x861110
call eax
mov edx, 0x85ec20
mov ecx, eax
call edx
cmp al, 1
jne 0x100cae68
push 0x10
mov eax, 0x861110
call eax
mov edx, 0x85f9a0
mov ecx, eax
call edx
mov ebx, dword [0x10a88900]
fld dword [ebx + 0x18]
push 0x1e4
fstp dword [ebp - 0x10]
mov ecx, 0x108f2208
fld dword [ebx + 0x1c]
fstp dword [ebp - 0x20]
fld dword [ebx]
fstp dword [ebp - 0x14]
fld dword [ebx + 4]
fstp dword [ebp - 0x18]
call fcn.10034f20
fld dword [ebp - 0x14]
add esp, 4
fadd qword [0x1013f600]
fstp dword [ebp - 4]
fld dword [ebp - 0x18]
fadd qword [0x1013f750]
fstp dword [ebp - 8]
fld dword [ebp - 4]
call fcn.1012e5b0
fld dword [ebp - 8]
push 0x108f2460
push 0
push 0
push 0
push 0xeba000ff
mov esi, eax
call fcn.1012e5b0
push eax
mov eax, dword [0xe8c58c]
push esi
push eax
mov cl, 1
call fcn.10025780
fld dword [ebp - 8]
fadd qword [0x1013f600]
add esp, 0xc
mov eax, 0x96
fst qword [ebp - 0x30]
fld dword [ebp - 0x10]
fsub qword [0x1013f750]
fst qword [ebp - 0x38]
fmul qword [0x1013f510]
fadd dword [ebp - 4]
fst qword [ebp - 0x40]
fsub qword [0x101412c8]
fst qword [ebp - 0x28]
fstp dword [ebp - 0x10]
fldz
fstp dword [esp + 0x10]
fld dword [0x1013f7f4]
fst dword [esp + 0xc]
fstp dword [esp + 8]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [esp + 4]
fld dword [ebp - 0x10]
fstp dword [esp]
call fcn.10065df0
push 0x118d9d73
mov ecx, 0x861110
call ecx
mov ecx, dword [eax + 0x24]
mov edx, 0x7e1b10
call edx
fld qword [0x1013f8f0]
mov ebx, dword [sym.imp.USER32.dll_GetKeyState]
mov edi, eax
movzx eax, word [edi]
test ax, ax
jle 0x100cb00d
fld dword [0x10140b00]
movsx edx, byte [edi + 0x17]
push ecx
movsx ecx, byte [edi + 0x18]
fstp dword [esp]
fld dword [0x1013f7f4]
push ecx
mov ecx, dword [edi + 2]
push edx
push ecx
sub esp, 0x10
cwde
fst dword [esp + 0xc]
fstp dword [esp + 8]
fld qword [ebp - 0x30]
fadd st(1)
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [esp + 4]
fadd qword [ebp - 0x28]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [esp]
call fcn.100c7b80
fld qword [ebp - 0x30]
push 0x32
push 0x32
call fcn.1012e5b0
fld qword [ebp - 0x28]
push eax
call fcn.1012e5b0
push eax
mov edx, 0x790b10
call edx
add esp, 0x10
cmp al, 1
jne 0x100cb00f
mov dword [0x108c837c], edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
add eax, 0x32
push 2
mov dword [0x10a76f44], eax
call ebx
mov ecx, 0x8000
test cx, ax
je 0x100cb00f
push 0
call fcn.100cad70
add esp, 4
jmp 0x100cb00f
fstp st(0)
fld qword [ebp - 0x38]
push 0x82
push 0x9e
fstp dword [ebp - 0x14]
push 0x9e
push 0x9e
mov edx, 0x412d20
call edx
fldz
add esp, 0x10
push eax
sub esp, 0x18
fst dword [esp + 0x14]
mov eax, 0x790f20
fstp dword [esp + 0x10]
fld1
fstp dword [esp + 0xc]
fld dword [ebp - 0x14]
fstp dword [esp + 8]
fld dword [ebp - 8]
fadd qword [0x1013f758]
fstp dword [ebp - 0xc]
fld dword [ebp - 0xc]
fstp dword [esp + 4]
fld dword [ebp - 4]
fstp dword [esp]
push 0x11760
call eax
fld dword [ebp - 8]
fadd qword [0x10140960]
add esp, 0x20
push 0x108f26b8
push 0
push 0
fstp dword [ebp - 8]
fld dword [ebp - 8]
push 0
push 0xeba000ff
call fcn.1012e5b0
mov ecx, dword [0xe8c58c]
push eax
push esi
push ecx
mov cl, 1
call fcn.10025780
fld dword [ebp - 8]
fadd qword [0x1013f600]
add esp, 0xc
mov eax, 0x96
fst qword [ebp - 0x30]
fstp dword [ebp - 0xc]
fld dword [ebp - 4]
fadd qword [0x1013f7b0]
fst qword [ebp - 0x38]
fldz
fstp dword [esp + 0x10]
fld dword [0x1013f7f4]
fst dword [esp + 0xc]
fstp dword [esp + 8]
fld dword [ebp - 0xc]
fstp dword [esp + 4]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fstp dword [esp]
call fcn.10065df0
push 0x118d9d83
mov edx, 0x861110
call edx
mov ecx, dword [eax + 0x24]
mov edx, 0x7e1b10
call edx
mov edi, eax
movzx eax, word [edi]
test ax, ax
jle 0x100cb1bc
fld dword [0x10140b00]
movsx edx, byte [edi + 0x17]
push ecx
movsx ecx, byte [edi + 0x18]
fstp dword [esp]
fld dword [0x1013f7f4]
push ecx
mov ecx, dword [edi + 2]
push edx
push ecx
sub esp, 0x10
cwde
fst dword [esp + 0xc]
fstp dword [esp + 8]
fld qword [ebp - 0x30]
fld qword [0x1013f8f0]
fadd st(1), st(0)
fxch st(1)
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fstp dword [esp + 4]
fadd qword [ebp - 0x38]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fstp dword [esp]
call fcn.100c7b80
fld qword [ebp - 0x30]
push 0x32
push 0x32
call fcn.1012e5b0
fld qword [ebp - 0x38]
push eax
call fcn.1012e5b0
push eax
mov edx, 0x790b10
call edx
add esp, 0x10
cmp al, 1
jne 0x100cb1bc
mov dword [0x108c837c], edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
add eax, 0x32
push 2
mov dword [0x10a76f44], eax
call ebx
mov ecx, 0x8000
test cx, ax
je 0x100cb1bc
push 1
call fcn.100cad70
add esp, 4
fldz
sub esp, 0x14
fstp dword [esp + 0x10]
mov eax, 0x96
fld dword [0x1013f7f4]
fst dword [esp + 0xc]
fstp dword [esp + 8]
fld dword [ebp - 0xc]
fstp dword [esp + 4]
fld dword [ebp - 0x10]
fstp dword [esp]
call fcn.10065df0
push 0x118d9d93
mov edx, 0x861110
call edx
mov ecx, dword [eax + 0x24]
mov edx, 0x7e1b10
call edx
mov edi, eax
movzx eax, word [edi]
test ax, ax
jle 0x100cb2b0
fld dword [0x10140b00]
movsx edx, byte [edi + 0x17]
push ecx
movsx ecx, byte [edi + 0x18]
fstp dword [esp]
fld dword [0x1013f7f4]
push ecx
mov ecx, dword [edi + 2]
push edx
push ecx
sub esp, 0x10
cwde
fst dword [esp + 0xc]
fstp dword [esp + 8]
fld qword [ebp - 0x30]
fld qword [0x1013f8f0]
fadd st(1), st(0)
fxch st(1)
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fstp dword [esp + 4]
fadd qword [ebp - 0x28]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fstp dword [esp]
call fcn.100c7b80
fld qword [ebp - 0x30]
push 0x32
push 0x32
call fcn.1012e5b0
fld qword [ebp - 0x28]
push eax
call fcn.1012e5b0
push eax
mov edx, 0x790b10
call edx
add esp, 0x10
cmp al, 1
jne 0x100cb2b0
mov dword [0x108c837c], edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
add eax, 0x32
push 2
mov dword [0x10a76f44], eax
call ebx
mov ecx, 0x8000
test cx, ax
je 0x100cb2b0
push 2
call fcn.100cad70
add esp, 4
fld qword [ebp - 0x40]
sub esp, 0x14
fadd qword [0x1013fb00]
mov eax, 0x96
fst qword [ebp - 0x38]
fldz
fstp dword [esp + 0x10]
fld dword [0x1013f7f4]
fst dword [esp + 0xc]
fstp dword [esp + 8]
fld dword [ebp - 0xc]
fstp dword [esp + 4]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fstp dword [esp]
call fcn.10065df0
push 0x118d9da3
mov edx, 0x861110
call edx
mov ecx, dword [eax + 0x24]
mov edx, 0x7e1b10
call edx
mov edi, eax
movzx eax, word [edi]
test ax, ax
jle 0x100cb3b5
fld dword [0x10140b00]
movsx edx, byte [edi + 0x17]
push ecx
movsx ecx, byte [edi + 0x18]
fstp dword [esp]
fld dword [0x1013f7f4]
push ecx
mov ecx, dword [edi + 2]
push edx
push ecx
sub esp, 0x10
cwde
fst dword [esp + 0xc]
fstp dword [esp + 8]
fld qword [ebp - 0x30]
fadd qword [0x1013f8f0]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fstp dword [esp + 4]
fld qword [ebp - 0x38]
fadd qword [0x1013f6c0]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fstp dword [esp]
call fcn.100c7b80
fld qword [ebp - 0x30]
push 0x32
push 0x32
call fcn.1012e5b0
fld qword [ebp - 0x38]
push eax
call fcn.1012e5b0
push eax
mov edx, 0x790b10
call edx
add esp, 0x10
cmp al, 1
jne 0x100cb3b5
mov dword [0x108c837c], edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
add eax, 0x32
push 2
mov dword [0x10a76f44], eax
call ebx
mov ecx, 0x8000
test cx, ax
je 0x100cb3b5
push 3
call fcn.100cad70
add esp, 4
push 0x82
push 0x9e
push 0x9e
push 0x9e
mov edx, 0x412d20
call edx
fldz
add esp, 0x10
push eax
sub esp, 0x18
fst dword [esp + 0x14]
mov eax, 0x790f20
fstp dword [esp + 0x10]
fld1
fstp dword [esp + 0xc]
fld dword [ebp - 0x14]
fstp dword [esp + 8]
fld dword [ebp - 8]
fadd qword [0x1013f758]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fstp dword [esp + 4]
fld dword [ebp - 4]
fstp dword [esp]
push 0x11760
call eax
fld dword [ebp - 8]
fadd qword [0x10140960]
add esp, 0x20
push 0x108f2910
push 0
push 0
fstp dword [ebp - 8]
fld dword [ebp - 8]
push 0
push 0xeba000ff
call fcn.1012e5b0
mov ecx, dword [0xe8c58c]
push eax
push esi
push ecx
mov cl, 1
call fcn.10025780
fld dword [ebp - 8]
fadd qword [0x1013f600]
add esp, 0xc
mov eax, 0x96
fst qword [ebp - 0x38]
fldz
fstp dword [esp + 0x10]
fld dword [0x1013f7f4]
fst dword [esp + 0xc]
fstp dword [esp + 8]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fstp dword [esp + 4]
fld dword [ebp - 0x10]
fstp dword [esp]
call fcn.10065df0
push 0x118d9db3
mov edx, 0x861110
call edx
mov ecx, dword [eax + 0x24]
mov edx, 0x7e1b10
call edx
mov edi, eax
movzx eax, word [edi]
test ax, ax
jle 0x100cb551
fld dword [0x10140b00]
movsx edx, byte [edi + 0x17]
push ecx
movsx ecx, byte [edi + 0x18]
fstp dword [esp]
fld dword [0x1013f7f4]
push ecx
mov ecx, dword [edi + 2]
push edx
push ecx
sub esp, 0x10
cwde
fst dword [esp + 0xc]
fstp dword [esp + 8]
fld qword [ebp - 0x38]
fld qword [0x1013f8f0]
fadd st(1), st(0)
fxch st(1)
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fstp dword [esp + 4]
fadd qword [ebp - 0x28]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fstp dword [esp]
call fcn.100c7b80
fld qword [ebp - 0x38]
push 0x32
push 0x32
call fcn.1012e5b0
fld qword [ebp - 0x28]
push eax
call fcn.1012e5b0
push eax
mov edx, 0x790b10
call edx
add esp, 0x10
cmp al, 1
jne 0x100cb551
mov dword [0x108c837c], edi
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
add eax, 0x32
push 2
mov dword [0x10a76f44], eax
call ebx
mov ecx, 0x8000
test cx, ax
je 0x100cb557
push 4
call fcn.100cad70
add esp, 4
jmp 0x100cb557
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0x82
push 0x9e
push 0x9e
push 0x9e
mov edx, 0x412d20
call edx
fldz
add esp, 0x10
push eax
sub esp, 0x18
fst dword [esp + 0x14]
mov eax, 0x790f20
fstp dword [esp + 0x10]
fld1
fstp dword [esp + 0xc]
fld dword [ebp - 0x14]
fstp dword [esp + 8]
fld dword [ebp - 8]
fadd qword [0x1013f758]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fstp dword [esp + 4]
fld dword [ebp - 4]
fstp dword [esp]
push 0x11760
call eax
fld dword [ebp - 8]
fadd qword [0x10140960]
fstp dword [ebp - 4]
fld dword [ebp - 4]
fadd qword [0x1013f6d0]
call fcn.1012e5b0
mov ecx, dword [0xe8c588]
push 0x108f2b68
push 0
push 0
push 0
push 0xffffffffffffffff
push eax
push esi
push ecx
mov cl, 1
call fcn.10025780
fld dword [ebp - 4]
fadd qword [0x1013f580]
add esp, 0x40
call fcn.1012e5b0
mov edx, dword [0xe8c588]
push 0x108f2dc0
push 0
push 0
push 0
push 0xffffffffffffffff
push eax
push esi
push edx
mov cl, 1
call fcn.10025780
fld dword [ebp - 4]
fadd qword [0x1013f600]
call fcn.1012e5b0
push 0x108f3018
push 0
push 0
push 0
push 0x3ffc0ff
push eax
mov eax, dword [0xe8c588]
push esi
push eax
mov cl, 1
call fcn.10025780
fld dword [ebp - 4]
fadd qword [0x1013fa48]
add esp, 0x40
call fcn.1012e5b0
push 0x108f3270
push 0
push 0
push 0
push 0xb752ffff
mov ecx, dword [0xe8c588]
push eax
push esi
push ecx
mov cl, 1
call fcn.10025780
fldz
fstp dword [esp + 0x1c]
add esp, 0x1c
fld dword [0x10140638]
push 0x108f2208
push 0xc
sub esp, 0xc
fstp dword [esp + 8]
fld dword [ebp - 0x18]
fadd dword [ebp - 0x20]
fsub qword [0x1013f600]
fsub qword [0x1013fd80]
fstp dword [ebp - 0x20]
fld dword [ebp - 0x20]
fstp dword [esp + 4]
fld qword [ebp - 0x40]
fsub qword [0x10140220]
fstp dword [ebp - 0x20]
fld dword [ebp - 0x20]
fstp dword [esp]
push 0x116dc850
call fcn.10066220
test al, al
je 0x100cb72f
cmp byte [0x118d9d70], 0
je 0x100cb718
mov byte [0x118d9d71], 1
call edi
sub eax, dword [0x118cee64]
cmp eax, 0x12c
jbe 0x100cb72f
lea edx, [ebp - 0x30]
mov ecx, 8
push edx
mov dword [ebp - 0x30], 0x2dd308c1
mov dword [ebp - 0x2c], 0x71
call fcn.10100800
add esp, 4
call edi
mov dword [0x118cee64], eax
jmp 0x100cb72f
push 0x108f1fb0
push str.Error
mov ebx, 0x116dc850
call fcn.10065670
add esp, 8
mov al, byte [0x118d9d71]
test al, al
je 0x100cb75f
fld dword [ebp - 8]
push 3
fadd qword [0x1013f6d8]
call fcn.1012e5b0
fld qword [ebp - 0x28]
push eax
call fcn.1012e5b0
push eax
mov eax, 3
call fcn.100ca9d0
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret