Function at 0x10049900
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x14
mov eax, dword [0x100e50d4]
xor eax, esp
mov dword [esp + 0x10], eax
cmp byte [0x100f2466], 0
push ebx
push esi
push edi
mov dword [esp + 0x14], ecx
je 0x1004a0a2
test ecx, ecx
jle 0x1004a094
lea eax, [esp + 0x18]
mov dword [esp + 0x18], ecx
push eax
lea eax, [esp + 0x10]
push eax
call fcn.1004f930
mov eax, dword [esp + 0xc]
xor edi, edi
mov esi, dword [esp + 0x10]
mov dword [esp + 0x18], eax
cmp eax, esi
je 0x1004a094
nop dword [eax]
lea ecx, [esp + 0x18]
inc edi
call fcn.10013980
cmp dword [esp + 0x18], esi
jne 0x10049960
test edi, edi
je 0x1004a094
lea eax, [esp + 0x14]
push eax
call fcn.10012170
cmp byte [eax + 0x10], 0
je 0x1004a094
cmp byte [0x100f26cf], 0
mov ecx, dword [esp + 0x14]
mov dword [0x100f2458], ecx
jne 0x10049c78
call fcn.1008c220
test al, al
je 0x10049c78
lea eax, [esp + 0x14]
push eax
call fcn.10012170
cmp byte [eax + 0x1e0], 0
jne 0x10049c78
lea eax, [esp + 0x14]
push eax
call fcn.10012170
mov eax, dword [eax + 4]
push eax
call dword [0x100f28d8]
add esp, 4
test eax, eax
jle 0x10049c1d
lea eax, [esp + 0x14]
push eax
call fcn.10012170
mov ecx, dword [eax + 4]
call fcn.1008c2f0
xor edi, edi
mov ebx, eax
mov dword [esp + 0x18], ebx
lea esi, [edi + 0xa]
lea eax, [esp + 0x14]
push eax
call fcn.10012170
cmp byte [eax + edi + 0x1d8], 0
jne 0x10049a1b
cmp ebx, esi
jae 0x10049a8a
add esi, 5
inc edi
cmp esi, 0x1e
jb 0x10049a03
cmp byte [0x10103531], 0
mov byte [0x100f2467], 0
je 0x10049a67
cmp byte [0x10103530], 0
je 0x10049a67
mov eax, dword [0x10103564]
xor edx, edx
mov byte [0x10103531], 0
mov dword [eax + 0x90], 0
mov eax, dword [0x100f2748]
mov ecx, dword [0x10103564]
add eax, 0x609ad0
call eax
mov ecx, 0x101035b4
call fcn.10016ca0
or edi, 0xffffffff
push edi
mov ecx, 0x100ff428
call fcn.100478f0
mov dword [0x100f245c], ebx
jmp 0x10049cd1
cmp edi, 0xffffffff
je 0x10049a24
cmp byte [0x10103531], 0
mov cl, 1
mov byte [0x100f2467], cl
jne 0x10049bf7
cmp byte [0x10103530], 0
je 0x10049adc
mov eax, dword [0x10103564]
xor edx, edx
mov byte [0x10103531], cl
mov dword [eax + 0x90], 1
mov eax, dword [0x100f2748]
mov ecx, dword [0x10103564]
add eax, 0x609b50
call eax
mov cl, byte [0x100f2467]
mov eax, dword [0x100f2460]
cmp eax, dword [esp + 0x14]
jne 0x10049bf7
cmp ebx, dword [0x100f245c]
jle 0x10049bf7
test cl, cl
je 0x10049bf7
cmp byte [0x100ff428], 0
je 0x10049bf7
push 0
mov ecx, 0x100ff428
call fcn.100473f0
mov esi, 0x10100b24
mov ebx, 8
cmp byte [esi - 0x34], 0
je 0x10049b48
mov eax, dword [esi]
xor edx, edx
mov byte [esi - 0x33], 0
mov dword [eax + 0x90], 0
mov eax, dword [0x100f2748]
mov ecx, dword [esi]
add eax, 0x609ad0
call eax
cmp byte [esi + 0x6ec], 0
je 0x10049b7c
mov eax, dword [esi + 0x720]
xor edx, edx
mov byte [esi + 0x6ed], 0
mov dword [eax + 0x90], 0
mov eax, dword [0x100f2748]
mov ecx, dword [esi + 0x720]
add eax, 0x609ad0
call eax
cmp byte [esi + 0xe0c], 0
je 0x10049bb0
mov eax, dword [esi + 0xe40]
xor edx, edx
mov byte [esi + 0xe0d], 0
mov dword [eax + 0x90], 0
mov eax, dword [0x100f2748]
mov ecx, dword [esi + 0xe40]
add eax, 0x609ad0
call eax
cmp byte [esi + 0x152c], 0
je 0x10049be4
mov eax, dword [esi + 0x1560]
xor edx, edx
mov byte [esi + 0x152d], 0
mov dword [eax + 0x90], 0
mov eax, dword [0x100f2748]
mov ecx, dword [esi + 0x1560]
add eax, 0x609ad0
call eax
add esi, 0xe4
sub ebx, 1
jne 0x10049b22
mov ebx, dword [esp + 0x18]
cmp dword [0x101035b8], 0
jne 0x10049a74
movss xmm1, dword [0x100da784]
mov ecx, 0x101035b4
push 1
call fcn.10016ba0
jmp 0x10049a74
cmp byte [0x10103531], 0
mov byte [0x100f2467], 0
je 0x10049c6c
cmp byte [0x10103530], 0
je 0x10049c60
mov eax, dword [0x10103564]
xor edx, edx
mov byte [0x10103531], 0
mov dword [eax + 0x90], 0
mov eax, dword [0x100f2748]
mov ecx, dword [0x10103564]
add eax, 0x609ad0
call eax
push 0xffffffffffffffff
mov ecx, 0x100ff428
call fcn.100478f0
mov ecx, 0x101035b4
call fcn.10016ca0
jmp 0x10049cd1
cmp byte [0x10103531], 0
mov byte [0x100f2467], 0
je 0x10049cbb
cmp byte [0x10103530], 0
je 0x10049cbb
mov eax, dword [0x10103564]
xor edx, edx
mov byte [0x10103531], 0
mov dword [eax + 0x90], 0
mov eax, dword [0x100f2748]
mov ecx, dword [0x10103564]
add eax, 0x609ad0
call eax
mov ecx, 0x101035b4
call fcn.10016ca0
push 0xffffffffffffffff
mov ecx, 0x100ff428
call fcn.100478f0
lea eax, [esp + 0x14]
push eax
call fcn.10012170
add eax, 0x10
mov ecx, 0x100ff428
push eax
push 1
call fcn.100482f0
cmp byte [0x10102b60], 0
jne 0x10049d00
push 1
mov ecx, 0x100ff428
call fcn.100484f0
mov eax, dword [0x100f2460]
cmp eax, dword [esp + 0x14]
je 0x10049f46
cmp byte [0x100f2467], 0
je 0x10049e16
cmp byte [0x100ff428], 0
je 0x1004a099
push 0
mov ecx, 0x100ff428
call fcn.100473f0
mov esi, 0x10100b24
mov edi, 8
nop
cmp byte [esi - 0x34], 0
je 0x10049d66
mov eax, dword [esi]
xor edx, edx
mov byte [esi - 0x33], 0
mov dword [eax + 0x90], 0
mov eax, dword [0x100f2748]
mov ecx, dword [esi]
add eax, 0x609ad0
call eax
cmp byte [esi + 0x6ec], 0
je 0x10049d9a
mov eax, dword [esi + 0x720]
xor edx, edx
mov byte [esi + 0x6ed], 0
mov dword [eax + 0x90], 0
mov eax, dword [0x100f2748]
mov ecx, dword [esi + 0x720]
add eax, 0x609ad0
call eax
cmp byte [esi + 0xe0c], 0
je 0x10049dce
mov eax, dword [esi + 0xe40]
xor edx, edx
mov byte [esi + 0xe0d], 0
mov dword [eax + 0x90], 0
mov eax, dword [0x100f2748]
mov ecx, dword [esi + 0xe40]
add eax, 0x609ad0
call eax
cmp byte [esi + 0x152c], 0
je 0x10049e02
mov eax, dword [esi + 0x1560]
xor edx, edx
mov byte [esi + 0x152d], 0
mov dword [eax + 0x90], 0
mov eax, dword [0x100f2748]
mov ecx, dword [esi + 0x1560]
add eax, 0x609ad0
call eax
add esi, 0xe4
sub edi, 1
jne 0x10049d40
jmp 0x1004a071
cmp byte [0x100f2465], 0
je 0x10049e4a
push 1
mov ecx, 0x100ff428
call fcn.100473f0
lea eax, [esp + 0x14]
push eax
call fcn.10012170
add eax, 0x10
mov ecx, 0x100ff428
push eax
push 1
call fcn.100471a0
jmp 0x1004a071
cmp byte [0x100ff428], 0
je 0x1004a099
push 0
mov ecx, 0x100ff428
call fcn.100473f0
mov esi, 0x10100b24
mov edi, 8
nop dword [eax]
cmp byte [esi - 0x34], 0
je 0x10049e96
mov eax, dword [esi]
xor edx, edx
mov byte [esi - 0x33], 0
mov dword [eax + 0x90], 0
mov eax, dword [0x100f2748]
mov ecx, dword [esi]
add eax, 0x609ad0
call eax
cmp byte [esi + 0x6ec], 0
je 0x10049eca
mov eax, dword [esi + 0x720]
xor edx, edx
mov byte [esi + 0x6ed], 0
mov dword [eax + 0x90], 0
mov eax, dword [0x100f2748]
mov ecx, dword [esi + 0x720]
add eax, 0x609ad0
call eax
cmp byte [esi + 0xe0c], 0
je 0x10049efe
mov eax, dword [esi + 0xe40]
xor edx, edx
mov byte [esi + 0xe0d], 0
mov dword [eax + 0x90], 0
mov eax, dword [0x100f2748]
mov ecx, dword [esi + 0xe40]
add eax, 0x609ad0
call eax
cmp byte [esi + 0x152c], 0
je 0x10049f32
mov eax, dword [esi + 0x1560]
xor edx, edx
mov byte [esi + 0x152d], 0
mov dword [eax + 0x90], 0
mov eax, dword [0x100f2748]
mov ecx, dword [esi + 0x1560]
add eax, 0x609ad0
call eax
add esi, 0xe4
sub edi, 1
jne 0x10049e70
jmp 0x1004a071
cmp byte [0x100f2467], 0
jne 0x1004a071
cmp byte [0x100ff428], 0
je 0x1004a099
cmp byte [0x100f2465], 0
jne 0x1004a071
push 0x12
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8000
test cx, ax
ja 0x1004a071
push 0
mov ecx, 0x100ff428
call fcn.100473f0
mov esi, 0x10100b24
mov edi, 8
nop dword [eax]
cmp byte [esi - 0x34], 0
je 0x10049fc6
mov eax, dword [esi]
xor edx, edx
mov byte [esi - 0x33], 0
mov dword [eax + 0x90], 0
mov eax, dword [0x100f2748]
mov ecx, dword [esi]
add eax, 0x609ad0
call eax
cmp byte [esi + 0x6ec], 0
je 0x10049ffa
mov eax, dword [esi + 0x720]
xor edx, edx
mov byte [esi + 0x6ed], 0
mov dword [eax + 0x90], 0
mov eax, dword [0x100f2748]
mov ecx, dword [esi + 0x720]
add eax, 0x609ad0
call eax
cmp byte [esi + 0xe0c], 0
je 0x1004a02e
mov eax, dword [esi + 0xe40]
xor edx, edx
mov byte [esi + 0xe0d], 0
mov dword [eax + 0x90], 0
mov eax, dword [0x100f2748]
mov ecx, dword [esi + 0xe40]
add eax, 0x609ad0
call eax
cmp byte [esi + 0x152c], 0
je 0x1004a062
mov eax, dword [esi + 0x1560]
xor edx, edx
mov byte [esi + 0x152d], 0
mov dword [eax + 0x90], 0
mov eax, dword [0x100f2748]
mov ecx, dword [esi + 0x1560]
add eax, 0x609ad0
call eax
add esi, 0xe4
sub edi, 1
jne 0x10049fa0
cmp byte [0x100ff428], 0
je 0x1004a099
lea eax, [esp + 0x14]
push eax
call fcn.10012170
add eax, 0x10
mov ecx, 0x100ff428
push eax
call fcn.10047760
jmp 0x1004a099
call fcn.100497e0
mov eax, dword [esp + 0x14]
mov dword [0x100f2460], eax
mov ecx, dword [esp + 0x1c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10097f9e
mov esp, ebp
pop ebp
ret