Function at 0x452b00
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xf8
mov esi, ecx
mov ecx, dword [ebp + 8]
mov eax, dword [0x597010]
xor eax, ebp
mov dword [esp + 0xf0], eax
cmp byte [ecx], 0
je 0x452eaa
call fcn.00457a60
test al, al
je 0x452bc9
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
lea ecx, [esp + 0x38]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_QueryThreadCycleTime]
call fcn.00457820
fstp qword [esp + 0x20]
movsd xmm0, qword [esp + 0x20]
xor eax, eax
xorpd xmm1, xmm1
ucomisd xmm0, xmm1
mov ecx, 0
jne 0x452b7c
jnp 0x452bbf
movsd xmm1, qword [esp + 0x38]
unpcklps xmm1, xmmword [0x57f580]
subpd xmm1, xmmword [0x57f590]
movapd xmm2, xmm1
unpckhpd xmm2, xmm1
addsd xmm2, xmm1
divsd xmm2, xmm0
mulsd xmm2, qword [0x57f5a0]
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 + 0x30], eax
mov dword [esp + 0x34], ecx
jmp 0x452bd9
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov ecx, dword [0x599b1c]
call dword [section..00cfg]
lea eax, [esp + 0x38]
push eax
call ecx
add esp, 4
mov ecx, dword [esi + 0xe0]
mov eax, dword [esi + 0xe4]
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 + 0x38]
sbb edi, 0
mov edi, dword [esp + 0x3c]
jae 0x452c4e
xor ebx, ecx
xor edi, eax
or edi, ebx
je 0x4530e2
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 0x452c6a
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 + 0x28], ecx
mov dword [esp + 0x2c], edx
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
cmp byte [eax], 0
je 0x452eaa
lea eax, [ebp + 0x10]
mov edi, dword [eax]
mov ebx, dword [eax + 4]
push dword [0x599b44]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
and eax, 0xfffffffc
je 0x452cbd
mov ecx, dword [esi + 0x198]
mov edx, dword [eax + ecx*8 + 4]
cmp edx, dword [esi + 0x19c]
jne 0x452cbd
cmp dword [eax + ecx*8], 0
jne 0x452eaa
lea edx, [esi + 0x198]
mov ecx, edx
shr ecx, 0xe
mov eax, 1
shl eax, cl
mov dword [esp + 0x1c], eax
mov dword [esp + 8], edx
mov eax, edx
shr eax, 0x13
mov dword [esp + 0x18], eax
mov eax, dword [eax*4 + 0x59f9d0]
bt eax, ecx
jae 0x452cfa
push dword [esp + 8]
call fcn.0042f0b8
add esp, 4
jmp 0x452d08
mov eax, dword [esp + 8]
shr eax, 0x15
mov byte [eax + 0x5a79d0], 1
push dword [0x599b44]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
and eax, 0xfffffffc
je 0x4530d8
mov ecx, dword [esi + 0x198]
mov edx, dword [esp + 8]
mov dword [eax + ecx*8], edx
mov ecx, dword [esi + 0x198]
mov edx, dword [esi + 0x19c]
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 0x452d5d
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004881a0
mov edx, dword [ebp + 0xc]
add esp, 8
mov eax, dword [ebp + 8]
movzx eax, byte [eax]
test al, 1
jne 0x452e03
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe8], 0
xor eax, eax
movzx ecx, al
test ecx, ecx
je 0x452dee
cmp dword [0x59d910], 2
jg 0x452dee
lea edi, [esp + 0x38]
mov ecx, edi
push 2
push 0x79f
push str....._base_trace_event_trace_log.cc
call fcn.00470c60
lea eax, [esp + 0x40]
movzx ecx, byte [esp + 0xeb]
test cl, cl
cmovs ecx, dword [esp + 0xe4]
lea edx, [esp + 0xe0]
cmovs edx, dword [esp + 0xe0]
push ecx
push edx
push eax
call fcn.0042d698
add esp, 0xc
mov ecx, edi
call fcn.00471070
movzx eax, byte [esp + 0xeb]
test al, al
jns 0x452e5f
push dword [esp + 0xe0]
call fcn.00528424
add esp, 4
jmp 0x452e5f
mov ecx, dword [esi + 0x1e0]
test ecx, ecx
je 0x452ec2
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], ebx
mov edi, edx
call dword [section..00cfg]
sub esp, 0x20
movsd xmm0, qword [esp + 0x58]
movsd qword [esp + 8], xmm0
lea eax, [esp + 0x50]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x48]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x24]
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 [0x599b44]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
and eax, 0xfffffffc
je 0x452e8d
mov ecx, dword [esi + 0x198]
mov dword [eax + ecx*8], 0
mov ecx, dword [esi + 0x198]
mov edx, dword [esi + 0x19c]
mov dword [eax + ecx*8 + 4], edx
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
test dword [ecx*4 + 0x59f9d0], eax
je 0x452eaa
push dword [esp + 8]
call fcn.0042f1aa
add esp, 4
mov ecx, dword [esp + 0xf0]
xor ecx, ebp
call fcn.00528e13
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x10
mov dword [esp], ebx
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe8], 0
lea eax, [esi + 4]
mov dword [esp + 4], eax
mov eax, edi
xor edi, edi
mov dword [esp + 0xc], eax
test eax, eax
je 0x45307d
push dword [0x599b44]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
and eax, 0xfffffffc
je 0x452f85
mov ecx, dword [esi + 0x188]
mov edx, dword [eax + ecx*8 + 4]
cmp edx, dword [esi + 0x18c]
jne 0x452f85
cmp dword [eax + ecx*8], 0
je 0x452f85
push dword [0x599b44]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
xor ecx, ecx
and eax, 0xfffffffc
je 0x452f4e
mov edx, dword [esi + 0x188]
mov ebx, dword [eax + edx*8 + 4]
cmp ebx, dword [esi + 0x18c]
jne 0x452f4e
mov ecx, dword [eax + edx*8]
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x452f85
mov edx, dword [esp + 0xc]
cmp dword [eax + 0x1e08], edx
jne 0x452f85
mov edx, dword [esp]
and edx, 0x3ffffff
cmp edx, dword [ecx + 0x10]
jne 0x452f85
mov ecx, dword [esp]
shr ecx, 0x1a
imul ecx, ecx, 0x78
lea edi, [eax + ecx]
add edi, 8
xor ebx, ebx
jmp 0x453010
push dword [esp + 4]
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x452f9d
push dword [esp + 4]
call dword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov eax, dword [esi + 0x1b4]
test eax, eax
je 0x452fdb
mov ecx, dword [esp]
and ecx, 0x3ffffff
cmp ecx, dword [esi + 0x1b8]
jne 0x452fdb
mov bl, 1
mov ecx, dword [esp + 0xc]
cmp dword [eax + 0x1e08], ecx
jne 0x453083
mov ecx, dword [esp]
shr ecx, 0x1a
imul ecx, ecx, 0x78
lea edi, [eax + ecx]
add edi, 8
jmp 0x45300e
mov ebx, dword [esi + 0x14]
mov eax, dword [esp]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x38], eax
mov eax, dword [ebx]
mov edi, dword [eax + 0x18]
mov ecx, edi
call dword [section..00cfg]
sub esp, 8
movsd xmm0, qword [esp + 0x40]
movsd qword [esp], xmm0
mov ecx, ebx
call edi
mov edi, eax
mov bl, 1
test edi, edi
je 0x453081
mov dword [esp], ebx
mov eax, dword [esp + 0x28]
sub eax, dword [edi]
mov ecx, dword [esp + 0x2c]
sbb ecx, dword [edi + 4]
seto dl
mov ebx, ecx
sar ebx, 0x1f
test dl, dl
cmovne eax, ebx
add ebx, 0x80000000
test dl, dl
cmove ebx, ecx
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], ebx
mov ebx, dword [edi + 8]
mov edx, dword [edi + 0xc]
mov eax, ebx
or eax, edx
je 0x453078
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
sub eax, ebx
sbb ecx, edx
seto dl
mov ebx, ecx
sar ebx, 0x1f
test dl, dl
cmovne eax, ebx
add ebx, 0x80000000
test dl, dl
cmove ebx, ecx
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], ebx
mov ebx, dword [esp]
jmp 0x453083
xor ebx, ebx
jmp 0x453083
xor edi, edi
mov eax, dword [esi + 0xe8]
test al, 8
je 0x4530a6
lea eax, [esp + 0x28]
lea edx, [esp + 0xe0]
mov ecx, esi
push edi
push eax
push 0x45
call fcn.004523f0
add esp, 0xc
test bl, bl
je 0x4530b4
push dword [esp + 4]
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
movzx eax, byte [esp + 0xeb]
test al, al
jns 0x452d88
mov ecx, dword [esp + 0xe4]
test ecx, ecx
jne 0x452d8f
jmp 0x452dee
call fcn.004625e0
jmp 0x452d1d
int3