Function at 0x14015c460
Capabilities:
Allocate thread local storage

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
movapd xmmword [rsp + 0x40], xmm7
movapd xmmword [rsp + 0x30], xmm6
mov rbx, rdx
mov rdi, rcx
lea rsi, [rcx + 0x40]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14015c85b
cmp byte [rdi + 0x1470], 0
jne 0x14015c874
call fcn.14002b6e0
cmp byte [rbx], 1
sete byte [rdi + 4]
cmp byte [rbx + 3], 1
sete byte [rdi + 5]
mov al, byte [rbx + 4]
cmp al, 1
sete byte [rdi + 6]
cmp byte [rbx + 5], 1
je 0x14015c54b
mov byte [rdi + 7], 0
mov qword [rdi + 8], 0
cmp al, 1
je 0x14015c572
mov qword [rsp + 0x28], rsi
cmp byte [rbx + 2], 0
setne byte [rdi]
xorps xmm2, xmm2
movaps xmmword [rdi + 0x1450], xmm2
movaps xmmword [rdi + 0x1460], xmm2
lea r9, [0x140277d2d]
mov qword [rdi + 0x1448], r9
mov rax, rdi
not rax
mov qword [rdi + 0x1920], rax
mov r14d, 0x10
xor r10d, r10d
movabs rcx, 0x3ffffffffff
lea r11, [0x140269fe0]
movsd xmm3, qword [0x14025ba78]
movdqa xmm0, xmmword [0x140275010]
movapd xmm1, xmmword [0x140275020]
jmp 0x14015c5c5
cmp qword [0x1402a6e90], 0xffffffffffffffff
setne byte [rdi + 7]
je 0x14015c4cf
cmp al, 1
je 0x14015c871
mov qword [rdi + 8], 0
jmp 0x14015c4df
mov rcx, qword [rbx + 8]
test rcx, rcx
mov eax, 4
cmovne rax, rcx
cmp rax, 3
jbe 0x14015c86e
mov dword [rdi + 8], eax
jmp 0x14015c4df
test r14d, 0xff00000
jne 0x14015c855
shr r14, 0xc
lea rax, [rdi + r15*8]
add rax, 0x64
movzx edx, r14b
mov dword [rax], edx
mov r14, qword [r11 + r10*8 + 8]
inc r10
cmp r14, 1
je 0x14015c69c
lea r15, [r10 + r10*4]
mov dword [rdi + r15*8 + 0x60], r14d
mov r12d, r14d
mov rax, rcx
xor edx, edx
div r12
inc rax
mov qword [rdi + r15*8 + 0x68], rax
mov qword [rdi + r15*8 + 0x48], r9
movups xmmword [rdi + r15*8 + 0x50], xmm2
movzx eax, byte [rdi + r15*8 + 0x64]
mov dword [rdi + r15*8 + 0x64], eax
cmp r14d, 0x10000
ja 0x14015c594
mov r8d, 0x3000
mov bp, 3
xor r14d, r14d
movapd xmm4, xmm3
nop word cs:[rax + rax]
mov rax, r8
xor edx, edx
div r12
mov eax, ebp
and eax, 3
lea r13d, [rax*8]
mov esi, 0x20
sub esi, r13d
test eax, eax
cmove esi, eax
add rsi, rdx
xorps xmm5, xmm5
cvtsi2sd xmm5, rsi
movq xmm6, r8
punpckldq xmm6, xmm0
subpd xmm6, xmm1
movapd xmm7, xmm6
unpckhpd xmm7, xmm6
addsd xmm7, xmm6
divsd xmm5, xmm7
ucomisd xmm4, xmm5
minsd xmm5, xmm4
cmova r14d, ebp
add r8, 0x1000
inc ebp
movapd xmm4, xmm5
cmp r8, 0x11000
jne 0x14015c620
cmp r14w, 0x10
jbe 0x14015c5a5
jmp 0x14015c852
cmp r10, 0x7f
ja 0x14015c78c
movabs rax, 0x40000000000
xorps xmm2, xmm2
movsd xmm3, qword [0x14025ba78]
lea rcx, [r10 + r10*4]
lea rcx, [rdi + rcx*8]
add rcx, 0x48
mov dword [rcx + 0x18], 1
mov qword [rcx + 0x20], rax
mov qword [rcx], r9
movups xmmword [rcx + 8], xmm2
movzx edx, byte [rcx + 0x1c]
mov dword [rcx + 0x1c], edx
mov r8d, 0x3000
mov r11w, 3
xor edx, edx
movapd xmm4, xmm3
nop word cs:[rax + rax]
mov esi, r11d
and esi, 3
lea ebp, [rsi*8]
mov r14d, 0x20
sub r14d, ebp
test esi, esi
cmove r14d, esi
xorps xmm5, xmm5
cvtsi2sd xmm5, r14d
movq xmm6, r8
punpckldq xmm6, xmm0
subpd xmm6, xmm1
movapd xmm7, xmm6
unpckhpd xmm7, xmm6
addsd xmm7, xmm6
divsd xmm5, xmm7
ucomisd xmm4, xmm5
minsd xmm5, xmm4
cmova edx, r11d
add r8, 0x1000
inc r11d
movapd xmm4, xmm5
cmp r8, 0x11000
jne 0x14015c700
cmp dx, 0x10
ja 0x14015c858
movzx edx, dx
mov dword [rcx + 0x1c], edx
mov qword [rcx], 0
lea rcx, [r10 + 1]
cmp r10, 0x7f
mov r10, rcx
jb 0x14015c6bb
lea rcx, [0x14029ae18]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14015c841
cmp byte [0x1402acc58], 0
mov rsi, qword [rsp + 0x28]
je 0x14015c7fc
lea rcx, [0x14029ae18]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp byte [rbx + 1], 1
sete byte [rdi + 3]
je 0x14015c837
mov bl, 1
mov byte [rdi + 0x1470], bl
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
xor eax, eax
lock cmpxchg byte [0x1402acc68], bl
movaps xmm6, xmmword [rsp + 0x30]
movaps xmm7, xmmword [rsp + 0x40]
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp qword [0x1402b0318], 0
jne 0x14015c868
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
cmp eax, 0xffffffff
je 0x14015c86b
mov dword [0x1402acc00], eax
mov dword [0x1402b0320], eax
lea rax, [0x140174660]
mov qword [0x1402b0318], rax
mov byte [0x1402acc58], 1
jmp 0x14015c7af
mov rcx, rdi
call fcn.1400b80c0
jmp 0x14015c7c6
lea rcx, [0x14029ae18]
call fcn.1400ee8b0
jmp 0x14015c7a1
int3
int3
int3
mov rcx, rsi
call fcn.1400ee8b0
jmp 0x14015c497
int3
int3
int3
int3
mov rcx, rsi
movaps xmm6, xmmword [rsp + 0x30]
movaps xmm7, xmmword [rsp + 0x40]
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]