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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x281188
push 0x281170
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push ecx
sub esp, 0x4c
push ebx
push esi
push edi
mov dword [ebp - 0x18], esp
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x50], ecx
and dword [ebp - 0x24], 0
mov eax, dword [0x2811bc]
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x3c]
call fcn.002807ea
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
movzx eax, word [eax + 4]
cmp eax, 0x14c
jne 0x280cc2
mov eax, dword [ebp - 0x28]
add eax, 0x78
mov dword [ebp - 0x38], eax
jmp 0x280ccd
mov eax, dword [ebp - 0x28]
add eax, 0x88
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x44], eax
push 8
pop eax
imul eax, eax, 9
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x3c]
add edx, dword [ecx + eax]
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x28]
movzx eax, word [eax + 4]
cmp eax, 0x14c
jne 0x280d03
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x34]
xor ecx, ecx
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], ecx
jmp 0x280d12
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0x5c], ecx
mov eax, dword [eax + 0x34]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x60], eax
call fcn.002808df
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x34], 2
jne 0x280dfc
mov eax, dword [0x2811b4]
add eax, 0x100d
push eax
push 8
push dword [0x2811b8]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
add eax, 8
mov dword [ebp - 0x30], eax
push dword [0x2811b4]
push dword [0x2811b0]
push dword [ebp - 0x30]
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
mov ecx, dword [ecx + 0x2c]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x2c], 0
je 0x280d9e
movzx eax, word [0x2811dc]
cmp eax, 0x601
jg 0x280dbd
push 0x8000
push 8
push dword [0x2811b8]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x2c]
mov dword [eax + 0x2c], ecx
cmp dword [ebp - 0x2c], 0
je 0x280dfa
push dword [ebp - 0x30]
push dword [0x2811d8]
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov eax, dword [0x2811a8]
mov eax, dword [eax + 8]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx + eax*4]
mov dword [ecx], eax
mov eax, dword [0x2811a8]
mov eax, dword [eax + 8]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x30]
mov dword [ecx + eax*4], edx
jmp 0x280e5f
cmp dword [ebp - 0x34], 3
jne 0x280e5f
push dword [0x2811d8]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
sub eax, 8
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
mov eax, dword [eax + 0x2c]
cmp eax, dword [ecx + 4]
je 0x280e4e
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ecx + 4]
mov dword [eax + 0x2c], ecx
push dword [ebp - 0x4c]
push 0
push dword [0x2811b8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
push dword [ebp - 0x20]
push 0
push dword [0x2811b8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
and dword [ebp - 4], 0
and dword [ebp - 0x24], 0
mov eax, dword [ebp - 0x40]
cmp dword [eax + 0xc], 0
je 0x280e79
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
je 0x280ea6
mov eax, dword [ebp - 0x24]
cmp dword [eax], 0
je 0x280ea6
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
mov dword [ebp - 0x54], eax
push dword [ebp + 8]
push dword [ebp - 0x34]
push dword [ebp - 0x50]
call dword [ebp - 0x54]
mov eax, dword [ebp - 0x24]
add eax, 4
mov dword [ebp - 0x24], eax
jmp 0x280e7f
or dword [ebp - 4], 0xffffffff
jmp 0x280eb8
xor eax, eax
inc eax
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4