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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xac
mov eax, dword [0x1a700c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor edi, edi
mov byte [ebp - 0xa4], 1
mov ebx, ecx
mov dword [ebp - 0xa0], edi
mov dword [ebp - 0x9c], ebx
cmp dword [0x1aa220], edi
je 0xfd26d
push 0x191934
push 2
call fcn.00158e14
add esp, 4
push eax
call fcn.000f0dc0
add esp, 8
cmp dword [ebx + 0x128], edi
je 0xfd2a3
nop word [eax + eax]
mov ecx, dword [ebx + 0x128]
push ecx
mov eax, dword [ecx + 0x168]
mov dword [ebx + 0x128], eax
call fcn.00158d47
add esp, 4
cmp dword [ebx + 0x128], edi
jne 0xfd280
mov dword [ebx + 0x128], edi
mov esi, dword [ebx + 0x124]
test esi, esi
je 0xfd303
cmp byte [esi + 0x58], 0x25
jne 0xfd2f9
cmp byte [esi + 0x59], 0x2f
jne 0xfd2f9
mov al, byte [esi + 0x5a]
cmp al, 0x40
je 0xfd2ce
cmp al, 0x43
je 0xfd2ce
cmp al, 0x45
jne 0xfd2f9
push dword [ebp - 0xa4]
mov edx, esi
mov ecx, ebx
push edi
call 0xfce30
mov edi, eax
add esp, 8
mov dword [ebp - 0xa0], edi
cmp edi, 0xffffffff
je 0xfd6c3
mov byte [ebp - 0xa4], 0
mov esi, dword [esi + 0x800]
test esi, esi
jne 0xfd2b3
mov edx, dword [ebx + 0x120]
mov dword [ebp - 0xac], edx
test edx, edx
je 0xfd6d7
nop word [eax + eax]
mov edi, dword [ebx + 0x98]
cmp edi, 1
jne 0xfd353
movzx ecx, byte [edx + 0x97]
movzx eax, byte [edx + 0x96]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx + 0x95]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx + 0x94]
jmp 0xfd379
movzx ecx, byte [edx + 0x94]
movzx eax, byte [edx + 0x95]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx + 0x96]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx + 0x97]
mov ebx, dword [ebx + 0x50]
xor esi, esi
shl ecx, 8
add ecx, eax
imul ebx, ecx
cmp edi, 1
jne 0xfd3b3
movzx edi, byte [edx + 0x8b]
movzx eax, byte [edx + 0x8a]
shl edi, 8
add edi, eax
movzx eax, byte [edx + 0x89]
shl edi, 8
add edi, eax
movzx eax, byte [edx + 0x88]
jmp 0xfd3d9
movzx edi, byte [edx + 0x88]
movzx eax, byte [edx + 0x89]
shl edi, 8
add edi, eax
movzx eax, byte [edx + 0x8a]
shl edi, 8
add edi, eax
movzx eax, byte [edx + 0x8b]
shl edi, 8
add edi, eax
test edi, edi
je 0xfd53e
nop word [eax + eax]
mov ecx, dword [ebp - 0x9c]
lea edx, [ebp - 0x98]
push 8
push esi
push ebx
call fcn.00135350
add esp, 0xc
cmp eax, 8
jne 0xfd61a
mov ecx, dword [ebp - 0x9c]
lea edx, [ebp - 0x90]
sub edi, eax
add ebx, eax
mov eax, 0x80
adc esi, 0
mov dword [ebp - 0xa8], esi
movzx esi, byte [ebp - 0x98]
cmp esi, 0x80
cmovg esi, eax
push esi
push dword [ebp - 0xa8]
push ebx
call fcn.00135350
add esp, 0xc
cmp eax, esi
jne 0xfd55d
cmp eax, 0x81
jae 0xfd6ee
mov esi, dword [ebp - 0xa8]
sub edi, eax
mov byte [ebp + eax - 0x90], 0
cdq
add ebx, eax
movzx eax, byte [ebp - 0x98]
adc esi, edx
and eax, 0x80000001
jns 0xfd48a
dec eax
or eax, 0xfffffffe
inc eax
je 0xfd493
dec edi
add ebx, 1
adc esi, 0
mov edx, dword [ebp - 0x9c]
cmp dword [edx + 0x98], 1
jne 0xfd4ca
movzx eax, byte [ebp - 0x93]
movzx ecx, byte [ebp - 0x94]
shl eax, 8
add eax, ecx
movzx ecx, byte [ebp - 0x95]
shl eax, 8
add eax, ecx
movzx ecx, byte [ebp - 0x96]
jmp 0xfd4f0
movzx eax, byte [ebp - 0x96]
movzx ecx, byte [ebp - 0x95]
shl eax, 8
add eax, ecx
movzx ecx, byte [ebp - 0x94]
shl eax, 8
add eax, ecx
movzx ecx, byte [ebp - 0x93]
push dword [ebp - 0xa4]
shl eax, 8
add eax, ecx
mov ecx, dword [edx + 0x50]
mov edx, dword [ebp - 0xa0]
imul ecx, eax
lea eax, [ebp - 0x90]
push eax
push 0
push 0
push ecx
mov ecx, dword [ebp - 0x9c]
call 0xfc270
add esp, 0x14
mov dword [ebp - 0xa0], eax
cmp eax, 0xffffffff
je 0xfd6c3
test edi, edi
jne 0xfd3f0
mov edx, dword [ebp - 0xac]
mov edx, dword [edx + 0x800]
mov dword [ebp - 0xac], edx
test edx, edx
je 0xfd6d7
mov ebx, dword [ebp - 0x9c]
jmp 0xfd320
test eax, eax
js 0xfd5f9
mov edi, dword [0x1aa224]
push edi
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebx, dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov esi, eax
test esi, esi
jne 0xfd5a5
push 0xc08
call fcn.0015c8ae
add esp, 4
mov esi, eax
push 0xc08
push 0
push esi
call fcn.00153d90
add esp, 0xc
push esi
push edi
call ebx
test esi, esi
je 0xfd5bd
mov dword [esi], 0
mov byte [esi + 4], 0
mov byte [esi + 0x405], 0
mov byte [esi + 0x806], 0
mov edi, dword [0x1aa224]
push edi
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, eax
test esi, esi
jne 0xfd5f3
push 0xc08
call fcn.0015c8ae
add esp, 4
mov esi, eax
push 0xc08
push 0
push esi
call fcn.00153d90
add esp, 0xc
push esi
push edi
call ebx
mov dword [esi], 0x8000004
push 0x1918f0
call fcn.000ee650
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00150cb2
mov esp, ebp
pop ebp
ret
test eax, eax
js 0xfd6b6
mov edi, dword [0x1aa224]
push edi
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebx, dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov esi, eax
test esi, esi
jne 0xfd662
push 0xc08
call fcn.0015c8ae
add esp, 4
mov esi, eax
push 0xc08
push 0
push esi
call fcn.00153d90
add esp, 0xc
push esi
push edi
call ebx
test esi, esi
je 0xfd67a
mov dword [esi], 0
mov byte [esi + 4], 0
mov byte [esi + 0x405], 0
mov byte [esi + 0x806], 0
mov edi, dword [0x1aa224]
push edi
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, eax
test esi, esi
jne 0xfd6b0
push 0xc08
call fcn.0015c8ae
add esp, 4
mov esi, eax
push 0xc08
push 0
push esi
call fcn.00153d90
add esp, 0xc
push esi
push edi
call ebx
mov dword [esi], 0x8000004
push 0x1918f0
call fcn.000ee650
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00150cb2
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0xa0]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.00150cb2
mov esp, ebp
pop ebp
ret
call fcn.00151502
int3