Function at 0x402b49
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc8
push ebx
push edi
mov edi, dword [ebp + 0x18]
mov dword [0x4050e8], edi
push 0
call sub.KERNEL32.DLL_GetModuleHandleA
mov dword [0x4050e0], eax
mov dword [ebp - 0x28], 0x23
lea edi, [0x402e92]
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov edi, dword [0x4050e0]
mov dword [ebp - 0x18], edi
push 0x7f05
push 0
call sub.USER32.DLL_LoadIconA
mov dword [ebp - 0x14], eax
push 0x7f00
push 0
call sub.USER32.DLL_LoadCursorA
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0
lea edi, str.OpenGL
mov dword [ebp - 4], edi
lea edi, [ebp - 0x28]
push edi
call sub.USER32.DLL_RegisterClassA
or ax, ax
jne 0x402bf0
push 0x30
push str.ERROR
push str.Failed_To_Register_The_Window_Class.
push 0
call sub.USER32.DLL_MessageBoxA
mov eax, 0
jmp 0x402e8e
cmp dword [0x4050e8], 0
je 0x402c8c
push 0x94
push 0
lea edi, [ebp - 0xc8]
push edi
call sub.CRTDLL.DLL_memset
add esp, 0xc
mov word [ebp - 0xa4], 0x94
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x5c], edi
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x58], edi
mov edi, dword [ebp + 0x14]
mov dword [ebp - 0x60], edi
mov dword [ebp - 0xa0], 0x1c0000
push 4
lea edi, [ebp - 0xc8]
push edi
call sub.USER32.DLL_ChangeDisplaySettingsA
cmp eax, 0
je 0x402c8c
push 0x34
push str.NeHe_GL
push str.The_Requested_Fullscreen_Mode_Is_Not_Supported_By_nYour_Video_Card._Use_Windowed_Mode_Instead_
push 0
call sub.USER32.DLL_MessageBoxA
cmp eax, 6
jne 0x402c6f
mov dword [0x4050e8], 0
jmp 0x402c8c
push 0x10
push str.ERROR
push str.Program_Will_Now_Close.
push 0
call sub.USER32.DLL_MessageBoxA
mov eax, 0
jmp 0x402e8e
cmp dword [0x4050e8], 0
je 0x402cac
mov dword [ebp - 0x30], 0x40000
mov dword [ebp - 0x34], 0x86000000
push 0
call sub.USER32.DLL_ShowCursor
jmp 0x402cba
mov dword [ebp - 0x30], 0x40100
mov dword [ebp - 0x34], 0x6cf0000
push 0
push dword [0x4050e0]
push 0
push 0
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push 0
push 0
push dword [ebp - 0x34]
push dword [ebp + 8]
push str.OpenGL
push dword [ebp - 0x30]
call sub.USER32.DLL_CreateWindowExA
mov dword [0x4050dc], eax
cmp eax, 0
jne 0x402d0f
call fcn.00402a29
push 0x30
push str.ERROR
push str.Window_Creation_Error.
push 0
call sub.USER32.DLL_MessageBoxA
mov eax, 0
jmp 0x402e8e
mov ebx, dword [ebp + 0x14]
mov byte [0x4050f9], bl
push dword [0x4050dc]
call sub.USER32.DLL_GetDC
mov dword [0x4050d4], eax
cmp eax, 0
jne 0x402d4f
call fcn.00402a29
push 0x30
push str.ERROR
push str.Cant_Create_A_GL_Device_Context.
push 0
call sub.USER32.DLL_MessageBoxA
mov eax, 0
jmp 0x402e8e
push 0x4050f0
push dword [0x4050d4]
call sub.GDI32.DLL_ChoosePixelFormat
mov dword [ebp - 0x2c], eax
cmp eax, 0
jne 0x402d89
call fcn.00402a29
push 0x30
push str.ERROR
push str.Cant_Find_A_Suitable_PixelFormat.
push 0
call sub.USER32.DLL_MessageBoxA
mov eax, 0
jmp 0x402e8e
push 0x4050f0
push dword [ebp - 0x2c]
push dword [0x4050d4]
call sub.GDI32.DLL_SetPixelFormat
cmp eax, 0
jne 0x402dc3
call fcn.00402a29
push 0x30
push str.ERROR
push str.Cant_Set_The_PixelFormat.
push 0
call sub.USER32.DLL_MessageBoxA
mov eax, 0
jmp 0x402e8e
push dword [0x4050d4]
call sub.opengl32.dll_wglCreateContext
mov dword [0x4050d8], eax
cmp eax, 0
jne 0x402dfa
call fcn.00402a29
push 0x30
push str.ERROR
push str.Cant_Create_A_GL_Rendering_Context.
push 0
call sub.USER32.DLL_MessageBoxA
mov eax, 0
jmp 0x402e8e
push dword [0x4050d8]
push dword [0x4050d4]
call sub.opengl32.dll_wglMakeCurrent
cmp eax, 0
jne 0x402e2f
call fcn.00402a29
push 0x30
push str.ERROR
push str.Cant_Activate_The_GL_Rendering_Context.
push 0
call sub.USER32.DLL_MessageBoxA
mov eax, 0
jmp 0x402e8e
push 5
push dword [0x4050dc]
call sub.USER32.DLL_ShowWindow
push dword [0x4050dc]
call sub.USER32.DLL_SetForegroundWindow
push dword [0x4050dc]
call sub.USER32.DLL_SetFocus
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.004029a7
add esp, 8
call fcn.0040259d
cmp eax, 0
jne 0x402e89
call fcn.00402a29
push 0x30
push str.ERROR
push str.Initialization_Failed.
push 0
call sub.USER32.DLL_MessageBoxA
mov eax, 0
jmp 0x402e8e
mov eax, 1
pop edi
pop ebx
leave
ret