Function at 0x140001740
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
mov r13, r9
mov r14d, r8d
mov rbx, rdx
mov rdi, rcx
mov rdx, qword [rsp + 0x298]
mov r12d, dword [rsp + 0x280]
mov rcx, qword [rsp + 0x270]
mov r9, qword [rsp + 0x260]
mov rax, qword [0x14016e028]
xor rax, rsp
mov qword [rsp + 0x1f0], rax
mov qword [rbx], 0
mov qword [rsp + 0x30], rdx
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], rcx
mov rcx, rdi
mov edx, r8d
mov r8, r13
call fcn.14004f080
test al, al
je 0x140001eaa
mov ebp, dword [rsp + 0x2a0]
lea rsi, [rdi + 0x300]
mov ecx, dword [0x140171588]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140001f80
movsxd rcx, dword [rdi + 0x300]
shl rcx, 4
mov qword [rax + rcx], rsi
mov ecx, dword [rdi + 0x304]
movsxd rdx, dword [rdi + 0x300]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov rcx, qword [rsp + 0x288]
mov rdx, qword [rsp + 0x278]
test ebp, 0x180
je 0x14000182d
mov eax, ebp
and eax, 0x800
je 0x14000182d
xor rdx, qword [rdi + 0x188]
mov qword [rsp + 0x78], rdx
movabs rdx, 0x7fffffffffffffff
mov rax, qword [rdi + 0x198]
mov r15, qword [rcx]
lea rcx, [rax + rdx]
add rcx, 2
cmp rcx, 2
jae 0x14000186a
cmp r15, rax
je 0x140001fc8
lea r15, [rdx + 1]
test rax, rax
cmovs r15, rdx
jmp 0x14000187c
xor ecx, ecx
cmp r15, rax
setns cl
add rcx, rdx
sub r15, rax
cmovo r15, rcx
test ebp, 0x410
jne 0x14000188a
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov cl, byte [r13]
test cl, 1
jne 0x140001897
xor ebp, ebp
jmp 0x1400018e1
mov rcx, rdi
call fcn.14006d970
mov ecx, dword [0x140171588]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140001fc1
movsxd rcx, dword [rdi + 0x2f0]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [rdi + 0x2f4]
jne 0x140001fc1
mov rbp, qword [rax + rcx]
mov cl, byte [r13]
test cl, 1
jne 0x140001a24
xor eax, eax
mov byte [rsp + 0x6f], r14b
xorps xmm0, xmm0
movaps xmmword [rsp + 0x90], xmm0
mov qword [rsp + 0xa0], 0
test cl, 0x10
mov qword [rsp + 0x80], rbx
jne 0x140001917
xor r14d, r14d
xor r12d, r12d
jmp 0x140001aef
mov qword [rsp + 0x70], rbp
mov ecx, 0x98
call fcn.14007a994
mov rsi, rax
mov rax, qword [rsp + 0x290]
mov r9, qword [rax]
mov eax, dword [rsp + 0x2a0]
mov dword [rsp + 0x60], eax
mov rax, qword [rsp + 0x298]
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x270]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x268]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x260]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r13
mov al, byte [rsp + 0x6f]
mov byte [rsp + 0x28], al
mov qword [rsp + 0x20], 0xffffffffffffffff
mov rcx, rsi
mov edx, r12d
mov r8, r15
call fcn.140032870
mov ebp, dword [r13 + 4]
mov r14b, 1
test ebp, ebp
je 0x1400019f3
xor ebx, ebx
test bpl, 1
jne 0x1400019c0
shr ebp, 1
add rbx, 8
test ebp, ebp
jne 0x1400019ae
jmp 0x1400019f3
call fcn.1400a8480
mov rax, qword [rax]
cmp qword [rax + rbx], 0
je 0x1400019b4
call fcn.1400a8480
mov rax, qword [rax]
mov rcx, qword [rax + rbx]
mov rax, qword [rcx]
mov rdx, rsi
call qword [rax + 8]
xor ecx, ecx
test al, al
jne 0x1400019ee
movzx ecx, r14b
mov r14d, ecx
jmp 0x1400019b4
xor r12d, r12d
test r14b, r14b
cmove r12, rsi
test rsi, rsi
je 0x140001ae4
test r14b, r14b
je 0x140001ae4
mov rcx, rsi
call fcn.14003bdc0
mov rcx, rsi
call fcn.14007a98c
jmp 0x140001cad
mov qword [rsp + 0x70], rbp
mov rbp, qword [rdi + 0x370]
test rbp, rbp
je 0x140001cc1
lea rsi, [rsp + 0xb0]
mov r8d, 0x98
mov rcx, rsi
mov dl, 0xaa
call fcn.14007f940
mov rax, qword [rsp + 0x290]
mov r9, qword [rax]
mov eax, dword [rsp + 0x2a0]
mov dword [rsp + 0x60], eax
mov rax, qword [rsp + 0x298]
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x270]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x268]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x260]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r13
mov byte [rsp + 0x28], r14b
mov qword [rsp + 0x20], 0xffffffffffffffff
mov rcx, rsi
mov edx, r12d
mov r8, r15
call fcn.140032870
cmp qword [rsp + 0x70], 0
setne dl
mov rcx, rsi
mov r8, rbx
call rbp
mov rcx, rsi
call fcn.14003bdc0
jmp 0x140001e70
mov al, byte [r13]
and al, 1
mov rbp, qword [rsp + 0x70]
test al, al
je 0x140001cad
test r14b, r14b
jne 0x140001cad
lea rcx, [rdi + 8]
test rbp, rbp
mov rbx, qword [rsp + 0x80]
mov qword [rsp + 0x70], rcx
je 0x140001ed1
mov rcx, qword [rbp + 0x18]
test rcx, rcx
mov r14d, dword [rsp + 0x280]
je 0x140001b97
cmp qword [rcx], 0x40
jne 0x140001c4d
mov rcx, qword [rbp + 0x10]
add rcx, 8
mov qword [rsp + 0x88], rcx
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140001faf
mov rcx, rbp
call fcn.140137a20
mov rsi, qword [rbp + 0x18]
mov qword [rbp + 0x18], 0
test rsi, rsi
je 0x140001b7c
mov rcx, rsi
call fcn.1400fde60
mov rcx, rsi
call fcn.14007a98c
mov rcx, qword [rsp + 0x88]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, qword [rbp + 0x18]
test rcx, rcx
jne 0x140001c4d
mov rcx, qword [rbp + 0x10]
add rcx, 8
mov r14, rcx
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140001f93
mov rax, qword [rbp + 0x10]
mov rcx, qword [rax + 0x20]
lea r8, [rbp + 0x20]
mov rax, qword [rcx]
lea rsi, [rsp + 0xb0]
mov rdx, rsi
call qword [rax + 8]
mov rax, qword [rsi]
mov qword [rsi], 0
mov rsi, qword [rbp + 0x18]
mov qword [rbp + 0x18], rax
test rsi, rsi
je 0x140001c1d
mov rcx, rsi
call fcn.1400fde60
mov rcx, rsi
call fcn.14007a98c
mov rsi, qword [rsp + 0xb0]
mov qword [rsp + 0xb0], 0
test rsi, rsi
je 0x140001c1d
mov rcx, rsi
call fcn.1400fde60
mov rcx, rsi
call fcn.14007a98c
mov rsi, qword [rbp + 0x10]
mov rcx, qword [rsi + 0x20]
mov rax, qword [rcx]
call qword [rax + 0x18]
test al, al
jne 0x140001efd
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, qword [rbp + 0x18]
test rcx, rcx
mov r14d, dword [rsp + 0x280]
je 0x140001cba
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rdx, [rsp + 0xb0]
mov qword [rdx], rax
call fcn.1400fe850
mov rsi, rax
test rbx, rbx
je 0x140001c93
test rsi, rsi
je 0x140001c93
mov eax, dword [rsp + 0xb0]
movzx ecx, word [rbp + 0x20]
mov rdx, qword [rbp + 0x18]
mov edx, dword [rdx + 0x2610]
mov dword [rbx], edx
shl eax, 0x1a
or eax, ecx
mov dword [rbx + 4], eax
test rsi, rsi
je 0x140001cba
test r12, r12
je 0x140001ccd
mov rcx, rsi
mov rdx, r12
call fcn.1400fe6f0
jmp 0x140001d45
mov rbx, qword [rsp + 0x80]
jmp 0x140001dc7
xor esi, esi
jmp 0x140001d45
mov al, 1
mov rbp, qword [rsp + 0x70]
jmp 0x1400018e3
mov rax, qword [rsp + 0x290]
mov r9, qword [rax]
mov eax, dword [rsp + 0x2a0]
mov dword [rsp + 0x60], eax
mov rax, qword [rsp + 0x298]
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x270]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x268]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x260]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r13
mov al, byte [rsp + 0x6f]
mov byte [rsp + 0x28], al
mov qword [rsp + 0x20], 0xffffffffffffffff
mov rcx, rsi
mov edx, r14d
mov r8, r15
call fcn.1400a91a0
mov rax, qword [rdi + 0x1a0]
test al, 8
je 0x140001db7
mov al, byte [rsp + 0x6f]
cmp al, 0x58
movzx eax, al
mov r8d, 0x42
cmovne r8d, eax
mov qword [rsp + 0x20], rsi
lea rdx, [rsp + 0xb0]
mov rcx, rdi
mov r9, qword [rsp + 0x288]
call fcn.140003710
cmp byte [rsp + 0xa7], 0
jns 0x140001d97
mov rcx, qword [rsp + 0x90]
call fcn.14007a98c
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0xa0], rax
movups xmm0, xmmword [rsp + 0xb0]
movaps xmmword [rsp + 0x90], xmm0
test rbp, rbp
jne 0x140001dc7
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
movzx esi, byte [rsp + 0xa7]
mov rbp, rsi
test sil, sil
jns 0x140001ddf
mov rbp, qword [rsp + 0x98]
test rbp, rbp
je 0x140001e44
mov ecx, 2
call fcn.14003c850
test al, al
je 0x140001e44
lea rdx, str..._.._base_trace_event_trace_log.cc
lea r15, [rsp + 0xb0]
mov rcx, r15
mov r8d, 0x549
mov r9d, 2
call fcn.1400a96d0
lea rcx, [rsp + 0xc0]
test sil, sil
jns 0x140001e2c
mov rdx, qword [rsp + 0x90]
jmp 0x140001e34
lea rdx, [rsp + 0x90]
mov r8, rbp
call fcn.14007076f
mov rcx, r15
call fcn.14000bec0
test r12, r12
je 0x140001e59
mov rcx, r12
call fcn.14003bdc0
mov rcx, r12
call fcn.14007a98c
cmp byte [rsp + 0xa7], 0
jns 0x140001e70
mov rcx, qword [rsp + 0x90]
call fcn.14007a98c
mov ecx, dword [0x140171588]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140001eaa
movsxd rcx, dword [rdi + 0x300]
shl rcx, 4
mov qword [rax + rcx], 0
mov ecx, dword [rdi + 0x304]
movsxd rdx, dword [rdi + 0x300]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov rcx, qword [rsp + 0x1f0]
xor rcx, rsp
call fcn.14007d5a0
mov rax, rbx
add rsp, 0x1f8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
mov r14d, dword [rsp + 0x280]
je 0x140001fa0
mov rcx, rdi
mov rdx, rbx
mov r8b, 1
call fcn.1400fe520
mov rsi, rax
jmp 0x140001c93
cmp qword [rsi + 0x180], 0
jne 0x140001f73
lea rcx, [rsp + 0xb0]
call fcn.14003c7a0
mov r8, rsi
mov rcx, qword [rsi + 0x198]
lea rax, [rsp + 0xb0]
mov rax, qword [rax]
movabs rsi, 0x7fffffffffffffff
lea rdx, [rsi + rcx]
add rdx, 2
cmp rdx, 2
jae 0x140001f57
cmp rax, rcx
je 0x140001fcb
lea rax, [rsi + 1]
test rcx, rcx
cmovs rax, rsi
jmp 0x140001f69
xor edx, edx
cmp rax, rcx
setns dl
add rdx, rsi
sub rax, rcx
cmovo rax, rdx
mov rsi, r8
mov qword [r8 + 0x180], rax
mov rcx, rsi
call fcn.14003b000
jmp 0x140001c33
test rsi, rsi
je 0x140001805
call fcn.140008040
jmp 0x1400017e1
mov rcx, r14
call fcn.140039d60
jmp 0x140001bb0
mov rcx, qword [rsp + 0x70]
call fcn.140039d60
jmp 0x140001ee7
mov rcx, qword [rsp + 0x88]
call fcn.140039d60
jmp 0x140001b53
xor ebp, ebp
jmp 0x1400018d4
int3
int3