Function at 0x1400115c0
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, 0x208
mov r15, r9
mov r14, r8
mov r12, rdx
mov r13d, ecx
mov ebp, dword [rsp + 0x298]
mov rax, qword [0x140163028]
xor rax, rsp
mov qword [rsp + 0x200], rax
mov eax, dword [0x140169888]
mov ecx, dword [0x1401666f4]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140011de8
mov rbx, qword [rsp + 0x290]
mov edi, dword [rsp + 0x280]
mov rsi, qword [rsp + 0x270]
test ebp, 0x410
jne 0x140011bc7
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp eax, edi
jne 0x140011bc7
mov eax, dword [0x1401694b0]
mov ecx, dword [0x1401666f4]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140011e1e
cmp byte [0x1401694ac], 0
je 0x140011bc7
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov qword [rsp + 0xc0], 0
lea rdx, [rsp + 0xc0]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_QueryThreadCycleTime]
call fcn.1400016f0
xorpd xmm1, xmm1
ucomisd xmm0, xmm1
jne 0x1400116b8
jnp 0x140011bc7
movsd xmm1, qword [rsp + 0xc0]
unpcklps xmm1, xmmword [0x1401494c0]
subpd xmm1, xmmword [0x1401494d0]
movapd xmm2, xmm1
unpckhpd xmm2, xmm1
addsd xmm2, xmm1
divsd xmm2, xmm0
mulsd xmm2, qword [0x1401494e0]
cvttsd2si rax, xmm2
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x98], 0
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rsi
lea rcx, [0x1401694f0]
mov edx, r13d
mov r8, r12
mov r9, r14
call fcn.140012720
test al, al
je 0x140011fe2
mov byte [rsp + 0x77], r13b
mov ecx, dword [0x140166310]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140011e9d
mov rbx, qword [rsp + 0x288]
movabs rdi, 0x7fffffffffffffff
lea rcx, [0x1401697f8]
movsxd rdx, dword [0x1401697f8]
shl rdx, 4
mov qword [rax + rdx], rcx
mov ecx, dword [0x1401697fc]
movsxd rdx, dword [0x1401697f8]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
xor eax, eax
mov r13d, 0
test ebp, 0x800
je 0x14001179b
mov r13, qword [0x140169680]
test ebp, 0x180
cmove r13, rax
mov rax, qword [0x140169690]
mov rsi, qword [rbx]
lea rcx, [rax + rdi]
add rcx, 2
cmp rcx, 2
jae 0x1400117d3
cmp rsi, rax
je 0x140011ed7
lea rsi, [rdi + 1]
test rax, rax
cmovs rsi, rdi
jmp 0x1400117e5
xor ecx, ecx
cmp rsi, rax
setns cl
add rcx, rdi
sub rsi, rax
cmovo rsi, rcx
mov rdi, qword [rsp + 0x278]
test ebp, 0x410
jne 0x1400117fb
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
xor r13, rdi
mov al, byte [r12]
test al, 1
jne 0x140011939
xor ebx, ebx
xor ecx, ecx
xorpd xmm0, xmm0
movapd xmmword [rsp + 0xa0], xmm0
mov qword [rsp + 0xb0], 0
test al, 0x10
mov qword [rsp + 0x78], rbx
jne 0x140011a86
xor ebp, ebp
test cl, cl
je 0x140011f4e
test rbx, rbx
je 0x140011bce
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x140011c7d
cmp qword [rax], 0x40
je 0x140011c10
mov rcx, qword [rax]
lea rdx, [rcx + 1]
mov qword [rax], rdx
imul rdx, rcx, 0x98
lea rdi, [rax + rdx]
add rdi, 0x10
movzx eax, word [rbx + 0x20]
mov rdx, qword [rbx + 0x18]
mov edx, dword [rdx + 0x2610]
mov dword [rsp + 0x98], edx
shl ecx, 0x1a
or ecx, eax
mov dword [rsp + 0x9c], ecx
test rbp, rbp
je 0x140011b1e
mov rcx, rdi
mov rdx, rbp
call fcn.140012e00
mov r14b, byte [rsp + 0x77]
mov rbx, qword [rsp + 0x78]
mov rax, qword [0x140169698]
test al, 8
je 0x14001191e
cmp r14b, 0x58
movzx eax, r14b
mov edx, 0x42
cmovne edx, eax
lea rcx, [rsp + 0xc0]
mov r8, qword [rsp + 0x288]
mov r9, rdi
call fcn.1400134e0
cmp byte [rsp + 0xb7], 0
js 0x140011b90
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0xb0], rax
movupd xmm0, xmmword [rsp + 0xc0]
movapd xmmword [rsp + 0xa0], xmm0
mov rbx, qword [rsp + 0x78]
test rbx, rbx
jne 0x140011f4e
lea rcx, [0x1401694f8]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x140011f4e
lea rcx, [0x1401694f0]
call fcn.140012b60
mov ecx, dword [0x140166310]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140011de1
movsxd rcx, dword [0x1401697e8]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x1401697ec]
jne 0x140011de1
mov rbx, qword [rax + rcx]
mov al, byte [r12]
test al, 1
je 0x14001180c
mov rdi, qword [0x140169868]
test rdi, rdi
je 0x140011b89
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x150], rax
movapd xmm0, xmmword [0x140141df0]
movapd xmmword [rsp + 0x140], xmm0
movapd xmmword [rsp + 0x130], xmm0
movapd xmmword [rsp + 0x120], xmm0
movapd xmmword [rsp + 0x110], xmm0
movapd xmmword [rsp + 0x100], xmm0
movapd xmmword [rsp + 0xf0], xmm0
movapd xmmword [rsp + 0xe0], xmm0
movapd xmmword [rsp + 0xd0], xmm0
movapd xmmword [rsp + 0xc0], xmm0
mov dword [rsp + 0x60], ebp
mov rax, qword [rsp + 0x290]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x50], r13
mov rax, qword [rsp + 0x270]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r12
mov al, byte [rsp + 0x77]
mov byte [rsp + 0x28], al
mov qword [rsp + 0x20], 0xffffffffffffffff
lea rbp, [rsp + 0xc0]
mov rcx, rbp
mov edx, dword [rsp + 0x280]
mov r8, rsi
mov r9, qword [rsp + 0x80]
call fcn.140012230
test rbx, rbx
setne dl
lea r8, [rsp + 0x98]
mov rcx, rbp
call rdi
mov rcx, rbp
call fcn.140012140
jmp 0x140011fa8
mov ecx, 0x98
call fcn.140105030
mov rbp, rax
mov eax, dword [rsp + 0x298]
mov dword [rsp + 0x60], eax
mov rax, qword [rsp + 0x290]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x50], r13
mov rax, qword [rsp + 0x270]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x88], r15
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x90], r14
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r12
mov al, byte [rsp + 0x77]
mov byte [rsp + 0x28], al
mov qword [rsp + 0x20], 0xffffffffffffffff
mov rcx, rbp
mov edx, dword [rsp + 0x280]
mov r8, rsi
mov r9, qword [rsp + 0x80]
call fcn.140012230
mov edi, dword [r12 + 4]
test edi, edi
je 0x140011f3c
mov r15b, 1
xor ebx, ebx
jmp 0x140011efa
mov eax, dword [rsp + 0x298]
mov dword [rsp + 0x60], eax
mov rax, qword [rsp + 0x290]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x50], r13
mov rax, qword [rsp + 0x270]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r12
mov r14b, byte [rsp + 0x77]
mov byte [rsp + 0x28], r14b
mov qword [rsp + 0x20], 0xffffffffffffffff
mov rcx, rdi
mov edx, dword [rsp + 0x280]
mov r8, rsi
mov r9, qword [rsp + 0x80]
call fcn.140012f50
jmp 0x1400118b1
mov cl, 1
jmp 0x14001180e
mov rax, qword [rsp + 0xa0]
mov byte [rax], 0
mov qword [rsp + 0xa8], 0
cmp byte [rsp + 0xb7], 0
jns 0x1400118f7
mov rcx, qword [rsp + 0xa0]
call fcn.140105028
jmp 0x1400118f7
xor eax, eax
jmp 0x1400116ed
lea rcx, [0x1401694f8]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140011eb9
lea rcx, [0x1401694f0]
lea rdx, [rsp + 0x98]
mov r8b, 1
call fcn.140013db0
mov rdi, rax
test rax, rax
mov rbx, qword [rsp + 0x78]
jne 0x140011898
jmp 0x140011db7
mov qword [rsp + 0x88], r15
mov rcx, qword [rbx + 0x10]
add rcx, 8
mov r15, rcx
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140011eca
mov rcx, rbx
call fcn.140013470
mov rdi, qword [rbx + 0x18]
mov qword [rbx + 0x18], 0
test rdi, rdi
je 0x140011c5a
mov rcx, rdi
call fcn.140013130
mov rcx, rdi
call fcn.140105028
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rbx, qword [rsp + 0x78]
mov rax, qword [rbx + 0x18]
test rax, rax
mov r15, qword [rsp + 0x88]
jne 0x14001185e
mov rcx, qword [rbx + 0x10]
add rcx, 8
mov qword [rsp + 0x90], rcx
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140011ea7
mov qword [rsp + 0x88], r15
mov rax, qword [rbx + 0x10]
mov rcx, qword [rax + 0x20]
lea r8, [rbx + 0x20]
mov rax, qword [rcx]
lea rdi, [rsp + 0xc0]
mov rdx, rdi
call qword [rax + 8]
mov rax, qword [rdi]
mov qword [rdi], 0
mov rdi, qword [rbx + 0x18]
mov qword [rbx + 0x18], rax
test rdi, rdi
je 0x140011d10
mov rcx, rdi
call fcn.140013130
mov rcx, rdi
call fcn.140105028
mov rdi, qword [rsp + 0xc0]
mov qword [rsp + 0xc0], 0
test rdi, rdi
je 0x140011d10
mov rcx, rdi
call fcn.140013130
mov rcx, rdi
call fcn.140105028
mov rax, qword [rsp + 0x78]
mov rdi, qword [rax + 0x10]
mov rcx, qword [rdi + 0x20]
mov rax, qword [rcx]
call qword [rax + 0x18]
test al, al
je 0x140011d8f
cmp qword [rdi + 0x188], 0
jne 0x140011d87
lea r15, [rsp + 0xc0]
mov rcx, r15
call fcn.140011510
mov rcx, qword [rdi + 0x1a0]
mov rax, qword [r15]
movabs rdx, 0x7fffffffffffffff
add rdx, rcx
add rdx, 2
cmp rdx, 2
jae 0x140011dc3
cmp rax, rcx
je 0x140011eda
movabs rdx, 0x7fffffffffffffff
lea rax, [rdx + 1]
test rcx, rcx
cmovs rax, rdx
mov qword [rdi + 0x188], rax
mov rcx, rdi
call fcn.140013f80
mov rcx, qword [rsp + 0x90]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rbx, qword [rsp + 0x78]
mov rax, qword [rbx + 0x18]
test rax, rax
mov r15, qword [rsp + 0x88]
jne 0x14001185e
xor edi, edi
mov r14b, byte [rsp + 0x77]
jmp 0x1400118b6
xor edx, edx
cmp rax, rcx
setns dl
movabs rbx, 0x7fffffffffffffff
add rdx, rbx
sub rax, rcx
cmovo rax, rdx
jmp 0x140011d80
xor ebx, ebx
jmp 0x14001197a
lea rcx, [0x140169888]
call fcn.1401050e8
cmp dword [0x140169888], 0xffffffff
jne 0x14001161d
lea rcx, [0x1401694f0]
call fcn.14002e9c0
lea rcx, [0x140169888]
call fcn.1401052d4
jmp 0x14001161d
lea rcx, [0x1401694b0]
call fcn.1401050e8
cmp dword [0x1401694b0], 0xffffffff
jne 0x140011673
mov eax, r13d
mov r13d, ebp
mov ebp, eax
lea rdi, [rsp + 0xc0]
mov rcx, rdi
call fcn.140001340
mov bl, byte [rdi + 0x27]
cmp byte [rdi + 0x5f], 0
jns 0x140011e65
mov rcx, qword [rsp + 0x108]
call fcn.140105028
cmp byte [rsp + 0x107], 0
js 0x140011edd
mov byte [0x1401694ac], bl
lea rcx, [0x1401694b0]
call fcn.1401052d4
mov eax, ebp
mov ebp, r13d
mov r13d, eax
mov edi, dword [rsp + 0x280]
mov rbx, qword [rsp + 0x290]
jmp 0x140011673
call fcn.140021dc0
jmp 0x140011747
mov rcx, qword [rsp + 0x90]
call fcn.1400071b0
jmp 0x140011c9b
lea rcx, [0x1401694f8]
call fcn.1400071b0
jmp 0x140011be3
mov rcx, r15
call fcn.1400071b0
jmp 0x140011c31
int3
int3
mov rcx, qword [rsp + 0xf0]
call fcn.140105028
jmp 0x140011e6f
shr edi, 1
add rbx, 8
test edi, edi
je 0x140011f33
test dil, 1
je 0x140011ef0
call fcn.1400120c0
mov rax, qword [rax]
cmp qword [rax + rbx], 0
je 0x140011ef0
call fcn.1400120c0
mov rax, qword [rax]
mov rcx, qword [rax + rbx]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 8]
xor ecx, ecx
test al, al
jne 0x140011f2e
movzx ecx, r15b
mov r15d, ecx
jmp 0x140011ef0
test r15b, r15b
je 0x140012011
mov rcx, rbp
call fcn.140012140
mov rcx, rbp
call fcn.140105028
xor ebp, ebp
movzx ebx, byte [rsp + 0xb7]
mov rsi, rbx
test bl, bl
jns 0x140011f65
mov rsi, qword [rsp + 0xa8]
test rsi, rsi
je 0x140011f7c
mov ecx, 2
call fcn.1400120a0
test al, al
jne 0x14001203a
test rbp, rbp
je 0x140011f91
mov rcx, rbp
call fcn.140012140
mov rcx, rbp
call fcn.140105028
cmp byte [rsp + 0xb7], 0
jns 0x140011fa8
mov rcx, qword [rsp + 0xa0]
call fcn.140105028
mov ecx, dword [0x140166310]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140011fe2
movsxd rcx, dword [0x1401697f8]
shl rcx, 4
mov qword [rax + rcx], 0
mov ecx, dword [0x1401697fc]
movsxd rdx, dword [0x1401697f8]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov rsi, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x200]
xor rcx, rsp
call fcn.140107cc0
mov rax, rsi
add rsp, 0x208
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov cl, byte [r12]
and cl, 1
mov r14, qword [rsp + 0x90]
mov r15, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x78]
test cl, cl
jne 0x14001183e
jmp 0x140011f4e
lea rdx, str..._.._base_trace_event_trace_log.cc
lea rdi, [rsp + 0xc0]
mov rcx, rdi
mov r8d, 0x552
mov r9d, 2
call fcn.140014890
lea rcx, [rsp + 0xd0]
test bl, bl
jns 0x140012073
mov rdx, qword [rsp + 0xa0]
jmp 0x14001207b
lea rdx, [rsp + 0xa0]
mov r8, rsi
call fcn.140013aee
mov rcx, rdi
call fcn.140014e70
test rbp, rbp
jne 0x140011f81
jmp 0x140011f91