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

Disassembly:
push 0xffffffffffffffff
push 0x5804cf
mov eax, dword fs:[0]
push eax
mov eax, 0x7730
call fcn.0055dc80
mov eax, dword [0x5ecfcc]
xor eax, esp
mov dword [esp + 0x772c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5ecfcc]
xor eax, esp
push eax
lea eax, [esp + 0x7744]
mov dword fs:[0], eax
mov esi, dword [esp + 0x7754]
mov dword [esp + 0x2c], ecx
xor ebx, ebx
mov dword [esp + 0x774c], ebx
cmp dword [0x5ee7c8], ebx
je 0x4727fa
mov ecx, dword [0x5ee7e4]
xor eax, eax
cmp ecx, ebx
setne al
test al, al
je 0x4727fa
cmp dword [ecx + 0x350], 3
jg 0x4727fa
fld1
push str.PrintCfgplot
fstp qword [esp + 0x3c]
lea ecx, [esp + 0x1c]
fldz
push 0x5ef49c
or ebp, 0xffffffff
fstp dword [esp + 0x4c]
push ecx
mov byte [esp + 0x3c], 1
mov byte [esp + 0x3d], bl
mov byte [esp + 0x3e], 1
mov byte [esp + 0x3f], bl
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x54], 0xffffff
mov dword [esp + 0x58], ebp
call fcn.00403710
mov eax, dword [eax]
lea edx, [esp + 0x3c]
push edx
push eax
call dword [sym.imp.GsUI.dll_loadPlotStyleDialogFromRegistry]
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
add esp, 0x14
lea ecx, [eax + 0xc]
mov edx, ebp
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x472216
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [0x5ee7e4]
mov ecx, dword [ecx + 0x394]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xb4]
call eax
mov ecx, dword [0x5ee7e4]
mov ecx, dword [ecx + 0x394]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
mov edx, dword [eax]
mov edx, dword [edx + 0xac]
lea ecx, [esp + 0x64]
push ecx
push esi
mov ecx, eax
call edx
mov eax, dword [0x5ee7e4]
mov ecx, dword [eax + 0x394]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
mov edx, dword [eax]
mov edx, dword [edx + 0xac]
lea ecx, [esp + 0x5c]
push ecx
add esi, 0x18
push esi
mov ecx, eax
call edx
mov eax, dword [0x5ee7e4]
mov ecx, dword [eax + 0x394]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
fild dword [esp + 0x7774]
mov ecx, dword [esp + 0x60]
mov edx, dword [eax]
mov edx, dword [edx + 0xe8]
sub esp, 0x10
fstp qword [esp + 8]
fild dword [esp + 0x7780]
fstp qword [esp]
push ecx
mov ecx, dword [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x80]
push ecx
mov ecx, dword [esp + 0x80]
push ecx
mov ecx, eax
call edx
mov ecx, dword [sym.imp.GsUI.dll_class_GsUI::PrintPenSet_GsUI::g_printPenSet]
call dword [sym.imp.GsUI.dll_public:_class_CPrintDialog____thiscall_GsUI::PrintPenSet::getPrintSetDlg_void_]
mov ecx, eax
call fcn.0054ad61
mov edi, eax
cmp edi, ebx
jne 0x472328
mov eax, dword [0x5ee7e4]
mov ecx, dword [eax + 0x394]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xb8]
call eax
mov eax, dword [esp + 0x7778]
add eax, 0xfffffff0
mov dword [esp + 0x774c], ebp
lea ecx, [eax + 0xc]
lock xadd dword [ecx], ebp
dec ebp
test ebp, ebp
jmp 0x472818
mov esi, dword [sym.imp.GDI32.dll_GetDeviceCaps]
push 0x5a
push edi
call esi
push 0x70
push edi
movzx ebp, ax
call esi
push 0x71
push edi
mov ebx, eax
call esi
push edi
mov dword [esp + 0x1c], eax
call dword [sym.imp.GDI32.dll_DeleteDC]
mov ecx, dword [0x5ee7e4]
mov ecx, dword [ecx + 0x394]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp byte [esp + 0x30], 0
je 0x47238f
cmp byte [esp + 0x31], 0
je 0x472389
movsx ecx, bp
push ecx
call dword [sym.imp.gsio.dll_CommonPenSets_SetDPI]
mov ecx, dword [sym.imp.GsUI.dll_class_GsUI::PrintPenSet_GsUI::g_printPenSet]
add esp, 4
call dword [sym.imp.GsUI.dll_public:_void___thiscall_GsUI::PrintPenSet::UpdatePenSetsToGsIO_void_]
jmp 0x47238f
call dword [sym.imp.gsio.dll_CommonPenSets_Reset]
lea ecx, [esp + 0x6c]
call fcn.00436470
mov edi, dword [esp + 0x7774]
movsx eax, bp
mov ebp, dword [esp + 0x7770]
push 0x18
push edi
push ebp
lea ecx, [esp + 0x78]
mov byte [esp + 0x7758], 1
mov dword [esp + 0x5c], eax
mov dword [esp + 0x98], eax
call fcn.00436f90
push 0
lea ecx, [esp + 0x70]
call fcn.00436a50
mov esi, eax
xor eax, eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], ebp
mov dword [esp + 0x9c], edi
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], vtable.CBrush.0
push 0xffffff
mov byte [esp + 0x7750], 2
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
push eax
lea ecx, [esp + 0x28]
call fcn.00537ca0
mov edx, dword [esp + 0x28]
mov ecx, dword [esi + 4]
push edx
lea eax, [esp + 0x94]
push eax
push ecx
call dword [sym.imp.USER32.dll_FillRect]
mov edx, dword [esi + 4]
push 8
push edx
call dword [sym.imp.GDI32.dll_SetMapMode]
mov ecx, dword [esi + 4]
lea eax, [esp + 0x54]
push eax
push ecx
call dword [sym.imp.GDI32.dll_GetWindowExtEx]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
lea edx, [esp + 0x54]
push edx
mov edx, dword [esi + 4]
neg eax
push eax
push ecx
push edx
call dword [sym.imp.GDI32.dll_SetWindowExtEx]
mov ecx, dword [esi + 4]
lea eax, [esp + 0xa0]
push eax
push edi
push 0
push ecx
call dword [sym.imp.GDI32.dll_SetWindowOrgEx]
mov ecx, dword [esp + 0x18]
mov eax, dword [esi + 4]
mov edx, edi
sub edx, ecx
push edx
mov edx, ebp
sub edx, ebx
push edx
push ecx
push ebx
mov ebx, dword [sym.imp.GDI32.dll_IntersectClipRect]
push eax
call ebx
mov ecx, dword [esp + 0x2c]
call fcn.00529085
mov eax, dword [0x5ee7e4]
mov ecx, dword [eax + 0x394]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x84]
call eax
mov ecx, dword [esi + 4]
push 0
push ebp
push edi
push 0
push ecx
call ebx
mov ebx, dword [sym.imp.gsio.dll_DWG_SetBackgroundColor]
push 0xffffff
call ebx
mov edx, dword [0x5ee7e4]
mov ecx, dword [edx + 0x394]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
movzx edi, word [esp + 0x44]
add esp, 4
call edx
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x8c]
call eax
mov ecx, dword [0x5ee7e4]
mov ecx, dword [ecx + 0x394]
mov edx, dword [ecx]
movzx ebp, ax
mov eax, dword [edx + 0x10]
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x88]
push edi
call eax
mov ecx, dword [0x5ee7e4]
mov ecx, dword [ecx + 0x394]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x16c]
push 1
call eax
mov ecx, dword [0x5ee7e4]
mov ecx, dword [ecx + 0x394]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x18c]
push 1
call eax
mov ecx, dword [0x5ee7e4]
mov ecx, dword [ecx + 0x394]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x94]
call eax
test eax, eax
jle 0x472595
cmp byte [esp + 0x32], 0
je 0x472595
fld1
jmp 0x472599
fld qword [esp + 0x38]
mov ecx, dword [0x5ee7e4]
fstp qword [esp + 0x18]
mov ecx, dword [ecx + 0x394]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
fld qword [esp + 0x18]
mov ecx, dword [esp + 0x33]
mov edx, dword [eax]
mov edx, dword [edx + 0x5c]
push 0
push 1
sub esp, 8
fstp qword [esp]
push ecx
mov ecx, dword [esp + 0x45]
push ecx
mov ecx, dword [esp + 0x48]
push ecx
mov ecx, dword [esi + 4]
push 0
push 1
push ecx
push 0
mov ecx, eax
call edx
mov eax, dword [0x5ee7e4]
mov ecx, dword [eax + 0x394]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x16c]
push 0
call eax
movzx ecx, word [0x5eed40]
push 0
push ecx
call dword [sym.imp.GsUI.dll_GetColorIndex]
push eax
call ebx
add esp, 0xc
lea ecx, [esp + 0x6c]
call fcn.00437340
mov ecx, dword [esp + 0x2c]
call fcn.0052909a
mov edx, dword [0x5ee7e4]
mov ecx, dword [edx + 0x394]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xb8]
call eax
mov ecx, dword [0x5ee7e4]
mov ecx, dword [ecx + 0x394]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x88]
push ebp
call eax
mov ecx, dword [esp + 0x7778]
push ecx
lea edx, [esp + 0x18]
push edx
call fcn.00430ce0
mov eax, dword [esp + 0x1c]
push 0x58f4c0
push eax
mov byte [esp + 0x775c], 3
call fcn.005597c1
add esp, 0x10
test eax, eax
jne 0x4726c9
movsx eax, di
sub eax, 1
je 0x4726a8
sub eax, 1
jne 0x4726b3
push 1
jmp 0x4726aa
push 8
lea ecx, [esp + 0x70]
call fcn.00436d60
mov ecx, dword [esp + 0x7778]
push ecx
lea ecx, [esp + 0x70]
call fcn.00436ba0
jmp 0x4727a8
mov edx, dword [esp + 0x14]
push str..gif
push edx
call fcn.005597c1
add esp, 8
test eax, eax
jne 0x472725
lea ecx, [esp + 0xa8]
call fcn.00439640
mov ecx, dword [esp + 0x7778]
lea eax, [esp + 0x6c]
push eax
push ecx
lea ecx, [esp + 0xb0]
mov byte [esp + 0x7754], 4
call fcn.004398f0
lea ecx, [esp + 0xa8]
mov byte [esp + 0x774c], 3
call fcn.00439380
jmp 0x4727a8
mov edx, dword [esp + 0x14]
push 0x593258
push edx
call fcn.005597c1
add esp, 8
test eax, eax
je 0x47278b
push str..tiff
lea ecx, [esp + 0x18]
call fcn.004028f0
test eax, eax
je 0x47278b
lea ecx, [esp + 0x18]
call fcn.00439ee0
mov ecx, dword [esp + 0x7778]
push 0x64
push 1
lea eax, [esp + 0x74]
push eax
push ecx
lea ecx, [esp + 0x28]
mov byte [esp + 0x775c], 5
call fcn.0043a250
lea ecx, [esp + 0x18]
mov byte [esp + 0x774c], 3
call fcn.00439e40
jmp 0x4727a8
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x7778]
mov ecx, dword [esp + 0x74]
push edx
push eax
push 3
push ecx
call dword [sym.imp.gsio.dll_int___cdecl_SaveRasterImage_struct_HBITMAP_____int__char_const___long_int_]
add esp, 0x10
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x774c], 2
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4727d0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x774c], 1
mov dword [esp + 0x24], vtable.CBrush.0
call fcn.00407110
lea ecx, [esp + 0x6c]
mov byte [esp + 0x774c], 0
call fcn.00436490
mov eax, dword [esp + 0x7778]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov dword [esp + 0x774c], edx
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x472824
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x7744]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x772c]
xor ecx, esp
call fcn.0055953b
add esp, 0x773c
ret 0x28