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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x407e38
mov eax, dword fs:[0]
push eax
sub esp, 0x4c
push ebx
push esi
mov eax, dword [0x40e028]
xor eax, esp
push eax
lea eax, [esp + 0x58]
mov dword fs:[0], eax
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC80U.DLL_Ordinal_293]
xor ebx, ebx
lea ecx, [esp + 0x1c]
mov dword [esp + 0x60], ebx
call dword [sym.imp.MFC80U.DLL_Ordinal_293]
lea ecx, [esp + 0x44]
mov byte [esp + 0x60], 1
call sub.MFC80U.DLL_Ordinal_347
mov byte [esp + 0x60], 2
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_GetDC]
push eax
call sub.MFC80U.DLL_Ordinal_2361
push dword [edi + 0xb8]
mov esi, eax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x34]
push dword [edi + 0xbc]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x38]
push 8
call sub.MFC80U.DLL_Ordinal_762
cmp eax, ebx
pop ecx
je 0x4027b6
mov dword [eax + 4], ebx
mov dword [eax], vtable.CFont.0
mov dword [esp + 0x20], eax
jmp 0x4027ba
mov dword [esp + 0x20], ebx
mov ecx, dword [esp + 0x20]
push esi
lea eax, [edi + 0xf8]
push eax
push 0x78
call sub.MFC80U.DLL_Ordinal_1719
test eax, eax
je 0x4027e2
push dword [esp + 0x20]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x30]
mov dword [esp + 0x30], eax
jmp 0x4027e6
mov dword [esp + 0x30], ebx
cmp dword [edi + 0xa4], 3
fldz
jne 0x4027f7
fst qword [esp + 0x34]
jmp 0x402850
mov ecx, dword [0x40e748]
fld qword [ecx + 0x88]
fcomp qword [ecx + 0x90]
fnstsw ax
test ah, 5
jnp 0x402846
fld qword [ecx + 0x88]
fcomp qword [edi + 0x88]
fnstsw ax
test ah, 5
jnp 0x402846
fld qword [ecx + 0x90]
fcomp qword [edi + 0x88]
fnstsw ax
test ah, 0x41
jne 0x40283e
fld qword [ecx + 0x90]
jmp 0x40284c
fld qword [edi + 0x88]
jmp 0x40284c
fld qword [ecx + 0x88]
fstp qword [esp + 0x34]
mov eax, dword [0x40e744]
mov eax, dword [eax + 0x88]
cmp eax, ebx
jne 0x4028c6
fcomp qword [edi + 0x78]
fnstsw ax
mov al, 0x2d
test ah, 0x41
je 0x40286d
add al, 0xf3
fld qword [edi + 0x78]
mov ebx, dword [sym.imp.MFC80U.DLL_Ordinal_2311]
push ecx
fabs
push ecx
movsx eax, al
fstp qword [esp]
push eax
lea eax, [esp + 0x20]
push 0x4096fc
push eax
call ebx
lea ecx, [edi + 0x80]
fldz
add esp, 0x14
fcomp qword [ecx]
fnstsw ax
mov al, 0x2d
test ah, 0x41
je 0x4028a5
add al, 0xf3
fld qword [ecx]
push ecx
push ecx
fabs
movsx eax, al
fstp qword [esp]
push eax
lea eax, [esp + 0x28]
push 0x409720
push eax
call ebx
add esp, 0x14
jmp 0x402a6c
cmp eax, 1
jne 0x40298f
fcomp qword [edi + 0x78]
mov bl, 0x2d
fnstsw ax
test ah, 0x41
je 0x4028de
add bl, 0xf3
fld qword [edi + 0x78]
call fcn.00407b60
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
push ecx
push ecx
fsubr qword [edi + 0x78]
fabs
fmul qword [0x40c208]
fstp qword [esp]
fld qword [edi + 0x78]
call fcn.00407b60
cdq
xor eax, edx
sub eax, edx
push eax
movsx eax, bl
mov ebx, dword [sym.imp.MFC80U.DLL_Ordinal_2311]
push eax
lea eax, [esp + 0x24]
push 0x409748
push eax
call ebx
add esp, 0x18
fldz
mov byte [esp + 0x13], 0x2d
fcomp qword [edi + 0x80]
fnstsw ax
test ah, 0x41
je 0x40293e
mov byte [esp + 0x13], 0x20
fld qword [edi + 0x80]
call fcn.00407b60
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
push ecx
push ecx
fsubr qword [edi + 0x80]
fabs
fmul qword [0x40c208]
fstp qword [esp]
fld qword [edi + 0x80]
call fcn.00407b60
cdq
xor eax, edx
sub eax, edx
push eax
movsx eax, byte [esp + 0x1f]
push eax
lea eax, [esp + 0x2c]
push 0x409770
push eax
call ebx
add esp, 0x18
jmp 0x402a6c
fld qword [edi + 0x78]
call fcn.00407b60
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fsubr qword [edi + 0x78]
fabs
fld qword [0x40c208]
fmul st(1), st(0)
fld st(1)
call fcn.00407b60
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
fsubp st(2)
fmul st(1), st(0)
fld qword [edi + 0x80]
call fcn.00407b60
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
fsubr qword [edi + 0x80]
fabs
fmul st(1)
fld st(0)
call fcn.00407b60
mov dword [esp + 0x18], eax
fisub dword [esp + 0x18]
mov cl, 0x2d
fmulp st(1)
fstp qword [esp + 0x3c]
fxch st(1)
fcomp qword [edi + 0x78]
fnstsw ax
test ah, 0x41
je 0x402a02
add cl, 0xf3
mov eax, dword [esp + 0x24]
mov ebx, dword [sym.imp.MFC80U.DLL_Ordinal_2311]
push ecx
push ecx
cdq
fstp qword [esp]
push dword [esp + 0x30]
xor eax, edx
sub eax, edx
push eax
movsx eax, cl
push eax
lea eax, [esp + 0x28]
push 0x409798
push eax
call ebx
add esp, 0x1c
fldz
mov cl, 0x2d
fcomp qword [edi + 0x80]
fnstsw ax
test ah, 0x41
je 0x402a42
add cl, 0xf3
mov eax, dword [esp + 0x2c]
fld qword [esp + 0x3c]
push ecx
push ecx
cdq
fstp qword [esp]
push dword [esp + 0x20]
xor eax, edx
sub eax, edx
push eax
movsx eax, cl
push eax
lea eax, [esp + 0x30]
push 0x4097cc
push eax
call ebx
add esp, 0x1c
mov eax, dword [esp + 0x14]
mov ecx, dword [eax - 0xc]
mov edx, dword [esi]
push ecx
push eax
push 4
push 4
mov ecx, esi
call dword [edx + 0x64]
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax - 0xc]
mov edx, dword [esi]
push ecx
push eax
push 4
push 0xb0
mov ecx, esi
call dword [edx + 0x64]
fld qword [edi + 0x88]
push ecx
push ecx
fstp qword [esp]
lea eax, [esp + 0x1c]
push 0x409800
push eax
call ebx
fld qword [edi + 0x90]
pop ecx
pop ecx
fstp qword [esp]
lea eax, [esp + 0x24]
push 0x409828
push eax
call ebx
mov eax, dword [esp + 0x24]
mov ecx, dword [eax - 0xc]
mov edx, dword [esi]
add esp, 0x10
push ecx
push eax
push 0x18
push 4
mov ecx, esi
call dword [edx + 0x64]
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax - 0xc]
mov edx, dword [esi]
push ecx
push eax
push 0x18
push 0xb0
mov ecx, esi
call dword [edx + 0x64]
fld qword [esp + 0x34]
push ecx
push ecx
fstp qword [esp]
lea eax, [esp + 0x1c]
push 0x409848
push eax
call ebx
fld qword [edi + 0x98]
pop ecx
pop ecx
fstp qword [esp]
lea eax, [esp + 0x24]
push 0x409874
push eax
call ebx
mov eax, dword [esp + 0x24]
mov ecx, dword [eax - 0xc]
mov edx, dword [esi]
add esp, 0x10
push ecx
push eax
push 0x2c
push 4
mov ecx, esi
call dword [edx + 0x64]
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax - 0xc]
mov edx, dword [esi]
push ecx
push eax
push 0x2c
push 0xb0
mov ecx, esi
call dword [edx + 0x64]
cmp dword [esp + 0x20], 0
je 0x402b5f
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx]
push 1
call dword [eax + 4]
push 8
call sub.MFC80U.DLL_Ordinal_762
test eax, eax
pop ecx
je 0x402b7b
and dword [eax + 4], 0
mov dword [eax], vtable.CFont.0
mov dword [esp + 0x24], eax
jmp 0x402b80
and dword [esp + 0x24], 0
mov ecx, dword [esp + 0x24]
push esi
lea eax, [edi + 0xf8]
push eax
push 0x50
call sub.MFC80U.DLL_Ordinal_1719
test eax, eax
je 0x402ba2
push dword [esp + 0x24]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x30]
push dword [edi + 0xc0]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x38]
and dword [esp + 0x28], 0
mov dword [esp + 0x18], 1
mov dword [esp + 0x20], 0x40e6a4
cmp dword [edi + 0xa4], 1
je 0x402c0b
mov eax, dword [esp + 0x18]
mov eax, dword [eax*4 + 0x40e74c]
cmp dword [eax + 0x8c], 0
je 0x402c0b
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
test eax, eax
je 0x402c0b
mov eax, dword [eax + 4]
push dword [eax*4 + 0x40e6c8]
call fcn.00401147
test eax, eax
je 0x402c0b
mov ecx, dword [esp + 0x18]
xor eax, eax
inc eax
shl eax, cl
or dword [esp + 0x28], eax
inc dword [esp + 0x18]
add dword [esp + 0x20], 0xc
cmp dword [esp + 0x18], 3
jle 0x402bc4
cmp dword [ebp + 8], 0
jne 0x402c31
mov eax, dword [esp + 0x28]
cmp eax, dword [0x40e9a0]
je 0x403040
mov eax, dword [edi + 0xa4]
dec eax
je 0x402cf5
dec eax
je 0x402c88
dec eax
jne 0x402d9a
push 0x4098a0
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC80U.DLL_Ordinal_776]
push 1
push 0x3e8
mov ecx, edi
call sub.MFC80U.DLL_Ordinal_2651
mov ecx, eax
call sub.MFC80U.DLL_Ordinal_2155
push 1
push 0x3ea
mov ecx, edi
call sub.MFC80U.DLL_Ordinal_2651
mov ecx, eax
call sub.MFC80U.DLL_Ordinal_2155
push 1
jmp 0x402d87
push 0x409898
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC80U.DLL_Ordinal_776]
cmp dword [0x40e698], 0
jne 0x402cb8
mov eax, dword [0x40e75c]
cmp dword [eax + 0x9c], 0
je 0x402cb8
mov dword [esp + 0x18], 1
jmp 0x402cbd
and dword [esp + 0x18], 0
mov ecx, 0x40e750
mov eax, 0x40e6a4
cmp dword [eax], 0
jne 0x402cdf
mov edx, dword [ecx]
cmp dword [edx + 0x88], 0
je 0x402cdf
mov dword [esp + 0x18], 1
add eax, 0xc
add ecx, 4
cmp eax, 0x40e6bc
jle 0x402cc7
push dword [esp + 0x18]
jmp 0x402c59
push str.Pbk
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC80U.DLL_Ordinal_776]
cmp dword [0x40e698], 0
jne 0x402d25
mov eax, dword [0x40e75c]
cmp dword [eax + 0x9c], 0
je 0x402d25
mov dword [esp + 0x18], 1
jmp 0x402d2a
and dword [esp + 0x18], 0
mov ecx, 0x40e750
mov eax, 0x40e6a4
cmp dword [eax], 0
jne 0x402d4c
mov edx, dword [ecx]
cmp dword [edx + 0x88], 0
je 0x402d4c
mov dword [esp + 0x18], 1
add eax, 0xc
add ecx, 4
cmp eax, 0x40e6bc
jle 0x402d34
push dword [esp + 0x18]
mov ecx, edi
push 0x3e8
call sub.MFC80U.DLL_Ordinal_2651
mov ecx, eax
call sub.MFC80U.DLL_Ordinal_2155
push 0
push 0x3ea
mov ecx, edi
call sub.MFC80U.DLL_Ordinal_2651
mov ecx, eax
call sub.MFC80U.DLL_Ordinal_2155
push 0
push 0x3e9
mov ecx, edi
call sub.MFC80U.DLL_Ordinal_2651
mov ecx, eax
call sub.MFC80U.DLL_Ordinal_2155
mov ecx, edi
call sub.MFC80U.DLL_Ordinal_5829
mov eax, dword [esp + 0x14]
mov ecx, dword [eax - 0xc]
mov edx, dword [esi]
push ecx
push eax
push 0x46
push 0x2e
mov ecx, esi
call dword [edx + 0x64]
push 0x4098b0
lea ecx, [esp + 0x30]
call dword [sym.imp.MFC80U.DLL_Ordinal_283]
mov byte [esp + 0x60], 3
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax - 0xc]
mov edx, dword [esi]
push ecx
push eax
push 0x44
push 0xac
mov ecx, esi
call dword [edx + 0x64]
lea ecx, [esp + 0x2c]
mov byte [esp + 0x60], 2
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
push 0x4098b8
lea ecx, [esp + 0x30]
call dword [sym.imp.MFC80U.DLL_Ordinal_283]
mov byte [esp + 0x60], 4
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax - 0xc]
mov edx, dword [esi]
push ecx
push eax
push 0x58
push 0xac
mov ecx, esi
call dword [edx + 0x64]
lea ecx, [esp + 0x2c]
mov byte [esp + 0x60], 2
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
push 0x4098c0
lea ecx, [esp + 0x30]
call dword [sym.imp.MFC80U.DLL_Ordinal_283]
mov byte [esp + 0x60], 5
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax - 0xc]
mov edx, dword [esi]
push ecx
push eax
push 0x6c
push 0xac
mov ecx, esi
call dword [edx + 0x64]
lea ecx, [esp + 0x2c]
mov byte [esp + 0x60], 2
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
push dword [esi + 4]
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push eax
lea ecx, [esp + 0x48]
call sub.MFC80U.DLL_Ordinal_1270
and dword [esp + 0x18], 0
push dword [esp + 0x18]
lea eax, [esp + 0x18]
push 0x4098c8
push eax
call ebx
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx - 0xc]
mov edx, dword [esi]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x24]
imul eax, eax, 0x1b
add esp, 0xc
push dword [esp + 0x20]
mov dword [esp + 0x30], eax
push ecx
push 0x44
add eax, 0xd7
push eax
mov ecx, esi
call dword [edx + 0x64]
cmp dword [esp + 0x18], 0
jne 0x402ed0
push 0x4098d0
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC80U.DLL_Ordinal_776]
jmp 0x402f01
mov eax, dword [esp + 0x18]
mov eax, dword [eax*4 + 0x40e74c]
cmp dword [eax + 0x8c], 0
mov ecx, str.V_d
jne 0x402eee
mov ecx, str.___d
mov eax, dword [eax + 0x94]
inc eax
push eax
push ecx
lea eax, [esp + 0x1c]
push eax
call ebx
add esp, 0xc
mov eax, dword [esp + 0x14]
mov ecx, dword [eax - 0xc]
mov edx, dword [esi]
push ecx
push eax
mov eax, dword [esp + 0x34]
push 0x58
add eax, 0xd0
push eax
mov ecx, esi
call dword [edx + 0x64]
mov eax, dword [esp + 0x18]
imul eax, eax, 0xc
cmp dword [eax + 0x40e6a0], 1
jne 0x402f38
lea eax, [edi + 0x4e8]
jmp 0x402fc9
mov edx, dword [esp + 0x18]
test edx, edx
je 0x402f5b
mov ecx, dword [edx*4 + 0x40e74c]
cmp dword [ecx + 0x88], 0
je 0x402f6a
cmp dword [eax + 0x40e698], 0
je 0x402f7b
jmp 0x402f8c
mov ecx, dword [0x40e75c]
cmp dword [ecx + 0x9c], 0
jne 0x402f72
lea eax, [edi + 0x4d0]
jmp 0x402fc9
cmp dword [0x40e698], 0
jne 0x402f83
lea eax, [edi + 0x4c8]
jmp 0x402fc9
cmp dword [ecx + 0xa0], 0
jne 0x402fc3
test edx, edx
lea ecx, [edi + 0x4e0]
mov dword [esp + 0x20], ecx
je 0x402fcd
mov ecx, dword [edx*4 + 0x40e74c]
cmp dword [ecx + 0x8c], 0
je 0x402fcd
mov eax, dword [eax + 0x40e698]
mov eax, dword [eax + 4]
push dword [eax*4 + 0x40e6c8]
call fcn.00401147
test eax, eax
jne 0x402fcd
lea eax, [edi + 0x4d8]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
test eax, eax
je 0x402fd8
mov eax, dword [eax + 4]
push eax
push dword [esp + 0x4c]
call sub.MFC80U.DLL_Ordinal_5633
push 0xcc0020
push 0
push 0
push dword [esp + 0x54]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x3c]
push 0x18
push 0x18
push 0x68
add eax, 0xce
push eax
push dword [esi + 4]
call dword [sym.imp.GDI32.dll_BitBlt]
cmp dword [esp + 0x20], 0
jne 0x403017
xor eax, eax
jmp 0x40301e
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 4]
push eax
push dword [esp + 0x4c]
call sub.MFC80U.DLL_Ordinal_5633
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 3
jle 0x402e7b
mov eax, dword [esp + 0x28]
mov dword [0x40e9a0], eax
cmp dword [esp + 0x30], 0
jne 0x403050
mov eax, dword [esi]
push 0
mov ecx, esi
call dword [eax + 0x30]
cmp dword [esp + 0x24], 0
je 0x403062
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx]
push 1
call dword [eax + 4]
push dword [esi + 4]
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_ReleaseDC]
lea ecx, [esp + 0x44]
mov byte [esp + 0x60], 1
call sub.MFC80U.DLL_Ordinal_602
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
mov ecx, dword [esp + 0x58]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4