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

Disassembly:
push ebp
lea ebp, [esp - 0x70]
mov eax, 0x1028
call fcn.0048d960
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.0043c5f2
and dword [ebp + 0x60], 0
mov ecx, 0x4c7218
call fcn.0044ee8a
mov edx, str.TaskDialogIndirect
mov ecx, 0x49a490
mov dword [ebp + 0x64], eax
call fcn.00445bc7
mov esi, dword [ebp + 0x78]
mov dword [ebp + 0x5c], eax
test eax, eax
je 0x450c44
mov ebx, dword [esi]
mov dword [ebp + 0x6c], ebx
and dword [ebp + 0x6c], 1
je 0x450a95
mov eax, dword [esi + 4]
and al, 0xf
cmp al, 2
je 0x450c44
push 0x60
pop edi
push edi
lea eax, [ebp - 4]
push 0
push eax
call sub.MSVCRT.dll_memset
mov eax, dword [0x4c7218]
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 0x450ad1
lea eax, [esi + 0x18]
mov dword [ebp + 0x50], 0x44fd1b
mov dword [ebp + 0x54], eax
mov ecx, ebx
and ecx, 2
push 0x18
pop edx
je 0x450aea
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 0x450b10
mov eax, dword [esi + 0x14]
cmp byte [eax], 0
je 0x450afe
or dword [ebp + 8], 0x100
test bl, 4
je 0x450b08
mov eax, dword [esi + 0x10]
jmp 0x450b0d
mov eax, dword [0x4cf050]
mov dword [ebp + 0x38], eax
xor edi, edi
cmp dword [ebp + 0x6c], edi
je 0x450b9d
cmp ecx, edi
jne 0x450b59
mov eax, dword [esi + 4]
and eax, 0xf
dec eax
je 0x450b52
dec eax
dec eax
je 0x450b49
dec eax
je 0x450b40
dec eax
je 0x450b3b
mov dword [ebp + 0xc], 1
jmp 0x450b59
mov dword [ebp + 0xc], edx
jmp 0x450b59
mov dword [ebp + 0xc], 6
jmp 0x450b59
mov dword [ebp + 0xc], 0xe
jmp 0x450b59
mov dword [ebp + 0xc], 9
mov eax, dword [esi + 4]
and eax, 0xf0
cmp eax, 0x10
je 0x450b94
cmp eax, 0x20
je 0x450b7f
xor ecx, ecx
cmp eax, 0x30
sete cl
lea ecx, [ecx + ecx + 0xfffd]
mov dword [ebp + 0x14], ecx
jmp 0x450bab
or dword [ebp + 8], 2
push 0x7f02
push edi
call dword [sym.imp.USER32.dll_LoadIconW]
mov dword [ebp + 0x14], eax
jmp 0x450bab
mov dword [ebp + 0x14], 0xfffe
jmp 0x450bab
mov dword [ebp + 0xc], 1
mov dword [ebp + 0x14], 0xfffd
lea eax, [ebp - 0xfb8]
cmp word [ebp - 0xfb8], di
je 0x450bd7
movzx ecx, word [ebp - 0xfb8]
cmp cx, 0xa
je 0x450bd7
cmp cx, 0xd
je 0x450bd7
inc eax
inc eax
movzx ecx, word [eax]
cmp cx, di
jne 0x450bc1
movzx ecx, word [eax]
cmp cx, 0xa
je 0x450be6
cmp cx, 0xd
jne 0x450bef
xor ecx, ecx
mov word [eax], cx
inc eax
inc eax
jmp 0x450bd7
cmp word [eax], di
jne 0x450bf6
xor eax, eax
mov dword [ebp + 0x1c], eax
mov eax, dword [0x4c7220]
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 0x450c44
test byte [esi], 8
je 0x450cf0
cmp dword [ebp + 0x68], 2
je 0x450cf0
cmp dword [ebp + 0x6c], edi
mov ecx, dword [esi + 0x14]
setne al
mov byte [ecx], al
jmp 0x450cf0
cmp byte [0x4c6d08], 0
je 0x450c86
mov eax, dword [0x4c6d0c]
cmp eax, 0xffffffff
je 0x450c86
push eax
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov ebx, eax
test ebx, ebx
jne 0x450c88
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 [0x4c6d0c]
call dword [sym.imp.KERNEL32.DLL_TlsSetValue]
jmp 0x450c88
xor ebx, ebx
lea eax, [ebp - 0x18]
mov dword [ebx + 0x1c], eax
cmp byte [0x4c90a8], 0
mov byte [ebp - 0x14], 0
mov dword [ebp - 8], 2
mov dword [ebp - 0xc], esi
jne 0x450cbe
call dword [sym.imp.KERNEL32.DLL_GetCurrentThreadId]
push eax
push 0
push 0x450933
push 5
call dword [sym.imp.USER32.dll_SetWindowsHookExW]
mov dword [ebp - 0x18], eax
test byte [esi], 1
je 0x450cc8
mov esi, dword [esi + 4]
jmp 0x450cca
xor esi, esi
push esi
push dword [0x4c7220]
lea eax, [ebp - 0xfb8]
push eax
push dword [ebp + 0x64]
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp byte [0x4c90a8], 0
jne 0x450ced
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