Function at 0x41a600
Capabilities:
Get thread local storage value

Disassembly:
cmp dword [0x503014], 0
push ebx
push esi
push edi
je 0x41a7bf
push dword [0x50301c]
mov ebx, dword [sym.imp.KERNEL32.dll_TlsGetValue]
call ebx
test eax, eax
je 0x41a668
cmp dword [eax], 0xd
jbe 0x41a668
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x34]
test eax, eax
je 0x41a668
push 0
push 0x507ba0
push 0x507bd8
push 0
push eax
call fcn.004cdfba
add esp, 0x14
test eax, eax
je 0x41a668
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
cmp ecx, vtable.t_visualDataItemPtr_class_t_perfManager_.0
jne 0x41a806
mov eax, dword [eax + 4]
test eax, eax
jne 0x41a802
cmp dword [0x503014], 0
je 0x41a7bf
push 0x51dc24
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [0x503014], 0
je 0x41a6db
push dword [0x50301c]
call ebx
test eax, eax
je 0x41a6db
cmp dword [eax], 0xd
jbe 0x41a6db
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x34]
test eax, eax
je 0x41a6db
push 0
push 0x507ba0
push 0x507bd8
push 0
push eax
call fcn.004cdfba
add esp, 0x14
test eax, eax
je 0x41a6db
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
cmp ecx, vtable.t_visualDataItemPtr_class_t_perfManager_.0
jne 0x41a80f
mov esi, dword [eax + 4]
test esi, esi
jne 0x41a7ae
push 0x2018
call fcn.0044c480
add esp, 4
mov ecx, eax
call fcn.004c8250
cmp dword [0x503014], 0
mov esi, eax
je 0x41a7ae
push dword [0x50301c]
call ebx
test eax, eax
je 0x41a7ae
cmp dword [eax], 0xd
jbe 0x41a7ae
mov eax, dword [eax + 8]
mov edi, dword [eax + 0x34]
test edi, edi
jne 0x41a767
push 8
call fcn.0044c480
mov edi, eax
add esp, 4
mov dword [edi], vtable.t_visualDataItemPtr_class_t_perfManager_.0
mov dword [edi + 4], esi
cmp dword [0x503014], 0
je 0x41a7ae
push dword [0x50301c]
call ebx
test eax, eax
je 0x41a7ae
cmp dword [eax], 0xd
jbe 0x41a7ae
mov eax, dword [eax + 8]
push 0x51dc24
mov dword [eax + 0x34], edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, esi
pop edi
pop esi
pop ebx
ret
mov eax, dword [edi]
mov edx, dword [eax + 0xc]
cmp eax, vtable.t_visualDataItemPtr_class_t_perfManager_.0
jne 0x41a81a
mov ebx, dword [edi + 4]
test ebx, ebx
je 0x41a79a
mov ecx, ebx
mov dword [edi + 4], 0
call fcn.004c81c0
push 0x2018
push ebx
call fcn.0044c4b0
add esp, 8
push 0x51dc24
mov dword [edi + 4], esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, esi
pop edi
pop esi
pop ebx
ret
push 0x51dc24
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, esi
pop edi
pop esi
pop ebx
ret
mov eax, dword [0x51dcac]
test eax, eax
jne 0x41a802
push 0x51dc24
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov eax, dword [0x51f3b0]
cmp eax, dword [ecx + 4]
jg 0x41a821
push 0x51dc24
mov dword [0x51dcac], 0x51f3c0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [0x51dcac]
pop edi
pop esi
pop ebx
ret
mov ecx, eax
call edx
jmp 0x41a660
mov ecx, eax
call edx
mov esi, eax
jmp 0x41a6d3
push esi
mov ecx, edi
call edx
jmp 0x41a7ae
push 0x51f3b0
call fcn.0044cf60
add esp, 4
cmp dword [0x51f3b0], 0xffffffff
jne 0x41a7e8
mov ecx, 0x51f3c0
call fcn.004c8250
push 0x4d1f00
call fcn.0044c8b0
add esp, 4
push 0x51f3b0
call fcn.0044cf16
add esp, 4
jmp 0x41a7e8