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

Disassembly:
push 0xffffffffffffffff
push 0x6e5f60
mov eax, dword fs:[0]
push eax
sub esp, 0x64
mov eax, dword [0x831704]
xor eax, esp
mov dword [esp + 0x60], eax
push esi
mov eax, dword [0x831704]
xor eax, esp
push eax
lea eax, [esp + 0x6c]
mov dword fs:[0], eax
mov esi, ecx
cmp dword [esi + 0x28], 0
jne 0x4c79da
mov ecx, dword [esi + 8]
push ecx
call fcn.004c7d30
add esp, 4
cmp eax, 0xffffffff
jne 0x4c7865
lea eax, [ecx - 0x64]
cmp eax, 0xa
ja case.0x4c77df.101
movzx eax, byte [eax + 0x4c7a10]
jmp dword [eax*4 + 0x4c79fc]
push 5
call dword [sym.imp.GDI32.dll_GetStockObject]
jmp 0x4c786f
mov eax, dword [esi + 0x10]
test eax, eax
jne 0x4c7800
push eax
call dword [sym.imp.GDI32.dll_CreatePatternBrush]
jmp 0x4c786f
mov eax, dword [eax + 0x14]
push eax
call dword [sym.imp.GDI32.dll_CreatePatternBrush]
jmp 0x4c786f
lea ecx, [esi + 0xc]
call fcn.00487970
push dword [eax + 8]
call dword [sym.imp.GDI32.dll_CreatePatternBrush]
jmp 0x4c786f
cmp dword [0x82e960], 0
je case.0x4c77df.100
push str.unknown_brush_style
push str.Assert_failure
push str.wxBrushRefData::GetHBRUSH
push 0xc2
push str....._srcmsw_brush.cpp
call fcn.005c7220
add esp, 0x14
cmp byte [0x87c8e0], 0
je case.0x4c77df.100
mov byte [0x87c8e0], 0
int3
push dword [esi + 0x1c]
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
jmp 0x4c786f
push dword [esi + 0x1c]
push eax
call dword [sym.imp.GDI32.dll_CreateHatchBrush]
mov dword [esi + 0x28], eax
test eax, eax
jne 0x4c79da
sub esp, 0x20
mov ecx, esp
push 0x721844
call fcn.00418040
push 6
call fcn.00439d10
add esp, 0x24
test al, al
je 0x4c79da
call fcn.005c92f0
mov dword [esp + 8], eax
mov dword [esp + 0x74], 0
call fcn.005c92f0
mov dword [esp + 0xc], eax
push 0xffffffffffffffff
lea eax, [esp + 0x14]
mov byte [esp + 0x78], 1
push str._s__d_:__s_failed_with_error_0x_08lx___s_.
push eax
call fcn.00439000
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
push 0
mov dword [esp + 0x84], 2
mov dword [esp + 0x30], 6
mov dword [esp + 0x38], str....._srcmsw_brush.cpp
mov dword [esp + 0x40], str.wxBrushRefData::GetHBRUSH
mov dword [esp + 0x3c], 0xd3
mov dword [esp + 0x44], 0x721844
call dword [sym.imp.MSVCR120.dll__time64]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
call sub.KERNEL32.dll_GetCurrentThreadId
mov dword [esp + 0x50], eax
xor eax, eax
mov dword [esp + 0x54], 0
mov dword [esp + 0x6c], 7
mov dword [esp + 0x68], 0
mov word [esp + 0x58], ax
mov dword [esp + 0x70], eax
mov byte [esp + 0x84], 3
call sub.KERNEL32.dll_GetLastError
push eax
call fcn.005e5210
add esp, 0x14
push eax
call sub.KERNEL32.dll_GetLastError
push eax
push str.CreateXXXBrush__
push 0xd3
push str....._srcmsw_brush.cpp
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x38]
call fcn.00479740
push dword [esp + 0x60]
mov byte [esp + 0x78], 2
call dword [sym.imp.MSVCR120.dll_free]
add esp, 4
cmp dword [esp + 0x5c], 8
jb 0x4c79a9
push dword [esp + 0x48]
call sub.MSVCR120.dll_void___cdecl_operator_delete_void__
add esp, 4
xor eax, eax
mov dword [esp + 0x5c], 7
lea ecx, [esp + 0x28]
mov dword [esp + 0x58], 0
mov word [esp + 0x48], ax
call fcn.00439c40
lea ecx, [esp + 8]
mov dword [esp + 0x74], 0xffffffff
call fcn.00420020
mov eax, dword [esi + 0x28]
mov ecx, dword [esp + 0x6c]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.006d1ba7
add esp, 0x70
ret
push esi
mov esi, ecx
mov eax, dword [esi]
mov eax, dword [eax + 0x10]
call eax
test al, al
je 0x4c7a37
mov ecx, dword [esi + 4]
pop esi
jmp 0x4c7780
cmp dword [0x82e960], 0
je 0x4c7a72
push str.invalid_brush
push str.IsOk__
push str.wxBrush::GetResourceHandle
push 0x12c
push str....._srcmsw_brush.cpp
call fcn.005c7220
add esp, 0x14
cmp byte [0x87c8e0], 0
je 0x4c7a72
mov byte [0x87c8e0], 0
int3
xor eax, eax
pop esi
ret