Function at 0x41cf80
Capabilities:
Set thread local storage value

Disassembly:
push rbp
push r12
push rdi
push rsi
push rbx
mov rbp, rsp
sub rsp, 0x20
mov qword [rbp + 0x30], rcx
mov rcx, qword [0x004ab4d8]
test rcx, rcx
je 0x41d0dd
call sym.unk_2554
mov rax, qword [rbp + 0x30]
lea rbx, [rax + 0x38]
mov rcx, rbx
call sym.unk_2554
mov rcx, qword [0x004ab510]
test rcx, rcx
je 0x41d197
call sym.unk_2461
mov rax, qword [0x004ab508]
test rax, rax
je 0x41d173
mov rdx, qword [rbp + 0x30]
mov ecx, dword [rax]
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov rsi, qword [rbp + 0x30]
mov rcx, rbx
mov dword [rsi + 0x68], eax
call sym.unk_2549
mov rax, qword [rbp + 0x30]
mov rdx, rbp
lea rcx, [rax + 0xc0]
call sym._setjmp
test eax, eax
je 0x41d104
mov rax, qword [0x004ab4d8]
test rax, rax
je 0x41d1ba
mov rcx, rax
call sym.unk_2554
mov rax, qword [rbp + 0x30]
lea rbx, [rax + 0x38]
mov rcx, rbx
call sym.unk_2554
mov rax, qword [rbp + 0x30]
mov rcx, qword [rax + 0x30]
mov rsi, qword [rax + 8]
test rcx, rcx
je 0x41d056
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [rbp + 0x30]
cmp qword [rax + 0x28], 0
mov qword [rax + 0x30], 0
je 0x41d20c
mov rcx, rbx
call sym.unk_2549
mov rcx, rbx
call sym.unk_2558
mov rax, qword [rbp + 0x30]
mov dword [rax + 0xb4], 1
lea r12, [sym.unk_2451]
lea rdi, str.mtx_pthr_locked_shmem
mov rbx, qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x41d0a6
xor ecx, ecx
call rbx
mov rax, qword [0x004ab4d8]
test rax, rax
jne 0x41d0c9
mov r8, r12
mov edx, 8
mov rcx, rdi
call sym.unk_2594
mov qword [0x004ab4d8], rax
mov rcx, rax
call sym.unk_2549
test eax, eax
je 0x41d0a2
mov ecx, esi
call qword [sym.imp.msvcrt.dll__endthreadex]
lea rcx, str.mtx_pthr_locked_shmem
lea r8, [sym.unk_2451]
mov edx, 8
call sym.unk_2594
mov rcx, rax
mov qword [0x004ab4d8], rax
jmp 0x41cfa1
mov rax, qword [0x004ab4d8]
test rax, rax
je 0x41d1e8
mov rcx, rax
call sym.unk_2549
mov rax, qword [rbp + 0x30]
mov rax, qword [rax + 0x10]
test rax, rax
je 0x41d1de
mov rdi, qword [rbp + 0x30]
mov rcx, qword [rdi + 8]
call rax
mov rbx, rax
nop
nop
mov rcx, qword [0x004ab4d8]
test rcx, rcx
je 0x41d27d
call sym.unk_2554
mov rax, qword [rbp + 0x30]
mov rcx, qword [rax + 0x1c8]
mov qword [rax + 8], rbx
test rcx, rcx
je 0x41d02f
call sym.unk_2479
jmp 0x41d02f
lea r8, [sym.unk_2449]
lea rcx, str._pthread_tls_shmem
mov edx, 4
call sym.unk_2594
mov qword [0x004ab508], rax
jmp 0x41cfdb
lea rcx, str._pthread_tls_once_shmem
xor r8d, r8d
mov edx, 4
call sym.unk_2594
mov rcx, rax
mov qword [0x004ab510], rax
jmp 0x41cfc6
lea r8, [sym.unk_2451]
lea rcx, str.mtx_pthr_locked_shmem
mov edx, 8
call sym.unk_2594
mov qword [0x004ab4d8], rax
jmp 0x41d027
mov ebx, pe_nt_image_headers64
jmp 0x41d13a
lea r8, [sym.unk_2451]
lea rcx, str.mtx_pthr_locked_shmem
mov edx, 8
call sym.unk_2594
mov qword [0x004ab4d8], rax
jmp 0x41d114
mov rax, qword [rbp + 0x30]
mov rcx, rbx
mov dword [rax], 0xdeadbeef
call sym.unk_2549
mov rcx, rbx
call sym.unk_2558
cmp qword [rbp + 0x30], 0
je 0x41d243
mov rax, qword [rbp + 0x30]
cmp qword [rax + 0x1c0], 0
jne 0x41d243
mov rcx, rax
call sym.unk_2460
mov rax, qword [0x004ab508]
test rax, rax
jne 0x41d26e
lea r8, [sym.unk_2449]
lea rcx, str._pthread_tls_shmem
mov edx, 4
call sym.unk_2594
mov qword [0x004ab508], rax
xor edx, edx
mov ecx, dword [rax]
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
jmp 0x41d08b
lea rcx, str.mtx_pthr_locked_shmem
lea r8, [sym.unk_2451]
mov edx, 8
call sym.unk_2594
mov rcx, rax
mov qword [0x004ab4d8], rax
jmp 0x41d14c