Function at 0x1000f2b0
Capabilities:
Get thread local storage value

Disassembly:
sub esp, 0x10
mov eax, dword [0x1002b150]
push ebx
push esi
push edi
push ebp
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebx, eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x1c], eax
test eax, eax
lea edx, [ecx + eax*2]
mov dword [esp + 0x24], edx
jne 0x1000f2e8
add dword [esp + 0x24], 2
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
xor ebp, ebp
mov ecx, dword [esp + 0x1c]
cmp dword [eax + 0x18], ecx
jb 0x1000f65d
mov ecx, dword [esp + 0x24]
add dword [esp + 0x24], 2
movsx eax, word [ecx]
mov dword [esp + 0x14], eax
test eax, eax
jne 0x1000f319
inc ebp
jmp 0x1000f60e
cmp dword [esp + 0x14], 0
jge 0x1000f33d
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x34]
neg edx
mov cl, byte [eax + 0x20]
sar edx, cl
mov eax, edx
mov dword [esp + 0x18], edx
not eax
mov dword [esp + 0x14], eax
jmp 0x1000f350
mov eax, dword [esp + 0x34]
mov cl, byte [eax + 0x20]
sar dword [esp + 0x14], cl
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], ecx
cmp dword [esp + 0x18], 0
jne 0x1000f35d
inc ebp
jmp 0x1000f60e
cmp dword [ebx + 0x798], 0
je 0x1000f48e
mov eax, dword [0x1002b150]
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov dword [esp + 0x10], eax
mov eax, dword [eax + 0x798]
cmp eax, 1
jne 0x1000f38c
xor edi, edi
jmp 0x1000f442
cmp eax, 3
jg 0x1000f39b
mov edi, 1
jmp 0x1000f442
cmp eax, 7
jg 0x1000f3aa
mov edi, 2
jmp 0x1000f442
cmp eax, 0xf
jg 0x1000f3b9
mov edi, 3
jmp 0x1000f442
cmp eax, 0x1f
jg 0x1000f3c5
mov edi, 4
jmp 0x1000f442
cmp eax, 0x3f
jg 0x1000f3d1
mov edi, 5
jmp 0x1000f442
cmp eax, 0x7f
jg 0x1000f3dd
mov edi, 6
jmp 0x1000f442
cmp eax, 0xff
jg 0x1000f3eb
mov edi, 7
jmp 0x1000f442
cmp eax, 0x1ff
jg 0x1000f3f9
mov edi, 8
jmp 0x1000f442
cmp eax, 0x3ff
jg 0x1000f407
mov edi, 9
jmp 0x1000f442
cmp eax, 0x7ff
jg 0x1000f415
mov edi, 0xa
jmp 0x1000f442
cmp eax, 0xfff
jg 0x1000f423
mov edi, 0xb
jmp 0x1000f442
cmp eax, 0x1fff
jg 0x1000f431
mov edi, 0xc
jmp 0x1000f442
mov edi, 0xd
cmp eax, 0x4257
jle 0x1000f442
mov edi, 0xe
mov eax, dword [esp + 0x34]
cmp dword [eax + 0x24], 0
je 0x1000f4d7
cmp dword [esp + 0x38], 0
jne 0x1000f4c1
shl edi, 7
mov ecx, dword [esp + 0x10]
lea edx, [edi + edi*2]
mov eax, dword [ecx + 0x9910]
inc dword [edx + eax + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x798], 0
lea ecx, [ebx + 0x5d84]
mov dword [ecx], 0
cmp dword [ecx], 0
jne 0x1000f625
cmp ebp, 0xf
jbe 0x1000f585
mov eax, dword [esp + 0x34]
cmp dword [eax + 0x24], 0
je 0x1000f553
cmp dword [esp + 0x38], 0
jne 0x1000f545
mov eax, dword [ebx + 0x9910]
inc dword [eax + 0x168c]
jmp 0x1000f579
shl edi, 7
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x9914]
lea ecx, [edi + edi*2]
inc dword [eax + ecx + 0xc]
jmp 0x1000f46b
mov ecx, edi
xor eax, eax
shl ecx, 4
mov al, byte [ecx + esi]
push eax
mov eax, edi
shl eax, 6
mov ecx, dword [eax + esi + 0x100]
push ecx
call fcn.10010820
mov ecx, dword [esp + 0x18]
add esp, 8
test eax, eax
mov dword [ecx + 0x5d84], eax
je 0x1000f512
lea ecx, [ebx + 0x5d84]
mov dword [ecx], eax
jmp 0x1000f485
mov ecx, dword [esp + 0x10]
push edi
mov eax, dword [ecx + 0x798]
push eax
call fcn.10010820
mov ecx, dword [esp + 0x18]
add esp, 8
test eax, eax
mov dword [ecx + 0x5d84], eax
je 0x1000f46b
lea ecx, [ebx + 0x5d84]
mov dword [ecx], eax
jmp 0x1000f485
mov eax, dword [ebx + 0x9914]
inc dword [eax + 0x168c]
jmp 0x1000f579
xor eax, eax
mov ecx, dword [esi + 0x4c0]
mov al, byte [esi + 0xf0]
push eax
push ecx
call fcn.10010820
add esp, 8
mov dword [ebx + 0x5d84], eax
test eax, eax
jne 0x1000f633
sub ebp, 0x10
cmp ebp, 0xf
ja 0x1000f497
mov eax, dword [esp + 0x18]
push eax
call fcn.10010240
add esp, 4
mov edi, eax
cmp edi, 0xa
jbe 0x1000f59e
mov edi, 0xa
shl ebp, 4
mov eax, dword [esp + 0x34]
cmp dword [eax + 0x24], 0
lea ecx, [ebp + edi]
je 0x1000f5d4
cmp dword [esp + 0x38], 0
jne 0x1000f5c5
lea ecx, [ecx + ecx*2]
mov eax, dword [ebx + 0x9910]
inc dword [eax + ecx*8 + 0xc]
jmp 0x1000f60c
mov eax, dword [ebx + 0x9914]
lea ecx, [ecx + ecx*2]
inc dword [eax + ecx*8 + 0xc]
jmp 0x1000f60c
xor eax, eax
mov al, byte [esi + ecx]
mov ecx, dword [esi + ecx*4 + 0x100]
push eax
push ecx
call fcn.10010820
add esp, 8
mov dword [ebx + 0x5d84], eax
test eax, eax
jne 0x1000f641
mov eax, dword [esp + 0x14]
push edi
push eax
call fcn.10010820
add esp, 8
mov dword [ebx + 0x5d84], eax
test eax, eax
jne 0x1000f64f
xor ebp, ebp
mov eax, dword [esp + 0x34]
inc dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
cmp dword [eax + 0x18], ecx
jae 0x1000f2ff
jmp 0x1000f65d
mov eax, dword [ebx + 0x5d84]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x10
ret
mov eax, dword [ebx + 0x5d84]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x10
ret
mov eax, dword [ebx + 0x5d84]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x10
ret
mov eax, dword [ebx + 0x5d84]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x10
ret
test ebp, ebp
je 0x1000f79c
mov eax, dword [ebx + 0x798]
inc eax
mov dword [ebx + 0x798], eax
cmp eax, 0x7fff
jne 0x1000f79c
mov eax, dword [0x1002b150]
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebp, eax
mov eax, dword [eax + 0x798]
cmp eax, 1
jne 0x1000f69d
xor edi, edi
jmp 0x1000f753
cmp eax, 3
jg 0x1000f6ac
mov edi, 1
jmp 0x1000f753
cmp eax, 7
jg 0x1000f6bb
mov edi, 2
jmp 0x1000f753
cmp eax, 0xf
jg 0x1000f6ca
mov edi, 3
jmp 0x1000f753
cmp eax, 0x1f
jg 0x1000f6d6
mov edi, 4
jmp 0x1000f753
cmp eax, 0x3f
jg 0x1000f6e2
mov edi, 5
jmp 0x1000f753
cmp eax, 0x7f
jg 0x1000f6ee
mov edi, 6
jmp 0x1000f753
cmp eax, 0xff
jg 0x1000f6fc
mov edi, 7
jmp 0x1000f753
cmp eax, 0x1ff
jg 0x1000f70a
mov edi, 8
jmp 0x1000f753
cmp eax, 0x3ff
jg 0x1000f718
mov edi, 9
jmp 0x1000f753
cmp eax, 0x7ff
jg 0x1000f726
mov edi, 0xa
jmp 0x1000f753
cmp eax, 0xfff
jg 0x1000f734
mov edi, 0xb
jmp 0x1000f753
cmp eax, 0x1fff
jg 0x1000f742
mov edi, 0xc
jmp 0x1000f753
mov edi, 0xd
cmp eax, 0x4257
jle 0x1000f753
mov edi, 0xe
mov eax, dword [esp + 0x34]
cmp dword [eax + 0x24], 0
je 0x1000f832
cmp dword [esp + 0x38], 0
jne 0x1000f827
mov eax, dword [ebp + 0x9910]
shl edi, 7
lea ecx, [edi + edi*2]
inc dword [eax + ecx + 0xc]
lea eax, [ebx + 0x5d84]
mov dword [ebp + 0x798], 0
mov dword [eax], 0
mov eax, dword [eax]
test eax, eax
jne 0x1000f81f
cmp dword [ebx + 0x798], 0
je 0x1000f81d
mov eax, dword [esp + 0x34]
cmp dword [eax], 1
ja 0x1000f7b4
cmp dword [eax + 0x14], 0
jne 0x1000f81d
mov eax, dword [0x1002b150]
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov eax, dword [eax + 0x798]
push eax
call fcn.10010300
add esp, 4
mov ebp, eax
mov eax, dword [esp + 0x34]
cmp dword [eax + 0x24], 0
je 0x1000f8a3
cmp dword [esp + 0x38], 0
jne 0x1000f898
mov eax, dword [edi + 0x9910]
shl ebp, 7
lea ecx, [ebp + ebp*2]
inc dword [eax + ecx + 0xc]
mov dword [edi + 0x798], 0
mov dword [ebx + 0x5d84], 0
add ebx, 0x5d84
mov eax, dword [ebx]
test eax, eax
jne 0x1000f81f
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x10
ret
mov eax, dword [ebp + 0x9914]
jmp 0x1000f772
mov ecx, edi
xor eax, eax
shl ecx, 4
mov al, byte [ecx + esi]
push eax
mov eax, edi
shl eax, 6
mov ecx, dword [eax + esi + 0x100]
push ecx
call fcn.10010820
add esp, 8
mov ecx, eax
mov dword [ebp + 0x5d84], eax
test ecx, ecx
je 0x1000f86b
lea eax, [ebx + 0x5d84]
mov dword [eax], ecx
jmp 0x1000f792
push edi
mov eax, dword [ebp + 0x798]
push eax
call fcn.10010820
add esp, 8
mov ecx, eax
mov dword [ebp + 0x5d84], eax
test ecx, ecx
je 0x1000f77c
lea eax, [ebx + 0x5d84]
mov dword [eax], ecx
jmp 0x1000f792
mov eax, dword [edi + 0x9914]
jmp 0x1000f7f2
mov ecx, ebp
xor eax, eax
shl ecx, 4
mov al, byte [ecx + esi]
push eax
mov eax, ebp
shl eax, 6
mov ecx, dword [eax + esi + 0x100]
push ecx
call fcn.10010820
add esp, 8
mov dword [edi + 0x5d84], eax
test eax, eax
je 0x1000f8de
mov dword [ebx + 0x5d84], eax
add ebx, 0x5d84
jmp 0x1000f817
push ebp
mov eax, dword [edi + 0x798]
push eax
call fcn.10010820
add esp, 8
mov dword [edi + 0x5d84], eax
test eax, eax
je 0x1000f7fd
mov dword [ebx + 0x5d84], eax
add ebx, 0x5d84
jmp 0x1000f817