Function at 0x10004e5b
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
lea ebp, [esp - 0x7818]
mov eax, 0x7898
call fcn.1001be50
mov eax, dword [0x100307e8]
xor eax, ebp
mov dword [ebp + 0x7814], eax
push ebx
push esi
push edi
mov esi, ecx
push 0x10020fcc
mov dword [ebp - 0x14], esi
call fcn.1000ec37
push esi
push str.CAxControl__p_::FinalConstruct
call fcn.10006397
add esp, 0xc
call dword [sym.imp.kernel32.dll_GetCurrentThreadId]
xor ebx, ebx
mov dword [esi + 0x24c], eax
mov dword [esi + 0xa8], ebx
mov dword [esi + 0x238], ebx
mov dword [esi + 0x23c], ebx
mov dword [esi + 0x240], ebx
mov dword [esi + 0xcc], 1
mov dword [esi + 0xd0], ebx
mov dword [esi + 0xe0], ebx
call fcn.1000ec37
test eax, eax
je 0x1000550f
mov esi, 0x7ff
push esi
lea eax, [ebp + 0x5015]
push ebx
push eax
mov byte [ebp + 0x5014], bl
call sub.msvcr100.dll_memset
push esi
lea eax, [ebp + 0x3015]
push ebx
push eax
mov byte [ebp + 0x3014], bl
call sub.msvcr100.dll_memset
push esi
lea eax, [ebp + 0x4815]
push ebx
push eax
mov byte [ebp + 0x4814], bl
call sub.msvcr100.dll_memset
push esi
lea eax, [ebp + 0x7015]
push ebx
push eax
mov byte [ebp + 0x7014], bl
call sub.msvcr100.dll_memset
push esi
lea eax, [ebp + 0x2015]
push ebx
push eax
mov byte [ebp + 0x2014], bl
call sub.msvcr100.dll_memset
push esi
lea eax, [ebp + 0x6015]
push ebx
push eax
mov byte [ebp + 0x6014], bl
call sub.msvcr100.dll_memset
add esp, 0x48
lea ebx, [esi + 1]
lea eax, [ebp + 0x5014]
push ebx
push eax
call fcn.10015ba8
lea eax, [ebp + 0x3014]
push ebx
push eax
call fcn.10015c30
lea eax, [ebp + 0x4814]
push ebx
push eax
call fcn.10015bec
push ebx
lea eax, [ebp + 0x7014]
push eax
lea eax, [ebp + 0x5014]
push eax
call fcn.1000ec37
push ebx
lea eax, [ebp + 0x2014]
push eax
lea eax, [ebp + 0x3014]
push eax
call fcn.1000ec37
push ebx
lea eax, [ebp + 0x6014]
push eax
lea eax, [ebp + 0x4814]
push eax
call fcn.1000ec37
mov edi, dword [sym.imp.msvcr100.dll__mbscmp]
lea eax, [ebp + 0x7014]
push 0x10020ff4
push eax
call edi
add esp, 0x44
test eax, eax
jne 0x10004fed
mov dword [ebp - 0x44], 1
jmp 0x10005027
lea eax, [ebp + 0x7014]
push 0x10020ffc
push eax
call edi
pop ecx
pop ecx
test eax, eax
jne 0x1000500a
mov dword [ebp - 0x44], 2
jmp 0x10005027
lea eax, [ebp + 0x7014]
push 0x10021004
push eax
call edi
neg eax
sbb eax, eax
and eax, 0xfffffffd
pop ecx
add eax, 3
pop ecx
mov dword [ebp - 0x44], eax
lea eax, [ebp + 0x2014]
push 0x1002100c
push eax
call edi
neg eax
sbb edi, edi
and dword [ebp - 0x1c], 0
and dword [ebp - 0x18], 0
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 0x6014]
push 0x10021014
inc edi
push eax
mov dword [ebp - 0x40], edi
call dword [sym.imp.msvcr100.dll_sscanf]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x18]
add esp, 0x14
cmp dword [ebp - 0x44], 0
mov dword [ebp - 0x38], eax
jne 0x1000515b
push ebx
lea eax, [ebp + 0x7014]
push eax
lea eax, [ebp + 0x5014]
push eax
call fcn.10015d22
mov edi, dword [sym.imp.msvcr100.dll__mbscmp]
lea eax, [ebp + 0x7014]
push 0x1002101c
push eax
call edi
add esp, 0x14
test eax, eax
jne 0x100050ac
mov dword [ebp - 0x44], 1
jmp 0x100050e6
lea eax, [ebp + 0x7014]
push 0x10021024
push eax
call edi
pop ecx
pop ecx
test eax, eax
jne 0x100050c9
mov dword [ebp - 0x44], 2
jmp 0x100050e6
lea eax, [ebp + 0x7014]
push 0x1002102c
push eax
call edi
neg eax
sbb eax, eax
and eax, 0xfffffffd
pop ecx
add eax, 3
pop ecx
mov dword [ebp - 0x44], eax
push ebx
lea eax, [ebp + 0x2014]
push eax
lea eax, [ebp + 0x3014]
push eax
call fcn.10015d22
lea eax, [ebp + 0x2014]
push 0x10021034
push eax
call edi
neg eax
sbb edi, edi
push ebx
lea eax, [ebp + 0x6014]
push eax
lea eax, [ebp + 0x4814]
inc edi
push eax
mov dword [ebp - 0x40], edi
call fcn.10015d22
and dword [ebp - 0x4c], 0
and dword [ebp - 0x48], 0
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp + 0x6014]
push 0x1002103c
push eax
call dword [sym.imp.msvcr100.dll_sscanf]
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x48]
add esp, 0x2c
cmp dword [ebp - 0x44], 0
mov dword [ebp - 0x38], eax
je 0x10005239
test edi, edi
jne 0x100054ed
mov eax, dword [ebp - 0x3c]
and eax, dword [ebp - 0x38]
cmp eax, 0xffffffff
je 0x100054ed
push edi
call dword [sym.imp.msvcr100.dll__time64]
push esi
mov dword [ebp - 0x1c], eax
lea eax, [ebp + 0x815]
push edi
push eax
mov dword [ebp - 0x18], edx
mov byte [ebp + 0x814], 0
call sub.msvcr100.dll_memset
push esi
lea eax, [ebp + 0x15]
push edi
push eax
mov byte [ebp + 0x14], 0
call sub.msvcr100.dll_memset
lea eax, [ebp + 0x14]
push ebx
push eax
call fcn.10015c74
push ebx
lea eax, [ebp + 0x814]
push eax
lea eax, [ebp + 0x14]
push eax
call fcn.10015d22
add esp, 0x30
test eax, eax
je 0x100051ec
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp + 0x814]
push 0x10021044
push eax
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x20], edi
call dword [sym.imp.msvcr100.dll_sscanf]
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x20]
add esp, 0xc
jmp 0x100051ff
xor eax, eax
cmp dword [ebp - 0x44], 3
setne al
dec eax
and eax, 0x93a76
add eax, 0xa
cdq
mov ecx, dword [ebp - 0x3c]
sub ecx, 0x15180
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x38]
sbb ecx, edi
cmp dword [ebp - 0x18], ecx
jl 0x10005239
jg 0x1000521f
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x24]
jb 0x10005239
add eax, dword [ebp - 0x3c]
adc edx, dword [ebp - 0x38]
cmp dword [ebp - 0x18], edx
jl 0x100054ed
jg 0x10005239
cmp dword [ebp - 0x1c], eax
jbe 0x100054ed
push esi
lea eax, [ebp + 0x1015]
push 0
push eax
mov byte [ebp + 0x1014], 0
call sub.msvcr100.dll_memset
push ebx
lea eax, [ebp + 0x1014]
push eax
push str.deployment.expired.version
call fcn.10015d22
lea eax, [ebp + 0x1014]
push 0x10021068
push eax
call dword [sym.imp.msvcr100.dll__mbscmp]
add esp, 0x20
neg eax
sbb esi, esi
inc esi
call fcn.1000ec37
test eax, eax
je 0x100052de
push 9
pop ecx
xor eax, eax
lea edi, [ebp - 0x10]
rep stosd dword es:[edi], eax
lea eax, [ebp + 4]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp]
push eax
push str._d__d__d
push str.05_17_2020
call dword [sym.imp.msvcr100.dll_sscanf]
sub dword [ebp + 4], 0x76c
dec dword [ebp]
push 0
call dword [sym.imp.msvcr100.dll__time64]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x10]
push eax
mov edi, edx
call dword [sym.imp.msvcr100.dll__mktime64]
add esp, 0x1c
cmp edi, edx
jl 0x100052de
jg 0x100052d9
cmp dword [ebp - 0x24], eax
jbe 0x100052de
xor eax, eax
inc eax
jmp 0x100052e0
xor eax, eax
test esi, esi
jne 0x100052ec
test eax, eax
je 0x100054ed
lea eax, [ebp - 0x80]
push eax
call fcn.10017208
pop ecx
push 8
pop ecx
mov esi, eax
lea edi, [ebp - 0x44]
rep movsd dword es:[edi], dword [esi]
xor esi, esi
cmp dword [ebp - 0x2c], esi
jne 0x100054c3
mov edi, 0x7ff
push edi
lea eax, [ebp + 0x6815]
push esi
push eax
mov byte [ebp + 0x6814], 0
call sub.msvcr100.dll_memset
push edi
lea eax, [ebp + 0x3815]
push esi
push eax
mov byte [ebp + 0x3814], 0
call sub.msvcr100.dll_memset
lea eax, [ebp + 0x3814]
push ebx
push eax
call fcn.10015ba8
mov eax, dword [ebp - 0x44]
mov esi, dword [sym.imp.msvcr100.dll__mbsnbcpy_s]
add esp, 0x20
dec eax
je 0x1000536e
dec eax
je 0x10005365
dec eax
jne 0x10005382
push 5
push 0x1002109c
jmp 0x10005375
push 5
push 0x10021094
jmp 0x10005375
push 6
push 0x1002108c
lea eax, [ebp + 0x6814]
push ebx
push eax
call esi
add esp, 0x10
lea eax, [ebp + 0x6814]
push eax
lea eax, [ebp + 0x3814]
push eax
call fcn.10015fa9
pop ecx
pop ecx
test eax, eax
jne 0x100053b0
lea eax, [ebp + 0x6814]
push eax
lea eax, [ebp + 0x3814]
push eax
call fcn.1000ec37
pop ecx
pop ecx
push edi
lea eax, [ebp + 0x2815]
push 0
push eax
mov byte [ebp + 0x2814], 0
call sub.msvcr100.dll_memset
push edi
lea eax, [ebp + 0x1815]
push 0
push eax
mov byte [ebp + 0x1814], 0
call sub.msvcr100.dll_memset
push 0
call dword [sym.imp.msvcr100.dll__time64]
push edx
push eax
push 0x100210a4
push ebx
lea eax, [ebp + 0x2814]
push ebx
push eax
call dword [sym.imp.msvcr100.dll__snprintf_s]
lea eax, [ebp + 0x1814]
push ebx
push eax
call fcn.10015bec
lea eax, [ebp + 0x2814]
push eax
lea eax, [ebp + 0x1814]
push eax
call fcn.10015fa9
add esp, 0x44
test eax, eax
jne 0x10005436
lea eax, [ebp + 0x2814]
push eax
lea eax, [ebp + 0x1814]
push eax
call fcn.1000ec37
pop ecx
pop ecx
push edi
lea eax, [ebp + 0x5815]
push 0
push eax
mov byte [ebp + 0x5814], 0
call sub.msvcr100.dll_memset
push edi
lea eax, [ebp + 0x4015]
push 0
push eax
mov byte [ebp + 0x4014], 0
call sub.msvcr100.dll_memset
lea eax, [ebp + 0x4014]
push ebx
push eax
call fcn.10015c30
add esp, 0x20
cmp dword [ebp - 0x40], 1
lea eax, [ebp + 0x5814]
jne 0x10005487
push 4
push 0x100210ac
jmp 0x1000548e
push 5
push 0x100210b4
push ebx
push eax
call esi
add esp, 0x10
lea eax, [ebp + 0x5814]
push eax
lea eax, [ebp + 0x4014]
push eax
call fcn.10015fa9
pop ecx
pop ecx
test eax, eax
jne 0x100054c3
lea eax, [ebp + 0x5814]
push eax
lea eax, [ebp + 0x4014]
push eax
call fcn.1000ec37
pop ecx
pop ecx
cmp dword [ebp - 0x44], 1
jne 0x100054ed
call fcn.1001628d
test eax, eax
mov eax, dword [ebp - 0x14]
je 0x100054e3
mov dword [eax + 0xd0], 2
mov esi, eax
jmp 0x1000550d
mov dword [eax + 0xd0], 1
push 2
pop eax
cmp dword [ebp - 0x44], eax
jne 0x10005502
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 0xd0], eax
mov esi, ecx
jmp 0x1000550d
push 3
pop eax
cmp dword [ebp - 0x44], eax
je 0x100054f5
mov esi, dword [ebp - 0x14]
xor ebx, ebx
mov eax, dword [esi + 0xd0]
cmp eax, 1
je 0x100055c4
cmp eax, 2
jne 0x1000552d
mov eax, 0x80004005
jmp 0x100055c6
mov eax, dword [0x1002e010]
mov dword [ebp - 0x18], ebx
cmp eax, 0xffffffff
je 0x10005544
push eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov dword [ebp - 0x18], eax
push 0x104
lea eax, [esi + 0x130]
push ebx
push eax
call sub.msvcr100.dll_memset
mov eax, dword [ebp - 0x18]
add esp, 0xc
cmp eax, ebx
je 0x10005599
cmp byte [eax], 0
je 0x1000558f
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10005568
sub eax, edi
mov edi, eax
push edi
push dword [ebp - 0x18]
lea eax, [esi + 0x130]
push eax
call dword [sym.imp.msvcr100.dll_strncpy]
add esp, 0xc
mov byte [esi + edi + 0x130], 0
push dword [ebp - 0x18]
call dword [sym.imp.msvcr100.dll_free]
pop ecx
push ebx
push dword [0x1002e010]
call dword [sym.imp.kernel32.dll_TlsSetValue]
mov ecx, dword [ebp - 0x14]
xor eax, eax
mov dword [ebp - 0x60], 1
mov dword [ebp - 0x5c], ebx
lea edi, [ebp - 0x58]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x60]
push eax
call fcn.10004cb2
xor eax, eax
mov ecx, dword [ebp + 0x7814]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1001ba56
add ebp, 0x7818
leave
ret