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

Disassembly:
mov eax, 0x789c
call fcn.1001a290
mov eax, dword [0x1003e4c0]
xor eax, esp
mov dword [esp + 0x7898], eax
push ebx
push ebp
push esi
push edi
push 0x100214fc
mov ebp, ecx
call fcn.1001ba36
push ebp
push str.CAxControl__p_::FinalConstruct
call fcn.10009942
add esp, 0xc
call dword [sym.imp.kernel32.dll_GetCurrentThreadId]
xor ebx, ebx
mov dword [ebp + 0x23c], eax
mov dword [ebp + 0xa8], ebx
mov dword [ebp + 0x228], ebx
mov dword [ebp + 0x22c], ebx
mov dword [ebp + 0x230], ebx
mov dword [ebp + 0xc8], 1
mov dword [ebp + 0xcc], ebx
mov dword [ebp + 0xdc], ebx
call fcn.1001ba36
test eax, eax
je 0x10002417
mov esi, 0x800
lea eax, [esp + 0x28a8]
push esi
push ebx
push eax
call sub.VCRUNTIME140.dll_memset
push esi
lea eax, [esp + 0x30b8]
push ebx
push eax
call sub.VCRUNTIME140.dll_memset
push esi
lea eax, [esp + 0x38c4]
push ebx
push eax
call sub.VCRUNTIME140.dll_memset
push esi
lea eax, [esp + 0xd0]
push ebx
push eax
call sub.VCRUNTIME140.dll_memset
push esi
lea eax, [esp + 0x10dc]
push ebx
push eax
call sub.VCRUNTIME140.dll_memset
push esi
lea eax, [esp + 0x18e8]
push ebx
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0x48
lea eax, [esp + 0x28a8]
push esi
push eax
call fcn.100160d9
lea eax, [esp + 0x30b0]
push esi
push eax
call fcn.10016161
lea eax, [esp + 0x38b8]
push esi
push eax
call fcn.1001611d
push esi
lea eax, [esp + 0xc4]
push eax
lea eax, [esp + 0x28c8]
push eax
call fcn.1001ba36
push esi
lea eax, [esp + 0x10d0]
push eax
lea eax, [esp + 0x30d4]
push eax
call fcn.1001ba36
push esi
lea eax, [esp + 0x18dc]
push eax
lea eax, [esp + 0x38e0]
push eax
call fcn.1001ba36
mov edi, dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbscmp]
lea eax, [esp + 0xe4]
push 0x10021524
push eax
call edi
add esp, 0x44
test eax, eax
jne 0x10001e8c
xor esi, esi
inc ebx
inc esi
jmp 0x10001ec7
lea eax, [esp + 0xa8]
push 0x1002152c
push eax
call edi
pop ecx
pop ecx
test eax, eax
jne 0x10001ea8
push 2
pop ebx
push ebx
pop esi
jmp 0x10001ec7
lea eax, [esp + 0xa8]
push 0x10021534
push eax
call edi
mov ebx, eax
neg ebx
pop ecx
sbb ebx, ebx
and ebx, 0xfffffffd
add ebx, 3
pop ecx
mov esi, ebx
lea eax, [esp + 0x10a8]
mov dword [esp + 0x30], ebx
push 0x1002153c
push eax
call edi
neg eax
xorps xmm0, xmm0
movlpd qword [esp + 0x18], xmm0
sbb edi, edi
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x18b4]
inc edi
push 0x10021544
push eax
call fcn.100099e7
mov eax, dword [esp + 0x24]
add esp, 0x14
mov edx, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], edx
test esi, esi
jne 0x10002010
push 0x800
lea eax, [esp + 0xac]
push eax
lea eax, [esp + 0x28b0]
push eax
call fcn.10015e01
mov edi, dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbscmp]
lea eax, [esp + 0xb4]
push 0x1002154c
push eax
call edi
add esp, 0x14
test eax, eax
jne 0x10001f56
xor ebx, ebx
inc ebx
inc esi
jmp 0x10001f91
lea eax, [esp + 0xa8]
push 0x10021554
push eax
call edi
pop ecx
pop ecx
test eax, eax
jne 0x10001f72
push 2
pop ebx
push ebx
pop esi
jmp 0x10001f91
lea eax, [esp + 0xa8]
push 0x1002155c
push eax
call edi
mov ebx, eax
neg ebx
pop ecx
sbb ebx, ebx
and ebx, 0xfffffffd
add ebx, 3
pop ecx
mov esi, ebx
push 0x800
lea eax, [esp + 0x10ac]
mov dword [esp + 0x34], ebx
push eax
lea eax, [esp + 0x30b0]
push eax
call fcn.10015e01
lea eax, [esp + 0x10b4]
push 0x10021564
push eax
call edi
neg eax
push 0x800
sbb edi, edi
lea eax, [esp + 0x18c0]
push eax
lea eax, [esp + 0x38c4]
inc edi
push eax
call fcn.10015e01
lea eax, [esp + 0x3c]
xorps xmm0, xmm0
push eax
lea eax, [esp + 0x18cc]
movlpd qword [esp + 0x40], xmm0
push 0x1002156c
push eax
call fcn.100099e7
mov eax, dword [esp + 0x48]
add esp, 0x2c
mov edx, dword [esp + 0x20]
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], edx
xor ecx, ecx
test esi, esi
je 0x10002110
test edi, edi
jne 0x10002110
and eax, edx
cmp eax, 0xffffffff
je 0x10002110
push edi
call dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x68ac]
mov dword [esp], 0x800
push edi
push eax
mov dword [esp + 0x1c], edx
call sub.VCRUNTIME140.dll_memset
push 0x800
lea eax, [esp + 0x60b8]
push edi
push eax
call sub.VCRUNTIME140.dll_memset
lea eax, [esp + 0x60c0]
push 0x800
push eax
call fcn.100161a5
push 0x800
lea eax, [esp + 0x68cc]
push eax
lea eax, [esp + 0x60d0]
push eax
call fcn.10015e01
add esp, 0x2c
test eax, eax
je 0x100020c4
lea eax, [esp + 0x28]
xorps xmm0, xmm0
push eax
lea eax, [esp + 0x68ac]
movlpd qword [esp + 0x2c], xmm0
push 0x10021574
push eax
call fcn.100099e7
mov ecx, dword [esp + 0x34]
add esp, 0xc
mov edx, dword [esp + 0x2c]
jmp 0x100020d4
push 0xa
cmp esi, 3
mov eax, 0x93a80
pop ecx
cmove ecx, eax
mov edx, edi
mov edi, dword [esp + 0x24]
mov esi, edi
mov eax, dword [esp + 0x18]
sub esi, 0x15180
sbb eax, 0
cmp dword [esp + 0x10], eax
jl 0x1000210d
mov eax, dword [esp + 0x1c]
jg 0x100020f7
cmp eax, esi
jb 0x1000210d
add ecx, edi
adc edx, dword [esp + 0x18]
cmp dword [esp + 0x10], edx
jg 0x1000210d
jl 0x10002109
cmp eax, ecx
ja 0x1000210d
xor ecx, ecx
jmp 0x10002110
xor ecx, ecx
inc ecx
test ebx, ebx
je 0x1000211c
test ecx, ecx
je 0x10002403
mov esi, 0x800
lea eax, [esp + 0x70a8]
push esi
push 0
push eax
call sub.VCRUNTIME140.dll_memset
push esi
lea eax, [esp + 0x70b8]
push eax
push str.deployment.expired.version
call fcn.10015e01
lea eax, [esp + 0x70c0]
push 0x10021598
push eax
call dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbscmp]
add esp, 0x20
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x10], eax
call fcn.1001ba36
test eax, eax
je 0x100021df
push 9
pop ecx
xor eax, eax
lea edi, [esp + 0x84]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x98]
push eax
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0x9c]
push eax
push str._d__d__d
push str.05_17_2021
call fcn.100099e7
sub dword [esp + 0xac], 0x76c
dec dword [esp + 0xa8]
push 0
call dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
mov edi, eax
mov esi, edx
lea eax, [esp + 0x9c]
push eax
call dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__mktime64]
add esp, 0x1c
cmp esi, edx
jl 0x100021df
jg 0x100021da
cmp edi, eax
jbe 0x100021df
xor eax, eax
inc eax
jmp 0x100021e1
xor eax, eax
cmp dword [esp + 0x10], 0
jne 0x100021f0
test eax, eax
je 0x10002403
lea eax, [esp + 0x64]
push eax
call fcn.10016cfc
pop ecx
push 8
pop ecx
mov esi, eax
lea edi, [esp + 0x30]
rep movsd dword es:[edi], dword [esi]
cmp dword [esp + 0x48], 0
mov ebx, dword [esp + 0x30]
jne 0x100023df
mov esi, 0x800
lea eax, [esp + 0x8a8]
push esi
xor edi, edi
push edi
push eax
call sub.VCRUNTIME140.dll_memset
push esi
lea eax, [esp + 0x40b8]
push edi
push eax
call sub.VCRUNTIME140.dll_memset
lea eax, [esp + 0x40c0]
push esi
push eax
call fcn.100160d9
mov esi, dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbsnbcpy_s]
mov eax, ebx
add esp, 0x20
sub eax, 1
je 0x10002274
sub eax, 1
je 0x1000226b
sub eax, 1
jne 0x1000228d
push 5
push 0x100215cc
jmp 0x1000227b
push 5
push 0x100215c4
jmp 0x1000227b
push 6
push 0x100215bc
lea eax, [esp + 0x8b0]
push 0x800
push eax
call esi
add esp, 0x10
lea eax, [esp + 0x8a8]
push eax
lea eax, [esp + 0x40ac]
push eax
call fcn.10015ad8
pop ecx
pop ecx
test eax, eax
jne 0x100022bf
lea eax, [esp + 0x8a8]
push eax
lea eax, [esp + 0x40ac]
push eax
call fcn.1001ba36
pop ecx
pop ecx
push 0x800
lea eax, [esp + 0x48ac]
push edi
push eax
call sub.VCRUNTIME140.dll_memset
push 0x800
lea eax, [esp + 0x50b8]
push edi
push eax
call sub.VCRUNTIME140.dll_memset
push edi
call dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
push edx
push eax
push 0x100215d4
mov eax, 0x800
push eax
push eax
lea eax, [esp + 0x48d8]
push eax
call fcn.1001ba36
lea eax, [esp + 0x50dc]
push 0x800
push eax
call fcn.1001611d
lea eax, [esp + 0x48e4]
push eax
lea eax, [esp + 0x50e8]
push eax
call fcn.10015ad8
add esp, 0x44
test eax, eax
jne 0x1000234c
lea eax, [esp + 0x48a8]
push eax
lea eax, [esp + 0x50ac]
push eax
call fcn.1001ba36
pop ecx
pop ecx
push 0x800
lea eax, [esp + 0x20ac]
push edi
push eax
call sub.VCRUNTIME140.dll_memset
push 0x800
lea eax, [esp + 0x58b8]
push edi
push eax
call sub.VCRUNTIME140.dll_memset
mov edi, 0x800
lea eax, [esp + 0x58c0]
push edi
push eax
call fcn.10016161
add esp, 0x20
lea eax, [esp + 0x20a8]
cmp dword [esp + 0x34], 1
jne 0x1000239f
push 4
push 0x100215dc
jmp 0x100023a6
push 5
push 0x100215e4
push edi
push eax
call esi
add esp, 0x10
lea eax, [esp + 0x20a8]
push eax
lea eax, [esp + 0x58ac]
push eax
call fcn.10015ad8
pop ecx
pop ecx
test eax, eax
jne 0x100023df
lea eax, [esp + 0x20a8]
push eax
lea eax, [esp + 0x58ac]
push eax
call fcn.1001ba36
pop ecx
pop ecx
cmp ebx, 1
jne 0x10002403
call fcn.10016389
test eax, eax
je 0x100023f9
mov dword [ebp + 0xcc], 2
jmp 0x10002415
mov dword [ebp + 0xcc], 1
cmp ebx, 2
je 0x100023ed
push 3
pop eax
cmp ebx, eax
jne 0x10002415
mov dword [ebp + 0xcc], eax
xor ebx, ebx
mov eax, dword [ebp + 0xcc]
cmp eax, 1
je 0x100024bf
cmp eax, 2
jne 0x10002435
mov eax, 0x80004005
jmp 0x100024c1
mov eax, dword [section..data]
mov edi, ebx
cmp eax, 0xffffffff
je 0x1000244a
push eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov edi, eax
push 0x104
lea ebx, [ebp + 0x120]
push 0
push ebx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
test edi, edi
je 0x10002493
cmp byte [edi], 0
je 0x1000248b
mov esi, edi
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x1000246e
sub esi, ecx
push esi
push edi
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
add esp, 0xc
mov byte [esi + ebp + 0x120], 0
push edi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
pop ecx
push 0
push dword [section..data]
call dword [sym.imp.kernel32.dll_TlsSetValue]
xor eax, eax
mov dword [esp + 0x50], 1
lea edi, [esp + 0x54]
mov ecx, ebp
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [esp + 0x50]
push eax
call fcn.10004102
xor eax, eax
mov ecx, dword [esp + 0x78a8]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10019a3d
add esp, 0x789c
ret