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

Disassembly:
push 0xffffffffffffffff
push 0x519b90
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x88
mov dword [esp + 0x68], ecx
push esi
xor ecx, ecx
push edi
mov dword [esp + 0x64], ecx
mov dword [esp + 0x60], vtable.CBrush.0
mov dword [esp + 0x98], ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x68], vtable.CPen.0
mov eax, dword [esp + 0xac]
mov edi, dword [esp + 0xa0]
cmp eax, ecx
mov byte [esp + 0x98], 1
mov dword [esp + 0x58], ecx
mov edx, 0xffffff
mov byte [esp + 0xb], cl
jl 0x471ff4
mov esi, dword [esp + 0xa8]
push ebx
mov ebx, dword [esp + 0x20]
inc eax
push ebp
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x7c], eax
mov al, byte [esi]
cmp al, 0x11
je 0x471fcf
cmp al, 6
je 0x471fcf
cmp al, 9
je 0x471fcf
and eax, 0xff
sub eax, 2
je 0x471933
sub eax, 2
je 0x471929
sub eax, 3
je 0x47191f
mov dword [esp + 0x1c], 0x646400
jmp 0x471940
mov dword [esp + 0x1c], 0xff0000
jmp 0x47193b
mov dword [esp + 0x1c], 0xff00
jmp 0x47193b
mov dword [esp + 0x1c], 0xff
mov byte [esp + 0x13], 1
cmp dword [esp + 0x1c], edx
je 0x4719ce
mov eax, dword [esp + 0x64]
test eax, eax
je 0x471980
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x471980
push eax
mov ecx, edi
call fcn.004fecdd
lea ecx, [esp + 0x68]
call fcn.004ff586
mov eax, dword [esp + 0x60]
mov ecx, edi
push eax
call fcn.004fecdd
lea ecx, [esp + 0x70]
call fcn.004ff586
mov ecx, dword [esp + 0x1c]
push ecx
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
push eax
lea ecx, [esp + 0x6c]
call fcn.004ff52f
lea edx, [esp + 0x68]
mov ecx, edi
push edx
call fcn.004fecdd
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x1c]
push eax
push 0
push 0
call dword [sym.imp.GDI32.dll_CreatePen]
push eax
lea ecx, [esp + 0x74]
call fcn.004ff52f
lea ecx, [esp + 0x70]
push ecx
mov ecx, edi
call fcn.004fecdd
mov dword [esp + 0x60], eax
mov edx, dword [esp + 0x78]
mov eax, dword [edx + 0x40]
sub eax, 0
je 0x471a45
dec eax
je 0x471a01
dec eax
jne 0x471a99
fld dword [esi + 0x24]
fsub dword [esi + 0x74]
fadd qword [0x51f258]
call fcn.004b6898
fld dword [esi + 0x74]
fadd dword [esi + 0x24]
mov dword [esp + 0x48], eax
jmp 0x471a60
fld dword [esi + 0x1c]
fsub dword [esi + 0x74]
fadd qword [0x51f258]
call fcn.004b6898
fld dword [esi + 0x74]
fadd dword [esi + 0x1c]
mov dword [esp + 0x48], eax
fadd qword [0x51f258]
call fcn.004b6898
fld dword [esi + 0x74]
fadd dword [esi + 0x24]
mov dword [esp + 0x50], eax
fadd qword [0x51f258]
call fcn.004b6898
fld dword [esi + 0x24]
mov dword [esp + 0x4c], eax
jmp 0x471a87
fld dword [esi + 0x1c]
fsub dword [esi + 0x74]
fadd qword [0x51f258]
call fcn.004b6898
fld dword [esi + 0x74]
fadd dword [esi + 0x1c]
mov dword [esp + 0x48], eax
fadd qword [0x51f258]
call fcn.004b6898
fld dword [esi + 0x20]
fadd dword [esi + 0x74]
mov dword [esp + 0x50], eax
fadd qword [0x51f258]
call fcn.004b6898
fld dword [esi + 0x20]
mov dword [esp + 0x4c], eax
fsub dword [esi + 0x74]
fadd qword [0x51f258]
call fcn.004b6898
mov dword [esp + 0x54], eax
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x4c]
lea edx, [edx + edx*4]
lea ecx, [ecx + ecx*4]
shl edx, 1
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x50]
lea eax, [eax + eax*4]
lea edx, [edx + edx*4]
shl ecx, 1
shl edx, 1
shl eax, 1
push ecx
push edx
mov dword [esp + 0x54], eax
push eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x60], ecx
mov ecx, dword [edi + 4]
push eax
push ecx
mov dword [esp + 0x64], edx
call dword [sym.imp.GDI32.dll_Ellipse]
mov al, byte [esp + 0x13]
test al, al
je 0x471fcb
mov edx, dword [esp + 0x78]
mov eax, dword [edx + 0x40]
sub eax, 0
je 0x471d6d
dec eax
je 0x471c2a
dec eax
jne 0x471ec7
fld dword [esi + 0x3c]
fmul dword [esi + 0x74]
fld st(0)
fadd dword [esi + 0x24]
fadd qword [0x51f258]
call fcn.004b6898
fld dword [esi + 0x38]
fmul dword [esi + 0x74]
mov dword [esp + 0x58], eax
fst dword [esp + 0x14]
fadd dword [esi + 0x20]
fadd qword [0x51f258]
call fcn.004b6898
fadd st(0), st(0)
mov dword [esp + 0x5c], eax
fadd dword [esi + 0x24]
fadd qword [0x51f258]
call fcn.004b6898
fld dword [esp + 0x14]
fadd st(0), st(0)
mov dword [esp + 0x38], eax
fadd dword [esi + 0x20]
fadd qword [0x51f258]
call fcn.004b6898
fld dword [esi + 0x48]
fmul dword [esi + 0x74]
mov dword [esp + 0x3c], eax
fld st(0)
fadd dword [esi + 0x24]
fadd qword [0x51f258]
call fcn.004b6898
fld dword [esi + 0x44]
fmul dword [esi + 0x74]
mov dword [esp + 0x28], eax
fst dword [esp + 0x14]
fadd dword [esi + 0x20]
fadd qword [0x51f258]
call fcn.004b6898
fadd st(0), st(0)
mov dword [esp + 0x2c], eax
fadd dword [esi + 0x24]
fadd qword [0x51f258]
call fcn.004b6898
fld dword [esp + 0x14]
fadd st(0), st(0)
mov ebp, eax
mov dword [esp + 0x20], ebp
fadd dword [esi + 0x20]
fadd qword [0x51f258]
call fcn.004b6898
fild dword [esp + 0x20]
fld dword [esi + 0x48]
fadd dword [esi + 0x30]
fmul dword [esi + 0x74]
mov ebx, eax
mov dword [esp + 0x24], ebx
fmul qword [0x51f378]
fsubr st(1)
fadd qword [0x51f258]
call fcn.004b6898
fild dword [esp + 0x24]
mov dword [esp + 0x40], eax
fstp qword [esp + 0x14]
fld dword [esi + 0x44]
fadd dword [esi + 0x2c]
fmul dword [esi + 0x74]
fmul qword [0x51f378]
fsubr qword [esp + 0x14]
fadd qword [0x51f258]
call fcn.004b6898
fld dword [esi + 0x30]
fsub dword [esi + 0x48]
mov dword [esp + 0x44], eax
jmp 0x471e89
fld dword [esi + 0x34]
fmul dword [esi + 0x74]
fld st(0)
fadd dword [esi + 0x1c]
fadd qword [0x51f258]
call fcn.004b6898
fld dword [esi + 0x3c]
fmul dword [esi + 0x74]
mov dword [esp + 0x58], eax
fst dword [esp + 0x14]
fadd dword [esi + 0x24]
fadd qword [0x51f258]
call fcn.004b6898
fadd st(0), st(0)
mov dword [esp + 0x5c], eax
fadd dword [esi + 0x1c]
fadd qword [0x51f258]
call fcn.004b6898
fld dword [esp + 0x14]
fadd st(0), st(0)
mov dword [esp + 0x38], eax
fadd dword [esi + 0x24]
fadd qword [0x51f258]
call fcn.004b6898
fld dword [esi + 0x40]
fmul dword [esi + 0x74]
mov dword [esp + 0x3c], eax
fld st(0)
fadd dword [esi + 0x1c]
fadd qword [0x51f258]
call fcn.004b6898
fld dword [esi + 0x48]
fmul dword [esi + 0x74]
mov dword [esp + 0x28], eax
fst dword [esp + 0x14]
fadd dword [esi + 0x24]
fadd qword [0x51f258]
call fcn.004b6898
fadd st(0), st(0)
mov dword [esp + 0x2c], eax
fadd dword [esi + 0x1c]
fadd qword [0x51f258]
call fcn.004b6898
fld dword [esp + 0x14]
fadd st(0), st(0)
mov ebp, eax
mov dword [esp + 0x20], ebp
fadd dword [esi + 0x24]
fadd qword [0x51f258]
call fcn.004b6898
fild dword [esp + 0x20]
fld dword [esi + 0x40]
fadd dword [esi + 0x28]
fmul dword [esi + 0x74]
mov ebx, eax
mov dword [esp + 0x24], ebx
fmul qword [0x51f378]
fsubr st(1)
fadd qword [0x51f258]
call fcn.004b6898
fild dword [esp + 0x24]
mov dword [esp + 0x40], eax
fstp qword [esp + 0x14]
fld dword [esi + 0x48]
fadd dword [esi + 0x30]
fmul dword [esi + 0x74]
fmul qword [0x51f378]
fsubr qword [esp + 0x14]
fadd qword [0x51f258]
call fcn.004b6898
fld dword [esi + 0x28]
fsub dword [esi + 0x40]
fmul dword [esi + 0x74]
mov dword [esp + 0x44], eax
fmul qword [0x51f378]
fadd st(1)
fadd qword [0x51f258]
call fcn.004b6898
fstp st(0)
fld dword [esi + 0x30]
fsub dword [esi + 0x48]
mov dword [esp + 0x30], eax
jmp 0x471eab
fld dword [esi + 0x34]
fmul dword [esi + 0x74]
fld st(0)
fadd dword [esi + 0x1c]
fadd qword [0x51f258]
call fcn.004b6898
fld dword [esi + 0x38]
fmul dword [esi + 0x74]
mov dword [esp + 0x58], eax
fst dword [esp + 0x14]
fadd dword [esi + 0x20]
fadd qword [0x51f258]
call fcn.004b6898
fadd st(0), st(0)
mov dword [esp + 0x5c], eax
fadd dword [esi + 0x1c]
fadd qword [0x51f258]
call fcn.004b6898
fld dword [esp + 0x14]
fadd st(0), st(0)
mov dword [esp + 0x38], eax
fadd dword [esi + 0x20]
fadd qword [0x51f258]
call fcn.004b6898
fld dword [esi + 0x40]
fmul dword [esi + 0x74]
mov dword [esp + 0x3c], eax
fld st(0)
fadd dword [esi + 0x1c]
fadd qword [0x51f258]
call fcn.004b6898
fld dword [esi + 0x44]
fmul dword [esi + 0x74]
mov dword [esp + 0x28], eax
fst dword [esp + 0x14]
fadd dword [esi + 0x20]
fadd qword [0x51f258]
call fcn.004b6898
fadd st(0), st(0)
mov dword [esp + 0x2c], eax
fadd dword [esi + 0x1c]
fadd qword [0x51f258]
call fcn.004b6898
fld dword [esp + 0x14]
fadd st(0), st(0)
mov ebp, eax
mov dword [esp + 0x20], ebp
fadd dword [esi + 0x20]
fadd qword [0x51f258]
call fcn.004b6898
fild dword [esp + 0x20]
fld dword [esi + 0x40]
fadd dword [esi + 0x28]
fmul dword [esi + 0x74]
mov ebx, eax
mov dword [esp + 0x24], ebx
fmul qword [0x51f378]
fsubr st(1)
fadd qword [0x51f258]
call fcn.004b6898
fild dword [esp + 0x24]
mov dword [esp + 0x40], eax
fstp qword [esp + 0x14]
fld dword [esi + 0x44]
fadd dword [esi + 0x2c]
fmul dword [esi + 0x74]
fmul qword [0x51f378]
fsubr qword [esp + 0x14]
fadd qword [0x51f258]
call fcn.004b6898
fld dword [esi + 0x28]
fsub dword [esi + 0x40]
mov dword [esp + 0x44], eax
fmul dword [esi + 0x74]
fmul qword [0x51f378]
fadd st(1)
fadd qword [0x51f258]
call fcn.004b6898
fstp st(0)
fld dword [esi + 0x2c]
fsub dword [esi + 0x44]
mov dword [esp + 0x30], eax
fmul dword [esi + 0x74]
fmul qword [0x51f378]
fadd qword [esp + 0x14]
fadd qword [0x51f258]
call fcn.004b6898
mov dword [esp + 0x34], eax
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
lea ebp, [ebp + ebp*4]
lea edx, [edx + edx*4]
lea ecx, [ecx + ecx*4]
shl edx, 1
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x3c]
lea eax, [eax + eax*4]
lea ebx, [ebx + ebx*4]
lea edx, [edx + edx*4]
shl edx, 1
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x28]
shl ecx, 1
lea edx, [edx + edx*4]
push ecx
shl edx, 1
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x30]
shl eax, 1
lea edx, [edx + edx*4]
mov dword [esp + 0x5c], eax
shl edx, 1
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x44]
push eax
lea eax, [esp + 0x88]
lea edx, [edx + edx*4]
mov dword [esp + 0x64], ecx
shl edx, 1
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x4c]
push eax
mov ecx, edi
lea edx, [edx + edx*4]
shl edx, 1
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x3c]
shl ebp, 1
lea edx, [edx + edx*4]
shl edx, 1
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x40]
shl ebx, 1
lea edx, [edx + edx*4]
shl edx, 1
mov dword [esp + 0x40], edx
call fcn.004ff0dd
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
push ecx
push edx
mov ecx, edi
call fcn.004ff129
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
push eax
lea edx, [esp + 0x94]
push ecx
push edx
mov ecx, edi
call fcn.004ff0dd
push ebx
push ebp
mov ecx, edi
call fcn.004ff129
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
push eax
lea edx, [esp + 0x8c]
push ecx
push edx
mov ecx, edi
call fcn.004ff0dd
push ebx
push ebp
mov ecx, edi
call fcn.004ff129
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
push eax
push ecx
mov ecx, edi
call fcn.004ff129
mov edx, dword [esp + 0x1c]
movsx eax, word [esi + 0x10]
lea ecx, [eax + eax*4]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
lea esi, [eax*8 + 0x943ec8]
mov eax, dword [esp + 0x7c]
dec eax
mov dword [esp + 0x7c], eax
jne 0x4718e7
pop ebp
pop ebx
mov ecx, dword [esp + 0x5c]
push ecx
mov ecx, edi
call fcn.004fecdd
mov edx, dword [esp + 0x58]
mov ecx, edi
push edx
call fcn.004fecdd
mov esi, vtable.CGdiObject.0
mov dword [esp + 0x68], esi
lea ecx, [esp + 0x68]
mov byte [esp + 0x98], 2
call fcn.004ff586
mov dword [esp + 0x60], esi
lea ecx, [esp + 0x60]
mov dword [esp + 0x98], 3
call fcn.004ff586
mov ecx, dword [esp + 0x90]
pop edi
pop esi
mov dword fs:[0], ecx
add esp, 0x94
ret 0x10