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

Disassembly:
push ebp
push ebx
push edi
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push eax
call fcn.00472160
mov edx, dword [esp + 0x34]
lea ecx, [esp]
call fcn.00433000
mov dword [section..data], 0x1005bf
mov dword [section..data], 0x1005c2
mov ebx, dword [0x59a048]
and ebx, ebx
je 0x407578
mov ebx, dword [0x59a048]
cmp ebx, 0xffffffff
je 0x407578
jmp 0x40757f
mov eax, 1
jmp 0x407581
xor eax, eax
and eax, eax
je 0x407599
mov dword [section..data], 0x1005c4
call sub.KERNEL32.dll_TlsAlloc
mov dword [0x59a048], eax
mov dword [section..data], 0x1005c5
mov dword [section..data], 0x1005c6
mov ebx, dword [0x59a048]
cmp ebx, 0xffffffff
je 0x4075c3
mov ebx, dword [esp + 0x2c]
cmp ebx, 0xffffffff
je 0x4075c3
jmp 0x4075ca
mov eax, 1
jmp 0x4075cc
xor eax, eax
and eax, eax
jne 0x4075f3
mov ebx, dword [esp + 0x2c]
cmp ebx, 0x80020009
jne 0x4075eb
mov ebx, dword [esp + 0x30]
and ebx, ebx
jne 0x4075eb
mov eax, 1
jmp 0x4075ed
xor eax, eax
and eax, eax
jne 0x4075f3
jmp 0x4075fa
mov eax, 1
jmp 0x4075fc
xor eax, eax
and eax, eax
je 0x40760f
mov dword [section..data], 0x1005c7
jmp 0x408101
mov dword [section..data], 0x1005c8
mov dword [section..data], 0x1005ca
push dword [0x59a048]
call sub.KERNEL32.dll_TlsGetValue
mov dword [esp + 4], eax
mov dword [section..data], 0x1005cb
mov ebx, dword [esp + 4]
and ebx, ebx
jne 0x4077c1
mov dword [section..data], 0x1005cd
push 8
call fcn.00470f90
mov dword [esp + 4], eax
mov dword [section..data], 0x1005ce
cmp dword [esp + 4], 0
je 0x4077b7
mov dword [section..data], 0x1005cf
push dword [esp + 4]
push dword [0x59a048]
call sub.KERNEL32.dll_TlsSetValue
and eax, eax
je 0x40777e
mov dword [section..data], 0x1005d1
mov ebx, dword [0x59a074]
inc ebx
shl ebx, 2
push ebx
push dword [0x59a030]
call fcn.004712b0
mov dword [esp + 8], eax
mov dword [section..data], 0x1005d2
cmp dword [esp + 8], 0
je 0x40771f
mov dword [section..data], 0x1005d3
mov eax, dword [esp + 8]
mov dword [0x59a030], eax
mov dword [section..data], 0x1005d4
push dword [esp + 4]
mov ebx, dword [0x59a030]
mov edi, dword [0x59a074]
shl edi, 2
add ebx, edi
push ebx
call fcn.004712f0
mov dword [section..data], 0x1005d5
inc dword [0x59a074]
mov dword [section..data], 0x1005d6
jmp 0x407768
mov dword [section..data], 0x1005d6
mov dword [section..data], 0x1005d7
push 0
push dword [0x59a048]
call sub.KERNEL32.dll_TlsSetValue
mov dword [section..data], 0x1005d8
push dword [esp + 4]
call fcn.00470fb0
mov dword [section..data], 0x1005d9
mov dword [esp + 4], 0
mov dword [section..data], 0x1005da
mov dword [section..data], 0x1005db
jmp 0x4077ad
mov dword [section..data], 0x1005db
mov dword [section..data], 0x1005dc
push dword [esp + 4]
call fcn.00470fb0
mov dword [section..data], 0x1005dd
mov dword [esp + 4], 0
mov dword [section..data], 0x1005de
mov dword [section..data], 0x1005df
mov dword [section..data], 0x1005e0
mov dword [section..data], 0x1005e1
cmp dword [esp + 4], 0
je 0x4080eb
mov dword [section..data], 0x1005e2
push dword [esp + 0x2c]
mov ebp, dword [esp + 8]
pop dword [ebp]
mov dword [section..data], 0x1005e3
push dword [esp + 0x2c]
mov dword [section..data], 0x1005e4
xor ebx, ebx
cmp ebx, dword [esp]
jne 0x40783e
mov dword [section..data], 0x1005e5
mov ebp, dword [esp + 8]
mov edx, str.Okay.
lea ecx, [ebp + 4]
call fcn.00433008
mov dword [section..data], 0x1005e6
jmp 0x4080e0
mov dword [section..data], 0x1005e6
mov ebx, 1
cmp ebx, dword [esp]
jne 0x4078f6
mov dword [section..data], 0x1005e7
mov edx, dword [esp + 4]
xor ecx, ecx
call fcn.00433140
jne 0x4078b8
mov dword [section..data], 0x1005e8
push edx
call fcn.00472070
pop edx
push eax
mov edx, str.The_operation_completed__but_was_only_partially_successful.__
push edx
call fcn.00472110
mov edx, dword [esp + 8]
push edx
call fcn.00472110
mov edx, 0x580964
push edx
call fcn.00472110
mov ebp, dword [esp + 0xc]
lea eax, [ebp + 4]
push eax
call fcn.004720a0
mov dword [section..data], 0x1005e9
jmp 0x4078dd
mov dword [section..data], 0x1005e9
mov dword [section..data], 0x1005ea
mov ebp, dword [esp + 8]
mov edx, str.The_operation_completed__but_was_only_partially_successful.
lea ecx, [ebp + 4]
call fcn.00433008
mov dword [section..data], 0x1005eb
mov dword [section..data], 0x1005ec
jmp 0x4080e0
mov dword [section..data], 0x1005ec
mov ebx, 0x80004005
cmp ebx, dword [esp]
jne 0x407934
mov dword [section..data], 0x1005ed
mov ebp, dword [esp + 8]
mov edx, str.Unspecified_error.
lea ecx, [ebp + 4]
call fcn.00433008
mov dword [section..data], 0x1005ee
jmp 0x4080e0
mov dword [section..data], 0x1005ee
mov ebx, 0x80070057
cmp ebx, dword [esp]
jne 0x407972
mov dword [section..data], 0x1005ef
mov ebp, dword [esp + 8]
mov edx, 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.
lea ecx, [ebp + 4]
call fcn.00433008
mov dword [section..data], 0x1005f0
jmp 0x4080e0
mov dword [section..data], 0x1005f0
mov ebx, 0x80004002
cmp ebx, dword [esp]
jne 0x4079b0
mov dword [section..data], 0x1005f1
mov ebp, dword [esp + 8]
mov edx, str.Method_is_not_implemented.
lea ecx, [ebp + 4]
call fcn.00433008
mov dword [section..data], 0x1005f2
jmp 0x4080e0
mov dword [section..data], 0x1005f2
mov ebx, 0x8007000e
cmp ebx, dword [esp]
jne 0x407a28
mov dword [section..data], 0x1005f3
push edx
call fcn.00472070
pop edx
push eax
mov edx, str.Problem_allocating_memory._r_n_r_n_Possibly_too_many_method_arguments._Each_method_property_is_limited_by_COMatePLUS_to_a_maximum_of
push edx
call fcn.00472110
push edx
call fcn.00472070
pop edx
push eax
push edx
call fcn.00472070
pop edx
push eax
push 0
push 0x14
call fcn.0046fe60
pop eax
mov edx, str._arguments._
push edx
call fcn.00472110
mov ebp, dword [esp + 0xc]
lea eax, [ebp + 4]
push eax
call fcn.004720a0
mov dword [section..data], 0x1005f4
jmp 0x4080e0
mov dword [section..data], 0x1005f4
mov ebx, 0x8000ffff
cmp ebx, dword [esp]
jne 0x407a66
mov dword [section..data], 0x1005f5
mov ebp, dword [esp + 8]
mov edx, str.An_unexpected_error.
lea ecx, [ebp + 4]
call fcn.00433008
mov dword [section..data], 0x1005f6
jmp 0x4080e0
mov dword [section..data], 0x1005f6
mov ebx, 0x80004003
cmp ebx, dword [esp]
jne 0x407aa4
mov dword [section..data], 0x1005f7
mov ebp, dword [esp + 8]
mov edx, str.An_invalid_pointer_was_supplied.
lea ecx, [ebp + 4]
call fcn.00433008
mov dword [section..data], 0x1005f8
jmp 0x4080e0
mov dword [section..data], 0x1005f8
mov ebx, 0x80004001
cmp ebx, dword [esp]
jne 0x407ae2
mov dword [section..data], 0x1005f9
mov ebp, dword [esp + 8]
mov edx, 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.
lea ecx, [ebp + 4]
call fcn.00433008
mov dword [section..data], 0x1005fa
jmp 0x4080e0
mov dword [section..data], 0x1005fa
mov ebx, 0x800401f3
cmp ebx, dword [esp]
je 0x407b00
mov ebx, 0x80040154
cmp ebx, dword [esp]
jne 0x407b2a
mov dword [section..data], 0x1005fb
mov ebp, dword [esp + 8]
mov edx, str.Invalid_progID_CLSID._Check_your_spelling_of_the_programmatic_identifier._Also_check_that_the_component___ActiveX_control_has_been_registered.
lea ecx, [ebp + 4]
call fcn.00433008
mov dword [section..data], 0x1005fc
jmp 0x4080e0
mov dword [section..data], 0x1005fc
mov ebx, 0x80080005
cmp ebx, dword [esp]
jne 0x407b68
mov dword [section..data], 0x1005fd
mov ebp, dword [esp + 8]
mov edx, str.Server_execution_failed._Usually_caused_by_an_out_of_process_server_timing_out_when_asked_to_create_an_instance_of_a_class_factory.
lea ecx, [ebp + 4]
call fcn.00433008
mov dword [section..data], 0x1005fe
jmp 0x4080e0
mov dword [section..data], 0x1005fe
mov ebx, 0x80020005
cmp ebx, dword [esp]
jne 0x407ba6
mov dword [section..data], 0x1005ff
mov ebp, dword [esp + 8]
mov edx, str.Type_mismatch_in_the_method_parameters.
lea ecx, [ebp + 4]
call fcn.00433008
mov dword [section..data], 0x100600
jmp 0x4080e0
mov dword [section..data], 0x100600
mov ebx, 0x8002802b
cmp ebx, dword [esp]
jne 0x407be4
mov dword [section..data], 0x100601
mov ebp, dword [esp + 8]
mov edx, str.No_type_description_was_found_in_the_library_with_the_specified_GUID_whilst_trying_to_create_an_event_handler.
lea ecx, [ebp + 4]
call fcn.00433008
mov dword [section..data], 0x100602
jmp 0x4080e0
mov dword [section..data], 0x100602
mov ebx, 0x80040201
cmp ebx, dword [esp]
jne 0x407c22
mov dword [section..data], 0x100603
mov ebp, dword [esp + 8]
mov edx, str.Unable_to_set_event_handler_because_the_connection_point_has_already_reached_its_limit_of_connections.
lea ecx, [ebp + 4]
call fcn.00433008
mov dword [section..data], 0x100604
jmp 0x4080e0
mov dword [section..data], 0x100604
mov ebx, 0x80040110
cmp ebx, dword [esp]
jne 0x407c60
mov dword [section..data], 0x100605
mov ebp, dword [esp + 8]
mov edx, str.Class_does_not_support_aggregation__or_class_object_is_remote_.
lea ecx, [ebp + 4]
call fcn.00433008
mov dword [section..data], 0x100606
jmp 0x4080e0
mov dword [section..data], 0x100606
mov ebx, 0x8002000a
cmp ebx, dword [esp]
jne 0x407c9e
mov dword [section..data], 0x100607
mov ebp, dword [esp + 8]
mov edx, str.Overflow_error_whilst_converting_between_types.
lea ecx, [ebp + 4]
call fcn.00433008
mov dword [section..data], 0x100608
jmp 0x4080e0
mov dword [section..data], 0x100608
mov ebx, 0x80020006
cmp ebx, dword [esp]
jne 0x407cdc
mov dword [section..data], 0x100609
mov ebp, dword [esp + 8]
mov edx, str.Method_property_not_supported_by_this_object.
lea ecx, [ebp + 4]
call fcn.00433008
mov dword [section..data], 0x10060a
jmp 0x4080e0
mov dword [section..data], 0x10060a
mov ebx, 0x8002000e
cmp ebx, dword [esp]
jne 0x407d1a
mov dword [section..data], 0x10060b
mov ebp, dword [esp + 8]
mov edx, str.Invalid_number_of_method_property_parameters.
lea ecx, [ebp + 4]
call fcn.00433008
mov dword [section..data], 0x10060c
jmp 0x4080e0
mov dword [section..data], 0x10060c
mov ebx, 0x80020008
cmp ebx, dword [esp]
jne 0x407d58
mov dword [section..data], 0x10060d
mov ebp, dword [esp + 8]
mov edx, str.A_method_property_parameter_is_not_a_valid__variant__type.
lea ecx, [ebp + 4]
call fcn.00433008
mov dword [section..data], 0x10060e
jmp 0x4080e0
mov dword [section..data], 0x10060e
mov ebx, 0x80020003
cmp ebx, dword [esp]
jne 0x407d96
mov dword [section..data], 0x10060f
mov ebp, dword [esp + 8]
mov edx, str.Member_not_found.__Check_that_you_have_not_omitted_any_optional_parameters_and_are_not_trying_to_set_a_read_only_property_etc._
lea ecx, [ebp + 4]
call fcn.00433008
mov dword [section..data], 0x100610
jmp 0x4080e0
mov dword [section..data], 0x100610
mov ebx, 0x80020011
cmp ebx, dword [esp]
jne 0x407dd4
mov dword [section..data], 0x100611
mov ebp, dword [esp + 8]
mov edx, str.Does_not_support_a_collection.
lea ecx, [ebp + 4]
call fcn.00433008
mov dword [section..data], 0x100612
jmp 0x4080e0
mov dword [section..data], 0x100612
mov ebx, 0x80070005
cmp ebx, dword [esp]
jne 0x407e12
mov dword [section..data], 0x100613
mov ebp, dword [esp + 8]
mov edx, str.A_general_access_denied_error.
lea ecx, [ebp + 4]
call fcn.00433008
mov dword [section..data], 0x100614
jmp 0x4080e0
mov dword [section..data], 0x100614
mov ebx, 0x8001010e
cmp ebx, dword [esp]
jne 0x407e50
mov dword [section..data], 0x100615
mov ebp, dword [esp + 8]
mov edx, str.The_application_called_upon_an_interface_that_was_marshalled_for_a_different_thread.
lea ecx, [ebp + 4]
call fcn.00433008
mov dword [section..data], 0x100616
jmp 0x4080e0
mov dword [section..data], 0x100616
mov ebx, 0x80020009
cmp ebx, dword [esp]
jne 0x407edf
mov dword [section..data], 0x100617
mov edx, dword [esp + 4]
push edx
call fcn.00472070
pop edx
push eax
push edx
call fcn.00472110
mov ebp, dword [esp + 0xc]
lea eax, [ebp + 4]
push eax
call fcn.004720a0
mov dword [section..data], 0x100618
mov ebp, dword [esp + 8]
push dword [ebp + 4]
mov edx, 0x5800a8
pop ecx
call fcn.00433140
je 0x407ec6
mov dword [section..data], 0x100619
mov ebp, dword [esp + 8]
mov edx, str.An_exception_occurred_during_the_execution_of_this_method_property.
lea ecx, [ebp + 4]
call fcn.00433008
mov dword [section..data], 0x10061a
mov dword [section..data], 0x10061b
jmp 0x4080e0
mov dword [section..data], 0x10061b
mov dword [section..data], 0x10061d
mov ebp, dword [esp + 8]
mov ebx, dword [ebp]
and ebx, 0x7fff0000
cmp ebx, 0x70000
jne 0x408072
mov dword [section..data], 0x10061e
mov ebp, dword [esp + 8]
mov ebx, dword [ebp]
and ebx, 0xffff
mov dword [esp + 0x10], ebx
mov dword [section..data], 0x10061f
push 0
push 0
lea eax, [esp + 0x20]
push eax
push 0
push dword [esp + 0x20]
push 0
push 0x1100
call sub.KERNEL32.dll_FormatMessageW
mov dword [esp + 0x14], eax
mov dword [section..data], 0x100620
cmp dword [esp + 0x14], 0
je 0x408000
mov dword [section..data], 0x100621
push edx
call fcn.00472070
pop edx
push eax
mov edx, str._FACILITY_WIN32_error
push edx
call fcn.00472110
push edx
call fcn.00472070
pop edx
push eax
push edx
call fcn.00472070
pop edx
push eax
mov eax, dword [esp + 0x1c]
cdq
push edx
push eax
call fcn.0046fe60
pop eax
mov edx, 0x5872a0
push edx
call fcn.00472110
push edx
call fcn.00472070
pop edx
push eax
push edx
call fcn.00472070
pop edx
push eax
push dword [esp + 0x20]
push dword [esp + 0x28]
call fcn.00471300
pop eax
mov ebp, dword [esp + 0xc]
lea eax, [ebp + 4]
push eax
call fcn.004720a0
mov dword [section..data], 0x100622
push dword [esp + 0x18]
call sub.KERNEL32.dll_LocalFree
mov dword [section..data], 0x100623
jmp 0x40805c
mov dword [section..data], 0x100623
mov dword [section..data], 0x100624
push edx
call fcn.00472070
pop edx
push eax
mov edx, str._FACILITY_WIN32_error
push edx
call fcn.00472110
push edx
call fcn.00472070
pop edx
push eax
push edx
call fcn.00472070
pop edx
push eax
mov eax, dword [esp + 0x1c]
cdq
push edx
push eax
call fcn.0046fe60
pop eax
mov edx, str.__Unable_to_retrieve_error_description_from_system_
push edx
call fcn.00472110
mov ebp, dword [esp + 0xc]
lea eax, [ebp + 4]
push eax
call fcn.004720a0
mov dword [section..data], 0x100625
mov dword [section..data], 0x100626
jmp 0x4080d6
mov dword [section..data], 0x100626
mov dword [section..data], 0x100627
push edx
call fcn.00472070
pop edx
push eax
mov edx, str.Unknown_error.__Code_:_Hex
push edx
call fcn.00472110
push edx
call fcn.00472070
pop edx
push eax
push edx
call fcn.00472070
pop edx
push eax
push 5
mov ebp, dword [esp + 0x18]
mov eax, dword [ebp]
cdq
push edx
push eax
call fcn.0046fcf0
pop eax
mov edx, str._._Please_report_this_error_code_to_the_author_at_enquiries_nxsoftware.com
push edx
call fcn.00472110
mov ebp, dword [esp + 0xc]
lea eax, [ebp + 4]
push eax
call fcn.004720a0
mov dword [section..data], 0x100628
mov dword [section..data], 0x100629
pop eax
mov dword [section..data], 0x10062a
mov dword [section..data], 0x10062b
xor eax, eax
push dword [esp]
call fcn.004721d0
add esp, 0x18
pop edi
pop ebx
pop ebp
ret 0x10