Function at 0x6d16de70
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x4c
mov edi, dword [0x6d18704c]
test edi, edi
je 0x6d16de90
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [0x6d18704c], 1
call fcn.6d16e590
lea eax, [eax + eax*4]
lea eax, [eax*4 + 0x1b]
shr eax, 4
shl eax, 4
call fcn.6d16e880
sub esp, eax
mov dword [0x6d187050], 0
lea eax, [esp + 0x23]
and eax, 0xfffffff0
mov dword [0x6d187054], eax
mov eax, 0x6d1821bc
sub eax, 0x6d1821bc
cmp eax, 7
jle 0x6d16de83
cmp eax, 0xb
jg 0x6d16dff0
mov ebx, 0x6d1821bc
mov eax, dword [ebx]
test eax, eax
jne 0x6d16e0b5
mov eax, dword [ebx + 4]
test eax, eax
jne 0x6d16e0b5
mov eax, dword [ebx + 8]
cmp eax, 1
jne 0x6d16e162
add ebx, 0xc
cmp ebx, 0x6d1821bc
jae 0x6d16de83
mov dword [ebp - 0x38], edi
jmp 0x6d16df77
cmp ecx, 8
jne 0x6d16e14f
movzx ecx, byte [edi + 0x6d100000]
and eax, 0xe0
test cl, cl
jns 0x6d16e098
or ecx, 0xffffff00
sub ecx, edx
add esi, ecx
test eax, eax
jne 0x6d16df58
cmp esi, 0xffffff80
jl 0x6d16dfc5
cmp esi, 0xff
jg 0x6d16dfc5
mov eax, dword [ebp - 0x30]
call fcn.6d16dd10
mov eax, esi
mov byte [edi + 0x6d100000], al
add ebx, 0xc
cmp ebx, 0x6d1821bc
jae 0x6d16e078
mov edi, dword [ebx + 4]
lea eax, [edi + 0x6d100000]
mov dword [ebp - 0x30], eax
mov eax, dword [ebx]
mov esi, dword [eax + 0x6d100000]
lea edx, [eax + 0x6d100000]
mov eax, dword [ebx + 8]
movzx ecx, al
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x34], ecx
cmp al, 0x10
je 0x6d16e020
cmp ecx, 0x20
jne 0x6d16df20
mov esi, dword [ebp - 0x2c]
sub esi, edx
add esi, dword [edi + 0x6d100000]
test al, 0xe0
jne 0x6d16e080
test esi, esi
js 0x6d16e080
mov dword [esp + 0x10], esi
mov eax, dword [ebp - 0x2c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x30]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x34]
mov dword [esp], str._d_bit_pseudo_relocation_at__p_out_of_range__targeting__p__yielding_the_value__p._n
mov dword [esp + 4], eax
call fcn.6d16dcb0
lea esi, [esi]
mov edx, dword [0x6d1821bc]
test edx, edx
jne 0x6d16e0b0
mov eax, dword [0x6d1821c0]
mov ebx, eax
or ebx, dword [0x6d1821c4]
mov ebx, 0x6d1821c8
je 0x6d16dee9
mov ebx, 0x6d1821bc
jmp 0x6d16def6
movzx esi, word [edi + 0x6d100000]
and eax, 0xe0
test si, si
jns 0x6d16e037
or esi, 0xffff0000
sub esi, edx
mov edx, dword [ebp - 0x2c]
add esi, edx
test eax, eax
jne 0x6d16e05a
cmp esi, 0xffff
jg 0x6d16dfc5
cmp esi, 0xffff8000
jl 0x6d16dfc5
mov eax, dword [ebp - 0x30]
add ebx, 0xc
call fcn.6d16dd10
mov word [edi + 0x6d100000], si
cmp ebx, 0x6d1821bc
jb 0x6d16df77
mov edi, dword [ebp - 0x38]
jmp 0x6d16e0f2
mov eax, dword [ebp - 0x30]
call fcn.6d16dd10
mov dword [edi + 0x6d100000], esi
jmp 0x6d16df68
sub ecx, edx
mov edx, dword [ebp - 0x2c]
lea esi, [ecx + edx]
test eax, eax
je 0x6d16df4b
jmp 0x6d16df58
mov ebx, 0x6d1821bc
cmp ebx, 0x6d1821bc
jae 0x6d16de83
mov dword [ebp - 0x2c], edi
lea esi, [esi]
mov esi, dword [ebx + 4]
mov edi, dword [ebx]
add ebx, 8
add edi, dword [esi + 0x6d100000]
lea eax, [esi + 0x6d100000]
call fcn.6d16dd10
mov dword [esi + 0x6d100000], edi
cmp ebx, 0x6d1821bc
jb 0x6d16e0c8
mov edi, dword [ebp - 0x2c]
mov ecx, dword [0x6d187050]
test ecx, ecx
jle 0x6d16de83
mov ebx, dword [sym.imp.KERNEL32.dll_VirtualProtect]
lea esi, [ebp - 0x1c]
lea esi, [esi]
mov edx, dword [0x6d187054]
lea eax, [edi + edi*4]
lea eax, [edx + eax*4]
mov edx, dword [eax]
test edx, edx
je 0x6d16e13c
mov dword [esp + 0xc], esi
mov dword [esp + 8], edx
mov edx, dword [eax + 8]
mov dword [esp + 4], edx
mov eax, dword [eax + 4]
mov dword [esp], eax
call ebx
sub esp, 0x10
add edi, 1
cmp edi, dword [0x6d187050]
jl 0x6d16e110
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp - 0x34]
mov dword [esp], str.__Unknown_pseudo_relocation_bit_size__d._n
mov dword [esp + 4], eax
call fcn.6d16dcb0
mov dword [esp + 4], eax
mov dword [esp], str.__Unknown_pseudo_relocation_protocol_version__d._n
call fcn.6d16dcb0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop