Function at 0x1001b860
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10058f7a
mov eax, dword fs:[0]
push eax
sub esp, 0x60
push ebx
push esi
push edi
mov eax, dword [0x10083a30]
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 - 0x1c], esi
cmp dword [esi + 0x1c], 0
je 0x1001bcf9
cmp byte [esi + 0x10], 0
je 0x1001bcf9
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]
mov ecx, dword [eax + 0x14]
push ecx
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 1
call sym.ScCore.dll_public:_static_class_ScCore::Encoder_const____cdecl_ScCore::Encoder::get_unsigned_short_int_const__
mov edx, dword [esi + 0x1c]
mov edi, dword [edx + 0x10]
mov ebx, dword [ebp + 0xc]
nop
test edi, edi
je 0x1001b935
mov eax, dword [edi + 0x38]
test al, 0x20
je 0x1001b8e3
test ebx, 0x8000000
je 0x1001b930
test ebx, 0x40000000
je 0x1001b8ef
test al, 0x10
jne 0x1001b8fb
test ebx, 0x20000000
je 0x1001b930
test al, 0x10
jne 0x1001b930
mov eax, dword [ebp - 0x14]
cmp dword [eax], 1
mov esi, dword [edi + 0x10]
jle 0x1001b911
lea ecx, [ebp - 0x14]
call sym.ScCore.dll_private:_void___thiscall_ScCore::SimpleArray::unique_void_
mov eax, dword [ebp - 0x14]
test esi, esi
js 0x1001b928
cmp esi, dword [eax + 4]
jge 0x1001b928
mov ecx, dword [edi + 0x34]
lea eax, [eax + esi*4 + 0x14]
mov dword [eax], ecx
mov edi, dword [edi + 8]
jmp 0x1001b8d0
mov ecx, dword [edi + 0x34]
add eax, 0x10
mov dword [eax], ecx
mov edi, dword [edi + 8]
jmp 0x1001b8d0
mov ebx, dword [ebp + 8]
xor edi, edi
lea ebx, [ebx]
mov eax, dword [ebp - 0x14]
cmp edi, dword [eax + 4]
jge 0x1001b983
cmp dword [eax], 1
jle 0x1001b958
lea ecx, [ebp - 0x14]
call sym.ScCore.dll_private:_void___thiscall_ScCore::SimpleArray::unique_void_
mov eax, dword [ebp - 0x14]
test edi, edi
js 0x1001b967
cmp edi, dword [eax + 4]
jge 0x1001b967
lea eax, [eax + edi*4 + 0x14]
jmp 0x1001b96a
add eax, 0x10
mov esi, dword [eax]
push esi
mov ecx, ebx
call sym.ScCore.dll_public:_static_class_ScCore::Encoder_const____cdecl_ScCore::Encoder::get_unsigned_short_int_const__
test eax, eax
jns 0x1001b980
push esi
mov ecx, ebx
call sym.ScCore.dll_public:_static_class_ScCore::Encoder_const____cdecl_ScCore::Encoder::get_unsigned_short_int_const__
inc edi
jmp 0x1001b940
push 0
lea ecx, [ebp - 0x14]
call sym.ScCore.dll_public:_static_class_ScCore::Encoder_const____cdecl_ScCore::Encoder::get_unsigned_short_int_const__
mov edx, dword [ebp - 0x1c]
mov esi, dword [edx + 0xc]
test esi, esi
je 0x1001ba2e
mov eax, dword [esi + 4]
lea ebx, [esi + 4]
mov dword [ebp - 0x20], ebx
test eax, eax
je 0x1001b9af
mov ecx, eax
call sym.ScCore.dll_public:_void___thiscall_ScCore::Lock::acquire_void_
mov ecx, dword [ebp + 0xc]
mov eax, dword [esi]
mov eax, dword [eax + 0x10]
push ecx
lea edx, [ebp - 0x14]
push edx
mov ecx, esi
mov byte [ebp - 4], 2
call eax
test eax, eax
jne 0x1001ba1f
xor edi, edi
lea ebx, [ebx]
mov eax, dword [ebp - 0x14]
cmp edi, dword [eax + 4]
jge 0x1001ba15
cmp dword [eax], 1
jle 0x1001b9e8
lea ecx, [ebp - 0x14]
call sym.ScCore.dll_private:_void___thiscall_ScCore::SimpleArray::unique_void_
mov eax, dword [ebp - 0x14]
test edi, edi
js 0x1001b9f7
cmp edi, dword [eax + 4]
jge 0x1001b9f7
lea eax, [eax + edi*4 + 0x14]
jmp 0x1001b9fa
add eax, 0x10
mov esi, dword [eax]
mov ecx, dword [ebp + 8]
push esi
call sym.ScCore.dll_public:_static_class_ScCore::Encoder_const____cdecl_ScCore::Encoder::get_unsigned_short_int_const__
test eax, eax
jns 0x1001ba12
mov ecx, dword [ebp + 8]
push esi
call sym.ScCore.dll_public:_static_class_ScCore::Encoder_const____cdecl_ScCore::Encoder::get_unsigned_short_int_const__
inc edi
jmp 0x1001b9d0
push 0
lea ecx, [ebp - 0x14]
call sym.ScCore.dll_public:_static_class_ScCore::Encoder_const____cdecl_ScCore::Encoder::get_unsigned_short_int_const__
mov ecx, dword [ebx]
mov byte [ebp - 4], 1
test ecx, ecx
je 0x1001ba2e
call sym.ScCore.dll_public:_void___thiscall_ScCore::Lock::release_void_
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x1c]
mov eax, dword [edx + 4]
mov edi, dword [eax + 4]
dec edi
mov dword [ebp - 0x18], edi
mov edi, edi
test edi, edi
js 0x1001bb03
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ecx + 0x1c]
mov edx, dword [esi + 4]
cmp dword [edx], 1
jle 0x1001ba5e
lea ecx, [esi + 4]
call sym.ScCore.dll_private:_void___thiscall_ScCore::SimpleArray::unique_void_
mov esi, dword [esi + 4]
lea eax, [esi + edi*4 + 0x14]
cmp edi, dword [esi + 4]
jl 0x1001ba6d
lea eax, [esi + 0x10]
mov esi, dword [eax]
test esi, esi
je 0x1001ba78
lea edi, [esi + 8]
jmp 0x1001ba7a
xor edi, edi
mov ecx, dword [edi]
mov dword [ebp - 0x20], edi
test ecx, ecx
je 0x1001ba88
call sym.ScCore.dll_public:_void___thiscall_ScCore::Lock::acquire_void_
mov ecx, dword [ebp + 0xc]
mov eax, dword [esi]
push ecx
mov ecx, dword [ebp - 0x1c]
lea edx, [ebp - 0x14]
push edx
mov edx, dword [eax + 0x34]
push ecx
mov ecx, esi
mov byte [ebp - 4], 3
call edx
mov ecx, dword [edi]
mov byte [ebp - 4], 1
test ecx, ecx
je 0x1001bab0
call sym.ScCore.dll_public:_void___thiscall_ScCore::Lock::release_void_
mov ebx, dword [ebp + 8]
xor edi, edi
mov eax, dword [ebp - 0x14]
cmp edi, dword [eax + 4]
jge 0x1001baf8
cmp dword [eax], 1
jle 0x1001bacd
lea ecx, [ebp - 0x14]
call sym.ScCore.dll_private:_void___thiscall_ScCore::SimpleArray::unique_void_
mov eax, dword [ebp - 0x14]
test edi, edi
js 0x1001badc
cmp edi, dword [eax + 4]
jge 0x1001badc
lea eax, [eax + edi*4 + 0x14]
jmp 0x1001badf
add eax, 0x10
mov esi, dword [eax]
push esi
mov ecx, ebx
call sym.ScCore.dll_public:_static_class_ScCore::Encoder_const____cdecl_ScCore::Encoder::get_unsigned_short_int_const__
test eax, eax
jns 0x1001baf5
push esi
mov ecx, ebx
call sym.ScCore.dll_public:_static_class_ScCore::Encoder_const____cdecl_ScCore::Encoder::get_unsigned_short_int_const__
inc edi
jmp 0x1001bab5
dec dword [ebp - 0x18]
mov edi, dword [ebp - 0x18]
jmp 0x1001ba40
xor esi, esi
mov dword [ebp - 0x18], esi
mov edi, dword [ebp + 8]
mov eax, dword [edi]
cmp esi, dword [eax + 4]
jge 0x1001bbe9
cmp dword [eax], 1
jle 0x1001bb22
mov ecx, edi
call sym.ScCore.dll_private:_void___thiscall_ScCore::SimpleArray::unique_void_
test esi, esi
js 0x1001bb33
mov eax, dword [edi]
cmp esi, dword [eax + 4]
jge 0x1001bb33
lea eax, [eax + esi*4 + 0x14]
jmp 0x1001bb38
mov eax, dword [edi]
add eax, 0x10
mov eax, dword [eax]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x1c]
mov dword [ebp - 0x20], eax
mov eax, dword [edx + 4]
mov ebx, dword [eax + 4]
dec ebx
test ebx, ebx
js 0x1001bbc6
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ecx + 0x1c]
mov edx, dword [esi + 4]
cmp dword [edx], 1
jle 0x1001bb64
lea ecx, [esi + 4]
call sym.ScCore.dll_private:_void___thiscall_ScCore::SimpleArray::unique_void_
mov esi, dword [esi + 4]
lea eax, [esi + ebx*4 + 0x14]
cmp ebx, dword [esi + 4]
jl 0x1001bb73
lea eax, [esi + 0x10]
mov esi, dword [eax]
test esi, esi
je 0x1001bb7e
lea edi, [esi + 8]
jmp 0x1001bb80
xor edi, edi
mov ecx, dword [edi]
mov dword [ebp - 0x24], edi
test ecx, ecx
je 0x1001bb8e
call sym.ScCore.dll_public:_void___thiscall_ScCore::Lock::acquire_void_
mov ecx, dword [ebp - 0x20]
mov eax, dword [esi]
mov edx, dword [ebp - 0x1c]
mov eax, dword [eax + 0x2c]
push ecx
push edx
mov ecx, esi
mov byte [ebp - 4], 4
call eax
cmp eax, 0x11
jne 0x1001bbd1
mov ecx, dword [ebp - 0x18]
push ecx
mov ecx, dword [ebp + 8]
call sym.ScCore.dll_public:_static_class_ScCore::Encoder_const____cdecl_ScCore::Encoder::get_unsigned_short_int_const__
mov ecx, dword [edi]
dec dword [ebp - 0x18]
mov byte [ebp - 4], 1
test ecx, ecx
je 0x1001bbc6
call sym.ScCore.dll_public:_void___thiscall_ScCore::Lock::release_void_
inc dword [ebp - 0x18]
mov esi, dword [ebp - 0x18]
jmp 0x1001bb08
mov ecx, dword [edi]
mov byte [ebp - 4], 1
test ecx, ecx
je 0x1001bb49
call sym.ScCore.dll_public:_void___thiscall_ScCore::Lock::release_void_
jmp 0x1001bb49
mov ebx, dword [ebp - 0x1c]
push 0x6c6f456e
lea ecx, [ebx + 0x18]
call sym.ScCore.dll_public:_static_class_ScCore::Encoder_const____cdecl_ScCore::Encoder::get_unsigned_short_int_const__
test al, al
je 0x1001bc99
push edi
push 0x6c6f456e
push ebx
lea ecx, [ebp - 0x6c]
call sym.ScCore.dll_public:_static_class_ScCore::Encoder_const____cdecl_ScCore::Encoder::get_unsigned_short_int_const__
mov edx, dword [ebp + 0xc]
lea eax, [ebp - 0x6c]
push eax
lea ecx, [ebx + 0x18]
mov byte [ebp - 4], 5
mov dword [ebp - 0x34], edx
call sym.ScCore.dll_public:_static_class_ScCore::Encoder_const____cdecl_ScCore::Encoder::get_unsigned_short_int_const__
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x1001bc75
mov esi, eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 6
call sym.ScCore.dll_public:_static_class_ScCore::Encoder_const____cdecl_ScCore::Encoder::get_unsigned_short_int_const__
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 7
call sym.ScCore.dll_public:_void___thiscall_ScCore::Variant::destructor_void_
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 1
call sym.ScCore.dll_public_virtual:_void___thiscall_ScCore::Root::destructor_void_
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0
call sym.ScCore.dll_public:_void___thiscall_ScCore::SimpleArray::destructor_void_
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 - 0x3c]
mov byte [ebp - 4], 8
call sym.ScCore.dll_public:_static_class_ScCore::Encoder_const____cdecl_ScCore::Encoder::get_unsigned_short_int_const__
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 9
call sym.ScCore.dll_public:_void___thiscall_ScCore::Variant::destructor_void_
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 1
call sym.ScCore.dll_public_virtual:_void___thiscall_ScCore::Root::destructor_void_
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0
call sym.ScCore.dll_public:_void___thiscall_ScCore::SimpleArray::destructor_void_
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