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

Disassembly:
sub esp, 0x90
push esi
mov esi, ecx
mov eax, dword [esi + 0x21c]
test eax, eax
jne 0x1000fe7c
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x1000fe7c
call dword [sym.imp.USER32.dll_GetCapture]
test eax, eax
jne 0x1000fe7c
mov edx, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
cmp edx, 2
sete al
push ebx
push ebp
push edi
mov dword [esp + 0x28], 0
mov dword [esp + 0x18], ecx
test eax, eax
mov dword [esp + 0x34], eax
je 0x1000f8d2
mov edx, dword [esi + 0x1a8]
mov eax, dword [esi + 0x1ac]
mov edi, ecx
mov dword [esp + 0x1c], edx
mov edx, dword [esi]
push edi
mov ecx, esi
xor ebx, ebx
mov ebp, 0x1404
mov dword [esp + 0x24], eax
call dword [edx + 0x24]
jmp 0x1000f8fc
mov ecx, dword [esi + 0x1b4]
mov ebx, dword [esp + 0xa8]
mov eax, dword [esi + 0x1b0]
mov edx, dword [esi]
mov dword [esp + 0x20], ecx
push ebx
mov ecx, esi
xor edi, edi
mov ebp, 0x1407
mov dword [esp + 0x20], eax
call dword [edx + 0x3c]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x18]
push eax
push 0
push ebp
mov ecx, esi
call sym.Host71.dll_public:_long_int___thiscall_IGrid::NotifyOwner_unsigned_int__unsigned_int__long_int_
test eax, eax
je 0x1000fe79
mov edx, dword [esi]
xor ebp, ebp
push ebp
mov ecx, esi
call dword [edx + 0xe8]
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x40]
push ecx
mov ecx, esi
mov dword [esi + 0x140], 1
mov dword [esp + 0x44], ebx
mov dword [esp + 0x40], edi
call sym.Host71.dll_public:_void___thiscall_IGrid::Cell2SCell_unsigned_long_int___unsigned_long_int__
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
push edx
push eax
lea ecx, [esp + 0x64]
push ecx
mov ecx, esi
call sym.Host71.dll_public:_struct_tagRECT___thiscall_IGrid::SCell2Rect_unsigned_long_int__unsigned_long_int_
mov edx, dword [esi + 4]
push edx
call dword [sym.imp.USER32.dll_SetCapture]
mov ecx, esi
call sym.Host71.dll_public:_class_CDC____thiscall_IGrid::GetDC_void_
mov ecx, dword [esi + 0x1f4]
push ecx
mov ecx, eax
mov dword [esp + 0x14], eax
call sub.MFC71.DLL_CDC::SelectObject_1
mov ecx, dword [esp + 0x10]
push 7
mov dword [esp + 0x54], eax
call sub.MFC71.DLL_CDC::SetROP2
lea edx, [esp + 0x40]
push edx
mov ecx, esi
mov dword [esp + 0x3c], eax
call sym.Host71.dll_public:_void___thiscall_IGrid::GetGridRect_struct_tagRECT__
mov dword [esp + 0x14], ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x2c], ebp
mov ebp, dword [sym.imp.USER32.dll_SendMessageA]
or ebx, 0xffffffff
push 0
push 0
push 0
lea eax, [esp + 0x78]
push eax
call dword [sym.imp.USER32.dll_GetMessageA]
call dword [sym.imp.USER32.dll_GetCapture]
cmp eax, dword [esi + 4]
jne 0x1000fd3d
mov eax, dword [esp + 0x70]
cmp eax, 0x202
ja 0x1000fce5
je 0x1000f9fb
cmp eax, 0x100
je 0x1000faf1
cmp eax, 0x200
jne 0x1000fcf0
xor ecx, ecx
cmp eax, 0x202
mov eax, dword [esp + 0x34]
sete cl
test eax, eax
mov dword [esp + 0x2c], ecx
mov ecx, dword [esi + 0x14]
je 0x1000fbb5
mov edx, dword [esp + 0x78]
mov edi, dword [esp + 0x60]
shr edx, 0x10
movsx eax, dx
sub eax, edi
test ecx, ecx
mov dword [esp + 0x24], eax
jne 0x1000fa3b
mov edx, dword [esi + 0x18]
test edx, edx
je 0x1000fa68
test ecx, ecx
je 0x1000fa4e
lea eax, [esp + 0x18]
push eax
push 0
push 0x1405
push ecx
call ebp
mov eax, dword [esp + 0x24]
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x1000fa68
lea edx, [esp + 0x18]
push edx
push 0
push 0x1405
push esi
call ecx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
cmp eax, ecx
jg 0x1000fa78
mov ecx, dword [esp + 0x1c]
cmp eax, ecx
jge 0x1000fa7e
mov eax, ecx
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x60]
lea edi, [ecx + eax]
cmp edi, ebx
je 0x1000fb59
mov eax, dword [esp + 0x14]
test eax, eax
je 0x1000fac3
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x10]
push ebx
push edx
lea eax, [esp + 0x90]
push eax
call sub.MFC71.DLL_CDC::MoveTo
mov ecx, dword [esp + 0x48]
push ebx
push ecx
mov ecx, dword [esp + 0x18]
call sub.MFC71.DLL_CDC::LineTo
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x1000fb65
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x10]
push edi
push edx
lea eax, [esp + 0xa0]
push eax
call sub.MFC71.DLL_CDC::MoveTo
mov ecx, dword [esp + 0x48]
push edi
push ecx
jmp 0x1000fc77
cmp dword [esp + 0x74], 0x1b
jne 0x1000fcfb
mov eax, dword [esp + 0x34]
test eax, eax
mov eax, dword [esi + 0x14]
mov dword [esp + 0x30], 0
mov dword [esp + 0x18], 0xffffffff
je 0x1000fd09
test eax, eax
jne 0x1000fb2e
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x1000fd3d
test eax, eax
je 0x1000fb3d
lea edx, [esp + 0x18]
push edx
push 0
push 0x1406
push eax
call ebp
mov eax, dword [esi + 0x18]
test eax, eax
je 0x1000fd3d
lea ecx, [esp + 0x18]
push ecx
push 0
push 0x1406
jmp 0x1000fd3a
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x1000f9b4
mov ecx, dword [esi + 0x14]
xor eax, eax
test ecx, ecx
jne 0x1000fb87
mov edx, dword [esi + 0x18]
test edx, edx
jne 0x1000fb83
mov eax, 1
mov dword [esp + 0x30], eax
jmp 0x1000fcfb
test ecx, ecx
je 0x1000fb96
lea edx, [esp + 0x18]
push edx
push 0
push 0x1406
push ecx
call ebp
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x1000fbac
lea eax, [esp + 0x18]
push eax
push 0
push 0x1406
push esi
call ecx
mov dword [esp + 0x30], eax
jmp 0x1000fcfb
movsx eax, word [esp + 0x78]
sub eax, dword [esp + 0x5c]
test ecx, ecx
mov dword [esp + 0x24], eax
jne 0x1000fbd1
mov edx, dword [esi + 0x18]
test edx, edx
je 0x1000fbfe
test ecx, ecx
je 0x1000fbe4
lea edx, [esp + 0x18]
push edx
push 0
push 0x1408
push ecx
call ebp
mov eax, dword [esp + 0x24]
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x1000fbfe
lea eax, [esp + 0x18]
push eax
push 0
push 0x1408
push esi
call ecx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
cmp eax, ecx
jg 0x1000fc0e
mov ecx, dword [esp + 0x1c]
cmp eax, ecx
jge 0x1000fc14
mov eax, ecx
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x5c]
lea edi, [ecx + eax]
cmp edi, ebx
je 0x1000fc8f
mov eax, dword [esp + 0x14]
test eax, eax
je 0x1000fc55
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x10]
push edx
push ebx
lea eax, [esp + 0x98]
push eax
call sub.MFC71.DLL_CDC::MoveTo
mov ecx, dword [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0x14]
push ebx
call sub.MFC71.DLL_CDC::LineTo
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x1000fc9b
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x10]
push edx
push edi
lea eax, [esp + 0x5c]
push eax
call sub.MFC71.DLL_CDC::MoveTo
mov ecx, dword [esp + 0x4c]
push ecx
push edi
mov ecx, dword [esp + 0x18]
call sub.MFC71.DLL_CDC::LineTo
mov ebx, edi
mov dword [esp + 0x14], 1
jmp 0x1000f9b4
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x1000f9b4
mov ecx, dword [esi + 0x14]
xor eax, eax
test ecx, ecx
jne 0x1000fcba
mov edx, dword [esi + 0x18]
test edx, edx
jne 0x1000fcb6
mov eax, 1
mov dword [esp + 0x30], eax
jmp 0x1000fcfb
test ecx, ecx
je 0x1000fcc9
lea edx, [esp + 0x18]
push edx
push 0
push 0x1409
push ecx
call ebp
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x1000fcdf
lea eax, [esp + 0x18]
push eax
push 0
push 0x1409
push esi
call ecx
mov dword [esp + 0x30], eax
jmp 0x1000fcfb
cmp eax, 0x204
je 0x1000fafc
lea ecx, [esp + 0x6c]
push ecx
call dword [sym.imp.USER32.dll_DispatchMessageA]
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x1000f9b4
jmp 0x1000fd3d
test eax, eax
jne 0x1000fd18
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x1000fd3d
test eax, eax
je 0x1000fd27
lea edx, [esp + 0x18]
push edx
push 0
push 0x1409
push eax
call ebp
mov eax, dword [esi + 0x18]
test eax, eax
je 0x1000fd3d
lea ecx, [esp + 0x18]
push ecx
push 0
push 0x1409
push esi
call eax
mov eax, dword [esp + 0x14]
test eax, eax
je 0x1000fd84
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
test eax, eax
lea eax, [esp + 0x54]
je 0x1000fd69
mov edx, dword [esp + 0x40]
push ebx
push edx
push eax
call sub.MFC71.DLL_CDC::MoveTo
mov ecx, dword [esp + 0x48]
push ebx
push ecx
jmp 0x1000fd7b
mov edx, dword [esp + 0x44]
push edx
push ebx
push eax
call sub.MFC71.DLL_CDC::MoveTo
mov ecx, dword [esp + 0x4c]
push ecx
push ebx
mov ecx, dword [esp + 0x18]
call sub.MFC71.DLL_CDC::LineTo
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x10]
push edx
call sub.MFC71.DLL_CDC::SelectObject_1
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x10]
push eax
call sub.MFC71.DLL_CDC::SetROP2
lea ecx, [esp + 0x10]
push ecx
mov ecx, esi
call sym.Host71.dll_public:_void___thiscall_IGrid::ReleaseDC_class_CDC___
call dword [sym.imp.USER32.dll_ReleaseCapture]
mov eax, dword [esp + 0x30]
test eax, eax
mov dword [esi + 0x140], 0
je 0x1000fe6d
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0xa8]
test eax, eax
mov eax, dword [esi + 0x244]
je 0x1000fe29
cmp eax, 2
jne 0x1000fe1a
mov edi, dword [esi + 0x248]
cmp edi, ecx
ja 0x1000fe1a
mov eax, dword [esi + 0x250]
cmp eax, ecx
jb 0x1000fe1a
cmp edi, eax
ja 0x1000fe6d
lea ebx, [ebx]
mov eax, dword [esp + 0x24]
mov edx, dword [esi]
push eax
push edi
mov ecx, esi
call dword [edx + 0x1c]
mov eax, dword [esi + 0x250]
inc edi
cmp edi, eax
jbe 0x1000fe00
jmp 0x1000fe6d
mov eax, dword [esp + 0x24]
mov edx, dword [esi]
push eax
push ecx
mov ecx, esi
call dword [edx + 0x1c]
jmp 0x1000fe6d
cmp eax, 3
jne 0x1000fe60
mov edi, dword [esi + 0x24c]
cmp edi, ecx
ja 0x1000fe60
mov eax, dword [esi + 0x254]
cmp eax, ecx
jb 0x1000fe60
cmp edi, eax
ja 0x1000fe6d
mov eax, dword [esp + 0x24]
mov edx, dword [esi]
push eax
push edi
mov ecx, esi
call dword [edx + 0x34]
mov eax, dword [esi + 0x254]
inc edi
cmp edi, eax
jbe 0x1000fe46
jmp 0x1000fe6d
mov eax, dword [esp + 0x24]
mov edx, dword [esi]
push eax
push ecx
mov ecx, esi
call dword [edx + 0x34]
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0xe8]
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x90
ret 8