Function at 0x10089b36
Capabilities:
Get thread local storage value

Disassembly:
push 0xbc
mov eax, 0x100e4d08
call fcn.10002666
mov esi, ecx
mov dword [ebp - 0xb4], esi
xor edi, edi
mov dword [ebp - 0xb8], esi
mov edx, esi
xor ebx, ebx
mov cl, byte [edx]
cmp cl, 0x41
jl 0x10089b65
cmp cl, 0x5a
jle 0x10089b6c
lea eax, [ecx - 0x61]
cmp al, 0x19
ja 0x10089b79
inc edx
inc edi
jmp 0x10089b59
cmp cl, 0x39
jg 0x10089b7e
inc edx
inc ebx
mov cl, byte [edx]
cmp cl, 0x30
jge 0x10089b70
lea eax, [edi - 1]
cmp eax, 2
ja 0x10089b9a
lea eax, [ebx - 1]
cmp eax, 4
ja 0x10089b9a
cmp byte [edx], 0
jne 0x10089b9a
mov al, 1
jmp 0x10089fe7
mov dl, byte [esi]
lea eax, [edx + 0x20]
lea ecx, [edx - 0x41]
movzx ebx, al
cmp cl, 0x19
movzx eax, dl
cmova ebx, eax
cmp bl, 0x72
je 0x10089bb8
cmp bl, 0x63
jne 0x10089bbe
cmp byte [esi + 1], 0
je 0x10089b93
cmp bl, 0x72
je 0x10089bc8
cmp bl, 0x63
jne 0x10089c1b
lea ecx, [esi + 1]
mov al, byte [ecx]
cmp al, 0x30
jl 0x10089be3
mov dl, al
mov al, dl
cmp dl, 0x39
jg 0x10089be3
inc ecx
mov al, byte [ecx]
mov dl, al
cmp al, 0x30
jge 0x10089bd3
test al, al
je 0x10089b93
cmp al, 0x41
jl 0x10089bf1
cmp al, 0x5a
jg 0x10089bf1
add al, 0x20
cmp al, 0x63
jne 0x10089c1b
cmp bl, 0x72
jne 0x10089c1b
inc ecx
mov al, byte [ecx]
cmp al, 0x30
jl 0x10089c13
mov dl, al
mov al, dl
cmp dl, 0x39
jg 0x10089c13
inc ecx
mov al, byte [ecx]
mov dl, al
cmp al, 0x30
jge 0x10089c03
test al, al
je 0x10089b93
push dword [0x10150ddc]
call dword [sym.imp.kernel32.dll_TlsGetValue]
cmp dword [0x1017ca6c], 0
movzx eax, word [eax + 0x68]
mov dword [ebp - 0xac], eax
jne 0x10089f46
push 0x1017bde0
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
and dword [ebp - 4], 0
cmp dword [0x1017ca6c], 0
jne 0x10089f31
push 4
lea ecx, [ebp - 0xc8]
call sym.fpsrvutl.dll_Ordinal_3375
xor esi, esi
mov dword [ebp - 0xc0], esi
mov dword [ebp - 0xbc], esi
lea eax, [ebp - 0xc8]
mov byte [ebp - 4], 1
push eax
call sym.fpsrvutl.dll_Ordinal_5351
push ecx
lea ecx, [ebp - 0xa8]
call fcn.10001e74
mov byte [ebp - 4], 2
push 0x24
cmp dword [0x1017ca10], esi
je 0x10089ca7
pop ecx
call sym.fpsrvutl.dll_Ordinal_116
jmp 0x10089cae
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 0x10089cc9
push esi
push esi
mov ecx, eax
call sym.fpsrvutl.dll_Ordinal_116
mov ebx, eax
jmp 0x10089ccb
mov ebx, esi
mov eax, 0x1017c79c
mov dword [ebp - 0xa0], eax
lock inc dword [0x1017c790]
mov dword [ebp - 0xa4], eax
lock inc dword [0x1017c790]
mov byte [ebp - 4], 5
mov edi, esi
cmp edi, dword [ebp - 0xc0]
jae 0x10089dfe
push edi
lea ecx, [ebp - 0xc8]
call sym.fpsrvutl.dll_Ordinal_53
mov eax, dword [ebp - 0xc4]
push dword [eax + edi*4]
call sym.fpsrvutl.dll_Ordinal_116
movzx eax, ax
xor ecx, ecx
mov dword [ebp - 0x9c], eax
cmp cx, ax
je 0x10089df8
push dword [0x10150ddc]
call dword [sym.imp.kernel32.dll_TlsGetValue]
push dword [ebp - 0x9c]
mov esi, eax
call sym.fpsrvutl.dll_Ordinal_116
push eax
mov ecx, esi
call sym.fpsrvutl.dll_Ordinal_116
push 0
push 0x260009
lea eax, [ebp - 0xb0]
push eax
call sym.fpsrvutl.dll_Ordinal_116
push eax
lea ecx, [ebp - 0xa0]
call sym.fpsrvutl.dll_Ordinal_116
mov ecx, dword [ebp - 0xb0]
lea ecx, [ecx - 0xc]
call sym.fpsrvutl.dll_Ordinal_5727
push 0
push 0x26000a
lea eax, [ebp - 0x98]
push eax
call sym.fpsrvutl.dll_Ordinal_116
push eax
lea ecx, [ebp - 0xa4]
call sym.fpsrvutl.dll_Ordinal_116
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 sym.fpsrvutl.dll_Ordinal_116
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 sym.fpsrvutl.dll_Ordinal_116
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 0x10089cf0
push dword [0x10150ddc]
call dword [sym.imp.kernel32.dll_TlsGetValue]
xor esi, esi
mov ecx, eax
push esi
call sym.fpsrvutl.dll_Ordinal_116
push esi
push 0x260009
lea eax, [ebp - 0x98]
push eax
call sym.fpsrvutl.dll_Ordinal_116
push eax
lea ecx, [ebp - 0xa0]
call sym.fpsrvutl.dll_Ordinal_116
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 sym.fpsrvutl.dll_Ordinal_116
push eax
lea ecx, [ebp - 0xa4]
call sym.fpsrvutl.dll_Ordinal_116
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 sym.fpsrvutl.dll_Ordinal_116
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 sym.fpsrvutl.dll_Ordinal_116
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.10001e74
mov eax, 0x1017ca6c
xchg dword [eax], ebx
lea ecx, [ebp - 0x9c]
call fcn.1000221e
push dword [0x10150ddc]
call dword [sym.imp.kernel32.dll_TlsGetValue]
push dword [ebp - 0xac]
mov ebx, eax
call sym.fpsrvutl.dll_Ordinal_116
push eax
mov ecx, ebx
call sym.fpsrvutl.dll_Ordinal_116
lea ecx, [esi - 0xc]
call sym.fpsrvutl.dll_Ordinal_5727
lea ecx, [edi - 0xc]
call sym.fpsrvutl.dll_Ordinal_5727
lea ecx, [ebp - 0xa8]
call fcn.1000221e
lea ecx, [ebp - 0xc8]
call sym.fpsrvutl.dll_Ordinal_1853
mov esi, dword [ebp - 0xb4]
jmp 0x10089f31
or dword [ebp - 4], 0xffffffff
push 0x1017bde0
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
mov eax, dword [ebp - 0xac]
movzx edi, ax
lea eax, [ebp - 0x94]
push edi
push str.t__d
push 0xffffffffffffffff
push eax
call sym.fpsrvutl.dll_Ordinal_116
mov ecx, dword [0x1017ca6c]
lea edx, [ebp - 0x94]
add esp, 0x10
mov eax, dword [ecx]
push edx
call dword [eax + 0x10]
test eax, eax
je 0x10089f97
mov ecx, dword [0x1017ca6c]
lea edx, [ebp - 0x94]
push edx
mov eax, dword [ecx]
call dword [eax + 0x10]
push eax
push esi
call sym.fpsrvutl.dll_Ordinal_116
test eax, eax
je 0x10089b93
push edi
push str.f__d
lea eax, [ebp - 0x94]
push 0xffffffffffffffff
push eax
call sym.fpsrvutl.dll_Ordinal_116
mov ecx, dword [0x1017ca6c]
lea edx, [ebp - 0x94]
add esp, 0x10
mov eax, dword [ecx]
push edx
call dword [eax + 0x10]
test eax, eax
je 0x10089fe5
mov ecx, dword [0x1017ca6c]
lea edx, [ebp - 0x94]
push edx
mov eax, dword [ecx]
call dword [eax + 0x10]
push eax
push esi
call sym.fpsrvutl.dll_Ordinal_116
test eax, eax
je 0x10089b93
xor al, al
call fcn.100026a0
ret