Function at 0x4aa560
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ebx
mov ebx, dword [ebp + 0x18]
push esi
push edi
test ebx, ebx
je 0x4aa81a
xor ecx, ecx
xor edx, edx
mov eax, ebx
lea esp, [esp]
test eax, eax
je 0x4aa637
cmp dword [eax + 4], 0xa
jne 0x4aa59d
mov esi, dword [eax + 0x18]
or ecx, esi
mov esi, dword [eax + 0x1c]
mov eax, dword [eax + 0x20]
or edx, esi
jmp 0x4aa580
test eax, eax
je 0x4aa637
cmp dword [eax + 4], 8
jne 0x4aa637
mov edi, dword [ebp + 0x10]
mov esi, dword [ebp + 0x14]
or ecx, edi
mov eax, ecx
and eax, 0xc00
xor ebx, ebx
or edx, esi
or eax, ebx
jne 0x4aa5d5
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x24]
mov eax, dword [eax + 0x20]
or edi, eax
or ecx, edi
or edx, esi
and ecx, 0xc00
xor eax, eax
or ecx, eax
jne 0x4aa5fd
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x20]
test al, 8
je 0x4aa5f3
or edi, 0x400
jmp 0x4aa5fd
test al, 0x10
je 0x4aa5fd
or edi, 0x800
mov eax, edi
and eax, 0x400
xor ecx, ecx
or eax, ecx
je 0x4aa616
and edi, 0xfffff7ff
or edi, 0x400
mov ebx, dword [ebp + 0x18]
mov eax, edi
and eax, 0x800
xor ecx, ecx
or eax, ecx
je 0x4aa66b
and edi, 0xfffffbff
or edi, 0x800
mov dword [ebp + 0x14], esi
jmp 0x4aa66b
mov edi, dword [ebp + 0x10]
mov eax, edi
and eax, 0xc00
xor ecx, ecx
or eax, ecx
je 0x4aa66b
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
push 0x4415c8
mov ecx, 0xc05
call fcn.004a7840
mov edx, dword [ebp + 0x14]
add esp, 4
and edi, 0xfffff3ff
mov dword [ebp + 0x14], edx
and edi, 0x38400e00
xor esi, esi
mov eax, edi
or eax, esi
mov dword [ebp + 0x14], esi
je 0x4aa6f1
mov ecx, edi
and ecx, 0x18000000
xor eax, eax
mov edx, ecx
or edx, eax
je 0x4aa739
mov esi, dword [ebx + 4]
mov edx, ebx
cmp esi, 8
je 0x4aa69f
cmp esi, 9
jne 0x4aa6a4
mov edx, dword [ebx + 0x14]
mov eax, ebx
test edx, edx
je 0x4aa6c5
cmp dword [edx + 4], 2
jne 0x4aa6c5
mov edx, dword [edx + 0x14]
cmp edx, 1
je 0x4aa6fa
cmp edx, 2
je 0x4aa6fa
cmp edx, 3
je 0x4aa6fa
cmp edx, 4
je 0x4aa6fa
xor eax, eax
and edi, 0x10000000
or edi, eax
mov al, 0x75
jne 0x4aa6d5
mov al, 0x73
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
movsx eax, al
push eax
push 0x44160c
mov ecx, 0xc0d
call fcn.004a7840
add esp, 8
mov eax, ebx
pop edi
pop esi
pop ebx
pop ebp
ret 0x14
test eax, eax
je 0x4aa736
mov edx, dword [eax + 0x1c]
push edx
mov edx, dword [eax + 0x18]
push edx
xor edx, edx
push edx
mov edx, dword [eax + 4]
push ecx
mov ecx, dword [eax + 0x14]
mov eax, dword [ebp + 0xc]
push ecx
mov ecx, dword [ebp + 8]
push edx
push eax
call fcn.004aa9f0
mov ebx, eax
test ebx, ebx
je 0x4aa810
mov esi, dword [ebp + 0x14]
and edi, 0xe7ffffff
mov dword [ebp + 0x14], esi
jmp 0x4aa739
mov esi, dword [ebp + 0x14]
mov edx, dword [ebx]
mov edx, dword [edx + 0x24]
lea eax, [ebp + 0x18]
push eax
mov ecx, ebx
call edx
mov ecx, dword [eax]
mov eax, edi
and eax, 0x20000200
xor edx, edx
cmp eax, 0x20000200
jne 0x4aa769
test edx, edx
jne 0x4aa769
test cl, 2
je 0x4aa789
and edi, 0xdffffdff
jmp 0x4aa786
mov eax, edi
and eax, 0x200
xor edx, edx
or eax, edx
je 0x4aa789
test cl, 2
je 0x4aa789
test cl, 4
jne 0x4aa789
and edi, 0xfffffdff
mov dword [ebp + 0x14], esi
mov eax, edi
or eax, esi
je 0x4aa6f1
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x4aa7b9
lea ebx, [ebx]
mov edx, dword [eax + 0x1c]
mov ecx, dword [eax + 0x18]
xor edx, dword [ebp + 0x14]
xor ecx, edi
or ecx, edx
je 0x4aa81c
mov eax, dword [eax + 0x24]
test eax, eax
jne 0x4aa7a0
mov esi, dword [ebp + 0x14]
mov eax, dword [0x551d48]
test eax, eax
jge 0x4aa7c6
xor eax, eax
jmp 0x4aa7cd
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [eax]
push 0x10
push 0x28
call fcn.00547721
test eax, eax
je 0x4aa810
xor ecx, ecx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov dword [eax], 0x4419e0
mov dword [eax + 4], 0xa
mov dword [eax + 0x24], ecx
mov dword [eax + 0x18], edi
mov dword [eax + 0x1c], esi
mov dword [eax + 0x20], ebx
mov ecx, dword [ebx + 0xc]
mov dword [eax + 0x24], ecx
mov dword [ebx + 0xc], eax
pop edi
pop esi
pop ebx
pop ebp
ret 0x14
mov edx, dword [ebp + 8]
mov byte [edx + 0x188], 1
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret 0x14