Function at 0x10216a3b
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0xc]
sub esp, 0x20
dec eax
push ebx
push esi
mov esi, dword [ebp + 0x14]
push edi
mov edi, dword [ebp + 0x10]
mov ebx, ecx
mov ecx, dword [ebp + 8]
je 0x10217440
dec eax
je 0x10216ab4
dec eax
jne 0x1021745f
cmp dword [ecx + 0x14], 0xd
jne 0x1021745f
movzx eax, byte [esi + 8]
neg eax
sbb eax, eax
push 2
and eax, 2
push eax
push dword [ebx + 0x3c]
call fcn.10264158
cmp byte [esi + 8], 0
jne 0x1021745f
call fcn.10226831
push eax
mov ecx, ebx
call fcn.10217bec
test al, al
je 0x1021745f
push 3
push 0xb
push 0
mov ecx, ebx
call fcn.1021ffde
jmp 0x1021745f
mov eax, dword [ecx + 0x14]
xor ecx, ecx
cmp eax, 0x2f
jg 0x10216eb8
je 0x10217051
cmp eax, 0x22
jg 0x10216daa
je 0x10216d84
sub eax, 0xc
je 0x10216d1a
dec eax
dec eax
je 0x10216cf0
dec eax
je 0x10216bc8
dec eax
je 0x10216b8a
sub eax, 6
je 0x10216b09
sub eax, 5
je 0x10216d1a
jmp 0x1021745f
cmp byte [esi + 8], cl
je 0x1021745f
test byte [ebx + 0x79], 0x80
je 0x1021745f
mov esi, ebx
mov ecx, esi
call fcn.10204632
test al, al
jne 0x10216b42
push esi
call fcn.10214126
test eax, eax
je 0x10216b3b
mov esi, dword [eax + 0x8c]
jmp 0x10216b3e
mov esi, dword [esi + 4]
test esi, esi
jne 0x10216b1e
test esi, esi
je 0x1021745f
mov ecx, esi
call fcn.10204632
test al, al
je 0x1021745f
mov eax, dword [ebx]
mov edi, dword [0x10086394]
mov ecx, ebx
call dword [eax + 0x64]
mov edx, dword [eax]
push edi
mov ecx, eax
call dword [edx + 0x20]
mov byte [ebp - 0xc], al
push dword [ebp - 0xc]
push esi
push 0x8005
call fcn.10276026
push esi
call fcn.10277544
jmp 0x1021745f
mov eax, 0xf000
test dword [edi + 8], eax
je 0x10216ba1
test dword [esi + 8], eax
jne 0x10216ba1
push eax
mov ecx, ebx
call fcn.1021d8eb
mov esi, 0xf00
test dword [edi + 8], esi
je 0x1021745f
mov eax, dword [ebp + 0x14]
test dword [eax + 8], esi
jne 0x1021745f
push esi
mov ecx, ebx
call fcn.1021d8eb
jmp 0x1021745f
and dword [ebp - 0xc], ecx
test byte [ebx + 0x7b], 8
mov edi, 0x1000000
je 0x10216c5d
mov ecx, ebx
call fcn.102045d8
mov esi, eax
mov dword [ebp - 0xc], esi
test edi, esi
je 0x10216c2e
call fcn.10208911
test al, al
je 0x10216c2e
test byte [ebx + 0x7e], 2
je 0x10216c2e
push 0xfffff00
push esi
mov ecx, ebx
call fcn.1021f05a
test esi, 0x100
jne 0x1021745f
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 8]
test eax, eax
je 0x1021745f
push eax
push dword [ebx + 0x3c]
call fcn.102775ac
jmp 0x1021745f
test byte [ebx + 0x7b], 8
je 0x10216c5d
mov esi, 0xf00
test dword [ebp - 0xc], esi
je 0x10216c5d
call fcn.10208911
test al, al
je 0x10216c5d
test byte [ebx + 0x7e], 2
je 0x10216c5d
push esi
push dword [ebp - 0xc]
mov ecx, ebx
call fcn.1021f05a
jmp 0x1021745f
mov eax, dword [ebp + 0x14]
movzx eax, byte [eax + 8]
push eax
push dword [ebx + 0x3c]
call fcn.102775ac
test byte [ebx + 0x7b], 8
je 0x1021745f
test dword [ebp - 0xc], edi
je 0x1021745f
call fcn.1021338f
mov eax, dword [ebp + 0x14]
xor esi, esi
cmp dword [eax + 8], esi
mov ecx, ebx
jle 0x10216cab
push dword [0x1008311c]
call fcn.10216a28
push dword [0x100832dc]
mov ecx, ebx
call fcn.10216a28
jmp 0x10216cba
push esi
call fcn.102047b2
push 1
mov ecx, ebx
call fcn.1021e046
test byte [ebx + 0x7b], 8
je 0x10216ce6
test dword [ebp - 0xc], 0x4000000
je 0x10216ce6
mov eax, dword [0x1039a774]
push esi
mov dword [ebp - 0x18], eax
push 1
lea eax, [ebp - 0x20]
push eax
mov ecx, ebx
mov dword [ebp - 0x20], 0x14
call fcn.1021ccf2
call fcn.1021499c
jmp 0x1021745f
cmp word [esi + 4], 2
jne 0x10216d1a
cmp byte [esi + 8], cl
jne 0x10216d1a
call fcn.10226831
push eax
mov ecx, ebx
call fcn.10217bec
test al, al
je 0x10216d1a
push 3
push 0xb
push 0
mov ecx, ebx
call fcn.1021ffde
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x14]
cmp eax, 0xe
jne 0x10216d2a
mov al, byte [esi + 8]
jmp 0x10216d44
cmp eax, 0xc
mov al, byte [ebx + 0x7a]
jne 0x10216d3f
shr al, 4
and al, 1
mov byte [ebp - 0xc], al
mov eax, dword [esi + 8]
jmp 0x10216d4e
shr al, 4
and al, 1
mov byte [ebp - 0xc], al
movzx eax, byte [ebx + 0x79]
shr eax, 6
push eax
push dword [ebp - 0xc]
mov ecx, ebx
call fcn.1021d3aa
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x14]
cmp eax, 0xe
jne 0x10216d6e
push 0xa
push ebx
call fcn.10277567
jmp 0x10216d77
cmp eax, 0xc
jne 0x1021745f
push 9
push ebx
call fcn.10277567
jmp 0x1021745f
cmp byte [esi + 8], cl
je 0x1021745f
test byte [ebx + 0x7a], 2
je 0x1021745f
push 0
push ebx
push 0x8005
call fcn.10276026
push ebx
jmp 0x10216b80
sub eax, 0x27
je 0x10216e95
dec eax
je 0x10216e72
dec eax
je 0x10216e4f
dec eax
je 0x10216e2e
dec eax
je 0x10216e03
dec eax
jne 0x1021745f
cmp word [esi + 4], 0xe
jne 0x1021745f
movzx eax, word [esi + 8]
push eax
mov ecx, ebx
call fcn.1021f2eb
test eax, eax
je 0x10216df1
push ebx
mov ecx, eax
call fcn.10204ad3
push 0x12
push ebx
call fcn.10277567
push 5
push ebx
call fcn.10277567
jmp 0x10216e1f
mov ecx, ebx
call fcn.10204632
test al, al
je 0x1021745f
push 0
push ebx
push 0x8012
call fcn.10276026
push 6
push ebx
call fcn.10277567
push 7
jmp 0x10216d79
mov ecx, ebx
call fcn.10204632
test al, al
je 0x1021745f
push 0
push ebx
push 0x8011
call fcn.10276026
jmp 0x1021745f
mov ecx, ebx
call fcn.10204632
test al, al
je 0x1021745f
push 0
push ebx
push 0x800e
call fcn.10276026
push 0x2e
jmp 0x10216d79
mov ecx, ebx
call fcn.10204632
test al, al
je 0x1021745f
push 0
push ebx
push 0x800d
call fcn.10276026
push 0xd
jmp 0x10216d79
mov ecx, ebx
call fcn.10204632
test al, al
je 0x1021745f
push 0
push ebx
push 0x800c
call fcn.10276026
push 5
jmp 0x10216d79
cmp eax, 0x3c
jg 0x1021726a
je 0x102173a8
sub eax, 0x30
je 0x10217031
dec eax
dec eax
je 0x10216fb7
dec eax
je 0x10216f47
sub eax, 3
je 0x10216f2d
sub eax, 3
je 0x10217051
dec eax
jne 0x1021745f
test byte [ebx + 0x7b], 1
je 0x1021745f
test byte [ebx + 0x7a], 0x40
je 0x10217051
cmp dword [edi + 8], ecx
jne 0x1021745f
cmp dword [edi + 0xc], ecx
jne 0x1021745f
cmp dword [edi + 0x10], ecx
jne 0x1021745f
cmp dword [edi + 0x14], ecx
je 0x10217051
jmp 0x1021745f
mov eax, dword [edi + 8]
xor eax, dword [esi + 8]
test al, 1
je 0x1021745f
mov ecx, ebx
call fcn.1021c54d
jmp 0x1021745f
cmp esi, dword [0x1007c0d8]
jne 0x10216f93
mov eax, dword [ebx + 4]
or byte [ebx + 0x81], 4
test eax, eax
je 0x10216f6a
test byte [eax + 0x81], 4
jne 0x1021745f
call fcn.1021c22b
test al, al
je 0x1021745f
push 0
push 1
push dword [0x103a5d34]
push dword [0x10083b5c]
mov ecx, ebx
call fcn.10215e34
jmp 0x1021745f
lea esi, [ebx + 0x81]
test byte [esi], 4
je 0x10216faf
push 0
push 1
push dword [0x10083b5c]
mov ecx, ebx
call fcn.102160c8
and byte [esi], 0xfb
jmp 0x1021745f
movzx eax, word [esi + 4]
mov byte [ebp - 2], 1
cmp ax, 0xa
jne 0x10216fe2
cmp byte [esi + 8], 2
jne 0x10217010
push ecx
push ecx
add esi, 9
mov edi, esp
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
call fcn.1026bd48
shr eax, 0x18
cmp al, 0xff
je 0x10217010
jmp 0x1021700c
cmp ax, 0xb
jne 0x10217010
mov ecx, esi
movzx esi, byte [ecx + 0x12]
shr esi, 3
and esi, 7
call fcn.102114bc
test al, al
jne 0x1021700c
cmp esi, 1
je 0x1021700c
cmp esi, 2
je 0x1021700c
cmp esi, 6
jne 0x10217010
mov byte [ebp - 2], 0
movzx ecx, byte [ebp - 2]
neg ecx
mov eax, 0x800
sbb ecx, ecx
push eax
and ecx, eax
push ecx
push dword [ebx + 0x3c]
call fcn.10264158
mov edi, dword [ebp + 0x10]
mov esi, dword [ebp + 0x14]
jmp 0x10217051
mov ecx, dword [esi + 8]
mov eax, dword [edi + 8]
mov edx, ecx
xor edx, eax
test dl, 0x4f
je 0x1021745f
test al, 0x40
je 0x10217051
test cl, 0x40
jne 0x1021745f
xor edx, edx
test byte [ebx + 0x7a], 0x20
mov dword [ebp - 0xc], edx
mov byte [ebp - 2], dl
mov byte [ebp - 1], dl
je 0x1021709a
mov eax, dword [ebp + 8]
cmp eax, dword [0x1008331c]
jne 0x1021745f
cmp dword [edi + 8], edx
jne 0x1021745f
cmp dword [edi + 0xc], edx
jne 0x1021745f
cmp dword [edi + 0x10], edx
jne 0x1021745f
cmp dword [edi + 0x14], edx
jne 0x1021745f
jmp 0x10217222
test byte [ebx + 0x7b], 1
je 0x10217184
mov eax, dword [ebp + 8]
mov dword [ebp - 8], edx
cmp eax, dword [0x10083b1c]
jne 0x102170e0
movzx eax, word [edi + 4]
cmp ax, word [esi + 4]
jne 0x102170d5
cmp ax, 6
jne 0x1021745f
mov ecx, edi
call fcn.102114bc
test al, al
je 0x1021745f
push esi
lea ecx, [ebp - 8]
call fcn.10208ce0
xor edx, edx
test byte [ebx + 0x7a], 0x40
je 0x10217104
mov byte [ebp - 2], 1
mov byte [ebp - 1], 1
cmp dword [ebp - 8], edx
je 0x1021722a
mov ecx, dword [ebp - 8]
call sym.osetup.dll_public:_void___thiscall_NetUI::BaseValue::Release_void_
jmp 0x1021722a
mov eax, dword [ebp + 8]
cmp eax, dword [0x10083d4c]
jne 0x10217114
mov eax, dword [esi + 8]
jmp 0x1021711d
mov ecx, ebx
call fcn.102045aa
xor edx, edx
mov ecx, eax
and ecx, 0xc
test al, 3
jne 0x1021712c
test byte [ebx + 0x7b], 4
je 0x10217130
mov byte [ebp - 2], 1
cmp ecx, edx
jne 0x1021713a
test byte [ebx + 0x7b], 4
je 0x1021713e
mov byte [ebp - 1], 1
cmp byte [ebp - 2], 0
je 0x1021714a
cmp byte [ebp - 1], 0
jne 0x102170ee
cmp dword [ebp - 8], edx
jne 0x10217169
push 0
push 2
push dword [0x10083b1c]
mov ecx, ebx
call fcn.1021511f
push eax
lea ecx, [ebp - 8]
call fcn.101ff9c6
mov eax, dword [ebp - 8]
movzx eax, word [eax + 4]
cmp ax, 0xb
je 0x10217199
cmp ax, 0xa
je 0x10217199
mov ecx, dword [ebp - 8]
call sym.osetup.dll_public:_void___thiscall_NetUI::BaseValue::Release_void_
mov eax, dword [0x10083afc]
cmp dword [ebp + 8], eax
jne 0x102171a6
push esi
lea ecx, [ebp - 0xc]
call fcn.10208ce0
jmp 0x102171bb
mov byte [ebp - 2], 1
mov byte [ebp - 1], 1
jmp 0x102170f7
push 0
push 2
push eax
mov ecx, ebx
call fcn.1021511f
push eax
lea ecx, [ebp - 0xc]
call fcn.101ff9c6
mov ecx, dword [ebp - 0xc]
movzx eax, word [ecx + 4]
cmp ax, 0xa
jne 0x102171ce
cmp byte [ecx + 8], 2
jne 0x10217222
cmp ax, 0xb
jne 0x1021722a
mov ecx, dword [ebp - 0xc]
call fcn.102114bc
test al, al
jne 0x1021722a
mov eax, dword [ebp - 0xc]
movzx ecx, byte [eax + 0x12]
mov eax, ecx
and eax, 7
cmp eax, 2
je 0x10217222
cmp eax, 6
je 0x10217222
cmp eax, 7
je 0x10217222
test eax, eax
je 0x10217209
cmp eax, 3
je 0x10217209
cmp eax, 5
jne 0x1021722a
shr ecx, 3
and ecx, 7
cmp ecx, 4
je 0x10217222
mov eax, dword [ebp - 0xc]
test byte [eax + 0x13], 0x10
jne 0x10217222
cmp ecx, 5
jne 0x1021722a
mov byte [ebp - 1], 1
mov byte [ebp - 2], 1
movzx eax, byte [ebp - 1]
movzx ecx, byte [ebp - 2]
neg eax
sbb eax, eax
and eax, 0x400
neg ecx
sbb ecx, ecx
and ecx, 0x200
push 0x600
or eax, ecx
push eax
push dword [ebx + 0x3c]
call fcn.10264158
mov ecx, dword [ebp - 0xc]
test ecx, ecx
je 0x1021745f
call sym.osetup.dll_public:_void___thiscall_NetUI::BaseValue::Release_void_
jmp 0x1021745f
cmp eax, 0x48
je 0x1021740c
cmp eax, 0x87
jle 0x1021745f
cmp eax, 0x89
jle 0x102173a8
cmp eax, 0x8b
je 0x102173a8
cmp eax, 0x8e
je 0x10217351
cmp eax, 0x8f
je 0x10217320
cmp eax, 0x92
jne 0x1021745f
mov eax, dword [ebp + 0x14]
xor esi, esi
cmp byte [eax + 8], cl
je 0x102172fb
test byte [ebx + 0x79], 4
mov eax, dword [0x1039a690]
jne 0x102172cb
mov eax, dword [0x1039a694]
push esi
push 1
push eax
push dword [0x1008493c]
mov ecx, ebx
call fcn.10215e34
test byte [ebx + 0x79], 8
mov eax, dword [0x1039a690]
jne 0x102172ec
mov eax, dword [0x1039a694]
push esi
push 1
push eax
push dword [0x1008491c]
jmp 0x10216f87
push esi
push 1
push dword [0x1008493c]
mov ecx, ebx
call fcn.102160c8
push esi
push 1
push dword [0x1008491c]
mov ecx, ebx
call fcn.102160c8
jmp 0x1021745f
push 0
mov ecx, ebx
call fcn.1021dd93
test eax, eax
je 0x1021745f
cmp dword [edi + 8], 0
je 0x1021745f
cmp dword [esi + 8], 0
je 0x1021745f
fld dword [eax + 8]
push ecx
fstp dword [esp]
push dword [eax + 4]
jmp 0x1021739c
mov ecx, ebx
call fcn.1020437e
test eax, eax
je 0x1021745f
cmp dword [edi + 8], 0xfffffffe
je 0x1021745f
push 0
mov ecx, ebx
call fcn.1021dd93
test eax, eax
je 0x10217393
cmp dword [eax], 0
je 0x10217393
mov ecx, dword [esi + 8]
cmp ecx, dword [eax + 4]
jne 0x10217393
fld dword [eax + 8]
fld1
fsubrp st(1)
fstp dword [ebp - 0xc]
fld dword [ebp - 0xc]
jmp 0x10217395
fldz
push ecx
fstp dword [esp]
push dword [edi + 8]
mov ecx, ebx
call fcn.1021f1c1
jmp 0x1021745f
and dword [ebp - 0xc], ecx
lea eax, [ebp - 0xc]
push eax
mov ecx, ebx
call fcn.102042c2
mov ecx, ebx
call fcn.1020448c
mov esi, dword [ebp - 0xc]
cmp eax, 3
je 0x102173f6
mov ecx, ebx
call fcn.102042e0
test eax, eax
jg 0x102173f6
mov ecx, ebx
call fcn.1020430c
test eax, eax
jg 0x102173f6
push esi
call fcn.101ff986
test al, al
jne 0x102173f2
lea eax, [esi + 8]
push eax
call fcn.10210605
test eax, eax
jne 0x102173f6
xor al, al
jmp 0x102173f9
xor eax, eax
inc eax
push eax
mov ecx, ebx
call fcn.1021deb1
test esi, esi
je 0x1021745f
mov ecx, esi
jmp 0x10217260
mov al, byte [ebx + 0x79]
and al, 3
cmp al, 1
jne 0x1021745f
push dword [0x1039a750]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, dword [eax + 8]
push 1
push 0
push ebx
lea ecx, [esi + 0x64]
call fcn.10283904
push 1
push 0
push ebx
lea ecx, [esi + 0x58]
call fcn.10283904
jmp 0x1021745f
mov eax, dword [ecx + 0x14]
dec eax
je 0x10217452
sub eax, 0x48
jne 0x1021745f
mov eax, dword [ebx + 4]
push eax
push eax
jmp 0x10217458
push dword [edi + 8]
push dword [esi + 8]
mov ecx, ebx
call fcn.10215efa
push dword [ebp + 0x14]
mov ecx, ebx
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.1021927a
pop edi
pop esi
pop ebx
leave
ret 0x10