Function at 0x41f419
Capabilities:
Get file size
Get system information on windows
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
xor ebx, ebx
push ebx
push 0x80
push 3
push ebx
push 1
push SysReAllocString
push dword [edi + 0x20]
mov dword [ebp - 8], ebx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
test esi, esi
jne 0x41f47b
push dword [edi + 0x20]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.MTD_Open_File_error:_d___s_
push ebx
push 8
push str..._atgpcextmtpdld.cpp
push 0x205
call fcn.0042ab69
mov ecx, edi
add esp, 0x1c
call fcn.0041ee41
xor eax, eax
jmp 0x41f620
lea eax, [ebp - 8]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebx, eax
push esi
mov dword [ebp - 0xc], ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [edi + 0x34]
jmp 0x41f4d6
push 0
push 0x80
push 3
push 0
push 1
push SysReAllocString
push dword [esi + 0x20]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x10], eax
test eax, eax
je 0x41f5c3
lea ecx, [ebp - 8]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push dword [ebp - 0x10]
add ebx, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [esi + 0x34]
test esi, esi
jne 0x41f497
and dword [ebp - 4], 0
lea eax, [ebp - 0x44]
push eax
mov esi, edi
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [ebp - 0xc]
xor edx, edx
div dword [ebp - 0x28]
push 0
push 0x80000080
push 3
push 0
push 1
push 0xc0000000
push dword [edi + 0x20]
mov dword [ebp - 0x10], edx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x20], eax
test eax, eax
je 0x41f5ec
xor ecx, ecx
push ecx
push ebx
push ecx
push 0x8000004
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x41f5b1
mov ecx, dword [ebp - 0xc]
sub ecx, dword [ebp - 0x10]
sub ebx, ecx
push ebx
push ecx
push 0
push 6
push eax
mov dword [ebp - 0x14], ebx
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x41f5a8
add eax, dword [ebp - 0x10]
mov ecx, ebx
sub ecx, dword [ebp - 0x10]
mov esi, dword [edi + 0x34]
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], ecx
test esi, esi
je 0x41f58f
mov edi, ecx
mov ebx, eax
push dword [esi + 0x20]
push edi
push ebx
call fcn.0041f657
test eax, eax
je 0x41f585
mov esi, dword [esi + 0x34]
sub edi, eax
add ebx, eax
test esi, esi
jne 0x41f56c
mov edi, dword [ebp + 8]
mov ebx, dword [ebp - 0x14]
test esi, esi
jne 0x41f596
mov dword [ebp - 4], 1
push ebx
mov ebx, dword [ebp - 0x18]
push ebx
call dword [sym.imp.KERNEL32.dll_FlushViewOfFile]
push ebx
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0x20]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebx, dword [ebp - 4]
test ebx, ebx
jne 0x41f61e
jmp 0x41f5ef
push dword [esi + 0x20]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.MTD_Open_File_error:_d___s_
push 0
push 8
push str..._atgpcextmtpdld.cpp
push 0x217
call fcn.0042ab69
mov ecx, esi
jmp 0x41f46c
mov ebx, dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.MTD_Operator_map_file_file:__d
push 0
push 8
push str..._atgpcextmtpdld.cpp
push 0x262
call fcn.0042ab69
add esp, 0x18
mov ecx, esi
test esi, esi
jne 0x41f619
mov ecx, edi
call fcn.0041ee41
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4