Function at 0x100103a0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10028760
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x25c
mov edx, dword [ebp + 0xc]
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov esi, ecx
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x168]
push ecx
push 0xff
xor edi, edi
push edx
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x44], edi
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
lea eax, [ebp - 0x168]
push 0x1003d9e0
push eax
call dword [sym.imp.MSVCRT.dll_fopen]
add esp, 8
cmp eax, edi
mov dword [ebp - 0x24], eax
jne 0x10010491
lea ecx, [ebp - 0x1c]
call sym.rlmfc.dll_protected:_void___thiscall_R_Exception::constructor_void_
lea ecx, [ebp - 0x168]
push ecx
lea edx, [ebp - 0x1c]
push str.Archive__s_not_found
mov esi, vtable.R_FileException_ArchiveNotFound.0
push edx
mov dword [ebp - 4], edi
mov dword [ebp - 0x1c], esi
call sym.rlmfc.dll_public:_void___cdecl_R_Exception::setError_char_const__
add esp, 0xc
mov al, byte [0x100625dc]
test al, 1
mov dword [ebp - 4], 1
jne 0x1001046e
mov dl, al
or dl, 1
mov ecx, 0x100625e0
mov byte [0x100625dc], dl
call fcn.10011220
push 0x10016090
mov dword [0x100625e0], esi
call fcn.100281de
add esp, 4
lea eax, [ebp - 0x1c]
push eax
mov ecx, 0x100625e0
call fcn.1000aa10
push 0x1002d1c0
lea ecx, [ebp - 0x54]
push ecx
mov dword [ebp - 0x54], 0x100625e0
call sub.MSVCRT.dll__CxxThrowException
mov ebx, dword [ebp + 8]
push eax
push 0x2c
lea edi, [ebx + 4]
push 1
push edi
call dword [sym.imp.MSVCRT.dll_fread]
add esp, 0x10
cmp eax, 0x2c
je 0x10010539
lea ecx, [ebp - 0x1c]
call sym.rlmfc.dll_protected:_void___thiscall_R_Exception::constructor_void_
lea edx, [ebp - 0x168]
push edx
lea eax, [ebp - 0x1c]
push str.Unable_to_read_data_from___s_
mov esi, vtable.R_FileException_UnableToReadData.0
push eax
mov dword [ebp - 4], 2
mov dword [ebp - 0x1c], esi
call sym.rlmfc.dll_public:_void___cdecl_R_Exception::setError_char_const__
add esp, 0xc
mov al, byte [0x100625ec]
test al, 1
mov dword [ebp - 4], 3
jne 0x10010516
mov dl, al
or dl, 1
mov ecx, 0x100625f0
mov byte [0x100625ec], dl
call fcn.10011220
push 0x10016080
mov dword [0x100625f0], esi
call fcn.100281de
add esp, 4
lea ecx, [ebp - 0x1c]
push ecx
mov ecx, 0x100625f0
call fcn.1000aa10
push 0x1002d1b0
lea edx, [ebp - 0x50]
push edx
mov dword [ebp - 0x50], 0x100625f0
call sub.MSVCRT.dll__CxxThrowException
mov eax, dword [ebx + 8]
push eax
push 0x24
lea ecx, [ebx + 0xc]
push ecx
mov ecx, esi
call sym.rlmfc.dll_private:_void___thiscall_R_File::decryptWithSeed_unsigned_char___int__int_
mov edx, dword [ebx + 0x20]
push 0x2c
push edi
mov ecx, esi
mov dword [ebp + 0xc], edx
mov dword [ebx + 0x20], 0
mov dword [ebp - 4], 4
call sym.rlmfc.dll_public:_unsigned_int___thiscall_R_File::CRC32_void_const___unsigned_int_
cmp eax, dword [ebp + 0xc]
je 0x100105f1
lea ecx, [ebp - 0x1c]
call sym.rlmfc.dll_protected:_void___thiscall_R_Exception::constructor_void_
lea eax, [ebp - 0x168]
push eax
lea ecx, [ebp - 0x1c]
push str.Archive___s__is_corrupted
mov esi, vtable.R_FileException_ArchiveCorrupted.0
push ecx
mov byte [ebp - 4], 5
mov dword [ebp - 0x1c], esi
call sym.rlmfc.dll_public:_void___cdecl_R_Exception::setError_char_const__
add esp, 0xc
mov al, byte [0x100625fc]
test al, 1
mov byte [ebp - 4], 6
jne 0x100105ce
or al, 1
mov ecx, 0x10062600
mov byte [0x100625fc], al
call fcn.10011220
push 0x10016070
mov dword [0x10062600], esi
call fcn.100281de
add esp, 4
lea edx, [ebp - 0x1c]
push edx
mov ecx, 0x10062600
call fcn.1000aa10
push 0x1002d1a0
lea eax, [ebp - 0x3c]
push eax
mov dword [ebp - 0x3c], 0x10062600
call sub.MSVCRT.dll__CxxThrowException
fld dword [sym.rlmfc.dll_float_const_R_File::RAS_ARCHIVE_VERSION]
fcomp dword [ebx + 0x1c]
fnstsw ax
test ah, 0x40
jne 0x100106b5
fld dword [sym.rlmfc.dll_float_const_R_File::RAS_ARCHIVE_VERSION]
sub esp, 8
fstp qword [esp]
call dword [sym.imp.MSVCRT.dll_floor]
mov ecx, dword [ebx + 0x1c]
fstp dword [ebp + 8]
mov dword [ebp + 0xc], ecx
add esp, 8
lea ecx, [ebp - 0x1c]
call sym.rlmfc.dll_protected:_void___thiscall_R_Exception::constructor_void_
fld dword [ebp + 8]
sub esp, 8
fstp qword [esp]
sub esp, 8
fld dword [ebp + 0xc]
lea edx, [ebp - 0x168]
fstp qword [esp]
push edx
lea eax, [ebp - 0x1c]
push str.Archive___s__is_v_1.2f_and_RL_module_is_v_1.2f___Update_your_archive
mov esi, vtable.R_FileException_ArchiveVersionConflict.0
push eax
mov byte [ebp - 4], 7
mov dword [ebp - 0x1c], esi
call sym.rlmfc.dll_public:_void___cdecl_R_Exception::setError_char_const__
add esp, 0x1c
mov al, byte [0x1006260c]
test al, 1
mov byte [ebp - 4], 8
jne 0x10010692
or al, 1
mov ecx, 0x10062610
mov byte [0x1006260c], al
call fcn.10011220
push 0x10016060
mov dword [0x10062610], esi
call fcn.100281de
add esp, 4
lea ecx, [ebp - 0x1c]
push ecx
mov ecx, 0x10062610
call fcn.1000aa10
push 0x1002d190
lea edx, [ebp - 0x5c]
push edx
mov dword [ebp - 0x5c], 0x10062610
call sub.MSVCRT.dll__CxxThrowException
lea eax, [ebp - 0x168]
push eax
lea ecx, [ebp - 0x268]
push str.R_File:_Archive__s
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
or ecx, 0xffffffff
xor eax, eax
lea edi, [ebp - 0x168]
repne scasb al, byte es:[edi]
not ecx
push ecx
call sub.MFC42.DLL_operatornew
mov edx, dword [sym.rlmfc.dll_int_R_Memory::sm_iNewCount]
add esp, 0x10
inc edx
test eax, eax
mov dword [ebp + 0xc], eax
mov dword [sym.rlmfc.dll_int_R_Memory::sm_iNewCount], edx
jne 0x10010736
lea ecx, [ebp - 0x1c]
call fcn.10005c80
lea edx, [ebp - 0x1c]
push str.Out_of_system_memory_resources
push edx
mov byte [ebp - 4], 9
mov dword [ebp - 0x1c], vtable.R_MemoryException_Allocation.0
call sym.rlmfc.dll_public:_void___cdecl_R_Exception::setError_char_const__
add esp, 8
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xa
call fcn.1000a970
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 4
call sym.rlmfc.dll_public_virtual:_void___thiscall_R_Exception::destructor_void_
mov edx, dword [ebp + 0xc]
or ecx, 0xffffffff
xor eax, eax
lea edi, [ebp - 0x168]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
shr ecx, 2
mov esi, edi
mov dword [ebx], edx
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x168]
push ecx
lea edx, [ebp - 0x268]
push str.R_File:_Archive__s:_File_info
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*2]
shl eax, 4
push eax
mov byte [ebp - 4], 0xb
call sub.MFC42.DLL_operatornew
mov ecx, dword [sym.rlmfc.dll_int_R_Memory::sm_iNewCount]
add esp, 0x10
mov esi, eax
inc ecx
test esi, esi
mov dword [sym.rlmfc.dll_int_R_Memory::sm_iNewCount], ecx
jne 0x100107dc
lea ecx, [ebp - 0x1c]
call fcn.10005c80
lea ecx, [ebp - 0x1c]
push str.Out_of_system_memory_resources
push ecx
mov byte [ebp - 4], 0xc
mov dword [ebp - 0x1c], vtable.R_MemoryException_Allocation.0
call sym.rlmfc.dll_public:_void___cdecl_R_Exception::setError_char_const__
add esp, 8
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xd
call fcn.1000a970
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xb
call sym.rlmfc.dll_public_virtual:_void___thiscall_R_Exception::destructor_void_
mov eax, dword [ebx + 0x14]
mov dword [ebp - 4], 4
push eax
mov dword [ebx + 0x30], esi
mov byte [ebp - 4], 0xf
call sub.MFC42.DLL_operatornew
mov ecx, dword [sym.rlmfc.dll_int_R_Memory::sm_iNewCount]
add esp, 4
mov esi, eax
inc ecx
test esi, esi
mov dword [sym.rlmfc.dll_int_R_Memory::sm_iNewCount], ecx
jne 0x10010845
lea ecx, [ebp - 0x1c]
call fcn.10005c80
lea edx, [ebp - 0x1c]
push str.Out_of_system_memory_resources
push edx
mov byte [ebp - 4], 0x10
mov dword [ebp - 0x1c], vtable.R_MemoryException_Allocation.0
call sym.rlmfc.dll_public:_void___cdecl_R_Exception::setError_char_const__
add esp, 8
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x11
call fcn.1000a970
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xf
call sym.rlmfc.dll_public_virtual:_void___thiscall_R_Exception::destructor_void_
mov dword [ebp - 0x20], esi
jmp 0x1001088b
mov esi, dword [ebx + 0x14]
mov eax, dword [ebp - 0x24]
mov edi, dword [ebp - 0x20]
push eax
mov ecx, esi
push ecx
push 1
push edi
mov dword [ebp - 4], 4
call dword [sym.imp.MSVCRT.dll_fread]
add esp, 0x10
cmp eax, esi
je 0x10010933
lea ecx, [ebp - 0x1c]
call sym.rlmfc.dll_protected:_void___thiscall_R_Exception::constructor_void_
lea edx, [ebp - 0x168]
push edx
lea eax, [ebp - 0x1c]
push str.Unable_to_read_data_from___s_
mov esi, vtable.R_FileException_UnableToReadData.0
push eax
mov byte [ebp - 4], 0x13
mov dword [ebp - 0x1c], esi
call sym.rlmfc.dll_public:_void___cdecl_R_Exception::setError_char_const__
add esp, 0xc
mov al, byte [0x100625ec]
test al, 1
mov byte [ebp - 4], 0x14
jne 0x10010910
or al, 1
mov ecx, 0x100625f0
mov byte [0x100625ec], al
call fcn.10011220
push 0x10016080
mov dword [0x100625f0], esi
call fcn.100281de
add esp, 4
lea ecx, [ebp - 0x1c]
push ecx
mov ecx, 0x100625f0
call fcn.1000aa10
push 0x1002d1b0
lea edx, [ebp - 0x4c]
push edx
mov dword [ebp - 0x4c], 0x100625f0
call sub.MSVCRT.dll__CxxThrowException
mov eax, dword [ebx + 8]
push eax
push esi
mov esi, dword [ebp - 0x2c]
push edi
mov ecx, esi
call sym.rlmfc.dll_private:_void___thiscall_R_File::decryptWithSeed_unsigned_char___int__int_
mov ecx, dword [ebx + 0x14]
push ecx
push edi
mov ecx, esi
call sym.rlmfc.dll_public:_unsigned_int___thiscall_R_File::CRC32_void_const___unsigned_int_
cmp eax, dword [ebx + 0x24]
je 0x100109d8
lea ecx, [ebp - 0x1c]
call sym.rlmfc.dll_protected:_void___thiscall_R_Exception::constructor_void_
lea edx, [ebp - 0x168]
push edx
lea eax, [ebp - 0x1c]
push str.Archive___s__is_corrupted
mov esi, vtable.R_FileException_ArchiveCorrupted.0
push eax
mov byte [ebp - 4], 0x15
mov dword [ebp - 0x1c], esi
call sym.rlmfc.dll_public:_void___cdecl_R_Exception::setError_char_const__
add esp, 0xc
mov al, byte [0x100625fc]
test al, 1
mov byte [ebp - 4], 0x16
jne 0x100109b5
or al, 1
mov ecx, 0x10062600
mov byte [0x100625fc], al
call fcn.10011220
push 0x10016070
mov dword [0x10062600], esi
call fcn.100281de
add esp, 4
lea ecx, [ebp - 0x1c]
push ecx
mov ecx, 0x10062600
call fcn.1000aa10
push 0x1002d1a0
lea edx, [ebp - 0x58]
push edx
mov dword [ebp - 0x58], 0x10062600
call sub.MSVCRT.dll__CxxThrowException
xor eax, eax
xor esi, esi
xor edi, edi
cmp edi, dword [ebx + 0xc]
jge 0x100109fa
mov ecx, dword [ebp - 0x20]
mov dl, byte [eax + ecx]
inc eax
test dl, dl
je 0x100109f1
inc esi
jmp 0x100109e3
add esi, 6
add eax, 0x28
inc edi
jmp 0x100109de
lea eax, [ebp - 0x168]
push eax
lea ecx, [ebp - 0x268]
push str.R_File:_Archive__s:_File_names
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
push esi
mov byte [ebp - 4], 0x17
call sub.MFC42.DLL_operatornew
mov ecx, dword [sym.rlmfc.dll_int_R_Memory::sm_iNewCount]
add esp, 0x10
mov edi, eax
inc ecx
test edi, edi
mov dword [sym.rlmfc.dll_int_R_Memory::sm_iNewCount], ecx
jne 0x10010a6f
lea ecx, [ebp - 0x1c]
call fcn.10005c80
lea edx, [ebp - 0x1c]
push str.Out_of_system_memory_resources
push edx
mov byte [ebp - 4], 0x18
mov dword [ebp - 0x1c], vtable.R_MemoryException_Allocation.0
call sym.rlmfc.dll_public:_void___cdecl_R_Exception::setError_char_const__
add esp, 8
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x19
call fcn.1000a970
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x17
call sym.rlmfc.dll_public_virtual:_void___thiscall_R_Exception::destructor_void_
xor eax, eax
xor esi, esi
mov dword [ebx + 0x38], edi
mov dword [ebp - 4], 4
mov dword [ebp - 0x38], eax
xor edx, edx
mov ecx, edi
mov dword [ebp - 0x28], eax
cmp eax, dword [ebx + 0xc]
jge 0x10010ba4
mov edi, dword [ebp - 0x20]
add ecx, edx
mov edx, dword [ebx + 0x30]
lea eax, [eax + eax*2]
add edi, esi
shl eax, 4
mov dword [eax + edx], ecx
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x30], ecx
mov dword [ebp + 0xc], 0
mov cl, byte [esi + eax]
inc esi
test cl, cl
mov ecx, dword [ebp + 0xc]
je 0x10010ac4
inc ecx
mov dword [ebp + 0xc], ecx
jmp 0x10010ab3
mov edx, dword [ebx + 0x30]
mov eax, dword [ebp - 0x20]
mov edi, dword [ebp - 0x28]
add ecx, 6
mov dword [ebp + 0xc], ecx
mov ecx, dword [esi + eax]
add esi, 4
lea edi, [edi + edi*2]
shl edi, 4
mov dword [edx + edi + 4], ecx
mov ecx, dword [esi + eax]
mov edx, dword [ebx + 0x30]
mov dword [edx + edi + 0xc], ecx
mov ecx, dword [esi + eax + 4]
mov edx, dword [ebx + 0x30]
mov dword [edx + edi + 0x10], ecx
mov edx, dword [ebx + 0x30]
add esi, 4
mov ecx, dword [esi + eax + 4]
mov dword [edx + edi + 0x14], ecx
mov edx, dword [ebx + 0x30]
add esi, 4
mov ecx, dword [esi + eax + 4]
mov dword [edx + edi + 0x18], ecx
mov edx, dword [ebx + 0x30]
add esi, 4
mov ecx, dword [esi + eax + 4]
mov dword [edx + edi + 0x1c], ecx
add esi, 4
add esi, 4
lea edx, [esi + eax]
mov eax, dword [ebx + 0x30]
lea ecx, [eax + edi + 0x20]
mov eax, dword [edx]
mov dword [ecx], eax
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov eax, dword [edx + 8]
mov dword [ecx + 8], eax
mov edx, dword [edx + 0xc]
mov dword [ecx + 0xc], edx
mov eax, dword [ebx + 0x30]
mov ecx, dword [eax + edi + 0x14]
mov edx, dword [eax + edi]
add eax, edi
push ecx
push str._05i
push edx
add esi, 0x10
call dword [sym.imp.MSVCRT.dll_sprintf]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebx + 0x30]
push eax
mov eax, dword [edx + edi]
push ecx
push eax
call dword [sym.imp.MSVCRT.dll_strncat]
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebx + 0x30]
mov dword [ecx + edi + 8], eax
mov edx, dword [ebx + 0x30]
mov ecx, dword [edx + edi + 0xc]
mov edx, dword [ebp + 0xc]
add eax, ecx
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x28]
add esp, 0x18
inc eax
mov dword [ebp - 0x28], eax
jmp 0x10010a87
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x10010bbf
push eax
call fcn.10028130
mov eax, dword [sym.rlmfc.dll_int_R_Memory::sm_iDeleteCount]
add esp, 4
inc eax
mov dword [sym.rlmfc.dll_int_R_Memory::sm_iDeleteCount], eax
lea eax, [ebp - 0x168]
push eax
lea ecx, [ebp - 0x268]
push str.R_File:_Archive__s:_Directory_info
push ecx
mov dword [ebp - 0x20], 0
call dword [sym.imp.MSVCRT.dll_sprintf]
mov eax, dword [ebx + 0x10]
lea edx, [eax + eax*2]
shl edx, 3
push edx
mov byte [ebp - 4], 0x1b
call sub.MFC42.DLL_operatornew
mov ecx, dword [sym.rlmfc.dll_int_R_Memory::sm_iNewCount]
add esp, 0x10
mov esi, eax
inc ecx
test esi, esi
mov dword [sym.rlmfc.dll_int_R_Memory::sm_iNewCount], ecx
jne 0x10010c44
lea ecx, [ebp - 0x1c]
call fcn.10005c80
lea eax, [ebp - 0x1c]
push str.Out_of_system_memory_resources
push eax
mov byte [ebp - 4], 0x1c
mov dword [ebp - 0x1c], vtable.R_MemoryException_Allocation.0
call sym.rlmfc.dll_public:_void___cdecl_R_Exception::setError_char_const__
add esp, 8
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x1d
call fcn.1000a970
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x1b
call sym.rlmfc.dll_public_virtual:_void___thiscall_R_Exception::destructor_void_
mov eax, dword [ebx + 0x18]
mov dword [ebp - 4], 4
push eax
mov dword [ebx + 0x34], esi
mov byte [ebp - 4], 0x1f
call sub.MFC42.DLL_operatornew
mov ecx, dword [sym.rlmfc.dll_int_R_Memory::sm_iNewCount]
add esp, 4
mov esi, eax
inc ecx
test esi, esi
mov dword [sym.rlmfc.dll_int_R_Memory::sm_iNewCount], ecx
jne 0x10010cad
lea ecx, [ebp - 0x1c]
call fcn.10005c80
lea ecx, [ebp - 0x1c]
push str.Out_of_system_memory_resources
push ecx
mov byte [ebp - 4], 0x20
mov dword [ebp - 0x1c], vtable.R_MemoryException_Allocation.0
call sym.rlmfc.dll_public:_void___cdecl_R_Exception::setError_char_const__
add esp, 8
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x21
call fcn.1000a970
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x1f
call sym.rlmfc.dll_public_virtual:_void___thiscall_R_Exception::destructor_void_
mov edx, dword [ebx + 0x18]
mov eax, dword [ebp - 0x24]
push eax
mov ecx, edx
push ecx
push 1
mov edi, esi
push esi
mov dword [ebp - 0x20], edi
mov dword [ebp - 4], 4
mov dword [ebp + 0xc], edx
call dword [sym.imp.MSVCRT.dll_fread]
mov ecx, dword [ebp + 0xc]
add esp, 0x10
cmp eax, ecx
je 0x10010d5d
lea ecx, [ebp - 0x1c]
call sym.rlmfc.dll_protected:_void___thiscall_R_Exception::constructor_void_
lea edx, [ebp - 0x168]
push edx
lea eax, [ebp - 0x1c]
push str.Unable_to_read_data_from___s_
mov esi, vtable.R_FileException_UnableToReadData.0
push eax
mov byte [ebp - 4], 0x23
mov dword [ebp - 0x1c], esi
call sym.rlmfc.dll_public:_void___cdecl_R_Exception::setError_char_const__
add esp, 0xc
mov al, byte [0x100625ec]
test al, 1
mov byte [ebp - 4], 0x24
jne 0x10010d3a
or al, 1
mov ecx, 0x100625f0
mov byte [0x100625ec], al
call fcn.10011220
push 0x10016080
mov dword [0x100625f0], esi
call fcn.100281de
add esp, 4
lea ecx, [ebp - 0x1c]
push ecx
mov ecx, 0x100625f0
call fcn.1000aa10
push 0x1002d1b0
lea edx, [ebp - 0x40]
push edx
mov dword [ebp - 0x40], 0x100625f0
call sub.MSVCRT.dll__CxxThrowException
mov eax, dword [ebx + 8]
mov ecx, dword [ebp + 0xc]
push eax
push ecx
mov ecx, dword [ebp - 0x2c]
push esi
call sym.rlmfc.dll_private:_void___thiscall_R_File::decryptWithSeed_unsigned_char___int__int_
mov edx, dword [ebx + 0x18]
mov ecx, dword [ebp - 0x2c]
push edx
push esi
call sym.rlmfc.dll_public:_unsigned_int___thiscall_R_File::CRC32_void_const___unsigned_int_
cmp eax, dword [ebx + 0x28]
je 0x10010e04
lea ecx, [ebp - 0x1c]
call sym.rlmfc.dll_protected:_void___thiscall_R_Exception::constructor_void_
lea eax, [ebp - 0x168]
push eax
lea ecx, [ebp - 0x1c]
push str.Archive__s_not_found
mov esi, vtable.R_FileException_ArchiveNotFound.0
push ecx
mov byte [ebp - 4], 0x25
mov dword [ebp - 0x1c], esi
call sym.rlmfc.dll_public:_void___cdecl_R_Exception::setError_char_const__
add esp, 0xc
mov al, byte [0x100625dc]
test al, 1
mov byte [ebp - 4], 0x26
jne 0x10010de1
or al, 1
mov ecx, 0x100625e0
mov byte [0x100625dc], al
call fcn.10011220
push 0x10016090
mov dword [0x100625e0], esi
call fcn.100281de
add esp, 4
lea edx, [ebp - 0x1c]
push edx
mov ecx, 0x100625e0
call fcn.1000aa10
push 0x1002d1c0
lea eax, [ebp - 0x48]
push eax
mov dword [ebp - 0x48], 0x100625e0
call sub.MSVCRT.dll__CxxThrowException
mov edx, dword [ebx + 0x10]
xor eax, eax
xor esi, esi
xor ecx, ecx
test edx, edx
jle 0x10010e2e
mov dl, byte [eax + edi]
inc eax
test dl, dl
je 0x10010e22
mov dl, byte [eax + edi]
inc esi
inc eax
test dl, dl
jne 0x10010e19
mov edx, dword [ebx + 0x10]
inc esi
add eax, 0x10
inc ecx
cmp ecx, edx
jl 0x10010e11
lea eax, [ebp - 0x168]
push eax
lea ecx, [ebp - 0x268]
push str.R_File:_Archive__s:_Directory_names
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
push esi
mov dword [ebp - 4], 0x28
call sub.MFC42.DLL_operatornew
mov ecx, dword [sym.rlmfc.dll_int_R_Memory::sm_iNewCount]
add esp, 0x10
mov esi, eax
inc ecx
test esi, esi
mov dword [sym.rlmfc.dll_int_R_Memory::sm_iNewCount], ecx
jne 0x10010ea6
lea ecx, [ebp - 0x68]
call fcn.10005c80
lea edx, [ebp - 0x68]
push str.Out_of_system_memory_resources
push edx
mov byte [ebp - 4], 0x29
mov dword [ebp - 0x68], vtable.R_MemoryException_Allocation.0
call sym.rlmfc.dll_public:_void___cdecl_R_Exception::setError_char_const__
add esp, 8
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x2a
call fcn.1000a970
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x28
call sym.rlmfc.dll_public_virtual:_void___thiscall_R_Exception::destructor_void_
mov dword [ebx + 0x3c], esi
mov edx, esi
xor esi, esi
xor ecx, ecx
xor eax, eax
cmp dword [ebx + 0x10], esi
jle 0x10010f6f
jmp 0x10010ec5
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
add edx, eax
add edi, ecx
mov dword [ebp - 0x34], edi
mov edi, dword [ebx + 0x34]
lea eax, [esi + esi*2]
shl eax, 3
mov dword [edi + eax], edx
mov dword [ebp - 0x30], edx
mov edx, dword [ebx + 0x34]
mov dword [edx + eax + 0x14], esi
mov edx, dword [ebp - 0x34]
mov al, byte [edx]
inc ecx
test al, al
mov dword [ebp + 0xc], 0
mov dword [ebp + 8], ecx
je 0x10010f07
inc dword [ebp + 0xc]
mov eax, dword [ebp - 0x20]
mov al, byte [ecx + eax]
inc ecx
test al, al
mov dword [ebp + 8], ecx
jne 0x10010ef6
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebx + 0x34]
inc eax
push eax
lea edi, [esi + esi*2]
push edx
shl edi, 3
mov edx, dword [ecx + edi]
push edx
mov dword [ebp + 0xc], eax
call dword [sym.imp.MSVCRT.dll_strncpy]
mov eax, dword [ebx + 0x34]
mov ecx, dword [eax + edi]
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov byte [ecx + edx - 1], 0
mov ecx, dword [ebp - 0x20]
lea edx, [eax + ecx]
mov ecx, dword [ebx + 0x34]
lea ecx, [ecx + edi + 4]
mov edi, dword [edx]
mov dword [ecx], edi
mov edi, dword [edx + 4]
mov dword [ecx + 4], edi
mov edi, dword [edx + 8]
mov dword [ecx + 8], edi
mov edx, dword [edx + 0xc]
mov edi, dword [ebp - 0x20]
add eax, 0x10
add esp, 0xc
mov dword [ecx + 0xc], edx
mov dword [ebp + 8], eax
mov eax, dword [ebx + 0x10]
inc esi
cmp esi, eax
jl 0x10010ebc
mov eax, dword [ebp - 0x24]
push eax
call dword [sym.imp.MSVCRT.dll_ftell]
mov edx, dword [ebx + 0xc]
add esp, 4
xor ecx, ecx
test edx, edx
jle 0x10010f9c
mov esi, dword [ebx + 0x30]
lea edx, [ecx + ecx*2]
shl edx, 4
lea edx, [edx + esi + 8]
add dword [edx], eax
mov edx, dword [ebx + 0xc]
inc ecx
cmp ecx, edx
jl 0x10010f85
test edi, edi
je 0x10010fb4
push edi
call fcn.10028130
mov eax, dword [sym.rlmfc.dll_int_R_Memory::sm_iDeleteCount]
add esp, 4
inc eax
mov dword [sym.rlmfc.dll_int_R_Memory::sm_iDeleteCount], eax
mov eax, dword [ebp - 0x24]
push eax
call dword [sym.imp.MSVCRT.dll_fclose]
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 0x30]
mov esi, dword [sym.imp.MSVCRT.dll_qsort]
push 0x10010210
push 0x30
push ecx
push edx
call esi
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x34]
push 0x10010210
push 0x18
push eax
push ecx
call esi
mov ecx, dword [ebp - 0xc]
add esp, 0x24
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 8