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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x469ca2
push eax
mov eax, dword [esp + 0x10]
mov dword fs:[0], esp
sub esp, 0x50
push edi
xor edi, edi
cmp eax, edi
je 0x4402f1
push ebp
mov ebp, dword [esp + 0x6c]
cmp ebp, edi
je 0x4402f0
push esi
mov esi, dword [esp + 0x8c]
cmp esi, edi
je 0x4402ef
lea ecx, [esp + 0x6c]
push ecx
push eax
mov dword [esp + 0x74], edi
call sub.gdiplus.dll_GdipCreateFromHDC
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], edx
lea eax, [esi + 0x1a]
push eax
lea ecx, [esp + 0x18]
mov dword [esp + 0x68], edi
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x14]
mov byte [esp + 0x68], 1
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_2]
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
lea edx, [esp + 0x28]
push edx
push edi
push eax
mov dword [esp + 0x34], edi
call sub.gdiplus.dll_GdipCreateFontFamilyFromName
mov dword [esp + 0x2c], eax
fild dword [esi + 0xc]
mov eax, dword [esi + 8]
mov ecx, eax
fstp dword [esp + 0x6c]
and ecx, 7
fld dword [esp + 0x6c]
and eax, 8
fdiv dword [0x4741f4]
or eax, ecx
push 3
push eax
push ecx
lea eax, [esp + 0x34]
lea ecx, [esp + 0x44]
fstp dword [esp]
push eax
call fcn.0043f6a0
lea ecx, [esp + 0x20]
push ecx
push edi
push edi
mov dword [esp + 0x2c], edi
call sub.gdiplus.dll_GdipCreateStringFormat
mov dword [esp + 0x24], eax
movzx eax, byte [esp + 0x84]
sub eax, edi
mov byte [esp + 0x64], 5
je 0x440128
dec eax
je 0x440125
dec eax
jne 0x440133
push 2
jmp 0x44012a
push edi
jmp 0x44012a
push 1
lea ecx, [esp + 0x24]
call fcn.0043f4f0
movzx eax, byte [esp + 0x88]
sub eax, edi
je 0x44014c
dec eax
je 0x440149
dec eax
jne 0x440157
push 2
jmp 0x44014e
push edi
jmp 0x44014e
push 1
lea ecx, [esp + 0x24]
call fcn.0043f510
mov edx, dword [esp + 0x20]
push 3
push edx
call sub.gdiplus.dll_GdipSetStringFormatTrimming
cmp eax, edi
je 0x44016b
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
push 0x1000
push eax
call sub.gdiplus.dll_GdipSetStringFormatFlags
cmp eax, edi
je 0x440182
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x20]
push ecx
push edx
call sub.gdiplus.dll_GdipSetStringFormatHotkeyPrefix
cmp eax, edi
je 0x44019c
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x80]
mov esi, dword [esp + 0x78]
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x7c]
sub eax, esi
mov dword [esp + 0x6c], eax
fild dword [esp + 0x6c]
sub ecx, edx
mov dword [esp + 0x6c], ecx
fstp dword [esp + 0x1c]
push ebx
fild dword [esp + 0x70]
mov ebx, dword [esp + 0x94]
mov ecx, dword [esp + 0x20]
shr ebx, 0x10
fstp dword [esp + 0x1c]
mov dword [esp + 0x5c], ecx
fild dword [esp + 0x7c]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x98]
cmp eax, edi
fstp dword [esp + 0x70]
fld dword [esp + 0x70]
fadd dword [0x472b90]
fstp dword [esp + 0x70]
mov edx, dword [esp + 0x70]
fild dword [esp + 0x78]
mov dword [esp + 0x54], edx
fstp dword [esp + 0x50]
je 0x440233
fld dword [esp + 0x50]
fadd dword [0x472b90]
fstp dword [esp + 0x50]
fld dword [esp + 0x70]
fadd dword [0x472b90]
fstp dword [esp + 0x54]
push ebp
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT]
mov eax, dword [esp + 0x94]
movzx edx, al
or edx, 0xffffff00
shl edx, 8
movzx eax, ah
or edx, eax
movzx ecx, bl
shl edx, 8
or edx, ecx
mov dword [esp + 0x70], edx
lea edx, [esp + 0x70]
push edx
lea ecx, [esp + 0x48]
call fcn.0040c4c0
push eax
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x58]
push ecx
lea edx, [esp + 0x48]
push edx
push 0xffffffffffffffff
lea ecx, [esp + 0x24]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
push eax
lea ecx, [esp + 0x4c]
call fcn.0043f530
mov eax, dword [esp + 0x48]
push eax
mov dword [esp + 0x48], 0x46fee8
call sub.gdiplus.dll_GdipDeleteBrush
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
mov ecx, dword [esp + 0x24]
push ecx
call sub.gdiplus.dll_GdipDeleteStringFormat
mov edx, dword [esp + 0x3c]
push edx
call sub.gdiplus.dll_GdipDeleteFont
mov eax, dword [esp + 0x2c]
push eax
call sub.gdiplus.dll_GdipDeleteFontFamily
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
mov ecx, dword [esp + 0x34]
push ecx
call sub.gdiplus.dll_GdipDeleteGraphics
pop ebx
pop esi
pop ebp
mov ecx, dword [esp + 0x54]
pop edi
mov dword fs:[0], ecx
add esp, 0x5c
ret