Function at 0x1000f910
Capabilities:
Get thread local storage value

Disassembly:
sub esp, 0x118
mov eax, dword [0x1002b150]
push ebx
push esi
push edi
push ebp
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov eax, dword [esp + 0x13c]
mov dword [esp + 0x18], 0
mov esi, dword [eax + 0x14]
mov edx, esi
test edx, edx
jne 0x1000f941
inc edx
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x13c]
lea ebx, [eax + edx*2]
mov ebp, dword [ecx + 0x18]
cmp ebp, edx
jb 0x1000f97c
mov cl, byte [ecx + 0x20]
movsx eax, word [ebx]
add ebx, 2
test eax, eax
jge 0x1000f968
neg eax
sar eax, cl
mov dword [esp + edx*4 + 0x28], eax
cmp eax, 1
jne 0x1000f977
mov dword [esp + 0x18], edx
inc edx
cmp ebp, edx
jae 0x1000f95c
mov ebx, dword [edi + 0x6904]
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], 0
test esi, esi
jne 0x1000f996
inc dword [esp + 0x14]
cmp ebp, dword [esp + 0x14]
jb 0x1000fef0
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x14]
lea edx, [eax + ecx*2]
lea eax, [esp + ecx*4 + 0x28]
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x1000f9d1
inc dword [esp + 0x10]
jmp 0x1000fece
cmp dword [esp + 0x10], 0xf
jbe 0x1000fc85
mov ecx, dword [esp + 0x14]
cmp dword [esp + 0x18], ecx
jb 0x1000fc85
cmp dword [edi + 0x798], 0
je 0x1000fbd2
mov eax, dword [0x1002b150]
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, eax
mov eax, dword [eax + 0x798]
cmp eax, 1
jne 0x1000fa17
xor ebp, ebp
jmp 0x1000facd
cmp eax, 3
jg 0x1000fa26
mov ebp, 1
jmp 0x1000facd
cmp eax, 7
jg 0x1000fa35
mov ebp, 2
jmp 0x1000facd
cmp eax, 0xf
jg 0x1000fa44
mov ebp, 3
jmp 0x1000facd
cmp eax, 0x1f
jg 0x1000fa50
mov ebp, 4
jmp 0x1000facd
cmp eax, 0x3f
jg 0x1000fa5c
mov ebp, 5
jmp 0x1000facd
cmp eax, 0x7f
jg 0x1000fa68
mov ebp, 6
jmp 0x1000facd
cmp eax, 0xff
jg 0x1000fa76
mov ebp, 7
jmp 0x1000facd
cmp eax, 0x1ff
jg 0x1000fa84
mov ebp, 8
jmp 0x1000facd
cmp eax, 0x3ff
jg 0x1000fa92
mov ebp, 9
jmp 0x1000facd
cmp eax, 0x7ff
jg 0x1000faa0
mov ebp, 0xa
jmp 0x1000facd
cmp eax, 0xfff
jg 0x1000faae
mov ebp, 0xb
jmp 0x1000facd
cmp eax, 0x1fff
jg 0x1000fabc
mov ebp, 0xc
jmp 0x1000facd
mov ebp, 0xd
cmp eax, 0x4257
jle 0x1000facd
mov ebp, 0xe
mov eax, dword [esp + 0x13c]
cmp dword [eax + 0x24], 0
je 0x1000fb69
cmp dword [esp + 0x140], 0
jne 0x1000fb61
mov eax, dword [esi + 0x9910]
shl ebp, 7
lea ecx, [ebp + ebp*2]
inc dword [eax + ecx + 0xc]
mov dword [esi + 0x798], 0
lea esi, [edi + 0x5d84]
mov dword [esi], 0
cmp dword [esi], 0
jne 0x1001000b
mov eax, dword [esp + 0x13c]
cmp dword [eax + 0x24], 0
jne 0x1000fbd2
mov ebp, dword [edi + 0x6900]
cmp dword [edi + 0x6904], ebp
jbe 0x1000fbd2
mov ecx, dword [ebp]
mov eax, ebp
add ebp, 4
push 1
push ecx
call fcn.10010820
add esp, 8
mov dword [esi], eax
test eax, eax
je 0x1000fb2f
mov eax, dword [esi]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x118
ret
mov eax, dword [esi + 0x9914]
jmp 0x1000faee
mov edx, ebp
xor ecx, ecx
shl edx, 4
mov eax, dword [esp + 0x138]
mov cl, byte [edx + eax]
push ecx
mov ecx, ebp
shl ecx, 6
mov edx, dword [ecx + eax + 0x100]
push edx
call fcn.10010820
add esp, 8
mov dword [esi + 0x5d84], eax
test eax, eax
je 0x1000fba7
lea esi, [edi + 0x5d84]
mov dword [esi], eax
jmp 0x1000fb0f
push ebp
mov eax, dword [esi + 0x798]
push eax
call fcn.10010820
add esp, 8
mov dword [esi + 0x5d84], eax
test eax, eax
je 0x1000faf9
lea esi, [edi + 0x5d84]
mov dword [esi], eax
jmp 0x1000fb0f
mov eax, dword [esp + 0x13c]
cmp dword [eax + 0x24], 0
je 0x1000fc05
cmp dword [esp + 0x140], 0
jne 0x1000fbf7
mov eax, dword [edi + 0x9910]
inc dword [eax + 0x168c]
jmp 0x1000fc75
mov eax, dword [edi + 0x9914]
inc dword [eax + 0x168c]
jmp 0x1000fc75
xor ecx, ecx
mov eax, dword [esp + 0x138]
mov cl, byte [eax + 0xf0]
mov edx, dword [eax + 0x4c0]
push ecx
push edx
call fcn.10010820
add esp, 8
mov dword [edi + 0x5d84], eax
test eax, eax
jne 0x1001001c
mov esi, dword [edi + 0x6904]
cmp ebx, esi
jbe 0x1000fc69
mov ecx, dword [esi]
mov eax, esi
add esi, 4
push 1
push ecx
call fcn.10010820
add esp, 8
mov dword [edi + 0x5d84], eax
test eax, eax
je 0x1000fc38
mov eax, dword [edi + 0x5d84]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x118
ret
mov ebx, dword [edi + 0x6900]
mov dword [edi + 0x6904], ebx
sub dword [esp + 0x10], 0x10
cmp dword [esp + 0x10], 0xf
ja 0x1000f9dc
cmp dword [esp + 0x1c], 1
jle 0x1000fc9e
mov eax, dword [esp + 0x1c]
add ebx, 4
and eax, 1
mov dword [ebx - 4], eax
jmp 0x1000fece
cmp dword [edi + 0x798], 0
je 0x1000fe86
mov eax, dword [0x1002b150]
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, eax
mov eax, dword [eax + 0x798]
cmp eax, 1
jne 0x1000fccb
xor ebp, ebp
jmp 0x1000fd81
cmp eax, 3
jg 0x1000fcda
mov ebp, 1
jmp 0x1000fd81
cmp eax, 7
jg 0x1000fce9
mov ebp, 2
jmp 0x1000fd81
cmp eax, 0xf
jg 0x1000fcf8
mov ebp, 3
jmp 0x1000fd81
cmp eax, 0x1f
jg 0x1000fd04
mov ebp, 4
jmp 0x1000fd81
cmp eax, 0x3f
jg 0x1000fd10
mov ebp, 5
jmp 0x1000fd81
cmp eax, 0x7f
jg 0x1000fd1c
mov ebp, 6
jmp 0x1000fd81
cmp eax, 0xff
jg 0x1000fd2a
mov ebp, 7
jmp 0x1000fd81
cmp eax, 0x1ff
jg 0x1000fd38
mov ebp, 8
jmp 0x1000fd81
cmp eax, 0x3ff
jg 0x1000fd46
mov ebp, 9
jmp 0x1000fd81
cmp eax, 0x7ff
jg 0x1000fd54
mov ebp, 0xa
jmp 0x1000fd81
cmp eax, 0xfff
jg 0x1000fd62
mov ebp, 0xb
jmp 0x1000fd81
cmp eax, 0x1fff
jg 0x1000fd70
mov ebp, 0xc
jmp 0x1000fd81
mov ebp, 0xd
cmp eax, 0x4257
jle 0x1000fd81
mov ebp, 0xe
mov eax, dword [esp + 0x13c]
cmp dword [eax + 0x24], 0
je 0x1000fe1d
cmp dword [esp + 0x140], 0
jne 0x1000fe15
mov eax, dword [esi + 0x9910]
shl ebp, 7
lea ecx, [ebp + ebp*2]
inc dword [eax + ecx + 0xc]
mov dword [esi + 0x798], 0
lea esi, [edi + 0x5d84]
mov dword [esi], 0
cmp dword [esi], 0
jne 0x1001002d
mov eax, dword [esp + 0x13c]
cmp dword [eax + 0x24], 0
jne 0x1000fe86
mov ebp, dword [edi + 0x6900]
cmp dword [edi + 0x6904], ebp
jbe 0x1000fe86
mov ecx, dword [ebp]
mov eax, ebp
add ebp, 4
push 1
push ecx
call fcn.10010820
add esp, 8
mov dword [esi], eax
test eax, eax
je 0x1000fde3
mov eax, dword [esi]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x118
ret
mov eax, dword [esi + 0x9914]
jmp 0x1000fda2
mov edx, ebp
xor ecx, ecx
shl edx, 4
mov eax, dword [esp + 0x138]
mov cl, byte [edx + eax]
push ecx
mov ecx, ebp
shl ecx, 6
mov edx, dword [ecx + eax + 0x100]
push edx
call fcn.10010820
add esp, 8
mov dword [esi + 0x5d84], eax
test eax, eax
je 0x1000fe5b
lea esi, [edi + 0x5d84]
mov dword [esi], eax
jmp 0x1000fdc3
push ebp
mov eax, dword [esi + 0x798]
push eax
call fcn.10010820
add esp, 8
mov dword [esi + 0x5d84], eax
test eax, eax
je 0x1000fdad
lea esi, [edi + 0x5d84]
mov dword [esi], eax
jmp 0x1000fdc3
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x13c]
shl edx, 4
inc edx
cmp dword [eax + 0x24], 0
je 0x1000ff78
cmp dword [esp + 0x140], 0
jne 0x1000ff66
mov eax, dword [edi + 0x9910]
lea ecx, [edx + edx*2]
inc dword [eax + ecx*8 + 0xc]
mov dword [esp + 0x10], 0
mov ebx, dword [edi + 0x6900]
mov dword [edi + 0x6904], ebx
mov eax, dword [esp + 0x13c]
inc dword [esp + 0x14]
add dword [esp + 0x24], 2
add dword [esp + 0x20], 4
mov ecx, dword [esp + 0x14]
cmp dword [eax + 0x18], ecx
jae 0x1000f9ba
cmp dword [esp + 0x10], 0
jne 0x1000ff03
cmp dword [edi + 0x6904], ebx
jae 0x10010224
inc dword [edi + 0x798]
mov dword [edi + 0x6904], ebx
cmp dword [edi + 0x798], 0x7fff
je 0x1000ff42
sub ebx, dword [edi + 0x6900]
and ebx, 0xfffffffc
cmp ebx, 0x1e40
jge 0x1000ff42
mov eax, dword [esp + 0x13c]
cmp dword [eax], 1
ja 0x1000ff42
cmp dword [eax + 0x14], 0
jne 0x10010224
mov eax, dword [0x1002b150]
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebx, eax
mov eax, dword [eax + 0x798]
cmp eax, 1
jne 0x10010060
xor esi, esi
jmp 0x10010116
mov ecx, dword [edi + 0x9914]
lea eax, [edx + edx*2]
inc dword [ecx + eax*8 + 0xc]
jmp 0x1000feba
xor ecx, ecx
mov eax, dword [esp + 0x138]
mov cl, byte [edx + eax]
mov edx, dword [eax + edx*4 + 0x100]
push ecx
push edx
call fcn.10010820
add esp, 8
mov dword [edi + 0x5d84], eax
test eax, eax
jne 0x1001003e
mov eax, dword [esp + 0x24]
push 1
cmp word [eax], 0
mov eax, 1
jl 0x1000ffb6
xor eax, eax
cmp eax, 1
sbb eax, eax
neg eax
push eax
call fcn.10010820
add esp, 8
mov dword [edi + 0x5d84], eax
test eax, eax
jne 0x1001004f
mov esi, dword [edi + 0x6904]
cmp ebx, esi
jbe 0x1000feba
mov ecx, dword [esi]
mov eax, esi
add esi, 4
push 1
push ecx
call fcn.10010820
add esp, 8
mov dword [edi + 0x5d84], eax
test eax, eax
je 0x1000ffd6
mov eax, dword [edi + 0x5d84]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x118
ret
mov eax, dword [edi + 0x5d84]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x118
ret
mov eax, dword [edi + 0x5d84]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x118
ret
mov eax, dword [edi + 0x5d84]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x118
ret
mov eax, dword [edi + 0x5d84]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x118
ret
mov eax, dword [edi + 0x5d84]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x118
ret
cmp eax, 3
jg 0x1001006f
mov esi, 1
jmp 0x10010116
cmp eax, 7
jg 0x1001007e
mov esi, 2
jmp 0x10010116
cmp eax, 0xf
jg 0x1001008d
mov esi, 3
jmp 0x10010116
cmp eax, 0x1f
jg 0x10010099
mov esi, 4
jmp 0x10010116
cmp eax, 0x3f
jg 0x100100a5
mov esi, 5
jmp 0x10010116
cmp eax, 0x7f
jg 0x100100b1
mov esi, 6
jmp 0x10010116
cmp eax, 0xff
jg 0x100100bf
mov esi, 7
jmp 0x10010116
cmp eax, 0x1ff
jg 0x100100cd
mov esi, 8
jmp 0x10010116
cmp eax, 0x3ff
jg 0x100100db
mov esi, 9
jmp 0x10010116
cmp eax, 0x7ff
jg 0x100100e9
mov esi, 0xa
jmp 0x10010116
cmp eax, 0xfff
jg 0x100100f7
mov esi, 0xb
jmp 0x10010116
cmp eax, 0x1fff
jg 0x10010105
mov esi, 0xc
jmp 0x10010116
mov esi, 0xd
cmp eax, 0x4257
jle 0x10010116
mov esi, 0xe
mov eax, dword [esp + 0x13c]
cmp dword [eax + 0x24], 0
je 0x100101af
cmp dword [esp + 0x140], 0
jne 0x100101a7
mov eax, dword [ebx + 0x9910]
shl esi, 7
lea ecx, [esi + esi*2]
inc dword [eax + ecx + 0xc]
lea esi, [edi + 0x5d84]
mov dword [ebx + 0x798], 0
mov dword [esi], 0
mov eax, dword [esi]
test eax, eax
jne 0x10010226
mov eax, dword [esp + 0x13c]
cmp dword [eax + 0x24], 0
jne 0x10010218
mov ebx, dword [edi + 0x6900]
cmp dword [edi + 0x6904], ebx
jbe 0x10010218
mov ecx, dword [ebx]
mov eax, ebx
add ebx, 4
push 1
push ecx
call fcn.10010820
add esp, 8
mov dword [esi], eax
test eax, eax
je 0x10010178
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x118
ret
mov eax, dword [ebx + 0x9914]
jmp 0x10010137
mov edx, esi
xor ecx, ecx
shl edx, 4
mov eax, dword [esp + 0x138]
mov cl, byte [edx + eax]
push ecx
mov ecx, esi
shl ecx, 6
mov edx, dword [ecx + eax + 0x100]
push edx
call fcn.10010820
add esp, 8
mov dword [ebx + 0x5d84], eax
test eax, eax
je 0x100101ed
lea esi, [edi + 0x5d84]
mov dword [esi], eax
jmp 0x10010157
push esi
mov eax, dword [ebx + 0x798]
push eax
call fcn.10010820
add esp, 8
mov dword [ebx + 0x5d84], eax
test eax, eax
je 0x10010141
lea esi, [edi + 0x5d84]
mov dword [esi], eax
jmp 0x10010157
mov eax, dword [edi + 0x6900]
mov dword [edi + 0x6904], eax
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x118
ret