Function at 0x100f096d
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [0x109be284]
cmp byte [eax + 0x58], 1
push ebx
push esi
push edi
mov ebx, ecx
je case.default.0x100f0fdf
push 0
mov esi, 0x109ff790
push 0
mov ecx, esi
call fcn.10035dfd
push 0x101374ba
mov ecx, esi
call fcn.10035d24
mov ecx, esi
call fcn.10035b1d
mov ecx, dword [0x109be2dc]
call fcn.10059ffc
mov ecx, dword [0x109be1d0]
cmp byte [ecx + 0x242c], 0
jne 0x100f0a15
mov ecx, dword [0x109be284]
mov esi, 0xf7
push esi
call fcn.10081f0a
test al, al
je 0x100f09e5
mov ecx, dword [0x109be284]
push esi
call fcn.10086051
cmp dword [ebp + 8], 0x49
je 0x100f0a05
cmp dword [ebp + 8], 0x4d
jne case.default.0x100f0fdf
mov ecx, dword [0x109be24c]
call fcn.1009e710
jmp case.default.0x100f0fdf
mov ecx, dword [0x109be20c]
call fcn.1005b365
jmp case.default.0x100f0fdf
mov edi, dword [ebp + 8]
cmp edi, 0x4e
push 2
pop esi
ja 0x100f0cc1
je 0x100f0c9f
cmp edi, 0x48
ja 0x100f0c27
je 0x100f0c04
mov eax, edi
sub eax, 0x2d
je 0x100f0bf5
sub eax, 0x15
je 0x100f0be5
dec eax
je 0x100f0bc8
sub eax, esi
je 0x100f0b4f
dec eax
je 0x100f0a76
dec eax
jne 0x100f0f75
mov ecx, dword [0x109be2bc]
call fcn.1006c12f
jmp 0x100f0f75
cmp dword [0x109b8894], 6
je case.default.0x100f0fdf
mov ecx, dword [0x109be284]
push 0xe8
call fcn.10081f0a
test al, al
jne case.default.0x100f0fdf
mov ecx, dword [0x109be284]
push 0xe9
call fcn.10081f0a
test al, al
jne case.default.0x100f0fdf
mov ecx, dword [0x109be284]
push 0xe1
call fcn.10081f0a
test al, al
jne case.default.0x100f0fdf
mov ecx, dword [0x109be1d0]
call fcn.100ceb7b
test al, al
je case.default.0x100f0fdf
mov eax, dword [0x109be1d0]
cmp byte [eax + 0x139], 0
jne case.default.0x100f0fdf
cmp byte [eax + 0x184], 0
jne case.default.0x100f0fdf
mov ecx, dword [0x109be1f0]
call fcn.10095f7d
mov esi, eax
test esi, esi
je 0x100f0f75
mov ecx, dword [0x109be1f0]
push esi
lea eax, [ebp + 8]
push eax
call fcn.1009557d
mov ecx, dword [0x109be1f4]
push esi
call fcn.10091c45
mov ecx, dword [0x109be1d0]
push 0
push dword [ebp + 8]
call fcn.100d3c8a
mov ecx, dword [0x109be1f0]
push esi
call fcn.1009609c
jmp 0x100f0f75
cmp dword [0x109b8894], 6
je case.default.0x100f0fdf
call fcn.100cebc5
test al, al
je case.default.0x100f0fdf
mov ecx, dword [0x109be1d0]
cmp byte [ecx + 0x139], 0
jne case.default.0x100f0fdf
mov eax, dword [ecx + 0x23f8]
and eax, 0x400
xor edx, edx
or eax, edx
jne case.default.0x100f0fdf
cmp byte [ecx + 0x184], dl
je 0x100f0bac
mov ecx, dword [ecx + 0x23d4]
cmp ecx, 1
je 0x100f0bac
cmp ecx, esi
jne 0x100f0f75
mov ecx, dword [0x109be2c4]
call fcn.1005811a
mov ecx, dword [0x109be1d8]
push eax
call fcn.100db6c0
jmp 0x100f0d8e
cmp byte [0x109be0bf], 0
jne 0x100f0f75
mov ecx, dword [0x109be2c4]
call fcn.10057c54
jmp 0x100f0f75
mov ecx, dword [0x109be1d8]
call fcn.100daa1c
jmp 0x100f0f75
mov ecx, 0x109bee18
call fcn.100dee7c
jmp 0x100f0f75
mov ecx, dword [0x109be2b8]
cmp byte [ecx + 0x1d58], 0
je 0x100f0c1d
call fcn.100c271f
jmp 0x100f0f75
call fcn.100c2707
jmp 0x100f0f75
mov eax, edi
sub eax, 0x49
je 0x100f0c8f
dec eax
je 0x100f0c70
dec eax
je 0x100f0c5e
dec eax
je 0x100f0c4e
dec eax
jne 0x100f0f75
mov ecx, dword [0x109be24c]
call fcn.1009e710
jmp 0x100f0f75
mov ecx, dword [0x109be210]
call fcn.100be84b
jmp 0x100f0f75
mov ecx, dword [0x109be208]
push 0
call fcn.100b9e40
jmp 0x100f0f75
mov ecx, dword [0x109be240]
cmp byte [ecx], 0
je 0x100f0c85
call fcn.10051c56
jmp 0x100f0f75
call fcn.10051c3b
jmp 0x100f0f75
mov ecx, dword [0x109be20c]
call fcn.1005b365
jmp 0x100f0f75
mov eax, dword [0x109be254]
cmp byte [eax + 4], 1
jne 0x100f0cbd
push 5
push 0
push 1
call fcn.100c0dfe
add esp, 0xc
jmp 0x100f0f75
push 4
jmp 0x100f0cac
cmp edi, 0x58
ja 0x100f0e2e
je 0x100f0e11
mov eax, edi
sub eax, 0x4f
je 0x100f0e01
sub eax, 3
je 0x100f0db8
sub eax, esi
je 0x100f0d3c
dec eax
je 0x100f0d02
dec eax
jne 0x100f0f75
mov ecx, dword [0x109be200]
call fcn.100e2472
jmp 0x100f0f75
cmp byte [ebx + 0x94], 0
je 0x100f0d1f
add ebx, 0x95
cmp byte [ebx], 0
sete al
mov byte [ebx], al
mov ecx, dword [0x109be1d0]
cmp byte [ecx + 0x242c], 0
je 0x100f0f75
mov ecx, dword [0x109be250]
call fcn.100b4610
jmp 0x100f0f75
call fcn.100cebc5
test al, al
je case.default.0x100f0fdf
mov eax, dword [0x109be1d0]
cmp byte [eax + 0x139], 0
jne case.default.0x100f0fdf
cmp byte [eax + 0x184], 0
je 0x100f0d77
mov eax, dword [eax + 0x23d4]
cmp eax, 1
je 0x100f0d77
cmp eax, esi
jne 0x100f0f75
mov ecx, dword [0x109be2c4]
call fcn.1005811a
mov ecx, dword [0x109be1d8]
push eax
call fcn.100db827
mov esi, eax
test esi, esi
je 0x100f0f75
mov ecx, dword [0x109be1d8]
push esi
call fcn.100db1c8
mov ecx, dword [0x109be1d0]
push 0
push eax
push esi
call fcn.100d3dc7
jmp 0x100f0f75
cmp dword [0x109b8894], 6
je case.default.0x100f0fdf
mov esi, dword [ecx + 0x188]
mov ecx, dword [0x109be1d8]
push esi
call fcn.100db4c5
test al, al
je 0x100f0f75
mov ecx, dword [0x109be1d0]
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.100d3dc7
mov ecx, dword [0x109be1d8]
push esi
call fcn.100daccf
jmp 0x100f0f75
mov ecx, dword [0x109be254]
call fcn.100c0dbf
jmp 0x100f0f75
call fcn.100ceb7b
test al, al
je case.default.0x100f0fdf
mov ecx, dword [0x109be1d0]
call fcn.100d2054
jmp 0x100f0f75
mov eax, edi
sub eax, 0x5a
je 0x100f0f70
sub eax, 0x20
je 0x100f0e75
dec eax
je 0x100f0e64
sub eax, 0x40
je 0x100f0e52
sub eax, esi
jne 0x100f0f75
push 0x64
jmp 0x100f0e54
push 0x65
mov ecx, dword [0x109be2c0]
call fcn.100b5002
jmp 0x100f0f75
push 0xc
mov ecx, 0x109bee18
call fcn.100ded08
jmp 0x100f0f75
cmp byte [0x109be0be], 0
je 0x100f0f75
inc dword [ebx + 0x2f0]
mov eax, dword [ebx + 0x2f0]
cmp eax, dword [ebx + 0x2f4]
jne 0x100f0e9d
and dword [ebx + 0x2f0], 0
mov ecx, dword [0x109be1d0]
lea eax, [ebp - 0x10]
push eax
call fcn.100ce9fe
mov eax, dword [0x109be1d0]
mov ecx, dword [ebp - 8]
mov eax, dword [eax + 0x2428]
mov esi, dword [ebx + 0x2f0]
mov dword [ebp - 4], ecx
mov ecx, dword [0x109b242c]
push eax
call fcn.1001852a
fmul dword [0x1013752c]
mov eax, dword [ebp - 0x10]
sub esp, 0x14
fadd dword [ebx + esi*4 + 0x278]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 4]
fadd dword [ebp - 0xc]
mov dword [ebp - 0x14], eax
mov edi, esp
mov ecx, 0x109bee18
fstp dword [ebp - 0x18]
fld dword [ebx + esi*4 + 0x200]
lea esi, [ebp - 0x1c]
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.100dec06
mov eax, dword [ebx + 0x2f0]
fld dword [ebp - 0x10]
sub esp, 0x14
fadd dword [ebx + eax*4 + 0x98]
mov edi, esp
lea esi, [ebp - 0x1c]
mov ecx, 0x109bee18
fstp dword [ebp - 0x1c]
fld dword [ebp - 0xc]
fadd dword [ebx + eax*4 + 0x110]
fstp dword [ebp - 0x18]
fld dword [ebp - 8]
fadd dword [ebx + eax*4 + 0x188]
fstp dword [ebp - 0x14]
fld dword [ebx + eax*4 + 0x200]
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.100deba8
mov edi, dword [ebp + 8]
jmp 0x100f0f75
call fcn.100ce598
mov eax, dword [0x109be254]
cmp byte [eax + 0x3c], 0
mov ecx, dword [0x109be284]
push 0xe8
je 0x100f105f
call fcn.10081f0a
test al, al
jne case.default.0x100f0fdf
mov ecx, dword [0x109be284]
push 0xe9
call fcn.10081f0a
test al, al
jne case.default.0x100f0fdf
mov ecx, dword [0x109be284]
push 0xe1
call fcn.10081f0a
test al, al
jne case.default.0x100f0fdf
cmp edi, 0x70
ja 0x100f1043
je 0x100f1031
lea eax, [edi - 0x30]
cmp eax, 9
ja case.default.0x100f0fdf
jmp dword [eax*4 + 0x100f1124]
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0
jmp 0x100f1020
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 1
jmp 0x100f1020
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 2
jmp 0x100f1020
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 3
jmp 0x100f1020
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 4
test ax, ax
mov ecx, dword [0x109be2c0]
jge 0x100f1118
jmp 0x100f1039
push 0
mov ecx, dword [0x109be2c0]
call fcn.100b5002
jmp case.default.0x100f0fdf
mov eax, edi
sub eax, 0x71
je 0x100f10d4
dec eax
je 0x100f10cd
dec eax
je 0x100f10c6
dec eax
jne case.default.0x100f0fdf
push 4
jmp 0x100f1033
call fcn.10081f0a
test al, al
jne case.default.0x100f0fdf
mov ecx, dword [0x109be284]
push 0xe9
call fcn.10081f0a
test al, al
jne case.default.0x100f0fdf
mov ecx, dword [0x109be284]
push 0xe1
call fcn.10081f0a
test al, al
jne case.default.0x100f0fdf
cmp edi, 0x72
ja 0x100f10df
je 0x100f10db
mov eax, edi
sub eax, 0x31
je 0x100f1031
dec eax
je 0x100f10d4
dec eax
je 0x100f10cd
dec eax
je 0x100f10c6
dec eax
je 0x100f105b
sub eax, 0x3b
je 0x100f10c2
dec eax
jne case.default.0x100f0fdf
push 1
jmp 0x100f1112
push 0
jmp 0x100f1112
push 3
jmp 0x100f1033
push 2
jmp 0x100f1033
push 1
jmp 0x100f1033
push 2
jmp 0x100f1112
mov eax, edi
sub eax, 0x73
je 0x100f1110
dec eax
je 0x100f110c
dec eax
je case.0x100f0fdf.54
dec eax
je case.0x100f0fdf.55
dec eax
je case.0x100f0fdf.56
dec eax
je case.0x100f0fdf.57
dec eax
jne case.default.0x100f0fdf
push 9
jmp 0x100f1112
push 8
jmp 0x100f1112
push 7
jmp 0x100f1112
push 6
jmp 0x100f1112
push 5
jmp 0x100f1112
push 4
jmp 0x100f1112
push 3
mov ecx, dword [0x109be2c0]
call fcn.100b5e12
pop edi
pop esi
pop ebx
leave
ret 4