Function at 0x490410
Capabilities:
Link many functions at runtime

Disassembly:
mov edx, dword [0x690488]
mov eax, 1
test edx, edx
je 0x490421
repz ret
push ebp
push edi
push esi
push ebx
sub esp, 0x4c
mov dword [esp], str.opengl32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
sub esp, 4
test eax, eax
mov dword [0x690488], eax
je 0x490920
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [esp + 4], str.wglCreateContext
mov dword [esp], eax
call ebx
mov dword [0x69048c], eax
mov eax, dword [0x690488]
sub esp, 8
mov dword [esp + 4], str.wglDeleteContext
mov dword [esp], eax
call ebx
mov dword [0x690490], eax
mov eax, dword [0x690488]
sub esp, 8
mov dword [esp + 4], str.wglGetProcAddress
mov dword [esp], eax
call ebx
mov dword [0x690494], eax
mov eax, dword [0x690488]
sub esp, 8
mov dword [esp + 4], str.wglGetCurrentDC
mov dword [esp], eax
call ebx
mov dword [0x690498], eax
mov eax, dword [0x690488]
sub esp, 8
mov dword [esp + 4], str.wglGetCurrentContext
mov dword [esp], eax
call ebx
mov dword [0x69049c], eax
mov eax, dword [0x690488]
sub esp, 8
mov dword [esp + 4], str.wglMakeCurrent
mov dword [esp], eax
call ebx
mov dword [0x6904a0], eax
mov eax, dword [0x690488]
sub esp, 8
mov dword [esp + 4], str.wglShareLists
mov dword [esp], eax
call ebx
mov dword [0x6904a4], eax
mov eax, dword [0x68f668]
sub esp, 8
mov dword [esp], eax
call dword [sym.imp.USER32.dll_GetDC]
xor edx, edx
mov ebx, eax
sub esp, 4
xor eax, eax
mov dword [esp + eax + 0x20], edx
add eax, 4
cmp eax, 0x20
jb 0x490513
lea esi, [esp + 0x18]
mov dword [esp + 0x18], 0x10028
mov dword [esp + 0x1c], 0x25
mov byte [esp + 0x21], 0x18
mov dword [esp], ebx
mov dword [esp + 4], esi
call dword [sym.imp.GDI32.dll_ChoosePixelFormat]
sub esp, 8
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov dword [esp], ebx
call dword [sym.imp.GDI32.dll_SetPixelFormat]
sub esp, 0xc
test eax, eax
je 0x4909e7
mov dword [esp], ebx
call dword [0x69048c]
sub esp, 4
test eax, eax
mov esi, eax
je 0x490b29
call dword [0x690498]
mov edi, eax
call dword [0x69049c]
mov dword [esp + 4], esi
mov ebp, eax
mov dword [esp], ebx
call dword [0x6904a0]
sub esp, 8
test eax, eax
je 0x490a02
mov dword [esp], str.wglGetExtensionsStringEXT
call dword [0x690494]
sub esp, 4
mov dword [0x6904b0], eax
mov dword [esp], str.wglGetExtensionsStringARB
call dword [0x690494]
sub esp, 4
mov dword [0x6904b4], eax
mov dword [esp], str.wglCreateContextAttribsARB
call dword [0x690494]
sub esp, 4
mov dword [0x6904b8], eax
mov dword [esp], str.wglSwapIntervalEXT
call dword [0x690494]
sub esp, 4
mov dword [0x6904a8], eax
mov dword [esp], str.wglGetPixelFormatAttribivARB
call dword [0x690494]
mov ebx, dword [0x6904b4]
sub esp, 4
mov dword [0x6904ac], eax
test ebx, ebx
je 0x490a39
call dword [0x690498]
mov dword [esp], eax
call ebx
sub esp, 4
test eax, eax
mov ebx, dword [0x6904b4]
je 0x490940
mov dword [esp + 4], eax
mov dword [esp], str.WGL_ARB_multisample
call fcn.0047e480
mov ebx, dword [0x6904b4]
test ebx, ebx
mov dword [0x6904c4], eax
je 0x490ac5
call dword [0x690498]
mov dword [esp], eax
call ebx
sub esp, 4
test eax, eax
mov ebx, dword [0x6904b4]
je 0x4909e0
mov dword [esp + 4], eax
mov dword [esp], str.WGL_ARB_framebuffer_sRGB
call fcn.0047e480
mov ebx, dword [0x6904b4]
test ebx, ebx
mov dword [0x6904c8], eax
je 0x490ab1
call dword [0x690498]
mov dword [esp], eax
call ebx
sub esp, 4
test eax, eax
mov ebx, dword [0x6904b4]
je 0x4909d0
mov dword [esp + 4], eax
mov dword [esp], str.WGL_EXT_framebuffer_sRGB
call fcn.0047e480
mov ebx, dword [0x6904b4]
test ebx, ebx
mov dword [0x6904cc], eax
je 0x490a9d
call dword [0x690498]
mov dword [esp], eax
call ebx
sub esp, 4
test eax, eax
mov ebx, dword [0x6904b4]
je 0x4909c0
mov dword [esp + 4], eax
mov dword [esp], str.WGL_ARB_create_context
call fcn.0047e480
mov ebx, dword [0x6904b4]
test ebx, ebx
mov dword [0x6904d4], eax
je 0x490a89
call dword [0x690498]
mov dword [esp], eax
call ebx
sub esp, 4
test eax, eax
mov ebx, dword [0x6904b4]
je 0x4909b0
mov dword [esp + 4], eax
mov dword [esp], str.WGL_ARB_create_context_profile
call fcn.0047e480
mov ebx, dword [0x6904b4]
test ebx, ebx
mov dword [0x6904d8], eax
je 0x490a75
call dword [0x690498]
mov dword [esp], eax
call ebx
sub esp, 4
test eax, eax
mov ebx, dword [0x6904b4]
je 0x4909a0
mov dword [esp + 4], eax
mov dword [esp], str.WGL_EXT_create_context_es2_profile
call fcn.0047e480
mov ebx, dword [0x6904b4]
test ebx, ebx
mov dword [0x6904dc], eax
je 0x490a61
call dword [0x690498]
mov dword [esp], eax
call ebx
sub esp, 4
test eax, eax
mov ebx, dword [0x6904b4]
je 0x490990
mov dword [esp + 4], eax
mov dword [esp], str.WGL_ARB_create_context_robustness
call fcn.0047e480
mov ebx, dword [0x6904b4]
test ebx, ebx
mov dword [0x6904e0], eax
je 0x490a4d
call dword [0x690498]
mov dword [esp], eax
call ebx
sub esp, 4
test eax, eax
mov ebx, dword [0x6904b4]
je 0x490980
mov dword [esp + 4], eax
mov dword [esp], str.WGL_ARB_create_context_no_error
call fcn.0047e480
mov ebx, dword [0x6904b4]
test ebx, ebx
mov dword [0x6904e4], eax
je 0x490b15
call dword [0x690498]
mov dword [esp], eax
call ebx
sub esp, 4
test eax, eax
mov ebx, dword [0x6904b4]
je 0x490970
mov dword [esp + 4], eax
mov dword [esp], str.WGL_EXT_swap_control
call fcn.0047e480
mov ebx, dword [0x6904b4]
test ebx, ebx
mov dword [0x6904bc], eax
je 0x490b01
call dword [0x690498]
mov dword [esp], eax
call ebx
sub esp, 4
test eax, eax
mov ebx, dword [0x6904b4]
je 0x490960
mov dword [esp + 4], eax
mov dword [esp], str.WGL_EXT_colorspace
call fcn.0047e480
mov ebx, dword [0x6904b4]
test ebx, ebx
mov dword [0x6904c0], eax
je 0x490aed
call dword [0x690498]
mov dword [esp], eax
call ebx
sub esp, 4
test eax, eax
mov ebx, dword [0x6904b4]
je 0x490954
mov dword [esp + 4], eax
mov dword [esp], str.WGL_ARB_pixel_format
call fcn.0047e480
mov ebx, dword [0x6904b4]
test ebx, ebx
mov dword [0x6904d0], eax
je 0x490ad9
call dword [0x690498]
mov dword [esp], eax
call ebx
sub esp, 4
test eax, eax
je 0x490950
mov dword [esp + 4], eax
mov dword [esp], str.WGL_ARB_context_flush_control
call fcn.0047e480
mov dword [esp + 4], ebp
mov dword [esp], edi
mov dword [0x6904e8], eax
call dword [0x6904a0]
sub esp, 8
mov dword [esp], esi
call dword [0x690490]
sub esp, 4
mov eax, 1
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], str.WGL:_Failed_to_load_opengl32.dll
mov dword [esp], 0x10008
call fcn.004870e0
xor eax, eax
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
xor eax, eax
jmp 0x49064b
xor eax, eax
jmp 0x4908f0
xor eax, eax
jmp 0x4908c1
xor eax, eax
jmp 0x490882
xor eax, eax
jmp 0x490843
xor eax, eax
jmp 0x490804
xor eax, eax
jmp 0x4907c5
xor eax, eax
jmp 0x490786
xor eax, eax
jmp 0x490747
xor eax, eax
jmp 0x490708
xor eax, eax
jmp 0x4906c9
xor eax, eax
jmp 0x49068a
mov dword [esp + 4], str.WGL:_Failed_to_set_pixel_format_for_dummy_context
mov dword [esp], 0x10008
call fcn.004870e0
xor eax, eax
jmp 0x490936
mov dword [esp + 4], str.WGL:_Failed_to_make_dummy_context_current
mov dword [esp], 0x10008
call fcn.004870e0
mov dword [esp + 4], ebp
mov dword [esp], edi
call dword [0x6904a0]
sub esp, 8
mov dword [esp], esi
call dword [0x690490]
xor eax, eax
sub esp, 4
jmp 0x490936
mov eax, dword [0x6904b0]
test eax, eax
je 0x490940
call eax
jmp 0x490627
mov eax, dword [0x6904b0]
test eax, eax
je 0x490980
call eax
jmp 0x4907e0
mov eax, dword [0x6904b0]
test eax, eax
je 0x490990
call eax
jmp 0x4907a1
mov eax, dword [0x6904b0]
test eax, eax
je 0x4909a0
call eax
jmp 0x490762
mov eax, dword [0x6904b0]
test eax, eax
je 0x4909b0
call eax
jmp 0x490723
mov eax, dword [0x6904b0]
test eax, eax
je 0x4909c0
call eax
jmp 0x4906e4
mov eax, dword [0x6904b0]
test eax, eax
je 0x4909d0
call eax
jmp 0x4906a5
mov eax, dword [0x6904b0]
test eax, eax
je 0x4909e0
call eax
jmp 0x490666
mov eax, dword [0x6904b0]
test eax, eax
je 0x490950
call eax
jmp 0x4908dc
mov eax, dword [0x6904b0]
test eax, eax
je 0x490954
call eax
jmp 0x49089d
mov eax, dword [0x6904b0]
test eax, eax
je 0x490960
call eax
jmp 0x49085e
mov eax, dword [0x6904b0]
test eax, eax
je 0x490970
call eax
jmp 0x49081f
mov dword [esp + 4], str.WGL:_Failed_to_create_dummy_context
mov dword [esp], 0x10008
call fcn.004870e0
xor eax, eax
jmp 0x490936