Function at 0x6d717ecc
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x38]
test byte [eax], 8
push edi
mov dword [ebp - 8], eax
jne 0x6d717ef3
mov dword [0x6d72ffa8], 0x6f
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
lea eax, [esi + 0x18]
push eax
mov edx, esi
call fcn.6d717b2c
test eax, eax
pop ecx
je 0x6d717eec
lea eax, [esi + 0x1c]
push eax
mov edx, esi
call fcn.6d717b2c
test eax, eax
pop ecx
je 0x6d717eec
lea eax, [esi + 0x20]
push eax
mov edx, esi
call fcn.6d717b2c
test eax, eax
pop ecx
je 0x6d717eec
lea eax, [esi + 0x24]
push eax
mov edx, esi
call fcn.6d717b2c
test eax, eax
pop ecx
je 0x6d717eec
mov eax, dword [esi + 0x38]
mov ecx, dword [eax + 0x3c]
xor ebx, ebx
cmp ecx, ebx
je 0x6d717f4d
push 1
lea eax, [ebp + 8]
push eax
push esi
call ecx
add esp, 0xc
jmp 0x6d717f61
push dword [eax + 0x38]
lea eax, [ebp + 8]
push 1
push 1
push eax
call dword [sym.imp.MSVCR71.dll_fread]
add esp, 0x10
cmp eax, 1
jne 0x6d718032
movzx eax, byte [ebp + 8]
mov edi, eax
and edi, 7
and eax, 0x40
inc edi
test byte [ebp + 8], 0x80
mov dword [esi + 0x28], eax
mov eax, dword [esi + 0x2c]
je 0x6d718041
cmp eax, ebx
je 0x6d717f97
cmp dword [esi + 0x30], ebx
jne 0x6d717f97
push eax
call fcn.6d7186d1
pop ecx
xor eax, eax
inc eax
mov ecx, edi
shl eax, cl
push ebx
push eax
call fcn.6d71866a
cmp eax, ebx
pop ecx
pop ecx
mov dword [esi + 0x2c], eax
je 0x6d7180a6
cmp dword [eax], ebx
mov dword [ebp - 4], ebx
jle 0x6d71804f
push 3
xor edi, edi
pop ebx
mov eax, dword [esi + 0x38]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
je 0x6d717fd9
push ebx
lea eax, [ebp + 8]
push eax
push esi
call ecx
add esp, 0xc
jmp 0x6d717fec
push dword [eax + 0x38]
lea eax, [ebp + 8]
push ebx
push 1
push eax
call dword [sym.imp.MSVCR71.dll_fread]
add esp, 0x10
cmp eax, ebx
jne 0x6d718029
mov eax, dword [esi + 0x2c]
mov eax, dword [eax + 8]
mov cl, byte [ebp + 8]
inc dword [ebp - 4]
mov byte [edi + eax], cl
mov eax, dword [esi + 0x2c]
mov eax, dword [eax + 8]
mov cl, byte [ebp + 9]
mov byte [eax + edi + 1], cl
mov eax, dword [esi + 0x2c]
mov eax, dword [eax + 8]
mov cl, byte [ebp + 0xa]
mov byte [eax + edi + 2], cl
mov eax, dword [esi + 0x2c]
mov ecx, dword [ebp - 4]
add edi, ebx
cmp ecx, dword [eax]
jl 0x6d717fc2
xor ebx, ebx
jmp 0x6d71804f
push dword [esi + 0x2c]
call fcn.6d7186d1
pop ecx
mov dword [0x6d72ffa8], 0x66
jmp 0x6d717eec
cmp eax, ebx
je 0x6d71804f
push eax
call fcn.6d7186d1
pop ecx
mov dword [esi + 0x2c], ebx
mov ecx, dword [esi + 0x30]
cmp ecx, ebx
je 0x6d7180b5
mov eax, dword [esi + 0x14]
inc eax
lea eax, [eax + eax*4]
shl eax, 3
push eax
push ecx
call dword [sym.imp.MSVCR71.dll_realloc]
pop ecx
cmp eax, ebx
pop ecx
mov dword [esi + 0x30], eax
je 0x6d7180a6
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x30]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
push 0x18
lea eax, [esi + 0x18]
push eax
push edi
call sub.MSVCR71.dll_memcpy
mov eax, dword [esi + 0x2c]
add esp, 0xc
cmp eax, ebx
je 0x6d7180bf
push dword [eax + 8]
push dword [eax]
call fcn.6d71866a
cmp eax, ebx
pop ecx
pop ecx
mov dword [edi + 0x14], eax
jne 0x6d7180bf
mov dword [0x6d72ffa8], 0x6d
jmp 0x6d717eec
push 0x28
call dword [sym.imp.MSVCR71.dll_malloc]
jmp 0x6d718069
mov ecx, dword [ebp - 8]
mov dword [edi + 0x18], ebx
mov dword [edi + 0x20], ebx
mov dword [edi + 0x24], ebx
mov eax, dword [esi + 0x20]
imul eax, dword [esi + 0x24]
inc dword [esi + 0x14]
mov dword [ecx + 0x34], eax
mov eax, esi
call fcn.6d717c2f
xor eax, eax
inc eax
jmp 0x6d717eee