Function at 0x101128c0
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc
push ebx
push esi
push edi
mov edi, dword [ebp + 0x14]
mov esi, ecx
mov dword [esp + 0x10], esi
test edi, edi
je 0x10112bb3
xor ecx, ecx
xor edx, edx
mov eax, edi
test eax, eax
je 0x10112a5b
cmp dword [eax + 4], 0xa
jne 0x10112902
mov ebx, dword [eax + 0x18]
or ecx, ebx
mov ebx, dword [eax + 0x1c]
mov eax, dword [eax + 0x20]
or edx, ebx
jmp 0x101128e5
test eax, eax
je 0x10112a5b
cmp dword [eax + 4], 8
jne 0x10112a5b
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
or ecx, ebx
or edx, edi
mov eax, ecx
mov esi, edx
and eax, 0xc00
xor edx, edx
or eax, edx
jne 0x1011293d
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x54]
mov eax, dword [edx + 0x20]
or ebx, eax
or ecx, ebx
or esi, edi
mov eax, ecx
and eax, 0xc00
xor edx, edx
or eax, edx
jne 0x1011296b
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x50]
test al, 8
je 0x1011295d
or ebx, 0x400
jmp 0x10112967
test al, 0x10
je 0x1011296b
or ebx, 0x800
or ecx, ebx
or esi, edi
and ecx, 0xc00
xor eax, eax
cmp ecx, 0xc00
jne 0x10112998
test eax, eax
jne 0x10112998
mov edx, dword [ebp + 8]
mov esi, dword [esp + 0x10]
push 0x1008b27c
mov ecx, 0xbe8
call fcn.1010e980
add esp, 4
mov eax, ebx
and eax, 0x400
xor ecx, ecx
or eax, ecx
je 0x101129b1
and ebx, 0xfffff7ff
or ebx, 0x400
mov eax, ebx
and eax, 0x800
xor ecx, ecx
or eax, ecx
je 0x101129cd
and ebx, 0xfffffbff
or ebx, 0x800
mov dword [ebp + 0x10], edi
mov edi, dword [ebp + 0x14]
and ebx, 0xb8400e00
xor esi, esi
mov ecx, ebx
or ecx, esi
mov dword [ebp + 0x10], esi
je 0x10112a50
mov ecx, ebx
and ecx, 0x18000000
xor eax, eax
mov edx, ecx
or edx, eax
je 0x10112acf
mov esi, dword [edi + 4]
mov edx, edi
cmp esi, 8
je 0x10112a04
cmp esi, 9
jne 0x10112a09
mov edx, dword [edi + 0x18]
mov eax, edi
test edx, edx
je 0x10112a23
cmp dword [edx + 4], 2
jne 0x10112a23
mov edx, dword [edx + 0x18]
test dword [edx*4 + 0x101e0f10], 0x200
jne 0x10112a95
xor eax, eax
and ebx, 0x10000000
or ebx, eax
mov al, 0x75
jne 0x10112a33
mov al, 0x73
mov edx, dword [ebp + 8]
mov esi, dword [esp + 0x10]
movsx eax, al
push eax
push 0x1008b2fc
mov ecx, 0xc0d
call fcn.1010e980
add esp, 8
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov ebx, dword [ebp + 0xc]
mov eax, ebx
and eax, 0xc00
xor ecx, ecx
or eax, ecx
je 0x101129d0
mov edx, dword [ebp + 8]
push 0x1008b2b8
mov ecx, 0xc05
call fcn.1010e980
mov eax, dword [ebp + 0x10]
add esp, 4
and ebx, 0xfffff3ff
mov dword [ebp + 0x10], eax
jmp 0x101129d0
test eax, eax
je 0x10112acc
mov edx, dword [eax + 0x20]
mov edi, dword [esp + 0x10]
push edx
mov edx, dword [eax + 0x1c]
push edx
xor edx, edx
push edx
mov edx, dword [ebp + 8]
push ecx
mov ecx, dword [eax + 4]
push ecx
mov ecx, dword [eax + 0x18]
push edx
call fcn.10112d90
mov dword [ebp + 0x14], eax
test eax, eax
je 0x10112ba6
and ebx, 0xe7ffffff
mov edi, eax
mov esi, dword [ebp + 0x10]
mov eax, dword [edi]
mov edx, dword [eax + 0x28]
lea ecx, [esp + 0x14]
push ecx
mov ecx, edi
call edx
mov edx, dword [eax]
mov eax, ebx
and eax, 0x20000200
xor ecx, ecx
cmp eax, 0x20000200
jne 0x10112b00
test ecx, ecx
jne 0x10112b00
test dl, 2
je 0x10112b1d
and ebx, 0xdffffdff
jmp 0x10112b1d
mov eax, ebx
and eax, 0x200
xor ecx, ecx
or eax, ecx
je 0x10112b1d
test dl, 2
je 0x10112b1d
test dl, 4
jne 0x10112b1d
and ebx, 0xfffffdff
mov eax, ebx
or eax, esi
je 0x10112a50
mov eax, dword [edi + 0xc]
test eax, eax
je 0x10112b45
mov edi, edi
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
xor ecx, ebx
xor edx, esi
or ecx, edx
je 0x10112bb5
mov eax, dword [eax + 0x24]
test eax, eax
jne 0x10112b30
mov eax, dword [0x101e316c]
test eax, eax
jge 0x10112b52
xor eax, eax
jmp 0x10112b59
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [eax + 4]
push 0x10
push 0x28
call fcn.101d8457
xor ecx, ecx
cmp eax, ecx
je 0x10112ba8
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], 0xffffffff
mov dword [eax], 0x1008b6bc
mov dword [eax + 4], 0xa
mov dword [eax + 0x24], ecx
mov dword [eax + 0x18], ebx
mov dword [eax + 0x1c], esi
mov dword [eax + 0x20], edi
mov ecx, dword [edi + 0xc]
mov dword [eax + 0x24], ecx
mov dword [edi + 0xc], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
xor ecx, ecx
mov edx, dword [esp + 0x10]
mov byte [edx + 0x240], 1
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10