Function at 0x101818ce
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
push esi
mov esi, ecx
mov dword [ebp - 0x14], esi
test byte [esi + 0x82], 0x10
je 0x101818f3
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.1017eb5a
jmp 0x10181c52
push ebx
push edi
push dword [0x10658524]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp byte [ebp + 0xc], 0
mov eax, dword [eax + 8]
mov dword [ebp - 0xc], eax
je 0x10181ac9
mov ebx, dword [ebp + 8]
test ebx, 0x100
je 0x10181a1d
test byte [esi + 0x7f], 0x20
je 0x1018196b
mov ecx, esi
call fcn.1018076f
mov edi, eax
test edi, 0xf000
je 0x1018196b
call fcn.10173e14
test al, al
jne 0x10181950
push 0xf000
mov ecx, esi
call fcn.10181595
test al, al
je 0x1018196b
test byte [esi + 0x82], 0x20
je 0x1018196b
push 0x300f000
push edi
mov ecx, esi
call fcn.1018db91
jmp 0x101819ee
lea eax, [ebp - 0x18]
mov ecx, esi
push eax
call fcn.101808d8
mov dl, byte [esi + 0x86]
mov ecx, dword [esi + 0x50]
test dl, 1
je 0x10181987
add ecx, 2
mov eax, dword [ebp - 0x14]
test dl, 2
je 0x10181992
sub eax, 2
test dl, 8
je 0x1018199e
push 0x20b
jmp 0x101819a0
push 0xb
push ecx
push dword [esi + 0x4c]
push eax
push dword [ebp - 0x18]
push dword [esi + 0x3c]
call fcn.1019da71
test byte [esi + 0x7f], 0x20
je 0x101819ee
mov ecx, esi
call fcn.1018076f
test eax, 0xf000
setne cl
bt eax, 0x1a
setb al
test al, cl
je 0x101819ee
mov eax, dword [0x10658520]
mov ecx, esi
push 0
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x2c]
push 1
push eax
mov dword [ebp - 0x2c], 0x14
call fcn.1018b805
lea ecx, [ebp + 8]
mov dword [ebp + 8], esi
call fcn.10180757
mov edi, eax
jmp 0x10181a11
mov ecx, edi
call fcn.10190bf7
mov edi, dword [edi + 0xc]
test edi, edi
je 0x10181a15
test byte [edi + 0x32], 2
je 0x10181a04
test edi, edi
jne 0x101819fd
push 1
push esi
call fcn.101d56b3
test byte [esi + 0x86], 8
mov edi, 0x200
jne 0x10181a53
test edi, ebx
jne 0x10181a4b
test ebx, 0x400
je 0x10181a53
call fcn.102cd5e9
test eax, eax
je 0x10181a53
mov ecx, esi
call fcn.10181604
test al, al
je 0x10181a53
push dword [esi + 0x3c]
call fcn.1019cc20
test bl, bl
js 0x10181a66
test edi, ebx
je 0x10181a6e
mov ecx, esi
call fcn.101cbc5f
test al, al
je 0x10181a6e
push dword [esi + 0x3c]
call fcn.1019cc20
test ebx, 0x1800
je 0x10181c45
test byte [esi + 0x82], 0x20
je 0x10181c45
mov ecx, esi
call fcn.1018084a
test al, al
je 0x10181c45
test ebx, 0x800
je 0x10181aab
push 0
push esi
push 0x800a
call fcn.101d32fe
test ebx, 0x1000
je 0x10181c45
push 0
push esi
push 0x8004
call fcn.101d32fe
jmp 0x10181c45
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xc4]
mov ebx, dword [ebp + 8]
mov edx, eax
mov dword [ebp - 8], edx
mov dword [ebp - 4], ebx
test bl, 0xf
je 0x10181c45
test bl, 1
je 0x10181b08
mov al, byte [esi + 0x7d]
or ebx, 4
or byte [esi + 0x81], 2
and al, 3
mov dword [ebp - 4], ebx
cmp al, 1
je 0x10181b08
or ebx, 2
mov dword [ebp - 4], ebx
test bl, 4
je 0x10181b33
mov al, byte [esi + 0x81]
and byte [esi + 0x83], 0xf9
and al, 0xbf
or al, 0x20
mov byte [esi + 0x81], al
mov al, byte [esi + 0x7d]
and al, 3
cmp al, 1
je 0x10181b33
or ebx, 8
mov dword [ebp - 4], ebx
mov ecx, ebx
and ecx, 0xa
mov dword [ebp + 8], ecx
test cl, 2
je 0x10181b46
or ecx, 8
mov dword [ebp + 8], ecx
mov eax, dword [esi + 4]
mov edi, esi
mov dword [ebp - 0x10], eax
test eax, eax
je 0x10181bfd
test ecx, ecx
je 0x10181bfd
mov al, byte [esi + 0x7d]
and al, 3
cmp al, 2
je 0x10181bfd
cmp edx, 2
jne 0x10181b7e
mov ecx, esi
call fcn.1018086e
mov edx, dword [ebp - 8]
test al, al
jne 0x10181bfa
mov ebx, dword [ebp + 8]
mov esi, dword [ebp - 0x10]
mov edi, esi
test bl, 2
je 0x10181ba5
mov al, byte [esi + 0x81]
test al, 2
je 0x10181b9a
and ebx, 0xfffffffd
jmp 0x10181ba2
or al, 2
mov byte [esi + 0x81], al
or ebx, 8
test bl, 8
je 0x10181bc3
mov al, byte [esi + 0x81]
test al, 0x60
je 0x10181bb9
and ebx, 0xfffffff7
jmp 0x10181bc3
and al, 0xbf
or al, 0x20
mov byte [esi + 0x81], al
and byte [esi + 0x83], 0xf9
mov esi, dword [esi + 4]
test esi, esi
je 0x10181bee
test ebx, ebx
je 0x10181bee
test byte [edi + 0x7d], 3
jne 0x10181bee
cmp edx, 2
jne 0x10181b84
mov ecx, edi
call fcn.1018086e
mov edx, dword [ebp - 8]
test al, al
je 0x10181b84
mov esi, dword [ebp - 0x14]
mov edx, dword [ebp - 8]
mov dword [ebp + 8], ebx
mov ebx, dword [ebp - 4]
mov ecx, dword [ebp + 8]
mov al, byte [edi + 0x7d]
and al, 3
cmp al, 1
je 0x10181c45
test edx, edx
jne 0x10181c45
test byte [edi + 0x82], 0x20
jne 0x10181c18
cmp dword [edi + 4], edx
je 0x10181c45
test cl, 2
je 0x10181c30
mov ecx, dword [ebp - 0xc]
push 1
push 1
push edi
add ecx, 0x64
call fcn.10182d63
mov ecx, dword [ebp + 8]
test cl, 8
je 0x10181c45
mov ecx, dword [ebp - 0xc]
push 1
push 1
push edi
lea ecx, [ecx + 0x58]
call fcn.10182d63
push dword [ebp + 0xc]
mov ecx, esi
push ebx
call fcn.1017eb5a
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret 8