Function at 0x10008ea0
Capabilities:
Get thread local storage value
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x90
mov eax, dword [0x1002b150]
push ebx
push esi
push edi
push ebp
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edi, [eax + 0x7e8]
mov ecx, dword [eax + 0x7cc]
mov dword [esp + 0x10], eax
mov dword [esp + 0x38], edi
mov eax, ecx
mov edi, dword [esp + 0x10]
shl eax, 8
add ecx, dword [edi + 0x7d0]
lea edx, [eax + edi + 0x7e8]
mov eax, ecx
shl eax, 8
add ecx, dword [edi + 0x7d4]
shl ecx, 8
xor esi, esi
add edi, 0x5b4c
mov dword [esp + 0x34], edx
lea edx, [eax + edi - 0x5364]
lea eax, [ecx + edi - 0x5364]
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x10]
mov ebx, edi
mov dword [esp + 0x3c], edi
mov ecx, dword [eax + 0x7bc]
mov edi, dword [eax + 0x7c0]
lea eax, [esp + 0x70]
mov dword [eax], esi
mov dword [eax + 4], esi
mov dword [eax + 8], esi
mov dword [eax + 0xc], esi
lea eax, [esp + 0x80]
mov dword [eax], esi
mov dword [eax + 4], esi
mov dword [eax + 8], esi
mov dword [eax + 0xc], esi
mov ebp, dword [ebx]
mov eax, ecx
shl ebp, 3
sub edx, edx
add esi, 4
add ebx, 4
div ebp
mov ebp, dword [ebx + 0xc]
sub edx, edx
shl ebp, 3
mov dword [esp + esi + 0x5c], eax
mov eax, edi
div ebp
mov dword [esp + esi + 0x8c], eax
cmp esi, 0x10
jl 0x10008f47
mov dword [esp + 0x28], 0
test edi, edi
jle 0x10009486
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0xa4]
and eax, 7
mov ecx, dword [esp + 0x28]
shl eax, 5
mov ebp, dword [esp + 0x38]
add eax, 0x1002d668
mov esi, dword [edx + ecx*4]
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], edx
lea eax, [esp + 0x40]
mov dword [esp + 0x18], edi
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
lea eax, [esp + 0x50]
mov dword [esp + 0x14], 0
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov eax, dword [esp + 0x34]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x7bc], 0
jle 0x10009332
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov eax, dword [eax]
mov edx, dword [edx]
and eax, 0xffc0
and edx, 0xffc0
shr eax, 4
shr edx, 4
lea ecx, [eax + 0x1002f360]
movsx eax, word [ecx]
add edx, 0x10030360
movsx ecx, word [ecx + 2]
movsx edi, word [edx]
movsx edx, word [edx + 2]
add ecx, edi
mov edi, dword [ebp]
xor edi, 0xffff8003
and edi, 0xfffc
shr edi, 2
add eax, edi
add ecx, edi
add edx, edi
test ah, 0xc0
je 0x1000907f
and eax, 0x8000
cmp eax, 1
sbb eax, eax
and eax, 0xff
jmp 0x10009082
sar eax, 6
test ch, 0xc0
je 0x1000909a
and ecx, 0x8000
cmp ecx, 1
sbb ecx, ecx
and ecx, 0xff
jmp 0x1000909d
sar ecx, 6
test dh, 0xc0
je 0x100090b5
and edx, 0x8000
cmp edx, 1
sbb edx, edx
and edx, 0xff
jmp 0x100090b8
sar edx, 6
mov edi, dword [esp + 0x10]
test byte [edi + 0x750], 0x10
je 0x10009141
mov edi, dword [esp + 0x18]
mov edi, dword [edi]
xor edi, 0xffff8003
and edi, 0xfffc
shr edi, 2
test edi, 0xc000
je 0x100090f5
and edi, 0x8000
cmp edi, 1
sbb edi, edi
and edi, 0xff
jmp 0x100090f8
sar edi, 6
mov ebx, edi
sub ebx, edx
test ebx, ebx
jg 0x10009102
xor ebx, ebx
cmp ebx, 0xff
jl 0x1000910f
mov ebx, 0xff
mov edx, ebx
mov ebx, edi
sub ebx, ecx
test ebx, ebx
jg 0x1000911b
xor ebx, ebx
cmp ebx, 0xff
jl 0x10009128
mov ebx, 0xff
mov ecx, ebx
sub edi, eax
test edi, edi
jg 0x10009132
xor edi, edi
cmp edi, 0xff
jl 0x1000913f
mov edi, 0xff
mov eax, edi
mov edi, dword [esp + 0x10]
mov edi, dword [edi + 0x7b8]
dec edi
cmp edi, 9
ja case.0x1000915d.5
xor ebx, ebx
mov bl, byte [edi + 0x100094a8]
jmp dword [ebx*4 + 0x10009494]
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x24]
and ebx, 7
mov edi, dword [edi + ebx*4]
sar edi, 3
sub edi, 0x10
add eax, edi
cmp eax, 0xff
jl 0x10009186
mov eax, 0xff
test eax, eax
jg 0x1000918c
xor eax, eax
add ecx, edi
cmp ecx, 0xff
jl 0x1000919b
mov ecx, 0xff
test ecx, ecx
jg 0x100091a1
xor ecx, ecx
add edx, edi
cmp edx, 0xff
jl 0x100091b0
mov edx, 0xff
test edx, edx
jg 0x100091b6
xor edx, edx
shr eax, 6
and dl, 0xe0
shr ecx, 3
and al, 3
and cl, 0x1c
inc esi
or al, cl
or al, dl
mov byte [esi - 1], al
jmp case.0x1000915d.5
sar eax, 3
mov ebx, ecx
shr edx, 1
and bl, 0x38
shl bl, 2
inc esi
sar ecx, 6
or bl, al
mov byte [esi - 1], bl
and dl, 0x7c
or dl, cl
mov byte [esi], dl
inc esi
jmp case.0x1000915d.5
mov edi, dword [esp + 0x10]
mov byte [esi], al
mov byte [esi + 1], cl
mov byte [esi + 2], dl
add esi, dword [edi + 0x7b8]
jmp case.0x1000915d.5
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x24]
and ebx, 7
mov edi, dword [edi + ebx*4]
cmp edx, edi
setg dl
cmp ecx, edi
mov cl, 2
jg 0x1000921e
xor cl, cl
or dl, cl
cmp eax, edi
mov al, 4
jg 0x10009228
xor al, al
or dl, al
xor eax, eax
mov al, dl
test eax, eax
je 0x10009235
or eax, 8
test byte [esp + 0x14], 1
je 0x10009244
shl al, 4
or byte [esi], al
inc esi
jmp case.0x1000915d.5
mov byte [esi], al
mov eax, dword [esp + 0x60]
inc dword [esp + 0x50]
cmp dword [esp + 0x50], eax
jl 0x10009278
add ebp, 4
inc dword [esp + 0x40]
mov dword [esp + 0x50], 0
cmp dword [esp + 0x40], 8
jl 0x10009278
mov dword [esp + 0x40], 0
add ebp, 0xe0
mov eax, dword [esp + 0x64]
inc dword [esp + 0x54]
cmp dword [esp + 0x54], eax
jl 0x100092ae
mov dword [esp + 0x54], 0
add dword [esp + 0x20], 4
inc dword [esp + 0x44]
cmp dword [esp + 0x44], 8
jl 0x100092ae
mov dword [esp + 0x44], 0
add dword [esp + 0x20], 0xe0
mov eax, dword [esp + 0x68]
inc dword [esp + 0x58]
cmp dword [esp + 0x58], eax
jl 0x100092e4
mov dword [esp + 0x58], 0
add dword [esp + 0x1c], 4
inc dword [esp + 0x48]
cmp dword [esp + 0x48], 8
jl 0x100092e4
mov dword [esp + 0x48], 0
add dword [esp + 0x1c], 0xe0
mov eax, dword [esp + 0x6c]
inc dword [esp + 0x5c]
cmp dword [esp + 0x5c], eax
jl 0x1000931a
mov dword [esp + 0x5c], 0
add dword [esp + 0x18], 4
inc dword [esp + 0x4c]
cmp dword [esp + 0x4c], 8
jl 0x1000931a
mov dword [esp + 0x4c], 0
add dword [esp + 0x18], 0xe0
mov edi, dword [esp + 0x10]
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp dword [edi + 0x7bc], eax
jg 0x10009018
mov eax, dword [esp + 0x90]
inc dword [esp + 0x80]
cmp dword [esp + 0x80], eax
jl 0x1000937e
mov dword [esp + 0x80], 0
add dword [esp + 0x38], 0x20
inc dword [esp + 0x70]
cmp dword [esp + 0x70], 8
jl 0x1000937e
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x70], 0
mov eax, dword [eax]
shl eax, 8
sub eax, 0x100
add dword [esp + 0x38], eax
mov eax, dword [esp + 0x94]
inc dword [esp + 0x84]
cmp dword [esp + 0x84], eax
jl 0x100093ce
mov dword [esp + 0x84], 0
add dword [esp + 0x34], 0x20
inc dword [esp + 0x74]
cmp dword [esp + 0x74], 8
jl 0x100093ce
mov edi, dword [esp + 0x10]
mov dword [esp + 0x74], 0
mov eax, dword [edi + 0x5b50]
shl eax, 8
sub eax, 0x100
add dword [esp + 0x34], eax
mov eax, dword [esp + 0x98]
inc dword [esp + 0x88]
cmp dword [esp + 0x88], eax
jl 0x1000941e
mov dword [esp + 0x88], 0
add dword [esp + 0x30], 0x20
inc dword [esp + 0x78]
cmp dword [esp + 0x78], 8
jl 0x1000941e
mov edi, dword [esp + 0x10]
mov dword [esp + 0x78], 0
mov eax, dword [edi + 0x5b54]
shl eax, 8
sub eax, 0x100
add dword [esp + 0x30], eax
mov eax, dword [esp + 0x9c]
inc dword [esp + 0x8c]
cmp dword [esp + 0x8c], eax
jl 0x1000946e
mov dword [esp + 0x8c], 0
add dword [esp + 0x2c], 0x20
inc dword [esp + 0x7c]
cmp dword [esp + 0x7c], 8
jl 0x1000946e
mov edi, dword [esp + 0x10]
mov dword [esp + 0x7c], 0
mov eax, dword [edi + 0x5b58]
shl eax, 8
sub eax, 0x100
add dword [esp + 0x2c], eax
mov edi, dword [esp + 0x10]
inc dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
cmp dword [edi + 0x7c0], ecx
jg 0x10008f84
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x90
ret