Function at 0x52de10
Capabilities:
Access peb ldr_data
Check for peb ntglobalflag flag
Get process heap flags
Get process heap force flags
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x6216da
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x410
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov dword [esp + 0x24], esi
xor ebx, ebx
mov dword [esi + 4], vtable.CArray_unsigned_long_int__unsigned_long_int__.0
mov dword [esp + 0x428], ebx
mov dword [esi + 8], ebx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x10], ebx
mov dword [esi + 0xc], ebx
mov dword [esi + 0x18], vtable.CArray_struct_HBRUSH_____struct_HBRUSH_____.0
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x28], ebx
mov dword [esi + 0x24], ebx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x2c], vtable.CMap_int__int__int__int_.0
mov dword [esi + 0x30], ebx
mov dword [esi + 0x34], 0x11
mov dword [esi + 0x38], ebx
mov dword [esi + 0x3c], ebx
mov dword [esi + 0x40], ebx
mov dword [esi + 0x44], 0xa
mov dword [esi + 0x4c], ebx
mov dword [esi + 0x48], vtable.CPalette.0
mov ebp, vtable.CBrush.0
mov dword [esi + 0x54], ebx
mov dword [esi + 0x50], ebp
lea edi, [esi + 0x58]
mov byte [esp + 0x428], 5
mov ecx, edi
call fcn.0043b3f0
mov dword [edi], ebp
lea edi, [esi + 0x60]
mov byte [esp + 0x428], 6
mov ecx, edi
call fcn.0043b3f0
mov dword [edi], ebp
lea edi, [esi + 0x68]
mov byte [esp + 0x428], 7
mov ecx, edi
call fcn.0043b3f0
mov dword [edi], ebp
lea edi, [esi + 0x70]
mov byte [esp + 0x428], 8
mov ecx, edi
call fcn.0043b3f0
mov dword [edi], ebp
lea edi, [esi + 0x78]
mov byte [esp + 0x428], 9
mov ecx, edi
call fcn.0043b3f0
mov dword [edi], ebp
lea edi, [esi + 0x80]
mov byte [esp + 0x428], 0xa
mov ecx, edi
call fcn.0043b3f0
mov dword [edi], ebp
lea edi, [esi + 0x88]
mov byte [esp + 0x428], 0xb
mov ecx, edi
call fcn.0043b3f0
mov dword [edi], ebp
lea edi, [esi + 0x90]
mov byte [esp + 0x428], 0xc
mov ecx, edi
call fcn.0043b3f0
mov dword [edi], ebp
mov dword [esi + 0x9c], ebx
mov dword [esi + 0x98], ebp
lea edi, [esi + 0xa0]
mov byte [esp + 0x428], 0xe
mov ecx, edi
call fcn.0043b3f0
mov dword [edi], ebp
lea edi, [esi + 0xa8]
mov byte [esp + 0x428], 0xf
mov ecx, edi
call fcn.0043b3f0
mov dword [edi], ebp
lea edi, [esi + 0xb0]
mov byte [esp + 0x428], 0x10
mov ecx, edi
call fcn.0043b3f0
mov dword [edi], vtable.CFont.0
lea edi, [esi + 0xb8]
mov byte [esp + 0x428], 0x11
mov ecx, edi
call fcn.0043b3f0
mov dword [edi], vtable.CFont.0
lea edi, [esi + 0xc0]
mov byte [esp + 0x428], 0x12
mov ecx, edi
call fcn.0043b3f0
mov dword [edi], vtable.CFont.0
lea edi, [esi + 0xc8]
mov byte [esp + 0x428], 0x13
mov ecx, edi
call fcn.0043b3f0
mov dword [edi], vtable.CFont.0
lea edi, [esi + 0xd0]
mov byte [esp + 0x428], 0x14
mov ecx, edi
call fcn.0043b3f0
mov dword [edi], vtable.CFont.0
lea edi, [esi + 0xd8]
mov byte [esp + 0x428], 0x15
mov ecx, edi
call fcn.0043b3f0
mov dword [edi], vtable.CFont.0
mov dword [esi + 0xe4], ebx
mov dword [esi + 0xe0], vtable.CFont.0
lea edi, [esi + 0xe8]
mov byte [esp + 0x428], 0x17
mov ecx, edi
call fcn.0043b3f0
mov dword [edi], vtable.CFont.0
lea edi, [esi + 0xf0]
mov byte [esp + 0x428], 0x18
mov ecx, edi
call fcn.0043b3f0
mov dword [edi], vtable.CFont.0
lea edi, [esi + 0xf8]
mov byte [esp + 0x428], 0x19
mov ecx, edi
call fcn.0043b3f0
mov dword [edi], vtable.CFont.0
lea edi, [esi + 0x100]
mov byte [esp + 0x428], 0x1a
mov ecx, edi
call fcn.0043b3f0
mov dword [edi], vtable.CFont.0
lea edi, [esi + 0x108]
mov byte [esp + 0x428], 0x1b
mov ecx, edi
call fcn.0043b3f0
mov dword [edi], vtable.CFont.0
lea edi, [esi + 0x110]
mov byte [esp + 0x428], 0x1c
mov ecx, edi
call fcn.0043b3f0
mov dword [edi], vtable.CFont.0
mov al, byte [0x6c69e5]
mov cl, byte [esi + 0x11c]
shr al, 2
and al, 1
and cl, 0xfe
or al, cl
mov byte [esp + 0x428], 0x1d
mov byte [esi + 0x11c], al
mov dword [esi + 0x120], 2
mov dword [esi], vtable.CExtPaintManager.0
mov dword [esi + 0x118], 0x20
mov word [esp + 0x28], 0x300
mov word [esp + 0x2a], 0xfc
mov dword [esp + 0x14], ebx
lea ecx, [esp + 0x2d]
jmp 0x52e12a
mov ecx, dword [esp + 0x20]
mov eax, 0x2aaaaaab
mov ebp, ecx
imul dword [esp + 0x14]
mov eax, edx
mov dword [esp + 0x10], ebx
shr eax, 0x1f
add edx, eax
add ecx, 0x90
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], ecx
mov eax, 0x66666667
xor edi, edi
imul dword [esp + 0x10]
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov ecx, ebp
mov dword [esp + 0x1c], edx
add ebp, 0x18
mov dl, byte [esp + 0x18]
mov al, byte [esp + 0x1c]
mov byte [ecx - 1], dl
mov byte [ecx], al
mov eax, 0x66666667
add ecx, 4
imul edi
sar edx, 1
mov eax, edx
add edi, 0xff
shr eax, 0x1f
add edx, eax
cmp edi, 0x5fa
mov byte [ecx - 3], dl
mov byte [ecx - 2], bl
jl 0x52e16b
mov eax, dword [esp + 0x10]
add eax, 0xff
cmp eax, 0x5fa
mov dword [esp + 0x10], eax
jl 0x52e14e
mov eax, dword [esp + 0x14]
add eax, 0xff
cmp eax, 0x6f9
mov dword [esp + 0x14], eax
jl 0x52e126
lea ecx, [esp + 0x28]
push ecx
call dword [sym.imp.GDI32.dll_CreatePalette]
push eax
lea ecx, [esi + 0x48]
call fcn.005e1342
mov ecx, dword [esp + 0x420]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x41c
ret