Function at 0x18003ac90
Capabilities:
Allocate thread local storage
Get thread local storage value
Link many functions at runtime
Set thread local storage value

Disassembly:
mov rax, rsp
push rbx
sub rsp, 0xa0
test edx, edx
je 0x18003ad32
sub edx, 1
je 0x18003ad40
cmp edx, 2
jne 0x18003ad32
mov qword [rax + 8], rsi
mov qword [rax + 0x10], rdi
nop dword [rax]
mov rbx, qword [0x18011efb0]
xor esi, esi
test rbx, rbx
je 0x18003ad10
nop
mov ecx, dword [rbx]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdi, rax
test rax, rax
je 0x18003ad03
cmp qword [rbx + 8], 0
je 0x18003ad03
mov ecx, dword [rbx]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
mov rax, qword [rbx + 8]
mov rcx, rdi
call qword [case.0x180005f92.0]
mov esi, 1
mov rbx, qword [rbx + 0x10]
test rbx, rbx
jne 0x18003acd0
test esi, esi
jne 0x18003acc0
mov rax, qword [0x18011ef40]
mov rdi, qword [rsp + 0xb8]
mov rsi, qword [rsp + 0xb0]
test rax, rax
je 0x18003ad32
call qword [case.0x180005f92.0]
mov eax, 1
add rsp, 0xa0
pop rbx
ret
mov qword [0x18011eff0], rcx
lea rcx, [rsp + 0xc8]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
test eax, eax
je 0x18003afe7
mov rax, qword [rsp + 0xc8]
test rax, rax
je 0x18003afe7
movsd xmm1, qword [0x180100420]
lea rcx, [rsp + 0x30]
xorps xmm0, xmm0
xor edx, edx
cvtsi2sd xmm0, rax
lea r8d, [rdx + 0x70]
divsd xmm1, xmm0
movsd qword [0x18011e9e0], xmm1
call sub.VCRUNTIME140.dll_memset
lea rcx, str.KERNEL32.DLL
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rbx, rax
test rax, rax
je 0x18003af4c
lea rdx, str.InitializeSRWLock
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x38], rax
test rax, rax
je 0x18003af4c
lea rdx, str.AcquireSRWLockExclusive
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x48], rax
test rax, rax
je 0x18003af4c
lea rdx, str.TryAcquireSRWLockExclusive
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x50], rax
test rax, rax
je 0x18003af4c
lea rdx, str.ReleaseSRWLockExclusive
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x58], rax
test rax, rax
je 0x18003af4c
lea rdx, str.AcquireSRWLockShared
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x60], rax
test rax, rax
je 0x18003af4c
lea rdx, str.TryAcquireSRWLockShared
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x68], rax
test rax, rax
je 0x18003af4c
lea rdx, str.ReleaseSRWLockShared
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x70], rax
test rax, rax
je 0x18003af4c
lea rdx, str.InitializeConditionVariable
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x78], rax
test rax, rax
je 0x18003af4c
lea rdx, str.SleepConditionVariableSRW
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x88], rax
test rax, rax
je 0x18003af4c
lea rdx, str.WakeAllConditionVariable
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x90], rax
test rax, rax
je 0x18003af4c
lea rdx, str.WakeConditionVariable
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x98], rax
test rax, rax
je 0x18003af4c
movaps xmm0, xmmword [rsp + 0x30]
movaps xmm1, xmmword [rsp + 0x40]
movaps xmmword [0x18011ef40], xmm0
movaps xmm0, xmmword [rsp + 0x50]
movaps xmmword [0x18011ef60], xmm0
movaps xmm0, xmmword [rsp + 0x70]
movaps xmmword [0x18011ef50], xmm1
movaps xmm1, xmmword [rsp + 0x60]
movaps xmmword [0x18011ef80], xmm0
movaps xmm0, xmmword [rsp + 0x90]
movaps xmmword [0x18011ef70], xmm1
movaps xmm1, xmmword [rsp + 0x80]
jmp 0x18003afb9
lea rcx, [0x18011eef0]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
movaps xmm0, xmmword [0x1800e95c0]
movaps xmm1, xmmword [0x1800e95d0]
movaps xmmword [0x18011ef40], xmm0
movaps xmm0, xmmword [0x1800e95e0]
movaps xmmword [0x18011ef60], xmm0
movaps xmm0, xmmword [0x1800e9600]
movaps xmmword [0x18011ef50], xmm1
movaps xmm1, xmmword [0x1800e95f0]
movaps xmmword [0x18011ef80], xmm0
movaps xmm0, xmmword [0x1800e9620]
movaps xmmword [0x18011ef70], xmm1
movaps xmm1, xmmword [0x1800e9610]
mov dword [0x18011eeec], eax
lea rcx, [0x18011ef18]
movaps xmmword [0x18011efa0], xmm0
movaps xmmword [0x18011ef90], xmm1
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
call sym.glib_2.0.dll_g_convert_with_iconv
mov eax, 1
add rsp, 0xa0
pop rbx
ret
lea r9, str.g_clock_win32_init
mov qword [rsp + 0x20], 0
mov r8d, 0xaa8
lea rdx, str.d:_buildob_bora_15653658cayman_glibglib_srcglibgmain.c
lea rcx, [0x18009cbc8]
call sym.glib_2.0.dll_g_assertion_message_expr
int3