Function at 0x78175a04
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov ecx, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
xor edi, edi
cmp dword [ebp + 0x10], edi
mov dword [ebp - 8], ecx
mov dword [ebp - 4], ebx
je 0x78175a41
cmp dword [ebp + 0x14], edi
je 0x78175a41
cmp ecx, edi
jne 0x78175a48
call sym.MSVCR80.dll__errno
push edi
push edi
push edi
push edi
mov dword [eax], 0x16
push edi
call sym.MSVCR80.dll__invalid_parameter
add esp, 0x14
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
mov esi, dword [ebp + 0x18]
cmp esi, edi
je 0x78175a5c
or eax, 0xffffffff
xor edx, edx
div dword [ebp + 0x10]
cmp dword [ebp + 0x14], eax
jbe 0x78175a7d
cmp ebx, 0xffffffff
je 0x78175a6c
push ebx
push edi
push ecx
call sym.MSVCR80.dll_memset
add esp, 0xc
cmp esi, edi
je 0x78175a29
or eax, 0xffffffff
xor edx, edx
div dword [ebp + 0x10]
cmp dword [ebp + 0x14], eax
ja 0x78175a29
mov edi, dword [ebp + 0x10]
imul edi, dword [ebp + 0x14]
test word [esi + 0xc], 0x10c
mov dword [ebp - 0x10], edi
mov ebx, edi
je 0x78175a99
mov eax, dword [esi + 0x18]
mov dword [ebp - 0xc], eax
jmp 0x78175aa0
mov dword [ebp - 0xc], 0x1000
test edi, edi
je 0x78175b91
test word [esi + 0xc], 0x10c
je 0x78175af4
mov eax, dword [esi + 4]
test eax, eax
je 0x78175af4
jl 0x78175bf2
cmp ebx, eax
mov edi, ebx
jb 0x78175ac5
mov edi, eax
cmp edi, dword [ebp - 4]
ja 0x78175b99
push edi
push dword [esi]
push dword [ebp - 4]
push dword [ebp - 8]
call sym.MSVCR80.dll_memcpy_s
sub dword [esi + 4], edi
add dword [esi], edi
add dword [ebp - 8], edi
sub ebx, edi
add esp, 0x10
sub dword [ebp - 4], edi
mov edi, dword [ebp - 0x10]
jmp 0x78175b89
cmp ebx, dword [ebp - 0xc]
jb 0x78175b61
cmp dword [ebp - 0xc], 0
je 0x78175b1e
mov ecx, 0x7fffffff
xor edx, edx
cmp ebx, ecx
jbe 0x78175b13
mov eax, ecx
div dword [ebp - 0xc]
mov eax, ecx
jmp 0x78175b1a
mov eax, ebx
div dword [ebp - 0xc]
mov eax, ebx
sub eax, edx
jmp 0x78175b29
mov eax, 0x7fffffff
cmp ebx, eax
ja 0x78175b29
mov eax, ebx
cmp eax, dword [ebp - 4]
ja 0x78175bc5
push eax
push dword [ebp - 8]
push esi
call sym.MSVCR80.dll__fileno
pop ecx
push eax
call sym.MSVCR80.dll__read
add esp, 0xc
test eax, eax
je 0x78175c04
cmp eax, 0xffffffff
je 0x78175bf2
add dword [ebp - 8], eax
sub ebx, eax
sub dword [ebp - 4], eax
jmp 0x78175b89
push esi
call sym.MSVCR80.dll__filbuf
cmp eax, 0xffffffff
pop ecx
je 0x78175bf6
cmp dword [ebp - 4], 0
je 0x78175bc5
mov ecx, dword [ebp - 8]
inc dword [ebp - 8]
mov byte [ecx], al
mov eax, dword [esi + 0x18]
dec ebx
dec dword [ebp - 4]
mov dword [ebp - 0xc], eax
test ebx, ebx
jne 0x78175aa8
mov eax, dword [ebp + 0x14]
jmp 0x78175a43
xor esi, esi
cmp dword [ebp + 0xc], 0xffffffff
je 0x78175bb0
push dword [ebp + 0xc]
push esi
push dword [ebp + 8]
call sym.MSVCR80.dll_memset
add esp, 0xc
call sym.MSVCR80.dll__errno
push esi
push esi
push esi
push esi
mov dword [eax], 0x22
push esi
jmp 0x78175a39
cmp dword [ebp + 0xc], 0xffffffff
je 0x78175bdb
push dword [ebp + 0xc]
push 0
push dword [ebp + 8]
call sym.MSVCR80.dll_memset
add esp, 0xc
call sym.MSVCR80.dll__errno
mov dword [eax], 0x22
xor eax, eax
push eax
push eax
push eax
push eax
push eax
jmp 0x78175a39
or dword [esi + 0xc], 0x20
mov eax, edi
sub eax, ebx
xor edx, edx
div dword [ebp + 0x10]
jmp 0x78175a43
or dword [esi + 0xc], 0x10
jmp 0x78175bf6