Function at 0x1001315f
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, 0x100634d7
call fcn.100628b0
sub esp, 0xa0
push ebx
push esi
push edi
mov eax, ecx
mov dword [ebp - 0x10], esp
xor esi, esi
mov dword [ebp - 0x44], edx
cmp byte [ebp + 0x2c], 0
mov dword [ebp - 0x14], eax
je 0x10013808
cmp byte [ebp + 0x24], 0
je 0x100131de
mov edi, dword [ebp + 0xc]
mov edx, dword [ebp + 0x20]
cmp dword [edi], esi
je 0x1001319e
cmp dword [edx], esi
je 0x1001319e
inc esi
mov ecx, dword [ebp + 0x14]
mov eax, dword [edi]
sub esi, eax
mov eax, dword [ecx]
add eax, 8
add eax, esi
jne 0x100131b0
mov eax, dword [edx]
mov eax, dword [ecx]
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ebp + 0x1c]
add ecx, ecx
mov dword [eax], ecx
mov eax, dword [eax]
mov eax, dword [ebp + 0x10]
mov dword [edi], 1
mov eax, dword [eax]
mov dword [edx], eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x18]
lea ecx, [ebp - 0x60]
inc esi
mov dword [ebp - 0x48], eax
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
push esi
call fcn.100049ee
push 0x8af
lea eax, [ebp - 0x60]
mov dword [ebp - 4], ebx
push eax
push ebx
push ebx
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x20], esi
push esi
mov dword [ebp - 0x30], 8
mov edx, 0x66ac
push eax
mov ecx, 0x483b
call fcn.1001583b
add esp, 0x18
mov dword [ebp - 0x2c], ebx
jmp 0x10013235
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x40], 0x80d68f98
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 2
jl 0x10013227
mov dword [ebp - 0x2c], ebx
jmp 0x1001324e
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x38], 7
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], esi
jl 0x10013240
mov dword [ebp - 0x18], 0x1770
cmp dword [ebp - 0x18], 0x17a6
jle 0x100132dd
mov edi, ebx
mov eax, ebx
mov dword [ebp - 0x14], ebx
mov ecx, ebx
mov dword [ebp - 0x20], ebx
mov edx, ebx
mov dword [ebp - 0x34], ebx
add ecx, edx
add ecx, eax
mov eax, edi
shl eax, cl
lea ecx, [ebp - 0xac]
cdq
push edx
push eax
call fcn.10001a8a
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10013294
mov eax, dword [eax]
push eax
call fcn.1004b583
pop ecx
push ebx
push esi
lea ecx, [ebp - 0xac]
call fcn.10004d7a
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x14]
inc edx
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x34], edx
cmp edx, 0x57e3
jl 0x10013274
inc ecx
mov dword [ebp - 0x20], ecx
cmp ecx, 0x223c
jl 0x1001326f
inc eax
mov dword [ebp - 0x14], eax
cmp eax, 0x480b
jl 0x1001326a
inc edi
cmp edi, 0x1d6a
jl 0x10013265
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
mov eax, 0xffff
setg dl
add edx, eax
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x1c]
neg eax
sbb eax, eax
xor edx, edx
inc eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x60]
mov dword [eax], ecx
mov eax, dword [ebp - 0x1c]
cmp eax, ecx
mov eax, dword [ebp - 0x1c]
setl dl
xor ecx, ecx
cmp eax, edx
setge cl
cmp ecx, esi
jle 0x100133ec
mov dword [ebp - 0x14], 0x137d3709
mov ecx, ebx
mov dword [ebp - 0x20], esi
cmp dword [ebp - 0x14], ebx
je 0x10013348
mov ecx, esi
xor eax, eax
test ecx, ecx
setns al
sub eax, dword [ebp - 0x14]
je 0x1001335b
mov edx, esi
cmp dword [ebp - 0x14], ebx
jne 0x1001335d
mov edx, ebx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x14]
setle cl
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp - 0x3c]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x14]
setge cl
imul eax, ecx
test eax, eax
je 0x1001338c
cmp dword [ebp - 0x40], ebx
je 0x1001338c
mov ebx, esi
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
or edi, 0xffffffff
cmp ebx, edi
setl cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x1c]
setge dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x60]
sete bl
xor edx, edx
cmp dword [eax], ecx
setge dl
sub edx, ebx
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x20]
cmp eax, 0x4d7e
mov eax, 0xffff
setl cl
cmp eax, ecx
mov eax, dword [ebp - 0x60]
sbb ecx, ecx
neg ecx
mov dword [eax], ecx
mov eax, dword [ebp - 0x20]
imul eax, dword [ebp - 0x30]
xor ebx, ebx
mov dword [ebp - 0x3c], eax
jmp 0x1001344c
mov dword [ebp - 0x14], 0xab83
or edi, 0xffffffff
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x14], edi
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x14]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setg cl
xor edx, edx
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x30]
cmp eax, esi
setge dl
xor ecx, ecx
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x14]
cmp edx, eax
mov eax, dword [ebp - 0x60]
setne cl
xor edx, edx
cmp ecx, dword [eax]
setg dl
sub edx, 0x8b20606
neg edx
sbb edx, edx
inc edx
mov dword [ebp - 0x34], edx
cmp dword [ebp - 0x18], 0x14ef
jge 0x10013460
push str.fqpmsk_uiuqjxv_nkt_vbeooq_inon_wvjmemay_frie_vdohx_cjksmfgj_augmz_rsjmve_rkc_zvypzfyn_qrwoqrr
call fcn.1004b583
pop ecx
lea ecx, [ebp - 0x60]
mov dword [ebp - 4], edi
call fcn.10004a4b
mov ecx, dword [ebp + 0x18]
push esi
mov al, byte [ecx]
lea ecx, [ebp - 0x54]
mov byte [ebp + 0x2f], al
mov dword [ebp - 0x14], esi
call fcn.100049ee
mov dword [ebp - 4], 3
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x18], 0x907c4e7c
mov dword [ebp - 0x18], 2
mov dword [ebp - 0x18], esi
push esi
call fcn.100049ee
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x18], 0x4605dd88
mov dword [ebp - 0x1c], ebx
jmp 0x100134bf
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x54]
mov dword [eax + ecx*4], 0x3ac2
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x100134af
mov dword [ebp - 0x1c], ebx
jmp 0x100134d9
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x70]
mov dword [eax + ecx*4], 0x212908cd
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x100134c9
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x54]
mov edx, dword [eax]
xor eax, eax
cmp edx, 0x1c36b586
setne al
xor ecx, ecx
cmp eax, 0x29ed
setne cl
xor eax, eax
cmp ecx, edx
setge al
add eax, edx
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x14], 0x3758
mov edi, dword [ebp - 0x54]
jl 0x1001352b
cmp dword [edi], ebx
jne 0x1001352b
mov esi, ebx
xor eax, eax
cmp esi, 0xfffffff9
setge al
xor edx, edx
imul eax, eax, 9
cmp eax, dword [edi]
mov eax, dword [ebp - 0x70]
mov edi, dword [edi]
setle dl
xor ecx, ecx
mov esi, dword [eax]
mov eax, dword [ebp - 0x14]
cmp eax, edx
setge cl
xor eax, eax
imul ecx, esi
cmp ecx, edi
setne al
xor ecx, ecx
cmp eax, 0xfffffff6
setg cl
xor eax, eax
cmp ecx, esi
setle al
xor edx, edx
cmp eax, 0xfffffffb
mov eax, dword [ebp - 0x14]
setge dl
xor ecx, ecx
add edx, edi
cmp eax, edx
setge cl
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], ebx
jne 0x10013586
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
xor edx, edx
mov eax, dword [ebp - 0x70]
cmp dword [eax], ebx
mov eax, dword [ebp - 0x14]
setge dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x54]
setl cl
xor edx, edx
cmp ecx, dword [eax]
lea ecx, [ebp - 0x70]
mov eax, dword [ebp - 0x70]
setle dl
mov dword [eax], edx
mov dword [ebp - 0x18], edx
call fcn.10004a4b
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x54]
call fcn.10004a4b
push 0x5425
push ecx
lea eax, [ebp - 0x48]
mov ecx, 0x1596
push eax
push ebx
lea edx, [ebp + 0x2f]
call fcn.10012cad
push 0x4f90
push 0x48df
push 0x503d
push ebx
xor edi, edi
xor dl, dl
push 0x71ff
inc edi
mov ecx, 0x3397
push edi
call fcn.100127dc
mov esi, dword [ebp - 0x48]
add esp, 0x28
mov dl, 0x6d
mov cl, byte [esi]
call fcn.1001a184
push 4
lea ecx, [ebp - 0x80]
mov byte [esi], al
call fcn.100049ee
mov dword [ebp - 4], 4
lea eax, [ebp - 0x80]
push 0x515f
mov dword [ebp - 0x28], ebx
lea ecx, [ebp - 0x24]
push eax
mov dword [ebp - 0x18], 0x56cf6d70
mov edx, 0x6da9
mov dword [ebp - 0x18], 0x6221
mov dword [ebp - 0x18], 0xf4926a67
push ebx
call fcn.10015407
add esp, 0xc
mov dword [ebp - 0x24], ebx
jmp 0x10013667
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x64], 0xf81a770a
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jl 0x10013659
mov dword [ebp - 0x24], ebx
jmp 0x1001367e
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x84], edi
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jl 0x10013671
mov dword [ebp - 0x24], ebx
jmp 0x10013699
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x88], 0x1e9426ce
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jl 0x10013688
lea eax, [ebp - 0x80]
xor dl, dl
push eax
lea eax, [ebp - 0x28]
push eax
push ecx
call fcn.10015341
add esp, 0xc
mov dword [ebp - 0x28], 3
cmp dword [ebp - 0x28], ebx
jl 0x100137f3
mov dword [ebp - 0x20], 0xfffffffa
lea ecx, [ebp - 0x94]
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x18], ebx
push 2
call fcn.100049ee
mov byte [ebp - 4], 5
mov dword [ebp - 0x74], 0xfffffff9
mov dword [ebp - 0x14], ebx
jmp 0x10013702
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x94]
mov dword [eax + ecx*4], 5
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x100136ef
mov edi, dword [ebp - 0x28]
xor ebx, ebx
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x80]
mov esi, dword [ebp - 0x80]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x28]
add ecx, 0xbe362803
mov dword [esi + edi*4], eax
mov eax, dword [ebp - 0x28]
add eax, ecx
mov dword [ebp - 0x64], eax
mov ecx, dword [ebp - 0x20]
imul ecx, eax
mov eax, dword [ebp - 0x28]
cmp ecx, eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x20]
setge bl
xor ecx, ecx
cmp eax, 0x3de76903
mov eax, dword [ebp - 0x20]
setle cl
add edx, ecx
neg edx
sub edx, ebx
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [ebp - 0x28]
setle cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x28]
setle dl
xor ecx, ecx
cmp edx, eax
mov edx, 0x2e9f
setne cl
xor eax, eax
cmp dword [esi + edi*4], ecx
mov ecx, 0xfffe
setne al
cmp ecx, eax
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, 0x9546
setne cl
or eax, 0xffffffff
cmp eax, ecx
mov dword [ebp - 0x84], ecx
lea ecx, [ebp - 0x74]
sbb eax, eax
xor ebx, ebx
push ebx
push ebx
push 1
push 0x72f2
push 0x1b88
push 0x1a15
push 0xaff
push 0x18eb
neg eax
push 0x6449
mov dword [ebp - 0x18], eax
push 0xec6
call fcn.1001315f
add esp, 0x28
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x94]
call fcn.10004a4b
dec dword [ebp - 0x28]
jns 0x100136c1
lea ecx, [ebp - 0x80]
call fcn.10004a4b
mov ecx, dword [ebp - 0x44]
mov al, byte [ebp + 0x2f]
mov byte [ecx], al
jmp 0x100131cd
mov dword [ebp - 0x30], 0x3526
cmp dword [ebp - 0x30], 0x382d
jle 0x10013884
mov edi, esi
mov dword [ebp - 0x20], esi
mov ebx, esi
mov dword [ebp - 0x34], esi
mov eax, edi
mov ecx, esi
cdq
idiv ebx
mov dword [ebp - 0x18], ecx
mov ebx, edx
mov edi, ebx
mov dword [ebp - 0x44], esi
sar edi, cl
mov ecx, esi
mov eax, edi
shl eax, cl
mov ecx, 0x1007f2b8
cdq
push edx
push eax
call fcn.1000473c
inc esi
cmp esi, 0xcaa
jl 0x10013835
mov ecx, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x18], ecx
push 0
pop esi
cmp ecx, 0x706e
jl 0x1001382e
mov ebx, dword [ebp - 0x34]
mov edi, dword [ebp - 0x20]
inc ebx
mov dword [ebp - 0x34], ebx
cmp ebx, 0x71fd
jl 0x10013822
inc edi
mov dword [ebp - 0x20], edi
cmp edi, 0x60ed
jl 0x1001381d
mov eax, dword [ebp - 0x14]
cmp byte [ebp + 0x28], 0
je 0x10013893
push esi
call dword [sym.imp.USER32.dll_GetKeyboardState]
jmp 0x10013895
inc dword [eax]
mov dword [ebp - 4], 6
cmp dword [ebp - 0x30], 0x3422
jge 0x100131cd
mov edx, str.fuap_bzwmco_wrv_jlmr_kmaptnjk_ckqfj_ypujp
mov ecx, 0x1007f2b8
call fcn.1000877a
jmp 0x100131cd