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

Disassembly:
mov eax, dword [esp + 4]
sub esp, 8
test eax, eax
push ebx
push ebp
push esi
push edi
mov esi, ecx
jne 0x48f2f0
mov eax, dword [esi + 0x60]
push eax
push str.TaskID___u_exception_raised_in_method_CFileMgr::LoadTorrentFile__parameter_pBuffer_can_not_be_NULL
push 0x4d8db8
call fcn.0045c870
add esp, 0xc
mov eax, 0x7e2d
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], 0x1d9
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 8
mov ecx, dword [esp + 0x20]
cmp dword [ecx], 0
jg 0x48f328
mov edx, dword [esi + 0x60]
push edx
push str.TaskID___u_exception_raised_in_method_CFileMgr::LoadTorrentFile__parameter_nNumber_must_greater_than_zero
push 0x4d8db8
call fcn.0045c870
add esp, 0xc
mov eax, 0x7e2e
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], 0x1df
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 8
cmp dword [esi + 0x5c], 0xffffffff
jne 0x48f390
mov eax, dword [esi + 0x2c]
test eax, eax
jne 0x48f33a
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_short_int_const__private:_static_unsigned_short_int_const____cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Nullstr_void_::_2::_C]
push 0
push 0x80
push 4
push 0
push 5
push 0xc0000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
mov dword [esi + 0x5c], eax
jne 0x48f390
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
push eax
mov eax, dword [esi + 0x60]
push eax
push str.TaskID___u_exception_raised_in_method_CFileMgr::LoadMemFile__open_file_fail__error_code_is__d
push 0x4d8db8
call fcn.0045c870
add esp, 0x10
call edi
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], 0x1ea
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 8
mov edx, dword [esi + 0x5c]
lea ecx, [esp + 0x10]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebp, dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x48f3e1
call ebp
test eax, eax
je 0x48f3e1
call ebp
push eax
mov eax, dword [esi + 0x60]
push eax
push str.TaskID___u_exception_raised_in_method_CFileMgr::GetSize__get_file_size_fail_call_GetFileSize___error_code_is__d
push 0x4d8db8
call fcn.0045c870
add esp, 0x10
call ebp
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], 0x1f3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 8
mov ecx, dword [esp + 0x10]
push 1
push 0
push 0
push ecx
call fcn.004a7920
mov edi, eax
mov ecx, edx
xor edx, edx
add edi, ebx
adc ecx, edx
test ecx, ecx
jg 0x48f449
jl 0x48f405
test edi, edi
jae 0x48f431
mov eax, dword [esi + 0x60]
push eax
push str.TaskID___u_exception_raised_in_method_CFileMgr::GetSize__file_size_is_too_huge
push 0x4d8db8
call fcn.0045c870
add esp, 0xc
call ebp
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], 0x1fb
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 8
test ecx, ecx
jg 0x48f449
jl 0x48f43c
cmp edi, 0xc
ja 0x48f449
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 8
ret 8
mov ebx, dword [esp + 0x20]
mov eax, dword [ebx]
cdq
cmp edx, ecx
jg 0x48f467
jl 0x48f45a
cmp eax, edi
jae 0x48f467
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 8
ret 8
lea ecx, [esp + 0x10]
mov dword [ebx], edi
mov edx, dword [esi + 0x5c]
push 0
push ecx
push 0
push edx
mov dword [esp + 0x20], 0
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ecx, dword [ebx]
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x14]
push 0
push eax
mov eax, dword [esi + 0x5c]
push ecx
push edx
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x48f4b5
mov eax, dword [esp + 0x14]
test eax, eax
jle 0x48f4b5
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 8
ret 8
call ebp
mov ecx, dword [esi + 0x60]
push eax
push ecx
push str.TaskID___u_exception_raised_in_method_CFileMgr::Read__read_from_file_fail_call_ReadFile___error_code_is__d
push 0x4d8db8
call fcn.0045c870
add esp, 0x10
call ebp
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], 0x210
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 8