Function at 0x10381e5
Capabilities:
Log keystrokes via polling

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x48
push ebx
push esi
push edi
mov edi, ecx
push 0
lea ecx, [ebp - 0xc]
call dword [sym.imp.mmcbase.DLL_public:_void___thiscall_mmcerror::SC::constructor_long_int_]
mov esi, dword [ebp + 8]
mov eax, dword [esi + 8]
cmp eax, 0xffffff8f
mov dword [ebp - 4], 1
mov ebx, 0xffffff50
ja 0x1038628
je 0x1038613
mov ecx, 0xffffff65
cmp eax, ecx
mov edx, 0xffffff4d
ja 0x1038475
je 0x10382d4
cmp eax, edx
je 0x1038598
cmp eax, 0xffffff4f
je 0x1038292
cmp eax, ebx
je 0x103866b
cmp eax, 0xffffff51
jne 0x1038713
call fcn.010216e8
mov esi, eax
test esi, esi
je 0x1038663
push 0x8005
mov ecx, edi
call fcn.0102e91d
test eax, eax
jne 0x1038284
cmp byte [edi + 0x1c0], 1
jne 0x1038663
mov byte [esi + 0x168], 1
xor eax, eax
jmp 0x1038748
mov eax, dword [edi + 0x178]
test eax, eax
je 0x10382af
push dword [esi + 0x14]
mov ecx, dword [eax + 0x48]
call fcn.01041b14
test al, al
jne 0x1038745
lea ecx, [edi + 0xd8]
call fcn.010213c0
lea ecx, [edi + 0x44]
mov ebx, eax
mov eax, dword [ecx]
mov edi, dword [ebx]
add esi, 0xc
push esi
call dword [eax + 0x74]
push eax
push ebx
call dword [edi + 0x1c]
jmp 0x1038745
mov si, word [esi + 0xc]
movzx eax, si
sub eax, 8
je 0x1038465
dec eax
je 0x103844a
sub eax, 4
je 0x103838f
sub eax, 0x21
mov ecx, edi
je 0x1038309
push esi
call fcn.01036fbb
mov dword [ebp - 4], eax
jmp 0x1038745
push 0x8003
call fcn.0102e91d
test eax, eax
je 0x1038745
mov esi, dword [edi + 0xd8]
test esi, esi
je 0x1038745
lea ecx, [edi + 0x44]
mov eax, dword [ecx]
call dword [eax + 0x74]
mov ebx, eax
test ebx, ebx
je 0x1038745
mov eax, dword [edi + 0x178]
mov ecx, dword [eax + 0x48]
call fcn.01029e24
test eax, eax
je 0x1038745
cmp eax, 1
jne 0x103836c
lea eax, [ebp + 0xc]
push eax
mov ecx, edi
call fcn.0102fc1b
cmp eax, 0xffffffff
je 0x1038745
jmp 0x1038379
jle 0x1038745
mov dword [ebp + 0xc], 0xfffffffb
push dword [ebp + 0xc]
mov eax, dword [esi]
push 0
push 0x9008
push ebx
push esi
call dword [eax + 0x58]
jmp 0x1038745
push 0x12
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
mov ecx, edi
jge 0x103871b
push 0x8004
call fcn.0102e91d
test eax, eax
je 0x1038745
mov eax, dword [edi + 0x234]
test eax, eax
jne 0x103840b
mov eax, dword [edi + 0x178]
mov ecx, dword [eax + 0x48]
call fcn.01029e24
test eax, eax
push 0xfffffffffffffff6
pop esi
mov dword [ebp + 0xc], esi
je 0x1038745
cmp eax, 1
jne 0x10383ef
lea eax, [ebp + 0xc]
push eax
mov ecx, edi
call fcn.0102fc1b
mov ebx, dword [ebp + 0xc]
jmp 0x10383f8
jle 0x1038745
push 0xfffffffffffffffb
pop ebx
cmp ebx, esi
je 0x1038745
cmp ebx, 0xfffffffe
je 0x1038745
jmp 0x1038416
xor ebx, ebx
cmp eax, 2
sete bl
add ebx, 0xfffffffc
mov esi, dword [edi + 0xd8]
test esi, esi
je 0x1038745
add edi, 0x44
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x74]
test eax, eax
je 0x1038745
mov ecx, dword [esi]
push ebx
push 0
push 0x9012
push eax
push esi
call dword [ecx + 0x58]
jmp 0x1038745
push 1
push dword [edi + 0x174]
mov ecx, edi
call fcn.0102937a
mov ecx, eax
call sub.MFC42u.DLL_CFrameWnd::SetActiveView
jmp 0x1038745
lea eax, [ebp - 0x14]
push eax
mov ecx, edi
call fcn.0102cf5f
jmp 0x1038745
cmp eax, 0xffffff68
je 0x1038594
cmp eax, 0xffffff6a
je 0x103849d
cmp eax, 0xffffff8d
jne 0x1038713
push esi
mov ecx, edi
call fcn.0102efec
jmp 0x1038748
mov eax, dword [edi + 0x178]
test eax, eax
je 0x10384ba
push dword [esi + 0x14]
mov ecx, dword [eax + 0x48]
call fcn.01041b14
test al, al
jne 0x1038745
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x28]
mov eax, dword [esi + 0xc]
test al, 1
mov dword [ebp - 0x44], ecx
mov ecx, dword [esi + 0x14]
mov dword [ebp - 0x40], ecx
mov ecx, dword [esi + 0x18]
mov dword [ebp - 0x3c], ecx
mov ecx, dword [esi + 0x1c]
mov dword [ebp - 0x2c], edx
mov edx, dword [esi + 0x2c]
mov dword [ebp - 0x38], ecx
mov ecx, dword [esi + 0x24]
mov dword [ebp - 0x28], edx
mov edx, dword [esi + 0x30]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x24], edx
je 0x1038501
lea eax, [ecx + ecx]
push eax
call sub.MFC42u.DLL_operatornew
pop ecx
mov dword [ebp - 0x34], eax
lea ecx, [edi + 0xd8]
call fcn.010213c0
mov ebx, eax
mov eax, dword [ebx]
lea ecx, [ebp - 0x48]
add edi, 0x44
mov edx, dword [edi]
push ecx
mov ecx, edi
mov dword [ebp + 0xc], eax
call dword [edx + 0x74]
push eax
mov eax, dword [ebp + 0xc]
push ebx
call dword [eax + 0x1c]
test eax, eax
jl 0x103854a
test byte [esi + 0xc], 1
je 0x1038559
xor eax, eax
push eax
push eax
push dword [esi + 0x24]
push dword [esi + 0x20]
push 0xffffffffffffffff
push dword [ebp - 0x34]
push eax
push eax
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test byte [esi + 0xc], 1
je 0x1038559
push dword [ebp - 0x34]
call sub.MFC42u.DLL_operatordelete
pop ecx
mov eax, dword [ebp - 0x48]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0x44]
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0x40]
mov dword [esi + 0x14], eax
mov eax, dword [ebp - 0x3c]
mov dword [esi + 0x18], eax
mov eax, dword [ebp - 0x38]
mov dword [esi + 0x1c], eax
mov eax, dword [ebp - 0x30]
mov dword [esi + 0x24], eax
mov eax, dword [ebp - 0x2c]
mov dword [esi + 0x28], eax
mov eax, dword [ebp - 0x28]
mov dword [esi + 0x2c], eax
mov eax, dword [ebp - 0x24]
mov dword [esi + 0x30], eax
jmp 0x1038745
cmp eax, edx
jne 0x103859d
mov eax, dword [esi + 0x14]
jmp 0x10385cd
mov eax, dword [esi + 0x14]
test eax, eax
mov dword [ebp + 8], eax
je 0x10385cd
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebx, eax
inc ebx
lea eax, [ebx + ebx]
add eax, 3
and eax, 0xfffffffc
call fcn.01082830
mov eax, esp
push ebx
push dword [ebp + 8]
push eax
call sub.MFC42u.DLL_AfxA2WHelper
and dword [ebp - 0x10], 0
mov dword [ebp - 0x18], eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 0x10]
test al, 0xc
je 0x10385e8
mov dword [ebp - 0x10], 1
test al, 0x20
je 0x10385f0
or dword [ebp - 0x10], 2
lea ecx, [edi + 0x44]
mov eax, dword [ecx]
call dword [eax + 0x74]
push dword [ebp + 0xc]
lea edx, [ebp - 0x18]
push edx
push 0x900b
mov edi, dword [edi + 0xd8]
mov ecx, dword [edi]
push eax
push edi
jmp 0x1038442
lea ecx, [edi + 0x44]
mov eax, dword [ecx]
call dword [eax + 0x74]
push dword [esi + 0x10]
push dword [esi + 0xc]
push 0x9002
jmp 0x1038604
cmp eax, 0xfffffff4
ja 0x1038704
je 0x10386f1
cmp eax, 0xffffff96
je 0x103866b
cmp eax, 0xffffff97
je 0x1038258
cmp eax, 0xffffff98
je 0x1038663
cmp eax, 0xffffff9b
jne 0x1038713
push esi
mov ecx, edi
call fcn.010359e3
movzx eax, al
jmp 0x1038301
xor eax, eax
inc eax
jmp 0x1038748
call fcn.010216e8
test eax, eax
je 0x103867b
mov byte [eax + 0x168], 0
mov eax, dword [esi + 0x10]
cmp dword [esi + 8], ebx
mov ebx, dword [esi + 0x20]
mov esi, dword [esi + 0x2c]
mov dword [ebp + 8], eax
lea eax, [edi + 0x1d4]
cmp dword [eax + 0x60], 0
mov eax, dword [eax]
sete cl
shr eax, 4
and cl, al
test cl, 1
je 0x10386b6
lea ecx, [edi + 0x44]
mov eax, dword [ecx]
call dword [eax + 0x74]
push dword [ebp + 0xc]
push ebx
push dword [ebp + 8]
push 0
jmp 0x10386ee
push esi
call fcn.01029474
test eax, eax
je 0x1038745
cmp dword [eax], 0x3951589
push dword [ebp + 0xc]
push ebx
jne 0x10386e0
push 0
push 1
push dword [eax + 8]
mov ecx, edi
call fcn.010357a5
jmp 0x1038745
mov eax, dword [eax + 8]
push eax
lea ecx, [edi + 0x44]
mov eax, dword [ecx]
push 0
call dword [eax + 0x74]
push eax
jmp 0x10386d7
mov ecx, dword [edi + 0x178]
push esi
call fcn.01040ea3
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
jmp 0x1038745
cmp eax, 0xfffffffb
je 0x1038722
cmp eax, 0xfffffffd
je 0x1038719
cmp eax, 0xfffffffe
je 0x1038726
and dword [ebp - 4], 0
jmp 0x1038745
mov ecx, edi
call fcn.01030db6
jmp 0x1038745
and dword [ebp - 4], 0
lea eax, [ebp - 0x20]
push eax
mov ecx, edi
call fcn.01035878
mov ecx, dword [eax]
mov dword [ebp - 0xc], ecx
mov eax, dword [eax + 4]
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], eax
call dword [sym.imp.mmcbase.DLL_public:_bool___thiscall_mmcerror::SC::operator_bool_void_const]
mov eax, dword [ebp - 4]
lea esp, [ebp - 0x54]
pop edi
pop esi
pop ebx
leave
ret 8