Function at 0x7ce14a10
Capabilities:
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov eax, edi
xor esi, esi
and eax, 3
mov ebx, ecx
sub eax, esi
je 0x7ce14a3d
dec eax
je 0x7ce14a36
dec eax
jne 0x7ce14a44
mov eax, 0xc0000000
jmp 0x7ce14a47
mov eax, 0x40000000
jmp 0x7ce14a47
mov eax, 0x80000000
jmp 0x7ce14a47
mov eax, dword [ebp + 8]
push esi
push 0x80
push 3
push esi
push esi
push eax
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
mov dword [ebx + 0x40], eax
je 0x7ce14ab5
mov dword [ebx + 0x270], edi
mov dword [ebx + 0x250], esi
mov dword [ebx + 0x44], esi
lea edi, [ebx + 0x254]
mov esi, 0x7cd84458
push dword [ebp + 8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea eax, [ebx + 0x278]
movsd dword es:[edi], dword [esi]
and dword [ebx + 0x274], 0
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
lea eax, [ebp - 8]
push 0
mov edi, 0x200
lea esi, [ebx + 0x48]
push eax
push edi
push esi
push dword [ebx + 0x40]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x7ce14abd
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x7ce14af7
cmp dword [ebp - 8], edi
jne 0x7ce14c1b
push esi
mov ecx, ebx
call fcn.7ce14ca5
test eax, eax
jl 0x7ce14c9e
push 0
push dword [ebx + 0x40]
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, 0xffffffff
mov dword [ebp + 8], eax
jne 0x7ce14b02
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
test eax, eax
je 0x7ce14b02
call esi
push eax
call fcn.7ce3959e
jmp 0x7ce14c9e
mov esi, dword [ebx + 0x94]
xor eax, eax
cmp dword [ebx + 0x78], eax
mov ecx, dword [ebx + 0x74]
mov edi, dword [ebx + 0x90]
sete al
mov dword [ebp - 4], eax
mov eax, dword [ebx + 0x8c]
inc esi
shl esi, 9
inc eax
shl eax, 9
shl ecx, 9
shl edi, 9
cmp dword [ebp - 4], 0
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], ecx
je 0x7ce14b4f
test edi, edi
je 0x7ce14b47
add eax, 0xfffffe00
jmp 0x7ce14b56
lea eax, [esi - 0x200]
jmp 0x7ce14b56
mov eax, dword [ebp + 8]
sub eax, esi
sub eax, ecx
mov edx, eax
mov dword [ebp + 8], eax
lea eax, [edx + edi]
add eax, ecx
test ecx, ecx
mov dword [ebp - 0xc], eax
je 0x7ce14c99
test edx, edx
je 0x7ce14c99
push eax
call fcn.7cd8702d
pop ecx
mov dword [ebp + 0xc], eax
xor ecx, ecx
cmp eax, ecx
jne 0x7ce14b94
push ecx
call fcn.7cd8701a
pop ecx
mov eax, 0x80030008
jmp 0x7ce14c9e
cmp dword [ebp - 4], ecx
je 0x7ce14ba0
mov esi, 0x200
jmp 0x7ce14ba7
cmp edi, ecx
je 0x7ce14ba7
mov esi, dword [ebp - 0x14]
push ecx
push ecx
push esi
push dword [ebx + 0x40]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
jne 0x7ce14bd6
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.7ce3959e
push dword [ebp + 0xc]
mov esi, eax
call fcn.7cd8701a
pop ecx
mov eax, esi
jmp 0x7ce14c9e
mov esi, dword [ebp + 0xc]
lea eax, [ebp - 8]
push 0
push eax
push dword [ebp - 0xc]
push esi
push dword [ebx + 0x40]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x7ce14c0c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.7ce3959e
push esi
mov edi, eax
call fcn.7cd8701a
pop ecx
mov eax, edi
jmp 0x7ce14c9e
mov eax, dword [ebp - 0xc]
cmp dword [ebp - 8], eax
je 0x7ce14c22
push esi
call fcn.7cd8701a
pop ecx
mov eax, 0x8003001e
jmp 0x7ce14c9e
cmp dword [ebp - 4], 0
je 0x7ce14c2c
mov eax, esi
jmp 0x7ce14c32
lea eax, [esi + edi]
add eax, dword [ebp - 0x10]
push dword [ebp + 8]
mov ecx, ebx
push eax
call fcn.7ce14d1b
test eax, eax
mov dword [ebp + 0xc], eax
jl 0x7ce14c8d
cmp dword [ebp - 4], 0
je 0x7ce14c53
mov eax, dword [ebp + 8]
add eax, esi
add eax, edi
jmp 0x7ce14c56
lea eax, [esi + edi]
push dword [ebp - 0x10]
mov ecx, ebx
push eax
call fcn.7ce14e7f
test eax, eax
mov dword [ebp + 0xc], eax
jl 0x7ce14c8d
test edi, edi
je 0x7ce14c8d
cmp dword [ebp - 4], 0
je 0x7ce14c79
mov eax, dword [ebp + 8]
add eax, esi
jmp 0x7ce14c7b
mov eax, esi
push dword [ebx + 0x244]
mov ecx, ebx
push edi
push eax
call fcn.7ce14ef3
mov dword [ebp + 0xc], eax
push esi
call fcn.7cd8701a
mov eax, dword [ebp + 0xc]
pop ecx
jmp 0x7ce14c9e
mov eax, 0x80030109
pop edi
pop esi
pop ebx
leave
ret 0xc