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

Disassembly:
sub esp, 0x208
mov eax, dword [0x4a9a08]
xor eax, esp
mov dword [esp + 0x204], eax
cmp dword [0x4a9e4c], 0
jne 0x424511
call sym.AdobeCollabSync.exe_PR_Init
cmp dword [0x4aa8d4], 0
je 0x42471c
call sym.AdobeCollabSync.exe_PR_GetCurrentThread
test eax, eax
je 0x42452f
mov ecx, dword [eax + 0x88]
jmp 0x424531
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 0x424583
cmp byte [esp + esi + 0x13], 0xa
je 0x424583
mov byte [esp + esi + 0x14], 0xa
inc esi
mov byte [esp + esi + 0x14], 0
call fcn.0041a4ae
mov edi, dword [0x4aac14]
mov ebp, dword fs:[0x2c]
mov ebx, eax
test byte [ebx + 0x8c], 0x80
jne 0x4245ec
cmp dword [0x4a8e00], 0
je 0x4245b5
mov eax, dword [ebp + edi*4]
mov eax, dword [eax + 0xc]
jmp 0x4245c1
push dword [0x4ab05c]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp dword [0x4a8e00], 0
mov dword [esp + 0x10], eax
je 0x4245de
mov eax, dword [ebp + edi*4]
mov dword [eax + 0xc], 1
jmp 0x4245ec
push 1
push dword [0x4ab05c]
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov eax, dword [0x4aa8c4]
add eax, 0x1c
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [0x4aa8d0]
test ecx, ecx
jne 0x424639
mov eax, dword [0x4aa8d4]
cmp eax, 0xfffffffe
jne 0x42461c
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x424684
push eax
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.MSVCR80.dll_fputs]
push dword [0x4aa8d4]
call dword [sym.imp.MSVCR80.dll_fflush]
add esp, 0xc
jmp 0x424684
mov eax, dword [0x4aa8c8]
lea edx, [eax + esi]
cmp edx, dword [0x4aa8c0]
jbe 0x42466f
push dword [0x4aa8d4]
push ecx
call dword [sym.imp.MSVCR80.dll_fputs]
push dword [0x4aa8d4]
call dword [sym.imp.MSVCR80.dll_fflush]
mov eax, dword [0x4aa8d0]
add esp, 0xc
mov dword [0x4aa8c8], eax
push esi
lea ecx, [esp + 0x18]
push ecx
push eax
call sub.MSVCR80.dll_memcpy
add esp, 0xc
add dword [0x4aa8c8], esi
mov eax, dword [0x4aa8c4]
add eax, 0x1c
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test byte [ebx + 0x8c], 0x80
jne 0x424713
mov esi, dword [esp + 0x10]
xor ebx, ebx
cmp esi, ebx
jne 0x4246f2
cmp dword [0x4a8e00], ebx
je 0x4246ba
mov eax, dword [ebp + edi*4]
mov eax, dword [eax + 0x10]
jmp 0x4246c6
push dword [0x4ab06c]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp dword [eax + 0xc], ebx
je 0x4246f2
cmp dword [0x4a8e00], ebx
je 0x4246df
mov eax, dword [ebp + edi*4]
mov eax, dword [eax + 0x10]
jmp 0x4246eb
push dword [0x4ab06c]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push eax
call fcn.00418d0c
pop ecx
cmp dword [0x4a8e00], ebx
je 0x424706
mov eax, dword [ebp + edi*4]
mov dword [eax + 0xc], esi
jmp 0x424713
push esi
push dword [0x4ab05c]
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.004801ca
add esp, 0x208
ret