Function at 0x3013d62d
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push esi
mov esi, ecx
test byte [esi + 0x7d], 0x40
je 0x3013d64c
push dword [ebp + 0xc]
push dword [ebp + 8]
call main
jmp 0x3013d8b0
push ebx
push edi
push dword [sym.OFFDIAG.exe_unsigned_long_int_NetUI::g_dwElSlot]
call dword [sym.imp.kernel32.dll_TlsGetValue]
cmp byte [ebp + 0xc], 0
mov eax, dword [eax + 8]
mov dword [ebp - 0xc], eax
je 0x3013d778
test word [ebp + 8], 0x100
je 0x3013d700
test byte [esi + 0x7b], 0x10
je 0x3013d6b8
mov ecx, esi
call sym.OFFDIAG.exe_public:_int___thiscall_NetUI::Element::GetAnimation_void_
mov ebx, eax
mov edi, 0xf000
test edi, ebx
je 0x3013d6b8
call fcn.30159319
test al, al
jne 0x3013d6a3
push edi
mov ecx, esi
call main
test al, al
je 0x3013d6b8
test byte [esi + 0x7d], 0x80
je 0x3013d6b8
push 0x100f000
push ebx
mov ecx, esi
call main
jmp 0x3013d700
and dword [ebp - 8], 0
lea eax, [ebp - 8]
push eax
mov ecx, esi
call main
mov cl, byte [esi + 0x81]
test cl, 2
mov edi, dword [eax]
mov eax, dword [eax + 4]
mov ebx, dword [esi + 0x48]
mov edx, dword [esi + 0x4c]
je 0x3013d6df
inc edx
inc edx
test cl, 4
je 0x3013d6e6
dec eax
dec eax
push 0xb
push edx
push ebx
push eax
push edi
push dword [esi + 0x3c]
call main
mov ecx, dword [ebp - 8]
test ecx, ecx
je 0x3013d700
call sym.OFFDIAG.exe_public:_void___thiscall_NetUI::BaseValue::Release_void_
mov edi, dword [ebp + 8]
test di, 0x200
jne 0x3013d725
test di, 0x400
je 0x3013d72d
call fcn.30114587
test eax, eax
je 0x3013d72d
mov ecx, esi
call fcn.3013d0e8
test al, al
je 0x3013d72d
push dword [esi + 0x3c]
call main
test di, 0x800
je 0x3013d74c
mov ecx, esi
call sym.OFFDIAG.exe_public:_bool___thiscall_NetUI::Element::GetIsAccessible_void_
test al, al
je 0x3013d74c
push 0
push esi
push 0x800a
call main
test di, 0x1000
je 0x3013d8a1
mov ecx, esi
call sym.OFFDIAG.exe_public:_bool___thiscall_NetUI::Element::GetIsAccessible_void_
test al, al
je 0x3013d8a1
push 0
push esi
push 0x8004
call main
jmp 0x3013d8a1
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xb8]
test byte [ebp + 8], 0xf
mov dword [ebp - 8], eax
je 0x3013d8a1
test byte [ebp + 8], 1
je 0x3013d7aa
mov al, byte [esi + 0x79]
or byte [esi + 0x7c], 8
or dword [ebp + 8], 4
and al, 3
cmp al, 1
je 0x3013d7aa
or dword [ebp + 8], 2
test byte [ebp + 8], 4
je 0x3013d7cb
mov al, byte [esi + 0x7d]
and byte [esi + 0x7e], 0xe7
and al, 0xfd
or al, 1
mov byte [esi + 0x7d], al
mov al, byte [esi + 0x79]
and al, 3
cmp al, 1
je 0x3013d7cb
or dword [ebp + 8], 8
mov eax, dword [ebp + 8]
and eax, 0xa
test al, 2
mov dword [ebp - 4], eax
je 0x3013d7de
or eax, 8
mov dword [ebp - 4], eax
mov edi, dword [esi + 4]
test edi, edi
mov ebx, esi
je 0x3013d85a
test eax, eax
je 0x3013d85a
mov al, byte [esi + 0x79]
and al, 3
cmp al, 2
je 0x3013d85a
cmp dword [ebp - 8], 2
jne 0x3013d7fe
mov ecx, esi
jmp 0x3013d851
test byte [ebp - 4], 2
mov ebx, edi
je 0x3013d818
mov al, byte [edi + 0x7c]
test al, 8
je 0x3013d813
and dword [ebp - 4], 0xfffffffd
jmp 0x3013d818
or al, 8
mov byte [edi + 0x7c], al
test byte [ebp - 4], 8
je 0x3013d832
mov al, byte [edi + 0x7d]
test al, 3
je 0x3013d82b
and dword [ebp - 4], 0xfffffff7
jmp 0x3013d832
and al, 0xfd
or al, 1
mov byte [edi + 0x7d], al
and byte [edi + 0x7e], 0xe7
mov edi, dword [edi + 4]
test edi, edi
je 0x3013d85a
cmp dword [ebp - 4], 0
je 0x3013d85a
test byte [ebx + 0x79], 3
jne 0x3013d85a
cmp dword [ebp - 8], 2
jne 0x3013d7fe
mov ecx, ebx
call sym.OFFDIAG.exe_public:_bool___thiscall_NetUI::Element::GetIsAdaptable_void_
test al, al
je 0x3013d7fe
mov al, byte [ebx + 0x79]
and al, 3
cmp al, 1
je 0x3013d8a1
cmp dword [ebp - 8], 0
jne 0x3013d8a1
test byte [ebx + 0x7d], 0x80
jne 0x3013d875
cmp dword [ebx + 4], 0
je 0x3013d8a1
test byte [ebp - 4], 2
je 0x3013d88b
mov ecx, dword [ebp - 0xc]
push 1
push 1
push ebx
add ecx, 0x64
call main
test byte [ebp - 4], 8
je 0x3013d8a1
mov ecx, dword [ebp - 0xc]
push 1
push 1
push ebx
add ecx, 0x58
call main
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call main
pop edi
pop ebx
pop esi
leave
ret 8