Function at 0x10025e10
Capabilities:
Get thread local storage value

Disassembly:
push 0xffffffffffffffff
push 0x1002d9d2
mov eax, dword fs:[0]
push eax
sub esp, 0x70
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1004f970]
xor eax, esp
push eax
lea eax, [esp + 0x84]
mov dword fs:[0], eax
mov dword [esp + 0x14], ecx
mov edi, dword [esp + 0x98]
xor ebx, ebx
mov dword [esp + 0x18], ebx
cmp dword [edi + 0x14], ebx
je 0x1002628f
cmp dword [edi + 0x18], 8
jb 0x10025e5f
mov eax, dword [edi + 4]
jmp 0x10025e62
lea eax, [edi + 4]
cmp word [eax], bx
je 0x1002628f
cmp byte [esp + 0x9c], bl
je 0x10025e96
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
lea edx, [esp + 0x20]
mov dword [esp + 0x20], eax
push edx
lea eax, [esp + 0x64]
push eax
mov dword [esp + 0x2c], ecx
call dword [sym.imp.MSVCR90.dll__gmtime64_s]
add esp, 8
jmp 0x10025ea0
lea edx, [esp + 0x60]
push edx
call sym.log4cplusU.dll_public:_void___thiscall_log4cplus::helpers::Time::localtime_struct_tm__const
mov eax, dword [0x1004f9b0]
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, ebx
jne 0x10025eb5
call fcn.100117b0
lea esi, [eax + 0x178]
lea ebp, [esi + 0x54]
mov ecx, ebp
mov byte [esi + 0xc0], bl
mov byte [esi + 0xc1], bl
mov byte [esi + 0xc2], bl
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::clear_void_]
mov eax, dword [esi + 0x84]
mov ecx, eax
shr ecx, 1
add ecx, eax
push ecx
mov ecx, ebp
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::reserve_unsigned_int_]
lea edx, [esp + 0x20]
push edx
mov ecx, edi
call dword [sym.imp.MSVCP90.dll_public:_class_std::_String_const_iterator_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__::begin_void_]
lea ebx, [ebx]
lea eax, [esp + 0x18]
push eax
mov ecx, edi
call dword [sym.imp.MSVCP90.dll_public:_class_std::_String_const_iterator_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__::end_void_]
mov edi, eax
mov eax, dword [esp + 0x20]
cmp eax, 0xfffffffc
je 0x10025f2a
test eax, eax
je 0x10025f20
cmp eax, dword [edi]
je 0x10025f2a
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
cmp ecx, dword [edi + 4]
je 0x10026107
mov ecx, ebx
sub ecx, 0
je 0x10026062
sub ecx, 1
jne 0x100260c3
cmp eax, 0xfffffffc
je 0x10025f7e
test eax, eax
jne 0x10025f5e
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x20]
cmp dword [eax + 0x18], 8
jb 0x10025f69
mov ecx, dword [eax + 4]
jmp 0x10025f6c
lea ecx, [eax + 4]
mov edx, dword [eax + 0x14]
lea eax, [ecx + edx*2]
cmp dword [esp + 0x24], eax
jb 0x10025f7e
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x24]
movzx eax, word [ecx]
sub eax, 0x51
je 0x10026028
sub eax, 0x20
je 0x10025ff8
sub eax, 2
je 0x10025fbe
push 0x25
mov ecx, ebp
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::push_back_wchar_t_]
lea ecx, [esp + 0x20]
call fcn.10015bf0
movzx edx, word [eax]
push edx
mov ecx, ebp
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::push_back_wchar_t_]
xor ebx, ebx
jmp 0x100260bf
cmp byte [esi + 0xc2], 0
jne 0x10025fe5
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
push edx
lea eax, [esi + 0x38]
push eax
call fcn.10025c40
add esp, 0xc
mov byte [esi + 0xc2], 1
lea ecx, [esi + 0x38]
push ecx
mov ecx, ebp
call dword [sym.imp.MSVCP90.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__::append_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
xor ebx, ebx
jmp 0x100260bf
cmp byte [esi + 0xc1], 0
jne 0x10026018
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 8]
push eax
call fcn.10025d20
add esp, 4
mov byte [esi + 0xc1], 1
push esi
mov ecx, ebp
call dword [sym.imp.MSVCP90.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__::append_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
xor ebx, ebx
jmp 0x100260bf
cmp byte [esi + 0xc0], 0
jne 0x10026052
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
lea ecx, [esi + 0x8c]
push ecx
lea edx, [esi + 0x1c]
push edx
call fcn.10025d70
add esp, 8
mov byte [esi + 0xc0], 1
lea ecx, [esi + 0x1c]
push ecx
mov ecx, ebp
call dword [sym.imp.MSVCP90.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__::append_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
xor ebx, ebx
jmp 0x100260bf
cmp eax, 0xfffffffc
je 0x10026099
test eax, eax
jne 0x10026075
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x20]
cmp dword [eax + 0x18], 8
jb 0x10026080
mov ecx, dword [eax + 4]
jmp 0x10026083
lea ecx, [eax + 4]
mov edx, dword [eax + 0x14]
lea ecx, [ecx + edx*2]
cmp dword [esp + 0x24], ecx
jb 0x10026099
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
cmp word [edx], 0x25
jne 0x100260aa
mov ebx, 1
jmp 0x100260c3
lea ecx, [esp + 0x20]
call fcn.10015bf0
movzx eax, word [eax]
push eax
mov ecx, ebp
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::push_back_wchar_t_]
mov eax, dword [esp + 0x20]
cmp eax, 0xfffffffc
je 0x100260f6
test eax, eax
jne 0x100260d6
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x20]
cmp dword [eax + 0x18], 8
jb 0x100260e1
mov ecx, dword [eax + 4]
jmp 0x100260e4
lea ecx, [eax + 4]
mov edx, dword [eax + 0x14]
lea eax, [ecx + edx*2]
cmp dword [esp + 0x24], eax
jb 0x100260f6
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
add dword [esp + 0x24], 2
mov edi, dword [esp + 0x98]
jmp 0x10025f00
lea ebx, [esi + 0x70]
push ebp
mov ecx, ebx
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::swap_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t____]
mov eax, dword [esi + 0x84]
lea edi, [eax + 1]
mov eax, edi
shl eax, 4
mov dword [esp + 0x14], eax
cmp eax, 0x400
mov dword [esp + 0x18], 0x400
lea eax, [esp + 0x14]
ja 0x1002613c
lea eax, [esp + 0x18]
mov ecx, dword [eax]
mov dword [esp + 0x18], ecx
lea ebp, [esi + 0xa8]
push 0
push edi
mov ecx, ebp
call fcn.10021270
call dword [sym.imp.MSVCR90.dll__errno]
mov dword [eax], 0
cmp dword [ebx + 0x18], 8
jb 0x10026169
mov esi, dword [ebx + 4]
jmp 0x1002616c
lea esi, [ebx + 4]
mov edx, dword [ebp + 0x10]
sub edx, dword [ebp + 0xc]
sar edx, 1
jne 0x1002617c
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [ebp + 0xc]
lea ecx, [esp + 0x60]
push ecx
push esi
push edi
push eax
call dword [sym.imp.MSVCR90.dll_wcsftime]
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x1002620f
call dword [sym.imp.MSVCR90.dll__errno]
mov eax, dword [eax]
add edi, edi
cmp edi, dword [esp + 0x18]
jbe 0x10026148
push eax
lea edx, [esp + 0x48]
push edx
call fcn.10016700
push eax
lea eax, [esp + 0x34]
push 0x10033218
push eax
mov dword [esp + 0xa0], esi
call dword [sym.imp.MSVCP90.dll_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_std::operator_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___wchar_t_const___class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
add esp, 0x14
push 1
push eax
mov byte [esp + 0x94], 1
call sym.log4cplusU.dll_public:_static_class_log4cplus::helpers::LogLog____cdecl_log4cplus::helpers::LogLog::getLogLog_void_
mov ecx, eax
call sym.log4cplusU.dll_public:_void___thiscall_log4cplus::helpers::LogLog::error_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const___bool_const
lea ecx, [esp + 0x28]
mov byte [esp + 0x8c], 0
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [esp + 0x44]
mov dword [esp + 0x8c], 0xffffffff
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
jmp 0x10026148
mov ebx, dword [ebp + 0xc]
cmp ebx, dword [ebp + 0x10]
jbe 0x1002621d
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edi, dword [ebp]
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], ebx
test edi, edi
jne 0x10026244
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
lea ebx, [ebx + esi*2]
cmp ebx, dword [eax + 0x10]
ja 0x1002624f
test edi, edi
je 0x10026248
mov edi, dword [edi]
jmp 0x1002624a
mov eax, dword [edi]
jmp 0x10026234
xor edi, edi
cmp ebx, dword [edi + 0xc]
jae 0x10026255
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edi, dword [ebp + 0xc]
cmp edi, dword [ebp + 0x10]
jbe 0x10026263
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov esi, dword [esp + 0x94]
mov ebp, dword [ebp]
push 0
push 0
mov ecx, esi
call dword [sym.imp.MSVCP90.dll_protected:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::_Tidy_bool__unsigned_int_]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x18]
push ecx
push ebx
push edx
push edi
push ebp
mov ecx, esi
call fcn.10023040
jmp 0x1002629e
mov esi, dword [esp + 0x94]
mov ecx, esi
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_void_]
mov eax, esi
mov ecx, dword [esp + 0x84]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret 0xc