Function at 0x3013d8c8
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0xc]
sub esp, 0xc
dec eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0x10]
mov ebx, ecx
je 0x3013e25e
dec eax
je 0x3013d940
dec eax
jne 0x3013e27e
cmp dword [esi + 0x14], 0xd
jne 0x3013e27e
mov esi, dword [ebp + 0x14]
mov al, byte [esi + 8]
neg al
push 2
sbb eax, eax
and eax, 2
push eax
push dword [ebx + 0x3c]
call main
cmp byte [esi + 8], 0
jne 0x3013e27e
call sym.OFFDIAG.exe_public:_static_class_NetUI::Element____stdcall_NetUI::HWNDElement::GetKeyFocusedElement_void_
push eax
mov ecx, ebx
call main
test al, al
je 0x3013e27e
push 3
push 0xb
push 0
mov ecx, ebx
call main
jmp 0x3013e27e
mov eax, dword [esi + 0x14]
xor ecx, ecx
cmp eax, 0x2b
jg 0x3013dcc3
je 0x3013de69
cmp eax, 0x22
jg 0x3013dbe8
je 0x3013dbca
sub eax, 0xc
je 0x3013d98c
dec eax
dec eax
je 0x3013db58
dec eax
je 0x3013da62
dec eax
je 0x3013da21
sub eax, 6
je 0x3013d9a3
sub eax, 5
jne 0x3013e27e
mov edi, dword [ebp + 0x14]
mov eax, dword [esi + 0x14]
cmp eax, 0xe
jne 0x3013db96
mov al, byte [edi + 8]
jmp 0x3013dbb0
mov eax, dword [ebp + 0x14]
cmp byte [eax + 8], cl
je 0x3013e27e
test byte [ebx + 0x79], 0x80
je 0x3013e27e
mov esi, ebx
mov ecx, esi
call sym.OFFDIAG.exe_public:_bool___thiscall_NetUI::Element::GetIsAccessible_void_
test al, al
jne 0x3013d9df
push esi
call main
test eax, eax
je 0x3013d9d8
mov esi, dword [eax + 0x8c]
jmp 0x3013d9db
mov esi, dword [esi + 4]
test esi, esi
jne 0x3013d9bb
test esi, esi
je 0x3013e27e
mov ecx, esi
call sym.OFFDIAG.exe_public:_bool___thiscall_NetUI::Element::GetIsAccessible_void_
test al, al
je 0x3013e27e
mov eax, dword [ebx]
mov edi, dword [0x30262f04]
mov ecx, ebx
call dword [eax + 0x64]
mov edx, dword [eax]
push edi
mov ecx, eax
call dword [edx + 0x20]
mov byte [ebp - 0xc], al
push dword [ebp - 0xc]
push esi
push 0x8005
call main
jmp 0x3013e27e
mov eax, 0xf000
test dword [edi + 8], eax
je 0x3013da3b
mov ecx, dword [ebp + 0x14]
test dword [ecx + 8], eax
jne 0x3013da3b
push eax
mov ecx, ebx
call main
mov esi, 0xf00
test dword [edi + 8], esi
je 0x3013e27e
mov eax, dword [ebp + 0x14]
test dword [eax + 8], esi
jne 0x3013e27e
push esi
mov ecx, ebx
call main
jmp 0x3013e27e
xor edi, edi
test byte [ebx + 0x7b], 0x10
je 0x3013daee
mov ecx, ebx
call sym.OFFDIAG.exe_public:_int___thiscall_NetUI::Element::GetAnimation_void_
mov edi, eax
test edi, 0x1000000
je 0x3013dac2
call fcn.30159319
test al, al
je 0x3013dac2
test byte [ebx + 0x7d], 0x80
je 0x3013dac2
push 0xfffff00
push edi
mov ecx, ebx
call main
test di, 0x100
jne 0x3013e27e
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 8]
test eax, eax
je 0x3013e27e
push eax
push dword [ebx + 0x3c]
call main
jmp 0x3013e27e
test byte [ebx + 0x7b], 0x10
je 0x3013daee
mov esi, 0xf00
test esi, edi
je 0x3013daee
call fcn.30159319
test al, al
je 0x3013daee
test byte [ebx + 0x7d], 0x80
je 0x3013daee
push esi
push edi
mov ecx, ebx
call main
jmp 0x3013e27e
mov eax, dword [ebp + 0x14]
movzx eax, byte [eax + 8]
push eax
push dword [ebx + 0x3c]
call main
test byte [ebx + 0x7b], 0x10
je 0x3013e27e
test edi, 0x1000000
je 0x3013e27e
call sym.OFFDIAG.exe_public:_static_void___stdcall_NetUI::Node::StartDefer_void_
mov eax, dword [ebp + 0x14]
cmp dword [eax + 8], 0
mov ecx, ebx
jle 0x3013db3e
push dword [0x302619d4]
call main
push dword [0x30261a00]
mov ecx, ebx
call main
jmp 0x3013db4e
push 0
call main
push 1
mov ecx, ebx
call main
call sym.OFFDIAG.exe_public:_static_void___stdcall_NetUI::Node::EndDefer_void_
jmp 0x3013e27e
mov edi, dword [ebp + 0x14]
cmp word [edi + 4], 2
jne 0x3013d98f
cmp byte [edi + 8], cl
jne 0x3013d98f
call sym.OFFDIAG.exe_public:_static_class_NetUI::Element____stdcall_NetUI::HWNDElement::GetKeyFocusedElement_void_
push eax
mov ecx, ebx
call main
test al, al
je 0x3013d98f
push 3
push 0xb
push 0
mov ecx, ebx
call main
jmp 0x3013d98f
cmp eax, 0xc
mov al, byte [ebx + 0x7a]
jne 0x3013dbab
shr al, 4
and al, 1
mov byte [ebp - 0xc], al
mov eax, dword [edi + 8]
jmp 0x3013dbba
shr al, 4
and al, 1
mov byte [ebp - 0xc], al
movzx eax, byte [ebx + 0x79]
shr eax, 6
push eax
push dword [ebp - 0xc]
mov ecx, ebx
call main
jmp 0x3013e27e
mov eax, dword [ebp + 0x14]
cmp byte [eax + 8], cl
je 0x3013e27e
test byte [ebx + 0x7a], 2
je 0x3013e27e
push 0
push ebx
jmp 0x3013da12
sub eax, 0x25
je 0x3013dca7
dec eax
je 0x3013dc8b
dec eax
je 0x3013dc6f
dec eax
je 0x3013dc53
dec eax
je 0x3013dc37
dec eax
jne 0x3013e27e
mov eax, dword [ebp + 0x14]
cmp word [eax + 4], 0xe
jne 0x3013e27e
movzx eax, word [eax + 8]
push eax
mov ecx, ebx
call main
test eax, eax
je 0x3013e27e
push ebx
mov ecx, eax
call main
jmp 0x3013e27e
mov ecx, ebx
call sym.OFFDIAG.exe_public:_bool___thiscall_NetUI::Element::GetIsAccessible_void_
test al, al
je 0x3013e27e
push 0
push ebx
push 0x8012
jmp 0x3013da17
mov ecx, ebx
call sym.OFFDIAG.exe_public:_bool___thiscall_NetUI::Element::GetIsAccessible_void_
test al, al
je 0x3013e27e
push 0
push ebx
push 0x8011
jmp 0x3013da17
mov ecx, ebx
call sym.OFFDIAG.exe_public:_bool___thiscall_NetUI::Element::GetIsAccessible_void_
test al, al
je 0x3013e27e
push 0
push ebx
push 0x800e
jmp 0x3013da17
mov ecx, ebx
call sym.OFFDIAG.exe_public:_bool___thiscall_NetUI::Element::GetIsAccessible_void_
test al, al
je 0x3013e27e
push 0
push ebx
push 0x800d
jmp 0x3013da17
mov ecx, ebx
call sym.OFFDIAG.exe_public:_bool___thiscall_NetUI::Element::GetIsAccessible_void_
test al, al
je 0x3013e27e
push 0
push ebx
push 0x800c
jmp 0x3013da17
cmp eax, 0x38
jg 0x3013e085
je 0x3013e1c6
sub eax, 0x2c
je 0x3013de46
dec eax
dec eax
je 0x3013ddc8
dec eax
je 0x3013dd55
sub eax, 3
je 0x3013dd38
sub eax, 3
je 0x3013de69
dec eax
jne 0x3013e27e
test byte [ebx + 0x7b], 2
je 0x3013e27e
test byte [ebx + 0x7a], 0x80
je 0x3013de69
cmp dword [edi + 8], ecx
jne 0x3013e27e
cmp dword [edi + 0xc], ecx
jne 0x3013e27e
cmp dword [edi + 0x10], ecx
jne 0x3013e27e
cmp dword [edi + 0x14], ecx
je 0x3013de69
jmp 0x3013e27e
mov eax, dword [edi + 8]
mov ecx, dword [ebp + 0x14]
xor eax, dword [ecx + 8]
test al, 1
je 0x3013e27e
mov ecx, ebx
call sym.OFFDIAG.exe_public:_void___thiscall_NetUI::Element::NotifyDesiredSizeChanged_void_
jmp 0x3013e27e
mov eax, dword [ebp + 0x14]
cmp eax, dword [0x30026a7c]
jne 0x3013dda4
mov eax, dword [ebx + 4]
or byte [ebx + 0x81], 1
test eax, eax
je 0x3013dd7b
test byte [eax + 0x81], 1
jne 0x3013e27e
call fcn.301558a2
test al, al
je 0x3013e27e
push 0
push 1
push dword [0x3027f694]
push dword [0x30261ae4]
mov ecx, ebx
call main
jmp 0x3013e27e
lea esi, [ebx + 0x81]
test byte [esi], 1
je 0x3013ddc0
push 0
push 1
push dword [0x30261ae4]
mov ecx, ebx
call main
and byte [esi], 0xfe
jmp 0x3013e27e
mov ecx, dword [ebp + 0x14]
movzx eax, word [ecx + 4]
cmp ax, 0xa
mov byte [ebp - 2], 1
jne 0x3013ddf8
cmp byte [ecx + 8], 2
jne 0x3013de26
push ecx
mov esi, ecx
push ecx
add esi, 9
mov edi, esp
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
call main
shr eax, 0x18
cmp al, 0xff
je 0x3013de26
jmp 0x3013de22
cmp ax, 0xb
jne 0x3013de26
movzx eax, byte [ecx + 0x12]
shr eax, 3
and eax, 7
mov edi, eax
call sym.OFFDIAG.exe_public:_bool___thiscall_NetUI::Value::IsNull_void_const
test al, al
jne 0x3013de22
cmp edi, 1
je 0x3013de22
cmp edi, 2
je 0x3013de22
cmp edi, 6
jne 0x3013de26
mov byte [ebp - 2], 0
mov al, byte [ebp - 2]
neg al
mov ecx, 0x800
push ecx
sbb eax, eax
and eax, ecx
push eax
push dword [ebx + 0x3c]
call main
mov edi, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
jmp 0x3013de69
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx + 8]
mov eax, dword [edi + 8]
mov edx, ecx
xor edx, eax
test dl, 0x4f
je 0x3013e27e
test al, 0x40
je 0x3013de69
test cl, 0x40
jne 0x3013e27e
xor eax, eax
test byte [ebx + 0x7a], 0x40
mov dword [ebp - 8], eax
mov byte [ebp - 2], al
mov byte [ebp - 1], al
je 0x3013deaf
cmp esi, dword [0x30261a08]
jne 0x3013e27e
cmp dword [edi + 8], eax
jne 0x3013e27e
cmp dword [edi + 0xc], eax
jne 0x3013e27e
cmp dword [edi + 0x10], eax
jne 0x3013e27e
cmp dword [edi + 0x14], eax
jne 0x3013e27e
jmp 0x3013e03f
test byte [ebx + 0x7b], 2
je 0x3013dfa0
mov eax, dword [ebp + 8]
xor esi, esi
cmp eax, dword [0x30261adc]
mov dword [ebp - 0xc], esi
jne 0x3013defd
movzx eax, word [edi + 4]
mov ecx, dword [ebp + 0x14]
cmp ax, word [ecx + 4]
jne 0x3013deef
cmp ax, 6
jne 0x3013e27e
mov ecx, edi
call sym.OFFDIAG.exe_public:_bool___thiscall_NetUI::Value::IsNull_void_const
test al, al
je 0x3013e27e
push dword [ebp + 0x14]
lea ecx, [ebp - 0xc]
call main
mov esi, dword [ebp - 0xc]
test byte [ebx + 0x7a], 0x80
je 0x3013df1f
mov byte [ebp - 2], 1
mov byte [ebp - 1], 1
test esi, esi
je 0x3013e047
mov ecx, esi
call sym.OFFDIAG.exe_public:_void___thiscall_NetUI::BaseValue::Release_void_
jmp 0x3013e047
mov eax, dword [ebp + 8]
cmp eax, dword [0x30261af4]
jne 0x3013df32
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 8]
jmp 0x3013df39
mov ecx, ebx
call sym.OFFDIAG.exe_public:_int___thiscall_NetUI::Element::GetTextAlign_void_
mov ecx, eax
and ecx, 0xc
test al, 3
jne 0x3013df48
test byte [ebx + 0x7b], 8
je 0x3013df4c
mov byte [ebp - 2], 1
test ecx, ecx
jne 0x3013df56
test byte [ebx + 0x7b], 8
je 0x3013df5a
mov byte [ebp - 1], 1
cmp byte [ebp - 2], 0
je 0x3013df66
cmp byte [ebp - 1], 0
jne 0x3013df0b
test esi, esi
jne 0x3013df86
push esi
push 2
push dword [0x30261adc]
mov ecx, ebx
call main
push eax
lea ecx, [ebp - 0xc]
call main
mov esi, dword [ebp - 0xc]
movzx eax, word [esi + 4]
cmp ax, 0xb
je 0x3013dfb6
cmp ax, 0xa
je 0x3013dfb6
mov ecx, esi
call sym.OFFDIAG.exe_public:_void___thiscall_NetUI::BaseValue::Release_void_
mov esi, dword [ebp + 8]
mov eax, dword [0x30261ad8]
cmp esi, eax
jne 0x3013dfc3
push dword [ebp + 0x14]
lea ecx, [ebp - 8]
call main
jmp 0x3013dfd8
mov byte [ebp - 2], 1
mov byte [ebp - 1], 1
jmp 0x3013df13
push 0
push 2
push eax
mov ecx, ebx
call main
push eax
lea ecx, [ebp - 8]
call main
mov ecx, dword [ebp - 8]
movzx eax, word [ecx + 4]
cmp ax, 0xa
jne 0x3013dfeb
cmp byte [ecx + 8], 2
jne 0x3013e03f
cmp ax, 0xb
jne 0x3013e047
mov ecx, dword [ebp - 8]
call sym.OFFDIAG.exe_public:_bool___thiscall_NetUI::Value::IsNull_void_const
test al, al
jne 0x3013e047
mov eax, dword [ebp - 8]
movzx ecx, byte [eax + 0x12]
mov eax, ecx
and eax, 7
cmp eax, 2
je 0x3013e03f
cmp eax, 6
je 0x3013e03f
cmp eax, 7
je 0x3013e03f
test eax, eax
je 0x3013e026
cmp eax, 3
je 0x3013e026
cmp eax, 5
jne 0x3013e047
shr ecx, 3
and ecx, 7
cmp ecx, 4
je 0x3013e03f
mov eax, dword [ebp - 8]
test byte [eax + 0x13], 0x10
jne 0x3013e03f
cmp ecx, 5
jne 0x3013e047
mov byte [ebp - 1], 1
mov byte [ebp - 2], 1
mov al, byte [ebp - 1]
mov cl, byte [ebp - 2]
neg al
push 0x600
sbb eax, eax
and eax, 0x400
neg cl
sbb ecx, ecx
and ecx, 0x200
or eax, ecx
push eax
push dword [ebx + 0x3c]
call main
mov ecx, dword [ebp - 8]
test ecx, ecx
je 0x3013e27e
call sym.OFFDIAG.exe_public:_void___thiscall_NetUI::BaseValue::Release_void_
jmp 0x3013e27e
cmp eax, 0x44
je 0x3013e22a
cmp eax, 0x7e
jle 0x3013e27e
cmp eax, 0x80
jle 0x3013e1c6
cmp eax, 0x82
je 0x3013e1c6
cmp eax, 0x84
je 0x3013e16c
cmp eax, 0x85
je 0x3013e139
cmp eax, 0x88
jne 0x3013e27e
mov eax, dword [ebp + 0x14]
xor esi, esi
cmp byte [eax + 8], cl
je 0x3013e114
test byte [ebx + 0x79], 4
mov eax, dword [0x302614c8]
jne 0x3013e0e4
mov eax, dword [0x302614cc]
push esi
push 1
push eax
push dword [0x30261bc8]
mov ecx, ebx
call main
test byte [ebx + 0x79], 8
mov eax, dword [0x302614c8]
jne 0x3013e105
mov eax, dword [0x302614cc]
push esi
push 1
push eax
push dword [0x30261bc4]
jmp 0x3013dd98
push esi
push 1
push dword [0x30261bc8]
mov ecx, ebx
call main
push esi
push 1
push dword [0x30261bc4]
mov ecx, ebx
call main
jmp 0x3013e27e
xor esi, esi
push esi
mov ecx, ebx
call main
cmp eax, esi
je 0x3013e27e
cmp dword [edi + 8], esi
je 0x3013e27e
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 8], esi
je 0x3013e27e
fld dword [eax + 8]
push ecx
fstp dword [esp]
push dword [eax + 4]
jmp 0x3013e1ba
mov ecx, ebx
call sym.OFFDIAG.exe_public:_int___thiscall_NetUI::Element::GetCrossFadeDuration_void_
test eax, eax
je 0x3013e27e
cmp dword [edi + 8], 0xfffffffe
je 0x3013e27e
push 0
mov ecx, ebx
call main
test eax, eax
je 0x3013e1b1
cmp dword [eax], 0
je 0x3013e1b1
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx + 8]
cmp ecx, dword [eax + 4]
jne 0x3013e1b1
fld dword [eax + 8]
fld1
fsubrp st(1)
fstp dword [ebp - 0xc]
fld dword [ebp - 0xc]
jmp 0x3013e1b3
fldz
push ecx
fstp dword [esp]
push dword [edi + 8]
mov ecx, ebx
call main
jmp 0x3013e27e
and dword [ebp - 0xc], ecx
lea eax, [ebp - 0xc]
push eax
mov ecx, ebx
call main
mov ecx, ebx
call sym.OFFDIAG.exe_public:_int___thiscall_NetUI::Element::GetBorderStyle_void_
cmp eax, 3
mov esi, dword [ebp - 0xc]
je 0x3013e214
mov ecx, ebx
call sym.OFFDIAG.exe_public:_int___thiscall_NetUI::Element::GetShadowOpacity_void_
test eax, eax
jg 0x3013e214
mov ecx, ebx
call sym.OFFDIAG.exe_public:_int___thiscall_NetUI::Element::GetTextShadowOpacity_void_
test eax, eax
jg 0x3013e214
push esi
call main
test al, al
jne 0x3013e210
lea eax, [esi + 8]
push eax
call main
test eax, eax
jne 0x3013e214
xor al, al
jmp 0x3013e217
xor eax, eax
inc eax
push eax
mov ecx, ebx
call main
test esi, esi
je 0x3013e27e
mov ecx, esi
jmp 0x3013e07b
mov al, byte [ebx + 0x79]
and al, 3
cmp al, 1
jne 0x3013e27e
push dword [sym.OFFDIAG.exe_unsigned_long_int_NetUI::g_dwElSlot]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, dword [eax + 8]
push 1
push 0
push ebx
lea ecx, [esi + 0x64]
call main
push 1
push 0
push ebx
lea ecx, [esi + 0x58]
call main
jmp 0x3013e27e
mov eax, dword [esi + 0x14]
dec eax
je 0x3013e270
sub eax, 0x44
jne 0x3013e27e
mov eax, dword [ebx + 4]
push eax
push eax
jmp 0x3013e279
push dword [edi + 8]
mov eax, dword [ebp + 0x14]
push dword [eax + 8]
call main
push dword [ebp + 0x14]
mov ecx, ebx
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call main
pop edi
pop esi
pop ebx
leave
ret 0x10