Function at 0x426ec8
Capabilities:
Get thread local storage value
Print debug messages
Set thread local storage value

Disassembly:
sub esp, 0x208
mov eax, dword [0x4a89e8]
xor eax, esp
mov dword [esp + 0x204], eax
cmp dword [0x4a8e30], 0
jne 0x426eea
call sym.AdobeCollabSync.exe_PR_Init
cmp dword [0x4a98d4], 0
je 0x4270f5
call sym.AdobeCollabSync.exe_PR_GetCurrentThread
test eax, eax
je 0x426f08
mov ecx, dword [eax + 0x88]
jmp 0x426f0a
xor ecx, ecx
push ebx
push ebp
push esi
push edi
push eax
push ecx
push str._ld__p_:
mov edi, 0x1ff
lea eax, [esp + 0x20]
push edi
push eax
call sym.AdobeCollabSync.exe_PR_snprintf
mov esi, eax
lea eax, [esp + 0x234]
push eax
push dword [esp + 0x234]
sub edi, esi
lea eax, [esp + esi + 0x30]
push edi
push eax
call sym.AdobeCollabSync.exe_PR_vsnprintf
add esp, 0x24
add esi, eax
je 0x426f5c
cmp byte [esp + esi + 0x13], 0xa
je 0x426f5c
mov byte [esp + esi + 0x14], 0xa
inc esi
mov byte [esp + esi + 0x14], 0
call fcn.0041a785
mov edi, dword [0x4a9bfc]
mov ebp, dword fs:[0x2c]
mov ebx, eax
test byte [ebx + 0x8c], 0x80
jne 0x426fc5
cmp dword [0x4a7e00], 0
je 0x426f8e
mov eax, dword [ebp + edi*4]
mov eax, dword [eax + 0xc]
jmp 0x426f9a
push dword [0x4aa03c]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp dword [0x4a7e00], 0
mov dword [esp + 0x10], eax
je 0x426fb7
mov eax, dword [ebp + edi*4]
mov dword [eax + 0xc], 1
jmp 0x426fc5
push 1
push dword [0x4aa03c]
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov eax, dword [0x4a98c4]
add eax, 0x1c
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [0x4a98d0]
test ecx, ecx
jne 0x427012
mov eax, dword [0x4a98d4]
cmp eax, 0xfffffffe
jne 0x426ff5
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x42705d
push eax
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.MSVCR80.dll_fputs]
push dword [0x4a98d4]
call dword [sym.imp.MSVCR80.dll_fflush]
add esp, 0xc
jmp 0x42705d
mov eax, dword [0x4a98c8]
lea edx, [eax + esi]
cmp edx, dword [0x4a98c0]
jbe 0x427048
push dword [0x4a98d4]
push ecx
call dword [sym.imp.MSVCR80.dll_fputs]
push dword [0x4a98d4]
call dword [sym.imp.MSVCR80.dll_fflush]
mov eax, dword [0x4a98d0]
add esp, 0xc
mov dword [0x4a98c8], eax
push esi
lea ecx, [esp + 0x18]
push ecx
push eax
call sub.MSVCR80.dll_memcpy
add esp, 0xc
add dword [0x4a98c8], esi
mov eax, dword [0x4a98c4]
add eax, 0x1c
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test byte [ebx + 0x8c], 0x80
jne 0x4270ec
mov esi, dword [esp + 0x10]
xor ebx, ebx
cmp esi, ebx
jne 0x4270cb
cmp dword [0x4a7e00], ebx
je 0x427093
mov eax, dword [ebp + edi*4]
mov eax, dword [eax + 0x10]
jmp 0x42709f
push dword [0x4aa04c]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp dword [eax + 0xc], ebx
je 0x4270cb
cmp dword [0x4a7e00], ebx
je 0x4270b8
mov eax, dword [ebp + edi*4]
mov eax, dword [eax + 0x10]
jmp 0x4270c4
push dword [0x4aa04c]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push eax
call fcn.00418fe9
pop ecx
cmp dword [0x4a7e00], ebx
je 0x4270df
mov eax, dword [ebp + edi*4]
mov dword [eax + 0xc], esi
jmp 0x4270ec
push esi
push dword [0x4aa03c]
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
call sym.AdobeCollabSync.exe_PR_LogFlush
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x204]
xor ecx, esp
call fcn.0047ff5a
add esp, 0x208
ret