Function at 0x10001e80
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 8
mov esi, edx
mov edi, ecx
lea eax, [edx + 4]
push eax
push ecx
call fcn.100021f0
add esp, 8
cmp eax, 1
je 0x10001f76
mov dword [esi + 4], 0
mov al, byte [edi]
cmp al, 0x3a
je 0x10001f7f
xor ebx, ebx
dec ebx
xor ecx, ecx
test al, al
je 0x1000200c
mov dword [ebp - 0x10], ecx
cmp ecx, 8
je 0x10001f1f
cmp al, 0x3a
je 0x10001fe2
movzx ecx, al
movzx edx, byte [ecx + 0x101b97e5]
xor ecx, ecx
cmp edx, 0x7f
jne 0x10001ef7
test al, al
je 0x10002066
movzx eax, al
cmp eax, 0x3a
jne 0x10001f16
jmp 0x1000205b
mov dword [ebp - 0x14], esi
mov esi, ebx
movzx eax, byte [edi + 1]
movzx ebx, byte [eax + 0x101b97e5]
cmp ebx, 0x7f
jne 0x10001f5a
inc edi
mov ecx, edx
mov ebx, esi
mov esi, dword [ebp - 0x14]
jmp 0x10001ee2
cmp eax, 0x2e
je 0x1000207f
cmp dword [0x101f4f80], 0
je 0x10002119
push dword [0x101f45d4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
test eax, eax
je 0x10001fc7
mov dword [eax + 0x28], 0xffffe89d
xor ecx, ecx
mov dword [eax + 0x2c], ecx
mov dword [eax + 0x30], ecx
xor eax, eax
dec eax
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, edx
shl ecx, 4
add ecx, ebx
movzx eax, byte [edi + 2]
movzx ebx, byte [eax + 0x101b97e5]
cmp ebx, 0x7f
jne 0x10001f9b
add edi, 2
jmp 0x10001f0f
mov word [esi], 2
xor eax, eax
jmp 0x10001f52
cmp byte [edi + 1], 0x3a
jne 0x10001f1f
mov word [esi + 8], 0
mov al, byte [edi + 2]
add edi, 2
xor ecx, ecx
inc ecx
mov ebx, ecx
jmp 0x10001eb9
shl ecx, 4
add ecx, ebx
movzx eax, byte [edi + 3]
movzx ebx, byte [eax + 0x101b97e5]
cmp ebx, 0x7f
jne 0x10001fb8
add edi, 3
jmp 0x10001f0f
add edi, 4
shl ecx, 4
add ecx, ebx
mov al, byte [edi]
jmp 0x10001f0f
sub esp, 0x10
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
add esp, 0x10
jmp 0x10001f40
cmp ebx, 0xffffffff
jne 0x10001f1f
mov eax, dword [ebp - 0x10]
lea ebx, [eax + 1]
mov word [esi + eax*2 + 8], 0
mov al, byte [edi + 1]
inc edi
mov ecx, ebx
test al, al
jne 0x10001ec1
mov ecx, dword [ebp - 0x10]
inc ecx
mov ebx, ecx
cmp ebx, 0xffffffff
je 0x10002123
mov edx, ecx
mov eax, 7
sub edx, ebx
je 0x10002037
lea ecx, [esi + ecx*2]
movzx edi, word [ecx + eax*2 - 8]
mov word [esi + eax*2 + 8], di
lea edi, [edx + eax]
dec edi
dec eax
cmp edi, 7
jne 0x10002023
sub eax, ebx
jl 0x10002051
lea ecx, [esi + ebx*2]
add ecx, 8
lea eax, [eax + eax + 2]
push eax
push 0
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov word [esi], 0x17
jmp 0x10001f7b
cmp byte [edi + 1], 0
je 0x10001f1f
inc edi
movzx eax, cx
push eax
call sub.wsock32.dll_htons
mov ecx, dword [ebp - 0x10]
mov word [esi + ecx*2 + 8], ax
inc ecx
mov al, byte [edi]
jmp 0x10001eb9
cmp dl, 0x7f
je 0x10001f1f
cmp dword [ebp - 0x10], 6
jg 0x10001f1f
cmp ecx, 0x255
ja 0x10001f1f
mov eax, ecx
and eax, 0xf0
cmp eax, 0x90
ja 0x10001f1f
mov eax, ecx
and eax, 0xf
cmp eax, 9
ja 0x10001f1f
mov edx, ecx
shr edx, 8
imul edx, edx, 0x64
add edx, eax
shr ecx, 4
and ecx, 0xf
lea eax, [ecx + ecx*4]
lea eax, [edx + eax*2]
mov ecx, dword [ebp - 0x10]
mov byte [esi + ecx*2 + 8], al
movzx eax, byte [edi + 1]
lea ecx, [eax - 0x3a]
cmp ecx, 0xfffffff6
jb 0x10001f1f
movzx eax, byte [eax + 0x101b97e5]
add edi, 6
movzx ecx, byte [edi - 4]
mov edx, ecx
add dl, 0xd0
cmp dl, 9
ja 0x10002131
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2]
add eax, 0xffffffd0
inc edi
cmp eax, 0xff
jbe 0x100020f5
jmp 0x10001f1f
call fcn.1001b2f0
jmp 0x10001f2c
cmp ecx, 8
jne 0x10001f1f
jmp 0x10002051
cmp cl, 0x2e
jne 0x10001f1f
mov ecx, esi
mov edx, dword [ebp - 0x10]
mov byte [esi + edx*2 + 9], al
movzx eax, byte [edi - 3]
lea ecx, [eax - 0x3a]
cmp ecx, 0xfffffff6
jb 0x10001f1f
movzx eax, byte [eax + 0x101b97e5]
movzx ecx, byte [edi - 2]
mov edx, ecx
add dl, 0xd0
cmp dl, 9
ja 0x1000217e
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2]
add eax, 0xffffffd0
inc edi
cmp eax, 0xff
jbe 0x1000215a
jmp 0x10001f1f
cmp cl, 0x2e
jne 0x10001f1f
mov ecx, esi
mov edx, dword [ebp - 0x10]
mov byte [esi + edx*2 + 0xa], al
movzx eax, byte [edi - 1]
lea ecx, [eax - 0x3a]
cmp ecx, 0xfffffff6
jb 0x10001f1f
movzx eax, byte [eax + 0x101b97e5]
movzx ecx, byte [edi]
mov edx, ecx
add dl, 0xd0
cmp dl, 9
ja 0x100021ca
lea eax, [eax + eax*4]
inc edi
lea eax, [ecx + eax*2]
add eax, 0xffffffd0
cmp eax, 0xff
jbe 0x100021a7
jmp 0x10001f1f
test ecx, ecx
jne 0x10001f1f
mov ecx, dword [ebp - 0x10]
mov byte [esi + ecx*2 + 0xb], al
add ecx, 2
jmp 0x1000200c