Function at 0x632f10ea
Capabilities:
Log keystrokes via input method manager

Disassembly:
mov eax, 0x6330265e
call fcn.63301000
sub esp, 0xe4
push ebx
push esi
push edi
mov edi, dword [sym.imp.sc_base.dll_public:_void___thiscall_CSCString::constructor_void_]
lea ecx, [ebp - 0x3c]
call edi
xor ebx, ebx
mov dword [ebp - 4], ebx
call dword [sym.imp.basiclib.dll_public:_static_class_SCDECLMAN____cdecl_SCDECLMAN::Get_void_]
mov dword [ebp - 0x48], eax
call dword [sym.imp.basiclib.dll_public:_static_class_SCNAVIOBJECTMAN____cdecl_SCNAVIOBJECTMAN::Get_void_]
sub esp, 0x30
mov esi, eax
lea eax, [ebp + 0xc]
mov dword [ebp - 0x18], esp
mov ecx, esp
push eax
call fcn.632e1215
mov ecx, esi
call dword [sym.imp.basiclib.dll_public:_class_SCNAVIOBJECT____thiscall_SCNAVIOBJECTMAN::Get_struct_ID_]
cmp eax, ebx
mov dword [ebp - 0x30], eax
jne 0x632f115f
push ebx
push ebx
push 0x40
push 0x80
push 0x19b5
call fcn.632f0e7a
mov esi, dword [sym.imp.sc_base.dll_public_virtual:_void___thiscall_CSCString::destructor_void_]
add esp, 0x14
jmp 0x632f19ec
mov esi, dword [sym.imp.sc_base.dll_public:_class_CSCString_const____thiscall_CSCString::operator_wchar_t_const__]
push 0x633068e4
lea ecx, [ebp - 0x3c]
call esi
lea ecx, [ebp - 0x7c]
call edi
mov ebx, dword [sym.imp.sc_base.dll_public:_void___thiscall_CSCString::constructor_wchar_t_const__]
push str.VAR_INPUT_CONSTANT
lea ecx, [ebp - 0xa8]
mov byte [ebp - 4], 1
call ebx
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 2
call edi
lea ecx, [ebp - 0x9c]
mov byte [ebp - 4], 3
call edi
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 4
call edi
lea ecx, [ebp - 0xb4]
mov byte [ebp - 4], 5
call edi
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 6
call edi
and dword [ebp - 0x20], 0
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 7
call sub.MFC71U.DLL_CDumpContext::CDumpContext
mov ecx, dword [ebp - 0x30]
mov byte [ebp - 4], 8
call dword [sym.imp.basiclib.dll_public:_class_SCHEADER____thiscall_SCPOU::GetHeader_void_]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x94]
and dword [ebp - 0x10], 0
mov ecx, eax
mov dword [ebp - 0x4c], ecx
call dword [sym.imp.basiclib.dll_public:_int___thiscall_SCSELECTION::GetCount_void_const]
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x28], eax
call dword [sym.imp.basiclib.dll_public:_int___thiscall_SCPOU::GetEnoFlag_void_]
and dword [ebp - 0x1c], 0
push 0x20d7
mov dword [ebp - 0x24], eax
call fcn.632f104f
pop ecx
push eax
lea ecx, [ebp - 0x7c]
call esi
push str.VAR_IN_EXT
lea ecx, [ebp - 0x70]
call esi
push str.VAR_IN_OUT
lea ecx, [ebp - 0x9c]
call esi
push 0x20d8
call fcn.632f104f
pop ecx
push eax
lea ecx, [ebp - 0x64]
call esi
push 0x20a9
call fcn.632f104f
pop ecx
push eax
lea ecx, [ebp - 0xb4]
call esi
push 0x20aa
call fcn.632f104f
pop ecx
push eax
lea ecx, [ebp - 0xc0]
call esi
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx]
call dword [eax + 0x30]
push 0
push dword [ebp - 0x88]
lea ecx, [ebp - 0x90]
mov dword [ebp - 0x14], eax
call sub.MFC71U.DLL_CByteArray::SetAtGrow
call dword [sym.imp.basiclib.dll_public:_static_class_SCNAVIOBJECTMAN____cdecl_SCNAVIOBJECTMAN::Get_void_]
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0xf0]
push 0x38
push eax
call dword [sym.imp.basiclib.dll_public:_static_class_SCPROJECT____cdecl_SCNAVIOBJECTMAN::GetProject_void_]
mov ecx, eax
call dword [sym.imp.basiclib.dll_public:_struct_ID___thiscall_SCOBJECT::GetId_void_]
sub esp, 0x30
mov dword [ebp - 0x18], esp
mov ecx, esp
push eax
call fcn.632e1215
call dword [sym.imp.basiclib.dll_public:_static_class_CGD2DataMng____cdecl_SCNAVIOBJECTMAN::GetDataManager_void_]
mov ecx, eax
call dword [sym.imp.GD2DataMng.dll_public:_unsigned_long_int___thiscall_CGD2DataMng::GetItemOption_struct_STOBJECTID__unsigned_short_int__class_CDWordArray__]
xor ecx, ecx
cmp dword [ebp - 0x88], ecx
jle 0x632f12e0
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax]
jmp 0x632f12e3
mov eax, dword [ebp - 0x20]
and al, 0x10
xor edx, edx
cmp al, 0x10
mov eax, dword [ebp - 0x14]
setne dl
sub eax, 0x10
mov dword [ebp - 0x2c], edx
je 0x632f15e5
dec eax
jne 0x632f17f5
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp - 0x30]
push str.VOID
call dword [sym.imp.basiclib.dll_public:_wchar_t_const____thiscall_SCFUN::GetResultType_void_]
push eax
call dword [sym.imp.MSVCR71.dll__wcsicmp]
test eax, eax
pop ecx
pop ecx
jne 0x632f1327
mov dword [ebp - 0x2c], 1
xor eax, eax
cmp dword [ebp - 0x24], eax
je 0x632f133a
cmp dword [ebp - 0x2c], eax
mov dword [ebp - 0x20], 1
je 0x632f133d
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x24], eax
je 0x632f135c
push str.__BOOL_EN___
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x2c], eax
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::operator]
mov dword [ebp - 0x10], 1
xor eax, eax
cmp dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
jle 0x632f158f
lea ecx, [ebp - 0x58]
call edi
push dword [ebp - 0x24]
mov ecx, dword [ebp - 0x4c]
lea eax, [ebp - 0xf0]
push eax
mov byte [ebp - 4], 0xd
call dword [sym.imp.basiclib.dll_public:_struct_ID___thiscall_SCSELECTION::GetID_int_]
sub esp, 0x30
lea eax, [ebp - 0xf0]
mov dword [ebp - 0x18], esp
mov ecx, esp
push eax
call fcn.632e1215
mov ecx, dword [ebp - 0x48]
call dword [sym.imp.basiclib.dll_public:_class_SCDECL____thiscall_SCDECLMAN::Get_struct_ID_]
mov ecx, eax
test ecx, ecx
mov dword [ebp - 0x14], ecx
je 0x632f1571
call dword [sym.imp.basiclib.dll_public:_wchar_t_const____thiscall_SCPOUHDECL::GetClass_void_]
push eax
lea ecx, [ebp - 0x58]
call esi
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.632e4c27
test al, al
pop ecx
pop ecx
je 0x632f1428
xor eax, eax
cmp dword [ebp - 0x20], eax
je 0x632f1428
cmp dword [ebp - 0x10], 5
mov dword [ebp - 0x20], eax
jl 0x632f13e7
mov dword [ebp - 0x1c], 1
mov dword [ebp - 0x10], eax
push dword [ebp - 0x1c]
lea eax, [ebp - 0x3c]
push eax
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x18], esp
push 0x63305810
call ebx
mov ecx, dword [ebp - 0x30]
mov byte [ebp - 4], 0xe
call dword [sym.imp.basiclib.dll_public:_wchar_t_const____thiscall_SCFUN::GetResultType_void_]
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x1c], esp
push eax
call ebx
mov byte [ebp - 4], 0xd
call fcn.632ee44e
and dword [ebp - 0x1c], 0
add esp, 0x20
inc dword [ebp - 0x10]
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.632e4c27
test al, al
pop ecx
pop ecx
jne 0x632f1477
lea eax, [ebp - 0xa4]
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.632e4c27
test al, al
pop ecx
pop ecx
jne 0x632f1477
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.632e4c27
test al, al
pop ecx
pop ecx
jne 0x632f1477
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.632e4c27
test al, al
pop ecx
pop ecx
je 0x632f14f0
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.632e4c27
test al, al
pop ecx
pop ecx
je 0x632f1496
cmp dword [ebp - 0x2c], 0
je 0x632f1496
and dword [ebp - 0x2c], 0
jmp 0x632f14f0
cmp dword [ebp - 0x10], 5
jl 0x632f14a7
and dword [ebp - 0x10], 0
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx]
call dword [eax + 0x7c]
push dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ecx]
call dword [eax + 0x2c]
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x1c], esp
push eax
call ebx
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x40], esp
push dword [ebp - 0x18]
mov byte [ebp - 4], 0xf
call ebx
mov byte [ebp - 4], 0xd
call fcn.632ee44e
and dword [ebp - 0x1c], 0
add esp, 0x20
inc dword [ebp - 0x10]
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.632e4c27
test al, al
pop ecx
pop ecx
je 0x632f1567
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx]
call dword [eax + 0x90]
test eax, eax
je 0x632f1567
cmp dword [ebp - 0x10], 5
jl 0x632f1523
and dword [ebp - 0x10], 0
mov dword [ebp - 0x1c], 1
push dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ecx]
call dword [eax + 0x2c]
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x40], esp
push eax
call ebx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx]
mov byte [ebp - 4], 0x10
call dword [eax + 0x7c]
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x18], esp
push eax
call ebx
mov byte [ebp - 4], 0xd
call fcn.632ee44e
and dword [ebp - 0x1c], 0
add esp, 0x20
inc dword [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx]
push 1
call dword [eax + 4]
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 8
call dword [sym.imp.sc_base.dll_public_virtual:_void___thiscall_CSCString::destructor_void_]
inc dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x28]
jl 0x632f1368
xor eax, eax
cmp dword [ebp - 0x20], eax
je 0x632f17de
cmp dword [ebp - 0x10], 5
jl 0x632f15a9
and dword [ebp - 0x10], 0
mov dword [ebp - 0x1c], 1
push dword [ebp - 0x1c]
lea eax, [ebp - 0x3c]
push eax
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x40], esp
push 0x63305810
call ebx
mov ecx, dword [ebp - 0x30]
mov byte [ebp - 4], 0x11
call dword [sym.imp.basiclib.dll_public:_wchar_t_const____thiscall_SCFUN::GetResultType_void_]
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x18], esp
push eax
call ebx
mov byte [ebp - 4], 8
call fcn.632ee44e
jmp 0x632f17d8
cmp dword [ebp - 0x24], ecx
je 0x632f162a
push ecx
lea eax, [ebp - 0x3c]
push eax
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x40], esp
push str.BOOL
call ebx
sub esp, 0xc
lea eax, [ebp - 0xb4]
mov ecx, esp
mov dword [ebp - 0x18], esp
push eax
mov byte [ebp - 4], 9
call dword [sym.imp.sc_base.dll_public:_void___thiscall_CSCString::constructor_class_CSCString_const__]
mov byte [ebp - 4], 8
call fcn.632ee4f4
add esp, 0x20
mov dword [ebp - 0x10], 1
and dword [ebp - 0x20], 0
cmp dword [ebp - 0x28], 0
jle 0x632f1796
test byte [0x6331c1d0], 1
jne 0x632f1662
or dword [0x6331c1d0], 1
mov ecx, 0x6331c1c4
mov byte [ebp - 4], 0xa
call edi
push 0x63304426
call fcn.6330109e
pop ecx
mov byte [ebp - 4], 8
mov ecx, 0x6331c1c4
call dword [sym.imp.sc_base.dll_public:_void___thiscall_CSCString::Empty_void_]
push dword [ebp - 0x20]
mov ecx, dword [ebp - 0x4c]
lea eax, [ebp - 0xf0]
push eax
call dword [sym.imp.basiclib.dll_public:_struct_ID___thiscall_SCSELECTION::GetID_int_]
sub esp, 0x30
lea eax, [ebp - 0xf0]
mov dword [ebp - 0x40], esp
mov ecx, esp
push eax
call fcn.632e1215
mov ecx, dword [ebp - 0x48]
call dword [sym.imp.basiclib.dll_public:_class_SCDECL____thiscall_SCDECLMAN::Get_struct_ID_]
mov ecx, eax
test ecx, ecx
mov dword [ebp - 0x14], ecx
je 0x632f1787
call dword [sym.imp.basiclib.dll_public:_wchar_t_const____thiscall_SCPOUHDECL::GetClass_void_]
push eax
mov ecx, 0x6331c1c4
call esi
lea eax, [ebp - 0x78]
push eax
push 0x6331c1c8
call fcn.632e4c27
test al, al
pop ecx
pop ecx
jne 0x632f1728
lea eax, [ebp - 0xa4]
push eax
push 0x6331c1c8
call fcn.632e4c27
test al, al
pop ecx
pop ecx
jne 0x632f1728
lea eax, [ebp - 0x6c]
push eax
push 0x6331c1c8
call fcn.632e4c27
test al, al
pop ecx
pop ecx
jne 0x632f1728
lea eax, [ebp - 0x98]
push eax
push 0x6331c1c8
call fcn.632e4c27
test al, al
pop ecx
pop ecx
jne 0x632f1728
cmp dword [ebp - 0x2c], 0
je 0x632f177d
lea eax, [ebp - 0x60]
push eax
push 0x6331c1c8
call fcn.632e4c27
test al, al
pop ecx
pop ecx
je 0x632f177d
cmp dword [ebp - 0x10], 5
jl 0x632f1739
and dword [ebp - 0x10], 0
mov dword [ebp - 0x1c], 1
push dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ecx]
call dword [eax + 0x7c]
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x40], esp
push eax
call ebx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx]
mov byte [ebp - 4], 0xb
call dword [eax + 0x2c]
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x18], esp
push eax
call ebx
mov byte [ebp - 4], 8
call fcn.632ee4f4
and dword [ebp - 0x1c], 0
add esp, 0x20
inc dword [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx]
push 1
call dword [eax + 4]
inc dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x28]
jl 0x632f1638
xor eax, eax
cmp dword [ebp - 0x2c], eax
je 0x632f17de
cmp dword [ebp - 0x24], eax
je 0x632f17de
push eax
lea eax, [ebp - 0x3c]
push eax
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x40], esp
push str.BOOL
call ebx
sub esp, 0xc
lea eax, [ebp - 0xc0]
mov ecx, esp
mov dword [ebp - 0x18], esp
push eax
mov byte [ebp - 4], 0xc
call dword [sym.imp.sc_base.dll_public:_void___thiscall_CSCString::constructor_class_CSCString_const__]
mov byte [ebp - 4], 8
call fcn.632ee4f4
add esp, 0x20
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0
je 0x632f17f5
mov eax, dword [ebp - 0x38]
mov eax, dword [eax - 0xc]
dec eax
push eax
lea ecx, [ebp - 0x3c]
call dword [sym.imp.sc_base.dll_public:_int___thiscall_CSCString::Truncate_int_]
push 0x63306850
lea ecx, [ebp - 0x38]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::operator]
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
xor ebx, ebx
push ebx
push 0xffffffffffffffff
push 0xbb
push dword [ebp + 0x3c]
call edi
push dword [ebp + 8]
mov dword [ebp - 0x20], eax
call dword [sym.imp.MSVCR71.dll_wcslen]
pop ecx
push dword [ebp + 0x3c]
mov dword [ebp - 0x4c], eax
call sub.IMM32.dll_ImmGetContext
push eax
mov dword [ebp - 0x14], eax
call sub.IMM32.dll_ImmGetOpenStatus
cmp eax, ebx
mov dword [ebp - 0x28], ebx
je 0x632f18c8
push ebx
push ebx
push 8
push dword [ebp - 0x14]
call sub.IMM32.dll_ImmGetCompositionStringW
cmp eax, ebx
mov dword [ebp - 0x28], eax
je 0x632f18c8
mov ebx, eax
shr ebx, 1
shl ebx, 1
lea eax, [ebx + 2]
push eax
call sub.MFC71U.DLL_SerializeElements
pop ecx
push dword [ebp - 0x28]
mov dword [ebp - 0x48], eax
push eax
push 8
push dword [ebp - 0x14]
call sub.IMM32.dll_ImmGetCompositionStringW
mov eax, dword [ebp - 0x48]
and word [eax + ebx], 0
lea ecx, [ebp - 0x38]
push ecx
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.632f0657
add esp, 0xc
push dword [eax]
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x12
call esi
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 8
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
push dword [ebp - 0x48]
call sub.MFC71U.DLL_operator_new
pop ecx
push 0
push dword [ebp - 0x14]
call sub.IMM32.dll_ImmSetOpenStatus
push 1
push dword [ebp - 0x14]
call sub.IMM32.dll_ImmSetOpenStatus
xor ebx, ebx
push dword [ebp - 0x14]
push dword [ebp + 0x3c]
call sub.IMM32.dll_ImmReleaseContext
cmp dword [ebp - 0x28], ebx
jne 0x632f1903
lea eax, [ebp - 0x38]
push eax
push dword [ebp + 8]
lea eax, [ebp - 0x18]
push eax
call fcn.632f0657
add esp, 0xc
push dword [eax]
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x13
call esi
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 8
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x20]
push dword [ebp + 8]
lea esi, [eax + ecx]
add esi, dword [ebp + 0x40]
call dword [sym.imp.MSVCR71.dll_wcslen]
pop ecx
mov ecx, esi
sub ecx, eax
lea eax, [ebp - 0x44]
push eax
push ebx
mov ebx, 0x437
push ebx
push dword [ebp + 0x3c]
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x40], esi
call edi
push dword [ebp - 0x38]
push 1
push 0xc2
push dword [ebp + 0x3c]
call edi
lea eax, [ebp - 0x44]
push eax
push 0
push ebx
push dword [ebp + 0x3c]
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x40], esi
call edi
push dword [ebp + 0x3c]
call sub.MFC71U.DLL_CMenu::FromHandle
mov edi, eax
test edi, edi
je 0x632f198c
mov eax, dword [ebp - 0x38]
mov eax, dword [eax - 0xc]
mov ebx, dword [edi]
push 0
push 0
push dword [ebp + 8]
mov dword [ebp - 0x18], eax
call dword [sym.imp.MSVCR71.dll_wcslen]
pop ecx
mov ecx, dword [ebp - 0x18]
add ecx, esi
sub ecx, eax
push ecx
push esi
mov ecx, edi
call dword [ebx + 0x1a8]
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 7
call sub.MFC71U.DLL_CDragListBox::CDragListBox
mov esi, dword [sym.imp.sc_base.dll_public_virtual:_void___thiscall_CSCString::destructor_void_]
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 6
call esi
lea ecx, [ebp - 0xb4]
mov byte [ebp - 4], 5
call esi
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 4
call esi
lea ecx, [ebp - 0x9c]
mov byte [ebp - 4], 3
call esi
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 2
call esi
lea ecx, [ebp - 0xa8]
mov byte [ebp - 4], 1
call esi
lea ecx, [ebp - 0x7c]
mov byte [ebp - 4], 0
call esi
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x3c]
call esi
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret