Function at 0x140103fa0
Capabilities:
Get thread local storage value

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1c0
movaps xmmword [rsp + 0x1b0], xmm6
mov rax, qword [0x14029a038]
xor rax, rsp
mov qword [rsp + 0x1a8], rax
cmp byte [rdx], 0
je 0x1401040ea
mov rbx, r9
mov r14, r8
mov rdi, rdx
mov rsi, rcx
mov eax, dword [0x1402a27bc]
mov ecx, dword [0x14029dfe4]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14010437f
cmp byte [0x1402a27b8], 0
je 0x14010443f
lea rcx, [rsp + 0x48]
call fcn.1401044a0
mov rax, qword [0x14029bf90]
lea rcx, [0x140179e10]
lea r15, [rsp + 0x50]
cmp rax, rcx
jne 0x14010441b
mov qword [r15], 0
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [r15]
movabs rcx, 0x8637bd05af6
cmp rax, rcx
jg 0x140104462
imul rax, rax, 0xf4240
cqo
idiv qword [0x1402a2810]
mov qword [rsp + 0x50], rax
movabs r15, 0x7fffffffffffffff
mov rcx, qword [rsi + 0x1b0]
lea rdx, [rcx + r15]
add rdx, 2
cmp rdx, 2
jb 0x14010444d
xor edx, edx
cmp rax, rcx
setns dl
add rdx, r15
sub rax, rcx
cmovo rax, rdx
mov qword [rsp + 0x40], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp byte [rdi], 0
je 0x1401040ea
mov ebp, eax
mov ecx, dword [0x14029bf80]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140104114
mov rcx, qword [rsi + 0x330]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [rsi + 0x338]
jne 0x140104114
cmp qword [rax + rcx], 0
je 0x140104114
mov rcx, qword [rsp + 0x1a8]
xor rcx, rsp
call fcn.14017e7b0
movaps xmm6, xmmword [rsp + 0x1b0]
add rsp, 0x1c0
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
lea r12, [rsi + 0x330]
mov ecx, dword [0x14029bf80]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14010442c
mov rcx, qword [rsi + 0x330]
shl rcx, 4
mov qword [rax + rcx], r12
mov ecx, dword [rsi + 0x338]
mov rdx, qword [rsi + 0x330]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov al, byte [rdi]
test al, 8
je 0x140104168
mov rcx, rdi
mov rdx, r14
call fcn.1401b9830
mov al, byte [rdi]
test al, 1
jne 0x1401041e9
xorps xmm0, xmm0
movaps xmmword [rsp + 0x190], xmm0
mov qword [rsp + 0x1a0], 0
xor eax, eax
xor r15d, r15d
mov ecx, r15d
and cl, 0x7f
test r15b, r15b
movzx ebx, cl
cmovs rbx, rax
test rbx, rbx
je 0x14010427f
cmp dword [0x1402a0cb8], 2
jg 0x14010427f
lea rdx, str....._base_trace_event_trace_log.cc
lea r14, [rsp + 0x50]
mov rcx, r14
mov r8d, 0x80d
mov r9d, 2
call fcn.140001120
lea rcx, [rsp + 0x60]
test r15b, r15b
jns 0x140104267
mov rdx, qword [rsp + 0x190]
jmp 0x14010426f
mov rax, qword [rsi + 0x3b8]
test rax, rax
je 0x1401042a7
lea rcx, [rsp + 0x48]
mov qword [rsp + 0x30], rcx
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x28], rcx
mov byte [rsp + 0x20], 0
mov rcx, rdi
mov rdx, r14
mov r8, rbx
mov r9d, ebp
call qword [case.0x1401e7f70.0]
mov ecx, dword [0x14029bf80]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1401040ea
mov rcx, qword [rsi + 0x330]
shl rcx, 4
mov qword [rax + rcx], 0
mov ecx, dword [rsi + 0x338]
mov rdx, qword [rsi + 0x330]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
jmp 0x1401040ea
lea rdx, [rsp + 0x190]
mov r8, rbx
call fcn.1401b98e0
mov rcx, r14
call fcn.140001210
test byte [rdi], 0x10
jne 0x14010429d
cmp byte [rsp + 0x1a7], 0
jns 0x140104224
mov rcx, qword [rsp + 0x190]
call fcn.14017b254
jmp 0x140104224
mov rdx, rdi
call fcn.1401b9a30
jmp 0x140104284
xorps xmm0, xmm0
movaps xmmword [rsp + 0x190], xmm0
mov qword [rsp + 0x1a0], 0
movabs rax, 0xaaaaaaaaaaaaaa00
lea r8, [rsp + 0x50]
mov qword [r8 + 8], rax
lea rax, [rsi + 8]
mov qword [r8], rax
mov rcx, rsi
mov rdx, rbx
call fcn.1401b9aa0
test rax, rax
je 0x14010432e
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rax]
xor r8d, r8d
cmp rcx, rdx
setns r8b
add r8, r15
sub rcx, rdx
cmovo rcx, r8
mov qword [rax + 0x10], rcx
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x14010432e
mov rdx, qword [rsp + 0x48]
xor r8d, r8d
cmp rdx, rcx
setns r8b
add r8, r15
sub rdx, rcx
cmovo rdx, r8
mov qword [rax + 0x18], rdx
mov ecx, dword [rsi + 0x1b8]
test cl, 8
jne 0x140104360
cmp byte [rsp + 0x58], 0
je 0x14010434b
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov r15b, byte [rsp + 0x1a7]
mov rax, qword [rsp + 0x198]
jmp 0x140104188
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x190]
lea r9, [rsp + 0x40]
mov rcx, rsi
mov r8b, 0x45
call fcn.1401b9bc0
jmp 0x140104339
lea rcx, [0x1402a27bc]
call fcn.14017b2bc
cmp dword [0x1402a27bc], 0xffffffff
jne 0x140104005
lea r15, [rsp + 0x80]
xorps xmm6, xmm6
movups xmmword [r15 - 0x15], xmm6
movaps xmmword [r15 - 0x20], xmm6
movaps xmmword [r15 - 0x30], xmm6
lea rdx, str.unknown
mov rcx, r15
call fcn.1401bae30
movups xmmword [r15 + 0x18], xmm6
mov qword [r15 + 0x28], 0
lea r15, [rsp + 0x50]
mov rcx, r15
xor edx, edx
call fcn.140002a80
mov bpl, byte [r15 + 0x29]
cmp byte [r15 + 0x5f], 0
jns 0x1401043f5
mov rcx, qword [rsp + 0x98]
call fcn.14017b254
cmp byte [rsp + 0x97], 0
js 0x140104489
mov byte [0x1402a27b8], bpl
lea rcx, [0x1402a27bc]
call fcn.14017b25c
jmp 0x140104005
mov rcx, r15
call qword [case.0x1401e7f70.0]
mov rax, qword [r15]
jmp 0x140104073
test r12, r12
je 0x140104155
call fcn.140002990
jmp 0x140104131
mov qword [rsp + 0x48], 0
jmp 0x14010401c
cmp rax, rcx
je 0x14010449b
lea rax, [r15 + 1]
test rcx, rcx
cmovs rax, r15
jmp 0x1401040a8
mov rcx, qword [0x1402a2810]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x14010406e
mov rcx, qword [rsp + 0x80]
call fcn.14017b254
jmp 0x140104403
int3