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

Disassembly:
push 0xffffffffffffffff
push 0x43c1dc
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x178
mov eax, dword [0x44a9c0]
push ebx
push ebp
mov ebp, ecx
push esi
push edi
test eax, eax
mov dword [esp + 0x2c], ebp
je 0x410a5b
mov eax, dword [0x44a960]
test eax, eax
movsx eax, byte [0x44a9d8]
je 0x410175
inc eax
jmp 0x410178
add eax, 2
cdq
mov ecx, 3
idiv ecx
mov ecx, 0x44a7e8
mov byte [esp + 0x14], dl
mov edx, dword [esp + 0x14]
push edx
call fcn.0041db50
mov esi, eax
test esi, esi
mov dword [esp + 0x28], esi
je 0x410a5b
mov byte [esp + 0x13], 1
mov ecx, dword [esi + 0x20]
lea eax, [esp + 0x13]
push eax
push ecx
mov ecx, 0x44a7e8
call fcn.00421460
mov cl, byte [esp + 0x13]
mov dword [esp + 0x1c], eax
test cl, cl
jne 0x4101d0
test eax, eax
je 0x4101d0
add eax, 7
mov dword [esp + 0x1c], eax
mov eax, dword [0x455304]
test eax, eax
je 0x4101f9
movsx edx, byte [esi + 0x28]
push edx
mov ecx, 0x44a7e8
call fcn.00421690
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [0x455304]
push eax
call fcn.0042ece0
mov eax, dword [ebp + 0xb8]
lea edx, [esp + 0x58]
push edx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
mov esi, ecx
mov edi, eax
sub esi, edx
sub edi, ebx
add edx, 5
lea ebx, [ecx + 0x14]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x48], edx
lea edx, [eax + 0xa]
add eax, ecx
mov dword [esp + 0x4c], edx
mov ecx, ebp
cdq
sub eax, edx
mov dword [esp + 0x50], ebx
sar eax, 1
mov dword [esp + 0x54], eax
call fcn.00412120
test eax, eax
je 0x410259
add ebx, dword [eax + 0xc]
mov dword [esp + 0x50], ebx
mov ebx, dword [esp + 0x28]
mov eax, dword [ebx + 0x47c]
test eax, eax
je 0x410295
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
lea edx, [ebx + 0x5ac]
add eax, 0xffffffe2
push edx
mov edx, dword [esp + 0x3c]
push eax
lea eax, [ecx + edx]
mov ecx, ebp
cdq
sub eax, edx
sar eax, 1
sub eax, 0xe
push eax
lea eax, [ebp + 0x28]
push eax
call fcn.00413f90
movsx eax, byte [esp + 0x14]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x14], eax
add eax, 4
push eax
push 0
push edi
push esi
push ecx
push edx
lea ecx, [ebp + 0x44f0]
call fcn.00429ea0
lea ecx, [esp + 0x30]
call sub.MFC42.DLL_CString::CString_3
mov al, byte [esp + 0x13]
mov dword [esp + 0x190], 0
test al, al
jne 0x4102ef
mov eax, dword [esp + 0x1c]
test eax, eax
jg 0x4102ef
lea eax, [ebx + 6]
lea ecx, [esp + 0x30]
push eax
push 0x448068
push ecx
jmp 0x4102fd
lea edx, [ebx + 6]
lea eax, [esp + 0x30]
push edx
push str.____s
push eax
call sub.MFC42.DLL_CString::Format
mov edi, dword [sym.imp.2DEngineDll.dll_public:_struct_IXHandler::_mimage::_log_font___thiscall_IXHandler::_mimage::get_logfont_void_]
add esp, 0xc
lea ecx, [esp + 0x140]
lea esi, [ebp + 0x28]
push ecx
mov ecx, esi
call edi
lea edx, [esp + 0xb0]
mov ecx, esi
push edx
call edi
lea eax, [esp + 0xf8]
mov ecx, esi
push eax
call edi
mov edi, dword [sym.imp.2DEngineDll.dll_public:_struct_IXHandler::_mimage::_log_font___thiscall_IXHandler::_mimage::set_logfont_struct_IXHandler::_mimage::_log_font_const__]
lea ecx, [esp + 0xb0]
lea edx, [esp + 0x68]
push ecx
push edx
mov ecx, esi
mov dword [esp + 0xf4], 0xffffff
mov dword [esp + 0x13c], 0xfff000
call edi
mov eax, dword [esp + 0x30]
cmp dword [eax - 8], 0xe
jle 0x4103ac
push 0xe
push ecx
lea edx, [esp + 0x38]
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
call fcn.00436aa0
lea eax, [esp + 0x20]
push eax
call fcn.00421700
add esp, 0xc
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0x194], 1
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x18]
mov byte [esp + 0x190], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x34]
call sub.MFC42.DLL_CString::CString_3
mov edx, dword [ebx + 0x34]
lea ecx, [esp + 0x34]
push ecx
push edx
push 0x44aa2c
mov byte [esp + 0x19c], 2
call fcn.00437c3c
add esp, 0xc
lea eax, [esp + 0x34]
lea ecx, [esp + 0x18]
push eax
push 0x448960
push ecx
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0x38]
mov byte [esp + 0x194], 3
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x18]
mov byte [esp + 0x190], 2
call sub.MFC42.DLL_CString::CString
cmp byte [esp + 0x13], 1
jne 0x410420
lea edx, [esp + 0xf8]
lea eax, [esp + 0x68]
push edx
push eax
jmp 0x41042d
lea ecx, [esp + 0xb0]
lea edx, [esp + 0x68]
push ecx
push edx
mov ecx, esi
call edi
mov eax, dword [esp + 0x30]
mov dword [esp + 0x18], 0
lea edx, [esp + 0x24]
mov ebx, dword [sym.imp.2DEngineDll.dll_public:_void___thiscall_IXHandler::_mimage::text_int_const___int_const___char_const___int_const___int_const__]
mov ecx, dword [eax - 8]
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x18]
push ecx
push edx
push eax
lea eax, [esp + 0x58]
lea ecx, [esp + 0x54]
push eax
push ecx
mov ecx, esi
call ebx
lea edx, [esp + 0xb0]
lea eax, [esp + 0x68]
push edx
push eax
mov ecx, esi
call edi
mov eax, dword [esp + 0x34]
mov dword [esp + 0x18], 0
lea edx, [esp + 0x18]
mov ecx, dword [eax - 8]
push edx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x50]
add ecx, 0x13
lea edx, [esp + 0x24]
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x28]
push ecx
push eax
lea eax, [esp + 0x54]
push edx
push eax
mov ecx, esi
call ebx
lea ecx, [esp + 0x140]
lea edx, [esp + 0x68]
push ecx
push edx
mov ecx, esi
call edi
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
add ecx, 0x23
movsx eax, byte [ebx + 0x1b8]
push eax
push ecx
push edx
mov ecx, ebp
call fcn.00414000
mov al, byte [esp + 0x13]
test al, al
jne 0x4104ec
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x41050c
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
add eax, 0xc8
push eax
push ecx
push edx
push esi
lea ecx, [ebp + 0xbc]
call fcn.0042b240
mov eax, dword [0x4552f4]
mov edi, dword [esp + 0x14]
test eax, eax
je 0x410538
cmp dword [0x452054], edi
jne 0x410538
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
add eax, 0xffffffd8
add ecx, 0xffffffec
push eax
push ecx
mov ecx, ebp
call fcn.00413870
mov eax, dword [0x452050]
cmp eax, 0xffffffff
je 0x4105a1
movsx edx, byte [ebx + 0x28]
cmp eax, edx
jne 0x4105a1
lea edi, [ebp + 0xbc]
push 0xb4
mov ecx, edi
call fcn.0042aaa0
mov ebx, eax
mov eax, dword [esp + 0x28]
push 0
push 0
mov ecx, dword [eax + 0x34]
push 0
push 0
push ecx
mov ecx, ebp
call fcn.00410020
push eax
push ebx
push 0xb4
mov ecx, edi
call fcn.0042b200
mov edx, dword [esp + 0x54]
mov ecx, esi
sub edx, eax
mov eax, dword [esp + 0x50]
push edx
push eax
push 0
call dword [sym.imp.2DEngineDll.dll_public:_void___thiscall_IXHandler::_mimage::bitblt_int__int__int__class_IXHandler::_mimage___int__enum_IXHandler::_mimage::Align_Style__bool__struct_tagRECT___struct_IXHandler::_mimage::_mimage_blt_fx_const__]
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x14]
lea eax, [edi + edi*4]
lea ecx, [eax + eax*8]
lea edx, [edi + ecx*2]
shl edx, 4
mov eax, dword [edx + 0x44b1a8]
test eax, eax
je 0x410600
lea edi, [ebp + 0xbc]
push 0xa2
push 0xa2
mov ecx, edi
call fcn.0042b200
mov ecx, dword [esp + 0x48]
sub ecx, eax
sub ecx, 3
push ecx
push 0xa2
mov ecx, edi
call fcn.0042b1e0
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x48]
add edx, ecx
mov ecx, edi
sub edx, eax
mov eax, edx
cdq
sub eax, edx
sar eax, 1
push eax
push esi
call fcn.0042b240
mov ecx, ebp
call fcn.004120c0
test eax, eax
lea ecx, [ebp + 0xbc]
je 0x410625
push 0x95
call fcn.0042b1e0
mov ecx, dword [esp + 0x40]
lea ecx, [eax + ecx + 0xf]
jmp 0x410637
push 0x96
call fcn.0042b1e0
mov edx, dword [esp + 0x40]
lea ecx, [eax + edx + 0xf]
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x5c]
sub eax, edx
cdq
sub eax, edx
mov edx, dword [ebp + 0x1c]
sar eax, 1
sub eax, 0x50
test edx, edx
lea edx, [ebx + 0x31c]
jne 0x41065c
lea edx, [ebx + 0x1c8]
push edx
push eax
push ecx
mov ecx, ebp
call fcn.00412170
test byte [ebx + 0x470], 1
je 0x4106b1
mov ecx, ebp
call fcn.004120c0
test eax, eax
je 0x410686
push 0x90
push 0x90
jmp 0x410690
push 0xac
push 0xac
lea edi, [ebp + 0xbc]
mov ecx, edi
call fcn.0042b200
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
sub ecx, eax
push ecx
push edx
push esi
mov ecx, edi
call fcn.0042b240
mov al, byte [ebx + 0x1b8]
test al, al
jle 0x410940
mov ecx, ebp
call fcn.00412120
mov edi, eax
mov ecx, ebp
mov dword [esp + 0x24], edi
call fcn.004120c0
test eax, eax
je 0x4106ec
mov eax, dword [esp + 0x40]
mov dword [esp + 0x20], 0x19
add eax, 0xd
mov dword [esp + 0x1c], eax
jmp 0x4106ff
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x20], 0xe
add ecx, 0xd
mov dword [esp + 0x1c], ecx
mov eax, dword [0x4552f4]
test eax, eax
je 0x4107db
mov cl, byte [0x44a9a5]
test cl, cl
jne 0x4107b6
cmp byte [ebx + 0x1b8], 2
jle 0x4107b6
mov eax, dword [edi + 0x10]
mov edi, dword [esp + 0x20]
shl edi, 4
mov ecx, ebp
add edi, eax
call fcn.004120c0
test eax, eax
je 0x410745
push 0xa9
jmp 0x41074a
push 0xaa
lea ecx, [ebp + 0xbc]
call fcn.0042aaa0
mov dword [esp + 0x24], eax
mov eax, edi
cdq
sub eax, edx
mov dword [esp + 0x2c], 0x11
mov ebx, eax
sar ebx, 1
xor edi, edi
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x64]
push 0
push 0
push 0
push 0
push 0
push edx
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x34]
sub eax, edx
cdq
sub eax, edx
sar eax, 1
sub eax, ebx
lea eax, [eax + edi - 5]
push eax
push ecx
push 0
mov ecx, esi
call dword [sym.imp.2DEngineDll.dll_public:_void___thiscall_IXHandler::_mimage::bitblt_int__int__int__class_IXHandler::_mimage___int__enum_IXHandler::_mimage::Align_Style__bool__struct_tagRECT___struct_IXHandler::_mimage::_mimage_blt_fx_const__]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
add edi, ecx
dec eax
mov dword [esp + 0x2c], eax
jne 0x41076c
jmp 0x41093c
test eax, eax
je 0x4107db
lea edx, [ebx + 0x78]
mov ecx, 0x44a7e8
push edx
call fcn.0041de40
test al, al
jne 0x4107db
mov eax, dword [esp + 0x20]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x20], eax
jmp 0x4107ee
mov ecx, ebp
call fcn.004120c0
test eax, eax
je 0x4107ee
mov dword [esp + 0x20], 0x14
movsx eax, byte [ebx + 0x1b8]
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x18], 0
lea edi, [eax - 1]
imul edi, dword [esp + 0x20]
add edi, ecx
test eax, eax
jle 0x410940
mov eax, dword [esp + 0x28]
xor ebx, ebx
add eax, 0x78
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, 0x44a7e8
call fcn.0041de40
test al, al
jne 0x4108bb
mov ecx, ebp
call fcn.004120c0
mov ebp, dword [esp + 0x64]
test eax, eax
mov eax, dword [esp + 0x5c]
je 0x410882
mov edx, dword [esp + 0x2c]
push 0
push 0
push 0
push 0
push 0
push 0xa9
lea ecx, [edx + 0xbc]
sub ebp, eax
call fcn.0042aaa0
push eax
mov eax, ebp
cdq
sub eax, edx
mov ecx, eax
mov eax, edi
cdq
sub eax, edx
sar ecx, 1
sar eax, 1
sub ecx, eax
lea edx, [ecx + ebx - 5]
jmp 0x4108fb
mov ecx, dword [esp + 0x2c]
push 0
push 0
push 0
push 0
push 0
push 0xaa
add ecx, 0xbc
sub ebp, eax
call fcn.0042aaa0
push eax
mov eax, ebp
cdq
sub eax, edx
mov ecx, eax
mov eax, edi
cdq
sub eax, edx
sar ecx, 1
sar eax, 1
sub ecx, eax
lea edx, [ecx + ebx - 5]
jmp 0x4108fb
mov ebp, dword [esp + 0x64]
mov ecx, dword [esp + 0x5c]
push 0
sub ebp, ecx
mov ecx, dword [esp + 0x18]
push 0
push 0
push 0
push ecx
mov ecx, 0x44a7e8
call fcn.0041de40
movsx edx, al
mov eax, dword [esp + 0x34]
push edx
push eax
mov eax, ebp
cdq
sub eax, edx
mov ecx, eax
mov eax, edi
cdq
sub eax, edx
sar ecx, 1
sar eax, 1
sub ecx, eax
lea edx, [ecx + ebx - 0xf]
mov eax, dword [esp + 0x34]
push edx
push eax
push 0
mov ecx, esi
call dword [sym.imp.2DEngineDll.dll_public:_void___thiscall_IXHandler::_mimage::bitblt_int__int__int__class_IXHandler::_mimage___int__enum_IXHandler::_mimage::Align_Style__bool__struct_tagRECT___struct_IXHandler::_mimage::_mimage_blt_fx_const__]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
add ebx, edx
inc eax
movsx edx, byte [ecx + 0x1b8]
add ebp, 8
cmp eax, edx
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x18], eax
jl 0x41081f
mov ebx, dword [esp + 0x28]
test byte [ebx + 0x470], 0x10
je 0x410a36
mov ecx, ebp
call fcn.004120c0
test eax, eax
je 0x41095f
push 0x95
jmp 0x410964
push 0x96
lea edi, [ebp + 0xbc]
mov ecx, edi
call fcn.0042b1e0
mov ecx, ebp
call fcn.004120c0
test eax, eax
mov eax, dword [ebx + 0x474]
je 0x4109ca
cmp eax, 3
ja case.default.0x4109cf
jmp dword [eax*4 + 0x410a74]
push 0x94
mov ecx, edi
call fcn.0042aaa0
jmp 0x410a12
push 0x91
mov ecx, edi
call fcn.0042aaa0
jmp 0x410a12
push 0x92
mov ecx, edi
call fcn.0042aaa0
jmp 0x410a12
push 0x93
mov ecx, edi
call fcn.0042aaa0
jmp 0x410a12
cmp eax, 3
ja case.default.0x4109cf
jmp dword [eax*4 + 0x410a84]
push 0xb0
mov ecx, edi
call fcn.0042aaa0
jmp 0x410a12
push 0xad
mov ecx, edi
call fcn.0042aaa0
jmp 0x410a12
push 0xae
mov ecx, edi
call fcn.0042aaa0
jmp 0x410a12
push 0xaf
mov ecx, edi
call fcn.0042aaa0
jmp 0x410a12
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x10]
push 0
push 0
push 0
push 0
push 0
push eax
mov eax, dword [esp + 0x6c]
sub eax, ecx
mov ecx, esi
push eax
mov eax, dword [esp + 0x6c]
push eax
push 0
call dword [sym.imp.2DEngineDll.dll_public:_void___thiscall_IXHandler::_mimage::bitblt_int__int__int__class_IXHandler::_mimage___int__enum_IXHandler::_mimage::Align_Style__bool__struct_tagRECT___struct_IXHandler::_mimage::_mimage_blt_fx_const__]
lea ecx, [esp + 0x34]
mov byte [esp + 0x190], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x30]
mov dword [esp + 0x190], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x188]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x184
ret