Function at 0x14025f220
Capabilities:
Link many functions at runtime

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
mov rbx, qword [0x1405d1040]
lea rax, str.EGL.dll
cmp qword [rbx + 0x2620], 0
mov qword [rsp + 0x28], rax
mov eax, 1
mov qword [rsp + 0x30], 0
je 0x14025f260
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rbp, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
lea rdi, [rsp + 0x20]
lea rsi, str.libEGL.dll
jmp 0x14025f289
mov rsi, qword [rdi + 8]
add rdi, 8
test rsi, rsi
je 0x14025f5e0
mov rcx, rsi
call rbp
mov qword [rbx + 0x2620], rax
test rax, rax
je 0x14025f278
movzx edx, byte [rsi]
sub edx, 0x6c
je 0x14025f5c0
test edx, edx
mov rsi, qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
sete dl
movzx edx, dl
mov dword [rbx + 0x2600], edx
lea rdx, str.eglGetConfigAttrib
call rsi
mov rcx, qword [rbx + 0x2620]
lea rdx, str.eglGetConfigs
mov qword [rbx + 0x2628], rax
call rsi
mov rcx, qword [rbx + 0x2620]
lea rdx, str.eglGetDisplay
mov qword [rbx + 0x2630], rax
call rsi
mov rcx, qword [rbx + 0x2620]
lea rdx, str.eglGetError
mov qword [rbx + 0x2638], rax
call rsi
mov rcx, qword [rbx + 0x2620]
lea rdx, str.eglInitialize
mov qword [rbx + 0x2640], rax
call rsi
mov rcx, qword [rbx + 0x2620]
lea rdx, str.eglTerminate
mov qword [rbx + 0x2648], rax
call rsi
mov rcx, qword [rbx + 0x2620]
lea rdx, str.eglBindAPI
mov qword [rbx + 0x2650], rax
call rsi
mov rcx, qword [rbx + 0x2620]
lea rdx, str.eglCreateContext
mov qword [rbx + 0x2658], rax
call rsi
mov rcx, qword [rbx + 0x2620]
lea rdx, str.eglDestroySurface
mov qword [rbx + 0x2660], rax
call rsi
mov rcx, qword [rbx + 0x2620]
lea rdx, str.eglDestroyContext
mov qword [rbx + 0x2668], rax
call rsi
mov rcx, qword [rbx + 0x2620]
lea rdx, str.eglCreateWindowSurface
mov qword [rbx + 0x2670], rax
call rsi
mov rcx, qword [rbx + 0x2620]
lea rdx, str.eglMakeCurrent
mov qword [rbx + 0x2678], rax
call rsi
mov rcx, qword [rbx + 0x2620]
lea rdx, str.eglSwapBuffers
mov qword [rbx + 0x2680], rax
call rsi
mov rcx, qword [rbx + 0x2620]
lea rdx, str.eglSwapInterval
mov qword [rbx + 0x2688], rax
call rsi
mov rcx, qword [rbx + 0x2620]
lea rdx, str.eglQueryString
mov qword [rbx + 0x2690], rax
call rsi
mov rcx, qword [rbx + 0x2620]
lea rdx, str.eglGetProcAddress
mov qword [rbx + 0x2698], rax
call rsi
cmp qword [rbx + 0x2628], 0
mov qword [rbx + 0x26a0], rax
je 0x14025f560
cmp qword [rbx + 0x2630], 0
je 0x14025f560
mov rdx, qword [rbx + 0x2638]
test rdx, rdx
je 0x14025f560
cmp qword [rbx + 0x2640], 0
je 0x14025f560
cmp qword [rbx + 0x2648], 0
je 0x14025f560
cmp qword [rbx + 0x2650], 0
je 0x14025f560
cmp qword [rbx + 0x2658], 0
je 0x14025f560
cmp qword [rbx + 0x2660], 0
je 0x14025f560
cmp qword [rbx + 0x2668], 0
je 0x14025f560
cmp qword [rbx + 0x2670], 0
je 0x14025f560
cmp qword [rbx + 0x2678], 0
je 0x14025f560
cmp qword [rbx + 0x2680], 0
je 0x14025f560
cmp qword [rbx + 0x2688], 0
je 0x14025f560
cmp qword [rbx + 0x2690], 0
je 0x14025f560
cmp qword [rbx + 0x2698], 0
je 0x14025f560
test rax, rax
je 0x14025f560
xor ecx, ecx
call rdx
mov qword [rbx + 0x25f0], rax
mov rcx, rax
test rax, rax
je 0x14025f746
lea r8, [rbx + 0x25fc]
lea rdx, [rbx + 0x25f8]
call qword [rbx + 0x2648]
test eax, eax
jne 0x14025f5f8
call qword [rbx + 0x2640]
mov ecx, eax
call fcn.1402562a0
lea rdx, str.EGL:_Failed_to_initialize_EGL:__s
mov r8, rax
mov ecx, 0x10006
call fcn.14024d920
mov rcx, qword [rbx + 0x25f0]
test rcx, rcx
jne 0x14025f57d
jmp 0x14025f58e
mov ecx, 0x10008
lea rdx, str.EGL:_Failed_to_load_required_entry_points
call fcn.14024d920
mov rcx, qword [rbx + 0x25f0]
test rcx, rcx
je 0x14025f58e
call qword [rbx + 0x2650]
mov qword [rbx + 0x25f0], 0
mov rcx, qword [rbx + 0x2620]
test rcx, rcx
je 0x14025f5ab
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov qword [rbx + 0x2620], 0
xor eax, eax
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
ret
movzx edx, byte [rsi + 1]
sub edx, 0x69
jne 0x14025f2a6
movzx edx, byte [rsi + 2]
sub edx, 0x62
jmp 0x14025f2a6
lea rdx, str.EGL:_Library_not_found
mov ecx, 0x10006
call fcn.14024d920
xor eax, eax
jmp 0x14025f253
mov edx, 0x3055
mov rcx, qword [rbx + 0x25f0]
call qword [rbx + 0x2698]
mov rdx, rax
xor eax, eax
test rdx, rdx
je 0x14025f628
lea rcx, str.EGL_KHR_create_context
call fcn.14024d600
test eax, eax
setne al
movzx eax, al
mov edx, 0x3055
mov dword [rbx + 0x2604], eax
mov rcx, qword [rbx + 0x25f0]
call qword [rbx + 0x2698]
mov rdx, rax
xor eax, eax
test rdx, rdx
je 0x14025f65e
lea rcx, str.EGL_KHR_create_context_no_error
call fcn.14024d600
test eax, eax
setne al
movzx eax, al
mov edx, 0x3055
mov dword [rbx + 0x2608], eax
mov rcx, qword [rbx + 0x25f0]
call qword [rbx + 0x2698]
mov rdx, rax
xor eax, eax
test rdx, rdx
je 0x14025f694
lea rcx, str.EGL_KHR_gl_colorspace
call fcn.14024d600
test eax, eax
setne al
movzx eax, al
mov edx, 0x3055
mov dword [rbx + 0x260c], eax
mov rcx, qword [rbx + 0x25f0]
call qword [rbx + 0x2698]
mov rdx, rax
xor eax, eax
test rdx, rdx
je 0x14025f6ca
lea rcx, str.EGL_KHR_get_all_proc_addresses
call fcn.14024d600
test eax, eax
setne al
movzx eax, al
mov edx, 0x3055
mov dword [rbx + 0x2610], eax
mov rcx, qword [rbx + 0x25f0]
call qword [rbx + 0x2698]
mov rdx, rax
xor eax, eax
test rdx, rdx
je 0x14025f700
lea rcx, str.EGL_KHR_context_flush_control
call fcn.14024d600
test eax, eax
setne al
movzx eax, al
mov edx, 0x3055
mov dword [rbx + 0x2614], eax
mov rcx, qword [rbx + 0x25f0]
call qword [rbx + 0x2698]
mov rdx, rax
xor eax, eax
test rdx, rdx
je 0x14025f736
lea rcx, str.EGL_EXT_present_opaque
call fcn.14024d600
test eax, eax
setne al
movzx eax, al
mov dword [rbx + 0x2618], eax
mov eax, 1
jmp 0x14025f253
call qword [rbx + 0x2640]
mov ecx, eax
call fcn.1402562a0
lea rdx, str.EGL:_Failed_to_get_EGL_display:__s
mov r8, rax
jmp 0x14025f542