Function at 0x1013bd81
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, 0x10179503
call fcn.101590a4
sub esp, 0x120
mov eax, dword [0x101b6f10]
mov dword [ebp - 0x10], eax
mov eax, dword [0x10a0b444]
mov al, byte [eax + 0x58]
cmp al, 1
push ebx
push esi
push edi
mov ebx, ecx
je case.default.0x1013c859
push 0
mov esi, 0x10a4c968
push 0
mov ecx, esi
call fcn.1003a2eb
push 0x1017fc1e
mov ecx, esi
call fcn.1003a217
mov ecx, esi
call fcn.10039fff
mov ecx, dword [0x10a0b4a4]
call fcn.1006078e
mov ecx, dword [0x10a0b350]
mov dl, byte [ecx + 0x2434]
test dl, dl
jne 0x1013be3d
mov ecx, dword [0x10a0b444]
mov esi, 0xf7
push esi
call fcn.10094cbf
test al, al
je 0x1013be0d
mov ecx, dword [0x10a0b444]
push esi
call fcn.1009be95
cmp dword [ebp + 8], 0x49
je 0x1013be2d
cmp dword [ebp + 8], 0x4d
jne case.default.0x1013c859
mov ecx, dword [0x10a0b3f0]
call fcn.100c71fa
jmp case.default.0x1013c859
mov ecx, dword [0x10a0b38c]
call fcn.1006258f
jmp case.default.0x1013c859
mov edi, dword [ebp + 8]
cmp edi, 0x4f
push 2
pop esi
ja 0x1013c1ac
je 0x1013c19c
cmp edi, 0x48
ja 0x1013c0dd
je 0x1013c0ba
mov eax, edi
sub eax, 0x2d
je 0x1013c0ab
sub eax, 0x15
je 0x1013c09b
dec eax
je 0x1013c07e
sub eax, esi
je 0x1013c012
dec eax
je 0x1013beac
dec eax
jne 0x1013c4c7
cmp word [0x10a0b450], 0x1e
je 0x1013c4c7
mov ecx, dword [0x10a0b484]
call fcn.1007bd92
jmp 0x1013c4c7
mov ecx, dword [0x10a0b444]
push 0xe8
call fcn.10094cbf
test al, al
jne case.default.0x1013c859
mov ecx, dword [0x10a0b444]
push 0xe9
call fcn.10094cbf
test al, al
jne case.default.0x1013c859
mov ecx, dword [0x10a0b444]
push 0xe1
call fcn.10094cbf
test al, al
jne case.default.0x1013c859
mov ecx, dword [0x10a0b350]
call fcn.1010fcd5
test al, al
je case.default.0x1013c859
mov eax, dword [0x10a0b350]
cmp byte [eax + 0x13d], 0
jne case.default.0x1013c859
cmp byte [eax + 0x17c], 0
jne case.default.0x1013c859
mov ecx, dword [0x10a0b370]
call fcn.100b847e
mov ecx, dword [0x10a0b370]
mov esi, eax
push esi
call fcn.100b8010
cmp eax, 0x1cb7
je 0x1013c4c7
cmp eax, 0x1cb8
je 0x1013c4c7
mov ecx, dword [0x10a0b360]
push 1
push eax
call fcn.10005815
test al, al
je 0x1013bfcd
lea ecx, [ebp - 0x110]
call fcn.101512c0
mov ecx, dword [0x10a0b364]
and dword [ebp - 4], 0
lea eax, [ebp - 0x110]
push eax
push 0x5dd
call fcn.10043343
lea ecx, [ebp - 0x110]
call fcn.101510f0
sub esp, 0x100
mov ecx, esp
mov dword [ebp - 0x114], esp
push eax
call fcn.101512e0
mov ecx, dword [0x10a0b308]
push 0x1e
call fcn.1013b1a1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x110]
call fcn.101512b0
jmp 0x1013c4c7
test esi, esi
je 0x1013c4c7
mov ecx, dword [0x10a0b370]
push esi
lea eax, [ebp + 8]
push eax
call fcn.100b7a26
mov ecx, dword [0x10a0b374]
push esi
call fcn.100b339a
mov ecx, dword [0x10a0b350]
push 0
push dword [ebp + 8]
call fcn.10115f95
mov ecx, dword [0x10a0b370]
push esi
call fcn.100b85bb
jmp 0x1013c4c7
call fcn.1010fd1f
test al, al
je case.default.0x1013c859
mov ecx, dword [0x10a0b350]
cmp byte [ecx + 0x13d], 0
jne case.default.0x1013c859
mov eax, dword [ecx + 0x23f0]
and eax, 0x400
xor edx, edx
or eax, edx
jne case.default.0x1013c859
cmp byte [ecx + 0x17c], dl
je 0x1013c062
mov ecx, dword [ecx + 0x23cc]
cmp ecx, 1
je 0x1013c062
cmp ecx, esi
jne 0x1013c4c7
mov ecx, dword [0x10a0b48c]
call fcn.1005dc5e
mov ecx, dword [0x10a0b358]
push eax
call fcn.1011f286
jmp 0x1013c2aa
cmp byte [0x10a0b21f], 0
jne 0x1013c4c7
mov ecx, dword [0x10a0b48c]
call fcn.1005d602
jmp 0x1013c4c7
mov ecx, dword [0x10a0b358]
call fcn.1011e58c
jmp 0x1013c4c7
mov ecx, 0x10a0bff0
call fcn.10127efb
jmp 0x1013c4c7
mov ecx, dword [0x10a0b480]
cmp byte [ecx + 0x1d58], 0
je 0x1013c0d3
call fcn.101001e9
jmp 0x1013c4c7
call fcn.101001d1
jmp 0x1013c4c7
mov eax, edi
sub eax, 0x49
je 0x1013c18c
dec eax
je 0x1013c15f
dec eax
je 0x1013c145
dec eax
je 0x1013c12d
dec eax
je 0x1013c11d
dec eax
jne 0x1013c4c7
mov eax, dword [0x10a0b400]
cmp byte [eax + 4], 1
jne 0x1013c119
push 5
push 0
push 1
call fcn.100fe39d
add esp, 0xc
jmp 0x1013c4c7
push 4
jmp 0x1013c108
mov ecx, dword [0x10a0b3f0]
call fcn.100c71fa
jmp 0x1013c4c7
test dl, dl
je 0x1013c4c7
mov ecx, dword [0x10a0b390]
call fcn.100fb6a5
jmp 0x1013c4c7
test dl, dl
je 0x1013c4c7
mov ecx, dword [0x10a0b388]
push 0
call fcn.100f6090
jmp 0x1013c4c7
cmp word [0x10a0b450], 0x1e
je 0x1013c4c7
mov ecx, dword [0x10a0b3e4]
cmp byte [ecx], 0
je 0x1013c182
call fcn.10056e29
jmp 0x1013c4c7
call fcn.10056e0e
jmp 0x1013c4c7
mov ecx, dword [0x10a0b38c]
call fcn.1006258f
jmp 0x1013c4c7
mov ecx, dword [0x10a0b400]
call fcn.100fe35e
jmp 0x1013c4c7
cmp edi, 0x59
ja 0x1013c340
je 0x1013c328
mov eax, edi
sub eax, 0x50
je 0x1013c310
sub eax, esi
je 0x1013c2d4
sub eax, esi
je 0x1013c258
dec eax
je 0x1013c21e
dec eax
je 0x1013c20e
sub eax, esi
jne 0x1013c4c7
call fcn.1010fcd5
test al, al
je case.default.0x1013c859
mov ecx, dword [0x10a0b350]
cmp byte [ecx + 0x2471], 0
jne case.default.0x1013c859
call fcn.1011410d
jmp 0x1013c4c7
mov ecx, dword [0x10a0b380]
call fcn.1012b826
jmp 0x1013c4c7
cmp byte [ebx + 0x9c], 0
je 0x1013c23b
add ebx, 0x9d
cmp byte [ebx], 0
sete al
mov byte [ebx], al
mov ecx, dword [0x10a0b350]
cmp byte [ecx + 0x2434], 0
je 0x1013c4c7
mov ecx, dword [0x10a0b3f4]
call fcn.100ed550
jmp 0x1013c4c7
call fcn.1010fd1f
test al, al
je case.default.0x1013c859
mov eax, dword [0x10a0b350]
cmp byte [eax + 0x13d], 0
jne case.default.0x1013c859
cmp byte [eax + 0x17c], 0
je 0x1013c293
mov eax, dword [eax + 0x23cc]
cmp eax, 1
je 0x1013c293
cmp eax, esi
jne 0x1013c4c7
mov ecx, dword [0x10a0b48c]
call fcn.1005dc5e
mov ecx, dword [0x10a0b358]
push eax
call fcn.1011f3f6
mov esi, eax
test esi, esi
je 0x1013c4c7
mov ecx, dword [0x10a0b358]
push esi
call fcn.1011ed61
mov ecx, dword [0x10a0b350]
push 0
push eax
push esi
call fcn.101160d5
jmp 0x1013c4c7
mov esi, dword [ecx + 0x180]
mov ecx, dword [0x10a0b358]
push esi
call fcn.1011f079
test al, al
je 0x1013c4c7
mov ecx, dword [0x10a0b350]
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.101160d5
mov ecx, dword [0x10a0b358]
push esi
call fcn.1011e83f
jmp 0x1013c4c7
test dl, dl
je 0x1013c4c7
mov ecx, dword [0x10a0b468]
call fcn.101243fa
jmp 0x1013c4c7
test dl, dl
je 0x1013c4c7
mov ecx, dword [0x10a0b3f4]
call fcn.100ed5aa
jmp 0x1013c4c7
mov eax, edi
sub eax, 0x5a
je 0x1013c4b5
sub eax, 0x20
je 0x1013c387
dec eax
je 0x1013c376
sub eax, 0x40
je 0x1013c364
sub eax, esi
jne 0x1013c4c7
push 0x64
jmp 0x1013c366
push 0x65
mov ecx, dword [0x10a0b488]
call fcn.100ee2af
jmp 0x1013c4c7
push 0xc
mov ecx, 0x10a0bff0
call fcn.10127d87
jmp 0x1013c4c7
cmp byte [0x10a0b21e], 0
je 0x1013c4c7
inc dword [ebx + 0x2f8]
mov eax, dword [ebx + 0x2f8]
cmp eax, dword [ebx + 0x2fc]
jne 0x1013c3af
and dword [ebx + 0x2f8], 0
mov ecx, dword [0x10a0b350]
lea eax, [ebp - 0x12c]
push eax
call fcn.1010fb37
mov eax, dword [0x10a0b350]
mov ecx, dword [ebp - 0x124]
mov eax, dword [eax + 0x2430]
mov esi, dword [ebx + 0x2f8]
mov dword [ebp - 0x114], ecx
mov ecx, dword [0x109ff66c]
push eax
call fcn.1001a30a
fmul dword [0x1017fc90]
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, 0x10a0bff0
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.10127c87
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, 0x10a0bff0
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.10127c2b
mov edi, dword [ebp + 8]
jmp 0x1013c4c7
cmp byte [ecx + 0x2471], 0
jne case.default.0x1013c859
call fcn.1010f5d2
mov eax, dword [0x10a0b400]
cmp byte [eax + 0x44], 0
mov ecx, dword [0x10a0b444]
push 0xe8
je 0x1013c6f9
call fcn.10094cbf
test al, al
jne case.default.0x1013c859
mov ecx, dword [0x10a0b444]
push 0xe9
call fcn.10094cbf
test al, al
jne case.default.0x1013c859
mov ecx, dword [0x10a0b444]
push 0xe1
call fcn.10094cbf
test al, al
jne case.default.0x1013c859
cmp edi, 0x70
ja 0x1013c6c2
je 0x1013c6b9
push 9
lea eax, [edi - 0x30]
pop esi
cmp eax, esi
ja case.default.0x1013c859
jmp dword [eax*4 + 0x1013c8f7]
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x11
call esi
test ax, ax
jge 0x1013c558
push 0
jmp 0x1013c7a1
push 0x10
call esi
test ax, ax
mov ecx, dword [0x10a0b488]
jge 0x1013c839
push 0
jmp 0x1013c7bf
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x11
call esi
test ax, ax
jge 0x1013c588
push 1
jmp 0x1013c7a1
push 0x10
call esi
test ax, ax
mov ecx, dword [0x10a0b488]
jge 0x1013c59e
push 1
jmp 0x1013c7bf
push 1
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x1013c8d3
cmp eax, 1
jne 0x1013c8d7
push 3
jmp 0x1013c8d9
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x11
call esi
test ax, ax
jl 0x1013c79f
push 0x10
call esi
test ax, ax
mov ecx, dword [0x10a0b488]
jge 0x1013c871
push 2
jmp 0x1013c7bf
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov ecx, dword [0x10a0b488]
jge 0x1013c87e
push 3
jmp 0x1013c825
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov ecx, dword [0x10a0b488]
jge 0x1013c88b
push 4
jmp 0x1013c825
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov ecx, dword [0x10a0b488]
jge 0x1013c898
push 5
jmp 0x1013c825
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov ecx, dword [0x10a0b488]
jge 0x1013c8a5
push 6
jmp 0x1013c825
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov ecx, dword [0x10a0b488]
jge 0x1013c8b2
push 7
jmp 0x1013c825
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov ecx, dword [0x10a0b488]
jge 0x1013c8bf
push 8
jmp 0x1013c825
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov ecx, dword [0x10a0b488]
push esi
jl 0x1013c825
jmp 0x1013c5a0
push 0
push 1
jmp 0x1013c7a3
lea eax, [edi - 0x71]
cmp eax, 8
ja case.default.0x1013c859
jmp dword [eax*4 + 0x1013c91f]
push 1
jmp 0x1013c6bb
push 2
jmp 0x1013c6bb
push 3
jmp 0x1013c6bb
push 4
jmp 0x1013c6bb
push 5
jmp 0x1013c6bb
push 6
jmp 0x1013c6bb
push 7
jmp 0x1013c6bb
push 8
jmp 0x1013c6bb
push 9
jmp 0x1013c6bb
call fcn.10094cbf
test al, al
jne case.default.0x1013c859
mov ecx, dword [0x10a0b444]
push 0xe9
call fcn.10094cbf
test al, al
jne case.default.0x1013c859
mov ecx, dword [0x10a0b444]
push 0xe1
call fcn.10094cbf
test al, al
jne case.default.0x1013c859
cmp edi, 0x70
ja 0x1013c84d
je 0x1013c833
push 9
lea eax, [edi - 0x30]
pop esi
cmp eax, esi
ja case.default.0x1013c859
jmp dword [eax*4 + 0x1013c943]
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x11
call esi
test ax, ax
jl 0x1013c551
push 0x10
call esi
push 0
jmp 0x1013c7b4
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x11
call esi
test ax, ax
jl 0x1013c581
push 0x10
call esi
push 1
jmp 0x1013c7b4
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x11
call esi
test ax, ax
jge 0x1013c7ae
push 2
push 2
mov ecx, dword [0x10a0b488]
jmp 0x1013c8d9
push 0x10
call esi
push 2
test ax, ax
mov ecx, dword [0x10a0b488]
jge 0x1013c82c
call fcn.100eef4d
jmp case.default.0x1013c859
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 3
jmp 0x1013c81a
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 4
jmp 0x1013c81a
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 5
jmp 0x1013c81a
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 6
jmp 0x1013c81a
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 7
jmp 0x1013c81a
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 8
jmp 0x1013c81a
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
push esi
test ax, ax
mov ecx, dword [0x10a0b488]
jge 0x1013c82c
push 2
jmp 0x1013c8d9
push 1
jmp 0x1013c8d9
mov ecx, dword [0x10a0b488]
mov eax, dword [ecx + 0xc]
xor edx, edx
cmp eax, edx
push edx
jne 0x1013c5ab
push edx
jmp 0x1013c8d9
lea eax, [edi - 0x71]
cmp eax, 8
ja case.default.0x1013c859
jmp dword [eax*4 + 0x1013c96b]
mov ecx, dword [0x10a0b488]
jmp 0x1013c59e
mov ecx, dword [0x10a0b488]
push 2
jmp 0x1013c5a0
mov ecx, dword [0x10a0b488]
push 3
jmp 0x1013c5a0
mov ecx, dword [0x10a0b488]
push 4
jmp 0x1013c5a0
mov ecx, dword [0x10a0b488]
push 5
jmp 0x1013c5a0
mov ecx, dword [0x10a0b488]
push 6
jmp 0x1013c5a0
mov ecx, dword [0x10a0b488]
push 7
jmp 0x1013c5a0
mov ecx, dword [0x10a0b488]
push 8
jmp 0x1013c5a0
mov ecx, dword [0x10a0b488]
push 9
jmp 0x1013c5a0
push 0
jmp 0x1013c8d9
push 4
call fcn.100f035d
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
call fcn.101581be
pop edi
pop esi
pop ebx
leave
ret 4