Function at 0x4e08d0
Capabilities:
Inspect section memory permissions

Disassembly:
sub esp, 0x6c
mov eax, dword [0x561be8]
push ebp
mov ebp, ecx
mov dword [esp + 0x6c], eax
mov eax, dword [ebp + 0x10]
push edi
xor edi, edi
cmp eax, edi
je 0x4e08fc
pop edi
xor eax, eax
pop ebp
mov ecx, dword [esp + 0x68]
call fcn.004a2d97
add esp, 0x6c
ret 0x14
push ebx
mov ebx, dword [esp + 0x7c]
cmp ebx, edi
je 0x4e090a
cmp byte [ebx], 0
jne 0x4e0916
mov dword [esp + 0x7c], str.Unnamed_Window.
mov ebx, dword [esp + 0x7c]
xor eax, eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x8c], edi
push esi
jne 0x4e0965
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push edi
call esi
sub eax, dword [esp + 0x84]
cdq
sub eax, edx
sar eax, 1
push 1
mov dword [esp + 0x14], eax
call esi
sub eax, dword [esp + 0x88]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x14], eax
jmp 0x4e096d
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], edi
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
lea eax, [esp + 0x10]
push eax
push ebx
call dword [edx + 0xc]
call fcn.004d3f00
mov esi, dword [sym.imp.USER32.dll_LoadIconA]
mov ebx, eax
cmp dword [esp + 0x18], edi
jne 0x4e099a
push 0x7f00
push ebx
call esi
mov dword [esp + 0x18], eax
cmp dword [esp + 0x1c], edi
jne 0x4e09ac
push 0x7f00
push ebx
call esi
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0x20]
cmp edx, edi
jne 0x4e09c6
push 0x7f00
push edi
call dword [sym.imp.USER32.dll_LoadCursorA]
mov edx, eax
mov dword [esp + 0x20], edx
mov ecx, dword [str.BOGYS_GAME_ENGINE]
mov eax, dword [0x549ad8]
mov esi, dword [esp + 0x8c]
mov dword [esp + 0x64], ecx
mov ecx, dword [0x549adc]
mov dword [esp + 0x68], eax
mov eax, dword [0x549ae0]
mov dword [esp + 0x6c], ecx
mov cx, word [0x549ae4]
mov dword [esp + 0x70], eax
mov al, byte [0x549ae6]
mov word [esp + 0x74], cx
mov byte [esp + 0x76], al
xor eax, eax
mov ecx, 0xc
lea edi, [esp + 0x34]
rep stosd dword es:[edi], eax
mov ecx, esi
and ecx, 0x100
cmp ecx, 0x100
mov ecx, dword [esp + 0x18]
setne al
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x50], edx
lea edx, [esp + 0x64]
mov dword [esp + 0x34], 0x30
mov dword [esp + 0x3c], 0x4e0030
dec eax
and eax, 8
mov dword [esp + 0x38], eax
xor eax, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
lea eax, [esp + 0x34]
push eax
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x60], edx
call dword [sym.imp.USER32.dll_RegisterClassExA]
xor edx, edx
mov ecx, esi
and cl, 2
cmp cl, 2
setne dl
xor ecx, ecx
mov eax, esi
and al, 8
dec edx
and edx, 0x40000000
cmp al, 8
setne cl
mov eax, esi
and al, 0x80
dec ecx
and ecx, 0x20000000
or edx, ecx
xor ecx, ecx
cmp al, 0x80
setne cl
mov eax, esi
and al, 0x10
dec ecx
and ecx, 0x10000
or edx, ecx
xor ecx, ecx
cmp al, 0x10
setne cl
mov eax, esi
and al, 4
dec ecx
and ecx, 0xc00000
or edx, ecx
xor ecx, ecx
cmp al, 4
setne cl
dec ecx
and ecx, 0x800000
or edx, ecx
xor ecx, ecx
mov eax, esi
and al, 0x40
cmp al, 0x40
setne cl
mov eax, esi
and al, 0x20
mov edi, dword [esp + 0x88]
dec ecx
and ecx, 0x20000
or edx, ecx
xor ecx, ecx
cmp al, 0x20
setne cl
mov eax, esi
and al, 1
dec ecx
and ecx, 0x80000
or edx, ecx
dec al
neg al
sbb eax, eax
and eax, 0x80000000
add eax, 0x80000000
or edx, eax
mov eax, dword [esp + 0x14]
or edx, 0x6000000
lea ecx, [eax + edi]
push ecx
mov ecx, dword [esp + 0x14]
mov esi, edx
mov edx, dword [esp + 0x88]
add edx, ecx
push edx
push eax
push ecx
lea eax, [esp + 0x34]
push eax
call dword [sym.imp.USER32.dll_SetRect]
push 0
push 0
push esi
lea ecx, [esp + 0x30]
push ecx
call dword [sym.imp.USER32.dll_AdjustWindowRectEx]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x30]
push 0
push ebx
push 0
push edx
mov edx, dword [esp + 0x3c]
sub ecx, eax
push ecx
mov ecx, dword [esp + 0x38]
sub edx, ecx
push edx
push eax
push ecx
push esi
mov esi, dword [esp + 0xa4]
push esi
lea eax, [esp + 0x8c]
push eax
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
test eax, eax
mov dword [ebp + 0x10], eax
jne 0x4e0bc8
push esi
push str.Cant_create_window__s_
push eax
call fcn.004d40b0
add esp, 0xc
pop esi
pop ebx
pop edi
xor eax, eax
pop ebp
mov ecx, dword [esp + 0x68]
call fcn.004a2d97
add esp, 0x6c
ret 0x14
mov ecx, dword [esp + 0x20]
push ecx
call dword [sym.imp.USER32.dll_SetCursor]
mov ebx, dword [esp + 0x84]
mov edx, dword [ebp + 0x10]
push edi
push ebx
push edx
call fcn.004e9880
add esp, 0xc
test eax, eax
mov dword [ebp + 0xc], eax
jne 0x4e0c13
push esi
push str.Cant_create_painter_of_window__s_
push eax
call fcn.004d40b0
add esp, 0xc
pop esi
pop ebx
pop edi
xor eax, eax
pop ebp
mov ecx, dword [esp + 0x68]
call fcn.004a2d97
add esp, 0x6c
ret 0x14
mov ecx, dword [ebp + 4]
push ebp
call fcn.004cdd70
mov eax, dword [ebp + 4]
mov dword [eax + 0x34], ebx
mov ecx, dword [ebp + 4]
mov dword [ecx + 0x38], edi
push esi
mov ecx, ebp
call fcn.004cd750
mov dword [ebp + 0x18], ebp
call dword [sym.imp.USER32.dll_GetCursor]
mov edx, dword [ebp + 0x10]
push ebp
push edx
mov ecx, 0x56a3f8
mov dword [ebp + 0x5c], eax
call fcn.004e07b0
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x78]
pop esi
pop ebx
pop edi
pop ebp
call fcn.004a2d97
add esp, 0x6c
ret 0x14