Function at 0x4c70e0
Capabilities:
Inspect section memory permissions

Disassembly:
sub esp, 0x178
mov eax, dword [0x5364d0]
xor eax, esp
mov dword [esp + 0x170], eax
push ebx
push ebp
push esi
push 0x74
xor ebx, ebx
lea eax, [esp + 0x104]
push ebx
push eax
mov esi, ecx
call fcn.004e8fe0
or dword [esp + 0x110], 0x20000000
lea eax, [esp + 0x126]
mov edx, esi
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x100], 0x74
lea ebp, [ebx + 0x20]
sub edx, ecx
lea ecx, [ebp + 0x7fffffde]
test ecx, ecx
je 0x4c7154
movzx ecx, word [edx + eax]
cmp cx, bx
je 0x4c7154
mov word [eax], cx
add eax, 2
sub ebp, 1
jne 0x4c7134
jmp 0x4c7158
cmp ebp, ebx
jne 0x4c715b
sub eax, 2
mov ecx, dword [esi + 0x40]
mov ebp, dword [sym.imp.OLEAUT32.dll_OleLoadPictureFile]
xor edx, edx
mov word [eax], dx
mov eax, dword [esp + 0x104]
mov dx, word [esi + 0x44]
or eax, 0x80000000
lea ecx, [ecx + ecx*4]
add ecx, ecx
or eax, 0x400000
add ecx, ecx
or eax, 0x8000000
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x104], eax
mov al, byte [esi + 0x48]
lea ecx, [esp + 0xc]
push ecx
mov byte [esp + 0x11c], al
mov eax, dword [esi + 0x4c]
push ebx
push eax
mov word [esp + 0x168], dx
mov dword [edi + 0x430], eax
mov dword [esp + 0x18], ebx
call ebp
mov eax, dword [esi + 0x50]
mov edx, dword [esp + 0xc]
or dword [esp + 0x104], 0x40000000
lea ecx, [esp + 0xc]
push ecx
push ebx
push eax
mov dword [esp + 0x120], edx
mov dword [edi + 0x434], eax
mov dword [esp + 0x18], ebx
call ebp
mov edx, dword [esp + 0xc]
mov eax, dword [edi + 4]
mov ebp, dword [sym.imp.USER32.dll_SendMessageW]
push edx
push ebx
push 0x443
push eax
call ebp
movzx ecx, word [esi + 0x54]
mov edx, dword [edi + 4]
push ecx
push 1
push 0xd3
push edx
call ebp
mov eax, dword [esi + 0x54]
mov edx, dword [edi + 4]
mov dword [edi + 0x44c], eax
movzx ecx, word [esi + 0x58]
shl ecx, 0x10
push ecx
push 2
push 0xd3
push edx
call ebp
mov eax, dword [esi + 0x58]
mov dword [edi + 0x450], eax
mov ecx, dword [esi + 0x5c]
mov dword [edi + 0x448], ecx
mov eax, dword [esi + 0x40]
lea edx, [eax + eax*4]
add edx, edx
push edx
lea eax, [esp + 0x10]
push eax
mov dword [esp + 0x14], ebx
call fcn.004c8290
test eax, eax
jne 0x4c7287
push 0x11
call dword [sym.imp.GDI32.dll_GetStockObject]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x10], eax
cmp ecx, ebx
je 0x4c7283
cmp ecx, eax
je 0x4c7283
push ecx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [edi + 4]
push eax
mov dword [esp + 0x20], eax
call dword [sym.imp.USER32.dll_GetDC]
mov ecx, dword [esp + 0xc]
mov ebx, eax
push ecx
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
lea edx, [esp + 0xc4]
push edx
push ebx
mov dword [esp + 0x18], eax
call dword [sym.imp.GDI32.dll_GetTextMetricsW]
push 0x58
push ebx
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
push eax
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
mov edx, dword [edi + 0x448]
imul edx, dword [esp + 0xd8]
mov ecx, dword [esp + 0x14]
push ecx
push 0x5a0
push edx
call dword [sym.imp.KERNEL32.dll_MulDiv]
cmp eax, 0xffffffff
je 0x4c737f
mov ecx, 0x20
mov word [esp + 0x3a], cx
mov dword [esp + 0x20], 0x9c
mov dword [esp + 0x24], 0x10
xor ecx, ecx
mov edx, eax
mov dword [esp + ecx*4 + 0x3c], edx
inc ecx
add edx, eax
cmp ecx, 0x20
jl 0x4c7315
mov eax, dword [edi + 4]
lea edx, [esp + 0x14]
push edx
push 0
push 0x437
push eax
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0xffffffff
call ebp
mov edx, dword [edi + 4]
lea ecx, [esp + 0x20]
push ecx
push 0
push 0x447
push edx
mov dword [esp + 0x30], 0x9c
call ebp
mov ecx, dword [edi + 4]
lea eax, [esp + 0x14]
push eax
push 0
push 0x437
push ecx
mov dword [esp + 0x24], 0xffffffff
mov dword [esp + 0x28], 0
call ebp
mov edx, dword [esp + 0x1c]
push ebx
push edx
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [esp + 0xc]
test eax, eax
je 0x4c739a
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esi + 0x64]
mov ecx, dword [edi + 4]
push eax
push 0
push 0x435
push ecx
call ebp
mov edx, dword [esi + 0x64]
mov ecx, dword [edi + 4]
xor eax, eax
mov dword [edi + 0x458], edx
cmp dword [esi + 0x68], eax
push 0
setne al
push eax
push 0x45b
push ecx
call ebp
cmp dword [esi + 0x6c], 0
setne al
xor edx, edx
test al, al
sete dl
mov byte [edi + 0x42c], al
mov eax, dword [edi + 4]
push edx
push 0
push 0x448
push eax
call ebp
mov ecx, dword [esi + 0x60]
mov edx, dword [edi + 4]
push 0
push ecx
push 0x452
push edx
call ebp
cmp dword [esp + 0x104], 0
mov eax, dword [esi + 0x60]
mov dword [edi + 0x454], eax
je 0x4c7425
mov edx, dword [edi + 4]
lea ecx, [esp + 0x100]
push ecx
push 0
push 0x444
push edx
call ebp
lea ecx, [edi + 0x22c]
call fcn.004c74d0
cmp eax, 1
jne 0x4c7444
mov eax, dword [edi + 4]
push 0
push 0
push 0xb9
push eax
call ebp
mov ecx, dword [edi + 4]
push 0
push 0
push 0x478
push ecx
call ebp
mov ecx, dword [esp + 0x17c]
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004e3edb
add esp, 0x178
ret