Function at 0x4ab1e0
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x11c
push ebx
push esi
push edi
mov edi, ecx
lea ecx, [esp + 0x20]
mov esi, eax
mov eax, dword [edi]
mov edx, dword [eax + 0x28]
push ecx
push 0xa
mov ecx, edi
call edx
test al, al
je 0x4ab21d
mov eax, dword [esi]
mov edx, dword [eax + 0x28]
lea ecx, [esp + 0x78]
push ecx
push 0xa
mov ecx, esi
call edx
test al, al
jne 0x4ab22b
mov eax, 0x8007054f
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
mov eax, dword [esp + 0x58]
cmp eax, dword [esp + 0xb0]
jb 0x4ab246
push 0
push edi
mov ecx, esi
call fcn.004ab720
test al, al
jne 0x4ab26e
push 0
push esi
mov ecx, edi
call fcn.004ab720
test al, al
je 0x4ab25c
mov edi, esi
lea esi, [esp + 0x78]
jmp 0x4ab272
push 0
push edi
mov ecx, esi
call fcn.004ab720
test al, al
je 0x4ab51c
lea esi, [esp + 0x20]
mov ecx, dword [esi + 0x30]
mov dword [esp + 0x50], ecx
mov ecx, dword [ebp + 0x10]
mov edx, dword [esi + 0x34]
xor bl, bl
mov dword [esp + 0x54], edx
test ecx, ecx
je 0x4ab311
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
lea edx, [esp + 0xd0]
push edx
push 0xa
call eax
test al, al
je 0x4ab51c
mov eax, dword [esp + 0x100]
cmp dword [esi + 0x30], eax
jae 0x4ab2b8
mov dword [esp + 0x50], eax
mov bl, 1
mov eax, dword [esp + 0x104]
cmp dword [esi + 0x34], eax
jae 0x4ab30d
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x24]
cmp byte [ebp + 0x18], 0
jne 0x4ab2ff
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x80]
call fcn.004abb80
test eax, eax
jl 0x4ab521
mov eax, dword [esp + 0xa0]
and eax, 0x20000200
or dword [esp + 0x48], eax
mov eax, dword [esp + 0x24]
cmp eax, 0xe
mov ebx, dword [ebp + 8]
jge 0x4ab34f
mov eax, dword [ebx + eax*4 + 0x38]
jmp 0x4ab36e
test bl, bl
jne 0x4ab2c8
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x7c]
jne 0x4ab2cc
mov ecx, dword [esp + 0xa0]
xor ecx, dword [esp + 0x48]
xor edx, edx
and ecx, 0x20000200
or ecx, edx
jne 0x4ab2cc
mov ecx, dword [esi + 4]
mov ebx, dword [ebp + 8]
mov dword [esp + 0x24], ecx
mov edx, dword [esi + 0x28]
mov dword [esp + 0x48], edx
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x4c], eax
jmp 0x4ab4a2
cmp dword [ebx + eax*4 + 0x70], 0
lea esi, [eax + 0x1c]
jne 0x4ab36b
push 0
push 0
push 0
push eax
push ebx
xor edi, edi
call fcn.004aa2f0
mov dword [ebx + esi*4], eax
mov eax, dword [ebx + esi*4]
test eax, eax
je 0x4ab4ef
mov edx, dword [esp + 0x54]
mov esi, dword [esp + 0x50]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x10], esi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
cmp eax, dword [ebx + 0x44]
jne 0x4ab3d4
mov edi, ecx
or edi, edx
jne 0x4ab3d4
mov edi, dword [ebx + 0x140]
test edi, edi
je 0x4ab3bb
cmp esi, 1
jne 0x4ab3bb
cmp dword [esp + 0x54], 4
je 0x4ab49e
mov edi, dword [ebx + 0x144]
test edi, edi
je 0x4ab3d4
cmp esi, 4
jne 0x4ab3d4
cmp dword [esp + 0x54], esi
je 0x4ab49e
push eax
mov eax, dword [ebp + 0xc]
push edx
and ecx, 0xfffff3ff
push ecx
push eax
push ebx
call fcn.004aa560
mov edi, eax
xor esi, esi
cmp edi, esi
je 0x4ab495
mov eax, dword [esp + 0x10]
cmp eax, 1
ja 0x4ab43e
cmp dword [esp + 0x14], 1
jbe 0x4ab49e
cmp eax, 1
jne 0x4ab43e
mov eax, dword [0x551d48]
cmp eax, esi
jge 0x4ab419
xor eax, eax
jmp 0x4ab420
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [eax]
push 0x10
push 0x20
call fcn.00547721
cmp eax, esi
je 0x4ab495
mov dword [eax], 0x441b60
mov dword [eax + 4], 9
jmp 0x4ab456
push 0x20
call fcn.0049cdd0
cmp eax, esi
je 0x4ab495
mov dword [eax], 0x441b30
mov dword [eax + 4], 8
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [eax + 0x1c], esi
mov dword [eax + 0x18], esi
mov dword [eax + 0x14], esi
mov dword [eax + 0x10], esi
mov dword [eax + 0xc], esi
mov dword [eax + 8], esi
push eax
mov dword [eax + 0x14], edi
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], edx
mov eax, dword [esp + 0x1c]
push esi
and eax, 0xc00
push eax
mov eax, dword [ebp + 0xc]
push eax
push ebx
call fcn.004aa560
mov edi, eax
cmp edi, esi
jne 0x4ab49e
mov byte [ebx + 0x188], 1
xor edi, edi
test edi, edi
je 0x4ab4ef
mov esi, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x20]
mov dword [ecx], edi
mov dword [edx], edi
cmp esi, 0xe
je 0x4ab4fd
call fcn.004aa520
test eax, eax
je 0x4ab4ef
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
push ecx
mov ecx, dword [esp + 0x4c]
push edx
mov edx, dword [esp + 0x54]
push edx
or ecx, 0x200
push ecx
mov ecx, dword [ebp + 8]
push eax
mov eax, dword [ebp + 0xc]
push 0
push eax
call fcn.004aa9f0
mov ecx, dword [ebp + 0x24]
mov dword [ecx], eax
test eax, eax
jne 0x4ab511
mov eax, 0x8007000e
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
mov edx, dword [ebp + 0xc]
push edi
push 0
push 0x200
push edx
push ebx
call fcn.004aa560
jmp 0x4ab4e6
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
mov eax, 0x80004005
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20