Function at 0x427c56
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ecx
push ebx
mov ebx, dword fs:[0x2c]
push esi
xor esi, esi
cmp dword [0x4a8e00], esi
push edi
mov edi, dword [0x4aac14]
je 0x427c7c
mov eax, dword [ebx + edi*4]
mov eax, dword [eax + 4]
jmp 0x427c88
push dword [0x4ab070]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, esi
jne 0x427eb9
cmp dword [0x4a8e00], esi
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_TlsSetValue]
je 0x427caa
mov eax, dword [ebx + edi*4]
mov dword [eax + 4], esi
jmp 0x427cb3
push esi
push dword [0x4ab070]
call ebp
cmp dword [0x4a8e00], esi
je 0x427cc6
mov eax, dword [ebx + edi*4]
mov dword [eax + 0x10], esi
jmp 0x427ccf
push esi
push dword [0x4ab06c]
call ebp
push dword [esp + 0x20]
mov eax, dword [esp + 0x20]
call fcn.00427512
mov esi, eax
test esi, esi
pop ecx
je 0x427eb6
cmp dword [0x4a8e00], 0
je 0x427cfb
mov eax, dword [ebx + edi*4]
mov dword [eax + 4], esi
jmp 0x427d04
push esi
push dword [0x4ab070]
call ebp
mov eax, dword [esp + 0x24]
or eax, 0x84
cmp dword [esp + 0x20], 0
mov dword [esi + 0x8c], eax
jne 0x427d30
push 0x2c
push 1
call sym.AdobeCollabSync.exe_PR_Calloc
test eax, eax
pop ecx
pop ecx
mov dword [esi + 0x10], eax
je 0x427d51
and dword [eax + 0x1c], 0
lea eax, [esi + 0x64]
push esi
mov dword [eax], eax
mov dword [esi + 0x68], eax
call fcn.0041a104
cmp eax, 0xffffffff
pop ecx
jne 0x427d5d
push dword [esi + 0x10]
call sym.AdobeCollabSync.exe_PR_Free
and dword [esi + 0x10], 0
pop ecx
call fcn.0042675a
xor eax, eax
jmp 0x427eb8
xor eax, eax
cmp dword [0x4a8e00], eax
je 0x427d72
mov ecx, dword [ebx + edi*4]
mov dword [ecx + 0x10], eax
jmp 0x427d7b
push eax
push dword [0x4ab06c]
call ebp
cmp dword [0x4a8e00], 0
je 0x427d8f
mov eax, dword [ebx + edi*4]
mov eax, dword [eax + 0x10]
jmp 0x427d9b
push dword [0x4ab06c]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x427df5
cmp dword [0x4a8e00], 0
je 0x427db3
mov eax, dword [ebx + edi*4]
mov ebp, dword [eax + 0xc]
jmp 0x427dc1
push dword [0x4ab05c]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebp, eax
cmp dword [0x4a8e00], 0
je 0x427dd9
mov eax, dword [ebx + edi*4]
mov dword [eax + 0xc], 1
jmp 0x427de7
push 1
push dword [0x4ab05c]
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
push dword [0x4aafa8]
call sym.AdobeCollabSync.exe_PR_Lock
pop ecx
jmp 0x427df9
mov ebp, dword [esp + 0x10]
cmp dword [esp + 0x18], 1
jne 0x427e0f
or dword [esi + 0x8c], 1
inc dword [0x4ab0e8]
jmp 0x427e15
inc dword [0x4ab0a0]
cmp dword [0x4a8e00], 0
je 0x427e29
mov eax, dword [ebx + edi*4]
mov eax, dword [eax + 0x10]
jmp 0x427e35
push dword [0x4ab06c]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x427eb6
push dword [0x4aafa8]
call sym.AdobeCollabSync.exe_PR_Unlock
test ebp, ebp
pop ecx
jne 0x427e95
cmp dword [0x4a8e00], ebp
je 0x427e5c
mov eax, dword [ebx + edi*4]
mov eax, dword [eax + 0x10]
jmp 0x427e68
push dword [0x4ab06c]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp dword [eax + 0xc], 0
je 0x427e95
cmp dword [0x4a8e00], 0
je 0x427e82
mov eax, dword [ebx + edi*4]
mov eax, dword [eax + 0x10]
jmp 0x427e8e
push dword [0x4ab06c]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push eax
call fcn.00418d0c
pop ecx
cmp dword [0x4a8e00], 0
je 0x427ea9
mov eax, dword [ebx + edi*4]
mov dword [eax + 0xc], ebp
jmp 0x427eb6
push ebp
push dword [0x4ab05c]
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov eax, esi
pop ebp
pop edi
pop esi
pop ebx
pop ecx
ret