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

Disassembly:
push ebp
lea ebp, [esp - 0x70]
mov eax, 0x1028
call fcn.0048da60
push ebx
push esi
lea eax, [ebp + 0x80]
push edi
mov dword [ebp + 0x60], eax
lea eax, [ebp + 0x60]
push eax
push dword [ebp + 0x7c]
mov edx, 0x7d0
lea ecx, [ebp - 0xfb8]
call fcn.0043c613
and dword [ebp + 0x60], 0
mov ecx, 0x4c71f8
call fcn.0044ee83
mov edx, str.TaskDialogIndirect
mov ecx, 0x49a488
mov dword [ebp + 0x64], eax
call fcn.00445bf9
mov esi, dword [ebp + 0x78]
mov dword [ebp + 0x5c], eax
test eax, eax
je 0x450c3a
mov ebx, dword [esi]
mov dword [ebp + 0x6c], ebx
and dword [ebp + 0x6c], 1
je 0x450a8b
mov eax, dword [esi + 4]
and al, 0xf
cmp al, 2
je 0x450c3a
push 0x60
pop edi
push edi
lea eax, [ebp - 4]
push 0
push eax
call sub.MSVCRT.dll_memset
mov eax, dword [0x4c71f8]
mov dword [ebp + 4], eax
mov eax, dword [ebp + 0x64]
add esp, 0xc
mov dword [ebp - 4], edi
mov dword [ebp + 8], 8
mov dword [ebp], eax
test bl, 0x10
je 0x450ac7
lea eax, [esi + 0x18]
mov dword [ebp + 0x50], 0x44fd11
mov dword [ebp + 0x54], eax
mov ecx, ebx
and ecx, 2
push 0x18
pop edx
je 0x450ae0
mov eax, dword [esi + 0xc]
mov dword [ebp + 0x20], eax
mov eax, dword [esi + 8]
mov dword [ebp + 8], edx
mov dword [ebp + 0x24], eax
test bl, 8
je 0x450b06
mov eax, dword [esi + 0x14]
cmp byte [eax], 0
je 0x450af4
or dword [ebp + 8], 0x100
test bl, 4
je 0x450afe
mov eax, dword [esi + 0x10]
jmp 0x450b03
mov eax, dword [0x4cf030]
mov dword [ebp + 0x38], eax
xor edi, edi
cmp dword [ebp + 0x6c], edi
je 0x450b93
cmp ecx, edi
jne 0x450b4f
mov eax, dword [esi + 4]
and eax, 0xf
dec eax
je 0x450b48
dec eax
dec eax
je 0x450b3f
dec eax
je 0x450b36
dec eax
je 0x450b31
mov dword [ebp + 0xc], 1
jmp 0x450b4f
mov dword [ebp + 0xc], edx
jmp 0x450b4f
mov dword [ebp + 0xc], 6
jmp 0x450b4f
mov dword [ebp + 0xc], 0xe
jmp 0x450b4f
mov dword [ebp + 0xc], 9
mov eax, dword [esi + 4]
and eax, 0xf0
cmp eax, 0x10
je 0x450b8a
cmp eax, 0x20
je 0x450b75
xor ecx, ecx
cmp eax, 0x30
sete cl
lea ecx, [ecx + ecx + 0xfffd]
mov dword [ebp + 0x14], ecx
jmp 0x450ba1
or dword [ebp + 8], 2
push 0x7f02
push edi
call dword [sym.imp.USER32.dll_LoadIconW]
mov dword [ebp + 0x14], eax
jmp 0x450ba1
mov dword [ebp + 0x14], 0xfffe
jmp 0x450ba1
mov dword [ebp + 0xc], 1
mov dword [ebp + 0x14], 0xfffd
lea eax, [ebp - 0xfb8]
cmp word [ebp - 0xfb8], di
je 0x450bcd
movzx ecx, word [ebp - 0xfb8]
cmp cx, 0xa
je 0x450bcd
cmp cx, 0xd
je 0x450bcd
inc eax
inc eax
movzx ecx, word [eax]
cmp cx, di
jne 0x450bb7
movzx ecx, word [eax]
cmp cx, 0xa
je 0x450bdc
cmp cx, 0xd
jne 0x450be5
xor ecx, ecx
mov word [eax], cx
inc eax
inc eax
jmp 0x450bcd
cmp word [eax], di
jne 0x450bec
xor eax, eax
mov dword [ebp + 0x1c], eax
mov eax, dword [0x4c7200]
mov dword [ebp + 0x10], eax
lea eax, [ebp + 0x6c]
push eax
push edi
lea eax, [ebp + 0x68]
push eax
lea eax, [ebp - 4]
lea ecx, [ebp - 0xfb8]
push eax
mov dword [ebp + 0x18], ecx
mov dword [ebp + 0x6c], edi
call dword [ebp + 0x5c]
test eax, eax
jne 0x450c3a
test byte [esi], 8
je 0x450ce6
cmp dword [ebp + 0x68], 2
je 0x450ce6
cmp dword [ebp + 0x6c], edi
mov ecx, dword [esi + 0x14]
setne al
mov byte [ecx], al
jmp 0x450ce6
cmp byte [0x4c6ce8], 0
je 0x450c7c
mov eax, dword [0x4c6cec]
cmp eax, 0xffffffff
je 0x450c7c
push eax
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov ebx, eax
test ebx, ebx
jne 0x450c7e
push 0x20
call sub.MSVCRT.dll_malloc
pop ecx
push 8
mov ebx, eax
pop ecx
xor eax, eax
mov edi, ebx
push ebx
rep stosd dword es:[edi], eax
push dword [0x4c6cec]
call dword [sym.imp.KERNEL32.DLL_TlsSetValue]
jmp 0x450c7e
xor ebx, ebx
lea eax, [ebp - 0x18]
mov dword [ebx + 0x1c], eax
cmp byte [0x4c9088], 0
mov byte [ebp - 0x14], 0
mov dword [ebp - 8], 2
mov dword [ebp - 0xc], esi
jne 0x450cb4
call dword [sym.imp.KERNEL32.DLL_GetCurrentThreadId]
push eax
push 0
push 0x450929
push 5
call dword [sym.imp.USER32.dll_SetWindowsHookExW]
mov dword [ebp - 0x18], eax
test byte [esi], 1
je 0x450cbe
mov esi, dword [esi + 4]
jmp 0x450cc0
xor esi, esi
push esi
push dword [0x4c7200]
lea eax, [ebp - 0xfb8]
push eax
push dword [ebp + 0x64]
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp byte [0x4c9088], 0
jne 0x450ce3
mov eax, dword [ebp - 8]
mov dword [ebp + 0x68], eax
mov eax, dword [ebp + 0x68]
pop edi
pop esi
pop ebx
add ebp, 0x70
leave
ret