Function at 0x140144170
Capabilities:
Get thread local storage value

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1f8
movaps xmmword [rsp + 0x1e0], xmm6
mov rbx, r8
mov rax, qword [0x14029a038]
xor rax, rsp
mov qword [rsp + 0x1d8], rax
cmp qword [rcx + 0x10], 0
jne 0x140144720
mov rsi, r9
mov r15, rdx
mov r14, rcx
movaps xmm6, xmmword [0x140270690]
movaps xmmword [rsp + 0x50], xmm6
movaps xmmword [rsp + 0x60], xmm6
movaps xmmword [rsp + 0x100], xmm6
movaps xmmword [rsp + 0x110], xmm6
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x120], rax
mov r12, qword [0x14029d628]
mov rax, qword [fcn.1401193e0]
lea rcx, [0x140179e10]
cmp rax, rcx
jne 0x1401447c3
lea rdi, [rsp + 0x130]
mov qword [rdi], 0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rdi]
movabs rcx, 0x8637bd05af6
cmp rax, rcx
jg 0x1401447f5
imul rax, rax, 0xf4240
cqo
idiv qword [0x1402a2810]
mov qword [rsp + 0x48], rax
mov rdi, qword [rbx]
mov qword [rbx], 0
test rsi, rsi
jne 0x1401446ba
xor esi, esi
movups xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 0x10]
movaps xmmword [rsp + 0x60], xmm1
movaps xmmword [rsp + 0x50], xmm0
xorps xmm0, xmm0
movups xmmword [rsp + 0x104], xmm0
movups xmmword [rsp + 0x114], xmm0
mov dword [rsp + 0x124], 0
mov ebp, 1
lock xadd dword [0x1402a5238], ebp
mov r15, qword [r14 + 0x10]
mov r14, qword [r14 + 0x18]
test r14, r14
je 0x1401442ad
lock inc dword [r14 + 8]
mov qword [rsp + 0x80], rdi
movaps xmm0, xmmword [rsp + 0x50]
movaps xmm1, xmmword [rsp + 0x60]
movups xmmword [rsp + 0x88], xmm0
movups xmmword [rsp + 0x98], xmm1
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0xb0], rsi
mov qword [rsp + 0xb8], r12
mov dword [rsp + 0xc0], 0
mov rax, qword [rsp + 0x120]
mov qword [rsp + 0xe4], rax
movaps xmm0, xmmword [rsp + 0x100]
movaps xmm1, xmmword [rsp + 0x110]
movups xmmword [rsp + 0xd4], xmm1
movups xmmword [rsp + 0xc4], xmm0
mov dword [rsp + 0xec], 0xaaaaaaaa
mov qword [rsp + 0xf0], 0
mov dword [rsp + 0xf8], ebp
mov byte [rsp + 0xfc], 0
mov rax, qword [r15]
mov rax, qword [rax + 0x10]
lea rcx, [0x1400cd320]
cmp rax, rcx
jne 0x1401447d9
test rdi, rdi
je 0x1401447f2
lea r12, [rsp + 0xa8]
lea rax, [r15 - 0x18]
mov qword [rsp + 0x40], rax
movaps xmmword [rsp + 0x1c0], xmm6
movaps xmmword [rsp + 0x1b0], xmm6
mov eax, 3
mov rcx, qword [r12 - 0x18]
nop word cs:[rax + rax]
movzx edx, byte [rcx + rax - 3]
mov byte [rsp + rax + 0x1ad], dl
test dl, dl
je 0x1401443f1
movzx edx, byte [rcx + rax - 2]
mov byte [rsp + rax + 0x1ae], dl
test dl, dl
je 0x1401443f1
movzx edx, byte [rcx + rax - 1]
mov byte [rsp + rax + 0x1af], dl
test dl, dl
je 0x1401443f1
movzx edx, byte [rcx + rax]
mov byte [rsp + rax + 0x1b0], dl
test dl, dl
je 0x1401443f1
add rax, 4
cmp rax, 0x23
jne 0x1401443a0
mov byte [rsp + 0x1cf], 0
lea rcx, [rsp + 0x1b0]
call fcn.140110840
mov r13, qword [r15 + 8]
mov al, byte [r14 + 0x16]
mov rcx, qword [r13 + 0x30]
mov ecx, dword [rcx]
test cl, 1
jne 0x1401446eb
test byte [0x14029c830], 0x19
jne 0x14014481c
cmp qword [rsp + 0xc8], 0
jne 0x140144532
mov eax, dword [0x1402a54e0]
mov ecx, dword [0x14029dfe4]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140144727
mov ecx, dword [0x14029bf80]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14014449e
mov rcx, qword [0x1402a54d0]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x1402a54d8]
jne 0x14014449e
mov rax, qword [rax + rcx]
test rax, rax
je 0x14014449e
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0xf0], rcx
mov eax, dword [rax + 8]
mov dword [rsp + 0xe8], eax
mov eax, dword [0x1402a54b0]
mov ecx, dword [0x14029dfe4]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140144775
mov ecx, dword [0x14029bf80]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140144532
mov rcx, qword [0x1402a54a0]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x1402a54a8]
jne 0x140144532
mov rax, qword [rax + rcx]
test rax, rax
je 0x140144532
mov rcx, qword [rax + 0x20]
mov qword [rsp + 0xc8], rcx
movups xmm0, xmmword [rax + 0x48]
mov rcx, qword [rax + 0x58]
mov qword [rsp + 0xe0], rcx
movups xmmword [rsp + 0xd0], xmm0
cmp byte [rax + 0x7c], 0
jne 0x14014469b
cmp qword [rax + 0x60], 0
setne al
mov byte [rsp + 0xfc], al
test rsi, rsi
je 0x140144632
mov rbp, qword [r14 + 0x38]
test rbp, rbp
je 0x140144548
lock inc dword [rbp + 8]
add r15, 0x98
mov ecx, 0x38
call fcn.14017b1d8
mov dword [rax], 1
lea rcx, [0x140075dd0]
mov qword [rax + 8], rcx
lea rcx, [0x1400cd550]
mov qword [rax + 0x10], rcx
lea rcx, [0x1401df3a0]
mov qword [rax + 0x18], rcx
mov qword [rax + 0x28], r14
mov rcx, qword [rsp + 0x40]
mov qword [rax + 0x30], rcx
lea r8, [rsp + 0x78]
mov qword [r8], rax
lea rax, [rsp + 0x158]
mov qword [rax - 0x28], rdi
mov qword [rsp + 0x80], 0
lea rcx, [rsp + 0x88]
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rax - 0x10], xmm1
movups xmmword [rax - 0x20], xmm0
mov ecx, 0xa
mov rdi, rax
mov rsi, r12
rep movsq qword [rdi], qword [rsi]
mov ecx, dword [r12 + 0x50]
mov dword [rax + 0x50], ecx
mov cl, byte [r12 + 0x54]
mov byte [rax + 0x54], cl
lea rdx, [rsp + 0x130]
mov rcx, r15
mov r9, rbp
call fcn.140014830
mov sil, 1
mov rcx, qword [rbx]
test rcx, rcx
jne 0x1401446a2
mov rcx, qword [rsp + 0x1d8]
xor rcx, rsp
call fcn.14017e7b0
mov eax, esi
movaps xmm6, xmmword [rsp + 0x1e0]
add rsp, 0x1f8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rax, [rsp + 0x158]
mov qword [rax - 0x28], rdi
mov qword [rsp + 0x80], 0
lea rcx, [rsp + 0x88]
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rax - 0x10], xmm1
movups xmmword [rax - 0x20], xmm0
mov ecx, 0xa
mov rdi, rax
mov rsi, r12
rep movsq qword [rdi], qword [rsi]
mov ecx, dword [r12 + 0x50]
mov dword [rax + 0x50], ecx
mov cl, byte [r12 + 0x54]
mov byte [rax + 0x54], cl
lea rdx, [rsp + 0x130]
mov rcx, qword [rsp + 0x40]
mov r8, r14
call fcn.1401449f0
mov esi, eax
jmp 0x1401445f8
mov al, 1
jmp 0x14014452b
lock dec dword [rcx]
jne 0x140144604
mov rax, qword [rcx + 0x10]
call qword [case.0x1401e7f70.0]
jmp 0x140144604
movabs rcx, 0x8000000000000001
lea rdx, [rsi + rcx]
cmp rdx, 2
jb 0x1401448a2
lea rcx, [rax + rsi]
sar rcx, 0x3f
btc rcx, 0x3f
add rsi, rax
cmovo rsi, rcx
jmp 0x14014425d
and al, 0x7f
cmp al, 2
je 0x1401448bb
lock dec dword [rdi]
jne 0x140144707
mov rax, qword [rdi + 0x10]
mov rcx, rdi
call qword [case.0x1401e7f70.0]
test r14, r14
je 0x140144720
lock dec dword [r14 + 8]
jne 0x140144720
mov rcx, r14
mov edx, 1
call fcn.140152dc0
xor esi, esi
jmp 0x1401445f8
lea rcx, [0x1402a54e0]
call fcn.14017b2bc
cmp dword [0x1402a54e0], 0xffffffff
jne 0x140144456
mov qword [0x1402a54d8], 0
lea rcx, [0x1402a54d0]
mov qword [0x1402a54d0], 0xffffffffffffffff
xor edx, edx
call fcn.140002850
lea rcx, [0x1402a54e0]
call fcn.14017b25c
jmp 0x140144456
lea rcx, [0x1402a54b0]
call fcn.14017b2bc
cmp dword [0x1402a54b0], 0xffffffff
jne 0x1401444c3
mov qword [0x1402a54a8], 0
lea rcx, [0x1402a54a0]
mov qword [0x1402a54a0], 0xffffffffffffffff
xor edx, edx
call fcn.140002850
lea rcx, [0x1402a54b0]
call fcn.14017b25c
jmp 0x1401444c3
lea rdi, [rsp + 0x48]
mov rcx, rdi
call qword [case.0x1401e7f70.0]
mov rax, qword [rdi]
jmp 0x140144248
lea rdx, [rsp + 0x80]
mov rcx, r15
mov r8, r14
call qword [case.0x1401e7f70.0]
jmp 0x140144694
int3
mov rcx, qword [0x1402a2810]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x140144243
add r13d, 8
shl rbp, 0x20
and r13d, 0xfffffff8
or r13, rbp
xor r13, qword [0x14029f540]
lea rax, [0x140074fa0]
lea rbp, [rsp + 0x130]
mov qword [rbp + 0x18], rax
lea rax, [0x140278c88]
mov qword [rbp + 0x20], rax
mov qword [rbp + 8], r13
mov qword [rsp + 0x28], rbp
mov qword [rsp + 0x20], 0
lea rdx, [0x14029c830]
lea r8, str.ThreadPool_PostTask
lea r9, [0x1402780e8]
mov cl, 0x49
call fcn.140075040
mov rax, qword [rbp + 0x20]
mov rax, qword [rax + 8]
test rax, rax
je 0x140144422
mov rcx, qword [rsp + 0x138]
call qword [case.0x1401e7f70.0]
jmp 0x140144422
add rcx, rax
cmp rcx, 1
ja 0x14014425d
cmp rax, rsi
je 0x14014425d
int3
test rsi, rsi
jne 0x1401446f5
lea rcx, [r13 + 0x70]
mov qword [rsp + 0x38], rcx
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1401448e7
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x140144415
mov rcx, qword [rsp + 0x38]
call fcn.1400fdfc0
jmp 0x1401448d7