Function at 0x1002c350
Capabilities:
Check for time delay via gettickcount
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10065c86
mov eax, dword fs:[0]
push eax
sub esp, 0x198
mov eax, dword [0x100a501c]
xor eax, esp
mov dword [esp + 0x190], eax
push ebx
push esi
push edi
mov eax, dword [0x100a501c]
xor eax, esp
push eax
lea eax, [esp + 0x1a8]
mov dword fs:[0], eax
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x10]
mov edi, ecx
cmp dword [edi], 0
mov dword [esp + 0x68], esi
mov dword [esp + 0x60], eax
je 0x1002e035
call sym.DTLUI.dll_public:_void___thiscall_DuiLib::CPaintManagerUI::DoAsyncNotify_void_
mov eax, dword [edi + 0x10c]
mov ecx, dword [eax + 0x10]
sub ecx, dword [eax + 0xc]
mov dword [esp + 0x38], 0
test ecx, 0xfffffffc
jle 0x1002c439
mov ecx, dword [esp + 0x38]
mov eax, dword [edi + 0x10c]
mov byte [esp + 0x3f], 0
mov edx, dword [eax + 0x10]
sub edx, dword [eax + 0xc]
mov dword [esp + 0x30], eax
sar edx, 2
cmp ecx, edx
jb 0x1002c3f3
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0xc]
mov edx, dword [esp + 0x38]
mov ecx, dword [ecx + edx*4]
mov eax, dword [ecx]
mov eax, dword [eax]
lea edx, [esp + 0x3f]
push edx
mov edx, dword [ebp + 8]
push ebx
push esi
push edx
call eax
cmp byte [esp + 0x3f], 0
jne 0x1002dbd8
mov eax, dword [edi + 0x10c]
mov edx, dword [eax + 0x10]
sub edx, dword [eax + 0xc]
mov ecx, dword [esp + 0x38]
inc ecx
sar edx, 2
cmp ecx, edx
mov dword [esp + 0x38], ecx
jl 0x1002c3d1
mov eax, dword [ebp + 8]
cmp eax, 0x100
ja 0x1002d1ae
je 0x1002d128
add eax, 0xfffffffe
cmp eax, 0x79
ja case.0x1002d367.274
movzx edx, byte [eax + 0x1002e090]
jmp dword [edx*4 + 0x1002e060]
mov ecx, dword [edi + 0xa8]
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 0xa4]
mov dword [esp + 0x10], 0
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [edi + 0x98]
mov dword [esp + 0x18], eax
test ecx, ecx
je 0x1002c4d0
mov dword [esp + 0x10], 0xa
mov dword [esp + 0x14], ecx
mov edx, dword [ecx]
mov edx, dword [edx + 0x124]
lea eax, [esp + 0x10]
push eax
call edx
mov ecx, dword [edi + 0x9c]
test ecx, ecx
je 0x1002c4f5
mov dword [esp + 0x10], 0xe
mov dword [esp + 0x14], ecx
mov eax, dword [ecx]
mov eax, dword [eax + 0x124]
lea edx, [esp + 0x10]
push edx
call eax
push 0
mov ecx, edi
call sym.DTLUI.dll_public:_void___thiscall_DuiLib::CPaintManagerUI::SetFocus_class_DuiLib::CControlUI__
mov ecx, dword [edi]
push 4
push ecx
call dword [sym.imp.USER32.dll_GetWindow]
test eax, eax
je case.0x1002d367.274
cmp byte [edi + 0xfb], 0
je case.0x1002d367.274
push eax
call dword [sym.imp.USER32.dll_SetFocus]
jmp case.0x1002d367.274
mov edx, dword [esp + 0x60]
mov dword [edx], 1
mov al, 1
jmp 0x1002e037
mov ecx, dword [edi]
xor ebx, ebx
push ebx
lea eax, [esp + 0x44]
push eax
push ecx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
call dword [sym.imp.USER32.dll_GetUpdateRect]
test eax, eax
je 0x1002dbde
push 0x3c
push ebx
cmp dword [edi + 0x90], ebx
jne 0x1002c5af
lea edx, [esp + 0xe0]
push edx
mov dword [esp + 0xe0], ebx
call sub.MSVCR90.dll_memset
mov ecx, dword [edi]
add esp, 0xc
lea eax, [esp + 0xd4]
push eax
push ecx
call dword [sym.imp.USER32.dll_BeginPaint]
mov eax, dword [edi]
lea edx, [esp + 0xd4]
push edx
push eax
call dword [sym.imp.USER32.dll_EndPaint]
mov al, 1
jmp 0x1002e037
lea ecx, [esp + 0xa0]
push ecx
mov dword [esp + 0xa0], ebx
call sub.MSVCR90.dll_memset
mov eax, dword [edi]
add esp, 0xc
lea edx, [esp + 0x94]
push edx
push eax
call dword [sym.imp.USER32.dll_BeginPaint]
mov edx, dword [edi]
lea ecx, [esp + 0x6c]
push ecx
push edx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
call dword [sym.imp.USER32.dll_GetClientRect]
cmp byte [edi + 0xf1], bl
je 0x1002c723
lea eax, [esp + 0x6c]
push eax
mov byte [edi + 0xf1], bl
call dword [sym.imp.USER32.dll_IsRectEmpty]
test eax, eax
jne 0x1002c723
mov edx, dword [edi + 0x90]
cmp byte [edx + 0x12c], bl
jne 0x1002c6a7
mov ecx, dword [esp + 0x78]
sub ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
sub eax, dword [esp + 0x6c]
push ecx
push eax
lea ecx, [edi + 0x20]
call sym.DTLUI.dll_public:_int___thiscall_DuiLib::CPoint::operator__struct_tagPOINT_const
test eax, eax
jne 0x1002c6a7
mov eax, dword [edx]
push SysReAllocString
push ebx
mov ecx, edx
mov edx, dword [eax + 0x118]
push sym.DTLUI.dll_private:_static_class_DuiLib::CControlUI____stdcall_DuiLib::CPaintManagerUI::__FindControlFromUpdate_class_DuiLib::CControlUI___void__
call edx
mov esi, eax
cmp esi, ebx
je 0x1002c6fd
lea ebx, [ebx]
mov ebx, dword [esi]
mov eax, dword [ebx + 0x38]
mov ecx, esi
call eax
mov edx, dword [ebx + 0x3c]
push eax
mov ecx, esi
call edx
mov ecx, dword [edi + 0x90]
mov eax, dword [ecx]
mov edx, dword [eax + 0x118]
push SysReAllocString
push 0
push sym.DTLUI.dll_private:_static_class_DuiLib::CControlUI____stdcall_DuiLib::CPaintManagerUI::__FindControlFromUpdate_class_DuiLib::CControlUI___void__
call edx
mov esi, eax
test esi, esi
jne 0x1002c670
xor ebx, ebx
jmp 0x1002c6fd
mov eax, dword [edi]
push eax
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
jne 0x1002c6c6
mov ecx, dword [edi + 0x90]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x6c]
push eax
call edx
cmp dword [edi + 0x14], ebx
lea ecx, [edi + 0x14]
je 0x1002c6d3
call sym.DTLUI.dll_public:_int___thiscall_DuiLib::gdi::CDCT_1_::DeleteDC_void_
cmp dword [edi + 0x1c], ebx
lea ecx, [edi + 0x1c]
je 0x1002c6e0
call sym.DTLUI.dll_public:_int___thiscall_DuiLib::gdi::CBitmapT_1_::DeleteObject_void_
cmp dword [edi + 0x10], ebx
lea ecx, [edi + 0x10]
je 0x1002c6ed
call sym.DTLUI.dll_public:_int___thiscall_DuiLib::gdi::CDCT_1_::DeleteDC_void_
cmp dword [edi + 0x18], ebx
lea ecx, [edi + 0x18]
je 0x1002c6fa
call sym.DTLUI.dll_public:_int___thiscall_DuiLib::gdi::CBitmapT_1_::DeleteObject_void_
mov dword [edi + 0x28], ebx
cmp byte [edi + 0xf0], 0
je 0x1002c723
mov eax, dword [edi + 0x90]
push ebx
push ebx
push ebx
push str.windowinit
push eax
mov ecx, edi
mov byte [edi + 0xf0], 0
call sym.DTLUI.dll_public:_void___thiscall_DuiLib::CPaintManagerUI::SendNotify_class_DuiLib::CControlUI___wchar_t_const___unsigned_int__long_int__bool_
cmp byte [edi + 0xf2], 0
je 0x1002c7ec
cmp byte [edi + 0xf1], 0
je 0x1002c750
mov ecx, dword [edi]
push ebx
push ebx
push ecx
mov byte [edi + 0xf2], 1
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x1002c7ec
mov edx, dword [edi + 0x94]
mov ecx, dword [edi + 0x90]
xor eax, eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x7c], edx
push SysStringLen
mov dword [esp + 0x84], eax
lea edx, [esp + 0x80]
mov byte [esp + 0x88], 1
mov eax, dword [ecx]
mov eax, dword [eax + 0x118]
push edx
push sym.DTLUI.dll_private:_static_class_DuiLib::CControlUI____stdcall_DuiLib::CPaintManagerUI::__FindControlFromTab_class_DuiLib::CControlUI___void__
call eax
cmp eax, ebx
jne 0x1002c7dd
mov ecx, dword [edi + 0x90]
xor eax, eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x8c], eax
push SysStringLen
lea eax, [esp + 0x8c]
mov dword [esp + 0x8c], ebx
mov byte [esp + 0x94], 1
mov edx, dword [ecx]
mov edx, dword [edx + 0x118]
push eax
push sym.DTLUI.dll_private:_static_class_DuiLib::CControlUI____stdcall_DuiLib::CPaintManagerUI::__FindControlFromTab_class_DuiLib::CControlUI___void__
call edx
cmp eax, ebx
je 0x1002c7e5
push eax
mov ecx, edi
call sym.DTLUI.dll_public:_void___thiscall_DuiLib::CPaintManagerUI::SetFocus_class_DuiLib::CControlUI__
mov byte [edi + 0xf2], 0
cmp dword [edi + 0xf4], 1
jne 0x1002caa6
mov eax, dword [edi]
push 0xffffffffffffffec
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
test eax, 0x80000
jne 0x1002c81c
mov ecx, dword [edi]
or eax, 0x80000
push eax
push 0xffffffffffffffec
push ecx
call dword [sym.imp.USER32.dll_SetWindowLongW]
cmp byte [edi + 0x3c], 0
jne 0x1002c852
lea edx, [esp + 0x6c]
push edx
lea esi, [edi + 0x2c]
push esi
push esi
call dword [sym.imp.USER32.dll_IntersectRect]
push esi
lea eax, [esp + 0x44]
push eax
mov ecx, eax
push ecx
call dword [sym.imp.USER32.dll_UnionRect]
push esi
call dword [sym.imp.USER32.dll_SetRectEmpty]
mov esi, dword [esp + 0x78]
mov ebx, dword [esp + 0x74]
jmp 0x1002c876
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x70]
mov ebx, dword [esp + 0x74]
mov esi, dword [esp + 0x78]
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], esi
mov byte [edi + 0x3c], 0
sub ebx, dword [esp + 0x6c]
sub esi, dword [esp + 0x70]
cmp byte [edi + 0xf3], 0
je 0x1002c93f
cmp dword [edi + 0x18], 0
jne 0x1002c93f
mov ecx, dword [edi + 0xc]
mov edx, dword [ecx]
push edx
lea ecx, [edi + 0x10]
call sym.DTLUI.dll_public:_struct_HDC______thiscall_DuiLib::gdi::CDCT_1_::CreateCompatibleDC_struct_HDC____
mov eax, dword [esp + 0x74]
sub eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x78]
sub ecx, dword [esp + 0x70]
push 0x2c
mov dword [edi + 0x20], eax
lea eax, [esp + 0xd8]
push 0
push eax
mov dword [edi + 0x24], ecx
call sub.MSVCR90.dll_memset
mov ecx, esi
imul esi, ebx
add esp, 0xc
mov eax, 0x20
mov word [esp + 0xe2], ax
xor eax, eax
push eax
neg ecx
push eax
mov dword [esp + 0xe4], ecx
lea ecx, [edi + 0x28]
push ecx
mov edx, 1
add esi, esi
push eax
mov word [esp + 0xf0], dx
mov dword [esp + 0xf4], eax
mov dword [esp + 0x104], eax
mov eax, dword [edi + 0xc]
add esi, esi
lea edx, [esp + 0xe4]
mov dword [esp + 0xe4], 0x28
mov dword [esp + 0xe8], ebx
mov dword [esp + 0xf8], esi
mov ecx, dword [eax]
push edx
push ecx
lea ecx, [edi + 0x18]
call sym.DTLUI.dll_public:_struct_HBITMAP______thiscall_DuiLib::gdi::CBitmapT_1_::CreateDIBSection_struct_HDC_____struct_tagBITMAPINFO_const___unsigned_int__void____void___unsigned_long_int_
mov eax, dword [edi + 0x18]
mov edx, dword [edi + 0x10]
push eax
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x68], eax
mov eax, dword [edi + 0x10]
push eax
call dword [sym.imp.GDI32.dll_SaveDC]
mov edx, dword [edi + 0x28]
lea ecx, [esp + 0x40]
push ecx
push ebx
push edx
mov dword [esp + 0x3c], eax
call sym.DTLUI.dll_public:_static_void___cdecl_DuiLib::CRenderEngine::ClearAlphaPixel_unsigned_char___int__struct_tagRECT_const__
mov ecx, dword [edi + 0x90]
mov eax, dword [ecx]
mov eax, dword [eax + 0x134]
add esp, 0xc
lea edx, [esp + 0x40]
push edx
mov edx, dword [edi + 0x10]
push edx
call eax
mov edx, dword [edi + 0x10]
lea ecx, [esp + 0x40]
push ecx
push edx
mov ecx, edi
call sym.DTLUI.dll_protected:_void___thiscall_DuiLib::CPaintManagerUI::_DrawCaret_struct_HDC_____struct_tagRECT_const__
mov eax, dword [edi + 0x110]
mov ecx, dword [eax + 0x10]
sub ecx, dword [eax + 0xc]
lea ebx, [edi + 0x110]
xor esi, esi
test ecx, 0xfffffffc
jle 0x1002c9e6
push esi
mov ecx, ebx
call sym.DTLUI.dll_public:_void_____thiscall_DuiLib::CStdPtrArray::operator___int_
mov ecx, dword [eax]
mov edx, dword [ecx]
mov edx, dword [edx + 0x150]
lea eax, [esp + 0x9c]
push eax
mov eax, dword [edi + 0x10]
push eax
call edx
mov eax, dword [ebx]
mov ecx, dword [eax + 0x10]
sub ecx, dword [eax + 0xc]
inc esi
sar ecx, 2
cmp esi, ecx
jl 0x1002c9b6
mov edx, dword [esp + 0x30]
mov eax, dword [edi + 0x10]
push edx
push eax
call dword [sym.imp.GDI32.dll_RestoreDC]
mov edx, dword [edi]
lea ecx, [esp + 0x10]
xor esi, esi
push ecx
push edx
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
sub eax, ecx
push 2
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x20]
sub ecx, edx
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x3c]
push eax
push esi
mov dword [esp + 0x98], ecx
mov dword [esp + 0x8c], edx
mov edx, dword [edi + 0x10]
lea ecx, [esp + 0x6c]
push ecx
push edx
mov edx, dword [edi]
lea eax, [esp + 0x9c]
push eax
lea ecx, [esp + 0x94]
push ecx
push esi
push edx
mov dword [esp + 0x84], esi
mov dword [esp + 0x88], esi
mov byte [esp + 0x5c], 0
mov byte [esp + 0x5d], 0
mov byte [esp + 0x5e], 0xff
mov byte [esp + 0x5f], 1
call dword [sym.imp.USER32.dll_UpdateLayeredWindow]
mov eax, dword [esp + 0x68]
mov ecx, dword [edi + 0x10]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
jmp 0x1002cd8e
cmp byte [edi + 0xf3], 0
je 0x1002cd4f
cmp dword [edi + 0x18], ebx
lea esi, [edi + 0x18]
jne 0x1002cb06
mov eax, dword [edi]
lea edx, [esp + 0x10]
push edx
push eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
call dword [sym.imp.USER32.dll_GetClientRect]
mov ecx, dword [edi + 0xc]
mov edx, dword [ecx]
push edx
lea ecx, [edi + 0x10]
call sym.DTLUI.dll_public:_struct_HDC______thiscall_DuiLib::gdi::CDCT_1_::CreateCompatibleDC_struct_HDC____
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
sub ecx, dword [esp + 0x10]
mov edx, dword [edi + 0xc]
push eax
mov eax, dword [edx]
push ecx
push eax
mov ecx, esi
call sym.DTLUI.dll_public:_struct_HBITMAP______thiscall_DuiLib::gdi::CBitmapT_1_::CreateCompatibleBitmap_struct_HDC_____int__int_
cmp byte [edi + 0xf3], 0
je 0x1002cd4f
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
lea esi, [edi + 0x10]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
mov edx, dword [esi]
push edx
mov dword [esp + 0x6c], eax
call dword [sym.imp.GDI32.dll_SaveDC]
cmp dword [edi + 0xf4], 2
mov dword [esp + 0x30], eax
jne 0x1002cc29
mov eax, dword [edi + 0x1c]
cmp eax, ebx
jne 0x1002cbe6
mov ecx, dword [edi]
xor eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x10]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetClientRect]
mov edx, dword [edi + 0xc]
mov eax, dword [edx]
lea ebx, [edi + 0x14]
push eax
mov ecx, ebx
call sym.DTLUI.dll_public:_struct_HDC______thiscall_DuiLib::gdi::CDCT_1_::CreateCompatibleDC_struct_HDC____
mov ecx, dword [esp + 0x1c]
sub ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
sub edx, dword [esp + 0x10]
mov eax, dword [edi + 0xc]
push ecx
mov ecx, dword [eax]
push edx
push ecx
lea ecx, [edi + 0x1c]
call sym.DTLUI.dll_public:_struct_HBITMAP______thiscall_DuiLib::gdi::CBitmapT_1_::CreateCompatibleBitmap_struct_HDC_____int__int_
mov edx, dword [edi + 0x1c]
mov eax, dword [ebx]
push edx
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x94]
push 0xcc0020
push eax
push ecx
push edx
mov edx, dword [esp + 0xb8]
sub edx, eax
push edx
mov edx, dword [esp + 0xb8]
sub edx, ecx
push edx
push eax
push ecx
mov ecx, ebx
call sym.DTLUI.dll_public:_int___thiscall_DuiLib::gdi::CDCT_1_::BitBlt_int__int__int__int__struct_HDC_____int__int__unsigned_long_int_
jmp 0x1002cbf4
push eax
mov eax, dword [edi + 0x14]
lea ebx, [edi + 0x14]
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x9c]
mov edx, dword [ebx]
push 0xcc0020
push eax
push ecx
push edx
mov edx, dword [esp + 0xb8]
sub edx, eax
push edx
mov edx, dword [esp + 0xb8]
sub edx, ecx
push edx
push eax
push ecx
mov ecx, esi
call sym.DTLUI.dll_public:_int___thiscall_DuiLib::gdi::CDCT_1_::BitBlt_int__int__int__int__struct_HDC_____int__int__unsigned_long_int_
mov ecx, dword [edi + 0x90]
mov eax, dword [ecx]
mov eax, dword [eax + 0x134]
lea edx, [esp + 0x9c]
push edx
mov edx, dword [esi]
push edx
call eax
mov eax, dword [edi + 0x110]
mov ecx, dword [eax + 0x10]
sub ecx, dword [eax + 0xc]
xor ebx, ebx
test ecx, 0xfffffffc
jle 0x1002cc97
lea ebx, [ebx]
push ebx
lea ecx, [edi + 0x110]
call sym.DTLUI.dll_public:_void_____thiscall_DuiLib::CStdPtrArray::operator___int_
mov ecx, dword [eax]
mov edx, dword [ecx]
mov edx, dword [edx + 0x150]
lea eax, [esp + 0x9c]
push eax
mov eax, dword [esi]
push eax
call edx
mov eax, dword [edi + 0x110]
mov ecx, dword [eax + 0x10]
sub ecx, dword [eax + 0xc]
inc ebx
sar ecx, 2
cmp ebx, ecx
jl 0x1002cc60
mov edx, dword [esp + 0x30]
mov eax, dword [esi]
push edx
push eax
call dword [sym.imp.GDI32.dll_RestoreDC]
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x9c]
mov edx, dword [esi]
push 0xcc0020
push eax
push ecx
push edx
mov edx, dword [esp + 0xb8]
sub edx, eax
push edx
mov edx, dword [esp + 0xb8]
sub edx, ecx
push edx
push eax
mov eax, dword [esp + 0xb0]
push ecx
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
mov ecx, dword [esp + 0x68]
mov edx, dword [esi]
mov esi, dword [sym.imp.GDI32.dll_SelectObject]
push ecx
push edx
call esi
cmp byte [edi + 0x74], 0
je 0x1002cd8e
mov eax, dword [sym.DTLUI.dll_class_DuiLib::gdi::CPenT_1__DuiLib::CPaintManagerUI::m_hUpdateRectPen]
mov ecx, dword [esp + 0x94]
push eax
push ecx
call esi
push 5
mov ebx, eax
call dword [sym.imp.GDI32.dll_GetStockObject]
mov edx, dword [esp + 0x94]
push eax
push edx
call esi
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x9c]
push edx
push eax
push ecx
call dword [sym.imp.GDI32.dll_Rectangle]
mov edx, dword [esp + 0x94]
push ebx
push edx
call esi
jmp 0x1002cd8e
mov eax, dword [esp + 0x94]
push eax
call dword [sym.imp.GDI32.dll_SaveDC]
mov ecx, dword [edi + 0x90]
mov edx, dword [ecx]
mov edx, dword [edx + 0x134]
mov esi, eax
lea eax, [esp + 0x9c]
push eax
mov eax, dword [esp + 0x98]
push eax
call edx
mov eax, dword [esp + 0x94]
push esi
push eax
call dword [sym.imp.GDI32.dll_RestoreDC]
mov edx, dword [edi]
lea ecx, [esp + 0x94]
push ecx
push edx
call dword [sym.imp.USER32.dll_EndPaint]
cmp byte [edi + 0xf1], 0
je 0x1002cdb5
mov eax, dword [edi]
push 0
push 0
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
mov al, 1
jmp 0x1002e037
mov eax, dword [edi + 0xac]
test eax, eax
jle 0x1002cdc9
mov dword [ebx + 0x18], eax
mov eax, dword [edi + 0xb0]
test eax, eax
jle 0x1002cdd6
mov dword [ebx + 0x1c], eax
mov eax, dword [edi + 0xb4]
test eax, eax
jle 0x1002cde3
mov dword [ebx + 0x20], eax
mov eax, dword [edi + 0xb8]
test eax, eax
jle case.0x1002d367.274
mov dword [ebx + 0x24], eax
jmp case.0x1002d367.274
mov ecx, dword [edi + 0x94]
test ecx, ecx
je 0x1002ce4c
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x10], 0x17
mov dword [esp + 0x14], ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [edi + 0x94]
mov dword [esp + 0x18], eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x124]
lea eax, [esp + 0x10]
push eax
call edx
mov edi, dword [edi + 0x90]
test edi, edi
je 0x1002ce5d
mov ecx, edi
call sym.DTLUI.dll_public:_void___thiscall_DuiLib::CControlUI::NeedUpdate_void_
mov al, 1
jmp 0x1002e037
movsx eax, bx
shr ebx, 0x10
lea edx, [esp + 0x30]
mov dword [esp + 0x30], eax
mov eax, dword [edi]
movsx ecx, bx
push edx
push eax
mov dword [esp + 0x3c], ecx
call dword [sym.imp.USER32.dll_ScreenToClient]
cmp dword [edi + 0x9c], 0
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov dword [edi + 0xa4], ecx
mov dword [edi + 0xa8], edx
je case.0x1002d367.274
mov ecx, edi
call sym.DTLUI.dll_public:_void___thiscall_DuiLib::CPaintManagerUI::ReleaseCapture_void_
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0x9c]
mov dword [esp + 0x10], 0x12
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov word [esp + 0x26], si
mov dword [esp + 0x2c], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [edi + 0x9c]
mov dword [esp + 0x18], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x124]
lea edx, [esp + 0x10]
push edx
call eax
mov dword [edi + 0x9c], 0
jmp case.0x1002d367.274
cmp bx, 1
jne case.0x1002d367.274
cmp byte [edi + 0xf9], 0
jne 0x1002dbde
xor eax, eax
lea ecx, [esp + 0x30]
push ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
call dword [sym.imp.USER32.dll_GetCursorPos]
mov eax, dword [edi]
lea edx, [esp + 0x30]
push edx
push eax
call dword [sym.imp.USER32.dll_ScreenToClient]
mov ecx, dword [edi + 0x90]
mov edx, dword [ecx]
mov edx, dword [edx + 0x118]
push 0xf
lea eax, [esp + 0x34]
push eax
push sym.DTLUI.dll_private:_static_class_DuiLib::CControlUI____stdcall_DuiLib::CPaintManagerUI::__FindControlFromPoint_class_DuiLib::CControlUI___void__
call edx
mov dword [esp + 0x38], eax
test eax, eax
je case.0x1002d367.274
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
test al, 2
je case.0x1002d367.274
mov ecx, dword [esp + 0x34]
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x10], 0x18
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
call fcn.1002a5d0
mov word [esp + 0x26], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x18], eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x124]
lea eax, [esp + 0x10]
push eax
call edx
mov al, bl
jmp 0x1002e037
test ebx, ebx
je 0x1002d01f
mov eax, dword [ebp + 8]
mov ecx, dword [ebx]
push ebx
push esi
add eax, 0x2000
push eax
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, dword [esp + 0x60]
mov dword [edx], eax
mov al, 1
jmp 0x1002e037
mov ecx, dword [edi + 0x94]
test ecx, ecx
je case.0x1002d367.274
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x10], 0x15
mov dword [esp + 0x14], ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [edi + 0x94]
mov dword [esp + 0x18], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x124]
lea edx, [esp + 0x10]
push edx
call eax
mov ecx, dword [edi + 0x94]
push 0
push 0
push 0
push str.killfocus
push ecx
mov ecx, edi
call sym.DTLUI.dll_public:_void___thiscall_DuiLib::CPaintManagerUI::SendNotify_class_DuiLib::CControlUI___wchar_t_const___unsigned_int__long_int__bool_
jmp case.0x1002d367.274
mov ecx, dword [edi + 0x94]
test ecx, ecx
je case.0x1002d367.274
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x10], 0x16
mov dword [esp + 0x14], ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [edi + 0x94]
mov dword [esp + 0x18], eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x124]
lea eax, [esp + 0x10]
push eax
call edx
mov eax, dword [edi + 0x94]
push 0
push 0
push 0
push str.setfocus
push eax
mov ecx, edi
call sym.DTLUI.dll_public:_void___thiscall_DuiLib::CPaintManagerUI::SendNotify_class_DuiLib::CControlUI___wchar_t_const___unsigned_int__long_int__bool_
jmp case.0x1002d367.274
mov esi, dword [edi + 0xc]
test esi, esi
je 0x1002d11c
call fcn.1002b220
mov dword [edi + 0xc], 0
jmp case.0x1002d367.274
cmp dword [edi + 0x94], 0
je case.0x1002d367.274
mov ecx, dword [edi + 0xa4]
mov edx, dword [edi + 0xa8]
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x10], 3
mov word [esp + 0x24], si
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
call fcn.1002a5d0
mov word [esp + 0x26], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [edi + 0x94]
mov dword [esp + 0x18], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x124]
lea edx, [esp + 0x10]
push edx
call eax
mov ecx, dword [edi + 0x94]
mov dword [edi + 0xa0], ecx
jmp case.0x1002d367.274
cmp eax, 0x10d
ja 0x1002d33f
je 0x1002d2ce
sub eax, 0x101
je 0x1002d24a
sub eax, 1
jne case.0x1002d367.274
cmp dword [edi + 0x94], eax
je case.0x1002d367.274
mov edx, dword [edi + 0xa4]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 0xa8]
mov dword [esp + 0x10], 5
mov word [esp + 0x24], si
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
call fcn.1002a5d0
mov word [esp + 0x26], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [edi + 0x94]
mov dword [esp + 0x18], eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x124]
lea eax, [esp + 0x10]
push eax
call edx
jmp case.0x1002d367.274
cmp dword [edi + 0xa0], 0
je case.0x1002d367.274
mov ecx, dword [edi + 0xa8]
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 0xa4]
mov dword [esp + 0x10], 4
mov word [esp + 0x24], si
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
call fcn.1002a5d0
mov word [esp + 0x26], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [edi + 0xa0]
mov dword [esp + 0x18], eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x124]
lea eax, [esp + 0x10]
push eax
call edx
mov dword [edi + 0xa0], 0
jmp case.0x1002d367.274
mov ecx, dword [edi + 0x94]
test ecx, ecx
je case.0x1002d367.274
xor eax, eax
mov dword [esp + 0xec], eax
mov dword [esp + 0xf0], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0xd4], 0x1c
mov dword [esp + 0xec], esi
mov dword [esp + 0xf0], ebx
mov eax, dword [ecx]
mov eax, dword [eax + 0x124]
lea edx, [esp + 0xd4]
push edx
call eax
jmp case.0x1002d367.274
cmp eax, 0x2a1
ja 0x1002de2f
je 0x1002dc0d
add eax, 0xfffffeef
cmp eax, 0xf9
ja case.0x1002d367.274
movzx ecx, byte [eax + 0x1002e138]
jmp dword [ecx*4 + 0x1002e10c]
mov eax, dword [edi + 0x104]
mov edx, dword [eax + 0x10]
sub edx, dword [eax + 0xc]
mov dword [esp + 0x38], 0
test edx, 0xfffffffc
jle case.0x1002d367.274
mov edi, edi
mov eax, dword [esp + 0x38]
push eax
lea ecx, [edi + 0x104]
call sym.DTLUI.dll_public:_void_____thiscall_DuiLib::CStdPtrArray::operator___int_
mov ebx, dword [eax]
mov ecx, dword [ebx + 8]
cmp ecx, dword [edi]
jne 0x1002d3c9
movzx edx, si
cmp dword [ebx + 0xc], edx
jne 0x1002d3c9
cmp byte [ebx + 0x10], 0
jne 0x1002d3c9
mov eax, dword [ebx]
push 0x740
push eax
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x1002d3ea
mov eax, dword [edi + 0x104]
mov edx, dword [eax + 0x10]
sub edx, dword [eax + 0xc]
mov ecx, dword [esp + 0x38]
inc ecx
sar edx, 2
cmp ecx, edx
mov dword [esp + 0x38], ecx
jl 0x1002d390
jmp case.0x1002d367.274
mov ecx, dword [ebx + 4]
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], eax
mov eax, dword [ebx]
mov dword [esp + 0x10], 0x19
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebx]
mov dword [esp + 0x18], eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x124]
lea eax, [esp + 0x10]
push eax
call edx
jmp case.0x1002d367.274
cmp byte [edi + 0xf8], 0
jne 0x1002d4a1
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov eax, dword [edi]
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x40]
mov dword [esp + 0x10], 0x10
mov dword [esp + 0x14], 3
test eax, eax
jne 0x1002d47b
mov dword [esp + 0x1c], 0x190
jmp 0x1002d48f
push 0
push 3
push 0x415
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [esp + 0x1c], eax
lea ecx, [esp + 0x10]
push ecx
call dword [sym.imp.COMCTL32.dll__TrackMouseEvent]
mov byte [edi + 0xf8], 1
cmp byte [edi + 0xfc], 0
jne 0x1002d4c1
mov edx, dword [edi]
push ebx
push esi
push 0x8003
push edx
mov byte [edi + 0xfc], 1
call dword [sym.imp.USER32.dll_SendMessageW]
movsx eax, bx
shr ebx, 0x10
movsx ecx, bx
mov dword [esp + 0x34], ecx
mov dword [edi + 0xa8], ecx
mov ecx, dword [edi + 0x90]
push 0xf
mov dword [esp + 0x34], eax
mov dword [edi + 0xa4], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x118]
lea edx, [esp + 0x34]
push edx
push sym.DTLUI.dll_private:_static_class_DuiLib::CControlUI____stdcall_DuiLib::CPaintManagerUI::__FindControlFromPoint_class_DuiLib::CControlUI___void__
call eax
mov esi, eax
xor ebx, ebx
cmp esi, ebx
je 0x1002d513
mov edx, dword [esi]
mov eax, dword [edx + 0x1c]
mov ecx, esi
call eax
cmp eax, edi
jne case.0x1002d367.274
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
xor eax, eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [edi + 0x9c]
mov dword [esp + 0x48], eax
cmp ecx, ebx
je 0x1002d579
mov dword [esp + 0x40], 9
mov dword [esp + 0x44], ecx
mov eax, dword [ecx]
mov eax, dword [eax + 0x124]
lea edx, [esp + 0x40]
push edx
call eax
jmp case.0x1002d367.274
mov ecx, dword [edi + 0x98]
cmp esi, ecx
je 0x1002d5c0
cmp ecx, ebx
je 0x1002d5c0
mov dword [esp + 0x40], 0xa
mov dword [esp + 0x44], ecx
mov edx, dword [ecx]
mov edx, dword [edx + 0x124]
lea eax, [esp + 0x40]
push eax
call edx
mov eax, dword [edi + 0x40]
mov dword [edi + 0x98], ebx
cmp eax, ebx
je 0x1002d5c0
lea ecx, [edi + 0x44]
push ecx
push ebx
push 0x411
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
cmp esi, dword [edi + 0x98]
je 0x1002d5f3
cmp esi, ebx
je case.0x1002d367.274
mov dword [esp + 0x40], 0xb
mov dword [esp + 0x44], esi
mov edx, dword [esi]
mov edx, dword [edx + 0x124]
lea eax, [esp + 0x40]
push eax
mov ecx, esi
call edx
mov dword [edi + 0x98], esi
cmp esi, ebx
je case.0x1002d367.274
mov dword [esp + 0x40], 9
mov dword [esp + 0x44], esi
mov eax, dword [esi]
mov edx, dword [eax + 0x124]
lea ecx, [esp + 0x40]
push ecx
mov ecx, esi
call edx
jmp case.0x1002d367.274
cmp byte [edi + 0xfb], 0
je 0x1002d62f
mov eax, dword [edi]
push eax
call dword [sym.imp.USER32.dll_SetFocus]
mov ecx, ebx
shr ecx, 0x10
movsx ecx, cx
movsx eax, bx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
mov dword [edi + 0xa4], eax
mov dword [edi + 0xa8], ecx
mov ecx, dword [edi + 0x90]
mov edx, dword [ecx]
mov edx, dword [edx + 0x118]
push 0xf
lea eax, [esp + 0x34]
push eax
push sym.DTLUI.dll_private:_static_class_DuiLib::CControlUI____stdcall_DuiLib::CPaintManagerUI::__FindControlFromPoint_class_DuiLib::CControlUI___void__
call edx
mov dword [esp + 0x38], eax
test eax, eax
je case.0x1002d367.274
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x1c]
call edx
cmp eax, edi
jne case.0x1002d367.274
mov ecx, dword [esp + 0x38]
mov dword [edi + 0x9c], ecx
mov eax, dword [ecx]
mov edx, dword [eax + 0x10c]
call edx
mov ecx, edi
call sym.DTLUI.dll_public:_void___thiscall_DuiLib::CPaintManagerUI::SetCapture_void_
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x10], 0xd
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov word [esp + 0x26], si
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x18], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x124]
lea edx, [esp + 0x10]
push edx
call eax
jmp case.0x1002d367.274
cmp byte [edi + 0xfb], 0
je 0x1002d721
mov ecx, dword [edi]
push ecx
call dword [sym.imp.USER32.dll_SetFocus]
movsx eax, bx
shr ebx, 0x10
movsx ecx, bx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
mov dword [edi + 0xa4], eax
mov dword [edi + 0xa8], ecx
mov ecx, dword [edi + 0x90]
mov edx, dword [ecx]
mov edx, dword [edx + 0x118]
push 0xf
lea eax, [esp + 0x34]
push eax
push sym.DTLUI.dll_private:_static_class_DuiLib::CControlUI____stdcall_DuiLib::CPaintManagerUI::__FindControlFromPoint_class_DuiLib::CControlUI___void__
call edx
mov ebx, eax
test ebx, ebx
je case.0x1002d367.274
mov eax, dword [ebx]
mov edx, dword [eax + 0x1c]
mov ecx, ebx
call edx
cmp eax, edi
jne case.0x1002d367.274
mov ecx, edi
call sym.DTLUI.dll_public:_void___thiscall_DuiLib::CPaintManagerUI::SetCapture_void_
mov ecx, dword [esp + 0x34]
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x10], 0x11
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
mov word [esp + 0x26], si
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0x18], eax
mov edx, dword [ebx]
mov edx, dword [edx + 0x124]
lea eax, [esp + 0x10]
push eax
mov ecx, ebx
call edx
mov dword [edi + 0x9c], ebx
jmp case.0x1002d367.274
mov ecx, ebx
shr ecx, 0x10
cmp dword [edi + 0x9c], 0
movsx eax, bx
movsx ecx, cx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
mov dword [edi + 0xa4], eax
mov dword [edi + 0xa8], ecx
je case.0x1002d367.274
mov ecx, edi
call sym.DTLUI.dll_public:_void___thiscall_DuiLib::CPaintManagerUI::ReleaseCapture_void_
mov edx, dword [edi + 0x9c]
mov ecx, dword [esp + 0x34]
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x10], 0xe
mov dword [esp + 0x14], edx
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
mov word [esp + 0x26], si
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [edi + 0x9c]
mov dword [esp + 0x18], eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x124]
lea eax, [esp + 0x10]
push eax
call edx
mov dword [edi + 0x9c], 0
jmp case.0x1002d367.274
cmp byte [edi + 0xfb], 0
je 0x1002d8a1
mov eax, dword [edi]
push eax
call dword [sym.imp.USER32.dll_SetFocus]
mov ecx, ebx
shr ecx, 0x10
movsx ecx, cx
movsx eax, bx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
mov dword [edi + 0xa4], eax
mov dword [edi + 0xa8], ecx
mov ecx, dword [edi + 0x90]
mov edx, dword [ecx]
mov edx, dword [edx + 0x118]
push 0xf
lea eax, [esp + 0x34]
push eax
push sym.DTLUI.dll_private:_static_class_DuiLib::CControlUI____stdcall_DuiLib::CPaintManagerUI::__FindControlFromPoint_class_DuiLib::CControlUI___void__
call edx
mov dword [esp + 0x60], eax
test eax, eax
je case.0x1002d367.274
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x1c]
call edx
cmp eax, edi
jne case.0x1002d367.274
mov eax, dword [edi + 0x98]
cmp dword [esp + 0x60], eax
je 0x1002d991
test eax, eax
je 0x1002d991
mov ecx, dword [esp + 0x34]
xor eax, eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [edi + 0x98]
mov dword [esp + 0x48], eax
mov dword [esp + 0x40], 0xa
mov dword [esp + 0x44], ecx
mov edx, dword [ecx]
mov edx, dword [edx + 0x124]
lea eax, [esp + 0x40]
push eax
call edx
mov eax, dword [edi + 0x40]
mov dword [edi + 0x98], 0
test eax, eax
je 0x1002d991
lea ecx, [edi + 0x44]
push ecx
push 0
push 0x411
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [esp + 0x60]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10c]
call eax
mov ecx, edi
call sym.DTLUI.dll_public:_void___thiscall_DuiLib::CPaintManagerUI::SetCapture_void_
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x30]
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], 0xf
mov dword [esp + 0x14], ecx
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov word [esp + 0x26], si
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [esp + 0x60]
mov dword [esp + 0x18], eax
mov edx, dword [esi]
mov edx, dword [edx + 0x124]
lea eax, [esp + 0x10]
push eax
mov ecx, esi
call edx
mov dword [edi + 0x9c], esi
jmp case.0x1002d367.274
mov ecx, ebx
shr ecx, 0x10
cmp dword [edi + 0x9c], 0
movsx eax, bx
movsx ecx, cx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
mov dword [edi + 0xa4], eax
mov dword [edi + 0xa8], ecx
je case.0x1002d367.274
mov ecx, edi
call sym.DTLUI.dll_public:_void___thiscall_DuiLib::CPaintManagerUI::ReleaseCapture_void_
mov edx, dword [edi + 0x9c]
mov ecx, dword [esp + 0x34]
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x10], 0x10
mov dword [esp + 0x14], edx
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
mov word [esp + 0x26], si
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [edi + 0x9c]
mov dword [esp + 0x18], eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x124]
lea eax, [esp + 0x10]
push eax
call edx
jmp case.0x1002d367.274
movsx eax, bx
mov ecx, ebx
shr ecx, 0x10
mov dword [esp + 0x30], eax
movsx edx, cx
mov ecx, dword [edi]
lea eax, [esp + 0x30]
push eax
push ecx
mov dword [esp + 0x3c], edx
call dword [sym.imp.USER32.dll_ScreenToClient]
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
mov ecx, dword [edi + 0x90]
mov dword [edi + 0xa8], eax
push 0xf
mov dword [edi + 0xa4], edx
mov edx, dword [ecx]
mov edx, dword [edx + 0x118]
lea eax, [esp + 0x34]
push eax
push sym.DTLUI.dll_private:_static_class_DuiLib::CControlUI____stdcall_DuiLib::CPaintManagerUI::__FindControlFromPoint_class_DuiLib::CControlUI___void__
call edx
mov dword [esp + 0x38], eax
test eax, eax
je case.0x1002d367.274
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x1c]
call edx
cmp eax, edi
jne case.0x1002d367.274
xor eax, eax
xor ecx, ecx
shr esi, 0x10
test si, si
setl cl
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x10], 0x13
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], ebx
call fcn.1002a5d0
mov word [esp + 0x26], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x18], eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x124]
lea eax, [esp + 0x10]
push eax
call edx
movzx eax, word [edi + 0xa8]
movzx ecx, word [edi + 0xa4]
mov edx, dword [edi]
shl eax, 0x10
or eax, ecx
push eax
push 0
push 0x200
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
jmp case.0x1002d367.274
test ebx, ebx
je case.0x1002d367.274
mov eax, dword [ebp + 8]
push ebx
push esi
add eax, 0x2000
push eax
push ebx
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [esp + 0x60]
mov dword [ecx], eax
mov al, 1
jmp 0x1002e037
test ebx, ebx
je case.0x1002d367.274
mov edx, dword [ebp + 8]
push ebx
push esi
add edx, 0x2000
push edx
push ebx
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [esp + 0x60]
mov dword [ecx], eax
mov al, 1
jmp 0x1002e037
movsx eax, bx
shr ebx, 0x10
movsx ecx, bx
mov byte [edi + 0xf8], 0
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
cmp dword [0x100a6c8c], eax
jne 0x1002dc35
cmp dword [0x100a6c90], ecx
je 0x1002dbde
mov dword [0x100a6c8c], eax
mov dword [0x100a6c90], ecx
mov ecx, dword [edi + 0x90]
mov edx, dword [ecx]
mov edx, dword [edx + 0x118]
push 0xf
lea eax, [esp + 0x34]
push eax
push sym.DTLUI.dll_private:_static_class_DuiLib::CControlUI____stdcall_DuiLib::CPaintManagerUI::__FindControlFromPoint_class_DuiLib::CControlUI___void__
call edx
mov ebx, eax
test ebx, ebx
je case.0x1002d367.274
mov ecx, dword [edi + 0x98]
test ecx, ecx
je 0x1002dcc9
mov edx, dword [esp + 0x34]
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x10], 0xc
mov dword [esp + 0x14], ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [edi + 0x98]
mov dword [esp + 0x18], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x124]
lea edx, [esp + 0x10]
push edx
call eax
mov edx, dword [ebx]
mov edx, dword [edx + 0xa8]
lea eax, [esp + 0x114]
push eax
mov ecx, ebx
call edx
mov dword [esp + 0x1b0], 1
mov eax, dword [esp + 0x114]
cmp word [eax], 0
jne 0x1002dd1c
lea ecx, [esp + 0x118]
mov dword [esp + 0x1b0], 0xffffffff
cmp eax, ecx
je 0x1002dd15
push eax
call dword [sym.imp.MSVCR90.dll_free]
add esp, 4
mov al, 1
jmp 0x1002e037
push 0x30
lea esi, [edi + 0x44]
push 0
push esi
call sub.MSVCR90.dll_memset
mov eax, dword [edi]
mov dword [edi + 0x4c], eax
mov dword [edi + 0x50], eax
mov eax, dword [esp + 0x120]
mov dword [esi], 0x30
mov dword [edi + 0x48], 1
mov edx, dword [sym.DTLUI.dll_struct_HINSTANCE____DuiLib::CPaintManagerUI::m_hInstance]
mov dword [edi + 0x68], eax
mov dword [edi + 0x64], edx
mov edx, dword [ebx]
mov eax, dword [edx + 0x38]
add esp, 0xc
mov ecx, ebx
call eax
cmp dword [edi + 0x40], 0
mov ecx, dword [eax]
mov dword [edi + 0x54], ecx
mov edx, dword [eax + 4]
mov dword [edi + 0x58], edx
mov ecx, dword [eax + 8]
mov dword [edi + 0x5c], ecx
mov edx, dword [eax + 0xc]
mov dword [edi + 0x60], edx
jne 0x1002ddc1
mov eax, dword [sym.DTLUI.dll_struct_HINSTANCE____DuiLib::CPaintManagerUI::m_hInstance]
mov ecx, dword [edi]
push 0
push eax
push 0
push ecx
push SysReAllocString
push SysReAllocString
push SysReAllocString
push SysReAllocString
push SysStringLen
push 0
push str.tooltips_class32
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
push esi
push 0
push 0x432
push eax
mov dword [edi + 0x40], eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, dword [ebx]
mov eax, dword [edx + 0xb4]
mov ecx, ebx
call eax
mov ecx, dword [edi + 0x40]
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
push eax
push 0
push 0x418
push ecx
call ebx
mov edx, dword [edi + 0x40]
push esi
push 0
push 0x436
push edx
call ebx
mov eax, dword [edi + 0x40]
push esi
push 1
push 0x411
push eax
call ebx
mov dword [esp + 0x1b0], 0xffffffff
mov eax, dword [esp + 0x114]
lea ecx, [esp + 0x118]
cmp eax, ecx
je 0x1002dd15
push eax
call dword [sym.imp.MSVCR90.dll_free]
add esp, 4
mov al, 1
jmp 0x1002e037
cmp eax, 0x8001
ja 0x1002e00c
je 0x1002dfa3
sub eax, 0x2a3
je 0x1002df5e
sub eax, 0x75
jne case.0x1002d367.274
lea edx, [esp + 0x40]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov eax, dword [edi]
push edx
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
mov dword [esp + 0x30], esi
push esi
mov dword [esp + 0x1b4], 0
call dword [sym.imp.GDI32.dll_SaveDC]
mov ecx, dword [edi + 0x90]
mov edx, dword [ecx]
mov edx, dword [edx + 0x134]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x40]
push eax
push esi
call edx
lea eax, [esp + 0x40]
push eax
push esi
mov ecx, edi
call sym.DTLUI.dll_protected:_void___thiscall_DuiLib::CPaintManagerUI::_DrawCaret_struct_HDC_____struct_tagRECT_const__
test bl, 0x10
je 0x1002df3e
mov ecx, dword [edi]
push 5
push ecx
call dword [sym.imp.USER32.dll_GetWindow]
mov esi, eax
test esi, esi
je 0x1002df3e
or ebx, 2
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x68]
xor eax, eax
lea edx, [esp + 0x10]
push edx
push esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, dword [edi]
push 2
lea eax, [esp + 0x14]
push eax
push ecx
push 0
call dword [sym.imp.USER32.dll_MapWindowPoints]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push 0
neg eax
push eax
neg ecx
push ecx
push ebx
call dword [sym.imp.GDI32.dll_SetWindowOrgEx]
mov edx, dword [esp + 0x30]
push edx
push ebx
push 0x317
push esi
call dword [sym.imp.USER32.dll_SendMessageW]
push 2
push esi
call dword [sym.imp.USER32.dll_GetWindow]
mov esi, eax
test esi, esi
jne 0x1002ded4
jmp 0x1002df42
mov ebx, dword [esp + 0x68]
mov eax, dword [esp + 0x38]
push eax
push ebx
call dword [sym.imp.GDI32.dll_RestoreDC]
mov dword [esp + 0x1b0], 0xffffffff
jmp case.0x1002d367.274
mov eax, dword [edi + 0x40]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
je 0x1002df79
lea ecx, [edi + 0x44]
push ecx
push 0
push 0x411
push eax
call esi
cmp byte [edi + 0xf8], 0
je 0x1002df90
mov edx, dword [edi]
push 0xffffffffffffffff
push 0
push 0x200
push edx
call esi
mov byte [edi + 0xf8], 0
mov byte [edi + 0xfc], 0
jmp case.0x1002d367.274
mov eax, dword [edi + 0x114]
mov ecx, dword [eax + 0x10]
sub ecx, dword [eax + 0xc]
xor esi, esi
test ecx, 0xfffffffc
jle 0x1002dfff
lea esp, [esp]
mov ebx, dword [edi + 0x114]
mov edx, dword [ebx + 0x10]
sub edx, dword [ebx + 0xc]
sar edx, 2
cmp esi, edx
jb 0x1002dfd9
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + esi*4]
test ecx, ecx
je 0x1002dfeb
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov eax, dword [edi + 0x114]
mov ecx, dword [eax + 0x10]
sub ecx, dword [eax + 0xc]
inc esi
sar ecx, 2
cmp esi, ecx
jl 0x1002dfc0
mov eax, dword [edi + 0x114]
call fcn.100188d0
jmp case.0x1002d367.274
cmp eax, 0x8002
jne case.0x1002d367.274
cmp byte [edi + 0x88], 0
lea eax, [edi + 0x78]
sete dl
push eax
mov ecx, edi
mov byte [edi + 0x88], dl
call sym.DTLUI.dll_public:_void___thiscall_DuiLib::CPaintManagerUI::Invalidate_struct_tagRECT_const__
mov ecx, edi
call sym.DTLUI.dll_public:_void___thiscall_DuiLib::CPaintManagerUI::DoAsyncNotify_void_
xor al, al
mov ecx, dword [esp + 0x1a8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x190]
xor ecx, esp
call fcn.10062a76
mov esp, ebp
pop ebp
ret 0x10