Function at 0x10017890
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1005eae9
mov eax, dword fs:[0]
push eax
sub esp, 0x60
push ebx
push esi
push edi
mov eax, dword [0x1008ab18]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov esi, ecx
mov dword [ebp - 0x18], esi
cmp dword [esi + 0x1c], 0
je 0x10017d2b
cmp byte [esi + 0x10], 0
je 0x10017d2b
lea ecx, [ebp - 0x14]
mov dword [ebp - 4], 0
call sym.ScCore.dll_public:_void___thiscall_ScCore::SimpleArray::constructor_void_
mov eax, dword [esi + 0x1c]
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 1
push dword [eax + 0x14]
call sym.ScCore.dll_protected:_class_ScCore::Refcountable____thiscall_ScCore::WeakRefBase::assign_class_ScCore::Refcountable__
mov eax, dword [esi + 0x1c]
mov esi, dword [eax + 0x10]
nop dword [eax + eax]
test esi, esi
je 0x10017970
mov eax, dword [esi + 0x38]
mov ecx, dword [ebp + 0xc]
test al, 0x20
je 0x10017916
test ecx, 0x8000000
je 0x1001796b
test ecx, 0x40000000
je 0x10017925
and eax, 0x10
jne 0x10017934
jmp 0x10017928
and eax, 0x10
test ecx, 0x20000000
je 0x1001796b
test eax, eax
jne 0x1001796b
mov eax, dword [ebp - 0x14]
mov edi, dword [esi + 0x10]
cmp dword [eax], 1
jle 0x1001794a
lea ecx, [ebp - 0x14]
call sym.ScCore.dll_private:_void___thiscall_ScCore::SimpleArray::unique_void_
mov eax, dword [ebp - 0x14]
test edi, edi
js 0x10017963
cmp edi, dword [eax + 4]
jge 0x10017963
lea ecx, [edi + 5]
lea ecx, [eax + ecx*4]
mov eax, dword [esi + 0x34]
mov dword [ecx], eax
mov esi, dword [esi + 8]
jmp 0x10017900
lea ecx, [eax + 0x10]
mov eax, dword [esi + 0x34]
mov dword [ecx], eax
mov esi, dword [esi + 8]
jmp 0x10017900
mov ebx, dword [ebp + 8]
xor esi, esi
mov eax, dword [ebp - 0x14]
cmp esi, dword [eax + 4]
jge 0x100179ba
cmp dword [eax], 1
jle 0x1001798d
lea ecx, [ebp - 0x14]
call sym.ScCore.dll_private:_void___thiscall_ScCore::SimpleArray::unique_void_
mov eax, dword [ebp - 0x14]
test esi, esi
js 0x1001799e
cmp esi, dword [eax + 4]
jge 0x1001799e
lea eax, [eax + esi*4]
add eax, 0x14
jmp 0x100179a1
add eax, 0x10
mov edi, dword [eax]
mov ecx, ebx
push edi
call sym.ScCore.dll_protected:_class_ScCore::Refcountable____thiscall_ScCore::WeakRefBase::assign_class_ScCore::Refcountable__
test eax, eax
jns 0x100179b7
push edi
mov ecx, ebx
call sym.ScCore.dll_protected:_class_ScCore::Refcountable____thiscall_ScCore::WeakRefBase::assign_class_ScCore::Refcountable__
inc esi
jmp 0x10017975
push 0
lea ecx, [ebp - 0x14]
call sym.ScCore.dll_protected:_class_ScCore::Refcountable____thiscall_ScCore::WeakRefBase::assign_class_ScCore::Refcountable__
mov ecx, dword [ebp - 0x18]
mov edi, dword [ecx + 0xc]
mov dword [ebp - 0x1c], edi
test edi, edi
je 0x10017a7a
mov ecx, dword [edi + 4]
lea esi, [edi + 4]
mov dword [ebp - 0x20], esi
test ecx, ecx
je 0x100179e7
call sym.ScCore.dll_public:_void___thiscall_ScCore::Lock::acquire_void_
mov eax, dword [edi]
lea ecx, [ebp - 0x14]
push dword [ebp + 0xc]
mov byte [ebp - 4], 2
push ecx
mov edi, dword [eax + 0x10]
mov ecx, edi
call dword [0x10063304]
mov ecx, dword [ebp - 0x1c]
call edi
test eax, eax
jne 0x10017a64
xor edi, edi
nop word [eax + eax]
mov eax, dword [ebp - 0x14]
cmp edi, dword [eax + 4]
jge 0x10017a5a
cmp dword [eax], 1
jle 0x10017a28
lea ecx, [ebp - 0x14]
call sym.ScCore.dll_private:_void___thiscall_ScCore::SimpleArray::unique_void_
mov eax, dword [ebp - 0x14]
test edi, edi
js 0x10017a39
cmp edi, dword [eax + 4]
jge 0x10017a39
lea eax, [eax + edi*4]
add eax, 0x14
jmp 0x10017a3c
add eax, 0x10
mov eax, dword [eax]
mov ecx, ebx
push eax
mov dword [ebp - 0x1c], eax
call sym.ScCore.dll_protected:_class_ScCore::Refcountable____thiscall_ScCore::WeakRefBase::assign_class_ScCore::Refcountable__
test eax, eax
jns 0x10017a57
push dword [ebp - 0x1c]
mov ecx, ebx
call sym.ScCore.dll_protected:_class_ScCore::Refcountable____thiscall_ScCore::WeakRefBase::assign_class_ScCore::Refcountable__
inc edi
jmp 0x10017a10
push 0
lea ecx, [ebp - 0x14]
call sym.ScCore.dll_protected:_class_ScCore::Refcountable____thiscall_ScCore::WeakRefBase::assign_class_ScCore::Refcountable__
mov ecx, dword [esi]
mov byte [ebp - 4], 3
test ecx, ecx
je 0x10017a73
call sym.ScCore.dll_public:_void___thiscall_ScCore::Lock::release_void_
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 4], 1
mov eax, dword [ecx + 0x1c]
mov eax, dword [eax + 4]
mov edi, dword [eax + 4]
dec edi
mov dword [ebp - 0x1c], edi
test edi, edi
js 0x10017b54
mov esi, dword [ecx + 0x1c]
mov eax, dword [esi + 4]
cmp dword [eax], 1
jle 0x10017aa2
lea ecx, [esi + 4]
call sym.ScCore.dll_private:_void___thiscall_ScCore::SimpleArray::unique_void_
mov esi, dword [esi + 4]
lea eax, [edi*4 + 0x14]
cmp edi, dword [esi + 4]
jl 0x10017ab6
mov eax, 0x10
mov esi, dword [esi + eax]
mov ecx, dword [esi + 8]
lea edi, [esi + 8]
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x24], edi
test ecx, ecx
je 0x10017ace
call sym.ScCore.dll_public:_void___thiscall_ScCore::Lock::acquire_void_
push dword [ebp + 0xc]
mov eax, dword [esi]
lea ecx, [ebp - 0x14]
mov esi, dword [ebp - 0x18]
push ecx
push esi
mov esi, dword [eax + 0x34]
mov ecx, esi
mov byte [ebp - 4], 4
call dword [0x10063304]
mov ecx, dword [ebp - 0x20]
call esi
mov ecx, dword [edi]
mov byte [ebp - 4], 5
test ecx, ecx
je 0x10017afe
call sym.ScCore.dll_public:_void___thiscall_ScCore::Lock::release_void_
mov byte [ebp - 4], 1
xor esi, esi
mov eax, dword [ebp - 0x14]
cmp esi, dword [eax + 4]
jge 0x10017b49
cmp dword [eax], 1
jle 0x10017b1c
lea ecx, [ebp - 0x14]
call sym.ScCore.dll_private:_void___thiscall_ScCore::SimpleArray::unique_void_
mov eax, dword [ebp - 0x14]
test esi, esi
js 0x10017b2d
cmp esi, dword [eax + 4]
jge 0x10017b2d
lea eax, [eax + esi*4]
add eax, 0x14
jmp 0x10017b30
add eax, 0x10
mov edi, dword [eax]
mov ecx, ebx
push edi
call sym.ScCore.dll_protected:_class_ScCore::Refcountable____thiscall_ScCore::WeakRefBase::assign_class_ScCore::Refcountable__
test eax, eax
jns 0x10017b46
push edi
mov ecx, ebx
call sym.ScCore.dll_protected:_class_ScCore::Refcountable____thiscall_ScCore::WeakRefBase::assign_class_ScCore::Refcountable__
inc esi
jmp 0x10017b04
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
jmp 0x10017a83
mov esi, dword [ebp + 8]
xor ebx, ebx
nop dword [eax]
mov eax, dword [esi]
cmp ebx, dword [eax + 4]
jge 0x10017c58
cmp dword [eax], 1
jle 0x10017b7a
mov ecx, esi
call sym.ScCore.dll_private:_void___thiscall_ScCore::SimpleArray::unique_void_
mov ecx, dword [ebp - 0x18]
test ebx, ebx
js 0x10017b8d
mov eax, dword [esi]
cmp ebx, dword [eax + 4]
jge 0x10017b8d
lea eax, [eax + ebx*4]
add eax, 0x14
jmp 0x10017b92
mov eax, dword [esi]
add eax, 0x10
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
mov eax, dword [ecx + 0x1c]
mov eax, dword [eax + 4]
mov edi, dword [eax + 4]
dec edi
test edi, edi
js 0x10017c30
mov esi, dword [ecx + 0x1c]
mov eax, dword [esi + 4]
cmp dword [eax], 1
jle 0x10017bbc
lea ecx, [esi + 4]
call sym.ScCore.dll_private:_void___thiscall_ScCore::SimpleArray::unique_void_
mov ecx, dword [esi + 4]
lea eax, [edi*4 + 0x14]
cmp edi, dword [ecx + 4]
jl 0x10017bd0
mov eax, 0x10
mov esi, dword [ecx + eax]
mov ecx, dword [esi + 8]
mov dword [ebp - 0x1c], esi
lea eax, [esi + 8]
mov dword [ebp - 0x24], eax
test ecx, ecx
je 0x10017be8
call sym.ScCore.dll_public:_void___thiscall_ScCore::Lock::acquire_void_
mov eax, dword [esi]
push dword [ebp - 0x20]
mov esi, dword [ebp - 0x18]
push esi
mov esi, dword [eax + 0x2c]
mov ecx, esi
mov byte [ebp - 4], 6
call dword [0x10063304]
mov ecx, dword [ebp - 0x1c]
call esi
cmp eax, 0x11
jne 0x10017c36
mov esi, dword [ebp + 8]
mov ecx, esi
push ebx
call sym.ScCore.dll_protected:_class_ScCore::Refcountable____thiscall_ScCore::WeakRefBase::assign_class_ScCore::Refcountable__
dec ebx
mov eax, dword [ebp - 0x1c]
mov byte [ebp - 4], 7
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x10017c29
call sym.ScCore.dll_public:_void___thiscall_ScCore::Lock::release_void_
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 4], 1
inc ebx
jmp 0x10017b60
mov eax, dword [ebp - 0x1c]
mov byte [ebp - 4], 8
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x10017c49
call sym.ScCore.dll_public:_void___thiscall_ScCore::Lock::release_void_
mov esi, dword [ebp + 8]
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 4], 1
jmp 0x10017ba0
lea edi, [ecx + 0x18]
push 0x6c6f456e
mov ecx, edi
call sym.ScCore.dll_protected:_class_ScCore::Refcountable____thiscall_ScCore::WeakRefBase::assign_class_ScCore::Refcountable__
test al, al
je 0x10017ccf
push esi
mov esi, dword [ebp - 0x18]
lea ecx, [ebp - 0x6c]
push 0x6c6f456e
push esi
call sym.ScCore.dll_protected:_class_ScCore::Refcountable____thiscall_ScCore::WeakRefBase::assign_class_ScCore::Refcountable__
mov eax, dword [ebp + 0xc]
mov ecx, edi
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x6c]
push eax
mov byte [ebp - 4], 9
call sym.ScCore.dll_protected:_class_ScCore::Refcountable____thiscall_ScCore::WeakRefBase::assign_class_ScCore::Refcountable__
mov esi, dword [ebp - 0x28]
lea ecx, [ebp - 0x3c]
call sym.ScCore.dll_protected:_class_ScCore::Refcountable____thiscall_ScCore::WeakRefBase::assign_class_ScCore::Refcountable__
lea ecx, [ebp - 0x5c]
call sym.ScCore.dll_protected:_class_ScCore::Refcountable____thiscall_ScCore::WeakRefBase::assign_class_ScCore::Refcountable__
lea ecx, [ebp - 0x6c]
call sym.ScCore.dll_public_virtual:_void___thiscall_ScCore::Root::destructor_void_
test esi, esi
je 0x10017ccf
lea ecx, [ebp - 0x14]
call sym.ScCore.dll_protected:_class_ScCore::Refcountable____thiscall_ScCore::WeakRefBase::assign_class_ScCore::Refcountable__
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea ecx, [ebp - 0x14]
call sym.ScCore.dll_protected:_class_ScCore::Refcountable____thiscall_ScCore::WeakRefBase::assign_class_ScCore::Refcountable__
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, 0x2d
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8