Function at 0x4aaf9d
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x4f0b15
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xe0
push ebx
push ebp
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov ebp, dword [esi + 0x40]
push ebx
push ebx
push ebx
mov ecx, ebp
mov dword [esp + 0x50], ebp
call sub.MFC42.DLL_CDocument::UpdateAllViews
mov eax, dword [esi + 0x20]
push eax
call dword [sym.imp.USER32.dll_SetCapture]
push eax
call sub.MFC42.DLL_CWnd::FromHandle
mov dword [esp + 0x1c], ebx
push 0xcb
push 0xc
push 0xcb
call sub.MFC42.DLL_AfxFindResourceHandle
push eax
call dword [sym.imp.USER32.dll_LoadCursorA]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
push ebx
push ebx
lea ecx, [esp + 0x98]
push ebx
push ecx
call dword [sym.imp.USER32.dll_GetMessageA]
mov eax, dword [esp + 0x94]
cmp eax, 0x12
je 0x4ab831
cmp dword [esp + 0x1c], ebx
jne 0x4ab03c
call dword [sym.imp.USER32.dll_GetCapture]
push eax
call sub.MFC42.DLL_CWnd::FromHandle
cmp eax, esi
je 0x4ab035
mov ecx, esi
call sub.MFC42.DLL_CWnd::SetFocus
mov edx, dword [esi + 0x20]
push edx
call dword [sym.imp.USER32.dll_SetCapture]
push eax
call sub.MFC42.DLL_CWnd::FromHandle
mov eax, dword [esp + 0x94]
cmp eax, 0x201
ja 0x4ab1b6
je 0x4aafc4
sub eax, 0x100
je 0x4ab136
sub eax, 0x11
je 0x4ab074
sub eax, 0xef
jne 0x4ab1c6
mov ecx, esi
call fcn.004a7420
jmp case.default.0x4ab14f
push esi
lea ecx, [esp + 0xc8]
call fcn.004e2538
mov eax, dword [esi]
lea ecx, [esp + 0xc4]
push ebx
push ecx
mov ecx, esi
mov dword [esp + 0x100], 0x1c
call dword [eax + 0xe4]
mov edx, dword [esi + 0x224]
mov eax, dword [esp + 0x98]
xor ecx, ecx
mov cx, word [edx + eax*8 + 2]
lea eax, [edx + eax*8]
mov edx, dword [ebp + 0xe4]
mov eax, dword [eax + 4]
mov ecx, dword [edx + ecx*4]
mov edx, dword [eax + 4]
mov eax, dword [edx]
mov edx, dword [esi + 0xe0]
push eax
mov eax, dword [esi + 0xe4]
push eax
mov eax, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0x20]
push eax
lea eax, [esp + 0xd4]
push edx
push eax
call fcn.00464bf0
cmp eax, ebx
je 0x4ab116
mov ecx, ebp
call fcn.00489c30
mov edx, dword [ebp]
push 1
mov ecx, ebp
call dword [edx + 0x64]
mov ecx, esi
call fcn.004a0b80
mov eax, dword [esi + 0x20]
push 1
push ebx
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
lea ecx, [esp + 0xc4]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0xf8], 0xffffffff
call sub.MFC42.DLL_CClientDC::CClientDC
jmp case.default.0x4ab14f
mov ecx, dword [esp + 0x98]
and ecx, 0xffff
lea eax, [ecx - 0x25]
cmp eax, 3
ja case.default.0x4ab14f
jmp dword [eax*4 + 0x4ab874]
mov edx, dword [esi]
push ebx
mov ecx, esi
call dword [edx + 0x70]
push eax
push ebx
push ebx
mov ecx, esi
call fcn.0049d3a0
jmp case.default.0x4ab14f
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 0x70]
push eax
push ebx
push ebx
mov ecx, esi
call fcn.004a0670
jmp case.default.0x4ab14f
mov edx, dword [esi]
push ebx
mov ecx, esi
call dword [edx + 0x70]
push eax
push ebx
push 1
mov ecx, esi
call fcn.0049d3a0
jmp case.default.0x4ab14f
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 0x70]
push eax
push ebx
push 1
mov ecx, esi
call fcn.004a0670
jmp case.default.0x4ab14f
sub eax, 0x202
je 0x4ab1d9
sub eax, 2
je 0x4ab843
lea ecx, [esp + 0x90]
push ecx
call dword [sym.imp.USER32.dll_DispatchMessageA]
jmp case.default.0x4ab14f
push esi
lea ecx, [esp + 0x78]
call fcn.004e2538
mov edx, dword [esi]
lea eax, [esp + 0x74]
push ebx
push eax
mov ecx, esi
mov dword [esp + 0x100], ebx
call dword [edx + 0xe4]
mov eax, dword [esp + 0x9c]
lea edx, [esp + 0x14]
mov ecx, eax
push 1
movsx eax, ax
shr ecx, 0x10
movsx ecx, cx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x80]
push edx
push eax
mov dword [esp + 0x24], ecx
call dword [sym.imp.GDI32.dll_DPtoLP]
lea ecx, [esi + 0x1fc]
call fcn.00417b70
cmp dword [ebp + 0xe8], ebx
jle 0x4ab3a3
mov ecx, dword [ebp + 0xe4]
mov edi, dword [ecx + ebx*4]
lea ecx, [esp + 0xac]
call sub.MFC42.DLL_CUIntArray::CUIntArray
mov eax, dword [esi + 0xe4]
mov ecx, dword [esi + 0xe0]
lea edx, [esp + 0xac]
mov byte [esp + 0xf8], 1
push edx
mov edx, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x1c]
push ecx
push edx
lea ecx, [esp + 0x84]
push eax
push ecx
mov ecx, edi
call fcn.0046d720
test eax, eax
je 0x4ab37e
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x30], 0
test eax, eax
jle 0x4ab37e
lea ebp, [esi + 0x220]
lea ecx, [esp + 0x3c]
call fcn.004178f0
push 0x14
mov byte [esp + 0x40], 3
mov word [esp + 0x42], bx
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0xc0], eax
test eax, eax
mov byte [esp + 0xf8], 2
je 0x4ab2ea
mov ecx, eax
call sub.MFC42.DLL_CUIntArray::CUIntArray
jmp 0x4ab2ec
xor eax, eax
mov edx, dword [esp + 0xb0]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x40], eax
mov byte [esp + 0xf8], 1
mov ecx, dword [edx + ecx*4]
mov edx, dword [eax + 8]
push ecx
push edx
mov ecx, eax
call sub.MFC42.DLL_CUIntArray::SetAtGrow
mov edi, dword [ebp + 8]
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
push 0xffffffffffffffff
lea ecx, [edi + 1]
mov dword [esp + 0x8c], edx
push ecx
mov ecx, ebp
mov dword [esp + 0x94], eax
call fcn.00417530
mov ecx, dword [ebp + 4]
lea edx, [esp + 0x88]
lea eax, [esp + 0xe8]
push edx
push eax
lea ecx, [ecx + edi*8]
call fcn.00417900
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x4ab362
mov edx, dword [ecx]
push 1
call dword [edx + 4]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0xb4]
inc eax
cmp eax, ecx
mov dword [esp + 0x30], eax
jl 0x4ab2b1
mov ebp, dword [esp + 0x44]
lea ecx, [esp + 0xac]
mov byte [esp + 0xf8], 0
call fcn.004e26a6
mov eax, dword [ebp + 0xe8]
inc ebx
cmp ebx, eax
jl 0x4ab240
xor ebx, ebx
mov eax, dword [esi + 0x228]
cmp eax, ebx
jne 0x4ab3c6
lea ecx, [esp + 0x74]
mov dword [esp + 0xf8], 0xffffffff
call sub.MFC42.DLL_CClientDC::CClientDC
jmp case.default.0x4ab14f
cmp eax, 1
jne 0x4ab454
mov eax, dword [esi + 0x224]
mov edx, dword [ebp + 0xe4]
xor ecx, ecx
mov cx, word [eax + 2]
mov eax, dword [eax + 4]
mov ecx, dword [edx + ecx*4]
mov edx, dword [eax + 4]
mov eax, dword [edx]
mov edx, dword [esi + 0xe0]
push eax
mov eax, dword [esi + 0xe4]
push eax
mov eax, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0x20]
push eax
lea eax, [esp + 0x84]
push edx
push eax
call fcn.00464bf0
cmp eax, ebx
je 0x4ab43b
mov ecx, ebp
call fcn.00489c30
mov edx, dword [ebp]
push 1
mov ecx, ebp
call dword [edx + 0x64]
mov ecx, esi
call fcn.004a0b80
mov eax, dword [esi + 0x20]
push 1
push ebx
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
lea ecx, [esp + 0x74]
mov dword [esp + 0xf8], 0xffffffff
call sub.MFC42.DLL_CClientDC::CClientDC
jmp case.default.0x4ab14f
mov ecx, dword [esi + 0x160]
push ecx
call dword [sym.imp.USER32.dll_GetMenuItemCount]
lea edi, [eax - 1]
test edi, edi
jl 0x4ab47e
mov edx, dword [esi + 0x160]
push 0x400
push edi
push edx
call dword [sym.imp.USER32.dll_DeleteMenu]
dec edi
jns 0x4ab468
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CString::CString
push 0xa2b2
lea ecx, [esp + 0x2c]
mov byte [esp + 0xfc], 3
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CString::CString
push 0xa2b4
lea ecx, [esp + 0x24]
mov byte [esp + 0xfc], 4
call sub.MFC42.DLL_CString::LoadStringA
mov eax, dword [esi + 0x228]
xor edi, edi
test eax, eax
jle 0x4ab784
mov eax, dword [esi + 0x224]
xor ebx, ebx
lea ecx, [esp + 0x10]
mov bx, word [eax + edi*8 + 2]
lea ebp, [eax + edi*8]
inc ebx
call sub.MFC42.DLL_CString::CString
push ebx
lea ecx, [esp + 0x14]
push 0x50f158
push ecx
mov byte [esp + 0x104], 5
call sub.MFC42.DLL_CString::Format
add ebx, 0xfffffff6
add esp, 0xc
test ebx, ebx
jge 0x4ab53f
lea edx, [esp + 0x10]
lea eax, [esp + 0x64]
push edx
push 0x50f12c
push eax
call sub.MFC42.DLL_operator_2
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0xfc], 6
call fcn.004e2718
lea ecx, [esp + 0x64]
mov byte [esp + 0xf8], 5
call fcn.004e2712
mov ecx, dword [ebp + 4]
mov edx, dword [ecx + 4]
lea ecx, [esp + 0x24]
mov eax, dword [edx]
lea ebp, [eax + 1]
call sub.MFC42.DLL_CString::CString
push ebp
lea eax, [esp + 0x28]
push 0x50f158
push eax
mov byte [esp + 0x104], 7
call sub.MFC42.DLL_CString::Format
add esp, 0xc
lea ecx, [esp + 0x2c]
call sub.MFC42.DLL_CString::CString
inc ebp
lea ecx, [esp + 0x2c]
push ebp
push 0x50f158
push ecx
mov byte [esp + 0x104], 8
call sub.MFC42.DLL_CString::Format
add esp, 0xc
lea edx, [esp + 0x28]
lea eax, [esp + 0x68]
push 0x50f12c
push edx
push eax
call sub.MFC42.DLL_operator_1
lea ecx, [esp + 0x10]
lea edx, [esp + 0x70]
push ecx
push eax
push edx
mov byte [esp + 0x104], 9
call sub.MFC42.DLL_operator
push 0x510edc
push eax
lea eax, [esp + 0x74]
mov byte [esp + 0x100], 0xa
push eax
call sub.MFC42.DLL_operator_1
lea ecx, [esp + 0x20]
lea edx, [esp + 0x5c]
push ecx
push eax
push edx
mov byte [esp + 0x104], 0xb
call sub.MFC42.DLL_operator
push 0x50f12c
push eax
lea eax, [esp + 0x54]
mov byte [esp + 0x100], 0xc
push eax
call sub.MFC42.DLL_operator_1
lea ecx, [esp + 0x24]
lea edx, [esp + 0x54]
push ecx
push eax
push edx
mov byte [esp + 0x104], 0xd
call sub.MFC42.DLL_operator
push 0x510ed8
push eax
lea eax, [esp + 0x60]
mov byte [esp + 0x100], 0xe
push eax
call sub.MFC42.DLL_operator_1
lea ecx, [esp + 0x20]
mov byte [esp + 0xf8], 0xf
push ecx
push eax
lea edx, [esp + 0x58]
push edx
call sub.MFC42.DLL_operator
push 0x50f12c
push eax
lea eax, [esp + 0x68]
mov byte [esp + 0x100], 0x10
push eax
call sub.MFC42.DLL_operator_1
lea ecx, [esp + 0x2c]
lea edx, [esp + 0x48]
push ecx
push eax
push edx
mov byte [esp + 0x104], 0x11
call sub.MFC42.DLL_operator
lea ecx, [esp + 0x60]
mov byte [esp + 0xf8], 0x1b
call fcn.004e2712
lea ecx, [esp + 0x50]
mov byte [esp + 0xf8], 0x1a
call fcn.004e2712
lea ecx, [esp + 0x58]
mov byte [esp + 0xf8], 0x19
call fcn.004e2712
lea ecx, [esp + 0x54]
mov byte [esp + 0xf8], 0x18
call fcn.004e2712
lea ecx, [esp + 0x4c]
mov byte [esp + 0xf8], 0x17
call fcn.004e2712
lea ecx, [esp + 0x5c]
mov byte [esp + 0xf8], 0x16
call fcn.004e2712
lea ecx, [esp + 0x6c]
mov byte [esp + 0xf8], 0x15
call fcn.004e2712
lea ecx, [esp + 0x70]
mov byte [esp + 0xf8], 0x14
call fcn.004e2712
lea ecx, [esp + 0x68]
mov byte [esp + 0xf8], 0x13
call fcn.004e2712
mov eax, dword [esp + 0x48]
mov ecx, dword [esi + 0x160]
push eax
push edi
push 0
push ecx
call dword [sym.imp.USER32.dll_AppendMenuA]
lea ecx, [esp + 0x48]
mov byte [esp + 0xf8], 8
call fcn.004e2712
lea ecx, [esp + 0x2c]
mov byte [esp + 0xf8], 7
call fcn.004e2712
lea ecx, [esp + 0x24]
mov byte [esp + 0xf8], 5
call fcn.004e2712
lea ecx, [esp + 0x10]
mov byte [esp + 0xf8], 4
call fcn.004e2712
mov eax, dword [esi + 0x228]
inc edi
cmp edi, eax
jl 0x4ab4cc
mov ebp, dword [esp + 0x44]
mov eax, dword [esi + 0x20]
lea edx, [esp + 0xd8]
push edx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x7c]
lea eax, [esp + 0x34]
push 1
push eax
push ecx
mov dword [esp + 0x44], edx
call dword [sym.imp.GDI32.dll_LPtoDP]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0xdc]
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0xd8]
add ecx, edx
push 0
add eax, edi
push esi
push ecx
mov dword [esp + 0x44], ecx
push eax
push 0
lea ecx, [esi + 0x15c]
mov dword [esp + 0x48], eax
mov dword [esp + 0x30], 1
call sub.MFC42.DLL_CMenu::TrackPopupMenu
lea ecx, [esp + 0x20]
mov byte [esp + 0xf8], 3
call fcn.004e2712
lea ecx, [esp + 0x28]
mov byte [esp + 0xf8], 0
call fcn.004e2712
lea ecx, [esp + 0x74]
mov dword [esp + 0xf8], 0xffffffff
call sub.MFC42.DLL_CClientDC::CClientDC
xor ebx, ebx
jmp case.default.0x4ab14f
mov edx, dword [esp + 0x98]
push edx
call dword [sym.imp.USER32.dll_PostQuitMessage]
xor eax, eax
jmp 0x4ab859
call dword [sym.imp.USER32.dll_ReleaseCapture]
lea ecx, [esi + 0x1fc]
call fcn.00417b70
mov eax, 1
mov ecx, dword [esp + 0xf0]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xec
ret