Function at 0x14010c000
Capabilities:
Query environment variable

Disassembly:
push rbx
push rdi
push r14
sub rsp, 0x30
xor edi, edi
mov rbx, rcx
mov r14d, edi
cmp qword [rcx + 0x5d0], rdi
je 0x14010c02e
lea rcx, str.EGL_context_already_created
add rsp, 0x30
pop r14
pop rdi
pop rbx
jmp fcn.14005ec50
mov qword [rsp + 0x60], rsi
mov edx, 0x120
mov esi, 1
mov ecx, esi
call qword [0x140181b28]
test rax, rax
je 0x14010c052
lock xadd dword [0x140181b40], esi
mov qword [rbx + 0x5d0], rax
test rax, rax
jne 0x14010c077
lea rcx, str.Out_of_memory
mov rsi, qword [rsp + 0x60]
add rsp, 0x30
pop r14
pop rdi
pop rbx
jmp fcn.14005ec50
lea rcx, str.SDL_VIDEO_WIN_D3DCOMPILER
mov qword [rsp + 0x50], rbp
call fcn.140048f70
mov r11, rax
test rax, rax
je 0x14010c0d7
lea r8, str.none
mov r10, rax
sub r10, r8
nop dword [rax]
movzx ecx, byte [r10 + r8]
movzx edx, byte [r8]
lea eax, [rcx - 0x61]
cmp eax, 0x19
lea r9d, [rcx - 0x20]
lea eax, [rdx - 0x61]
cmova r9d, ecx
cmp eax, 0x19
lea ecx, [rdx - 0x20]
cmova ecx, edx
cmp r9d, ecx
jne 0x14010c0d2
test r9d, r9d
je 0x14010c13a
inc r8
jmp 0x14010c0a0
mov rcx, r11
jmp 0x14010c129
xor edx, edx
call fcn.140075b20
test eax, eax
je 0x14010c122
lea rax, str.d3dcompiler_47.dll
mov ebp, edi
mov qword [rsp + 0x20], rax
lea rsi, [rsp + 0x20]
lea rax, str.d3dcompiler_46.dll
mov qword [rsp + 0x28], rax
mov rcx, qword [rsi]
call fcn.140068540
test rax, rax
jne 0x14010c13a
call fcn.140036fe0
inc ebp
add rsi, 8
mov dword [rax], edi
cmp ebp, 2
jb 0x14010c101
jmp 0x14010c13a
lea rcx, str.d3dcompiler_43.dll
call fcn.140068540
test rax, rax
jne 0x14010c13a
call fcn.140036fe0
mov dword [rax], edi
mov r8d, dword [0x140185710]
lea rcx, str.SDL_VIDEO_GL_DRIVER
mov rdx, qword [0x140185718]
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov esi, eax
test eax, eax
je 0x14010c1b1
cmp rsi, qword [0x140185710]
jbe 0x14010c198
mov rcx, qword [0x140185718]
mov edx, esi
call fcn.140061da0
test rax, rax
je 0x14010c1b1
mov r8d, esi
mov qword [0x140185718], rax
mov rdx, rax
mov qword [0x140185710], rsi
lea rcx, str.SDL_VIDEO_GL_DRIVER
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov rcx, qword [0x140185718]
test rcx, rcx
je 0x14010c1b1
call fcn.140068540
mov r14, rax
test rax, rax
jne 0x14010c1ef
cmp dword [rbx + 0x354], 4
jne 0x14010c1ef
cmp dword [rbx + 0x348], 1
jle 0x14010c1cc
lea rcx, str.libGLESv2.dll
jmp 0x14010c1e7
lea rcx, str.libGLESv1_CM.dll
call fcn.140068540
mov r14, rax
test rax, rax
jne 0x14010c1ef
lea rcx, str.libGLES_CM.dll
call fcn.140068540
mov r14, rax
mov rax, qword [rbx + 0x5d0]
mov qword [rax], r14
test r14, r14
jne 0x14010c20a
lea rcx, str.Could_not_initialize_OpenGL___GLES_library
jmp 0x14010c848
mov r8d, dword [0x140185710]
lea rcx, str.SDL_VIDEO_EGL_DRIVER
mov rdx, qword [0x140185718]
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov esi, eax
test eax, eax
je 0x14010c274
cmp rsi, qword [0x140185710]
jbe 0x14010c268
mov rcx, qword [0x140185718]
mov edx, esi
call fcn.140061da0
test rax, rax
je 0x14010c274
mov r8d, esi
mov qword [0x140185718], rax
mov rdx, rax
mov qword [0x140185710], rsi
lea rcx, str.SDL_VIDEO_EGL_DRIVER
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov rsi, qword [0x140185718]
test rsi, rsi
jne 0x14010c27b
lea rsi, str.libEGL.dll
mov rcx, rsi
call fcn.140068540
mov rbp, rax
test rax, rax
je 0x14010c841
lea rdx, str.eglChooseConfig
mov rcx, rax
call fcn.1400686b0
test rax, rax
je 0x14010c838
call fcn.140036fe0
lea rdx, str.eglGetDisplay
mov dword [rax], edi
mov rax, qword [rbx + 0x5d0]
mov qword [rax + 8], rbp
mov rcx, qword [rbx + 0x5d0]
mov rcx, qword [rcx + 8]
call fcn.1400686b0
mov rcx, qword [rbx + 0x5d0]
mov qword [rcx + 0x40], rax
mov rcx, qword [rbx + 0x5d0]
cmp qword [rcx + 0x40], rdi
jne 0x14010c2f4
lea rcx, str.Could_not_retrieve_EGL_function_eglGetDisplay
jmp 0x14010c848
mov rcx, qword [rcx + 8]
lea rdx, str.eglInitialize
call fcn.1400686b0
mov rcx, qword [rbx + 0x5d0]
mov qword [rcx + 0x58], rax
mov rcx, qword [rbx + 0x5d0]
cmp qword [rcx + 0x58], rdi
jne 0x14010c328
lea rcx, str.Could_not_retrieve_EGL_function_eglInitialize
jmp 0x14010c848
mov rcx, qword [rcx + 8]
lea rdx, str.eglTerminate
call fcn.1400686b0
mov rcx, qword [rbx + 0x5d0]
mov qword [rcx + 0x60], rax
mov rcx, qword [rbx + 0x5d0]
cmp qword [rcx + 0x60], rdi
jne 0x14010c35c
lea rcx, str.Could_not_retrieve_EGL_function_eglTerminate
jmp 0x14010c848
mov rcx, qword [rcx + 8]
lea rdx, str.eglGetProcAddress
call fcn.1400686b0
mov rcx, qword [rbx + 0x5d0]
mov qword [rcx + 0x68], rax
mov rcx, qword [rbx + 0x5d0]
cmp qword [rcx + 0x68], rdi
jne 0x14010c390
lea rcx, str.Could_not_retrieve_EGL_function_eglGetProcAddress
jmp 0x14010c848
mov rcx, qword [rcx + 8]
lea rdx, str.eglChooseConfig
call fcn.1400686b0
mov rcx, qword [rbx + 0x5d0]
mov qword [rcx + 0x70], rax
mov rcx, qword [rbx + 0x5d0]
cmp qword [rcx + 0x70], rdi
jne 0x14010c3c4
lea rcx, str.Could_not_retrieve_EGL_function_eglChooseConfig
jmp 0x14010c848
mov rcx, qword [rcx + 8]
lea rdx, str.eglGetConfigAttrib
call fcn.1400686b0
mov rcx, qword [rbx + 0x5d0]
mov qword [rcx + 0xc8], rax
mov rcx, qword [rbx + 0x5d0]
cmp qword [rcx + 0xc8], rdi
jne 0x14010c3fe
lea rcx, str.Could_not_retrieve_EGL_function_eglGetConfigAttrib
jmp 0x14010c848
mov rcx, qword [rcx + 8]
lea rdx, str.eglCreateContext
call fcn.1400686b0
mov rcx, qword [rbx + 0x5d0]
mov qword [rcx + 0x78], rax
mov rcx, qword [rbx + 0x5d0]
cmp qword [rcx + 0x78], rdi
jne 0x14010c432
lea rcx, str.Could_not_retrieve_EGL_function_eglCreateContext
jmp 0x14010c848
mov rcx, qword [rcx + 8]
lea rdx, str.eglDestroyContext
call fcn.1400686b0
mov rcx, qword [rbx + 0x5d0]
mov qword [rcx + 0x80], rax
mov rcx, qword [rbx + 0x5d0]
cmp qword [rcx + 0x80], rdi
jne 0x14010c46c
lea rcx, str.Could_not_retrieve_EGL_function_eglDestroyContext
jmp 0x14010c848
mov rcx, qword [rcx + 8]
lea rdx, str.eglCreatePbufferSurface
call fcn.1400686b0
mov rcx, qword [rbx + 0x5d0]
mov qword [rcx + 0x88], rax
mov rcx, qword [rbx + 0x5d0]
cmp qword [rcx + 0x88], rdi
jne 0x14010c4a6
lea rcx, str.Could_not_retrieve_EGL_function_eglCreatePbufferSurface
jmp 0x14010c848
mov rcx, qword [rcx + 8]
lea rdx, str.eglCreateWindowSurface
call fcn.1400686b0
mov rcx, qword [rbx + 0x5d0]
mov qword [rcx + 0x90], rax
mov rcx, qword [rbx + 0x5d0]
cmp qword [rcx + 0x90], rdi
jne 0x14010c4e0
lea rcx, str.Could_not_retrieve_EGL_function_eglCreateWindowSurface
jmp 0x14010c848
mov rcx, qword [rcx + 8]
lea rdx, str.eglDestroySurface
call fcn.1400686b0
mov rcx, qword [rbx + 0x5d0]
mov qword [rcx + 0x98], rax
mov rcx, qword [rbx + 0x5d0]
cmp qword [rcx + 0x98], rdi
jne 0x14010c51a
lea rcx, str.Could_not_retrieve_EGL_function_eglDestroySurface
jmp 0x14010c848
mov rcx, qword [rcx + 8]
lea rdx, str.eglMakeCurrent
call fcn.1400686b0
mov rcx, qword [rbx + 0x5d0]
mov qword [rcx + 0xa0], rax
mov rcx, qword [rbx + 0x5d0]
cmp qword [rcx + 0xa0], rdi
jne 0x14010c554
lea rcx, str.Could_not_retrieve_EGL_function_eglMakeCurrent
jmp 0x14010c848
mov rcx, qword [rcx + 8]
lea rdx, str.eglSwapBuffers
call fcn.1400686b0
mov rcx, qword [rbx + 0x5d0]
mov qword [rcx + 0xa8], rax
mov rcx, qword [rbx + 0x5d0]
cmp qword [rcx + 0xa8], rdi
jne 0x14010c58e
lea rcx, str.Could_not_retrieve_EGL_function_eglSwapBuffers
jmp 0x14010c848
mov rcx, qword [rcx + 8]
lea rdx, str.eglSwapInterval
call fcn.1400686b0
mov rcx, qword [rbx + 0x5d0]
mov qword [rcx + 0xb0], rax
mov rcx, qword [rbx + 0x5d0]
cmp qword [rcx + 0xb0], rdi
jne 0x14010c5c8
lea rcx, str.Could_not_retrieve_EGL_function_eglSwapInterval
jmp 0x14010c848
mov rcx, qword [rcx + 8]
lea rdx, str.eglWaitNative
call fcn.1400686b0
mov rcx, qword [rbx + 0x5d0]
mov qword [rcx + 0xd0], rax
mov rcx, qword [rbx + 0x5d0]
cmp qword [rcx + 0xd0], rdi
jne 0x14010c602
lea rcx, str.Could_not_retrieve_EGL_function_eglWaitNative
jmp 0x14010c848
mov rcx, qword [rcx + 8]
lea rdx, str.eglWaitGL
call fcn.1400686b0
mov rcx, qword [rbx + 0x5d0]
mov qword [rcx + 0xd8], rax
mov rcx, qword [rbx + 0x5d0]
cmp qword [rcx + 0xd8], rdi
jne 0x14010c63c
lea rcx, str.Could_not_retrieve_EGL_function_eglWaitGL
jmp 0x14010c848
mov rcx, qword [rcx + 8]
lea rdx, str.eglBindAPI
call fcn.1400686b0
mov rcx, qword [rbx + 0x5d0]
mov qword [rcx + 0xe0], rax
mov rcx, qword [rbx + 0x5d0]
cmp qword [rcx + 0xe0], rdi
jne 0x14010c676
lea rcx, str.Could_not_retrieve_EGL_function_eglBindAPI
jmp 0x14010c848
mov rcx, qword [rcx + 8]
lea rdx, str.eglQueryAPI
call fcn.1400686b0
mov rcx, qword [rbx + 0x5d0]
mov qword [rcx + 0xc0], rax
mov rcx, qword [rbx + 0x5d0]
cmp qword [rcx + 0xc0], rdi
jne 0x14010c6b0
lea rcx, str.Could_not_retrieve_EGL_function_eglQueryAPI
jmp 0x14010c848
mov rcx, qword [rcx + 8]
lea rdx, str.eglQueryString
call fcn.1400686b0
mov rcx, qword [rbx + 0x5d0]
mov qword [rcx + 0xb8], rax
mov rcx, qword [rbx + 0x5d0]
cmp qword [rcx + 0xb8], rdi
jne 0x14010c6ea
lea rcx, str.Could_not_retrieve_EGL_function_eglQueryString
jmp 0x14010c848
mov rcx, qword [rcx + 8]
lea rdx, str.eglGetError
call fcn.1400686b0
mov rcx, qword [rbx + 0x5d0]
mov qword [rcx + 0xe8], rax
mov rax, qword [rbx + 0x5d0]
cmp qword [rax + 0xe8], rdi
jne 0x14010c724
lea rcx, str.Could_not_retrieve_EGL_function_eglGetError
jmp 0x14010c848
lea rcx, str.eglQueryDevicesEXT
call qword [rax + 0x68]
mov rcx, qword [rbx + 0x5d0]
mov qword [rcx + 0xf0], rax
lea rcx, str.eglGetPlatformDisplayEXT
mov rax, qword [rbx + 0x5d0]
call qword [rax + 0x68]
mov rcx, qword [rbx + 0x5d0]
mov qword [rcx + 0x50], rax
lea rcx, str.eglCreateSyncKHR
mov rax, qword [rbx + 0x5d0]
call qword [rax + 0x68]
mov rcx, qword [rbx + 0x5d0]
mov qword [rcx + 0xf8], rax
lea rcx, str.eglDestroySyncKHR
mov rax, qword [rbx + 0x5d0]
call qword [rax + 0x68]
mov rcx, qword [rbx + 0x5d0]
mov qword [rcx + 0x100], rax
lea rcx, str.eglDupNativeFenceFDANDROID
mov rax, qword [rbx + 0x5d0]
call qword [rax + 0x68]
mov rcx, qword [rbx + 0x5d0]
mov qword [rcx + 0x108], rax
lea rcx, str.eglWaitSyncKHR
mov rax, qword [rbx + 0x5d0]
call qword [rax + 0x68]
mov rcx, qword [rbx + 0x5d0]
mov qword [rcx + 0x110], rax
lea rcx, str.eglClientWaitSyncKHR
mov rax, qword [rbx + 0x5d0]
call qword [rax + 0x68]
mov rcx, qword [rbx + 0x5d0]
lea r14, [rbx + 0x374]
mov qword [rcx + 0x118], rax
test rsi, rsi
je 0x14010c831
cmp byte [rsi], dil
je 0x14010c817
inc rdi
cmp byte [rdi + rsi], 0
jne 0x14010c804
mov ebx, 0xfe
cmp rdi, rbx
jae 0x14010c81a
mov rbx, rdi
mov r8, rbx
mov rdx, rsi
mov rcx, r14
call fcn.140039560
xor eax, eax
mov byte [rbx + r14], 0
jmp 0x14010c84d
mov byte [r14], dil
xor eax, eax
jmp 0x14010c84d
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
lea rcx, str.Could_not_load_EGL_library
call fcn.14005ec50
mov rbp, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x60]
add rsp, 0x30
pop r14
pop rdi
pop rbx
ret