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

Disassembly:
push 0xffffffffffffffff
push 0x548eb3
mov eax, dword fs:[0]
push eax
sub esp, 0x17c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5c403c]
xor eax, esp
push eax
lea eax, [esp + 0x190]
mov dword fs:[0], eax
mov ebx, dword [esp + 0x1a0]
xor ebp, ebp
cmp dword [ebx + 0x6e4], ebp
jne 0x406a7c
mov eax, dword [ebx + 0x6e0]
cmp eax, ebp
je 0x406a7c
lea ecx, [esp + 0x134]
push ecx
push 0x54
push eax
call dword [sym.imp.GDI32.dll_GetObjectW]
mov esi, dword [esp + 0x138]
mov edi, dword [esp + 0x13c]
push 0x10
call sub.gdiplus.dll_GdipAlloc
mov dword [esp + 0x7c], eax
mov dword [esp + 0x198], ebp
cmp eax, ebp
je 0x406a57
mov ecx, dword [esp + 0x148]
push edi
push esi
lea edx, [esi*4]
push eax
call fcn.004089d0
mov esi, eax
jmp 0x406a59
xor esi, esi
mov dword [esp + 0x198], 0xffffffff
mov dword [ebx + 0x6e4], esi
mov edx, dword [esi + 4]
push 6
push edx
call sub.gdiplus.dll_GdipImageRotateFlip
cmp eax, ebp
je 0x406a7c
mov dword [esi + 8], eax
mov ecx, dword [ebx + 0x20]
lea eax, [esp + 0x4c]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esp + 0x54]
sub eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x58]
sub edx, dword [esp + 0x50]
push eax
lea eax, [esp + 0x9c]
push eax
call fcn.00408860
mov dword [esp + 0x198], 1
mov ecx, dword [esp + 0x1a4]
mov eax, dword [ecx + 4]
lea edx, [esp + 0x40]
push edx
push eax
mov dword [esp + 0x48], ebp
call sub.gdiplus.dll_GdipCreateFromHDC
mov esi, dword [esp + 0x40]
mov dword [esp + 0x88], eax
mov dword [esp + 0x84], esi
mov byte [esp + 0x198], 2
fild dword [esp + 0x4c]
mov eax, dword [0x5c49f0]
lea ecx, [eax + 5]
fstp dword [esp + 0x44]
mov dword [esp + 0x7c], ecx
fild dword [esp + 0x7c]
test ecx, ecx
jge 0x406b09
fadd dword [0x5928d0]
mov edx, dword [esp + 0x54]
fstp dword [esp + 0x3c]
sub edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x58]
sub ecx, dword [esp + 0x50]
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
sub ecx, eax
sub ecx, 5
fstp dword [esp + 0x48]
mov dword [esp + 0x7c], ecx
fild dword [esp + 0x7c]
test ecx, ecx
jge 0x406b40
fadd dword [0x5928d0]
fstp dword [esp + 0x24]
push 4
fld dword [esp + 0x28]
sub esp, 0x10
fstp dword [esp + 0xc]
fld dword [esp + 0x5c]
fstp dword [esp + 8]
fld dword [esp + 0x50]
fstp dword [esp + 4]
fld dword [esp + 0x58]
fstp dword [esp]
push esi
call sub.gdiplus.dll_GdipSetClipRect
cmp eax, ebp
je 0x406b79
mov dword [esp + 0x88], eax
mov eax, dword [ebx + 0xe0]
cmp eax, ebp
je 0x406c21
push eax
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x406c21
mov eax, dword [ebx + 0xe0]
lea edx, [esp + 0x5c]
push edx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
lea ecx, [esp + 0x5c]
push ecx
mov ecx, ebx
call sub.mfc90u.dll_CWnd::ScreenToClient
fild dword [esp + 0x5c]
mov edx, dword [esp + 0x64]
sub edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x68]
fstp dword [esp + 0x44]
fild dword [esp + 0x60]
sub eax, dword [esp + 0x60]
mov dword [esp + 0x24], edx
push 4
fstp dword [esp + 0x40]
sub esp, 0x10
fild dword [esp + 0x38]
mov dword [esp + 0x38], eax
fstp dword [esp + 0x5c]
fild dword [esp + 0x38]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fstp dword [esp + 0xc]
fld dword [esp + 0x5c]
fstp dword [esp + 8]
fld dword [esp + 0x50]
fstp dword [esp + 4]
fld dword [esp + 0x58]
fstp dword [esp]
push esi
call sub.gdiplus.dll_GdipSetClipRect
cmp eax, ebp
je 0x406c21
mov dword [esp + 0x88], eax
mov edx, dword [esp + 0x9c]
lea ecx, [esp + 0x40]
push ecx
push edx
mov dword [esp + 0x48], 0
call sub.gdiplus.dll_GdipGetImageGraphicsContext
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], ebp
mov byte [esp + 0x198], 3
lea eax, [esp + 0x7c]
push eax
push ebp
call sub.gdiplus.dll_GdipSaveGraphics
test eax, eax
je 0x406c62
mov dword [esp + 0x34], eax
push 2
push ebp
call sub.gdiplus.dll_GdipSetCompositingQuality
test eax, eax
je 0x406c72
mov dword [esp + 0x34], eax
push 7
push ebp
call sub.gdiplus.dll_GdipSetInterpolationMode
test eax, eax
je 0x406c82
mov dword [esp + 0x34], eax
push 4
push ebp
call sub.gdiplus.dll_GdipSetSmoothingMode
test eax, eax
je 0x406c92
mov dword [esp + 0x34], eax
push 0
push ebp
call sub.gdiplus.dll_GdipSetCompositingMode
test eax, eax
je 0x406ca2
mov dword [esp + 0x34], eax
cmp dword [0x5c6e58], 0
jne 0x406cf4
push 8
call sub.gdiplus.dll_GdipAlloc
mov esi, eax
mov dword [esp + 0x18], esi
mov byte [esp + 0x198], 4
test esi, esi
je 0x406ce4
fld1
push esi
push 0
push ecx
mov ecx, dword [0x5c49d8]
fstp dword [esp]
push ecx
mov dword [esi], 0
call sub.gdiplus.dll_GdipCreatePen1
mov dword [esi + 4], eax
jmp 0x406ce6
xor esi, esi
mov byte [esp + 0x198], 3
mov dword [0x5c6e58], esi
cmp dword [0x5c6e5c], 0
jne 0x406d46
push 8
call sub.gdiplus.dll_GdipAlloc
mov esi, eax
mov dword [esp + 0x18], esi
mov byte [esp + 0x198], 5
test esi, esi
je 0x406d36
fld1
mov edx, dword [0x5c49dc]
push esi
push 0
push ecx
fstp dword [esp]
push edx
mov dword [esi], 0
call sub.gdiplus.dll_GdipCreatePen1
mov dword [esi + 4], eax
jmp 0x406d38
xor esi, esi
mov byte [esp + 0x198], 3
mov dword [0x5c6e5c], esi
cmp dword [0x5c6e60], 0
jne 0x406d9b
push 8
call sub.gdiplus.dll_GdipAlloc
mov esi, eax
mov dword [esp + 0x18], esi
mov byte [esp + 0x198], 6
test esi, esi
je 0x406d8b
fld dword [0x5929b0]
mov eax, dword [0x5c49e0]
push esi
push 0
push ecx
fstp dword [esp]
push eax
mov dword [esi], 0
call sub.gdiplus.dll_GdipCreatePen1
mov dword [esi + 4], eax
jmp 0x406d8d
xor esi, esi
mov byte [esp + 0x198], 3
mov dword [0x5c6e60], esi
cmp dword [0x5c6e64], 0
jne 0x406de1
push 0xc
call sub.gdiplus.dll_GdipAlloc
mov dword [esp + 0x18], eax
mov byte [esp + 0x198], 7
test eax, eax
je 0x406dd2
mov ecx, dword [0x5c49e8]
lea edx, [esp + 0x24]
push edx
push eax
mov dword [esp + 0x2c], ecx
call fcn.00408780
jmp 0x406dd4
xor eax, eax
mov byte [esp + 0x198], 3
mov dword [0x5c6e64], eax
cmp dword [0x5c6e68], 0
jne 0x406e27
push 0xc
call sub.gdiplus.dll_GdipAlloc
mov dword [esp + 0x18], eax
mov byte [esp + 0x198], 8
test eax, eax
je 0x406e18
mov ecx, dword [0x5c49e4]
lea edx, [esp + 0x24]
push edx
push eax
mov dword [esp + 0x2c], ecx
call fcn.00408780
jmp 0x406e1a
xor eax, eax
mov byte [esp + 0x198], 3
mov dword [0x5c6e68], eax
cmp dword [0x5c6e6c], 0
jne 0x406e6d
push 0xc
call sub.gdiplus.dll_GdipAlloc
mov dword [esp + 0x18], eax
mov byte [esp + 0x198], 9
test eax, eax
je 0x406e5e
mov ecx, dword [0x5c7054]
lea edx, [esp + 0x24]
push edx
push eax
mov dword [esp + 0x2c], ecx
call fcn.00408780
jmp 0x406e60
xor eax, eax
mov byte [esp + 0x198], 3
mov dword [0x5c6e6c], eax
mov edx, dword [0x5c6e70]
test edx, edx
jne 0x406eb7
push 0xc
call sub.gdiplus.dll_GdipAlloc
mov dword [esp + 0x18], eax
mov byte [esp + 0x198], 0xa
test eax, eax
je 0x406ea5
mov ecx, dword [0x5c7058]
lea edx, [esp + 0x24]
push edx
push eax
mov dword [esp + 0x2c], ecx
call fcn.00408780
jmp 0x406ea7
xor eax, eax
mov byte [esp + 0x198], 3
mov edx, eax
mov dword [0x5c6e70], edx
cmp dword [ebx + 0x80], 0
jne 0x406f0e
mov esi, dword [esp + 0x50]
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x54]
sub eax, esi
push eax
mov eax, dword [edx + 4]
sub ecx, edi
push ecx
push esi
push edi
push eax
push ebp
call sub.gdiplus.dll_GdipFillRectangleI
test eax, eax
je 0x406eea
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x4c]
mov edx, dword [0x5c49f0]
mov eax, dword [esp + 0x54]
push edx
sub eax, ecx
push eax
mov eax, dword [esp + 0x58]
push eax
push ecx
mov ecx, dword [0x5c6e6c]
mov edx, dword [ecx + 4]
push edx
jmp 0x406f26
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x54]
push 0x64
sub eax, ecx
push eax
mov eax, dword [0x5c49f0]
push eax
push ecx
mov ecx, dword [edx + 4]
push ecx
push ebp
call sub.gdiplus.dll_GdipFillRectangleI
test eax, eax
je 0x406f34
mov dword [esp + 0x34], eax
mov edx, dword [esp + 0x54]
fild dword [esp + 0x4c]
sub edx, dword [esp + 0x4c]
mov ecx, dword [0x5c49f0]
mov eax, dword [esp + 0x58]
fstp dword [esp + 0x44]
sub eax, dword [esp + 0x50]
mov dword [esp + 0x24], edx
lea edx, [ecx + 1]
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
test edx, edx
jge 0x406f6b
fadd dword [0x5928d0]
sub eax, ecx
fstp dword [esp + 0x3c]
dec eax
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
test eax, eax
jge 0x406f84
fadd dword [0x5928d0]
fstp dword [esp + 0x48]
push 4
fild dword [esp + 0x28]
sub esp, 0x10
fstp dword [esp + 0x78]
fld dword [esp + 0x5c]
fstp dword [esp + 0xc]
fld dword [esp + 0x78]
fstp dword [esp + 8]
fld dword [esp + 0x50]
fstp dword [esp + 4]
fld dword [esp + 0x58]
fstp dword [esp]
push ebp
call sub.gdiplus.dll_GdipSetClipRect
xor ecx, ecx
cmp eax, ecx
je 0x406fc4
mov dword [esp + 0x34], eax
mov esi, dword [ebx + 0xb8]
mov eax, dword [ebx + 0xbc]
add eax, esi
mov dword [esp + 0x48], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x40], ecx
cmp esi, eax
jbe 0x406fe8
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edi, dword [ebx + 0xa0]
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], esi
jmp 0x407000
mov eax, dword [ebx + 0xb8]
mov esi, dword [ebx + 0xbc]
add esi, eax
cmp eax, esi
jbe 0x407018
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [ebx + 0xa0]
test edi, edi
je 0x407026
cmp edi, eax
je 0x40702c
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
cmp dword [esp + 0x2c], esi
je 0x407906
inc dword [esp + 0x40]
lea eax, [esp + 0x28]
call fcn.00413720
mov ecx, dword [eax + 0xc]
sub ecx, dword [eax + 4]
lea eax, [esp + 0x28]
mov dword [esp + 0x18], ecx
call fcn.00413720
mov edx, dword [eax + 8]
sub edx, dword [eax]
lea eax, [esp + 0x28]
mov dword [esp + 0x20], edx
call fcn.00413720
mov esi, eax
lea eax, [esp + 0x28]
call fcn.00413720
fild dword [eax]
lea eax, [esp + 0x28]
fstp dword [esp + 0x3c]
fild dword [esi + 4]
fstp dword [esp + 0x38]
fld dword [esp + 0x3c]
fstp dword [esp + 0x5c]
fld dword [esp + 0x38]
fstp dword [esp + 0x60]
fild dword [esp + 0x20]
fstp dword [esp + 0x64]
fild dword [esp + 0x18]
fstp dword [esp + 0x68]
call fcn.00413720
cmp dword [eax + 0x40], 0
jne 0x407265
lea eax, [esp + 0x28]
call fcn.00413720
cmp dword [eax + 0x44], 0
je 0x40729c
cmp dword [ebx + 0x80], 0
jne 0x407136
mov eax, dword [0x5c7058]
mov ecx, dword [0x5c49d4]
push 1
lea edx, [esp + 0x1c]
mov dword [esp + 0x1c], eax
push edx
mov dword [esp + 0x28], ecx
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0xe4]
push ecx
lea ecx, [esp + 0x30]
call fcn.00408c20
mov byte [esp + 0x198], 0xb
lea edx, [esp + 0xd8]
push edx
lea eax, [esp + 0x60]
lea esi, [esp + 0x34]
call fcn.00408a80
mov byte [esp + 0x198], 3
lea eax, [esp + 0xd8]
push eax
call fcn.00408af0
jmp 0x407298
lea ecx, [esp + 0x104]
push ecx
lea edx, [esp + 0x90]
push edx
mov ecx, 0x5c71bc
call dword [sym.imp.libUI.module_public:_long_int___thiscall_CDwmApiImpl::DwmGetColorizationColor_unsigned_long_int___int__]
mov eax, dword [esp + 0x8c]
mov ecx, eax
movzx edx, al
shr ecx, 0x10
and ecx, 0xff
shl edx, 0x10
and eax, 0xff00ff00
or ecx, edx
or ecx, eax
lea eax, [esp + 0x18]
lea edi, [esp + 0x114]
mov dword [esp + 0x18], ecx
call fcn.004059a0
mov esi, eax
fld qword [0x5929a8]
mov ecx, 8
lea edi, [esp + 0xb4]
rep movsd dword es:[edi], dword [esi]
fcomp qword [esp + 0xc4]
fnstsw ax
test ah, 5
jnp 0x4071c6
fld qword [0x5928c8]
fcomp qword [esp + 0xcc]
fnstsw ax
test ah, 0x41
je 0x4071c6
fld qword [0x5929a0]
jmp 0x4071cc
fld qword [0x592998]
fstp qword [esp + 0xc4]
lea esi, [esp + 0xb4]
fld qword [esp + 0xbc]
fmul qword [0x5928c8]
fstp qword [esp + 0xbc]
call fcn.00405c40
mov dword [esp + 0x8c], eax
and eax, 0xffffff
mov ecx, eax
or eax, 0x77000000
or ecx, 0xaa000000
push 1
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], ecx
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x64]
push ecx
lea edx, [esp + 0x114]
push edx
lea ecx, [esp + 0x30]
call fcn.00408c20
mov byte [esp + 0x198], 0xc
lea eax, [esp + 0x108]
push eax
lea eax, [esp + 0x60]
lea esi, [esp + 0x34]
call fcn.00408a80
mov byte [esp + 0x198], 3
lea ecx, [esp + 0x108]
push ecx
call fcn.00408af0
jmp 0x407298
lea ecx, [esp + 0x5c]
lea ebx, [esp + 0x30]
call fcn.00406010
lea eax, [esp + 0x28]
call fcn.00413720
mov edx, dword [eax]
lea eax, [esp + 0x28]
mov dword [esp + 0x48], edx
call fcn.00413720
mov eax, dword [eax + 8]
mov ebx, dword [esp + 0x1a0]
mov dword [esp + 0x24], eax
mov ebp, dword [esp + 0x30]
lea eax, [esp + 0x28]
call fcn.00413720
mov ecx, dword [eax + 0x4c]
cmp dword [ecx - 0xc], 0
je 0x4072f4
lea eax, [esp + 0x28]
call fcn.00413720
add eax, 0x4c
push eax
call fcn.004b9ae0
mov edi, eax
test edi, edi
je 0x4072f4
lea eax, [esp + 0x28]
call fcn.00413720
mov esi, eax
lea eax, [esp + 0x28]
call fcn.00413720
mov edx, dword [esi + 0x14]
mov eax, dword [eax + 0x10]
push 0
push edx
push eax
lea ecx, [esp + 0xa4]
push ecx
call fcn.00405d90
add esp, 0x10
lea eax, [esp + 0x28]
call fcn.00413720
add eax, 0x20
push eax
call dword [sym.imp.USER32.dll_IsRectEmpty]
test eax, eax
jne 0x40735f
lea eax, [esp + 0x28]
call fcn.00413720
mov esi, eax
lea eax, [esp + 0x28]
call fcn.00413720
fild dword [eax + 0x20]
mov eax, dword [ebx + 0x6e4]
fstp dword [esp + 0x20]
fild dword [esi + 0x24]
fstp dword [esp + 0x18]
test eax, eax
je 0x40733c
mov eax, dword [eax + 4]
jmp 0x40733e
xor eax, eax
fld dword [esp + 0x18]
sub esp, 8
fstp dword [esp + 4]
fld dword [esp + 0x28]
fstp dword [esp]
push eax
push ebp
call sub.gdiplus.dll_GdipDrawImage
test eax, eax
je 0x40735f
mov dword [esp + 0x34], eax
lea eax, [esp + 0x28]
call fcn.00413720
mov edx, dword [ebx]
mov eax, dword [eax + 0x50]
mov edx, dword [edx + 0x184]
push eax
mov ecx, ebx
call edx
test eax, eax
je 0x4075d3
cmp dword [ebx + 0x80], 0
je 0x4074c8
lea eax, [esp + 0x28]
call fcn.00413720
cmp dword [eax + 0x40], 0
jne 0x4074c8
lea eax, [esp + 0x80]
push eax
lea ecx, [esp + 0x48]
push ecx
mov ecx, 0x5c71bc
call dword [sym.imp.libUI.module_public:_long_int___thiscall_CDwmApiImpl::DwmGetColorizationColor_unsigned_long_int___int__]
mov eax, dword [esp + 0x44]
mov edx, eax
movzx ecx, al
shr edx, 0x10
and edx, 0xff
shl ecx, 0x10
and eax, 0xff00ff00
or edx, ecx
or edx, eax
lea eax, [esp + 0x18]
lea edi, [esp + 0x114]
mov dword [esp + 0x18], edx
call fcn.004059a0
mov esi, eax
fld qword [0x5929a8]
mov ecx, 8
lea edi, [esp + 0xe4]
rep movsd dword es:[edi], dword [esi]
fcomp qword [esp + 0xf4]
fnstsw ax
test ah, 5
jnp 0x40742a
fld qword [0x5928c8]
fcomp qword [esp + 0xfc]
fnstsw ax
test ah, 0x41
je 0x40742a
fld qword [0x5929a0]
jmp 0x407430
fld qword [0x592998]
fstp qword [esp + 0xf4]
lea esi, [esp + 0xe4]
fld qword [esp + 0xec]
fmul qword [0x5928c8]
fstp qword [esp + 0xec]
call fcn.00405c40
mov dword [esp + 0x44], eax
and eax, 0xffffff
mov ecx, eax
push 1
or ecx, 0x88000000
lea edx, [esp + 0x1c]
mov dword [esp + 0x1c], eax
push edx
mov dword [esp + 0x28], ecx
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0xb4]
push ecx
lea ecx, [esp + 0x30]
call fcn.00408c20
mov byte [esp + 0x198], 0xd
lea edx, [esp + 0xa8]
push edx
lea eax, [esp + 0x60]
lea esi, [esp + 0x34]
call fcn.00408a80
mov byte [esp + 0x198], 3
lea eax, [esp + 0xa8]
push eax
call fcn.00408af0
mov ebp, dword [esp + 0x30]
jmp 0x4075d3
lea eax, [esp + 0x28]
call fcn.00413720
lea eax, [esp + 0x28]
call fcn.00413720
mov ecx, dword [eax + 8]
sub ecx, dword [eax]
lea eax, [esp + 0x28]
mov dword [esp + 0x18], ecx
call fcn.00413720
fild dword [eax]
lea eax, [esp + 0x28]
fstp dword [esp + 0x6c]
fild dword [esp + 0x18]
fstp dword [esp + 0x74]
call fcn.00413720
cmp dword [eax + 0x40], 0
je 0x40751f
fld dword [esp + 0x6c]
fadd qword [0x592868]
fstp dword [esp + 0x6c]
fld dword [0x592994]
jmp 0x407541
fld dword [esp + 0x74]
fsub qword [0x592840]
fstp dword [esp + 0x74]
fld dword [esp + 0x6c]
fadd qword [0x5928c0]
fstp dword [esp + 0x6c]
fld dword [0x592990]
mov edx, dword [0x5c6e5c]
fstp dword [esp + 0x70]
fld dword [esp + 0x6c]
mov eax, dword [edx]
fld st(0)
sub esp, 0x10
fadd dword [esp + 0x84]
fsub qword [0x592850]
fstp dword [esp + 0x4c]
fld dword [esp + 0x80]
fst dword [esp + 0xc]
fld dword [esp + 0x4c]
fstp dword [esp + 8]
fstp dword [esp + 4]
fstp dword [esp]
push eax
push ebp
call sub.gdiplus.dll_GdipDrawLine
test eax, eax
je 0x407590
mov dword [esp + 0x34], eax
fld dword [esp + 0x70]
mov ecx, dword [0x5c6e5c]
fadd qword [0x592850]
mov edx, dword [ecx]
sub esp, 0x10
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fst dword [esp + 0xc]
fld dword [esp + 0x4c]
fstp dword [esp + 8]
fstp dword [esp + 4]
fld dword [esp + 0x7c]
fstp dword [esp]
push edx
push ebp
call sub.gdiplus.dll_GdipDrawLine
test eax, eax
je 0x4075d3
mov dword [esp + 0x34], eax
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1c], eax
test edi, edi
jne 0x407608
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
mov ebx, dword [esp + 0x2c]
add ecx, dword [eax + 0x18]
inc ebx
cmp ebx, ecx
ja 0x407615
mov eax, dword [esp + 0x28]
test eax, eax
je 0x40760e
mov eax, dword [eax]
jmp 0x407610
mov eax, dword [edi]
mov ecx, eax
jmp 0x4075ed
xor eax, eax
cmp ebx, dword [eax + 0x18]
jae 0x40761b
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
lea eax, [esp + 0x28]
mov dword [esp + 0x90], edi
mov dword [esp + 0x94], ebx
call fcn.00413720
cmp dword [eax + 0x40], 0
jne 0x40779c
mov ecx, dword [esp + 0x1a0]
mov eax, dword [ecx + 0xb8]
mov esi, dword [ecx + 0xbc]
add esi, eax
cmp eax, esi
jbe 0x407662
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x1a0]
mov eax, dword [ecx + 0xa0]
test edi, edi
je 0x407670
cmp edi, eax
je 0x407676
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
cmp ebx, esi
je 0x40779c
lea eax, [esp + 0x90]
call fcn.00413720
cmp dword [eax + 0x40], 0
jne 0x40779c
lea eax, [esp + 0x28]
call fcn.00413720
mov esi, eax
lea eax, [esp + 0x28]
call fcn.00413720
fild dword [eax + 8]
fld1
mov edx, dword [0x5c49f0]
fsub st(1), st(0)
fxch st(1)
fstp dword [esp + 0x38]
fisubr dword [esi + 8]
fstp dword [esp + 0x20]
fild dword [0x5c49f0]
test edx, edx
jge 0x4076d2
fadd dword [0x5928d0]
fsub qword [0x592988]
mov eax, dword [0x5c6e58]
mov ecx, dword [eax]
sub esp, 0x10
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp + 0xc]
fld dword [esp + 0x30]
fstp dword [esp + 8]
fld dword [0x592980]
fstp dword [esp + 4]
fld dword [esp + 0x48]
fstp dword [esp]
push ecx
push ebp
call sub.gdiplus.dll_GdipDrawLine
test eax, eax
je 0x407716
mov dword [esp + 0x34], eax
lea eax, [esp + 0x28]
call fcn.00413720
mov esi, eax
lea eax, [esp + 0x28]
call fcn.00413720
fild dword [eax + 8]
fld qword [0x592978]
mov edx, dword [0x5c49f0]
fsub st(1), st(0)
fxch st(1)
fstp dword [esp + 0x38]
fisubr dword [esi + 8]
fstp dword [esp + 0x20]
fild dword [0x5c49f0]
test edx, edx
jge 0x407758
fadd dword [0x5928d0]
fsub qword [0x592988]
mov eax, dword [0x5c6e58]
mov ecx, dword [eax]
sub esp, 0x10
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp + 0xc]
fld dword [esp + 0x30]
fstp dword [esp + 8]
fld dword [0x592980]
fstp dword [esp + 4]
fld dword [esp + 0x48]
fstp dword [esp]
push ecx
push ebp
call sub.gdiplus.dll_GdipDrawLine
test eax, eax
je 0x40779c
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x1a0]
cmp dword [eax + 0x8c], 0
je 0x4078c8
mov edx, dword [esp + 0x40]
cmp edx, dword [eax + 0x94]
jne 0x4078c8
lea eax, [esp + 0x28]
call fcn.00413720
mov esi, eax
lea eax, [esp + 0x28]
call fcn.00413720
fild dword [eax + 8]
fld qword [0x592978]
mov eax, dword [0x5c49f0]
fsub st(1), st(0)
fxch st(1)
fstp dword [esp + 0x38]
fisubr dword [esi + 8]
fstp dword [esp + 0x20]
fild dword [0x5c49f0]
test eax, eax
jge 0x407801
fadd dword [0x5928d0]
fsub qword [0x592970]
mov ecx, dword [0x5c6e60]
mov edx, dword [ecx]
sub esp, 0x10
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp + 0xc]
fld dword [esp + 0x30]
fstp dword [esp + 8]
fld dword [0x592990]
fstp dword [esp + 4]
fld dword [esp + 0x48]
fstp dword [esp]
push edx
push ebp
call sub.gdiplus.dll_GdipDrawLine
test eax, eax
je 0x407846
mov dword [esp + 0x34], eax
lea eax, [esp + 0x28]
call fcn.00413720
mov esi, eax
lea eax, [esp + 0x28]
call fcn.00413720
fild dword [eax + 8]
fld1
mov eax, dword [0x5c49f0]
fsub st(1), st(0)
fxch st(1)
fstp dword [esp + 0x38]
fisubr dword [esi + 8]
fstp dword [esp + 0x20]
fild dword [0x5c49f0]
test eax, eax
jge 0x407883
fadd dword [0x5928d0]
fsub qword [0x592970]
mov ecx, dword [0x5c6e60]
mov edx, dword [ecx]
sub esp, 0x10
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp + 0xc]
fld dword [esp + 0x30]
fstp dword [esp + 8]
fld dword [0x592990]
fstp dword [esp + 4]
fld dword [esp + 0x48]
fstp dword [esp]
push edx
push ebp
call sub.gdiplus.dll_GdipDrawLine
test eax, eax
je 0x4078c8
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x407900
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
add ecx, dword [eax + 0x18]
cmp dword [esp + 0x2c], ecx
jb 0x4078ec
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edi, dword [esp + 0x28]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x1a0]
jmp 0x407000
mov eax, dword [eax]
mov ecx, eax
jmp 0x4078da
cmp dword [ebx + 0x80], 0
jne 0x407b31
mov eax, dword [0x5c49f0]
mov edx, dword [esp + 0x48]
push eax
push edx
push eax
mov eax, dword [0x5c6e58]
mov ecx, dword [eax]
push 0
push ecx
push ebp
call sub.gdiplus.dll_GdipDrawLineI
test eax, eax
je 0x407937
mov dword [esp + 0x34], eax
mov eax, dword [0x5c49f0]
mov edx, dword [esp + 0x54]
mov ecx, dword [0x5c6e58]
push eax
push edx
mov edx, dword [ecx]
push eax
mov eax, dword [esp + 0x30]
inc eax
push eax
push edx
push ebp
call sub.gdiplus.dll_GdipDrawLineI
test eax, eax
je 0x407960
mov dword [esp + 0x34], eax
mov ecx, dword [0x5c6e78]
test ecx, ecx
je 0x407972
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
fild dword [esp + 0x4c]
mov eax, dword [0x5c49f0]
fstp dword [esp + 0x20]
fild dword [esp + 0x50]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fst dword [esp + 0x38]
fild dword [0x5c49f0]
test eax, eax
jge 0x40799f
fadd dword [0x5928d0]
fstp dword [esp + 0x18]
mov ecx, dword [esp + 0x54]
fld dword [esp + 0x18]
add ecx, 0xffffffe0
cmp dword [0x5c6e74], 0
fst dword [esp + 0x18]
fld dword [esp + 0x20]
fstp dword [esp + 0x6c]
fld dword [esp + 0x38]
fstp dword [esp + 0x70]
fld dword [0x59296c]
fstp dword [esp + 0x74]
fld dword [esp + 0x18]
mov dword [esp + 0x18], ecx
fstp dword [esp + 0x78]
fild dword [esp + 0x18]
fstp dword [esp + 0x18]
fxch st(1)
fstp dword [esp + 0x20]
fstp dword [esp + 0x38]
fld dword [esp + 0x18]
fstp dword [esp + 0x5c]
fld dword [esp + 0x20]
fstp dword [esp + 0x60]
fld dword [0x592968]
fstp dword [esp + 0x64]
fld dword [esp + 0x38]
fstp dword [esp + 0x68]
jne 0x407a6c
push 0xc
call sub.gdiplus.dll_GdipAlloc
mov dword [esp + 0x80], eax
mov byte [esp + 0x198], 0xe
test eax, eax
je 0x407a5d
mov ecx, dword [0x5c7054]
mov edx, ecx
and edx, 0xffffff
mov dword [esp + 0x20], ecx
push 0
lea ecx, [esp + 0x1c]
push ecx
mov dword [esp + 0x20], edx
lea edx, [esp + 0x74]
push edx
push eax
lea ecx, [esp + 0x30]
call fcn.00408c20
jmp 0x407a5f
xor eax, eax
mov byte [esp + 0x198], 3
mov dword [0x5c6e74], eax
push 0xc
call sub.gdiplus.dll_GdipAlloc
mov dword [esp + 0x80], eax
mov byte [esp + 0x198], 0xf
test eax, eax
je 0x407ab2
mov ecx, dword [0x5c7054]
mov dword [esp + 0x18], ecx
and ecx, 0xffffff
mov dword [esp + 0x20], ecx
push 0
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x64]
push edx
push eax
lea ecx, [esp + 0x30]
call fcn.00408c20
jmp 0x407ab4
xor eax, eax
mov byte [esp + 0x198], 3
mov dword [0x5c6e78], eax
mov eax, dword [ebx + 0xe0]
test eax, eax
je 0x407af7
push 0
push 0
push 0x472
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
cmp eax, 0xa
jle 0x407af7
mov eax, dword [0x5c6e74]
push eax
lea eax, [esp + 0x70]
lea esi, [esp + 0x34]
call fcn.00408a80
mov ebp, dword [esp + 0x30]
fld dword [esp + 0x68]
mov ecx, dword [0x5c6e78]
mov edx, dword [ecx + 4]
sub esp, 0x10
fstp dword [esp + 0xc]
fld dword [esp + 0x74]
fstp dword [esp + 8]
fld dword [esp + 0x70]
fstp dword [esp + 4]
fld dword [esp + 0x6c]
fstp dword [esp]
push edx
push ebp
call sub.gdiplus.dll_GdipFillRectangle
test eax, eax
je 0x407b31
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x7c]
push eax
push ebp
call sub.gdiplus.dll_GdipRestoreGraphics
test eax, eax
je 0x407b44
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x58]
sub eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
sub ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x84]
push eax
push ecx
mov ecx, dword [esp + 0xa4]
push 0
push 0
push ecx
push esi
call sub.gdiplus.dll_GdipDrawImageRectI
test eax, eax
je 0x407b7a
mov dword [esp + 0x88], eax
mov byte [esp + 0x198], 2
push ebp
call sub.gdiplus.dll_GdipDeleteGraphics
mov byte [esp + 0x198], 1
push esi
call sub.gdiplus.dll_GdipDeleteGraphics
mov dword [esp + 0x198], 0xffffffff
mov edx, dword [esp + 0x9c]
push edx
mov dword [esp + 0x9c], vtable.Gdiplus::Image.0
call sub.gdiplus.dll_GdipDisposeImage
mov ecx, dword [esp + 0x190]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x188
ret 8