Function at 0x1013bf21
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, 0x1017a32e
call fcn.10159f04
sub esp, 0x120
mov eax, dword [0x101b7f10]
mov dword [ebp - 0x10], eax
mov eax, dword [0x10a0c444]
mov al, byte [eax + 0x58]
cmp al, 1
push ebx
push esi
push edi
mov ebx, ecx
je case.default.0x1013c9f9
push 0
mov esi, 0x10a4d968
push 0
mov ecx, esi
call fcn.1003a088
push 0x10180c16
mov ecx, esi
call fcn.10039fb4
mov ecx, esi
call fcn.10039d9c
mov ecx, dword [0x10a0c4a4]
call fcn.10060cb1
mov ecx, dword [0x10a0c350]
mov dl, byte [ecx + 0x2434]
test dl, dl
jne 0x1013bfdd
mov ecx, dword [0x10a0c444]
mov esi, 0xf7
push esi
call fcn.100951e2
test al, al
je 0x1013bfad
mov ecx, dword [0x10a0c444]
push esi
call fcn.1009c3ae
cmp dword [ebp + 8], 0x49
je 0x1013bfcd
cmp dword [ebp + 8], 0x4d
jne case.default.0x1013c9f9
mov ecx, dword [0x10a0c3f0]
call fcn.100c7638
jmp case.default.0x1013c9f9
mov ecx, dword [0x10a0c38c]
call fcn.10062ab2
jmp case.default.0x1013c9f9
mov edi, dword [ebp + 8]
cmp edi, 0x4f
push 2
pop esi
ja 0x1013c34c
je 0x1013c33c
cmp edi, 0x48
ja 0x1013c27d
je 0x1013c25a
mov eax, edi
sub eax, 0x2d
je 0x1013c24b
sub eax, 0x15
je 0x1013c23b
dec eax
je 0x1013c21e
sub eax, esi
je 0x1013c1b2
dec eax
je 0x1013c04c
dec eax
jne 0x1013c667
cmp word [0x10a0c450], 0x1e
je 0x1013c667
mov ecx, dword [0x10a0c484]
call fcn.1007c2b5
jmp 0x1013c667
mov ecx, dword [0x10a0c444]
push 0xe8
call fcn.100951e2
test al, al
jne case.default.0x1013c9f9
mov ecx, dword [0x10a0c444]
push 0xe9
call fcn.100951e2
test al, al
jne case.default.0x1013c9f9
mov ecx, dword [0x10a0c444]
push 0xe1
call fcn.100951e2
test al, al
jne case.default.0x1013c9f9
mov ecx, dword [0x10a0c350]
call fcn.10110004
test al, al
je case.default.0x1013c9f9
mov eax, dword [0x10a0c350]
cmp byte [eax + 0x13d], 0
jne case.default.0x1013c9f9
cmp byte [eax + 0x17c], 0
jne case.default.0x1013c9f9
mov ecx, dword [0x10a0c370]
call fcn.100b8997
mov ecx, dword [0x10a0c370]
mov esi, eax
push esi
call fcn.100b8529
cmp eax, 0x1cb7
je 0x1013c667
cmp eax, 0x1cb8
je 0x1013c667
mov ecx, dword [0x10a0c360]
push 1
push eax
call fcn.100056fe
test al, al
je 0x1013c16d
lea ecx, [ebp - 0x110]
call fcn.10152120
mov ecx, dword [0x10a0c364]
and dword [ebp - 4], 0
lea eax, [ebp - 0x110]
push eax
push 0x5dd
call fcn.100431ba
lea ecx, [ebp - 0x110]
call fcn.10151f50
sub esp, 0x100
mov ecx, esp
mov dword [ebp - 0x114], esp
push eax
call fcn.10152140
mov ecx, dword [0x10a0c308]
push 0x1e
call fcn.1013b341
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x110]
call fcn.10152110
jmp 0x1013c667
test esi, esi
je 0x1013c667
mov ecx, dword [0x10a0c370]
push esi
lea eax, [ebp + 8]
push eax
call fcn.100b7f3f
mov ecx, dword [0x10a0c374]
push esi
call fcn.100b38b3
mov ecx, dword [0x10a0c350]
push 0
push dword [ebp + 8]
call fcn.1011628c
mov ecx, dword [0x10a0c370]
push esi
call fcn.100b8ad4
jmp 0x1013c667
call fcn.1011004e
test al, al
je case.default.0x1013c9f9
mov ecx, dword [0x10a0c350]
cmp byte [ecx + 0x13d], 0
jne case.default.0x1013c9f9
mov eax, dword [ecx + 0x23f0]
and eax, 0x400
xor edx, edx
or eax, edx
jne case.default.0x1013c9f9
cmp byte [ecx + 0x17c], dl
je 0x1013c202
mov ecx, dword [ecx + 0x23cc]
cmp ecx, 1
je 0x1013c202
cmp ecx, esi
jne 0x1013c667
mov ecx, dword [0x10a0c48c]
call fcn.1005e181
mov ecx, dword [0x10a0c358]
push eax
call fcn.1011f580
jmp 0x1013c44a
cmp byte [0x10a0c21f], 0
jne 0x1013c667
mov ecx, dword [0x10a0c48c]
call fcn.1005db25
jmp 0x1013c667
mov ecx, dword [0x10a0c358]
call fcn.1011e886
jmp 0x1013c667
mov ecx, 0x10a0cff0
call fcn.1012815a
jmp 0x1013c667
mov ecx, dword [0x10a0c480]
cmp byte [ecx + 0x1d58], 0
je 0x1013c273
call fcn.10100518
jmp 0x1013c667
call fcn.10100500
jmp 0x1013c667
mov eax, edi
sub eax, 0x49
je 0x1013c32c
dec eax
je 0x1013c2ff
dec eax
je 0x1013c2e5
dec eax
je 0x1013c2cd
dec eax
je 0x1013c2bd
dec eax
jne 0x1013c667
mov eax, dword [0x10a0c400]
cmp byte [eax + 4], 1
jne 0x1013c2b9
push 5
push 0
push 1
call fcn.100fe6cc
add esp, 0xc
jmp 0x1013c667
push 4
jmp 0x1013c2a8
mov ecx, dword [0x10a0c3f0]
call fcn.100c7638
jmp 0x1013c667
test dl, dl
je 0x1013c667
mov ecx, dword [0x10a0c390]
call fcn.100fb9d4
jmp 0x1013c667
test dl, dl
je 0x1013c667
mov ecx, dword [0x10a0c388]
push 0
call fcn.100f63bf
jmp 0x1013c667
cmp word [0x10a0c450], 0x1e
je 0x1013c667
mov ecx, dword [0x10a0c3e4]
cmp byte [ecx], 0
je 0x1013c322
call fcn.1005734c
jmp 0x1013c667
call fcn.10057331
jmp 0x1013c667
mov ecx, dword [0x10a0c38c]
call fcn.10062ab2
jmp 0x1013c667
mov ecx, dword [0x10a0c400]
call fcn.100fe68d
jmp 0x1013c667
cmp edi, 0x59
ja 0x1013c4e0
je 0x1013c4c8
mov eax, edi
sub eax, 0x50
je 0x1013c4b0
sub eax, esi
je 0x1013c474
sub eax, esi
je 0x1013c3f8
dec eax
je 0x1013c3be
dec eax
je 0x1013c3ae
sub eax, esi
jne 0x1013c667
call fcn.10110004
test al, al
je case.default.0x1013c9f9
mov ecx, dword [0x10a0c350]
cmp byte [ecx + 0x2471], 0
jne case.default.0x1013c9f9
call fcn.10114404
jmp 0x1013c667
mov ecx, dword [0x10a0c380]
call fcn.1012ba85
jmp 0x1013c667
cmp byte [ebx + 0x9c], 0
je 0x1013c3db
add ebx, 0x9d
cmp byte [ebx], 0
sete al
mov byte [ebx], al
mov ecx, dword [0x10a0c350]
cmp byte [ecx + 0x2434], 0
je 0x1013c667
mov ecx, dword [0x10a0c3f4]
call fcn.100ed87c
jmp 0x1013c667
call fcn.1011004e
test al, al
je case.default.0x1013c9f9
mov eax, dword [0x10a0c350]
cmp byte [eax + 0x13d], 0
jne case.default.0x1013c9f9
cmp byte [eax + 0x17c], 0
je 0x1013c433
mov eax, dword [eax + 0x23cc]
cmp eax, 1
je 0x1013c433
cmp eax, esi
jne 0x1013c667
mov ecx, dword [0x10a0c48c]
call fcn.1005e181
mov ecx, dword [0x10a0c358]
push eax
call fcn.1011f6f0
mov esi, eax
test esi, esi
je 0x1013c667
mov ecx, dword [0x10a0c358]
push esi
call fcn.1011f05b
mov ecx, dword [0x10a0c350]
push 0
push eax
push esi
call fcn.101163cc
jmp 0x1013c667
mov esi, dword [ecx + 0x180]
mov ecx, dword [0x10a0c358]
push esi
call fcn.1011f373
test al, al
je 0x1013c667
mov ecx, dword [0x10a0c350]
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.101163cc
mov ecx, dword [0x10a0c358]
push esi
call fcn.1011eb39
jmp 0x1013c667
test dl, dl
je 0x1013c667
mov ecx, dword [0x10a0c468]
call fcn.10124656
jmp 0x1013c667
test dl, dl
je 0x1013c667
mov ecx, dword [0x10a0c3f4]
call fcn.100ed8d6
jmp 0x1013c667
mov eax, edi
sub eax, 0x5a
je 0x1013c655
sub eax, 0x20
je 0x1013c527
dec eax
je 0x1013c516
sub eax, 0x40
je 0x1013c504
sub eax, esi
jne 0x1013c667
push 0x64
jmp 0x1013c506
push 0x65
mov ecx, dword [0x10a0c488]
call fcn.100ee5d8
jmp 0x1013c667
push 0xc
mov ecx, 0x10a0cff0
call fcn.10127fe6
jmp 0x1013c667
cmp byte [0x10a0c21e], 0
je 0x1013c667
inc dword [ebx + 0x2f8]
mov eax, dword [ebx + 0x2f8]
cmp eax, dword [ebx + 0x2fc]
jne 0x1013c54f
and dword [ebx + 0x2f8], 0
mov ecx, dword [0x10a0c350]
lea eax, [ebp - 0x12c]
push eax
call fcn.1010fe66
mov eax, dword [0x10a0c350]
mov ecx, dword [ebp - 0x124]
mov eax, dword [eax + 0x2430]
mov esi, dword [ebx + 0x2f8]
mov dword [ebp - 0x114], ecx
mov ecx, dword [0x10a0066c]
push eax
call fcn.1001a0b2
fmul dword [0x10180c88]
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, 0x10a0cff0
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.10127ee6
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, 0x10a0cff0
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.10127e8a
mov edi, dword [ebp + 8]
jmp 0x1013c667
cmp byte [ecx + 0x2471], 0
jne case.default.0x1013c9f9
call fcn.1010f901
mov eax, dword [0x10a0c400]
cmp byte [eax + 0x44], 0
mov ecx, dword [0x10a0c444]
push 0xe8
je 0x1013c899
call fcn.100951e2
test al, al
jne case.default.0x1013c9f9
mov ecx, dword [0x10a0c444]
push 0xe9
call fcn.100951e2
test al, al
jne case.default.0x1013c9f9
mov ecx, dword [0x10a0c444]
push 0xe1
call fcn.100951e2
test al, al
jne case.default.0x1013c9f9
cmp edi, 0x70
ja 0x1013c862
je 0x1013c859
push 9
lea eax, [edi - 0x30]
pop esi
cmp eax, esi
ja case.default.0x1013c9f9
jmp dword [eax*4 + 0x1013ca97]
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x11
call esi
test ax, ax
jge 0x1013c6f8
push 0
jmp 0x1013c941
push 0x10
call esi
test ax, ax
mov ecx, dword [0x10a0c488]
jge 0x1013c9d9
push 0
jmp 0x1013c95f
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x11
call esi
test ax, ax
jge 0x1013c728
push 1
jmp 0x1013c941
push 0x10
call esi
test ax, ax
mov ecx, dword [0x10a0c488]
jge 0x1013c73e
push 1
jmp 0x1013c95f
push 1
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x1013ca73
cmp eax, 1
jne 0x1013ca77
push 3
jmp 0x1013ca79
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x11
call esi
test ax, ax
jl 0x1013c93f
push 0x10
call esi
test ax, ax
mov ecx, dword [0x10a0c488]
jge 0x1013ca11
push 2
jmp 0x1013c95f
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov ecx, dword [0x10a0c488]
jge 0x1013ca1e
push 3
jmp 0x1013c9c5
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov ecx, dword [0x10a0c488]
jge 0x1013ca2b
push 4
jmp 0x1013c9c5
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov ecx, dword [0x10a0c488]
jge 0x1013ca38
push 5
jmp 0x1013c9c5
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov ecx, dword [0x10a0c488]
jge 0x1013ca45
push 6
jmp 0x1013c9c5
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov ecx, dword [0x10a0c488]
jge 0x1013ca52
push 7
jmp 0x1013c9c5
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov ecx, dword [0x10a0c488]
jge 0x1013ca5f
push 8
jmp 0x1013c9c5
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov ecx, dword [0x10a0c488]
push esi
jl 0x1013c9c5
jmp 0x1013c740
push 0
push 1
jmp 0x1013c943
lea eax, [edi - 0x71]
cmp eax, 8
ja case.default.0x1013c9f9
jmp dword [eax*4 + 0x1013cabf]
push 1
jmp 0x1013c85b
push 2
jmp 0x1013c85b
push 3
jmp 0x1013c85b
push 4
jmp 0x1013c85b
push 5
jmp 0x1013c85b
push 6
jmp 0x1013c85b
push 7
jmp 0x1013c85b
push 8
jmp 0x1013c85b
push 9
jmp 0x1013c85b
call fcn.100951e2
test al, al
jne case.default.0x1013c9f9
mov ecx, dword [0x10a0c444]
push 0xe9
call fcn.100951e2
test al, al
jne case.default.0x1013c9f9
mov ecx, dword [0x10a0c444]
push 0xe1
call fcn.100951e2
test al, al
jne case.default.0x1013c9f9
cmp edi, 0x70
ja 0x1013c9ed
je 0x1013c9d3
push 9
lea eax, [edi - 0x30]
pop esi
cmp eax, esi
ja case.default.0x1013c9f9
jmp dword [eax*4 + 0x1013cae3]
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x11
call esi
test ax, ax
jl 0x1013c6f1
push 0x10
call esi
push 0
jmp 0x1013c954
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x11
call esi
test ax, ax
jl 0x1013c721
push 0x10
call esi
push 1
jmp 0x1013c954
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x11
call esi
test ax, ax
jge 0x1013c94e
push 2
push 2
mov ecx, dword [0x10a0c488]
jmp 0x1013ca79
push 0x10
call esi
push 2
test ax, ax
mov ecx, dword [0x10a0c488]
jge 0x1013c9cc
call fcn.100ef276
jmp case.default.0x1013c9f9
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 3
jmp 0x1013c9ba
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 4
jmp 0x1013c9ba
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 5
jmp 0x1013c9ba
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 6
jmp 0x1013c9ba
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 7
jmp 0x1013c9ba
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 8
jmp 0x1013c9ba
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
push esi
test ax, ax
mov ecx, dword [0x10a0c488]
jge 0x1013c9cc
push 2
jmp 0x1013ca79
push 1
jmp 0x1013ca79
mov ecx, dword [0x10a0c488]
mov eax, dword [ecx + 0xc]
xor edx, edx
cmp eax, edx
push edx
jne 0x1013c74b
push edx
jmp 0x1013ca79
lea eax, [edi - 0x71]
cmp eax, 8
ja case.default.0x1013c9f9
jmp dword [eax*4 + 0x1013cb0b]
mov ecx, dword [0x10a0c488]
jmp 0x1013c73e
mov ecx, dword [0x10a0c488]
push 2
jmp 0x1013c740
mov ecx, dword [0x10a0c488]
push 3
jmp 0x1013c740
mov ecx, dword [0x10a0c488]
push 4
jmp 0x1013c740
mov ecx, dword [0x10a0c488]
push 5
jmp 0x1013c740
mov ecx, dword [0x10a0c488]
push 6
jmp 0x1013c740
mov ecx, dword [0x10a0c488]
push 7
jmp 0x1013c740
mov ecx, dword [0x10a0c488]
push 8
jmp 0x1013c740
mov ecx, dword [0x10a0c488]
push 9
jmp 0x1013c740
push 0
jmp 0x1013ca79
push 4
call fcn.100f0686
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
call fcn.1015901e
pop edi
pop esi
pop ebx
leave
ret 4