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

Disassembly:
push 0xffffffffffffffff
push 0x1003ac4e
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x20c
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov dword [esp + 0x74], esi
xor edi, edi
push edi
mov ebp, 0xa
push ebp
lea ecx, [esi + 0x1c]
push 0x24
mov dword [esp + 0x230], edi
mov dword [esi], sym.Host71.dll_const_IGrid::vftable
call sub.Utils50.dll_Ordinal_2
push edi
push ebp
mov ebx, 1
lea ecx, [esi + 0x34]
push 0x24
mov byte [esp + 0x230], bl
call sub.Utils50.dll_Ordinal_2
push edi
push 0x64
push 0x10
lea ecx, [esi + 0x50]
mov byte [esp + 0x230], 2
call sub.Utils50.dll_Ordinal_20
mov dword [esi + 0x4c], 0x1003eba0
mov word [esi + 0x64], bp
mov word [esi + 0x66], bp
mov dl, byte [esi + 0x74]
lea ebp, [esi + 0x68]
and dl, 0xf8
mov dword [ebp], edi
mov dword [ebp + 4], edi
mov dword [ebp + 8], edi
mov byte [ebp + 0xc], dl
mov cl, byte [esi + 0x84]
mov dword [esi + 0x78], edi
mov dword [esi + 0x7c], edi
mov dword [esi + 0x80], edi
and cl, 0xf8
mov byte [esi + 0x84], cl
mov al, byte [esi + 0x98]
mov dword [esi + 0x8c], edi
mov dword [esi + 0x90], edi
mov dword [esi + 0x94], edi
and al, 0xf8
mov byte [esi + 0x98], al
mov dl, byte [esi + 0x98]
mov eax, dword [0x1005d070]
or dl, bl
mov dword [esi + 0x88], eax
mov byte [esi + 0x98], dl
mov cl, byte [esi + 0xa8]
mov dword [esi + 0x9c], edi
mov dword [esi + 0xa0], edi
mov dword [esi + 0xa4], edi
and cl, 0xf8
mov byte [esi + 0xa8], cl
mov al, byte [esi + 0xbc]
mov dword [esi + 0xb0], edi
mov dword [esi + 0xb4], edi
mov dword [esi + 0xb8], edi
and al, 0xf8
mov byte [esi + 0xbc], al
mov dl, byte [esi + 0xbc]
mov ecx, dword [0x1005d074]
or dl, bl
mov dword [esi + 0xac], ecx
mov byte [esi + 0xbc], dl
mov dword [esi + 0xc0], edi
mov dword [esi + 0xc4], edi
mov cl, byte [esi + 0xcc]
and cl, 0xf8
mov dword [esi + 0xc8], edi
mov byte [esi + 0xcc], cl
mov dword [esi + 0xe4], edi
mov dword [esi + 0xe0], edi
mov dword [esi + 0xec], edi
mov dword [esi + 0xe8], edi
mov dword [esi + 0xfc], edi
mov dword [esi + 0xf8], edi
mov dword [esi + 0xf4], edi
mov dword [esi + 0xf0], edi
mov dword [esi + 0x104], edi
mov dword [esi + 0x100], edi
mov dword [esi + 0x10c], edi
mov dword [esi + 0x108], edi
lea edx, [esi + 0x1c0]
mov dword [esi + 0x114], edi
mov dword [esi + 0x110], edi
push edx
mov byte [esp + 0x228], 7
mov dword [esi + 0x1b8], edi
mov dword [esi + 0x1bc], edi
call dword [sym.imp.USER32.dll_SetRectEmpty]
mov eax, dword [esp + 0x22c]
mov ecx, dword [esp + 0x234]
mov edx, dword [esp + 0x238]
mov dword [esi + 0x1dc], edi
mov dword [esi + 0x1d8], edi
mov dword [esi + 0x1d4], edi
mov dword [esi + 0x1d0], edi
mov dword [esi + 0x1e0], edi
mov dword [esi + 0x1e4], esi
mov dword [esi + 0x21c], edi
mov dword [esi + 0x220], edi
mov dword [esi + 0x228], edi
mov dword [esi + 0x224], edi
mov dword [esi + 0x22c], edi
mov dword [esi + 0x254], edi
mov dword [esi + 0x250], edi
mov dword [esi + 0x24c], edi
mov dword [esi + 0x248], edi
mov dword [esi + 4], eax
mov eax, dword [esp + 0x230]
mov dword [esi + 0x18], ecx
push edx
mov ecx, ebp
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
call sym.Host71.dll_public:_void___thiscall_AttrSource::SetData_unsigned_long_int_
cmp dword [esi + 4], edi
jne 0x1001385f
mov dword [esi + 0xc], ebx
jmp 0x10013862
mov dword [esi + 0xc], edi
mov ebp, dword [sym.imp.USER32.dll_GetSysColor]
push 5
mov dword [esi + 0x160], edi
mov dword [esi + 0x164], ebx
mov dword [esi + 0x168], ebx
mov dword [esi + 0x16c], ebx
mov dword [esi + 0x170], ebx
mov dword [esi + 0x174], ebx
mov dword [esi + 0x178], ebx
mov dword [esi + 0x17c], ebx
mov dword [esi + 0x180], ebx
mov dword [esi + 0x184], edi
mov dword [esi + 0x188], ebx
mov dword [esi + 0x190], ebx
mov dword [esi + 0x18c], ebx
mov dword [esi + 0x194], ebx
mov word [esi + 0x198], bx
mov word [esi + 0x19a], bx
call ebp
push 8
mov dword [esi + 0x19c], eax
call ebp
push 0xf
mov dword [esi + 0x1a0], eax
call ebp
mov dword [esi + 0x1a4], eax
or eax, 0xffffffff
push 8
mov dword [esi + 0x1a8], 0xa
mov dword [esi + 0x1ac], 0x64
mov dword [esi + 0x1b0], 0x14
mov dword [esi + 0x1b4], 0xc8
mov dword [esi + 0x124], ebx
mov dword [esi + 0x128], edi
mov dword [esi + 0xe8], ebx
mov dword [esi + 0xec], ebx
mov dword [esi + 0x144], ebx
mov dword [esi + 0x244], edi
mov dword [esi + 0x254], eax
mov dword [esi + 0x250], eax
mov dword [esi + 0x24c], eax
mov dword [esi + 0x248], eax
mov dword [esi + 0x148], edi
mov dword [esi + 0x14c], edi
mov dword [esi + 0x108], ebx
mov dword [esi + 0x10c], ebx
mov dword [esi + 0x258], edi
mov dword [esi + 0x150], edi
call sub.MFC71.DLL_operator_new
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, edi
mov byte [esp + 0x224], 8
je 0x1001399d
push 0xffffff
push ebx
push edi
mov ecx, eax
call sub.MFC71.DLL_CPen::CPen
jmp 0x1001399f
xor eax, eax
push 8
mov byte [esp + 0x228], 7
mov dword [esi + 0x1f4], eax
call sub.MFC71.DLL_operator_new
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, edi
mov byte [esp + 0x224], 9
je 0x100139d3
push edi
push ebx
push edi
mov ecx, eax
call sub.MFC71.DLL_CPen::CPen
jmp 0x100139d5
xor eax, eax
push 8
mov byte [esp + 0x228], 7
mov dword [esi + 0x1f8], eax
call sub.MFC71.DLL_operator_new
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, edi
mov byte [esp + 0x224], 0xa
je 0x10013a0f
push 0x10
call ebp
mov ecx, dword [esp + 0x10]
push eax
push ebx
push edi
call sub.MFC71.DLL_CPen::CPen
jmp 0x10013a11
xor eax, eax
push 8
mov byte [esp + 0x228], 7
mov dword [esi + 0x1fc], eax
call sub.MFC71.DLL_operator_new
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, edi
mov byte [esp + 0x224], 0xb
je 0x10013a49
push 0xf
call ebp
mov ecx, dword [esp + 0x10]
push eax
call sub.MFC71.DLL_CBrush::CBrush
jmp 0x10013a4b
xor eax, eax
push 8
mov byte [esp + 0x228], 7
mov dword [esi + 0x200], eax
call sub.MFC71.DLL_operator_new
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, edi
mov byte [esp + 0x224], 0xc
je 0x10013a83
mov ecx, dword [esi + 0x19c]
push ecx
mov ecx, eax
call sub.MFC71.DLL_CBrush::CBrush
jmp 0x10013a85
xor eax, eax
push 8
mov byte [esp + 0x228], 7
mov dword [esi + 0x204], eax
call sub.MFC71.DLL_operator_new
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, edi
mov byte [esp + 0x224], 0xd
je 0x10013abf
mov edx, dword [esi + 0x1a4]
push edx
push ebx
push edi
mov ecx, eax
call sub.MFC71.DLL_CPen::CPen
jmp 0x10013ac1
xor eax, eax
mov ecx, esi
mov byte [esp + 0x224], 7
mov dword [esi + 0x208], eax
call sym.Host71.dll_public:_class_CDC____thiscall_IGrid::GetDC_void_
push edi
push 0xec
lea ecx, [esp + 0x124]
mov dword [esp + 0x20], eax
call sym.Host71.dll_public:_void___thiscall_String::constructor_unsigned_int__struct_HINSTANCE____
push eax
push edi
push edi
mov eax, dword [esp + 0x24]
push edi
mov ecx, dword [eax + 8]
push edi
push ebx
push edi
push edi
push edi
push 0x190
push edi
push edi
push edi
push 0x48
push 0x5a
push ecx
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push eax
push 0xa
call dword [sym.imp.KERNEL32.dll_MulDiv]
neg eax
push eax
call dword [sym.imp.GDI32.dll_CreateFontA]
lea ecx, [esp + 0x11c]
mov dword [esi + 0xd0], eax
call sym.Host71.dll_public:_void___thiscall_String::destructor_void_
mov eax, dword [esi + 0xd0]
cmp eax, edi
je 0x10013b4c
mov edx, dword [esp + 0x18]
push eax
mov eax, dword [edx + 4]
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 8]
lea ecx, [esp + 0xe4]
push ecx
push eax
call dword [sym.imp.GDI32.dll_GetTextMetricsA]
mov eax, dword [esp + 0xf8]
lea ecx, [eax + eax*2]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0xe4]
shl ecx, 2
mov dword [0x1005d074], ecx
add eax, 2
shl edx, 1
mov dword [esi + 0xac], edx
mov dword [0x1005d070], eax
mov dword [esi + 0x88], eax
lea eax, [esp + 0x18]
push eax
mov ecx, esi
call sym.Host71.dll_public:_void___thiscall_IGrid::ReleaseDC_class_CDC___
mov ecx, dword [0x1005d230]
mov ebp, dword [sym.imp.USER32.dll_LoadCursorA]
push 0x401
push ecx
call ebp
mov dword [esi + 0x20c], eax
mov edx, dword [0x1005d230]
push 0x400
push edx
call ebp
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x210], eax
xor eax, eax
cmp ecx, edi
setne al
mov dword [esi + 0x12c], edi
mov dword [esi + 0x130], edi
mov dword [esi + 0x134], ebx
mov dword [esi + 0x13c], edi
mov dword [esi + 0x140], edi
mov dword [esi + 0x154], edi
mov dword [esi + 0x120], eax
mov eax, 0xa
mov dword [esi + 0x138], eax
mov dword [esi + 0xd4], eax
mov dword [esi + 0xe4], eax
mov dword [esi + 0xe0], eax
mov al, byte [esp + 0x70]
and al, 0xf8
mov dword [esi + 0x158], edi
mov dword [esi + 0x15c], edi
mov dword [esi + 0xdc], edi
mov dword [esi + 0xf0], edi
mov dword [esi + 0xf4], edi
mov dword [esi + 0x110], ebx
mov dword [esi + 0x114], ebx
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], edi
mov byte [esp + 0x70], al
mov byte [esp + 0x224], 0xe
mov dword [esp + 0x14], ebx
lea esp, [esp]
cmp dword [esi + 0xd4], ebx
mov ebp, ebx
jb 0x10013ca2
lea ebx, [ebx]
mov edx, dword [esi + 0x4c]
lea eax, [esp + 0x64]
push eax
mov eax, dword [esp + 0x18]
lea ecx, [esi + 0x4c]
push eax
push ebp
call dword [edx + 8]
mov eax, dword [esi + 0xd4]
inc ebp
movzx ecx, bp
cmp ecx, eax
jbe 0x10013c80
mov eax, dword [esp + 0x14]
inc eax
movzx edx, ax
mov dword [esp + 0x14], eax
cmp edx, dword [esi + 0xe4]
jbe 0x10013c70
mov al, byte [esp + 0x3c]
mov dl, byte [esp + 0x28]
mov ecx, dword [0x1005d074]
and al, 0xf8
and dl, 0xf8
or al, bl
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov byte [esp + 0x28], dl
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x2c], ecx
mov byte [esp + 0x3c], al
cmp dword [esi + 0xe4], ebx
mov byte [esp + 0x224], 0xf
mov ebp, ebx
jb 0x10013d22
push ebx
push 0xfffe
lea edx, [esp + 0x24]
push edx
lea ecx, [esi + 0x34]
call sub.Utils50.dll_Ordinal_5
mov ecx, dword [esi + 0xe4]
inc ebp
movzx eax, bp
cmp eax, ecx
jbe 0x10013d01
mov al, byte [esp + 0x60]
mov dl, byte [esp + 0x4c]
mov ecx, dword [0x1005d070]
and al, 0xf8
and dl, 0xf8
or al, bl
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
mov byte [esp + 0x4c], dl
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x50], ecx
mov byte [esp + 0x60], al
cmp dword [esi + 0xd4], ebx
mov byte [esp + 0x224], 0x10
mov ebp, ebx
jb 0x10013d91
lea ecx, [ecx]
push ebx
push 0xfffe
lea edx, [esp + 0x48]
push edx
lea ecx, [esi + 0x1c]
call sub.Utils50.dll_Ordinal_5
mov ecx, dword [esi + 0xd4]
inc ebp
movzx eax, bp
cmp eax, ecx
jbe 0x10013d70
or byte [esi + 0xcc], bl
mov dword [esp + 0xb8], sym.Host71.dll_const_TextCell::vftable
mov word [esp + 0xbc], 0x21
lea ecx, [esp + 0xb8]
push ecx
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, esi
mov byte [esp + 0x230], 0x11
call sym.Host71.dll_public_virtual:_void___thiscall_IGrid::SetCellClass_unsigned_long_int__unsigned_long_int__class_Cell__
mov word [esp + 0x7c], 0x24
mov dword [esp + 0x78], sym.Host71.dll_const_StaticTextCell::vftable
mov byte [esp + 0xa4], bl
lea edx, [esp + 0x78]
push edx
push edi
push 0xffffffffffffffff
mov ecx, esi
mov byte [esp + 0x230], 0x12
call sym.Host71.dll_public_virtual:_void___thiscall_IGrid::SetCellClass_unsigned_long_int__unsigned_long_int__class_Cell__
lea eax, [esp + 0x78]
push eax
push 0xffffffffffffffff
push edi
mov ecx, esi
call sym.Host71.dll_public_virtual:_void___thiscall_IGrid::SetCellClass_unsigned_long_int__unsigned_long_int__class_Cell__
cmp dword [esi + 0x164], edi
je 0x10013ea5
cmp dword [esi + 0x168], edi
je 0x10013ea5
lea ebp, [esi + 0xc0]
cmp ebp, edi
mov dword [esp + 0x10], ebp
je 0x10013ea5
mov ecx, dword [ebp]
cmp ecx, edi
je 0x10013e35
mov edx, dword [ecx]
push ebx
call dword [edx]
mov eax, dword [esp + 0x78]
lea ecx, [esp + 0x78]
call dword [eax + 4]
mov dword [ebp], eax
cmp dword [esi + 0x13c], edi
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], edi
jne 0x10013ea5
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x18]
push edx
mov ecx, esi
call sym.Host71.dll_public:_void___thiscall_IGrid::Cell2SCell_unsigned_long_int___unsigned_long_int__
mov ecx, dword [esp + 0x14]
cmp ecx, 0xffffffff
je 0x10013ea5
mov eax, dword [esp + 0x10]
cmp eax, 0xffffffff
je 0x10013ea5
push eax
push ecx
lea eax, [esp + 0xb0]
push eax
mov ecx, esi
call sym.Host71.dll_public:_struct_tagRECT___thiscall_IGrid::SCell2Rect_unsigned_long_int__unsigned_long_int_
cmp dword [esi + 0x140], edi
jne 0x10013e9f
push ebx
lea ecx, [esp + 0xac]
push ecx
mov ecx, esi
call sym.Host71.dll_public:_void___thiscall_IGrid::InvalidateRect_struct_tagRECT___int_
mov dword [esi + 0x12c], ebx
mov ecx, esi
call sym.Host71.dll_public:_void___thiscall_IGrid::UpdateDisplay_void_
push edi
mov ecx, esi
call sym.Host71.dll_public:_void___thiscall_IGrid::SetupScrollBars_unsigned_char_
mov eax, sym.Host71.dll_const_Cell::vftable
mov dword [esi + 0x238], edi
mov dword [esi + 0x23c], edi
mov dword [esi + 0x234], edi
mov dword [esi + 0x230], edi
mov dword [esi + 0x240], edi
mov dword [esp + 0x78], eax
mov dword [esp + 0xb8], eax
mov ecx, dword [esp + 0x54]
cmp ecx, edi
mov byte [esp + 0x224], 0x13
je 0x10013ef7
mov edx, dword [ecx]
push ebx
call dword [edx]
mov eax, dword [esp + 0x58]
push eax
call sub.MFC71.DLL_operator_delete_1
mov al, byte [esp + 0x64]
add esp, 4
test al, 2
je 0x10013f21
mov ecx, dword [esp + 0x5c]
cmp ecx, edi
je 0x10013f21
push ecx
call sub.MFC71.DLL_operator_delete_1
mov al, byte [esp + 0x64]
add esp, 4
mov ecx, dword [esp + 0x40]
and al, 0xf9
and al, 0xf8
cmp ecx, edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], edi
mov byte [esp + 0x60], al
mov byte [esp + 0x224], 0xf
je 0x10013f4a
mov edx, dword [ecx]
push ebx
call dword [edx]
mov eax, dword [esp + 0x44]
push eax
call sub.MFC71.DLL_operator_delete_1
mov al, byte [esp + 0x50]
add esp, 4
test al, 2
je 0x10013f70
mov eax, dword [esp + 0x48]
cmp eax, edi
je 0x10013f70
push eax
call sub.MFC71.DLL_operator_delete_1
add esp, 4
mov al, byte [esp + 0x4c]
and al, 0xf9
and al, 0xf8
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
mov byte [esp + 0x4c], al
mov ecx, dword [esp + 0x30]
cmp ecx, edi
mov byte [esp + 0x224], 0x14
je 0x10013f9d
mov edx, dword [ecx]
push ebx
call dword [edx]
mov eax, dword [esp + 0x34]
push eax
call sub.MFC71.DLL_operator_delete_1
mov al, byte [esp + 0x40]
add esp, 4
test al, 2
je 0x10013fc7
mov ecx, dword [esp + 0x38]
cmp ecx, edi
je 0x10013fc7
push ecx
call sub.MFC71.DLL_operator_delete_1
mov al, byte [esp + 0x40]
add esp, 4
mov ecx, dword [esp + 0x1c]
and al, 0xf9
and al, 0xf8
cmp ecx, edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov byte [esp + 0x3c], al
mov byte [esp + 0x224], 0xe
je 0x10013ff0
mov edx, dword [ecx]
push ebx
call dword [edx]
mov eax, dword [esp + 0x20]
push eax
call sub.MFC71.DLL_operator_delete_1
mov al, byte [esp + 0x2c]
add esp, 4
test al, 2
je 0x10014016
mov eax, dword [esp + 0x24]
cmp eax, edi
je 0x10014016
push eax
call sub.MFC71.DLL_operator_delete_1
add esp, 4
mov al, byte [esp + 0x28]
mov ecx, dword [esp + 0x64]
and al, 0xf9
and al, 0xf8
cmp ecx, edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov byte [esp + 0x28], al
mov byte [esp + 0x224], 7
je 0x10014043
mov edx, dword [ecx]
push ebx
call dword [edx]
mov eax, dword [esp + 0x68]
push eax
call sub.MFC71.DLL_operator_delete_1
mov al, byte [esp + 0x74]
add esp, 4
test al, 2
je 0x10014069
mov eax, dword [esp + 0x6c]
cmp eax, edi
je 0x10014069
push eax
call sub.MFC71.DLL_operator_delete_1
add esp, 4
mov ecx, dword [esp + 0x21c]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x218
ret 0x10