Function at 0x140002500
Capabilities:
Allocate thread local storage
Get thread local storage value
Set thread local storage value

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x50
mov rbx, rcx
mov rsi, rdx
mov qword [rsp + 0x80], r8
call fcn.14008e3b0
lea rcx, [rsp + 0x80]
mov rdx, qword [rsp + 0x80]
call fcn.14008e660
mov qword [rsp + 0x48], 0
mov rcx, qword [0x140192800]
lea rax, [rcx + 1]
cmp rax, 1
ja 0x140002558
call sub.KERNEL32.dll_TlsAlloc
mov rcx, rax
mov qword [0x140192800], rax
cmp rbx, 0xffffffffffffffff
je 0x140002612
cmp rcx, 0xffffffffffffffff
je 0x140002612
test rsi, rsi
jne 0x14000257f
mov eax, 0x80020009
cmp rbx, rax
je 0x140002612
call sub.KERNEL32.dll_TlsGetValue
mov rsi, rax
test rax, rax
je 0x140002600
mov qword [rsi], rbx
lea rdi, [rsi + 8]
test rbx, rbx
je 0x1400026b0
mov eax, 0x80020011
cmp rbx, rax
jg 0x140002788
sub rax, 0xf
cmp rbx, rax
jg 0x140002738
sub rax, 0x1bfff
cmp rbx, rax
je 0x1400028f0
jle 0x1400026c8
mov eax, 0x8000ffff
cmp rbx, rax
je 0x1400028d8
add rax, 0x10f
cmp rbx, rax
jne 0x14000275f
lea rdx, str.The_application_called_upon_an_interface_that_was_marshalled_for_a_different_thread.
mov rcx, rdi
call fcn.14008e8e0
jmp 0x140002612
mov ecx, reloc.WS2_32.dll_recv
call fcn.14008dc50
mov rsi, rax
test rax, rax
jne 0x140002630
mov rcx, qword [rsp + 0x80]
call fcn.14008e6d0
nop
add rsp, 0x50
pop rbx
pop rsi
pop rdi
ret
mov rdx, rax
mov rcx, qword [0x140192800]
call sub.KERNEL32.dll_TlsSetValue
test rax, rax
je 0x140002672
mov rax, qword [0x140192458]
lea rdx, [rax*8 + 8]
mov rcx, qword [0x140192c70]
call fcn.14008dca0
test rax, rax
jne 0x140002680
xor edx, edx
mov rcx, qword [0x140192800]
call sub.KERNEL32.dll_TlsSetValue
mov rcx, rsi
call fcn.14008d9d0
jmp 0x140002612
mov qword [0x140192c70], rax
mov rdx, qword [0x140192458]
lea rcx, [rax + rdx*8]
mov rdx, rsi
call fcn.14008dd30
add qword [0x140192458], 1
jmp 0x14000258c
lea rdx, str.Okay.
mov rcx, rdi
call fcn.14008e8e0
jmp 0x140002612
sub rax, 2
cmp rbx, rax
je 0x140002908
jle 0x1400026f0
lea rdx, str.Method_is_not_implemented.
mov rcx, rdi
call fcn.14008e8e0
jmp 0x140002612
cmp rbx, 0xffffffff80040201
je 0x140002938
cmp rbx, 1
jne case.0x14000275d.1
mov rax, qword [rsp + 0x80]
test rax, rax
je 0x14000271e
cmp word [rax], 0
jne 0x140002898
lea rdx, str.The_operation_completed__but_was_only_partially_successful.
mov rcx, rdi
call fcn.14008e8e0
jmp 0x140002612
movabs rax, 0xffffffff7ffdfffd
add rax, rbx
cmp rax, 0xe
ja case.0x14000275d.1
lea rdx, [0x14011de00]
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
sub rax, 0xc109
cmp rbx, rax
jne 0x140002af0
lea rdx, str.Unspecified_error.
mov rcx, rdi
call fcn.14008e8e0
jmp 0x140002612
mov eax, 0x80070005
cmp rbx, rax
je 0x1400029f8
jle 0x1400027d0
mov eax, 0x80070057
cmp rbx, rax
je 0x1400028c0
add rax, 0xffae
cmp rbx, rax
jne 0x140002838
lea rdx, str.Server_execution_failed._Usually_caused_by_an_out_of_process_server_timing_out_when_asked_to_create_an_instance_of_a_class_factory.
mov rcx, rdi
call fcn.14008e8e0
jmp 0x140002612
sub rax, 0x2fef5
cmp rbx, rax
je 0x140002950
jle 0x140002810
mov eax, 0x80040154
cmp rbx, rax
je 0x1400027fa
add rax, 0x9f
cmp rbx, rax
jne case.0x14000275d.1
lea rdx, str.Invalid_progID_CLSID._Check_your_spelling_of_the_programmatic_identifier._Also_check_that_the_component___ActiveX_control_has_been_registered.
mov rcx, rdi
call fcn.14008e8e0
jmp 0x140002612
sub rax, 0x180e5
cmp rbx, rax
jne 0x140002af0
lea rdx, str.No_type_description_was_found_in_the_library_with_the_specified_GUID_whilst_trying_to_create_an_event_handler.
mov rcx, rdi
call fcn.14008e8e0
jmp 0x140002612
sub rax, 0xfff7
cmp rbx, rax
jne case.0x14000275d.1
call fcn.14008e420
lea rcx, str.Problem_allocating_memory._r_n_r_n_Possibly_too_many_method_arguments._Each_method_property_is_limited_by_COMatePLUS_to_a_maximum_of
call fcn.14008e870
call fcn.14008e420
call fcn.14008e420
call fcn.14008e480
mov edx, eax
mov ecx, socket
call fcn.14008ae50
call fcn.14008e480
lea rcx, str._arguments._
call fcn.14008e870
call fcn.14008e480
mov edx, eax
mov rcx, rdi
call fcn.14008e790
jmp 0x140002612
call fcn.14008e420
lea rcx, str.The_operation_completed__but_was_only_partially_successful.__
call fcn.14008e870
mov rcx, qword [rsp + 0x80]
call fcn.14008e870
lea rcx, [0x140167368]
jmp 0x14000287f
lea rdx, str.One_or_more_arguments_are_invalid._Possibly_a_numerical_overflow_or_too_many_nested_objects___if_so__try_splitting_your_method_call_into_two_or_more_subcalls.
mov rcx, rdi
call fcn.14008e8e0
jmp 0x140002612
lea rdx, str.An_unexpected_error.
mov rcx, rdi
call fcn.14008e8e0
jmp 0x140002612
lea rdx, str.An_invalid_pointer_was_supplied.
mov rcx, rdi
call fcn.14008e8e0
jmp 0x140002612
lea rdx, str.Not_implemented._In_the_case_of_attaching_an_event_handler_to_a_COM_object__this_could_signify_that_the_object_does_not_provide_any_type_information.
mov rcx, rdi
call fcn.14008e8e0
jmp 0x140002612
lea rdx, str.Type_mismatch_in_the_method_parameters.
mov rcx, rdi
call fcn.14008e8e0
jmp 0x140002612
lea rdx, str.Unable_to_set_event_handler_because_the_connection_point_has_already_reached_its_limit_of_connections.
mov rcx, rdi
call fcn.14008e8e0
jmp 0x140002612
lea rdx, str.Class_does_not_support_aggregation__or_class_object_is_remote_.
mov rcx, rdi
call fcn.14008e8e0
jmp 0x140002612
lea rdx, str.Overflow_error_whilst_converting_between_types.
mov rcx, rdi
call fcn.14008e8e0
jmp 0x140002612
lea rdx, str.Method_property_not_supported_by_this_object.
mov rcx, rdi
call fcn.14008e8e0
jmp 0x140002612
lea rdx, str.Invalid_number_of_method_property_parameters.
mov rcx, rdi
call fcn.14008e8e0
jmp 0x140002612
lea rdx, str.A_method_property_parameter_is_not_a_valid__variant__type.
mov rcx, rdi
call fcn.14008e8e0
jmp 0x140002612
lea rdx, str.Member_not_found.__Check_that_you_have_not_omitted_any_optional_parameters_and_are_not_trying_to_set_a_read_only_property_etc._
mov rcx, rdi
call fcn.14008e8e0
jmp 0x140002612
lea rdx, str.Does_not_support_a_collection.
mov rcx, rdi
call fcn.14008e8e0
jmp 0x140002612
lea rdx, str.A_general_access_denied_error.
mov rcx, rdi
call fcn.14008e8e0
jmp 0x140002612
call fcn.14008e420
mov rcx, qword [rsp + 0x80]
call fcn.14008e870
call fcn.14008e480
mov edx, eax
mov rcx, rdi
call fcn.14008e790
mov rdx, qword [rsi + 8]
lea rcx, [0x140192f00]
call fcn.14008e730
test eax, eax
je 0x140002612
lea rdx, str.An_exception_occurred_during_the_execution_of_this_method_property.
mov rcx, rdi
call fcn.14008e8e0
jmp 0x140002612
mov rax, rbx
and eax, 0x7fff0000
cmp rax, 0x70000
jne 0x140002af0
movzx ebx, bx
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8, rbx
xor edx, edx
mov ecx, 0x1100
call sub.KERNEL32.dll_FormatMessageW
mov rsi, rax
test rax, rax
jne 0x140002b34
call fcn.14008e420
lea rcx, str._FACILITY_WIN32_error
call fcn.14008e870
call fcn.14008e420
call fcn.14008e420
call fcn.14008e480
mov edx, eax
mov rcx, rbx
call fcn.14008ae50
call fcn.14008e480
lea rcx, str.__Unable_to_retrieve_error_description_from_system_
jmp 0x14000287f
call fcn.14008e420
lea rcx, str.Unknown_error.__Code_:_Hex
call fcn.14008e870
call fcn.14008e420
call fcn.14008e420
mov rbx, qword [rsi]
call fcn.14008e480
mov r8d, eax
mov edx, 5
mov rcx, rbx
call fcn.14008af60
call fcn.14008e480
lea rcx, str._._Please_report_this_error_code_to_the_author_at_enquiries_nxsoftware.com
jmp 0x14000287f
call fcn.14008e420
lea rcx, str._FACILITY_WIN32_error
call fcn.14008e870
call fcn.14008e420
call fcn.14008e420
call fcn.14008e480
mov edx, eax
mov rcx, rbx
call fcn.14008ae50
call fcn.14008e480
lea rcx, [0x14015ddc0]
call fcn.14008e870
call fcn.14008e420
call fcn.14008e420
mov rbx, qword [rsp + 0x48]
call fcn.14008e480
mov r8d, eax
mov rdx, rsi
mov rcx, rbx
call fcn.14008d940
call fcn.14008e480
call fcn.14008e480
mov edx, eax
mov rcx, rdi
call fcn.14008e790
mov rcx, qword [rsp + 0x48]
call sub.KERNEL32.dll_LocalFree
jmp 0x140002612