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

Disassembly:
push rdi
sub rsp, 0x30
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x50], rsi
mov rbx, rcx
mov r8d, Ordinal_488
lea rdx, str..._aa_WinApp.cpp
lea rcx, str.CAthenaApp::ExitInstance
call qword [sym.imp.DiagLog.dll_dlogPushStackInfoEx]
nop
mov rcx, qword [rbx + 0x218]
test rcx, rcx
je 0x140039ccc
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_ResetEvent]
cmp qword [rbx + 0x40], 0
je 0x140039d8c
mov byte [rbx + 0x1e0], 1
mov word [rbx + 0x1e2], 1
mov rcx, qword [rbx + reloc.mfc120u.dll_Ordinal_464]
mov rax, qword [rcx]
call qword [rax + 0x30]
mov dl, 1
mov rcx, rbx
call fcn.14003e200
xor edx, edx
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.mfc120u.dll_Ordinal_4291]
mov rcx, qword [rbx + 0x40]
mov rcx, qword [rcx + 0x40]
call qword [sym.imp.USER32.dll_UpdateWindow]
mov rcx, qword [rbx + reloc.mfc120u.dll_Ordinal_464]
mov rax, qword [rcx]
call qword [rax + 0x20]
cmp byte [rbx + 0x1e4], 0
je 0x140039d6c
cmp qword [rbx + reloc.mfc120u.dll_Ordinal_488], 0
je 0x140039d6c
mov edx, 0xaf
lea rcx, [rsp + 0x40]
call fcn.1400406f0
nop
mov rdx, qword [rax]
mov rcx, qword [rbx + reloc.mfc120u.dll_Ordinal_488]
mov rax, qword [rcx + 8]
test rax, rax
je 0x140039d61
mov rcx, qword [rcx]
call rax
nop
lea rcx, [rsp + 0x40]
call qword [sym.imp.mfc120u.dll_Ordinal_1030]
mov rcx, qword [rbx + 0x40]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x3347
mov rcx, qword [rcx + 0x40]
call qword [sym.imp.USER32.dll_SendMessageW]
mov byte [rbx + 0x1e0], 0
mov ecx, dword [0x1400a5148]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdi, rax
test rax, rax
je 0x140039dbc
xor edx, edx
mov ecx, dword [0x1400a5148]
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
mov r8, qword [rdi]
mov edx, 1
mov rcx, rdi
call qword [r8]
mov rcx, qword [rbx + 0x1b0]
test rcx, rcx
je 0x140039dce
mov rax, qword [rcx]
call qword [rax + 0x30]
mov rcx, qword [rbx + reloc.mfc120u.dll_Ordinal_464]
test rcx, rcx
je 0x140039de0
mov rax, qword [rcx]
call qword [rax + 0x10]
cmp qword [rbx + 0x1c8], 0
je 0x140039e35
cmp qword [rbx + reloc.mfc120u.dll_Ordinal_488], 0
je 0x140039e28
mov edx, 0xb0
lea rcx, [rsp + 0x40]
call fcn.1400406f0
nop
mov rdx, qword [rax]
mov rcx, qword [rbx + reloc.mfc120u.dll_Ordinal_488]
mov rax, qword [rcx + 8]
test rax, rax
je 0x140039e1d
mov rcx, qword [rcx]
call rax
nop
lea rcx, [rsp + 0x40]
call qword [sym.imp.mfc120u.dll_Ordinal_1030]
mov rcx, qword [rbx + 0x1c8]
mov rax, qword [rcx]
call qword [rax + 0x48]
cmp qword [rbx + reloc.mfc120u.dll_Ordinal_488], 0
je 0x140039e73
mov edx, 0xaf
lea rcx, [rsp + 0x40]
call fcn.1400406f0
nop
mov rdx, qword [rax]
mov rcx, qword [rbx + reloc.mfc120u.dll_Ordinal_488]
mov rax, qword [rcx + 8]
test rax, rax
je 0x140039e68
mov rcx, qword [rcx]
call rax
nop
lea rcx, [rsp + 0x40]
call qword [sym.imp.mfc120u.dll_Ordinal_1030]
mov rcx, qword [rbx + 0x1b0]
test rcx, rcx
je 0x140039e85
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, qword [rbx + 0x1b8]
test rcx, rcx
je 0x140039e97
mov rax, qword [rcx]
call qword [rax + 0x10]
call qword [sym.imp.vmx.dll_void___cdecl_ipp::vmxDone_void_]
call qword [sym.imp.vmxgui.dll_void___cdecl_ipp::vmxDoneGUI_void_]
call qword [sym.imp.ippide.dll_void___cdecl_ide::globalDone_void_]
call qword [sym.imp.infologview.dll_void___cdecl_doneLogView_void_]
call qword [sym.imp.helpman3.dll_void___cdecl_ui::hm::doneDocs_void_]
call qword [sym.imp.ippfile.dll_void___cdecl_ipp::doneFolders_void_]
mov rcx, qword [rbx + 0x1c8]
test rcx, rcx
je 0x140039ed1
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
xor esi, esi
mov qword [rbx + 0x1c8], rsi
mov rcx, qword [rbx + reloc.mfc120u.dll_Ordinal_464]
test rcx, rcx
je 0x140039eee
mov rax, qword [rcx]
lea edx, [rsi + 1]
call qword [rax]
mov qword [rbx + reloc.mfc120u.dll_Ordinal_464], rsi
mov rcx, qword [rbx + 0x1b0]
test rcx, rcx
je 0x140039f0b
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov qword [rbx + 0x1b0], rsi
mov rcx, qword [rbx + 0x1b8]
test rcx, rcx
je 0x140039f28
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov qword [rbx + 0x1b8], rsi
mov rcx, qword [rbx + 0x1c0]
test rcx, rcx
je 0x140039f45
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov qword [rbx + 0x1c0], rsi
mov rcx, qword [rbx + 0x1d8]
test rcx, rcx
je 0x140039f62
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov qword [rbx + 0x1d8], rsi
mov rdi, qword [rbx + 0x218]
mov qword [rbx + 0x218], rsi
test rdi, rdi
je 0x140039f93
mov rcx, qword [rdi]
test rcx, rcx
je 0x140039f8a
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rdi
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
mov rcx, qword [rbx + 0x1f8]
mov qword [rbx + 0x1f8], rsi
test rcx, rcx
je 0x140039fb0
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
call qword [sym.imp.ole32.dll_OleUninitialize]
mov rcx, rbx
call qword [sym.imp.mfc120u.dll_Ordinal_4401]
mov rdi, qword [rbx + reloc.mfc120u.dll_Ordinal_488]
mov qword [rbx + reloc.mfc120u.dll_Ordinal_488], rsi
test rdi, rdi
je 0x140039fea
mov rax, qword [rdi + 0x10]
test rax, rax
je 0x140039fe0
mov rcx, qword [rdi]
call rax
mov rcx, rdi
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
nop
call qword [sym.imp.DiagLog.dll_dlogPopStackInfo]
xor eax, eax
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret