Function at 0x4531e0
Capabilities:
Get thread local storage value
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x120
mov esi, dword [ebp + 0x34]
mov eax, dword [0x597010]
xor eax, ebp
mov dword [esp + 0x118], eax
mov eax, dword [0x59cb48]
mov ecx, dword [0x59b038]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x453b1c
mov edi, dword [ebp + 0x28]
xor ebx, ebx
mov dword [esp + 0x1c], 0
test esi, 0x410
jne 0x4532f4
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
xor ebx, ebx
mov dword [esp + 0x1c], 0
cmp eax, edi
jne 0x4532f4
xor ebx, ebx
call fcn.00457a60
mov dword [esp + 0x1c], 0
test al, al
je 0x4532f4
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
lea ecx, [esp + 0x70]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_QueryThreadCycleTime]
call fcn.00457820
fstp qword [esp + 0x40]
movsd xmm0, qword [esp + 0x40]
xor ebx, ebx
xorpd xmm1, xmm1
ucomisd xmm0, xmm1
mov eax, 0
jne 0x4532ad
jnp 0x4532f0
movsd xmm1, qword [esp + 0x70]
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 + 0x30], xmm2
fld qword [esp + 0x30]
fisttp qword [esp + 0x30]
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
movsx eax, byte [ebp + 8]
mov ecx, 0x59c960
push dword [ebp + 0x30]
push edi
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
mov dword [esp + 0x44], eax
push eax
call fcn.00451fb0
test al, al
je 0x4536d6
mov eax, 0x59caf8
mov ecx, 0x59caf8
shr ecx, 0x13
mov ecx, dword [ecx*4 + 0x59f9d0]
mov edx, 0x59caf8
shr edx, 0xe
bt ecx, edx
jae 0x45335f
push 0x59caf8
call fcn.0042f0b8
add esp, 4
jmp 0x453369
shr eax, 0x15
mov byte [eax + 0x5a79d0], 1
push dword [0x599b44]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
and eax, 0xfffffffc
je 0x453b12
mov edi, dword [ebp + 0x2c]
mov ecx, dword [0x59caf8]
mov dword [eax + ecx*8], 0x59caf8
mov ecx, dword [0x59cafc]
mov edx, dword [0x59caf8]
mov dword [eax + edx*8 + 4], ecx
test esi, 0x180
sete al
test esi, 0x800
sete cl
xor edx, edx
or cl, al
mov eax, 0
jne 0x4533c6
mov edx, dword [0x59ca30]
mov eax, dword [0x59ca34]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], edx
mov eax, dword [0x59ca44]
mov edx, dword [0x59ca40]
mov ecx, edx
add ecx, 0xffffffff
mov esi, eax
adc esi, 0x7fffffff
add ecx, 2
adc esi, 0
cmp ecx, 2
sbb esi, 0
mov esi, dword [edi]
mov ecx, dword [edi + 4]
mov dword [esp + 0x28], ebx
jae 0x45342d
xor esi, edx
xor ecx, eax
or ecx, esi
je 0x453b54
mov edi, 0xffffffff
add edi, 1
mov ebx, 0x7fffffff
adc ebx, 0
test eax, eax
mov eax, 0xffffffff
cmovs edi, eax
mov eax, 0x7fffffff
cmovs ebx, eax
jmp 0x453449
sub esi, edx
sbb ecx, eax
seto al
mov edi, ecx
sar edi, 0x1f
lea ebx, [edi - 0x80000000]
test al, al
cmove edi, esi
test al, al
cmove ebx, ecx
mov esi, dword [esp + 0x20]
mov eax, dword [ebp + 0xc]
movzx eax, byte [eax]
xor edx, edx
test al, 1
je 0x453496
mov ecx, 0x59c960
call fcn.004504c0
push dword [0x599b44]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
xor edx, edx
and eax, 0xfffffffc
je 0x453490
mov ecx, dword [0x59cae8]
mov edx, dword [eax + ecx*8 + 4]
cmp edx, dword [0x59caec]
mov edx, 0
jne 0x453490
mov edx, dword [eax + ecx*8]
mov eax, dword [ebp + 0xc]
movzx eax, byte [eax]
test al, 1
jne 0x4534d1
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x60], 0
movzx ebx, byte [esp + 0x63]
movzx edi, bl
test bl, bl
js 0x45361c
mov eax, edi
test eax, eax
jne 0x453624
jmp 0x45366f
mov eax, dword [esp + 0x24]
xor eax, dword [ebp + 0x24]
xor esi, dword [ebp + 0x20]
mov ecx, esi
mov esi, dword [0x59cb38]
test esi, esi
mov dword [esp + 0x10], edx
je 0x4536f8
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0xd0], xmm0
movdqa xmmword [esp + 0xc0], xmm0
movdqa xmmword [esp + 0xb0], xmm0
movdqa xmmword [esp + 0xa0], xmm0
movdqa xmmword [esp + 0x90], xmm0
movdqa xmmword [esp + 0x80], xmm0
movdqa xmmword [esp + 0x70], xmm0
mov dword [esp + 0xe4], 0xffffffff
mov dword [esp + 0xe0], 0xffffffff
mov edx, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], ebx
sub esp, 0x3c
movsd xmm0, qword [esp + 0x94]
movsd qword [esp + 0xc], xmm0
movsd xmm0, qword [esp + 0xa4]
movsd qword [esp + 4], xmm0
mov eax, dword [ebp + 0x34]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0x30]
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], ecx
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x28]
mov dword [esp], eax
lea edi, [esp + 0xac]
mov ecx, edi
call fcn.00483cc0
xor ebx, ebx
cmp dword [esp + 0x10], 0
setne bl
mov ecx, esi
call dword [section..00cfg]
lea eax, [esp + 0x48]
push eax
push ebx
push edi
call esi
add esp, 0xc
lea ecx, [esp + 0xb0]
call fcn.00434fb8
mov eax, dword [esp + 0xa8]
test eax, eax
je 0x45367f
push 0
push eax
push 0x587578
call fcn.00497f20
add esp, 0xc
jmp 0x45367f
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x45366f
cmp dword [0x59d910], 2
jg 0x45366f
lea esi, [esp + 0x70]
mov ecx, esi
push 2
push 0x711
push str....._base_trace_event_trace_log.cc
call fcn.00470c60
test bl, bl
lea eax, [esp + 0x78]
cmovs edi, dword [esp + 0x5c]
lea ecx, [esp + 0x58]
cmovs ecx, dword [esp + 0x58]
push edi
push ecx
push eax
call fcn.0042d698
add esp, 0xc
mov ecx, esi
call fcn.00471070
movzx ebx, byte [esp + 0x63]
test bl, bl
jns 0x45367f
push dword [esp + 0x58]
call fcn.00528424
add esp, 4
push dword [0x599b44]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
and eax, 0xfffffffc
je 0x4536ad
mov ecx, dword [0x59caf8]
mov dword [eax + ecx*8], 0
mov ecx, dword [0x59cafc]
mov edx, dword [0x59caf8]
mov dword [eax + edx*8 + 4], ecx
mov eax, 0x59caf8
mov ecx, 0x59caf8
shr ecx, 0x13
mov ecx, dword [ecx*4 + 0x59f9d0]
shr eax, 0xe
bt ecx, eax
jae 0x4536d6
push 0x59caf8
call fcn.0042f1aa
add esp, 4
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x118]
xor ecx, ebp
call fcn.00528e13
mov eax, esi
mov edx, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x60], 0
test edx, edx
je 0x4537c5
mov eax, dword [edx + 0xc]
test eax, eax
je 0x453836
cmp dword [eax], 0x40
jne 0x4539ec
mov eax, dword [edx + 8]
add eax, 4
mov dword [esp + 0x14], eax
push eax
mov esi, edx
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x453755
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov eax, dword [esi + 0xc]
mov dword [esp + 0xc], eax
test eax, eax
mov edx, esi
je 0x4537f9
mov eax, dword [edx + 8]
mov ecx, dword [eax + 0x1d0]
cmp ecx, dword [edx + 0x14]
jne 0x453802
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x18], ecx
mov dword [edx + 0xc], 0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x70], eax
mov eax, dword [edx + 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [ecx]
mov esi, dword [eax + 8]
mov ecx, esi
call dword [section..00cfg]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x10]
call esi
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0xc]
mov dword [eax + 0xc], 0
test esi, esi
jne 0x45380d
jmp 0x45381d
push 0x59c964
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x4537df
push 0x59c964
call dword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
lea edx, [esp + 0x48]
mov ecx, 0x59c960
push 1
call fcn.00451d70
add esp, 4
mov esi, eax
jmp 0x453a1f
mov dword [edx + 0xc], 0
jmp 0x45381d
mov dword [edx + 0xc], 0
mov esi, dword [esp + 0xc]
mov ecx, esi
call fcn.00485150
push esi
call fcn.00528424
add esp, 4
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0xc]
test eax, eax
jne 0x4539ec
mov esi, dword [edx + 8]
add esi, 4
push esi
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x45384e
push esi
call dword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 8]
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x18], ecx
lea eax, [esi + 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [ecx]
mov ecx, dword [eax + 4]
mov dword [esp + 0x3c], ecx
call dword [section..00cfg]
lea eax, [esp + 0x70]
mov ecx, dword [esp + 0x18]
push dword [esp + 0xc]
push eax
call dword [esp + 0x44]
mov eax, dword [esp + 0x70]
mov dword [esp + 0x70], 0
mov ecx, dword [esi + 0xc]
mov dword [esi + 0xc], eax
test ecx, ecx
je 0x4538cd
mov esi, ecx
call fcn.00485150
push esi
call fcn.00528424
add esp, 4
mov esi, dword [esp + 0x70]
mov dword [esp + 0x70], 0
test esi, esi
je 0x4538cd
mov ecx, esi
call fcn.00485150
push esi
call fcn.00528424
add esp, 4
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
mov dword [esp + 0x18], eax
mov eax, dword [eax + 0x14]
mov dword [esp + 0xc], eax
mov eax, dword [eax]
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [section..00cfg]
mov ecx, dword [esp + 0xc]
call esi
test al, al
mov esi, dword [esp + 0x14]
je 0x4539d6
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0xc8]
or eax, dword [ecx + 0xcc]
jne 0x4539d1
mov esi, ecx
mov ecx, dword [0x599b1c]
call dword [section..00cfg]
lea eax, [esp + 0x70]
push eax
call ecx
add esp, 4
mov ecx, dword [esi + 0xe0]
mov esi, dword [esi + 0xe4]
mov eax, 0xffffffff
add eax, ecx
mov edx, 0x7fffffff
mov dword [esp + 0xc], esi
adc edx, esi
add eax, 2
adc edx, 0
cmp eax, 2
mov eax, dword [esp + 0x70]
sbb edx, 0
mov esi, dword [esp + 0x74]
jae 0x453995
xor eax, ecx
xor esi, dword [esp + 0xc]
or esi, eax
je 0x453b57
mov ecx, 0xffffffff
add ecx, 1
mov edx, 0x7fffffff
adc edx, 0
cmp dword [esp + 0xc], 0
mov eax, 0xffffffff
cmovs ecx, eax
mov eax, 0x7fffffff
cmovs edx, eax
jmp 0x4539bb
sub eax, ecx
sbb esi, dword [esp + 0xc]
seto byte [esp + 0xc]
mov ecx, esi
sar ecx, 0x1f
lea edx, [ecx - 0x80000000]
cmp byte [esp + 0xc], 0
cmove ecx, eax
cmp byte [esp + 0xc], 0
cmove edx, esi
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov dword [eax + 0xc8], ecx
mov ecx, eax
mov dword [eax + 0xcc], edx
call fcn.00451060
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0xc]
test eax, eax
je 0x453b0e
mov ecx, dword [eax]
mov esi, edx
lea edx, [ecx + 1]
mov dword [eax], edx
imul edx, ecx, 0x78
add eax, edx
add eax, 8
movzx edx, word [esi + 0x10]
mov dword [esp + 0x14], edx
mov edx, dword [esi + 0xc]
mov esi, eax
mov edx, dword [edx + 0x1e08]
mov dword [esp + 0x48], edx
shl ecx, 0x1a
add ecx, dword [esp + 0x14]
mov dword [esp + 0x4c], ecx
test esi, esi
mov ecx, dword [ebp + 0x14]
je 0x453ab8
mov eax, dword [esp + 0x28]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], ebx
sub esp, 0x3c
movsd xmm0, qword [esp + 0xa4]
movsd qword [esp + 0xc], xmm0
movsd xmm0, qword [esp + 0x8c]
movsd qword [esp + 4], xmm0
mov eax, dword [ebp + 0x34]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0x30]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], ecx
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x28]
mov dword [esp], eax
mov ecx, esi
call fcn.00483d90
jmp 0x453aba
xor esi, esi
mov edx, dword [esp + 0x10]
mov eax, dword [0x59ca48]
test al, 8
movzx eax, byte [ebp + 8]
mov edi, dword [ebp + 0x2c]
je 0x453af6
cmp al, 0x58
movzx eax, al
mov ecx, 0x42
cmovne ecx, eax
movsx eax, cl
lea edx, [esp + 0x58]
mov ecx, 0x59c960
push esi
push edi
push eax
call fcn.004523f0
mov edx, dword [esp + 0x1c]
add esp, 0xc
test edx, edx
jne 0x4534b2
push 0x59c964
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x4534b2
xor esi, esi
jmp 0x453abe
call fcn.004625e0
jmp 0x45337e
push 0x59cb48
call fcn.00528497
add esp, 4
cmp dword [0x59cb48], 0xffffffff
jne 0x453221
mov ecx, 0x59c960
push 0
call fcn.004501e0
push 0x59cb48
call fcn.0052850d
add esp, 4
jmp 0x453221
int3
int3