Function at 0x412090
Capabilities:
Allocate thread local storage
Set thread local storage value

Disassembly:
push 0xffffffffffffffff
push 0x46655b
mov eax, dword fs:[0]
push eax
sub esp, 0x18
push ebx
push ebp
push esi
push edi
mov eax, dword [0x485300]
xor eax, esp
push eax
lea eax, [esp + 0x2c]
mov dword fs:[0], eax
mov ebx, dword [esp + 0x3c]
xor ebp, ebp
mov dword [ebx + 4], ebp
mov dword [ebx + 8], 0x65
mov dword [esp + 0x34], ebp
lea esi, [ebx + 0xc]
mov dword [ebx], vtable.CPrScrnDlg.0
call fcn.0040f480
lea esi, [ebx + 0xe0]
call fcn.00410a00
mov eax, dword [sym.imp.USER32.dll_DefWindowProcW]
mov dword [ebx + 0x1bc], eax
mov eax, 1
mov dword [ebx + 0x1b8], ebp
mov dword [ebx + 0x1c0], eax
mov dword [ebx + method.CWindowX.virtual_0], vtable.CPrScrnDlg::CTextEdit.0
mov dword [ebx + 0x1d4], ebp
mov dword [ebx + 0x1d8], ebp
mov dword [ebx + 0x1dc], ebp
mov dword [ebx + 0x1e0], ebp
mov dword [ebx + 0x1e4], eax
mov dword [ebx + 0x1e8], eax
lea edi, [ebx + 0x1ec]
mov dword [edi], vtable.CBitmapMemDC.0
mov dword [edi + 4], ebp
mov dword [edi + 8], ebp
mov dword [edi + 0xc], ebp
mov dword [edi + 0x10], ebp
mov dword [edi + 0x14], ebp
mov dword [ebx + method.CBitmapMemDC.virtual_0], vtable.CBitmapMemDC.0
mov dword [ebx + 0x208], ebp
mov dword [ebx + 0x20c], ebp
mov dword [ebx + 0x210], ebp
mov dword [ebx + 0x214], ebp
mov dword [ebx + 0x218], ebp
mov dword [ebx + method.CBitmapMemDC.virtual_0], vtable.CBitmapMemDC.0
mov dword [ebx + 0x220], ebp
mov dword [ebx + 0x224], ebp
mov dword [ebx + 0x228], ebp
mov dword [ebx + 0x22c], ebp
mov dword [ebx + 0x230], ebp
push 0x401c00
push 0x401be0
push 4
push 0x18
lea ecx, [ebx + 0x234]
push ecx
mov byte [esp + 0x48], 6
call fcn.00443dad
lea esi, [ebx + 0x29c]
call fcn.00401ed0
lea edx, [ebx + 0x2e4]
push edx
mov byte [esp + 0x38], 8
call fcn.0040e200
mov dword [ebx + 0x664], 0x46adc0
mov dword [ebx + 0x668], ebp
mov dword [ebx + 0x66c], ebp
mov dword [ebx + 0x670], ebp
mov dword [ebx + 0x674], ebp
mov dword [ebx + 0x678], ebp
mov byte [esp + 0x34], 0xa
mov dword [ebx + 0x628], ebp
mov dword [ebx + 0x624], ebp
mov dword [ebx + 0x294], 0xffffffff
mov dword [ebx + 0x298], ebp
mov dword [ebx + 0x62c], ebp
mov dword [ebx + 0x630], ebp
mov dword [ebx + 0x634], ebp
mov dword [ebx + 0x638], 0xc
mov dword [ebx + 0x63c], ebp
mov eax, dword [esp + 0x40]
cmp eax, ebp
mov dword [ebx + 0x640], ebp
je 0x412277
cmp edi, eax
je 0x4122a5
cmp dword [eax + 4], ebp
je 0x4122a5
cmp dword [eax + 8], ebp
je 0x4122a5
mov esi, edi
call fcn.00401c50
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 0x14]
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 4]
push ecx
push edx
push ebp
push ebp
mov ecx, edi
jmp 0x4122a0
lea edi, [esp + 0x18]
call fcn.0040b320
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
sub ecx, eax
push ecx
mov ecx, dword [esp + 0x1c]
sub edx, ecx
push edx
push eax
push ecx
xor eax, eax
lea ecx, [ebx + 0x1ec]
call fcn.00401ca0
lea edi, [ebx + 0x1ec]
lea esi, [ebx + 0x204]
cmp esi, edi
je 0x4122d8
cmp dword [edi + 4], ebp
je 0x4122d8
cmp dword [edi + 8], ebp
je 0x4122d8
call fcn.00401c50
mov eax, dword [edi + 0x14]
mov ecx, dword [edi + 0x10]
push eax
mov eax, dword [edi + 4]
push ecx
push ebp
push ebp
mov ecx, esi
call fcn.00401ca0
push 0x50
push 0x202020
mov esi, edi
call fcn.00401dc0
mov edx, dword [esp + 0x44]
mov dword [ebx + 0x644], edx
mov dword [ebx + 0x648], ebp
call dword [sym.imp.KERNEL32.DLL_TlsAlloc]
push ebx
push eax
mov dword [0x48836c], eax
call dword [sym.imp.KERNEL32.DLL_TlsSetValue]
mov dword [ebx + 0x64c], ebp
mov dword [ebx + 0x650], ebp
mov dword [ebx + 0x654], ebp
mov dword [ebx + 0x658], ebp
mov dword [ebx + 0x65c], ebp
mov dword [ebx + 0x660], ebp
mov eax, ebx
mov ecx, dword [esp + 0x2c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret 0xc