Function at 0x855210
Capabilities:
Allocate thread local storage
Get system information on windows
Initialize winsock library

Disassembly:
push r14
push r13
push r12
sub rsp, 0x50
mov ecx, 0x38
call sym.__cxa_allocate_exception
lea rdx, [rsp + 0x28]
mov qword [rsp + 0x30], 0
lea r14, [rsp + 0x20]
mov r12, rax
lea rax, fcn.00749020
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x20], rax
add rax, 0x28
lea rcx, [r12 + 8]
mov qword [rsp + 0x28], rax
lea rax, method.boost::exception_detail::clone_impl_boost::exception_detail::error_info_injector_boost::bad_get___.clone_impl__
mov qword [r12], rax
add rax, 0x38
mov qword [r12 + 8], rax
add rax, 0x38
mov qword [rsp + 0x40], 0
mov dword [rsp + 0x48], 0xffffffff
mov qword [r12 + 0x10], 0
mov qword [r12 + 0x18], 0
mov qword [r12 + 0x20], 0
mov dword [r12 + 0x28], 0xffffffff
mov qword [r12 + 0x30], rax
call method.boost::exception_detail.copy_boost_exception_boost::exception__boost::exception_const_
mov rcx, r14
call fcn.00749020
lea r8, [method.boost::exception_detail::clone_impl_boost::exception_detail::error_info_injector_boost::bad_get___.clone_impl__]
lea rdx, [0x009a2680]
mov rcx, r12
call sym.__cxa_throw
mov rcx, r12
mov r13, rax
call sym.boost::exception_detail::error_info_injector_boost::bad_get_::error_info_injector__
mov rcx, r14
call fcn.00749020
mov rcx, r12
call sym.__cxa_free_exception
mov rcx, r13
call sym._Unwind_Resume
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push rsi
push rbx
sub rsp, 0x1c8
lea rcx, [0x00a2f2e0]
call fcn.00830b20
lea rcx, [sym.__tcf_15_2]
call dbg.atexit
call method.boost::system.generic_category__
call method.boost::system.generic_category__
call method.boost::system.system_category__
cmp byte [0x00865410], 0
je 0x855375
call method.boost::system.system_category__
call method.boost::system.system_category__
call method.boost::system.system_category__
movzx eax, byte [0x008658f0]
test al, al
je 0x855483
lea rcx, [sym.__tcf_16_1]
call dbg.atexit
mov eax, 1
lock xadd dword [0x008674f0], eax
test eax, eax
je 0x8554cc
cmp byte [0x00865450], 0
je 0x85545f
cmp byte [0x00865460], 0
je 0x85543b
lea rdx, [0x00878548]
lea rcx, [0x00a2f2c0]
call fcn.0045fc60
lea rcx, [sym.__tcf_19_2]
call dbg.atexit
lea rdx, [0x008785f0]
lea rcx, [0x00a2f2a0]
call fcn.0045fc60
lea rcx, [sym.__tcf_20_2]
call dbg.atexit
lea rcx, [0x0085f0f0]
mov qword [0x00a2f280], 0
mov qword [0x00a2f288], 0
mov qword [0x00a2f290], 0
mov qword [0x00a2f298], 0
call method.tools.get_default_data_dir_abi:cxx11___
lea rax, [sym._ZNSt17_Function_handlerIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt5arrayIbLy2EEbS5_EN10cryptonoteUlS7_bS5_E_EE9_]
lea rcx, [sym.__tcf_21_2]
mov qword [0x0085f138], rax
lea rax, [sym._ZNSt14_Function_base13_Base_managerIN10cryptonoteUlSt5arrayIbLy2EEbNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE_EE10]
mov qword [0x0085f130], rax
call dbg.atexit
cmp byte [0x00865400], 0
je 0x85541a
cmp byte [0x00865490], 0
je 0x8553eb
cmp byte [0x00865500], 0
je 0x8554b4
add rsp, 0x1c8
pop rbx
pop rsi
ret
mov byte [0x00865410], 1
mov edx, 1
lea rcx, [0x008673f8]
mov byte [0x00867420], 0
call qword [sym.imp.ADVAPI32.dll_InitializeSecurityDescriptor]
test eax, eax
je 0x85524d
xor r9d, r9d
xor r8d, r8d
mov edx, 1
lea rcx, [0x008673f8]
call qword [sym.imp.ADVAPI32.dll_SetSecurityDescriptorDacl]
test eax, eax
je 0x85524d
lea rax, [0x008673f8]
mov byte [0x00867420], 0
mov qword [0x008673e8], rax
mov dword [0x008673e0], 0x18
mov dword [0x008673f0], 0
jmp 0x85524d
mov byte [0x00865490], 1
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
mov ebx, eax
cmp eax, 0xffffffff
je 0x8554e7
lea rcx, [sym.__tcf_22_2]
mov dword [0x008674e0], ebx
call dbg.atexit
jmp 0x85535e
mov byte [0x00865400], 1
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [rsp + 0x40]
mov dword [0x008673c0], eax
jmp 0x855351
lea rcx, [0x008674b0]
mov byte [0x00865460], 1
call method.boost::exception_ptr_boost::exception_detail::get_static_exception_object_boost::exception_detail.bad_exception____
lea rcx, [sym.__tcf_18_2]
call dbg.atexit
jmp 0x8552a6
lea rcx, [0x008674a0]
mov byte [0x00865450], 1
call method.boost::exception_ptr_boost::exception_detail::get_static_exception_object_boost::exception_detail.bad_alloc____
lea rcx, [sym.__tcf_17_2]
call dbg.atexit
jmp 0x855299
lea rcx, [0x008658f0]
call sym.__cxa_guard_acquire
test eax, eax
je 0x85526b
lea rcx, [0x008658f0]
call sym.__cxa_guard_release
lea rcx, [sym.__tcf_2]
call dbg.atexit
jmp 0x85526b
lea rcx, [sym.__tcf_23_1]
mov byte [0x00865500], 1
call dbg.atexit
jmp 0x85536b
lea rdx, [rsp + 0x20]
mov ecx, 2
call qword [sym.imp.WS2_32.dll_WSAStartup]
xchg dword [0x008674f4], eax
jmp 0x85528c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
call method.boost::system.system_category__
mov dword [rsp + 0x20], esi
mov qword [rsp + 0x28], rax
test esi, esi
je 0x855403
lea rcx, [rsp + 0x20]
lea rdx, [0x00878693]
call method.boost::asio::detail.do_throw_error_boost::system::error_code_const__char_const_
nop
nop word [rax + rax]