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

Disassembly:
push 0xffffffffffffffff
push 0x4497fc
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xcc
push ebp
mov ebp, ecx
push esi
mov ecx, 0x45a160
mov dword [esp + 0x18], ebp
call fcn.004280c0
mov esi, eax
test esi, esi
mov dword [esp + 0x10], esi
je 0x4185f8
mov ecx, ebp
call fcn.0041a660
mov ecx, ebp
call fcn.0041a650
mov ecx, dword [ebp + 0x4720]
lea eax, [esp + 0x2c]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov al, byte [ebp + 0x1d]
test al, al
jne 0x417eac
mov eax, dword [esi + 0x65c]
test eax, eax
je 0x417eb5
push 0
mov ecx, ebp
call fcn.0041a5a0
push ebx
push edi
lea ecx, [esp + 0x2c]
call sub.MFC42.DLL_CString::CString_3
lea ecx, [esp + 0x44]
mov dword [esp + 0xe4], 0
call sub.MFC42.DLL_CString::CString_3
lea ecx, [esp + 0x48]
mov byte [esp + 0xe4], 1
call sub.MFC42.DLL_CString::CString_3
add esi, 6
lea edx, [esp + 0x2c]
push esi
mov bl, 2
push 0x457058
push edx
mov byte [esp + 0xf0], bl
call sub.MFC42.DLL_CString::Format
mov eax, dword [esp + 0x38]
add esp, 0xc
mov eax, dword [eax - 8]
cmp eax, 0xe
jle 0x417f5b
push 0
lea ecx, [esp + 0x30]
call sub.MFC42.DLL_CString::GetBuffer
mov esi, eax
lea eax, [esi + 0xe]
push eax
push esi
call dword [sym.imp.USER32.dll_CharPrevA]
sub eax, esi
lea ecx, [esp + 0x30]
push eax
push ecx
lea ecx, [esp + 0x34]
call sub.MFC42.DLL_CString::Left
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0xe8], 3
call sub.MFC42.DLL_CString::operator_1
lea ecx, [esp + 0x30]
mov byte [esp + 0xe4], bl
call sub.MFC42.DLL_CString::CString
movsx edx, byte [0x45a408]
push edx
mov ecx, 0x45a160
call fcn.0042e6d0
and eax, 0x80000001
jns 0x417f79
dec eax
or eax, 0xfffffffe
inc eax
je 0x417f90
mov eax, dword [0x45a3e8]
mov ecx, dword [0x45a3e4]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x28], ecx
jmp 0x417fa3
mov edx, dword [0x45a3e4]
mov eax, dword [0x45a3e8]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x38]
sub ecx, edx
xor eax, eax
sub ecx, 0x19
lea edi, [esp + 0x4c]
mov dword [esp + 0x14], ecx
mov ecx, 0xf
lea edx, [esp + 0x68]
push 0x457050
rep stosd dword es:[edi], eax
push edx
mov dword [esp + 0x18], 0x1e
mov dword [esp + 0x54], 0xfffffff4
mov dword [esp + 0x64], 0x190
mov byte [esp + 0x6b], 0x86
mov byte [esp + 0x6f], bl
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 8
add ebp, 0x24
lea eax, [esp + 0x94]
mov ebx, 0xffffff
push eax
mov ecx, ebp
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 1
call dword [sym.imp.2DEngineDll.dll_public:_struct_IXHandler::_mimage::_log_font___thiscall_IXHandler::_mimage::get_logfont_void_]
mov ecx, 0x12
mov esi, eax
lea edi, [esp + 0x4c]
lea edx, [esp + 0x94]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x4c]
mov dword [esp + 0x88], ebx
mov ebx, dword [sym.imp.2DEngineDll.dll_public:_struct_IXHandler::_mimage::_log_font___thiscall_IXHandler::_mimage::set_logfont_struct_IXHandler::_mimage::_log_font_const__]
push ecx
push edx
mov ecx, ebp
call ebx
mov ecx, 0x12
mov esi, eax
mov eax, dword [esp + 0x2c]
lea edi, [esp + 0x4c]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x30], 0
mov ecx, dword [eax - 8]
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x30]
lea edx, [esp + 0x24]
push ecx
push edx
push eax
lea eax, [esp + 0x20]
lea ecx, [esp + 0x1c]
push eax
push ecx
mov ecx, ebp
call dword [sym.imp.2DEngineDll.dll_public:_void___thiscall_IXHandler::_mimage::text_int_const___int_const___char_const___int_const___int_const__]
lea edx, [esp + 0x4c]
lea eax, [esp + 0x94]
push edx
push eax
mov ecx, ebp
call ebx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
push 0
add edx, 0xfffffff4
push 0xc0
add eax, 0x56
lea edi, [ecx + 0x1dc]
push edx
push eax
push ebp
mov ecx, edi
call fcn.0043a650
push 0xc1
mov ecx, edi
call fcn.00439e90
mov ebx, eax
mov eax, 0x66666667
imul dword [esp + 0x1c]
sar edx, 2
mov ecx, edx
mov eax, dword [esp + 0x10]
push 0
push 0
shr ecx, 0x1f
push 0
add edx, ecx
push 0
mov esi, 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__]
push edx
mov edx, dword [esp + 0x28]
add edx, 0xfffffffd
push ebx
add eax, 0x72
push edx
push eax
push 0
mov ecx, ebp
call esi
mov eax, dword [esp + 0x1c]
mov ecx, 0xa
cdq
idiv ecx
mov eax, dword [esp + 0x10]
push 0
push 0
push 0
push 0
add eax, 0x82
mov ecx, ebp
push edx
mov edx, dword [esp + 0x28]
add edx, 0xfffffffd
push ebx
push edx
push eax
push 0
call esi
push 0xc2
mov ecx, edi
call fcn.00439e90
mov ebx, eax
mov eax, 0x66666667
imul dword [esp + 0x28]
sar edx, 2
mov ecx, edx
mov eax, dword [esp + 0x10]
push 0
push 0
shr ecx, 0x1f
push 0
add edx, ecx
push 0
push edx
mov edx, dword [esp + 0x28]
push ebx
add edx, 0xfffffffd
add eax, 0xbe
push edx
push eax
push 0
mov ecx, ebp
call esi
mov eax, dword [esp + 0x28]
mov ecx, 0xa
cdq
idiv ecx
push 0
push 0
mov eax, dword [esp + 0x18]
push 0
push 0
push edx
mov edx, dword [esp + 0x28]
add edx, 0xfffffffd
push ebx
push edx
add eax, 0xce
mov ecx, ebp
push eax
push 0
call esi
movsx ecx, byte [0x45a408]
mov ebx, dword [ecx*4 + 0x45a3ec]
test ebx, ebx
jl 0x4181f7
push 0xc1
mov ecx, edi
call fcn.00439e90
mov edx, dword [esp + 0x14]
push 0
push 0
mov edi, eax
mov eax, dword [esp + 0x18]
push 0
push 0
push 0xa
add edx, 0xfffffffd
push edi
add eax, 0x114
push edx
push eax
push 0
mov ecx, ebp
call esi
jmp 0x41822b
push 0xc2
mov ecx, edi
call fcn.00439e90
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push 0
push 0
push 0
mov edi, eax
push 0
push 0xb
add ecx, 0xfffffffd
push edi
add edx, 0x114
push ecx
push edx
push 0
mov ecx, ebp
call esi
neg ebx
mov eax, 0x51eb851f
mov ecx, dword [esp + 0x14]
imul ebx
sar edx, 5
mov eax, edx
push 0
shr eax, 0x1f
push 0
push 0
add edx, eax
push 0
push edx
mov edx, dword [esp + 0x24]
add ecx, 0xfffffffd
push edi
add edx, 0x127
push ecx
push edx
push 0
mov ecx, ebp
call esi
mov eax, ebx
mov ecx, 0x64
cdq
idiv ecx
mov eax, 0x66666667
mov ecx, dword [esp + 0x14]
push 0
push 0
push 0
push 0
add ecx, 0xfffffffd
imul edx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
push edx
mov edx, dword [esp + 0x24]
push edi
add edx, 0x137
push ecx
push edx
push 0
mov ecx, ebp
call esi
mov eax, ebx
mov ecx, 0xa
cdq
idiv ecx
mov eax, dword [esp + 0x10]
push 0
push 0
push 0
push 0
add eax, 0x147
mov ecx, ebp
push edx
mov edx, dword [esp + 0x28]
add edx, 0xfffffffd
push edi
push edx
push eax
push 0
call esi
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
push ecx
mov ecx, edi
call fcn.0041ac40
test eax, eax
je 0x4182fe
mov edx, dword [esp + 0x14]
push 0
push 0
push 0
push 0
push 0
push eax
mov eax, dword [esp + 0x28]
add edx, 0xfffffffe
add eax, 0xffffffec
push edx
push eax
push 0
mov ecx, ebp
call esi
mov ecx, edi
call fcn.00418610
test eax, eax
je 0x418322
mov ecx, edi
call fcn.00418660
mov ebx, eax
neg ebx
sbb ebx, ebx
and ebx, 6
add ebx, 0xe
mov dword [esp + 0x1c], ebx
jmp 0x41832e
mov dword [esp + 0x1c], 0xc
mov ebx, dword [esp + 0x1c]
mov ecx, edi
call fcn.00418610
test eax, eax
je 0x418350
mov ecx, edi
call fcn.00418660
neg eax
sbb eax, eax
and eax, 4
add eax, 0x10
mov dword [esp + 0x30], eax
jmp 0x418358
mov dword [esp + 0x30], 0xe
mov ecx, dword [esp + 0x18]
mov al, byte [ecx + 0x258]
test al, al
jle 0x41856f
cmp al, 0x1c
jge 0x41856f
push 0
mov ecx, edi
call fcn.00418740
mov edi, eax
mov eax, dword [0x45a40c]
test eax, eax
jne 0x418424
mov eax, dword [0x468fb4]
test eax, eax
je 0x418424
mov edx, dword [esp + 0x18]
mov ecx, 0x45a160
add edx, 0x78
push edx
call fcn.004283a0
test al, al
jne 0x418424
mov eax, dword [edi + 0xc]
lea ecx, [ebx + ebx*2]
lea edx, [ebx + ecx*4]
mov ecx, dword [esp + 0x20]
lea ebx, [eax + edx*2]
call fcn.004187a0
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x24], 0x1b
sub ecx, ebx
mov ebx, dword [esp + 0x34]
sub ecx, ebx
sub ecx, eax
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov ebx, eax
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ebx
mov ecx, dword [edi + 0x10]
sub eax, edx
push 0
push 0
sub eax, ecx
push 0
push 0
sub eax, 0x2d
push 0
push edi
push eax
push ebx
push 0
mov ecx, ebp
mov dword [esp + 0x38], eax
call esi
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
add ebx, ecx
dec eax
mov dword [esp + 0x24], eax
jne 0x4183e1
jmp 0x41856b
mov edx, dword [esp + 0x18]
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x20]
movsx ebx, byte [edx + 0x258]
dec ebx
imul ebx, dword [esp + 0x1c]
add ebx, eax
call fcn.004187a0
mov ecx, eax
mov eax, dword [esp + 0x3c]
sub eax, ebx
mov ebx, dword [esp + 0x34]
sub eax, ebx
mov ebx, dword [esp + 0x18]
sub eax, ecx
mov dword [esp + 0x28], 0
mov cl, byte [ebx + 0x258]
sub eax, 0x32
cdq
sub eax, edx
sar eax, 1
test cl, cl
jle 0x41856b
mov dword [esp + 0x24], eax
add ebx, 0x78
mov edx, dword [esp + 0x24]
mov dword [esp + 0x10], edx
mov ecx, dword [ebx + 4]
mov edx, dword [esp + 0x30]
mov eax, dword [edi + 0x10]
neg ecx
sbb ecx, ecx
and ecx, edx
mov edx, dword [esp + 0x40]
sub edx, ecx
mov ecx, dword [esp + 0x38]
sub edx, ecx
sub edx, eax
mov eax, dword [esp + 0x18]
sub edx, 0x2d
mov dword [esp + 0x14], edx
mov cl, byte [eax + 0x258]
cmp cl, 0x19
jle 0x4184e2
mov ecx, dword [esp + 0x20]
call fcn.00418610
test eax, eax
je 0x4184e2
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
movsx edx, byte [ecx + 0x258]
sub edx, 0x19
imul edx, dword [esp + 0x1c]
add eax, edx
mov dword [esp + 0x10], eax
push 0
push 0
push 0
push 0
push ebx
mov ecx, 0x45a160
call fcn.004283a0
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
movsx eax, al
push eax
push edi
push ecx
push edx
push 0
mov ecx, ebp
call esi
mov eax, dword [0x45a40c]
test eax, eax
je 0x41853e
mov edx, dword [esp + 0x28]
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
add edx, 0x32
push edx
mov edx, dword [esp + 0x24]
push 0
push eax
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x20]
push eax
push ecx
lea ecx, [edx + 0x4724]
call fcn.00439330
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
add edx, ecx
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x18]
inc eax
add ebx, 8
movsx ecx, byte [edx + 0x258]
cmp eax, ecx
mov dword [esp + 0x28], eax
jl 0x41847c
mov edi, dword [esp + 0x20]
mov ecx, edi
call fcn.004186b0
movsx edx, byte [0x45a408]
cmp dword [0x464250], edx
jne 0x41858e
mov eax, dword [0x464240]
test eax, eax
je 0x4185b2
mov eax, dword [edi + 0x20]
test eax, eax
je 0x4185a0
mov eax, dword [esp + 0x18]
add eax, 0x45c
jmp 0x4185aa
mov ecx, dword [esp + 0x18]
lea eax, [ecx + 0x268]
push eax
mov ecx, edi
call fcn.004190b0
mov edx, dword [esp + 0x18]
push 0
push edx
mov ecx, edi
call fcn.0041ab90
lea ecx, [esp + 0x48]
mov byte [esp + 0xe4], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x44]
mov byte [esp + 0xe4], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x2c]
mov dword [esp + 0xe4], 0xffffffff
call sub.MFC42.DLL_CString::CString
pop edi
pop ebx
mov ecx, dword [esp + 0xd4]
pop esi
pop ebp
mov dword fs:[0], ecx
add esp, 0xd8
ret