Function at 0x14008f7f0
Capabilities:
Allocate thread local storage

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
movaps xmmword [rsp + 0x50], xmm9
movaps xmmword [rsp + 0x40], xmm8
movaps xmmword [rsp + 0x30], xmm7
movaps xmmword [rsp + 0x20], 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 0x14008fc47
cmp byte [rdi + 0x1470], 0
jne 0x14008fc60
call fcn.1400082c0
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 0x14008f90a
mov byte [rdi + 7], 0
mov qword [rdi + 8], 0
cmp al, 1
je 0x14008f8e8
cmp byte [rbx + 2], 0
setne byte [rdi]
xorps xmm8, xmm8
movups xmmword [rdi + 0x1448], xmm8
movups xmmword [rdi + 0x1458], xmm8
mov qword [rdi + 0x1468], 0
call fcn.140081d10
mov qword [rdi + 0x1448], rax
mov rax, rdi
not rax
mov qword [rdi + 0x1920], rax
mov eax, 0x10
xor r15d, r15d
movabs r14, 0x3ffffffffff
lea r12, [0x140160f68]
movsd xmm9, qword [0x14014ca18]
movdqa xmm6, xmmword [0x14015ecc0]
movapd xmm7, xmmword [0x14015ecd0]
jmp 0x14008f965
mov rcx, qword [rbx + 8]
test rcx, rcx
mov eax, 4
cmovne rax, rcx
cmp rax, 3
jbe 0x14008fc5a
mov dword [rdi + 8], eax
jmp 0x14008f875
cmp qword [0x140183550], 0xffffffffffffffff
setne byte [rdi + 7]
je 0x14008f869
cmp al, 1
je 0x14008fc5d
mov qword [rdi + 8], 0
jmp 0x14008f875
test r8d, 0xff00000
jne 0x14008fc3e
shr r8d, 0xc
mov r9d, r8d
lea rax, [rdi + r13*8]
add rax, 0x64
movzx ecx, r9b
mov dword [rax], ecx
mov rax, qword [r12 + r15*8 + 8]
inc r15
cmp rax, 1
je 0x14008fa3e
lea r13, [r15 + r15*4]
mov dword [rdi + r13*8 + 0x60], eax
mov ecx, eax
mov rax, r14
xor edx, edx
div rcx
inc rax
mov qword [rdi + r13*8 + 0x68], rax
call fcn.140081d10
mov qword [rdi + r13*8 + 0x48], rax
movups xmmword [rdi + r13*8 + 0x50], xmm8
movzx eax, byte [rdi + r13*8 + 0x64]
mov dword [rdi + r13*8 + 0x64], eax
mov r8d, dword [rdi + r13*8 + 0x60]
cmp r8, 0x10000
ja 0x14008f931
mov ecx, 0x3000
mov r10w, 3
xor r9d, r9d
movapd xmm0, xmm9
nop dword [rax + rax]
mov rax, rcx
xor edx, edx
div r8
mov eax, r10d
and eax, 3
lea r11d, [rax*8]
mov ebp, 0x20
sub ebp, r11d
test eax, eax
cmove ebp, eax
add rbp, rdx
xorps xmm1, xmm1
cvtsi2sd xmm1, rbp
movq xmm2, rcx
punpckldq xmm2, xmm6
subpd xmm2, xmm7
movapd xmm3, xmm2
unpckhpd xmm3, xmm2
addsd xmm3, xmm2
divsd xmm1, xmm3
ucomisd xmm0, xmm1
minsd xmm1, xmm0
cmova r9d, r10d
add rcx, 0x1000
inc r10d
movapd xmm0, xmm1
cmp rcx, 0x11000
jne 0x14008f9c0
cmp r9w, 0x10
jbe 0x14008f945
jmp 0x14008fc3b
cmp r15, 0x7f
ja 0x14008fbb0
movabs r14, 0x40000000000
xorps xmm8, xmm8
movsd xmm9, qword [0x14014ca18]
jmp 0x14008fa9c
test r8d, 0xff00000
jne 0x14008fc44
shr r8d, 0xc
mov r9d, r8d
lea rax, [rdi + r12*8]
add rax, 0x48
movzx ecx, r9b
mov dword [rax + 0x1c], ecx
mov qword [rax], 0
lea rax, [r15 + 1]
cmp r15, 0x7f
mov r15, rax
jae 0x14008fbb0
lea r12, [r15 + r15*4]
mov dword [rdi + r12*8 + 0x60], 1
mov qword [rdi + r12*8 + 0x68], r14
call fcn.140081d10
mov qword [rdi + r12*8 + 0x48], rax
movups xmmword [rdi + r12*8 + 0x50], xmm8
movzx eax, byte [rdi + r12*8 + 0x64]
mov dword [rdi + r12*8 + 0x64], eax
mov r8d, dword [rdi + r12*8 + 0x60]
cmp r8, 0x10000
ja 0x14008fa61
mov ecx, 0x3000
mov r10w, 3
xor r9d, r9d
movapd xmm0, xmm9
nop dword [rax]
mov rax, rcx
xor edx, edx
div r8
mov eax, r10d
and eax, 3
lea r11d, [rax*8]
mov r13d, 0x20
sub r13d, r11d
test eax, eax
cmove r13d, eax
add r13, rdx
xorps xmm1, xmm1
cvtsi2sd xmm1, r13
movq xmm2, rcx
punpckldq xmm2, xmm6
subpd xmm2, xmm7
movapd xmm3, xmm2
unpckhpd xmm3, xmm2
addsd xmm3, xmm2
divsd xmm1, xmm3
ucomisd xmm0, xmm1
minsd xmm1, xmm0
cmova r9d, r10d
add rcx, 0x1000
inc r10d
movapd xmm0, xmm1
cmp rcx, 0x11000
jne 0x14008faf0
cmp r9w, 0x10
jbe 0x14008fa75
jmp 0x14008fc41
cmp qword [0x14018bb88], 0
jne 0x14008fc54
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
cmp eax, 0xffffffff
je 0x14008fc57
mov dword [0x140186b4c], eax
mov dword [0x14018bb90], eax
lea rax, [0x1400b7430]
mov qword [0x14018bb88], rax
mov byte [0x140186b98], 1
jmp 0x14008fbca
lea rcx, [0x1401774e8]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14008fc23
cmp byte [0x140186b98], 0
je 0x14008fb70
lea rcx, [0x1401774e8]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp byte [rbx + 1], 1
sete byte [rdi + 3]
je 0x14008fc31
mov bl, 1
mov byte [rdi + 0x1470], bl
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
xor eax, eax
lock cmpxchg byte [0x140186ba8], bl
movaps xmm6, xmmword [rsp + 0x20]
movaps xmm7, xmmword [rsp + 0x30]
movaps xmm8, xmmword [rsp + 0x40]
movaps xmm9, xmmword [rsp + 0x50]
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [0x1401774e8]
call fcn.140080c10
jmp 0x14008fbc1
mov rcx, rdi
call fcn.140074950
jmp 0x14008fbe1
int3
int3
int3
int3
mov rcx, rsi
call fcn.140080c10
jmp 0x14008f831
int3
int3
int3
int3
mov rcx, rsi
movaps xmm6, xmmword [rsp + 0x20]
movaps xmm7, xmmword [rsp + 0x30]
movaps xmm8, xmmword [rsp + 0x40]
movaps xmm9, xmmword [rsp + 0x50]
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]