Function at 0x420bd1
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 [0x4a7e00], esi
push edi
mov edi, dword [0x4a9bfc]
je 0x420bf7
mov eax, dword [ebx + edi*4]
mov eax, dword [eax + 4]
jmp 0x420c03
push dword [0x4aa050]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, esi
jne 0x420e34
cmp dword [0x4a7e00], esi
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_TlsSetValue]
je 0x420c25
mov eax, dword [ebx + edi*4]
mov dword [eax + 4], esi
jmp 0x420c2e
push esi
push dword [0x4aa050]
call ebp
cmp dword [0x4a7e00], esi
je 0x420c41
mov eax, dword [ebx + edi*4]
mov dword [eax + 0x10], esi
jmp 0x420c4a
push esi
push dword [0x4aa04c]
call ebp
push dword [esp + 0x20]
mov eax, dword [esp + 0x20]
call fcn.0042048d
mov esi, eax
test esi, esi
pop ecx
je 0x420e31
cmp dword [0x4a7e00], 0
je 0x420c76
mov eax, dword [ebx + edi*4]
mov dword [eax + 4], esi
jmp 0x420c7f
push esi
push dword [0x4aa050]
call ebp
mov eax, dword [esp + 0x24]
or eax, 0x84
cmp dword [esp + 0x20], 0
mov dword [esi + 0x8c], eax
jne 0x420cab
push 0x2c
push 1
call sym.AdobeCollabSync.exe_PR_Calloc
test eax, eax
pop ecx
pop ecx
mov dword [esi + 0x10], eax
je 0x420ccc
and dword [eax + 0x1c], 0
lea eax, [esi + 0x64]
push esi
mov dword [eax], eax
mov dword [esi + 0x68], eax
call fcn.0041a3db
cmp eax, 0xffffffff
pop ecx
jne 0x420cd8
push dword [esi + 0x10]
call sym.AdobeCollabSync.exe_PR_Free
and dword [esi + 0x10], 0
pop ecx
call fcn.0041f6d5
xor eax, eax
jmp 0x420e33
xor eax, eax
cmp dword [0x4a7e00], eax
je 0x420ced
mov ecx, dword [ebx + edi*4]
mov dword [ecx + 0x10], eax
jmp 0x420cf6
push eax
push dword [0x4aa04c]
call ebp
cmp dword [0x4a7e00], 0
je 0x420d0a
mov eax, dword [ebx + edi*4]
mov eax, dword [eax + 0x10]
jmp 0x420d16
push dword [0x4aa04c]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x420d70
cmp dword [0x4a7e00], 0
je 0x420d2e
mov eax, dword [ebx + edi*4]
mov ebp, dword [eax + 0xc]
jmp 0x420d3c
push dword [0x4aa03c]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebp, eax
cmp dword [0x4a7e00], 0
je 0x420d54
mov eax, dword [ebx + edi*4]
mov dword [eax + 0xc], 1
jmp 0x420d62
push 1
push dword [0x4aa03c]
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
push dword [0x4a9fc0]
call sym.AdobeCollabSync.exe_PR_Lock
pop ecx
jmp 0x420d74
mov ebp, dword [esp + 0x10]
cmp dword [esp + 0x18], 1
jne 0x420d8a
or dword [esi + 0x8c], 1
inc dword [0x4aa0c8]
jmp 0x420d90
inc dword [0x4aa080]
cmp dword [0x4a7e00], 0
je 0x420da4
mov eax, dword [ebx + edi*4]
mov eax, dword [eax + 0x10]
jmp 0x420db0
push dword [0x4aa04c]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x420e31
push dword [0x4a9fc0]
call sym.AdobeCollabSync.exe_PR_Unlock
test ebp, ebp
pop ecx
jne 0x420e10
cmp dword [0x4a7e00], ebp
je 0x420dd7
mov eax, dword [ebx + edi*4]
mov eax, dword [eax + 0x10]
jmp 0x420de3
push dword [0x4aa04c]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp dword [eax + 0xc], 0
je 0x420e10
cmp dword [0x4a7e00], 0
je 0x420dfd
mov eax, dword [ebx + edi*4]
mov eax, dword [eax + 0x10]
jmp 0x420e09
push dword [0x4aa04c]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push eax
call fcn.00418fe9
pop ecx
cmp dword [0x4a7e00], 0
je 0x420e24
mov eax, dword [ebx + edi*4]
mov dword [eax + 0xc], ebp
jmp 0x420e31
push ebp
push dword [0x4aa03c]
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov eax, esi
pop ebp
pop edi
pop esi
pop ebx
pop ecx
ret