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

Disassembly:
push ebp
mov ebp, esp
push ecx
mov edx, dword [ebp + 0xc]
push ebx
push esi
push edi
xor edi, edi
mov esi, eax
mov dword [edx], edi
mov al, byte [esi]
test al, al
mov dword [ebp - 4], edi
mov ecx, esi
je 0x416896
inc ecx
cmp al, 0x25
jne 0x416866
mov al, byte [ecx]
inc ecx
cmp al, 0x25
je 0x416866
jmp 0x41684a
mov bl, al
sub bl, 0x30
cmp bl, 9
ja 0x416850
mov al, byte [ecx]
inc ecx
test al, al
jne 0x41683d
jmp 0x416866
cmp al, 0x24
jne 0x41685d
test edi, edi
jg 0x416893
inc dword [ebp - 4]
jmp 0x416866
cmp dword [ebp - 4], 0
jg 0x416893
xor edi, edi
inc edi
mov al, byte [ecx]
test al, al
jne 0x41682f
cmp dword [ebp - 4], 0
je 0x416896
cmp dword [ebp - 4], 0x14
jle 0x41689d
mov eax, dword [ebp - 4]
shl eax, 3
push eax
call sym.AdobeCollabSync.exe_PR_Malloc
mov ebx, eax
test ebx, ebx
pop ecx
jne 0x4168a0
mov eax, dword [ebp + 0xc]
or dword [eax], 0xffffffff
jmp 0x416896
or dword [edx], 0xffffffff
xor eax, eax
jmp 0x416a65
mov ebx, dword [ebp + 0x10]
xor ecx, ecx
cmp dword [ebp - 4], ecx
jle 0x4168b4
mov dword [ebx + ecx*8], 0x14
inc ecx
cmp ecx, dword [ebp - 4]
jl 0x4168a7
mov cl, byte [esi]
test cl, cl
mov edx, esi
je 0x416a14
push 2
pop eax
push 6
pop edi
inc edx
cmp cl, 0x25
jne 0x416a02
mov cl, byte [edx]
inc edx
cmp cl, 0x25
je 0x416a02
xor esi, esi
test cl, cl
je 0x416a0e
cmp cl, 0x24
je 0x4168fc
imul esi, esi, 0xa
movsx ecx, cl
lea esi, [esi + ecx - 0x30]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x4168e6
test cl, cl
je 0x416a0e
cmp esi, 1
jl 0x416a0e
cmp esi, dword [ebp - 4]
jg 0x416a0e
lea esi, [ebx + esi*8 - 8]
cmp dword [esi], 0x14
jne 0x416a02
mov cl, byte [edx]
inc edx
cmp cl, 0x2a
jne 0x41693e
mov eax, dword [ebp + 0xc]
or dword [eax], 0xffffffff
jmp 0x416a1c
cmp cl, 0x39
jg 0x416943
mov cl, byte [edx]
inc edx
cmp cl, 0x30
jge 0x416936
cmp cl, 0x2e
jne 0x41695f
mov cl, byte [edx]
inc edx
cmp cl, 0x2a
je 0x41692b
jmp 0x41695a
cmp cl, 0x39
jg 0x41695f
mov cl, byte [edx]
inc edx
cmp cl, 0x30
jge 0x416952
cmp cl, 0x68
mov dword [esi], eax
jne 0x41696b
and dword [esi], 0
jmp 0x416985
cmp cl, 0x4c
je 0x416983
cmp cl, 0x6c
jne 0x416988
mov dword [esi], 4
mov cl, byte [edx]
inc edx
cmp cl, 0x6c
jne 0x416988
mov dword [esi], edi
mov cl, byte [edx]
inc edx
movsx ecx, cl
cmp ecx, 0x69
jg 0x4169c8
je 0x4169f9
cmp ecx, 0x53
jg 0x4169ac
je 0x4169a4
sub ecx, 0x43
je 0x4169a4
sub ecx, eax
je 0x4169a4
sub ecx, eax
mov dword [esi], 0x14
jmp 0x4169f9
cmp ecx, 0x58
je 0x4169f9
cmp ecx, 0x62
jle 0x4169a4
cmp ecx, 0x64
jle 0x4169f9
cmp ecx, 0x67
jg 0x4169a4
mov dword [esi], 9
jmp 0x4169f9
sub ecx, 0x6e
je 0x4169f3
dec ecx
je 0x4169f9
dec ecx
je 0x4169eb
sub ecx, 3
je 0x4169e3
sub ecx, eax
je 0x4169f9
sub ecx, 3
je 0x4169f9
jmp 0x4169a4
mov dword [esi], 8
jmp 0x4169f9
mov dword [esi], 5
jmp 0x4169f9
mov dword [esi], 0xa
cmp dword [esi], 0x14
je 0x41692b
mov cl, byte [edx]
test cl, cl
jne 0x4168c6
jmp 0x416a14
mov eax, dword [ebp + 0xc]
or dword [eax], 0xffffffff
mov eax, dword [ebp + 0xc]
cmp dword [eax], 0
jge 0x416a31
cmp ebx, dword [ebp + 0x10]
je 0x416896
push ebx
call sym.AdobeCollabSync.exe_PR_Free
pop ecx
jmp 0x416896
xor edx, edx
cmp dword [ebp - 4], edx
jle 0x416a63
mov eax, dword [ebp + 8]
push 4
pop esi
mov ecx, dword [ebx + edx*8]
cmp ecx, 0x14
je 0x416a5d
cmp ecx, 0xa
mov dword [ebx + edx*8 + 4], eax
ja case.default.0x416a4f
jmp dword [ecx*4 + 0x416a80]
add eax, esi
jmp 0x416a5d
add eax, 8
inc edx
cmp edx, dword [ebp - 4]
jl 0x416a3e
mov eax, ebx
pop edi
pop esi
pop ebx
leave
ret
cmp ebx, dword [ebp + 0x10]
je 0x41688b
push ebx
call sym.AdobeCollabSync.exe_PR_Free
pop ecx
jmp 0x41688b