Function at 0x10015890
Capabilities:
Allocate thread local storage

Disassembly:
sub esp, 0x18
push esi
mov esi, dword [esp + 0x24]
lea eax, [esp + 0x10]
push edi
mov edi, dword [esp + 0x24]
push esi
push edi
push eax
call fcn.100b8a20
add esp, 0xc
cmp dword [esp + 0x14], 0x3000
je 0x100158f7
mov eax, dword [section..data]
cmp eax, 0xffffffff
jne 0x100158ca
call sub.KERNEL32.dll_TlsAlloc
mov dword [section..data], eax
push eax
call fcn.1002e140
add esp, 4
test eax, eax
jne 0x100158dc
call fcn.100079f0
mov ecx, dword [esp + 0x14]
xor esi, esi
mov dword [eax], ecx
lea ecx, [esp + 0x1c]
call fcn.100016b0
pop edi
mov eax, esi
pop esi
add esp, 0x18
ret 0x10
test esi, esi
jne 0x1001593c
mov eax, dword [section..data]
cmp eax, 0xffffffff
jne 0x1001590f
call sub.KERNEL32.dll_TlsAlloc
mov dword [section..data], eax
push eax
call fcn.1002e140
add esp, 4
test eax, eax
jne 0x10015921
call fcn.100079f0
lea ecx, [esp + 0x1c]
mov dword [eax], 0x300d
xor esi, esi
call fcn.100016b0
pop edi
mov eax, esi
pop esi
add esp, 0x18
ret 0x10
mov eax, dword [esp + 0x2c]
cmp eax, 0x3201
jg 0x10015ab7
je 0x10015a5e
add eax, 0xffffcfd8
cmp eax, 0x96
ja case.0x10015968.12329
movzx eax, byte [eax + 0x10015bc0]
jmp dword [eax*4 + 0x10015b94]
mov ecx, esi
call fcn.10055fa0
mov ecx, dword [eax + 0x34]
jmp 0x10015b47
mov ecx, esi
call fcn.10154150
mov ecx, dword [esp + 0x30]
mov dword [ecx], eax
jmp case.0x10015968.12376
mov ecx, esi
call fcn.1007a130
mov ecx, dword [esp + 0x30]
mov dword [ecx], eax
jmp case.0x10015968.12376
mov ecx, esi
call fcn.10153c60
mov ecx, dword [esp + 0x30]
mov dword [ecx], eax
jmp case.0x10015968.12376
mov ecx, esi
call fcn.10154f80
mov ecx, dword [esp + 0x30]
mov dword [ecx], eax
jmp case.0x10015968.12376
mov ecx, esi
call fcn.1007a7d0
mov ecx, dword [esp + 0x30]
mov dword [ecx], eax
jmp case.0x10015968.12376
mov ecx, esi
call fcn.1002ac80
mov ecx, dword [esp + 0x30]
mov dword [ecx], eax
jmp case.0x10015968.12376
mov ecx, esi
call fcn.10155b00
mov ecx, dword [esp + 0x30]
mov dword [ecx], eax
jmp case.0x10015968.12376
mov ecx, edi
call fcn.100276c0
cmp byte [eax + 7], 0
jne 0x10015a4c
lea eax, [esp + 8]
mov dword [esp + 8], 0x3004
push eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
call fcn.10016980
add esp, 4
lea ecx, [esp + 0x10]
call fcn.100016b0
lea ecx, [esp + 0x1c]
xor esi, esi
call fcn.100016b0
pop edi
mov eax, esi
pop esi
add esp, 0x18
ret 0x10
mov ecx, esi
call fcn.101566c0
mov ecx, dword [esp + 0x30]
mov dword [ecx], eax
jmp case.0x10015968.12376
mov ecx, edi
call fcn.100276c0
cmp byte [eax + 4], 0
jne 0x10015aa5
lea eax, [esp + 8]
mov dword [esp + 8], 0x3004
push eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
call fcn.10016980
add esp, 4
lea ecx, [esp + 0x1c]
xor esi, esi
call fcn.100016b0
pop edi
mov eax, esi
pop esi
add esp, 0x18
ret 0x10
mov ecx, esi
call fcn.10156660
mov ecx, dword [esp + 0x30]
mov dword [ecx], eax
jmp case.0x10015968.12376
sub eax, 0x33a5
je 0x10015afb
sub eax, 1
je 0x10015ae1
sub eax, 2
jne case.0x10015968.12329
mov ecx, edi
call fcn.100276c0
cmp byte [eax + 6], 0
jne 0x10015adc
push str.EGL_SURFACE_ORIENTATION_ANGLE_cannot_be_queried_without_EGL_ANGLE_surface_orientation_support.
jmp 0x10015b0d
mov ecx, dword [esi + 0x4c]
jmp 0x10015b47
mov ecx, edi
call fcn.100276c0
cmp byte [eax + 0x12], 0
jne 0x10015af5
push str.EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE_cannot_be_used_without_EGL_ANGLE_flexible_surface_compatibility_support.
jmp 0x10015b0d
movzx ecx, byte [esi + 0x29]
jmp 0x10015b47
mov ecx, edi
call fcn.100276c0
cmp byte [eax + 0x13], 0
jne 0x10015b43
push str.EGL_DIRECT_COMPOSITION_ANGLE_cannot_be_used_without_EGL_ANGLE_direct_composition_support.
lea eax, [esp + 0xc]
push 0x3004
push eax
call fcn.10131350
push eax
call fcn.10016980
add esp, 0x10
lea ecx, [esp + 0x10]
call fcn.100016b0
lea ecx, [esp + 0x1c]
xor esi, esi
call fcn.100016b0
pop edi
mov eax, esi
pop esi
add esp, 0x18
ret 0x10
movzx ecx, byte [esi + 0x34]
mov eax, dword [esp + 0x30]
mov dword [eax], ecx
lea eax, [esp + 8]
mov dword [esp + 8], 0x3000
push eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
call fcn.10016980
add esp, 4
lea ecx, [esp + 0x10]
call fcn.100016b0
lea ecx, [esp + 0x1c]
mov esi, 1
call fcn.100016b0
pop edi
mov eax, esi
pop esi
add esp, 0x18
ret 0x10