Function at 0x1000a85a
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x34
push ebx
push esi
push edi
mov edi, ecx
mov dword [esp + 0x18], edx
xor ecx, ecx
mov esi, ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], ecx
mov eax, dword [edi + 4]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x28], esi
cmp dword [edi + 8], ecx
jge 0x1000a898
add eax, 0xfffffffc
mov dword [edi + 4], eax
mov ecx, dword [eax]
jmp 0x1000a8a0
mov ecx, dword [eax]
add eax, 4
mov dword [edi + 4], eax
mov bl, byte [ebp + 8]
mov dword [esp + 0x1c], ecx
test bl, bl
jns 0x1000a8d6
test ecx, ecx
je 0x1000a8d6
mov edx, ecx
mov ecx, edi
push 4
call fcn.10007d9a
mov ecx, eax
test ecx, ecx
je 0x1000a9f5
mov al, bl
and al, 0x40
je 0x1000a8d2
mov ecx, dword [ecx]
mov dword [esp + 0x20], ecx
jmp 0x1000a8e6
xor ecx, ecx
jmp 0x1000a8da
mov al, bl
and al, 0x40
mov dword [esp + 0x20], ecx
test al, al
je 0x1000aa08
test ecx, ecx
je 0x1000aa02
mov edx, ecx
mov ecx, edi
call fcn.10007ee6
test eax, eax
je 0x1000a9f5
mov al, bl
and al, 0x3f
cmp al, 0x1c
jne 0x1000a9b2
push dword [ebp + 0xc]
mov ecx, dword [edi + 0x28]
call fcn.10006fcf
mov esi, dword [0x100136a8]
mov ecx, esi
push 1
push 0x24
push eax
call dword [0x100142a8]
call esi
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x28], ecx
mov eax, dword [edi + 0x18]
xor esi, esi
cmp eax, dword [sym.imp.ole32.dll_OleIsCurrentClipboard]
jne 0x1000a954
push dword [0x100131bc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test dword [eax + 0x44], 0x100000
jne 0x1000a97c
push dword [0x100131bc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test dword [eax + 0x44], 0x10000
je 0x1000a97f
cmp dword [edi + 0x2c], 0x14
jne 0x1000a97f
cmp dword [esp + 0x18], 0xf
jne 0x1000a97f
cmp dword [edi + 0x30], 3
jne 0x1000a97f
xor esi, esi
inc esi
mov ecx, dword [edi + 0x28]
lea eax, [esp + 0x2c]
push eax
push esi
push dword [esp + 0x20]
push dword [esp + 0x34]
push dword [esp + 0x30]
push 0
call fcn.10006a1c
mov esi, eax
mov dword [esp + 0x28], eax
test esi, esi
jne 0x1000aa08
mov ebx, 0x8007000e
mov dword [edi + 0x1c], ebx
jmp 0x1000ac20
and dword [esp + 0x28], esi
cmp al, 0x20
jne 0x1000a932
mov ecx, dword [edi + 0x28]
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x28]
push eax
push dword [esp + 0x28]
call fcn.100063b4
mov esi, eax
mov dword [esp + 0x30], 1
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x38]
mov dword [esp + 0x28], esi
mov dword [esp + 0x38], eax
call fcn.10004f31
jmp 0x1000a9a1
mov eax, 0x80070057
mov dword [edi + 0x1c], eax
jmp 0x1000ac22
xor esi, esi
mov dword [esp + 0x28], esi
test bl, bl
jns 0x1000aa84
cmp dword [esp + 0x1c], 0
je 0x1000aa84
push dword [esp + 0x18]
mov ecx, dword [edi + 0x28]
call fcn.10005c60
mov ebx, eax
mov dword [esp + 0x10], ebx
test ebx, ebx
je 0x1000aa72
mov ecx, dword [edi + 0x10]
lea eax, [esp + 0x14]
push 1
mov dword [esp + 0x18], esi
push 0x24
mov dword [ecx], eax
add dword [edi + 0x10], 4
mov esi, dword [0x100136a8]
mov ecx, esi
push ebx
call dword [0x100142a8]
call esi
push 1
lea ecx, [esp + 0x18]
push 4
push dword [esp + 0x24]
mov dword [eax + 0x20], ecx
mov esi, dword [0x100136a8]
mov ecx, esi
call dword [0x100142a8]
call esi
mov dword [eax], ebx
jmp 0x1000aa8d
and dword [esp + 0x24], 0
mov ebx, 0x8007000e
mov dword [edi + 0x1c], ebx
jmp 0x1000aba4
mov eax, dword [edi + 0x10]
mov dword [eax], esi
add dword [edi + 0x10], 4
mov eax, dword [edi + 0x14]
push edi
movzx eax, byte [eax]
and eax, 0x3f
mov esi, dword [eax*4 + 0x10001028]
mov ecx, esi
call dword [0x100142a8]
call esi
mov ebx, eax
mov al, byte [ebp + 8]
test al, al
jns 0x1000abc5
cmp dword [esp + 0x1c], 0
mov ecx, ebx
mov eax, dword [esp + 0x10]
mov esi, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x34], ecx
je 0x1000abc2
and dword [esp + 0x24], 0
mov dword [esp + 0x10], esi
test ecx, ecx
js 0x1000aba4
cmp dword [esp + 0x14], 0
mov dword [esp + 0x10], esi
je 0x1000aba4
cmp dword [ebp + 0xc], 0
je 0x1000ab28
push dword [0x100131bc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
and dword [esp + 0x10], 0
lea ecx, [esp + 0x10]
push ecx
push dword [esp + 0x1c]
mov eax, dword [eax + 0x48]
mov ecx, dword [edi + 0x28]
push dword [eax]
push dword [esp + 0x20]
push esi
call fcn.10005d56
mov edx, dword [esp + 0x10]
jmp 0x1000ab44
mov ecx, dword [edi + 0x28]
lea eax, [esp + 0x2c]
push eax
push dword [esp + 0x1c]
push 0
push dword [esp + 0x20]
push esi
call fcn.10005d56
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x24], eax
test eax, eax
je 0x1000ab84
mov cl, byte [ebp + 8]
and cl, 0x3f
cmp cl, 0x21
jne 0x1000ab78
cmp edx, 4
je 0x1000ab78
mov esi, dword [0x100136a8]
mov ecx, esi
push 1
push 0x24
push eax
call dword [0x100142a8]
call esi
mov dword [eax + 0x1c], 0x20
mov ebx, dword [esp + 0x34]
xor eax, eax
mov dword [esp + 0x10], eax
jmp 0x1000ab90
mov ebx, 0x8007000e
mov dword [esp + 0x10], esi
mov dword [edi + 0x1c], ebx
mov eax, dword [esp + 0x14]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x100142a8]
call esi
mov esi, dword [0x100136a8]
mov ecx, esi
push 1
push 4
push dword [esp + 0x24]
call dword [0x100142a8]
call esi
mov ecx, dword [esp + 0x24]
mov dword [eax], ecx
mov al, byte [ebp + 8]
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x1000abff
and al, 0xc0
cmp al, 0xc0
jne 0x1000abef
push dword [esp + 0x20]
mov esi, dword [0x100136c0]
mov ecx, esi
push dword [0x10013570]
call dword [0x100142a8]
call esi
jmp 0x1000abff
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x100142a8]
call esi
mov eax, dword [esp + 0x10]
test eax, eax
je 0x1000ac14
push dword [esp + 0x18]
mov ecx, dword [edi + 0x28]
push eax
call fcn.10005cea
cmp dword [esp + 0x30], 0
je 0x1000ac20
call fcn.10004f5f
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8