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

Disassembly:
push 0xffffffffffffffff
push 0x44d058
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x60
push ebx
push ebp
push esi
push edi
mov esi, ecx
mov ecx, dword [esi + 0x1c]
lea eax, [esp + 0x50]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esi + 0xd0]
lea edx, [esp + 0x3c]
push edx
xor edi, edi
push edi
push 0x3f800000
push eax
mov dword [esp + 0x4c], edi
call sub.gdiplus.dll_GdipCreatePen1
mov dword [esp + 0x40], eax
mov eax, dword [esi + 0xd8]
lea ecx, [esp + 0x34]
push ecx
push edi
push 0x3f800000
push eax
mov dword [esp + 0x88], edi
mov dword [esp + 0x44], edi
call sub.gdiplus.dll_GdipCreatePen1
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x5c]
mov ebp, dword [esp + 0x50]
lea edx, [esp + 0x18]
push edx
push edi
push 0x26200a
sub eax, ecx
mov ecx, dword [esp + 0x64]
push edi
sub ecx, ebp
push eax
push ecx
mov dword [esp + 0x78], 0x450898
mov dword [esp + 0x30], edi
call sub.gdiplus.dll_GdipCreateBitmapFromScan0
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x64], eax
lea ecx, [esp + 0x14]
push ecx
push eax
mov dword [esp + 0x1c], edi
call sub.gdiplus.dll_GdipGetImageGraphicsContext
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
push 4
push eax
call sub.gdiplus.dll_GdipSetSmoothingMode
cmp eax, edi
je 0x40a12e
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x58]
mov ebx, dword [esp + 0x50]
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0x54]
sub eax, ebx
sub ecx, edi
cmp eax, ecx
mov dword [esp + 0x14], eax
jle 0x40a14e
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fld qword [0x450a20]
fmul st(1)
call fcn.00412da8
fmul qword [0x450a18]
mov ebx, eax
lea edi, [esi + 0xdc]
mov dword [edi], ebx
mov dword [esi + 0xe0], ebx
call fcn.00412da8
mov dword [esi + 0xe4], eax
mov dword [esi + 0xe8], eax
cdq
sub eax, edx
sar eax, 1
lea edx, [ebx + eax]
add ebx, eax
mov eax, dword [esi + 0xd0]
mov ecx, eax
shr ecx, 0x10
mov dword [esi + 0xec], edx
movzx ebp, cl
mov edx, eax
mov dword [esi + 0xf0], ebx
mov ebx, 0xffffffc9
shr edx, 8
sub ebp, 0x37
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x13], dl
jns 0x40a1cf
movzx bp, cl
neg ebp
mov dword [esp + 0x14], ebp
movzx ebp, dl
sub ebp, 0x37
jns 0x40a1dd
movzx bx, dl
neg ebx
movzx edx, al
sub edx, 0x37
jns 0x40a1ed
movzx bp, al
neg ebp
jmp 0x40a1f1
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
cmp dx, bx
jg 0x40a1fc
mov edx, ebx
cmp dx, bp
jle 0x40a216
mov edx, dword [esp + 0x14]
cmp dx, bx
jle 0x40a210
mov dword [esp + 0x14], edx
jmp 0x40a21a
mov dword [esp + 0x14], ebx
jmp 0x40a21a
mov dword [esp + 0x14], ebp
xor ebx, ebx
mov edx, eax
shr edx, 0x18
mov bh, dl
mov dl, byte [esp + 0x14]
add dl, cl
mov cl, byte [esp + 0x14]
mov bl, dl
add cl, byte [esp + 0x13]
movzx edx, cl
mov cl, byte [esp + 0x14]
shl ebx, 8
or ebx, edx
add cl, al
movzx ecx, cl
shl ebx, 8
or ebx, ecx
mov ecx, eax
shr ecx, 0x10
movzx ebp, cl
mov edx, eax
mov dword [esp + 0x24], ebx
mov ebx, 0x37
shr edx, 8
add ebp, 0x37
cmp ebp, 0xff
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x13], dl
jle 0x40a281
movzx bp, cl
mov ebx, 0xff
sub ebx, ebp
movzx ebp, dl
add ebp, 0x37
cmp ebp, 0xff
jle 0x40a2a0
movzx dx, dl
mov ebp, 0xff
sub ebp, edx
mov dword [esp + 0x14], ebp
jmp 0x40a2a4
mov ebp, dword [esp + 0x14]
movzx edx, al
add edx, 0x37
cmp edx, 0xff
jle 0x40a2c3
movzx bp, al
mov edx, 0xff
sub edx, ebp
mov ebp, dword [esp + 0x14]
jmp 0x40a2c7
mov edx, dword [esp + 0x1c]
cmp bx, bp
jge 0x40a2ce
mov ebp, ebx
cmp bp, dx
jge 0x40a2e0
mov edx, dword [esp + 0x14]
cmp bx, dx
mov dword [esp + 0x14], ebx
jl 0x40a2e4
mov dword [esp + 0x14], edx
mov edx, eax
shr edx, 0x18
xor ebx, ebx
mov bh, dl
mov dl, byte [esp + 0x14]
add dl, cl
mov cl, byte [esp + 0x14]
mov dword [esp + 0x44], 0x450a10
mov bl, dl
add cl, byte [esp + 0x13]
movzx edx, cl
mov cl, byte [esp + 0x14]
add cl, al
movzx eax, cl
lea ecx, [esp + 0x14]
push ecx
push 0
shl ebx, 8
or ebx, edx
mov edx, dword [esp + 0x2c]
push 2
shl ebx, 8
push edx
or eax, ebx
push eax
push edi
mov dword [esp + 0x2c], 0
call sub.gdiplus.dll_GdipCreateLineBrushFromRectI
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], ebp
mov eax, dword [esi + 0xbc]
test eax, eax
mov byte [esp + 0x78], 4
je 0x40a361
lea eax, [esp + 0x2c]
push eax
mov ecx, esi
call fcn.00409a00
jmp 0x40a375
mov edx, dword [esi]
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x30]
push ecx
mov ecx, esi
call dword [edx + 0x138]
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 8]
mov edx, dword [edi + 4]
mov ebx, dword [edi]
push eax
push ecx
push edx
mov edx, dword [esp + 0x38]
push ebx
push ebp
push edx
call sub.gdiplus.dll_GdipFillEllipseI
test eax, eax
je 0x40a397
mov dword [esp + 0x30], eax
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 8]
mov edx, dword [edi + 4]
mov ebx, dword [edi]
push eax
mov eax, dword [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x34]
push edx
push ebx
push eax
push ecx
call sub.gdiplus.dll_GdipDrawEllipseI
test eax, eax
je 0x40a3bd
mov dword [esp + 0x30], eax
call dword [sym.imp.USER32.dll_GetFocus]
push eax
call fcn.0042d197
cmp eax, esi
jne 0x40a45e
mov edx, dword [esi + 0xd0]
push 0xffffffffffffffd8
push edx
lea eax, [esp + 0x2c]
push eax
mov ecx, esi
call fcn.00409a50
lea ecx, [esp + 0x1c]
push ecx
push 0
mov dword [esp + 0x24], 0
mov eax, dword [eax]
push 0x3f800000
push eax
call sub.gdiplus.dll_GdipCreatePen1
mov edx, dword [esp + 0x1c]
push 1
push edx
mov dword [esp + 0x28], eax
call sub.gdiplus.dll_GdipSetPenDashStyle
test eax, eax
je 0x40a41a
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1c]
push 0
push eax
call sub.gdiplus.dll_GdipSetPenDashCap197819
test eax, eax
je 0x40a42e
mov dword [esp + 0x20], eax
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 8]
mov edx, dword [edi + 4]
mov ebx, dword [edi]
push eax
push ecx
mov ecx, dword [esp + 0x24]
push edx
mov edx, dword [esp + 0x38]
push ebx
push ecx
push edx
call sub.gdiplus.dll_GdipDrawEllipseI
test eax, eax
je 0x40a454
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x1c]
push eax
call sub.gdiplus.dll_GdipDeletePen
push edi
lea ecx, [esp + 0x28]
push ecx
mov ecx, esi
call fcn.004089d0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
lea ebp, [esp + 0x3c]
push ebp
sub esp, 0x10
mov ebp, esp
add eax, 0xfffffffd
mov dword [ebp], eax
add ecx, 0xfffffffd
mov dword [ebp + 4], ecx
mov edx, 6
mov ebx, edx
mov dword [ebp + 8], edx
lea edx, [esp + 0x40]
push edx
mov ecx, esi
mov dword [ebp + 0xc], ebx
call fcn.00409b80
mov eax, dword [esi + 0xc0]
test eax, eax
mov ebp, dword [sym.imp.USER32.dll_SendMessageA]
je 0x40a54d
mov eax, dword [esi + 0x1c]
push 0
push 0
push 0x401
push eax
call ebp
mov ecx, dword [esi + 0x1c]
push 0
push 0
push 0x402
push ecx
mov ebx, eax
call ebp
cmp ebx, eax
jg 0x40a54d
lea ebx, [ebx]
push edi
push ebx
push 3
lea edx, [esp + 0x30]
push edx
mov ecx, esi
call fcn.00408ae0
push edi
push ebx
mov ebp, eax
push 0
lea eax, [esp + 0x28]
push eax
mov ecx, esi
call fcn.00408ae0
mov ecx, dword [ebp + 4]
mov ebp, dword [ebp]
mov edx, dword [eax + 4]
mov eax, dword [eax]
push ecx
mov ecx, dword [esp + 0x38]
push ebp
push edx
mov edx, dword [esp + 0x38]
push eax
push ecx
push edx
call sub.gdiplus.dll_GdipDrawLineI
test eax, eax
je 0x40a528
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x1c]
mov edx, dword [esi + 0xcc]
push 0
push 0
push 0x402
push eax
add ebx, edx
call dword [sym.imp.USER32.dll_SendMessageA]
cmp ebx, eax
jle 0x40a4e0
mov ebp, dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [esi + 0xc4]
test eax, eax
je 0x40a5e7
mov ecx, dword [esi + 0x1c]
push 0
push 0
push 0x401
push ecx
call ebp
mov edx, dword [esi + 0x1c]
push 0
push 0
push 0x402
push edx
mov ebx, eax
call ebp
cmp ebx, eax
jg 0x40a5e7
nop
push edi
push ebx
push 5
lea eax, [esp + 0x30]
push eax
mov ecx, esi
call fcn.00408ae0
push edi
push ebx
push 0
lea ecx, [esp + 0x28]
push ecx
mov ecx, esi
mov ebp, eax
call fcn.00408ae0
mov ecx, dword [ebp + 4]
mov edx, dword [eax + 4]
mov ebp, dword [ebp]
mov eax, dword [eax]
push ecx
push ebp
push edx
mov edx, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x3c]
push edx
push eax
call sub.gdiplus.dll_GdipDrawLineI
test eax, eax
je 0x40a5c8
mov dword [esp + 0x30], eax
mov ecx, dword [esi + 0x1c]
mov edx, dword [esi + 0xc8]
push 0
push 0
push 0x402
push ecx
add ebx, edx
call dword [sym.imp.USER32.dll_SendMessageA]
cmp ebx, eax
jle 0x40a580
mov eax, dword [esi + 0xf8]
test eax, eax
je 0x40a601
mov edx, dword [esi]
push edi
lea eax, [esp + 0x30]
push eax
mov ecx, esi
call dword [edx + 0x13c]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x80]
mov ecx, dword [esi]
push 0
push 0
push edi
push ecx
call sub.gdiplus.dll_GdipDrawImageI
test eax, eax
je 0x40a620
mov dword [esi + 4], eax
mov edx, dword [esp + 0x14]
push edx
call sub.gdiplus.dll_GdipDeleteBrush
mov eax, dword [esp + 0x2c]
push eax
call sub.gdiplus.dll_GdipDeleteGraphics
push edi
call sub.gdiplus.dll_GdipDisposeImage
mov ecx, dword [esp + 0x34]
push ecx
call sub.gdiplus.dll_GdipDeletePen
mov edx, dword [esp + 0x3c]
push edx
call sub.gdiplus.dll_GdipDeletePen
mov ecx, dword [esp + 0x70]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x6c
ret 4