Function at 0x10002b90
Capabilities:
Get thread local storage value

Disassembly:
sub esp, 0x20
mov eax, dword [0x1002b150]
push ebx
push esi
push edi
push ebp
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea ecx, [eax + 0x4b0]
mov ebp, eax
push ecx
lea eax, [ebp + 0x4b4]
mov dword [ebp + 0x49c], 2
lea edx, [ebp + 0x49c]
mov dword [ebp + 0x4a0], eax
mov dword [ebp + 0x4b0], 2
push edx
mov eax, dword [ebp + 0x4a0]
push 0xffffffffffffffff
push eax
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x10002fa9
cmp dword [ebp + 0x49c], 2
je 0x10002c08
mov eax, 0xfffffff7
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret
mov eax, dword [ebp + 0x4a0]
xor ecx, ecx
xor ebx, ebx
mov cl, byte [eax]
mov dword [ebp + 0x4a8], ecx
mov eax, dword [ebp + 0x4a0]
inc eax
mov dword [ebp + 0x4a0], eax
mov bl, byte [eax]
mov eax, dword [ebp + 0x4a8]
shl eax, 8
or ebx, eax
sub ebx, 2
mov dword [ebp + 0x4a8], ebx
cmp ebx, 6
jne 0x10002d07
cmp dword [esp + 0x34], 0
je 0x10002d07
lea eax, [esp + 0x10]
lea ecx, [ebp + 0x4b0]
push ecx
mov dword [ebp + 0x4a0], eax
lea eax, [ebp + 0x49c]
mov dword [ebp + 0x49c], ebx
mov dword [ebp + 0x4b0], 2
push eax
mov edx, dword [ebp + 0x4a0]
push 0xffffffffffffffff
push edx
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x10002fa9
mov ecx, ebx
mov edi, str.WANG_
shr ecx, 2
mov eax, ebx
mov esi, dword [ebp + 0x4a0]
repe cmpsd dword [esi], dword es:[edi]
jne 0x10002cc1
mov ecx, eax
and ecx, 3
repe cmpsb byte [esi], byte es:[edi]
jne 0x10002cc1
mov eax, dword [esp + 0x34]
mov dword [eax], 1
cmp dword [ebp + 0x498], 0
je 0x10002ec8
lea eax, [ebp + 0x4a0]
mov ecx, dword [ebp + 0x49c]
push eax
push ecx
push ebx
mov eax, dword [ebp + 0x4ac]
push 0xfe
call dword [eax + 0x90]
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
je 0x10002ec8
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret
cmp ebx, 0x1d
jne 0x10002dc1
lea eax, [esp + 0x10]
lea ecx, [ebp + 0x4b0]
push ecx
mov dword [ebp + 0x4a0], eax
lea eax, [ebp + 0x49c]
mov dword [ebp + 0x49c], ebx
mov dword [ebp + 0x4b0], 2
push eax
mov edx, dword [ebp + 0x4a0]
push 0xffffffffffffffff
push edx
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x10002fa9
mov edi, str.LEAD_Technologies_Inc._V1.00
mov ecx, 0x1d
mov esi, dword [ebp + 0x4a0]
repe cmpsb byte [esi], byte es:[edi]
jne 0x10002d7b
mov eax, dword [ebp + 0x4ac]
mov dword [eax + 0x108], 0
cmp dword [ebp + 0x498], 0
je 0x10002ec8
lea eax, [ebp + 0x4a0]
mov ecx, dword [ebp + 0x49c]
push eax
push ecx
push ebx
mov eax, dword [ebp + 0x4ac]
push 0xfe
call dword [eax + 0x90]
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
je 0x10002ec8
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret
cmp dword [ebp + 0x498], 0
jne 0x10002e2a
test ebx, ebx
je 0x10002ec8
lea eax, [ebp + 0x4b0]
lea ecx, [ebp + 0x49c]
mov dword [ebp + 0x4a0], 0
mov dword [ebp + 0x49c], 0
mov dword [ebp + 0x4b0], 3
push eax
mov edx, dword [ebp + 0x4a8]
push ecx
mov eax, dword [ebp + 0x4a0]
push edx
push eax
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
je 0x10002ec8
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret
test ebx, ebx
je 0x10002ec8
lea ecx, [ebp + 0x4b0]
lea edx, [ebp + 0x49c]
mov dword [ebp + 0x4a0], 0
mov eax, dword [ebp + 0x4a8]
push ecx
push edx
mov dword [ebp + 0x49c], eax
push 0xffffffffffffffff
lea eax, [ebp + 0x4a0]
mov dword [ebp + 0x4b0], 4
push eax
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x10002f5b
lea eax, [ebp + 0x4a0]
mov ecx, dword [ebp + 0x49c]
push eax
push ecx
push ebx
mov eax, dword [ebp + 0x4ac]
push 0xfe
call dword [eax + 0x90]
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x10002f69
mov eax, dword [ebp + 0x4a8]
sub eax, dword [ebp + 0x49c]
mov dword [ebp + 0x4a8], eax
jne 0x10002e32
lea eax, [ebp + 0x4b4]
lea ecx, [ebp + 0x4b0]
push ecx
lea edx, [ebp + 0x49c]
mov dword [ebp + 0x49c], 2
push edx
mov dword [ebp + 0x4a0], eax
mov dword [ebp + 0x4b0], 2
push 0xffffffffffffffff
mov eax, dword [ebp + 0x4a0]
push eax
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x10002fa9
mov eax, dword [ebp + 0x4a0]
lea ecx, [ebp + 0x49c]
cmp byte [eax], 0xff
lea eax, [ebp + 0x4b0]
mov dword [ebp + 0x4b0], 3
push eax
push ecx
jne 0x10002f77
push 0xfffffffffffffffe
lea edx, [ebp + 0x4a0]
push edx
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
je 0x10002fa7
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret
mov eax, dword [ebp + 0x5d84]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret
mov eax, dword [ebp + 0x5d84]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret
mov eax, 0xfffffffe
lea ecx, [ebp + 0x4a0]
sub eax, ebx
push eax
push ecx
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x10002fa9
call fcn.10002950
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x10002fa9
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret