Function at 0x1008aff0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x100
mov esi, ecx
mov ecx, dword [ebp + 8]
mov eax, dword [0x101b9014]
xor eax, ebp
mov dword [esp + 0xf8], eax
cmp byte [ecx], 0
je 0x1008b4df
call fcn.10086a60
test al, al
je 0x1008b0b9
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
lea ecx, [esp + 0x40]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_QueryThreadCycleTime]
call fcn.10086820
fstp qword [esp + 0x28]
movsd xmm0, qword [esp + 0x28]
xor eax, eax
xorpd xmm1, xmm1
ucomisd xmm0, xmm1
mov ecx, 0
jne 0x1008b06c
jnp 0x1008b0af
movsd xmm1, qword [esp + 0x40]
unpcklps xmm1, xmmword [0x101a1b20]
subpd xmm1, xmmword [0x101a1b30]
movapd xmm2, xmm1
unpckhpd xmm2, xmm1
addsd xmm2, xmm1
divsd xmm2, xmm0
mulsd xmm2, qword [0x101a1b40]
movsd qword [esp + 0x10], xmm2
fld qword [esp + 0x10]
fisttp qword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
jmp 0x1008b0c9
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov ecx, dword [0x101bac6c]
call dword [section..00cfg]
lea eax, [esp + 0x40]
push eax
call ecx
add esp, 4
mov ecx, dword [esi + 0xe8]
mov eax, dword [esi + 0xec]
mov edx, ecx
add edx, 0xffffffff
mov edi, eax
adc edi, 0x7fffffff
add edx, 2
adc edi, 0
cmp edx, 2
mov ebx, dword [esp + 0x40]
sbb edi, 0
mov edi, dword [esp + 0x44]
jae 0x1008b13e
xor ebx, ecx
xor edi, eax
or edi, ebx
je 0x1008b738
mov edi, 0x7fffffff
mov ebx, 0xffffffff
mov ecx, 0xffffffff
add ecx, 1
mov edx, 0x7fffffff
adc edx, 0
test eax, eax
cmovs ecx, ebx
cmovs edx, edi
jmp 0x1008b15a
sub ebx, ecx
sbb edi, eax
seto al
mov ecx, edi
sar ecx, 0x1f
lea edx, [ecx - 0x80000000]
test al, al
cmove ecx, ebx
test al, al
cmove edx, edi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [esp + 8], eax
mov eax, dword [ebp + 8]
cmp byte [eax], 0
je 0x1008b4df
lea eax, [ebp + 0x10]
mov ebx, dword [eax]
mov edi, dword [eax + 4]
push dword [0x101bac5c]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
and eax, 0xfffffffc
je 0x1008b1ad
mov ecx, dword [esi + 0x1ac]
mov edx, dword [eax + ecx*8 + 4]
cmp edx, dword [esi + 0x1b0]
jne 0x1008b1ad
cmp dword [eax + ecx*8], 0
jne 0x1008b4df
mov dword [esp + 4], ebx
lea ebx, [esi + 0x1ac]
mov ecx, ebx
shr ecx, 0xe
mov eax, 1
shl eax, cl
mov dword [esp + 0x24], eax
mov eax, ebx
shr eax, 0x13
mov dword [esp + 0x20], eax
mov eax, dword [eax*4 + 0x101c1e84]
bt eax, ecx
jae 0x1008b1e7
push ebx
call fcn.10069180
add esp, 4
jmp 0x1008b1f3
mov eax, ebx
shr eax, 0x15
mov byte [eax + 0x101c9e84], 1
push dword [0x101bac5c]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
and eax, 0xfffffffc
je 0x1008b71a
mov ecx, dword [esi + 0x1ac]
mov dword [eax + ecx*8], ebx
mov ecx, dword [esi + 0x1ac]
mov edx, dword [esi + 0x1b0]
mov dword [eax + ecx*8 + 4], edx
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
movzx eax, byte [eax]
test al, 8
je 0x1008b244
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.100cd130
mov edx, dword [ebp + 0xc]
add esp, 8
mov eax, dword [ebp + 8]
movzx eax, byte [eax]
test al, 1
jne 0x1008b437
mov dword [esp + 8], ebx
mov dword [esp + 0xec], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xf0], 0
xor eax, eax
mov ebx, dword [ebp + 8]
movzx eax, al
test eax, eax
je 0x1008b2d4
cmp dword [0x101bee4c], 2
jg 0x1008b2d4
lea edi, [esp + 0x40]
mov ecx, edi
push 2
push 0x80d
push str....._base_trace_event_trace_log.cc
call fcn.100661d0
lea eax, [esp + 0x48]
movzx ecx, byte [esp + 0xf3]
test cl, cl
cmovs ecx, dword [esp + 0xec]
lea edx, [esp + 0xe8]
cmovs edx, dword [esp + 0xe8]
push ecx
push edx
push eax
call fcn.10034b83
add esp, 0xc
mov ecx, edi
call fcn.10066600
test byte [ebx], 0x10
je 0x1008b418
mov ebx, dword [ebx + 4]
test ebx, ebx
je 0x1008b418
xor edi, edi
jmp 0x1008b315
mov eax, dword [0x101bfe70]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
sar ecx, 2
cmp ecx, edi
jbe 0x1008b735
mov eax, ebx
shr eax, 1
inc edi
cmp ebx, 1
mov ebx, eax
jbe 0x1008b418
test bl, 1
je 0x1008b305
mov eax, dword [0x101bfe74]
mov ecx, dword [0x101bd164]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x1008b3c9
mov ecx, dword [0x101bfe70]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
sub ecx, eax
sar ecx, 2
cmp ecx, edi
jbe 0x1008b732
cmp dword [eax + edi*4], 0
je 0x1008b305
mov eax, dword [0x101bfe74]
mov ecx, dword [0x101bd164]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jle 0x1008b2f0
push 0x101bfe74
call fcn.10145c47
add esp, 4
cmp dword [0x101bfe74], 0xffffffff
jne 0x1008b2f0
push 0xc
call fcn.10145ba4
add esp, 4
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [0x101bfe70], eax
push 0x101bfe74
call fcn.10145cbd
add esp, 4
jmp 0x1008b2f0
push 0x101bfe74
call fcn.10145c47
add esp, 4
cmp dword [0x101bfe74], 0xffffffff
jne 0x1008b33b
push 0xc
call fcn.10145ba4
add esp, 4
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [0x101bfe70], eax
push 0x101bfe74
call fcn.10145cbd
add esp, 4
jmp 0x1008b33b
cmp byte [esp + 0xf3], 0
jns 0x1008b431
push dword [esp + 0xe8]
call fcn.10145bd4
add esp, 4
mov ebx, dword [esp + 8]
jmp 0x1008b497
mov ecx, dword [esi + 0x1f4]
test ecx, ecx
je 0x1008b4f7
mov eax, dword [esp + 4]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edi
mov edi, edx
call dword [section..00cfg]
sub esp, 0x20
movsd xmm0, qword [esp + 0x60]
movsd qword [esp + 8], xmm0
lea eax, [esp + 0x58]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x50]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x10], eax
mov dword [esp + 4], edi
mov eax, dword [ebp + 8]
mov dword [esp], eax
mov dword [esp + 0x14], 0
call ecx
add esp, 0x20
push dword [0x101bac5c]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
and eax, 0xfffffffc
je 0x1008b4c5
mov ecx, dword [esi + 0x1ac]
mov dword [eax + ecx*8], 0
mov ecx, dword [esi + 0x1ac]
mov edx, dword [esi + 0x1b0]
mov dword [eax + ecx*8 + 4], edx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
test dword [ecx*4 + 0x101c1e84], eax
je 0x1008b4df
push ebx
call fcn.10069280
add esp, 4
mov ecx, dword [esp + 0xf8]
xor ecx, ebp
call fcn.101465a3
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x10
mov dword [esp + 8], ebx
mov dword [esp + 0xec], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xf0], 0
lea eax, [esi + 4]
mov dword [esp + 0xc], eax
cmp dword [esp + 4], 0
je 0x1008b6b8
push dword [0x101bac5c]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
and eax, 0xfffffffc
mov ebx, dword [ebp + 8]
je 0x1008b5c1
mov ecx, dword [esi + 0x19c]
mov edx, dword [eax + ecx*8 + 4]
cmp edx, dword [esi + 0x1a0]
jne 0x1008b5c1
cmp dword [eax + ecx*8], 0
je 0x1008b5c1
push dword [0x101bac5c]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
xor ecx, ecx
and eax, 0xfffffffc
je 0x1008b585
mov edx, dword [esi + 0x19c]
mov ebx, dword [eax + edx*8 + 4]
cmp ebx, dword [esi + 0x1a0]
mov ebx, dword [ebp + 8]
jne 0x1008b585
mov ecx, dword [eax + edx*8]
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x1008b5c1
mov edx, dword [esp + 4]
cmp dword [eax + 0x1e08], edx
jne 0x1008b5c1
mov edx, edi
and edx, 0x3ffffff
cmp edx, dword [ecx + 0x10]
jne 0x1008b5c1
mov ecx, edi
shr ecx, 0x1a
imul ecx, ecx, 0x78
add eax, ecx
add eax, 8
je 0x1008b5c1
mov dword [esp + 4], 0
jmp 0x1008b64c
push dword [esp + 0xc]
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1008b724
mov eax, dword [esi + 0x1c8]
test eax, eax
je 0x1008b60c
mov ecx, edi
and ecx, 0x3ffffff
cmp ecx, dword [esi + 0x1cc]
jne 0x1008b60c
mov dl, 1
mov ecx, dword [esp + 4]
cmp dword [eax + 0x1e08], ecx
jne 0x1008b6bd
shr edi, 0x1a
imul ecx, edi, 0x78
add eax, ecx
add eax, 8
jmp 0x1008b640
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x44], edi
mov eax, dword [esp + 4]
mov dword [esp + 0x40], eax
mov eax, dword [ecx]
mov edi, dword [eax + 0x18]
mov ecx, edi
call dword [section..00cfg]
sub esp, 8
movsd xmm0, qword [esp + 0x48]
movsd qword [esp], xmm0
mov ecx, dword [esp + 0x24]
call edi
mov dl, 1
test eax, eax
je 0x1008b6bd
mov cl, 1
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x30]
sub ecx, dword [eax]
mov edx, dword [esp + 0x34]
sbb edx, dword [eax + 4]
seto bl
mov edi, edx
sar edi, 0x1f
test bl, bl
cmovne ecx, edi
add edi, 0x80000000
test bl, bl
cmove edi, edx
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edi
mov ebx, dword [eax + 8]
mov edi, dword [eax + 0xc]
mov ecx, ebx
or ecx, edi
je 0x1008b6ad
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
sub ecx, ebx
sbb edx, edi
seto bl
mov edi, edx
sar edi, 0x1f
test bl, bl
cmovne ecx, edi
add edi, 0x80000000
test bl, bl
cmove edi, edx
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], edi
mov ecx, eax
mov ebx, dword [ebp + 8]
mov edx, dword [esp + 4]
jmp 0x1008b6bf
xor edx, edx
mov ebx, dword [ebp + 8]
xor ecx, ecx
mov eax, dword [esi + 0xf0]
test al, 8
je 0x1008b6e8
mov edi, edx
lea edx, [esp + 0xe8]
mov eax, ecx
mov ecx, esi
push eax
lea eax, [esp + 0x34]
push eax
push 0x45
call fcn.1008a8e0
mov edx, edi
add esp, 0xc
test dl, dl
je 0x1008b6f6
push dword [esp + 0xc]
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
movzx eax, byte [esp + 0xf3]
test al, al
jns 0x1008b276
mov eax, dword [esp + 0xec]
test eax, eax
jne 0x1008b27d
jmp 0x1008b2d4
call fcn.1007a6e0
jmp 0x1008b208
mov ecx, dword [esp + 0xc]
call fcn.10083990
jmp 0x1008b5d3
int3
int3
int3