Function at 0x45f810
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x53ef10
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x58
push ebx
push ebp
push esi
mov esi, dword [esp + 0x7c]
mov eax, esi
mov ebx, dword [sym.imp.USER32.dll_GetSysColor]
neg eax
sbb eax, eax
push edi
and al, 0xf6
mov edi, ecx
add eax, 0xf
push eax
call ebx
neg esi
sbb esi, esi
mov ebp, eax
and esi, 0xfffffff6
add esi, 0x12
push esi
call ebx
push ebp
lea ecx, [esp + 0x2c]
mov dword [esp + 0x14], eax
call fcn.005175eb
mov esi, dword [esp + 0x78]
push ebp
mov ecx, esi
mov dword [esp + 0x74], 0
mov edx, dword [esi]
call dword [edx + 0x2c]
mov ecx, dword [esp + 0x10]
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0x30]
push 0
push 1
push 0
lea ecx, [esp + 0x2c]
call fcn.00517545
push 0x10
mov byte [esp + 0x74], 1
call ebx
push eax
push 1
push 0
lea ecx, [esp + 0x24]
call fcn.00517545
lea edx, [edi + 4]
mov byte [esp + 0x70], 2
mov eax, dword [edx]
mov dword [esp + 0x38], eax
mov ecx, dword [edx + 4]
mov dword [esp + 0x3c], ecx
mov eax, dword [edx + 8]
mov dword [esp + 0x40], eax
lea eax, [esp + 0x38]
mov ecx, dword [edx + 0xc]
lea edx, [esp + 0x48]
mov dword [esp + 0x44], ecx
push edx
push eax
mov ecx, edi
call fcn.0045f7c0
lea ecx, [esp + 0x20]
push ecx
mov ecx, esi
call fcn.005163bd
mov ebp, dword [esp + 0x2c]
mov ebx, eax
lea eax, [esp + 0x28]
lea ecx, [edi + 0x14]
neg eax
sbb eax, eax
and eax, ebp
test ecx, ecx
je 0x45f903
mov ecx, dword [ecx + 4]
mov edx, dword [esi + 4]
push eax
push ecx
push edx
call dword [sym.imp.GDI32.dll_FillRgn]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x64]
dec edx
dec ecx
dec eax
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x54], edx
push eax
lea edx, [esp + 0x14]
push ecx
push edx
mov ecx, esi
call fcn.00516a76
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
push eax
push ecx
mov ecx, esi
call fcn.00516ac2
lea edx, [esp + 0x18]
mov ecx, esi
push edx
call fcn.005163bd
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
push eax
lea edx, [esp + 0x14]
push ecx
push edx
mov ecx, esi
call fcn.00516a76
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
push eax
push ecx
mov ecx, esi
call fcn.00516ac2
lea edx, [esp + 0x20]
mov ecx, esi
push edx
call fcn.005163bd
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
push eax
push ecx
mov ecx, esi
call fcn.00516ac2
mov eax, dword [esp + 0x80]
test eax, eax
jne 0x45f9f1
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x60]
dec ecx
lea edx, [esp + 0x18]
mov dword [esp + 0x58], ecx
dec eax
push edx
mov ecx, esi
mov dword [esp + 0x64], eax
call fcn.005163bd
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
push eax
lea edx, [esp + 0x34]
push ecx
push edx
mov ecx, esi
call fcn.00516a76
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
push eax
push ecx
mov ecx, esi
call fcn.00516ac2
push ebx
mov ecx, esi
call fcn.005163bd
push 0xffffffffffffffff
lea edx, [esp + 0x3c]
push 0xfffffffffffffff6
push edx
call dword [sym.imp.USER32.dll_InflateRect]
mov ecx, dword [esp + 0x7c]
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0x28]
mov edx, dword [esi]
mov ebx, eax
mov eax, dword [edi]
lea ebp, [esp + 0x38]
push 0x25
push ebp
mov ecx, dword [eax - 8]
push ecx
push eax
mov ecx, esi
call dword [edx + 0x68]
mov eax, dword [esi]
push ebx
mov ecx, esi
call dword [eax + 0x28]
mov edi, dword [edi + 0xc]
mov esi, vtable.CGdiObject.0
mov dword [esp + 0x18], esi
lea ecx, [esp + 0x18]
mov byte [esp + 0x70], 3
call fcn.0051752f
mov dword [esp + 0x20], esi
lea ecx, [esp + 0x20]
mov byte [esp + 0x70], 4
call fcn.0051752f
mov dword [esp + 0x28], esi
lea ecx, [esp + 0x28]
mov dword [esp + 0x70], 5
call fcn.0051752f
mov ecx, dword [esp + 0x68]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x64
ret 0xc