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

Disassembly:
push ebp
lea ebp, [esp - 0x70]
mov eax, 0x1028
call fcn.0048d800
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.0043c5d1
and dword [ebp + 0x60], 0
mov ecx, 0x4c61f8
call fcn.0044ee8d
mov edx, str.TaskDialogIndirect
mov ecx, 0x499488
mov dword [ebp + 0x64], eax
call fcn.00445c1c
mov esi, dword [ebp + 0x78]
mov dword [ebp + 0x5c], eax
test eax, eax
je 0x450c47
mov ebx, dword [esi]
mov dword [ebp + 0x6c], ebx
and dword [ebp + 0x6c], 1
je 0x450a98
mov eax, dword [esi + 4]
and al, 0xf
cmp al, 2
je 0x450c47
push 0x60
pop edi
push edi
lea eax, [ebp - 4]
push 0
push eax
call sub.MSVCRT.dll_memset
mov eax, dword [0x4c61f8]
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 0x450ad4
lea eax, [esi + 0x18]
mov dword [ebp + 0x50], 0x44fd1e
mov dword [ebp + 0x54], eax
mov ecx, ebx
and ecx, 2
push 0x18
pop edx
je 0x450aed
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 0x450b13
mov eax, dword [esi + 0x14]
cmp byte [eax], 0
je 0x450b01
or dword [ebp + 8], 0x100
test bl, 4
je 0x450b0b
mov eax, dword [esi + 0x10]
jmp 0x450b10
mov eax, dword [0x4ce010]
mov dword [ebp + 0x38], eax
xor edi, edi
cmp dword [ebp + 0x6c], edi
je 0x450ba0
cmp ecx, edi
jne 0x450b5c
mov eax, dword [esi + 4]
and eax, 0xf
dec eax
je 0x450b55
dec eax
dec eax
je 0x450b4c
dec eax
je 0x450b43
dec eax
je 0x450b3e
mov dword [ebp + 0xc], 1
jmp 0x450b5c
mov dword [ebp + 0xc], edx
jmp 0x450b5c
mov dword [ebp + 0xc], 6
jmp 0x450b5c
mov dword [ebp + 0xc], 0xe
jmp 0x450b5c
mov dword [ebp + 0xc], 9
mov eax, dword [esi + 4]
and eax, 0xf0
cmp eax, 0x10
je 0x450b97
cmp eax, 0x20
je 0x450b82
xor ecx, ecx
cmp eax, 0x30
sete cl
lea ecx, [ecx + ecx + 0xfffd]
mov dword [ebp + 0x14], ecx
jmp 0x450bae
or dword [ebp + 8], 2
push 0x7f02
push edi
call dword [sym.imp.USER32.dll_LoadIconW]
mov dword [ebp + 0x14], eax
jmp 0x450bae
mov dword [ebp + 0x14], 0xfffe
jmp 0x450bae
mov dword [ebp + 0xc], 1
mov dword [ebp + 0x14], 0xfffd
lea eax, [ebp - 0xfb8]
cmp word [ebp - 0xfb8], di
je 0x450bda
movzx ecx, word [ebp - 0xfb8]
cmp cx, 0xa
je 0x450bda
cmp cx, 0xd
je 0x450bda
inc eax
inc eax
movzx ecx, word [eax]
cmp cx, di
jne 0x450bc4
movzx ecx, word [eax]
cmp cx, 0xa
je 0x450be9
cmp cx, 0xd
jne 0x450bf2
xor ecx, ecx
mov word [eax], cx
inc eax
inc eax
jmp 0x450bda
cmp word [eax], di
jne 0x450bf9
xor eax, eax
mov dword [ebp + 0x1c], eax
mov eax, dword [0x4c6200]
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 0x450c47
test byte [esi], 8
je 0x450cf3
cmp dword [ebp + 0x68], 2
je 0x450cf3
cmp dword [ebp + 0x6c], edi
mov ecx, dword [esi + 0x14]
setne al
mov byte [ecx], al
jmp 0x450cf3
cmp byte [0x4c5ce8], 0
je 0x450c89
mov eax, dword [0x4c5cec]
cmp eax, 0xffffffff
je 0x450c89
push eax
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov ebx, eax
test ebx, ebx
jne 0x450c8b
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 [0x4c5cec]
call dword [sym.imp.KERNEL32.DLL_TlsSetValue]
jmp 0x450c8b
xor ebx, ebx
lea eax, [ebp - 0x18]
mov dword [ebx + 0x1c], eax
cmp byte [0x4c8068], 0
mov byte [ebp - 0x14], 0
mov dword [ebp - 8], 2
mov dword [ebp - 0xc], esi
jne 0x450cc1
call dword [sym.imp.KERNEL32.DLL_GetCurrentThreadId]
push eax
push 0
push 0x450936
push 5
call dword [sym.imp.USER32.dll_SetWindowsHookExW]
mov dword [ebp - 0x18], eax
test byte [esi], 1
je 0x450ccb
mov esi, dword [esi + 4]
jmp 0x450ccd
xor esi, esi
push esi
push dword [0x4c6200]
lea eax, [ebp - 0xfb8]
push eax
push dword [ebp + 0x64]
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp byte [0x4c8068], 0
jne 0x450cf0
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