Function at 0x1000bb40
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1001c868
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2a0
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x10], esp
mov esi, ecx
push 0x1002e7d0
xor ebx, ebx
push edi
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x14], ebx
call dword [sym.imp.MSVCRT.dll_fopen]
add esp, 8
cmp eax, ebx
mov dword [ebp - 0x24], eax
jne 0x1000bc17
lea ecx, [ebp - 0x154]
call sym.rlmfc.dll_protected:_void___thiscall_R_Exception::constructor_void_
push edi
lea eax, [ebp - 0x154]
push str.Archive__s_not_found
mov esi, vtable.R_FileException_ArchiveNotFound.0
push eax
mov dword [ebp - 4], ebx
mov dword [ebp - 0x154], esi
call sym.rlmfc.dll_public:_void___cdecl_R_Exception::setError_char_const__
add esp, 0xc
mov al, byte [0x10046a68]
test al, 1
mov dword [ebp - 4], 1
jne 0x1000bbf1
mov dl, al
or dl, 1
mov ecx, 0x10046a80
mov byte [0x10046a68], dl
call fcn.1000ac90
push 0x1000eb50
mov dword [0x10046a80], esi
call fcn.1001bef4
add esp, 4
lea ecx, [ebp - 0x154]
push ecx
mov ecx, 0x10046a80
call fcn.1000eec0
push 0x10021508
lea edx, [ebp - 0x38]
push edx
mov dword [ebp - 0x38], 0x10046a80
call sub.MSVCRT.dll__CxxThrowException
mov ebx, dword [ebp + 8]
push eax
push 1
lea edi, [ebx + 4]
push 0x28
push edi
call dword [sym.imp.MSVCRT.dll_fread]
mov eax, dword [ebx + 8]
add esp, 0x10
push eax
push 0x20
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 0x28
push edi
mov ecx, esi
mov dword [ebp - 0x1c], edx
mov dword [ebx + 0x20], 0
mov dword [ebp - 4], 2
call sym.rlmfc.dll_public:_unsigned_int___thiscall_R_File::CRC32_void_const___unsigned_int_
cmp eax, dword [ebp - 0x1c]
je 0x1000bced
lea ecx, [ebp - 0x154]
call sym.rlmfc.dll_protected:_void___thiscall_R_Exception::constructor_void_
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x154]
push str.Archive__s_is_corrupted
mov esi, vtable.R_FileException_ArchiveCorrupted.0
push ecx
mov byte [ebp - 4], 3
mov dword [ebp - 0x154], esi
call sym.rlmfc.dll_public:_void___cdecl_R_Exception::setError_char_const__
add esp, 0xc
mov al, byte [0x100463a8]
test al, 1
mov byte [ebp - 4], 4
jne 0x1000bcc7
or al, 1
mov ecx, 0x100463c0
mov byte [0x100463a8], al
call fcn.1000ac90
push 0x1000eb20
mov dword [0x100463c0], esi
call fcn.1001bef4
add esp, 4
lea edx, [ebp - 0x154]
push edx
mov ecx, 0x100463c0
call fcn.1000eec0
push 0x10021818
lea eax, [ebp - 0x30]
push eax
mov dword [ebp - 0x30], 0x100463c0
call sub.MSVCRT.dll__CxxThrowException
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]
fstp qword [ebp - 0x48]
fld dword [ebx + 0x1c]
fstp qword [esp]
call dword [sym.imp.MSVCRT.dll_floor]
fcomp qword [ebp - 0x48]
add esp, 8
fnstsw ax
test ah, 0x40
jne 0x1000bde1
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]
fstp dword [ebp + 8]
fld dword [ebx + 0x1c]
fstp qword [esp]
call dword [sym.imp.MSVCRT.dll_floor]
add esp, 8
fstp dword [ebp - 0x1c]
lea ecx, [ebp - 0x154]
call sym.rlmfc.dll_protected:_void___thiscall_R_Exception::constructor_void_
fld dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
sub esp, 8
fstp qword [esp]
sub esp, 8
fld dword [ebp - 0x1c]
lea edx, [ebp - 0x154]
fstp qword [esp]
push ecx
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 edx
mov byte [ebp - 4], 5
mov dword [ebp - 0x154], esi
call sym.rlmfc.dll_public:_void___cdecl_R_Exception::setError_char_const__
add esp, 0x1c
mov al, byte [0x100464c8]
test al, 1
mov byte [ebp - 4], 6
jne 0x1000bdbb
or al, 1
mov ecx, 0x100464e0
mov byte [0x100464c8], al
call fcn.1000ac90
push 0x1000eb10
mov dword [0x100464e0], esi
call fcn.1001bef4
add esp, 4
lea eax, [ebp - 0x154]
push eax
mov ecx, 0x100464e0
call fcn.1000eec0
push 0x10021808
lea ecx, [ebp - 0x4c]
push ecx
mov dword [ebp - 0x4c], 0x100464e0
call sub.MSVCRT.dll__CxxThrowException
mov edi, dword [ebp + 0xc]
push edi
lea edx, [ebp - 0x1a4]
push str.R_File:_Archive__s
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
call sub.MFC42.DLL_operatornew
add esp, 0x10
test eax, eax
mov dword [ebp - 0x20], eax
jne 0x1000be5b
lea ecx, [ebp - 0x154]
call fcn.1000ac70
lea eax, [ebp - 0x154]
push str.Out_of_system_memory_resources
push eax
mov byte [ebp - 4], 7
mov dword [ebp - method.R_MemoryException_Allocation.virtual_0], vtable.R_MemoryException_Allocation.0
call sym.rlmfc.dll_public:_void___cdecl_R_Exception::setError_char_const__
add esp, 8
lea ecx, [ebp - 0x154]
mov byte [ebp - 4], 8
call fcn.1000ee60
lea ecx, [ebp - 0x154]
mov byte [ebp - 4], 2
call sym.rlmfc.dll_public_virtual:_void___thiscall_R_Exception::destructor_void_
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp + 0xc]
mov dword [ebx], ecx
or ecx, 0xffffffff
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
shr ecx, 2
mov esi, edi
mov edi, dword [ebp - 0x20]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push edx
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x1a4]
push str.R_File:_Archive__s:_File_info
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
mov eax, dword [ebx + 0xc]
lea edx, [eax + eax*2]
shl edx, 4
push edx
mov byte [ebp - 4], 9
call sub.MFC42.DLL_operatornew
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x1000befd
lea ecx, [ebp - 0x154]
call fcn.1000ac70
lea eax, [ebp - 0x154]
push str.Out_of_system_memory_resources
push eax
mov byte [ebp - 4], 0xa
mov dword [ebp - method.R_MemoryException_Allocation.virtual_0], vtable.R_MemoryException_Allocation.0
call sym.rlmfc.dll_public:_void___cdecl_R_Exception::setError_char_const__
add esp, 8
lea ecx, [ebp - 0x154]
mov byte [ebp - 4], 0xb
call fcn.1000ee60
lea ecx, [ebp - 0x154]
mov byte [ebp - 4], 9
call sym.rlmfc.dll_public_virtual:_void___thiscall_R_Exception::destructor_void_
mov eax, dword [ebx + 0x14]
mov dword [ebp - 4], 2
push eax
mov dword [ebx + 0x2c], esi
mov byte [ebp - 4], 0xd
call sub.MFC42.DLL_operatornew
mov esi, eax
add esp, 4
test esi, esi
jne 0x1000bf68
lea ecx, [ebp - 0x154]
call fcn.1000ac70
lea ecx, [ebp - 0x154]
push str.Out_of_system_memory_resources
push ecx
mov byte [ebp - 4], 0xe
mov dword [ebp - method.R_MemoryException_Allocation.virtual_0], vtable.R_MemoryException_Allocation.0
call sym.rlmfc.dll_public:_void___cdecl_R_Exception::setError_char_const__
add esp, 8
lea ecx, [ebp - 0x154]
mov byte [ebp - 4], 0xf
call fcn.1000ee60
lea ecx, [ebp - 0x154]
mov byte [ebp - 4], 0xd
call sym.rlmfc.dll_public_virtual:_void___thiscall_R_Exception::destructor_void_
mov dword [ebp - 0x14], esi
jmp 0x1000bf98
mov edx, dword [ebp - 0x24]
mov eax, dword [ebx + 0x14]
mov esi, dword [ebp - 0x14]
push edx
push 1
push eax
push esi
mov dword [ebp - 4], 2
call dword [sym.imp.MSVCRT.dll_fread]
mov ecx, dword [ebx + 8]
mov edx, dword [ebx + 0x14]
mov edi, dword [ebp - 0x2c]
add esp, 0x10
push ecx
push edx
push esi
mov ecx, edi
call sym.rlmfc.dll_private:_void___thiscall_R_File::decryptWithSeed_unsigned_char___int__int_
mov eax, dword [ebx + 0x14]
push eax
push esi
mov ecx, edi
call sym.rlmfc.dll_public:_unsigned_int___thiscall_R_File::CRC32_void_const___unsigned_int_
cmp eax, dword [ebx + 0x24]
je 0x1000c067
lea ecx, [ebp - 0x154]
call sym.rlmfc.dll_protected:_void___thiscall_R_Exception::constructor_void_
mov ecx, dword [ebp + 0xc]
push ecx
lea edx, [ebp - 0x154]
push str.Archive__s_is_corrupted
mov esi, vtable.R_FileException_ArchiveCorrupted.0
push edx
mov byte [ebp - 4], 0x11
mov dword [ebp - 0x154], esi
call sym.rlmfc.dll_public:_void___cdecl_R_Exception::setError_char_const__
add esp, 0xc
mov al, byte [0x100463a8]
test al, 1
mov byte [ebp - 4], 0x12
jne 0x1000c041
or al, 1
mov ecx, 0x100463c0
mov byte [0x100463a8], al
call fcn.1000ac90
push 0x1000eb20
mov dword [0x100463c0], esi
call fcn.1001bef4
add esp, 4
lea eax, [ebp - 0x154]
push eax
mov ecx, 0x100463c0
call fcn.1000eec0
push 0x10021818
lea ecx, [ebp - 0x40]
push ecx
mov dword [ebp - 0x40], 0x100463c0
call sub.MSVCRT.dll__CxxThrowException
xor eax, eax
xor esi, esi
xor edi, edi
cmp edi, dword [ebx + 0xc]
jge 0x1000c089
mov edx, dword [ebp - 0x14]
mov cl, byte [eax + edx]
inc eax
test cl, cl
je 0x1000c080
inc esi
jmp 0x1000c072
add esi, 6
add eax, 0x28
inc edi
jmp 0x1000c06d
mov edx, dword [ebp + 0xc]
push edx
lea eax, [ebp - 0x1a4]
push str.R_File:_Archive__s:_File_names
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
push esi
mov byte [ebp - 4], 0x13
call sub.MFC42.DLL_operatornew
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x1000c0fd
lea ecx, [ebp - 0x154]
call fcn.1000ac70
lea ecx, [ebp - 0x154]
push str.Out_of_system_memory_resources
push ecx
mov byte [ebp - 4], 0x14
mov dword [ebp - method.R_MemoryException_Allocation.virtual_0], vtable.R_MemoryException_Allocation.0
call sym.rlmfc.dll_public:_void___cdecl_R_Exception::setError_char_const__
add esp, 8
lea ecx, [ebp - 0x154]
mov byte [ebp - 4], 0x15
call fcn.1000ee60
lea ecx, [ebp - 0x154]
mov byte [ebp - 4], 0x13
call sym.rlmfc.dll_public_virtual:_void___thiscall_R_Exception::destructor_void_
xor eax, eax
xor esi, esi
mov dword [ebx + 0x34], edi
mov dword [ebp - 4], 2
mov dword [ebp - 0x1c], eax
xor edx, edx
mov ecx, edi
mov dword [ebp - 0x28], eax
cmp eax, dword [ebx + 0xc]
jge 0x1000c232
mov edi, dword [ebp - 0x14]
add ecx, edx
lea edx, [eax + eax*2]
mov eax, dword [ebx + 0x2c]
add edi, esi
shl edx, 4
mov dword [edx + eax], ecx
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x18], 0
mov cl, byte [esi + eax]
inc esi
test cl, cl
mov ecx, dword [ebp - 0x18]
je 0x1000c152
inc ecx
mov dword [ebp - 0x18], ecx
jmp 0x1000c141
mov edx, dword [ebx + 0x2c]
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
add ecx, 6
mov dword [ebp - 0x18], ecx
mov ecx, dword [esi + eax]
add esi, 4
lea edi, [edi + edi*2]
shl edi, 4
mov dword [edi + edx + 4], ecx
mov ecx, dword [esi + eax]
mov edx, dword [ebx + 0x2c]
mov dword [edi + edx + 0xc], ecx
mov ecx, dword [esi + eax + 4]
mov edx, dword [ebx + 0x2c]
mov dword [edi + edx + 0x10], ecx
mov edx, dword [ebx + 0x2c]
add esi, 4
mov ecx, dword [esi + eax + 4]
mov dword [edi + edx + 0x14], ecx
mov edx, dword [ebx + 0x2c]
add esi, 4
mov ecx, dword [esi + eax + 4]
mov dword [edi + edx + 0x18], ecx
mov edx, dword [ebx + 0x2c]
add esi, 4
mov ecx, dword [esi + eax + 4]
mov dword [edi + edx + 0x1c], ecx
add esi, 4
add esi, 4
lea edx, [esi + eax]
mov eax, dword [ebx + 0x2c]
lea ecx, [edi + eax + 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 + 0x2c]
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 - 0x18]
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebx + 0x2c]
push eax
mov eax, dword [edi + edx]
push ecx
push eax
call dword [sym.imp.MSVCRT.dll_strncat]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebx + 0x2c]
mov dword [edi + ecx + 8], eax
mov edx, dword [ebx + 0x2c]
mov ecx, dword [edi + edx + 0xc]
mov edx, dword [ebp - 0x18]
add eax, ecx
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x28]
add esp, 0x18
inc eax
mov dword [ebp - 0x28], eax
jmp 0x1000c115
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x1000c242
push eax
call fcn.1001be40
add esp, 4
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x1a4]
push str.R_File:_Archive__s:_Directory_info
push ecx
mov dword [ebp - 0x14], 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], 0x17
call sub.MFC42.DLL_operatornew
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x1000c2c6
lea ecx, [ebp - 0x154]
call fcn.1000ac70
lea eax, [ebp - 0x154]
push str.Out_of_system_memory_resources
push eax
mov byte [ebp - 4], 0x18
mov dword [ebp - method.R_MemoryException_Allocation.virtual_0], vtable.R_MemoryException_Allocation.0
call sym.rlmfc.dll_public:_void___cdecl_R_Exception::setError_char_const__
add esp, 8
lea ecx, [ebp - 0x154]
mov byte [ebp - 4], 0x19
call fcn.1000ee60
lea ecx, [ebp - 0x154]
mov byte [ebp - 4], 0x17
call sym.rlmfc.dll_public_virtual:_void___thiscall_R_Exception::destructor_void_
mov eax, dword [ebx + 0x18]
mov dword [ebp - 4], 2
push eax
mov dword [ebx + 0x30], esi
mov byte [ebp - 4], 0x1b
call sub.MFC42.DLL_operatornew
mov esi, eax
add esp, 4
test esi, esi
jne 0x1000c331
lea ecx, [ebp - 0x154]
call fcn.1000ac70
lea ecx, [ebp - 0x154]
push str.Out_of_system_memory_resources
push ecx
mov byte [ebp - 4], 0x1c
mov dword [ebp - method.R_MemoryException_Allocation.virtual_0], vtable.R_MemoryException_Allocation.0
call sym.rlmfc.dll_public:_void___cdecl_R_Exception::setError_char_const__
add esp, 8
lea ecx, [ebp - 0x154]
mov byte [ebp - 4], 0x1d
call fcn.1000ee60
lea ecx, [ebp - 0x154]
mov byte [ebp - 4], 0x1b
call sym.rlmfc.dll_public_virtual:_void___thiscall_R_Exception::destructor_void_
mov edx, dword [ebp - 0x24]
mov eax, dword [ebx + 0x18]
push edx
push 1
push eax
mov edi, esi
push esi
mov dword [ebp - 0x14], edi
mov dword [ebp - 4], 2
call dword [sym.imp.MSVCRT.dll_fread]
mov ecx, dword [ebx + 8]
mov edx, dword [ebx + 0x18]
add esp, 0x10
push ecx
mov ecx, dword [ebp - 0x2c]
push edx
push esi
call sym.rlmfc.dll_private:_void___thiscall_R_File::decryptWithSeed_unsigned_char___int__int_
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebp - 0x2c]
push eax
push esi
call sym.rlmfc.dll_public:_unsigned_int___thiscall_R_File::CRC32_void_const___unsigned_int_
cmp eax, dword [ebx + 0x28]
je 0x1000c401
lea ecx, [ebp - 0x154]
call sym.rlmfc.dll_protected:_void___thiscall_R_Exception::constructor_void_
mov ecx, dword [ebp + 0xc]
push ecx
lea edx, [ebp - 0x154]
push str.Archive__s_not_found
mov esi, vtable.R_FileException_ArchiveNotFound.0
push edx
mov byte [ebp - 4], 0x1f
mov dword [ebp - 0x154], esi
call sym.rlmfc.dll_public:_void___cdecl_R_Exception::setError_char_const__
add esp, 0xc
mov al, byte [0x10046a68]
test al, 1
mov byte [ebp - 4], 0x20
jne 0x1000c3db
or al, 1
mov ecx, 0x10046a80
mov byte [0x10046a68], al
call sym.rlmfc.dll_protected:_void___thiscall_R_Exception::constructor_void_
push 0x1000eb50
mov dword [0x10046a80], esi
call fcn.1001bef4
add esp, 4
lea eax, [ebp - 0x154]
push eax
mov ecx, 0x10046a80
call fcn.1000eec0
push 0x10021508
lea ecx, [ebp - 0x34]
push ecx
mov dword [ebp - 0x34], 0x10046a80
call sub.MSVCRT.dll__CxxThrowException
mov edx, dword [ebx + 0x10]
xor eax, eax
xor esi, esi
xor ecx, ecx
test edx, edx
jle 0x1000c42b
mov dl, byte [eax + edi]
inc eax
test dl, dl
je 0x1000c41f
mov dl, byte [eax + edi]
inc esi
inc eax
test dl, dl
jne 0x1000c416
mov edx, dword [ebx + 0x10]
inc esi
add eax, 0x10
inc ecx
cmp ecx, edx
jl 0x1000c40e
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x1a4]
push str.R_File:_Archive__s:_Directory_names
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
push esi
mov dword [ebp - 4], 0x22
call sub.MFC42.DLL_operatornew
mov edx, eax
add esp, 0x10
test edx, edx
jne 0x1000c4d5
lea ecx, [ebp - 0x2ac]
call fcn.1000ac70
lea edx, [ebp - 0x2ac]
push str.Out_of_system_memory_resources
push edx
mov byte [ebp - 4], 0x23
mov dword [ebp - method.R_MemoryException_Allocation.virtual_0], vtable.R_MemoryException_Allocation.0
call sym.rlmfc.dll_public:_void___cdecl_R_Exception::setError_char_const__
add esp, 8
mov al, byte [0x10046c44]
test al, 1
mov byte [ebp - 4], 0x24
jne 0x1000c4af
or al, 1
mov ecx, 0x10046c60
mov byte [0x10046c44], al
call fcn.1000b980
push 0x10005b30
call fcn.1001bef4
add esp, 4
lea eax, [ebp - 0x2ac]
push eax
mov ecx, 0x10046c60
call fcn.1000eec0
push 0x100211e0
lea ecx, [ebp - 0x3c]
push ecx
mov dword [ebp - 0x3c], 0x10046c60
call sub.MSVCRT.dll__CxxThrowException
xor esi, esi
xor ecx, ecx
xor eax, eax
cmp dword [ebx + 0x10], esi
mov dword [ebx + 0x38], edx
jle 0x1000c59c
jmp 0x1000c4f2
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x20]
add edx, eax
add edi, ecx
mov dword [ebp + 8], edi
mov edi, dword [ebx + 0x30]
lea eax, [esi + esi*2]
shl eax, 3
mov dword [edi + eax], edx
mov dword [ebp - 0x20], edx
mov edx, dword [ebx + 0x30]
mov dword [edx + eax + 0x14], esi
mov edx, dword [ebp + 8]
mov al, byte [edx]
inc ecx
test al, al
mov dword [ebp - 0x18], 0
mov dword [ebp + 0xc], ecx
je 0x1000c534
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov al, byte [ecx + eax]
inc ecx
test al, al
mov dword [ebp + 0xc], ecx
jne 0x1000c523
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebx + 0x30]
inc eax
push eax
lea edi, [esi + esi*2]
push edx
shl edi, 3
mov edx, dword [ecx + edi]
push edx
mov dword [ebp - 0x18], eax
call dword [sym.imp.MSVCRT.dll_strncpy]
mov eax, dword [ebx + 0x30]
mov ecx, dword [eax + edi]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp + 0xc]
mov byte [ecx + edx - 1], 0
mov ecx, dword [ebp - 0x14]
lea edx, [eax + ecx]
mov ecx, dword [ebx + 0x30]
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 - 0x14]
add eax, 0x10
add esp, 0xc
mov dword [ecx + 0xc], edx
mov dword [ebp + 0xc], eax
mov eax, dword [ebx + 0x10]
inc esi
cmp esi, eax
jl 0x1000c4e9
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 0x1000c5c9
mov esi, dword [ebx + 0x2c]
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 0x1000c5b2
test edi, edi
je 0x1000c5d6
push edi
call fcn.1001be40
add esp, 4
mov eax, dword [ebp - 0x24]
push eax
call dword [sym.imp.MSVCRT.dll_fclose]
mov ecx, dword [ebp - 0xc]
add esp, 4
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 8