Function at 0x59123e3c
Capabilities:
Get thread local storage value

Disassembly:
push 0x60
mov eax, 0x591c2060
call fcn.5911c518
mov esi, ecx
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov eax, 0x113
cmp ebx, eax
mov edi, 0x10f
ja 0x59124976
je 0x5913db98
cmp ebx, 0x7b
jbe 0x59123f6c
cmp ebx, 0x7e
je 0x5916b5d3
cmp ebx, 0x106
je 0x5916b5cb
cmp ebx, 0x10c
ja 0x5914ef67
push ebx
call fcn.59123eb8
test al, al
jne 0x5916b67e
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push ebx
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_DefWindowProcW]
call fcn.5911c54b
ret 0x10
je 0x5914ef59
cmp ebx, 0x20
jne 0x591272a2
call dword [sym.imp.USER32.dll_GetMessagePos]
movsx ecx, ax
shr eax, 0x10
movsx eax, ax
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x14]
push eax
push dword [ebp + 8]
mov dword [ebp - 0x14], ecx
call dword [sym.imp.USER32.dll_ScreenToClient]
push 0x40006
lea eax, [ebp - 0x14]
push eax
mov ecx, esi
call sym.MSNCore.dll_public:_class_DirectUI::Element____thiscall_DirectUI::HWNDElement::ElementFromPoint_struct_tagPOINT___unsigned_int_
mov esi, eax
test esi, esi
je 0x59123ea0
mov ecx, esi
call fcn.5913c325
test al, al
jne 0x59123ea0
push 2
push dword [sym.MSNCore.dll_struct_DirectUI::PropertyInfo__DirectUI::Element::CursorProp]
mov ecx, esi
call sym.MSNCore.dll_public:_class_DirectUI::Value____thiscall_DirectUI::Element::GetValue_struct_DirectUI::PropertyInfo_const___int_const
mov esi, eax
cmp word [esi + 4], 1
je 0x5913cac8
mov edi, dword [esi + 0xc]
mov ecx, esi
call fcn.5911cf70
test edi, edi
je 0x59123ff7
push edi
call dword [sym.imp.USER32.dll_SetCursor]
xor eax, eax
inc eax
jmp 0x59123eb0
mov eax, 0x30f
cmp ebx, eax
ja 0x5916b65f
je 0x5916b705
cmp ebx, 0x128
je 0x5915346c
cmp ebx, 0x280
jbe 0x59123e92
cmp ebx, 0x286
ja 0x5916b5e5
cmp ebx, edi
mov esi, dword [ebp + 0x14]
je 0x5916b60e
call sym.MSNCore.dll_public:_static_class_DirectUI::Element____stdcall_DirectUI::HWNDElement::GetKeyFocusedElement_void_
test eax, eax
jne 0x591597ab
cmp ebx, 0x282
je 0x59123ea0
cmp ebx, 0x281
je 0x59123ea0
jmp 0x5916b622
cmp ebx, 0x3d
je 0x5916b538
cmp ebx, 0x50
je 0x5916b526
cmp ebx, 0x53
jne 0x59123e92
jmp 0x5916b4c3
mov eax, dword [esi + 0xc]
test eax, eax
jl 0x5913cae5
cmp eax, 0xc
jae 0x5913cae5
movzx eax, word [eax*4 + 0x591d7528]
push eax
push 0
call dword [sym.imp.USER32.dll_LoadCursorW]
mov edi, eax
jmp 0x59123fe5
cmp ecx, 1
jne 0x591582ed
push ecx
push dword [esi + 0x40]
call dword [sym.imp.USER32.dll_KillTimer]
mov ecx, esi
call sym.MSNCore.dll_public:_void___thiscall_DirectUI::HWNDElement::DelayActivateTooltip_void_
jmp 0x59123ea0
dec ecx
jne 0x5915348a
mov ecx, dword [ebp + 0x10]
shr ecx, 0x10
not ecx
and ecx, eax
jmp 0x59153486
cmp ecx, dword [ebp + 8]
je 0x5916b531
jmp 0x59123ea0
cmp ebx, edi
ja 0x59123e92
jmp 0x591249ad
movzx ecx, word [ebp + 0x10]
dec ecx
movzx eax, word [esi + 0x4c]
movzx edx, ax
jne 0x5914ef43
mov ecx, dword [ebp + 0x10]
shr ecx, 0x10
or ecx, eax
mov word [esi + 0x4c], cx
cmp dx, word [esi + 0x4c]
je 0x59123ea0
push dword [esi + 4]
call sym.MSNCore.dll_InvalidateGadget
jmp 0x59123ea0
cmp ecx, 2
jne 0x59123ea0
push ecx
push dword [esi + 0x40]
call dword [sym.imp.USER32.dll_KillTimer]
xor edi, edi
cmp dword [esi + 0x50], edi
je 0x59123ea0
push edi
mov ecx, esi
call fcn.59123ecf
mov eax, dword [esi]
push edi
push edi
mov ecx, esi
call dword [eax + 0x60]
jmp 0x59123ea0
mov ecx, dword [sym.MSNCore.dll_unsigned_char__DirectUI::HWNDElement::IMEMessage]
and dword [ebp - 0x28], 0
mov dword [ebp - 0x44], ecx
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x30], ecx
push 1
lea ecx, [ebp - 0x48]
push ecx
mov ecx, eax
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x2c], esi
call sym.MSNCore.dll_public:_void___thiscall_DirectUI::Element::FireEvent_struct_DirectUI::Event___bool_
cmp byte [ebp - 0x40], 0
je 0x591249c5
jmp 0x5916b61a
call sym.MSNCore.dll_public:_static_class_DirectUI::Element____stdcall_DirectUI::HWNDElement::GetKeyFocusedElement_void_
mov edi, eax
xor ebx, ebx
cmp edi, ebx
jne 0x5916b509
mov dword [ebp - 0x10], ebx
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], ebx
call fcn.5912628c
push eax
mov ecx, esi
call fcn.59123800
cmp eax, ebx
je 0x5916b4f4
cmp dword [eax + 8], ebx
jbe 0x5916b4f4
mov eax, dword [eax + 0x10]
mov esi, dword [eax]
mov ecx, dword [ebp - 0x10]
or dword [ebp - 4], 0xffffffff
cmp ecx, ebx
mov edi, esi
je 0x5916b509
call fcn.5911cf70
mov dword [ebp - 0x10], ebx
mov eax, dword [sym.MSNCore.dll_unsigned_char__DirectUI::HWNDElement::Help]
mov dword [ebp - 0x20], eax
push 1
lea eax, [ebp - 0x24]
push eax
mov ecx, edi
call sym.MSNCore.dll_public:_void___thiscall_DirectUI::Element::FireEvent_struct_DirectUI::Event___bool_
mov ebx, dword [ebp + 0xc]
jmp 0x59123ea0
push 8
push dword [ebp + 0x14]
call dword [sym.imp.USER32.dll_ActivateKeyboardLayout]
xor eax, eax
jmp 0x59123eb0
push dword [sym.MSNCore.dll_unsigned_long_int_DirectUI::g_dwElSlot]
xor ebx, ebx
mov dword [ebp + 0xc], ebx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
cmp edi, ebx
je 0x5916b531
cmp byte [edi + 0x14], bl
jne 0x5916b561
push 2
push ebx
call dword [sym.imp.ole32.dll_CoInitializeEx]
mov byte [edi + 0x14], 1
mov eax, dword [ebp + 0x14]
cmp eax, ebx
je 0x5916b595
cmp eax, 0xfffffffc
je 0x5916b595
cmp eax, ebx
jle 0x5916b5c3
push eax
call sym.MSNCore.dll_LookupGadgetTicket
cmp eax, ebx
je 0x5916b5c3
push eax
call sym.MSNCore.dll_class_DirectUI::Element____stdcall_DirectUI::ElementFromGadget_struct_HGADGET____
cmp eax, ebx
je 0x5916b5c3
mov edx, dword [eax]
lea ecx, [ebp + 8]
push ecx
mov ecx, eax
mov dword [ebp + 8], ebx
call dword [edx + 0x6c]
jmp 0x5916b5a3
mov eax, dword [esi]
lea ecx, [ebp + 8]
push ecx
mov ecx, esi
mov dword [ebp + 8], ebx
call dword [eax + 0x6c]
test eax, eax
jl 0x5916b5c3
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x59178ab8
call sub.OLEACC.dll_LresultFromObject
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp + 0xc]
jmp 0x59123eb0
cmp ecx, 0x20
jmp 0x5916b654
push 1
push 0
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x59123ea0
cmp ebx, 0x288
je 0x591249ad
cmp ebx, 0x28f
jbe 0x59123e92
cmp ebx, 0x291
jbe 0x591249ad
jmp 0x59123e92
mov dword [ebp + 0x14], 0xfffff7ff
jmp 0x591249b8
mov eax, dword [ebp - 0x28]
jmp 0x59123eb0
cmp ebx, 0x10d
je 0x59123ea0
cmp ebx, edi
je 0x59123ea0
cmp ebx, 0x10e
je 0x59123ea0
cmp ebx, 0x291
je 0x59123ea0
cmp ebx, 0x290
jne 0x5916b531
jmp 0x59123ea0
mov eax, ebx
sub eax, 0x311
je 0x5916b6f2
sub eax, 9
je 0x5916b6e2
sub eax, 0xe6
jne 0x59123e92
jmp 0x5916b6cc
call sym.MSNCore.dll_public:_static_class_DirectUI::Element____stdcall_DirectUI::HWNDElement::GetKeyFocusedElement_void_
test eax, eax
je 0x5916b531
mov ecx, dword [sym.MSNCore.dll_unsigned_char__DirectUI::HWNDElement::IMEMessage]
and dword [ebp - 0x4c], 0
mov dword [ebp - 0x68], ecx
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x5c], ecx
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x54], ecx
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x50], ecx
push 1
lea ecx, [ebp - 0x6c]
push ecx
mov ecx, eax
mov dword [ebp - 0x58], ebx
call sym.MSNCore.dll_public:_void___thiscall_DirectUI::Element::FireEvent_struct_DirectUI::Event___bool_
cmp byte [ebp - 0x64], 0
je 0x5916b531
mov eax, dword [ebp - 0x4c]
jmp 0x59123eb0
push 0xffffffffffffffff
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_SetProcessWorkingSetSize]
jmp 0x5916b531
mov ecx, esi
call fcn.59157883
and dword [esi + 0x70], 0
jmp 0x59123ea0
cmp dword [esi + 0x48], 0
je 0x59123ea0
cmp ecx, dword [ebp + 8]
je 0x59123ea0
cmp dword [esi + 0x48], 0
je 0x59123ea0
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetDC]
push 0
push dword [esi + 0x48]
mov esi, dword [sym.imp.GDI32.dll_SelectPalette]
mov ebx, eax
push ebx
call esi
mov edi, dword [sym.imp.GDI32.dll_RealizePalette]
push ebx
mov dword [ebp + 0x14], eax
call edi
push 1
push dword [ebp + 0x14]
mov dword [ebp + 0x10], eax
push ebx
call esi
push ebx
call edi
push ebx
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_ReleaseDC]
cmp dword [ebp + 0x10], 0
je 0x5916b75f
push 1
push 0
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, dword [ebp + 0x10]
jmp 0x59123eb0