Function at 0x7033dc84
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, dword [ebp + 0xc]
sub esp, 0x18
dec eax
push ebx
push esi
push edi
mov edi, dword [ebp + 0x14]
mov esi, ecx
mov ecx, dword [ebp + 8]
je 0x7033e3bf
dec eax
jne 0x7033e52b
mov eax, dword [ecx + 0xbc]
cmp eax, 0x25
jg 0x7033e0d2
je 0x7033e077
cmp eax, 0x11
jg 0x7033de21
je 0x7033df06
cmp eax, 7
je 0x7033ddb4
cmp eax, 8
je 0x7033e36a
cmp eax, 0xa
je 0x7033dd52
jle 0x7033e52b
cmp eax, 0xc
jle 0x7033df06
cmp eax, 0xe
jne 0x7033e52b
mov al, byte [edi + 0xc]
neg al
push 2
sbb eax, eax
and eax, 2
push eax
push dword [esi + 4]
call sym.UXCore.dll_SetGadgetStyle
mov ecx, esi
call fcn.7033c4f1
test al, al
je 0x7033e52b
mov ecx, esi
call fcn.7033c514
cmp byte [edi + 0xc], 0
mov ebx, eax
push esi
jne 0x7033dd3c
or ebx, 0x8000
push 0x8003
jmp 0x7033dd47
and ebx, 0xffff7fff
push 0x8002
call sym.UXCore.dll_void___stdcall_DirectUI::NotifyAccessibilityEvent_unsigned_long_int__class_DirectUI::Element__
push ebx
jmp 0x7033e3b3
lea eax, [ebp - 0x18]
push eax
mov ecx, esi
call fcn.7033c3d9
mov ebx, eax
mov eax, dword [ebp + 0x10]
mov edi, dword [eax + 0xc]
test edi, edi
je 0x7033dd83
test ebx, ebx
je 0x7033dd7b
push dword [ebx + 8]
mov eax, dword [edi]
push dword [ebx + 0x10]
mov ecx, edi
push esi
call dword [eax + 0xc]
mov eax, dword [edi]
push esi
mov ecx, edi
call dword [eax + 0x18]
mov eax, dword [ebp + 0x14]
mov edi, dword [eax + 0xc]
test edi, edi
je 0x7033dda7
mov eax, dword [edi]
push esi
mov ecx, edi
call dword [eax + 0x14]
test ebx, ebx
je 0x7033dda7
push dword [ebx + 8]
mov eax, dword [edi]
push dword [ebx + 0x10]
mov ecx, edi
push esi
call dword [eax + 8]
mov ecx, dword [ebp - 0x18]
call fcn.70313a92
jmp 0x7033e52b
cmp dword [edi + 0xc], 0xfffffffe
je 0x7033dded
push dword [sym.UXCore.dll_unsigned_long_int_DirectUI::g_dwElSlot]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x7033dded
mov ebx, dword [eax + 0xc]
test ebx, ebx
je 0x7033dded
mov ecx, dword [ebx + 0x14]
test ecx, ecx
je 0x7033dded
cmp dword [ebx + 0x10], 0
je 0x7033dded
push esi
call fcn.7033c32a
mov ecx, dword [ebx + 0x10]
push esi
call fcn.7033c32a
mov ecx, esi
call fcn.7033b4fb
mov ebx, eax
test ebx, ebx
je 0x7033e52b
lea eax, [ebp - 0x18]
push eax
mov ecx, ebx
call fcn.7033c3fc
test eax, eax
je 0x7033dda7
push dword [edi + 0xc]
mov ecx, dword [ebp + 0x10]
push dword [ecx + 0xc]
mov edx, dword [eax]
push esi
push ebx
mov ecx, eax
call dword [edx + 0x10]
jmp 0x7033dda7
cmp eax, 0x12
je 0x7033e034
cmp eax, 0x16
je 0x7033df06
cmp eax, 0x1d
je 0x7033de78
cmp eax, 0x24
jne 0x7033e52b
mov ecx, esi
call fcn.7033c4f1
test al, al
je 0x7033e52b
mov ecx, esi
call fcn.7033c514
test eax, 0x200000
je 0x7033e52b
cmp byte [edi + 0xc], 0
je 0x7033de70
or eax, 2
jmp 0x7033e3b2
and eax, 0xfffffffd
jmp 0x7033e3b2
movzx eax, word [edi + 4]
cmp ax, 9
mov bl, 1
jne 0x7033de92
cmp byte [edi + 0xc], 0
jne 0x7033def1
cmp byte [edi + 0x13], 0xff
je 0x7033def1
jmp 0x7033deb3
cmp ax, 0xb
jne 0x7033deb7
mov edi, dword [edi + 0xc]
test edi, edi
je 0x7033def1
mov al, byte [edi + 0x10]
shr al, 2
and al, 7
cmp al, 1
je 0x7033deb3
cmp al, 2
je 0x7033deb3
cmp al, 7
jne 0x7033def1
xor bl, bl
jmp 0x7033def1
cmp ax, 0x10
jne 0x7033def1
mov edi, dword [edi + 0xc]
push edi
call fcn.70316303
and dword [ebp - 8], 0
test eax, eax
mov dword [ebp - 0x18], eax
jbe 0x7033def1
test bl, bl
je 0x7033def1
push dword [ebp - 8]
push edi
call fcn.7033931b
mov bl, al
neg bl
sbb bl, bl
inc bl
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
cmp eax, dword [ebp - 0x18]
jb 0x7033ded1
neg bl
mov eax, 0x800
push eax
sbb ebx, ebx
and ebx, eax
push ebx
push dword [esi + 4]
call sym.UXCore.dll_SetGadgetStyle
xor edi, edi
mov ecx, esi
mov dword [ebp - 0x14], edi
mov byte [ebp - 1], 0
xor bl, bl
call fcn.7033b423
test al, al
jne 0x7033dfee
mov ecx, esi
call fcn.7033b4a3
test al, al
je 0x7033df9e
mov ecx, esi
call fcn.7033b463
test al, al
jne 0x7033dfee
mov ecx, esi
call fcn.7033c465
mov ecx, eax
sar ecx, 2
and ecx, 3
test al, 3
jne 0x7033df52
cmp ecx, 3
jne 0x7033df56
mov byte [ebp - 1], 1
test ecx, ecx
je 0x7033df5c
mov bl, 1
cmp byte [ebp - 1], 0
je 0x7033df6a
test bl, bl
jne 0x7033dff3
push 2
push dword [sym.UXCore.dll_struct_DirectUI::PropertyInfo__DirectUI::Element::ContentProp]
mov ecx, esi
call sym.UXCore.dll_public:_class_DirectUI::Value____thiscall_DirectUI::Element::GetValue_struct_DirectUI::PropertyInfo_const___int_const
mov dword [ebp - 0x14], eax
movzx eax, word [eax + 4]
cmp ax, 0xb
je 0x7033dfee
cmp ax, 9
je 0x7033dfee
cmp ax, 0x10
je 0x7033dfee
cmp ax, 0x15
je 0x7033dfee
cmp ax, 0x16
je 0x7033dfee
push 2
push dword [sym.UXCore.dll_struct_DirectUI::PropertyInfo__DirectUI::Element::BackgroundProp]
mov ecx, esi
call sym.UXCore.dll_public:_class_DirectUI::Value____thiscall_DirectUI::Element::GetValue_struct_DirectUI::PropertyInfo_const___int_const
mov edi, eax
movzx ecx, word [edi + 4]
cmp cx, 9
jne 0x7033dfbf
cmp byte [edi + 0xc], 0
jne 0x7033dfee
cmp cx, 0xb
jne 0x7033dfe8
mov eax, dword [edi + 0xc]
test eax, eax
je 0x7033dfe8
mov al, byte [eax + 0x10]
test al, 3
jne 0x7033dfe8
shr al, 2
and al, 7
cmp al, 4
je 0x7033dfee
cmp al, 5
je 0x7033dfee
cmp al, 6
je 0x7033dfee
cmp al, 7
je 0x7033dfee
cmp cx, 0x10
jne 0x7033dff3
mov bl, 1
mov byte [ebp - 1], bl
mov al, byte [ebp - 1]
neg bl
push 0x600
sbb ebx, ebx
and ebx, 0x400
neg al
sbb eax, eax
and eax, 0x200
or ebx, eax
push ebx
push dword [esi + 4]
call sym.UXCore.dll_SetGadgetStyle
test edi, edi
je 0x7033e024
mov ecx, edi
call fcn.70313a92
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x7033e52b
jmp 0x7033ddaa
mov ecx, esi
call fcn.7033c4f1
test al, al
je 0x7033e52b
mov ecx, esi
call fcn.7033b5f5
test al, 2
je 0x7033e52b
mov ecx, esi
call fcn.7033c514
cmp byte [edi + 0xc], 0
mov ebx, eax
je 0x7033e06f
push esi
or ebx, 4
push 0x8005
jmp 0x7033dd47
and ebx, 0xfffffffb
jmp 0x7033dd4c
mov ecx, esi
call fcn.7033b4d1
test al, al
je 0x7033e52b
mov ecx, esi
call fcn.7033c4ce
mov edi, eax
mov ebx, 0xf00
test ebx, edi
je 0x7033e52b
call fcn.7033b6a1
test al, al
je 0x7033e52b
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x7033e0c4
cmp word [eax + 4], 1
jne 0x7033e0c4
movzx eax, byte [eax + 0xc]
push eax
push dword [esi + 4]
call sym.UXCore.dll_void___stdcall_DirectUI::SetGadgetOpacity_struct_HGADGET_____unsigned_char_
push ebx
push edi
mov ecx, esi
call sym.UXCore.dll_public:_void___thiscall_DirectUI::Element::InvokeAnimation_int__unsigned_int_
jmp 0x7033e52b
cmp eax, 0x2e
jg 0x7033e221
je 0x7033e207
sub eax, 0x26
je 0x7033e1c6
sub eax, 3
je 0x7033e169
dec eax
dec eax
je 0x7033e14a
dec eax
je 0x7033e133
dec eax
jne 0x7033e52b
mov ecx, esi
call fcn.7033c4f1
test al, al
je 0x7033e113
push esi
push 0x800d
call sym.UXCore.dll_void___stdcall_DirectUI::NotifyAccessibilityEvent_unsigned_long_int__class_DirectUI::Element__
mov ecx, esi
call fcn.7033c537
test al, al
je 0x7033e52b
mov eax, dword [esi]
or byte [esi + 0x38], 4
push esi
mov ecx, esi
call dword [eax + 0x5c]
jmp 0x7033e52b
mov ecx, esi
call fcn.7033c4f1
test al, al
je 0x7033e52b
push esi
push 0x800c
jmp 0x7033e15f
mov ecx, esi
call fcn.7033c4f1
test al, al
je 0x7033e52b
push esi
push 0x800a
call sym.UXCore.dll_void___stdcall_DirectUI::NotifyAccessibilityEvent_unsigned_long_int__class_DirectUI::Element__
jmp 0x7033e52b
cmp byte [edi + 0xc], 0
je 0x7033e52b
mov ecx, esi
call fcn.7033c514
mov ecx, esi
mov edi, eax
call fcn.7033b5f5
test al, 2
je 0x7033e1a5
mov ecx, esi
call fcn.7033c488
test al, al
je 0x7033e1a2
push esi
push 0x8005
or edi, 4
call sym.UXCore.dll_void___stdcall_DirectUI::NotifyAccessibilityEvent_unsigned_long_int__class_DirectUI::Element__
jmp 0x7033e1a5
and edi, 0xfffffffb
test edi, 0x200000
je 0x7033e1c0
mov ecx, esi
call fcn.7033c4ab
test al, al
je 0x7033e1bd
or edi, 2
jmp 0x7033e1c0
and edi, 0xfffffffd
push edi
jmp 0x7033e3b3
mov ecx, dword [ebp + 0x10]
mov eax, 0xf000
test dword [ecx + 0xc], eax
je 0x7033e1e0
test dword [edi + 0xc], eax
jne 0x7033e1e0
push eax
mov ecx, esi
call sym.UXCore.dll_public:_void___thiscall_DirectUI::Element::StopAnimation_unsigned_int_
mov eax, dword [ebp + 0x10]
mov ebx, 0xf00
test dword [eax + 0xc], ebx
je 0x7033e52b
test dword [edi + 0xc], ebx
jne 0x7033e52b
push ebx
mov ecx, esi
call sym.UXCore.dll_public:_void___thiscall_DirectUI::Element::StopAnimation_unsigned_int_
jmp 0x7033e52b
mov ecx, esi
call fcn.7033c4f1
test al, al
je 0x7033e52b
push esi
push 0x800e
jmp 0x7033e15f
mov ecx, eax
sub ecx, 0x31
je 0x7033e36a
sub ecx, 3
je 0x7033e24f
sub ecx, 0xb
je 0x7033e241
dec ecx
jne 0x7033e52b
push 1
jmp 0x7033e243
push 0
mov ecx, esi
call sym.UXCore.dll_public:_void___thiscall_DirectUI::Element::EvaluateBindings_bool_
jmp 0x7033e52b
and dword [ebp - 0x14], 0
lea eax, [ebp - 0x14]
push eax
mov ecx, esi
call fcn.7033c55a
test eax, eax
je 0x7033e52b
push eax
call dword [sym.imp.MSVCR80.dll__wcsdup]
test eax, eax
pop ecx
mov dword [ebp - 0x10], eax
je 0x7033e362
mov ebx, dword [sym.imp.MSVCR80.dll_wcschr]
push 0x3b
push eax
call ebx
mov edi, eax
test edi, edi
pop ecx
pop ecx
je 0x7033e358
and word [edi], 0
inc edi
inc edi
push 0x3b
push edi
call ebx
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 8], eax
je 0x7033e358
and word [eax], 0
add dword [ebp - 8], 2
push 0
call dword [sym.imp.USER32.dll_GetDC]
mov ebx, eax
test ebx, ebx
je 0x7033e2c9
push 0x5a
push ebx
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
jmp 0x7033e2cc
push 0x60
pop eax
push eax
push 0xa
push 0
push dword [ebp - 0x10]
call dword [sym.imp.MSVCR80.dll_wcstol]
add esp, 0xc
push eax
call fcn.70336f65
push eax
mov ecx, esi
call fcn.7033dbb8
test ebx, ebx
je 0x7033e2f8
push ebx
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
cmp word [edi], 0
je 0x7033e341
mov eax, dword [sym.UXCore.dll_struct_DirectUI::PropertyInfo__DirectUI::Element::FontWeightProp]
mov ebx, dword [eax + 0xb0]
and dword [ebp - 0xc], 0
cmp dword [ebx], 0
je 0x7033e341
mov eax, ebx
push dword [eax]
push edi
call dword [sym.imp.MSVCR80.dll__wcsicmp]
test eax, eax
pop ecx
pop ecx
je 0x7033e333
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
lea eax, [ebx + eax*8]
cmp dword [eax], 0
jne 0x7033e314
jmp 0x7033e341
mov eax, dword [ebp - 0xc]
push dword [ebx + eax*8 + 4]
mov ecx, esi
call fcn.7033dbfc
cmp dword [ebp - 8], 0
je 0x7033e358
mov eax, dword [ebp - 8]
cmp word [eax], 0
je 0x7033e358
push eax
mov ecx, esi
call fcn.7033db70
push dword [ebp - 0x10]
call dword [sym.imp.MSVCR80.dll_free]
pop ecx
mov ecx, dword [ebp - 0x14]
jmp 0x7033ddaa
cmp eax, 0x31
mov ecx, esi
jne 0x7033e37c
movzx ebx, byte [edi + 0xc]
call fcn.7033b5f5
jmp 0x7033e387
call fcn.7033b63b
movzx ebx, al
mov eax, dword [edi + 0xc]
push eax
push ebx
mov ecx, esi
call fcn.7033b8c5
mov ecx, esi
call fcn.7033c4f1
test al, al
je 0x7033e52b
mov ecx, esi
call fcn.7033c514
test ebx, ebx
jne 0x7033e3af
or eax, 1
jmp 0x7033e3b2
and eax, 0xfffffffe
push eax
mov ecx, esi
call fcn.7033dc40
jmp 0x7033e52b
mov eax, dword [ecx + 0xbc]
sub eax, 0
je 0x7033e439
sub eax, 0x12
je 0x7033e411
dec eax
dec eax
jne 0x7033e52b
cmp word [edi + 4], 0xffff
mov ecx, esi
je 0x7033e3f5
call fcn.7033c537
test al, al
je 0x7033e52b
or byte [esi + 0x38], 4
push 3
jmp 0x7033e404
call fcn.7033c537
test al, al
je 0x7033e52b
push 0
mov eax, dword [esi]
push esi
mov ecx, esi
call dword [eax + 0x60]
jmp 0x7033e52b
cmp word [edi + 4], 0xffff
je 0x7033e52b
mov edi, dword [esi + 4]
call sym.UXCore.dll_GetGadgetFocus
cmp eax, edi
je 0x7033e52b
push dword [esi + 4]
call sym.UXCore.dll_SetGadgetFocus
jmp 0x7033e52b
mov eax, edi
mov eax, dword [eax + 0xc]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0x10]
mov ebx, dword [eax + 0xc]
xor edi, edi
cmp ebx, edi
mov dword [ebp - 0x10], edi
mov dword [ebp - 8], edi
mov dword [ebp - 0x18], esi
je 0x7033e487
lea eax, [ebp - 0x14]
push eax
mov ecx, ebx
call fcn.7033c3fc
test eax, eax
je 0x7033e473
mov edx, dword [eax]
push 1
lea ecx, [ebp - 0x18]
push ecx
push ebx
mov ecx, eax
call dword [edx + 0xc]
mov ecx, dword [ebp - 0x14]
call fcn.70313a92
mov ecx, ebx
xor edi, edi
call fcn.7033be4c
mov dword [ebp - 8], eax
cmp dword [ebp - 0xc], 0
je 0x7033e4f6
push dword [sym.UXCore.dll_unsigned_long_int_DirectUI::g_dwElSlot]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x7033e4c0
mov ebx, dword [eax + 0xc]
test ebx, ebx
je 0x7033e4c0
mov ecx, dword [ebx + 0x14]
test ecx, ecx
je 0x7033e4c0
cmp dword [ebx + 0x10], 0
je 0x7033e4c0
push esi
call fcn.7033c32a
mov ecx, dword [ebx + 0x10]
push esi
call fcn.7033c32a
mov ecx, dword [ebp - 0xc]
lea eax, [ebp - 0x14]
push eax
call fcn.7033c3fc
test eax, eax
je 0x7033e4e8
mov edx, dword [eax]
push 1
lea ecx, [ebp - 0x18]
push ecx
push dword [ebp - 0xc]
mov ecx, eax
call dword [edx + 8]
mov ecx, dword [ebp - 0x14]
call fcn.70313a92
mov ecx, dword [ebp - 0xc]
mov edi, dword [ecx + 4]
call fcn.7033be4c
mov dword [ebp - 0x10], eax
push 3
push 0
push edi
push dword [esi + 4]
call sym.UXCore.dll_SetGadgetParent
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 8], eax
je 0x7033e52b
cmp dword [ebp - 8], 0
je 0x7033e51b
push dword [ebp - 8]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x58]
cmp dword [ebp - 0x10], 0
je 0x7033e52b
push dword [ebp - 0x10]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x54]
mov eax, dword [esi + 8]
test eax, eax
je 0x7033e558
mov edi, dword [eax]
xor ebx, ebx
inc ebx
cmp edi, ebx
jb 0x7033e558
push dword [ebp + 0x14]
mov eax, dword [esi + 8]
push dword [ebp + 0x10]
mov ecx, dword [eax + ebx*4]
push dword [ebp + 0xc]
mov eax, dword [ecx]
push dword [ebp + 8]
push esi
call dword [eax + 0xc]
inc ebx
cmp ebx, edi
jbe 0x7033e53b
pop edi
pop esi
pop ebx
leave
ret 0x10