Function at 0x14004d430
Capabilities:
Link many functions at runtime

Disassembly:
push rsi
sub rsp, 0x60
mov rax, qword [0x140137010]
xor rax, rsp
mov qword [rsp + 0x48], rax
cmp qword [0x140141310], 0
je 0x14004d467
mov eax, 1
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.1400b5770
add rsp, 0x60
pop rsi
ret
lea rcx, str.opengl32.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [0x140141310], rax
test rax, rax
jne 0x14004d4a6
lea rdx, str.WGL:_Failed_to_load_opengl32.dll
mov ecx, 0x10008
call fcn.14004ea00
xor eax, eax
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.1400b5770
add rsp, 0x60
pop rsi
ret
lea rdx, str.wglCreateContext
mov qword [rsp + 0x70], rbx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x140141310]
lea rdx, str.wglDeleteContext
mov qword [0x140141318], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x140141310]
lea rdx, [0x1400fd8a0]
mov qword [0x140141320], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x140141310]
lea rdx, [0x1400fd8b8]
mov qword [0x140141328], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x140141310]
lea rdx, str.wglGetCurrentContext
mov qword [0x140141330], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x140141310]
lea rdx, str.wglMakeCurrent
mov qword [0x140141338], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x140141310]
lea rdx, str.wglShareLists
mov qword [0x140141340], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x140140478]
mov qword [0x140141348], rax
call qword [sym.imp.USER32.dll_GetDC]
xorps xmm0, xmm0
lea rdx, [rsp + 0x20]
movups xmmword [rsp + 0x20], xmm0
mov rbx, rax
mov dword [rsp + 0x20], 0x10028
xor eax, eax
mov dword [rsp + 0x24], 0x25
mov rcx, rbx
mov qword [rsp + 0x40], rax
movups xmmword [rsp + 0x30], xmm0
mov word [rsp + 0x28], 0x1800
lea esi, [rax + 1]
call qword [sym.imp.GDI32.dll_ChoosePixelFormat]
lea r8, [rsp + 0x20]
mov rcx, rbx
mov edx, eax
call qword [sym.imp.GDI32.dll_SetPixelFormat]
test eax, eax
jne 0x14004d5dc
lea rdx, str.WGL:_Failed_to_set_pixel_format_for_dummy_context
mov ecx, 0x10008
call fcn.14004ea00
xor eax, eax
jmp 0x14004dda1
mov rcx, rbx
mov qword [rsp + 0x78], rbp
call qword [0x140141318]
mov rbp, rax
test rax, rax
jne 0x14004d60a
lea rdx, str.WGL:_Failed_to_create_dummy_context
mov ecx, 0x10008
call fcn.14004ea00
xor eax, eax
jmp 0x14004dd9c
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x50], r15
call qword [0x140141330]
mov r14, rax
call qword [0x140141338]
mov rdx, rbp
mov rcx, rbx
mov r15, rax
call qword [0x140141340]
test eax, eax
jne 0x14004d663
lea rdx, str.WGL:_Failed_to_make_dummy_context_current
mov ecx, 0x10008
call fcn.14004ea00
mov rdx, r15
mov rcx, r14
call qword [0x140141340]
mov rcx, rbp
call qword [0x140141320]
xor eax, eax
jmp 0x14004dd92
lea rcx, str.wglGetExtensionsStringEXT
mov qword [rsp + 0x80], rdi
call qword [0x140141328]
lea rcx, str.wglGetExtensionsStringARB
mov qword [0x140141360], rax
call qword [0x140141328]
lea rcx, str.wglCreateContextAttribsARB
mov qword [0x140141368], rax
call qword [0x140141328]
lea rcx, str.wglSwapIntervalEXT
mov qword [0x140141370], rax
call qword [0x140141328]
lea rcx, str.wglGetPixelFormatAttribivARB
mov qword [0x140141350], rax
call qword [0x140141328]
cmp qword [0x140141368], 0
mov qword [0x140141358], rax
je 0x14004d6ea
call qword [0x140141330]
mov rcx, rax
call qword [0x140141368]
jmp 0x14004d6f8
mov rax, qword [0x140141360]
test rax, rax
je 0x14004d75d
call rax
mov rdi, rax
test rax, rax
je 0x14004d756
lea rdx, str.WGL_ARB_multisample
mov rcx, rax
call qword [sym.imp.VCRUNTIME140.dll_strstr]
xor ebx, ebx
test rax, rax
je 0x14004d740
lea rcx, [rax + 0x13]
cmp rax, rdi
je 0x14004d726
cmp byte [rax - 1], 0x20
jne 0x14004d72b
test byte [rcx], 0xdf
je 0x14004d74b
lea rdx, str.WGL_ARB_multisample
mov rdi, rcx
call qword [sym.imp.VCRUNTIME140.dll_strstr]
test rax, rax
jne 0x14004d717
mov rax, qword [0x140141360]
mov ecx, ebx
jmp 0x14004d761
mov rax, qword [0x140141360]
mov ecx, esi
jmp 0x14004d761
mov rax, qword [0x140141360]
xor ebx, ebx
mov ecx, ebx
cmp qword [0x140141368], 0
mov dword [0x140141380], ecx
je 0x14004d782
call qword [0x140141330]
mov rcx, rax
call qword [0x140141368]
jmp 0x14004d789
test rax, rax
je 0x14004d7ec
call rax
mov rdi, rax
test rax, rax
je 0x14004d7e5
lea rdx, str.WGL_ARB_framebuffer_sRGB
mov rcx, rax
call qword [sym.imp.VCRUNTIME140.dll_strstr]
test rax, rax
je 0x14004d7cf
lea rcx, [rax + 0x18]
cmp rax, rdi
je 0x14004d7b5
cmp byte [rax - 1], 0x20
jne 0x14004d7ba
test byte [rcx], 0xdf
je 0x14004d7da
lea rdx, str.WGL_ARB_framebuffer_sRGB
mov rdi, rcx
call qword [sym.imp.VCRUNTIME140.dll_strstr]
test rax, rax
jne 0x14004d7a6
mov rax, qword [0x140141360]
mov ecx, ebx
jmp 0x14004d7ee
mov rax, qword [0x140141360]
mov ecx, esi
jmp 0x14004d7ee
mov rax, qword [0x140141360]
mov ecx, ebx
cmp qword [0x140141368], 0
mov dword [0x140141384], ecx
je 0x14004d80f
call qword [0x140141330]
mov rcx, rax
call qword [0x140141368]
jmp 0x14004d816
test rax, rax
je 0x14004d879
call rax
mov rdi, rax
test rax, rax
je 0x14004d872
lea rdx, str.WGL_EXT_framebuffer_sRGB
mov rcx, rax
call qword [sym.imp.VCRUNTIME140.dll_strstr]
test rax, rax
je 0x14004d85c
lea rcx, [rax + 0x18]
cmp rax, rdi
je 0x14004d842
cmp byte [rax - 1], 0x20
jne 0x14004d847
test byte [rcx], 0xdf
je 0x14004d867
lea rdx, str.WGL_EXT_framebuffer_sRGB
mov rdi, rcx
call qword [sym.imp.VCRUNTIME140.dll_strstr]
test rax, rax
jne 0x14004d833
mov rax, qword [0x140141360]
mov ecx, ebx
jmp 0x14004d87b
mov rax, qword [0x140141360]
mov ecx, esi
jmp 0x14004d87b
mov rax, qword [0x140141360]
mov ecx, ebx
cmp qword [0x140141368], 0
mov dword [0x140141388], ecx
je 0x14004d89c
call qword [0x140141330]
mov rcx, rax
call qword [0x140141368]
jmp 0x14004d8a3
test rax, rax
je 0x14004d906
call rax
mov rdi, rax
test rax, rax
je 0x14004d8ff
lea rdx, str.WGL_ARB_create_context
mov rcx, rax
call qword [sym.imp.VCRUNTIME140.dll_strstr]
test rax, rax
je 0x14004d8e9
lea rcx, [rax + 0x16]
cmp rax, rdi
je 0x14004d8cf
cmp byte [rax - 1], 0x20
jne 0x14004d8d4
test byte [rcx], 0xdf
je 0x14004d8f4
lea rdx, str.WGL_ARB_create_context
mov rdi, rcx
call qword [sym.imp.VCRUNTIME140.dll_strstr]
test rax, rax
jne 0x14004d8c0
mov rax, qword [0x140141360]
mov ecx, ebx
jmp 0x14004d908
mov rax, qword [0x140141360]
mov ecx, esi
jmp 0x14004d908
mov rax, qword [0x140141360]
mov ecx, ebx
cmp qword [0x140141368], 0
mov dword [0x140141390], ecx
je 0x14004d929
call qword [0x140141330]
mov rcx, rax
call qword [0x140141368]
jmp 0x14004d930
test rax, rax
je 0x14004d996
call rax
mov rdi, rax
test rax, rax
je 0x14004d98f
lea rdx, str.WGL_ARB_create_context_profile
mov rcx, rax
call qword [sym.imp.VCRUNTIME140.dll_strstr]
test rax, rax
je 0x14004d979
nop dword [rax]
lea rcx, [rax + 0x1e]
cmp rax, rdi
je 0x14004d95f
cmp byte [rax - 1], 0x20
jne 0x14004d964
test byte [rcx], 0xdf
je 0x14004d984
lea rdx, str.WGL_ARB_create_context_profile
mov rdi, rcx
call qword [sym.imp.VCRUNTIME140.dll_strstr]
test rax, rax
jne 0x14004d950
mov rax, qword [0x140141360]
mov ecx, ebx
jmp 0x14004d998
mov rax, qword [0x140141360]
mov ecx, esi
jmp 0x14004d998
mov rax, qword [0x140141360]
mov ecx, ebx
cmp qword [0x140141368], 0
mov dword [0x140141394], ecx
je 0x14004d9b9
call qword [0x140141330]
mov rcx, rax
call qword [0x140141368]
jmp 0x14004d9c0
test rax, rax
je 0x14004da26
call rax
mov rdi, rax
test rax, rax
je 0x14004da1f
lea rdx, str.WGL_EXT_create_context_es2_profile
mov rcx, rax
call qword [sym.imp.VCRUNTIME140.dll_strstr]
test rax, rax
je 0x14004da09
nop dword [rax]
lea rcx, [rax + 0x22]
cmp rax, rdi
je 0x14004d9ef
cmp byte [rax - 1], 0x20
jne 0x14004d9f4
test byte [rcx], 0xdf
je 0x14004da14
lea rdx, str.WGL_EXT_create_context_es2_profile
mov rdi, rcx
call qword [sym.imp.VCRUNTIME140.dll_strstr]
test rax, rax
jne 0x14004d9e0
mov rax, qword [0x140141360]
mov ecx, ebx
jmp 0x14004da28
mov rax, qword [0x140141360]
mov ecx, esi
jmp 0x14004da28
mov rax, qword [0x140141360]
mov ecx, ebx
cmp qword [0x140141368], 0
mov dword [0x140141398], ecx
je 0x14004da49
call qword [0x140141330]
mov rcx, rax
call qword [0x140141368]
jmp 0x14004da50
test rax, rax
je 0x14004dab6
call rax
mov rdi, rax
test rax, rax
je 0x14004daaf
lea rdx, str.WGL_ARB_create_context_robustness
mov rcx, rax
call qword [sym.imp.VCRUNTIME140.dll_strstr]
test rax, rax
je 0x14004da99
nop dword [rax]
lea rcx, [rax + 0x21]
cmp rax, rdi
je 0x14004da7f
cmp byte [rax - 1], 0x20
jne 0x14004da84
test byte [rcx], 0xdf
je 0x14004daa4
lea rdx, str.WGL_ARB_create_context_robustness
mov rdi, rcx
call qword [sym.imp.VCRUNTIME140.dll_strstr]
test rax, rax
jne 0x14004da70
mov rax, qword [0x140141360]
mov ecx, ebx
jmp 0x14004dab8
mov rax, qword [0x140141360]
mov ecx, esi
jmp 0x14004dab8
mov rax, qword [0x140141360]
mov ecx, ebx
cmp qword [0x140141368], 0
mov dword [0x14014139c], ecx
je 0x14004dad9
call qword [0x140141330]
mov rcx, rax
call qword [0x140141368]
jmp 0x14004dae0
test rax, rax
je 0x14004db46
call rax
mov rdi, rax
test rax, rax
je 0x14004db3f
lea rdx, str.WGL_ARB_create_context_no_error
mov rcx, rax
call qword [sym.imp.VCRUNTIME140.dll_strstr]
test rax, rax
je 0x14004db29
nop dword [rax]
lea rcx, [rax + 0x1f]
cmp rax, rdi
je 0x14004db0f
cmp byte [rax - 1], 0x20
jne 0x14004db14
test byte [rcx], 0xdf
je 0x14004db34
lea rdx, str.WGL_ARB_create_context_no_error
mov rdi, rcx
call qword [sym.imp.VCRUNTIME140.dll_strstr]
test rax, rax
jne 0x14004db00
mov rax, qword [0x140141360]
mov ecx, ebx
jmp 0x14004db48
mov rax, qword [0x140141360]
mov ecx, esi
jmp 0x14004db48
mov rax, qword [0x140141360]
mov ecx, ebx
cmp qword [0x140141368], 0
mov dword [0x1401413a0], ecx
je 0x14004db69
call qword [0x140141330]
mov rcx, rax
call qword [0x140141368]
jmp 0x14004db70
test rax, rax
je 0x14004dbd6
call rax
mov rdi, rax
test rax, rax
je 0x14004dbcf
lea rdx, str.WGL_EXT_swap_control
mov rcx, rax
call qword [sym.imp.VCRUNTIME140.dll_strstr]
test rax, rax
je 0x14004dbb9
nop dword [rax]
lea rcx, [rax + 0x14]
cmp rax, rdi
je 0x14004db9f
cmp byte [rax - 1], 0x20
jne 0x14004dba4
test byte [rcx], 0xdf
je 0x14004dbc4
lea rdx, str.WGL_EXT_swap_control
mov rdi, rcx
call qword [sym.imp.VCRUNTIME140.dll_strstr]
test rax, rax
jne 0x14004db90
mov rax, qword [0x140141360]
mov ecx, ebx
jmp 0x14004dbd8
mov rax, qword [0x140141360]
mov ecx, esi
jmp 0x14004dbd8
mov rax, qword [0x140141360]
mov ecx, ebx
cmp qword [0x140141368], 0
mov dword [0x140141378], ecx
je 0x14004dbf9
call qword [0x140141330]
mov rcx, rax
call qword [0x140141368]
jmp 0x14004dc00
test rax, rax
je 0x14004dc66
call rax
mov rdi, rax
test rax, rax
je 0x14004dc5f
lea rdx, str.WGL_EXT_colorspace
mov rcx, rax
call qword [sym.imp.VCRUNTIME140.dll_strstr]
test rax, rax
je 0x14004dc49
nop dword [rax]
lea rcx, [rax + 0x12]
cmp rax, rdi
je 0x14004dc2f
cmp byte [rax - 1], 0x20
jne 0x14004dc34
test byte [rcx], 0xdf
je 0x14004dc54
lea rdx, str.WGL_EXT_colorspace
mov rdi, rcx
call qword [sym.imp.VCRUNTIME140.dll_strstr]
test rax, rax
jne 0x14004dc20
mov rax, qword [0x140141360]
mov ecx, ebx
jmp 0x14004dc68
mov rax, qword [0x140141360]
mov ecx, esi
jmp 0x14004dc68
mov rax, qword [0x140141360]
mov ecx, ebx
cmp qword [0x140141368], 0
mov dword [0x14014137c], ecx
je 0x14004dc89
call qword [0x140141330]
mov rcx, rax
call qword [0x140141368]
jmp 0x14004dc90
test rax, rax
je 0x14004dcf6
call rax
mov rdi, rax
test rax, rax
je 0x14004dcef
lea rdx, str.WGL_ARB_pixel_format
mov rcx, rax
call qword [sym.imp.VCRUNTIME140.dll_strstr]
test rax, rax
je 0x14004dcd9
nop dword [rax]
lea rcx, [rax + 0x14]
cmp rax, rdi
je 0x14004dcbf
cmp byte [rax - 1], 0x20
jne 0x14004dcc4
test byte [rcx], 0xdf
je 0x14004dce4
lea rdx, str.WGL_ARB_pixel_format
mov rdi, rcx
call qword [sym.imp.VCRUNTIME140.dll_strstr]
test rax, rax
jne 0x14004dcb0
mov rax, qword [0x140141360]
mov ecx, ebx
jmp 0x14004dcf8
mov rax, qword [0x140141360]
mov ecx, esi
jmp 0x14004dcf8
mov rax, qword [0x140141360]
mov ecx, ebx
cmp qword [0x140141368], 0
mov dword [0x14014138c], ecx
je 0x14004dd19
call qword [0x140141330]
mov rcx, rax
call qword [0x140141368]
jmp 0x14004dd20
test rax, rax
je 0x14004dd6d
call rax
mov rdi, rax
test rax, rax
je 0x14004dd6d
lea rdx, str.WGL_ARB_context_flush_control
mov rcx, rax
call qword [sym.imp.VCRUNTIME140.dll_strstr]
test rax, rax
je 0x14004dd6d
nop dword [rax]
lea rcx, [rax + 0x1d]
cmp rax, rdi
je 0x14004dd4f
cmp byte [rax - 1], 0x20
jne 0x14004dd54
test byte [rcx], 0xdf
je 0x14004dd6b
lea rdx, str.WGL_ARB_context_flush_control
mov rdi, rcx
call qword [sym.imp.VCRUNTIME140.dll_strstr]
test rax, rax
jne 0x14004dd40
jmp 0x14004dd6d
mov ebx, esi
mov rdx, r15
mov dword [0x1401413a4], ebx
mov rcx, r14
call qword [0x140141340]
mov rcx, rbp
call qword [0x140141320]
mov rdi, qword [rsp + 0x80]
mov eax, esi
mov r14, qword [rsp + 0x58]
mov r15, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.1400b5770
add rsp, 0x60
pop rsi
ret