Function at 0x100ada10
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10118345
mov eax, dword fs:[0]
push eax
sub esp, 0x78
mov eax, dword [0x1014d0cc]
xor eax, esp
mov dword [esp + 0x70], eax
push ebx
push esi
push edi
mov eax, dword [0x1014d0cc]
xor eax, esp
push eax
lea eax, [esp + 0x88]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov esi, ecx
mov ecx, dword [ebp + 0xc]
push str.mapped_files
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], ecx
call fcn.1005d8c0
mov edi, eax
test edi, edi
mov dword [esp + 0x2c], edi
je 0x100adb7e
mov edx, dword [edi + 0x10]
and edx, 0xe0000000
cmp edx, 0x40000000
jne 0x100adb7e
mov eax, dword [esi + 0x34]
mov ecx, dword [eax + 4]
test ecx, ecx
mov edx, dword [edi + 0xc]
jne 0x100ada9c
xor eax, eax
jmp 0x100adaa4
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 5
cmp edx, eax
jne 0x100adb7e
push 0x90
call sub.MSVCR80.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x24], eax
test eax, eax
mov dword [esp + 0x90], 0
je 0x100adad8
mov ecx, dword [esi + 0x34]
push ecx
push eax
call fcn.10005a40
jmp 0x100adada
xor eax, eax
mov dword [esp + 0x90], 0xffffffff
mov ebx, dword [esi + 0x30]
test ebx, ebx
mov dword [esi + 0x30], eax
je 0x100adafe
push ebx
call fcn.100018f0
push ebx
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
add esp, 4
xor ebx, ebx
mov eax, dword [esi + 0x34]
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x100adb0e
xor eax, eax
jmp 0x100adb16
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 5
cmp ebx, eax
jge 0x100adb7e
mov eax, ebx
lea edx, [esp + 0x5c]
mov ecx, edi
call fcn.1005db10
mov dword [esp + 0x90], 1
cmp dword [esp + 0x70], 0
jne 0x100adb53
lea ecx, [esp + 0x5c]
mov dword [esp + 0x90], 0xffffffff
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
add ebx, 1
jmp 0x100adb00
mov edi, dword [esi + 0x30]
push ebx
lea eax, [esp + 0x60]
call fcn.1003f8a0
lea ecx, [esp + 0x5c]
mov dword [esp + 0x90], 0xffffffff
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov edi, dword [esp + 0x2c]
add ebx, 1
jmp 0x100adb00
mov eax, dword [esp + 0x18]
push str.file_priority
call fcn.1005d8c0
mov ebx, eax
test ebx, ebx
je 0x100adc51
mov edx, dword [ebx + 0x10]
and edx, 0xe0000000
cmp edx, 0x40000000
jne 0x100adc51
mov ecx, dword [esi + 0x30]
test ecx, ecx
mov eax, dword [ebx + 0xc]
je 0x100adbb9
mov esi, ecx
jmp 0x100adbbc
mov esi, dword [esi + 0x34]
mov edx, dword [esi + 4]
test edx, edx
jne 0x100adbc7
xor ecx, ecx
jmp 0x100adbcf
mov ecx, dword [esi + 8]
sub ecx, edx
sar ecx, 5
cmp eax, ecx
jne 0x100adc51
mov edi, dword [esp + 0x1c]
add edi, 0x38
push 0
mov ecx, edi
call fcn.100b4ae0
xor esi, esi
cmp dword [ebx + 0xc], esi
jle 0x100adc51
mov dword [esp + 0x14], esi
mov edx, dword [ebx]
add edx, dword [esp + 0x14]
je 0x100adc14
mov eax, dword [edx + 0x10]
and eax, 0xe0000000
cmp eax, 0x80000000
jne 0x100adc14
call fcn.1005d4f0
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], edx
jmp 0x100adc24
mov dword [esp + 0x24], 1
mov dword [esp + 0x28], 0
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x100adc34
mov eax, dword [edi + 8]
sub eax, ecx
cmp esi, eax
jb 0x100adc3a
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov ecx, dword [edi + 4]
mov dl, byte [esp + 0x24]
add dword [esp + 0x14], 0x14
mov byte [esi + ecx], dl
add esi, 1
cmp esi, dword [ebx + 0xc]
jl 0x100adbee
xor edi, edi
xor esi, esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
mov eax, dword [esp + 0x18]
push str.file_sizes
mov dword [esp + 0x94], 2
call fcn.1005d8c0
mov ecx, eax
cmp ecx, edi
mov dword [esp + 0x24], ecx
je 0x100adc93
mov eax, dword [ecx + 0x10]
and eax, 0xe0000000
cmp eax, 0x40000000
je 0x100adccd
mov eax, 1
test byte [0x10154fc8], al
jne 0x100adcc1
or dword [0x10154fc8], eax
push 0x101261b0
mov dword [0x10154fcc], 0x10129a10
call fcn.1010dee9
mov esi, dword [esp + 0x38]
add esp, 4
mov eax, 0x82
cmp esi, edi
jmp 0x100ae15c
cmp dword [ecx + 0xc], edi
mov dword [esp + 0x14], edi
jle 0x100addba
mov dword [esp + 0x2c], edi
mov eax, dword [ecx]
mov edx, dword [eax + edi + 0x10]
add eax, edi
and edx, 0xe0000000
cmp edx, 0x40000000
jne 0x100add88
cmp dword [eax + 0xc], 2
jne 0x100add88
mov esi, dword [eax]
mov eax, dword [esi + 0x10]
and eax, 0xe0000000
cmp eax, 0x80000000
jne 0x100add88
mov edx, dword [esi + 0x24]
and edx, 0xe0000000
cmp edx, eax
jne 0x100add88
lea edx, [esi + 0x14]
test edx, edx
je 0x100add41
mov eax, dword [edx + 0x10]
and eax, 0xe0000000
cmp eax, 0x80000000
jne 0x100add41
call fcn.1005d4f0
mov ebx, eax
mov edi, edx
jmp 0x100add45
xor ebx, ebx
xor edi, edi
test esi, esi
je 0x100add63
mov ecx, dword [esi + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x100add63
mov edx, esi
call fcn.1005d4f0
jmp 0x100add67
xor eax, eax
xor edx, edx
mov dword [esp + 0x64], ebx
lea ebx, [esp + 0x5c]
lea esi, [esp + 0x30]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], edx
mov dword [esp + 0x68], edi
call fcn.10026900
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
add eax, 1
add edi, 0x14
cmp eax, dword [ecx + 0xc]
mov dword [esp + 0x14], eax
mov dword [esp + 0x2c], edi
jl 0x100adcde
mov esi, dword [esp + 0x34]
test esi, esi
je 0x100addba
mov edx, dword [esp + 0x38]
sub edx, esi
sar edx, 4
jne 0x100addf2
mov eax, 1
test byte [0x10154fc8], al
jne 0x100adde8
or dword [0x10154fc8], eax
push 0x101261b0
mov dword [0x10154fcc], 0x10129a10
call fcn.1010dee9
mov esi, dword [esp + 0x38]
add esp, 4
mov eax, 0x83
jmp 0x100ae15a
mov edi, dword [esp + 0x18]
push str.slots
mov eax, edi
mov byte [esp + 0x16], 0
call fcn.1005d8c0
test eax, eax
je 0x100ade79
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x40000000
jne 0x100ade79
mov edx, dword [esp + 0x1c]
mov ebx, dword [eax + 0xc]
mov ecx, dword [edx + 0x34]
cmp ebx, dword [ecx + 0x88]
jne 0x100aded5
xor edi, edi
test ebx, ebx
mov byte [esp + 0x12], 1
jle 0x100aded5
mov esi, dword [eax]
test esi, esi
je 0x100aded0
mov edx, dword [esi + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x100aded0
mov edx, esi
call fcn.1005d4f0
test edx, edx
jl 0x100aded0
jg 0x100ade6d
test eax, eax
jb 0x100aded0
add edi, 1
add esi, 0x14
cmp edi, ebx
jl 0x100ade43
jmp 0x100aded5
push str.pieces
mov eax, edi
call fcn.1005d8c0
test eax, eax
je 0x100ae127
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x60000000
jne 0x100ae127
mov edx, dword [esp + 0x1c]
mov ecx, dword [eax + 0xc]
mov edx, dword [edx + 0x34]
cmp ecx, dword [edx + 0x88]
jne 0x100aded5
mov edx, dword [eax]
xor eax, eax
test ecx, ecx
mov byte [esp + 0x12], 1
jle 0x100aded5
test byte [eax + edx], 1
je 0x100aded0
add eax, 1
cmp eax, ecx
jl 0x100adec1
jmp 0x100aded5
mov byte [esp + 0x12], 0
mov eax, dword [esp + 0x18]
push eax
mov eax, str.allocation
lea ecx, [esp + 0x44]
mov byte [esp + 0x17], 0
call fcn.1005d7a0
push str.compact
push eax
mov byte [esp + 0x98], 3
call dword [sym.imp.MSVCP80.dll_bool___cdecl_std::operator__char__struct_std::char_traits_char___class_std::allocator_char___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_const__]
add esp, 8
lea ecx, [esp + 0x40]
mov bl, al
mov byte [esp + 0x90], 2
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
test bl, bl
je 0x100adf21
mov byte [esp + 0x13], 1
cmp byte [esp + 0x12], 0
je 0x100ae0be
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x30]
test eax, eax
jne 0x100adf3a
mov eax, dword [ecx + 0x34]
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x100adf45
xor edx, edx
jmp 0x100adf4d
mov edx, dword [eax + 8]
sub edx, ecx
sar edx, 5
mov ecx, dword [esp + 0x34]
test ecx, ecx
mov edi, dword [esp + 0x38]
jne 0x100adf5d
xor eax, eax
jmp 0x100adf64
mov eax, edi
sub eax, ecx
sar eax, 4
cmp edx, eax
je 0x100adfb4
test byte [0x10154fc8], 1
jne 0x100adf93
or dword [0x10154fc8], 1
push 0x101261b0
mov dword [0x10154fcc], 0x10129a10
call fcn.1010dee9
mov ecx, dword [esp + 0x38]
add esp, 4
test ecx, ecx
mov esi, dword [esp + 0x20]
mov eax, 0x85
mov edx, 0x10154fcc
mov dword [esi], eax
mov dword [esi + 4], edx
je 0x100ae175
push ecx
jmp 0x100ae16d
cmp ecx, edi
mov ebx, dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov esi, ecx
jbe 0x100adfc2
call ebx
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x30]
test eax, eax
mov edi, esi
jne 0x100adfd2
mov eax, dword [ecx + 0x34]
mov esi, dword [eax + 4]
cmp esi, dword [eax + 8]
mov dword [esp + 0x18], eax
jbe 0x100adfe4
call ebx
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x30]
test eax, eax
jne 0x100adfee
mov eax, dword [ecx + 0x34]
mov ecx, dword [eax + 8]
cmp dword [eax + 4], ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], ecx
jbe 0x100ae004
call ebx
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x18], eax
je 0x100ae00c
call ebx
cmp esi, dword [esp + 0x24]
je 0x100ae0be
mov ecx, dword [esp + 0x18]
cmp esi, dword [ecx + 8]
jb 0x100ae021
call ebx
test byte [esi + 0x18], 1
jne 0x100ae057
mov edx, dword [esp + 0x18]
cmp esi, dword [edx + 8]
jb 0x100ae032
call ebx
cmp edi, dword [esp + 0x38]
jb 0x100ae03a
call ebx
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
shld edx, eax, 0x10
shl eax, 0x10
mov cl, 0x10
call fcn.1010eb00
cmp eax, dword [edi]
jne 0x100ae072
cmp edx, dword [edi + 4]
jne 0x100ae072
mov eax, dword [esp + 0x18]
cmp esi, dword [eax + 8]
jb 0x100ae062
call ebx
add esi, 0x20
cmp edi, dword [esp + 0x38]
jb 0x100ae06d
call ebx
add edi, 0x10
jmp 0x100ae000
test byte [0x10154fc8], 1
jne 0x100ae099
or dword [0x10154fc8], 1
push 0x101261b0
mov dword [0x10154fcc], 0x10129a10
call fcn.1010dee9
add esp, 4
mov edx, dword [esp + 0x20]
mov eax, 0x86
mov dword [edx], eax
mov eax, dword [esp + 0x34]
test eax, eax
mov ecx, 0x10154fcc
mov dword [edx + 4], ecx
je 0x100ae175
push eax
jmp 0x100ae16d
mov edi, dword [esp + 0x1c]
mov eax, dword [edi + 0x2c]
mov al, byte [eax + 0x1d8]
mov edx, dword [esp + 0x20]
neg al
push edx
lea esi, [esp + 0x34]
sbb eax, eax
xor ecx, ecx
and eax, 2
cmp byte [esp + 0x17], cl
sete cl
or eax, ecx
push eax
sub esp, 0x1c
lea eax, [edi + 0x48]
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
mov eax, dword [edi + 0x30]
test eax, eax
jne 0x100ae104
mov eax, dword [edi + 0x34]
mov edx, esi
mov ecx, eax
call fcn.100ab820
mov bl, al
mov eax, dword [esp + 0x58]
add esp, 0x24
test eax, eax
je 0x100ae123
push eax
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
add esp, 4
mov al, bl
jmp 0x100ae177
mov eax, 1
test byte [0x10154fc8], al
jne 0x100ae155
or dword [0x10154fc8], eax
push 0x101261b0
mov dword [0x10154fcc], 0x10129a10
call fcn.1010dee9
mov esi, dword [esp + 0x38]
add esp, 4
mov eax, 0x84
test esi, esi
mov edx, dword [esp + 0x20]
mov ecx, 0x10154fcc
mov dword [edx], eax
mov dword [edx + 4], ecx
je 0x100ae175
push esi
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
add esp, 4
xor al, al
mov ecx, dword [esp + 0x88]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.1010defb
mov esp, ebp
pop ebp
ret 8