Function at 0x100cfbd0
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x10
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x3c]
mov ecx, eax
and eax, 0xfffff
push ebx
mov ebx, eax
mov eax, dword [ebp + 8]
and ecx, 0xfff00000
test byte [eax + 0x7fd3], 8
push esi
push edi
mov dword [ebp - 0xc], ecx
mov byte [ebp - 1], 0
je 0x100cfc3a
mov edi, ebx
and edi, 0xfffff
cmp byte [ebp + 0x10], 0
je 0x100cfc2f
cmp ecx, 0x73e00000
jne 0x100cfc24
or edi, 0x72800000
jmp 0x100cfea4
or edi, 0x72600000
jmp 0x100cfea4
or edi, 0x72700000
jmp 0x100cfea4
cmp byte [ebp + 0x10], 0
je 0x100cfd7c
cmp ecx, 0x72c00000
ja 0x100cfd42
je 0x100cfd2f
cmp ecx, 0x11200000
je 0x100cfc7d
cmp ecx, 0x72b00000
jne 0x100cff71
mov edi, ebx
and edi, 0xfffff
or edi, 0x72f00000
jmp 0x100cfea4
mov ecx, dword [edx + 4]
mov edx, dword [ecx]
mov ecx, dword [edx + 0x50]
mov eax, dword [ecx + 8]
mov esi, ebx
and esi, 0xfffff
mov edi, esi
and eax, 0x208
xor edx, edx
or edi, 0x72600000
or eax, edx
mov dword [ebp - 8], ecx
je 0x100cfd1e
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x100cfd0c
push 0x69
push ecx
call sub.msvcrt.dll_strchr
add esp, 8
test eax, eax
jne 0x100cfd0c
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 4]
push 0x49
push ecx
call sub.msvcrt.dll_strchr
add esp, 8
test eax, eax
jne 0x100cfd0c
mov edx, dword [ebp - 8]
mov eax, dword [edx + 4]
push 0x62
push eax
call sub.msvcrt.dll_strchr
add esp, 8
test eax, eax
jne 0x100cfd0c
mov ecx, dword [ebp - 8]
mov edx, dword [ecx + 4]
push 0x42
push edx
call sub.msvcrt.dll_strchr
add esp, 8
test eax, eax
jne 0x100cfd0c
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
and eax, 0x800
xor ecx, ecx
or eax, ecx
jne 0x100cfd1e
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 4]
mov eax, dword [edx]
cmp dword [eax + 0x5c], 0xffffffff
je 0x100cfea4
or esi, 0x73100000
mov edi, esi
mov byte [ebp - 1], 1
jmp 0x100cfea4
mov edi, ebx
and edi, 0xfffff
or edi, 0x73000000
jmp 0x100cfea4
cmp ecx, 0x72d00000
je 0x100cfd69
cmp ecx, 0x72e00000
jne 0x100cff71
mov edi, ebx
and edi, 0xfffff
or edi, 0x73200000
jmp 0x100cfea4
mov edi, ebx
and edi, 0xfffff
or edi, 0x73100000
jmp 0x100cfea4
cmp ecx, 0x72c00000
ja 0x100cfe72
je 0x100cfe62
cmp ecx, 0x11200000
je 0x100cfdb5
cmp ecx, 0x72b00000
jne 0x100cff71
mov edi, ebx
and edi, 0xfffff
or edi, 0x73300000
jmp 0x100cfea4
mov ecx, edx
mov edx, dword [ecx + 4]
mov eax, dword [edx]
mov ecx, dword [eax + 0x50]
mov eax, dword [ecx + 8]
mov esi, ebx
and esi, 0xfffff
mov edi, esi
and eax, 0x208
xor edx, edx
or edi, 0x72700000
or eax, edx
mov dword [ebp - 8], ecx
je 0x100cfe54
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x100cfe46
push 0x69
push ecx
call sub.msvcrt.dll_strchr
add esp, 8
test eax, eax
jne 0x100cfe46
mov ecx, dword [ebp - 8]
mov edx, dword [ecx + 4]
push 0x49
push edx
call sub.msvcrt.dll_strchr
add esp, 8
test eax, eax
jne 0x100cfe46
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 4]
push 0x62
push ecx
call sub.msvcrt.dll_strchr
add esp, 8
test eax, eax
jne 0x100cfe46
mov edx, dword [ebp - 8]
mov eax, dword [edx + 4]
push 0x42
push eax
call sub.msvcrt.dll_strchr
add esp, 8
test eax, eax
jne 0x100cfe46
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 8]
and eax, 0x800
xor ecx, ecx
or eax, ecx
jne 0x100cfe54
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 4]
mov ecx, dword [eax]
cmp dword [ecx + 0x5c], 0xffffffff
je 0x100cfea4
or esi, 0x73500000
mov edi, esi
mov byte [ebp - 1], 1
jmp 0x100cfea4
mov edi, ebx
and edi, 0xfffff
or edi, 0x73400000
jmp 0x100cfea4
cmp ecx, 0x72d00000
je 0x100cfe96
cmp ecx, 0x72e00000
jne 0x100cff71
mov edi, ebx
and edi, 0xfffff
or edi, 0x73600000
jmp 0x100cfea4
mov edi, ebx
and edi, 0xfffff
or edi, 0x73500000
mov eax, dword [0x101e316c]
test eax, eax
jge 0x100cfeb1
xor eax, eax
jmp 0x100cfeb8
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp dword [eax + 0x18], 0
je 0x100cfedf
mov ecx, dword [eax + 0x18]
test ecx, ecx
jne 0x100cfec9
mov esi, ecx
jmp 0x100cfeed
mov edx, dword [ecx]
mov dword [eax + 0x18], edx
test edx, edx
jne 0x100cfed5
mov dword [eax + 0x1c], edx
mov dword [ecx], 0xfefefefe
mov esi, ecx
jmp 0x100cfeed
mov ecx, dword [eax + 0x14]
push 0x10
push 0x44
call fcn.101d8457
mov esi, eax
xor eax, eax
cmp esi, eax
je 0x100cff71
xor edx, edx
or ecx, 0xffffffff
mov dword [esi], eax
mov dword [esi + 8], eax
mov dword [esi + 0x10], ecx
mov dword [esi + 0x3c], eax
mov dword [esi + 4], eax
mov word [esi + 0x40], dx
mov dword [esi + 0xc], eax
mov word [esi + 0x42], dx
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], ecx
mov dword [esi + 0x24], eax
mov dword [esi + 0x34], eax
mov dword [esi + 0x38], eax
cmp byte [ebp + 0x10], dl
je 0x100cff4a
cmp dword [ebp - 0xc], 0x11200000
jne 0x100cff41
cmp byte [ebp - 1], dl
jne 0x100cff41
mov edx, ebx
mov ecx, ebx
mov eax, edi
jmp 0x100cff5b
lea ecx, [ebx + ebx]
mov edx, ebx
mov eax, edi
jmp 0x100cff5b
mov eax, edi
and eax, 0xfff00001
or eax, 1
mov edx, 1
xor ecx, ecx
push 0
push esi
call fcn.10172020
test eax, eax
jge 0x100cff7c
call fcn.10171ee0
call fcn.101751f0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp byte [ebp + 0x10], 0
mov edi, dword [ebp + 0xc]
mov eax, dword [edi + 0x34]
mov dword [esi + 0x34], eax
mov ecx, dword [edi + 0x38]
mov dword [esi + 0x38], ecx
je 0x100cffae
mov edx, dword [edi + 8]
mov eax, dword [edi + 0xc]
mov ecx, dword [esi + 0xc]
add edx, edx
add edx, edx
push edx
push eax
push ecx
call sub.msvcrt.dll_memcpy
mov ebx, dword [ebp + 8]
add esp, 0xc
jmp 0x100cfff6
mov ebx, dword [ebp + 8]
mov edx, dword [ebx + 0x8064]
mov eax, dword [esi + 0xc]
push 0x11
push 0
push 0
push edx
push eax
push ebx
call fcn.10169c20
test eax, eax
jl 0x100cff67
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx]
mov byte [eax + 0x38], 0
mov byte [eax + 0x39], 0
mov dword [eax + 0x34], 0xffffffff
mov edx, dword [esi + 0xc]
mov ecx, dword [edi + 0xc]
mov ecx, dword [ecx]
mov eax, dword [edx]
mov edx, dword [ecx + 0x68]
mov dword [eax + 0x68], edx
mov cl, byte [ecx + 0x6c]
mov byte [eax + 0x6c], cl
mov edx, dword [esi]
mov eax, dword [edi + 4]
mov ecx, dword [esi + 4]
add edx, edx
add edx, edx
push edx
push eax
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
cmp byte [ebp + 0x10], 0
je 0x100d00e6
cmp byte [ebp - 1], 0
je 0x100d00e6
mov edx, dword [ebx + 8]
mov dword [ebp + 0x10], 0
or edi, 0xffffffff
mov dword [ebp + 0xc], edx
inc edi
cmp edi, dword [ebp + 0xc]
jae 0x100d00a2
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x7f2c]
mov ecx, dword [eax + edi*4]
cmp dword [ecx + 0x24], 0
je 0x100d0031
mov eax, dword [ecx + 8]
and eax, 0x100
xor edx, edx
or eax, edx
je 0x100d0031
mov edx, dword [ebx + 0x7f2c]
mov dword [ebp - 0xc], edx
mov ecx, dword [ecx + 0x24]
mov eax, dword [ecx]
mov ecx, dword [ecx + 0x60]
cmp ecx, dword [ebp + 0x10]
jb 0x100d0071
inc ecx
mov dword [ebp + 0x10], ecx
test eax, eax
je 0x100d007b
mov ecx, eax
mov eax, dword [eax]
jmp 0x100d0065
mov eax, dword [ebp - 0xc]
lea ebx, [eax + edi*4]
inc edi
add ebx, 4
cmp edi, dword [ebp + 0xc]
jae 0x100d00a2
mov ecx, dword [ebx]
cmp dword [ecx + 0x24], 0
je 0x100d0081
mov eax, dword [ecx + 8]
and eax, 0x100
xor edx, edx
or eax, edx
je 0x100d0081
jmp 0x100d0060
mov edi, dword [ebp + 8]
add edi, 0x10300
cmp dword [edi], 0xffffffff
jne 0x100d00de
mov eax, dword [ebp + 8]
fldz
mov ecx, dword [eax + 0x8024]
sub esp, 8
fstp qword [esp]
push ecx
push edi
push eax
mov eax, 4
call fcn.10169cc0
test eax, eax
jl 0x100cff67
mov edx, dword [edi]
mov eax, dword [ebp + 0x10]
mov dword [edx + 0x60], eax
mov ecx, dword [esi + 4]
mov edx, dword [edi]
mov dword [ecx + 4], edx
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc