Function at 0x1000a82b
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x34
and dword [esp], 0
push ebx
push esi
push edi
mov edi, ecx
mov dword [esp + 0x18], edx
xor ecx, ecx
xor esi, esi
and dword [esp + 0x2c], ecx
and dword [esp + 0x34], ecx
and dword [esp + 0x10], ecx
mov eax, dword [edi + 4]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x24], esi
cmp dword [edi + 8], ecx
jge 0x1000a86d
add eax, 0xfffffffc
mov dword [edi + 4], eax
mov ecx, dword [eax]
jmp 0x1000a875
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 0x1000a8a7
test ecx, ecx
je 0x1000a8a7
mov edx, ecx
mov ecx, edi
push 4
call fcn.10007e8e
mov ecx, eax
test ecx, ecx
je 0x1000a9bb
mov al, bl
and al, 0x40
je 0x1000a8a3
mov ecx, dword [ecx]
jmp 0x1000a8ab
xor ecx, ecx
jmp 0x1000a8ab
mov al, bl
and al, 0x40
mov dword [esp + 0x20], ecx
test al, al
je 0x1000a9ce
test ecx, ecx
je 0x1000a9c8
mov edx, ecx
mov ecx, edi
call fcn.10007fc6
test eax, eax
je 0x1000a9bb
and bl, 0x3f
cmp bl, 0x1c
jne 0x1000a8ff
push dword [ebp + 0xc]
mov ecx, dword [edi + 0x28]
call fcn.10007150
mov esi, dword [0x100156d0]
mov ecx, esi
push 1
push 0x24
push eax
call dword [0x10016308]
call esi
mov eax, dword [eax + 0x10]
mov dword [esp + 0x10], eax
cmp bl, 0x20
jne 0x1000a93b
mov ecx, dword [edi + 0x28]
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x30]
push eax
push dword [esp + 0x28]
call fcn.10006549
mov esi, eax
mov dword [esp + 0x34], 1
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x38]
mov dword [esp + 0x24], esi
mov dword [esp + 0x38], eax
call fcn.10005173
jmp 0x1000a9aa
mov eax, dword [edi + 0x18]
xor esi, esi
cmp eax, dword [sym.imp.ole32.dll_OleIsCurrentClipboard]
jne 0x1000a95d
push dword [0x100151dc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test dword [eax + 0x44], 0x100000
jne 0x1000a985
push dword [0x100151dc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test dword [eax + 0x44], 0x10000
je 0x1000a988
cmp dword [edi + 0x2c], 0x14
jne 0x1000a988
cmp dword [esp + 0x18], 0xf
jne 0x1000a988
cmp dword [edi + 0x30], 3
jne 0x1000a988
xor esi, esi
inc esi
mov ecx, dword [edi + 0x28]
lea eax, [esp + 0x28]
push eax
push esi
push dword [esp + 0x20]
push dword [esp + 0x1c]
push dword [esp + 0x30]
push 0
call fcn.10006ba1
mov esi, eax
mov dword [esp + 0x24], eax
test esi, esi
jne 0x1000a9ce
mov ebx, 0x8007000e
mov dword [edi + 0x1c], ebx
jmp 0x1000abdd
mov eax, 0x80070057
mov dword [edi + 0x1c], eax
jmp 0x1000abdf
xor esi, esi
mov dword [esp + 0x24], esi
cmp byte [ebp + 8], 0
mov ebx, 0x8007000e
jge 0x1000aa4a
cmp dword [esp + 0x1c], 0
je 0x1000aa4a
push dword [esp + 0x18]
mov ecx, dword [edi + 0x28]
call fcn.10005e2e
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
je 0x1000aa43
mov ecx, dword [edi + 0x10]
lea eax, [esp + 0xc]
push 1
mov dword [esp + 0x10], esi
push 0x24
mov dword [ecx], eax
add dword [edi + 0x10], 4
mov esi, dword [0x100156d0]
mov ecx, esi
push edx
call dword [0x10016308]
call esi
push 1
lea ecx, [esp + 0x10]
push 4
push dword [esp + 0x24]
mov dword [eax + 0x20], ecx
mov esi, dword [0x100156d0]
mov ecx, esi
call dword [0x10016308]
call esi
mov ecx, dword [esp + 0x14]
mov dword [eax], ecx
jmp 0x1000aa53
mov dword [edi + 0x1c], ebx
mov ecx, ebx
jmp 0x1000aa74
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 [0x10016308]
call esi
mov edx, dword [esp + 0x14]
mov ecx, eax
mov al, byte [ebp + 8]
mov dword [esp + 0x10], ecx
test al, al
jns 0x1000ab7e
cmp dword [esp + 0x1c], 0
je 0x1000ab7e
and dword [esp + 0x2c], 0
test ecx, ecx
js 0x1000ab57
cmp dword [esp + 0xc], 0
je 0x1000ab57
cmp dword [ebp + 0xc], 0
je 0x1000aae2
push dword [0x100151dc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
and dword [esp + 0x30], 0
lea ecx, [esp + 0x30]
push ecx
push dword [esp + 0x1c]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0x1c]
push dword [eax]
push dword [esp + 0x18]
push ecx
mov ecx, dword [edi + 0x28]
call fcn.10020d71
mov edx, dword [esp + 0x30]
jmp 0x1000aafe
mov ecx, dword [edi + 0x28]
lea eax, [esp + 0x28]
push eax
push dword [esp + 0x1c]
push 0
push dword [esp + 0x18]
push edx
call fcn.10005f12
mov edx, dword [esp + 0x28]
mov dword [esp + 0x2c], eax
test eax, eax
je 0x1000ab3e
mov cl, byte [ebp + 8]
and cl, 0x3f
cmp cl, 0x21
jne 0x1000ab32
cmp edx, 4
je 0x1000ab32
mov esi, dword [0x100156d0]
mov ecx, esi
push 1
push 0x24
push eax
call dword [0x10016308]
call esi
mov dword [eax + 0x1c], 0x20
mov ebx, dword [esp + 0x10]
xor ecx, ecx
mov dword [esp + 0x14], ecx
jmp 0x1000ab41
mov dword [edi + 0x1c], ebx
mov eax, dword [esp + 0xc]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x10016308]
call esi
jmp 0x1000ab5b
mov ebx, dword [esp + 0x10]
mov esi, dword [0x100156d0]
mov ecx, esi
push 1
push 4
push dword [esp + 0x24]
call dword [0x10016308]
call esi
mov ecx, dword [esp + 0x2c]
mov dword [eax], ecx
mov al, byte [ebp + 8]
jmp 0x1000ab82
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x1000abbc
and al, 0xc0
cmp al, 0xc0
jne 0x1000abac
push dword [esp + 0x20]
mov esi, dword [0x100156e8]
mov ecx, esi
push dword [0x10015598]
call dword [0x10016308]
call esi
jmp 0x1000abbc
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x10016308]
call esi
mov eax, dword [esp + 0x14]
test eax, eax
je 0x1000abd1
push dword [esp + 0x18]
mov ecx, dword [edi + 0x28]
push eax
call fcn.10005eb2
cmp dword [esp + 0x34], 0
je 0x1000abdd
call fcn.1000519b
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8