Function at 0x40a3ef
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
mov eax, 0x414091
call fcn.00413240
sub esp, 0x54
mov eax, dword [0x4241a4]
push ebx
xor eax, ebp
push esi
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x34], ebp
push 1
push dword [ebp - 0x34]
push str.struct_HINSTANCE_____stdcall_CHookLoadLibrary::XLLoadLibraryExWOfKernelBase_const_wchar_t__void__unsigned_long_
call fcn.00407881
mov esi, eax
add esp, 0xc
cmp esi, ebx
mov eax, 0x419090
jne 0x40a43c
mov esi, eax
push ebx
push ebx
push ebx
push ebx
push eax
push 0x419030
push esi
lea ecx, [ebp - 0x60]
call fcn.00409792
mov dword [ebp - 4], ebx
cmp esi, ebx
jne 0x40a458
push ebp
pop ebp
push edi
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x34], ebx
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_wchar_t_const__]
mov byte [ebp - 4], 1
push dword [0x424064]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, ebx
jne 0x40a58a
cmp dword [ebp + 0x10], ebx
je 0x40a48c
cmp dword [ebp + 0x10], 8
jne 0x40a597
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x30], ebx
mov eax, ebp
add eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x30], 0
mov eax, dword [ebp - 0x38]
cmp eax, dword [0x4241ec]
jl 0x40a4bd
cmp eax, dword [0x4241e8]
jg 0x40a4bd
mov dword [ebp - 0x30], 1
nop
cmp dword [ebp - 0x30], 1
jne 0x40a4eb
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP71.dll_public:_wchar_t_const____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::c_str_void_const]
push eax
call fcn.00409eed
test al, al
pop ecx
je 0x40a4eb
push str.mswsock.dll
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
jmp 0x40a597
cmp dword [ebp + 0x10], 8
jne 0x40a597
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x30], 0
mov eax, dword [ebp - 0x38]
cmp eax, dword [0x4241f4]
jl 0x40a519
cmp eax, dword [0x4241f0]
jg 0x40a519
mov dword [ebp - 0x30], 1
nop
cmp dword [ebp - 0x30], 1
jne 0x40a597
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::iterator___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::begin_void_]
mov esi, eax
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::iterator___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::end_void_]
mov edi, eax
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::iterator___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::begin_void_]
push dword [sym.imp.MSVCR71.dll_tolower]
push dword [esi]
push dword [edi]
push dword [eax]
lea eax, [ebp - 0x44]
push eax
call fcn.004051eb
add esp, 0x14
call fcn.00408c41
mov esi, dword [eax + 4]
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.00408c41
mov ecx, eax
call fcn.00405c0d
cmp dword [eax], esi
jne 0x40a597
xor esi, esi
jmp 0x40a61c
push ebx
push dword [0x424064]
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP71.dll_public:_wchar_t_const____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::c_str_void_const]
push eax
call dword [0x424204]
test al, al
pop ecx
mov esi, 0x418fd0
je 0x40a5cc
push dword [ebp + 0x10]
lea ecx, [ebp - 0x2c]
push dword [ebp - 0x40]
call dword [sym.imp.MSVCP71.dll_public:_wchar_t_const____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::c_str_void_const]
push eax
call dword [0x42421c]
mov dword [ebp - 0x34], eax
jmp 0x40a5f1
push esi
call fcn.00403aec
test eax, eax
pop ecx
jne 0x40a5f1
push dword [ebp - 0x3c]
push str.lyc:Has_been_filtered:_s
push ebx
push esi
call fcn.00408cd1
pop ecx
pop ecx
push eax
call fcn.0040973c
add esp, 0xc
push esi
call fcn.00403aec
test eax, eax
pop ecx
jne 0x40a619
push dword [ebp - 0x3c]
push dword [ebp - 0x34]
push str.XLLoadLibraryExWOfKernelBase_handle:0x_X_dll_name:_s._n
push ebx
push esi
call fcn.00408cd1
pop ecx
pop ecx
push eax
call fcn.0040973c
add esp, 0x10
mov esi, dword [ebp - 0x34]
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x60]
call fcn.00409a0c
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.00413159
leave
ret 0xc