Function at 0x1001b840
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 0x1001bcd9
cmp byte [esi + 0x10], 0
je 0x1001bcd9
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:_int___thiscall_ScCore::String::encode_char_const____int___class_ScCore::Encoder_const__const
mov edx, dword [esi + 0x1c]
mov edi, dword [edx + 0x10]
mov ebx, dword [ebp + 0xc]
nop
test edi, edi
je 0x1001b915
mov eax, dword [edi + 0x38]
test al, 0x20
je 0x1001b8c3
test ebx, 0x8000000
je 0x1001b910
test ebx, 0x40000000
je 0x1001b8cf
test al, 0x10
jne 0x1001b8db
test ebx, 0x20000000
je 0x1001b910
test al, 0x10
jne 0x1001b910
mov eax, dword [ebp - 0x14]
cmp dword [eax], 1
mov esi, dword [edi + 0x10]
jle 0x1001b8f1
lea ecx, [ebp - 0x14]
call sym.ScCore.dll_private:_void___thiscall_ScCore::SimpleArray::unique_void_
mov eax, dword [ebp - 0x14]
test esi, esi
js 0x1001b908
cmp esi, dword [eax + 4]
jge 0x1001b908
mov ecx, dword [edi + 0x34]
lea eax, [eax + esi*4 + 0x14]
mov dword [eax], ecx
mov edi, dword [edi + 8]
jmp 0x1001b8b0
mov ecx, dword [edi + 0x34]
add eax, 0x10
mov dword [eax], ecx
mov edi, dword [edi + 8]
jmp 0x1001b8b0
mov ebx, dword [ebp + 8]
xor edi, edi
lea ebx, [ebx]
mov eax, dword [ebp - 0x14]
cmp edi, dword [eax + 4]
jge 0x1001b963
cmp dword [eax], 1
jle 0x1001b938
lea ecx, [ebp - 0x14]
call sym.ScCore.dll_private:_void___thiscall_ScCore::SimpleArray::unique_void_
mov eax, dword [ebp - 0x14]
test edi, edi
js 0x1001b947
cmp edi, dword [eax + 4]
jge 0x1001b947
lea eax, [eax + edi*4 + 0x14]
jmp 0x1001b94a
add eax, 0x10
mov esi, dword [eax]
push esi
mov ecx, ebx
call sym.ScCore.dll_public:_int___thiscall_ScCore::String::encode_char_const____int___class_ScCore::Encoder_const__const
test eax, eax
jns 0x1001b960
push esi
mov ecx, ebx
call sym.ScCore.dll_public:_int___thiscall_ScCore::String::encode_char_const____int___class_ScCore::Encoder_const__const
inc edi
jmp 0x1001b920
push 0
lea ecx, [ebp - 0x14]
call sym.ScCore.dll_public:_int___thiscall_ScCore::String::encode_char_const____int___class_ScCore::Encoder_const__const
mov edx, dword [ebp - 0x1c]
mov esi, dword [edx + 0xc]
test esi, esi
je 0x1001ba0e
mov eax, dword [esi + 4]
lea ebx, [esi + 4]
mov dword [ebp - 0x20], ebx
test eax, eax
je 0x1001b98f
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 0x1001b9ff
xor edi, edi
lea ebx, [ebx]
mov eax, dword [ebp - 0x14]
cmp edi, dword [eax + 4]
jge 0x1001b9f5
cmp dword [eax], 1
jle 0x1001b9c8
lea ecx, [ebp - 0x14]
call sym.ScCore.dll_private:_void___thiscall_ScCore::SimpleArray::unique_void_
mov eax, dword [ebp - 0x14]
test edi, edi
js 0x1001b9d7
cmp edi, dword [eax + 4]
jge 0x1001b9d7
lea eax, [eax + edi*4 + 0x14]
jmp 0x1001b9da
add eax, 0x10
mov esi, dword [eax]
mov ecx, dword [ebp + 8]
push esi
call sym.ScCore.dll_public:_int___thiscall_ScCore::String::encode_char_const____int___class_ScCore::Encoder_const__const
test eax, eax
jns 0x1001b9f2
mov ecx, dword [ebp + 8]
push esi
call sym.ScCore.dll_public:_int___thiscall_ScCore::String::encode_char_const____int___class_ScCore::Encoder_const__const
inc edi
jmp 0x1001b9b0
push 0
lea ecx, [ebp - 0x14]
call sym.ScCore.dll_public:_int___thiscall_ScCore::String::encode_char_const____int___class_ScCore::Encoder_const__const
mov ecx, dword [ebx]
mov byte [ebp - 4], 1
test ecx, ecx
je 0x1001ba0e
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 0x1001bae3
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ecx + 0x1c]
mov edx, dword [esi + 4]
cmp dword [edx], 1
jle 0x1001ba3e
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 0x1001ba4d
lea eax, [esi + 0x10]
mov esi, dword [eax]
test esi, esi
je 0x1001ba58
lea edi, [esi + 8]
jmp 0x1001ba5a
xor edi, edi
mov ecx, dword [edi]
mov dword [ebp - 0x20], edi
test ecx, ecx
je 0x1001ba68
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 0x1001ba90
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 0x1001bad8
cmp dword [eax], 1
jle 0x1001baad
lea ecx, [ebp - 0x14]
call sym.ScCore.dll_private:_void___thiscall_ScCore::SimpleArray::unique_void_
mov eax, dword [ebp - 0x14]
test edi, edi
js 0x1001babc
cmp edi, dword [eax + 4]
jge 0x1001babc
lea eax, [eax + edi*4 + 0x14]
jmp 0x1001babf
add eax, 0x10
mov esi, dword [eax]
push esi
mov ecx, ebx
call sym.ScCore.dll_public:_int___thiscall_ScCore::String::encode_char_const____int___class_ScCore::Encoder_const__const
test eax, eax
jns 0x1001bad5
push esi
mov ecx, ebx
call sym.ScCore.dll_public:_int___thiscall_ScCore::String::encode_char_const____int___class_ScCore::Encoder_const__const
inc edi
jmp 0x1001ba95
dec dword [ebp - 0x18]
mov edi, dword [ebp - 0x18]
jmp 0x1001ba20
xor esi, esi
mov dword [ebp - 0x18], esi
mov edi, dword [ebp + 8]
mov eax, dword [edi]
cmp esi, dword [eax + 4]
jge 0x1001bbc9
cmp dword [eax], 1
jle 0x1001bb02
mov ecx, edi
call sym.ScCore.dll_private:_void___thiscall_ScCore::SimpleArray::unique_void_
test esi, esi
js 0x1001bb13
mov eax, dword [edi]
cmp esi, dword [eax + 4]
jge 0x1001bb13
lea eax, [eax + esi*4 + 0x14]
jmp 0x1001bb18
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 0x1001bba6
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ecx + 0x1c]
mov edx, dword [esi + 4]
cmp dword [edx], 1
jle 0x1001bb44
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 0x1001bb53
lea eax, [esi + 0x10]
mov esi, dword [eax]
test esi, esi
je 0x1001bb5e
lea edi, [esi + 8]
jmp 0x1001bb60
xor edi, edi
mov ecx, dword [edi]
mov dword [ebp - 0x24], edi
test ecx, ecx
je 0x1001bb6e
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 0x1001bbb1
mov ecx, dword [ebp - 0x18]
push ecx
mov ecx, dword [ebp + 8]
call sym.ScCore.dll_public:_int___thiscall_ScCore::String::encode_char_const____int___class_ScCore::Encoder_const__const
mov ecx, dword [edi]
dec dword [ebp - 0x18]
mov byte [ebp - 4], 1
test ecx, ecx
je 0x1001bba6
call sym.ScCore.dll_public:_void___thiscall_ScCore::Lock::release_void_
inc dword [ebp - 0x18]
mov esi, dword [ebp - 0x18]
jmp 0x1001bae8
mov ecx, dword [edi]
mov byte [ebp - 4], 1
test ecx, ecx
je 0x1001bb29
call sym.ScCore.dll_public:_void___thiscall_ScCore::Lock::release_void_
jmp 0x1001bb29
mov ebx, dword [ebp - 0x1c]
push 0x6c6f456e
lea ecx, [ebx + 0x18]
call sym.ScCore.dll_public:_int___thiscall_ScCore::String::encode_char_const____int___class_ScCore::Encoder_const__const
test al, al
je 0x1001bc79
push edi
push 0x6c6f456e
push ebx
lea ecx, [ebp - 0x6c]
call sym.ScCore.dll_public:_int___thiscall_ScCore::String::encode_char_const____int___class_ScCore::Encoder_const__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:_int___thiscall_ScCore::String::encode_char_const____int___class_ScCore::Encoder_const__const
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x1001bc55
mov esi, eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 6
call sym.ScCore.dll_public:_int___thiscall_ScCore::String::encode_char_const____int___class_ScCore::Encoder_const__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:_int___thiscall_ScCore::String::encode_char_const____int___class_ScCore::Encoder_const__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