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

Disassembly:
push 0xffffffffffffffff
push 0x5e5a58
mov eax, dword fs:[0]
push eax
sub esp, 0x94
push ebx
push ebp
push edi
mov eax, dword [0x680f10]
xor eax, esp
push eax
lea eax, [esp + 0xa4]
mov dword fs:[0], eax
mov ecx, dword [esi + 0xd4]
fldz
mov eax, dword [ecx]
fst dword [esp + 0x34]
mov edx, dword [eax + 0x38]
fstp dword [esp + 0x14]
call edx
mov ecx, dword [esi + 0xd4]
mov dword [esp + 0x48], eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x18]
call edx
mov ecx, dword [esi + 0xd4]
mov dword [esp + 0x4c], eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x48]
call edx
mov ecx, dword [esi + 0xd4]
mov dword [esp + 0x3c], eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x40]
call edx
movzx ecx, al
or ecx, 0xffffff00
movzx edx, ah
shl ecx, 8
or ecx, edx
shr eax, 0x10
movzx eax, al
shl ecx, 8
lea edx, [esp + 0x10]
or ecx, eax
push edx
mov ebx, vtable.Gdiplus::SolidBrush.0
xor edi, edi
push ecx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x18], edi
call sub.gdiplus.dll_GdipCreateSolidFill
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x54], eax
mov dword [esp + 0xac], edi
mov ecx, dword [esi + 0xd4]
mov edx, dword [ecx]
mov eax, dword [edx + 0x30]
call eax
movzx ecx, al
or ecx, 0xffffff00
movzx edx, ah
shl ecx, 8
or ecx, edx
shr eax, 0x10
movzx eax, al
shl ecx, 8
lea edx, [esp + 0x38]
or ecx, eax
push edx
push ecx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x40], edi
call sub.gdiplus.dll_GdipCreateSolidFill
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x60], eax
mov byte [esp + 0xac], 1
mov ecx, dword [esi + 0xd4]
mov edx, dword [ecx]
mov eax, dword [edx + 0x50]
call eax
movzx ecx, al
or ecx, 0xffffff00
movzx edx, ah
shl ecx, 8
shr eax, 0x10
or ecx, edx
movzx eax, al
shl ecx, 8
or ecx, eax
lea edx, [esp + 0x30]
push edx
push ecx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x38], edi
call sub.gdiplus.dll_GdipCreateSolidFill
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x74], eax
mov byte [esp + 0xac], 2
mov ecx, dword [esi + 0xd4]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
mov ebx, dword [esp + 0xb4]
movzx ecx, al
or ecx, 0xffffff00
movzx edx, ah
shl ecx, 8
or ecx, edx
shr eax, 0x10
movzx eax, al
shl ecx, 8
or ecx, eax
push ecx
mov ecx, dword [ebx]
push ecx
call sub.gdiplus.dll_GdipGraphicsClear
cmp eax, edi
je 0x41ab8f
mov dword [ebx + 4], eax
mov edx, dword [esi]
mov eax, dword [edx + 0x98]
mov ecx, esi
call eax
mov ebp, eax
cmp ebp, 0x10000000
mov dword [esp + 0x18], ebp
je 0x41ad2c
mov ecx, dword [esi + 0x70]
fild dword [esi + 0x70]
test ecx, ecx
jge 0x41abbd
fadd dword [0x659f44]
fldz
mov edx, dword [esi + 0x74]
test edx, edx
fld st(0)
fsubrp st(2)
fxch st(1)
fstp dword [esp + 0x34]
fild dword [esi + 0x74]
jge 0x41abd9
fadd dword [0x659f44]
cmp byte [esi + 0x54], 0
fsubp st(1)
fstp dword [esp + 0x14]
je 0x41acdc
cmp ebp, edi
mov al, byte [esi + 0x18]
mov ebx, dword [esi + 0x50]
jne 0x41abf7
xor ebx, ebx
jmp 0x41ac0e
xor ecx, ecx
test al, al
setne cl
mov eax, ebp
xor edx, edx
sub eax, ecx
div ebx
mov ebx, eax
imul ebx, dword [esi + 0x50]
add ebx, ecx
mov eax, dword [esi + 0xa0]
cmp eax, edi
je 0x41ac35
mov ecx, dword [esi + 0xa4]
sub ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x41ac3a
call fcn.0044b7ad
mov eax, dword [esi + 0xa0]
lea edi, [ebx + ebx*8]
add edi, edi
add edi, edi
mov ecx, dword [eax + edi + 0x18]
mov dword [esi + 0x38], ecx
mov eax, dword [esi + 0xa0]
test eax, eax
je 0x41ac75
mov ecx, dword [esi + 0xa4]
sub ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x41ac7a
call fcn.0044b7ad
mov edx, dword [esi + 0xa0]
mov eax, dword [edx + edi + 0x1c]
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0xa0]
test eax, eax
je 0x41acae
mov ecx, dword [esi + 0xa4]
sub ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x41acb3
call fcn.0044b7ad
mov ecx, dword [esi + 0xa0]
mov edx, dword [ecx + edi + 0x20]
fild dword [ecx + edi + 0x20]
test edx, edx
jge 0x41accb
fadd dword [0x659f44]
fadd dword [esp + 0x14]
mov ebx, dword [esp + 0xb4]
xor edi, edi
fstp dword [esp + 0x14]
mov ecx, dword [esi + 0x38]
mov eax, dword [esi + 0x60]
cmp ecx, eax
jae 0x41ad04
sub eax, ecx
shr eax, 1
test eax, eax
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
jge 0x41acfc
fadd dword [0x659f44]
fadd dword [esp + 0x34]
fstp dword [esp + 0x34]
mov ecx, dword [esi + 0x3c]
mov eax, dword [esi + 0x64]
cmp ecx, eax
jae 0x41ad2c
sub eax, ecx
shr eax, 1
test eax, eax
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
jge 0x41ad24
fadd dword [0x659f44]
fadd dword [esp + 0x14]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
mov eax, dword [ebx]
push edi
sub esp, 8
fstp dword [esp + 4]
fld dword [esp + 0x40]
fstp dword [esp]
push eax
call sub.gdiplus.dll_GdipTranslateWorldTransform
cmp eax, edi
je 0x41ad4e
mov dword [ebx + 4], eax
cmp ebp, 0x10000000
je 0x41b0e2
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x48]
add ecx, edx
mov dword [esp + 0x1c], ecx
jmp 0x41ad74
mov ebp, dword [esp + 0x18]
mov eax, dword [esi + 0xa0]
cmp eax, edi
je 0x41ad9b
mov ecx, dword [esi + 0xa4]
sub ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x41ada0
call fcn.0044b7ad
mov eax, dword [esi + 0xa0]
lea ebx, [ebp + ebp*8]
add ebx, ebx
add ebx, ebx
add eax, ebx
mov dword [esp + 0x40], eax
mov eax, dword [esi + 0xa0]
cmp eax, edi
je 0x41addb
mov ecx, dword [esi + 0xa4]
sub ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x41ade0
call fcn.0044b7ad
mov eax, dword [esi + 0xa0]
add eax, ebx
mov dword [esp + 0x44], eax
mov eax, dword [esi + 0xa0]
cmp eax, edi
je 0x41ae13
mov ecx, dword [esi + 0xa4]
sub ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x41ae18
call fcn.0044b7ad
mov edi, dword [esi + 0xa0]
mov eax, dword [esi + 0xa0]
add edi, ebx
test eax, eax
je 0x41ae47
mov ecx, dword [esi + 0xa4]
sub ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x41ae4c
call fcn.0044b7ad
mov eax, dword [esi + 0xa0]
mov ebx, dword [eax + ebx + 0x10]
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx + 8]
mov edx, dword [esp + 0x40]
mov ecx, dword [edx + 0xc]
mov ebp, dword [edi + 0x14]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb4]
push ecx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x40]
push ecx
mov dword [esp + 0x30], eax
sub eax, ecx
mov ecx, dword [edi]
add ebx, edx
add ebp, edx
push ebp
add eax, ebx
push eax
mov eax, dword [esp + 0x40]
push eax
push ecx
call sub.gdiplus.dll_GdipFillRectangleI
test eax, eax
je 0x41ae9e
mov dword [edi + 4], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
push eax
push edx
mov edx, dword [esp + 0x38]
sub ecx, eax
mov eax, dword [edi]
add ecx, ebp
push ecx
push ebx
push edx
push eax
call sub.gdiplus.dll_GdipFillRectangleI
test eax, eax
je 0x41aec6
mov dword [edi + 4], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x3c]
lea edx, [ecx + eax]
add ecx, eax
mov eax, dword [esp + 0x2c]
push eax
mov eax, dword [edi]
sub ebp, ecx
mov ecx, dword [esp + 0x2c]
push ecx
sub ebx, edx
mov edx, dword [esp + 0x40]
push ebp
push ebx
push edx
push eax
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebp
call sub.gdiplus.dll_GdipFillRectangleI
test eax, eax
je 0x41aeff
mov dword [edi + 4], eax
fld qword [esi + 8]
mov eax, dword [esi + 0xbc]
cmp byte [eax + 8], 0
fmul qword [esi + 0x58]
mov ecx, dword [esi + 0x1c]
mov dword [esp + 0x44], eax
fst qword [esp + 0x68]
mov dword [esp + 0x40], ecx
je 0x41af57
sub esp, 8
fstp qword [esp]
push ecx
mov ecx, dword [esp + 0x24]
push ebp
push ebx
push edi
push ecx
push ecx
mov edi, eax
call fcn.004258c0
add esp, 4
push eax
call fcn.00425960
test al, al
jne 0x41af93
fld qword [esp + 0x68]
mov edi, dword [esp + 0xb4]
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
fild dword [esp + 0x20]
sub esp, 8
lea edx, [esp + 0x84]
fstp qword [esp + 0x84]
fild dword [esp + 0x2c]
fstp qword [esp + 0x8c]
fstp qword [esp]
push 0
push 1
push 0x3fffff7
push ecx
mov ecx, dword [esp + 0x30]
push edx
mov edx, dword [eax + 4]
push ecx
push edx
call fcn.00420270
fild dword [esp + 0x20]
mov eax, dword [esi + 0x1c]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0xb4]
fstp qword [esp + 0x8c]
sub esp, 8
fild dword [esp + 0x2c]
lea ecx, [esp + 0x94]
fstp qword [esp + 0x9c]
fld qword [esi + 8]
fmul qword [esi + 0x58]
fstp qword [esp]
push 0
push 0
push 0xc0000008
push eax
mov eax, dword [esi + 0xc0]
push ecx
push edx
push eax
call fcn.00420270
mov edi, dword [esp + 0x48]
test edi, edi
je 0x41b0b9
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
lea eax, [edi + edi]
add ecx, eax
add edx, eax
push edx
mov dword [esp + 0x2c], ecx
push edi
sub ecx, edi
sub ebx, edi
sub ebp, edi
push ebp
add ecx, ebx
push ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0xc4]
mov eax, dword [edx]
push ecx
push eax
call sub.gdiplus.dll_GdipFillRectangleI
test eax, eax
je 0x41b033
mov ecx, dword [esp + 0xb4]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
push edi
push edx
mov edx, dword [esp + 0xbc]
sub eax, edi
add eax, ebp
push eax
mov eax, dword [edx]
push ebx
push ecx
push eax
call sub.gdiplus.dll_GdipFillRectangleI
test eax, eax
je 0x41b065
mov ecx, dword [esp + 0xb4]
mov dword [ecx + 4], eax
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xb4]
push edi
push edx
mov edx, dword [ecx]
push ebp
push ebx
push eax
push edx
call sub.gdiplus.dll_GdipFillRectangleI
test eax, eax
je 0x41b08f
mov ecx, dword [esp + 0xb4]
mov dword [ecx + 4], eax
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xb4]
push edx
mov edx, dword [ecx]
push edi
push ebp
push ebx
push eax
push edx
call sub.gdiplus.dll_GdipFillRectangleI
test eax, eax
je 0x41b0b9
mov ecx, dword [esp + 0xb4]
mov dword [ecx + 4], eax
mov edx, dword [esi]
mov eax, dword [esp + 0x18]
mov edx, dword [edx + 0x9c]
push eax
mov ecx, esi
call edx
xor edi, edi
cmp eax, 0x10000000
mov dword [esp + 0x18], eax
jne 0x41ad70
mov ebx, dword [esp + 0xb4]
fld dword [esp + 0x14]
mov eax, dword [ebx]
push edi
fchs
sub esp, 8
fstp dword [esp + 4]
fld dword [esp + 0x40]
fchs
fstp dword [esp]
push eax
call sub.gdiplus.dll_GdipTranslateWorldTransform
cmp eax, edi
je 0x41b108
mov dword [ebx + 4], eax
mov ebx, dword [esp + 0x4c]
cmp ebx, edi
je 0x41b17a
mov ecx, dword [esi + 0xd4]
mov edx, dword [ecx]
mov eax, dword [edx + 0x20]
call eax
movzx ecx, al
or ecx, 0xffffff00
movzx edx, ah
shl ecx, 8
or ecx, edx
shr eax, 0x10
movzx eax, al
shl ecx, 8
or ecx, eax
push ecx
mov ecx, dword [esp + 0x14]
push ecx
call sub.gdiplus.dll_GdipSetSolidFillColor
cmp eax, edi
je 0x41b14c
mov dword [esp + 0x58], eax
mov eax, dword [esi + 0x64]
mov edx, dword [esi + 0x60]
push edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
lea ecx, [esp + 0x54]
mov dword [esp + 0x30], eax
mov edi, ebx
mov ebx, dword [esp + 0xb8]
push ecx
lea eax, [esp + 0x28]
mov dword [esp + 0x30], edx
call fcn.0041cba0
mov edx, dword [esp + 0x30]
push edx
call sub.gdiplus.dll_GdipDeleteBrush
mov eax, dword [esp + 0x38]
push eax
call sub.gdiplus.dll_GdipDeleteBrush
mov ecx, dword [esp + 0x10]
push ecx
call sub.gdiplus.dll_GdipDeleteBrush
mov ecx, dword [esp + 0xa4]
mov dword fs:[0], ecx
pop ecx
pop edi
pop ebp
pop ebx
add esp, 0xa0
ret 4