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

Disassembly:
push ebp
lea ebp, [esp - 0x70]
mov eax, 0x1028
call fcn.0048bdc0
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.0043b559
and dword [ebp + 0x60], 0
mov ecx, 0x4c40b8
call fcn.0044dbfb
mov edx, str.TaskDialogIndirect
mov ecx, 0x498388
mov dword [ebp + 0x64], eax
call fcn.00444ab7
mov esi, dword [ebp + 0x78]
mov dword [ebp + 0x5c], eax
test eax, eax
je 0x44f9b2
mov ebx, dword [esi]
mov dword [ebp + 0x6c], ebx
and dword [ebp + 0x6c], 1
je 0x44f803
mov eax, dword [esi + 4]
and al, 0xf
cmp al, 2
je 0x44f9b2
push 0x60
pop edi
push edi
lea eax, [ebp - 4]
push 0
push eax
call sub.MSVCRT.dll_memset
mov eax, dword [0x4c40b8]
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 0x44f83f
lea eax, [esi + 0x18]
mov dword [ebp + 0x50], 0x44ea89
mov dword [ebp + 0x54], eax
mov ecx, ebx
and ecx, 2
push 0x18
pop edx
je 0x44f858
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 0x44f87e
mov eax, dword [esi + 0x14]
cmp byte [eax], 0
je 0x44f86c
or dword [ebp + 8], 0x100
test bl, 4
je 0x44f876
mov eax, dword [esi + 0x10]
jmp 0x44f87b
mov eax, dword [0x4cba10]
mov dword [ebp + 0x38], eax
xor edi, edi
cmp dword [ebp + 0x6c], edi
je 0x44f90b
cmp ecx, edi
jne 0x44f8c7
mov eax, dword [esi + 4]
and eax, 0xf
dec eax
je 0x44f8c0
dec eax
dec eax
je 0x44f8b7
dec eax
je 0x44f8ae
dec eax
je 0x44f8a9
mov dword [ebp + 0xc], 1
jmp 0x44f8c7
mov dword [ebp + 0xc], edx
jmp 0x44f8c7
mov dword [ebp + 0xc], 6
jmp 0x44f8c7
mov dword [ebp + 0xc], 0xe
jmp 0x44f8c7
mov dword [ebp + 0xc], 9
mov eax, dword [esi + 4]
and eax, 0xf0
cmp eax, 0x10
je 0x44f902
cmp eax, 0x20
je 0x44f8ed
xor ecx, ecx
cmp eax, 0x30
sete cl
lea ecx, [ecx + ecx + 0xfffd]
mov dword [ebp + 0x14], ecx
jmp 0x44f919
or dword [ebp + 8], 2
push 0x7f02
push edi
call dword [sym.imp.USER32.dll_LoadIconW]
mov dword [ebp + 0x14], eax
jmp 0x44f919
mov dword [ebp + 0x14], 0xfffe
jmp 0x44f919
mov dword [ebp + 0xc], 1
mov dword [ebp + 0x14], 0xfffd
lea eax, [ebp - 0xfb8]
cmp word [ebp - 0xfb8], di
je 0x44f945
movzx ecx, word [ebp - 0xfb8]
cmp cx, 0xa
je 0x44f945
cmp cx, 0xd
je 0x44f945
inc eax
inc eax
movzx ecx, word [eax]
cmp cx, di
jne 0x44f92f
movzx ecx, word [eax]
cmp cx, 0xa
je 0x44f954
cmp cx, 0xd
jne 0x44f95d
xor ecx, ecx
mov word [eax], cx
inc eax
inc eax
jmp 0x44f945
cmp word [eax], di
jne 0x44f964
xor eax, eax
mov dword [ebp + 0x1c], eax
mov eax, dword [0x4c40c0]
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 0x44f9b2
test byte [esi], 8
je 0x44fa5e
cmp dword [ebp + 0x68], 2
je 0x44fa5e
cmp dword [ebp + 0x6c], edi
mov ecx, dword [esi + 0x14]
setne al
mov byte [ecx], al
jmp 0x44fa5e
cmp byte [0x4c3bb0], 0
je 0x44f9f4
mov eax, dword [0x4c3bb4]
cmp eax, 0xffffffff
je 0x44f9f4
push eax
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov ebx, eax
test ebx, ebx
jne 0x44f9f6
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 [0x4c3bb4]
call dword [sym.imp.KERNEL32.DLL_TlsSetValue]
jmp 0x44f9f6
xor ebx, ebx
lea eax, [ebp - 0x18]
mov dword [ebx + 0x1c], eax
cmp byte [0x4c5f40], 0
mov byte [ebp - 0x14], 0
mov dword [ebp - 8], 2
mov dword [ebp - 0xc], esi
jne 0x44fa2c
call dword [sym.imp.KERNEL32.DLL_GetCurrentThreadId]
push eax
push 0
push 0x44f6a1
push 5
call dword [sym.imp.USER32.dll_SetWindowsHookExW]
mov dword [ebp - 0x18], eax
test byte [esi], 1
je 0x44fa36
mov esi, dword [esi + 4]
jmp 0x44fa38
xor esi, esi
push esi
push dword [0x4c40c0]
lea eax, [ebp - 0xfb8]
push eax
push dword [ebp + 0x64]
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp byte [0x4c5f40], 0
jne 0x44fa5b
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