Function at 0x100a6452
Capabilities:
Get thread local storage value

Disassembly:
push 0xbc
mov eax, 0x100e97c0
call fcn.100026c8
mov edi, ecx
mov dword [ebp - 0xb0], edi
xor esi, esi
mov dword [ebp - 0xc8], edi
mov edx, edi
xor ebx, ebx
mov cl, byte [edx]
cmp cl, 0x41
jl 0x100a6481
cmp cl, 0x5a
jle 0x100a6488
lea eax, [ecx - 0x61]
cmp al, 0x19
ja 0x100a6495
inc edx
inc esi
jmp 0x100a6475
cmp cl, 0x39
ja 0x100a649a
inc edx
inc ebx
mov cl, byte [edx]
cmp cl, 0x30
jge 0x100a648c
lea eax, [esi - 1]
cmp eax, 2
ja 0x100a64b3
lea eax, [ebx - 1]
cmp eax, 4
ja 0x100a64b3
cmp byte [edx], 0
je 0x100a6936
mov dl, byte [edi]
lea eax, [edx + 0x20]
lea ecx, [edx - 0x41]
movzx ebx, al
cmp cl, 0x19
movzx eax, dl
cmova ebx, eax
mov dword [ebp - 0xa8], ebx
cmp bl, 0x72
je 0x100a64dc
cmp bl, 0x63
je 0x100a64dc
lea esi, [edi + 1]
jmp 0x100a64e8
lea esi, [edi + 1]
cmp byte [esi], 0
je 0x100a6936
cmp bl, 0x72
je 0x100a64f2
cmp bl, 0x63
jne 0x100a6554
mov bl, byte [esi]
cmp bl, 0x30
jl 0x100a650b
mov al, bl
mov bl, al
cmp al, 0x39
ja 0x100a650b
inc esi
mov bl, byte [esi]
mov al, bl
cmp bl, 0x30
jge 0x100a64fb
test bl, bl
je 0x100a6936
lea eax, [ebx + 0x20]
lea edx, [ebx - 0x41]
movzx ecx, al
cmp dl, 0x19
movzx eax, bl
cmova ecx, eax
cmp cl, 0x63
jne 0x100a6554
cmp byte [ebp - 0xa8], 0x72
jne 0x100a6554
inc esi
mov al, byte [esi]
cmp al, 0x30
jl 0x100a654c
mov cl, al
mov al, cl
cmp cl, 0x39
ja 0x100a654c
inc esi
mov al, byte [esi]
mov cl, al
cmp al, 0x30
jge 0x100a653c
test al, al
je 0x100a6936
push dword [0x10174460]
call dword [sym.imp.kernel32.dll_TlsGetValue]
cmp dword [0x101827f0], 0
movzx eax, word [eax + 0x68]
mov dword [ebp - 0xa8], eax
jne 0x100a6886
push 0x10181ce0
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
xor esi, esi
mov dword [ebp - 4], esi
cmp dword [0x101827f0], esi
jne 0x100a6871
push 4
lea ecx, [ebp - 0xc0]
call sym.fpsrvutl.dll_Ordinal_3375
mov dword [ebp - 0xb8], esi
mov dword [ebp - 0xb4], esi
lea eax, [ebp - 0xc0]
mov byte [ebp - 4], 1
push eax
call sym.fpsrvutl.dll_Ordinal_5351
push ecx
lea ecx, [ebp - 0xac]
call fcn.10001e94
mov byte [ebp - 4], 2
push 0x24
cmp dword [0x10181be0], esi
je 0x100a65de
pop ecx
call fcn.1004ba3f
jmp 0x100a65e5
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
pop ecx
mov dword [ebp - 0x98], eax
mov byte [ebp - 4], 3
test eax, eax
je 0x100a6600
push esi
push esi
mov ecx, eax
call sym.fpsrvutl.dll_Ordinal_2426
mov ebx, eax
jmp 0x100a6602
mov ebx, esi
mov eax, 0x10181f8c
mov dword [ebp - 0xa0], eax
lock inc dword [0x10181f80]
mov dword [ebp - 0xa4], eax
lock inc dword [0x10181f80]
mov byte [ebp - 4], 5
mov edi, esi
cmp edi, dword [ebp - 0xb8]
jae 0x100a6735
push edi
lea ecx, [ebp - 0xc0]
call sym.fpsrvutl.dll_Ordinal_319
mov eax, dword [ebp - 0xbc]
push dword [eax + edi*4]
call fcn.1004ba3f
movzx eax, ax
xor ecx, ecx
mov dword [ebp - 0x9c], eax
cmp cx, ax
je 0x100a672f
push dword [0x10174460]
call dword [sym.imp.kernel32.dll_TlsGetValue]
push dword [ebp - 0x9c]
mov esi, eax
call fcn.1004ba3f
push eax
mov ecx, esi
call fcn.1004ba3f
push 0
push 0x260009
lea eax, [ebp - 0xc4]
push eax
call fcn.1004ba3f
push eax
lea ecx, [ebp - 0xa0]
call fcn.1004ba3f
mov ecx, dword [ebp - 0xc4]
lea ecx, [ecx - 0xc]
call sym.fpsrvutl.dll_Ordinal_5727
push 0
push 0x26000a
lea eax, [ebp - 0x98]
push eax
call fcn.1004ba3f
push eax
lea ecx, [ebp - 0xa4]
call fcn.1004ba3f
mov ecx, dword [ebp - 0x98]
lea ecx, [ecx - 0xc]
call sym.fpsrvutl.dll_Ordinal_5727
mov eax, dword [ebp - 0x9c]
movzx esi, ax
lea eax, [ebp - 0x54]
push esi
push str.t__d
push 0xffffffffffffffff
push eax
call fcn.1004ba3f
mov eax, dword [ebx]
lea ecx, [ebp - 0x54]
add esp, 0x10
push dword [ebp - 0xa0]
push ecx
mov ecx, ebx
call dword [eax + 4]
push esi
push str.f__d
lea eax, [ebp - 0x54]
push 0xffffffffffffffff
push eax
call fcn.1004ba3f
mov eax, dword [ebx]
lea ecx, [ebp - 0x54]
add esp, 0x10
push dword [ebp - 0xa4]
push ecx
mov ecx, ebx
call dword [eax + 4]
inc edi
jmp 0x100a6627
push dword [0x10174460]
call dword [sym.imp.kernel32.dll_TlsGetValue]
xor esi, esi
mov ecx, eax
push esi
call fcn.1004ba3f
push esi
push 0x260009
lea eax, [ebp - 0x98]
push eax
call fcn.1004ba3f
push eax
lea ecx, [ebp - 0xa0]
call fcn.1004ba3f
mov ecx, dword [ebp - 0x98]
lea ecx, [ecx - 0xc]
call sym.fpsrvutl.dll_Ordinal_5727
push esi
push 0x26000a
lea eax, [ebp - 0x98]
push eax
call fcn.1004ba3f
push eax
lea ecx, [ebp - 0xa4]
call fcn.1004ba3f
mov ecx, dword [ebp - 0x98]
lea ecx, [ecx - 0xc]
call sym.fpsrvutl.dll_Ordinal_5727
push esi
push str.t__d
lea eax, [ebp - 0x54]
push 0xffffffffffffffff
push eax
call fcn.1004ba3f
mov edi, dword [ebp - 0xa0]
lea ecx, [ebp - 0x54]
mov eax, dword [ebx]
add esp, 0x10
push edi
push ecx
mov ecx, ebx
call dword [eax + 4]
push esi
push str.f__d
lea eax, [ebp - 0x54]
push 0xffffffffffffffff
push eax
call fcn.1004ba3f
mov esi, dword [ebp - 0xa4]
lea ecx, [ebp - 0x54]
mov eax, dword [ebx]
add esp, 0x10
push esi
push ecx
mov ecx, ebx
call dword [eax + 4]
push ecx
lea ecx, [ebp - 0x9c]
call fcn.10001e94
mov eax, 0x101827f0
xchg dword [eax], ebx
lea ecx, [ebp - 0x9c]
call fcn.10002232
push dword [0x10174460]
call dword [sym.imp.kernel32.dll_TlsGetValue]
push dword [ebp - 0xa8]
mov ebx, eax
call fcn.1004ba3f
push eax
mov ecx, ebx
call fcn.1004ba3f
lea ecx, [esi - 0xc]
call sym.fpsrvutl.dll_Ordinal_5727
lea ecx, [edi - 0xc]
call sym.fpsrvutl.dll_Ordinal_5727
lea ecx, [ebp - 0xac]
call fcn.10002232
mov ecx, dword [ebp - 0xb4]
test ecx, ecx
je 0x100a6859
push ecx
call fcn.1003a8c6
mov eax, dword [ebp - 0xbc]
test eax, eax
je 0x100a686b
push ecx
mov ecx, eax
call fcn.1004ba3f
mov edi, dword [ebp - 0xb0]
or dword [ebp - 4], 0xffffffff
push 0x10181ce0
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
mov eax, dword [ebp - 0xa8]
movzx esi, ax
lea eax, [ebp - 0x94]
push esi
push str.t__d
push 0xffffffffffffffff
push eax
call fcn.1004ba3f
mov ecx, dword [0x101827f0]
lea edx, [ebp - 0x94]
add esp, 0x10
mov eax, dword [ecx]
push edx
call dword [eax + 0x10]
test eax, eax
je 0x100a68d3
mov ecx, dword [0x101827f0]
lea edx, [ebp - 0x94]
push edx
mov eax, dword [ecx]
call dword [eax + 0x10]
push eax
push edi
call fcn.1004ba3f
test eax, eax
je 0x100a6936
push esi
push str.f__d
lea eax, [ebp - 0x94]
push 0xffffffffffffffff
push eax
call fcn.1004ba3f
mov ecx, dword [0x101827f0]
lea edx, [ebp - 0x94]
add esp, 0x10
mov eax, dword [ecx]
push edx
call dword [eax + 0x10]
test eax, eax
je 0x100a6932
mov ecx, dword [0x101827f0]
lea edx, [ebp - 0x94]
push edx
mov eax, dword [ecx]
call dword [eax + 0x10]
push eax
push edi
call fcn.1004ba3f
neg eax
sbb al, al
inc al
jmp 0x100a6938
xor al, al
jmp 0x100a6938
mov al, 1
call fcn.10002701
ret