Function at 0x1013bf00
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, 0x101871d9
call fcn.10166ba4
sub esp, 0x120
mov eax, dword [0x101cb280]
mov dword [ebp - 0x10], eax
mov eax, dword [0x10a1f7a4]
mov al, byte [eax + 0x58]
cmp al, 1
push ebx
push esi
push edi
mov ebx, ecx
je case.default.0x1013c9d8
push 0
mov esi, 0x10a60cc8
push 0
mov ecx, esi
call fcn.1003a17b
push 0x1018dc66
mov ecx, esi
call fcn.1003a0a7
mov ecx, esi
call fcn.10039e8f
mov ecx, dword [0x10a1f804]
call fcn.10060ceb
mov ecx, dword [0x10a1f6b0]
mov dl, byte [ecx + 0x2434]
test dl, dl
jne 0x1013bfbc
mov ecx, dword [0x10a1f7a4]
mov esi, 0xf7
push esi
call fcn.100951ef
test al, al
je 0x1013bf8c
mov ecx, dword [0x10a1f7a4]
push esi
call fcn.1009c3d3
cmp dword [ebp + 8], 0x49
je 0x1013bfac
cmp dword [ebp + 8], 0x4d
jne case.default.0x1013c9d8
mov ecx, dword [0x10a1f750]
call fcn.100c7693
jmp case.default.0x1013c9d8
mov ecx, dword [0x10a1f6ec]
call fcn.10062aec
jmp case.default.0x1013c9d8
mov edi, dword [ebp + 8]
cmp edi, 0x4f
push 2
pop esi
ja 0x1013c32b
je 0x1013c31b
cmp edi, 0x48
ja 0x1013c25c
je 0x1013c239
mov eax, edi
sub eax, 0x2d
je 0x1013c22a
sub eax, 0x15
je 0x1013c21a
dec eax
je 0x1013c1fd
sub eax, esi
je 0x1013c191
dec eax
je 0x1013c02b
dec eax
jne 0x1013c646
cmp word [0x10a1f7b0], 0x1e
je 0x1013c646
mov ecx, dword [0x10a1f7e4]
call fcn.1007c2ef
jmp 0x1013c646
mov ecx, dword [0x10a1f7a4]
push 0xe8
call fcn.100951ef
test al, al
jne case.default.0x1013c9d8
mov ecx, dword [0x10a1f7a4]
push 0xe9
call fcn.100951ef
test al, al
jne case.default.0x1013c9d8
mov ecx, dword [0x10a1f7a4]
push 0xe1
call fcn.100951ef
test al, al
jne case.default.0x1013c9d8
mov ecx, dword [0x10a1f6b0]
call fcn.1010fff5
test al, al
je case.default.0x1013c9d8
mov eax, dword [0x10a1f6b0]
cmp byte [eax + 0x13d], 0
jne case.default.0x1013c9d8
cmp byte [eax + 0x17c], 0
jne case.default.0x1013c9d8
mov ecx, dword [0x10a1f6d0]
call fcn.100b89bc
mov ecx, dword [0x10a1f6d0]
mov esi, eax
push esi
call fcn.100b854e
cmp eax, 0x1cb7
je 0x1013c646
cmp eax, 0x1cb8
je 0x1013c646
mov ecx, dword [0x10a1f6c0]
push 1
push eax
call fcn.1000570b
test al, al
je 0x1013c14c
lea ecx, [ebp - 0x110]
call fcn.101521d0
mov ecx, dword [0x10a1f6c4]
and dword [ebp - 4], 0
lea eax, [ebp - 0x110]
push eax
push 0x5dd
call fcn.10043240
lea ecx, [ebp - 0x110]
call fcn.10152000
sub esp, 0x100
mov ecx, esp
mov dword [ebp - 0x114], esp
push eax
call fcn.101521f0
mov ecx, dword [0x10a1f668]
push 0x1e
call fcn.1013b320
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x110]
call fcn.101521c0
jmp 0x1013c646
test esi, esi
je 0x1013c646
mov ecx, dword [0x10a1f6d0]
push esi
lea eax, [ebp + 8]
push eax
call fcn.100b7f64
mov ecx, dword [0x10a1f6d4]
push esi
call fcn.100b38d8
mov ecx, dword [0x10a1f6b0]
push 0
push dword [ebp + 8]
call fcn.10116296
mov ecx, dword [0x10a1f6d0]
push esi
call fcn.100b8af9
jmp 0x1013c646
call fcn.1011003f
test al, al
je case.default.0x1013c9d8
mov ecx, dword [0x10a1f6b0]
cmp byte [ecx + 0x13d], 0
jne case.default.0x1013c9d8
mov eax, dword [ecx + 0x23f0]
and eax, 0x400
xor edx, edx
or eax, edx
jne case.default.0x1013c9d8
cmp byte [ecx + 0x17c], dl
je 0x1013c1e1
mov ecx, dword [ecx + 0x23cc]
cmp ecx, 1
je 0x1013c1e1
cmp ecx, esi
jne 0x1013c646
mov ecx, dword [0x10a1f7ec]
call fcn.1005e1b9
mov ecx, dword [0x10a1f6b8]
push eax
call fcn.1011f58a
jmp 0x1013c429
cmp byte [0x10a1f57f], 0
jne 0x1013c646
mov ecx, dword [0x10a1f7ec]
call fcn.1005db5d
jmp 0x1013c646
mov ecx, dword [0x10a1f6b8]
call fcn.1011e890
jmp 0x1013c646
mov ecx, 0x10a20350
call fcn.10128139
jmp 0x1013c646
mov ecx, dword [0x10a1f7e0]
cmp byte [ecx + 0x1d58], 0
je 0x1013c252
call fcn.10100506
jmp 0x1013c646
call fcn.101004ee
jmp 0x1013c646
mov eax, edi
sub eax, 0x49
je 0x1013c30b
dec eax
je 0x1013c2de
dec eax
je 0x1013c2c4
dec eax
je 0x1013c2ac
dec eax
je 0x1013c29c
dec eax
jne 0x1013c646
mov eax, dword [0x10a1f760]
cmp byte [eax + 4], 1
jne 0x1013c298
push 5
push 0
push 1
call fcn.100fe6ba
add esp, 0xc
jmp 0x1013c646
push 4
jmp 0x1013c287
mov ecx, dword [0x10a1f750]
call fcn.100c7693
jmp 0x1013c646
test dl, dl
je 0x1013c646
mov ecx, dword [0x10a1f6f0]
call fcn.100fb9c2
jmp 0x1013c646
test dl, dl
je 0x1013c646
mov ecx, dword [0x10a1f6e8]
push 0
call fcn.100f63ba
jmp 0x1013c646
cmp word [0x10a1f7b0], 0x1e
je 0x1013c646
mov ecx, dword [0x10a1f744]
cmp byte [ecx], 0
je 0x1013c301
call fcn.1005737f
jmp 0x1013c646
call fcn.10057364
jmp 0x1013c646
mov ecx, dword [0x10a1f6ec]
call fcn.10062aec
jmp 0x1013c646
mov ecx, dword [0x10a1f760]
call fcn.100fe67b
jmp 0x1013c646
cmp edi, 0x59
ja 0x1013c4bf
je 0x1013c4a7
mov eax, edi
sub eax, 0x50
je 0x1013c48f
sub eax, esi
je 0x1013c453
sub eax, esi
je 0x1013c3d7
dec eax
je 0x1013c39d
dec eax
je 0x1013c38d
sub eax, esi
jne 0x1013c646
call fcn.1010fff5
test al, al
je case.default.0x1013c9d8
mov ecx, dword [0x10a1f6b0]
cmp byte [ecx + 0x2471], 0
jne case.default.0x1013c9d8
call fcn.1011440e
jmp 0x1013c646
mov ecx, dword [0x10a1f6e0]
call fcn.1012ba64
jmp 0x1013c646
cmp byte [ebx + 0x9c], 0
je 0x1013c3ba
add ebx, 0x9d
cmp byte [ebx], 0
sete al
mov byte [ebx], al
mov ecx, dword [0x10a1f6b0]
cmp byte [ecx + 0x2434], 0
je 0x1013c646
mov ecx, dword [0x10a1f754]
call fcn.100ed87a
jmp 0x1013c646
call fcn.1011003f
test al, al
je case.default.0x1013c9d8
mov eax, dword [0x10a1f6b0]
cmp byte [eax + 0x13d], 0
jne case.default.0x1013c9d8
cmp byte [eax + 0x17c], 0
je 0x1013c412
mov eax, dword [eax + 0x23cc]
cmp eax, 1
je 0x1013c412
cmp eax, esi
jne 0x1013c646
mov ecx, dword [0x10a1f7ec]
call fcn.1005e1b9
mov ecx, dword [0x10a1f6b8]
push eax
call fcn.1011f6fa
mov esi, eax
test esi, esi
je 0x1013c646
mov ecx, dword [0x10a1f6b8]
push esi
call fcn.1011f065
mov ecx, dword [0x10a1f6b0]
push 0
push eax
push esi
call fcn.101163d6
jmp 0x1013c646
mov esi, dword [ecx + 0x180]
mov ecx, dword [0x10a1f6b8]
push esi
call fcn.1011f37d
test al, al
je 0x1013c646
mov ecx, dword [0x10a1f6b0]
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.101163d6
mov ecx, dword [0x10a1f6b8]
push esi
call fcn.1011eb43
jmp 0x1013c646
test dl, dl
je 0x1013c646
mov ecx, dword [0x10a1f7c8]
call fcn.10124635
jmp 0x1013c646
test dl, dl
je 0x1013c646
mov ecx, dword [0x10a1f754]
call fcn.100ed8d4
jmp 0x1013c646
mov eax, edi
sub eax, 0x5a
je 0x1013c634
sub eax, 0x20
je 0x1013c506
dec eax
je 0x1013c4f5
sub eax, 0x40
je 0x1013c4e3
sub eax, esi
jne 0x1013c646
push 0x64
jmp 0x1013c4e5
push 0x65
mov ecx, dword [0x10a1f7e8]
call fcn.100ee5d6
jmp 0x1013c646
push 0xc
mov ecx, 0x10a20350
call fcn.10127fc5
jmp 0x1013c646
cmp byte [0x10a1f57e], 0
je 0x1013c646
inc dword [ebx + 0x2f8]
mov eax, dword [ebx + 0x2f8]
cmp eax, dword [ebx + 0x2fc]
jne 0x1013c52e
and dword [ebx + 0x2f8], 0
mov ecx, dword [0x10a1f6b0]
lea eax, [ebp - 0x12c]
push eax
call fcn.1010fe57
mov eax, dword [0x10a1f6b0]
mov ecx, dword [ebp - 0x124]
mov eax, dword [eax + 0x2430]
mov esi, dword [ebx + 0x2f8]
mov dword [ebp - 0x114], ecx
mov ecx, dword [0x10a139cc]
push eax
call fcn.1001a19d
fmul dword [0x1018dcd8]
mov eax, dword [ebp - 0x12c]
sub esp, 0x14
fadd dword [ebx + esi*4 + 0x280]
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x114]
fadd dword [ebp - 0x128]
mov dword [ebp - 0x118], eax
mov edi, esp
mov ecx, 0x10a20350
fstp dword [ebp - 0x11c]
fld dword [ebx + esi*4 + 0x208]
lea esi, [ebp - 0x120]
fstp dword [esp + 0x10]
fld1
fstp dword [esp + 0xc]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 0x65
movsd dword es:[edi], dword [esi]
call fcn.10127ec5
mov eax, dword [ebx + 0x2f8]
fld dword [ebp - 0x12c]
sub esp, 0x14
fadd dword [ebx + eax*4 + 0xa0]
mov edi, esp
lea esi, [ebp - 0x120]
mov ecx, 0x10a20350
fstp dword [ebp - 0x120]
fld dword [ebp - 0x128]
fadd dword [ebx + eax*4 + 0x118]
fstp dword [ebp - 0x11c]
fld dword [ebp - 0x124]
fadd dword [ebx + eax*4 + 0x190]
fstp dword [ebp - 0x118]
fld dword [ebx + eax*4 + 0x208]
fstp dword [esp + 0x10]
fld1
fstp dword [esp + 0xc]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 0x65
movsd dword es:[edi], dword [esi]
call fcn.10127e69
mov edi, dword [ebp + 8]
jmp 0x1013c646
cmp byte [ecx + 0x2471], 0
jne case.default.0x1013c9d8
call fcn.1010f8f2
mov eax, dword [0x10a1f760]
cmp byte [eax + 0x44], 0
mov ecx, dword [0x10a1f7a4]
push 0xe8
je 0x1013c878
call fcn.100951ef
test al, al
jne case.default.0x1013c9d8
mov ecx, dword [0x10a1f7a4]
push 0xe9
call fcn.100951ef
test al, al
jne case.default.0x1013c9d8
mov ecx, dword [0x10a1f7a4]
push 0xe1
call fcn.100951ef
test al, al
jne case.default.0x1013c9d8
cmp edi, 0x70
ja 0x1013c841
je 0x1013c838
push 9
lea eax, [edi - 0x30]
pop esi
cmp eax, esi
ja case.default.0x1013c9d8
jmp dword [eax*4 + 0x1013ca76]
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x11
call esi
test ax, ax
jge 0x1013c6d7
push 0
jmp 0x1013c920
push 0x10
call esi
test ax, ax
mov ecx, dword [0x10a1f7e8]
jge 0x1013c9b8
push 0
jmp 0x1013c93e
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x11
call esi
test ax, ax
jge 0x1013c707
push 1
jmp 0x1013c920
push 0x10
call esi
test ax, ax
mov ecx, dword [0x10a1f7e8]
jge 0x1013c71d
push 1
jmp 0x1013c93e
push 1
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x1013ca52
cmp eax, 1
jne 0x1013ca56
push 3
jmp 0x1013ca58
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x11
call esi
test ax, ax
jl 0x1013c91e
push 0x10
call esi
test ax, ax
mov ecx, dword [0x10a1f7e8]
jge 0x1013c9f0
push 2
jmp 0x1013c93e
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov ecx, dword [0x10a1f7e8]
jge 0x1013c9fd
push 3
jmp 0x1013c9a4
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov ecx, dword [0x10a1f7e8]
jge 0x1013ca0a
push 4
jmp 0x1013c9a4
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov ecx, dword [0x10a1f7e8]
jge 0x1013ca17
push 5
jmp 0x1013c9a4
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov ecx, dword [0x10a1f7e8]
jge 0x1013ca24
push 6
jmp 0x1013c9a4
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov ecx, dword [0x10a1f7e8]
jge 0x1013ca31
push 7
jmp 0x1013c9a4
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov ecx, dword [0x10a1f7e8]
jge 0x1013ca3e
push 8
jmp 0x1013c9a4
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov ecx, dword [0x10a1f7e8]
push esi
jl 0x1013c9a4
jmp 0x1013c71f
push 0
push 1
jmp 0x1013c922
lea eax, [edi - 0x71]
cmp eax, 8
ja case.default.0x1013c9d8
jmp dword [eax*4 + 0x1013ca9e]
push 1
jmp 0x1013c83a
push 2
jmp 0x1013c83a
push 3
jmp 0x1013c83a
push 4
jmp 0x1013c83a
push 5
jmp 0x1013c83a
push 6
jmp 0x1013c83a
push 7
jmp 0x1013c83a
push 8
jmp 0x1013c83a
push 9
jmp 0x1013c83a
call fcn.100951ef
test al, al
jne case.default.0x1013c9d8
mov ecx, dword [0x10a1f7a4]
push 0xe9
call fcn.100951ef
test al, al
jne case.default.0x1013c9d8
mov ecx, dword [0x10a1f7a4]
push 0xe1
call fcn.100951ef
test al, al
jne case.default.0x1013c9d8
cmp edi, 0x70
ja 0x1013c9cc
je 0x1013c9b2
push 9
lea eax, [edi - 0x30]
pop esi
cmp eax, esi
ja case.default.0x1013c9d8
jmp dword [eax*4 + 0x1013cac2]
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x11
call esi
test ax, ax
jl 0x1013c6d0
push 0x10
call esi
push 0
jmp 0x1013c933
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x11
call esi
test ax, ax
jl 0x1013c700
push 0x10
call esi
push 1
jmp 0x1013c933
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x11
call esi
test ax, ax
jge 0x1013c92d
push 2
push 2
mov ecx, dword [0x10a1f7e8]
jmp 0x1013ca58
push 0x10
call esi
push 2
test ax, ax
mov ecx, dword [0x10a1f7e8]
jge 0x1013c9ab
call fcn.100ef274
jmp case.default.0x1013c9d8
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 3
jmp 0x1013c999
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 4
jmp 0x1013c999
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 5
jmp 0x1013c999
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 6
jmp 0x1013c999
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 7
jmp 0x1013c999
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 8
jmp 0x1013c999
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
push esi
test ax, ax
mov ecx, dword [0x10a1f7e8]
jge 0x1013c9ab
push 2
jmp 0x1013ca58
push 1
jmp 0x1013ca58
mov ecx, dword [0x10a1f7e8]
mov eax, dword [ecx + 0xc]
xor edx, edx
cmp eax, edx
push edx
jne 0x1013c72a
push edx
jmp 0x1013ca58
lea eax, [edi - 0x71]
cmp eax, 8
ja case.default.0x1013c9d8
jmp dword [eax*4 + 0x1013caea]
mov ecx, dword [0x10a1f7e8]
jmp 0x1013c71d
mov ecx, dword [0x10a1f7e8]
push 2
jmp 0x1013c71f
mov ecx, dword [0x10a1f7e8]
push 3
jmp 0x1013c71f
mov ecx, dword [0x10a1f7e8]
push 4
jmp 0x1013c71f
mov ecx, dword [0x10a1f7e8]
push 5
jmp 0x1013c71f
mov ecx, dword [0x10a1f7e8]
push 6
jmp 0x1013c71f
mov ecx, dword [0x10a1f7e8]
push 7
jmp 0x1013c71f
mov ecx, dword [0x10a1f7e8]
push 8
jmp 0x1013c71f
mov ecx, dword [0x10a1f7e8]
push 9
jmp 0x1013c71f
push 0
jmp 0x1013ca58
push 4
call fcn.100f0684
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
call fcn.10165cbe
pop edi
pop esi
pop ebx
leave
ret 4