Function at 0x14005db30
Capabilities:
Allocate thread local storage

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa8
movapd xmmword [rsp + 0x90], xmm7
movapd xmmword [rsp + 0x80], xmm6
mov rbx, rdx
mov rdi, rcx
mov rax, qword [0x140139028]
xor rax, rsp
mov qword [rsp + 0x78], rax
add rcx, 0x40
mov qword [rsp + 0x20], rcx
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14005e0a9
cmp byte [rdi + 0x1470], 0
jne 0x14005e0ee
call fcn.1400027f0
cmp byte [rbx + 2], 1
sete byte [rdi + 4]
sete al
cmp byte [rbx + 3], 1
sete dl
cmp qword [0x14013b510], 0xffffffffffffffff
setne cl
and cl, dl
mov byte [rdi + 0x10], cl
cmp byte [rbx + 0x18], 1
sete byte [rdi + 0x11]
cmp byte [rbx + 4], 1
sete byte [rdi + 0x12]
je 0x14005dc7a
cmp byte [rdi + 0x19c0], 0
jne 0x14005e0a6
test cl, cl
jne 0x14005dc66
mov dword [rdi + 0x14], 0
test al, al
jne 0x14005dc55
cmp byte [rbx + 1], 0
setne byte [rdi]
xorps xmm2, xmm2
movaps xmmword [rdi + 0x1450], xmm2
movaps xmmword [rdi + 0x1460], xmm2
lea r9, [0x140128167]
mov qword [rdi + 0x1448], r9
mov rax, rdi
not rax
mov qword [rdi + 0x1920], rax
mov r8d, 0x10
xor r10d, r10d
movabs rcx, 0x3ffffffffff
lea r11, [0x140119b98]
movsd xmm3, qword [0x140110bb8]
movdqa xmm0, xmmword [0x14011cf40]
movapd xmm1, xmmword [0x14011cf50]
jmp 0x14005dea8
mov qword [rdi + 8], 4
mov dword [rdi + 0x14], 4
jmp 0x14005dbeb
test al, al
jne 0x14005e0eb
mov dword [rdi + 0x14], 0
jmp 0x14005dbeb
movabs r12, 0xaaaaaaaaaaaaaaaa
mov rax, qword [rbx + 0x10]
mov qword [rdi + 0x1938], rax
mov rax, qword [rbx + 8]
mov qword [rdi + 0x1930], rax
lea rax, [rdi + 0x1940]
mov rcx, qword [rbx + 0x10]
mov qword [rdi + 0x1948], rcx
mov r15, qword [rbx + 8]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], r15
mov byte [rsp + 0x38], 1
mov qword [rsp + 0x40], 0
lea r14, [rsp + 0x70]
mov qword [r14], r12
mov edx, 8
mov rcx, r14
call fcn.14005d5b0
mov rax, qword [r14]
mov qword [rsp + 0x48], rax
mov qword [r14], r12
lea r14, [rsp + 0x70]
mov edx, 8
mov rcx, r14
call fcn.14005d5b0
mov rax, qword [r14]
mov qword [rsp + 0x50], rax
call fcn.14005d200
mov rdx, r15
shl rdx, 4
mov rcx, rax
xor r8d, r8d
call fcn.140001b10
mov qword [rsp + 0x58], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
test r15, r15
je 0x14005e0dc
lea r13, [rsp + 0x58]
cmp byte [rdi + 0x19c0], 0
jne 0x14005e0df
lea r14, [rsp + 0x28]
mov rax, qword [r14]
mov qword [rdi + 0x1978], rax
mov rax, qword [r14 + 8]
mov qword [rdi + 0x1980], rax
mov al, byte [r14 + 0x10]
mov byte [rdi + 0x1988], al
xorpd xmm6, xmm6
movapd xmmword [rdi + 0x1990], xmm6
xor ebp, ebp
mov qword [rdi + 0x19a0], rbp
lea r15, [rsp + 0x70]
mov qword [r15], r12
mov edx, 8
mov rcx, r15
call fcn.14005d5b0
mov rax, qword [r15]
mov qword [rdi + 0x1998], rax
mov qword [r15], r12
lea r15, [rsp + 0x70]
mov edx, 8
mov rcx, r15
call fcn.14005d5b0
mov rax, qword [r15]
mov qword [rdi + 0x19a0], rax
mov rax, qword [r14 + 0x30]
mov qword [rdi + 0x19a8], rax
mov rax, qword [r14 + 0x38]
mov qword [rdi + 0x19b0], rax
mov rax, qword [r14 + 0x40]
mov qword [rdi + 0x19b8], rax
mov qword [r13 + 0x10], rbp
movupd xmmword [r13], xmm6
mov byte [rdi + 0x19c0], 1
mov rcx, r14
call fcn.1400018a0
mov al, byte [rdi + 4]
mov cl, byte [rdi + 0x10]
jmp 0x14005dbd8
mov r8d, 0x3000
mov r12w, 3
xor ebp, ebp
movapd xmm4, xmm3
nop
mov rax, r8
xor edx, edx
div r15
mov eax, r12d
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 ebp, r12d
add r8, 0x1000
inc r12d
movapd xmm4, xmm5
cmp r8, 0x11000
jne 0x14005de10
cmp bp, 0x10
ja 0x14005e09d
movzx r8d, bp
lea rax, [rdi + r14*8]
add rax, 0x64
movzx edx, r8b
mov dword [rax], edx
mov r8, qword [r11 + r10*8 + 8]
inc r10
cmp r8, 1
je 0x14005defa
lea r14, [r10 + r10*4]
mov dword [rdi + r14*8 + 0x60], r8d
mov r15d, r8d
mov rax, rcx
xor edx, edx
div r15
inc rax
mov qword [rdi + r14*8 + 0x68], rax
mov qword [rdi + r14*8 + 0x48], r9
movups xmmword [rdi + r14*8 + 0x50], xmm2
movzx eax, byte [rdi + r14*8 + 0x64]
mov dword [rdi + r14*8 + 0x64], eax
cmp r8d, 0x10000
jbe 0x14005ddfd
test r8d, 0xff00000
jne 0x14005e0a0
shr r8d, 0xc
jmp 0x14005de8c
cmp r10, 0x7f
ja 0x14005dfdc
movabs rax, 0x40000000000
xorps xmm2, xmm2
movsd xmm3, qword [0x140110bb8]
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
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 0x14005df50
cmp dx, 0x10
ja 0x14005e0a3
movzx edx, dx
mov dword [rcx + 0x1c], edx
mov qword [rcx], 0
lea rcx, [r10 + 1]
cmp r10, 0x7f
mov r10, rcx
jb 0x14005df19
lea rcx, [0x14013b5a8]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14005e0b8
cmp byte [0x14014aee8], 0
je 0x14005e062
lea rcx, [0x14013b5a8]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp byte [rbx], 1
sete byte [rdi + 3]
je 0x14005e0c9
mov bl, 1
mov byte [rdi + 0x1470], bl
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
xor eax, eax
lock cmpxchg byte [0x14014ae94], bl
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.1400a19c0
movaps xmm6, xmmword [rsp + 0x80]
movaps xmm7, xmmword [rsp + 0x90]
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp qword [0x1401509d8], 0
jne 0x14005e0d6
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
cmp eax, 0xffffffff
je 0x14005e0d9
mov dword [0x14014ae98], eax
mov dword [0x1401509e0], eax
lea rax, [0x140018cb0]
mov qword [0x1401509d8], rax
mov byte [0x14014aee8], 1
jmp 0x14005dffa
int3
int3
int3
int3
mov rcx, qword [rsp + 0x20]
call fcn.140063900
jmp 0x14005db81
lea rcx, [0x14013b5a8]
call fcn.140063900
jmp 0x14005dff1
mov rcx, rdi
call fcn.140054cc0
jmp 0x14005e014
int3
int3
int3
mov byte [rdi + 0x19c0], 0
jmp 0x14005dd41
int3
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.1400a19c0
mov rcx, qword [rsp + 0x20]
movaps xmm6, xmmword [rsp + 0x80]
movaps xmm7, xmmword [rsp + 0x90]
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]